Lines Matching refs:probe

412 #define	DTRACE_HASHSTR(hash, probe)	\  argument
413 dtrace_hash_str(*((char **)((uintptr_t)(probe) + (hash)->dth_stroffs)))
415 #define DTRACE_HASHNEXT(hash, probe) \ argument
416 (dtrace_probe_t **)((uintptr_t)(probe) + (hash)->dth_nextoffs)
418 #define DTRACE_HASHPREV(hash, probe) \ argument
419 (dtrace_probe_t **)((uintptr_t)(probe) + (hash)->dth_prevoffs)
572 #define DTRACE_ANCHORED(probe) ((probe)->dtpr_func[0] != '\0') argument
1634 dtrace_probe_t *probe = ecb->dte_probe; in dtrace_priv_probe() local
1635 dtrace_provider_t *prov = probe->dtpr_provider; in dtrace_priv_probe()
1644 probe->dtpr_id, probe->dtpr_arg); in dtrace_priv_probe()
6906 dtrace_probe_t *probe = ecb->dte_probe; local
6907 dtrace_provider_t *prov = probe->dtpr_provider;
6921 ASSERT(probe != NULL);
6937 for (str = probe->dtpr_mod; *str != '\0'; str++)
6941 for (str = probe->dtpr_func; *str != '\0'; str++)
6945 for (str = probe->dtpr_name; *str != '\0'; str++)
6972 dtrace_probe_t *probe = ecb->dte_probe; local
6977 ASSERT(probe != NULL);
6994 probe->dtpr_provider->dtpv_name, probe->dtpr_mod,
6995 probe->dtpr_func, probe->dtpr_name, (void *)ecb);
7322 dtrace_probe_t *probe; local
7346 probe = dtrace_probes[id - 1];
7350 if (!onintr && probe->dtpr_predcache != DTRACE_CACHEIDNONE &&
7351 probe->dtpr_predcache == curthread->t_predcache) {
7380 mstate.dtms_probe = probe;
7390 for (ecb = probe->dtpr_ecb; ecb != NULL; ecb = ecb->dte_next) {
7396 dtrace_provider_t *prov = probe->dtpr_provider;
7445 if (probe->dtpr_id == dtrace_probeid_begin &&
7464 probe->dtpr_id, probe->dtpr_arg) == 0)
7574 dtrace_cacheid_t cid = probe->dtpr_predcache;
7644 size / sizeof (pc_t), probe->dtpr_aframes,
7645 DTRACE_ANCHORED(probe) ? NULL :
7961 if (probe->dtpr_id == dtrace_probeid_error) {
8085 dtrace_probe_t *probe = bucket->dthb_chain; local
8087 ASSERT(probe != NULL);
8088 ndx = DTRACE_HASHSTR(hash, probe) & new_mask;
8172 dtrace_hash_remove(dtrace_hash_t *hash, dtrace_probe_t *probe) argument
8174 int ndx = DTRACE_HASHSTR(hash, probe) & hash->dth_mask;
8177 dtrace_probe_t **prevp = DTRACE_HASHPREV(hash, probe);
8178 dtrace_probe_t **nextp = DTRACE_HASHNEXT(hash, probe);
8184 if (DTRACE_HASHEQ(hash, bucket->dthb_chain, probe))
8198 ASSERT(bucket->dthb_chain == probe);
8566 dtrace_probe_t template, *probe; local
8578 if ((probe = dtrace_probe_lookup_id(pkp->dtpk_id)) != NULL &&
8579 dtrace_match_probe(probe, pkp, priv, uid, zoneid) > 0) {
8580 (void) (*matched)(probe, arg);
8620 if ((probe = dtrace_probes[i]) == NULL ||
8621 dtrace_match_probe(probe, pkp, priv, uid,
8627 if ((*matched)(probe, arg) != DTRACE_MATCH_NEXT)
8639 for (probe = dtrace_hash_lookup(hash, &template); probe != NULL;
8640 probe = *(DTRACE_HASHNEXT(hash, probe))) {
8642 if (dtrace_match_probe(probe, pkp, priv, uid, zoneid) <= 0)
8647 if ((*matched)(probe, arg) != DTRACE_MATCH_NEXT)
8865 dtrace_probe_t *probe, *first = NULL; local
8917 if ((probe = dtrace_probes[i]) == NULL)
8920 if (probe->dtpr_provider != old)
8923 if (probe->dtpr_ecb == NULL)
8961 if ((probe = dtrace_probes[i]) == NULL)
8964 if (probe->dtpr_provider != old)
8969 dtrace_hash_remove(dtrace_bymod, probe);
8970 dtrace_hash_remove(dtrace_byfunc, probe);
8971 dtrace_hash_remove(dtrace_byname, probe);
8974 first = probe;
8975 probe->dtpr_nextmod = NULL;
8977 probe->dtpr_nextmod = first;
8978 first = probe;
8989 for (probe = first; probe != NULL; probe = first) {
8990 first = probe->dtpr_nextmod;
8992 old->dtpv_pops.dtps_destroy(old->dtpv_arg, probe->dtpr_id,
8993 probe->dtpr_arg);
8994 kmem_free(probe->dtpr_mod, strlen(probe->dtpr_mod) + 1);
8995 kmem_free(probe->dtpr_func, strlen(probe->dtpr_func) + 1);
8996 kmem_free(probe->dtpr_name, strlen(probe->dtpr_name) + 1);
8998 vmem_free(dtrace_arena, (void *)(uintptr_t)(probe->dtpr_id), 1);
9000 free_unr(dtrace_arena, probe->dtpr_id);
9002 kmem_free(probe, sizeof (dtrace_probe_t));
9082 dtrace_probe_t *probe; local
9097 if ((probe = dtrace_probes[i]) == NULL)
9100 if (probe->dtpr_provider != prov)
9103 if (probe->dtpr_ecb != NULL)
9108 dtrace_hash_remove(dtrace_bymod, probe);
9109 dtrace_hash_remove(dtrace_byfunc, probe);
9110 dtrace_hash_remove(dtrace_byname, probe);
9113 probe->dtpr_arg);
9114 kmem_free(probe->dtpr_mod, strlen(probe->dtpr_mod) + 1);
9115 kmem_free(probe->dtpr_func, strlen(probe->dtpr_func) + 1);
9116 kmem_free(probe->dtpr_name, strlen(probe->dtpr_name) + 1);
9117 kmem_free(probe, sizeof (dtrace_probe_t));
9148 dtrace_probe_t *probe, **probes; local
9164 probe = kmem_zalloc(sizeof (dtrace_probe_t), KM_SLEEP);
9166 probe->dtpr_id = id;
9167 probe->dtpr_gen = dtrace_probegen++;
9168 probe->dtpr_mod = dtrace_strdup(mod);
9169 probe->dtpr_func = dtrace_strdup(func);
9170 probe->dtpr_name = dtrace_strdup(name);
9171 probe->dtpr_arg = arg;
9172 probe->dtpr_aframes = aframes;
9173 probe->dtpr_provider = provider;
9175 dtrace_hash_add(dtrace_bymod, probe);
9176 dtrace_hash_add(dtrace_byfunc, probe);
9177 dtrace_hash_add(dtrace_byname, probe);
9216 dtrace_probes[id - 1] = probe;
9236 dtrace_probe_lookup_match(dtrace_probe_t *probe, void *arg) argument
9238 *((dtrace_id_t *)arg) = probe->dtpr_id;
9280 dtrace_probe_t *probe; local
9285 if ((probe = dtrace_probe_lookup_id(pid)) != NULL &&
9286 probe->dtpr_provider == (dtrace_provider_t *)id)
9287 rval = probe->dtpr_arg;
9380 dtrace_probe_t *probe; local
9392 if ((probe = dtrace_probes[i]) == NULL)
9395 if (probe->dtpr_ecb == NULL) {
9402 prov = probe->dtpr_provider;
9406 func(prov->dtpv_arg, i + 1, probe->dtpr_arg);
9476 dof_probe_t *probe; local
9528 probe = (dof_probe_t *)(uintptr_t)(daddr +
9532 if (strlen(strtab + probe->dofpr_func) >= DTRACE_FUNCNAMELEN)
9536 dhpb.dthpb_func = strtab + probe->dofpr_func;
9537 dhpb.dthpb_name = strtab + probe->dofpr_name;
9538 dhpb.dthpb_base = probe->dofpr_addr;
9539 dhpb.dthpb_offs = off + probe->dofpr_offidx;
9540 dhpb.dthpb_noffs = probe->dofpr_noffs;
9542 dhpb.dthpb_enoffs = enoff + probe->dofpr_enoffidx;
9543 dhpb.dthpb_nenoffs = probe->dofpr_nenoffs;
9548 dhpb.dthpb_args = arg + probe->dofpr_argidx;
9549 dhpb.dthpb_nargc = probe->dofpr_nargc;
9550 dhpb.dthpb_xargc = probe->dofpr_xargc;
9551 dhpb.dthpb_ntypes = strtab + probe->dofpr_nargv;
9552 dhpb.dthpb_xtypes = strtab + probe->dofpr_xargv;
11087 dtrace_ecb_add(dtrace_state_t *state, dtrace_probe_t *probe) argument
11096 ecb->dte_probe = probe;
11156 dtrace_probe_t *probe = ecb->dte_probe; local
11162 if (probe == NULL) {
11169 if (probe->dtpr_ecb == NULL) {
11170 dtrace_provider_t *prov = probe->dtpr_provider;
11175 probe->dtpr_ecb = probe->dtpr_ecb_last = ecb;
11178 probe->dtpr_predcache = ecb->dte_predicate->dtp_cacheid;
11181 probe->dtpr_id, probe->dtpr_arg);
11188 ASSERT(probe->dtpr_ecb_last != NULL);
11189 probe->dtpr_ecb_last->dte_next = ecb;
11190 probe->dtpr_ecb_last = ecb;
11191 probe->dtpr_predcache = 0;
11796 dtrace_probe_t *probe = ecb->dte_probe; local
11800 if (probe == NULL) {
11807 for (pecb = probe->dtpr_ecb; pecb != NULL; pecb = pecb->dte_next) {
11816 probe->dtpr_ecb = ecb->dte_next;
11821 if (ecb == probe->dtpr_ecb_last) {
11823 probe->dtpr_ecb_last = prev;
11832 if (probe->dtpr_ecb == NULL) {
11838 dtrace_provider_t *prov = probe->dtpr_provider;
11841 ASSERT(probe->dtpr_ecb_last == NULL);
11842 probe->dtpr_predcache = DTRACE_CACHEIDNONE;
11844 probe->dtpr_id, probe->dtpr_arg);
11852 ASSERT(probe->dtpr_ecb_last != NULL);
11853 ASSERT(probe->dtpr_predcache == DTRACE_CACHEIDNONE);
11855 if (probe->dtpr_ecb == probe->dtpr_ecb_last) {
11856 dtrace_predicate_t *p = probe->dtpr_ecb->dte_predicate;
11858 ASSERT(probe->dtpr_ecb->dte_next == NULL);
11861 probe->dtpr_predcache = p->dtp_cacheid;
11892 dtrace_ecb_create(dtrace_state_t *state, dtrace_probe_t *probe, argument
11904 ecb = dtrace_ecb_add(state, probe);
11912 if (probe != NULL) {
11924 prov = probe->dtpr_provider;
11980 dtrace_ecb_create_enable(dtrace_probe_t *probe, void *arg) argument
11988 if (probe != NULL && probe->dtpr_gen < enab->dten_probegen) {
11997 if ((ecb = dtrace_ecb_create(state, probe, enab)) == NULL)
13122 dtrace_probe_t *probe; local
13131 if ((probe = dtrace_probes[i]) == NULL)
13134 if (probe->dtpr_ecb == NULL)
13137 prov = probe->dtpr_provider;
13170 while ((ecb = probe->dtpr_ecb) != NULL) {
13185 ASSERT(probe->dtpr_ecb != ecb);
13563 dof_probedesc_t *probe; local
13584 probe = (dof_probedesc_t *)(uintptr_t)(daddr + sec->dofs_offset);
13585 strtab = dtrace_dof_sect(dof, DOF_SECT_STRTAB, probe->dofp_strtab);
13593 if (probe->dofp_provider >= strtab->dofs_size) {
13599 (char *)(str + probe->dofp_provider),
13600 MIN(DTRACE_PROVNAMELEN - 1, size - probe->dofp_provider));
13602 if (probe->dofp_mod >= strtab->dofs_size) {
13607 (void) strncpy(desc->dtpd_mod, (char *)(str + probe->dofp_mod),
13608 MIN(DTRACE_MODNAMELEN - 1, size - probe->dofp_mod));
13610 if (probe->dofp_func >= strtab->dofs_size) {
13615 (void) strncpy(desc->dtpd_func, (char *)(str + probe->dofp_func),
13616 MIN(DTRACE_FUNCNAMELEN - 1, size - probe->dofp_func));
13618 if (probe->dofp_name >= strtab->dofs_size) {
13623 (void) strncpy(desc->dtpd_name, (char *)(str + probe->dofp_name),
13624 MIN(DTRACE_NAMELEN - 1, size - probe->dofp_name));
14941 dtrace_probe_t *probe; local
14952 probe = dtrace_probes[dtrace_probeid_end - 1];
14953 ASSERT(probe != NULL);
14955 for (ecb = probe->dtpr_ecb; ecb != NULL; ecb = ecb->dte_next) {
15461 dtrace_probe_t *probe = ecb->dte_probe; local
15462 dtrace_provider_t *prov = probe->dtpr_provider;
16169 dof_probe_t *probe; local
16255 probe = (dof_probe_t *)(uintptr_t)(daddr +
16258 if (probe->dofpr_func >= str_sec->dofs_size) {
16263 if (strlen(strtab + probe->dofpr_func) >= DTRACE_FUNCNAMELEN) {
16274 if (probe->dofpr_name >= str_sec->dofs_size ||
16275 strlen(strtab + probe->dofpr_name) >= DTRACE_NAMELEN) {
16284 if (probe->dofpr_offidx + probe->dofpr_noffs <
16285 probe->dofpr_offidx ||
16286 (probe->dofpr_offidx + probe->dofpr_noffs) *
16300 if (probe->dofpr_enoffidx != 0 ||
16301 probe->dofpr_nenoffs != 0) {
16306 } else if (probe->dofpr_enoffidx +
16307 probe->dofpr_nenoffs < probe->dofpr_enoffidx ||
16308 (probe->dofpr_enoffidx + probe->dofpr_nenoffs) *
16315 if (probe->dofpr_noffs + probe->dofpr_nenoffs == 0) {
16320 } else if (probe->dofpr_noffs == 0) {
16325 if (probe->dofpr_argidx + probe->dofpr_xargc <
16326 probe->dofpr_argidx ||
16327 (probe->dofpr_argidx + probe->dofpr_xargc) *
16333 typeidx = probe->dofpr_nargv;
16334 typestr = strtab + probe->dofpr_nargv;
16335 for (k = 0; k < probe->dofpr_nargc; k++) {
16352 typeidx = probe->dofpr_xargv;
16353 typestr = strtab + probe->dofpr_xargv;
16354 for (k = 0; k < probe->dofpr_xargc; k++) {
16355 if (arg[probe->dofpr_argidx + k] > probe->dofpr_nargc) {
16754 dtrace_probe_t template, *probe, *first, *next; local
16803 for (probe = first = dtrace_hash_lookup(dtrace_bymod, &template);
16804 probe != NULL; probe = probe->dtpr_nextmod) {
16805 if (probe->dtpr_ecb != NULL) {
16836 probe = first;
16838 for (first = NULL; probe != NULL; probe = next) {
16839 ASSERT(dtrace_probes[probe->dtpr_id - 1] == probe);
16841 dtrace_probes[probe->dtpr_id - 1] = NULL;
16843 next = probe->dtpr_nextmod;
16844 dtrace_hash_remove(dtrace_bymod, probe);
16845 dtrace_hash_remove(dtrace_byfunc, probe);
16846 dtrace_hash_remove(dtrace_byname, probe);
16849 first = probe;
16850 probe->dtpr_nextmod = NULL;
16852 probe->dtpr_nextmod = first;
16853 first = probe;
16864 for (probe = first; probe != NULL; probe = first) {
16865 first = probe->dtpr_nextmod;
16866 prov = probe->dtpr_provider;
16867 prov->dtpv_pops.dtps_destroy(prov->dtpv_arg, probe->dtpr_id,
16868 probe->dtpr_arg);
16869 kmem_free(probe->dtpr_mod, strlen(probe->dtpr_mod) + 1);
16870 kmem_free(probe->dtpr_func, strlen(probe->dtpr_func) + 1);
16871 kmem_free(probe->dtpr_name, strlen(probe->dtpr_name) + 1);
16873 vmem_free(dtrace_arena, (void *)(uintptr_t)probe->dtpr_id, 1);
16875 free_unr(dtrace_arena, probe->dtpr_id);
16877 kmem_free(probe, sizeof (dtrace_probe_t));
17762 dtrace_probe_t *probe = NULL; local
17801 if ((probe = dtrace_probes[i - 1]) != NULL &&
17802 (m = dtrace_match_probe(probe, &pkey,
17814 if ((probe = dtrace_probes[i - 1]) != NULL &&
17815 dtrace_match_priv(probe, priv, uid, zoneid))
17820 if (probe == NULL) {
17825 dtrace_probe_description(probe, &desc);
17836 dtrace_probe_t *probe; local
17859 if ((probe = dtrace_probes[desc.dtargd_id - 1]) == NULL) {
17868 prov = probe->dtpr_provider;
17882 probe->dtpr_id, probe->dtpr_arg, &desc);