for f in ty.fields:
(nparent,fexpr) = ty.member(v, f, parent is None)
s += "case %s:\n" % f.enumname
- s += gen_rand_init(f.type, fexpr, indent + " ", nparent)
+ if f.type is not None:
+ s += gen_rand_init(f.type, fexpr, indent + " ", nparent)
s += " break;\n"
s += "}\n"
elif isinstance(ty, idl.Struct) \
s += "typedef %s %s {\n" % (ty.kind, ty.typename)
for f in ty.fields:
+ if isinstance(ty, idl.KeyedUnion) and f.type is None: continue
+
x = libxl_C_instance_of(f.type, f.name)
if f.const:
x = "const " + x
for f in ty.fields:
(nparent,fexpr) = ty.member(v, f, parent is None)
s += "case %s:\n" % f.enumname
- s += libxl_C_type_dispose(f.type, fexpr, indent + " ", nparent)
+ if f.type is not None:
+ s += libxl_C_type_dispose(f.type, fexpr, indent + " ", nparent)
s += " break;\n"
s += "}\n"
elif isinstance(ty, idl.Array):
for f in ty.fields:
(nparent,fexpr) = ty.member(v, f, parent is None)
s += "case %s:\n" % f.enumname
- s += _libxl_C_type_init(f.type, fexpr, " ", nparent)
+ if f.type is not None:
+ s += _libxl_C_type_init(f.type, fexpr, " ", nparent)
s += " break;\n"
s += "}\n"
else:
for f in ty.fields:
(nparent,fexpr) = ty.member(v, f, parent is None)
s += "case %s:\n" % f.enumname
- s += libxl_C_type_gen_json(f.type, fexpr, indent + " ", nparent)
+ if f.type is not None:
+ s += libxl_C_type_gen_json(f.type, fexpr, indent + " ", nparent)
s += " break;\n"
s += "}\n"
elif isinstance(ty, idl.Struct) and (parent is None or ty.json_fn is None):
# Use host's E820 for PCI passthrough.
("e820_host", libxl_defbool),
])),
- ("invalid", Struct(None, [])),
+ ("invalid", None),
], keyvar_init_val = "LIBXL_DOMAIN_TYPE_INVALID")),
], dir=DIR_IN
)