Lines Matching defs:prp

240 	dt_probe_t *prp;
309 if ((prp = dt_probe_create(dtp, idp, 2,
315 dt_probe_declare(pvp, prp);
319 * cached argument descriptions and assign types to prp->pr_nargv[]
320 * and prp->pr_xargv[] and assign mappings to prp->pr_mapping[].
334 dt_node_type_assign(prp->pr_nargv[adp->dtargd_mapping],
341 dt_node_type_propagate(prp->pr_nargv[
342 adp->dtargd_mapping], prp->pr_xargv[i]);
354 dt_node_type_assign(prp->pr_xargv[i],
358 prp->pr_mapping[i] = adp->dtargd_mapping;
359 prp->pr_argv[i] = dtt;
362 return (prp);
413 dt_probe_t *prp;
432 if ((prp = dt_alloc(dtp, sizeof (dt_probe_t))) == NULL)
435 prp->pr_pvp = NULL;
436 prp->pr_ident = idp;
440 prp->pr_name = p + 1;
442 prp->pr_nargs = nargs;
443 prp->pr_nargv = dt_alloc(dtp, sizeof (dt_node_t *) * nargc);
444 prp->pr_nargc = nargc;
445 prp->pr_xargs = xargs;
446 prp->pr_xargv = dt_alloc(dtp, sizeof (dt_node_t *) * xargc);
447 prp->pr_xargc = xargc;
448 prp->pr_mapping = dt_alloc(dtp, sizeof (uint8_t) * xargc);
449 prp->pr_inst = NULL;
450 prp->pr_argv = dt_alloc(dtp, sizeof (dtrace_typeinfo_t) * xargc);
451 prp->pr_argc = xargc;
453 if ((prp->pr_nargc != 0 && prp->pr_nargv == NULL) ||
454 (prp->pr_xargc != 0 && prp->pr_xargv == NULL) ||
455 (prp->pr_xargc != 0 && prp->pr_mapping == NULL) ||
456 (prp->pr_argc != 0 && prp->pr_argv == NULL)) {
457 dt_probe_destroy(prp);
463 prp->pr_mapping[i] = dt_probe_argmap(xargs, nargs);
465 prp->pr_mapping[i] = i;
467 prp->pr_xargv[i] = xargs;
471 prp->pr_argv[i].dtt_object = dmp->dm_name;
473 prp->pr_argv[i].dtt_object = NULL;
475 prp->pr_argv[i].dtt_ctfp = xargs->dn_ctfp;
476 prp->pr_argv[i].dtt_type = xargs->dn_type;
480 prp->pr_nargv[i] = nargs;
482 idp->di_data = prp;
483 return (prp);
487 dt_probe_declare(dt_provider_t *pvp, dt_probe_t *prp)
489 assert(prp->pr_ident->di_kind == DT_IDENT_PROBE);
490 assert(prp->pr_ident->di_data == prp);
491 assert(prp->pr_pvp == NULL);
493 if (prp->pr_xargs != prp->pr_nargs)
496 prp->pr_pvp = pvp;
497 dt_idhash_xinsert(pvp->pv_probes, prp->pr_ident);
501 dt_probe_destroy(dt_probe_t *prp)
506 if (prp->pr_pvp != NULL)
507 dtp = prp->pr_pvp->pv_hdl;
511 dt_node_list_free(&prp->pr_nargs);
512 dt_node_list_free(&prp->pr_xargs);
514 dt_free(dtp, prp->pr_nargv);
515 dt_free(dtp, prp->pr_xargv);
517 for (pip = prp->pr_inst; pip != NULL; pip = pip_next) {
524 dt_free(dtp, prp->pr_mapping);
525 dt_free(dtp, prp->pr_argv);
526 dt_free(dtp, prp);
530 dt_probe_define(dt_provider_t *pvp, dt_probe_t *prp,
540 for (pip = prp->pr_inst; pip != NULL; pip = pip->pi_next) {
579 pip->pi_next = prp->pr_inst;
581 prp->pr_inst = pip;
610 pvp->pv_desc.dtvd_name, prp->pr_ident->di_name, fname, offset,
625 dt_probe_tag(dt_probe_t *prp, uint_t argn, dt_node_t *dnp)
627 dtrace_hdl_t *dtp = prp->pr_pvp->pv_hdl;
633 prp->pr_pvp->pv_desc.dtvd_name, prp->pr_name, argn);
638 prp->pr_pvp->pv_desc.dtvd_name, prp->pr_name, argn);
682 dt_probe_t *prp = NULL;
697 prp = idp->di_data;
699 prp = dt_probe_discover(pvp, pdp);
708 if (prp == NULL) {
776 prp = dt_probe_discover(pvp, &pd);
778 prp = dt_probe_lookup(pvp, pd.dtpd_name);
780 if (prp == NULL)
784 assert(pvp != NULL && prp != NULL);
806 pip->dtp_argv = prp->pr_argv;
807 pip->dtp_argc = prp->pr_argc;
809 return (prp);
823 const dt_probe_t *prp = idp->di_data;
825 if (!dt_gmatch(prp->pr_name, pit->pit_pat))
828 (void) strlcpy(pit->pit_desc.dtpd_name, prp->pr_name, DTRACE_NAMELEN);