]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
vbox: Rewrite vboxDomainGetVcpusFlags
authorTaowei <uaedante@gmail.com>
Mon, 11 Aug 2014 10:06:40 +0000 (18:06 +0800)
committerMichal Privoznik <mprivozn@redhat.com>
Fri, 15 Aug 2014 07:25:11 +0000 (09:25 +0200)
src/vbox/vbox_common.c
src/vbox/vbox_tmpl.c
src/vbox/vbox_uniformed_api.h

index e3c89a485f2d769982bdc7acb184004680ba22f8..63560c4d670b8b198d58d130fc78ff46788df873 100644 (file)
@@ -2826,3 +2826,31 @@ int vboxDomainSetVcpus(virDomainPtr dom, unsigned int nvcpus)
 {
     return vboxDomainSetVcpusFlags(dom, nvcpus, VIR_DOMAIN_AFFECT_LIVE);
 }
+
+int vboxDomainGetVcpusFlags(virDomainPtr dom, unsigned int flags)
+{
+    VBOX_OBJECT_CHECK(dom->conn, int, -1);
+    ISystemProperties *systemProperties = NULL;
+    PRUint32 maxCPUCount = 0;
+
+    if (flags != (VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_VCPU_MAXIMUM)) {
+        virReportError(VIR_ERR_INVALID_ARG, _("unsupported flags: (0x%x)"), flags);
+        return -1;
+    }
+
+    /* Currently every domain supports the same number of max cpus
+     * as that supported by vbox and thus take it directly from
+     * the systemproperties.
+     */
+
+    gVBoxAPI.UIVirtualBox.GetSystemProperties(data->vboxObj, &systemProperties);
+    if (systemProperties) {
+        gVBoxAPI.UISystemProperties.GetMaxGuestCPUCount(systemProperties, &maxCPUCount);
+        VBOX_RELEASE(systemProperties);
+    }
+
+    if (maxCPUCount > 0)
+        ret = maxCPUCount;
+
+    return ret;
+}
index 8a778cca711c3f4b54189c69bb235e412ee90a0a..20ae3216e4971338ca1add21bff6911188acae1d 100644 (file)
@@ -955,35 +955,6 @@ static virDomainState _vboxConvertState(PRUint32 state)
     }
 }
 
-static int
-vboxDomainGetVcpusFlags(virDomainPtr dom, unsigned int flags)
-{
-    VBOX_OBJECT_CHECK(dom->conn, int, -1);
-    ISystemProperties *systemProperties = NULL;
-    PRUint32 maxCPUCount = 0;
-
-    if (flags != (VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_VCPU_MAXIMUM)) {
-        virReportError(VIR_ERR_INVALID_ARG, _("unsupported flags: (0x%x)"), flags);
-        return -1;
-    }
-
-    /* Currently every domain supports the same number of max cpus
-     * as that supported by vbox and thus take it directly from
-     * the systemproperties.
-     */
-
-    data->vboxObj->vtbl->GetSystemProperties(data->vboxObj, &systemProperties);
-    if (systemProperties) {
-        systemProperties->vtbl->GetMaxGuestCPUCount(systemProperties, &maxCPUCount);
-        VBOX_RELEASE(systemProperties);
-    }
-
-    if (maxCPUCount > 0)
-        ret = maxCPUCount;
-
-    return ret;
-}
-
 static int
 vboxDomainGetMaxVcpus(virDomainPtr dom)
 {
index cb0450151b0f77a0622b94031209f717321cdbfc..5bab8fa23c789b1d0fd8ee82c88a851e07fb0cfb 100644 (file)
@@ -441,6 +441,7 @@ int vboxDomainGetState(virDomainPtr dom, int *state,
 int vboxDomainSetVcpusFlags(virDomainPtr dom, unsigned int nvcpus,
                             unsigned int flags);
 int vboxDomainSetVcpus(virDomainPtr dom, unsigned int nvcpus);
+int vboxDomainGetVcpusFlags(virDomainPtr dom, unsigned int flags);
 
 /* Version specified functions for installing uniformed API */
 void vbox22InstallUniformedAPI(vboxUniformedAPI *pVBoxAPI);