svm: minimal initial fifo
[vpp.git] / src / vlibapi / vat_helper_macros.h
index 52fdcb1..0abfa73 100644 (file)
@@ -28,7 +28,7 @@ do {                                                            \
       mp = vl_socket_client_msg_alloc (sizeof(*mp));           \
     else                                                        \
       mp = vl_msg_api_alloc_as_if_client(sizeof(*mp));          \
-    memset (mp, 0, sizeof (*mp));                               \
+    clib_memset (mp, 0, sizeof (*mp));                               \
     mp->_vl_msg_id = ntohs (VL_API_##T+__plugin_msg_base);      \
     mp->client_index = vam->my_client_index;                    \
 } while(0);
@@ -42,7 +42,7 @@ do {                                                            \
       mp = vl_socket_client_msg_alloc (sizeof(*mp));           \
     else                                                        \
       mp = vl_msg_api_alloc_as_if_client(sizeof(*mp));          \
-    memset (mp, 0, sizeof (*mp));                               \
+    clib_memset (mp, 0, sizeof (*mp));                               \
     mp->_vl_msg_id = ntohs (VL_API_##T+__plugin_msg_base);      \
     mp->client_index = vam->my_client_index;                    \
     if (scm)                                                   \
@@ -57,7 +57,7 @@ do {                                                            \
       mp = vl_socket_client_msg_alloc (sizeof(*mp));           \
     else                                                        \
       mp = vl_msg_api_alloc_as_if_client(sizeof(*mp) + n);      \
-    memset (mp, 0, sizeof (*mp));                               \
+    clib_memset (mp, 0, sizeof (*mp));                               \
     mp->_vl_msg_id = ntohs (VL_API_##T+__plugin_msg_base);      \
     mp->client_index = vam->my_client_index;                    \
 } while(0);
@@ -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__ */