[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v3 11/49] qapi/commands: add #if conditions to comma
From: |
Marc-André Lureau |
Subject: |
[Qemu-devel] [PATCH v3 11/49] qapi/commands: add #if conditions to commands |
Date: |
Wed, 21 Mar 2018 12:51:33 +0100 |
Wrap generated code with #if/#endif using an 'ifcontext' on
QAPIGenCSnippet objects.
Signed-off-by: Marc-André Lureau <address@hidden>
---
scripts/qapi/commands.py | 19 ++++++++++---------
tests/test-qmp-cmds.c | 4 ++--
2 files changed, 12 insertions(+), 11 deletions(-)
diff --git a/scripts/qapi/commands.py b/scripts/qapi/commands.py
index e2366b4801..40bb680b7c 100644
--- a/scripts/qapi/commands.py
+++ b/scripts/qapi/commands.py
@@ -237,7 +237,7 @@ class
QAPISchemaGenCommandVisitor(QAPISchemaModularCVisitor):
QAPISchemaModularCVisitor.__init__(
self, prefix, 'qapi-commands',
' * Schema-defined QAPI/QMP commands', __doc__)
- self._regy = ''
+ self._regy = QAPIGenCSnippet()
self._visited_ret_types = {}
def _begin_module(self, name):
@@ -273,19 +273,20 @@ class
QAPISchemaGenCommandVisitor(QAPISchemaModularCVisitor):
void %(c_prefix)sqmp_init_marshal(QmpCommandList *cmds);
''',
c_prefix=c_name(self._prefix, protect=False)))
- genc.add(gen_registry(self._regy, self._prefix))
+ genc.add(gen_registry(self._regy.get_content(), self._prefix))
def visit_command(self, name, info, ifcond, arg_type, ret_type,
gen, success_response, boxed, allow_oob):
if not gen:
return
- self._genh.add(gen_command_decl(name, arg_type, boxed, ret_type))
- if ret_type and ret_type not in self._visited_ret_types[self._genc]:
- self._visited_ret_types[self._genc].add(ret_type)
- self._genc.add(gen_marshal_output(ret_type))
- self._genh.add(gen_marshal_decl(name))
- self._genc.add(gen_marshal(name, arg_type, boxed, ret_type))
- self._regy += gen_register_command(name, success_response, allow_oob)
+ with ifcontext(ifcond, self._genh, self._genc, self._regy):
+ self._genh.add(gen_command_decl(name, arg_type, boxed, ret_type))
+ if ret_type and ret_type not in
self._visited_ret_types[self._genc]:
+ self._visited_ret_types[self._genc].add(ret_type)
+ self._genc.add(gen_marshal_output(ret_type))
+ self._genh.add(gen_marshal_decl(name))
+ self._genc.add(gen_marshal(name, arg_type, boxed, ret_type))
+ self._regy.add(gen_register_command(name, success_response,
allow_oob))
def gen_commands(schema, output_dir, prefix):
diff --git a/tests/test-qmp-cmds.c b/tests/test-qmp-cmds.c
index c25fc2100a..e675722593 100644
--- a/tests/test-qmp-cmds.c
+++ b/tests/test-qmp-cmds.c
@@ -12,11 +12,11 @@
static QmpCommandList qmp_commands;
-/* #if defined(TEST_IF_STRUCT) && defined(TEST_IF_CMD) */
+#if defined(TEST_IF_STRUCT) && defined(TEST_IF_CMD)
void qmp_TestIfCmd(TestIfStruct *foo, Error **errp)
{
}
-/* #endif */
+#endif
void qmp_user_def_cmd(Error **errp)
{
--
2.16.2.521.g9aa15f885a
- [Qemu-devel] [PATCH v3 01/49] qapi/visit: remove useless prefix argument, (continued)
- [Qemu-devel] [PATCH v3 01/49] qapi/visit: remove useless prefix argument, Marc-André Lureau, 2018/03/21
- [Qemu-devel] [PATCH v3 02/49] qapi/events: generate event enum in main module, Marc-André Lureau, 2018/03/21
- [Qemu-devel] [PATCH v3 03/49] qapi: add 'if' to top-level expressions, Marc-André Lureau, 2018/03/21
- [Qemu-devel] [PATCH v3 04/49] qapi: pass 'if' condition into QAPISchemaEntity objects, Marc-André Lureau, 2018/03/21
- [Qemu-devel] [PATCH v3 05/49] qapi: leave the ifcond attribute undefined until check(), Marc-André Lureau, 2018/03/21
- [Qemu-devel] [PATCH v3 06/49] qapi: add 'ifcond' to visitor methods, Marc-André Lureau, 2018/03/21
- [Qemu-devel] [PATCH v3 07/49] qapi: mcgen() shouldn't indent # lines, Marc-André Lureau, 2018/03/21
- [Qemu-devel] [PATCH v3 08/49] qapi: add #if/#endif helpers, Marc-André Lureau, 2018/03/21
- [Qemu-devel] [PATCH v3 10/49] qapi-introspect: add preprocessor conditions to generated QLit, Marc-André Lureau, 2018/03/21
- [Qemu-devel] [PATCH v3 09/49] qapi-introspect: modify to_qlit() to append ', ' on level > 0, Marc-André Lureau, 2018/03/21
- [Qemu-devel] [PATCH v3 11/49] qapi/commands: add #if conditions to commands,
Marc-André Lureau <=
- [Qemu-devel] [PATCH v3 12/49] qapi/events: add #if conditions to events, Marc-André Lureau, 2018/03/21
- [Qemu-devel] [PATCH v3 13/49] qapi-types: refactor variants handling, Marc-André Lureau, 2018/03/21
- [Qemu-devel] [PATCH v3 14/49] qapi-types: add #if conditions to types & visitors, Marc-André Lureau, 2018/03/21
- [Qemu-devel] [PATCH v3 15/49] qapi: do not define enumeration value explicitely, Marc-André Lureau, 2018/03/21
- [Qemu-devel] [PATCH v3 16/49] qapi: rename QAPISchemaEnumType.values to .members, Marc-André Lureau, 2018/03/21
- [Qemu-devel] [PATCH v3 17/49] qapi: change enum visitor to take QAPISchemaMember, Marc-André Lureau, 2018/03/21
- [Qemu-devel] [PATCH v3 18/49] tests: modify visit_enum_type() in test-qapi to print members, Marc-André Lureau, 2018/03/21
- [Qemu-devel] [PATCH v3 19/49] qapi: factor out check_known_keys(), Marc-André Lureau, 2018/03/21
- [Qemu-devel] [PATCH v3 20/49] qapi: add a dictionnary form with 'name' key for enum members, Marc-André Lureau, 2018/03/21
- [Qemu-devel] [PATCH v3 21/49] qapi: add 'if' to enum members, Marc-André Lureau, 2018/03/21