Lines Matching defs:dtd

91 ctf_copy_smembers(ctf_dtdef_t *dtd, uint_t soff, uchar_t *t)
93 ctf_dmdef_t *dmd = ctf_list_next(&dtd->dtd_u.dtu_members);
114 ctf_copy_lmembers(ctf_dtdef_t *dtd, uint_t soff, uchar_t *t)
116 ctf_dmdef_t *dmd = ctf_list_next(&dtd->dtd_u.dtu_members);
139 ctf_copy_emembers(ctf_dtdef_t *dtd, uint_t soff, uchar_t *t)
141 ctf_dmdef_t *dmd = ctf_list_next(&dtd->dtd_u.dtu_members);
156 ctf_copy_membnames(ctf_dtdef_t *dtd, uchar_t *s)
158 ctf_dmdef_t *dmd = ctf_list_next(&dtd->dtd_u.dtu_members);
192 ctf_dtdef_t *dtd;
223 for (size = 0, dtd = ctf_list_next(&fp->ctf_dtdefs);
224 dtd != NULL; dtd = ctf_list_next(dtd)) {
226 uint_t kind = CTF_INFO_KIND(dtd->dtd_data.ctt_info);
227 uint_t vlen = CTF_INFO_VLEN(dtd->dtd_data.ctt_info);
229 if (dtd->dtd_data.ctt_size != CTF_LSIZE_SENT)
247 if (dtd->dtd_data.ctt_size < CTF_LSTRUCT_THRESH)
281 for (dtd = ctf_list_next(&fp->ctf_dtdefs);
282 dtd != NULL; dtd = ctf_list_next(dtd)) {
284 uint_t kind = CTF_INFO_KIND(dtd->dtd_data.ctt_info);
285 uint_t vlen = CTF_INFO_VLEN(dtd->dtd_data.ctt_info);
291 if (dtd->dtd_name != NULL) {
292 dtd->dtd_data.ctt_name = (uint_t)(s - s0);
293 len = strlen(dtd->dtd_name) + 1;
294 bcopy(dtd->dtd_name, s, len);
297 dtd->dtd_data.ctt_name = 0;
299 if (dtd->dtd_data.ctt_size != CTF_LSIZE_SENT)
304 bcopy(&dtd->dtd_data, t, len);
312 dtd->dtd_u.dtu_enc.cte_format,
313 dtd->dtd_u.dtu_enc.cte_offset,
314 dtd->dtd_u.dtu_enc.cte_bits);
317 dtd->dtd_u.dtu_enc.cte_format,
318 dtd->dtd_u.dtu_enc.cte_offset,
319 dtd->dtd_u.dtu_enc.cte_bits);
327 dtd->dtd_u.dtu_arr.ctr_contents;
329 dtd->dtd_u.dtu_arr.ctr_index;
330 cta.cta_nelems = dtd->dtd_u.dtu_arr.ctr_nelems;
340 *argv++ = (ushort_t)dtd->dtd_u.dtu_argv[argc];
351 if (dtd->dtd_data.ctt_size < CTF_LSTRUCT_THRESH)
352 t = ctf_copy_smembers(dtd, (uint_t)(s - s0), t);
354 t = ctf_copy_lmembers(dtd, (uint_t)(s - s0), t);
355 s = ctf_copy_membnames(dtd, s);
359 t = ctf_copy_emembers(dtd, (uint_t)(s - s0), t);
360 s = ctf_copy_membnames(dtd, s);
422 ctf_dtd_insert(ctf_file_t *fp, ctf_dtdef_t *dtd)
424 ulong_t h = dtd->dtd_type & (fp->ctf_dthashlen - 1);
426 dtd->dtd_hash = fp->ctf_dthash[h];
427 fp->ctf_dthash[h] = dtd;
428 ctf_list_append(&fp->ctf_dtdefs, dtd);
432 ctf_dtd_delete(ctf_file_t *fp, ctf_dtdef_t *dtd)
434 ulong_t h = dtd->dtd_type & (fp->ctf_dthashlen - 1);
440 if (p != dtd)
449 switch (CTF_INFO_KIND(dtd->dtd_data.ctt_info)) {
453 for (dmd = ctf_list_next(&dtd->dtd_u.dtu_members);
465 ctf_free(dtd->dtd_u.dtu_argv, sizeof (ctf_id_t) *
466 CTF_INFO_VLEN(dtd->dtd_data.ctt_info));
470 if (dtd->dtd_name) {
471 len = strlen(dtd->dtd_name) + 1;
472 ctf_free(dtd->dtd_name, len);
476 ctf_list_delete(&fp->ctf_dtdefs, dtd);
477 ctf_free(dtd, sizeof (ctf_dtdef_t));
484 ctf_dtdef_t *dtd;
489 for (dtd = fp->ctf_dthash[h]; dtd != NULL; dtd = dtd->dtd_hash) {
490 if (dtd->dtd_type == type)
494 return (dtd);
506 ctf_dtdef_t *dtd, *ntd;
514 for (dtd = ctf_list_next(&fp->ctf_dtdefs); dtd != NULL; dtd = ntd) {
515 if (dtd->dtd_type <= fp->ctf_dtoldid)
518 ntd = ctf_list_next(dtd);
519 ctf_dtd_delete(fp, dtd);
531 ctf_dtdef_t *dtd;
544 if ((dtd = ctf_alloc(sizeof (ctf_dtdef_t))) == NULL)
548 ctf_free(dtd, sizeof (ctf_dtdef_t));
555 bzero(dtd, sizeof (ctf_dtdef_t));
556 dtd->dtd_name = s;
557 dtd->dtd_type = type;
562 ctf_dtd_insert(fp, dtd);
565 *rp = dtd;
592 ctf_dtdef_t *dtd;
598 if ((type = ctf_add_generic(fp, flag, name, &dtd)) == CTF_ERR)
601 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(kind, flag, 0);
602 dtd->dtd_data.ctt_size = VBDTCAST(ushort_t)clp2(P2ROUNDUP(ep->cte_bits, NBBY) / NBBY);
603 dtd->dtd_u.dtu_enc = *ep;
611 ctf_dtdef_t *dtd;
617 if ((type = ctf_add_generic(fp, flag, NULL, &dtd)) == CTF_ERR)
620 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(kind, flag, 0);
621 dtd->dtd_data.ctt_type = (ushort_t)ref;
649 ctf_dtdef_t *dtd;
655 if ((type = ctf_add_generic(fp, flag, NULL, &dtd)) == CTF_ERR)
658 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(CTF_K_ARRAY, flag, 0);
659 dtd->dtd_data.ctt_size = 0;
660 dtd->dtd_u.dtu_arr = *arp;
668 ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, type);
673 if (dtd == NULL || CTF_INFO_KIND(dtd->dtd_data.ctt_info) != CTF_K_ARRAY)
677 dtd->dtd_u.dtu_arr = *arp;
686 ctf_dtdef_t *dtd;
705 if ((type = ctf_add_generic(fp, flag, NULL, &dtd)) == CTF_ERR) {
710 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(CTF_K_FUNCTION, flag, vlen);
711 dtd->dtd_data.ctt_type = (ushort_t)ctc->ctc_return;
716 dtd->dtd_u.dtu_argv = vdat;
726 ctf_dtdef_t *dtd;
733 dtd = ctf_dtd_lookup(fp, type = hep->h_type);
734 else if ((type = ctf_add_generic(fp, flag, name, &dtd)) == CTF_ERR)
737 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(CTF_K_STRUCT, flag, 0);
738 dtd->dtd_data.ctt_size = 0;
748 ctf_dtdef_t *dtd;
755 dtd = ctf_dtd_lookup(fp, type = hep->h_type);
756 else if ((type = ctf_add_generic(fp, flag, name, &dtd)) == CTF_ERR)
759 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(CTF_K_UNION, flag, 0);
760 dtd->dtd_data.ctt_size = 0;
770 ctf_dtdef_t *dtd;
777 dtd = ctf_dtd_lookup(fp, type = hep->h_type);
778 else if ((type = ctf_add_generic(fp, flag, name, &dtd)) == CTF_ERR)
781 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(CTF_K_ENUM, flag, 0);
782 dtd->dtd_data.ctt_size = VBDTCAST(ushort_t)fp->ctf_dmodel->ctd_int;
792 ctf_dtdef_t *dtd;
817 if ((type = ctf_add_generic(fp, flag, name, &dtd)) == CTF_ERR)
820 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(CTF_K_FORWARD, flag, 0);
821 dtd->dtd_data.ctt_type = kind;
829 ctf_dtdef_t *dtd;
835 if ((type = ctf_add_generic(fp, flag, name, &dtd)) == CTF_ERR)
838 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(CTF_K_TYPEDEF, flag, 0);
839 dtd->dtd_data.ctt_type = (ushort_t)ref;
865 ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, enid);
877 if (dtd == NULL)
880 kind = CTF_INFO_KIND(dtd->dtd_data.ctt_info);
881 root = CTF_INFO_ISROOT(dtd->dtd_data.ctt_info);
882 vlen = CTF_INFO_VLEN(dtd->dtd_data.ctt_info);
890 for (dmd = ctf_list_next(&dtd->dtd_u.dtu_members);
909 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(kind, root, vlen + 1);
910 ctf_list_append(&dtd->dtd_u.dtu_members, dmd);
921 ctf_dtdef_t *dtd = ctf_dtd_lookup(fp, souid);
931 if (dtd == NULL)
934 kind = CTF_INFO_KIND(dtd->dtd_data.ctt_info);
935 root = CTF_INFO_ISROOT(dtd->dtd_data.ctt_info);
936 vlen = CTF_INFO_VLEN(dtd->dtd_data.ctt_info);
945 for (dmd = ctf_list_next(&dtd->dtd_u.dtu_members);
970 ctf_dmdef_t *lmd = ctf_list_prev(&dtd->dtd_u.dtu_members);
997 ssize = ctf_get_ctt_size(fp, &dtd->dtd_data, NULL, NULL);
1002 dtd->dtd_data.ctt_size = CTF_LSIZE_SENT;
1003 dtd->dtd_data.ctt_lsizehi = CTF_SIZE_TO_LSIZE_HI(ssize);
1004 dtd->dtd_data.ctt_lsizelo = CTF_SIZE_TO_LSIZE_LO(ssize);
1006 dtd->dtd_data.ctt_size = (ushort_t)ssize;
1008 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(kind, root, vlen + 1);
1009 ctf_list_append(&dtd->dtd_u.dtu_members, dmd);
1102 ctf_dtdef_t *dtd;
1165 for (dtd = ctf_list_prev(&dst_fp->ctf_dtdefs); dtd != NULL &&
1166 dtd->dtd_type > dst_fp->ctf_dtoldid;
1167 dtd = ctf_list_prev(dtd)) {
1168 if (CTF_INFO_KIND(dtd->dtd_data.ctt_info) == kind &&
1169 dtd->dtd_name != NULL &&
1170 strcmp(dtd->dtd_name, name) == 0)
1171 return (dtd->dtd_type);
1286 dst_type = ctf_add_generic(dst_fp, flag, name, &dtd);
1291 dst.ctb_dtd = dtd;
1297 dtd->dtd_data.ctt_size = CTF_LSIZE_SENT;
1298 dtd->dtd_data.ctt_lsizehi = CTF_SIZE_TO_LSIZE_HI(size);
1299 dtd->dtd_data.ctt_lsizelo = CTF_SIZE_TO_LSIZE_LO(size);
1301 dtd->dtd_data.ctt_size = (ushort_t)size;
1303 dtd->dtd_data.ctt_info = CTF_TYPE_INFO(kind, flag, vlen);
1310 for (dmd = ctf_list_next(&dtd->dtd_u.dtu_members);