Commit e1043d67 authored by Marc-André Lureau's avatar Marc-André Lureau Committed by Paolo Bonzini
Browse files

qdev: use object_property_help()



Use the common function introduced earlier, and report default value.

Signed-off-by: default avatarMarc-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: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent 1bb3d7d9
Loading
Loading
Loading
Loading
+16 −12
Original line number Diff line number Diff line
@@ -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;