Go to the documentation of this file.
13 #include <linux/const.h>
18 #ifdef CONFIG_PAGE_SIZE_4KB
21 #ifdef CONFIG_PAGE_SIZE_8KB
24 #ifdef CONFIG_PAGE_SIZE_16KB
27 #ifdef CONFIG_PAGE_SIZE_32KB
30 #ifdef CONFIG_PAGE_SIZE_64KB
33 #define PAGE_SIZE (_AC(1,UL) << PAGE_SHIFT)
34 #define PAGE_MASK (~((1 << PAGE_SHIFT) - 1))
36 #ifdef CONFIG_HUGETLB_PAGE
37 #define HPAGE_SHIFT (PAGE_SHIFT + PAGE_SHIFT - 3)
38 #define HPAGE_SIZE (_AC(1,UL) << HPAGE_SHIFT)
39 #define HPAGE_MASK (~(HPAGE_SIZE - 1))
40 #define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT)
42 #define HPAGE_SHIFT ({BUILD_BUG(); 0; })
43 #define HPAGE_SIZE ({BUILD_BUG(); 0; })
44 #define HPAGE_MASK ({BUILD_BUG(); 0; })
45 #define HUGETLB_PAGE_ORDER ({BUILD_BUG(); 0; })
61 #define ARCH_PFN_OFFSET PFN_UP(PHYS_OFFSET)
68 static inline unsigned long pages_do_alias(
unsigned long addr1,
82 if (pages_do_alias((
unsigned long) addr, vaddr &
PAGE_MASK))
86 extern void copy_user_page(
void *vto,
void *vfrom,
unsigned long vaddr,
92 #define __HAVE_ARCH_COPY_USER_HIGHPAGE
97 #ifdef CONFIG_64BIT_PHYS_ADDR
98 #ifdef CONFIG_CPU_MIPS32
99 typedef struct {
unsigned long pte_low, pte_high; }
pte_t;
100 #define pte_val(x) ((x).pte_low | ((unsigned long long)(x).pte_high << 32))
101 #define __pte(x) ({ pte_t __pte = {(x), ((unsigned long long)(x)) >> 32}; __pte; })
103 typedef struct {
unsigned long long pte; }
pte_t;
104 #define pte_val(x) ((x).pte)
105 #define __pte(x) ((pte_t) { (x) } )
108 typedef struct {
unsigned long pte; }
pte_t;
109 #define pte_val(x) ((x).pte)
110 #define __pte(x) ((pte_t) { (x) } )
122 typedef struct {
unsigned long pgd; }
pgd_t;
123 #define pgd_val(x) ((x).pgd)
124 #define __pgd(x) ((pgd_t) { (x) } )
130 #define pgprot_val(x) ((x).pgprot)
131 #define __pgprot(x) ((pgprot_t) { (x) } )
140 #define ptep_buddy(x) ((pte_t *)((unsigned long)(x) ^ sizeof(pte_t)))
150 unsigned long __x = (unsigned long)(x); \
151 __x < CKSEG0 ? XPHYSADDR(__x) : CPHYSADDR(__x); \
155 ((unsigned long)(x) - PAGE_OFFSET + PHYS_OFFSET)
157 #define __va(x) ((void *)((unsigned long)(x) + PAGE_OFFSET - PHYS_OFFSET))
172 #define __pa_symbol(x) __pa(RELOC_HIDE((unsigned long)(x), 0))
174 #define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT)
176 #ifdef CONFIG_FLATMEM
178 #define pfn_valid(pfn) \
180 unsigned long __pfn = (pfn); \
182 extern unsigned long min_low_pfn; \
184 __pfn >= min_low_pfn && __pfn < max_mapnr; \
187 #elif defined(CONFIG_SPARSEMEM)
191 #elif defined(CONFIG_NEED_MULTIPLE_NODES)
193 #define pfn_valid(pfn) \
195 unsigned long __pfn = (pfn); \
196 int __n = pfn_to_nid(__pfn); \
197 ((__n >= 0) ? (__pfn < NODE_DATA(__n)->node_start_pfn + \
198 NODE_DATA(__n)->node_spanned_pages) \
204 #define virt_to_page(kaddr) pfn_to_page(PFN_DOWN(virt_to_phys(kaddr)))
205 #define virt_addr_valid(kaddr) pfn_valid(PFN_DOWN(virt_to_phys(kaddr)))
207 #define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \
208 VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
210 #define UNCAC_ADDR(addr) ((addr) - PAGE_OFFSET + UNCAC_BASE + \
212 #define CAC_ADDR(addr) ((addr) - UNCAC_BASE + PAGE_OFFSET - \