Fix bugs in emacs plugin templates 99/11499/2
authorDave Barach <dave@barachs.net>
Tue, 3 Apr 2018 18:58:14 +0000 (14:58 -0400)
committerDamjan Marion <dmarion.lists@gmail.com>
Tue, 3 Apr 2018 19:56:11 +0000 (19:56 +0000)
use api_helper_macros.h
declare plugin_main_t external in the header file
declare plugin_main_t instance in plugin.c
setup main_t->vlib_main, main_t->vnet_main in the init routine

Change-Id: Ib8c742a60c63adfe9724447e1a2acc8c7723e90c
Signed-off-by: Dave Barach <dave@barachs.net>
extras/emacs/plugin-h-skel.el
extras/emacs/plugin-main-skel.el

index 8bf9b6f..94f60af 100644 (file)
@@ -21,6 +21,7 @@ nil
 '(if (not (boundp 'plugin-name))
      (setq plugin-name (read-string "Plugin name: ")))
 '(setq PLUGIN-NAME (upcase plugin-name))
+'(setq capital-oh-en "ON")
 "
 /*
  * " plugin-name ".h - skeleton vpp engine plug-in header file 
@@ -63,4 +64,13 @@ typedef struct {
 vlib_node_registration_t " plugin-name "_node;
 
 #endif /* __included_" plugin-name "_h__ */
+
+/*
+ * fd.io coding-style-patch-verification: " capital-oh-en "
+ *
+ * Local Variables:
+ * eval: (c-set-style \"gnu\")
+ * End:
+ */
+
 ")
index db1147e..47f030c 100644 (file)
@@ -71,29 +71,10 @@ nil
 #include <" plugin-name "/" plugin-name "_all_api_h.h>
 #undef vl_api_version
 
-/*
- * A handy macro to set up a message reply.
- * Assumes that the following variables are available:
- * mp - pointer to request message
- * rmp - pointer to reply message type
- * rv - return value
- */
-
-#define REPLY_MACRO(t)                                          \\
-do {                                                            \\
-    unix_shared_memory_queue_t * q =                            \\
-    vl_api_client_index_to_input_queue (mp->client_index);      \\
-    if (!q)                                                     \\
-        return;                                                 \\
-                                                                \\
-    rmp = vl_msg_api_alloc (sizeof (*rmp));                     \\
-    rmp->_vl_msg_id = ntohs((t)+sm->msg_id_base);               \\
-    rmp->context = mp->context;                                 \\
-    rmp->retval = ntohl(rv);                                    \\
-                                                                \\
-    vl_msg_api_send_shmem (q, (u8 *)&rmp);                      \\
-} while(0);
+#define REPLY_MSG_ID_BASE sm->msg_id_base
+#include <vlibapi/api_helper_macros.h>
 
+extern " plugin-name "_main_t " plugin-name "_main;
 
 /* List of message types that this plugin understands */
 
@@ -234,6 +215,9 @@ static clib_error_t * " plugin-name "_init (vlib_main_t * vm)
   clib_error_t * error = 0;
   u8 * name;
 
+  sm->vlib_main = vm;
+  sm->vnet_main = vnet_get_main();
+
   name = format (0, \"" plugin-name "_%08x%c\", api_version, 0);
 
   /* Ask for a correctly-sized block of API message decode slots */
@@ -265,6 +249,7 @@ VNET_FEATURE_INIT (" plugin-name ", static) =
 VLIB_PLUGIN_REGISTER () = 
 {
   .version = VPP_BUILD_VER,
+  .description = \"" plugin-name " plugin description goes here\",
 };
 /* *INDENT-ON* */