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