aboutsummaryrefslogtreecommitdiff
path: root/qom/qom-qmp-cmds.c
diff options
context:
space:
mode:
authorKevin Wolf <kwolf@redhat.com>2021-02-17 12:06:20 +0100
committerKevin Wolf <kwolf@redhat.com>2021-03-19 10:17:14 +0100
commitf375026606f4ae1486189cb758cd0dfa60b3c18f (patch)
tree8d37e6cbc10043a5a252c3cbf7257f18e8bcb680 /qom/qom-qmp-cmds.c
parentc9231123907415d7737263b9ca6f125a8181463b (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.c20
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)