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@xxxxxxxxxx> > --- > 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", >
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list