Lines Matching refs:idp

60 dt_idcook_sign(dt_node_t *dnp, dt_ident_t *idp,  in dt_idcook_sign()  argument
63 dt_idsig_t *isp = idp->di_data; in dt_idcook_sign()
69 iskey = idp->di_kind == DT_IDENT_ARRAY || idp->di_kind == DT_IDENT_AGG; in dt_idcook_sign()
84 "passed, %s%d expected\n", prefix, idp->di_name, suffix, in dt_idcook_sign()
100 prefix, idp->di_name, suffix, in dt_idcook_sign()
109 dt_node_type_assign(dnp, idp->di_ctfp, idp->di_type, B_FALSE); in dt_idcook_sign()
118 dt_idcook_assc(dt_node_t *dnp, dt_ident_t *idp, int argc, dt_node_t *args) in dt_idcook_assc() argument
120 if (idp->di_data == NULL) { in dt_idcook_assc()
121 dt_idsig_t *isp = idp->di_data = malloc(sizeof (dt_idsig_t)); in dt_idcook_assc()
136 idp->di_data = NULL; in dt_idcook_assc()
148 if (!(idp->di_flags & DT_IDFLG_DECL)) { in dt_idcook_assc()
149 idp->di_ctfp = DT_DYN_CTFP(yypcb->pcb_hdl); in dt_idcook_assc()
150 idp->di_type = DT_DYN_TYPE(yypcb->pcb_hdl); in dt_idcook_assc()
158 dt_idkind_name(idp->di_kind), i + 1); in dt_idcook_assc()
168 dt_node_type_assign(dnp, idp->di_ctfp, idp->di_type, B_FALSE); in dt_idcook_assc()
171 dt_idcook_sign(dnp, idp, argc, args, in dt_idcook_assc()
172 idp->di_kind == DT_IDENT_AGG ? "@" : "", "[ ]"); in dt_idcook_assc()
182 dt_idcook_func(dt_node_t *dnp, dt_ident_t *idp, int argc, dt_node_t *args) in dt_idcook_func() argument
184 if (idp->di_data == NULL) { in dt_idcook_func()
191 assert(idp->di_iarg != NULL); in dt_idcook_func()
192 s = alloca(strlen(idp->di_iarg) + 1); in dt_idcook_func()
193 (void) strcpy(s, idp->di_iarg); in dt_idcook_func()
203 "for built-in function %s\n", idp->di_name); in dt_idcook_func()
223 if ((isp = idp->di_data = malloc(sizeof (dt_idsig_t))) == NULL) in dt_idcook_func()
234 idp->di_data = NULL; in dt_idcook_func()
241 " %s\n", idp->di_name, s, in dt_idcook_func()
245 if (idp->di_kind == DT_IDENT_AGGFUNC) { in dt_idcook_func()
246 idp->di_ctfp = DT_DYN_CTFP(dtp); in dt_idcook_func()
247 idp->di_type = DT_DYN_TYPE(dtp); in dt_idcook_func()
249 idp->di_ctfp = dtt.dtt_ctfp; in dt_idcook_func()
250 idp->di_type = dtt.dtt_type; in dt_idcook_func()
306 "%s arg#%d (%s): %s\n", idp->di_name, i + 1, in dt_idcook_func()
315 dt_idcook_sign(dnp, idp, argc, args, "", "( )"); in dt_idcook_func()
324 dt_idcook_args(dt_node_t *dnp, dt_ident_t *idp, int argc, dt_node_t *ap) in dt_idcook_args() argument
338 "passed, 1 expected\n", idp->di_name, argc, in dt_idcook_args()
345 idp->di_name, "integer constant", in dt_idcook_args()
351 "of a probe clause\n", idp->di_name); in dt_idcook_args()
357 "matches an unstable set of probes\n", idp->di_name, in dt_idcook_args()
364 n1, sizeof (n1)), idp->di_name); in dt_idcook_args()
379 "%s[%lld]\n", idp->di_name, (longlong_t)ap->dn_value); in dt_idcook_args()
384 "%s[%lld]\n", idp->di_name, (longlong_t)ap->dn_value); in dt_idcook_args()
389 dnp->dn_ident = dt_ident_create(idp->di_name, idp->di_kind, in dt_idcook_args()
390 idp->di_flags | DT_IDFLG_ORPHAN, idp->di_id, idp->di_attr, in dt_idcook_args()
391 idp->di_vers, idp->di_ops, idp->di_iarg, idp->di_gen); in dt_idcook_args()
409 dnp->dn_ident = dt_ident_create(idp->di_name, xidp->di_kind, in dt_idcook_args()
410 xidp->di_flags | DT_IDFLG_ORPHAN, idp->di_id, idp->di_attr, in dt_idcook_args()
411 idp->di_vers, idp->di_ops, idp->di_iarg, idp->di_gen); in dt_idcook_args()
433 "is not defined\n", idp->di_name, (longlong_t)ap->dn_value, in dt_idcook_args()
439 assert(dnp->dn_ident->di_id == idp->di_id); in dt_idcook_args()
443 dt_idcook_regs(dt_node_t *dnp, dt_ident_t *idp, int argc, dt_node_t *ap) in dt_idcook_regs() argument
451 "passed, 1 expected\n", idp->di_name, in dt_idcook_regs()
458 idp->di_name, "integer constant", in dt_idcook_regs()
464 (longlong_t)ap->dn_value, idp->di_name); in dt_idcook_regs()
469 idp->di_name, dtrace_errmsg(dtp, dtrace_errno(dtp))); in dt_idcook_regs()
472 idp->di_ctfp = dtt.dtt_ctfp; in dt_idcook_regs()
473 idp->di_type = dtt.dtt_type; in dt_idcook_regs()
475 dt_node_type_assign(dnp, idp->di_ctfp, idp->di_type, B_FALSE); in dt_idcook_regs()
480 dt_idcook_type(dt_node_t *dnp, dt_ident_t *idp, int argc, dt_node_t *args) in dt_idcook_type() argument
482 if (idp->di_type == CTF_ERR) { in dt_idcook_type()
486 if (dt_type_lookup(idp->di_iarg, &dtt) == -1) { in dt_idcook_type()
489 (const char *)idp->di_iarg, idp->di_name, in dt_idcook_type()
493 idp->di_ctfp = dtt.dtt_ctfp; in dt_idcook_type()
494 idp->di_type = dtt.dtt_type; in dt_idcook_type()
497 dt_node_type_assign(dnp, idp->di_ctfp, idp->di_type, B_FALSE); in dt_idcook_type()
502 dt_idcook_thaw(dt_node_t *dnp, dt_ident_t *idp, int argc, dt_node_t *args) in dt_idcook_thaw() argument
504 if (idp->di_ctfp != NULL && idp->di_type != CTF_ERR) in dt_idcook_thaw()
505 dt_node_type_assign(dnp, idp->di_ctfp, idp->di_type, B_FALSE); in dt_idcook_thaw()
509 dt_idcook_inline(dt_node_t *dnp, dt_ident_t *idp, int argc, dt_node_t *args) in dt_idcook_inline() argument
511 if (idp->di_kind == DT_IDENT_ARRAY) in dt_idcook_inline()
512 dt_idcook_assc(dnp, idp, argc, args); in dt_idcook_inline()
514 dt_idcook_thaw(dnp, idp, argc, args); in dt_idcook_inline()
518 dt_iddtor_sign(dt_ident_t *idp) in dt_iddtor_sign() argument
520 if (idp->di_data != NULL) in dt_iddtor_sign()
521 free(((dt_idsig_t *)idp->di_data)->dis_args); in dt_iddtor_sign()
522 free(idp->di_data); in dt_iddtor_sign()
526 dt_iddtor_free(dt_ident_t *idp) in dt_iddtor_free() argument
528 free(idp->di_data); in dt_iddtor_free()
532 dt_iddtor_inline(dt_ident_t *idp) in dt_iddtor_inline() argument
534 dt_idnode_t *inp = idp->di_iarg; in dt_iddtor_inline()
546 if (idp->di_kind == DT_IDENT_ARRAY) in dt_iddtor_inline()
547 dt_iddtor_sign(idp); in dt_iddtor_inline()
549 dt_iddtor_free(idp); in dt_iddtor_inline()
554 dt_iddtor_none(dt_ident_t *idp) in dt_iddtor_none() argument
560 dt_iddtor_probe(dt_ident_t *idp) in dt_iddtor_probe() argument
562 if (idp->di_data != NULL) in dt_iddtor_probe()
563 dt_probe_destroy(idp->di_data); in dt_iddtor_probe()
567 dt_idsize_type(dt_ident_t *idp) in dt_idsize_type() argument
569 return (ctf_type_size(idp->di_ctfp, idp->di_type)); in dt_idsize_type()
574 dt_idsize_none(dt_ident_t *idp) in dt_idsize_none() argument
630 const dt_ident_t *idp = dhp->dh_tmpl; in dt_idhash_populate() local
633 dt_dprintf("populating %s idhash from %p\n", dhp->dh_name, (void *)idp); in dt_idhash_populate()
635 for (; idp->di_name != NULL; idp++) { in dt_idhash_populate()
636 if (dt_idhash_insert(dhp, idp->di_name, in dt_idhash_populate()
637 idp->di_kind, idp->di_flags, idp->di_id, idp->di_attr, in dt_idhash_populate()
638 idp->di_vers, idp->di_ops ? idp->di_ops : &dt_idops_thaw, in dt_idhash_populate()
639 idp->di_iarg, 0) == NULL) in dt_idhash_populate()
682 dt_ident_t *idp, *next; in dt_idhash_destroy() local
686 for (idp = dhp->dh_hash[i]; idp != NULL; idp = next) { in dt_idhash_destroy()
687 next = idp->di_next; in dt_idhash_destroy()
688 idp->di_ops->di_dtor(idp); in dt_idhash_destroy()
693 for (idp = dhp->dh_hash[i]; idp != NULL; idp = next) { in dt_idhash_destroy()
694 next = idp->di_next; in dt_idhash_destroy()
695 free(idp->di_name); in dt_idhash_destroy()
696 free(idp); in dt_idhash_destroy()
707 dt_ident_t *idp; in dt_idhash_update() local
711 for (idp = dhp->dh_hash[i]; idp != NULL; idp = idp->di_next) { in dt_idhash_update()
716 if (idp->di_kind == DT_IDENT_ARRAY || in dt_idhash_update()
717 idp->di_kind == DT_IDENT_SCALAR || in dt_idhash_update()
718 idp->di_kind == DT_IDENT_AGG) in dt_idhash_update()
719 nextid = MAX(nextid, idp->di_id + 1); in dt_idhash_update()
731 dt_ident_t *idp; in dt_idhash_lookup() local
736 for (idp = dhp->dh_hash[h]; idp != NULL; idp = idp->di_next) { in dt_idhash_lookup()
737 if (strcmp(idp->di_name, name) == 0) in dt_idhash_lookup()
738 return (idp); in dt_idhash_lookup()
771 dt_ident_t *idp; in dt_idhash_insert() local
777 idp = dt_ident_create(name, kind, flags, id, in dt_idhash_insert()
780 if (idp == NULL) in dt_idhash_insert()
784 idp->di_next = dhp->dh_hash[h]; in dt_idhash_insert()
786 dhp->dh_hash[h] = idp; in dt_idhash_insert()
790 dhp->dh_defer(dhp, idp); in dt_idhash_insert()
792 return (idp); in dt_idhash_insert()
796 dt_idhash_xinsert(dt_idhash_t *dhp, dt_ident_t *idp) in dt_idhash_xinsert() argument
803 h = dt_strtab_hash(idp->di_name, NULL) % dhp->dh_hashsz; in dt_idhash_xinsert()
804 idp->di_next = dhp->dh_hash[h]; in dt_idhash_xinsert()
805 idp->di_flags &= ~DT_IDFLG_ORPHAN; in dt_idhash_xinsert()
807 dhp->dh_hash[h] = idp; in dt_idhash_xinsert()
811 dhp->dh_defer(dhp, idp); in dt_idhash_xinsert()
820 dt_ident_t *idp; in dt_idhash_delete() local
822 for (idp = dhp->dh_hash[h]; idp != NULL; idp = idp->di_next) { in dt_idhash_delete()
823 if (idp == key) in dt_idhash_delete()
826 pp = &idp->di_next; in dt_idhash_delete()
829 assert(idp == key); in dt_idhash_delete()
830 *pp = idp->di_next; in dt_idhash_delete()
835 if (!(idp->di_flags & DT_IDFLG_ORPHAN)) in dt_idhash_delete()
836 dt_ident_destroy(idp); in dt_idhash_delete()
855 dt_ident_t *idp; in dt_idhash_iter() local
866 for (idp = dhp->dh_hash[i]; idp != NULL; idp = idp->di_next) in dt_idhash_iter()
867 ids[j++] = idp; in dt_idhash_iter()
884 dt_ident_t *idp; in dt_idstack_lookup() local
888 if ((idp = dt_idhash_lookup(dhp, name)) != NULL) in dt_idstack_lookup()
889 return (idp); in dt_idstack_lookup()
913 dt_ident_t *idp; in dt_ident_create() local
917 (idp = malloc(sizeof (dt_ident_t))) == NULL) { in dt_ident_create()
922 idp->di_name = s; in dt_ident_create()
923 idp->di_kind = kind; in dt_ident_create()
924 idp->di_flags = flags; in dt_ident_create()
925 idp->di_id = id; in dt_ident_create()
926 idp->di_attr = attr; in dt_ident_create()
927 idp->di_vers = vers; in dt_ident_create()
928 idp->di_ops = ops; in dt_ident_create()
929 idp->di_iarg = iarg; in dt_ident_create()
930 idp->di_data = NULL; in dt_ident_create()
931 idp->di_ctfp = NULL; in dt_ident_create()
932 idp->di_type = CTF_ERR; in dt_ident_create()
933 idp->di_next = NULL; in dt_ident_create()
934 idp->di_gen = gen; in dt_ident_create()
935 idp->di_lineno = yylineno; in dt_ident_create()
937 return (idp); in dt_ident_create()
945 dt_ident_destroy(dt_ident_t *idp) in dt_ident_destroy() argument
947 idp->di_ops->di_dtor(idp); in dt_ident_destroy()
948 free(idp->di_name); in dt_ident_destroy()
949 free(idp); in dt_ident_destroy()
953 dt_ident_morph(dt_ident_t *idp, ushort_t kind, in dt_ident_morph() argument
956 idp->di_ops->di_dtor(idp); in dt_ident_morph()
957 idp->di_kind = kind; in dt_ident_morph()
958 idp->di_ops = ops; in dt_ident_morph()
959 idp->di_iarg = iarg; in dt_ident_morph()
960 idp->di_data = NULL; in dt_ident_morph()
964 dt_ident_cook(dt_node_t *dnp, dt_ident_t *idp, dt_node_t **pargp) in dt_ident_cook() argument
976 idp->di_ops->di_cook(dnp, idp, argc, args); in dt_ident_cook()
978 if (idp->di_flags & DT_IDFLG_USER) in dt_ident_cook()
981 return (dt_attr_min(attr, idp->di_attr)); in dt_ident_cook()
985 dt_ident_type_assign(dt_ident_t *idp, ctf_file_t *fp, ctf_id_t type) in dt_ident_type_assign() argument
987 idp->di_ctfp = fp; in dt_ident_type_assign()
988 idp->di_type = type; in dt_ident_type_assign()
992 dt_ident_resolve(dt_ident_t *idp) in dt_ident_resolve() argument
994 while (idp->di_flags & DT_IDFLG_INLINE) { in dt_ident_resolve()
995 const dt_node_t *dnp = ((dt_idnode_t *)idp->di_iarg)->din_root; in dt_ident_resolve()
1007 idp = dnp->dn_ident; in dt_ident_resolve()
1012 idp = dnp->dn_ident; in dt_ident_resolve()
1017 return (idp); in dt_ident_resolve()
1021 dt_ident_size(dt_ident_t *idp) in dt_ident_size() argument
1023 idp = dt_ident_resolve(idp); in dt_ident_size()
1024 return (idp->di_ops->di_size(idp)); in dt_ident_size()
1028 dt_ident_unref(const dt_ident_t *idp) in dt_ident_unref() argument
1030 return (idp->di_gen == yypcb->pcb_hdl->dt_gen && in dt_ident_unref()
1031 (idp->di_flags & (DT_IDFLG_REF|DT_IDFLG_MOD|DT_IDFLG_DECL)) == 0); in dt_ident_unref()