visit_type_UserDefOne(v, &obj, NULL, NULL);
qapi_dealloc_visitor_cleanup(md);
}
-
$ cat qapi-generated/example-qapi-types.h
[Uninteresting stuff omitted...]
typedef struct UserDefOne UserDefOne;
- typedef struct UserDefOneList
- {
+ typedef struct UserDefOneList {
union {
UserDefOne *value;
uint64_t padding;
struct UserDefOneList *next;
} UserDefOneList;
+
[Functions on built-in types omitted...]
- struct UserDefOne
- {
+ struct UserDefOne {
int64_t integer;
char *string;
};
static void visit_type_UserDefOne_fields(Visitor *m, UserDefOne **obj, Error **errp)
{
Error *err = NULL;
+
visit_type_int(m, &(*obj)->integer, "integer", &err);
if (err) {
goto out;
void qapi_event_send_my_event(Error **errp);
extern const char *example_QAPIEvent_lookup[];
- typedef enum example_QAPIEvent
- {
+ typedef enum example_QAPIEvent {
EXAMPLE_QAPI_EVENT_MY_EVENT = 0,
EXAMPLE_QAPI_EVENT_MAX = 1,
} example_QAPIEvent;
def generate_fwd_builtin(name):
return mcgen('''
-typedef struct %(name)sList
-{
+typedef struct %(name)sList {
union {
%(type)s value;
uint64_t padding;
typedef struct %(name)s %(name)s;
-typedef struct %(name)sList
-{
+typedef struct %(name)sList {
union {
%(name)s *value;
uint64_t padding;
def generate_fwd_enum_struct(name):
return mcgen('''
-typedef struct %(name)sList
-{
+
+typedef struct %(name)sList {
union {
%(name)s value;
uint64_t padding;
base = expr.get('base')
ret = mcgen('''
-struct %(name)s
-{
+
+struct %(name)s {
''',
name=c_name(structname))
def generate_enum_lookup(name, values):
ret = mcgen('''
-const char * const %(name)s_lookup[] = {
+
+const char *const %(name)s_lookup[] = {
''',
name=c_name(name))
for value in values:
ret += mcgen('''
[%(max_index)s] = NULL,
};
-
''',
max_index=max_index)
return ret
def generate_enum(name, values):
name = c_name(name)
lookup_decl = mcgen('''
-extern const char * const %(name)s_lookup[];
+
+extern const char *const %(name)s_lookup[];
''',
name=name)
enum_decl = mcgen('''
-typedef enum %(name)s
-{
+
+typedef enum %(name)s {
''',
name=name)
''',
name=name)
- return lookup_decl + enum_decl
+ return enum_decl + lookup_decl
def generate_alternate_qtypes(expr):
members = expr['data']
ret = mcgen('''
+
const int %(name)s_qtypes[QTYPE_MAX] = {
''',
name=c_name(name))
discriminator_type_name = '%sKind' % (name)
ret = mcgen('''
-struct %(name)s
-{
+
+struct %(name)s {
''',
name=name)
if base:
#include "qapi/dealloc-visitor.h"
#include "%(prefix)sqapi-types.h"
#include "%(prefix)sqapi-visit.h"
-
''',
prefix=prefix))
fdecl.write(mcgen('''
#include <stdbool.h>
#include <stdint.h>
-
'''))
exprs = parse_schema(input_file)
fdecl.write(guardend("QAPI_TYPES_BUILTIN_STRUCT_DECL"))
for expr in exprs:
- ret = "\n"
+ ret = ""
if expr.has_key('struct'):
ret += generate_fwd_struct(expr['struct'])
elif expr.has_key('enum'):
- ret += generate_enum(expr['enum'], expr['data']) + "\n"
+ ret += generate_enum(expr['enum'], expr['data'])
ret += generate_fwd_enum_struct(expr['enum'])
fdef.write(generate_enum_lookup(expr['enum'], expr['data']))
elif expr.has_key('union'):
- ret += generate_fwd_struct(expr['union']) + "\n"
+ ret += generate_fwd_struct(expr['union'])
enum_define = discriminator_find_enum_define(expr)
if not enum_define:
ret += generate_enum('%sKind' % expr['union'], expr['data'].keys())
fdef.write(generate_enum_lookup('%sKind' % expr['union'],
expr['data'].keys()))
elif expr.has_key('alternate'):
- ret += generate_fwd_struct(expr['alternate']) + "\n"
+ ret += generate_fwd_struct(expr['alternate'])
ret += generate_enum('%sKind' % expr['alternate'], expr['data'].keys())
fdef.write(generate_enum_lookup('%sKind' % expr['alternate'],
expr['data'].keys()))
# have the functions defined, so we use -b option to provide control
# over these cases
if do_builtins:
- fdef.write(guardstart("QAPI_TYPES_BUILTIN_CLEANUP_DEF"))
for typename in builtin_types.keys():
fdef.write(generate_type_cleanup(typename + "List"))
- fdef.write(guardend("QAPI_TYPES_BUILTIN_CLEANUP_DEF"))
for expr in exprs:
- ret = "\n"
+ ret = ""
if expr.has_key('struct'):
ret += generate_struct(expr) + "\n"
ret += generate_type_cleanup_decl(expr['struct'] + "List")
- fdef.write(generate_type_cleanup(expr['struct'] + "List") + "\n")
+ fdef.write(generate_type_cleanup(expr['struct'] + "List"))
ret += generate_type_cleanup_decl(expr['struct'])
- fdef.write(generate_type_cleanup(expr['struct']) + "\n")
+ fdef.write(generate_type_cleanup(expr['struct']))
elif expr.has_key('union'):
- ret += generate_union(expr, 'union')
+ ret += generate_union(expr, 'union') + "\n"
ret += generate_type_cleanup_decl(expr['union'] + "List")
- fdef.write(generate_type_cleanup(expr['union'] + "List") + "\n")
+ fdef.write(generate_type_cleanup(expr['union'] + "List"))
ret += generate_type_cleanup_decl(expr['union'])
- fdef.write(generate_type_cleanup(expr['union']) + "\n")
+ fdef.write(generate_type_cleanup(expr['union']))
elif expr.has_key('alternate'):
- ret += generate_union(expr, 'alternate')
+ ret += generate_union(expr, 'alternate') + "\n"
ret += generate_type_cleanup_decl(expr['alternate'] + "List")
- fdef.write(generate_type_cleanup(expr['alternate'] + "List") + "\n")
+ fdef.write(generate_type_cleanup(expr['alternate'] + "List"))
ret += generate_type_cleanup_decl(expr['alternate'])
- fdef.write(generate_type_cleanup(expr['alternate']) + "\n")
+ fdef.write(generate_type_cleanup(expr['alternate']))
elif expr.has_key('enum'):
- ret += generate_type_cleanup_decl(expr['enum'] + "List")
- fdef.write(generate_type_cleanup(expr['enum'] + "List") + "\n")
+ ret += "\n" + generate_type_cleanup_decl(expr['enum'] + "List")
+ fdef.write(generate_type_cleanup(expr['enum'] + "List"))
else:
continue
fdecl.write(ret)