1 #ifdef CONFIG_MMU
2 
3 /* the upper-most page table pointer */
4 extern pmd_t *top_pmd;
5 
6 #define TOP_PTE(x)	pte_offset_kernel(top_pmd, x)
7 
pmd_off_k(unsigned long virt)8 static inline pmd_t *pmd_off_k(unsigned long virt)
9 {
10 	return pmd_offset(pud_offset(pgd_offset_k(virt), virt), virt);
11 }
12 
13 struct mem_type {
14 	pteval_t prot_pte;
15 	pmdval_t prot_l1;
16 	pmdval_t prot_sect;
17 	unsigned int domain;
18 };
19 
20 const struct mem_type *get_mem_type(unsigned int type);
21 
22 extern void __flush_dcache_page(struct address_space *mapping, struct page *page);
23 
24 /*
25  * ARM specific vm_struct->flags bits.
26  */
27 
28 /* (super)section-mapped I/O regions used by ioremap()/iounmap() */
29 #define VM_ARM_SECTION_MAPPING	0x80000000
30 
31 /* permanent static mappings from iotable_init() */
32 #define VM_ARM_STATIC_MAPPING	0x40000000
33 
34 /* mapping type (attributes) for permanent static mappings */
35 #define VM_ARM_MTYPE(mt)		((mt) << 20)
36 #define VM_ARM_MTYPE_MASK	(0x1f << 20)
37 
38 #endif
39 
40 #ifdef CONFIG_ZONE_DMA
41 extern u32 arm_dma_limit;
42 #else
43 #define arm_dma_limit ((u32)~0)
44 #endif
45 
46 void __init bootmem_init(void);
47 void arm_mm_memblock_reserve(void);
48