34 #ifndef _RTE_MEMORY_H_
35 #define _RTE_MEMORY_H_
47 #ifdef RTE_EXEC_ENV_LINUXAPP
48 #include <exec-env/rte_dom0_common.h>
58 RTE_PGSIZE_4K = 1ULL << 12,
59 RTE_PGSIZE_64K = 1ULL << 16,
60 RTE_PGSIZE_256K = 1ULL << 18,
61 RTE_PGSIZE_2M = 1ULL << 21,
62 RTE_PGSIZE_16M = 1ULL << 24,
63 RTE_PGSIZE_256M = 1ULL << 28,
64 RTE_PGSIZE_512M = 1ULL << 29,
65 RTE_PGSIZE_1G = 1ULL << 30,
66 RTE_PGSIZE_4G = 1ULL << 32,
67 RTE_PGSIZE_16G = 1ULL << 34,
70 #define SOCKET_ID_ANY -1
71 #ifndef RTE_CACHE_LINE_SIZE
72 #define RTE_CACHE_LINE_SIZE 64
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))
83 #define __rte_cache_aligned __rte_aligned(RTE_CACHE_LINE_SIZE)
86 #define RTE_BAD_PHYS_ADDR ((phys_addr_t)-1)
97 #ifdef RTE_LIBRTE_IVSHMEM
98 phys_addr_t ioremap_addr;
105 #ifdef RTE_LIBRTE_XEN_DOM0
107 uint64_t mfn[DOM0_NUM_MEMBLOCK];
184 #ifdef RTE_LIBRTE_XEN_DOM0
187 extern int rte_xen_dom0_supported(
void);
190 phys_addr_t rte_xen_mem_phy2mch(uint32_t,
const phys_addr_t);
203 static inline phys_addr_t
204 rte_mem_phy2mch(uint32_t memseg_id,
const phys_addr_t phy_addr)
206 if (rte_xen_dom0_supported())
207 return rte_xen_mem_phy2mch(memseg_id, phy_addr);
221 int rte_xen_dom0_memory_init(
void);
232 int rte_xen_dom0_memory_attach(
void);
234 static inline int rte_xen_dom0_supported(
void)
239 static inline phys_addr_t
240 rte_mem_phy2mch(uint32_t memseg_id
__rte_unused,
const phys_addr_t phy_addr)