PTE_PROT
pmap_changebit(pg, PTE_PROT(TLB_UNCACHABLE), 0);
if (pte & PTE_PROT(TLB_WIRED))
if (pte & PTE_PROT(TLB_WIRED)) {
pte &= ~PTE_PROT(TLB_WIRED);
if (pte & PTE_PROT(TLB_DIRTY))
if ((pte & PTE_PROT(TLB_REFTRAP)) == 0)
pte = pa | PTE_PROT(TLB_WIRED | TLB_REFTRAP |
pte |= PTE_PROT(TLB_UNCACHABLE);
if (pte & PTE_PROT(TLB_EXECUTE)) {
(pte & PTE_PROT(TLB_GATEWAY)) == 0 &&
(pte & PTE_PROT(TLB_WRITE))) {
PTE_PROT(TLB_GATE_PROT));
if (wired && !(pte & PTE_PROT(TLB_WIRED)))
else if (!wired && (pte & PTE_PROT(TLB_WIRED)))
pte = PTE_PROT(TLB_REFTRAP);
pte |= PTE_PROT(pmap_prot(pmap, prot));
pte = pa | PTE_PROT(pmap_prot(pmap, prot)) |
(pte & PTE_PROT(TLB_UNCACHABLE|TLB_DIRTY|TLB_REFTRAP));
pte |= PTE_PROT(TLB_UNCACHABLE);
pte |= PTE_PROT(TLB_WIRED);
if (pte & PTE_PROT(TLB_WIRED))
tlbprot = PTE_PROT(pmap_prot(pmap, prot));
if ((pte & PTE_PROT(TLB_AR_MASK)) == tlbprot)
pte &= ~PTE_PROT(TLB_AR_MASK);
#define pmap_clear_modify(pg) pmap_changebit(pg, 0, PTE_PROT(TLB_DIRTY))
#define pmap_clear_reference(pg) pmap_changebit(pg, PTE_PROT(TLB_REFTRAP), 0)