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

index ab1f71221f01727a0286d4e28adcd44b31896f09..564578de459630b7fd74b7e3f5c048fe9bccbd0a 100644 (file)
@@ -1,32 +1,4 @@
 
-# add_key ____________________________________________________
-# long sys_add_key(const char __user *_type,
-#             const char __user *_description,
-#             const void __user *_payload,
-#             size_t plen,
-#             key_serial_t ringid)
-#
-probe nd_syscall.add_key = kprobe.function("sys_add_key") ?
-{
-       name = "add_key"
-       asmlinkage()
-       type_uaddr = pointer_arg(1)
-       description_uaddr = pointer_arg(2)
-       payload_uaddr = pointer_arg(3)
-       plen = ulong_arg(4)
-       ringid = int_arg(5)
-       argstr = sprintf("%s, %s, %s, %u, %d",
-               user_string_quoted(type_uaddr),
-               user_string_quoted(description_uaddr),
-               user_buffer_quoted(payload_uaddr, plen, syscall_string_trunc),
-               plen, ringid)
-}
-probe nd_syscall.add_key.return = kprobe.function("sys_add_key").return ?
-{
-       name = "add_key"
-       retstr = returnstr(1)
-}
-
 # adjtimex ___________________________________________________
 # long sys_adjtimex(struct timex __user *txc_p)
 probe nd_syscall.adjtimex = kprobe.function("sys_adjtimex") ?
diff --git a/tapset/linux/sysc_add_key.stp b/tapset/linux/sysc_add_key.stp
new file mode 100644 (file)
index 0000000..86442fd
--- /dev/null
@@ -0,0 +1,61 @@
+# add_key ____________________________________________________
+# long sys_add_key(const char __user *_type,
+#             const char __user *_description,
+#             const void __user *_payload,
+#             size_t plen,
+#             key_serial_t ringid)
+#
+
+@define _SYSCALL_ADD_KEY_NAME
+%(
+       name = "add_key"
+%)
+
+@define _SYSCALL_ADD_KEY_ARGSTR
+%(
+       argstr = sprintf("%s, %s, %s, %u, %d",
+                        user_string_quoted(type_uaddr),
+                        user_string_quoted(description_uaddr),
+                        user_buffer_quoted(payload_uaddr, plen, syscall_string_trunc),
+                        plen, ringid)
+%)
+
+probe syscall.add_key = dw_syscall.add_key !, nd_syscall.add_key {}
+probe syscall.add_key.return = dw_syscall.add_key.return !, nd_syscall.add_key.return {}
+
+# dw_add_key _____________________________________________________
+
+probe dw_syscall.add_key = kernel.function("sys_add_key").call ?
+{
+       @_SYSCALL_ADD_KEY_NAME
+       type_uaddr = $_type
+       description_uaddr = $_description
+       payload_uaddr = $_payload
+       plen = __ulong($plen)
+       ringid = __int32($ringid)
+       @_SYSCALL_ADD_KEY_ARGSTR
+}
+probe dw_syscall.add_key.return = kernel.function("sys_add_key").return ?
+{
+       @_SYSCALL_ADD_KEY_NAME
+       retstr = return_str(1, $return)
+}
+
+# nd_add_key _____________________________________________________
+
+probe nd_syscall.add_key = kprobe.function("sys_add_key") ?
+{
+       @_SYSCALL_ADD_KEY_NAME
+       asmlinkage()
+       type_uaddr = pointer_arg(1)
+       description_uaddr = pointer_arg(2)
+       payload_uaddr = pointer_arg(3)
+       plen = ulong_arg(4)
+       ringid = int_arg(5)
+       @_SYSCALL_ADD_KEY_ARGSTR
+}
+probe nd_syscall.add_key.return = kprobe.function("sys_add_key").return ?
+{
+       @_SYSCALL_ADD_KEY_NAME
+       retstr = returnstr(1)
+}
index 722adbd028a5b59b6c9f4b88f1785e1d6800f8af..d490f1b2f538e80b88218988f76cf3aebfd0a6bc 100644 (file)
@@ -1,36 +1,4 @@
 
-# add_key ____________________________________________________
-# long sys_add_key(const char __user *_type,
-#             const char __user *_description,
-#             const void __user *_payload,
-#             size_t plen,
-#             key_serial_t ringid)
-#
-probe syscall.add_key = kernel.function("sys_add_key").call ?
-{
-       name = "add_key"
-       type_uaddr = $_type
-# 'description_auddr' should have been 'description_uaddr'.  Deprecate
-# the old name.
-%(systemtap_v <= "1.4" %?
-       description_auddr = $_description
-%)
-       description_uaddr = $_description
-       payload_uaddr = $_payload
-       plen = __ulong($plen)
-       ringid = __int32($ringid)
-       argstr = sprintf("%s, %s, %s, %u, %d",
-               user_string_quoted($_type),
-               user_string_quoted($_description),
-               user_buffer_quoted($_payload, $plen, syscall_string_trunc),
-               __ulong($plen), __int32($ringid))
-}
-probe syscall.add_key.return = kernel.function("sys_add_key").return ?
-{
-       name = "add_key"
-       retstr = return_str(1, $return)
-}
-
 # adjtimex ___________________________________________________
 # long sys_adjtimex(struct timex __user *txc_p)
 probe syscall.adjtimex = kernel.function("sys_adjtimex").call
This page took 0.034178 seconds and 5 git commands to generate.