[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v3 42/50] qapi: add a -u/--unit option to specify wh
From: |
Marc-André Lureau |
Subject: |
[Qemu-devel] [PATCH v3 42/50] qapi: add a -u/--unit option to specify which unit to visit |
Date: |
Mon, 11 Sep 2017 13:06:15 +0200 |
Allow to filter expressions based on unit name.
By default, only default units are processed (unspecified pragma).
'all' will include all units. Anything else will filter by unit name.
(add a FIXME to make implicit array types use the element type unit,
not the unit of the first expression using that array type. This isn't
necessary for now, and I am not sure how to best do it yet)
Signed-off-by: Marc-André Lureau <address@hidden>
---
scripts/qapi.py | 14 ++++++++++++--
scripts/qapi2texi.py | 1 +
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/scripts/qapi.py b/scripts/qapi.py
index 1d0defd638..7778585819 100644
--- a/scripts/qapi.py
+++ b/scripts/qapi.py
@@ -47,6 +47,9 @@ returns_whitelist = []
# Whitelist of entities allowed to violate case conventions
name_case_whitelist = []
+# Unit to consider for the visit, 'all' for all units
+visit_unit = None
+
enum_types = {}
struct_types = {}
union_types = {}
@@ -1796,6 +1799,10 @@ class QAPISchema(object):
def visit(self, visitor):
visitor.visit_begin(self)
for (name, entity) in sorted(self._entity_dict.items()):
+ # FIXME: implicit array types should use element type unit
+ unit = entity.info and entity.info.get('unit')
+ if visit_unit != 'all' and visit_unit != unit:
+ continue
if visitor.visit_needed(entity):
entity.visit(visitor)
visitor.visit_end()
@@ -2103,13 +2110,14 @@ def parse_command_line(extra_options='',
extra_long_options=[]):
try:
opts, args = getopt.gnu_getopt(sys.argv[1:],
- 'chp:o:i:' + extra_options,
+ 'chp:o:u:i:' + extra_options,
['source', 'header', 'prefix=', 'output-dir=',
- 'include='] + extra_long_options)
+ 'unit=', 'include='] + extra_long_options)
except getopt.GetoptError as err:
print >>sys.stderr, "%s: %s" % (sys.argv[0], str(err))
sys.exit(1)
+ global visit_unit
output_dir = ''
prefix = ''
do_c = False
@@ -2129,6 +2137,8 @@ def parse_command_line(extra_options='',
extra_long_options=[]):
prefix = a
elif o in ('-o', '--output-dir'):
output_dir = a + '/'
+ elif o in ('-u', '--unit'):
+ visit_unit = a
elif o in ('-c', '--source'):
do_c = True
elif o in ('-h', '--header'):
diff --git a/scripts/qapi2texi.py b/scripts/qapi2texi.py
index 4e7b1cda87..6c856d4cb7 100755
--- a/scripts/qapi2texi.py
+++ b/scripts/qapi2texi.py
@@ -293,6 +293,7 @@ def main(argv):
print >>sys.stderr, "%s: need exactly 1 argument: SCHEMA" % argv[0]
sys.exit(1)
+ qapi.visit_unit = 'all'
schema = qapi.QAPISchema(argv[1])
if not qapi.doc_required:
print >>sys.stderr, ("%s: need pragma 'doc-required' "
--
2.14.1.146.gd35faa819
- [Qemu-devel] [PATCH v3 31/50] docs: document schema configuration, (continued)
- [Qemu-devel] [PATCH v3 31/50] docs: document schema configuration, Marc-André Lureau, 2017/09/11
- [Qemu-devel] [PATCH v3 33/50] qapi2texi: add 'If:' condition to enum values, Marc-André Lureau, 2017/09/11
- [Qemu-devel] [PATCH v3 34/50] qapi2texi: add 'If:' condition to struct members, Marc-André Lureau, 2017/09/11
- [Qemu-devel] [PATCH v3 35/50] qapi2texi: add condition to variants, Marc-André Lureau, 2017/09/11
- [Qemu-devel] [PATCH v3 36/50] qapi: add conditions to VNC type/commands/events on the schema, Marc-André Lureau, 2017/09/11
- [Qemu-devel] [PATCH v3 37/50] qapi: add conditions to SPICE type/commands/events on the schema, Marc-André Lureau, 2017/09/11
- [Qemu-devel] [PATCH v3 38/50] qapi: add conditions to REPLICATION type/commands on the schema, Marc-André Lureau, 2017/09/11
- [Qemu-devel] [PATCH v3 39/50] qapi-commands: don't initialize command list in qmp_init_marshall(), Marc-André Lureau, 2017/09/11
- [Qemu-devel] [PATCH v3 41/50] qapi: add a 'unit' pragma, Marc-André Lureau, 2017/09/11
- [Qemu-devel] [PATCH v3 40/50] qapi: add -i/--include filename.h, Marc-André Lureau, 2017/09/11
- [Qemu-devel] [PATCH v3 42/50] qapi: add a -u/--unit option to specify which unit to visit,
Marc-André Lureau <=
- [Qemu-devel] [PATCH v3 44/50] build-sys: add a target schema, Marc-André Lureau, 2017/09/11
- [Qemu-devel] [PATCH v3 43/50] build-sys: move qmp-introspect per target, Marc-André Lureau, 2017/09/11
- [Qemu-devel] [PATCH v3 45/50] qapi: make rtc-reset-reinjection depend on TARGET_I386, Marc-André Lureau, 2017/09/11
- [Qemu-devel] [PATCH v3 47/50] target.json: add a note about query-cpu* not being s390x-specific, Marc-André Lureau, 2017/09/11
- [Qemu-devel] [PATCH v3 46/50] qapi: make s390 commands depend on TARGET_S390X, Marc-André Lureau, 2017/09/11
- [Qemu-devel] [PATCH v3 49/50] qapi: make query-cpu-model-expansion depend on s390 or x86, Marc-André Lureau, 2017/09/11