Changeset View
Changeset View
Standalone View
Standalone View
sys/riscv/riscv/pmap.c
Show First 20 Lines • Show All 3,097 Lines • ▼ Show 20 Lines | |||||
pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va, vm_page_t m, | pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va, vm_page_t m, | ||||
vm_prot_t prot, vm_page_t mpte, struct rwlock **lockp) | vm_prot_t prot, vm_page_t mpte, struct rwlock **lockp) | ||||
{ | { | ||||
struct spglist free; | struct spglist free; | ||||
vm_paddr_t phys; | vm_paddr_t phys; | ||||
pd_entry_t *l2; | pd_entry_t *l2; | ||||
pt_entry_t *l3, newl3; | pt_entry_t *l3, newl3; | ||||
KASSERT(va < kmi.clean_sva || va >= kmi.clean_eva || | KASSERT(!VA_IS_CLEANMAP(va) || | ||||
(m->oflags & VPO_UNMANAGED) != 0, | (m->oflags & VPO_UNMANAGED) != 0, | ||||
("pmap_enter_quick_locked: managed mapping within the clean submap")); | ("pmap_enter_quick_locked: managed mapping within the clean submap")); | ||||
rw_assert(&pvh_global_lock, RA_LOCKED); | rw_assert(&pvh_global_lock, RA_LOCKED); | ||||
PMAP_LOCK_ASSERT(pmap, MA_OWNED); | PMAP_LOCK_ASSERT(pmap, MA_OWNED); | ||||
CTR2(KTR_PMAP, "pmap_enter_quick_locked: %p %lx", pmap, va); | CTR2(KTR_PMAP, "pmap_enter_quick_locked: %p %lx", pmap, va); | ||||
/* | /* | ||||
* In the case that a page table page is not | * In the case that a page table page is not | ||||
▲ Show 20 Lines • Show All 1,537 Lines • Show Last 20 Lines |