From 03d543d44cda86d8a139af969c8b6e972b8205bc Mon Sep 17 00:00:00 2001 From: Jeffrey Cody Date: Tue, 20 Mar 2012 14:07:37 -0300 Subject: [RHEL6 qemu-kvm PATCH 17/21] qapi: use middle mode in QMP server RH-Author: Jeffrey Cody Message-id: Patchwork-id: 38643 O-Subject: [RHEL6.3 qemu-kvm PATCH v3 17/21] qapi: use middle mode in QMP server Bugzilla: 784153 RH-Acked-by: Kevin Wolf RH-Acked-by: Paolo Bonzini RH-Acked-by: Markus Armbruster From: Anthony Liguori Use the new middle mode within the existing QMP server. Signed-off-by: Anthony Liguori Signed-off-by: Luiz Capitulino (cherry picked from commit e3193601c84558c303b1773379da76fce80c0a56) Conflicts: Makefile Makefile.target monitor.c Signed-off-by: Jeff Cody --- Makefile | 11 +++++++++++ Makefile.objs | 2 ++ monitor.c | 7 ++++--- qapi-schema.json | 3 +++ 4 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 qapi-schema.json Signed-off-by: Eduardo Habkost --- Makefile | 11 +++++++++++ Makefile.objs | 2 ++ monitor.c | 7 ++++--- qapi-schema.json | 3 +++ 4 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 qapi-schema.json diff --git a/Makefile b/Makefile index 2a25e40..23d4c7f 100644 --- a/Makefile +++ b/Makefile @@ -4,6 +4,7 @@ GENERATED_HEADERS = config-host.h trace.h config-all-devices.h ifeq ($(TRACE_BACKEND),dtrace) GENERATED_HEADERS += trace-dtrace.h endif +GENERATED_HEADERS += qmp-commands.h qapi-types.h qapi-visit.h ifneq ($(wildcard config-host.mak),) @@ -228,6 +229,16 @@ $(qapi-dir)/qga-suspend-qmp-commands.h $(qapi-dir)/qga-suspend-qmp-marshal.c :\ $(SRC_PATH)/qapi-schema-guest-suspend.json $(SRC_PATH)/scripts/qapi-commands.py $(call quiet-command,python $(SRC_PATH)/scripts/qapi-commands.py $(gen-out-type) -o "$(qapi-dir)" -p "qga-suspend-" < $<, " GEN $@") +qapi-types.c: qapi-types.h +qapi-types.h: $(SRC_PATH)/qapi-schema.json $(SRC_PATH)/scripts/qapi-types.py + $(call quiet-command,python $(SRC_PATH)/scripts/qapi-types.py -o "." < $<, " GEN $@") +qapi-visit.c: qapi-visit.h +qapi-visit.h: $(SRC_PATH)/qapi-schema.json $(SRC_PATH)/scripts/qapi-visit.py + $(call quiet-command,python $(SRC_PATH)/scripts/qapi-visit.py -o "." < $<, " GEN $@") +qmp-commands.h: qmp-marshal.c +qmp-marshal.c: $(SRC_PATH)/qapi-schema.json $(SRC_PATH)/scripts/qapi-commands.py + $(call quiet-command,python $(SRC_PATH)/scripts/qapi-commands.py -m -o "." < $<, " GEN $@") + test-visitor.o: $(addprefix $(qapi-dir)/, test-qapi-types.c test-qapi-types.h test-qapi-visit.c test-qapi-visit.h) $(qapi-obj-y) test-visitor: test-visitor.o qfloat.o qint.o qdict.o qstring.o qlist.o qbool.o $(qapi-obj-y) error.o osdep.o qemu-malloc.o $(oslib-obj-y) qjson.o json-streamer.o json-lexer.o json-parser.o qerror.o qemu-error.o qemu-tool.o $(qapi-dir)/test-qapi-visit.o $(qapi-dir)/test-qapi-types.o diff --git a/Makefile.objs b/Makefile.objs index a40bc38..bfb31bf 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -194,6 +194,8 @@ qapi-nested-y = qapi-visit-core.o qmp-input-visitor.o qmp-output-visitor.o qapi- qapi-nested-y += qmp-registry.o qmp-dispatch.o qapi-obj-y = $(addprefix qapi/, $(qapi-nested-y)) +common-obj-y += qmp-marshal.o qapi-visit.o qapi-types.o $(qapi-obj-y) + ###################################################################### # guest agent diff --git a/monitor.c b/monitor.c index 7cd84e9..06dd567 100644 --- a/monitor.c +++ b/monitor.c @@ -124,6 +124,7 @@ typedef struct mon_cmd_t { int (*cmd_async)(Monitor *mon, const QDict *params, MonitorCompletion *cb, void *opaque); } mhandler; + bool qapi; int flags; } mon_cmd_t; @@ -4747,10 +4748,10 @@ static void handle_qmp_command(JSONMessageParser *parser, QList *tokens) if (compare_cmd(cmd_name, "info")) { qerror_report(QERR_COMMAND_NOT_FOUND, cmd_name); goto err_out; - } else if (strstart(cmd_name, "query-", &query_cmd)) { + } + cmd = qmp_find_cmd(cmd_name); + if (!cmd && strstart(cmd_name, "query-", &query_cmd)) { cmd = qmp_find_query_cmd(query_cmd); - } else { - cmd = qmp_find_cmd(cmd_name); } if (!cmd || !monitor_handler_ported(cmd) || monitor_cmd_user_only(cmd)) { diff --git a/qapi-schema.json b/qapi-schema.json new file mode 100644 index 0000000..7fcefdb --- /dev/null +++ b/qapi-schema.json @@ -0,0 +1,3 @@ +# -*- Mode: Python -*- +# +# QAPI Schema -- 1.7.3.2