summaryrefslogtreecommitdiffstats
path: root/src/vpp
diff options
context:
space:
mode:
authorNathan Skrzypczak <nathan.skrzypczak@gmail.com>2019-11-25 16:29:38 +0100
committerFlorin Coras <florin.coras@gmail.com>2019-12-11 16:54:26 +0000
commit0aa4013e20471a7b23bc3252649c95c81b5d7519 (patch)
tree33fa625cc95b9feb23e512fc54a31152132e440d /src/vpp
parentcfdb109180cb01c17f92a465f925c244259ba06b (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.c23
-rw-r--r--src/vpp/api/api_main.c10
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,