diff options
author | hunt <hunt> | 2006-06-30 19:31:38 +0000 |
---|---|---|
committer | hunt <hunt> | 2006-06-30 19:31:38 +0000 |
commit | ece0fed02ea52ba47993354000488f20dfb47848 (patch) | |
tree | c21708b1264a4e49533a79c78f5f93acb6ac28e6 /tapset/syscalls2.stp | |
parent | b40af7ee2b7ec2a0bdabf4e1b2ecfceec1de33be (diff) | |
download | systemtap-steved-ece0fed02ea52ba47993354000488f20dfb47848.tar.gz systemtap-steved-ece0fed02ea52ba47993354000488f20dfb47848.tar.xz systemtap-steved-ece0fed02ea52ba47993354000488f20dfb47848.zip |
2006-06-30 Martin Hunt <hunt@redhat.com>
* conversions.stp (user_string): Don't generate errors
on faults, just return <unknown>.
(user_string2): New function.
(user_string_warn): New function.
Diffstat (limited to 'tapset/syscalls2.stp')
-rw-r--r-- | tapset/syscalls2.stp | 64 |
1 files changed, 34 insertions, 30 deletions
diff --git a/tapset/syscalls2.stp b/tapset/syscalls2.stp index 49f7cc79..80b2aa71 100644 --- a/tapset/syscalls2.stp +++ b/tapset/syscalls2.stp @@ -36,22 +36,6 @@ probe syscall.nanosleep.return = kernel.function("sys_nanosleep").return { name = "nanosleep" retstr = returnstr(1) } -# newfstat ___________________________________________________ -# -# asmlinkage long -# sys_newfstat(unsigned int fd, -# struct stat __user * statbuf) -# -probe syscall.newfstat = kernel.function("sys_newfstat") { - name = "fstat" - fd = $fd - buf_uaddr = $statbuf - argstr = sprintf("%d, [%p]", fd, buf_uaddr) -} -probe syscall.newfstat.return = kernel.function("sys_newfstat").return { - name = "fstat" - retstr = returnstr(1) -} # newlstat ___________________________________________________ # # long sys_newlstat(char __user * filename, @@ -161,7 +145,10 @@ probe syscall.old_getrlimit.return = kernel.function("sys_old_getrlimit").return # open _______________________________________________________ # asmlinkage long sys_open(const char __user * filename, int flags, int mode) -probe syscall.open = kernel.function("sys_open") { +probe syscall.open = + kernel.function("sys_open") ?, + kernel.function("sys32_open") ? +{ name = "open" filename = user_string($filename) flags = $flags @@ -171,7 +158,10 @@ probe syscall.open = kernel.function("sys_open") { else argstr = sprintf("\"%s\", %s", filename, _sys_open_flag_str(flags)) } -probe syscall.open.return = kernel.function("sys_open").return { +probe syscall.open.return = + kernel.function("sys_open").return ?, + kernel.function("sys32_open").return ? +{ name = "open" retstr = returnstr(1) } @@ -1772,21 +1762,41 @@ probe syscall.ssetmask.return = kernel.function("sys_ssetmask").return { retstr = returnstr(1) } -# statfs _____________________________________________________ +# stat _______________________________________________________ +# long sys_stat(char __user * filename, struct __old_stat __user * statbuf) # -# long sys_statfs(const char __user * path, -# struct statfs __user * buf) +probe syscall.stat = + kernel.function("sys_stat") ?, + kernel.function("sys_newstat") ? +{ + name = "stat" + filename_uaddr = $filename + filename = user_string($filename) + buf_uaddr = $statbuf + argstr = sprintf("%s, [%p]", filename, buf_uaddr) +} +probe syscall.stat.return = + kernel.function("sys_stat").return ?, + kernel.function("sys_newstat").return ? +{ + name = "stat" + retstr = returnstr(1) +} + +# statfs _____________________________________________________ +# long sys_statfs(const char __user * path, struct statfs __user * buf) # probe syscall.statfs = kernel.function("sys_statfs") { name = "statfs" path = user_string($path) buf_uaddr = $buf - argstr = sprintf("%s, [%p]", path, $buf) + argstr = sprintf("\"%s\", [%p]", path, $buf) } probe syscall.statfs.return = kernel.function("sys_statfs").return { name = "statfs" retstr = returnstr(1) } + # statfs64 ___________________________________________________ # # long sys_statfs64(const char __user *path, @@ -2159,10 +2169,7 @@ probe syscall.uname.return = kernel.function("sys_uname").return { probe syscall.unlink = kernel.function("sys_unlink") { name = "unlink" pathname_uaddr = $pathname - if ($pathname > 0) - pathname = user_string($pathname) - else - pathname = "null" + pathname = user_string($pathname) argstr = sprintf("\"%s\"",pathname) } probe syscall.unlink.return = kernel.function("sys_unlink").return { @@ -2185,10 +2192,7 @@ probe syscall.uselib.return = kernel.function("sys_uselib").return { retstr = returnstr(1) } # ustat ______________________________________________________ -# -# asmlinkage long -# sys_ustat(unsigned dev, -# struct ustat __user * ubuf) +# long sys_ustat(unsigned dev, struct ustat __user * ubuf) # probe syscall.ustat = kernel.function("sys_ustat") { name = "ustat" |