Merge branch 'vmalloc' of git://git.linaro.org/people/nico/linux into devel-stable
[linux-2.6.git] / arch / arm / mm / mm.h
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
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);