diff options
author | Kevin Wolf <kwolf@redhat.com> | 2021-02-17 12:06:20 +0100 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2021-03-19 10:17:14 +0100 |
commit | f375026606f4ae1486189cb758cd0dfa60b3c18f (patch) | |
tree | 8d37e6cbc10043a5a252c3cbf7257f18e8bcb680 /qom/qom-qmp-cmds.c | |
parent | c9231123907415d7737263b9ca6f125a8181463b (diff) |
qom: Factor out user_creatable_process_cmdline()
The implementation for --object can be shared between
qemu-storage-daemon and other binaries, so move it into a function in
qom/object_interfaces.c that is accessible from everywhere.
This also requires moving the implementation of qmp_object_add() into a
new user_creatable_add_qapi(), because qom/qom-qmp-cmds.c is not linked
for tools.
user_creatable_print_help_from_qdict() can become static now.
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>
Diffstat (limited to 'qom/qom-qmp-cmds.c')
-rw-r--r-- | qom/qom-qmp-cmds.c | 20 |
1 files changed, 1 insertions, 19 deletions
diff --git a/qom/qom-qmp-cmds.c b/qom/qom-qmp-cmds.c index e577a96adf..2d6f41ecc7 100644 --- a/qom/qom-qmp-cmds.c +++ b/qom/qom-qmp-cmds.c @@ -228,25 +228,7 @@ ObjectPropertyInfoList *qmp_qom_list_properties(const char *typename, void qmp_object_add(ObjectOptions *options, Error **errp) { - Visitor *v; - QObject *qobj; - QDict *props; - Object *obj; - - v = qobject_output_visitor_new(&qobj); - visit_type_ObjectOptions(v, NULL, &options, &error_abort); - visit_complete(v, &qobj); - visit_free(v); - - props = qobject_to(QDict, qobj); - qdict_del(props, "qom-type"); - qdict_del(props, "id"); - - v = qobject_input_visitor_new(QOBJECT(props)); - obj = user_creatable_add_type(ObjectType_str(options->qom_type), - options->id, props, v, errp); - object_unref(obj); - visit_free(v); + user_creatable_add_qapi(options, errp); } void qmp_object_del(const char *id, Error **errp) |