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(a)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",