]> sourceware.org Git - systemtap.git/commitdiff
PR20333/listxattr
authorMartin Cermak <mcermak@redhat.com>
Fri, 23 Dec 2016 16:44:19 +0000 (17:44 +0100)
committerMartin Cermak <mcermak@redhat.com>
Fri, 23 Dec 2016 16:44:19 +0000 (17:44 +0100)
tapset/linux/nd_syscalls.stp
tapset/linux/sysc_listxattr.stp [new file with mode: 0644]
tapset/linux/syscalls.stp

index ab7ec3934605068f5ce09a2e5bc664896240531d..a49a48978424a23ce7e7c9a17a964f541db1eaf8 100644 (file)
@@ -1,24 +1,4 @@
 
-# listxattr __________________________________________________
-# ssize_t sys_listxattr(char __user *path, char __user *list, size_t size)
-#
-probe nd_syscall.listxattr = kprobe.function("sys_listxattr") ?
-{
-       name = "listxattr"
-       asmlinkage()
-       path_uaddr = pointer_arg(1)
-       path = user_string_quoted(path_uaddr)
-       list_uaddr = pointer_arg(2)
-       size = ulong_arg(3)
-       argstr = sprintf("%s, %p, %u", user_string_quoted(path_uaddr),
-                        list_uaddr, size)
-}
-probe nd_syscall.listxattr.return = kprobe.function("sys_listxattr").return ?
-{
-       name = "listxattr"
-       retstr = returnstr(1)
-}
-
 # llistxattr _________________________________________________
 # ssize_t sys_llistxattr(char __user *path, char __user *list, size_t size)
 #
diff --git a/tapset/linux/sysc_listxattr.stp b/tapset/linux/sysc_listxattr.stp
new file mode 100644 (file)
index 0000000..5c9d799
--- /dev/null
@@ -0,0 +1,51 @@
+# listxattr __________________________________________________
+# ssize_t sys_listxattr(char __user *path, char __user *list, size_t size)
+#
+
+@define _SYSCALL_LISTXATTR_NAME
+%(
+       name = "listxattr"
+%)
+
+@define _SYSCALL_LISTXATTR_ARGSTR
+%(
+       argstr = sprintf("%s, %p, %u", path, list_uaddr, size)
+%)
+
+probe syscall.listxattr = dw_syscall.listxattr !, nd_syscall.listxattr {}
+probe syscall.listxattr.return = dw_syscall.listxattr.return !, nd_syscall.listxattr.return {}
+
+# dw_listxattr _____________________________________________________
+
+probe dw_syscall.listxattr = kernel.function("sys_listxattr").call
+{
+       @_SYSCALL_LISTXATTR_NAME
+       list_uaddr = $list
+       size = __ulong($size)
+       path_uaddr = @choose_defined($pathname, $path)
+       path = user_string_quoted(@choose_defined($pathname, $path))
+       @_SYSCALL_LISTXATTR_ARGSTR
+}
+probe dw_syscall.listxattr.return = kernel.function("sys_listxattr").return
+{
+       @_SYSCALL_LISTXATTR_NAME
+       retstr = return_str(1, $return)
+}
+
+# nd_listxattr _____________________________________________________
+
+probe nd_syscall.listxattr = kprobe.function("sys_listxattr") ?
+{
+       @_SYSCALL_LISTXATTR_NAME
+       asmlinkage()
+       path_uaddr = pointer_arg(1)
+       path = user_string_quoted(path_uaddr)
+       list_uaddr = pointer_arg(2)
+       size = ulong_arg(3)
+       @_SYSCALL_LISTXATTR_ARGSTR
+}
+probe nd_syscall.listxattr.return = kprobe.function("sys_listxattr").return ?
+{
+       @_SYSCALL_LISTXATTR_NAME
+       retstr = returnstr(1)
+}
index 74e9fcaf230b001ad0d57cfeaa31a755d56e3e4e..a4a1549a9d2621fee1d8fa822b68f3195d060f50 100644 (file)
@@ -1,24 +1,4 @@
 
-# listxattr __________________________________________________
-# ssize_t sys_listxattr(char __user *path, char __user *list, size_t size)
-#
-probe syscall.listxattr = kernel.function("sys_listxattr").call
-{
-       name = "listxattr"
-       list_uaddr = $list
-       size = __ulong($size)
-       path_uaddr = @choose_defined($pathname, $path)
-       path = user_string_quoted(@choose_defined($pathname, $path))
-       argstr = sprintf("%s, %p, %u",
-               user_string_quoted(@choose_defined($pathname, $path)),
-               $list, __ulong($size))
-}
-probe syscall.listxattr.return = kernel.function("sys_listxattr").return
-{
-       name = "listxattr"
-       retstr = return_str(1, $return)
-}
-
 # llistxattr _________________________________________________
 # ssize_t sys_llistxattr(char __user *path, char __user *list, size_t size)
 #
This page took 0.032771 seconds and 5 git commands to generate.