aboutsummaryrefslogtreecommitdiff
path: root/qom/qom-qmp-cmds.c
diff options
context:
space:
mode:
Diffstat (limited to 'qom/qom-qmp-cmds.c')
-rw-r--r--qom/qom-qmp-cmds.c28
1 files changed, 5 insertions, 23 deletions
diff --git a/qom/qom-qmp-cmds.c b/qom/qom-qmp-cmds.c
index b40ac39f30..2d6f41ecc7 100644
--- a/qom/qom-qmp-cmds.c
+++ b/qom/qom-qmp-cmds.c
@@ -19,8 +19,11 @@
#include "qapi/error.h"
#include "qapi/qapi-commands-qdev.h"
#include "qapi/qapi-commands-qom.h"
+#include "qapi/qapi-visit-qom.h"
#include "qapi/qmp/qdict.h"
#include "qapi/qmp/qerror.h"
+#include "qapi/qobject-input-visitor.h"
+#include "qapi/qobject-output-visitor.h"
#include "qemu/cutils.h"
#include "qom/object_interfaces.h"
#include "qom/qom-qobject.h"
@@ -223,30 +226,9 @@ ObjectPropertyInfoList *qmp_qom_list_properties(const char *typename,
return prop_list;
}
-void qmp_object_add(QDict *qdict, QObject **ret_data, Error **errp)
+void qmp_object_add(ObjectOptions *options, Error **errp)
{
- QObject *props;
- QDict *pdict;
-
- props = qdict_get(qdict, "props");
- if (props) {
- pdict = qobject_to(QDict, props);
- if (!pdict) {
- error_setg(errp, QERR_INVALID_PARAMETER_TYPE, "props", "dict");
- return;
- }
- qobject_ref(pdict);
- qdict_del(qdict, "props");
- qdict_join(qdict, pdict, false);
- if (qdict_size(pdict) != 0) {
- error_setg(errp, "Option in 'props' conflicts with top level");
- qobject_unref(pdict);
- return;
- }
- qobject_unref(pdict);
- }
-
- user_creatable_add_dict(qdict, false, errp);
+ user_creatable_add_qapi(options, errp);
}
void qmp_object_del(const char *id, Error **errp)