diff options
author | Kevin Wolf <kwolf@redhat.com> | 2020-01-29 11:22:39 +0100 |
---|---|---|
committer | Markus Armbruster <armbru@redhat.com> | 2020-02-17 13:53:47 +0100 |
commit | 7d3f505359214734d46c159af0a88b522f6692ad (patch) | |
tree | 2cfad3dda41052529e8f0e1e46844b6d9b3585c8 /monitor/qmp-cmds-control.c | |
parent | 567628163ec8c6b76ba3117c3062edc0521dc185 (diff) | |
download | qemu-7d3f505359214734d46c159af0a88b522f6692ad.zip |
monitor: Move qmp_query_qmp_schema to qmp-cmds-control.c
monitor/misc.c contains code that works only in the system emulator, so
it can't be linked to tools like a storage daemon. In order to make
schema introspection available for tools, move the function to
monitor/qmp-cmds-control.c, which can be linked into the storage daemon.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20200129102239.31435-5-kwolf@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Diffstat (limited to 'monitor/qmp-cmds-control.c')
-rw-r--r-- | monitor/qmp-cmds-control.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/monitor/qmp-cmds-control.c b/monitor/qmp-cmds-control.c index d5f21f90e6..5cd9bb817c 100644 --- a/monitor/qmp-cmds-control.c +++ b/monitor/qmp-cmds-control.c @@ -29,6 +29,7 @@ #include "qapi/error.h" #include "qapi/qapi-commands-control.h" #include "qapi/qapi-emit-events.h" +#include "qapi/qapi-introspect.h" /* * Accept QMP capabilities in @list for @mon. @@ -151,3 +152,18 @@ EventInfoList *qmp_query_events(Error **errp) return ev_list; } + +/* + * Minor hack: generated marshalling suppressed for this command + * ('gen': false in the schema) so we can parse the JSON string + * directly into QObject instead of first parsing it with + * visit_type_SchemaInfoList() into a SchemaInfoList, then marshal it + * to QObject with generated output marshallers, every time. Instead, + * we do it in test-qobject-input-visitor.c, just to make sure + * qapi-gen.py's output actually conforms to the schema. + */ +void qmp_query_qmp_schema(QDict *qdict, QObject **ret_data, + Error **errp) +{ + *ret_data = qobject_from_qlit(&qmp_schema_qlit); +} |