]> sourceware.org Git - systemtap.git/commitdiff
PR20333/bdflush
authorMartin Cermak <mcermak@redhat.com>
Thu, 22 Dec 2016 13:12:06 +0000 (14:12 +0100)
committerMartin Cermak <mcermak@redhat.com>
Thu, 22 Dec 2016 13:12:06 +0000 (14:12 +0100)
tapset/linux/nd_syscalls.stp
tapset/linux/sysc_bdflush.stp [new file with mode: 0644]
tapset/linux/syscalls.stp

index 12c58da1e6c3a7f03b4fef80c1906b80a8df429f..9e171c25109dd106e3846cd1633aef1efb5455d9 100644 (file)
@@ -1,24 +1,4 @@
 
-# bdflush ____________________________________________________
-# long sys_bdflush(int func, long data)
-probe nd_syscall.bdflush = kprobe.function("sys_bdflush") ?
-{
-       name = "bdflush"
-       asmlinkage()
-       func = int_arg(1)
-       data = long_arg(2)
-       if ((func >= 2) && (func % 2 == 0))
-               data_str = sprintf("%p", data)
-       else
-               data_str = sprintf("%d", data)
-       argstr = sprintf("%d, %s", func, data_str)
-}
-probe nd_syscall.bdflush.return = kprobe.function("sys_bdflush").return ?
-{
-       name = "bdflush"
-       retstr = returnstr(1)
-}
-
 # bind _______________________________________________________
 # long sys_bind(int fd, struct sockaddr __user *umyaddr, int addrlen)
 probe nd_syscall.bind = __nd_syscall.bind ?, __nd_syscall.socketcall.bind ?,
diff --git a/tapset/linux/sysc_bdflush.stp b/tapset/linux/sysc_bdflush.stp
new file mode 100644 (file)
index 0000000..bed1566
--- /dev/null
@@ -0,0 +1,54 @@
+# bdflush ____________________________________________________
+# long sys_bdflush(int func, long data)
+
+@define _SYSCALL_BDFLUSH_NAME
+%(
+       name = "bdflush"
+%)
+
+@define _SYSCALL_BDFLUSH_ARGSTR
+%(
+       argstr = sprintf("%d, %s", func, data_str)
+%)
+
+probe syscall.bdflush = dw_syscall.bdflush !, nd_syscall.bdflush {}
+probe syscall.bdflush.return = dw_syscall.bdflush.return !, nd_syscall.bdflush.return {}
+
+# dw_bdflush _____________________________________________________
+
+probe dw_syscall.bdflush = kernel.function("sys_bdflush").call ?
+{
+       @_SYSCALL_BDFLUSH_NAME
+       func = $func
+       data = $data
+       if (($func >= 2) && ($func % 2 == 0))
+               data_str = sprintf("%p", $data)
+       else
+               data_str = sprintf("%d", $data)
+       @_SYSCALL_BDFLUSH_ARGSTR
+}
+probe dw_syscall.bdflush.return = kernel.function("sys_bdflush").return ?
+{
+       @_SYSCALL_BDFLUSH_NAME
+       retstr = return_str(1, $return)
+}
+
+# nd_bdflush _____________________________________________________
+
+probe nd_syscall.bdflush = kprobe.function("sys_bdflush") ?
+{
+       @_SYSCALL_BDFLUSH_NAME
+       asmlinkage()
+       func = int_arg(1)
+       data = long_arg(2)
+       if ((func >= 2) && (func % 2 == 0))
+               data_str = sprintf("%p", data)
+       else
+               data_str = sprintf("%d", data)
+       @_SYSCALL_BDFLUSH_ARGSTR
+}
+probe nd_syscall.bdflush.return = kprobe.function("sys_bdflush").return ?
+{
+       @_SYSCALL_BDFLUSH_NAME
+       retstr = returnstr(1)
+}
index fab6baecee6882083cf8e432414cc62323e41048..a6680d39aa226b90825bd5331f0536c8e02e8a08 100644 (file)
@@ -1,23 +1,4 @@
 
-# bdflush ____________________________________________________
-# long sys_bdflush(int func, long data)
-probe syscall.bdflush = kernel.function("sys_bdflush").call ?
-{
-       name = "bdflush"
-       func = $func
-       data = $data
-       if (($func >= 2) && ($func % 2 == 0))
-               data_str = sprintf("%p", $data)
-       else
-               data_str = sprintf("%d", $data)
-       argstr = sprintf("%d, %s", func, data_str)
-}
-probe syscall.bdflush.return = kernel.function("sys_bdflush").return ?
-{
-       name = "bdflush"
-       retstr = return_str(1, $return)
-}
-
 # bind _______________________________________________________
 # long sys_bind(int fd, struct sockaddr __user *umyaddr, int addrlen)
 probe syscall.bind = __syscall.bind ?, __syscall.socketcall.bind ?,
This page took 0.036622 seconds and 5 git commands to generate.