1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | #ifndef _ASM_X86_PGTABLE_2LEVEL_DEFS_H |
3 | #define _ASM_X86_PGTABLE_2LEVEL_DEFS_H |
4 | |
5 | #ifndef __ASSEMBLY__ |
6 | #include <linux/types.h> |
7 | |
8 | typedef unsigned long pteval_t; |
9 | typedef unsigned long pmdval_t; |
10 | typedef unsigned long pudval_t; |
11 | typedef unsigned long p4dval_t; |
12 | typedef unsigned long pgdval_t; |
13 | typedef unsigned long pgprotval_t; |
14 | |
15 | typedef union { |
16 | pteval_t pte; |
17 | pteval_t pte_low; |
18 | } pte_t; |
19 | #endif /* !__ASSEMBLY__ */ |
20 | |
21 | #define SHARED_KERNEL_PMD 0 |
22 | |
23 | #define ARCH_PAGE_TABLE_SYNC_MASK PGTBL_PMD_MODIFIED |
24 | |
25 | /* |
26 | * traditional i386 two-level paging structure: |
27 | */ |
28 | |
29 | #define PGDIR_SHIFT 22 |
30 | #define PTRS_PER_PGD 1024 |
31 | |
32 | |
33 | /* |
34 | * the i386 is two-level, so we don't really have any |
35 | * PMD directory physically. |
36 | */ |
37 | |
38 | #define PTRS_PER_PTE 1024 |
39 | |
40 | /* This covers all VMSPLIT_* and VMSPLIT_*_OPT variants */ |
41 | #define PGD_KERNEL_START (CONFIG_PAGE_OFFSET >> PGDIR_SHIFT) |
42 | |
43 | #endif /* _ASM_X86_PGTABLE_2LEVEL_DEFS_H */ |
44 | |