]> xenbits.xensource.com Git - libvirt.git/commitdiff
conf: Extract code formatting vCPU info
authorPeter Krempa <pkrempa@redhat.com>
Tue, 14 Jun 2016 09:35:39 +0000 (11:35 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 11 Jul 2016 07:06:09 +0000 (09:06 +0200)
src/conf/domain_conf.c

index cf5eb1da3212d7880f8d2355767d844eda4c1e89..74075f0eab7abfea21e920eda7240a71167b8003 100644 (file)
@@ -22779,6 +22779,35 @@ virDomainCputuneDefFormat(virBufferPtr buf,
 }
 
 
+static int
+virDomainCpuDefFormat(virBufferPtr buf,
+                      const virDomainDef *def)
+{
+    char *cpumask = NULL;
+    int ret = -1;
+
+    virBufferAddLit(buf, "<vcpu");
+    virBufferAsprintf(buf, " placement='%s'",
+                      virDomainCpuPlacementModeTypeToString(def->placement_mode));
+
+    if (def->cpumask && !virBitmapIsAllSet(def->cpumask)) {
+        if ((cpumask = virBitmapFormat(def->cpumask)) == NULL)
+            goto cleanup;
+        virBufferAsprintf(buf, " cpuset='%s'", cpumask);
+    }
+    if (virDomainDefHasVcpusOffline(def))
+        virBufferAsprintf(buf, " current='%u'", virDomainDefGetVcpus(def));
+    virBufferAsprintf(buf, ">%u</vcpu>\n", virDomainDefGetVcpusMax(def));
+
+    ret = 0;
+
+ cleanup:
+    VIR_FREE(cpumask);
+
+    return ret;
+}
+
+
 /* This internal version appends to an existing buffer
  * (possibly with auto-indent), rather than flattening
  * to string.
@@ -22954,20 +22983,8 @@ virDomainDefFormatInternal(virDomainDefPtr def,
         virBufferAddLit(buf, "</memoryBacking>\n");
     }
 
-    virBufferAddLit(buf, "<vcpu");
-    virBufferAsprintf(buf, " placement='%s'",
-                      virDomainCpuPlacementModeTypeToString(def->placement_mode));
-
-    if (def->cpumask && !virBitmapIsAllSet(def->cpumask)) {
-        char *cpumask = NULL;
-        if ((cpumask = virBitmapFormat(def->cpumask)) == NULL)
-            goto error;
-        virBufferAsprintf(buf, " cpuset='%s'", cpumask);
-        VIR_FREE(cpumask);
-    }
-    if (virDomainDefHasVcpusOffline(def))
-        virBufferAsprintf(buf, " current='%u'", virDomainDefGetVcpus(def));
-    virBufferAsprintf(buf, ">%u</vcpu>\n", virDomainDefGetVcpusMax(def));
+    if (virDomainCpuDefFormat(buf, def) < 0)
+        goto error;
 
     if (def->niothreadids > 0) {
         virBufferAsprintf(buf, "<iothreads>%u</iothreads>\n",