+def emit_definition(parser, json_file, emitted, o):
+ if o in emitted:
+ return
+ if o.name in ("msg_header1_t", "msg_header2_t"):
+ return
+ if hasattr(o, "depends"):
+ for x in o.depends:
+ emit_definition(parser, json_file, emitted, x)
+ if hasattr(o, "reply"):
+ emit_definition(parser, json_file, emitted, o.reply)
+ if hasattr(o, "get_c_def"):
+ if (o not in parser.enums_by_json[json_file] and
+ o not in parser.types_by_json[json_file] and
+ o not in parser.unions_by_json[json_file] and
+ o.name not in parser.messages_by_json[json_file] and
+ o not in parser.aliases_by_json[json_file]):
+ return
+ guard = "defined_%s" % o.get_c_name()
+ print("#ifndef %s" % guard)
+ print("#define %s" % guard)
+ print("%s" % o.get_c_def())
+ print("")
+ function_attrs = "static inline "
+ if o.name in parser.messages_by_json[json_file]:
+ if o.has_payload():
+ print("%s%s" % (function_attrs,
+ o.get_swap_payload_to_be_func_def()))
+ print("")
+ print("%s%s" % (function_attrs,
+ o.get_swap_payload_to_host_func_def()))
+ print("")
+ print("%s%s" % (function_attrs, o.get_swap_to_be_func_def()))
+ print("")
+ print("%s%s" % (function_attrs, o.get_swap_to_host_func_def()))
+ print("")
+ print("%s%s" % (function_attrs, o.get_calc_msg_size_func_def()))
+ if not o.is_reply and not o.is_event:
+ print("")
+ print("%s%s" % (function_attrs, o.get_alloc_func_def()))
+ print("")
+ print("%s%s" % (function_attrs, o.get_op_func_def()))
+ print("")
+ print("%s" % o.get_c_constructor())
+ if o.is_reply or o.is_event:
+ print("")
+ print("%s%s;" % (function_attrs, o.get_event_cb_func_def()))
+ elif hasattr(o, "get_swap_to_be_func_def"):
+ print("%s%s" % (function_attrs, o.get_swap_to_be_func_def()))
+ print("")
+ print("%s%s" % (function_attrs, o.get_swap_to_host_func_def()))
+ print("#endif")
+ print("")
+ emitted.append(o)
+
+