6 #include <linux/stddef.h>
7 #include <linux/module.h>
12 #include <linux/slab.h>
13 #include <asm/fixmap.h>
26 static unsigned long *empty_bad_page =
NULL;
39 static unsigned long brk_end;
42 static void setup_highmem(
unsigned long highmem_start,
43 unsigned long highmem_len)
46 unsigned long highmem_pfn;
50 for (i = 0; i < highmem_len >>
PAGE_SHIFT; i++) {
52 ClearPageReserved(page);
53 init_page_count(page);
82 nr_free_pages() << (PAGE_SHIFT-10));
99 (
unsigned long)
__pa(pte)));
107 #ifdef CONFIG_3_LEVEL_PGTABLES
129 for ( ; (i <
PTRS_PER_PGD) && (vaddr < end); pgd++, i++) {
132 one_md_table_init(pud);
134 for (; (j <
PTRS_PER_PMD) && (vaddr < end); pmd++, j++) {
135 one_page_table_init(pmd);
142 #ifdef CONFIG_HIGHMEM
146 #define kmap_get_fixmap_pte(vaddr) \
147 pte_offset_kernel(pmd_offset(pud_offset(pgd_offset_k(vaddr), (vaddr)),\
152 unsigned long kmap_vstart;
161 static void __init init_highmem(
void)
185 static void __init fixaddr_user_init(
void)
187 #ifdef CONFIG_ARCH_REUSE_HOST_VSYSCALL_AREA
201 memcpy((
void *) v , (
void *) FIXADDR_USER_START, size);
216 unsigned long zones_size[MAX_NR_ZONES],
vaddr;
226 #ifdef CONFIG_HIGHMEM
240 #ifdef CONFIG_HIGHMEM
254 #ifdef CONFIG_BLK_DEV_INITRD
259 (end - start) >> 10);
303 pgtable_page_ctor(pte);
307 #ifdef CONFIG_3_LEVEL_PGTABLES