blob: c4f6f05198e041831817747a69ad0003fa7c783e [file] [log] [blame]
Russell King3ff15592006-11-30 13:53:54 +00001#ifdef CONFIG_MMU
2
Nicolas Pitre5f0fbf92008-09-16 13:05:53 -04003/* the upper-most page table pointer */
Russell King1b2e2b72006-08-21 17:06:38 +01004extern pmd_t *top_pmd;
5
6#define TOP_PTE(x) pte_offset_kernel(top_pmd, x)
7
8static inline pmd_t *pmd_off(pgd_t *pgd, unsigned long virt)
9{
10 return pmd_offset(pgd, virt);
11}
12
13static inline pmd_t *pmd_off_k(unsigned long virt)
14{
15 return pmd_off(pgd_offset_k(virt), virt);
16}
17
Russell Kingb29e9f52007-04-21 10:47:29 +010018struct mem_type {
19 unsigned int prot_pte;
20 unsigned int prot_l1;
21 unsigned int prot_sect;
22 unsigned int domain;
23};
24
25const struct mem_type *get_mem_type(unsigned int type);
26
Russell King3ff15592006-11-30 13:53:54 +000027#endif
28
Russell King1b2e2b72006-08-21 17:06:38 +010029struct map_desc;
Russell Kingd111e8f2006-09-27 15:27:33 +010030struct meminfo;
31struct pglist_data;
Russell King1b2e2b72006-08-21 17:06:38 +010032
Russell King1b2e2b72006-08-21 17:06:38 +010033void __init create_mapping(struct map_desc *md);
Nicolas Pitre4b5f32c2008-10-06 13:24:40 -040034void __init bootmem_init(void);
Russell Kingd111e8f2006-09-27 15:27:33 +010035void reserve_node_zero(struct pglist_data *pgdat);