DMAR2IOMMU
if (iommu_is_buswide_ctx(DMAR2IOMMU(unit), busno)) {
unit = DMAR2IOMMU(dmar);
unit = DMAR2IOMMU(dmar);
#define DMAR_LOCK(dmar) mtx_lock(&DMAR2IOMMU(dmar)->lock)
#define DMAR_UNLOCK(dmar) mtx_unlock(&DMAR2IOMMU(dmar)->lock)
#define DMAR_ASSERT_LOCKED(dmar) mtx_assert(&DMAR2IOMMU(dmar)->lock, MA_OWNED)
iommu_release_intr(DMAR2IOMMU(unit), i);
(dmd->disable_intr)(DMAR2IOMMU(unit));
(dmd->enable_intr)(DMAR2IOMMU(unit));
error = iommu_alloc_irq(DMAR2IOMMU(unit), DMAR_INTR_FAULT);
error = iommu_alloc_irq(DMAR2IOMMU(unit), DMAR_INTR_QI);
dmar_qi_advance_tail(DMAR2IOMMU(unit));
dmar_qi_ensure(DMAR2IOMMU(unit), 1);
iommu_qi_emit_wait_seq(DMAR2IOMMU(unit), pseq, emit_wait);
dmar_qi_ensure(DMAR2IOMMU(unit), 2);
iommu_qi_emit_wait_seq(DMAR2IOMMU(unit), &gseq, true);
dmar_qi_advance_tail(DMAR2IOMMU(unit));
iommu_qi_wait_for_seq(DMAR2IOMMU(unit), &gseq, false);
dmar_qi_ensure(DMAR2IOMMU(unit), 1);
dmar_qi_ensure(DMAR2IOMMU(unit), 1);
iommu_qi_emit_wait_seq(DMAR2IOMMU(unit), &gseq, true);
dmar_qi_advance_tail(DMAR2IOMMU(unit));
iommu_qi_wait_for_seq(DMAR2IOMMU(unit), &gseq, true);
iommu_qi_drain_tlb_flush(DMAR2IOMMU(unit));
iommu_qi_drain_tlb_flush(DMAR2IOMMU(unit));
iommu_qi_common_init(DMAR2IOMMU(unit), dmar_qi_task);
dmar_enable_qi_intr(DMAR2IOMMU(unit));
iommu_qi_common_fini(DMAR2IOMMU(unit), dmar_fini_qi_helper);