34 #ifndef _RTE_MEMORY_H_
35 #define _RTE_MEMORY_H_
47 #include <rte_config.h>
49 #ifdef RTE_EXEC_ENV_LINUXAPP
50 #include <exec-env/rte_dom0_common.h>
61 RTE_PGSIZE_4K = 1ULL << 12,
62 RTE_PGSIZE_64K = 1ULL << 16,
63 RTE_PGSIZE_256K = 1ULL << 18,
64 RTE_PGSIZE_2M = 1ULL << 21,
65 RTE_PGSIZE_16M = 1ULL << 24,
66 RTE_PGSIZE_256M = 1ULL << 28,
67 RTE_PGSIZE_512M = 1ULL << 29,
68 RTE_PGSIZE_1G = 1ULL << 30,
69 RTE_PGSIZE_4G = 1ULL << 32,
70 RTE_PGSIZE_16G = 1ULL << 34,
73 #define SOCKET_ID_ANY -1
74 #define RTE_CACHE_LINE_MASK (RTE_CACHE_LINE_SIZE-1)
76 #define RTE_CACHE_LINE_ROUNDUP(size) \
77 (RTE_CACHE_LINE_SIZE * ((size + RTE_CACHE_LINE_SIZE - 1) / RTE_CACHE_LINE_SIZE))
81 #if RTE_CACHE_LINE_SIZE == 64
82 #define RTE_CACHE_LINE_SIZE_LOG2 6
83 #elif RTE_CACHE_LINE_SIZE == 128
84 #define RTE_CACHE_LINE_SIZE_LOG2 7
86 #error "Unsupported cache line size"
89 #define RTE_CACHE_LINE_MIN_SIZE 64
94 #define __rte_cache_aligned __rte_aligned(RTE_CACHE_LINE_SIZE)
99 #define __rte_cache_min_aligned __rte_aligned(RTE_CACHE_LINE_MIN_SIZE)
102 #define RTE_BAD_PHYS_ADDR ((phys_addr_t)-1)
119 #ifdef RTE_LIBRTE_XEN_DOM0
121 uint64_t mfn[DOM0_NUM_MEMBLOCK];
198 #ifdef RTE_LIBRTE_XEN_DOM0
201 int rte_xen_dom0_supported(
void);
204 phys_addr_t rte_xen_mem_phy2mch(int32_t,
const phys_addr_t);
218 static inline phys_addr_t
219 rte_mem_phy2mch(int32_t memseg_id,
const phys_addr_t phy_addr)
221 if (rte_xen_dom0_supported())
222 return rte_xen_mem_phy2mch(memseg_id, phy_addr);
236 int rte_xen_dom0_memory_init(
void);
247 int rte_xen_dom0_memory_attach(
void);
249 static inline int rte_xen_dom0_supported(
void)
254 static inline phys_addr_t
255 rte_mem_phy2mch(int32_t memseg_id
__rte_unused,
const phys_addr_t phy_addr)
unsigned rte_memory_get_nchannel(void)
const struct rte_memseg * rte_eal_get_physmem_layout(void)
int rte_mem_lock_page(const void *virt)
unsigned rte_memory_get_nrank(void)
phys_addr_t rte_mem_virt2phy(const void *virt)
uint64_t rte_eal_get_physmem_size(void)
void rte_dump_physmem_layout(FILE *f)