]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Implement cpuBaseline in remote and qemu drivers
authorJiri Denemark <jdenemar@redhat.com>
Tue, 2 Feb 2010 14:19:14 +0000 (15:19 +0100)
committerJiri Denemark <jdenemar@redhat.com>
Fri, 12 Feb 2010 13:30:42 +0000 (14:30 +0100)
src/qemu/qemu_driver.c
src/remote/remote_driver.c

index f666d3435df321da03bc89726bcc7f081599e3a2..a2be1a300ebe62db2398aeda4c9c32d35aa9d0f8 100644 (file)
@@ -8509,6 +8509,19 @@ qemuCPUCompare(virConnectPtr conn,
     return ret;
 }
 
+static char *
+qemuCPUBaseline(virConnectPtr conn ATTRIBUTE_UNUSED,
+                const char **xmlCPUs,
+                unsigned int ncpus,
+                unsigned int flags ATTRIBUTE_UNUSED)
+{
+    char *cpu;
+
+    cpu = cpuBaselineXML(xmlCPUs, ncpus, NULL, 0);
+
+    return cpu;
+}
+
 static virDriver qemuDriver = {
     VIR_DRV_QEMU,
     "QEMU",
@@ -8587,7 +8600,7 @@ static virDriver qemuDriver = {
     qemuDomainIsActive,
     qemuDomainIsPersistent,
     qemuCPUCompare, /* cpuCompare */
-    NULL, /* cpuBaseline */
+    qemuCPUBaseline, /* cpuBaseline */
 };
 
 
index 6dc54ece6f4dafc213b87aa6ecb26aeeda618c40..13534ce806fffbe4638573939ed6a03d962c99e9 100644 (file)
@@ -7590,6 +7590,37 @@ done:
     return rv;
 }
 
+
+static char *
+remoteCPUBaseline(virConnectPtr conn,
+                  const char **xmlCPUs,
+                  unsigned int ncpus,
+                  unsigned int flags)
+{
+    struct private_data *priv = conn->privateData;
+    remote_cpu_baseline_args args;
+    remote_cpu_baseline_ret ret;
+    char *cpu = NULL;
+
+    remoteDriverLock(priv);
+
+    args.xmlCPUs.xmlCPUs_len = ncpus;
+    args.xmlCPUs.xmlCPUs_val = (char **) xmlCPUs;
+    args.flags = flags;
+
+    memset(&ret, 0, sizeof (ret));
+    if (call(conn, priv, 0, REMOTE_PROC_CPU_BASELINE,
+             (xdrproc_t) xdr_remote_cpu_baseline_args, (char *) &args,
+             (xdrproc_t) xdr_remote_cpu_baseline_ret, (char *) &ret) == -1)
+        goto done;
+
+    cpu = ret.cpu;
+
+done:
+    remoteDriverUnlock(priv);
+    return cpu;
+}
+
 /*----------------------------------------------------------------------*/
 
 
@@ -8980,7 +9011,7 @@ static virDriver remote_driver = {
     remoteDomainIsActive, /* domainIsActive */
     remoteDomainIsPersistent, /* domainIsPersistent */
     remoteCPUCompare, /* cpuCompare */
-    NULL, /* cpuBaseline */
+    remoteCPUBaseline, /* cpuBaseline */
 };
 
 static virNetworkDriver network_driver = {