qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH v3 41/50] qapi: add a 'unit' pragma


From: Marc-André Lureau
Subject: [Qemu-devel] [PATCH v3 41/50] qapi: add a 'unit' pragma
Date: Mon, 11 Sep 2017 13:06:14 +0200

Add a pragma that allows to tag the following expressions with a unit
name. By default, an expression has no unit name.

Signed-off-by: Marc-André Lureau <address@hidden>
---
 scripts/qapi.py              | 9 ++++++++-
 docs/devel/qapi-code-gen.txt | 3 +++
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/scripts/qapi.py b/scripts/qapi.py
index eb4ffdc06d..1d0defd638 100644
--- a/scripts/qapi.py
+++ b/scripts/qapi.py
@@ -279,10 +279,12 @@ class QAPISchemaParser(object):
         self.docs = []
         self.cur_doc = None
         self.accept()
+        self.unit = None
 
         while self.tok is not None:
             info = {'file': fname, 'line': self.line,
-                    'parent': self.incl_info}
+                    'parent': self.incl_info,
+                    'unit': self.unit}
             if self.tok == '#':
                 self.reject_expr_doc()
                 self.cur_doc = self.get_doc(info)
@@ -371,6 +373,11 @@ class QAPISchemaParser(object):
                                    "Pragma name-case-whitelist must be"
                                    " a list of strings")
             name_case_whitelist = value
+        elif name == 'unit':
+            if not isinstance(value, str):
+                raise QAPISemError(info,
+                                   "Pragma 'unit' must be string")
+            self.unit = value
         else:
             raise QAPISemError(info, "Unknown pragma '%s'" % name)
 
diff --git a/docs/devel/qapi-code-gen.txt b/docs/devel/qapi-code-gen.txt
index 24fc6f74ee..37a27cd9d7 100644
--- a/docs/devel/qapi-code-gen.txt
+++ b/docs/devel/qapi-code-gen.txt
@@ -326,6 +326,9 @@ violate the rules on permitted return types.  Default is 
none.
 Pragma 'name-case-whitelist' takes a list of names that may violate
 rules on use of upper- vs. lower-case letters.  Default is none.
 
+Pragma 'unit' takes a string value. It will set the unit name for the
+following expressions in the schema. Most code generator can filter
+based on a unit name. Default is none.
 
 === Struct types ===
 
-- 
2.14.1.146.gd35faa819




reply via email to

[Prev in Thread] Current Thread [Next in Thread]