Lines Matching defs:prp

244 	dt_probe_t *prp;
313 if ((prp = dt_probe_create(dtp, idp, 2,
319 dt_probe_declare(pvp, prp);
323 * cached argument descriptions and assign types to prp->pr_nargv[]
324 * and prp->pr_xargv[] and assign mappings to prp->pr_mapping[].
338 dt_node_type_assign(prp->pr_nargv[adp->dtargd_mapping],
345 dt_node_type_propagate(prp->pr_nargv[
346 adp->dtargd_mapping], prp->pr_xargv[i]);
358 dt_node_type_assign(prp->pr_xargv[i],
362 prp->pr_mapping[i] = adp->dtargd_mapping;
363 prp->pr_argv[i] = dtt;
366 return (prp);
417 dt_probe_t *prp;
436 if ((prp = dt_alloc(dtp, sizeof (dt_probe_t))) == NULL)
439 prp->pr_pvp = NULL;
440 prp->pr_ident = idp;
444 prp->pr_name = p + 1;
446 prp->pr_nargs = nargs;
447 prp->pr_nargv = dt_alloc(dtp, sizeof (dt_node_t *) * nargc);
448 prp->pr_nargc = nargc;
449 prp->pr_xargs = xargs;
450 prp->pr_xargv = dt_alloc(dtp, sizeof (dt_node_t *) * xargc);
451 prp->pr_xargc = xargc;
452 prp->pr_mapping = dt_alloc(dtp, sizeof (uint8_t) * xargc);
453 prp->pr_inst = NULL;
454 prp->pr_argv = dt_alloc(dtp, sizeof (dtrace_typeinfo_t) * xargc);
455 prp->pr_argc = xargc;
457 if ((prp->pr_nargc != 0 && prp->pr_nargv == NULL) ||
458 (prp->pr_xargc != 0 && prp->pr_xargv == NULL) ||
459 (prp->pr_xargc != 0 && prp->pr_mapping == NULL) ||
460 (prp->pr_argc != 0 && prp->pr_argv == NULL)) {
461 dt_probe_destroy(prp);
467 prp->pr_mapping[i] = dt_probe_argmap(xargs, nargs);
469 prp->pr_mapping[i] = i;
471 prp->pr_xargv[i] = xargs;
475 prp->pr_argv[i].dtt_object = dmp->dm_name;
477 prp->pr_argv[i].dtt_object = NULL;
479 prp->pr_argv[i].dtt_ctfp = xargs->dn_ctfp;
480 prp->pr_argv[i].dtt_type = xargs->dn_type;
484 prp->pr_nargv[i] = nargs;
486 idp->di_data = prp;
487 return (prp);
491 dt_probe_declare(dt_provider_t *pvp, dt_probe_t *prp)
493 assert(prp->pr_ident->di_kind == DT_IDENT_PROBE);
494 assert(prp->pr_ident->di_data == prp);
495 assert(prp->pr_pvp == NULL);
497 if (prp->pr_xargs != prp->pr_nargs)
500 prp->pr_pvp = pvp;
501 dt_idhash_xinsert(pvp->pv_probes, prp->pr_ident);
505 dt_probe_destroy(dt_probe_t *prp)
510 if (prp->pr_pvp != NULL)
511 dtp = prp->pr_pvp->pv_hdl;
515 dt_node_list_free(&prp->pr_nargs);
516 dt_node_list_free(&prp->pr_xargs);
518 dt_free(dtp, prp->pr_nargv);
519 dt_free(dtp, prp->pr_xargv);
521 for (pip = prp->pr_inst; pip != NULL; pip = pip_next) {
528 dt_free(dtp, prp->pr_mapping);
529 dt_free(dtp, prp->pr_argv);
530 dt_free(dtp, prp);
534 dt_probe_define(dt_provider_t *pvp, dt_probe_t *prp,
544 for (pip = prp->pr_inst; pip != NULL; pip = pip->pi_next) {
583 pip->pi_next = prp->pr_inst;
585 prp->pr_inst = pip;
614 pvp->pv_desc.dtvd_name, prp->pr_ident->di_name, fname, offset,
629 dt_probe_tag(dt_probe_t *prp, uint_t argn, dt_node_t *dnp)
631 dtrace_hdl_t *dtp = prp->pr_pvp->pv_hdl;
637 prp->pr_pvp->pv_desc.dtvd_name, prp->pr_name, argn);
642 prp->pr_pvp->pv_desc.dtvd_name, prp->pr_name, argn);
686 dt_probe_t *prp = NULL;
701 prp = idp->di_data;
703 prp = dt_probe_discover(pvp, pdp);
712 if (prp == NULL) {
780 prp = dt_probe_discover(pvp, &pd);
782 prp = dt_probe_lookup(pvp, pd.dtpd_name);
784 if (prp == NULL)
788 assert(pvp != NULL && prp != NULL);
810 pip->dtp_argv = prp->pr_argv;
811 pip->dtp_argc = prp->pr_argc;
813 return (prp);
827 const dt_probe_t *prp = idp->di_data;
829 if (!dt_gmatch(prp->pr_name, pit->pit_pat))
832 (void) strlcpy(pit->pit_desc.dtpd_name, prp->pr_name, DTRACE_NAMELEN);