diff options
Diffstat (limited to 'arch/x86/include/asm/pgtable-3level_types.h')
-rw-r--r-- | arch/x86/include/asm/pgtable-3level_types.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/arch/x86/include/asm/pgtable-3level_types.h b/arch/x86/include/asm/pgtable-3level_types.h new file mode 100644 index 00000000000..1bd5876c864 --- /dev/null +++ b/arch/x86/include/asm/pgtable-3level_types.h | |||
@@ -0,0 +1,48 @@ | |||
1 | #ifndef _ASM_X86_PGTABLE_3LEVEL_DEFS_H | ||
2 | #define _ASM_X86_PGTABLE_3LEVEL_DEFS_H | ||
3 | |||
4 | #ifndef __ASSEMBLY__ | ||
5 | #include <linux/types.h> | ||
6 | |||
7 | typedef u64 pteval_t; | ||
8 | typedef u64 pmdval_t; | ||
9 | typedef u64 pudval_t; | ||
10 | typedef u64 pgdval_t; | ||
11 | typedef u64 pgprotval_t; | ||
12 | |||
13 | typedef union { | ||
14 | struct { | ||
15 | unsigned long pte_low, pte_high; | ||
16 | }; | ||
17 | pteval_t pte; | ||
18 | } pte_t; | ||
19 | #endif /* !__ASSEMBLY__ */ | ||
20 | |||
21 | #ifdef CONFIG_PARAVIRT | ||
22 | #define SHARED_KERNEL_PMD (pv_info.shared_kernel_pmd) | ||
23 | #else | ||
24 | #define SHARED_KERNEL_PMD 1 | ||
25 | #endif | ||
26 | |||
27 | #define PAGETABLE_LEVELS 3 | ||
28 | |||
29 | /* | ||
30 | * PGDIR_SHIFT determines what a top-level page table entry can map | ||
31 | */ | ||
32 | #define PGDIR_SHIFT 30 | ||
33 | #define PTRS_PER_PGD 4 | ||
34 | |||
35 | /* | ||
36 | * PMD_SHIFT determines the size of the area a middle-level | ||
37 | * page table can map | ||
38 | */ | ||
39 | #define PMD_SHIFT 21 | ||
40 | #define PTRS_PER_PMD 512 | ||
41 | |||
42 | /* | ||
43 | * entries per page directory level | ||
44 | */ | ||
45 | #define PTRS_PER_PTE 512 | ||
46 | |||
47 | |||
48 | #endif /* _ASM_X86_PGTABLE_3LEVEL_DEFS_H */ | ||