blob: 95bbe112965e1a53953eb2a224c6418805876d7e [file] [log] [blame]
Russell King1b2e2b72006-08-21 17:06:38 +01001/* the upper-most page table pointer */
Russell King3ff15592006-11-30 13:53:54 +00002
3#ifdef CONFIG_MMU
4
Russell King1b2e2b72006-08-21 17:06:38 +01005extern pmd_t *top_pmd;
6
7#define TOP_PTE(x) pte_offset_kernel(top_pmd, x)
8
9static inline pmd_t *pmd_off(pgd_t *pgd, unsigned long virt)
10{
11 return pmd_offset(pgd, virt);
12}
13
14static inline pmd_t *pmd_off_k(unsigned long virt)
15{
16 return pmd_off(pgd_offset_k(virt), virt);
17}
18
Russell Kingb29e9f52007-04-21 10:47:29 +010019struct mem_type {
20 unsigned int prot_pte;
21 unsigned int prot_l1;
22 unsigned int prot_sect;
23 unsigned int domain;
24};
25
26const struct mem_type *get_mem_type(unsigned int type);
27
Russell King3ff15592006-11-30 13:53:54 +000028#endif
29
Russell King1b2e2b72006-08-21 17:06:38 +010030struct map_desc;
Russell Kingd111e8f2006-09-27 15:27:33 +010031struct meminfo;
32struct pglist_data;
Russell King1b2e2b72006-08-21 17:06:38 +010033
Russell King1b2e2b72006-08-21 17:06:38 +010034void __init create_mapping(struct map_desc *md);
Nicolas Pitre4b5f32c2008-10-06 13:24:40 -040035void __init bootmem_init(void);
Russell Kingd111e8f2006-09-27 15:27:33 +010036void reserve_node_zero(struct pglist_data *pgdat);