Lines Matching refs:dtd

142 ctf_copy_smembers(ctf_dtdef_t *dtd, uint_t soff, uchar_t *t)  in ctf_copy_smembers()  argument
144 ctf_dmdef_t *dmd = ctf_list_next(&dtd->dtd_u.dtu_members); in ctf_copy_smembers()
165 ctf_copy_lmembers(ctf_dtdef_t *dtd, uint_t soff, uchar_t *t) in ctf_copy_lmembers() argument
167 ctf_dmdef_t *dmd = ctf_list_next(&dtd->dtd_u.dtu_members); in ctf_copy_lmembers()
190 ctf_copy_emembers(ctf_dtdef_t *dtd, uint_t soff, uchar_t *t) in ctf_copy_emembers() argument
192 ctf_dmdef_t *dmd = ctf_list_next(&dtd->dtd_u.dtu_members); in ctf_copy_emembers()
207 ctf_copy_membnames(ctf_dtdef_t *dtd, uchar_t *s) in ctf_copy_membnames() argument
209 ctf_dmdef_t *dmd = ctf_list_next(&dtd->dtd_u.dtu_members); in ctf_copy_membnames()
238 ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, tid); in ctf_ref_inc() local
240 if (dtd == NULL) in ctf_ref_inc()
246 dtd->dtd_ref++; in ctf_ref_inc()
256 ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, tid); in ctf_ref_dec() local
258 if (dtd == NULL) in ctf_ref_dec()
264 ASSERT(dtd->dtd_ref >= 1); in ctf_ref_dec()
265 dtd->dtd_ref--; in ctf_ref_dec()
292 ctf_dtdef_t *dtd; in ctf_update() local
351 for (size = 0, dtd = ctf_list_next(&fp->ctf_dtdefs); in ctf_update()
352 dtd != NULL; dtd = ctf_list_next(dtd)) { in ctf_update()
354 uint_t kind = CTF_INFO_KIND(dtd->dtd_data.ctt_info); in ctf_update()
355 uint_t vlen = CTF_INFO_VLEN(dtd->dtd_data.ctt_info); in ctf_update()
357 if (dtd->dtd_data.ctt_size != CTF_LSIZE_SENT) in ctf_update()
375 if (dtd->dtd_data.ctt_size < CTF_LSTRUCT_THRESH) in ctf_update()
505 for (dtd = ctf_list_next(&fp->ctf_dtdefs); in ctf_update()
506 dtd != NULL; dtd = ctf_list_next(dtd)) { in ctf_update()
508 uint_t kind = CTF_INFO_KIND(dtd->dtd_data.ctt_info); in ctf_update()
509 uint_t vlen = CTF_INFO_VLEN(dtd->dtd_data.ctt_info); in ctf_update()
515 if (dtd->dtd_name != NULL) { in ctf_update()
516 dtd->dtd_data.ctt_name = (uint_t)(s - s0); in ctf_update()
517 len = strlen(dtd->dtd_name) + 1; in ctf_update()
519 bcopy(dtd->dtd_name, s, len); in ctf_update()
522 dtd->dtd_data.ctt_name = 0; in ctf_update()
524 if (dtd->dtd_data.ctt_size != CTF_LSIZE_SENT) in ctf_update()
529 bcopy(&dtd->dtd_data, t, len); in ctf_update()
537 dtd->dtd_u.dtu_enc.cte_format, in ctf_update()
538 dtd->dtd_u.dtu_enc.cte_offset, in ctf_update()
539 dtd->dtd_u.dtu_enc.cte_bits); in ctf_update()
542 dtd->dtd_u.dtu_enc.cte_format, in ctf_update()
543 dtd->dtd_u.dtu_enc.cte_offset, in ctf_update()
544 dtd->dtd_u.dtu_enc.cte_bits); in ctf_update()
552 dtd->dtd_u.dtu_arr.ctr_contents; in ctf_update()
554 dtd->dtd_u.dtu_arr.ctr_index; in ctf_update()
555 cta.cta_nelems = dtd->dtd_u.dtu_arr.ctr_nelems; in ctf_update()
565 *argv++ = (ushort_t)dtd->dtd_u.dtu_argv[argc]; in ctf_update()
576 if (dtd->dtd_data.ctt_size < CTF_LSTRUCT_THRESH) in ctf_update()
577 t = ctf_copy_smembers(dtd, (uint_t)(s - s0), t); in ctf_update()
579 t = ctf_copy_lmembers(dtd, (uint_t)(s - s0), t); in ctf_update()
580 s = ctf_copy_membnames(dtd, s); in ctf_update()
584 t = ctf_copy_emembers(dtd, (uint_t)(s - s0), t); in ctf_update()
585 s = ctf_copy_membnames(dtd, s); in ctf_update()
729 ctf_dtd_insert(ctf_file_t *fp, ctf_dtdef_t *dtd) in ctf_dtd_insert() argument
731 ulong_t h = dtd->dtd_type & (fp->ctf_dthashlen - 1); in ctf_dtd_insert()
733 dtd->dtd_hash = fp->ctf_dthash[h]; in ctf_dtd_insert()
734 fp->ctf_dthash[h] = dtd; in ctf_dtd_insert()
735 ctf_list_append(&fp->ctf_dtdefs, dtd); in ctf_dtd_insert()
739 ctf_dtd_delete(ctf_file_t *fp, ctf_dtdef_t *dtd) in ctf_dtd_delete() argument
741 ulong_t h = dtd->dtd_type & (fp->ctf_dthashlen - 1); in ctf_dtd_delete()
748 if (p != dtd) in ctf_dtd_delete()
757 kind = CTF_INFO_KIND(dtd->dtd_data.ctt_info); in ctf_dtd_delete()
762 for (dmd = ctf_list_next(&dtd->dtd_u.dtu_members); in ctf_dtd_delete()
776 ctf_ref_dec(fp, dtd->dtd_data.ctt_type); in ctf_dtd_delete()
777 for (i = 0; i < CTF_INFO_VLEN(dtd->dtd_data.ctt_info); i++) in ctf_dtd_delete()
778 if (dtd->dtd_u.dtu_argv[i] != 0) in ctf_dtd_delete()
779 ctf_ref_dec(fp, dtd->dtd_u.dtu_argv[i]); in ctf_dtd_delete()
780 ctf_free(dtd->dtd_u.dtu_argv, sizeof (ctf_id_t) * in ctf_dtd_delete()
781 CTF_INFO_VLEN(dtd->dtd_data.ctt_info)); in ctf_dtd_delete()
784 ctf_ref_dec(fp, dtd->dtd_u.dtu_arr.ctr_contents); in ctf_dtd_delete()
785 ctf_ref_dec(fp, dtd->dtd_u.dtu_arr.ctr_index); in ctf_dtd_delete()
788 ctf_ref_dec(fp, dtd->dtd_data.ctt_type); in ctf_dtd_delete()
794 ctf_ref_dec(fp, dtd->dtd_data.ctt_type); in ctf_dtd_delete()
798 if (dtd->dtd_name) { in ctf_dtd_delete()
799 len = strlen(dtd->dtd_name) + 1; in ctf_dtd_delete()
800 ctf_free(dtd->dtd_name, len); in ctf_dtd_delete()
804 ctf_list_delete(&fp->ctf_dtdefs, dtd); in ctf_dtd_delete()
805 ctf_free(dtd, sizeof (ctf_dtdef_t)); in ctf_dtd_delete()
812 ctf_dtdef_t *dtd; in ctf_dtd_lookup() local
817 for (dtd = fp->ctf_dthash[h]; dtd != NULL; dtd = dtd->dtd_hash) { in ctf_dtd_lookup()
818 if (dtd->dtd_type == type) in ctf_dtd_lookup()
822 return (dtd); in ctf_dtd_lookup()
931 ctf_dtdef_t *dtd, *ntd; in ctf_discard() local
939 for (dtd = ctf_list_prev(&fp->ctf_dtdefs); dtd != NULL; dtd = ntd) { in ctf_discard()
940 ntd = ctf_list_prev(dtd); in ctf_discard()
941 if (dtd->dtd_type <= fp->ctf_dtoldid) in ctf_discard()
944 ctf_dtd_delete(fp, dtd); in ctf_discard()
956 ctf_dtdef_t *dtd; in ctf_add_generic() local
969 if ((dtd = ctf_alloc(sizeof (ctf_dtdef_t))) == NULL) in ctf_add_generic()
976 ctf_free(dtd, sizeof (ctf_dtdef_t)); in ctf_add_generic()
983 bzero(dtd, sizeof (ctf_dtdef_t)); in ctf_add_generic()
984 dtd->dtd_name = s; in ctf_add_generic()
985 dtd->dtd_type = type; in ctf_add_generic()
990 ctf_dtd_insert(fp, dtd); in ctf_add_generic()
993 *rp = dtd; in ctf_add_generic()
1001 ctf_dtdef_t *dtd; in ctf_add_encoded() local
1007 if ((type = ctf_add_generic(fp, flag, name, &dtd)) == CTF_ERR) in ctf_add_encoded()
1010 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(kind, flag, 0); in ctf_add_encoded()
1016 dtd->dtd_data.ctt_size = ep->cte_bits / NBBY; in ctf_add_encoded()
1018 dtd->dtd_data.ctt_size++; in ctf_add_encoded()
1019 dtd->dtd_u.dtu_enc = *ep; in ctf_add_encoded()
1028 ctf_dtdef_t *dtd; in ctf_add_reftype() local
1034 if ((type = ctf_add_generic(fp, flag, name, &dtd)) == CTF_ERR) in ctf_add_reftype()
1039 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(kind, flag, 0); in ctf_add_reftype()
1040 dtd->dtd_data.ctt_type = (ushort_t)ref; in ctf_add_reftype()
1068 ctf_dtdef_t *dtd; in ctf_add_array() local
1090 if ((type = ctf_add_generic(fp, flag, NULL, &dtd)) == CTF_ERR) in ctf_add_array()
1093 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(CTF_K_ARRAY, flag, 0); in ctf_add_array()
1094 dtd->dtd_data.ctt_size = 0; in ctf_add_array()
1095 dtd->dtd_u.dtu_arr = *arp; in ctf_add_array()
1106 ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, type); in ctf_set_array() local
1111 if (dtd == NULL || CTF_INFO_KIND(dtd->dtd_data.ctt_info) != CTF_K_ARRAY) in ctf_set_array()
1124 ctf_ref_dec(fp, dtd->dtd_u.dtu_arr.ctr_contents); in ctf_set_array()
1125 ctf_ref_dec(fp, dtd->dtd_u.dtu_arr.ctr_index); in ctf_set_array()
1127 dtd->dtd_u.dtu_arr = *arp; in ctf_set_array()
1138 ctf_dtdef_t *dtd; in ctf_add_funcptr() local
1171 if ((type = ctf_add_generic(fp, flag, NULL, &dtd)) == CTF_ERR) { in ctf_add_funcptr()
1176 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(CTF_K_FUNCTION, flag, vlen); in ctf_add_funcptr()
1177 dtd->dtd_data.ctt_type = (ushort_t)ctc->ctc_return; in ctf_add_funcptr()
1186 dtd->dtd_u.dtu_argv = vdat; in ctf_add_funcptr()
1196 ctf_dtdef_t *dtd = NULL; in ctf_add_struct() local
1204 dtd = ctf_dtd_lookup(fp, type); in ctf_add_struct()
1205 if (CTF_INFO_KIND(dtd->dtd_data.ctt_info) != CTF_K_FORWARD) in ctf_add_struct()
1206 dtd = NULL; in ctf_add_struct()
1209 if (dtd == NULL) { in ctf_add_struct()
1210 type = ctf_add_generic(fp, flag, name, &dtd); in ctf_add_struct()
1216 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(CTF_K_STRUCT, flag, 0); in ctf_add_struct()
1217 dtd->dtd_data.ctt_size = 0; in ctf_add_struct()
1232 ctf_dtdef_t *dtd = NULL; in ctf_add_union() local
1240 dtd = ctf_dtd_lookup(fp, type); in ctf_add_union()
1241 if (CTF_INFO_KIND(dtd->dtd_data.ctt_info) != CTF_K_FORWARD) in ctf_add_union()
1242 dtd = NULL; in ctf_add_union()
1245 if (dtd == NULL) { in ctf_add_union()
1246 type = ctf_add_generic(fp, flag, name, &dtd); in ctf_add_union()
1252 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(CTF_K_UNION, flag, 0); in ctf_add_union()
1253 dtd->dtd_data.ctt_size = 0; in ctf_add_union()
1272 ctf_dtdef_t *dtd = NULL; in ctf_add_enum() local
1284 dtd = ctf_dtd_lookup(fp, type); in ctf_add_enum()
1285 if (CTF_INFO_KIND(dtd->dtd_data.ctt_info) != CTF_K_FORWARD) in ctf_add_enum()
1286 dtd = NULL; in ctf_add_enum()
1289 if (dtd == NULL) { in ctf_add_enum()
1290 type = ctf_add_generic(fp, flag, name, &dtd); in ctf_add_enum()
1296 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(CTF_K_ENUM, flag, 0); in ctf_add_enum()
1298 ctf_set_ctt_size(&dtd->dtd_data, size == 0 ? in ctf_add_enum()
1314 ctf_dtdef_t *dtd; in ctf_add_forward() local
1339 if ((type = ctf_add_generic(fp, flag, name, &dtd)) == CTF_ERR) in ctf_add_forward()
1342 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(CTF_K_FORWARD, flag, 0); in ctf_add_forward()
1343 dtd->dtd_data.ctt_type = kind; in ctf_add_forward()
1351 ctf_dtdef_t *dtd; in ctf_add_typedef() local
1360 if ((type = ctf_add_generic(fp, flag, name, &dtd)) == CTF_ERR) in ctf_add_typedef()
1363 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(CTF_K_TYPEDEF, flag, 0); in ctf_add_typedef()
1364 dtd->dtd_data.ctt_type = (ushort_t)ref; in ctf_add_typedef()
1391 ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, enid); in ctf_add_enumerator() local
1403 if (dtd == NULL) in ctf_add_enumerator()
1406 kind = CTF_INFO_KIND(dtd->dtd_data.ctt_info); in ctf_add_enumerator()
1407 root = CTF_INFO_ISROOT(dtd->dtd_data.ctt_info); in ctf_add_enumerator()
1408 vlen = CTF_INFO_VLEN(dtd->dtd_data.ctt_info); in ctf_add_enumerator()
1416 for (dmd = ctf_list_next(&dtd->dtd_u.dtu_members); in ctf_add_enumerator()
1437 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(kind, root, vlen + 1); in ctf_add_enumerator()
1438 ctf_list_append(&dtd->dtd_u.dtu_members, dmd); in ctf_add_enumerator()
1450 ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, souid); in ctf_add_member() local
1462 if (dtd == NULL) in ctf_add_member()
1465 kind = CTF_INFO_KIND(dtd->dtd_data.ctt_info); in ctf_add_member()
1466 root = CTF_INFO_ISROOT(dtd->dtd_data.ctt_info); in ctf_add_member()
1467 vlen = CTF_INFO_VLEN(dtd->dtd_data.ctt_info); in ctf_add_member()
1481 for (dmd = ctf_list_next(&dtd->dtd_u.dtu_members); in ctf_add_member()
1540 ctf_dmdef_t *lmd = ctf_list_prev(&dtd->dtd_u.dtu_members); in ctf_add_member()
1574 ssize = ctf_get_ctt_size(fp, &dtd->dtd_data, NULL, NULL); in ctf_add_member()
1578 ctf_set_ctt_size(&dtd->dtd_data, ssize); in ctf_add_member()
1580 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(kind, root, vlen + 1); in ctf_add_member()
1581 ctf_list_append(&dtd->dtd_u.dtu_members, dmd); in ctf_add_member()
1603 ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, type); in ctf_delete_type() local
1618 if (dtd == NULL) in ctf_delete_type()
1621 if (dtd->dtd_ref != 0 || fp->ctf_refcnt > 1) in ctf_delete_type()
1624 ctf_dtd_delete(fp, dtd); in ctf_delete_type()
1716 ctf_dtdef_t *dtd; in ctf_add_type() local
1781 for (dtd = ctf_list_prev(&dst_fp->ctf_dtdefs); dtd != NULL && in ctf_add_type()
1782 dtd->dtd_type > dst_fp->ctf_dtoldid; in ctf_add_type()
1783 dtd = ctf_list_prev(dtd)) { in ctf_add_type()
1784 if (CTF_INFO_KIND(dtd->dtd_data.ctt_info) == kind && in ctf_add_type()
1785 dtd->dtd_name != NULL && in ctf_add_type()
1786 strcmp(dtd->dtd_name, name) == 0) in ctf_add_type()
1787 return (dtd->dtd_type); in ctf_add_type()
1902 dst_type = ctf_add_generic(dst_fp, flag, name, &dtd); in ctf_add_type()
1907 dst.ctb_dtd = dtd; in ctf_add_type()
1912 ctf_set_ctt_size(&dtd->dtd_data, in ctf_add_type()
1915 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(kind, flag, vlen); in ctf_add_type()
1922 for (dmd = ctf_list_next(&dtd->dtd_u.dtu_members); in ctf_add_type()
1936 for (dmd = ctf_list_next(&dtd->dtd_u.dtu_members); in ctf_add_type()
2169 ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, id); in ctf_set_size() local
2176 if (dtd == NULL) in ctf_set_size()
2179 kind = CTF_INFO_KIND(dtd->dtd_data.ctt_info); in ctf_set_size()
2184 if ((oldsz = dtd->dtd_data.ctt_size) == CTF_LSIZE_SENT) in ctf_set_size()
2185 oldsz = CTF_TYPE_LSIZE(&dtd->dtd_data); in ctf_set_size()
2190 ctf_set_ctt_size(&dtd->dtd_data, newsz); in ctf_set_size()
2199 ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, id); in ctf_set_root() local
2205 if (dtd == NULL) in ctf_set_root()
2208 kind = CTF_INFO_KIND(dtd->dtd_data.ctt_info); in ctf_set_root()
2209 vlen = CTF_INFO_VLEN(dtd->dtd_data.ctt_info); in ctf_set_root()
2211 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(kind, vis, vlen); in ctf_set_root()