This adds a function that, given a QDict of non-help options, prints help for user creatable objects.
Signed-off-by: Kevin Wolf <kw...@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(); + } +} + bool user_creatable_del(const char *id, Error **errp) { Object *container; -- 2.25.4