Lines Matching refs:probe
754 fasttrap_tracepoint_enable(proc_t *p, fasttrap_probe_t *probe, uint_t index) in fasttrap_tracepoint_enable() argument
762 ASSERT(index < probe->ftp_ntps); in fasttrap_tracepoint_enable()
764 pid = probe->ftp_pid; in fasttrap_tracepoint_enable()
765 pc = probe->ftp_tps[index].fit_tp->ftt_pc; in fasttrap_tracepoint_enable()
766 id = &probe->ftp_tps[index].fit_id; in fasttrap_tracepoint_enable()
768 ASSERT(probe->ftp_tps[index].fit_tp->ftt_pid == pid); in fasttrap_tracepoint_enable()
778 fasttrap_mod_barrier(probe->ftp_gen); in fasttrap_tracepoint_enable()
891 new_tp = probe->ftp_tps[index].fit_tp; in fasttrap_tracepoint_enable()
895 ASSERT(new_tp->ftt_proc == probe->ftp_prov->ftp_proc); in fasttrap_tracepoint_enable()
938 fasttrap_tracepoint_disable(proc_t *p, fasttrap_probe_t *probe, uint_t index) in fasttrap_tracepoint_disable() argument
941 fasttrap_provider_t *provider = probe->ftp_prov; in fasttrap_tracepoint_disable()
947 ASSERT(index < probe->ftp_ntps); in fasttrap_tracepoint_disable()
949 pid = probe->ftp_pid; in fasttrap_tracepoint_disable()
950 pc = probe->ftp_tps[index].fit_tp->ftt_pc; in fasttrap_tracepoint_disable()
951 id = &probe->ftp_tps[index].fit_id; in fasttrap_tracepoint_disable()
953 ASSERT(probe->ftp_tps[index].fit_tp->ftt_pid == pid); in fasttrap_tracepoint_disable()
990 while ((*idp)->fti_probe != probe) { in fasttrap_tracepoint_disable()
999 ASSERT(id->fti_probe == probe); in fasttrap_tracepoint_disable()
1012 if (tp == probe->ftp_tps[index].fit_tp) { in fasttrap_tracepoint_disable()
1030 ASSERT(*tmp_tp != probe->ftp_tps[index].fit_tp); in fasttrap_tracepoint_disable()
1034 probe->ftp_tps[index].fit_tp = *tmp_tp; in fasttrap_tracepoint_disable()
1044 probe->ftp_gen = fasttrap_mod_gen; in fasttrap_tracepoint_disable()
1104 probe->ftp_gen = fasttrap_mod_gen; in fasttrap_tracepoint_disable()
1151 fasttrap_probe_t *probe = parg; in fasttrap_pid_enable() local
1155 ASSERT(probe != NULL); in fasttrap_pid_enable()
1156 ASSERT(!probe->ftp_enabled); in fasttrap_pid_enable()
1157 ASSERT(id == probe->ftp_id); in fasttrap_pid_enable()
1168 mutex_enter(&probe->ftp_prov->ftp_mtx); in fasttrap_pid_enable()
1169 probe->ftp_prov->ftp_rcount++; in fasttrap_pid_enable()
1170 mutex_exit(&probe->ftp_prov->ftp_mtx); in fasttrap_pid_enable()
1177 if (probe->ftp_prov->ftp_retired) in fasttrap_pid_enable()
1186 if ((p = sprlock(probe->ftp_pid)) == NULL) { in fasttrap_pid_enable()
1191 p = prfind(probe->ftp_pid); in fasttrap_pid_enable()
1220 if (pget(probe->ftp_pid, PGET_HOLD | PGET_NOTWEXIT, &p) != 0) in fasttrap_pid_enable()
1235 for (i = 0; i < probe->ftp_ntps; i++) { in fasttrap_pid_enable()
1236 if ((rc = fasttrap_tracepoint_enable(p, probe, i)) != 0) { in fasttrap_pid_enable()
1252 fasttrap_tracepoint_disable(p, probe, i); in fasttrap_pid_enable()
1278 probe->ftp_enabled = 1; in fasttrap_pid_enable()
1285 fasttrap_probe_t *probe = parg; in fasttrap_pid_disable() local
1286 fasttrap_provider_t *provider = probe->ftp_prov; in fasttrap_pid_disable()
1290 ASSERT(id == probe->ftp_id); in fasttrap_pid_disable()
1300 if (pget(probe->ftp_pid, PGET_HOLD | PGET_NOTWEXIT, &p) != 0) in fasttrap_pid_disable()
1306 if (probe->ftp_enabled) { in fasttrap_pid_disable()
1307 for (i = 0; i < probe->ftp_ntps; i++) { in fasttrap_pid_disable()
1308 fasttrap_tracepoint_disable(p, probe, i); in fasttrap_pid_disable()
1341 if (!probe->ftp_enabled) in fasttrap_pid_disable()
1344 probe->ftp_enabled = 0; in fasttrap_pid_disable()
1357 fasttrap_probe_t *probe = parg; in fasttrap_pid_getargdesc() local
1364 if (probe->ftp_prov->ftp_retired != 0 || in fasttrap_pid_getargdesc()
1365 desc->dtargd_ndx >= probe->ftp_nargs) { in fasttrap_pid_getargdesc()
1370 ndx = (probe->ftp_argmap != NULL) ? in fasttrap_pid_getargdesc()
1371 probe->ftp_argmap[desc->dtargd_ndx] : desc->dtargd_ndx; in fasttrap_pid_getargdesc()
1373 str = probe->ftp_ntypes; in fasttrap_pid_getargdesc()
1381 if (probe->ftp_xtypes == NULL) in fasttrap_pid_getargdesc()
1384 str = probe->ftp_xtypes; in fasttrap_pid_getargdesc()
1397 fasttrap_probe_t *probe = parg; in fasttrap_pid_destroy() local
1401 ASSERT(probe != NULL); in fasttrap_pid_destroy()
1402 ASSERT(!probe->ftp_enabled); in fasttrap_pid_destroy()
1403 ASSERT(fasttrap_total >= probe->ftp_ntps); in fasttrap_pid_destroy()
1405 atomic_add_32(&fasttrap_total, -probe->ftp_ntps); in fasttrap_pid_destroy()
1406 size = offsetof(fasttrap_probe_t, ftp_tps[probe->ftp_ntps]); in fasttrap_pid_destroy()
1408 if (probe->ftp_gen + 1 >= fasttrap_mod_gen) in fasttrap_pid_destroy()
1409 fasttrap_mod_barrier(probe->ftp_gen); in fasttrap_pid_destroy()
1411 for (i = 0; i < probe->ftp_ntps; i++) { in fasttrap_pid_destroy()
1412 kmem_free(probe->ftp_tps[i].fit_tp, in fasttrap_pid_destroy()
1416 kmem_free(probe, size); in fasttrap_pid_destroy()
2248 fasttrap_probe_spec_t *probe; in fasttrap_ioctl() local
2264 sizeof (probe->ftps_offs[0]) * (noffs - 1); in fasttrap_ioctl()
2269 probe = kmem_alloc(size, KM_SLEEP); in fasttrap_ioctl()
2271 if (copyin(uprobe, probe, size) != 0 || in fasttrap_ioctl()
2272 probe->ftps_noffs != noffs) { in fasttrap_ioctl()
2273 kmem_free(probe, size); in fasttrap_ioctl()
2281 if (u8_validate(probe->ftps_func, strlen(probe->ftps_func), in fasttrap_ioctl()
2287 if (u8_validate(probe->ftps_mod, strlen(probe->ftps_mod), in fasttrap_ioctl()
2296 pid_t pid = probe->ftps_pid; in fasttrap_ioctl()
2319 ret = fasttrap_add_probe(probe); in fasttrap_ioctl()
2321 kmem_free(probe, size); in fasttrap_ioctl()