def __init__(self, prefix):
QAPISchemaModularCVisitor.__init__(
self, prefix, 'qapi-commands',
- ' * Schema-defined QAPI/QMP commands', __doc__)
+ ' * Schema-defined QAPI/QMP commands', None, __doc__)
self._regy = QAPIGenCCode(None)
self._visited_ret_types = {}
def __init__(self, prefix):
QAPISchemaModularCVisitor.__init__(
self, prefix, 'qapi-events',
- ' * Schema-defined QAPI/QMP events', __doc__)
+ ' * Schema-defined QAPI/QMP events', None, __doc__)
self._event_enum_name = c_name(prefix + 'QAPIEvent', protect=False)
self._event_enum_members = []
self._event_emit_name = c_name(prefix + 'qapi_event_emit')
class QAPISchemaModularCVisitor(QAPISchemaVisitor):
- def __init__(self, prefix, what, blurb, pydoc):
+ def __init__(self, prefix, what, user_blurb, builtin_blurb, pydoc):
self._prefix = prefix
self._what = what
- self._blurb = blurb
+ self._user_blurb = user_blurb
+ self._builtin_blurb = builtin_blurb
self._pydoc = pydoc
self._genc = None
self._genh = None
genc = QAPIGenC(basename + '.c', blurb, self._pydoc)
genh = QAPIGenH(basename + '.h', blurb, self._pydoc)
self._module[name] = (genc, genh)
- self._set_module(name)
+ self._genc, self._genh = self._module[name]
def _add_user_module(self, name, blurb):
assert self._is_user_module(name)
def _add_system_module(self, name, blurb):
self._add_module(name and './' + name, blurb)
- def _set_module(self, name):
- self._genc, self._genh = self._module[name]
-
def write(self, output_dir, opt_builtins=False):
for name in self._module:
if self._is_builtin_module(name) and not opt_builtins:
pass
def visit_module(self, name):
- if name in self._module:
- self._set_module(name)
- elif self._is_builtin_module(name):
- # The built-in module has not been created. No code may
- # be generated.
- self._genc = None
- self._genh = None
+ if name is None:
+ if self._builtin_blurb:
+ self._add_system_module(None, self._builtin_blurb)
+ self._begin_system_module(name)
+ else:
+ # The built-in module has not been created. No code may
+ # be generated.
+ self._genc = None
+ self._genh = None
else:
- self._add_user_module(name, self._blurb)
+ self._add_user_module(name, self._user_blurb)
self._begin_user_module(name)
def visit_include(self, name, info):
def __init__(self, prefix):
QAPISchemaModularCVisitor.__init__(
self, prefix, 'qapi-types', ' * Schema-defined QAPI types',
- __doc__)
- self._add_system_module(None, ' * Built-in QAPI types')
+ ' * Built-in QAPI types', __doc__)
+
+ def _begin_system_module(self, name):
self._genc.preamble_add(mcgen('''
#include "qemu/osdep.h"
#include "qapi/dealloc-visitor.h"
def __init__(self, prefix):
QAPISchemaModularCVisitor.__init__(
self, prefix, 'qapi-visit', ' * Schema-defined QAPI visitors',
- __doc__)
- self._add_system_module(None, ' * Built-in QAPI visitors')
+ ' * Built-in QAPI visitors', __doc__)
+
+ def _begin_system_module(self, name):
self._genc.preamble_add(mcgen('''
#include "qemu/osdep.h"
#include "qapi/error.h"
#include "qapi/visitor.h"
#include "qapi/qapi-builtin-types.h"
-''',
- prefix=prefix))
+'''))
def _begin_user_module(self, name):
types = self._module_basename('qapi-types', name)