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 #define RTE_CACHE_LINE_MASK (RTE_CACHE_LINE_SIZE-1)
73 #define RTE_CACHE_LINE_ROUNDUP(size) \
74 (RTE_CACHE_LINE_SIZE * ((size + RTE_CACHE_LINE_SIZE - 1) / RTE_CACHE_LINE_SIZE))
78 #if RTE_CACHE_LINE_SIZE == 64
79 #define RTE_CACHE_LINE_SIZE_LOG2 6
80 #elif RTE_CACHE_LINE_SIZE == 128
81 #define RTE_CACHE_LINE_SIZE_LOG2 7
83 #error "Unsupported cache line size"
86 #define RTE_CACHE_LINE_MIN_SIZE 64
91 #define __rte_cache_aligned __rte_aligned(RTE_CACHE_LINE_SIZE)
96 #define __rte_cache_min_aligned __rte_aligned(RTE_CACHE_LINE_MIN_SIZE)
99 #define RTE_BAD_PHYS_ADDR ((phys_addr_t)-1)
110 #ifdef RTE_LIBRTE_IVSHMEM
111 phys_addr_t ioremap_addr;
118 #ifdef RTE_LIBRTE_XEN_DOM0
120 uint64_t mfn[DOM0_NUM_MEMBLOCK];
197 #ifdef RTE_LIBRTE_XEN_DOM0
200 int rte_xen_dom0_supported(
void);
203 phys_addr_t rte_xen_mem_phy2mch(uint32_t,
const phys_addr_t);
216 static inline phys_addr_t
217 rte_mem_phy2mch(uint32_t memseg_id,
const phys_addr_t phy_addr)
219 if (rte_xen_dom0_supported())
220 return rte_xen_mem_phy2mch(memseg_id, phy_addr);
234 int rte_xen_dom0_memory_init(
void);
245 int rte_xen_dom0_memory_attach(
void);
247 static inline int rte_xen_dom0_supported(
void)
252 static inline phys_addr_t
253 rte_mem_phy2mch(uint32_t memseg_id
__rte_unused,
const phys_addr_t phy_addr)