Lines Matching refs:dom
163 struct domain *dom;
167 SLIST_FOREACH(dom, &domhead, next) {
168 if (dom->id == id)
171 if (dom == NULL)
444 struct domain *dom = arg;
451 pt_paddr = vtophys(dom->ptp);
468 ctxp[idx + 1] = dom->addrwidth | (dom->id << 8);
521 struct domain *dom;
525 dom = arg;
531 KASSERT(gpa + len <= dom->maxaddr, ("%s: gpa range %#lx/%#lx beyond "
532 "domain maxaddr %#lx", __func__, gpa, len, dom->maxaddr));
554 if ((dom->spsmask & (1 << i)) != 0 &&
563 ptp = dom->ptp;
564 nlevels = dom->pt_levels;
621 vtd_invalidate_tlb(void *dom)
639 struct domain *dom;
694 dom = malloc(sizeof(struct domain), M_VTD, M_ZERO | M_WAITOK);
695 dom->pt_levels = pt_levels;
696 dom->addrwidth = addrwidth;
697 dom->id = domain_id();
698 dom->maxaddr = maxaddr;
699 dom->ptp = malloc(PAGE_SIZE, M_VTD, M_ZERO | M_WAITOK);
700 if ((uintptr_t)dom->ptp & PAGE_MASK)
701 panic("vtd_create_domain: ptp (%p) not page aligned", dom->ptp);
718 dom->spsmask = ~0;
722 dom->spsmask &= VTD_CAP_SPS(vtdmap->cap);
726 SLIST_INSERT_HEAD(&domhead, dom, next);
728 return (dom);
755 struct domain *dom;
757 dom = arg;
759 SLIST_REMOVE(&domhead, dom, domain, next);
760 vtd_free_ptp(dom->ptp, dom->pt_levels);
761 free(dom, M_VTD);