]> sourceware.org Git - systemtap.git/commitdiff
PR20333/fchownat
authorMartin Cermak <mcermak@redhat.com>
Thu, 22 Dec 2016 16:37:37 +0000 (17:37 +0100)
committerMartin Cermak <mcermak@redhat.com>
Thu, 22 Dec 2016 16:37:37 +0000 (17:37 +0100)
tapset/linux/nd_syscalls.stp
tapset/linux/sysc_fchownat.stp [new file with mode: 0644]
tapset/linux/syscalls.stp

index e189febef7b3c197339b25191c2e785444583e43..ce975b6429baf07b1e1b409af5f1c46e6ff4c929 100644 (file)
@@ -1,32 +1,4 @@
 
-# fchownat ___________________________________________________
-# new function with 2.6.16
-# long sys_fchownat(int dfd, const char __user *filename,
-#      uid_t user, gid_t group, int flag)
-probe nd_syscall.fchownat = kprobe.function("sys_fchownat") ?
-{
-       @__syscall_compat_gate(@const("__NR_fchownat"),
-                              @const("__NR_compat_fchownat"))
-       name = "fchownat"
-       asmlinkage()
-       dirfd = int_arg(1)
-       dirfd_str = _dfd_str(dirfd)
-       pathname = user_string_quoted(pointer_arg(2))
-       owner = __int32(uint_arg(3))
-       group = __int32(uint_arg(4))
-       flags = int_arg(5)
-       flags_str = _at_flag_str(flags)
-       argstr = sprintf("%s, %s, %d, %d, %s",
-               dirfd_str, user_string_quoted(pointer_arg(2)), owner, group, flags_str)
-}
-probe nd_syscall.fchownat.return = kprobe.function("sys_fchownat").return ?
-{
-       @__syscall_compat_gate(@const("__NR_fchownat"),
-                              @const("__NR_compat_fchownat"))
-       name = "fchownat"
-       retstr = returnstr(1)
-}
-
 # fcntl ______________________________________________________
 # long sys_fcntl(int fd, unsigned int cmd, unsigned long arg)
 # long sys_fcntl64(unsigned int fd, unsigned int cmd, unsigned long arg)
diff --git a/tapset/linux/sysc_fchownat.stp b/tapset/linux/sysc_fchownat.stp
new file mode 100644 (file)
index 0000000..12b63e7
--- /dev/null
@@ -0,0 +1,67 @@
+# fchownat ___________________________________________________
+# new function with 2.6.16
+# long sys_fchownat(int dfd, const char __user *filename,
+#      uid_t user, gid_t group, int flag)
+
+@define _SYSCALL_FCHOWNAT_NAME
+%(
+       name = "fchownat"
+%)
+
+@define _SYSCALL_FCHOWNAT_ARGSTR
+%(
+       argstr = sprintf("%s, %s, %d, %d, %s", dirfd_str, pathname, owner,
+                        group, flags_str)
+%)
+
+probe syscall.fchownat = dw_syscall.fchownat !, nd_syscall.fchownat {}
+probe syscall.fchownat.return = dw_syscall.fchownat.return !, nd_syscall.fchownat.return {}
+
+# dw_fchownat _____________________________________________________
+
+probe dw_syscall.fchownat = kernel.function("sys_fchownat").call ?
+{
+       @__syscall_compat_gate(@const("__NR_fchownat"),
+                              @const("__NR_compat_fchownat"))
+       @_SYSCALL_FCHOWNAT_NAME
+       dirfd = __int32($dfd)
+       dirfd_str = _dfd_str(__int32($dfd))
+       pathname = user_string_quoted($filename)
+       owner = __int32($user)
+       group = __int32($group)
+       flags = __int32($flag)
+       flags_str = _at_flag_str(__int32($flag))
+       @_SYSCALL_FCHOWNAT_ARGSTR
+}
+probe dw_syscall.fchownat.return = kernel.function("sys_fchownat").return ?
+{
+       @__syscall_compat_gate(@const("__NR_fchownat"),
+                              @const("__NR_compat_fchownat"))
+       @_SYSCALL_FCHOWNAT_NAME
+       retstr = return_str(1, $return)
+}
+
+# nd_fchownat _____________________________________________________
+
+probe nd_syscall.fchownat = kprobe.function("sys_fchownat") ?
+{
+       @__syscall_compat_gate(@const("__NR_fchownat"),
+                              @const("__NR_compat_fchownat"))
+       @_SYSCALL_FCHOWNAT_NAME
+       asmlinkage()
+       dirfd = int_arg(1)
+       dirfd_str = _dfd_str(dirfd)
+       pathname = user_string_quoted(pointer_arg(2))
+       owner = __int32(uint_arg(3))
+       group = __int32(uint_arg(4))
+       flags = int_arg(5)
+       flags_str = _at_flag_str(flags)
+       @_SYSCALL_FCHOWNAT_ARGSTR
+}
+probe nd_syscall.fchownat.return = kprobe.function("sys_fchownat").return ?
+{
+       @__syscall_compat_gate(@const("__NR_fchownat"),
+                              @const("__NR_compat_fchownat"))
+       @_SYSCALL_FCHOWNAT_NAME
+       retstr = returnstr(1)
+}
index dae3ac183e4350256072add1b1128cf6b20fd31d..40d16f71b58d934a2d8ea8ee1ecd43315b309c38 100644 (file)
@@ -1,32 +1,4 @@
 
-# fchownat ___________________________________________________
-# new function with 2.6.16
-# long sys_fchownat(int dfd, const char __user *filename,
-#      uid_t user, gid_t group, int flag)
-probe syscall.fchownat = kernel.function("sys_fchownat").call ?
-{
-       @__syscall_compat_gate(@const("__NR_fchownat"),
-                              @const("__NR_compat_fchownat"))
-       name = "fchownat"
-       dirfd = __int32($dfd)
-       dirfd_str = _dfd_str(__int32($dfd))
-       pathname = user_string_quoted($filename)
-       owner = __int32($user)
-       group = __int32($group)
-       flags = __int32($flag)
-       flags_str = _at_flag_str(__int32($flag))
-       argstr = sprintf("%s, %s, %d, %d, %s", dirfd_str,
-                        user_string_quoted($filename), owner, group,
-                        flags_str)
-}
-probe syscall.fchownat.return = kernel.function("sys_fchownat").return ?
-{
-       @__syscall_compat_gate(@const("__NR_fchownat"),
-                              @const("__NR_compat_fchownat"))
-       name = "fchownat"
-       retstr = return_str(1, $return)
-}
-
 # fcntl ______________________________________________________
 # long sys_fcntl(int fd, unsigned int cmd, unsigned long arg)
 # long sys_fcntl64(unsigned int fd, unsigned int cmd, unsigned long arg)
This page took 0.036523 seconds and 5 git commands to generate.