| 331 | } |
| 332 | |
| 333 | static inline void |
| 334 | dmar_write8(const struct dmar_unit *unit, int reg, uint64_t val) |
| 335 | { |
| 336 | |
| 337 | KASSERT(reg != DMAR_GCMD_REG, ("8byte GCMD write")); |
| 338 | #ifdef __i386__ |
| 339 | uint32_t high, low; |
| 340 | |
| 341 | low = val; |
| 342 | high = val >> 32; |
| 343 | bus_write_4(unit->regs, reg, low); |
| 344 | bus_write_4(unit->regs, reg + 4, high); |
| 345 | #else |
| 346 | bus_write_8(unit->regs, reg, val); |
| 347 | #endif |
| 348 | } |
| 349 | |
| 350 | /* |
| 351 | * dmar_pte_store and dmar_pte_clear ensure that on i386, 32bit writes |
no outgoing calls
no test coverage detected