vppapigen: support per-file (major,minor,patch) version stamps
[vpp.git] / src / vlibapi / api_common.h
index 324b260..56b036d 100644 (file)
@@ -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
 {
@@ -239,9 +247,12 @@ typedef struct
   /** Current process PID */
   int our_pid;
 
-  /** Binary api segment descriptor */
+  /** Current binary api segment descriptor */
   svm_region_t *vlib_rp;
 
+  /** Primary api segment descriptor */
+  svm_region_t *vlib_primary_rp;
+
   /** Vector of all mapped shared-VM segments */
   svm_region_t **vlib_private_rps;
   svm_region_t **mapped_shmem_regions;
@@ -309,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;