Changeset View
Changeset View
Standalone View
Standalone View
sys/arm64/arm64/pmap.c
Show First 20 Lines • Show All 1,364 Lines • ▼ Show 20 Lines | pmap_extract_and_hold(pmap_t pmap, vm_offset_t va, vm_prot_t prot) | ||||
return (m); | return (m); | ||||
} | } | ||||
vm_paddr_t | vm_paddr_t | ||||
pmap_kextract(vm_offset_t va) | pmap_kextract(vm_offset_t va) | ||||
{ | { | ||||
pt_entry_t *pte, tpte; | pt_entry_t *pte, tpte; | ||||
if (va >= DMAP_MIN_ADDRESS && va < DMAP_MAX_ADDRESS) | |||||
return (DMAP_TO_PHYS(va)); | |||||
pte = pmap_l1(kernel_pmap, va); | pte = pmap_l1(kernel_pmap, va); | ||||
if (pte == NULL) | if (pte == NULL) | ||||
return (0); | return (0); | ||||
/* | /* | ||||
* A concurrent pmap_update_entry() will clear the entry's valid bit | * A concurrent pmap_update_entry() will clear the entry's valid bit | ||||
* but leave the rest of the entry unchanged. Therefore, we treat a | * but leave the rest of the entry unchanged. Therefore, we treat a | ||||
* non-zero entry as being valid, and we ignore the valid bit when | * non-zero entry as being valid, and we ignore the valid bit when | ||||
▲ Show 20 Lines • Show All 5,791 Lines • Show Last 20 Lines |