diff options
author | hunt <hunt> | 2007-06-15 15:54:49 +0000 |
---|---|---|
committer | hunt <hunt> | 2007-06-15 15:54:49 +0000 |
commit | 7ac40d2da44151108afcbc62f92457b0f6b67d6a (patch) | |
tree | 1c8f366936fa191832f1753b66e5756969bbd466 | |
parent | 7711e84449611959f6ee4c51ff396e71446d79eb (diff) | |
download | systemtap-steved-7ac40d2da44151108afcbc62f92457b0f6b67d6a.tar.gz systemtap-steved-7ac40d2da44151108afcbc62f92457b0f6b67d6a.tar.xz systemtap-steved-7ac40d2da44151108afcbc62f92457b0f6b67d6a.zip |
2007-06-15 Martin Hunt <hunt@redhat.com>
* syscalls.stp: Add sys_fcntl64, sys_oabi_fstat64,
sys_oabi_lstat64.
* syscalls2.stp: Fix sys_send. Add sys_sendfile64.
* errno.stp: Add arm support.
-rw-r--r-- | tapset/ChangeLog | 7 | ||||
-rw-r--r-- | tapset/errno.stp | 2 | ||||
-rw-r--r-- | tapset/syscalls.stp | 26 | ||||
-rw-r--r-- | tapset/syscalls2.stp | 25 |
4 files changed, 45 insertions, 15 deletions
diff --git a/tapset/ChangeLog b/tapset/ChangeLog index 05508229..99d37729 100644 --- a/tapset/ChangeLog +++ b/tapset/ChangeLog @@ -1,3 +1,10 @@ +2007-06-15 Martin Hunt <hunt@redhat.com> + + * syscalls.stp: Add sys_fcntl64, sys_oabi_fstat64, + sys_oabi_lstat64. + * syscalls2.stp: Fix sys_send. Add sys_sendfile64. + * errno.stp: Add arm support. + 2007-06-14 Mike Mason <mmlnx@us.ibm.com> * socket.stp: removed extra assignment to "size" in diff --git a/tapset/errno.stp b/tapset/errno.stp index 061947b9..57df8ef5 100644 --- a/tapset/errno.stp +++ b/tapset/errno.stp @@ -370,6 +370,8 @@ function returnstr:string (returnp:long) %{ /* pure */ ret = CONTEXT->regs->u_regs[UREG_RETPC]; #elif defined (__s390x__) ret = CONTEXT->regs->gprs[2]; +#elif defined (__arm__) + ret = CONTEXT->regs->ARM_r0; #else goto no_ret; #endif diff --git a/tapset/syscalls.stp b/tapset/syscalls.stp index fb96698e..841f9f43 100644 --- a/tapset/syscalls.stp +++ b/tapset/syscalls.stp @@ -1,6 +1,7 @@ // syscalls tapset part 1 [A-M] // Copyright (C) 2005 IBM Corp. // Copyright (C) 2005, 2006 Red Hat Inc. +// Copyright (C) 2007 Quentin Barnes. // // This file is part of systemtap, and is free software. You can // redistribute it and/or modify it under the terms of the GNU General @@ -642,7 +643,11 @@ probe syscall.fchown16.return = kernel.function("sys_fchown16").return ? { # fcntl ______________________________________________________ # long sys_fcntl(int fd, unsigned int cmd, unsigned long arg) -probe syscall.fcntl = kernel.function("sys_fcntl") { +# long sys_fcntl64(unsigned int fd, unsigned int cmd, unsigned long arg) +probe syscall.fcntl = + kernel.function("sys_fcntl") ?, + kernel.function("sys_fcntl64") ? +{ name = "fcntl" fd = $fd cmd = $cmd @@ -650,7 +655,10 @@ probe syscall.fcntl = kernel.function("sys_fcntl") { arg = $arg argstr = sprintf("%d, %s, %p", $fd, cmd_str, $arg) } -probe syscall.fcntl.return = kernel.function("sys_fcntl").return { +probe syscall.fcntl.return = + kernel.function("sys_fcntl").return ?, + kernel.function("sys_fcntl64").return ? +{ name = "fcntl" retstr = returnstr(1) } @@ -783,6 +791,8 @@ probe syscall.fsetxattr.return = kernel.function("sys_fsetxattr").return { # long sys_fstat64(unsigned long fd, struct stat64 __user * statbuf) # long sys32_fstat64(unsigned int fd, struct stat64 __user *statbuf) # long sys_newfstat(unsigned int fd, struct stat __user * statbuf) +# long sys_oabi_fstat64(char __user * filename, +# struct oldabi_stat64 __user * statbuf) # long compat_sys_newfstat(unsigned int fd, struct compat_stat __user * statbuf) # probe syscall.fstat = @@ -790,7 +800,8 @@ probe syscall.fstat = kernel.function("sys_fstat64") ?, kernel.function("sys32_fstat64") ?, kernel.function("sys_newfstat") ?, - kernel.function("compat_sys_newfstat") ? + kernel.function("sys_oabi_fstat64") ?, + kernel.function("compat_sys_newfstat") ? { name = "fstat" filedes = $fd @@ -802,6 +813,7 @@ probe syscall.fstat.return = kernel.function("sys_fstat64").return ?, kernel.function("sys32_fstat64").return ?, kernel.function("sys_newfstat").return ?, + kernel.function("sys_oabi_fstat64").return ?, kernel.function("compat_sys_newfstat").return ? { name = "fstat" @@ -1806,13 +1818,16 @@ probe syscall.lsetxattr.return = kernel.function("sys_lsetxattr").return { # long compat_sys_newlstat(char __user * filename, struct compat_stat __user *statbuf) # long sys32_lstat64(char * filename, struct stat64 __user *statbuf) # long sys_lstat64(char __user * filename, struct stat64 __user * statbuf) +# long sys_oabi_lstat64(char __user * filename, +# struct oldabi_stat64 __user * statbuf) # probe syscall.lstat = kernel.function("sys_lstat") ?, kernel.function("sys_newlstat") ?, kernel.function("compat_sys_newlstat") ?, kernel.function("sys32_lstat64") ?, - kernel.function("sys_lstat64") ? + kernel.function("sys_lstat64") ?, + kernel.function("sys_oabi_lstat64") ? { name = "lstat" path = user_string($filename) @@ -1824,7 +1839,8 @@ probe syscall.lstat.return = kernel.function("sys_newlstat").return ?, kernel.function("compat_sys_newlstat").return ?, kernel.function("sys32_lstat64").return ?, - kernel.function("sys_lstat64").return ? + kernel.function("sys_lstat64").return ?, + kernel.function("sys_oabi_lstat64").return ? { name = "lstat" retstr = returnstr(1) diff --git a/tapset/syscalls2.stp b/tapset/syscalls2.stp index 6b8a5ac4..8aa2f74f 100644 --- a/tapset/syscalls2.stp +++ b/tapset/syscalls2.stp @@ -1,6 +1,7 @@ // syscalls tapset part 2 [N-Z] // Copyright (C) 2005 IBM Corp. // Copyright (C) 2005, 2006 Red Hat Inc. +// Copyright (C) 2007 Quentin Barnes. // // This file is part of systemtap, and is free software. You can // redistribute it and/or modify it under the terms of the GNU General @@ -1036,12 +1037,10 @@ probe syscall.semtimedop.return = kernel.function("sys_semtimedop").return { # send _______________________________________________________ # # asmlinkage long -# sys_sendto(int fd, +# sys_send(int fd, # void __user * buff, # size_t len, -# unsigned flags, -# struct sockaddr __user *addr, -# int addr_len) +# unsigned flags) # probe syscall.send = kernel.function("sys_sendto") { name = "send" @@ -1050,10 +1049,7 @@ probe syscall.send = kernel.function("sys_sendto") { len = $len flags = $flags flags_str = _send_flags_str($flags) - to_uaddr = $addr - tolen = $addr_len - argstr = sprintf("%d, %p, %s, %p, %d", $fd, buf_uaddr, - flags_str, to_uaddr, $addr_len) + argstr = sprintf("%d, %p, %s", $fd, buf_uaddr, flags_str) } probe syscall.send.return = kernel.function("sys_sendto").return { name = "send" @@ -1066,7 +1062,10 @@ probe syscall.send.return = kernel.function("sys_sendto").return { # off_t __user *offset, # size_t count) # -probe syscall.sendfile = kernel.function("sys_sendfile") ?, kernel.function("sys_sendfile64") ? { +probe syscall.sendfile = + kernel.function("sys_sendfile") ?, + kernel.function("sys_sendfile64") ? +{ name = "sendfile" out_fd = $out_fd in_fd = $in_fd @@ -1075,7 +1074,10 @@ probe syscall.sendfile = kernel.function("sys_sendfile") ?, kernel.function("sys argstr = sprintf("%d, %d, %p, %d", $out_fd, $in_fd, offset_uaddr, $count) } -probe syscall.sendfile.return = kernel.function("sys_sendfile").return ?, kernel.function("sys_sendfile64").return ? { +probe syscall.sendfile.return = + kernel.function("sys_sendfile").return ?, + kernel.function("sys_sendfile64").return ? +{ name = "sendfile" retstr = returnstr(1) } @@ -1838,12 +1840,14 @@ probe syscall.ssetmask.return = kernel.function("sys_ssetmask").return ?{ # long sys_stat(char __user * filename, struct __old_stat __user * statbuf) # long sys32_stat64(char __user * filename, struct stat64 __user *statbuf) # long sys_stat64(char __user * filename, struct stat64 __user * statbuf) +# long sys_oabi_stat64(char __user * filename, struct oldabi_stat64 __user * statbuf) # long compat_sys_newstat(char __user * filename, struct compat_stat __user *statbuf) probe syscall.stat = kernel.function("sys_stat") ?, kernel.function("sys_newstat") ?, kernel.function("sys32_stat64") ?, kernel.function("sys_stat64") ?, + kernel.function("sys_oabi_stat64") ?, kernel.function("compat_sys_newstat") ? { name = "stat" @@ -1857,6 +1861,7 @@ probe syscall.stat.return = kernel.function("sys_newstat").return ?, kernel.function("sys32_stat64").return ?, kernel.function("sys_stat64").return ?, + kernel.function("sys_oabi_stat64").return ?, kernel.function("compat_sys_newstat").return ? { name = "stat" |