Lines Matching full:prp

245 	dt_probe_t *prp;  in dt_probe_discover()  local
314 if ((prp = dt_probe_create(dtp, idp, 2, in dt_probe_discover()
320 dt_probe_declare(pvp, prp); in dt_probe_discover()
324 * cached argument descriptions and assign types to prp->pr_nargv[] in dt_probe_discover()
325 * and prp->pr_xargv[] and assign mappings to prp->pr_mapping[]. in dt_probe_discover()
339 dt_node_type_assign(prp->pr_nargv[adp->dtargd_mapping], in dt_probe_discover()
346 dt_node_type_propagate(prp->pr_nargv[ in dt_probe_discover()
347 adp->dtargd_mapping], prp->pr_xargv[i]); in dt_probe_discover()
359 dt_node_type_assign(prp->pr_xargv[i], in dt_probe_discover()
363 prp->pr_mapping[i] = adp->dtargd_mapping; in dt_probe_discover()
364 prp->pr_argv[i] = dtt; in dt_probe_discover()
367 return (prp); in dt_probe_discover()
418 dt_probe_t *prp; in dt_probe_create() local
437 if ((prp = dt_alloc(dtp, sizeof (dt_probe_t))) == NULL) in dt_probe_create()
440 prp->pr_pvp = NULL; in dt_probe_create()
441 prp->pr_ident = idp; in dt_probe_create()
445 prp->pr_name = p + 1; in dt_probe_create()
447 prp->pr_nargs = nargs; in dt_probe_create()
448 prp->pr_nargv = dt_alloc(dtp, sizeof (dt_node_t *) * nargc); in dt_probe_create()
449 prp->pr_nargc = nargc; in dt_probe_create()
450 prp->pr_xargs = xargs; in dt_probe_create()
451 prp->pr_xargv = dt_alloc(dtp, sizeof (dt_node_t *) * xargc); in dt_probe_create()
452 prp->pr_xargc = xargc; in dt_probe_create()
453 prp->pr_mapping = dt_alloc(dtp, sizeof (uint8_t) * xargc); in dt_probe_create()
454 prp->pr_inst = NULL; in dt_probe_create()
455 prp->pr_argv = dt_alloc(dtp, sizeof (dtrace_typeinfo_t) * xargc); in dt_probe_create()
456 prp->pr_argc = xargc; in dt_probe_create()
458 if ((prp->pr_nargc != 0 && prp->pr_nargv == NULL) || in dt_probe_create()
459 (prp->pr_xargc != 0 && prp->pr_xargv == NULL) || in dt_probe_create()
460 (prp->pr_xargc != 0 && prp->pr_mapping == NULL) || in dt_probe_create()
461 (prp->pr_argc != 0 && prp->pr_argv == NULL)) { in dt_probe_create()
462 dt_probe_destroy(prp); in dt_probe_create()
468 prp->pr_mapping[i] = dt_probe_argmap(xargs, nargs); in dt_probe_create()
470 prp->pr_mapping[i] = i; in dt_probe_create()
472 prp->pr_xargv[i] = xargs; in dt_probe_create()
476 prp->pr_argv[i].dtt_object = dmp->dm_name; in dt_probe_create()
478 prp->pr_argv[i].dtt_object = NULL; in dt_probe_create()
480 prp->pr_argv[i].dtt_ctfp = xargs->dn_ctfp; in dt_probe_create()
481 prp->pr_argv[i].dtt_type = xargs->dn_type; in dt_probe_create()
485 prp->pr_nargv[i] = nargs; in dt_probe_create()
487 idp->di_data = prp; in dt_probe_create()
488 return (prp); in dt_probe_create()
492 dt_probe_declare(dt_provider_t *pvp, dt_probe_t *prp) in dt_probe_declare() argument
494 assert(prp->pr_ident->di_kind == DT_IDENT_PROBE); in dt_probe_declare()
495 assert(prp->pr_ident->di_data == prp); in dt_probe_declare()
496 assert(prp->pr_pvp == NULL); in dt_probe_declare()
498 if (prp->pr_xargs != prp->pr_nargs) in dt_probe_declare()
501 prp->pr_pvp = pvp; in dt_probe_declare()
502 dt_idhash_xinsert(pvp->pv_probes, prp->pr_ident); in dt_probe_declare()
506 dt_probe_destroy(dt_probe_t *prp) in dt_probe_destroy() argument
511 if (prp->pr_pvp != NULL) in dt_probe_destroy()
512 dtp = prp->pr_pvp->pv_hdl; in dt_probe_destroy()
516 dt_node_list_free(&prp->pr_nargs); in dt_probe_destroy()
517 dt_node_list_free(&prp->pr_xargs); in dt_probe_destroy()
519 dt_free(dtp, prp->pr_nargv); in dt_probe_destroy()
520 dt_free(dtp, prp->pr_xargv); in dt_probe_destroy()
522 for (pip = prp->pr_inst; pip != NULL; pip = pip_next) { in dt_probe_destroy()
531 dt_free(dtp, prp->pr_mapping); in dt_probe_destroy()
532 dt_free(dtp, prp->pr_argv); in dt_probe_destroy()
533 dt_free(dtp, prp); in dt_probe_destroy()
537 dt_probe_define(dt_provider_t *pvp, dt_probe_t *prp, in dt_probe_define() argument
547 for (pip = prp->pr_inst; pip != NULL; pip = pip->pi_next) { in dt_probe_define()
575 pip->pi_next = prp->pr_inst; in dt_probe_define()
577 prp->pr_inst = pip; in dt_probe_define()
606 pvp->pv_desc.dtvd_name, prp->pr_ident->di_name, fname, offset, in dt_probe_define()
628 dt_probe_tag(dt_probe_t *prp, uint_t argn, dt_node_t *dnp) in dt_probe_tag() argument
630 dtrace_hdl_t *dtp = prp->pr_pvp->pv_hdl; in dt_probe_tag()
636 prp->pr_pvp->pv_desc.dtvd_name, prp->pr_name, argn); in dt_probe_tag()
641 prp->pr_pvp->pv_desc.dtvd_name, prp->pr_name, argn); in dt_probe_tag()
685 dt_probe_t *prp = NULL; in dt_probe_info() local
700 prp = idp->di_data; in dt_probe_info()
702 prp = dt_probe_discover(pvp, pdp); in dt_probe_info()
739 if (prp == NULL) { in dt_probe_info()
807 prp = dt_probe_discover(pvp, &pd); in dt_probe_info()
809 prp = dt_probe_lookup(pvp, pd.dtpd_name); in dt_probe_info()
811 if (prp == NULL) in dt_probe_info()
815 assert(pvp != NULL && prp != NULL); in dt_probe_info()
837 pip->dtp_argv = prp->pr_argv; in dt_probe_info()
838 pip->dtp_argc = prp->pr_argc; in dt_probe_info()
840 return (prp); in dt_probe_info()
854 const dt_probe_t *prp = idp->di_data; in dt_probe_iter() local
856 if (!dt_gmatch(prp->pr_name, pit->pit_pat)) in dt_probe_iter()
859 (void) strlcpy(pit->pit_desc.dtpd_name, prp->pr_name, DTRACE_NAMELEN); in dt_probe_iter()