diff options
author | Dave Barach <dave@barachs.net> | 2018-04-03 14:58:14 -0400 |
---|---|---|
committer | Damjan Marion <dmarion.lists@gmail.com> | 2018-04-03 19:56:11 +0000 |
commit | 104404348fdb54504e65c39182d405bdcee926fd (patch) | |
tree | 840a913ac70393290c9847d65fe7fbe6a5a8d313 /extras/emacs/plugin-main-skel.el | |
parent | a46b4c9b5ed1d14719d1d33b4586ab83b1e8b976 (diff) |
Fix bugs in emacs plugin templates
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>
Diffstat (limited to 'extras/emacs/plugin-main-skel.el')
-rw-r--r-- | extras/emacs/plugin-main-skel.el | 29 |
1 files changed, 7 insertions, 22 deletions
diff --git a/extras/emacs/plugin-main-skel.el b/extras/emacs/plugin-main-skel.el index db1147e75e5..47f030c44f1 100644 --- a/extras/emacs/plugin-main-skel.el +++ b/extras/emacs/plugin-main-skel.el @@ -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* */ |