summaryrefslogtreecommitdiffstats
path: root/tapset/aux_syscalls.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/aux_syscalls.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/aux_syscalls.stp')
-rw-r--r--tapset/aux_syscalls.stp23
1 files changed, 23 insertions, 0 deletions
diff --git a/tapset/aux_syscalls.stp b/tapset/aux_syscalls.stp
index 6179719c..bd62817d 100644
--- a/tapset/aux_syscalls.stp
+++ b/tapset/aux_syscalls.stp
@@ -1685,6 +1685,29 @@ function _eventfd2_flag_str:string(f:long)
%}
%{
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
+#include <linux/signalfd.h>
+#endif
+%}
+function _signalfd4_flags_str:string(f:long)
+%{ /* pure */
+ long flags = THIS->f;
+ char *str = THIS->__retvalue;
+ int len;
+
+#if defined(SFD_CLOEXEC) && defined(SFD_NONBLOCK)
+ if (flags & SFD_NONBLOCK)
+ strlcat(str, "SFD_NONBLOCK|", MAXSTRINGLEN);
+ if (flags & SFD_CLOEXEC)
+ strlcat(str, "SFD_CLOEXEC|", MAXSTRINGLEN);
+#endif
+
+ len = strlen(str);
+ if (len)
+ str[strlen(str)-1] = 0;
+%}
+
+%{
#include <linux/inotify.h>
%}
function _inotify_init1_flag_str:string(f:long)