x86: add pgtable accessor functions for gbpages

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

authored by

Andi Kleen and committed by
Ingo Molnar
61e19a34 fbff3c21

+8
+2
include/asm-x86/pgtable_32.h
··· 148 */ 149 #define pgd_offset_k(address) pgd_offset(&init_mm, address) 150 151 /* 152 * the pmd page can be thought of an array like this: pmd_t[PTRS_PER_PMD] 153 *
··· 148 */ 149 #define pgd_offset_k(address) pgd_offset(&init_mm, address) 150 151 + static inline int pud_large(pud_t pud) { return 0; } 152 + 153 /* 154 * the pmd page can be thought of an array like this: pmd_t[PTRS_PER_PMD] 155 *
+6
include/asm-x86/pgtable_64.h
··· 198 #define pud_offset(pgd, address) ((pud_t *) pgd_page_vaddr(*(pgd)) + pud_index(address)) 199 #define pud_present(pud) (pud_val(pud) & _PAGE_PRESENT) 200 201 /* PMD - Level 2 access */ 202 #define pmd_page_vaddr(pmd) ((unsigned long) __va(pmd_val(pmd) & PTE_MASK)) 203 #define pmd_page(pmd) (pfn_to_page(pmd_val(pmd) >> PAGE_SHIFT))
··· 198 #define pud_offset(pgd, address) ((pud_t *) pgd_page_vaddr(*(pgd)) + pud_index(address)) 199 #define pud_present(pud) (pud_val(pud) & _PAGE_PRESENT) 200 201 + static inline int pud_large(pud_t pte) 202 + { 203 + return (pud_val(pte) & (_PAGE_PSE|_PAGE_PRESENT)) == 204 + (_PAGE_PSE|_PAGE_PRESENT); 205 + } 206 + 207 /* PMD - Level 2 access */ 208 #define pmd_page_vaddr(pmd) ((unsigned long) __va(pmd_val(pmd) & PTE_MASK)) 209 #define pmd_page(pmd) (pfn_to_page(pmd_val(pmd) >> PAGE_SHIFT))