'u32': '%u',
'i32': '%ld',
'u64': '%llu',
- 'i64': '%llu',
+ 'i64': '%lld',
'f64': '%.2f'}
noprint_fields = {'_vl_msg_id': None,
'u16': 'clib_net_to_host_u16',
'u32': 'clib_net_to_host_u32',
'u64': 'clib_net_to_host_u64',
- 'i16': 'clib_net_to_host_u16',
- 'i32': 'clib_net_to_host_u32',
- 'i64': 'clib_net_to_host_u64',
- 'f64': 'clib_net_to_host_u64',
+ 'i16': 'clib_net_to_host_i16',
+ 'i32': 'clib_net_to_host_i32',
+ 'i64': 'clib_net_to_host_i64',
+ 'f64': 'clib_net_to_host_f64',
}
output += "/***** manual: vl_api_%s_t_endian *****/\n\n" % t.name
continue
-
if t.__class__.__name__ == 'Using':
output += signature.format(name=t.name)
if ('length' in t.alias and t.alias['length'] and
write(' VL_MSG_FIRST_AVAILABLE\n')
write('}} vl_api_{}_enum_t;\n'.format(module))
+
#
# Generate separate API _types file.
#
except:
continue
if d.manual_print:
- write('/* Manual definition requested for: vl_api_{n}_t_hander() */\n'
+ write('/* Manual definition requested for: vl_api_{n}_t_handler() */\n'
.format(n=s.reply))
continue
if not define_hash[s.caller].autoreply:
- write('/* Only autoreply is supported (vl_api_{n}_t_hander()) */\n'
+ write('/* Only autoreply is supported (vl_api_{n}_t_handler()) */\n'
.format(n=s.reply))
continue
+ write('#ifndef VL_API_{n}_T_HANDLER\n'.format(n=s.reply.upper()))
write('static void\n')
write('vl_api_{n}_t_handler (vl_api_{n}_t * mp) {{\n'.format(n=s.reply))
write(' vat_main_t * vam = {}_test_main.vat_main;\n'.format(module))
write(' vam->result_ready = 1;\n')
write(' }\n')
write('}\n')
+ write('#endif\n')
+
+ for e in s.events:
+ if define_hash[e].manual_print:
+ continue
+ write('static void\n')
+ write('vl_api_{n}_t_handler (vl_api_{n}_t * mp) {{\n'.format(n=e))
+ write(' vl_print(0, "{n} event called:");\n'.format(n=e))
+ write(' vl_api_{n}_t_print(mp, 0);\n'.format(n=e))
+ write('}\n')
write('static void\n')
write('setup_message_id_table (vat_main_t * vam, u16 msg_id_base) {\n')
except:
pass
+ # Events
+ for e in s.events:
+ write(' vl_msg_api_set_handlers(VL_API_{ID} + msg_id_base, "{n}",\n'
+ ' vl_api_{n}_t_handler, vl_noop_handler,\n'
+ ' vl_api_{n}_t_endian, vl_api_{n}_t_print,\n'
+ ' sizeof(vl_api_{n}_t), 1);\n'
+ .format(n=e, ID=e.upper()))
+
write('}\n')
write('clib_error_t * vat_plugin_register (vat_main_t *vam)\n')
write(' if (mainp->msg_id_base == (u16) ~0)\n')
write(' return clib_error_return (0, "{} plugin not loaded...");\n'.format(module))
write(' setup_message_id_table (vam, mainp->msg_id_base);\n')
+ write('#ifdef VL_API_LOCAL_SETUP_MESSAGE_ID_TABLE\n')
+ write(' VL_API_LOCAL_SETUP_MESSAGE_ID_TABLE(vam);\n')
+ write('#endif\n')
write(' return 0;\n')
write('}\n')