From: Peter Krempa Date: Thu, 4 Aug 2016 12:12:39 +0000 (+0200) Subject: qemu: command: Add helper to convert vcpu definition to JSON props X-Git-Tag: v2.2.0-rc1~21 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8807f28b8541b59704df4f90ace06b622ab77866;p=thirdparty%2Flibvirt.git qemu: command: Add helper to convert vcpu definition to JSON props For use on the monitor we need to format certain parts of the vcpu private definition into a JSON object. Add a helper. --- diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index a6dea6a5e9..28e5a7ef88 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -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; +} diff --git a/src/qemu/qemu_command.h b/src/qemu/qemu_command.h index dcf9ba6338..9b9ccb6e00 100644 --- a/src/qemu/qemu_command.h +++ b/src/qemu/qemu_command.h @@ -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__*/