Lines Matching refs:tbl

52 static void dmar_table_destroy(dmar_table_t *tbl);
287 parse_drhd(char *uhead, dmar_table_t *tbl) in parse_drhd() argument
296 ASSERT(tbl); in parse_drhd()
335 list_insert_tail(&(tbl->tbl_drhd_list[drhd->dr_seg]), drhd); in parse_drhd()
345 parse_rmrr(char *uhead, dmar_table_t *tbl) in parse_rmrr() argument
354 ASSERT(tbl); in parse_rmrr()
398 list_insert_tail(&(tbl->tbl_rmrr_list[rmrr->rm_seg]), rmrr); in parse_rmrr()
414 dmar_table_t *tbl; in dmar_parse() local
437 tbl = kmem_zalloc(sizeof (dmar_table_t), KM_SLEEP); in dmar_parse()
438 mutex_init(&(tbl->tbl_lock), NULL, MUTEX_DEFAULT, NULL); in dmar_parse()
440 tbl->tbl_raw = raw; in dmar_parse()
445 tbl->tbl_rawlen = get_uint32(&raw[4]); in dmar_parse()
448 tbl->tbl_oem_id = get_str(&raw[10], TBL_OEM_ID_SZ); in dmar_parse()
449 tbl->tbl_oem_tblid = get_str(&raw[16], TBL_OEM_TBLID_SZ); in dmar_parse()
450 tbl->tbl_oem_rev = get_uint32(&raw[24]); in dmar_parse()
451 tbl->tbl_haw = get_uint8(&raw[36]) + 1; in dmar_parse()
452 tbl->tbl_intrmap = (get_uint8(&raw[37]) & DMAR_INTRMAP_SUPPORT) in dmar_parse()
457 list_create(&(tbl->tbl_drhd_list[i]), sizeof (drhd_t), in dmar_parse()
459 list_create(&(tbl->tbl_rmrr_list[i]), sizeof (rmrr_t), in dmar_parse()
470 while (uhead < &raw[tbl->tbl_rawlen - 1]) { in dmar_parse()
474 if (parse_drhd(uhead, tbl) != DDI_SUCCESS) { in dmar_parse()
479 if (parse_rmrr(uhead, tbl) != DDI_SUCCESS) { in dmar_parse()
500 *tblpp = tbl; in dmar_parse()
504 dmar_table_destroy(tbl); in dmar_parse()
612 dmar_table_print(dmar_table_t *tbl) in dmar_table_print() argument
622 ddi_err(DER_CONT, NULL, "\thaw = %d\n", tbl->tbl_haw); in dmar_table_print()
624 tbl->tbl_intrmap == B_TRUE ? "<true>" : "<false>"); in dmar_table_print()
628 print_drhd_list(&(tbl->tbl_drhd_list[i])); in dmar_table_print()
634 print_rmrr_list(&(tbl->tbl_rmrr_list[i])); in dmar_table_print()
700 dmar_devinfos_create(dmar_table_t *tbl) in dmar_devinfos_create() argument
708 drhd_list = &(tbl->tbl_drhd_list[i]); in dmar_devinfos_create()
744 dmar_devi_destroy(dmar_table_t *tbl) in dmar_devi_destroy() argument
751 drhd_list = &(tbl->tbl_drhd_list[i]); in dmar_devi_destroy()
793 dmar_table_destroy(dmar_table_t *tbl) in dmar_table_destroy() argument
797 ASSERT(tbl); in dmar_table_destroy()
801 rmrr_list_destroy(&(tbl->tbl_rmrr_list[i])); in dmar_table_destroy()
802 drhd_list_destroy(&(tbl->tbl_drhd_list[i])); in dmar_table_destroy()
806 kmem_free(tbl->tbl_oem_tblid, TBL_OEM_TBLID_SZ + 1); in dmar_table_destroy()
807 kmem_free(tbl->tbl_oem_id, TBL_OEM_ID_SZ + 1); in dmar_table_destroy()
808 tbl->tbl_raw = NULL; /* raw ACPI table doesn't have to be freed */ in dmar_table_destroy()
809 mutex_destroy(&(tbl->tbl_lock)); in dmar_table_destroy()
810 kmem_free(tbl, sizeof (dmar_table_t)); in dmar_table_destroy()
845 dmar_table_t *tbl = NULL; in immu_dmar_parse() local
857 if (dmar_parse(&tbl, dmar_raw) != DDI_SUCCESS) { in immu_dmar_parse()
858 ASSERT(tbl == NULL); in immu_dmar_parse()
862 ASSERT(tbl); in immu_dmar_parse()
868 dmar_devinfos_create(tbl); in immu_dmar_parse()
873 dmar_table_print(tbl); in immu_dmar_parse()
875 dmar_table = tbl; in immu_dmar_parse()
905 dmar_table_t *tbl = dmar_table; in immu_dmar_blacklisted() local
909 ASSERT(tbl); in immu_dmar_blacklisted()
921 ddi_err(DER_CONT, NULL, "?OEM-ID = <%s>\n", tbl->tbl_oem_id); in immu_dmar_blacklisted()
922 ddi_err(DER_CONT, NULL, "?Table-ID = <%s>\n", tbl->tbl_oem_tblid); in immu_dmar_blacklisted()
923 (void) snprintf(oem_rev, sizeof (oem_rev), "%d", tbl->tbl_oem_rev); in immu_dmar_blacklisted()
928 if (strcmp(*strptr++, tbl->tbl_oem_id) == 0 && in immu_dmar_blacklisted()
930 strcmp(*strptr++, tbl->tbl_oem_tblid) == 0) && in immu_dmar_blacklisted()
949 dmar_table_t *tbl; in immu_dmar_rmrr_map() local
953 tbl = dmar_table; in immu_dmar_rmrr_map()
961 rmrr = list_head(&(tbl->tbl_rmrr_list)[seg]); in immu_dmar_rmrr_map()
962 for (; rmrr; rmrr = list_next(&(tbl->tbl_rmrr_list)[seg], in immu_dmar_rmrr_map()
1058 dmar_table_t *tbl; in immu_dmar_get_immu() local
1062 tbl = dmar_table; in immu_dmar_get_immu()
1064 mutex_enter(&(tbl->tbl_lock)); in immu_dmar_get_immu()
1070 drhd = list_head(&(tbl->tbl_drhd_list)[seg]); in immu_dmar_get_immu()
1071 for (; drhd; drhd = list_next(&(tbl->tbl_drhd_list)[seg], in immu_dmar_get_immu()
1127 drhd = list_head(&(tbl->tbl_drhd_list)[seg]); in immu_dmar_get_immu()
1128 for (; drhd; drhd = list_next(&(tbl->tbl_drhd_list)[seg], in immu_dmar_get_immu()
1180 drhd = list_head(&(tbl->tbl_drhd_list[seg])); in immu_dmar_get_immu()
1181 for (; drhd; drhd = list_next(&(tbl->tbl_drhd_list)[seg], in immu_dmar_get_immu()
1193 mutex_exit(&(tbl->tbl_lock)); in immu_dmar_get_immu()