Lines Matching defs:prp

237 	dt_probe_t *prp;
291 if ((prp = dt_probe_create(dtp, idp, 2,
297 dt_probe_declare(pvp, prp);
301 * cached argument descriptions and assign types to prp->pr_nargv[]
302 * and prp->pr_xargv[] and assign mappings to prp->pr_mapping[].
316 dt_node_type_assign(prp->pr_nargv[adp->dtargd_mapping],
322 dt_node_type_propagate(prp->pr_nargv[
323 adp->dtargd_mapping], prp->pr_xargv[i]);
335 dt_node_type_assign(prp->pr_xargv[i],
339 prp->pr_mapping[i] = adp->dtargd_mapping;
340 prp->pr_argv[i] = dtt;
343 return (prp);
394 dt_probe_t *prp;
413 if ((prp = dt_alloc(dtp, sizeof (dt_probe_t))) == NULL)
416 prp->pr_pvp = NULL;
417 prp->pr_ident = idp;
421 prp->pr_name = p + 1;
423 prp->pr_nargs = nargs;
424 prp->pr_nargv = dt_alloc(dtp, sizeof (dt_node_t *) * nargc);
425 prp->pr_nargc = nargc;
426 prp->pr_xargs = xargs;
427 prp->pr_xargv = dt_alloc(dtp, sizeof (dt_node_t *) * xargc);
428 prp->pr_xargc = xargc;
429 prp->pr_mapping = dt_alloc(dtp, sizeof (uint8_t) * xargc);
430 prp->pr_inst = NULL;
431 prp->pr_argv = dt_alloc(dtp, sizeof (dtrace_typeinfo_t) * xargc);
432 prp->pr_argc = xargc;
434 if ((prp->pr_nargc != 0 && prp->pr_nargv == NULL) ||
435 (prp->pr_xargc != 0 && prp->pr_xargv == NULL) ||
436 (prp->pr_xargc != 0 && prp->pr_mapping == NULL) ||
437 (prp->pr_argc != 0 && prp->pr_argv == NULL)) {
438 dt_probe_destroy(prp);
444 prp->pr_mapping[i] = dt_probe_argmap(xargs, nargs);
446 prp->pr_mapping[i] = i;
448 prp->pr_xargv[i] = xargs;
452 prp->pr_argv[i].dtt_object = dmp->dm_name;
454 prp->pr_argv[i].dtt_object = NULL;
456 prp->pr_argv[i].dtt_ctfp = xargs->dn_ctfp;
457 prp->pr_argv[i].dtt_type = xargs->dn_type;
461 prp->pr_nargv[i] = nargs;
463 idp->di_data = prp;
464 return (prp);
468 dt_probe_declare(dt_provider_t *pvp, dt_probe_t *prp)
470 assert(prp->pr_ident->di_kind == DT_IDENT_PROBE);
471 assert(prp->pr_ident->di_data == prp);
472 assert(prp->pr_pvp == NULL);
474 if (prp->pr_xargs != prp->pr_nargs)
477 prp->pr_pvp = pvp;
478 dt_idhash_xinsert(pvp->pv_probes, prp->pr_ident);
482 dt_probe_destroy(dt_probe_t *prp)
487 if (prp->pr_pvp != NULL)
488 dtp = prp->pr_pvp->pv_hdl;
492 dt_node_list_free(&prp->pr_nargs);
493 dt_node_list_free(&prp->pr_xargs);
495 dt_free(dtp, prp->pr_nargv);
496 dt_free(dtp, prp->pr_xargv);
498 for (pip = prp->pr_inst; pip != NULL; pip = pip_next) {
505 dt_free(dtp, prp->pr_mapping);
506 dt_free(dtp, prp->pr_argv);
507 dt_free(dtp, prp);
511 dt_probe_define(dt_provider_t *pvp, dt_probe_t *prp,
521 for (pip = prp->pr_inst; pip != NULL; pip = pip->pi_next) {
560 pip->pi_next = prp->pr_inst;
562 prp->pr_inst = pip;
591 pvp->pv_desc.dtvd_name, prp->pr_ident->di_name, fname, offset,
606 dt_probe_tag(dt_probe_t *prp, uint_t argn, dt_node_t *dnp)
608 dtrace_hdl_t *dtp = prp->pr_pvp->pv_hdl;
614 prp->pr_pvp->pv_desc.dtvd_name, prp->pr_name, argn);
619 prp->pr_pvp->pv_desc.dtvd_name, prp->pr_name, argn);
663 dt_probe_t *prp = NULL;
678 prp = idp->di_data;
680 prp = dt_probe_discover(pvp, pdp);
689 if (prp == NULL) {
757 prp = dt_probe_discover(pvp, &pd);
759 prp = dt_probe_lookup(pvp, pd.dtpd_name);
761 if (prp == NULL)
765 assert(pvp != NULL && prp != NULL);
787 pip->dtp_argv = prp->pr_argv;
788 pip->dtp_argc = prp->pr_argc;
790 return (prp);
804 const dt_probe_t *prp = idp->di_data;
806 if (!dt_gmatch(prp->pr_name, pit->pit_pat))
809 (void) strlcpy(pit->pit_desc.dtpd_name, prp->pr_name, DTRACE_NAMELEN);