summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tapset/ChangeLog7
-rw-r--r--tapset/errno.stp2
-rw-r--r--tapset/syscalls.stp26
-rw-r--r--tapset/syscalls2.stp25
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"