| 242 | } |
| 243 | |
| 244 | static void |
| 245 | vtd_wbflush(struct vtdmap *vtdmap) |
| 246 | { |
| 247 | |
| 248 | if (VTD_ECAP_COHERENCY(vtdmap->ext_cap) == 0) |
| 249 | pmap_invalidate_cache(); |
| 250 | |
| 251 | if (VTD_CAP_RWBF(vtdmap->cap)) { |
| 252 | vtdmap->gcr = VTD_GCR_WBF; |
| 253 | while ((vtdmap->gsr & VTD_GSR_WBFS) != 0) |
| 254 | ; |
| 255 | } |
| 256 | } |
| 257 | |
| 258 | static void |
| 259 | vtd_ctx_global_invalidate(struct vtdmap *vtdmap) |
no test coverage detected