summaryrefslogtreecommitdiffstats
path: root/src/vlibapi/api_helper_macros.h
diff options
context:
space:
mode:
authorOle Troan <ot@cisco.com>2019-09-19 01:08:30 +0200
committerDave Barach <openvpp@barachs.net>2019-09-25 12:02:32 +0000
commit2a1ca787b9ca0021bd5da73450caedc2ff41c76d (patch)
treef9d879e07099f727ca565cfd8bc1624d3e7dc405 /src/vlibapi/api_helper_macros.h
parent33af8c1ed89f15cf0601ee891e9603bef16f2c93 (diff)
api: split api generated files
Split generation of API message enum and the typedefs into separate files, so that the type file can be included from elsewhere. Generate a C file for VPP that contains the API registration, this was previously done via X macros by the C pre- processor. This allows deleting lots of skeleton/copy paste code for each feature. plugins/flowprobe plugins/map examples/sample-plugin vnet/ipip used as Guinea pigs. Generate a C Test file for VAT, that does the same for VAT plugins. Also add support for a per-message CLI option, that is currently limited to VAT help text. option vat_help = "<help text>"; Type: refactor Change-Id: I245e3104bb76f7e1fb69a59ab20cc7c8dfcdd460 Signed-off-by: Ole Troan <ot@cisco.com>
Diffstat (limited to 'src/vlibapi/api_helper_macros.h')
-rw-r--r--src/vlibapi/api_helper_macros.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/vlibapi/api_helper_macros.h b/src/vlibapi/api_helper_macros.h
index 3a011dae2b6..2662df8356b 100644
--- a/src/vlibapi/api_helper_macros.h
+++ b/src/vlibapi/api_helper_macros.h
@@ -59,6 +59,21 @@ do { \
vl_api_send_msg (rp, (u8 *)rmp); \
} while(0);
+#define REPLY_MACRO_DETAILS2(t, body) \
+do { \
+ vl_api_registration_t *rp; \
+ rv = vl_msg_api_pd_handler (mp, rv); \
+ rp = vl_api_client_index_to_registration (mp->client_index); \
+ if (rp == 0) \
+ return; \
+ \
+ rmp = vl_msg_api_alloc (sizeof (*rmp)); \
+ rmp->_vl_msg_id = htons((t)+(REPLY_MSG_ID_BASE)); \
+ rmp->context = mp->context; \
+ do {body;} while (0); \
+ vl_api_send_msg (rp, (u8 *)rmp); \
+} while(0);
+
#define REPLY_MACRO3(t, n, body) \
do { \
vl_api_registration_t *rp; \