]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Public API implementation
authorJiri Denemark <jdenemar@redhat.com>
Fri, 18 Dec 2009 14:24:34 +0000 (15:24 +0100)
committerDaniel Veillard <veillard@redhat.com>
Fri, 18 Dec 2009 14:24:34 +0000 (15:24 +0100)
* src/libvirt.c: adds the public entry point virConnectCompareCPU()

src/libvirt.c

index cad33c2a7346d290f7d56f033736ab77c410c773..5167bc24d844b4d5d87256450083444a97aecddb 100644 (file)
@@ -10759,3 +10759,46 @@ error:
     virSetConnError(conn);
     return -1;
 }
+
+
+/**
+ * virConnectCompareCPU:
+ * @conn: virConnect connection
+ * @xml: XML describing the CPU to compare with host CPU
+ *
+ * Returns comparison result according to enum virCPUCompareResult
+ */
+int
+virConnectCompareCPU(virConnectPtr conn,
+                     const char *xmlDesc,
+                     unsigned int flags)
+{
+    VIR_DEBUG("conn=%p, xmlDesc=%s", conn, xmlDesc);
+
+    virResetLastError();
+
+    if (!VIR_IS_CONNECT(conn)) {
+        virLibConnError(NULL, VIR_ERR_INVALID_CONN, __FUNCTION__);
+        return VIR_CPU_COMPARE_ERROR;
+    }
+    if (xmlDesc == NULL) {
+        virLibConnError(conn, VIR_ERR_INVALID_ARG, __FUNCTION__);
+        goto error;
+    }
+
+    if (conn->driver->cpuCompare) {
+        int ret;
+
+        ret = conn->driver->cpuCompare(conn, xmlDesc, flags);
+        if (ret == VIR_CPU_COMPARE_ERROR)
+            goto error;
+        return ret;
+    }
+
+    virLibConnError(conn, VIR_ERR_NO_SUPPORT, __FUNCTION__);
+
+error:
+    /* Copy to connection error object for back compatibility */
+    virSetConnError(conn);
+    return VIR_CPU_COMPARE_ERROR;
+}