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

Function pmap_invalidate_range

freebsd/arm64/arm64/pmap.c:1216–1238  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1214}
1215
1216static __inline void
1217pmap_invalidate_range(pmap_t pmap, vm_offset_t sva, vm_offset_t eva)
1218{
1219 uint64_t end, r, start;
1220
1221 PMAP_ASSERT_STAGE1(pmap);
1222
1223 dsb(ishst);
1224 if (pmap == kernel_pmap) {
1225 start = atop(sva);
1226 end = atop(eva);
1227 for (r = start; r < end; r++)
1228 __asm __volatile("tlbi vaae1is, %0" : : "r" (r));
1229 } else {
1230 start = end = ASID_TO_OPERAND(COOKIE_TO_ASID(pmap->pm_cookie));
1231 start |= atop(sva);
1232 end |= atop(eva);
1233 for (r = start; r < end; r++)
1234 __asm __volatile("tlbi vae1is, %0" : : "r" (r));
1235 }
1236 dsb(ish);
1237 isb();
1238}
1239
1240static __inline void
1241pmap_invalidate_all(pmap_t pmap)

Callers 8

pmap_kenterFunction · 0.70
pmap_kremove_deviceFunction · 0.70
pmap_qenterFunction · 0.70
pmap_qremoveFunction · 0.70
pmap_remove_l3_rangeFunction · 0.70
pmap_protectFunction · 0.70
pmap_update_entryFunction · 0.70
pmap_adviseFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected