[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] Show values and description when using "qom-list"
From: |
Perez Blanco, Ricardo (Nokia - BE/Antwerp) |
Subject: |
[Qemu-devel] [PATCH] Show values and description when using "qom-list" |
Date: |
Fri, 13 Apr 2018 08:05:26 +0000 |
Dear all,
Here you can find my first contribution to qemu. Please, do not hesitate to do
any kind of remark.
Based on ac4ba87ae0738d7a77708f8ce31ae2378ab99654
Kind regards,
Ricardo Perez Blanco
>From 65df20cef2846d764a8a821574f5f3643391aac5 Mon Sep 17 00:00:00 2001
From: Ricardo Perez Blanco <address@hidden>
Date: Wed, 11 Apr 2018 12:09:11 +0200
Subject: [PATCH] Show values and description when using "qom-list"
For debugging purposes it is very useful to:
- See the description of the field. This information is already filled
in but not shown in "qom-list" command.
- Display value of the field. So far, only well known types are
implemented (string, str, int, uint, bool).
Signed-off-by: Ricardo Perez Blanco <address@hidden>
---
hmp.c | 13 +++++++++++--
qapi/misc.json | 4 +++-
qmp.c | 26 ++++++++++++++++++++++++++
3 files changed, 40 insertions(+), 3 deletions(-)
diff --git a/hmp.c b/hmp.c
index a25c7bd..967e0b2 100644
--- a/hmp.c
+++ b/hmp.c
@@ -2490,8 +2490,17 @@ void hmp_qom_list(Monitor *mon, const QDict *qdict)
while (list != NULL) {
ObjectPropertyInfo *value = list->value;
- monitor_printf(mon, "%s (%s)\n",
- value->name, value->type);
+ monitor_printf(mon, "%s", value->name);
+ if (value->value) {
+ monitor_printf(mon, "=%s", value->value);
+ }
+ monitor_printf(mon, " (%s)", value->type);
+ if (value->description) {
+ monitor_printf(mon, "\r\t\t\t\t\t\t\t\t\t[Description: %s]",
+ value->description);
+ }
+ monitor_printf(mon, "\n");
+
list = list->next;
}
qapi_free_ObjectPropertyInfoList(start);
diff --git a/qapi/misc.json b/qapi/misc.json
index 5636f4a..6b3b4de 100644
--- a/qapi/misc.json
+++ b/qapi/misc.json
@@ -1328,10 +1328,12 @@
#
# @description: if specified, the description of the property.
#
+# @value: if specified, the value of the property.
+#
# Since: 1.2
##
{ 'struct': 'ObjectPropertyInfo',
- 'data': { 'name': 'str', 'type': 'str', '*description': 'str' } }
+ 'data': { 'name': 'str', 'type': 'str', '*description':'str', '*value':'str'
} }
##
# @qom-list:
diff --git a/qmp.c b/qmp.c
index f722616..750b5d0 100644
--- a/qmp.c
+++ b/qmp.c
@@ -237,6 +237,32 @@ ObjectPropertyInfoList *qmp_qom_list(const char *path,
Error **errp)
entry->value->name = g_strdup(prop->name);
entry->value->type = g_strdup(prop->type);
+ if (prop->description) {
+ entry->value->description = g_strdup(prop->description);
+ }
+ if ((g_ascii_strncasecmp(entry->value->type, "string", 6) == 0) ||
+ (g_ascii_strncasecmp(entry->value->type, "str", 3) == 0)) {
+ Error **errp = NULL;
+ entry->value->value = g_strdup_printf("\"%s\"",
+ object_property_get_str(obj, entry->value->name, errp));
+ }
+ if (g_ascii_strncasecmp(entry->value->type, "int", 3) == 0) {
+ Error **errp = NULL;
+ entry->value->value = g_strdup_printf("%ld",
+ object_property_get_int(obj, entry->value->name, errp));
+ }
+ if (g_ascii_strncasecmp(entry->value->type, "uint", 4) == 0) {
+ Error **errp = NULL;
+ entry->value->value = g_strdup_printf("%lu",
+ object_property_get_uint(obj, entry->value->name, errp));
+ }
+ if (g_ascii_strncasecmp(entry->value->type, "bool", 4) == 0) {
+ Error **errp = NULL;
+ entry->value->value = g_strdup_printf("%s",
+ (object_property_get_bool(obj, entry->value->name, errp) ==
true)
+ ? "true" : "false");
+ }
+
}
return props;
--
1.8.3.1
- [Qemu-devel] [PATCH] Show values and description when using "qom-list",
Perez Blanco, Ricardo (Nokia - BE/Antwerp) <=