PTE_GET
if (PTE_GET(pte, PT_VALID) == 0) {
} else if (curlevel == 0 || PTE_GET(pte, PT_PAGESIZE)) {
user = PTE_GET(pte, PT_USER);
writable = PTE_GET(pte, PT_WRITABLE);
} else if (user != PTE_GET(pte, PT_USER) ||
writable != PTE_GET(pte, PT_WRITABLE)) {
user = PTE_GET(pte, PT_USER);
writable = PTE_GET(pte, PT_WRITABLE);
if (PTE_GET(pte, mmu.pt_nx))
if (PTE_GET(pte, PT_NOCONSIST))
if (PTE_GET(pte, PT_NOSYNC))
if (PTE_GET(pte, mmu.pt_global))
if (level > 0 && PTE_GET(pte, PT_PAGESIZE))
if (level > 0 && PTE_GET(pte, PT_MOD))
if (level > 0 && PTE_GET(pte, PT_REF))
if (PTE_GET(pte, PT_USER))
if (PTE_GET(pte, PT_WRITABLE))
if (PTE_GET(pte, PT_PAGESIZE) && PTE_GET(pte, PT_PAT_LARGE))
if (PTE_GET(pte, PT_PAT_4K))
if (PTE_GET(pte, PT_NOCACHE))
if (PTE_GET(pte, PT_WRITETHRU))
if (PTE_GET(pte, PT_VALID) == 0)
if (PTE_GET(pte, PT_SOFTWARE) >= PT_NOSYNC)
if (PTE_GET(pte, PT_REF))
if (PTE_GET(pte, PT_MOD))
REMAPASSERT(PTE_GET(old_pte, PT_SOFTWARE) >= PT_NOCONSIST);
if (PTE_GET(old_pte, ~PT_REMAP_BITS) != PTE_GET(pte, ~PT_REMAP_BITS))
if (PTE_GET(old_pte, PT_SOFTWARE) >= PT_NOCONSIST) {
ASSERT(PTE_GET(old_pte, PT_SOFTWARE) >= PT_NOCONSIST);
if (PTE_GET(pte, PT_SOFTWARE) >= PT_NOSYNC ||
PTE_GET(pte, PT_REF | PT_MOD) == 0)
if (PTE_GET(pte, PT_SOFTWARE) >= PT_NOSYNC ||
PTE_GET(pte, PT_REF | PT_MOD) == 0) {
if (PTE_GET(pte, PT_WRITABLE))
if (PTE_GET(pte, PT_USER))
if (!PTE_GET(pte, mmu.pt_nx))
if (PTE_GET(pte, PT_SOFTWARE) >= PT_NOSYNC)
if (PTE_GET(oldpte, PT_SOFTWARE) >= PT_NOCONSIST)
!PTE_GET(oldpte, PT_WRITABLE))
PTE_GET(oldpte, PT_SOFTWARE) < PT_NOSYNC)
if ((attr & PROT_EXEC) && PTE_GET(oldpte, mmu.pt_nx))
PTE_GET(oldpte, PT_WRITABLE))
PTE_GET(oldpte, PT_SOFTWARE) >= PT_NOSYNC)
if (!(attr & PROT_EXEC) && !PTE_GET(oldpte, mmu.pt_nx))
if ((attr & PROT_WRITE) && PTE_GET(oldpte, PT_WRITABLE))
PTE_GET(oldpte, PT_SOFTWARE) >= PT_NOSYNC)
if ((attr & PROT_EXEC) && !PTE_GET(oldpte, mmu.pt_nx))
if (PTE_GET(newpte, PT_SOFTWARE) >= PT_NOSYNC)
if (PTE_GET(pte, PT_WRITABLE))
if (!PTE_GET(pte, PT_NX))
PTE_GET(old, PT_WRITABLE) == 0)
if (PTE_GET(old_pte, PT_SOFTWARE) < PT_NOSYNC)
if (PTE_GET(old, PT_REF | PT_MOD) == 0)
PTE_GET(old, PT_SOFTWARE) <= PT_NOSYNC)
if (PTE_GET(expected, PT_SOFTWARE) < PT_NOSYNC &&
PTE_GET(expected, PT_MOD | PT_REF) &&
(PTE_GET(new, PT_NOSYNC) || !PTE_GET(new, PT_WRITABLE) ||
!PTE_GET(new, PT_MOD | PT_REF))) {
if (PTE_GET(expected, PT_MOD))
if (PTE_GET(expected, PT_REF))
#define PTE_ISVALID(p) PTE_GET(p, PT_VALID)
#define PTE_IS_LGPG(p, l) ((l) > 0 && PTE_GET((p), PT_PAGESIZE))
(PTE_ISVALID(p) && ((l) == 0 || PTE_GET(p, PT_PAGESIZE)))
mmu_btop(PTE_GET((p), PTE_IS_LGPG((p), (l)) ? PT_PADDR_LGPG : PT_PADDR))
if (PTE_GET(pte_val, PT_WRITABLE))
if (PTE_GET(pte_val, mmu.pt_nx))