diff options
author | Dave Barach <dave@barachs.net> | 2017-09-28 15:11:16 -0400 |
---|---|---|
committer | Ole Troan <ot@cisco.com> | 2017-10-09 13:32:40 +0200 |
commit | 0d056e5ede136cd0111dc3f9f41ef7b36a938027 (patch) | |
tree | 2f7c61d50f922a55ab7da199e0304a581ee7516f /src/vlibapi | |
parent | 87da476db0cd804e11463cc453a2bb41c6808542 (diff) |
vppapigen: support per-file (major,minor,patch) version stamps
Add one of these statements to foo.api:
vl_api_version 1.2.3
to generate a version tuple stanza in foo.api.h:
/****** Version tuple *****/
vl_api_version_tuple(foo, 1, 2, 3)
Change-Id: Ic514439e4677999daa8463a94f948f76b132ff15
Signed-off-by: Dave Barach <dave@barachs.net>
Signed-off-by: Ole Troan <ot@cisco.com>
Diffstat (limited to 'src/vlibapi')
-rw-r--r-- | src/vlibapi/api.h | 2 | ||||
-rw-r--r-- | src/vlibapi/api_common.h | 11 | ||||
-rw-r--r-- | src/vlibapi/api_shared.c | 9 |
3 files changed, 22 insertions, 0 deletions
diff --git a/src/vlibapi/api.h b/src/vlibapi/api.h index 49f5d5fb085..6820a541cba 100644 --- a/src/vlibapi/api.h +++ b/src/vlibapi/api.h @@ -114,6 +114,8 @@ vl_api_trace_t *vl_msg_api_trace_get (api_main_t * am, vl_api_trace_which_t which); void vl_msg_api_add_msg_name_crc (api_main_t * am, const char *string, u32 id); +void vl_msg_api_add_version (api_main_t * am, const char *string, + u32 major, u32 minor, u32 patch); /* node_serialize.c prototypes */ u8 *vlib_node_serialize (vlib_node_main_t * nm, u8 * vector, u32 max_threads, int include_nexts, diff --git a/src/vlibapi/api_common.h b/src/vlibapi/api_common.h index 845199efcd0..56b036d7f07 100644 --- a/src/vlibapi/api_common.h +++ b/src/vlibapi/api_common.h @@ -186,6 +186,14 @@ typedef struct _vl_msg_api_init_function_list_elt vl_msg_api_init_function_t *f; } _vl_msg_api_function_list_elt_t; +typedef struct +{ + u32 major; + u32 minor; + u32 patch; + char name[64]; +} api_version_t; + /** API main structure, used by both vpp and binary API clients */ typedef struct { @@ -312,6 +320,9 @@ typedef struct /** client message index hash table */ uword *msg_index_by_name_and_crc; + /** api version list */ + api_version_t *api_version_list; + /** Shared VM binary API region name */ const char *region_name; diff --git a/src/vlibapi/api_shared.c b/src/vlibapi/api_shared.c index 27898c3b952..831e863393b 100644 --- a/src/vlibapi/api_shared.c +++ b/src/vlibapi/api_shared.c @@ -915,6 +915,15 @@ vl_msg_api_add_msg_name_crc (api_main_t * am, const char *string, u32 id) hash_set_mem (am->msg_index_by_name_and_crc, string, id); } +void +vl_msg_api_add_version (api_main_t * am, const char *string, + u32 major, u32 minor, u32 patch) +{ + api_version_t version = {.major = major,.minor = minor,.patch = patch }; + ASSERT (strlen (string) < 64); + strncpy (version.name, string, 64); + vec_add1 (am->api_version_list, version); +} /* * fd.io coding-style-patch-verification: ON |