Lines Matching refs:probe
313 #define DTRACE_HASHSTR(hash, probe) \ argument
314 dtrace_hash_str(*((char **)((uintptr_t)(probe) + (hash)->dth_stroffs)))
316 #define DTRACE_HASHNEXT(hash, probe) \ argument
317 (dtrace_probe_t **)((uintptr_t)(probe) + (hash)->dth_nextoffs)
319 #define DTRACE_HASHPREV(hash, probe) \ argument
320 (dtrace_probe_t **)((uintptr_t)(probe) + (hash)->dth_prevoffs)
448 #define DTRACE_ANCHORED(probe) ((probe)->dtpr_func[0] != '\0') argument
1351 dtrace_probe_t *probe = ecb->dte_probe; in dtrace_priv_probe() local
1352 dtrace_provider_t *prov = probe->dtpr_provider; in dtrace_priv_probe()
1360 probe->dtpr_id, probe->dtpr_arg); in dtrace_priv_probe()
6293 dtrace_probe_t *probe = ecb->dte_probe; in dtrace_action_breakpoint() local
6294 dtrace_provider_t *prov = probe->dtpr_provider; in dtrace_action_breakpoint()
6308 ASSERT(probe != NULL); in dtrace_action_breakpoint()
6324 for (str = probe->dtpr_mod; *str != '\0'; str++) in dtrace_action_breakpoint()
6328 for (str = probe->dtpr_func; *str != '\0'; str++) in dtrace_action_breakpoint()
6332 for (str = probe->dtpr_name; *str != '\0'; str++) in dtrace_action_breakpoint()
6355 dtrace_probe_t *probe = ecb->dte_probe; in dtrace_action_panic() local
6360 ASSERT(probe != NULL); in dtrace_action_panic()
6377 probe->dtpr_provider->dtpv_name, probe->dtpr_mod, in dtrace_action_panic()
6378 probe->dtpr_func, probe->dtpr_name, (void *)ecb); in dtrace_action_panic()
6642 dtrace_probe_t *probe; in dtrace_probe() local
6661 probe = dtrace_probes[id - 1]; in dtrace_probe()
6667 if (!onintr && probe->dtpr_predcache != DTRACE_CACHEIDNONE && in dtrace_probe()
6668 probe->dtpr_predcache == curthread->t_predcache) { in dtrace_probe()
6693 mstate.dtms_probe = probe; in dtrace_probe()
6703 for (ecb = probe->dtpr_ecb; ecb != NULL; ecb = ecb->dte_next) { in dtrace_probe()
6709 dtrace_provider_t *prov = probe->dtpr_provider; in dtrace_probe()
6763 if (probe->dtpr_id == dtrace_probeid_begin && in dtrace_probe()
6831 dtrace_cacheid_t cid = probe->dtpr_predcache; in dtrace_probe()
6902 size / sizeof (pc_t), probe->dtpr_aframes, in dtrace_probe()
6903 DTRACE_ANCHORED(probe) ? NULL : in dtrace_probe()
7180 if (probe->dtpr_id == dtrace_probeid_error) { in dtrace_probe()
7307 dtrace_probe_t *probe = bucket->dthb_chain; in dtrace_hash_resize() local
7309 ASSERT(probe != NULL); in dtrace_hash_resize()
7310 ndx = DTRACE_HASHSTR(hash, probe) & new_mask; in dtrace_hash_resize()
7394 dtrace_hash_remove(dtrace_hash_t *hash, dtrace_probe_t *probe) in dtrace_hash_remove() argument
7396 int ndx = DTRACE_HASHSTR(hash, probe) & hash->dth_mask; in dtrace_hash_remove()
7399 dtrace_probe_t **prevp = DTRACE_HASHPREV(hash, probe); in dtrace_hash_remove()
7400 dtrace_probe_t **nextp = DTRACE_HASHNEXT(hash, probe); in dtrace_hash_remove()
7406 if (DTRACE_HASHEQ(hash, bucket->dthb_chain, probe)) in dtrace_hash_remove()
7420 ASSERT(bucket->dthb_chain == probe); in dtrace_hash_remove()
7784 dtrace_probe_t template, *probe; in dtrace_match() local
7796 if ((probe = dtrace_probe_lookup_id(pkp->dtpk_id)) != NULL && in dtrace_match()
7797 dtrace_match_probe(probe, pkp, priv, uid, zoneid) > 0) { in dtrace_match()
7798 if ((*matched)(probe, arg) == DTRACE_MATCH_FAIL) in dtrace_match()
7839 if ((probe = dtrace_probes[i]) == NULL || in dtrace_match()
7840 dtrace_match_probe(probe, pkp, priv, uid, in dtrace_match()
7846 if ((rc = (*matched)(probe, arg)) != in dtrace_match()
7862 for (probe = dtrace_hash_lookup(hash, &template); probe != NULL; in dtrace_match()
7863 probe = *(DTRACE_HASHNEXT(hash, probe))) { in dtrace_match()
7865 if (dtrace_match_probe(probe, pkp, priv, uid, zoneid) <= 0) in dtrace_match()
7870 if ((rc = (*matched)(probe, arg)) != DTRACE_MATCH_NEXT) { in dtrace_match()
8091 dtrace_probe_t *probe, *first = NULL; in dtrace_unregister() local
8137 if ((probe = dtrace_probes[i]) == NULL) in dtrace_unregister()
8140 if (probe->dtpr_provider != old) in dtrace_unregister()
8143 if (probe->dtpr_ecb == NULL) in dtrace_unregister()
8179 if ((probe = dtrace_probes[i]) == NULL) in dtrace_unregister()
8182 if (probe->dtpr_provider != old) in dtrace_unregister()
8187 dtrace_hash_remove(dtrace_bymod, probe); in dtrace_unregister()
8188 dtrace_hash_remove(dtrace_byfunc, probe); in dtrace_unregister()
8189 dtrace_hash_remove(dtrace_byname, probe); in dtrace_unregister()
8192 first = probe; in dtrace_unregister()
8193 probe->dtpr_nextmod = NULL; in dtrace_unregister()
8195 probe->dtpr_nextmod = first; in dtrace_unregister()
8196 first = probe; in dtrace_unregister()
8207 for (probe = first; probe != NULL; probe = first) { in dtrace_unregister()
8208 first = probe->dtpr_nextmod; in dtrace_unregister()
8210 old->dtpv_pops.dtps_destroy(old->dtpv_arg, probe->dtpr_id, in dtrace_unregister()
8211 probe->dtpr_arg); in dtrace_unregister()
8212 kmem_free(probe->dtpr_mod, strlen(probe->dtpr_mod) + 1); in dtrace_unregister()
8213 kmem_free(probe->dtpr_func, strlen(probe->dtpr_func) + 1); in dtrace_unregister()
8214 kmem_free(probe->dtpr_name, strlen(probe->dtpr_name) + 1); in dtrace_unregister()
8215 vmem_free(dtrace_arena, (void *)(uintptr_t)(probe->dtpr_id), 1); in dtrace_unregister()
8216 kmem_free(probe, sizeof (dtrace_probe_t)); in dtrace_unregister()
8292 dtrace_probe_t *probe; in dtrace_condense() local
8307 if ((probe = dtrace_probes[i]) == NULL) in dtrace_condense()
8310 if (probe->dtpr_provider != prov) in dtrace_condense()
8313 if (probe->dtpr_ecb != NULL) in dtrace_condense()
8318 dtrace_hash_remove(dtrace_bymod, probe); in dtrace_condense()
8319 dtrace_hash_remove(dtrace_byfunc, probe); in dtrace_condense()
8320 dtrace_hash_remove(dtrace_byname, probe); in dtrace_condense()
8323 probe->dtpr_arg); in dtrace_condense()
8324 kmem_free(probe->dtpr_mod, strlen(probe->dtpr_mod) + 1); in dtrace_condense()
8325 kmem_free(probe->dtpr_func, strlen(probe->dtpr_func) + 1); in dtrace_condense()
8326 kmem_free(probe->dtpr_name, strlen(probe->dtpr_name) + 1); in dtrace_condense()
8327 kmem_free(probe, sizeof (dtrace_probe_t)); in dtrace_condense()
8354 dtrace_probe_t *probe, **probes; in dtrace_probe_create() local
8366 probe = kmem_zalloc(sizeof (dtrace_probe_t), KM_SLEEP); in dtrace_probe_create()
8368 probe->dtpr_id = id; in dtrace_probe_create()
8369 probe->dtpr_gen = dtrace_probegen++; in dtrace_probe_create()
8370 probe->dtpr_mod = dtrace_strdup(mod); in dtrace_probe_create()
8371 probe->dtpr_func = dtrace_strdup(func); in dtrace_probe_create()
8372 probe->dtpr_name = dtrace_strdup(name); in dtrace_probe_create()
8373 probe->dtpr_arg = arg; in dtrace_probe_create()
8374 probe->dtpr_aframes = aframes; in dtrace_probe_create()
8375 probe->dtpr_provider = provider; in dtrace_probe_create()
8377 dtrace_hash_add(dtrace_bymod, probe); in dtrace_probe_create()
8378 dtrace_hash_add(dtrace_byfunc, probe); in dtrace_probe_create()
8379 dtrace_hash_add(dtrace_byname, probe); in dtrace_probe_create()
8418 dtrace_probes[id - 1] = probe; in dtrace_probe_create()
8438 dtrace_probe_lookup_match(dtrace_probe_t *probe, void *arg) in dtrace_probe_lookup_match() argument
8440 *((dtrace_id_t *)arg) = probe->dtpr_id; in dtrace_probe_lookup_match()
8482 dtrace_probe_t *probe; in dtrace_probe_arg() local
8487 if ((probe = dtrace_probe_lookup_id(pid)) != NULL && in dtrace_probe_arg()
8488 probe->dtpr_provider == (dtrace_provider_t *)id) in dtrace_probe_arg()
8489 rval = probe->dtpr_arg; in dtrace_probe_arg()
8577 dtrace_probe_t *probe; in dtrace_probe_foreach() local
8589 if ((probe = dtrace_probes[i]) == NULL) in dtrace_probe_foreach()
8592 if (probe->dtpr_ecb == NULL) { in dtrace_probe_foreach()
8599 prov = probe->dtpr_provider; in dtrace_probe_foreach()
8603 func(prov->dtpv_arg, i + 1, probe->dtpr_arg); in dtrace_probe_foreach()
8672 dof_probe_t *probe; in dtrace_helper_provide_one() local
8724 probe = (dof_probe_t *)(uintptr_t)(daddr + in dtrace_helper_provide_one()
8728 dhpb.dthpb_func = strtab + probe->dofpr_func; in dtrace_helper_provide_one()
8729 dhpb.dthpb_name = strtab + probe->dofpr_name; in dtrace_helper_provide_one()
8730 dhpb.dthpb_base = probe->dofpr_addr; in dtrace_helper_provide_one()
8731 dhpb.dthpb_offs = off + probe->dofpr_offidx; in dtrace_helper_provide_one()
8732 dhpb.dthpb_noffs = probe->dofpr_noffs; in dtrace_helper_provide_one()
8734 dhpb.dthpb_enoffs = enoff + probe->dofpr_enoffidx; in dtrace_helper_provide_one()
8735 dhpb.dthpb_nenoffs = probe->dofpr_nenoffs; in dtrace_helper_provide_one()
8740 dhpb.dthpb_args = arg + probe->dofpr_argidx; in dtrace_helper_provide_one()
8741 dhpb.dthpb_nargc = probe->dofpr_nargc; in dtrace_helper_provide_one()
8742 dhpb.dthpb_xargc = probe->dofpr_xargc; in dtrace_helper_provide_one()
8743 dhpb.dthpb_ntypes = strtab + probe->dofpr_nargv; in dtrace_helper_provide_one()
8744 dhpb.dthpb_xtypes = strtab + probe->dofpr_xargv; in dtrace_helper_provide_one()
10202 dtrace_ecb_add(dtrace_state_t *state, dtrace_probe_t *probe) in dtrace_ecb_add() argument
10211 ecb->dte_probe = probe; in dtrace_ecb_add()
10271 dtrace_probe_t *probe = ecb->dte_probe; in dtrace_ecb_enable() local
10277 if (probe == NULL) { in dtrace_ecb_enable()
10284 if (probe->dtpr_ecb == NULL) { in dtrace_ecb_enable()
10285 dtrace_provider_t *prov = probe->dtpr_provider; in dtrace_ecb_enable()
10290 probe->dtpr_ecb = probe->dtpr_ecb_last = ecb; in dtrace_ecb_enable()
10293 probe->dtpr_predcache = ecb->dte_predicate->dtp_cacheid; in dtrace_ecb_enable()
10296 probe->dtpr_id, probe->dtpr_arg)); in dtrace_ecb_enable()
10303 ASSERT(probe->dtpr_ecb_last != NULL); in dtrace_ecb_enable()
10304 probe->dtpr_ecb_last->dte_next = ecb; in dtrace_ecb_enable()
10305 probe->dtpr_ecb_last = ecb; in dtrace_ecb_enable()
10306 probe->dtpr_predcache = 0; in dtrace_ecb_enable()
10891 dtrace_probe_t *probe = ecb->dte_probe; in dtrace_ecb_disable() local
10895 if (probe == NULL) { in dtrace_ecb_disable()
10902 for (pecb = probe->dtpr_ecb; pecb != NULL; pecb = pecb->dte_next) { in dtrace_ecb_disable()
10911 probe->dtpr_ecb = ecb->dte_next; in dtrace_ecb_disable()
10916 if (ecb == probe->dtpr_ecb_last) { in dtrace_ecb_disable()
10918 probe->dtpr_ecb_last = prev; in dtrace_ecb_disable()
10927 if (probe->dtpr_ecb == NULL) { in dtrace_ecb_disable()
10933 dtrace_provider_t *prov = probe->dtpr_provider; in dtrace_ecb_disable()
10936 ASSERT(probe->dtpr_ecb_last == NULL); in dtrace_ecb_disable()
10937 probe->dtpr_predcache = DTRACE_CACHEIDNONE; in dtrace_ecb_disable()
10939 probe->dtpr_id, probe->dtpr_arg); in dtrace_ecb_disable()
10947 ASSERT(probe->dtpr_ecb_last != NULL); in dtrace_ecb_disable()
10948 ASSERT(probe->dtpr_predcache == DTRACE_CACHEIDNONE); in dtrace_ecb_disable()
10950 if (probe->dtpr_ecb == probe->dtpr_ecb_last) { in dtrace_ecb_disable()
10951 dtrace_predicate_t *p = probe->dtpr_ecb->dte_predicate; in dtrace_ecb_disable()
10953 ASSERT(probe->dtpr_ecb->dte_next == NULL); in dtrace_ecb_disable()
10956 probe->dtpr_predcache = p->dtp_cacheid; in dtrace_ecb_disable()
10987 dtrace_ecb_create(dtrace_state_t *state, dtrace_probe_t *probe, in dtrace_ecb_create() argument
10999 ecb = dtrace_ecb_add(state, probe); in dtrace_ecb_create()
11007 if (probe != NULL) { in dtrace_ecb_create()
11019 prov = probe->dtpr_provider; in dtrace_ecb_create()
11072 dtrace_ecb_create_enable(dtrace_probe_t *probe, void *arg) in dtrace_ecb_create_enable() argument
11080 if (probe != NULL && probe->dtpr_gen < enab->dten_probegen) { in dtrace_ecb_create_enable()
11089 if ((ecb = dtrace_ecb_create(state, probe, enab)) == NULL) in dtrace_ecb_create_enable()
12114 dtrace_probe_t *probe; in dtrace_enabling_reap() local
12123 if ((probe = dtrace_probes[i]) == NULL) in dtrace_enabling_reap()
12126 if (probe->dtpr_ecb == NULL) in dtrace_enabling_reap()
12129 prov = probe->dtpr_provider; in dtrace_enabling_reap()
12162 while ((ecb = probe->dtpr_ecb) != NULL) { in dtrace_enabling_reap()
12177 ASSERT(probe->dtpr_ecb != ecb); in dtrace_enabling_reap()
12392 dof_probedesc_t *probe; in dtrace_dof_probedesc() local
12413 probe = (dof_probedesc_t *)(uintptr_t)(daddr + sec->dofs_offset); in dtrace_dof_probedesc()
12414 strtab = dtrace_dof_sect(dof, DOF_SECT_STRTAB, probe->dofp_strtab); in dtrace_dof_probedesc()
12422 if (probe->dofp_provider >= strtab->dofs_size) { in dtrace_dof_probedesc()
12428 (char *)(str + probe->dofp_provider), in dtrace_dof_probedesc()
12429 MIN(DTRACE_PROVNAMELEN - 1, size - probe->dofp_provider)); in dtrace_dof_probedesc()
12431 if (probe->dofp_mod >= strtab->dofs_size) { in dtrace_dof_probedesc()
12436 (void) strncpy(desc->dtpd_mod, (char *)(str + probe->dofp_mod), in dtrace_dof_probedesc()
12437 MIN(DTRACE_MODNAMELEN - 1, size - probe->dofp_mod)); in dtrace_dof_probedesc()
12439 if (probe->dofp_func >= strtab->dofs_size) { in dtrace_dof_probedesc()
12444 (void) strncpy(desc->dtpd_func, (char *)(str + probe->dofp_func), in dtrace_dof_probedesc()
12445 MIN(DTRACE_FUNCNAMELEN - 1, size - probe->dofp_func)); in dtrace_dof_probedesc()
12447 if (probe->dofp_name >= strtab->dofs_size) { in dtrace_dof_probedesc()
12452 (void) strncpy(desc->dtpd_name, (char *)(str + probe->dofp_name), in dtrace_dof_probedesc()
12453 MIN(DTRACE_NAMELEN - 1, size - probe->dofp_name)); in dtrace_dof_probedesc()
13644 dtrace_probe_t *probe; in dtrace_state_prereserve() local
13655 probe = dtrace_probes[dtrace_probeid_end - 1]; in dtrace_state_prereserve()
13656 ASSERT(probe != NULL); in dtrace_state_prereserve()
13658 for (ecb = probe->dtpr_ecb; ecb != NULL; ecb = ecb->dte_next) { in dtrace_state_prereserve()
14136 dtrace_probe_t *probe = ecb->dte_probe; in dtrace_state_destroy() local
14137 dtrace_provider_t *prov = probe->dtpr_provider; in dtrace_state_destroy()
14826 dof_probe_t *probe; in dtrace_helper_provider_validate() local
14912 probe = (dof_probe_t *)(uintptr_t)(daddr + in dtrace_helper_provider_validate()
14915 if (probe->dofpr_func >= str_sec->dofs_size) { in dtrace_helper_provider_validate()
14920 if (strlen(strtab + probe->dofpr_func) >= DTRACE_FUNCNAMELEN) { in dtrace_helper_provider_validate()
14925 if (probe->dofpr_name >= str_sec->dofs_size || in dtrace_helper_provider_validate()
14926 strlen(strtab + probe->dofpr_name) >= DTRACE_NAMELEN) { in dtrace_helper_provider_validate()
14935 if (probe->dofpr_offidx + probe->dofpr_noffs < in dtrace_helper_provider_validate()
14936 probe->dofpr_offidx || in dtrace_helper_provider_validate()
14937 (probe->dofpr_offidx + probe->dofpr_noffs) * in dtrace_helper_provider_validate()
14951 if (probe->dofpr_enoffidx != 0 || in dtrace_helper_provider_validate()
14952 probe->dofpr_nenoffs != 0) { in dtrace_helper_provider_validate()
14957 } else if (probe->dofpr_enoffidx + in dtrace_helper_provider_validate()
14958 probe->dofpr_nenoffs < probe->dofpr_enoffidx || in dtrace_helper_provider_validate()
14959 (probe->dofpr_enoffidx + probe->dofpr_nenoffs) * in dtrace_helper_provider_validate()
14966 if (probe->dofpr_noffs + probe->dofpr_nenoffs == 0) { in dtrace_helper_provider_validate()
14971 } else if (probe->dofpr_noffs == 0) { in dtrace_helper_provider_validate()
14976 if (probe->dofpr_argidx + probe->dofpr_xargc < in dtrace_helper_provider_validate()
14977 probe->dofpr_argidx || in dtrace_helper_provider_validate()
14978 (probe->dofpr_argidx + probe->dofpr_xargc) * in dtrace_helper_provider_validate()
14984 typeidx = probe->dofpr_nargv; in dtrace_helper_provider_validate()
14985 typestr = strtab + probe->dofpr_nargv; in dtrace_helper_provider_validate()
14986 for (k = 0; k < probe->dofpr_nargc; k++) { in dtrace_helper_provider_validate()
15003 typeidx = probe->dofpr_xargv; in dtrace_helper_provider_validate()
15004 typestr = strtab + probe->dofpr_xargv; in dtrace_helper_provider_validate()
15005 for (k = 0; k < probe->dofpr_xargc; k++) { in dtrace_helper_provider_validate()
15006 if (arg[probe->dofpr_argidx + k] > probe->dofpr_nargc) { in dtrace_helper_provider_validate()
15381 dtrace_probe_t template, *probe, *first, *next; in dtrace_module_unloaded() local
15401 for (probe = first = dtrace_hash_lookup(dtrace_bymod, &template); in dtrace_module_unloaded()
15402 probe != NULL; probe = probe->dtpr_nextmod) { in dtrace_module_unloaded()
15403 if (probe->dtpr_ecb != NULL) { in dtrace_module_unloaded()
15427 probe = first; in dtrace_module_unloaded()
15429 for (first = NULL; probe != NULL; probe = next) { in dtrace_module_unloaded()
15430 ASSERT(dtrace_probes[probe->dtpr_id - 1] == probe); in dtrace_module_unloaded()
15432 dtrace_probes[probe->dtpr_id - 1] = NULL; in dtrace_module_unloaded()
15434 next = probe->dtpr_nextmod; in dtrace_module_unloaded()
15435 dtrace_hash_remove(dtrace_bymod, probe); in dtrace_module_unloaded()
15436 dtrace_hash_remove(dtrace_byfunc, probe); in dtrace_module_unloaded()
15437 dtrace_hash_remove(dtrace_byname, probe); in dtrace_module_unloaded()
15440 first = probe; in dtrace_module_unloaded()
15441 probe->dtpr_nextmod = NULL; in dtrace_module_unloaded()
15443 probe->dtpr_nextmod = first; in dtrace_module_unloaded()
15444 first = probe; in dtrace_module_unloaded()
15455 for (probe = first; probe != NULL; probe = first) { in dtrace_module_unloaded()
15456 first = probe->dtpr_nextmod; in dtrace_module_unloaded()
15457 prov = probe->dtpr_provider; in dtrace_module_unloaded()
15458 prov->dtpv_pops.dtps_destroy(prov->dtpv_arg, probe->dtpr_id, in dtrace_module_unloaded()
15459 probe->dtpr_arg); in dtrace_module_unloaded()
15460 kmem_free(probe->dtpr_mod, strlen(probe->dtpr_mod) + 1); in dtrace_module_unloaded()
15461 kmem_free(probe->dtpr_func, strlen(probe->dtpr_func) + 1); in dtrace_module_unloaded()
15462 kmem_free(probe->dtpr_name, strlen(probe->dtpr_name) + 1); in dtrace_module_unloaded()
15463 vmem_free(dtrace_arena, (void *)(uintptr_t)probe->dtpr_id, 1); in dtrace_module_unloaded()
15464 kmem_free(probe, sizeof (dtrace_probe_t)); in dtrace_module_unloaded()
16264 dtrace_probe_t *probe = NULL; in dtrace_ioctl() local
16303 if ((probe = dtrace_probes[i - 1]) != NULL && in dtrace_ioctl()
16304 (m = dtrace_match_probe(probe, &pkey, in dtrace_ioctl()
16316 if ((probe = dtrace_probes[i - 1]) != NULL && in dtrace_ioctl()
16317 dtrace_match_priv(probe, priv, uid, zoneid)) in dtrace_ioctl()
16322 if (probe == NULL) { in dtrace_ioctl()
16327 dtrace_probe_description(probe, &desc); in dtrace_ioctl()
16338 dtrace_probe_t *probe; in dtrace_ioctl() local
16361 if ((probe = dtrace_probes[desc.dtargd_id - 1]) == NULL) { in dtrace_ioctl()
16370 prov = probe->dtpr_provider; in dtrace_ioctl()
16384 probe->dtpr_id, probe->dtpr_arg, &desc); in dtrace_ioctl()