All of lore.kernel.org
 help / color / mirror / Atom feed
From: John Snow <jsnow@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Eduardo Habkost" <ehabkost@redhat.com>,
	"Michael Roth" <michael.roth@amd.com>,
	"Markus Armbruster" <armbru@redhat.com>,
	"Cleber Rosa" <crosa@redhat.com>,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	"John Snow" <jsnow@redhat.com>
Subject: [PATCH v4 09/16] qapi/gen: Combine ._add_[user|system]_module
Date: Mon,  1 Feb 2021 14:37:40 -0500	[thread overview]
Message-ID: <20210201193747.2169670-10-jsnow@redhat.com> (raw)
In-Reply-To: <20210201193747.2169670-1-jsnow@redhat.com>

From: Markus Armbruster <armbru@redhat.com>

With callers to _add_system_module now explicitly using the './' prefix
to indicate a system module, there is no longer any reason to have
separate interfaces for adding system vs user modules; use a unified
interface that differentiates based on the name.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: John Snow <jsnow@redhat.com>
---
 scripts/qapi/commands.py |  2 +-
 scripts/qapi/events.py   |  2 +-
 scripts/qapi/gen.py      | 17 +++++------------
 3 files changed, 7 insertions(+), 14 deletions(-)

diff --git a/scripts/qapi/commands.py b/scripts/qapi/commands.py
index fc5fe27c472..49111663394 100644
--- a/scripts/qapi/commands.py
+++ b/scripts/qapi/commands.py
@@ -286,7 +286,7 @@ def _begin_user_module(self, name: str) -> None:
                              types=types))
 
     def visit_end(self) -> None:
-        self._add_system_module('./init', ' * QAPI Commands initialization')
+        self._add_module('./init', ' * QAPI Commands initialization')
         self._genh.add(mcgen('''
 #include "qapi/qmp/dispatch.h"
 
diff --git a/scripts/qapi/events.py b/scripts/qapi/events.py
index 26faa829898..079c666ec69 100644
--- a/scripts/qapi/events.py
+++ b/scripts/qapi/events.py
@@ -191,7 +191,7 @@ def _begin_user_module(self, name: str) -> None:
                              types=types))
 
     def visit_end(self) -> None:
-        self._add_system_module('./emit', ' * QAPI Events emission')
+        self._add_module('./emit', ' * QAPI Events emission')
         self._genc.preamble_add(mcgen('''
 #include "qemu/osdep.h"
 #include "%(prefix)sqapi-emit-events.h"
diff --git a/scripts/qapi/gen.py b/scripts/qapi/gen.py
index 9352d79c3a4..8ded0f7e5ad 100644
--- a/scripts/qapi/gen.py
+++ b/scripts/qapi/gen.py
@@ -272,22 +272,15 @@ def _module_filename(self, what: str, name: str) -> str:
                             self._module_basename(what, name))
 
     def _add_module(self, name: str, blurb: str) -> None:
+        if QAPISchemaModule.is_user_module(name):
+            if self._main_module is None:
+                self._main_module = name
         basename = self._module_filename(self._what, name)
         genc = QAPIGenC(basename + '.c', blurb, self._pydoc)
         genh = QAPIGenH(basename + '.h', blurb, self._pydoc)
         self._module[name] = (genc, genh)
         self._genc, self._genh = self._module[name]
 
-    def _add_user_module(self, name: str, blurb: str) -> None:
-        assert QAPISchemaModule.is_user_module(name)
-        if self._main_module is None:
-            self._main_module = name
-        self._add_module(name, blurb)
-
-    def _add_system_module(self, name: str, blurb: str) -> None:
-        assert QAPISchemaModule.is_system_module(name)
-        self._add_module(name, blurb)
-
     def write(self, output_dir: str, opt_builtins: bool = False) -> None:
         for name in self._module:
             if QAPISchemaModule.is_builtin_module(name) and not opt_builtins:
@@ -305,7 +298,7 @@ def _begin_user_module(self, name: str) -> None:
     def visit_module(self, name: str) -> None:
         if QAPISchemaModule.is_builtin_module(name):
             if self._builtin_blurb:
-                self._add_system_module(name, self._builtin_blurb)
+                self._add_module(name, self._builtin_blurb)
                 self._begin_builtin_module()
             else:
                 # The built-in module has not been created.  No code may
@@ -314,7 +307,7 @@ def visit_module(self, name: str) -> None:
                 self._genh = None
         else:
             assert QAPISchemaModule.is_user_module(name)
-            self._add_user_module(name, self._user_blurb)
+            self._add_module(name, self._user_blurb)
             self._begin_user_module(name)
 
     def visit_include(self, name: str, info: QAPISourceInfo) -> None:
-- 
2.29.2



  parent reply	other threads:[~2021-02-01 19:49 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-01 19:37 [PATCH v4 00/16] qapi: static typing conversion, pt1.5 John Snow
2021-02-01 19:37 ` [PATCH v4 01/16] qapi/commands: assert arg_type is not None John Snow
2021-02-01 19:37 ` [PATCH v4 02/16] qapi/events: fix visit_event typing John Snow
2021-02-01 19:37 ` [PATCH v4 03/16] qapi/main: handle theoretical None-return from re.match() John Snow
2021-02-01 19:37 ` [PATCH v4 04/16] qapi/gen: inline _wrap_ifcond into end_if() John Snow
2021-02-01 19:37 ` [PATCH v4 05/16] qapi: centralize is_[user|system|builtin]_module methods John Snow
2021-02-02  9:16   ` Markus Armbruster
2021-02-02 16:05     ` John Snow
2021-02-01 19:37 ` [PATCH v4 06/16] qapi/gen: Replace ._begin_system_module() John Snow
2021-02-01 19:37 ` [PATCH v4 07/16] qapi: use explicitly internal module names John Snow
2021-02-02  9:16   ` Markus Armbruster
2021-02-02 16:06     ` John Snow
2021-02-02 20:43       ` Markus Armbruster
2021-02-01 19:37 ` [PATCH v4 08/16] qapi: use './builtin' as the built-in module name John Snow
2021-02-01 19:37 ` John Snow [this message]
2021-02-01 19:37 ` [PATCH v4 10/16] qapi: centralize the built-in module name definition John Snow
2021-02-01 19:37 ` [PATCH v4 11/16] qapi/gen: write _genc/_genh access shims John Snow
2021-02-01 19:37 ` [PATCH v4 12/16] qapi/gen: Support for switching to another module temporarily John Snow
2021-02-01 19:37 ` [PATCH v4 13/16] qapi/commands: Simplify command registry generation John Snow
2021-02-01 19:37 ` [PATCH v4 14/16] qapi/gen: Drop support for QAPIGen without a file name John Snow
2021-02-01 19:37 ` [PATCH v4 15/16] qapi: type 'info' as Optional[QAPISourceInfo] John Snow
2021-02-01 19:37 ` [PATCH v4 16/16] qapi: enable strict-optional checks John Snow
2021-02-02  9:17 ` [PATCH v4 00/16] qapi: static typing conversion, pt1.5 Markus Armbruster

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210201193747.2169670-10-jsnow@redhat.com \
    --to=jsnow@redhat.com \
    --cc=armbru@redhat.com \
    --cc=crosa@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=michael.roth@amd.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.