VPP-236 Support 64-bit vector lengths, shared memory segments >4 GB

Change-Id: I02aee33e96e7ae32094b9f82f6a667d30bb52f59
Signed-off-by: Dave Barach <dave@barachs.net>
This commit is contained in:
Dave Barach
2016-08-03 14:34:38 -04:00
committed by Keith Burns
parent c53191deb3
commit b3d93dacfd
13 changed files with 264 additions and 76 deletions

View File

@ -228,6 +228,46 @@ vl_set_memory_gid (int gid)
am->api_gid = gid;
}
void
vl_set_global_memory_baseva (u64 baseva)
{
api_main_t *am = &api_main;
am->global_baseva = baseva;
}
void
vl_set_global_memory_size (u64 size)
{
api_main_t *am = &api_main;
am->global_size = size;
}
void
vl_set_api_memory_size (u64 size)
{
api_main_t *am = &api_main;
am->api_size = size;
}
void
vl_set_global_pvt_heap_size (u64 size)
{
api_main_t *am = &api_main;
am->global_pvt_heap_size = size;
}
void
vl_set_api_pvt_heap_size (u64 size)
{
api_main_t *am = &api_main;
am->api_pvt_heap_size = size;
}
int
vl_map_shmem (char *region_name, int is_vlib)
{
@ -245,10 +285,11 @@ vl_map_shmem (char *region_name, int is_vlib)
memset (a, 0, sizeof (*a));
a->name = region_name;
a->size = 16 << 20;
a->size = am->api_size ? am->api_size: (16 << 20);
a->flags = SVM_FLAGS_MHEAP;
a->uid = am->api_uid;
a->gid = am->api_gid;
a->pvt_heap_size = am->api_pvt_heap_size;
vlib_rp = svm_region_find_or_create (a);