[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 3/4] qom: Add user_creatable_print_help_from_qdict()
From: |
Markus Armbruster |
Subject: |
Re: [PATCH v2 3/4] qom: Add user_creatable_print_help_from_qdict() |
Date: |
Fri, 02 Oct 2020 14:25:44 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) |
Kevin Wolf <kwolf@redhat.com> writes:
> This adds a function that, given a QDict of non-help options, prints
> help for user creatable objects.
>
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
> ---
> include/qom/object_interfaces.h | 9 +++++++++
> qom/object_interfaces.c | 9 +++++++++
> 2 files changed, 18 insertions(+)
>
> diff --git a/include/qom/object_interfaces.h b/include/qom/object_interfaces.h
> index f118fb516b..53b114b11a 100644
> --- a/include/qom/object_interfaces.h
> +++ b/include/qom/object_interfaces.h
> @@ -161,6 +161,15 @@ int user_creatable_add_opts_foreach(void *opaque,
> */
> bool user_creatable_print_help(const char *type, QemuOpts *opts);
>
> +/**
> + * user_creatable_print_help_from_qdict:
> + * @args: options to create
> + *
> + * Prints help considering the other options given in @args (if "qom-type" is
> + * given and valid, print properties for the type, otherwise print valid
> types)
> + */
> +void user_creatable_print_help_from_qdict(QDict *args);
> +
> /**
> * user_creatable_del:
> * @id: the unique ID for the object
> diff --git a/qom/object_interfaces.c b/qom/object_interfaces.c
> index 3fd1da157e..ed896fe764 100644
> --- a/qom/object_interfaces.c
> +++ b/qom/object_interfaces.c
> @@ -279,6 +279,15 @@ bool user_creatable_print_help(const char *type,
> QemuOpts *opts)
> return false;
> }
>
> +void user_creatable_print_help_from_qdict(QDict *args)
> +{
> + const char *type = qdict_get_try_str(args, "qom-type");
> +
> + if (!type || !user_creatable_print_type_properites(type)) {
> + user_creatable_print_types();
> + }
Existing user_creatable_print_help():
1. "qom-type=help,..." and its sugared forms, in particular "help"
List QOM types and succeed.
2. "qom-type=T,help,..."
2a. If T names a QOM type
List T's properties and succeed.
2b. If T does not name a QOM type
Fail. Callers typically interpret this as "no help requested",
proceed, then choke on invalid qom-type=T.
New user_creatable_print_help() treats case 2b like case 1.
Intentional?
> +}
> +
> bool user_creatable_del(const char *id, Error **errp)
> {
> Object *container;
- Re: [PATCH v2 3/4] qom: Add user_creatable_print_help_from_qdict(),
Markus Armbruster <=