* Invalidate a single TLB entry. */
| 1195 | * Invalidate a single TLB entry. |
| 1196 | */ |
| 1197 | static __inline void |
| 1198 | pmap_invalidate_page(pmap_t pmap, vm_offset_t va) |
| 1199 | { |
| 1200 | uint64_t r; |
| 1201 | |
| 1202 | PMAP_ASSERT_STAGE1(pmap); |
| 1203 | |
| 1204 | dsb(ishst); |
| 1205 | if (pmap == kernel_pmap) { |
| 1206 | r = atop(va); |
| 1207 | __asm __volatile("tlbi vaae1is, %0" : : "r" (r)); |
| 1208 | } else { |
| 1209 | r = ASID_TO_OPERAND(COOKIE_TO_ASID(pmap->pm_cookie)) | atop(va); |
| 1210 | __asm __volatile("tlbi vae1is, %0" : : "r" (r)); |
| 1211 | } |
| 1212 | dsb(ish); |
| 1213 | isb(); |
| 1214 | } |
| 1215 | |
| 1216 | static __inline void |
| 1217 | pmap_invalidate_range(pmap_t pmap, vm_offset_t sva, vm_offset_t eva) |
no outgoing calls
no test coverage detected