diff options
Diffstat (limited to 'kernel/arch/x86/include/asm/pgtable-3level_types.h')
-rw-r--r-- | kernel/arch/x86/include/asm/pgtable-3level_types.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/kernel/arch/x86/include/asm/pgtable-3level_types.h b/kernel/arch/x86/include/asm/pgtable-3level_types.h new file mode 100644 index 000000000..bcc89625e --- /dev/null +++ b/kernel/arch/x86/include/asm/pgtable-3level_types.h @@ -0,0 +1,46 @@ +#ifndef _ASM_X86_PGTABLE_3LEVEL_DEFS_H +#define _ASM_X86_PGTABLE_3LEVEL_DEFS_H + +#ifndef __ASSEMBLY__ +#include <linux/types.h> + +typedef u64 pteval_t; +typedef u64 pmdval_t; +typedef u64 pudval_t; +typedef u64 pgdval_t; +typedef u64 pgprotval_t; + +typedef union { + struct { + unsigned long pte_low, pte_high; + }; + pteval_t pte; +} pte_t; +#endif /* !__ASSEMBLY__ */ + +#ifdef CONFIG_PARAVIRT +#define SHARED_KERNEL_PMD (pv_info.shared_kernel_pmd) +#else +#define SHARED_KERNEL_PMD 1 +#endif + +/* + * PGDIR_SHIFT determines what a top-level page table entry can map + */ +#define PGDIR_SHIFT 30 +#define PTRS_PER_PGD 4 + +/* + * PMD_SHIFT determines the size of the area a middle-level + * page table can map + */ +#define PMD_SHIFT 21 +#define PTRS_PER_PMD 512 + +/* + * entries per page directory level + */ +#define PTRS_PER_PTE 512 + + +#endif /* _ASM_X86_PGTABLE_3LEVEL_DEFS_H */ |