blob: 5d9f53907b4eda5eb85741e2330926d96bd57c8f [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);
Russell Kingd111e8f2006-09-27 15:27:33 +010035void __init bootmem_init(struct meminfo *mi);
36void reserve_node_zero(struct pglist_data *pgdat);
Russell King5ed5fdf2008-09-06 11:23:30 +010037
38extern void _text, _stext, _etext, __data_start, _end, __init_begin, __init_end;