-typedef enum
-{
- VL_API_TRACE_TX,
- VL_API_TRACE_RX,
-} vl_api_trace_which_t;
-
-#define VL_API_LITTLE_ENDIAN 0x00
-#define VL_API_BIG_ENDIAN 0x01
-
-typedef struct
-{
- u8 *name;
- u16 first_msg_id;
- u16 last_msg_id;
-} vl_api_msg_range_t;
-
-typedef struct
-{
- void (**msg_handlers) (void *);
- int (**pd_msg_handlers) (void *, int);
- void (**msg_cleanup_handlers) (void *);
- void (**msg_endian_handlers) (void *);
- void (**msg_print_handlers) (void *, void *);
- char **msg_names;
- u8 *message_bounce;
- u8 *is_mp_safe;
- struct ring_alloc_ *arings;
- u32 ring_misses;
- u32 garbage_collects;
- u32 missing_clients;
- vl_api_trace_t *rx_trace;
- vl_api_trace_t *tx_trace;
- int msg_print_flag;
- trace_cfg_t *api_trace_cfg;
- int our_pid;
- svm_region_t *vlib_rp;
- svm_region_t **mapped_shmem_regions;
- struct vl_shmem_hdr_ *shmem_hdr;
- vl_api_registration_t **vl_clients;
-
- u8 *serialized_message_table_in_shmem;
-
- /* For plugin msg allocator */
- u16 first_available_msg_id;
-
- /* message range by name hash */
- uword *msg_range_by_name;
-
- /* vector of message ranges */
- vl_api_msg_range_t *msg_ranges;
-
- /* uid for the api shared memory region */
- int api_uid;
- /* gid for the api shared memory region */
- int api_gid;
-
- /* base virtual address for global VM region */
- u64 global_baseva;
-
- /* size of the global VM region */
- u64 global_size;
-
- /* size of the API region */
- u64 api_size;