diff options
Diffstat (limited to 'scripts/qapi-types.py')
| -rw-r--r-- | scripts/qapi-types.py | 31 |
1 files changed, 13 insertions, 18 deletions
diff --git a/scripts/qapi-types.py b/scripts/qapi-types.py index 6bd0b13759..d28a6b07be 100644 --- a/scripts/qapi-types.py +++ b/scripts/qapi-types.py @@ -12,9 +12,8 @@ from ordereddict import OrderedDict from qapi import * -def generate_fwd_struct(name, members, builtin_type=False): - if builtin_type: - return mcgen(''' +def generate_fwd_builtin(name): + return mcgen(''' typedef struct %(name)sList { @@ -25,9 +24,10 @@ typedef struct %(name)sList struct %(name)sList *next; } %(name)sList; ''', - type=c_type(name), - name=name) + type=c_type(name), + name=name) +def generate_fwd_struct(name): return mcgen(''' typedef struct %(name)s %(name)s; @@ -43,7 +43,7 @@ typedef struct %(name)sList ''', name=c_name(name)) -def generate_fwd_enum_struct(name, members): +def generate_fwd_enum_struct(name): return mcgen(''' typedef struct %(name)sList { @@ -75,7 +75,6 @@ def generate_struct_fields(members): def generate_struct(expr): structname = expr.get('struct', "") - fieldname = expr.get('field', "") members = expr['data'] base = expr.get('base') @@ -98,12 +97,9 @@ struct %(name)s char qapi_dummy_field_for_empty_struct; ''') - if len(fieldname): - fieldname = " " + fieldname ret += mcgen(''' -}%(field)s; -''', - field=fieldname) +}; +''') return ret @@ -329,30 +325,29 @@ fdecl.write(mcgen(''' ''')) exprs = parse_schema(input_file) -exprs = filter(lambda expr: not expr.has_key('gen'), exprs) fdecl.write(guardstart("QAPI_TYPES_BUILTIN_STRUCT_DECL")) for typename in builtin_types.keys(): - fdecl.write(generate_fwd_struct(typename, None, builtin_type=True)) + fdecl.write(generate_fwd_builtin(typename)) fdecl.write(guardend("QAPI_TYPES_BUILTIN_STRUCT_DECL")) for expr in exprs: ret = "\n" if expr.has_key('struct'): - ret += generate_fwd_struct(expr['struct'], expr['data']) + ret += generate_fwd_struct(expr['struct']) elif expr.has_key('enum'): ret += generate_enum(expr['enum'], expr['data']) + "\n" - ret += generate_fwd_enum_struct(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'], expr['data']) + "\n" + ret += generate_fwd_struct(expr['union']) + "\n" 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'], expr['data']) + "\n" + ret += generate_fwd_struct(expr['alternate']) + "\n" ret += generate_enum('%sKind' % expr['alternate'], expr['data'].keys()) fdef.write(generate_enum_lookup('%sKind' % expr['alternate'], expr['data'].keys())) |