diff options
author | Nathan Skrzypczak <nathan.skrzypczak@gmail.com> | 2019-11-25 16:29:38 +0100 |
---|---|---|
committer | Florin Coras <florin.coras@gmail.com> | 2019-12-11 16:54:26 +0000 |
commit | 0aa4013e20471a7b23bc3252649c95c81b5d7519 (patch) | |
tree | 33fa625cc95b9feb23e512fc54a31152132e440d /src/vpp | |
parent | cfdb109180cb01c17f92a465f925c244259ba06b (diff) |
api: Use vl_msg_push/pop_heap
Type: refactor
Change-Id: I0eb46676fc22ce6825b2d879498df344b5a855e8
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Diffstat (limited to 'src/vpp')
-rw-r--r-- | src/vpp/api/api.c | 23 | ||||
-rw-r--r-- | src/vpp/api/api_main.c | 10 |
2 files changed, 9 insertions, 24 deletions
diff --git a/src/vpp/api/api.c b/src/vpp/api/api.c index c62e7d05738..70839b61059 100644 --- a/src/vpp/api/api.c +++ b/src/vpp/api/api.c @@ -143,22 +143,19 @@ shmem_cli_output (uword arg, u8 * buffer, uword buffer_bytes) u8 **shmem_vecp = (u8 **) arg; u8 *shmem_vec; void *oldheap; - api_main_t *am = vlibapi_get_main (); u32 offset; shmem_vec = *shmem_vecp; offset = vec_len (shmem_vec); - pthread_mutex_lock (&am->vlib_rp->mutex); - oldheap = svm_push_data_heap (am->vlib_rp); + oldheap = vl_msg_push_heap (); vec_validate (shmem_vec, offset + buffer_bytes - 1); clib_memcpy (shmem_vec + offset, buffer, buffer_bytes); - svm_pop_heap (oldheap); - pthread_mutex_unlock (&am->vlib_rp->mutex); + vl_msg_pop_heap (oldheap); *shmem_vecp = shmem_vec; } @@ -170,7 +167,6 @@ vl_api_cli_t_handler (vl_api_cli_t * mp) vl_api_cli_reply_t *rp; vl_api_registration_t *reg; vlib_main_t *vm = vlib_get_main (); - api_main_t *am = vlibapi_get_main (); unformat_input_t input; u8 *shmem_vec = 0; void *oldheap; @@ -187,13 +183,9 @@ vl_api_cli_t_handler (vl_api_cli_t * mp) vlib_cli_input (vm, &input, shmem_cli_output, (uword) & shmem_vec); - pthread_mutex_lock (&am->vlib_rp->mutex); - oldheap = svm_push_data_heap (am->vlib_rp); - + oldheap = vl_msg_push_heap (); vec_add1 (shmem_vec, 0); - - svm_pop_heap (oldheap); - pthread_mutex_unlock (&am->vlib_rp->mutex); + vl_msg_pop_heap (oldheap); rp->reply_in_shmem = (uword) shmem_vec; @@ -439,15 +431,13 @@ vl_api_get_node_graph_t_handler (vl_api_get_node_graph_t * mp) { int rv = 0; u8 *vector = 0; - api_main_t *am = vlibapi_get_main (); vlib_main_t *vm = vlib_get_main (); void *oldheap; vl_api_get_node_graph_reply_t *rmp; static vlib_node_t ***node_dups; static vlib_main_t **stat_vms; - pthread_mutex_lock (&am->vlib_rp->mutex); - oldheap = svm_push_data_heap (am->vlib_rp); + oldheap = vl_msg_push_heap (); /* * Keep the number of memcpy ops to a minimum (e.g. 1). @@ -462,8 +452,7 @@ vl_api_get_node_graph_t_handler (vl_api_get_node_graph_t * mp) vector = vlib_node_serialize (vm, node_dups, vector, 1 /* include nexts */ , 1 /* include stats */ ); - svm_pop_heap (oldheap); - pthread_mutex_unlock (&am->vlib_rp->mutex); + vl_msg_pop_heap (oldheap); /* *INDENT-OFF* */ REPLY_MACRO2(VL_API_GET_NODE_GRAPH_REPLY, diff --git a/src/vpp/api/api_main.c b/src/vpp/api/api_main.c index 7fcbe7027f1..1d16f78ea88 100644 --- a/src/vpp/api/api_main.c +++ b/src/vpp/api/api_main.c @@ -76,7 +76,6 @@ maybe_register_api_client (vat_main_t * vam) { vl_api_registration_t **regpp; vl_api_registration_t *regp; - svm_region_t *svm; void *oldheap; api_main_t *am = vlibapi_get_main (); @@ -85,17 +84,15 @@ maybe_register_api_client (vat_main_t * vam) pool_get (am->vl_clients, regpp); - svm = am->vlib_rp; + oldheap = vl_msg_push_heap (); - pthread_mutex_lock (&svm->mutex); - oldheap = svm_push_data_heap (svm); *regpp = clib_mem_alloc (sizeof (vl_api_registration_t)); regp = *regpp; clib_memset (regp, 0, sizeof (*regp)); regp->registration_type = REGISTRATION_TYPE_SHMEM; regp->vl_api_registration_pool_index = regpp - am->vl_clients; - regp->vlib_rp = svm; + regp->vlib_rp = am->vlib_rp; regp->shmem_hdr = am->shmem_hdr; /* Loopback connection */ @@ -104,8 +101,7 @@ maybe_register_api_client (vat_main_t * vam) regp->name = format (0, "%s", "vpp-internal"); vec_add1 (regp->name, 0); - pthread_mutex_unlock (&svm->mutex); - svm_pop_heap (oldheap); + vl_msg_pop_heap (oldheap); vam->my_client_index = vl_msg_api_handle_from_index_and_epoch (regp->vl_api_registration_pool_index, |