From d6a5beeb2bbf4f5ce6e6396051fb4c5fcced56a4 Mon Sep 17 00:00:00 2001 From: Kevin Wolf Date: Thu, 16 Apr 2020 17:04:20 +0200 Subject: qom: Factor out user_creatable_add_dict() The QMP handler qmp_object_add() and the implementation of --object in qemu-storage-daemon can share most of the code. Currently, qemu-storage-daemon calls qmp_object_add(), but this is not correct because different visitors need to be used. As a first step towards a fix, make qmp_object_add() a wrapper around a new function user_creatable_add_dict() that can get an additional parameter. The handling of "props" is only required for compatibility and not required for the qemu-storage-daemon command line, so it stays in qmp_object_add(). Signed-off-by: Kevin Wolf --- include/qom/object_interfaces.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'include/qom') diff --git a/include/qom/object_interfaces.h b/include/qom/object_interfaces.h index 6f92f3c..a003796 100644 --- a/include/qom/object_interfaces.h +++ b/include/qom/object_interfaces.h @@ -88,6 +88,18 @@ Object *user_creatable_add_type(const char *type, const char *id, Visitor *v, Error **errp); /** + * user_creatable_add_dict: + * @qdict: the object definition + * @errp: if an error occurs, a pointer to an area to store the error + * + * Create an instance of the user creatable object that is defined by + * @qdict. The object type is taken from the QDict key 'qom-type', its + * ID from the key 'id'. The remaining entries in @qdict are used to + * initialize the object properties. + */ +void user_creatable_add_dict(QDict *qdict, Error **errp); + +/** * user_creatable_add_opts: * @opts: the object definition * @errp: if an error occurs, a pointer to an area to store the error -- cgit v1.1