AMD2IOMMU
amdiommu_cmd_ensure(AMD2IOMMU(unit), 1);
iommu_qi_emit_wait_seq(AMD2IOMMU(unit), pseq, emit_wait);
amdiommu_cmd_ensure(AMD2IOMMU(unit), 1);
amdiommu_cmd_ensure(AMD2IOMMU(CTX2AMD(ctx)), 1);
amdiommu_qi_invalidate_wait_sync(AMD2IOMMU(CTX2AMD(ctx)));
amdiommu_cmd_ensure(AMD2IOMMU(unit), 1);
amdiommu_qi_invalidate_wait_sync(AMD2IOMMU(unit));
iommu_qi_drain_tlb_flush(AMD2IOMMU(unit));
iommu_qi_common_init(AMD2IOMMU(unit), amdiommu_qi_task);
amdiommu_enable_qi_intr(AMD2IOMMU(unit));
iommu_qi_common_fini(AMD2IOMMU(unit), amdiommu_fini_cmd_helper);
iommu_domain_init(AMD2IOMMU(unit), iodom, &amdiommu_domain_map_ops);
amdiommu_qi_invalidate_wait_sync(AMD2IOMMU(CTX2AMD(ctx)));
if (iommu_is_buswide_ctx(AMD2IOMMU(unit),
KASSERT(!iommu_is_buswide_ctx(AMD2IOMMU(unit), bus) ||
("iommu%d pci%d:%d:%d get_ctx for buswide", AMD2IOMMU(unit)->unit,
AMD2IOMMU(unit)->unit, unit->unit_dom,
if (AMD2IOMMU(unit) != iommu) /* XXX complain loudly */
error = iommu_init_busdma(AMD2IOMMU(sc));
AMD2IOMMU(sc)->unit);
ioctx = iommu_instantiate_ctx(AMD2IOMMU(unit), src, false);
#define AMDIOMMU_LOCK(unit) mtx_lock(&AMD2IOMMU(unit)->lock)
#define AMDIOMMU_UNLOCK(unit) mtx_unlock(&AMD2IOMMU(unit)->lock)
#define AMDIOMMU_ASSERT_LOCKED(unit) mtx_assert(&AMD2IOMMU(unit)->lock, \