[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] 答复: Re: [PATCH] object: Add 'help' option to print all ava
From: |
Lin Ma |
Subject: |
[Qemu-devel] 答复: Re: [PATCH] object: Add 'help' option to print all available object backend types |
Date: |
Thu, 18 Aug 2016 03:57:07 -0600 |
>>> Markus Armbruster <address@hidden> 2016/8/17 星期三 下午 2:48 >>>
>Lin Ma <address@hidden> writes:
>
>> Signed-off-by: Lin Ma <address@hidden>
>> ---
>> qemu-options.hx | 5 ++++-
>> qom/object_interfaces.c | 16 ++++++++++++++++
>> 2 files changed, 20 insertions(+), 1 deletion(-)
>>
>> diff --git a/qemu-options.hx b/qemu-options.hx
>> index a71aaf8..c5f4a12 100644
>> --- a/qemu-options.hx
>> +++ b/qemu-options.hx
>> @@ -3752,7 +3752,8 @@ DEF("object", HAS_ARG, QEMU_OPTION_object,
>> " create a new object of type TYPENAME setting
>> properties\n"
>> " in the order they are specified. Note that
>> the 'id'\n"
>> " property must be set. These objects are
>> placed in the\n"
>> - " '/objects' path.\n",
>> + " '/objects' path.\n"
>> + " Use '-object help' to print available
>> backend types.\n",
>> QEMU_ARCH_ALL)
>> STEXI
>> @item -object @var{typename}[,@address@hidden,...]
>> @@ -3762,6 +3763,8 @@ in the order they are specified. Note that the 'id'
>> property must be set. These objects are placed in the
>> '/objects' path.
>>
>> +Use '-object help' to print available backend types.
>> +
>> @table @option
>>
>> @item -object
>> memory-backend-file,address@hidden,address@hidden,address@hidden,address@hidden|off}
>> diff --git a/qom/object_interfaces.c b/qom/object_interfaces.c
>> index bf59846..8f820a4 100644
>> --- a/qom/object_interfaces.c
>> +++ b/qom/object_interfaces.c
>> @@ -58,6 +58,22 @@ Object *user_creatable_add(const QDict *qdict,
>> goto out_visit;
>> }
>>
>> + if (!strcmp(type, "help")) {
>
>Please use is_help_option().
ok, will do it.
btw, Should I add the behaviour like -device argument T,help
to show additional help for type T ?
>> + printf("Available object backend types:\n");
>> + GSList *list = object_class_get_list(TYPE_USER_CREATABLE, false);
>> + while (list) {
>> + const char *name;
>> + name = object_class_get_name(OBJECT_CLASS(list->data));
>> + /* Ignore user-creatable. */
>> + if (strcmp(name, TYPE_USER_CREATABLE)) {
>> + printf("%s\n", name);
>> + }
>> + list = list->next;
>> + }
>> + g_slist_free(list);
>> + exit(0);
>> + }
>> +
>> qdict_del(pdict, "id");
>> visit_type_str(v, "id", &id, &local_err);
>> if (local_err) {