X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=extras%2Femacs%2Fplugin-test-skel.el;h=fee34bfe402a7684de1094921894792d9a27f05e;hb=287d5e109a93f14490f38bdbe34b6741af436984;hp=6357a3d7d4d479d7276ca3c9d379f2dc46f08ef7;hpb=913f4c9a8824c1bd167d3a103aec902a14c08697;p=vpp.git diff --git a/extras/emacs/plugin-test-skel.el b/extras/emacs/plugin-test-skel.el index 6357a3d7d4d..fee34bfe402 100644 --- a/extras/emacs/plugin-test-skel.el +++ b/extras/emacs/plugin-test-skel.el @@ -24,7 +24,7 @@ nil '(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 - " plugin-name " vpp-api-test plug-in * * Copyright (c) * Licensed under the Apache License, Version 2.0 (the \"License\"); @@ -45,33 +45,14 @@ nil #include #include +#define __plugin_msg_base " plugin-name"_test_main.msg_id_base +#include + uword unformat_sw_if_index (unformat_input_t * input, va_list * args); /* Declare message IDs */ -#include <" plugin-name "/" plugin-name "_msg_enum.h> - -/* define message structures */ -#define vl_typedefs -#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> -#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> -#undef vl_printfun - -/* Get the API version number. */ -#define vl_api_version(n,v) static u32 api_version=(v); -#include <" plugin-name "/" plugin-name "_all_api_h.h> -#undef vl_api_version - +#include <" plugin-name "/" plugin-name ".api_enum.h> +#include <" plugin-name "/" plugin-name ".api_types.h> typedef struct { @@ -82,36 +63,6 @@ typedef struct " plugin-name "_test_main_t " plugin-name "_test_main; -#define __plugin_msg_base " plugin-name"_test_main.msg_id_base -#include - -#define foreach_standard_reply_retval_handler \\ -_(" plugin-name "_enable_disable_reply) - -#define _(n) \\ - static void vl_api_##n##_t_handler \\ - (vl_api_##n##_t * mp) \\ - { \\ - vat_main_t * vam = " plugin-name "_test_main.vat_main; \\ - i32 retval = ntohl(mp->retval); \\ - if (vam->async_mode) { \\ - vam->async_errors += (retval < 0); \\ - } else { \\ - vam->retval = retval; \\ - vam->result_ready = 1; \\ - } \\ - } -foreach_standard_reply_retval_handler; -#undef _ - -/* - * Table of message reply handlers, must include boilerplate handlers - * we just generated - */ -#define foreach_vpe_api_reply_msg \\ -_(" PLUGIN-NAME "_ENABLE_DISABLE_REPLY, " plugin-name "_enable_disable_reply) - - static int api_" plugin-name "_enable_disable (vat_main_t * vam) { unformat_input_t * i = vam->input; @@ -153,56 +104,11 @@ static int api_" plugin-name "_enable_disable (vat_main_t * vam) } /* - * List of messages that the api test plugin sends, + * List of messages that the " plugin-name" test plugin sends, * and that the data plane plugin processes */ -#define foreach_vpe_api_msg \\ -_(" plugin-name "_enable_disable, \" [disable]\") - -static void " plugin-name "_api_hookup (vat_main_t *vam) -{ - " 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 + " 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); - 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 _ - - /* Help strings */ -#define _(n,h) hash_set_mem (vam->help_by_name, #n, h); - foreach_vpe_api_msg; -#undef _ -} +#include <" plugin-name "/" plugin-name ".api_test.c> -clib_error_t * vat_plugin_register (vat_main_t *vam) -{ - " plugin-name "_test_main_t * " main-p " = &" plugin-name "_test_main; - u8 * name; - - " main-p "->vat_main = vam; - - /* Ask the vpp engine for the first assigned message-id */ - name = format (0, \"" plugin-name "_%08x%c\", api_version, 0); - " main-p "->msg_id_base = vl_client_get_first_plugin_msg_id ((char *) name); - - if (" main-p "->msg_id_base != (u16) ~0) - " plugin-name "_api_hookup (vam); - - vec_free(name); - - return 0; -} /* * fd.io coding-style-patch-verification: " capital-oh-en " *