[libvirt] [PATCH 2/3] qemu_monitor: move qemuMonitorJSONObjectProperty from qemu_monitor_json
Ján Tomko
jtomko at redhat.com
Tue Dec 16 07:25:12 UTC 2014
On 12/11/2014 04:42 PM, Pavel Hrdina wrote:
> Moving the struct and friends to qemu_monitor.h because the
> 'qemuMonitorJSONGetObjectProperty' has usage also for internal libvirt
> code not only for tests.
These properties are not really needed outside qemu_monitor_json.c if you keep
FindObjectPath in _json.c as well and create a wrapper like:
qemuMonitorGetVideoRam(*device, *alias, *vram, *ram, *vgamem)
Jan
>
> Signed-off-by: Pavel Hrdina <phrdina at redhat.com>
> ---
> src/qemu/qemu_monitor.h | 28 ++++++++++++++++++++++++++++
> src/qemu/qemu_monitor_json.c | 12 ++++++------
> src/qemu/qemu_monitor_json.h | 34 ++--------------------------------
> tests/qemumonitorjsontest.c | 10 +++++-----
> 4 files changed, 41 insertions(+), 43 deletions(-)
>
> diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h
> index 21533a4..4918588 100644
> --- a/src/qemu/qemu_monitor.h
> +++ b/src/qemu/qemu_monitor.h
> @@ -211,6 +211,34 @@ struct _qemuMonitorCallbacks {
> qemuMonitorDomainSerialChangeCallback domainSerialChange;
> };
>
> +/* Flags for the 'type' field in _qemuMonitorObjectProperty */
> +typedef enum {
> + QEMU_MONITOR_OBJECT_PROPERTY_BOOLEAN=1,
> + QEMU_MONITOR_OBJECT_PROPERTY_INT,
> + QEMU_MONITOR_OBJECT_PROPERTY_LONG,
> + QEMU_MONITOR_OBJECT_PROPERTY_UINT,
> + QEMU_MONITOR_OBJECT_PROPERTY_ULONG,
> + QEMU_MONITOR_OBJECT_PROPERTY_DOUBLE,
> + QEMU_MONITOR_OBJECT_PROPERTY_STRING,
> +
> + QEMU_MONITOR_OBJECT_PROPERTY_LAST
> +} qemuMonitorObjectPropertyType;
> +
> +typedef struct _qemuMonitorObjectProperty qemuMonitorObjectProperty;
> +typedef qemuMonitorObjectProperty *qemuMonitorObjectPropertyPtr;
> +struct _qemuMonitorObjectProperty {
> + int type; /* qemuMonitorObjectPropertyType */
> + union {
> + bool b;
> + int iv;
> + long long l;
> + unsigned int ui;
> + unsigned long long ul;
> + double d;
> + char *str;
> + } val;
> +};
> +
> char *qemuMonitorEscapeArg(const char *in);
> char *qemuMonitorUnescapeArg(const char *in);
>
> diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
> index 162579b..7854b9c 100644
> --- a/src/qemu/qemu_monitor_json.c
> +++ b/src/qemu/qemu_monitor_json.c
> @@ -1489,10 +1489,10 @@ qemuMonitorJSONSetMemoryStatsPeriod(qemuMonitorPtr mon,
> char *balloonpath,
> int period)
> {
> - qemuMonitorJSONObjectProperty prop;
> + qemuMonitorObjectProperty prop;
>
> /* Set to the value in memballoon (could enable or disable) */
> - memset(&prop, 0, sizeof(qemuMonitorJSONObjectProperty));
> + memset(&prop, 0, sizeof(qemuMonitorObjectProperty));
> prop.type = QEMU_MONITOR_OBJECT_PROPERTY_INT;
> prop.val.iv = period;
> if (qemuMonitorJSONSetObjectProperty(mon, balloonpath,
> @@ -5287,7 +5287,7 @@ void qemuMonitorJSONListPathFree(qemuMonitorJSONListPathPtr paths)
> int qemuMonitorJSONGetObjectProperty(qemuMonitorPtr mon,
> const char *path,
> const char *property,
> - qemuMonitorJSONObjectPropertyPtr prop)
> + qemuMonitorObjectPropertyPtr prop)
> {
> int ret;
> virJSONValuePtr cmd;
> @@ -5317,7 +5317,7 @@ int qemuMonitorJSONGetObjectProperty(qemuMonitorPtr mon,
> goto cleanup;
> }
>
> - switch ((qemuMonitorJSONObjectPropertyType) prop->type) {
> + switch ((qemuMonitorObjectPropertyType) prop->type) {
> /* Simple cases of boolean, int, long, uint, ulong, double, and string
> * will receive return value as part of {"return": xxx} statement
> */
> @@ -5378,13 +5378,13 @@ int qemuMonitorJSONGetObjectProperty(qemuMonitorPtr mon,
> int qemuMonitorJSONSetObjectProperty(qemuMonitorPtr mon,
> const char *path,
> const char *property,
> - qemuMonitorJSONObjectPropertyPtr prop)
> + qemuMonitorObjectPropertyPtr prop)
> {
> int ret = -1;
> virJSONValuePtr cmd = NULL;
> virJSONValuePtr reply = NULL;
>
> - switch ((qemuMonitorJSONObjectPropertyType) prop->type) {
> + switch ((qemuMonitorObjectPropertyType) prop->type) {
> /* Simple cases of boolean, int, long, uint, ulong, double, and string
> * will receive return value as part of {"return": xxx} statement
> */
> diff --git a/src/qemu/qemu_monitor_json.h b/src/qemu/qemu_monitor_json.h
> index ae20fb1..b8f14bc 100644
> --- a/src/qemu/qemu_monitor_json.h
> +++ b/src/qemu/qemu_monitor_json.h
> @@ -388,47 +388,17 @@ int qemuMonitorJSONGetObjectListPaths(qemuMonitorPtr mon,
>
> void qemuMonitorJSONListPathFree(qemuMonitorJSONListPathPtr paths);
>
> -/* ObjectProperty structures and Get/Set API's are public only
> - * for qemumonitorjsontest
> - */
> -/* Flags for the 'type' field in _qemuMonitorJSONObjectProperty */
> -typedef enum {
> - QEMU_MONITOR_OBJECT_PROPERTY_BOOLEAN=1,
> - QEMU_MONITOR_OBJECT_PROPERTY_INT,
> - QEMU_MONITOR_OBJECT_PROPERTY_LONG,
> - QEMU_MONITOR_OBJECT_PROPERTY_UINT,
> - QEMU_MONITOR_OBJECT_PROPERTY_ULONG,
> - QEMU_MONITOR_OBJECT_PROPERTY_DOUBLE,
> - QEMU_MONITOR_OBJECT_PROPERTY_STRING,
> -
> - QEMU_MONITOR_OBJECT_PROPERTY_LAST
> -} qemuMonitorJSONObjectPropertyType;
> -
> -typedef struct _qemuMonitorJSONObjectProperty qemuMonitorJSONObjectProperty;
> -typedef qemuMonitorJSONObjectProperty *qemuMonitorJSONObjectPropertyPtr;
> -struct _qemuMonitorJSONObjectProperty {
> - int type; /* qemuMonitorJSONObjectPropertyType */
> - union {
> - bool b;
> - int iv;
> - long long l;
> - unsigned int ui;
> - unsigned long long ul;
> - double d;
> - char *str;
> - } val;
> -};
>
> int qemuMonitorJSONGetObjectProperty(qemuMonitorPtr mon,
> const char *path,
> const char *property,
> - qemuMonitorJSONObjectPropertyPtr prop)
> + qemuMonitorObjectPropertyPtr prop)
> ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4);
>
> int qemuMonitorJSONSetObjectProperty(qemuMonitorPtr mon,
> const char *path,
> const char *property,
> - qemuMonitorJSONObjectPropertyPtr prop)
> + qemuMonitorObjectPropertyPtr prop)
> ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4);
>
> int qemuMonitorJSONGetObjectProps(qemuMonitorPtr mon,
> diff --git a/tests/qemumonitorjsontest.c b/tests/qemumonitorjsontest.c
> index bd92e63..14cde7c 100644
> --- a/tests/qemumonitorjsontest.c
> +++ b/tests/qemumonitorjsontest.c
> @@ -895,7 +895,7 @@ testQemuMonitorJSONGetObjectProperty(const void *data)
> virDomainXMLOptionPtr xmlopt = (virDomainXMLOptionPtr)data;
> qemuMonitorTestPtr test = qemuMonitorTestNewSimple(true, xmlopt);
> int ret = -1;
> - qemuMonitorJSONObjectProperty prop;
> + qemuMonitorObjectProperty prop;
>
> if (!test)
> return -1;
> @@ -905,7 +905,7 @@ testQemuMonitorJSONGetObjectProperty(const void *data)
> goto cleanup;
>
> /* Present with path and property */
> - memset(&prop, 0, sizeof(qemuMonitorJSONObjectProperty));
> + memset(&prop, 0, sizeof(qemuMonitorObjectProperty));
> prop.type = QEMU_MONITOR_OBJECT_PROPERTY_BOOLEAN;
> if (qemuMonitorJSONGetObjectProperty(qemuMonitorTestGetMonitor(test),
> "/machine/i440fx",
> @@ -938,7 +938,7 @@ testQemuMonitorJSONSetObjectProperty(const void *data)
> virDomainXMLOptionPtr xmlopt = (virDomainXMLOptionPtr)data;
> qemuMonitorTestPtr test = qemuMonitorTestNewSimple(true, xmlopt);
> int ret = -1;
> - qemuMonitorJSONObjectProperty prop;
> + qemuMonitorObjectProperty prop;
>
> if (!test)
> return -1;
> @@ -951,7 +951,7 @@ testQemuMonitorJSONSetObjectProperty(const void *data)
> goto cleanup;
>
> /* Let's attempt the setting */
> - memset(&prop, 0, sizeof(qemuMonitorJSONObjectProperty));
> + memset(&prop, 0, sizeof(qemuMonitorObjectProperty));
> prop.type = QEMU_MONITOR_OBJECT_PROPERTY_BOOLEAN;
> prop.val.b = true;
> if (qemuMonitorJSONSetObjectProperty(qemuMonitorTestGetMonitor(test),
> @@ -963,7 +963,7 @@ testQemuMonitorJSONSetObjectProperty(const void *data)
> /* To make sure it worked, fetch the property - if this succeeds then
> * we didn't hose things
> */
> - memset(&prop, 0, sizeof(qemuMonitorJSONObjectProperty));
> + memset(&prop, 0, sizeof(qemuMonitorObjectProperty));
> prop.type = QEMU_MONITOR_OBJECT_PROPERTY_BOOLEAN;
> if (qemuMonitorJSONGetObjectProperty(qemuMonitorTestGetMonitor(test),
> "/machine/i440fx",
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20141216/740f8fcb/attachment-0001.sig>
More information about the libvir-list
mailing list