_PAGE_TABLE
{ pmd_val(*pmdp) = _PAGE_TABLE | ((((unsigned long) ptep) - PAGE_OFFSET) << (32-PAGE_SHIFT)); }
{ pud_val(*pudp) = _PAGE_TABLE | ((((unsigned long) pmdp) - PAGE_OFFSET) << (32-PAGE_SHIFT)); }
extern inline int pmd_bad(pmd_t pmd) { return (pmd_val(pmd) & ~_PFN_MASK) != _PAGE_TABLE; }
extern inline int pud_bad(pud_t pud) { return (pud_val(pud) & ~_PFN_MASK) != _PAGE_TABLE; }
0x80000000 | _PAGE_TABLE, mm->context
#define pmd_bad(pmd) ((pmd_val(pmd) & _DESCTYPE_MASK) != _PAGE_TABLE)
#define pmd_present(pmd) (pmd_val(pmd) & _PAGE_TABLE)
#define pud_bad(pud) ((pud_val(pud) & _DESCTYPE_MASK) != _PAGE_TABLE)
#define pud_present(pud) (pud_val(pud) & _PAGE_TABLE)
pmd_val(*pmdp) = virt_to_phys(ptep) | _PAGE_TABLE | _PAGE_ACCESSED;
pud_val(*pudp) = _PAGE_TABLE | _PAGE_ACCESSED | __pa(pmdp);
set_pmd(pmd, __pmd((pfn << _PAGE_PFN_SHIFT) | _PAGE_TABLE));
set_pmd(pmd, __pmd((pfn << _PAGE_PFN_SHIFT) | _PAGE_TABLE));
set_pud(pud, __pud((pfn << _PAGE_PFN_SHIFT) | _PAGE_TABLE));
set_p4d(p4d, __p4d((pfn << _PAGE_PFN_SHIFT) | _PAGE_TABLE));
__p4d((pfn << _PAGE_PFN_SHIFT) | _PAGE_TABLE));
set_pgd(pgd, __pgd((pfn << _PAGE_PFN_SHIFT) | _PAGE_TABLE));
__pgd((pfn << _PAGE_PFN_SHIFT) | _PAGE_TABLE));
#define PAGE_TABLE __pgprot(_PAGE_TABLE)
__pgprot(_PAGE_TABLE)));
set_pmd(pmd, __pmd(_PAGE_TABLE + (unsigned long) __pa(pte)))
set_pmd(pmd, __pmd(_PAGE_TABLE + \
set_pud(pud, __pud(_PAGE_TABLE + __pa(pmd)))
set_p4d(p4d, __p4d(_PAGE_TABLE + __pa(pud)))
pgd[pgd_index(__START_KERNEL_map)] = (pgdval_t)p4d | _PAGE_TABLE;
set_p4d(p4d, __p4d(_PAGE_TABLE | pa));
set_pud(pud, __pud(_PAGE_TABLE | pa));
set_pmd(pmd, __pmd(_PAGE_TABLE | pa));
set_pud(pud, __pud(_PAGE_TABLE | __pa(pmd)));
set_pud_safe(pud, __pud(_PAGE_TABLE | __pa(pmd)));
set_p4d(p4d, __p4d(_PAGE_TABLE | __pa(pud)));
set_p4d_safe(p4d, __p4d(_PAGE_TABLE | __pa(pud)));
set_pgd(pgd, __pgd(_PAGE_TABLE | __pa(p4d)));
set_pgd_safe(pgd, __pgd(_PAGE_TABLE | __pa(p4d)));
set_pmd(pmd, __pmd(__pa(pte) | _PAGE_TABLE));
set_pmd_safe(pmd, __pmd(__pa(pte) | _PAGE_TABLE));
set_pmd(pmd, __pmd(((pteval_t)pfn << PAGE_SHIFT) | _PAGE_TABLE));
set_pmd(pmd, __pmd(__pa(pte) | _PAGE_TABLE));
set_pmd(pmd, __pmd(__pa(page_table) | _PAGE_TABLE));
set_pmd(pmd, __pmd(__pa(newpte)|_PAGE_TABLE));
set_pmd(pmd, __pmd(__pa(page_table) | _PAGE_TABLE));
__pgd(__pa(level3_user_vsyscall) | _PAGE_TABLE);
pmd[idx_pt] = __pmd(_PAGE_TABLE | pt_phys);
pud[idx_pmd] = __pud(_PAGE_TABLE | pmd_phys);
set_pgd(pgd + 2 + idx_pud, __pgd(_PAGE_TABLE | pud_phys));
pte = _io_pte_entry(virt_to_pfn(addr), _PAGE_TABLE);
riscv_iommu_pte_free(domain, _io_pte_entry(pfn, _PAGE_TABLE), NULL);