MCPcopy Create free account
hub / github.com/F-Stack/f-stack / pmap_kenter_device

Function pmap_kenter_device

freebsd/arm/arm/pmap-v6.c:6266–6284  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6264}
6265
6266void
6267pmap_kenter_device(vm_offset_t va, vm_size_t size, vm_paddr_t pa)
6268{
6269 vm_offset_t sva;
6270 uint32_t l2attr;
6271
6272 KASSERT((size & PAGE_MASK) == 0,
6273 ("%s: device mapping not page-sized", __func__));
6274
6275 sva = va;
6276 l2attr = vm_memattr_to_pte2(VM_MEMATTR_DEVICE);
6277 while (size != 0) {
6278 pmap_kenter_prot_attr(va, pa, PTE2_AP_KRW, l2attr);
6279 va += PAGE_SIZE;
6280 pa += PAGE_SIZE;
6281 size -= PAGE_SIZE;
6282 }
6283 tlb_flush_range(sva, va - sva);
6284}
6285
6286void
6287pmap_kremove_device(vm_offset_t va, vm_size_t size)

Callers

nothing calls this directly

Calls 3

vm_memattr_to_pte2Function · 0.85
pmap_kenter_prot_attrFunction · 0.85
tlb_flush_rangeFunction · 0.85

Tested by

no test coverage detected