diff options
Diffstat (limited to 'src/vlibapi')
-rw-r--r-- | src/vlibapi/vat_helper_macros.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/vlibapi/vat_helper_macros.h b/src/vlibapi/vat_helper_macros.h index 5bc67729d4a..0abfa73851f 100644 --- a/src/vlibapi/vat_helper_macros.h +++ b/src/vlibapi/vat_helper_macros.h @@ -109,5 +109,26 @@ do { \ } \ } while(0); +#define VAT_PLUGIN_REGISTER(plug) \ +clib_error_t * vat_plugin_register (vat_main_t *vam) \ +{ \ + plug##_test_main_t * mp = &plug##_test_main; \ + u8 * name; \ + \ + mp->vat_main = vam; \ + \ + /* Ask the vpp engine for the first assigned message-id */ \ + name = format (0, #plug "_%08x%c", api_version, 0); \ + mp->msg_id_base = \ + vl_client_get_first_plugin_msg_id ((char *) name); \ + vec_free(name); \ + \ + if (mp->msg_id_base != (u16) ~0) \ + plug##_api_hookup (vam); \ + else \ + return clib_error_return (0, #plug " plugin not loaded...");\ + return 0; \ +} + #endif /* __vat_helper_macros_h__ */ |