Lines Matching defs:dtd

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