diff options
author | hunt <hunt> | 2006-07-12 20:15:14 +0000 |
---|---|---|
committer | hunt <hunt> | 2006-07-12 20:15:14 +0000 |
commit | 04ef3bc4124184ef4f4179a1b516ae0c555c61ac (patch) | |
tree | 6ef10c422b9a4fbd6e9909926f23af0d83afabc0 | |
parent | 6eb1297e37ac4a8c008516546f846230844a10cc (diff) | |
download | systemtap-steved-04ef3bc4124184ef4f4179a1b516ae0c555c61ac.tar.gz systemtap-steved-04ef3bc4124184ef4f4179a1b516ae0c555c61ac.tar.xz systemtap-steved-04ef3bc4124184ef4f4179a1b516ae0c555c61ac.zip |
More x86_64 workarounds
-rw-r--r-- | tapset/syscalls.stp | 8 | ||||
-rw-r--r-- | tapset/syscalls2.stp | 18 |
2 files changed, 25 insertions, 1 deletions
diff --git a/tapset/syscalls.stp b/tapset/syscalls.stp index 36a5e22e..a5057cdf 100644 --- a/tapset/syscalls.stp +++ b/tapset/syscalls.stp @@ -1888,6 +1888,12 @@ probe syscall.mlockall.return = kernel.function("sys_mlockall").return { # long sys_mmap(unsigned long addr, unsigned long len, # unsigned long prot, unsigned long flags, # unsigned long fd, unsigned long off) +%(arch == "x86_64" %? +probe syscall.mmap = kernel.function("sys_mmap") ? { + name = "mmap" + argstr = "" +} +%: probe syscall.mmap = kernel.function("sys_mmap") ? { name = "mmap" start = $addr @@ -1903,6 +1909,8 @@ probe syscall.mmap = kernel.function("sys_mmap") ? { argstr = sprintf("%p, %d, %s, %s, %d, %d", $addr, $len, _mprotect_prot_str($prot), _mmap_flags($flags), $fd, offset) } +%) + probe syscall.mmap.return = kernel.function("sys_mmap").return ? { name = "mmap" retstr = returnstr(2) diff --git a/tapset/syscalls2.stp b/tapset/syscalls2.stp index d0dc19ff..9b6b7e91 100644 --- a/tapset/syscalls2.stp +++ b/tapset/syscalls2.stp @@ -271,11 +271,19 @@ probe syscall.personality.return = kernel.function("sys_personality").return { # asmlinkage int # sys_pipe(unsigned long __user * fildes) # +%(arch == "x86_64" %? +# x86_64 gcc 4.1 problem +probe syscall.pipe = kernel.function("sys_pipe") { + name = "pipe" + argstr = "" +} +%: probe syscall.pipe = kernel.function("sys_pipe") { name = "pipe" fildes_uaddr = $fildes - argstr = _fildes_u(fildes_uaddr) + argstr = _fildes_u($fildes) } +%) probe syscall.pipe.return = kernel.function("sys_pipe").return { name = "pipe" retstr = returnstr(1) @@ -2217,12 +2225,20 @@ probe syscall.umount.return = kernel.function("sys_umount").return { # asmlinkage int # int sys_uname(struct old_utsname __user *name) # +%(arch == "x86_64" %? +# more gcc 4.1 problems +probe syscall.uname = kernel.function("sys_uname") { + name = "uname" + argstr = "" +} +%: probe syscall.uname = kernel.function("sys_uname") { name = "uname" name_uaddr = $name name_str = user_string($name) argstr = user_string_quoted($name) } +%) probe syscall.uname.return = kernel.function("sys_uname").return { name = "uname" retstr = returnstr(1) |