aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@redhat.com>2020-01-10 19:30:39 +0400
committerPaolo Bonzini <pbonzini@redhat.com>2020-01-24 20:59:17 +0100
commite1043d674d792ff64aebae1a3eafc08b38a8a085 (patch)
treea36cd9c2aeef22f2a637a85be549361e9a737d4d
parent1bb3d7d92c9e39ec2d45a830d8654e6ec11a60d3 (diff)
qdev: use object_property_help()
Use the common function introduced earlier, and report default value. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20200110153039.1379601-27-marcandre.lureau@redhat.com> [Sort the properties, following what is done for -object ...,help. - Paolo] Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r--qdev-monitor.c28
1 files changed, 16 insertions, 12 deletions
diff --git a/qdev-monitor.c b/qdev-monitor.c
index c92926219f..8ce71a206b 100644
--- a/qdev-monitor.c
+++ b/qdev-monitor.c
@@ -37,6 +37,7 @@
#include "sysemu/sysemu.h"
#include "migration/misc.h"
#include "migration/migration.h"
+#include "qemu/cutils.h"
/*
* Aliases were a bad idea from the start. Let's keep them
@@ -256,6 +257,8 @@ int qdev_device_help(QemuOpts *opts)
const char *driver;
ObjectPropertyInfoList *prop_list;
ObjectPropertyInfoList *prop;
+ GPtrArray *array;
+ int i;
driver = qemu_opt_get(opts, "driver");
if (driver && is_help_option(driver)) {
@@ -285,19 +288,20 @@ int qdev_device_help(QemuOpts *opts)
} else {
qemu_printf("There are no options for %s.\n", driver);
}
+ array = g_ptr_array_new();
for (prop = prop_list; prop; prop = prop->next) {
- int len;
- qemu_printf(" %s=<%s>%n", prop->value->name, prop->value->type, &len);
- if (prop->value->has_description) {
- if (len < 24) {
- qemu_printf("%*s", 24 - len, "");
- }
- qemu_printf(" - %s\n", prop->value->description);
- } else {
- qemu_printf("\n");
- }
- }
-
+ g_ptr_array_add(array,
+ object_property_help(prop->value->name,
+ prop->value->type,
+ prop->value->default_value,
+ prop->value->description));
+ }
+ g_ptr_array_sort(array, (GCompareFunc)qemu_pstrcmp0);
+ for (i = 0; i < array->len; i++) {
+ printf("%s\n", (char *)array->pdata[i]);
+ }
+ g_ptr_array_set_free_func(array, g_free);
+ g_ptr_array_free(array, true);
qapi_free_ObjectPropertyInfoList(prop_list);
return 1;