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#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