diff options
Diffstat (limited to 'src/vlibapi')
-rw-r--r-- | src/vlibapi/api_common.h | 2 | ||||
-rw-r--r-- | src/vlibapi/api_shared.c | 17 |
2 files changed, 19 insertions, 0 deletions
diff --git a/src/vlibapi/api_common.h b/src/vlibapi/api_common.h index 3d55e2acdd6..73c5a50e850 100644 --- a/src/vlibapi/api_common.h +++ b/src/vlibapi/api_common.h @@ -178,6 +178,8 @@ int vl_msg_api_pd_handler (void *mp, int rv); void vl_msg_api_set_first_available_msg_id (u16 first_avail); u16 vl_msg_api_get_msg_ids (const char *name, int n); u32 vl_msg_api_get_msg_index (u8 * name_and_crc); +void *vl_msg_push_heap (void); +void vl_msg_pop_heap (void *oldheap); typedef clib_error_t *(vl_msg_api_init_function_t) (u32 client_index); diff --git a/src/vlibapi/api_shared.c b/src/vlibapi/api_shared.c index 3b9c0f47b66..24ec33b1506 100644 --- a/src/vlibapi/api_shared.c +++ b/src/vlibapi/api_shared.c @@ -955,6 +955,23 @@ vl_msg_api_get_msg_index (u8 * name_and_crc) return ~0; } +void * +vl_msg_push_heap (void) +{ + api_main_t *am = &api_main; + pthread_mutex_lock (&am->vlib_rp->mutex); + return svm_push_data_heap (am->vlib_rp); +} + +void +vl_msg_pop_heap (void *oldheap) +{ + api_main_t *am = &api_main; + svm_pop_heap (oldheap); + pthread_mutex_unlock (&am->vlib_rp->mutex); +} + + /* * fd.io coding-style-patch-verification: ON * |