[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 22/54] qapi-introspect: add preprocessor conditio
From: |
Marc-André Lureau |
Subject: |
[Qemu-devel] [PATCH v2 22/54] qapi-introspect: add preprocessor conditions to generated QLit |
Date: |
Tue, 22 Aug 2017 15:22:23 +0200 |
Add 'ifcond' condition to QLit objects.
to_qlit() handles the (obj, ifcond) tuples.
Signed-off-by: Marc-André Lureau <address@hidden>
---
scripts/qapi-introspect.py | 20 +++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)
diff --git a/scripts/qapi-introspect.py b/scripts/qapi-introspect.py
index 9ef6f271d4..5e736a06df 100644
--- a/scripts/qapi-introspect.py
+++ b/scripts/qapi-introspect.py
@@ -125,12 +125,12 @@ const QLitObject %(c_name)s = %(c_string)s;
return '[' + self._use_type(typ.element_type) + ']'
return self._name(typ.name)
- def _gen_qlit(self, name, mtype, obj):
+ def _gen_qlit(self, name, mtype, obj, ifcond):
if mtype not in ('command', 'event', 'builtin', 'array'):
name = self._name(name)
obj['name'] = name
obj['meta-type'] = mtype
- self._qlits.append(obj)
+ self._qlits.append((obj, ifcond))
def _gen_member(self, member):
ret = {'name': member.name, 'type': self._use_type(member.type)}
@@ -146,26 +146,27 @@ const QLitObject %(c_name)s = %(c_string)s;
return {'case': variant.name, 'type': self._use_type(variant.type)}
def visit_builtin_type(self, name, info, json_type):
- self._gen_qlit(name, 'builtin', {'json-type': json_type})
+ self._gen_qlit(name, 'builtin', {'json-type': json_type}, None)
def visit_enum_type(self, name, info, values, prefix, ifcond):
- self._gen_qlit(name, 'enum', {'values': values})
+ self._gen_qlit(name, 'enum', {'values': values}, ifcond)
def visit_array_type(self, name, info, element_type, ifcond):
element = self._use_type(element_type)
- self._gen_qlit('[' + element + ']', 'array', {'element-type': element})
+ self._gen_qlit('[' + element + ']', 'array', {'element-type': element},
+ ifcond)
def visit_object_type_flat(self, name, info, members, variants, ifcond):
obj = {'members': [self._gen_member(m) for m in members]}
if variants:
obj.update(self._gen_variants(variants.tag_member.name,
variants.variants))
- self._gen_qlit(name, 'object', obj)
+ self._gen_qlit(name, 'object', obj, ifcond)
def visit_alternate_type(self, name, info, variants, ifcond):
self._gen_qlit(name, 'alternate',
{'members': [{'type': self._use_type(m.type)}
- for m in variants.variants]})
+ for m in variants.variants]}, ifcond)
def visit_command(self, name, info, arg_type, ret_type,
gen, success_response, boxed, ifcond):
@@ -173,11 +174,12 @@ const QLitObject %(c_name)s = %(c_string)s;
ret_type = ret_type or self._schema.the_empty_object_type
self._gen_qlit(name, 'command',
{'arg-type': self._use_type(arg_type),
- 'ret-type': self._use_type(ret_type)})
+ 'ret-type': self._use_type(ret_type)}, ifcond)
def visit_event(self, name, info, arg_type, boxed, ifcond):
arg_type = arg_type or self._schema.the_empty_object_type
- self._gen_qlit(name, 'event', {'arg-type': self._use_type(arg_type)})
+ self._gen_qlit(name, 'event', {'arg-type': self._use_type(arg_type)},
+ ifcond)
# Debugging aid: unmask QAPI schema's type names
# We normally mask them, because they're not QMP wire ABI
--
2.14.1.146.gd35faa819
[Qemu-devel] [PATCH v2 25/54] qapi-visit: add #if conditions to visitors, Marc-André Lureau, 2017/08/22
[Qemu-devel] [PATCH v2 48/54] tests/qmp-test: add query-qmp-schema test, Marc-André Lureau, 2017/08/22
[Qemu-devel] [PATCH v2 09/54] hmp: use qapi_enum_parse() in hmp_migrate_set_parameter, Marc-André Lureau, 2017/08/22
[Qemu-devel] [PATCH v2 22/54] qapi-introspect: add preprocessor conditions to generated QLit,
Marc-André Lureau <=
[Qemu-devel] [PATCH v2 13/54] qapi: drop the sentinel in enum array, Marc-André Lureau, 2017/08/22
[Qemu-devel] [PATCH v2 06/54] qapi: introduce qapi_enum_lookup(), Marc-André Lureau, 2017/08/22
[Qemu-devel] [PATCH v2 12/54] qapi: change enum lookup structure, Marc-André Lureau, 2017/08/22
[Qemu-devel] [PATCH v2 53/54] qapi: make query-cpu-model-expansion depend on s390 or x86, Marc-André Lureau, 2017/08/22