summaryrefslogtreecommitdiffstats
path: root/tapset/syscalls2.stp
diff options
context:
space:
mode:
authorMark Wielaard <mjw@redhat.com>2010-03-21 17:23:17 +0100
committerMark Wielaard <mjw@redhat.com>2010-03-21 17:34:41 +0100
commita1ecf9ff0f6fc6ef0bcdaf231ed2d395ee979b4b (patch)
treef1d81e2993184326b3ca30314e8ae6b7e0476696 /tapset/syscalls2.stp
parent6c8598ca45b8c0910fc0f45352b31711164e4d1c (diff)
downloadsystemtap-steved-a1ecf9ff0f6fc6ef0bcdaf231ed2d395ee979b4b.tar.gz
systemtap-steved-a1ecf9ff0f6fc6ef0bcdaf231ed2d395ee979b4b.tar.xz
systemtap-steved-a1ecf9ff0f6fc6ef0bcdaf231ed2d395ee979b4b.zip
Support signalfd4 in syscalls2.stp tapset.
* tapset/aux_syscalls.stp (_signalfd4_flags_str): New utility function. * tapset/syscalls2.stp (syscall.signalfd[.return]): Handle signalfd4 variant when available. * testsuite/systemtap.syscall/signalfd.c: New test.
Diffstat (limited to 'tapset/syscalls2.stp')
-rw-r--r--tapset/syscalls2.stp22
1 files changed, 17 insertions, 5 deletions
diff --git a/tapset/syscalls2.stp b/tapset/syscalls2.stp
index da6b637e..31a29560 100644
--- a/tapset/syscalls2.stp
+++ b/tapset/syscalls2.stp
@@ -2524,16 +2524,28 @@ probe syscall.signal.return = kernel.function("SyS_signal").return !,
# long compat_sys_signalfd(int ufd, const compat_sigset_t __user *sigmask,
# compat_size_t sigsetsize)
#
-probe syscall.signalfd = kernel.function("SyS_signalfd").call !,
+probe syscall.signalfd = kernel.function("SyS_signalfd4").call !,
+ kernel.function("sys_signalfd4").call !,
+ kernel.function("SyS_signalfd").call !,
kernel.function("sys_signalfd").call ?
{
- name = "signalfd"
- argstr = sprintf("%d, %p, %d", $ufd, $user_mask, $sizemask)
+ flags = @defined($flags) ? $flags : 0;
+ if (flags == 0) {
+ name = "signalfd"
+ argstr = sprintf("%d, %p, %d", $ufd, $user_mask, $sizemask)
+ } else {
+ name = "signalfd4"
+ argstr = sprintf("%d, %p, %d, %s", $ufd, $user_mask,
+ $sizemask, _signalfd4_flags_str($flags))
+ }
}
-probe syscall.signalfd.return = kernel.function("SyS_signalfd").return !,
+probe syscall.signalfd.return = kernel.function("SyS_signalfd4").return !,
+ kernel.function("sys_signalfd4").return !,
+ kernel.function("SyS_signalfd").return !,
kernel.function("sys_signalfd").return ?
{
- name = "signalfd"
+ flags = @defined($flags) ? $flags : 0;
+ name = (flags == 0) ? "signalfd" : "signalfd4"
retstr = returnstr(1)
}
probe syscall.compat_signalfd = kernel.function("compat_sys_signalfd").call ?