static int
xenUnifiedConnectGetVersion(virConnectPtr conn, unsigned long *hvVer)
{
- xenUnifiedPrivatePtr priv = conn->privateData;
- int i;
-
- for (i = 0; i < XEN_UNIFIED_NR_DRIVERS; ++i)
- if (priv->opened[i] &&
- drivers[i]->xenVersion &&
- drivers[i]->xenVersion(conn, hvVer) == 0)
- return 0;
-
- return -1;
+ return xenHypervisorGetVersion(conn, hvVer);
}
* structure with direct calls in xen_unified.c.
*/
struct xenUnifiedDriver {
- virDrvConnectGetVersion xenVersion;
virDrvConnectGetHostname xenGetHostname;
virDrvDomainSuspend xenDomainSuspend;
virDrvDomainResume xenDomainResume;
static unsigned long long xenHypervisorGetMaxMemory(virDomainPtr domain);
struct xenUnifiedDriver xenHypervisorDriver = {
- .xenVersion = xenHypervisorGetVersion,
.xenDomainSuspend = xenHypervisorPauseDomain,
.xenDomainResume = xenHypervisorResumeDomain,
.xenDomainDestroyFlags = xenHypervisorDestroyDomainFlags,
return ret;
}
-/**
- * xenDaemonGetVersion:
- * @conn: pointer to the Xen Daemon block
- * @hvVer: return value for the version of the running hypervisor (OUT)
- *
- * Get the version level of the Hypervisor running.
- *
- * Returns -1 in case of error, 0 otherwise. if the version can't be
- * extracted by lack of capacities returns 0 and @hvVer is 0, otherwise
- * @hvVer value is major * 1,000,000 + minor * 1,000 + release
- */
-int
-xenDaemonGetVersion(virConnectPtr conn, unsigned long *hvVer)
-{
- struct sexpr *root;
- int major, minor;
- unsigned long version;
-
- root = sexpr_get(conn, "/xend/node/");
- if (root == NULL)
- return -1;
-
- major = sexpr_int(root, "node/xen_major");
- minor = sexpr_int(root, "node/xen_minor");
- sexpr_free(root);
- version = major * 1000000 + minor * 1000;
- *hvVer = version;
- return 0;
-}
-
/**
* xenDaemonListDomains:
}
struct xenUnifiedDriver xenDaemonDriver = {
- .xenVersion = xenDaemonGetVersion,
.xenDomainSuspend = xenDaemonDomainSuspend,
.xenDomainResume = xenDaemonDomainResume,
.xenDomainShutdown = xenDaemonDomainShutdown,
int xenDaemonOpen(virConnectPtr conn, virConnectAuthPtr auth,
unsigned int flags);
int xenDaemonClose(virConnectPtr conn);
-int xenDaemonGetVersion(virConnectPtr conn, unsigned long *hvVer);
int xenDaemonNodeGetInfo(virConnectPtr conn, virNodeInfoPtr info);
int xenDaemonNodeGetTopology(virConnectPtr conn, virCapsPtr caps);
int xenDaemonDomainSuspend(virDomainPtr domain);