diff options
Diffstat (limited to 'vlib-api')
-rw-r--r-- | vlib-api/vlibmemory/memory_shared.c | 9 | ||||
-rw-r--r-- | vlib-api/vlibmemory/memory_vlib.c | 14 |
2 files changed, 12 insertions, 11 deletions
diff --git a/vlib-api/vlibmemory/memory_shared.c b/vlib-api/vlibmemory/memory_shared.c index de1eafdad80..ecd5cff7339 100644 --- a/vlib-api/vlibmemory/memory_shared.c +++ b/vlib-api/vlibmemory/memory_shared.c @@ -192,6 +192,13 @@ static void vl_msg_api_free_nolock (void *a) svm_pop_heap (oldheap); } +void vl_set_memory_root_path (char *name) +{ + api_main_t *am = &api_main; + + am->root_path = name; +} + int vl_map_shmem (char *region_name, int is_vlib) { svm_map_region_args_t *a = 0; @@ -203,7 +210,7 @@ int vl_map_shmem (char *region_name, int is_vlib) struct timespec ts, tsrem; if (is_vlib == 0) - svm_region_init(); + svm_region_init_chroot(am->root_path); vec_validate (a, 0); diff --git a/vlib-api/vlibmemory/memory_vlib.c b/vlib-api/vlibmemory/memory_vlib.c index 57cb8f74012..7ba76ec49d1 100644 --- a/vlib-api/vlibmemory/memory_vlib.c +++ b/vlib-api/vlibmemory/memory_vlib.c @@ -1046,9 +1046,10 @@ VLIB_CLI_COMMAND (trace, static) = { clib_error_t * vlibmemory_init (vlib_main_t * vm) { - /* Do this early, to avoid glibc malloc fubar */ - svm_region_init(); - return 0; + api_main_t *am = &api_main; + /* Normally NULL, can be set by cmd line "chroot {prefix foo}" */ + svm_region_init_chroot (am->root_path); + return 0; } VLIB_INIT_FUNCTION (vlibmemory_init); @@ -1060,13 +1061,6 @@ void vl_set_memory_region_name (char *name) am->region_name = name; } -void vl_set_memory_root_path (char *name) -{ - api_main_t *am = &api_main; - - am->root_path = name; -} - static int range_compare (vl_api_msg_range_t * a0, vl_api_msg_range_t * a1) { int len0, len1, clen; |