• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10.1/dtrace-147/libdtrace/

Lines Matching defs:pvp

44 dt_provider_insert(dtrace_hdl_t *dtp, dt_provider_t *pvp, uint_t h)
46 dt_list_append(&dtp->dt_provlist, pvp);
48 pvp->pv_next = dtp->dt_provs[h];
49 dtp->dt_provs[h] = pvp;
52 return (pvp);
60 dt_provider_t *pvp;
62 for (pvp = dtp->dt_provs[h]; pvp != NULL; pvp = pvp->pv_next) {
63 if (strcmp(pvp->pv_desc.dtvd_name, name) == 0)
64 return (pvp);
80 if ((pvp = dt_provider_create(dtp, name)) == NULL)
83 bcopy(&desc, &pvp->pv_desc, sizeof (desc));
84 pvp->pv_flags |= DT_PROVIDER_IMPL;
85 return (pvp);
91 dt_provider_t *pvp;
93 if ((pvp = dt_zalloc(dtp, sizeof (dt_provider_t))) == NULL)
96 (void) strlcpy(pvp->pv_desc.dtvd_name, name, DTRACE_PROVNAMELEN);
97 pvp->pv_probes = dt_idhash_create(pvp->pv_desc.dtvd_name, NULL, 0, 0);
98 pvp->pv_gen = dtp->dt_gen;
99 pvp->pv_hdl = dtp;
101 if (pvp->pv_probes == NULL) {
102 dt_free(dtp, pvp);
107 pvp->pv_desc.dtvd_attr.dtpa_provider = _dtrace_prvattr;
108 pvp->pv_desc.dtvd_attr.dtpa_mod = _dtrace_prvattr;
109 pvp->pv_desc.dtvd_attr.dtpa_func = _dtrace_prvattr;
110 pvp->pv_desc.dtvd_attr.dtpa_name = _dtrace_prvattr;
111 pvp->pv_desc.dtvd_attr.dtpa_args = _dtrace_prvattr;
113 return (dt_provider_insert(dtp, pvp,
118 dt_provider_destroy(dtrace_hdl_t *dtp, dt_provider_t *pvp)
123 assert(pvp->pv_hdl == dtp);
125 h = dt_strtab_hash(pvp->pv_desc.dtvd_name, NULL) % dtp->dt_provbuckets;
128 while (*pp != NULL && *pp != pvp)
131 assert(*pp != NULL && *pp == pvp);
132 *pp = pvp->pv_next;
134 dt_list_delete(&dtp->dt_provlist, pvp);
137 if (pvp->pv_probes != NULL)
138 dt_idhash_destroy(pvp->pv_probes);
140 dt_node_link_free(&pvp->pv_nodes);
141 dt_free(dtp, pvp->pv_xrefs);
142 dt_free(dtp, pvp);
146 dt_provider_xref(dtrace_hdl_t *dtp, dt_provider_t *pvp, id_t id)
148 size_t oldsize = BT_SIZEOFMAP(pvp->pv_xrmax);
159 bcopy(pvp->pv_xrefs, xrefs, oldsize);
160 dt_free(dtp, pvp->pv_xrefs);
162 pvp->pv_xrefs = xrefs;
163 pvp->pv_xrmax = dtp->dt_xlatorid;
166 BT_SET(pvp->pv_xrefs, id);
187 dt_probe_alloc_args(dt_provider_t *pvp, int argc)
193 if ((dnp = dt_node_xalloc(pvp->pv_hdl, DT_NODE_TYPE)) == NULL)
196 dnp->dn_link = pvp->pv_nodes;
197 pvp->pv_nodes = dnp;
228 dt_probe_discover(dt_provider_t *pvp, const dtrace_probedesc_t *pdp)
230 dtrace_hdl_t *dtp = pvp->pv_hdl;
244 assert(strcmp(pvp->pv_desc.dtvd_name, pdp->dtpd_provider) == 0);
248 pvp->pv_desc.dtvd_name, name, pdp->dtpd_id);
274 xargs = dt_probe_alloc_args(pvp, xc);
275 nargs = dt_probe_alloc_args(pvp, nc);
295 dt_probe_declare(pvp, prp);
307 pvp->pv_desc.dtvd_name, name, i + 1,
326 pvp->pv_desc.dtvd_name, name, i + 1,
350 dt_probe_lookup(dt_provider_t *pvp, const char *s)
352 dtrace_hdl_t *dtp = pvp->pv_hdl;
369 if ((idp = dt_idhash_lookup(pvp->pv_probes, key)) != NULL)
377 return (dt_probe_discover(pvp, &pd));
466 dt_probe_declare(dt_provider_t *pvp, dt_probe_t *prp)
473 pvp->pv_flags &= ~DT_PROVIDER_INTF;
475 prp->pr_pvp = pvp;
476 dt_idhash_xinsert(pvp->pv_probes, prp->pr_ident);
509 dt_probe_define(dt_provider_t *pvp, dt_probe_t *prp,
512 dtrace_hdl_t *dtp = pvp->pv_hdl;
589 pvp->pv_desc.dtvd_name, prp->pr_ident->di_name, fname, offset,
663 dt_provider_t *pvp;
671 if ((pvp = dt_provider_lookup(dtp, pdp->dtpd_provider)) != NULL) {
675 if ((idp = dt_idhash_lookup(pvp->pv_probes, key)) != NULL)
678 prp = dt_probe_discover(pvp, pdp);
705 if ((pvp = dt_provider_lookup(dtp, pd.dtpd_provider)) == NULL)
724 if (pvp->pv_desc.dtvd_attr.dtpa_args.dtat_data <
731 if (pvp->pv_desc.dtvd_attr.dtpa_mod.dtat_name >=
737 if (pvp->pv_desc.dtvd_attr.dtpa_func.dtat_name >=
743 if (pvp->pv_desc.dtvd_attr.dtpa_name.dtat_name >=
755 prp = dt_probe_discover(pvp, &pd);
757 prp = dt_probe_lookup(pvp, pd.dtpd_name);
763 assert(pvp != NULL && prp != NULL);
773 pap = &pvp->pv_desc.dtvd_attr;