Lines Matching refs:probe

501 fasttrap_tracepoint_enable(proc_t *p, fasttrap_probe_t *probe, uint_t index)  in fasttrap_tracepoint_enable()  argument
509 ASSERT(index < probe->ftp_ntps); in fasttrap_tracepoint_enable()
511 pid = probe->ftp_pid; in fasttrap_tracepoint_enable()
512 pc = probe->ftp_tps[index].fit_tp->ftt_pc; in fasttrap_tracepoint_enable()
513 id = &probe->ftp_tps[index].fit_id; in fasttrap_tracepoint_enable()
515 ASSERT(probe->ftp_tps[index].fit_tp->ftt_pid == pid); in fasttrap_tracepoint_enable()
523 fasttrap_mod_barrier(probe->ftp_gen); in fasttrap_tracepoint_enable()
634 new_tp = probe->ftp_tps[index].fit_tp; in fasttrap_tracepoint_enable()
638 ASSERT(new_tp->ftt_proc == probe->ftp_prov->ftp_proc); in fasttrap_tracepoint_enable()
674 fasttrap_tracepoint_disable(proc_t *p, fasttrap_probe_t *probe, uint_t index) in fasttrap_tracepoint_disable() argument
677 fasttrap_provider_t *provider = probe->ftp_prov; in fasttrap_tracepoint_disable()
683 ASSERT(index < probe->ftp_ntps); in fasttrap_tracepoint_disable()
685 pid = probe->ftp_pid; in fasttrap_tracepoint_disable()
686 pc = probe->ftp_tps[index].fit_tp->ftt_pc; in fasttrap_tracepoint_disable()
687 id = &probe->ftp_tps[index].fit_id; in fasttrap_tracepoint_disable()
689 ASSERT(probe->ftp_tps[index].fit_tp->ftt_pid == pid); in fasttrap_tracepoint_disable()
726 while ((*idp)->fti_probe != probe) { in fasttrap_tracepoint_disable()
735 ASSERT(id->fti_probe == probe); in fasttrap_tracepoint_disable()
748 if (tp == probe->ftp_tps[index].fit_tp) { in fasttrap_tracepoint_disable()
766 ASSERT(*tmp_tp != probe->ftp_tps[index].fit_tp); in fasttrap_tracepoint_disable()
770 probe->ftp_tps[index].fit_tp = *tmp_tp; in fasttrap_tracepoint_disable()
780 probe->ftp_gen = fasttrap_mod_gen; in fasttrap_tracepoint_disable()
836 probe->ftp_gen = fasttrap_mod_gen; in fasttrap_tracepoint_disable()
892 fasttrap_probe_t *probe = parg; in fasttrap_pid_enable() local
896 ASSERT(probe != NULL); in fasttrap_pid_enable()
897 ASSERT(!probe->ftp_enabled); in fasttrap_pid_enable()
898 ASSERT(id == probe->ftp_id); in fasttrap_pid_enable()
907 mutex_enter(&probe->ftp_prov->ftp_mtx); in fasttrap_pid_enable()
908 probe->ftp_prov->ftp_rcount++; in fasttrap_pid_enable()
909 mutex_exit(&probe->ftp_prov->ftp_mtx); in fasttrap_pid_enable()
916 if (probe->ftp_prov->ftp_retired) in fasttrap_pid_enable()
924 if ((p = sprlock(probe->ftp_pid)) == NULL) { in fasttrap_pid_enable()
929 p = prfind(probe->ftp_pid); in fasttrap_pid_enable()
969 for (i = 0; i < probe->ftp_ntps; i++) { in fasttrap_pid_enable()
970 if ((rc = fasttrap_tracepoint_enable(p, probe, i)) != 0) { in fasttrap_pid_enable()
986 fasttrap_tracepoint_disable(p, probe, i); in fasttrap_pid_enable()
1005 probe->ftp_enabled = 1; in fasttrap_pid_enable()
1013 fasttrap_probe_t *probe = parg; in fasttrap_pid_disable() local
1014 fasttrap_provider_t *provider = probe->ftp_prov; in fasttrap_pid_disable()
1018 ASSERT(id == probe->ftp_id); in fasttrap_pid_disable()
1026 if ((p = sprlock(probe->ftp_pid)) != NULL) { in fasttrap_pid_disable()
1036 if (probe->ftp_enabled) { in fasttrap_pid_disable()
1037 for (i = 0; i < probe->ftp_ntps; i++) { in fasttrap_pid_disable()
1038 fasttrap_tracepoint_disable(p, probe, i); in fasttrap_pid_disable()
1070 if (!probe->ftp_enabled) in fasttrap_pid_disable()
1073 probe->ftp_enabled = 0; in fasttrap_pid_disable()
1084 fasttrap_probe_t *probe = parg; in fasttrap_pid_getargdesc() local
1091 if (probe->ftp_prov->ftp_retired != 0 || in fasttrap_pid_getargdesc()
1092 desc->dtargd_ndx >= probe->ftp_nargs) { in fasttrap_pid_getargdesc()
1097 ndx = (probe->ftp_argmap != NULL) ? in fasttrap_pid_getargdesc()
1098 probe->ftp_argmap[desc->dtargd_ndx] : desc->dtargd_ndx; in fasttrap_pid_getargdesc()
1100 str = probe->ftp_ntypes; in fasttrap_pid_getargdesc()
1108 if (probe->ftp_xtypes == NULL) in fasttrap_pid_getargdesc()
1111 str = probe->ftp_xtypes; in fasttrap_pid_getargdesc()
1124 fasttrap_probe_t *probe = parg; in fasttrap_pid_destroy() local
1128 ASSERT(probe != NULL); in fasttrap_pid_destroy()
1129 ASSERT(!probe->ftp_enabled); in fasttrap_pid_destroy()
1130 ASSERT(fasttrap_total >= probe->ftp_ntps); in fasttrap_pid_destroy()
1132 atomic_add_32(&fasttrap_total, -probe->ftp_ntps); in fasttrap_pid_destroy()
1133 size = offsetof(fasttrap_probe_t, ftp_tps[probe->ftp_ntps]); in fasttrap_pid_destroy()
1135 if (probe->ftp_gen + 1 >= fasttrap_mod_gen) in fasttrap_pid_destroy()
1136 fasttrap_mod_barrier(probe->ftp_gen); in fasttrap_pid_destroy()
1138 for (i = 0; i < probe->ftp_ntps; i++) { in fasttrap_pid_destroy()
1139 kmem_free(probe->ftp_tps[i].fit_tp, in fasttrap_pid_destroy()
1143 kmem_free(probe, size); in fasttrap_pid_destroy()
1942 fasttrap_probe_spec_t *probe; in fasttrap_ioctl() local
1958 sizeof (probe->ftps_offs[0]) * (noffs - 1); in fasttrap_ioctl()
1963 probe = kmem_alloc(size, KM_SLEEP); in fasttrap_ioctl()
1965 if (copyin(uprobe, probe, size) != 0 || in fasttrap_ioctl()
1966 probe->ftps_noffs != noffs) { in fasttrap_ioctl()
1967 kmem_free(probe, size); in fasttrap_ioctl()
1975 if (u8_validate(probe->ftps_func, strlen(probe->ftps_func), in fasttrap_ioctl()
1981 if (u8_validate(probe->ftps_mod, strlen(probe->ftps_mod), in fasttrap_ioctl()
1989 pid_t pid = probe->ftps_pid; in fasttrap_ioctl()
2012 ret = fasttrap_add_probe(probe); in fasttrap_ioctl()
2014 kmem_free(probe, size); in fasttrap_ioctl()