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
8typedef unsigned long pteval_t;
9typedef unsigned long pmdval_t;
10typedef unsigned long pudval_t;
11typedef unsigned long p4dval_t;
12typedef unsigned long pgdval_t;
13typedef unsigned long pgprotval_t;
14
15typedef 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/*
24 * traditional i386 two-level paging structure:
25 */
26
27#define PGDIR_SHIFT 22
28#define PTRS_PER_PGD 1024
29
30
31/*
32 * the i386 is two-level, so we don't really have any
33 * PMD directory physically.
34 */
35
36#define PTRS_PER_PTE 1024
37
38/* This covers all VMSPLIT_* and VMSPLIT_*_OPT variants */
39#define PGD_KERNEL_START (CONFIG_PAGE_OFFSET >> PGDIR_SHIFT)
40
41#endif /* _ASM_X86_PGTABLE_2LEVEL_DEFS_H */
42