| 1214 | } |
| 1215 | |
| 1216 | static __inline void |
| 1217 | pmap_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 | |
| 1240 | static __inline void |
| 1241 | pmap_invalidate_all(pmap_t pmap) |
no outgoing calls
no test coverage detected