Lines Matching defs:dtd

132 ctf_copy_smembers(ctf_dtdef_t *dtd, uint_t soff, uchar_t *t)
134 ctf_dmdef_t *dmd = ctf_list_next(&dtd->dtd_u.dtu_members);
155 ctf_copy_lmembers(ctf_dtdef_t *dtd, uint_t soff, uchar_t *t)
157 ctf_dmdef_t *dmd = ctf_list_next(&dtd->dtd_u.dtu_members);
180 ctf_copy_emembers(ctf_dtdef_t *dtd, uint_t soff, uchar_t *t)
182 ctf_dmdef_t *dmd = ctf_list_next(&dtd->dtd_u.dtu_members);
197 ctf_copy_membnames(ctf_dtdef_t *dtd, uchar_t *s)
199 ctf_dmdef_t *dmd = ctf_list_next(&dtd->dtd_u.dtu_members);
228 ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, tid);
230 if (dtd == NULL)
236 dtd->dtd_ref++;
246 ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, tid);
248 if (dtd == NULL)
254 ASSERT(dtd->dtd_ref >= 1);
255 dtd->dtd_ref--;
274 * is still writeable. Furthermore, the reference counts that are on the dtd's
282 ctf_dtdef_t *dtd;
341 for (size = 0, dtd = ctf_list_next(&fp->ctf_dtdefs);
342 dtd != NULL; dtd = ctf_list_next(dtd)) {
344 uint_t kind = CTF_INFO_KIND(dtd->dtd_data.ctt_info);
345 uint_t vlen = CTF_INFO_VLEN(dtd->dtd_data.ctt_info);
347 if (dtd->dtd_data.ctt_size != CTF_LSIZE_SENT)
365 if (dtd->dtd_data.ctt_size < CTF_LSTRUCT_THRESH)
495 for (dtd = ctf_list_next(&fp->ctf_dtdefs);
496 dtd != NULL; dtd = ctf_list_next(dtd)) {
498 uint_t kind = CTF_INFO_KIND(dtd->dtd_data.ctt_info);
499 uint_t vlen = CTF_INFO_VLEN(dtd->dtd_data.ctt_info);
505 if (dtd->dtd_name != NULL) {
506 dtd->dtd_data.ctt_name = (uint_t)(s - s0);
507 len = strlen(dtd->dtd_name) + 1;
509 bcopy(dtd->dtd_name, s, len);
512 dtd->dtd_data.ctt_name = 0;
514 if (dtd->dtd_data.ctt_size != CTF_LSIZE_SENT)
519 bcopy(&dtd->dtd_data, t, len);
527 dtd->dtd_u.dtu_enc.cte_format,
528 dtd->dtd_u.dtu_enc.cte_offset,
529 dtd->dtd_u.dtu_enc.cte_bits);
532 dtd->dtd_u.dtu_enc.cte_format,
533 dtd->dtd_u.dtu_enc.cte_offset,
534 dtd->dtd_u.dtu_enc.cte_bits);
542 dtd->dtd_u.dtu_arr.ctr_contents;
544 dtd->dtd_u.dtu_arr.ctr_index;
545 cta.cta_nelems = dtd->dtd_u.dtu_arr.ctr_nelems;
555 *argv++ = (ushort_t)dtd->dtd_u.dtu_argv[argc];
566 if (dtd->dtd_data.ctt_size < CTF_LSTRUCT_THRESH)
567 t = ctf_copy_smembers(dtd, (uint_t)(s - s0), t);
569 t = ctf_copy_lmembers(dtd, (uint_t)(s - s0), t);
570 s = ctf_copy_membnames(dtd, s);
574 t = ctf_copy_emembers(dtd, (uint_t)(s - s0), t);
575 s = ctf_copy_membnames(dtd, s);
718 ctf_dtd_insert(ctf_file_t *fp, ctf_dtdef_t *dtd)
720 ulong_t h = dtd->dtd_type & (fp->ctf_dthashlen - 1);
722 dtd->dtd_hash = fp->ctf_dthash[h];
723 fp->ctf_dthash[h] = dtd;
724 ctf_list_append(&fp->ctf_dtdefs, dtd);
728 ctf_dtd_delete(ctf_file_t *fp, ctf_dtdef_t *dtd)
730 ulong_t h = dtd->dtd_type & (fp->ctf_dthashlen - 1);
737 if (p != dtd)
746 kind = CTF_INFO_KIND(dtd->dtd_data.ctt_info);
751 for (dmd = ctf_list_next(&dtd->dtd_u.dtu_members);
765 ctf_ref_dec(fp, dtd->dtd_data.ctt_type);
766 for (i = 0; i < CTF_INFO_VLEN(dtd->dtd_data.ctt_info); i++)
767 if (dtd->dtd_u.dtu_argv[i] != 0)
768 ctf_ref_dec(fp, dtd->dtd_u.dtu_argv[i]);
769 ctf_free(dtd->dtd_u.dtu_argv, sizeof (ctf_id_t) *
770 CTF_INFO_VLEN(dtd->dtd_data.ctt_info));
773 ctf_ref_dec(fp, dtd->dtd_u.dtu_arr.ctr_contents);
774 ctf_ref_dec(fp, dtd->dtd_u.dtu_arr.ctr_index);
777 ctf_ref_dec(fp, dtd->dtd_data.ctt_type);
783 ctf_ref_dec(fp, dtd->dtd_data.ctt_type);
787 if (dtd->dtd_name) {
788 len = strlen(dtd->dtd_name) + 1;
789 ctf_free(dtd->dtd_name, len);
793 ctf_list_delete(&fp->ctf_dtdefs, dtd);
794 ctf_free(dtd, sizeof (ctf_dtdef_t));
801 ctf_dtdef_t *dtd;
806 for (dtd = fp->ctf_dthash[h]; dtd != NULL; dtd = dtd->dtd_hash) {
807 if (dtd->dtd_type == type)
811 return (dtd);
920 ctf_dtdef_t *dtd, *ntd;
928 for (dtd = ctf_list_prev(&fp->ctf_dtdefs); dtd != NULL; dtd = ntd) {
929 ntd = ctf_list_prev(dtd);
930 if (dtd->dtd_type <= fp->ctf_dtoldid)
933 ctf_dtd_delete(fp, dtd);
945 ctf_dtdef_t *dtd;
958 if ((dtd = ctf_alloc(sizeof (ctf_dtdef_t))) == NULL)
962 ctf_free(dtd, sizeof (ctf_dtdef_t));
969 bzero(dtd, sizeof (ctf_dtdef_t));
970 dtd->dtd_name = s;
971 dtd->dtd_type = type;
976 ctf_dtd_insert(fp, dtd);
979 *rp = dtd;
987 ctf_dtdef_t *dtd;
993 if ((type = ctf_add_generic(fp, flag, name, &dtd)) == CTF_ERR)
996 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(kind, flag, 0);
1002 dtd->dtd_data.ctt_size = ep->cte_bits / NBBY;
1004 dtd->dtd_data.ctt_size++;
1005 dtd->dtd_u.dtu_enc = *ep;
1014 ctf_dtdef_t *dtd;
1020 if ((type = ctf_add_generic(fp, flag, name, &dtd)) == CTF_ERR)
1025 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(kind, flag, 0);
1026 dtd->dtd_data.ctt_type = (ushort_t)ref;
1054 ctf_dtdef_t *dtd;
1076 if ((type = ctf_add_generic(fp, flag, NULL, &dtd)) == CTF_ERR)
1079 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(CTF_K_ARRAY, flag, 0);
1080 dtd->dtd_data.ctt_size = 0;
1081 dtd->dtd_u.dtu_arr = *arp;
1092 ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, type);
1097 if (dtd == NULL || CTF_INFO_KIND(dtd->dtd_data.ctt_info) != CTF_K_ARRAY)
1110 ctf_ref_dec(fp, dtd->dtd_u.dtu_arr.ctr_contents);
1111 ctf_ref_dec(fp, dtd->dtd_u.dtu_arr.ctr_index);
1113 dtd->dtd_u.dtu_arr = *arp;
1124 ctf_dtdef_t *dtd;
1157 if ((type = ctf_add_generic(fp, flag, NULL, &dtd)) == CTF_ERR) {
1162 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(CTF_K_FUNCTION, flag, vlen);
1163 dtd->dtd_data.ctt_type = (ushort_t)ctc->ctc_return;
1172 dtd->dtd_u.dtu_argv = vdat;
1182 ctf_dtdef_t *dtd = NULL;
1190 dtd = ctf_dtd_lookup(fp, type);
1191 if (CTF_INFO_KIND(dtd->dtd_data.ctt_info) != CTF_K_FORWARD)
1192 dtd = NULL;
1195 if (dtd == NULL) {
1196 type = ctf_add_generic(fp, flag, name, &dtd);
1202 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(CTF_K_STRUCT, flag, 0);
1203 dtd->dtd_data.ctt_size = 0;
1218 ctf_dtdef_t *dtd = NULL;
1226 dtd = ctf_dtd_lookup(fp, type);
1227 if (CTF_INFO_KIND(dtd->dtd_data.ctt_info) != CTF_K_FORWARD)
1228 dtd = NULL;
1231 if (dtd == NULL) {
1232 type = ctf_add_generic(fp, flag, name, &dtd);
1238 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(CTF_K_UNION, flag, 0);
1239 dtd->dtd_data.ctt_size = 0;
1254 ctf_dtdef_t *dtd = NULL;
1262 dtd = ctf_dtd_lookup(fp, type);
1263 if (CTF_INFO_KIND(dtd->dtd_data.ctt_info) != CTF_K_FORWARD)
1264 dtd = NULL;
1267 if (dtd == NULL) {
1268 type = ctf_add_generic(fp, flag, name, &dtd);
1274 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(CTF_K_ENUM, flag, 0);
1275 dtd->dtd_data.ctt_size = fp->ctf_dmodel->ctd_int;
1290 ctf_dtdef_t *dtd;
1315 if ((type = ctf_add_generic(fp, flag, name, &dtd)) == CTF_ERR)
1318 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(CTF_K_FORWARD, flag, 0);
1319 dtd->dtd_data.ctt_type = kind;
1327 ctf_dtdef_t *dtd;
1336 if ((type = ctf_add_generic(fp, flag, name, &dtd)) == CTF_ERR)
1339 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(CTF_K_TYPEDEF, flag, 0);
1340 dtd->dtd_data.ctt_type = (ushort_t)ref;
1367 ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, enid);
1379 if (dtd == NULL)
1382 kind = CTF_INFO_KIND(dtd->dtd_data.ctt_info);
1383 root = CTF_INFO_ISROOT(dtd->dtd_data.ctt_info);
1384 vlen = CTF_INFO_VLEN(dtd->dtd_data.ctt_info);
1392 for (dmd = ctf_list_next(&dtd->dtd_u.dtu_members);
1413 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(kind, root, vlen + 1);
1414 ctf_list_append(&dtd->dtd_u.dtu_members, dmd);
1426 ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, souid);
1438 if (dtd == NULL)
1441 kind = CTF_INFO_KIND(dtd->dtd_data.ctt_info);
1442 root = CTF_INFO_ISROOT(dtd->dtd_data.ctt_info);
1443 vlen = CTF_INFO_VLEN(dtd->dtd_data.ctt_info);
1457 for (dmd = ctf_list_next(&dtd->dtd_u.dtu_members);
1516 ctf_dmdef_t *lmd = ctf_list_prev(&dtd->dtd_u.dtu_members);
1550 ssize = ctf_get_ctt_size(fp, &dtd->dtd_data, NULL, NULL);
1555 dtd->dtd_data.ctt_size = CTF_LSIZE_SENT;
1556 dtd->dtd_data.ctt_lsizehi = CTF_SIZE_TO_LSIZE_HI(ssize);
1557 dtd->dtd_data.ctt_lsizelo = CTF_SIZE_TO_LSIZE_LO(ssize);
1559 dtd->dtd_data.ctt_size = (ushort_t)ssize;
1561 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(kind, root, vlen + 1);
1562 ctf_list_append(&dtd->dtd_u.dtu_members, dmd);
1584 ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, type);
1599 if (dtd == NULL)
1602 if (dtd->dtd_ref != 0 || fp->ctf_refcnt > 1)
1605 ctf_dtd_delete(fp, dtd);
1694 ctf_dtdef_t *dtd;
1760 for (dtd = ctf_list_prev(&dst_fp->ctf_dtdefs); dtd != NULL &&
1761 dtd->dtd_type > dst_fp->ctf_dtoldid;
1762 dtd = ctf_list_prev(dtd)) {
1763 if (CTF_INFO_KIND(dtd->dtd_data.ctt_info) == kind &&
1764 dtd->dtd_name != NULL &&
1765 strcmp(dtd->dtd_name, name) == 0)
1766 return (dtd->dtd_type);
1881 dst_type = ctf_add_generic(dst_fp, flag, name, &dtd);
1886 dst.ctb_dtd = dtd;
1892 dtd->dtd_data.ctt_size = CTF_LSIZE_SENT;
1893 dtd->dtd_data.ctt_lsizehi = CTF_SIZE_TO_LSIZE_HI(size);
1894 dtd->dtd_data.ctt_lsizelo = CTF_SIZE_TO_LSIZE_LO(size);
1896 dtd->dtd_data.ctt_size = (ushort_t)size;
1898 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(kind, flag, vlen);
1905 for (dmd = ctf_list_next(&dtd->dtd_u.dtu_members);
1919 for (dmd = ctf_list_next(&dtd->dtd_u.dtu_members);
2146 ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, id);
2153 if (dtd == NULL)
2156 kind = CTF_INFO_KIND(dtd->dtd_data.ctt_info);
2161 if ((oldsz = dtd->dtd_data.ctt_size) == CTF_LSIZE_SENT)
2162 oldsz = CTF_TYPE_LSIZE(&dtd->dtd_data);
2168 dtd->dtd_data.ctt_size = CTF_LSIZE_SENT;
2169 dtd->dtd_data.ctt_lsizehi = CTF_SIZE_TO_LSIZE_HI(newsz);
2170 dtd->dtd_data.ctt_lsizelo = CTF_SIZE_TO_LSIZE_LO(newsz);
2172 dtd->dtd_data.ctt_size = (ushort_t)newsz;
2182 ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, id);
2188 if (dtd == NULL)
2191 kind = CTF_INFO_KIND(dtd->dtd_data.ctt_info);
2192 vlen = CTF_INFO_VLEN(dtd->dtd_data.ctt_info);
2194 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(kind, vis, vlen);