summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhunt <hunt>2006-07-12 20:15:14 +0000
committerhunt <hunt>2006-07-12 20:15:14 +0000
commit04ef3bc4124184ef4f4179a1b516ae0c555c61ac (patch)
tree6ef10c422b9a4fbd6e9909926f23af0d83afabc0
parent6eb1297e37ac4a8c008516546f846230844a10cc (diff)
downloadsystemtap-steved-04ef3bc4124184ef4f4179a1b516ae0c555c61ac.tar.gz
systemtap-steved-04ef3bc4124184ef4f4179a1b516ae0c555c61ac.tar.xz
systemtap-steved-04ef3bc4124184ef4f4179a1b516ae0c555c61ac.zip
More x86_64 workarounds
-rw-r--r--tapset/syscalls.stp8
-rw-r--r--tapset/syscalls2.stp18
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)