1b924a281SJeremy Fitzhardinge #ifndef _ASM_X86_PGTABLE_3LEVEL_DEFS_H 2b924a281SJeremy Fitzhardinge #define _ASM_X86_PGTABLE_3LEVEL_DEFS_H 3b924a281SJeremy Fitzhardinge 454321d94SJeremy Fitzhardinge #ifndef __ASSEMBLY__ 554321d94SJeremy Fitzhardinge #include <linux/types.h> 654321d94SJeremy Fitzhardinge 754321d94SJeremy Fitzhardinge typedef u64 pteval_t; 854321d94SJeremy Fitzhardinge typedef u64 pmdval_t; 954321d94SJeremy Fitzhardinge typedef u64 pudval_t; 1054321d94SJeremy Fitzhardinge typedef u64 pgdval_t; 1154321d94SJeremy Fitzhardinge typedef u64 pgprotval_t; 1254321d94SJeremy Fitzhardinge 1354321d94SJeremy Fitzhardinge typedef union { 1454321d94SJeremy Fitzhardinge struct { 1554321d94SJeremy Fitzhardinge unsigned long pte_low, pte_high; 1654321d94SJeremy Fitzhardinge }; 1754321d94SJeremy Fitzhardinge pteval_t pte; 1854321d94SJeremy Fitzhardinge } pte_t; 1954321d94SJeremy Fitzhardinge #endif /* !__ASSEMBLY__ */ 2054321d94SJeremy Fitzhardinge 21b924a281SJeremy Fitzhardinge #ifdef CONFIG_PARAVIRT 22b924a281SJeremy Fitzhardinge #define SHARED_KERNEL_PMD (pv_info.shared_kernel_pmd) 23b924a281SJeremy Fitzhardinge #else 24b924a281SJeremy Fitzhardinge #define SHARED_KERNEL_PMD 1 25b924a281SJeremy Fitzhardinge #endif 26b924a281SJeremy Fitzhardinge 27b924a281SJeremy Fitzhardinge /* 28b924a281SJeremy Fitzhardinge * PGDIR_SHIFT determines what a top-level page table entry can map 29b924a281SJeremy Fitzhardinge */ 30b924a281SJeremy Fitzhardinge #define PGDIR_SHIFT 30 31b924a281SJeremy Fitzhardinge #define PTRS_PER_PGD 4 32b924a281SJeremy Fitzhardinge 33b924a281SJeremy Fitzhardinge /* 34b924a281SJeremy Fitzhardinge * PMD_SHIFT determines the size of the area a middle-level 35b924a281SJeremy Fitzhardinge * page table can map 36b924a281SJeremy Fitzhardinge */ 37b924a281SJeremy Fitzhardinge #define PMD_SHIFT 21 38b924a281SJeremy Fitzhardinge #define PTRS_PER_PMD 512 39b924a281SJeremy Fitzhardinge 40b924a281SJeremy Fitzhardinge /* 41b924a281SJeremy Fitzhardinge * entries per page directory level 42b924a281SJeremy Fitzhardinge */ 43b924a281SJeremy Fitzhardinge #define PTRS_PER_PTE 512 44b924a281SJeremy Fitzhardinge 4554321d94SJeremy Fitzhardinge 46b924a281SJeremy Fitzhardinge #endif /* _ASM_X86_PGTABLE_3LEVEL_DEFS_H */ 47