X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvppinfra%2Fmem.h;h=028289c50a593b13c5adc32fba0e3a3f3454a4f9;hb=b384b543313b6b47a277c903e9d4fcd4343054fa;hp=69ab880317d6e441234ef3ec8b8dddecb40d3a86;hpb=01914ce45729833cec88c65689de9a0336cd40cc;p=vpp.git diff --git a/src/vppinfra/mem.h b/src/vppinfra/mem.h index 69ab880317d..028289c50a5 100644 --- a/src/vppinfra/mem.h +++ b/src/vppinfra/mem.h @@ -330,7 +330,7 @@ typedef struct #define CLIB_MEM_VM_F_HUGETLB_PREALLOC (1 << 4) u32 flags; /**< vm allocation flags:
CLIB_MEM_VM_F_SHARED: request shared memory, file - destiptor will be provided on successful allocation. + descriptor will be provided on successful allocation.
CLIB_MEM_VM_F_HUGETLB: request hugepages.
CLIB_MEM_VM_F_NUMA_PREFER: numa_node field contains valid numa node preference. @@ -342,15 +342,27 @@ typedef struct uword size; /**< Allocation size, set by caller. */ int numa_node; /**< numa node preference. Valid if CLIB_MEM_VM_F_NUMA_PREFER set. */ void *addr; /**< Pointer to allocated memory, set on successful allocation. */ - int fd; /**< File desriptor, set on successful allocation if CLIB_MEM_VM_F_SHARED is set. */ + int fd; /**< File descriptor, set on successful allocation if CLIB_MEM_VM_F_SHARED is set. */ int log2_page_size; /* Page size in log2 format, set on successful allocation. */ int n_pages; /* Number of pages. */ + uword requested_va; /**< Request fixed position mapping */ } clib_mem_vm_alloc_t; 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); u64 *clib_mem_vm_get_paddr (void *mem, int log2_page_size, int n_pages); +typedef struct +{ + uword size; /**< Map size */ + int fd; /**< File descriptor to be mapped */ + uword requested_va; /**< Request fixed position mapping */ + void *addr; /**< Pointer to mapped memory, if successful */ +} clib_mem_vm_map_t; + +clib_error_t *clib_mem_vm_ext_map (clib_mem_vm_map_t * a); +void clib_mem_vm_randomize_va (uword * requested_va, u32 log2_page_size); #include /* clib_panic */