[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 36/54] qapi: add #if conditions to generated vari
From: |
Marc-André Lureau |
Subject: |
[Qemu-devel] [PATCH v2 36/54] qapi: add #if conditions to generated variants |
Date: |
Tue, 22 Aug 2017 15:22:37 +0200 |
Signed-off-by: Marc-André Lureau <address@hidden>
---
scripts/qapi-introspect.py | 3 ++-
scripts/qapi-types.py | 2 ++
scripts/qapi-visit.py | 4 ++++
3 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/scripts/qapi-introspect.py b/scripts/qapi-introspect.py
index b379c7c170..5cd2a3fe3f 100644
--- a/scripts/qapi-introspect.py
+++ b/scripts/qapi-introspect.py
@@ -145,7 +145,8 @@ const QLitObject %(c_name)s = %(c_string)s;
'variants': [self._gen_variant(v) for v in variants]}
def _gen_variant(self, variant):
- return {'case': variant.name, 'type': self._use_type(variant.type)}
+ return ({'case': variant.name, 'type': self._use_type(variant.type)},
+ variant.ifcond)
def visit_builtin_type(self, name, info, json_type):
self._gen_qlit(name, 'builtin', {'json-type': json_type}, None)
diff --git a/scripts/qapi-types.py b/scripts/qapi-types.py
index b7f4773fe1..5924276990 100644
--- a/scripts/qapi-types.py
+++ b/scripts/qapi-types.py
@@ -129,11 +129,13 @@ def gen_variants(variants):
c_name=c_name(variants.tag_member.name))
for var in variants.variants:
+ ret += gen_if(var.ifcond)
ret += mcgen('''
%(c_type)s %(c_name)s;
''',
c_type=var.type.c_unboxed_type(),
c_name=c_name(var.name))
+ ret += gen_endif(var.ifcond)
ret += mcgen('''
} u;
diff --git a/scripts/qapi-visit.py b/scripts/qapi-visit.py
index 25914f71b0..a1ff509e53 100644
--- a/scripts/qapi-visit.py
+++ b/scripts/qapi-visit.py
@@ -82,6 +82,7 @@ void visit_type_%(c_name)s_members(Visitor *v, %(c_name)s
*obj, Error **errp)
c_name=c_name(variants.tag_member.name))
for var in variants.variants:
+ ret += gen_if(var.ifcond)
ret += mcgen('''
case %(case)s:
visit_type_%(c_type)s_members(v, &obj->u.%(c_name)s, &err);
@@ -92,6 +93,7 @@ void visit_type_%(c_name)s_members(Visitor *v, %(c_name)s
*obj, Error **errp)
variants.tag_member.type.prefix),
c_type=var.type.c_name(), c_name=c_name(var.name))
+ ret += gen_endif(var.ifcond)
ret += mcgen('''
default:
abort();
@@ -182,6 +184,7 @@ void visit_type_%(c_name)s(Visitor *v, const char *name,
%(c_name)s **obj, Error
c_name=c_name(name))
for var in variants.variants:
+ ret += gen_if(var.ifcond)
ret += mcgen('''
case %(case)s:
''',
@@ -209,6 +212,7 @@ void visit_type_%(c_name)s(Visitor *v, const char *name,
%(c_name)s **obj, Error
ret += mcgen('''
break;
''')
+ ret += gen_endif(var.ifcond)
ret += mcgen('''
case QTYPE_NONE:
--
2.14.1.146.gd35faa819
- [Qemu-devel] [PATCH v2 00/54] qapi: add #if pre-processor conditions to generated code, Marc-André Lureau, 2017/08/22
- [Qemu-devel] [PATCH v2 07/54] tpm: simplify driver registration & lookup, Marc-André Lureau, 2017/08/22
- [Qemu-devel] [PATCH v2 26/54] qapi-types: refactor variants handling, Marc-André Lureau, 2017/08/22
- [Qemu-devel] [PATCH v2 15/54] qapi: add 'if' to top-level expressions, Marc-André Lureau, 2017/08/22
- [Qemu-devel] [PATCH v2 36/54] qapi: add #if conditions to generated variants,
Marc-André Lureau <=
- [Qemu-devel] [PATCH v2 28/54] qapi: do not define enumeration value explicitely, Marc-André Lureau, 2017/08/22
- [Qemu-devel] [PATCH v2 34/54] qapi: add #if conditions to generated struct members, Marc-André Lureau, 2017/08/22
- [Qemu-devel] [PATCH v2 20/54] qapi-introspect: modify to_qlit() to take an optional suffix, Marc-André Lureau, 2017/08/22
- [Qemu-devel] [PATCH v2 18/54] qapi: add 'ifcond' to visitor methods, Marc-André Lureau, 2017/08/22
- [Qemu-devel] [PATCH v2 39/54] qapi: add #if conditions to generated alternate variants, Marc-André Lureau, 2017/08/22
- [Qemu-devel] [PATCH v2 10/54] block: use qemu_enum_parse() in blkdebug_debug_breakpoint, Marc-André Lureau, 2017/08/22
- [Qemu-devel] [PATCH v2 24/54] qapi-event: add #if conditions to events, Marc-André Lureau, 2017/08/22
- [Qemu-devel] [PATCH v2 14/54] qapi2texi: minor python code simplification, Marc-André Lureau, 2017/08/22