Lines Matching refs:dtd
90 ctf_copy_smembers(ctf_dtdef_t *dtd, uint_t soff, uchar_t *t) in ctf_copy_smembers() argument
92 ctf_dmdef_t *dmd = ctf_list_next(&dtd->dtd_u.dtu_members); in ctf_copy_smembers()
113 ctf_copy_lmembers(ctf_dtdef_t *dtd, uint_t soff, uchar_t *t) in ctf_copy_lmembers() argument
115 ctf_dmdef_t *dmd = ctf_list_next(&dtd->dtd_u.dtu_members); in ctf_copy_lmembers()
138 ctf_copy_emembers(ctf_dtdef_t *dtd, uint_t soff, uchar_t *t) in ctf_copy_emembers() argument
140 ctf_dmdef_t *dmd = ctf_list_next(&dtd->dtd_u.dtu_members); in ctf_copy_emembers()
155 ctf_copy_membnames(ctf_dtdef_t *dtd, uchar_t *s) in ctf_copy_membnames() argument
157 ctf_dmdef_t *dmd = ctf_list_next(&dtd->dtd_u.dtu_members); in ctf_copy_membnames()
186 ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, tid); in ctf_ref_inc() local
188 if (dtd == NULL) in ctf_ref_inc()
194 dtd->dtd_ref++; in ctf_ref_inc()
204 ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, tid); in ctf_ref_dec() local
206 if (dtd == NULL) in ctf_ref_dec()
212 ASSERT(dtd->dtd_ref >= 1); in ctf_ref_dec()
213 dtd->dtd_ref--; in ctf_ref_dec()
240 ctf_dtdef_t *dtd; in ctf_update() local
271 for (size = 0, dtd = ctf_list_next(&fp->ctf_dtdefs); in ctf_update()
272 dtd != NULL; dtd = ctf_list_next(dtd)) { in ctf_update()
274 uint_t kind = CTF_INFO_KIND(dtd->dtd_data.ctt_info); in ctf_update()
275 uint_t vlen = CTF_INFO_VLEN(dtd->dtd_data.ctt_info); in ctf_update()
277 if (dtd->dtd_data.ctt_size != CTF_LSIZE_SENT) in ctf_update()
295 if (dtd->dtd_data.ctt_size < CTF_LSTRUCT_THRESH) in ctf_update()
329 for (dtd = ctf_list_next(&fp->ctf_dtdefs); in ctf_update()
330 dtd != NULL; dtd = ctf_list_next(dtd)) { in ctf_update()
332 uint_t kind = CTF_INFO_KIND(dtd->dtd_data.ctt_info); in ctf_update()
333 uint_t vlen = CTF_INFO_VLEN(dtd->dtd_data.ctt_info); in ctf_update()
339 if (dtd->dtd_name != NULL) { in ctf_update()
340 dtd->dtd_data.ctt_name = (uint_t)(s - s0); in ctf_update()
341 len = strlen(dtd->dtd_name) + 1; in ctf_update()
342 bcopy(dtd->dtd_name, s, len); in ctf_update()
345 dtd->dtd_data.ctt_name = 0; in ctf_update()
347 if (dtd->dtd_data.ctt_size != CTF_LSIZE_SENT) in ctf_update()
352 bcopy(&dtd->dtd_data, t, len); in ctf_update()
360 dtd->dtd_u.dtu_enc.cte_format, in ctf_update()
361 dtd->dtd_u.dtu_enc.cte_offset, in ctf_update()
362 dtd->dtd_u.dtu_enc.cte_bits); in ctf_update()
365 dtd->dtd_u.dtu_enc.cte_format, in ctf_update()
366 dtd->dtd_u.dtu_enc.cte_offset, in ctf_update()
367 dtd->dtd_u.dtu_enc.cte_bits); in ctf_update()
375 dtd->dtd_u.dtu_arr.ctr_contents; in ctf_update()
377 dtd->dtd_u.dtu_arr.ctr_index; in ctf_update()
378 cta.cta_nelems = dtd->dtd_u.dtu_arr.ctr_nelems; in ctf_update()
388 *argv++ = (ushort_t)dtd->dtd_u.dtu_argv[argc]; in ctf_update()
399 if (dtd->dtd_data.ctt_size < CTF_LSTRUCT_THRESH) in ctf_update()
400 t = ctf_copy_smembers(dtd, (uint_t)(s - s0), t); in ctf_update()
402 t = ctf_copy_lmembers(dtd, (uint_t)(s - s0), t); in ctf_update()
403 s = ctf_copy_membnames(dtd, s); in ctf_update()
407 t = ctf_copy_emembers(dtd, (uint_t)(s - s0), t); in ctf_update()
408 s = ctf_copy_membnames(dtd, s); in ctf_update()
470 ctf_dtd_insert(ctf_file_t *fp, ctf_dtdef_t *dtd) in ctf_dtd_insert() argument
472 ulong_t h = dtd->dtd_type & (fp->ctf_dthashlen - 1); in ctf_dtd_insert()
474 dtd->dtd_hash = fp->ctf_dthash[h]; in ctf_dtd_insert()
475 fp->ctf_dthash[h] = dtd; in ctf_dtd_insert()
476 ctf_list_append(&fp->ctf_dtdefs, dtd); in ctf_dtd_insert()
480 ctf_dtd_delete(ctf_file_t *fp, ctf_dtdef_t *dtd) in ctf_dtd_delete() argument
482 ulong_t h = dtd->dtd_type & (fp->ctf_dthashlen - 1); in ctf_dtd_delete()
489 if (p != dtd) in ctf_dtd_delete()
498 kind = CTF_INFO_KIND(dtd->dtd_data.ctt_info); in ctf_dtd_delete()
503 for (dmd = ctf_list_next(&dtd->dtd_u.dtu_members); in ctf_dtd_delete()
517 ctf_ref_dec(fp, dtd->dtd_data.ctt_type); in ctf_dtd_delete()
518 for (i = 0; i < CTF_INFO_VLEN(dtd->dtd_data.ctt_info); i++) in ctf_dtd_delete()
519 if (dtd->dtd_u.dtu_argv[i] != 0) in ctf_dtd_delete()
520 ctf_ref_dec(fp, dtd->dtd_u.dtu_argv[i]); in ctf_dtd_delete()
521 ctf_free(dtd->dtd_u.dtu_argv, sizeof (ctf_id_t) * in ctf_dtd_delete()
522 CTF_INFO_VLEN(dtd->dtd_data.ctt_info)); in ctf_dtd_delete()
525 ctf_ref_dec(fp, dtd->dtd_u.dtu_arr.ctr_contents); in ctf_dtd_delete()
526 ctf_ref_dec(fp, dtd->dtd_u.dtu_arr.ctr_index); in ctf_dtd_delete()
529 ctf_ref_dec(fp, dtd->dtd_data.ctt_type); in ctf_dtd_delete()
535 ctf_ref_dec(fp, dtd->dtd_data.ctt_type); in ctf_dtd_delete()
539 if (dtd->dtd_name) { in ctf_dtd_delete()
540 len = strlen(dtd->dtd_name) + 1; in ctf_dtd_delete()
541 ctf_free(dtd->dtd_name, len); in ctf_dtd_delete()
545 ctf_list_delete(&fp->ctf_dtdefs, dtd); in ctf_dtd_delete()
546 ctf_free(dtd, sizeof (ctf_dtdef_t)); in ctf_dtd_delete()
553 ctf_dtdef_t *dtd; in ctf_dtd_lookup() local
558 for (dtd = fp->ctf_dthash[h]; dtd != NULL; dtd = dtd->dtd_hash) { in ctf_dtd_lookup()
559 if (dtd->dtd_type == type) in ctf_dtd_lookup()
563 return (dtd); in ctf_dtd_lookup()
577 ctf_dtdef_t *dtd, *ntd; in ctf_discard() local
585 for (dtd = ctf_list_prev(&fp->ctf_dtdefs); dtd != NULL; dtd = ntd) { in ctf_discard()
586 if (dtd->dtd_type <= fp->ctf_dtoldid) in ctf_discard()
589 ntd = ctf_list_prev(dtd); in ctf_discard()
590 ctf_dtd_delete(fp, dtd); in ctf_discard()
602 ctf_dtdef_t *dtd; in ctf_add_generic() local
615 if ((dtd = ctf_alloc(sizeof (ctf_dtdef_t))) == NULL) in ctf_add_generic()
619 ctf_free(dtd, sizeof (ctf_dtdef_t)); in ctf_add_generic()
626 bzero(dtd, sizeof (ctf_dtdef_t)); in ctf_add_generic()
627 dtd->dtd_name = s; in ctf_add_generic()
628 dtd->dtd_type = type; in ctf_add_generic()
633 ctf_dtd_insert(fp, dtd); in ctf_add_generic()
636 *rp = dtd; in ctf_add_generic()
663 ctf_dtdef_t *dtd; in ctf_add_encoded() local
669 if ((type = ctf_add_generic(fp, flag, name, &dtd)) == CTF_ERR) in ctf_add_encoded()
672 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(kind, flag, 0); in ctf_add_encoded()
673 dtd->dtd_data.ctt_size = clp2(P2ROUNDUP(ep->cte_bits, NBBY) / NBBY); in ctf_add_encoded()
674 dtd->dtd_u.dtu_enc = *ep; in ctf_add_encoded()
682 ctf_dtdef_t *dtd; in ctf_add_reftype() local
688 if ((type = ctf_add_generic(fp, flag, NULL, &dtd)) == CTF_ERR) in ctf_add_reftype()
693 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(kind, flag, 0); in ctf_add_reftype()
694 dtd->dtd_data.ctt_type = (ushort_t)ref; in ctf_add_reftype()
722 ctf_dtdef_t *dtd; in ctf_add_array() local
739 if ((type = ctf_add_generic(fp, flag, NULL, &dtd)) == CTF_ERR) in ctf_add_array()
742 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(CTF_K_ARRAY, flag, 0); in ctf_add_array()
743 dtd->dtd_data.ctt_size = 0; in ctf_add_array()
744 dtd->dtd_u.dtu_arr = *arp; in ctf_add_array()
755 ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, type); in ctf_set_array() local
760 if (dtd == NULL || CTF_INFO_KIND(dtd->dtd_data.ctt_info) != CTF_K_ARRAY) in ctf_set_array()
773 ctf_ref_dec(fp, dtd->dtd_u.dtu_arr.ctr_contents); in ctf_set_array()
774 ctf_ref_dec(fp, dtd->dtd_u.dtu_arr.ctr_index); in ctf_set_array()
776 dtd->dtd_u.dtu_arr = *arp; in ctf_set_array()
787 ctf_dtdef_t *dtd; in ctf_add_function() local
820 if ((type = ctf_add_generic(fp, flag, NULL, &dtd)) == CTF_ERR) { in ctf_add_function()
825 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(CTF_K_FUNCTION, flag, vlen); in ctf_add_function()
826 dtd->dtd_data.ctt_type = (ushort_t)ctc->ctc_return; in ctf_add_function()
835 dtd->dtd_u.dtu_argv = vdat; in ctf_add_function()
845 ctf_dtdef_t *dtd; in ctf_add_struct() local
852 dtd = ctf_dtd_lookup(fp, type = hep->h_type); in ctf_add_struct()
853 else if ((type = ctf_add_generic(fp, flag, name, &dtd)) == CTF_ERR) in ctf_add_struct()
856 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(CTF_K_STRUCT, flag, 0); in ctf_add_struct()
857 dtd->dtd_data.ctt_size = 0; in ctf_add_struct()
867 ctf_dtdef_t *dtd; in ctf_add_union() local
874 dtd = ctf_dtd_lookup(fp, type = hep->h_type); in ctf_add_union()
875 else if ((type = ctf_add_generic(fp, flag, name, &dtd)) == CTF_ERR) in ctf_add_union()
878 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(CTF_K_UNION, flag, 0); in ctf_add_union()
879 dtd->dtd_data.ctt_size = 0; in ctf_add_union()
889 ctf_dtdef_t *dtd; in ctf_add_enum() local
896 dtd = ctf_dtd_lookup(fp, type = hep->h_type); in ctf_add_enum()
897 else if ((type = ctf_add_generic(fp, flag, name, &dtd)) == CTF_ERR) in ctf_add_enum()
900 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(CTF_K_ENUM, flag, 0); in ctf_add_enum()
901 dtd->dtd_data.ctt_size = fp->ctf_dmodel->ctd_int; in ctf_add_enum()
911 ctf_dtdef_t *dtd; in ctf_add_forward() local
936 if ((type = ctf_add_generic(fp, flag, name, &dtd)) == CTF_ERR) in ctf_add_forward()
939 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(CTF_K_FORWARD, flag, 0); in ctf_add_forward()
940 dtd->dtd_data.ctt_type = kind; in ctf_add_forward()
948 ctf_dtdef_t *dtd; in ctf_add_typedef() local
957 if ((type = ctf_add_generic(fp, flag, name, &dtd)) == CTF_ERR) in ctf_add_typedef()
960 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(CTF_K_TYPEDEF, flag, 0); in ctf_add_typedef()
961 dtd->dtd_data.ctt_type = (ushort_t)ref; in ctf_add_typedef()
988 ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, enid); in ctf_add_enumerator() local
1000 if (dtd == NULL) in ctf_add_enumerator()
1003 kind = CTF_INFO_KIND(dtd->dtd_data.ctt_info); in ctf_add_enumerator()
1004 root = CTF_INFO_ISROOT(dtd->dtd_data.ctt_info); in ctf_add_enumerator()
1005 vlen = CTF_INFO_VLEN(dtd->dtd_data.ctt_info); in ctf_add_enumerator()
1013 for (dmd = ctf_list_next(&dtd->dtd_u.dtu_members); in ctf_add_enumerator()
1032 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(kind, root, vlen + 1); in ctf_add_enumerator()
1033 ctf_list_append(&dtd->dtd_u.dtu_members, dmd); in ctf_add_enumerator()
1044 ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, souid); in ctf_add_member() local
1054 if (dtd == NULL) in ctf_add_member()
1057 kind = CTF_INFO_KIND(dtd->dtd_data.ctt_info); in ctf_add_member()
1058 root = CTF_INFO_ISROOT(dtd->dtd_data.ctt_info); in ctf_add_member()
1059 vlen = CTF_INFO_VLEN(dtd->dtd_data.ctt_info); in ctf_add_member()
1068 for (dmd = ctf_list_next(&dtd->dtd_u.dtu_members); in ctf_add_member()
1093 ctf_dmdef_t *lmd = ctf_list_prev(&dtd->dtd_u.dtu_members); in ctf_add_member()
1120 ssize = ctf_get_ctt_size(fp, &dtd->dtd_data, NULL, NULL); in ctf_add_member()
1125 dtd->dtd_data.ctt_size = CTF_LSIZE_SENT; in ctf_add_member()
1126 dtd->dtd_data.ctt_lsizehi = CTF_SIZE_TO_LSIZE_HI(ssize); in ctf_add_member()
1127 dtd->dtd_data.ctt_lsizelo = CTF_SIZE_TO_LSIZE_LO(ssize); in ctf_add_member()
1129 dtd->dtd_data.ctt_size = (ushort_t)ssize; in ctf_add_member()
1131 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(kind, root, vlen + 1); in ctf_add_member()
1132 ctf_list_append(&dtd->dtd_u.dtu_members, dmd); in ctf_add_member()
1154 ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, type); in ctf_delete_type() local
1169 if (dtd == NULL) in ctf_delete_type()
1172 if (dtd->dtd_ref != 0 || fp->ctf_refcnt > 1) in ctf_delete_type()
1175 ctf_dtd_delete(fp, dtd); in ctf_delete_type()
1264 ctf_dtdef_t *dtd; in ctf_add_type() local
1330 for (dtd = ctf_list_prev(&dst_fp->ctf_dtdefs); dtd != NULL && in ctf_add_type()
1331 dtd->dtd_type > dst_fp->ctf_dtoldid; in ctf_add_type()
1332 dtd = ctf_list_prev(dtd)) { in ctf_add_type()
1333 if (CTF_INFO_KIND(dtd->dtd_data.ctt_info) == kind && in ctf_add_type()
1334 dtd->dtd_name != NULL && in ctf_add_type()
1335 strcmp(dtd->dtd_name, name) == 0) in ctf_add_type()
1336 return (dtd->dtd_type); in ctf_add_type()
1451 dst_type = ctf_add_generic(dst_fp, flag, name, &dtd); in ctf_add_type()
1456 dst.ctb_dtd = dtd; in ctf_add_type()
1462 dtd->dtd_data.ctt_size = CTF_LSIZE_SENT; in ctf_add_type()
1463 dtd->dtd_data.ctt_lsizehi = CTF_SIZE_TO_LSIZE_HI(size); in ctf_add_type()
1464 dtd->dtd_data.ctt_lsizelo = CTF_SIZE_TO_LSIZE_LO(size); in ctf_add_type()
1466 dtd->dtd_data.ctt_size = (ushort_t)size; in ctf_add_type()
1468 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(kind, flag, vlen); in ctf_add_type()
1475 for (dmd = ctf_list_next(&dtd->dtd_u.dtu_members); in ctf_add_type()
1489 for (dmd = ctf_list_next(&dtd->dtd_u.dtu_members); in ctf_add_type()