mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-27 04:13:53 -06:00
qapi: Generate command registration stuff into separate files
Having to include qapi-commands.h just for qmp_init_marshal() is suboptimal. Generate it into separate files. This lets monitor/misc.c, qga/main.c, and the generated qapi-commands-FOO.h include less. Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20191120182551.23795-4-armbru@redhat.com> [Typos in docs/devel/qapi-code-gen.txt fixed] Reviewed-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
parent
0cc0e26894
commit
00ca24ff9e
11 changed files with 46 additions and 11 deletions
|
@ -263,18 +263,25 @@ class QAPISchemaGenCommandVisitor(QAPISchemaModularCVisitor):
|
|||
commands=commands, visit=visit))
|
||||
self._genh.add(mcgen('''
|
||||
#include "%(types)s.h"
|
||||
#include "qapi/qmp/dispatch.h"
|
||||
|
||||
''',
|
||||
types=types))
|
||||
|
||||
def visit_end(self):
|
||||
(genc, genh) = self._module[self._main_module]
|
||||
genh.add(mcgen('''
|
||||
self._add_system_module('init', ' * QAPI Commands initialization')
|
||||
self._genh.add(mcgen('''
|
||||
#include "qapi/qmp/dispatch.h"
|
||||
|
||||
void %(c_prefix)sqmp_init_marshal(QmpCommandList *cmds);
|
||||
''',
|
||||
c_prefix=c_name(self._prefix, protect=False)))
|
||||
genc.add(gen_registry(self._regy.get_content(), self._prefix))
|
||||
self._genc.preamble_add(mcgen('''
|
||||
#include "qemu/osdep.h"
|
||||
#include "%(prefix)sqapi-commands.h"
|
||||
#include "%(prefix)sqapi-init-commands.h"
|
||||
''',
|
||||
prefix=self._prefix))
|
||||
self._genc.add(gen_registry(self._regy.get_content(), self._prefix))
|
||||
|
||||
def visit_command(self, name, info, ifcond, arg_type, ret_type, gen,
|
||||
success_response, boxed, allow_oob, allow_preconfig,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue