Lines Matching refs:probe
755 fasttrap_tracepoint_enable(proc_t *p, fasttrap_probe_t *probe, uint_t index) in fasttrap_tracepoint_enable() argument
763 ASSERT(index < probe->ftp_ntps); in fasttrap_tracepoint_enable()
765 pid = probe->ftp_pid; in fasttrap_tracepoint_enable()
766 pc = probe->ftp_tps[index].fit_tp->ftt_pc; in fasttrap_tracepoint_enable()
767 id = &probe->ftp_tps[index].fit_id; in fasttrap_tracepoint_enable()
769 ASSERT(probe->ftp_tps[index].fit_tp->ftt_pid == pid); in fasttrap_tracepoint_enable()
775 fasttrap_mod_barrier(probe->ftp_gen); in fasttrap_tracepoint_enable()
892 new_tp = probe->ftp_tps[index].fit_tp; in fasttrap_tracepoint_enable()
897 ASSERT(new_tp->ftt_proc == probe->ftp_prov->ftp_proc); in fasttrap_tracepoint_enable()
933 fasttrap_tracepoint_disable(proc_t *p, fasttrap_probe_t *probe, uint_t index) in fasttrap_tracepoint_disable() argument
936 fasttrap_provider_t *provider = probe->ftp_prov; in fasttrap_tracepoint_disable()
942 ASSERT(index < probe->ftp_ntps); in fasttrap_tracepoint_disable()
944 pid = probe->ftp_pid; in fasttrap_tracepoint_disable()
945 pc = probe->ftp_tps[index].fit_tp->ftt_pc; in fasttrap_tracepoint_disable()
946 id = &probe->ftp_tps[index].fit_id; in fasttrap_tracepoint_disable()
948 ASSERT(probe->ftp_tps[index].fit_tp->ftt_pid == pid); in fasttrap_tracepoint_disable()
987 while ((*idp)->fti_probe != probe) { in fasttrap_tracepoint_disable()
996 ASSERT(id->fti_probe == probe); in fasttrap_tracepoint_disable()
1009 if (tp == probe->ftp_tps[index].fit_tp) { in fasttrap_tracepoint_disable()
1027 ASSERT(*tmp_tp != probe->ftp_tps[index].fit_tp); in fasttrap_tracepoint_disable()
1031 probe->ftp_tps[index].fit_tp = *tmp_tp; in fasttrap_tracepoint_disable()
1042 probe->ftp_gen = fasttrap_mod_gen; in fasttrap_tracepoint_disable()
1098 probe->ftp_gen = fasttrap_mod_gen; in fasttrap_tracepoint_disable()
1162 fasttrap_probe_t *probe = parg; in fasttrap_pid_enable() local
1166 ASSERT(probe != NULL); in fasttrap_pid_enable()
1167 ASSERT(!probe->ftp_enabled); in fasttrap_pid_enable()
1168 ASSERT(id == probe->ftp_id); in fasttrap_pid_enable()
1177 lck_mtx_lock(&probe->ftp_prov->ftp_mtx); in fasttrap_pid_enable()
1178 probe->ftp_prov->ftp_rcount++; in fasttrap_pid_enable()
1179 lck_mtx_unlock(&probe->ftp_prov->ftp_mtx); in fasttrap_pid_enable()
1186 if (probe->ftp_prov->ftp_retired) in fasttrap_pid_enable()
1194 if ((p = sprlock(probe->ftp_pid)) == PROC_NULL) { in fasttrap_pid_enable()
1248 for (i = 0; i < (int)probe->ftp_ntps; i++) { in fasttrap_pid_enable()
1249 if ((rc = fasttrap_tracepoint_enable(p, probe, i)) != 0) { in fasttrap_pid_enable()
1265 fasttrap_tracepoint_disable(p, probe, i); in fasttrap_pid_enable()
1282 probe->ftp_enabled = 1; in fasttrap_pid_enable()
1291 fasttrap_probe_t *probe = parg; in fasttrap_pid_disable() local
1292 fasttrap_provider_t *provider = probe->ftp_prov; in fasttrap_pid_disable()
1296 ASSERT(id == probe->ftp_id); in fasttrap_pid_disable()
1304 p = sprlock(probe->ftp_pid); in fasttrap_pid_disable()
1311 if (probe->ftp_enabled) { in fasttrap_pid_disable()
1312 for (i = 0; i < (int)probe->ftp_ntps; i++) { in fasttrap_pid_disable()
1313 fasttrap_tracepoint_disable(p, probe, i); in fasttrap_pid_disable()
1345 if (!probe->ftp_enabled) in fasttrap_pid_disable()
1348 probe->ftp_enabled = 0; in fasttrap_pid_disable()
1360 fasttrap_probe_t *probe = parg; in fasttrap_pid_getargdesc() local
1367 if (probe->ftp_prov->ftp_retired != 0 || in fasttrap_pid_getargdesc()
1369 desc->dtargd_ndx >= probe->ftp_nargs) { in fasttrap_pid_getargdesc()
1374 ndx = (probe->ftp_argmap != NULL) ? in fasttrap_pid_getargdesc()
1375 probe->ftp_argmap[desc->dtargd_ndx] : desc->dtargd_ndx; in fasttrap_pid_getargdesc()
1377 if (probe->ftp_ntypes == NULL) in fasttrap_pid_getargdesc()
1380 str = probe->ftp_ntypes; in fasttrap_pid_getargdesc()
1387 if (probe->ftp_xtypes == NULL) in fasttrap_pid_getargdesc()
1390 str = probe->ftp_xtypes; in fasttrap_pid_getargdesc()
1403 fasttrap_probe_t *probe = parg; in fasttrap_pid_destroy() local
1406 ASSERT(probe != NULL); in fasttrap_pid_destroy()
1407 ASSERT(!probe->ftp_enabled); in fasttrap_pid_destroy()
1408 ASSERT(fasttrap_total >= probe->ftp_ntps); in fasttrap_pid_destroy()
1410 os_atomic_sub(&fasttrap_total, probe->ftp_ntps, relaxed); in fasttrap_pid_destroy()
1411 os_atomic_sub(&fasttrap_retired, probe->ftp_ntps, relaxed); in fasttrap_pid_destroy()
1413 if (probe->ftp_gen + 1 >= fasttrap_mod_gen) in fasttrap_pid_destroy()
1414 fasttrap_mod_barrier(probe->ftp_gen); in fasttrap_pid_destroy()
1416 for (i = 0; i < probe->ftp_ntps; i++) { in fasttrap_pid_destroy()
1417 zfree(fasttrap_tracepoint_t_zone, probe->ftp_tps[i].fit_tp); in fasttrap_pid_destroy()
1420 if (probe->ftp_ntps < FASTTRAP_PROBE_T_ZONE_MAX_TRACEPOINTS) { in fasttrap_pid_destroy()
1421 zfree(fasttrap_probe_t_zones[probe->ftp_ntps], probe); in fasttrap_pid_destroy()
1423 size_t size = offsetof(fasttrap_probe_t, ftp_tps[probe->ftp_ntps]); in fasttrap_pid_destroy()
1424 kmem_free(probe, size); in fasttrap_pid_destroy()
2460 fasttrap_probe_spec_t *probe; in fasttrap_ioctl() local
2466 sizeof (probe->ftps_noffs))) in fasttrap_ioctl()
2479 if (noffs > ((1024 * 1024) - sizeof(fasttrap_probe_spec_t)) / sizeof(probe->ftps_offs[0])) in fasttrap_ioctl()
2483 sizeof (probe->ftps_offs[0]) * (noffs - 1); in fasttrap_ioctl()
2485 probe = kmem_alloc(size, KM_SLEEP); in fasttrap_ioctl()
2487 if (copyin(arg, probe, size) != 0 || in fasttrap_ioctl()
2488 probe->ftps_noffs != noffs) { in fasttrap_ioctl()
2489 kmem_free(probe, size); in fasttrap_ioctl()
2498 if (fasttrap_validatestr(probe->ftps_func, sizeof(probe->ftps_func)) != 0) { in fasttrap_ioctl()
2503 if (fasttrap_validatestr(probe->ftps_mod, sizeof(probe->ftps_mod)) != 0) { in fasttrap_ioctl()
2510 pid_t pid = probe->ftps_pid; in fasttrap_ioctl()
2529 ret = fasttrap_add_probe(probe); in fasttrap_ioctl()
2532 kmem_free(probe, size); in fasttrap_ioctl()