diff options
author | Jeremy Fitzhardinge <jeremy@goop.org> | 2009-02-08 21:49:05 -0500 |
---|---|---|
committer | Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> | 2009-02-11 17:54:09 -0500 |
commit | f402a65f93c7127b2bd93a4b2fe182cd859fb4c1 (patch) | |
tree | 968dc99e1a9ec4c6d24bb7d5e3d772c2004daacc /arch/x86 | |
parent | 8d19c99faf6165ef095138dd595d46b9bbb34055 (diff) |
x86: Split pgtable_32.h into pgtable_32.h and pgtable_32_types.h
Signed-off-by: Jeremy Fitzhardinge <jeremy@goop.org>
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/include/asm/pgtable_32.h | 42 | ||||
-rw-r--r-- | arch/x86/include/asm/pgtable_32_types.h | 46 |
2 files changed, 47 insertions, 41 deletions
diff --git a/arch/x86/include/asm/pgtable_32.h b/arch/x86/include/asm/pgtable_32.h index 72d20e2a40f2..97612fc7632f 100644 --- a/arch/x86/include/asm/pgtable_32.h +++ b/arch/x86/include/asm/pgtable_32.h | |||
@@ -1,6 +1,7 @@ | |||
1 | #ifndef _ASM_X86_PGTABLE_32_H | 1 | #ifndef _ASM_X86_PGTABLE_32_H |
2 | #define _ASM_X86_PGTABLE_32_H | 2 | #define _ASM_X86_PGTABLE_32_H |
3 | 3 | ||
4 | #include <asm/pgtable_32_types.h> | ||
4 | 5 | ||
5 | /* | 6 | /* |
6 | * The Linux memory management assumes a three-level page table setup. On | 7 | * The Linux memory management assumes a three-level page table setup. On |
@@ -33,47 +34,6 @@ void paging_init(void); | |||
33 | 34 | ||
34 | extern void set_pmd_pfn(unsigned long, unsigned long, pgprot_t); | 35 | extern void set_pmd_pfn(unsigned long, unsigned long, pgprot_t); |
35 | 36 | ||
36 | /* | ||
37 | * The Linux x86 paging architecture is 'compile-time dual-mode', it | ||
38 | * implements both the traditional 2-level x86 page tables and the | ||
39 | * newer 3-level PAE-mode page tables. | ||
40 | */ | ||
41 | #ifdef CONFIG_X86_PAE | ||
42 | # include <asm/pgtable-3level_types.h> | ||
43 | # define PMD_SIZE (1UL << PMD_SHIFT) | ||
44 | # define PMD_MASK (~(PMD_SIZE - 1)) | ||
45 | #else | ||
46 | # include <asm/pgtable-2level_types.h> | ||
47 | #endif | ||
48 | |||
49 | #define PGDIR_SIZE (1UL << PGDIR_SHIFT) | ||
50 | #define PGDIR_MASK (~(PGDIR_SIZE - 1)) | ||
51 | |||
52 | /* Just any arbitrary offset to the start of the vmalloc VM area: the | ||
53 | * current 8MB value just means that there will be a 8MB "hole" after the | ||
54 | * physical memory until the kernel virtual memory starts. That means that | ||
55 | * any out-of-bounds memory accesses will hopefully be caught. | ||
56 | * The vmalloc() routines leaves a hole of 4kB between each vmalloced | ||
57 | * area for the same reason. ;) | ||
58 | */ | ||
59 | #define VMALLOC_OFFSET (8 * 1024 * 1024) | ||
60 | #define VMALLOC_START ((unsigned long)high_memory + VMALLOC_OFFSET) | ||
61 | #ifdef CONFIG_X86_PAE | ||
62 | #define LAST_PKMAP 512 | ||
63 | #else | ||
64 | #define LAST_PKMAP 1024 | ||
65 | #endif | ||
66 | |||
67 | #define PKMAP_BASE ((FIXADDR_BOOT_START - PAGE_SIZE * (LAST_PKMAP + 1)) \ | ||
68 | & PMD_MASK) | ||
69 | |||
70 | #ifdef CONFIG_HIGHMEM | ||
71 | # define VMALLOC_END (PKMAP_BASE - 2 * PAGE_SIZE) | ||
72 | #else | ||
73 | # define VMALLOC_END (FIXADDR_START - 2 * PAGE_SIZE) | ||
74 | #endif | ||
75 | |||
76 | #define MAXMEM (VMALLOC_END - PAGE_OFFSET - __VMALLOC_RESERVE) | ||
77 | 37 | ||
78 | /* | 38 | /* |
79 | * Define this if things work differently on an i386 and an i486: | 39 | * Define this if things work differently on an i386 and an i486: |
diff --git a/arch/x86/include/asm/pgtable_32_types.h b/arch/x86/include/asm/pgtable_32_types.h new file mode 100644 index 000000000000..bd8df3b2fe04 --- /dev/null +++ b/arch/x86/include/asm/pgtable_32_types.h | |||
@@ -0,0 +1,46 @@ | |||
1 | #ifndef _ASM_X86_PGTABLE_32_DEFS_H | ||
2 | #define _ASM_X86_PGTABLE_32_DEFS_H | ||
3 | |||
4 | /* | ||
5 | * The Linux x86 paging architecture is 'compile-time dual-mode', it | ||
6 | * implements both the traditional 2-level x86 page tables and the | ||
7 | * newer 3-level PAE-mode page tables. | ||
8 | */ | ||
9 | #ifdef CONFIG_X86_PAE | ||
10 | # include <asm/pgtable-3level_types.h> | ||
11 | # define PMD_SIZE (1UL << PMD_SHIFT) | ||
12 | # define PMD_MASK (~(PMD_SIZE - 1)) | ||
13 | #else | ||
14 | # include <asm/pgtable-2level_types.h> | ||
15 | #endif | ||
16 | |||
17 | #define PGDIR_SIZE (1UL << PGDIR_SHIFT) | ||
18 | #define PGDIR_MASK (~(PGDIR_SIZE - 1)) | ||
19 | |||
20 | /* Just any arbitrary offset to the start of the vmalloc VM area: the | ||
21 | * current 8MB value just means that there will be a 8MB "hole" after the | ||
22 | * physical memory until the kernel virtual memory starts. That means that | ||
23 | * any out-of-bounds memory accesses will hopefully be caught. | ||
24 | * The vmalloc() routines leaves a hole of 4kB between each vmalloced | ||
25 | * area for the same reason. ;) | ||
26 | */ | ||
27 | #define VMALLOC_OFFSET (8 * 1024 * 1024) | ||
28 | #define VMALLOC_START ((unsigned long)high_memory + VMALLOC_OFFSET) | ||
29 | #ifdef CONFIG_X86_PAE | ||
30 | #define LAST_PKMAP 512 | ||
31 | #else | ||
32 | #define LAST_PKMAP 1024 | ||
33 | #endif | ||
34 | |||
35 | #define PKMAP_BASE ((FIXADDR_BOOT_START - PAGE_SIZE * (LAST_PKMAP + 1)) \ | ||
36 | & PMD_MASK) | ||
37 | |||
38 | #ifdef CONFIG_HIGHMEM | ||
39 | # define VMALLOC_END (PKMAP_BASE - 2 * PAGE_SIZE) | ||
40 | #else | ||
41 | # define VMALLOC_END (FIXADDR_START - 2 * PAGE_SIZE) | ||
42 | #endif | ||
43 | |||
44 | #define MAXMEM (VMALLOC_END - PAGE_OFFSET - __VMALLOC_RESERVE) | ||
45 | |||
46 | #endif /* _ASM_X86_PGTABLE_32_DEFS_H */ | ||