X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvppinfra%2Fmem.h;h=65b25f004a73aaba1a10518dcd3f9bf4d01f394f;hb=178cf493d009995b28fdf220f04c98860ff79a9b;hp=1646072e72f8e8b391fcd715de3dfe3fa950bd1c;hpb=6a5adc369591fcac2447e9809deaa22f56b53911;p=vpp.git diff --git a/src/vppinfra/mem.h b/src/vppinfra/mem.h index 1646072e72f..65b25f004a7 100644 --- a/src/vppinfra/mem.h +++ b/src/vppinfra/mem.h @@ -52,7 +52,7 @@ #endif #include -#include /* memcpy, memset */ +#include /* memcpy, clib_memset */ #include #define CLIB_MAX_MHEAPS 256 @@ -232,7 +232,7 @@ clib_mem_realloc (void *p, uword new_size, uword old_size) copy_size = old_size; else copy_size = new_size; - clib_memcpy (q, p, copy_size); + clib_memcpy_fast (q, p, copy_size); clib_mem_free (p); } return q; @@ -348,7 +348,7 @@ always_inline void * clib_mem_vm_map (void *addr, uword size) { void *mmap_addr; - uword flags = MAP_PRIVATE | MAP_FIXED; + uword flags = MAP_PRIVATE | MAP_FIXED | MAP_ANONYMOUS; mmap_addr = mmap (addr, size, (PROT_READ | PROT_WRITE), flags, -1, 0); if (mmap_addr == (void *) -1) @@ -386,9 +386,13 @@ typedef struct uword requested_va; /**< Request fixed position mapping */ } clib_mem_vm_alloc_t; +clib_error_t *clib_mem_create_fd (char *name, int *fdp); +clib_error_t *clib_mem_create_hugetlb_fd (char *name, int *fdp); clib_error_t *clib_mem_vm_ext_alloc (clib_mem_vm_alloc_t * a); -u64 clib_mem_vm_get_page_size (int fd); -int clib_mem_vm_get_log2_page_size (int fd); +void clib_mem_vm_ext_free (clib_mem_vm_alloc_t * a); +u64 clib_mem_get_fd_page_size (int fd); +uword clib_mem_get_default_hugepage_size (void); +int clib_mem_get_fd_log2_page_size (int fd); u64 *clib_mem_vm_get_paddr (void *mem, int log2_page_size, int n_pages); typedef struct