X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=extras%2Femacs%2Fplugin-test-skel.el;h=42962acf2b7110e00611522194592306e0a6eafe;hb=daa4bff164729c5068413a086d52b0490626250c;hp=837cbdaa1b1c420107292765afd92b056259139a;hpb=757585db71b78c4edf91ba011be419264de43d1a;p=vpp.git diff --git a/extras/emacs/plugin-test-skel.el b/extras/emacs/plugin-test-skel.el index 837cbdaa1b1..42962acf2b7 100644 --- a/extras/emacs/plugin-test-skel.el +++ b/extras/emacs/plugin-test-skel.el @@ -22,8 +22,9 @@ nil (setq plugin-name (read-string "Plugin name: "))) '(setq PLUGIN-NAME (upcase plugin-name)) '(setq capital-oh-en "ON") +'(setq main-p (concat (substring plugin-name 0 1) "tmp")) "/* - * " plugin-name ".c - skeleton vpp-api-test plug-in + * " plugin-name ".c - skeleton vpp-api-test plug-in * * Copyright (c) * Licensed under the Apache License, Version 2.0 (the \"License\"); @@ -41,8 +42,8 @@ nil #include #include #include -#include #include +#include uword unformat_sw_if_index (unformat_input_t * input, va_list * args); @@ -51,19 +52,19 @@ uword unformat_sw_if_index (unformat_input_t * input, va_list * args); /* define message structures */ #define vl_typedefs -#include <" plugin-name "/" plugin-name "_all_api_h.h> +#include <" plugin-name "/" plugin-name "_all_api_h.h> #undef vl_typedefs /* declare message handlers for each api */ #define vl_endianfun /* define message structures */ -#include <" plugin-name "/" plugin-name "_all_api_h.h> +#include <" plugin-name "/" plugin-name "_all_api_h.h> #undef vl_endianfun /* instantiate all the print functions we know about */ #define vl_print(handle, ...) #define vl_printfun -#include <" plugin-name "/" plugin-name "_all_api_h.h> +#include <" plugin-name "/" plugin-name "_all_api_h.h> #undef vl_printfun /* Get the API version number. */ @@ -72,7 +73,7 @@ uword unformat_sw_if_index (unformat_input_t * input, va_list * args); #undef vl_api_version -typedef struct +typedef struct { /* API message ID base */ u16 msg_id_base; @@ -103,7 +104,7 @@ _(" plugin-name "_enable_disable_reply) foreach_standard_reply_retval_handler; #undef _ -/* +/* * Table of message reply handlers, must include boilerplate handlers * we just generated */ @@ -120,7 +121,7 @@ static int api_" plugin-name "_enable_disable (vat_main_t * vam) int ret; /* Parse args required to build the message */ - while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) + while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) { if (unformat (i, \"%U\", unformat_sw_if_index, vam, &sw_if_index)) ; @@ -131,13 +132,13 @@ static int api_" plugin-name "_enable_disable (vat_main_t * vam) else break; } - - if (sw_if_index == ~0) + + if (sw_if_index == ~0) { errmsg (\"missing interface name / explicit sw_if_index number \\n\"); return -99; } - + /* Construct the API message */ M(" PLUGIN-NAME "_ENABLE_DISABLE, mp); mp->sw_if_index = ntohl (sw_if_index); @@ -151,7 +152,7 @@ static int api_" plugin-name "_enable_disable (vat_main_t * vam) return ret; } -/* +/* * List of messages that the api test plugin sends, * and that the data plane plugin processes */ @@ -160,48 +161,32 @@ _(" plugin-name "_enable_disable, \" [disable]\") static void " plugin-name "_api_hookup (vat_main_t *vam) { - " plugin-name "_test_main_t * sm = &" plugin-name "_test_main; + " plugin-name "_test_main_t * " main-p " = &" plugin-name "_test_main; /* Hook up handlers for replies from the data plane plug-in */ #define _(N,n) \\ - vl_msg_api_set_handlers((VL_API_##N + sm->msg_id_base), \\ + vl_msg_api_set_handlers((VL_API_##N + " main-p "->msg_id_base), \\ #n, \\ vl_api_##n##_t_handler, \\ vl_noop_handler, \\ vl_api_##n##_t_endian, \\ vl_api_##n##_t_print, \\ - sizeof(vl_api_##n##_t), 1); + sizeof(vl_api_##n##_t), 1); foreach_vpe_api_reply_msg; #undef _ /* API messages we can send */ #define _(n,h) hash_set_mem (vam->function_by_name, #n, api_##n); foreach_vpe_api_msg; -#undef _ - +#undef _ + /* Help strings */ #define _(n,h) hash_set_mem (vam->help_by_name, #n, h); foreach_vpe_api_msg; #undef _ } -clib_error_t * vat_plugin_register (vat_main_t *vam) -{ - " plugin-name "_test_main_t * sm = &" plugin-name "_test_main; - u8 * name; - - sm->vat_main = vam; - - /* Ask the vpp engine for the first assigned message-id */ - name = format (0, \"" plugin-name "_%08x%c\", api_version, 0); - sm->msg_id_base = vl_client_get_first_plugin_msg_id ((char *) name); +VAT_PLUGIN_REGISTER(" plugin-name"); - if (sm->msg_id_base != (u16) ~0) - " plugin-name "_api_hookup (vam); - - vec_free(name); - - return 0; -} /* * fd.io coding-style-patch-verification: " capital-oh-en " *