diff options
author | Marc-André Lureau <marcandre.lureau@redhat.com> | 2020-01-10 19:30:39 +0400 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2020-01-24 20:59:17 +0100 |
commit | e1043d674d792ff64aebae1a3eafc08b38a8a085 (patch) | |
tree | a36cd9c2aeef22f2a637a85be549361e9a737d4d | |
parent | 1bb3d7d92c9e39ec2d45a830d8654e6ec11a60d3 (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.c | 28 |
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; |