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