]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: command: Add helper to convert vcpu definition to JSON props
authorPeter Krempa <pkrempa@redhat.com>
Thu, 4 Aug 2016 12:12:39 +0000 (14:12 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Wed, 24 Aug 2016 19:44:47 +0000 (15:44 -0400)
For use on the monitor we need to format certain parts of the vcpu
private definition into a JSON object. Add a helper.

src/qemu/qemu_command.c
src/qemu/qemu_command.h

index a6dea6a5e993b3812bbb351333be3871b97a9df5..28e5a7ef88f42afc8df8f101ae449f664a9b8cc9 100644 (file)
@@ -9799,3 +9799,33 @@ qemuBuildChrDeviceStr(char **deviceStr,
 
     return ret;
 }
+
+
+virJSONValuePtr
+qemuBuildHotpluggableCPUProps(const virDomainVcpuDef *vcpu)
+{
+    qemuDomainVcpuPrivatePtr vcpupriv = QEMU_DOMAIN_VCPU_PRIVATE(vcpu);
+    virJSONValuePtr ret = NULL;
+
+    if (virJSONValueObjectCreate(&ret, "s:driver", vcpupriv->type,
+                                       "s:id", vcpupriv->alias, NULL) < 0)
+        goto error;
+
+    if (vcpupriv->socket_id != -1 &&
+        virJSONValueObjectAdd(ret, "i:socket-id", vcpupriv->socket_id, NULL) < 0)
+        goto error;
+
+    if (vcpupriv->core_id != -1 &&
+        virJSONValueObjectAdd(ret, "i:core-id", vcpupriv->core_id, NULL) < 0)
+        goto error;
+
+    if (vcpupriv->thread_id != -1 &&
+        virJSONValueObjectAdd(ret, "i:thread-id", vcpupriv->thread_id, NULL) < 0)
+        goto error;
+
+    return ret;
+
+ error:
+    virJSONValueFree(ret);
+    return NULL;
+}
index dcf9ba63382a6adedfddcb1578f54cd0d9fa1216..9b9ccb6e00831185146b8045368bfd7c8aea76fd 100644 (file)
@@ -179,4 +179,7 @@ bool qemuCheckCCWS390AddressSupport(const virDomainDef *def,
                                     virQEMUCapsPtr qemuCaps,
                                     const char *devicename);
 
+virJSONValuePtr qemuBuildHotpluggableCPUProps(const virDomainVcpuDef *vcpu)
+    ATTRIBUTE_NONNULL(1);
+
 #endif /* __QEMU_COMMAND_H__*/