Lines Matching defs:iodom
167 if ((domain->iodom.flags & IOMMU_DOMAIN_IDMAP) != 0 &&
245 domain->iodom.iommu->unit, bus, slot, func,
257 domain->iodom.iommu->unit, start, end);
277 IOMMU_LOCK(domain->iodom.iommu);
279 domain->iodom.flags |= IOMMU_DOMAIN_RMRR;
280 IOMMU_UNLOCK(domain->iodom.iommu);
288 domain->iodom.iommu->unit, start, end,
313 struct iommu_domain *iodom;
319 iodom = DOM2IODOM(domain);
328 error = iommu_gas_reserve_region_extend(iodom, base, limit + 1);
350 error = iommu_gas_reserve_region_extend(iodom, base,
365 struct iommu_domain *iodom;
374 iodom = DOM2IODOM(domain);
377 LIST_INIT(&iodom->contexts);
378 iommu_domain_init(unit, iodom, &dmar_domain_map_ops);
388 domain->iodom.end = id_mapped ? ptoa(Maxmem) : BUS_SPACE_MAXADDR;
389 mgaw = dmar_maxaddr2mgaw(dmar, domain->iodom.end, !id_mapped);
395 domain->iodom.end = 1ULL << (domain->agaw - 1);
402 domain->iodom.end);
404 domain->iodom.flags |= IOMMU_DOMAIN_IDMAP;
410 error = iommu_gas_reserve_region(iodom, 0xfee00000,
411 0xfeefffff + 1, &iodom->msi_entry);
442 IOMMU_ASSERT_LOCKED(domain->iodom.iommu);
448 LIST_INSERT_HEAD(&domain->iodom.contexts, &ctx->context, link);
457 IOMMU_ASSERT_LOCKED(domain->iodom.iommu);
471 struct iommu_domain *iodom;
474 iodom = DOM2IODOM(domain);
476 KASSERT(TAILQ_EMPTY(&domain->iodom.unload_entries),
478 KASSERT(LIST_EMPTY(&iodom->contexts),
484 if ((domain->iodom.flags & IOMMU_DOMAIN_GAS_INITED) != 0) {
486 iommu_gas_fini_domain(iodom);
489 if ((domain->iodom.flags & IOMMU_DOMAIN_PGTBL_INITED) != 0) {
494 iommu_domain_fini(iodom);
678 KASSERT(old_domain->iodom.iommu == domain->iodom.iommu,
680 domain->domain, old_domain->iodom.iommu->unit,
681 domain->iodom.iommu->unit));
687 ctx->context.domain = &domain->iodom;
695 domain->domain, (domain->iodom.flags & IOMMU_DOMAIN_IDMAP) != 0 ?
720 KASSERT((domain->iodom.flags & IOMMU_DOMAIN_RMRR) == 0,
727 &domain->iodom.unload_task);
817 LIST_FOREACH(ctx, &domain->iodom.contexts, link) {
847 iommu_qi_invalidate_locked(&domain->iodom, entry,
851 iommu_qi_invalidate_sync(&domain->iodom, entry->start,
873 dmar_domain_unload(struct iommu_domain *iodom,
881 domain = IODOM2DOM(iodom);
887 error = iodom->ops->unmap(iodom, entry,
904 iommu_qi_invalidate_locked(&domain->iodom, entry,