vppinfra: add option to use libexecinfo
[vpp.git] / src / vppinfra / pmalloc.c
index f6171db..546a4fe 100644 (file)
@@ -60,7 +60,7 @@ pmalloc_validate_numa_node (u32 * numa_node)
   return 0;
 }
 
-int
+__clib_export int
 clib_pmalloc_init (clib_pmalloc_main_t * pm, uword base_addr, uword size)
 {
   uword base, pagesize;
@@ -288,10 +288,7 @@ pmalloc_map_pages (clib_pmalloc_main_t * pm, clib_pmalloc_arena_t * a,
   if (a->flags & CLIB_PMALLOC_ARENA_F_SHARED_MEM)
     {
       mmap_flags |= MAP_SHARED;
-      if (a->log2_subpage_sz != clib_mem_get_log2_page_size ())
-       pm->error = clib_mem_create_hugetlb_fd ((char *) a->name, &a->fd);
-      else
-       pm->error = clib_mem_create_fd ((char *) a->name, &a->fd);
+      a->fd = clib_mem_vm_create_fd (a->log2_subpage_sz, "%s", a->name);
       if (a->fd == -1)
        goto error;
       if ((ftruncate (a->fd, size)) == -1)
@@ -385,7 +382,7 @@ error:
   return 0;
 }
 
-void *
+__clib_export void *
 clib_pmalloc_create_shared_arena (clib_pmalloc_main_t * pm, char *name,
                                  uword size, u32 log2_page_sz, u32 numa_node)
 {
@@ -487,7 +484,7 @@ clib_pmalloc_alloc_inline (clib_pmalloc_main_t * pm, clib_pmalloc_arena_t * a,
   return 0;
 }
 
-void *
+__clib_export void *
 clib_pmalloc_alloc_aligned_on_numa (clib_pmalloc_main_t * pm, uword size,
                                    uword align, u32 numa_node)
 {
@@ -531,7 +528,7 @@ pmalloc_chunks_mergeable (clib_pmalloc_arena_t * a, clib_pmalloc_page_t * pp,
   return 1;
 }
 
-void
+__clib_export void
 clib_pmalloc_free (clib_pmalloc_main_t * pm, void *va)
 {
   clib_pmalloc_page_t *pp;
@@ -620,7 +617,7 @@ format_pmalloc_page (u8 * s, va_list * va)
   return s;
 }
 
-u8 *
+__clib_export u8 *
 format_pmalloc (u8 * s, va_list * va)
 {
   clib_pmalloc_main_t *pm = va_arg (*va, clib_pmalloc_main_t *);
@@ -646,7 +643,7 @@ format_pmalloc (u8 * s, va_list * va)
 
 
   /* *INDENT-OFF* */
-  pool_foreach (a, pm->arenas,
+  pool_foreach (a, pm->arenas)
     {
       u32 *page_index;
       s = format (s, "\n%Uarena '%s' pages %u subpage-size %U numa-node %u",
@@ -662,13 +659,13 @@ format_pmalloc (u8 * s, va_list * va)
            s = format (s, "\n%U%U", format_white_space, indent + 4,
                        format_pmalloc_page, pp, verbose);
          }
-    });
+    }
   /* *INDENT-ON* */
 
   return s;
 }
 
-u8 *
+__clib_export u8 *
 format_pmalloc_map (u8 * s, va_list * va)
 {
   clib_pmalloc_main_t *pm = va_arg (*va, clib_pmalloc_main_t *);