diff options
author | Kevin Wolf <kwolf@redhat.com> | 2021-02-17 15:27:54 +0100 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2021-03-19 10:17:14 +0100 |
commit | da0a932bbf06a71210300893eeb4d51217238b11 (patch) | |
tree | 13d4c807e020979a07c5404b2733a1c1437ffefd /monitor | |
parent | 99b1e64688893d0b772074b5a2972a0bad85c19f (diff) | |
download | qemu-da0a932bbf06a71210300893eeb4d51217238b11.zip qemu-da0a932bbf06a71210300893eeb4d51217238b11.tar.gz qemu-da0a932bbf06a71210300893eeb4d51217238b11.tar.bz2 |
hmp: QAPIfy object_add
This switches the HMP command object_add from a QemuOpts-based parser to
user_creatable_add_from_str() which uses a keyval parser and enforces
the QAPI schema.
Apart from being a cleanup, this makes non-scalar properties and help
accessible. In order for help to be printed to the monitor instead of
stdout, the printf() calls in the help functions are changed to
qemu_printf().
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Diffstat (limited to 'monitor')
-rw-r--r-- | monitor/hmp-cmds.c | 17 |
1 files changed, 2 insertions, 15 deletions
diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index 8a47ba8..0ad5b77 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -1636,24 +1636,11 @@ void hmp_netdev_del(Monitor *mon, const QDict *qdict) void hmp_object_add(Monitor *mon, const QDict *qdict) { + const char *options = qdict_get_str(qdict, "object"); Error *err = NULL; - QemuOpts *opts; - Object *obj = NULL; - - opts = qemu_opts_from_qdict(qemu_find_opts("object"), qdict, &err); - if (err) { - goto end; - } - obj = user_creatable_add_opts(opts, &err); - qemu_opts_del(opts); - -end: + user_creatable_add_from_str(options, &err); hmp_handle_error(mon, err); - - if (obj) { - object_unref(obj); - } } void hmp_getfd(Monitor *mon, const QDict *qdict) |