Lines Matching full:dtd

90 ctf_copy_smembers(const ctf_file_t *fp, ctf_dtdef_t *dtd, uint_t soff,  in ctf_copy_smembers()  argument
93 ctf_dmdef_t *dmd = ctf_list_next(&dtd->dtd_u.dtu_members); in ctf_copy_smembers()
131 ctf_copy_lmembers(const ctf_file_t *fp, ctf_dtdef_t *dtd, uint_t soff, in ctf_copy_lmembers() argument
134 ctf_dmdef_t *dmd = ctf_list_next(&dtd->dtd_u.dtu_members); in ctf_copy_lmembers()
175 ctf_copy_emembers(ctf_dtdef_t *dtd, uint_t soff, uchar_t *t) in ctf_copy_emembers() argument
177 ctf_dmdef_t *dmd = ctf_list_next(&dtd->dtd_u.dtu_members); in ctf_copy_emembers()
192 ctf_copy_membnames(ctf_dtdef_t *dtd, uchar_t *s) in ctf_copy_membnames() argument
194 ctf_dmdef_t *dmd = ctf_list_next(&dtd->dtd_u.dtu_members); in ctf_copy_membnames()
223 ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, tid); in ctf_ref_inc() local
225 if (dtd == NULL) in ctf_ref_inc()
231 dtd->dtd_ref++; in ctf_ref_inc()
241 ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, tid); in ctf_ref_dec() local
243 if (dtd == NULL) in ctf_ref_dec()
249 ASSERT(dtd->dtd_ref >= 1); in ctf_ref_dec()
250 dtd->dtd_ref--; in ctf_ref_dec()
269 * is still writeable. Furthermore, the reference counts that are on the dtd's
277 ctf_dtdef_t *dtd; in ctf_update() local
308 for (size = 0, dtd = ctf_list_next(&fp->ctf_dtdefs); in ctf_update()
309 dtd != NULL; dtd = ctf_list_next(dtd)) { in ctf_update()
311 uint_t kind = LCTF_INFO_KIND(fp, dtd->dtd_data.ctt_info); in ctf_update()
312 uint_t vlen = LCTF_INFO_VLEN(fp, dtd->dtd_data.ctt_info); in ctf_update()
315 if (dtd->dtd_data.ctt_size != CTF_V2_LSIZE_SENT) in ctf_update()
320 if (dtd->dtd_data.ctt_size != LCTF_LSIZE_SENT(fp)) in ctf_update()
342 if (dtd->dtd_data.ctt_size < in ctf_update()
350 if (dtd->dtd_data.ctt_size < in ctf_update()
388 for (dtd = ctf_list_next(&fp->ctf_dtdefs); in ctf_update()
389 dtd != NULL; dtd = ctf_list_next(dtd)) { in ctf_update()
391 uint_t kind = LCTF_INFO_KIND(fp, dtd->dtd_data.ctt_info); in ctf_update()
392 uint_t vlen = LCTF_INFO_VLEN(fp, dtd->dtd_data.ctt_info); in ctf_update()
398 if (dtd->dtd_name != NULL) { in ctf_update()
399 dtd->dtd_data.ctt_name = (uint_t)(s - s0); in ctf_update()
400 len = strlen(dtd->dtd_name) + 1; in ctf_update()
401 bcopy(dtd->dtd_name, s, len); in ctf_update()
404 dtd->dtd_data.ctt_name = 0; in ctf_update()
407 ctt.ctt_name = dtd->dtd_data.ctt_name; in ctf_update()
408 ctt.ctt_info = (ushort_t)dtd->dtd_data.ctt_info; in ctf_update()
409 ctt.ctt_size = (ushort_t)dtd->dtd_data.ctt_size; in ctf_update()
410 if (dtd->dtd_data.ctt_size != CTF_V2_LSIZE_SENT) in ctf_update()
414 ctt.ctt_lsizehi = dtd->dtd_data.ctt_lsizehi; in ctf_update()
415 ctt.ctt_lsizelo = dtd->dtd_data.ctt_lsizelo; in ctf_update()
419 if (dtd->dtd_data.ctt_size != LCTF_LSIZE_SENT(fp)) in ctf_update()
423 tp = &dtd->dtd_data; in ctf_update()
434 dtd->dtd_u.dtu_enc.cte_format, in ctf_update()
435 dtd->dtd_u.dtu_enc.cte_offset, in ctf_update()
436 dtd->dtd_u.dtu_enc.cte_bits); in ctf_update()
439 dtd->dtd_u.dtu_enc.cte_format, in ctf_update()
440 dtd->dtd_u.dtu_enc.cte_offset, in ctf_update()
441 dtd->dtd_u.dtu_enc.cte_bits); in ctf_update()
452 (uint16_t)dtd->dtd_u.dtu_arr.ctr_contents; in ctf_update()
454 (uint16_t)dtd->dtd_u.dtu_arr.ctr_index; in ctf_update()
455 cta.cta_nelems = dtd->dtd_u.dtu_arr.ctr_nelems; in ctf_update()
463 dtd->dtd_u.dtu_arr.ctr_contents; in ctf_update()
464 cta.cta_index = dtd->dtd_u.dtu_arr.ctr_index; in ctf_update()
465 cta.cta_nelems = dtd->dtd_u.dtu_arr.ctr_nelems; in ctf_update()
482 (ushort_t)dtd->dtd_u.dtu_argv[argc]; in ctf_update()
490 arg = (uint_t)dtd->dtd_u.dtu_argv[argc]; in ctf_update()
501 if (dtd->dtd_data.ctt_size < LCTF_LSTRUCT_THRESH(fp)) in ctf_update()
502 t = ctf_copy_smembers(fp, dtd, (uint_t)(s - s0), in ctf_update()
505 t = ctf_copy_lmembers(fp, dtd, (uint_t)(s - s0), in ctf_update()
507 s = ctf_copy_membnames(dtd, s); in ctf_update()
511 t = ctf_copy_emembers(dtd, (uint_t)(s - s0), t); in ctf_update()
512 s = ctf_copy_membnames(dtd, s); in ctf_update()
574 ctf_dtd_insert(ctf_file_t *fp, ctf_dtdef_t *dtd) in ctf_dtd_insert() argument
576 ulong_t h = dtd->dtd_type & (fp->ctf_dthashlen - 1); in ctf_dtd_insert()
578 dtd->dtd_hash = fp->ctf_dthash[h]; in ctf_dtd_insert()
579 fp->ctf_dthash[h] = dtd; in ctf_dtd_insert()
580 ctf_list_append(&fp->ctf_dtdefs, dtd); in ctf_dtd_insert()
584 ctf_dtd_delete(ctf_file_t *fp, ctf_dtdef_t *dtd) in ctf_dtd_delete() argument
586 ulong_t h = dtd->dtd_type & (fp->ctf_dthashlen - 1); in ctf_dtd_delete()
593 if (p != dtd) in ctf_dtd_delete()
602 kind = LCTF_INFO_KIND(fp, dtd->dtd_data.ctt_info); in ctf_dtd_delete()
607 for (dmd = ctf_list_next(&dtd->dtd_u.dtu_members); in ctf_dtd_delete()
621 ctf_ref_dec(fp, dtd->dtd_data.ctt_type); in ctf_dtd_delete()
622 for (i = 0; i < LCTF_INFO_VLEN(fp, dtd->dtd_data.ctt_info); i++) in ctf_dtd_delete()
623 if (dtd->dtd_u.dtu_argv[i] != 0) in ctf_dtd_delete()
624 ctf_ref_dec(fp, dtd->dtd_u.dtu_argv[i]); in ctf_dtd_delete()
625 ctf_free(dtd->dtd_u.dtu_argv, sizeof (ctf_id_t) * in ctf_dtd_delete()
626 LCTF_INFO_VLEN(fp, dtd->dtd_data.ctt_info)); in ctf_dtd_delete()
629 ctf_ref_dec(fp, dtd->dtd_u.dtu_arr.ctr_contents); in ctf_dtd_delete()
630 ctf_ref_dec(fp, dtd->dtd_u.dtu_arr.ctr_index); in ctf_dtd_delete()
633 ctf_ref_dec(fp, dtd->dtd_data.ctt_type); in ctf_dtd_delete()
639 ctf_ref_dec(fp, dtd->dtd_data.ctt_type); in ctf_dtd_delete()
643 if (dtd->dtd_name) { in ctf_dtd_delete()
644 len = strlen(dtd->dtd_name) + 1; in ctf_dtd_delete()
645 ctf_free(dtd->dtd_name, len); in ctf_dtd_delete()
649 ctf_list_delete(&fp->ctf_dtdefs, dtd); in ctf_dtd_delete()
650 ctf_free(dtd, sizeof (ctf_dtdef_t)); in ctf_dtd_delete()
657 ctf_dtdef_t *dtd; in ctf_dtd_lookup() local
662 for (dtd = fp->ctf_dthash[h]; dtd != NULL; dtd = dtd->dtd_hash) { in ctf_dtd_lookup()
663 if (dtd->dtd_type == type) in ctf_dtd_lookup()
667 return (dtd); in ctf_dtd_lookup()
681 ctf_dtdef_t *dtd, *ntd; in ctf_discard() local
689 for (dtd = ctf_list_prev(&fp->ctf_dtdefs); dtd != NULL; dtd = ntd) { in ctf_discard()
690 ntd = ctf_list_prev(dtd); in ctf_discard()
691 if (LCTF_TYPE_TO_INDEX(fp, dtd->dtd_type) <= fp->ctf_dtoldid) in ctf_discard()
694 ctf_dtd_delete(fp, dtd); in ctf_discard()
706 ctf_dtdef_t *dtd; in ctf_add_generic() local
719 if ((dtd = ctf_alloc(sizeof (ctf_dtdef_t))) == NULL) in ctf_add_generic()
723 ctf_free(dtd, sizeof (ctf_dtdef_t)); in ctf_add_generic()
730 bzero(dtd, sizeof (ctf_dtdef_t)); in ctf_add_generic()
731 dtd->dtd_name = s; in ctf_add_generic()
732 dtd->dtd_type = type; in ctf_add_generic()
737 ctf_dtd_insert(fp, dtd); in ctf_add_generic()
740 *rp = dtd; in ctf_add_generic()
767 ctf_dtdef_t *dtd; in ctf_add_encoded() local
773 if ((type = ctf_add_generic(fp, flag, name, &dtd)) == CTF_ERR) in ctf_add_encoded()
776 dtd->dtd_data.ctt_info = LCTF_TYPE_INFO(fp, kind, flag, 0); in ctf_add_encoded()
777 dtd->dtd_data.ctt_size = clp2(P2ROUNDUP(ep->cte_bits, NBBY) / NBBY); in ctf_add_encoded()
778 dtd->dtd_u.dtu_enc = *ep; in ctf_add_encoded()
786 ctf_dtdef_t *dtd; in ctf_add_reftype() local
792 if ((type = ctf_add_generic(fp, flag, NULL, &dtd)) == CTF_ERR) in ctf_add_reftype()
797 dtd->dtd_data.ctt_info = LCTF_TYPE_INFO(fp, kind, flag, 0); in ctf_add_reftype()
798 dtd->dtd_data.ctt_type = (uint_t)ref; in ctf_add_reftype()
826 ctf_dtdef_t *dtd; in ctf_add_array() local
843 if ((type = ctf_add_generic(fp, flag, NULL, &dtd)) == CTF_ERR) in ctf_add_array()
846 dtd->dtd_data.ctt_info = LCTF_TYPE_INFO(fp, CTF_K_ARRAY, flag, 0); in ctf_add_array()
847 dtd->dtd_data.ctt_size = 0; in ctf_add_array()
848 dtd->dtd_u.dtu_arr = *arp; in ctf_add_array()
859 ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, type); in ctf_set_array() local
864 if (dtd == NULL || in ctf_set_array()
865 LCTF_INFO_KIND(fp, dtd->dtd_data.ctt_info) != CTF_K_ARRAY) in ctf_set_array()
878 ctf_ref_dec(fp, dtd->dtd_u.dtu_arr.ctr_contents); in ctf_set_array()
879 ctf_ref_dec(fp, dtd->dtd_u.dtu_arr.ctr_index); in ctf_set_array()
881 dtd->dtd_u.dtu_arr = *arp; in ctf_set_array()
892 ctf_dtdef_t *dtd; in ctf_add_function() local
925 if ((type = ctf_add_generic(fp, flag, NULL, &dtd)) == CTF_ERR) { in ctf_add_function()
930 dtd->dtd_data.ctt_info = LCTF_TYPE_INFO(fp, CTF_K_FUNCTION, flag, vlen); in ctf_add_function()
931 dtd->dtd_data.ctt_type = ctc->ctc_return; in ctf_add_function()
940 dtd->dtd_u.dtu_argv = vdat; in ctf_add_function()
950 ctf_dtdef_t *dtd; in ctf_add_struct() local
957 dtd = ctf_dtd_lookup(fp, type = hep->h_type); in ctf_add_struct()
958 else if ((type = ctf_add_generic(fp, flag, name, &dtd)) == CTF_ERR) in ctf_add_struct()
961 dtd->dtd_data.ctt_info = LCTF_TYPE_INFO(fp, CTF_K_STRUCT, flag, 0); in ctf_add_struct()
962 dtd->dtd_data.ctt_size = 0; in ctf_add_struct()
972 ctf_dtdef_t *dtd; in ctf_add_union() local
979 dtd = ctf_dtd_lookup(fp, type = hep->h_type); in ctf_add_union()
980 else if ((type = ctf_add_generic(fp, flag, name, &dtd)) == CTF_ERR) in ctf_add_union()
983 dtd->dtd_data.ctt_info = LCTF_TYPE_INFO(fp, CTF_K_UNION, flag, 0); in ctf_add_union()
984 dtd->dtd_data.ctt_size = 0; in ctf_add_union()
994 ctf_dtdef_t *dtd; in ctf_add_enum() local
1001 dtd = ctf_dtd_lookup(fp, type = hep->h_type); in ctf_add_enum()
1002 else if ((type = ctf_add_generic(fp, flag, name, &dtd)) == CTF_ERR) in ctf_add_enum()
1005 dtd->dtd_data.ctt_info = LCTF_TYPE_INFO(fp, CTF_K_ENUM, flag, 0); in ctf_add_enum()
1006 dtd->dtd_data.ctt_size = fp->ctf_dmodel->ctd_int; in ctf_add_enum()
1016 ctf_dtdef_t *dtd; in ctf_add_forward() local
1041 if ((type = ctf_add_generic(fp, flag, name, &dtd)) == CTF_ERR) in ctf_add_forward()
1044 dtd->dtd_data.ctt_info = LCTF_TYPE_INFO(fp, CTF_K_FORWARD, flag, 0); in ctf_add_forward()
1045 dtd->dtd_data.ctt_type = kind; in ctf_add_forward()
1053 ctf_dtdef_t *dtd; in ctf_add_typedef() local
1062 if ((type = ctf_add_generic(fp, flag, name, &dtd)) == CTF_ERR) in ctf_add_typedef()
1065 dtd->dtd_data.ctt_info = LCTF_TYPE_INFO(fp, CTF_K_TYPEDEF, flag, 0); in ctf_add_typedef()
1066 dtd->dtd_data.ctt_type = ref; in ctf_add_typedef()
1093 ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, enid); in ctf_add_enumerator() local
1105 if (dtd == NULL) in ctf_add_enumerator()
1108 kind = LCTF_INFO_KIND(fp, dtd->dtd_data.ctt_info); in ctf_add_enumerator()
1109 root = LCTF_INFO_ROOT(fp, dtd->dtd_data.ctt_info); in ctf_add_enumerator()
1110 vlen = LCTF_INFO_VLEN(fp, dtd->dtd_data.ctt_info); in ctf_add_enumerator()
1118 for (dmd = ctf_list_next(&dtd->dtd_u.dtu_members); in ctf_add_enumerator()
1137 dtd->dtd_data.ctt_info = LCTF_TYPE_INFO(fp, kind, root, vlen + 1); in ctf_add_enumerator()
1138 ctf_list_append(&dtd->dtd_u.dtu_members, dmd); in ctf_add_enumerator()
1149 ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, souid); in ctf_add_member() local
1159 if (dtd == NULL) in ctf_add_member()
1162 kind = LCTF_INFO_KIND(fp, dtd->dtd_data.ctt_info); in ctf_add_member()
1163 root = LCTF_INFO_ROOT(fp, dtd->dtd_data.ctt_info); in ctf_add_member()
1164 vlen = LCTF_INFO_VLEN(fp, dtd->dtd_data.ctt_info); in ctf_add_member()
1173 for (dmd = ctf_list_next(&dtd->dtd_u.dtu_members); in ctf_add_member()
1198 ctf_dmdef_t *lmd = ctf_list_prev(&dtd->dtd_u.dtu_members); in ctf_add_member()
1225 ssize = ctf_get_ctt_size(fp, &dtd->dtd_data, NULL, NULL); in ctf_add_member()
1230 dtd->dtd_data.ctt_size = LCTF_LSIZE_SENT(fp); in ctf_add_member()
1231 dtd->dtd_data.ctt_lsizehi = CTF_SIZE_TO_LSIZE_HI(ssize); in ctf_add_member()
1232 dtd->dtd_data.ctt_lsizelo = CTF_SIZE_TO_LSIZE_LO(ssize); in ctf_add_member()
1234 dtd->dtd_data.ctt_size = ssize; in ctf_add_member()
1236 dtd->dtd_data.ctt_info = LCTF_TYPE_INFO(fp, kind, root, vlen + 1); in ctf_add_member()
1237 ctf_list_append(&dtd->dtd_u.dtu_members, dmd); in ctf_add_member()
1259 ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, type); in ctf_delete_type() local
1274 if (dtd == NULL) in ctf_delete_type()
1277 if (dtd->dtd_ref != 0 || fp->ctf_refcnt > 1) in ctf_delete_type()
1280 ctf_dtd_delete(fp, dtd); in ctf_delete_type()
1413 ctf_dtdef_t *dtd; in ctf_add_type() local
1485 for (dtd = ctf_list_prev(&dst_fp->ctf_dtdefs); dtd != NULL && in ctf_add_type()
1486 LCTF_TYPE_TO_INDEX(dst_fp, dtd->dtd_type) > in ctf_add_type()
1487 dst_fp->ctf_dtoldid; dtd = ctf_list_prev(dtd)) { in ctf_add_type()
1488 if (LCTF_INFO_KIND(dst_fp, dtd->dtd_data.ctt_info) != in ctf_add_type()
1489 kind || dtd->dtd_name == NULL || in ctf_add_type()
1490 strcmp(dtd->dtd_name, name) != 0) in ctf_add_type()
1496 if (bcmp(&src_en, &dtd->dtd_u.dtu_enc, in ctf_add_type()
1500 return (dtd->dtd_type); in ctf_add_type()
1629 dst_type = ctf_add_generic(dst_fp, flag, name, &dtd); in ctf_add_type()
1634 dst.ctb_dtd = dtd; in ctf_add_type()
1641 dtd->dtd_data.ctt_size = LCTF_LSIZE_SENT(dst_fp); in ctf_add_type()
1642 dtd->dtd_data.ctt_lsizehi = CTF_SIZE_TO_LSIZE_HI(size); in ctf_add_type()
1643 dtd->dtd_data.ctt_lsizelo = CTF_SIZE_TO_LSIZE_LO(size); in ctf_add_type()
1645 dtd->dtd_data.ctt_size = size; in ctf_add_type()
1647 dtd->dtd_data.ctt_info = LCTF_TYPE_INFO(dst_fp, kind, flag, in ctf_add_type()
1655 for (dmd = ctf_list_next(&dtd->dtd_u.dtu_members); in ctf_add_type()
1669 for (dmd = ctf_list_next(&dtd->dtd_u.dtu_members); in ctf_add_type()