drhd
drhd_t *drhd;
drhd = list_head(&(tbl->tbl_drhd_list)[seg]);
for (; drhd; drhd = list_next(&(tbl->tbl_drhd_list)[seg],
drhd)) {
if (drhd->dr_include_all == B_TRUE)
scope = list_head(&(drhd->dr_scope_list));
scope = list_next(&(drhd->dr_scope_list), scope)) {
drhd = list_head(&(tbl->tbl_drhd_list)[seg]);
for (; drhd; drhd = list_next(&(tbl->tbl_drhd_list)[seg],
drhd)) {
if (drhd->dr_include_all == B_TRUE)
scope = list_head(&(drhd->dr_scope_list));
scope = list_next(&(drhd->dr_scope_list), scope)) {
tdrhd = drhd;
if ((drhd = tdrhd) != NULL) {
drhd = list_head(&(tbl->tbl_drhd_list[seg]));
for (; drhd; drhd = list_next(&(tbl->tbl_drhd_list)[seg],
drhd)) {
if (drhd->dr_include_all == B_TRUE) {
if (drhd == NULL) {
return (drhd->dr_immu);
drhd_t *drhd = (drhd_t *)dmar_unit;
return (drhd->dr_dip);
drhd_t *drhd = (drhd_t *)dmar_unit;
if (drhd == NULL) {
return ((void *)list_next(drhd_list, drhd));
drhd_t *drhd = (drhd_t *)dmar_unit;
ASSERT(drhd);
drhd->dr_immu = immu;
drhd_t *drhd;
while ((drhd = list_remove_head(drhd_list)) != NULL) {
scope_list_free(&(drhd->dr_scope_list));
kmem_free(drhd, sizeof (drhd_t));
ioapic_drhd_insert(scope_t *scope, drhd_t *drhd)
idt->ioapic_drhd = drhd;
drhd_t *drhd;
drhd = kmem_zalloc(sizeof (drhd_t), KM_SLEEP);
mutex_init(&(drhd->dr_lock), NULL, MUTEX_DEFAULT, NULL);
list_create(&(drhd->dr_scope_list), sizeof (scope_t),
drhd->dr_include_all =
drhd->dr_seg = seg;
drhd->dr_regs = get_uint64(&uhead[8]);
ioapic_drhd_insert(scope, drhd);
list_insert_tail(&(drhd->dr_scope_list), scope);
list_insert_tail(&(tbl->tbl_drhd_list[drhd->dr_seg]), drhd);
drhd_t *drhd;
for (drhd = list_head(drhd_list); drhd;
drhd = list_next(drhd_list, drhd)) {
drhd->dr_seg);
drhd->dr_regs);
drhd->dr_include_all == B_TRUE ? "TRUE" : "FALSE");
(void *)drhd->dr_dip);
print_scope_list(&(drhd->dr_scope_list));
drhd_devi_create(drhd_t *drhd, int unit)
drhd->dr_dip = dip;
reg.regspec_addr = drhd->dr_regs;
pdptr->par_reg->regspec_addr = drhd->dr_regs;
drhd_t *drhd;
drhd = list_head(drhd_list);
for (unit = 0; drhd;
drhd = list_next(drhd_list, drhd), unit++) {
drhd_devi_create(drhd, unit);
drhd_devi_destroy(drhd_t *drhd)
dip = drhd->dr_dip;
drhd->dr_dip = NULL;
drhd_t *drhd;
drhd = list_head(drhd_list);
for (; drhd; drhd = list_next(drhd_list, drhd)) {
drhd_devi_destroy(drhd);
ACPI_DMAR_HARDWARE_UNIT *drhd;
drhd = drhds[i];
if (VTD_DRHD_INCLUDE_PCI_ALL(drhd->Flags)) {
end = (char *)drhd + drhd->Header.Length;
remaining = drhd->Header.Length -
vtd_get_dip(ACPI_DMAR_HARDWARE_UNIT *drhd, int unit)
reg.regspec_addr = drhd->Address;
pdptr->par_reg->regspec_addr = drhd->Address;
ACPI_DMAR_HARDWARE_UNIT *drhd;
drhd = (ACPI_DMAR_HARDWARE_UNIT *)hdr;
drhds[units] = drhd;
vtdmaps[units] = (struct vtdmap *)PHYS_TO_DMAP(drhd->Address);
vtddips[units] = vtd_get_dip(drhd, units);