diff options
author | markj <markj@FreeBSD.org> | 2014-07-29 22:26:41 +0000 |
---|---|---|
committer | markj <markj@FreeBSD.org> | 2014-07-29 22:26:41 +0000 |
commit | 5f27eb902dac8e322320e6ccd2c80f3d963122a4 (patch) | |
tree | 3892838e30d86b7f388c9050e2764f18e2aa590c /sys/cddl/dev/systrace | |
parent | 4f201ea79376f45f80dec1b6f3c7b7ed87ba4f19 (diff) | |
download | FreeBSD-src-5f27eb902dac8e322320e6ccd2c80f3d963122a4.zip FreeBSD-src-5f27eb902dac8e322320e6ccd2c80f3d963122a4.tar.gz |
MFC r264435:
Ensure that all eight syscall arguments are available to dtrace_probe(),
rather than just the first five.
Diffstat (limited to 'sys/cddl/dev/systrace')
-rw-r--r-- | sys/cddl/dev/systrace/systrace.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/cddl/dev/systrace/systrace.c b/sys/cddl/dev/systrace/systrace.c index ff63129..921393c 100644 --- a/sys/cddl/dev/systrace/systrace.c +++ b/sys/cddl/dev/systrace/systrace.c @@ -168,6 +168,9 @@ static dtrace_pops_t systrace_pops = { static struct cdev *systrace_cdev; static dtrace_provider_id_t systrace_id; +typedef void (*systrace_dtrace_probe_t)(dtrace_id_t, uintptr_t, uintptr_t, + uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t); + #if !defined(LINUX_SYSTRACE) /* * Probe callback function. @@ -180,6 +183,7 @@ static void systrace_probe(u_int32_t id, int sysnum, struct sysent *sysent, void *params, int ret) { + systrace_dtrace_probe_t probe; int n_args = 0; u_int64_t uargs[8]; @@ -211,7 +215,9 @@ systrace_probe(u_int32_t id, int sysnum, struct sysent *sysent, void *params, } /* Process the probe using the converted argments. */ - dtrace_probe(id, uargs[0], uargs[1], uargs[2], uargs[3], uargs[4]); + probe = (systrace_dtrace_probe_t)dtrace_probe; + probe(id, uargs[0], uargs[1], uargs[2], uargs[3], uargs[4], uargs[5], + uargs[6], uargs[7]); } #endif |