Lines Matching refs:probe

621 #define	DTRACE_ANCHORED(probe)	((probe)->dtpr_func[0] != '\0')  argument
6588 dtrace_probe_t *probe = ecb->dte_probe; in dtrace_action_breakpoint() local
6589 dtrace_provider_t *prov = probe->dtpr_provider; in dtrace_action_breakpoint()
6603 ASSERT(probe != NULL); in dtrace_action_breakpoint()
6619 for (str = probe->dtpr_mod; *str != '\0'; str++) in dtrace_action_breakpoint()
6623 for (str = probe->dtpr_func; *str != '\0'; str++) in dtrace_action_breakpoint()
6627 for (str = probe->dtpr_name; *str != '\0'; str++) in dtrace_action_breakpoint()
6651 dtrace_probe_t *probe = ecb->dte_probe; in dtrace_action_panic() local
6656 ASSERT(probe != NULL); in dtrace_action_panic()
6673 probe->dtpr_provider->dtpv_name, probe->dtpr_mod, in dtrace_action_panic()
6674 probe->dtpr_func, probe->dtpr_name, (void *)ecb); in dtrace_action_panic()
7053 dtrace_probe_t *probe; in dtrace_probe() local
7071 probe = dtrace_probes[id - 1]; in dtrace_probe()
7072 if (probe == NULL) { in dtrace_probe()
7080 if (!onintr && probe->dtpr_predcache != DTRACE_CACHEIDNONE && in dtrace_probe()
7081 probe->dtpr_predcache == dtrace_get_thread_predcache(current_thread())) { in dtrace_probe()
7156 mstate.dtms_probe = probe; in dtrace_probe()
7166 for (ecb = probe->dtpr_ecb; ecb != NULL; ecb = ecb->dte_next) { in dtrace_probe()
7172 dtrace_provider_t *prov = probe->dtpr_provider; in dtrace_probe()
7223 if (probe->dtpr_id == dtrace_probeid_begin && in dtrace_probe()
7243 probe->dtpr_id, probe->dtpr_arg) == 0) in dtrace_probe()
7370 dtrace_cacheid_t cid = probe->dtpr_predcache; in dtrace_probe()
7441 size / sizeof (pc_t), probe->dtpr_aframes, in dtrace_probe()
7442 DTRACE_ANCHORED(probe) ? NULL : in dtrace_probe()
7708 if (probe->dtpr_id == dtrace_probeid_error) { in dtrace_probe()
7807 dtrace_probe_t *probe = (dtrace_probe_t*)elm; in dtrace_strkey_probe_provider() local
7808 return probe->dtpr_provider->dtpv_name; in dtrace_strkey_probe_provider()
8433 dtrace_probe_t *probe; in dtrace_match() local
8456 if ((probe = dtrace_probe_lookup_id(pkp->dtpk_id)) != NULL && in dtrace_match()
8457 dtrace_match_probe(probe, pkp, priv, uid, zoneid) > 0) { in dtrace_match()
8458 if ((*matched)(probe, arg1, arg2) == DTRACE_MATCH_FAIL) in dtrace_match()
8502 if ((probe = dtrace_probes[i]) == NULL || in dtrace_match()
8503 dtrace_match_probe(probe, pkp, priv, uid, in dtrace_match()
8509 if ((rc = (*matched)(probe, arg1, arg2)) != DTRACE_MATCH_NEXT) { in dtrace_match()
8524 for (probe = dtrace_hash_lookup(hash, &template); probe != NULL; in dtrace_match()
8525 probe = *(DTRACE_HASHNEXT(hash, probe))) { in dtrace_match()
8527 if (dtrace_match_probe(probe, pkp, priv, uid, zoneid) <= 0) in dtrace_match()
8532 if ((rc = (*matched)(probe, arg1, arg2)) != DTRACE_MATCH_NEXT) { in dtrace_match()
8795 dtrace_probe_t *probe, *first = NULL, *next = NULL; in dtrace_unregister() local
8859 for (probe = dtrace_hash_lookup(dtrace_byprov, &template); probe != NULL; in dtrace_unregister()
8860 probe = *(DTRACE_HASHNEXT(dtrace_byprov, probe))) { in dtrace_unregister()
8861 if (probe->dtpr_provider != old) in dtrace_unregister()
8864 dtrace_probes[probe->dtpr_id - 1] = NULL; in dtrace_unregister()
8867 dtrace_hash_remove(dtrace_bymod, probe); in dtrace_unregister()
8868 dtrace_hash_remove(dtrace_byfunc, probe); in dtrace_unregister()
8869 dtrace_hash_remove(dtrace_byname, probe); in dtrace_unregister()
8872 first = probe; in dtrace_unregister()
8873 probe->dtpr_nextmod = NULL; in dtrace_unregister()
8878 probe->dtpr_nextmod = first; in dtrace_unregister()
8879 first = probe; in dtrace_unregister()
8883 for (probe = first; probe != NULL; probe = next) { in dtrace_unregister()
8884 next = probe->dtpr_nextmod; in dtrace_unregister()
8885 dtrace_hash_remove(dtrace_byprov, probe); in dtrace_unregister()
8895 for (probe = first; probe != NULL; probe = next) { in dtrace_unregister()
8896 next = probe->dtpr_nextmod; in dtrace_unregister()
8898 old->dtpv_pops.dtps_destroy(old->dtpv_arg, probe->dtpr_id, in dtrace_unregister()
8899 probe->dtpr_arg); in dtrace_unregister()
8900 dtrace_strunref(probe->dtpr_mod); in dtrace_unregister()
8901 dtrace_strunref(probe->dtpr_func); in dtrace_unregister()
8902 dtrace_strunref(probe->dtpr_name); in dtrace_unregister()
8903 vmem_free(dtrace_arena, (void *)(uintptr_t)(probe->dtpr_id), 1); in dtrace_unregister()
8904 zfree(dtrace_probe_t_zone, probe); in dtrace_unregister()
8980 dtrace_probe_t *probe, *first = NULL; in dtrace_condense() local
8997 for (probe = dtrace_hash_lookup(dtrace_byprov, &template); probe != NULL; in dtrace_condense()
8998 probe = *(DTRACE_HASHNEXT(dtrace_byprov, probe))) { in dtrace_condense()
9000 if (probe->dtpr_provider != prov) in dtrace_condense()
9003 if (probe->dtpr_ecb != NULL) in dtrace_condense()
9006 dtrace_probes[probe->dtpr_id - 1] = NULL; in dtrace_condense()
9009 dtrace_hash_remove(dtrace_bymod, probe); in dtrace_condense()
9010 dtrace_hash_remove(dtrace_byfunc, probe); in dtrace_condense()
9011 dtrace_hash_remove(dtrace_byname, probe); in dtrace_condense()
9013 prov->dtpv_pops.dtps_destroy(prov->dtpv_arg, probe->dtpr_id, in dtrace_condense()
9014 probe->dtpr_arg); in dtrace_condense()
9015 dtrace_strunref(probe->dtpr_mod); in dtrace_condense()
9016 dtrace_strunref(probe->dtpr_func); in dtrace_condense()
9017 dtrace_strunref(probe->dtpr_name); in dtrace_condense()
9019 first = probe; in dtrace_condense()
9020 probe->dtpr_nextmod = NULL; in dtrace_condense()
9025 probe->dtpr_nextmod = first; in dtrace_condense()
9026 first = probe; in dtrace_condense()
9030 for (probe = first; probe != NULL; probe = first) { in dtrace_condense()
9031 first = probe->dtpr_nextmod; in dtrace_condense()
9032 dtrace_hash_remove(dtrace_byprov, probe); in dtrace_condense()
9033 vmem_free(dtrace_arena, (void *)((uintptr_t)probe->dtpr_id), 1); in dtrace_condense()
9034 zfree(dtrace_probe_t_zone, probe); in dtrace_condense()
9060 dtrace_probe_t *probe, **probes; in dtrace_probe_create() local
9073 probe = zalloc_flags(dtrace_probe_t_zone, Z_WAITOK | Z_ZERO); in dtrace_probe_create()
9075 probe->dtpr_id = id; in dtrace_probe_create()
9076 probe->dtpr_gen = dtrace_probegen++; in dtrace_probe_create()
9077 probe->dtpr_mod = dtrace_strref(mod); in dtrace_probe_create()
9078 probe->dtpr_func = dtrace_strref(func); in dtrace_probe_create()
9079 probe->dtpr_name = dtrace_strref(name); in dtrace_probe_create()
9080 probe->dtpr_arg = arg; in dtrace_probe_create()
9081 probe->dtpr_aframes = aframes; in dtrace_probe_create()
9082 probe->dtpr_provider = provider; in dtrace_probe_create()
9084 dtrace_hash_add(dtrace_byprov, probe); in dtrace_probe_create()
9085 dtrace_hash_add(dtrace_bymod, probe); in dtrace_probe_create()
9086 dtrace_hash_add(dtrace_byfunc, probe); in dtrace_probe_create()
9087 dtrace_hash_add(dtrace_byname, probe); in dtrace_probe_create()
9114 dtrace_probes[id - 1] = probe; in dtrace_probe_create()
9135 dtrace_probe_lookup_match(dtrace_probe_t *probe, void *arg1, void *arg2) in dtrace_probe_lookup_match() argument
9138 *((dtrace_id_t *)arg1) = probe->dtpr_id; in dtrace_probe_lookup_match()
9184 dtrace_probe_t *probe; in dtrace_probe_arg() local
9189 if ((probe = dtrace_probe_lookup_id(pid)) != NULL && in dtrace_probe_arg()
9190 probe->dtpr_provider == (dtrace_provider_t *)id) in dtrace_probe_arg()
9191 rval = probe->dtpr_arg; in dtrace_probe_arg()
9277 dtrace_probe_t *probe; in dtrace_probe_foreach() local
9289 if ((probe = dtrace_probes[i]) == NULL) in dtrace_probe_foreach()
9292 if (probe->dtpr_ecb == NULL) { in dtrace_probe_foreach()
9299 prov = probe->dtpr_provider; in dtrace_probe_foreach()
9303 func(prov->dtpv_arg, i + 1, probe->dtpr_arg); in dtrace_probe_foreach()
9377 dof_probe_t *probe; in dtrace_helper_provide_one() local
9429 probe = (dof_probe_t *)(uintptr_t)(daddr + in dtrace_helper_provide_one()
9433 dhpb.dthpb_func = strtab + probe->dofpr_func; in dtrace_helper_provide_one()
9434 dhpb.dthpb_name = strtab + probe->dofpr_name; in dtrace_helper_provide_one()
9436 dhpb.dthpb_base = probe->dofpr_addr; in dtrace_helper_provide_one()
9440 dhpb.dthpb_offs = (int32_t *)(off + probe->dofpr_offidx); in dtrace_helper_provide_one()
9441 dhpb.dthpb_noffs = probe->dofpr_noffs; in dtrace_helper_provide_one()
9443 dhpb.dthpb_enoffs = (int32_t *)(enoff + probe->dofpr_enoffidx); in dtrace_helper_provide_one()
9444 dhpb.dthpb_nenoffs = probe->dofpr_nenoffs; in dtrace_helper_provide_one()
9449 dhpb.dthpb_args = arg + probe->dofpr_argidx; in dtrace_helper_provide_one()
9450 dhpb.dthpb_nargc = probe->dofpr_nargc; in dtrace_helper_provide_one()
9451 dhpb.dthpb_xargc = probe->dofpr_xargc; in dtrace_helper_provide_one()
9452 dhpb.dthpb_ntypes = strtab + probe->dofpr_nargv; in dtrace_helper_provide_one()
9453 dhpb.dthpb_xtypes = strtab + probe->dofpr_xargv; in dtrace_helper_provide_one()
11012 dtrace_ecb_add(dtrace_state_t *state, dtrace_probe_t *probe) in dtrace_ecb_add() argument
11021 ecb->dte_probe = probe; in dtrace_ecb_add()
11081 dtrace_probe_t *probe = ecb->dte_probe; in dtrace_ecb_enable() local
11087 if (probe == NULL) { in dtrace_ecb_enable()
11094 probe->dtpr_provider->dtpv_ecb_count++; in dtrace_ecb_enable()
11095 if (probe->dtpr_ecb == NULL) { in dtrace_ecb_enable()
11096 dtrace_provider_t *prov = probe->dtpr_provider; in dtrace_ecb_enable()
11101 probe->dtpr_ecb = probe->dtpr_ecb_last = ecb; in dtrace_ecb_enable()
11104 probe->dtpr_predcache = ecb->dte_predicate->dtp_cacheid; in dtrace_ecb_enable()
11107 probe->dtpr_id, probe->dtpr_arg)); in dtrace_ecb_enable()
11114 ASSERT(probe->dtpr_ecb_last != NULL); in dtrace_ecb_enable()
11115 probe->dtpr_ecb_last->dte_next = ecb; in dtrace_ecb_enable()
11116 probe->dtpr_ecb_last = ecb; in dtrace_ecb_enable()
11117 probe->dtpr_predcache = 0; in dtrace_ecb_enable()
11706 dtrace_probe_t *probe = ecb->dte_probe; in dtrace_ecb_disable() local
11710 if (probe == NULL) { in dtrace_ecb_disable()
11717 for (pecb = probe->dtpr_ecb; pecb != NULL; pecb = pecb->dte_next) { in dtrace_ecb_disable()
11726 probe->dtpr_ecb = ecb->dte_next; in dtrace_ecb_disable()
11731 if (ecb == probe->dtpr_ecb_last) { in dtrace_ecb_disable()
11733 probe->dtpr_ecb_last = prev; in dtrace_ecb_disable()
11736 probe->dtpr_provider->dtpv_ecb_count--; in dtrace_ecb_disable()
11743 if (probe->dtpr_ecb == NULL) { in dtrace_ecb_disable()
11749 dtrace_provider_t *prov = probe->dtpr_provider; in dtrace_ecb_disable()
11752 ASSERT(probe->dtpr_ecb_last == NULL); in dtrace_ecb_disable()
11753 probe->dtpr_predcache = DTRACE_CACHEIDNONE; in dtrace_ecb_disable()
11755 probe->dtpr_id, probe->dtpr_arg); in dtrace_ecb_disable()
11763 ASSERT(probe->dtpr_ecb_last != NULL); in dtrace_ecb_disable()
11764 ASSERT(probe->dtpr_predcache == DTRACE_CACHEIDNONE); in dtrace_ecb_disable()
11766 if (probe->dtpr_ecb == probe->dtpr_ecb_last) { in dtrace_ecb_disable()
11767 dtrace_predicate_t *p = probe->dtpr_ecb->dte_predicate; in dtrace_ecb_disable()
11769 ASSERT(probe->dtpr_ecb->dte_next == NULL); in dtrace_ecb_disable()
11772 probe->dtpr_predcache = p->dtp_cacheid; in dtrace_ecb_disable()
11803 dtrace_ecb_create(dtrace_state_t *state, dtrace_probe_t *probe, in dtrace_ecb_create() argument
11815 ecb = dtrace_ecb_add(state, probe); in dtrace_ecb_create()
11823 if (probe != NULL) { in dtrace_ecb_create()
11835 prov = probe->dtpr_provider; in dtrace_ecb_create()
11891 dtrace_ecb_create_enable(dtrace_probe_t *probe, void *arg1, void *arg2) in dtrace_ecb_create_enable() argument
11900 if (probe != NULL && ep != NULL && probe->dtpr_gen < ep->dted_probegen) { in dtrace_ecb_create_enable()
11909 if ((ecb = dtrace_ecb_create(state, probe, enab)) == NULL) in dtrace_ecb_create_enable()
13220 dof_probedesc_t *probe; in dtrace_dof_probedesc() local
13241 probe = (dof_probedesc_t *)(uintptr_t)(daddr + sec->dofs_offset); in dtrace_dof_probedesc()
13242 strtab = dtrace_dof_sect(dof, DOF_SECT_STRTAB, probe->dofp_strtab); in dtrace_dof_probedesc()
13250 if (probe->dofp_provider >= strtab->dofs_size) { in dtrace_dof_probedesc()
13256 (char *)(str + probe->dofp_provider), in dtrace_dof_probedesc()
13257 MIN(DTRACE_PROVNAMELEN - 1, size - probe->dofp_provider)); in dtrace_dof_probedesc()
13262 if (probe->dofp_mod >= strtab->dofs_size) { in dtrace_dof_probedesc()
13267 (void) strncpy(desc->dtpd_mod, (char *)(str + probe->dofp_mod), in dtrace_dof_probedesc()
13268 MIN(DTRACE_MODNAMELEN - 1, size - probe->dofp_mod)); in dtrace_dof_probedesc()
13273 if (probe->dofp_func >= strtab->dofs_size) { in dtrace_dof_probedesc()
13278 (void) strncpy(desc->dtpd_func, (char *)(str + probe->dofp_func), in dtrace_dof_probedesc()
13279 MIN(DTRACE_FUNCNAMELEN - 1, size - probe->dofp_func)); in dtrace_dof_probedesc()
13284 if (probe->dofp_name >= strtab->dofs_size) { in dtrace_dof_probedesc()
13289 (void) strncpy(desc->dtpd_name, (char *)(str + probe->dofp_name), in dtrace_dof_probedesc()
13290 MIN(DTRACE_NAMELEN - 1, size - probe->dofp_name)); in dtrace_dof_probedesc()
14478 dtrace_probe_t *probe; in dtrace_state_prereserve() local
14489 probe = dtrace_probes[dtrace_probeid_end - 1]; in dtrace_state_prereserve()
14490 ASSERT(probe != NULL); in dtrace_state_prereserve()
14492 for (ecb = probe->dtpr_ecb; ecb != NULL; ecb = ecb->dte_next) { in dtrace_state_prereserve()
14946 dtrace_probe_t *probe = ecb->dte_probe; in dtrace_state_destroy() local
14947 dtrace_provider_t *prov = probe->dtpr_provider; in dtrace_state_destroy()
15650 dof_probe_t *probe; in dtrace_helper_provider_validate() local
15736 probe = (dof_probe_t *)(uintptr_t)(daddr + in dtrace_helper_provider_validate()
15739 if (probe->dofpr_func >= str_sec->dofs_size) { in dtrace_helper_provider_validate()
15744 if (strlen(strtab + probe->dofpr_func) >= DTRACE_FUNCNAMELEN) { in dtrace_helper_provider_validate()
15749 if (probe->dofpr_name >= str_sec->dofs_size || in dtrace_helper_provider_validate()
15750 strlen(strtab + probe->dofpr_name) >= DTRACE_NAMELEN) { in dtrace_helper_provider_validate()
15759 if (probe->dofpr_offidx + probe->dofpr_noffs < in dtrace_helper_provider_validate()
15760 probe->dofpr_offidx || in dtrace_helper_provider_validate()
15761 (probe->dofpr_offidx + probe->dofpr_noffs) * in dtrace_helper_provider_validate()
15775 if (probe->dofpr_enoffidx != 0 || in dtrace_helper_provider_validate()
15776 probe->dofpr_nenoffs != 0) { in dtrace_helper_provider_validate()
15781 } else if (probe->dofpr_enoffidx + in dtrace_helper_provider_validate()
15782 probe->dofpr_nenoffs < probe->dofpr_enoffidx || in dtrace_helper_provider_validate()
15783 (probe->dofpr_enoffidx + probe->dofpr_nenoffs) * in dtrace_helper_provider_validate()
15790 if (probe->dofpr_noffs + probe->dofpr_nenoffs == 0) { in dtrace_helper_provider_validate()
15795 } else if (probe->dofpr_noffs == 0) { in dtrace_helper_provider_validate()
15800 if (probe->dofpr_argidx + probe->dofpr_xargc < in dtrace_helper_provider_validate()
15801 probe->dofpr_argidx || in dtrace_helper_provider_validate()
15802 (probe->dofpr_argidx + probe->dofpr_xargc) * in dtrace_helper_provider_validate()
15808 typeidx = probe->dofpr_nargv; in dtrace_helper_provider_validate()
15809 typestr = strtab + probe->dofpr_nargv; in dtrace_helper_provider_validate()
15810 for (k = 0; k < probe->dofpr_nargc; k++) { in dtrace_helper_provider_validate()
15827 typeidx = probe->dofpr_xargv; in dtrace_helper_provider_validate()
15828 typestr = strtab + probe->dofpr_xargv; in dtrace_helper_provider_validate()
15829 for (k = 0; k < probe->dofpr_xargc; k++) { in dtrace_helper_provider_validate()
15830 if (arg[probe->dofpr_argidx + k] > probe->dofpr_nargc) { in dtrace_helper_provider_validate()
17022 dtrace_probe_t template, *probe, *first, *next; in dtrace_module_unloaded() local
17092 for (probe = first = dtrace_hash_lookup(dtrace_bymod, &template); in dtrace_module_unloaded()
17093 probe != NULL; probe = probe->dtpr_nextmod) { in dtrace_module_unloaded()
17094 if (probe->dtpr_ecb != NULL) { in dtrace_module_unloaded()
17124 probe = first; in dtrace_module_unloaded()
17126 for (first = NULL; probe != NULL; probe = next) { in dtrace_module_unloaded()
17127 ASSERT(dtrace_probes[probe->dtpr_id - 1] == probe); in dtrace_module_unloaded()
17129 dtrace_probes[probe->dtpr_id - 1] = NULL; in dtrace_module_unloaded()
17130 probe->dtpr_provider->dtpv_probe_count--; in dtrace_module_unloaded()
17132 next = probe->dtpr_nextmod; in dtrace_module_unloaded()
17133 dtrace_hash_remove(dtrace_byprov, probe); in dtrace_module_unloaded()
17134 dtrace_hash_remove(dtrace_bymod, probe); in dtrace_module_unloaded()
17135 dtrace_hash_remove(dtrace_byfunc, probe); in dtrace_module_unloaded()
17136 dtrace_hash_remove(dtrace_byname, probe); in dtrace_module_unloaded()
17139 first = probe; in dtrace_module_unloaded()
17140 probe->dtpr_nextmod = NULL; in dtrace_module_unloaded()
17142 probe->dtpr_nextmod = first; in dtrace_module_unloaded()
17143 first = probe; in dtrace_module_unloaded()
17154 for (probe = first; probe != NULL; probe = first) { in dtrace_module_unloaded()
17155 first = probe->dtpr_nextmod; in dtrace_module_unloaded()
17156 prov = probe->dtpr_provider; in dtrace_module_unloaded()
17157 prov->dtpv_pops.dtps_destroy(prov->dtpv_arg, probe->dtpr_id, in dtrace_module_unloaded()
17158 probe->dtpr_arg); in dtrace_module_unloaded()
17159 dtrace_strunref(probe->dtpr_mod); in dtrace_module_unloaded()
17160 dtrace_strunref(probe->dtpr_func); in dtrace_module_unloaded()
17161 dtrace_strunref(probe->dtpr_name); in dtrace_module_unloaded()
17162 vmem_free(dtrace_arena, (void *)(uintptr_t)probe->dtpr_id, 1); in dtrace_module_unloaded()
17164 zfree(dtrace_probe_t_zone, probe); in dtrace_module_unloaded()
18156 dtrace_probe_t *probe = NULL; in dtrace_ioctl() local
18194 if ((probe = dtrace_probes[i - 1]) != NULL && in dtrace_ioctl()
18195 (m = dtrace_match_probe(probe, &pkey, in dtrace_ioctl()
18209 if ((probe = dtrace_probes[i - 1]) != NULL && in dtrace_ioctl()
18210 dtrace_match_priv(probe, priv, uid, zoneid)) in dtrace_ioctl()
18215 if (probe == NULL) { in dtrace_ioctl()
18220 dtrace_probe_description(probe, &desc); in dtrace_ioctl()
18231 dtrace_probe_t *probe; in dtrace_ioctl() local
18255 if ((probe = dtrace_probes[desc.dtargd_id - 1]) == NULL) { in dtrace_ioctl()
18264 prov = probe->dtpr_provider; in dtrace_ioctl()
18278 probe->dtpr_id, probe->dtpr_arg, &desc); in dtrace_ioctl()