Lines Matching refs:idp

51 dt_idcook_sign(dt_node_t *dnp, dt_ident_t *idp,  in dt_idcook_sign()  argument
54 dt_idsig_t *isp = idp->di_data; in dt_idcook_sign()
60 iskey = idp->di_kind == DT_IDENT_ARRAY || idp->di_kind == DT_IDENT_AGG; in dt_idcook_sign()
75 "passed, %s%d expected\n", prefix, idp->di_name, suffix, in dt_idcook_sign()
91 prefix, idp->di_name, suffix, in dt_idcook_sign()
100 dt_node_type_assign(dnp, idp->di_ctfp, idp->di_type, B_FALSE); in dt_idcook_sign()
109 dt_idcook_assc(dt_node_t *dnp, dt_ident_t *idp, int argc, dt_node_t *args) in dt_idcook_assc() argument
111 if (idp->di_data == NULL) { in dt_idcook_assc()
112 dt_idsig_t *isp = idp->di_data = malloc(sizeof (dt_idsig_t)); in dt_idcook_assc()
127 idp->di_data = NULL; in dt_idcook_assc()
139 if (!(idp->di_flags & DT_IDFLG_DECL)) { in dt_idcook_assc()
140 idp->di_ctfp = DT_DYN_CTFP(yypcb->pcb_hdl); in dt_idcook_assc()
141 idp->di_type = DT_DYN_TYPE(yypcb->pcb_hdl); in dt_idcook_assc()
149 dt_idkind_name(idp->di_kind), i + 1); in dt_idcook_assc()
159 dt_node_type_assign(dnp, idp->di_ctfp, idp->di_type, B_FALSE); in dt_idcook_assc()
162 dt_idcook_sign(dnp, idp, argc, args, in dt_idcook_assc()
163 idp->di_kind == DT_IDENT_AGG ? "@" : "", "[ ]"); in dt_idcook_assc()
173 dt_idcook_func(dt_node_t *dnp, dt_ident_t *idp, int argc, dt_node_t *args) in dt_idcook_func() argument
175 if (idp->di_data == NULL) { in dt_idcook_func()
182 assert(idp->di_iarg != NULL); in dt_idcook_func()
183 s = strdupa(idp->di_iarg); in dt_idcook_func()
193 "for built-in function %s\n", idp->di_name); in dt_idcook_func()
211 if ((isp = idp->di_data = malloc(sizeof (dt_idsig_t))) == NULL) in dt_idcook_func()
222 idp->di_data = NULL; in dt_idcook_func()
229 " %s\n", idp->di_name, s, in dt_idcook_func()
233 if (idp->di_kind == DT_IDENT_AGGFUNC) { in dt_idcook_func()
234 idp->di_ctfp = DT_DYN_CTFP(dtp); in dt_idcook_func()
235 idp->di_type = DT_DYN_TYPE(dtp); in dt_idcook_func()
237 idp->di_ctfp = dtt.dtt_ctfp; in dt_idcook_func()
238 idp->di_type = dtt.dtt_type; in dt_idcook_func()
294 "%s arg#%d (%s): %s\n", idp->di_name, i + 1, in dt_idcook_func()
303 dt_idcook_sign(dnp, idp, argc, args, "", "( )"); in dt_idcook_func()
312 dt_idcook_args(dt_node_t *dnp, dt_ident_t *idp, int argc, dt_node_t *ap) in dt_idcook_args() argument
326 "passed, 1 expected\n", idp->di_name, argc, in dt_idcook_args()
333 idp->di_name, "integer constant", in dt_idcook_args()
339 "of a probe clause\n", idp->di_name); in dt_idcook_args()
345 "matches an unstable set of probes\n", idp->di_name, in dt_idcook_args()
352 n1, sizeof (n1)), idp->di_name); in dt_idcook_args()
367 "%s[%lld]\n", idp->di_name, (longlong_t)ap->dn_value); in dt_idcook_args()
372 "%s[%lld]\n", idp->di_name, (longlong_t)ap->dn_value); in dt_idcook_args()
377 dnp->dn_ident = dt_ident_create(idp->di_name, idp->di_kind, in dt_idcook_args()
378 idp->di_flags | DT_IDFLG_ORPHAN, idp->di_id, idp->di_attr, in dt_idcook_args()
379 idp->di_vers, idp->di_ops, idp->di_iarg, idp->di_gen); in dt_idcook_args()
397 dnp->dn_ident = dt_ident_create(idp->di_name, xidp->di_kind, in dt_idcook_args()
398 xidp->di_flags | DT_IDFLG_ORPHAN, idp->di_id, idp->di_attr, in dt_idcook_args()
399 idp->di_vers, idp->di_ops, idp->di_iarg, idp->di_gen); in dt_idcook_args()
421 "is not defined\n", idp->di_name, (longlong_t)ap->dn_value, in dt_idcook_args()
427 assert(dnp->dn_ident->di_id == idp->di_id); in dt_idcook_args()
431 dt_idcook_regs(dt_node_t *dnp, dt_ident_t *idp, int argc, dt_node_t *ap) in dt_idcook_regs() argument
439 "passed, 1 expected\n", idp->di_name, in dt_idcook_regs()
446 idp->di_name, "integer constant", in dt_idcook_regs()
452 (longlong_t)ap->dn_value, idp->di_name); in dt_idcook_regs()
457 idp->di_name, dtrace_errmsg(dtp, dtrace_errno(dtp))); in dt_idcook_regs()
460 idp->di_ctfp = dtt.dtt_ctfp; in dt_idcook_regs()
461 idp->di_type = dtt.dtt_type; in dt_idcook_regs()
463 dt_node_type_assign(dnp, idp->di_ctfp, idp->di_type, B_FALSE); in dt_idcook_regs()
468 dt_idcook_type(dt_node_t *dnp, dt_ident_t *idp, int argc, dt_node_t *args) in dt_idcook_type() argument
470 if (idp->di_type == CTF_ERR) { in dt_idcook_type()
474 if (dt_type_lookup(idp->di_iarg, &dtt) == -1) { in dt_idcook_type()
477 (const char *)idp->di_iarg, idp->di_name, in dt_idcook_type()
481 idp->di_ctfp = dtt.dtt_ctfp; in dt_idcook_type()
482 idp->di_type = dtt.dtt_type; in dt_idcook_type()
485 dt_node_type_assign(dnp, idp->di_ctfp, idp->di_type, B_FALSE); in dt_idcook_type()
490 dt_idcook_thaw(dt_node_t *dnp, dt_ident_t *idp, int argc, dt_node_t *args) in dt_idcook_thaw() argument
492 if (idp->di_ctfp != NULL && idp->di_type != CTF_ERR) in dt_idcook_thaw()
493 dt_node_type_assign(dnp, idp->di_ctfp, idp->di_type, B_FALSE); in dt_idcook_thaw()
497 dt_idcook_inline(dt_node_t *dnp, dt_ident_t *idp, int argc, dt_node_t *args) in dt_idcook_inline() argument
499 if (idp->di_kind == DT_IDENT_ARRAY) in dt_idcook_inline()
500 dt_idcook_assc(dnp, idp, argc, args); in dt_idcook_inline()
502 dt_idcook_thaw(dnp, idp, argc, args); in dt_idcook_inline()
506 dt_iddtor_sign(dt_ident_t *idp) in dt_iddtor_sign() argument
508 if (idp->di_data != NULL) in dt_iddtor_sign()
509 free(((dt_idsig_t *)idp->di_data)->dis_args); in dt_iddtor_sign()
510 free(idp->di_data); in dt_iddtor_sign()
514 dt_iddtor_free(dt_ident_t *idp) in dt_iddtor_free() argument
516 free(idp->di_data); in dt_iddtor_free()
520 dt_iddtor_inline(dt_ident_t *idp) in dt_iddtor_inline() argument
522 dt_idnode_t *inp = idp->di_iarg; in dt_iddtor_inline()
534 if (idp->di_kind == DT_IDENT_ARRAY) in dt_iddtor_inline()
535 dt_iddtor_sign(idp); in dt_iddtor_inline()
537 dt_iddtor_free(idp); in dt_iddtor_inline()
542 dt_iddtor_none(dt_ident_t *idp) in dt_iddtor_none() argument
548 dt_iddtor_probe(dt_ident_t *idp) in dt_iddtor_probe() argument
550 if (idp->di_data != NULL) in dt_iddtor_probe()
551 dt_probe_destroy(idp->di_data); in dt_iddtor_probe()
555 dt_idsize_type(dt_ident_t *idp) in dt_idsize_type() argument
557 return (ctf_type_size(idp->di_ctfp, idp->di_type)); in dt_idsize_type()
562 dt_idsize_none(dt_ident_t *idp) in dt_idsize_none() argument
618 const dt_ident_t *idp = dhp->dh_tmpl; in dt_idhash_populate() local
621 dt_dprintf("populating %s idhash from %p\n", dhp->dh_name, (void *)idp); in dt_idhash_populate()
623 for (; idp->di_name != NULL; idp++) { in dt_idhash_populate()
624 if (dt_idhash_insert(dhp, idp->di_name, in dt_idhash_populate()
625 idp->di_kind, idp->di_flags, idp->di_id, idp->di_attr, in dt_idhash_populate()
626 idp->di_vers, idp->di_ops ? idp->di_ops : &dt_idops_thaw, in dt_idhash_populate()
627 idp->di_iarg, 0) == NULL) in dt_idhash_populate()
670 dt_ident_t *idp, *next; in dt_idhash_destroy() local
674 for (idp = dhp->dh_hash[i]; idp != NULL; idp = next) { in dt_idhash_destroy()
675 next = idp->di_next; in dt_idhash_destroy()
676 idp->di_ops->di_dtor(idp); in dt_idhash_destroy()
681 for (idp = dhp->dh_hash[i]; idp != NULL; idp = next) { in dt_idhash_destroy()
682 next = idp->di_next; in dt_idhash_destroy()
683 free(idp->di_name); in dt_idhash_destroy()
684 free(idp); in dt_idhash_destroy()
695 dt_ident_t *idp; in dt_idhash_update() local
699 for (idp = dhp->dh_hash[i]; idp != NULL; idp = idp->di_next) { in dt_idhash_update()
704 if (idp->di_kind == DT_IDENT_ARRAY || in dt_idhash_update()
705 idp->di_kind == DT_IDENT_SCALAR || in dt_idhash_update()
706 idp->di_kind == DT_IDENT_AGG) in dt_idhash_update()
707 nextid = MAX(nextid, idp->di_id + 1); in dt_idhash_update()
719 dt_ident_t *idp; in dt_idhash_lookup() local
724 for (idp = dhp->dh_hash[h]; idp != NULL; idp = idp->di_next) { in dt_idhash_lookup()
725 if (strcmp(idp->di_name, name) == 0) in dt_idhash_lookup()
726 return (idp); in dt_idhash_lookup()
759 dt_ident_t *idp; in dt_idhash_insert() local
765 idp = dt_ident_create(name, kind, flags, id, in dt_idhash_insert()
768 if (idp == NULL) in dt_idhash_insert()
772 idp->di_next = dhp->dh_hash[h]; in dt_idhash_insert()
774 dhp->dh_hash[h] = idp; in dt_idhash_insert()
778 dhp->dh_defer(dhp, idp); in dt_idhash_insert()
780 return (idp); in dt_idhash_insert()
784 dt_idhash_xinsert(dt_idhash_t *dhp, dt_ident_t *idp) in dt_idhash_xinsert() argument
791 h = dt_strtab_hash(idp->di_name, NULL) % dhp->dh_hashsz; in dt_idhash_xinsert()
792 idp->di_next = dhp->dh_hash[h]; in dt_idhash_xinsert()
793 idp->di_flags &= ~DT_IDFLG_ORPHAN; in dt_idhash_xinsert()
795 dhp->dh_hash[h] = idp; in dt_idhash_xinsert()
799 dhp->dh_defer(dhp, idp); in dt_idhash_xinsert()
808 dt_ident_t *idp; in dt_idhash_delete() local
810 for (idp = dhp->dh_hash[h]; idp != NULL; idp = idp->di_next) { in dt_idhash_delete()
811 if (idp == key) in dt_idhash_delete()
814 pp = &idp->di_next; in dt_idhash_delete()
817 assert(idp == key); in dt_idhash_delete()
818 *pp = idp->di_next; in dt_idhash_delete()
823 if (!(idp->di_flags & DT_IDFLG_ORPHAN)) in dt_idhash_delete()
824 dt_ident_destroy(idp); in dt_idhash_delete()
843 dt_ident_t *idp; in dt_idhash_iter() local
854 for (idp = dhp->dh_hash[i]; idp != NULL; idp = idp->di_next) in dt_idhash_iter()
855 ids[j++] = idp; in dt_idhash_iter()
872 dt_ident_t *idp; in dt_idstack_lookup() local
876 if ((idp = dt_idhash_lookup(dhp, name)) != NULL) in dt_idstack_lookup()
877 return (idp); in dt_idstack_lookup()
901 dt_ident_t *idp; in dt_ident_create() local
905 (idp = malloc(sizeof (dt_ident_t))) == NULL) { in dt_ident_create()
910 idp->di_name = s; in dt_ident_create()
911 idp->di_kind = kind; in dt_ident_create()
912 idp->di_flags = flags; in dt_ident_create()
913 idp->di_id = id; in dt_ident_create()
914 idp->di_attr = attr; in dt_ident_create()
915 idp->di_vers = vers; in dt_ident_create()
916 idp->di_ops = ops; in dt_ident_create()
917 idp->di_iarg = iarg; in dt_ident_create()
918 idp->di_data = NULL; in dt_ident_create()
919 idp->di_ctfp = NULL; in dt_ident_create()
920 idp->di_type = CTF_ERR; in dt_ident_create()
921 idp->di_next = NULL; in dt_ident_create()
922 idp->di_gen = gen; in dt_ident_create()
923 idp->di_lineno = yylineno; in dt_ident_create()
925 return (idp); in dt_ident_create()
933 dt_ident_destroy(dt_ident_t *idp) in dt_ident_destroy() argument
935 idp->di_ops->di_dtor(idp); in dt_ident_destroy()
936 free(idp->di_name); in dt_ident_destroy()
937 free(idp); in dt_ident_destroy()
941 dt_ident_morph(dt_ident_t *idp, ushort_t kind, in dt_ident_morph() argument
944 idp->di_ops->di_dtor(idp); in dt_ident_morph()
945 idp->di_kind = kind; in dt_ident_morph()
946 idp->di_ops = ops; in dt_ident_morph()
947 idp->di_iarg = iarg; in dt_ident_morph()
948 idp->di_data = NULL; in dt_ident_morph()
952 dt_ident_cook(dt_node_t *dnp, dt_ident_t *idp, dt_node_t **pargp) in dt_ident_cook() argument
964 idp->di_ops->di_cook(dnp, idp, argc, args); in dt_ident_cook()
966 if (idp->di_flags & DT_IDFLG_USER) in dt_ident_cook()
969 return (dt_attr_min(attr, idp->di_attr)); in dt_ident_cook()
973 dt_ident_type_assign(dt_ident_t *idp, ctf_file_t *fp, ctf_id_t type) in dt_ident_type_assign() argument
975 idp->di_ctfp = fp; in dt_ident_type_assign()
976 idp->di_type = type; in dt_ident_type_assign()
980 dt_ident_resolve(dt_ident_t *idp) in dt_ident_resolve() argument
982 while (idp->di_flags & DT_IDFLG_INLINE) { in dt_ident_resolve()
983 const dt_node_t *dnp = ((dt_idnode_t *)idp->di_iarg)->din_root; in dt_ident_resolve()
995 idp = dnp->dn_ident; in dt_ident_resolve()
1000 idp = dnp->dn_ident; in dt_ident_resolve()
1005 return (idp); in dt_ident_resolve()
1009 dt_ident_size(dt_ident_t *idp) in dt_ident_size() argument
1011 idp = dt_ident_resolve(idp); in dt_ident_size()
1012 return (idp->di_ops->di_size(idp)); in dt_ident_size()
1016 dt_ident_unref(const dt_ident_t *idp) in dt_ident_unref() argument
1018 return (idp->di_gen == yypcb->pcb_hdl->dt_gen && in dt_ident_unref()
1019 (idp->di_flags & (DT_IDFLG_REF|DT_IDFLG_MOD|DT_IDFLG_DECL)) == 0); in dt_ident_unref()