| .. | .. |
|---|
| 1 | +/* SPDX-License-Identifier: GPL-2.0 */ |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * Copyright 2003 PathScale Inc |
|---|
| 3 | 4 | * Derived from include/asm-i386/pgtable.h |
|---|
| 4 | | - * Licensed under the GPL |
|---|
| 5 | 5 | */ |
|---|
| 6 | 6 | |
|---|
| 7 | 7 | #ifndef __UM_PGTABLE_3LEVEL_H |
|---|
| 8 | 8 | #define __UM_PGTABLE_3LEVEL_H |
|---|
| 9 | 9 | |
|---|
| 10 | | -#define __ARCH_USE_5LEVEL_HACK |
|---|
| 11 | 10 | #include <asm-generic/pgtable-nopud.h> |
|---|
| 12 | 11 | |
|---|
| 13 | 12 | /* PGDIR_SHIFT determines what a third-level page table entry can map */ |
|---|
| .. | .. |
|---|
| 79 | 78 | #define set_pmd(pmdptr, pmdval) (*(pmdptr) = (pmdval)) |
|---|
| 80 | 79 | #endif |
|---|
| 81 | 80 | |
|---|
| 82 | | -struct mm_struct; |
|---|
| 83 | | -extern pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address); |
|---|
| 84 | | - |
|---|
| 85 | 81 | static inline void pud_clear (pud_t *pud) |
|---|
| 86 | 82 | { |
|---|
| 87 | 83 | set_pud(pud, __pud(_PAGE_NEWPAGE)); |
|---|
| 88 | 84 | } |
|---|
| 89 | 85 | |
|---|
| 90 | 86 | #define pud_page(pud) phys_to_page(pud_val(pud) & PAGE_MASK) |
|---|
| 91 | | -#define pud_page_vaddr(pud) ((unsigned long) __va(pud_val(pud) & PAGE_MASK)) |
|---|
| 92 | | - |
|---|
| 93 | | -/* Find an entry in the second-level page table.. */ |
|---|
| 94 | | -#define pmd_offset(pud, address) ((pmd_t *) pud_page_vaddr(*(pud)) + \ |
|---|
| 95 | | - pmd_index(address)) |
|---|
| 87 | +#define pud_pgtable(pud) ((pmd_t *) __va(pud_val(pud) & PAGE_MASK)) |
|---|
| 96 | 88 | |
|---|
| 97 | 89 | static inline unsigned long pte_pfn(pte_t pte) |
|---|
| 98 | 90 | { |
|---|