summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhunt <hunt>2006-02-14 09:03:16 +0000
committerhunt <hunt>2006-02-14 09:03:16 +0000
commitfcd62d68996876396a64a8f712aaaa524d9322c1 (patch)
treef32cd748aebabed9e93de5f3c8d15289acd66b0a
parentfd2774667c0926d26d334e286fdfc4f93071c2e9 (diff)
downloadsystemtap-steved-fcd62d68996876396a64a8f712aaaa524d9322c1.tar.gz
systemtap-steved-fcd62d68996876396a64a8f712aaaa524d9322c1.tar.xz
systemtap-steved-fcd62d68996876396a64a8f712aaaa524d9322c1.zip
2006-02-14 Martin Hunt <hunt@redhat.com>
* aux_syscalls.stp (_struct_timeval_u): New function. (_struct_timeval): New function. (_struct_timespec_u): New function. (_struct_timespec): New function. (_struct_itimerval_u): New function: (_struct_itimerval): New function: (_signal_name): New function. (_module_flags_str): Fixed. * syscalls2.stp (syscall.setitimer): Use new function _struct_itimerval_u(). * syscalls.stp: Latest version. Many changes.
-rw-r--r--tapset/ChangeLog16
-rw-r--r--tapset/aux_syscalls.stp315
-rw-r--r--tapset/syscalls.stp1472
-rw-r--r--tapset/syscalls2.stp15
4 files changed, 851 insertions, 967 deletions
diff --git a/tapset/ChangeLog b/tapset/ChangeLog
index 2aae15e4..cea4f348 100644
--- a/tapset/ChangeLog
+++ b/tapset/ChangeLog
@@ -1,3 +1,19 @@
+2006-02-14 Martin Hunt <hunt@redhat.com>
+
+ * aux_syscalls.stp (_struct_timeval_u): New function.
+ (_struct_timeval): New function.
+ (_struct_timespec_u): New function.
+ (_struct_timespec): New function.
+ (_struct_itimerval_u): New function:
+ (_struct_itimerval): New function:
+ (_signal_name): New function.
+ (_module_flags_str): Fixed.
+
+ * syscalls2.stp (syscall.setitimer): Use new function
+ _struct_itimerval_u().
+
+ * syscalls.stp: Latest version. Many changes.
+
2006-02-08 Martin Hunt <hunt@redhat.com>
* aux_syscalls.stp(_msync_flag_str): Fix.
diff --git a/tapset/aux_syscalls.stp b/tapset/aux_syscalls.stp
index 9892e118..5f29b8ca 100644
--- a/tapset/aux_syscalls.stp
+++ b/tapset/aux_syscalls.stp
@@ -1,3 +1,190 @@
+#
+# Given a userspace pointer to a timeval,
+# copy and decode it and return a string.
+#
+function _struct_timeval_u:string(uaddr:long)
+%{
+ struct timeval tv;
+ char *ptr = (char *)(unsigned long)THIS->uaddr;
+
+ if (ptr == NULL)
+ strlcpy (THIS->__retvalue, "NULL", MAXSTRINGLEN);
+ else {
+ if(_stp_copy_from_user(&tv,ptr,sizeof(struct timeval)) == 0)
+ snprintf(THIS->__retvalue, MAXSTRINGLEN, "[%d.%06d]", tv.tv_sec, tv.tv_usec);
+ else
+ strlcpy (THIS->__retvalue, "UNKNOWN", MAXSTRINGLEN);
+ }
+%}
+
+function _struct_timeval:string(addr:long)
+%{
+ struct timeval tv;
+ char *ptr = (char *)(unsigned long)THIS->addr;
+
+ if (ptr == NULL)
+ strlcpy (THIS->__retvalue, "NULL", MAXSTRINGLEN);
+ else
+ snprintf(THIS->__retvalue, MAXSTRINGLEN, "[%d.%06d]", tv.tv_sec, tv.tv_usec);
+%}
+
+function _struct_timespec_u:string(uaddr:long)
+%{
+ struct timespec ts;
+ char *ptr = (char *)(unsigned long)THIS->uaddr;
+
+ if (ptr == NULL)
+ strlcpy (THIS->__retvalue, "NULL", MAXSTRINGLEN);
+ else {
+ if(_stp_copy_from_user((char *)&ts,ptr,sizeof(struct timespec))) {
+ strlcpy (THIS->__retvalue, "UNKNOWN", MAXSTRINGLEN);
+ } else
+ snprintf(THIS->__retvalue, MAXSTRINGLEN, "[%ld.%09ld]",
+ (unsigned long)ts.tv_sec, (unsigned long)ts.tv_nsec);
+ }
+%}
+
+function _struct_timespec:string(addr:long)
+%{
+ struct timespec ts;
+ char *ptr = (char *)(unsigned long)THIS->addr;
+
+ if (ptr == NULL)
+ strlcpy (THIS->__retvalue, "NULL", MAXSTRINGLEN);
+ else
+ snprintf(THIS->__retvalue, MAXSTRINGLEN, "[%ld.%09ld]",
+ (unsigned long)ts.tv_sec, (unsigned long)ts.tv_nsec);
+%}
+
+function _struct_itimerval_u:string(uaddr:long)
+%{
+ struct itimerval itv;
+ char *ptr = (char *)(unsigned long)THIS->uaddr;
+
+ if (ptr == NULL)
+ strlcpy (THIS->__retvalue, "NULL", MAXSTRINGLEN);
+ else {
+ if(_stp_copy_from_user((char *)&itv,ptr,sizeof(struct itimerval)))
+ strlcpy (THIS->__retvalue, "UNKNOWN", MAXSTRINGLEN);
+ else
+ snprintf(THIS->__retvalue, MAXSTRINGLEN, "[%d.%06d,%d.%06d]",
+ (int)itv.it_interval.tv_sec, (int)itv.it_interval.tv_usec,
+ (int)itv.it_value.tv_sec, (int)itv.it_value.tv_usec);
+ }
+%}
+
+function _struct_itimerval:string(addr:long)
+%{
+ struct itimerval itv;
+ char *ptr = (char *)(unsigned long)THIS->addr;
+
+ if (ptr == NULL)
+ strlcpy (THIS->__retvalue, "NULL", MAXSTRINGLEN);
+ else {
+ snprintf(THIS->__retvalue, MAXSTRINGLEN, "[%d.%06d,%d.%06d]",
+ (int)itv.it_interval.tv_sec, (int)itv.it_interval.tv_usec,
+ (int)itv.it_value.tv_sec, (int)itv.it_value.tv_usec);
+ }
+%}
+
+
+function _signal_name:string(sig:long)
+%{
+ int sig = THIS->sig;
+ char *res = 0;
+
+ switch(sig) {
+ case 0:
+ res = "NO_SIGNAL";
+ break;
+ case SIGHUP:
+ res = "SIGHUP";
+ break;
+ case SIGINT:
+ res = "SIGINT";
+ break;
+ case SIGQUIT:
+ res = "SIGQUIT";
+ break;
+ case SIGILL:
+ res = "SIGILL";
+ break;
+ case SIGTRAP:
+ res = "SIGTRAP";
+ break;
+ case SIGABRT:
+ res = "SIGABRT";
+ break;
+ case SIGBUS:
+ res = "SIGBUS";
+ break;
+ case SIGFPE:
+ res = "SIGFPE";
+ break;
+ case SIGKILL:
+ res = "SIGKILL";
+ break;
+ case SIGUSR1:
+ res = "SIGUSR1";
+ break;
+ case SIGSEGV:
+ res = "SIGSEGV";
+ break;
+ case SIGPIPE:
+ res = "SIGPIPE";
+ break;
+ case SIGUSR2:
+ res = "SIGUSR2";
+ break;
+ case SIGALRM:
+ res = "SIGALRM";
+ break;
+ case SIGTERM:
+ res = "SIGTERM";
+ break;
+ case SIGCHLD:
+ res = "SIGCHLD";
+ break;
+ case SIGCONT:
+ res = "SIGCONT";
+ break;
+ case SIGSTOP:
+ res = "SIGSTOP";
+ break;
+ case SIGTSTP:
+ res = "SIGTSTP";
+ break;
+ case SIGTTIN:
+ res = "SIGTTIN";
+ break;
+ case SIGTTOU:
+ res = "SIGTTOU";
+ break;
+ case SIGURG:
+ res = "SIGURG";
+ break;
+ case SIGPROF:
+ res = "SIGPROF";
+ break;
+ case SIGWINCH:
+ res = "SIGWINCH";
+ break;
+ case SIGVTALRM:
+ res = "SIGVTALRM";
+ break;
+ case SIGIO:
+ res = "SIGIO/SIGPOLL";
+ break;
+ case SIGPWR:
+ res = "SIGPWR";
+ break;
+ }
+ if (res)
+ strlcpy (THIS->__retvalue, res, MAXSTRINGLEN);
+ else
+ snprintf(THIS->__retvalue, MAXSTRINGLEN, "%d", sig);
+%}
+
function __fork_flags:string(flags:long)
%{
long flags = THIS->flags;
@@ -103,79 +290,6 @@ function __string:string (a:long)
%}
/*
- * Return the 64 bit long value of the
- * scalar user space pointer parameter
- * CALLERS:
- * kernel.syscall.time
- * kernel.syscall.stime
- */
-/*
-function __uget_num:long(u_addr:long)
-%{
- long long val = 0;
- if(get_user(val,
- (unsigned long *)(unsigned long)THIS->u_addr))
- {
- THIS->__retvalue = -EFAULT;
- } else
- THIS->__retvalue = val;
-%}
-*/
-/*
- * Return a time_t/subseconds_t member value of
- * struct timeval user space pointer parameter
- * CALLERS:
- * kernel.syscall.gettimeofday
- * kernel.syscall.settimeofday
- */
-/*
-function __uget_tv_m:long(u_addr:long,member:long)
-%{
- struct timeval tv;
- char *ptr = (char *)(unsigned long)THIS->u_addr;
- size_t sz = sizeof(struct timeval);
-
- if(copy_from_user(&tv,ptr,sz))
- THIS->__retvalue = -EFAULT;
- else if(THIS->member == 0)
- THIS->__retvalue = tv.tv_sec;
- else
- THIS->__retvalue = tv.tv_usec;
-%}
-*/
-/*
- * Return a time_t / subseconds_t member value of
- * one of the struct timevals in the struct itimerval
- * user space pointer parameter
- * CALLERS:
- * kernel.syscall.getitimer
- * kernel.syscall.setitimer
- */
-/*
-function __uget_itimerval_tv_m:long(u_addr:long,member:long)
-%{
- struct itimerval itv;
- char *ptr = (char *)(unsigned long)THIS->u_addr;
- size_t sz = sizeof(struct itimerval);
-
- if(copy_from_user(&itv,ptr,sz)) {
- THIS->__retvalue = -EFAULT;
- return;
- }
- switch(THIS->member) {
- case 0: THIS->__retvalue = itv.it_interval.tv_sec;
- break;
- case 1: THIS->__retvalue = itv.it_interval.tv_usec;
- break;
- case 2: THIS->__retvalue = itv.it_value.tv_sec;
- break;
- case 3: THIS->__retvalue = itv.it_value.tv_usec;
- break;
- default: THIS->__retvalue = -1;
- }
-%}
-*/
-/*
* Return a integer member value of struct
* timezone user space pointer parameter
* CALLERS:
@@ -293,37 +407,7 @@ function __uget_ts_m:long(u_addr:long,member:long)
THIS->__retvalue = ts.tv_nsec;
%}
*/
-/*
- * Return a time_t / long member value of the
- * struct timespecs in struct itimerspec user
- * space pointer parameter
- * CALLERS:
- * kernel.syscall.timer_gettime
- */
-/*
-function __uget_itimerspec_ts_m:long(u_addr:long,member:long)
-%{
- struct itimerspec its;
- char *ptr = (char *)(unsigned long)THIS->u_addr;
- size_t sz = sizeof(struct itimerspec);
- if(copy_from_user(&its,ptr,sz)) {
- THIS->__retvalue = -EFAULT;
- return;
- }
- switch(THIS->member) {
- case 0: THIS->__retvalue = its.it_interval.tv_sec;
- break;
- case 1: THIS->__retvalue = its.it_interval.tv_nsec;
- break;
- case 2: THIS->__retvalue = its.it_value.tv_sec;
- break;
- case 3: THIS->__retvalue = its.it_value.tv_nsec;
- break;
- default: THIS->__retvalue = -1;
- }
-%}
-*/
/*
* Return the symbolic string representation
* of the struct timex.mode member of adjtimex
@@ -512,25 +596,11 @@ function _mlockall_flags_str(f) {
return substr(bs,0,strlen(bs)-1)
}
-/*
- * The following functions return the symbolic string
- * representation of the flag. If the argument doesnt
- * map to string, an empty string ("") is returned.
- */
-
-function _module_flags_str(f) {
- if(f==8192) return "O_ASYNC"
- if(f==4096) return "O_SYNC"
- if(f==2048) return "O_NONBLOCK"
- if(f==1024) return "O_APPEND"
- if(f==512) return "O_TRUNC"
- if(f==256) return "O_NDCTTY"
- if(f==128) return "O_EXCL"
- if(f==64) return "O_CREAT"
- if(f==2) return "O_RDWR"
- if(f==1) return "O_WRONLY"
- if(f==0) return "O_RDONLY"
- return ""
+/* used by sys_delete_module */
+function _module_flags_str(f) {
+ if(!(f & 2048)) bs="WAIT|"
+ if(f & 512) bs=bs."FORCE|"
+ return substr(bs,0,strlen(bs)-1)
}
function _sched_policy_str(policy) {
@@ -974,3 +1044,4 @@ function _rusage_who_str(w) {
if(w==-1) return "RUSAGE_CHILDREN"
return ""
}
+
diff --git a/tapset/syscalls.stp b/tapset/syscalls.stp
index b339c028..eb353c76 100644
--- a/tapset/syscalls.stp
+++ b/tapset/syscalls.stp
@@ -364,30 +364,6 @@ probe kernel.syscall.clock_settime.return =
kernel.function("sys_clock_settime").return {
name = "clock_settime.return"
}
-# clone ______________________________________________________
-/*
- * asmlinkage long
- * do_fork(unsigned long clone_flags,
- * unsigned long stack_start,
- * struct pt_regs *regs,
- * unsigned long stack_size,
- * int __user *parent_tidptr,
- * int __user *child_tidptr)
- */
-probe syscall.clone = kernel.function("sys_clone") {
- name = "clone"
- }
-probe syscall.clone.return = kernel.function("sys_clone").return {
- name = "clone"
- returnp = 1
-}
-probe syscall.vfork = kernel.function("sys_vfork") {
- name = "vfork"
- }
-probe syscall.vfork.return = kernel.function("sys_vfork").return {
- name = "vfork"
- returnp = 1
-}
# close ______________________________________________________
# long sys_close(unsigned int fd)
@@ -418,53 +394,45 @@ probe kernel.syscall.connect.return =
kernel.function("sys_connect").return {
name = "connect.return"
}
+
# delete_module ______________________________________________
-/*
- * asmlinkage long
- * sys_delete_module(const char __user *name_user,
- * unsigned int flags)
- */
-probe kernel.syscall.delete_module =
- kernel.function("sys_delete_module") {
- name = "delete_module"
- name_user_uaddr = $name_user
- flags = $flags
- flags_str = _module_flags_str($flags)
- }
-probe kernel.syscall.delete_module.return =
- kernel.function("sys_delete_module").return {
- name = "delete_module.return"
- }
+# long sys_delete_module(const char __user *name_user, unsigned int flags)
+probe syscall.delete_module = kernel.function("sys_delete_module") {
+ name = "delete_module"
+ name_user = user_string($name_user)
+ flags = $flags
+ argstr = sprintf("%s, %s", name_user, _module_flags_str(flags))
+}
+probe syscall.delete_module.return = kernel.function("sys_delete_module").return {
+ name = "delete_module"
+ returnp = 1
+}
+
# dup ________________________________________________________
-/*
- * asmlinkage long
- * sys_dup(unsigned int fildes)
- */
-probe kernel.syscall.dup =
- kernel.function("sys_dup") {
- name = "dup"
- oldfd = $fildes
- }
-probe kernel.syscall.dup.return =
- kernel.function("sys_dup").return {
- name = "dup.return"
- }
+# long sys_dup(unsigned int fildes)
+probe syscall.dup = kernel.function("sys_dup") {
+ name = "dup"
+ oldfd = $fildes
+ argstr = string($fildes)
+}
+probe syscall.dup.return = kernel.function("sys_dup").return {
+ name = "dup"
+ returnp = 1
+}
+
# dup2 _______________________________________________________
-/*
- * asmlinkage long
- * sys_dup2(unsigned int oldfd,
- * unsigned int newfd)
- */
-probe kernel.syscall.dup2 =
- kernel.function("sys_dup2") {
- name = "dup2"
- oldfd = $oldfd
- newfd = $newfd
- }
-probe kernel.syscall.dup2.return =
- kernel.function("sys_dup2").return {
- name = "dup2.return"
- }
+# long sys_dup2(unsigned int oldfd, unsigned int newfd)
+probe syscall.dup2 = kernel.function("sys_dup2") {
+ name = "dup2"
+ oldfd = $oldfd
+ newfd = $newfd
+ argstr = sprintf("%d, %d", $oldfd, $newfd)
+}
+probe syscall.dup2.return = kernel.function("sys_dup2").return {
+ name = "dup2"
+ returnp = 1
+}
+
# epoll_create _______________________________________________
/*
* asmlinkage long
@@ -684,75 +652,62 @@ probe kernel.syscall.fcntl.return =
kernel.function("sys_fcntl").return {
name = "fcntl.return"
}
+
# fdatasync __________________________________________________
-/*
- * asmlinkage long
- * sys_fdatasync(unsigned int fd)
- */
-probe kernel.syscall.fdatasync =
- kernel.function("sys_fdatasync") {
- name = "fdatasync"
- fd = $fd
- }
-probe kernel.syscall.fdatasync.return =
- kernel.function("sys_fdatasync").return {
- name = "fdatasync.return"
- }
+# long sys_fdatasync(unsigned int fd)
+probe syscall.fdatasync = kernel.function("sys_fdatasync") {
+ name = "fdatasync"
+ fd = $fd
+ argstr = string(fd)
+}
+probe syscall.fdatasync.return = kernel.function("sys_fdatasync").return {
+ name = "fdatasync"
+ returnp = 1
+}
+
# fgetxattr __________________________________________________
-/*
- * asmlinkage ssize_t
- * sys_fgetxattr(int fd,
- * char __user *name,
- * void __user *value,
- * size_t size)
- */
-probe kernel.syscall.fgetxattr =
- kernel.function("sys_fgetxattr") {
- name = "fgetxattr"
- fildes = $fd
- path_uaddr = $name
- value_uaddr = $value
- size = $size
- }
-probe kernel.syscall.fgetxattr.return =
- kernel.function("sys_fgetxattr").return {
- name = "fgetxattr.return"
- }
+# ssize_t sys_fgetxattr(int fd, char __user *name,
+# void __user *value, size_t size)
+probe syscall.fgetxattr = kernel.function("sys_fgetxattr") {
+ name = "fgetxattr"
+ filedes = $fd
+#FIXME
+ name2 = user_string($name)
+ value_uaddr = $value
+ size = $size
+ argstr = sprintf("%d, %s, [0x%x], %d", filedes, name2,
+ value_uaddr, size)
+}
+probe syscall.fgetxattr.return = kernel.function("sys_fgetxattr").return {
+ name = "fgetxattr"
+ returnp = 1
+}
# flistxattr _________________________________________________
-/*
- * asmlinkage ssize_t
- * sys_flistxattr(int fd,
- * char __user *list,
- * size_t size)
- */
-probe kernel.syscall.flistxattr =
- kernel.function("sys_flistxattr") {
- name = "flistxattr"
- fildes = $fd
- list_uaddr = $list
- size = $size
- }
-probe kernel.syscall.flistxattr.return =
- kernel.function("sys_flistxattr").return {
- name = "flistxattr.return"
- }
-# flock ______________________________________________________
-/*
- * asmlinkage long
- * sys_flock(unsigned int fd,
- * unsigned int cmd)
- */
-probe kernel.syscall.flock =
- kernel.function("sys_flock") {
- name = "flock"
- fd = $fd
- operation = $cmd
- }
-probe kernel.syscall.flock.return =
- kernel.function("sys_flock").return {
- name = "flock.return"
- }
+# ssize_t sys_flistxattr(int fd, char __user *list, size_t size)
+probe syscall.flistxattr = kernel.function("sys_flistxattr") {
+ name = "flistxattr"
+ filedes = $fd
+ list_uaddr = $list
+ size = $size
+ argstr = sprintf("%d, [0x%x], %d", filedes, list_uaddr, size)
+}
+probe syscall.flistxattr.return = kernel.function("sys_flistxattr").return {
+ name = "flistxattr"
+ returnp = 1
+}
+# flock ______________________________________________________
+# long sys_flock(unsigned int fd, unsigned int cmd)
+probe syscall.flock = kernel.function("sys_flock") {
+ name = "flock"
+ fd = $fd
+ operation = $cmd
+ argstr = sprintf("%d, %s", fd, _flock_cmd_str(operation))
+}
+probe syscall.flock.return = kernel.function("sys_flock").return {
+ name = "flock"
+ returnp = 1
+}
# fork _______________________________________________________
# long do_fork(unsigned long clone_flags,
@@ -786,21 +741,18 @@ probe syscall.fork.return = kernel.function("do_fork").return {
returnp = 1
}
# fremovexattr _______________________________________________
-/*
- * asmlinkage long
- * sys_fremovexattr(int fd,
- * char __user *name)
- */
-probe kernel.syscall.fremovexattr =
- kernel.function("sys_fremovexattr") {
- name = "fremovexattr"
- filedes = $fd
- name_uaddr = $name
- }
-probe kernel.syscall.fremovexattr.return =
- kernel.function("sys_fremovexattr").return {
- name = "fremovexattr.return"
- }
+# long sys_fremovexattr(int fd, char __user *name)
+probe syscall.fremovexattr = kernel.function("sys_fremovexattr") {
+ name = "fremovexattr"
+ filedes = $fd
+ name_uaddr = $name
+ argstr = sprintf("FIXME PLEASE")
+}
+probe syscall.fremovexattr.return = kernel.function("sys_fremovexattr").return {
+ name = "fremovexattr"
+ returnp = 1
+}
+
# fsetxattr __________________________________________________
/*
* asmlinkage long
@@ -810,27 +762,29 @@ probe kernel.syscall.fremovexattr.return =
* size_t size,
* int flags)
*/
-probe kernel.syscall.fsetxattr =
- kernel.function("sys_fsetxattr") {
- name = "fsetxattr"
- fildes = $fd
- name_uaddr = $name
- value_uaddr = $value
- size = $size
- flags = $flags
- }
-probe kernel.syscall.fsetxattr.return =
- kernel.function("sys_fsetxattr").return {
- name = "fsetxattr.return"
- }
+probe syscall.fsetxattr = kernel.function("sys_fsetxattr") {
+ name = "fsetxattr"
+ filedes = $fd
+# FIXME
+ name2 = user_string($name)
+ value_uaddr = $value
+ size = $size
+ flags = $flags
+ argstr = sprintf("%d, %s, [0x%x], %d, 0x%x", filedes, name2,
+ value_uaddr, size, flags)
+}
+probe syscall.fsetxattr.return = kernel.function("sys_fsetxattr").return {
+ name = "fsetxattr"
+ returnp = 1
+}
# fstat ______________________________________________________
# long sys_fstat(unsigned int fd,struct __old_kernel_stat __user * statbuf)
probe syscall.fstat = kernel.function("sys_fstat") {
name = "fstat"
- fd = $fd
+ filedes = $fd
buf_uaddr = $statbuf
- argstr = sprintf("%d, [0x%x]", fd, buf_uaddr)
+ argstr = sprintf("%d, [0x%x]", filedes, buf_uaddr)
}
probe syscall.fstat.return = kernel.function("sys_fstat").return {
name = "fstat"
@@ -838,39 +792,31 @@ probe syscall.fstat.return = kernel.function("sys_fstat").return {
}
# fstatfs ____________________________________________________
-/*
- * asmlinkage long
- * sys_fstatfs(unsigned int fd,
- * struct statfs __user * buf)
- */
-probe kernel.syscall.fstatfs =
- kernel.function("sys_fstatfs") {
- name = "fstatfs"
- fd = $fd
- buf_uaddr = $buf
- }
-probe kernel.syscall.fstatfs.return =
- kernel.function("sys_fstatfs").return {
- name = "fstatfs.return"
- }
+# long sys_fstatfs(unsigned int fd, struct statfs __user * buf)
+probe syscall.fstatfs = kernel.function("sys_fstatfs") {
+ name = "fstatfs"
+ fd = $fd
+ buf_uaddr = $buf
+ argstr = sprintf("%d, [0x%x]", fd, buf_uaddr)
+}
+probe syscall.fstatfs.return = kernel.function("sys_fstatfs").return {
+ name = "fstatfs"
+}
+
# fstatfs64 __________________________________________________
-/*
- * asmlinkage long
- * sys_fstatfs64(unsigned int fd,
- * size_t sz,
- * struct statfs64 __user *buf)
- */
-probe kernel.syscall.fstatfs64 =
- kernel.function("sys_fstatfs64") {
- name = "fstatfs64"
- fd = $fd
- sz = $sz
- buf_uaddr = $buf
- }
-probe kernel.syscall.fstatfs64.return =
- kernel.function("sys_fstatfs64").return {
- name = "fstatfs64.return"
- }
+# long sys_fstatfs64(unsigned int fd, size_t sz, struct statfs64 __user *buf)
+probe syscall.fstatfs64 = kernel.function("sys_fstatfs64") {
+ name = "fstatfs64"
+ fd = $fd
+ sz = $sz
+ buf_uaddr = $buf
+ argstr = sprintf("%d, %d, [0x%x]", fd, sz, buf_uaddr)
+}
+probe syscall.fstatfs64.return = kernel.function("sys_fstatfs64").return {
+ name = "fstatfs64.return"
+ returnp = 1
+}
+
# fsync ______________________________________________________
# long sys_fsync(unsigned int fd)
probe syscall.fsync = kernel.function("sys_fsync") {
@@ -883,273 +829,216 @@ probe syscall.fsync.return = kernel.function("sys_fsync").return {
returnp = 1
}
# ftruncate __________________________________________________
-/*
- * static inline long
- * do_sys_ftruncate(unsigned int fd,
- * loff_t length,
- * int small)
- */
-probe kernel.syscall.ftruncate =
- kernel.function("sys_ftruncate") {
- name = "ftruncate"
- fd = $fd
- length = $length
- }
-probe kernel.syscall.ftruncate.return =
- kernel.function("sys_ftruncate").return {
- name = "ftruncate.return"
- }
+# long sys_ftruncate(unsigned int fd, unsigned long length)
+probe syscall.ftruncate = kernel.function("sys_ftruncate") {
+ name = "ftruncate"
+ fd = $fd
+ length = $length
+ argstr = sprintf("%d, %d", fd, length)
+}
+probe syscall.ftruncate.return = kernel.function("sys_ftruncate").return {
+ name = "ftruncate"
+ returnp = 1
+}
+
# ftruncate64 ________________________________________________
-/*
- * asmlinkage long
- * sys_ftruncate64(unsigned int fd,
- * loff_t length)
- */
-probe kernel.syscall.ftruncate64 =
- kernel.function("sys_ftruncate") {
- name = "ftruncate64"
- fd = $fd
- length = $length
- }
-probe kernel.syscall.ftruncate64.return =
- kernel.function("sys_ftruncate").return {
- name = "ftruncate64.return"
- }
+# long sys_ftruncate64(unsigned int fd, loff_t length)
+probe syscall.ftruncate64 = kernel.function("sys_ftruncate") {
+ name = "ftruncate64"
+ fd = $fd
+ length = $length
+ argstr = sprintf("%d, %d", fd, length)
+}
+probe syscall.ftruncate64.return = kernel.function("sys_ftruncate").return {
+ name = "ftruncate64"
+ returnp = 1
+}
+
# futex ______________________________________________________
-/*
- * asmlinkage long
- * sys_futex(u32 __user *uaddr,
- * int op,
- * int val,
- * struct timespec __user *utime,
- * u32 __user *uaddr2,
- * int val3)
- */
-probe kernel.syscall.futex =
- kernel.function("sys_futex") {
- name = "futex"
- futex_uaddr = $uaddr
- op = $op
- op_str = _futex_op_str($op)
- val = $val
- timeout_uaddr = $utime
- uaddr2_uaddr = $uaddr2
- val3 = $val3
- }
-probe kernel.syscall.futex.return =
- kernel.function("sys_futex").return {
- name = "futex.return"
- }
+# long sys_futex(u32 __user *uaddr,
+# int op,
+# int val,
+# struct timespec __user *utime,
+# u32 __user *uaddr2,
+# int val3)
+#
+probe syscall.futex = kernel.function("sys_futex") {
+ name = "futex"
+ futex_uaddr = $uaddr
+ op = $op
+ val = $val
+ utime_uaddr = $utime
+ uaddr2_uaddr = $uaddr2
+ val3 = $val3
+ if (op == 0)
+ argstr = sprintf("0x%x, %s, %d, %s", $uaddr, _futex_op_str($op),
+ $val, _struct_timespec_u($utime))
+ else
+ argstr = sprintf("0x%x, %s, %d", $uaddr, _futex_op_str($op),
+ $val)
+}
+probe syscall.futex.return = kernel.function("sys_futex").return {
+ name = "futex.return"
+ returnp = 1
+}
+
# getcwd _____________________________________________________
-/*
- * asmlinkage long
- * sys_getcwd(char __user *buf,
- * unsigned long size)
- */
-probe kernel.syscall.getcwd =
- kernel.function("sys_getcwd") {
- name = "getcwd"
- buf_uaddr = $buf
- size = $size
- }
-probe kernel.syscall.getcwd.return =
- kernel.function("sys_getcwd").return {
- name = "getcwd.return"
- }
+# long sys_getcwd(char __user *buf, unsigned long size)
+probe syscall.getcwd = kernel.function("sys_getcwd") {
+ name = "getcwd"
+ buf_uaddr = $buf
+ size = $size
+ argstr = sprintf("[0x%x], %d", buf_uaddr, size)
+}
+probe syscall.getcwd.return = kernel.function("sys_getcwd").return {
+ name = "getcwd"
+ returnp = 1
+}
+
# getdents ___________________________________________________
-/*
- * asmlinkage long
- * sys_getdents(unsigned int fd,
- * struct linux_dirent __user * dirent,
- * unsigned int count)
- */
-probe kernel.syscall.getdents =
- kernel.function("sys_getdents") {
- name = "getdents"
- fd = $fd
- dirp_uaddr = $dirent
- count = $count
- }
-probe kernel.syscall.getdents.return =
- kernel.function("sys_getdents").return {
- name = "getdents.return"
- }
+# long sys_getdents(unsigned int fd,
+# struct linux_dirent __user * dirent,
+# unsigned int count)
+probe syscall.getdents = kernel.function("sys_getdents") {
+ name = "getdents"
+ fd = $fd
+ dirp_uaddr = $dirent
+ count = $count
+ argstr = sprintf("%d, [0x%x], %d", fd, dirp_uaddr, count)
+}
+probe syscall.getdents.return = kernel.function("sys_getdents").return {
+ name = "getdents"
+ returnp = 1
+}
+
# getdents64 _________________________________________________
-/*
- * asmlinkage long
- * sys_getdents64(unsigned int fd,
- * struct linux_dirent64 __user * dirent,
- * unsigned int count)
- */
-probe kernel.syscall.getdents64 =
- kernel.function("sys_getdents64") {
- name = "getdents64"
- fd = $fd
- dirp_uaddr = $dirent
- count = $count
- }
-probe kernel.syscall.getdents64.return =
- kernel.function("sys_getdents64").return {
- name = "getdents64.return"
- }
+# long sys_getdents64(unsigned int fd,
+# struct linux_dirent64 __user * dirent,
+# unsigned int count)
+probe syscall.getdents64 = kernel.function("sys_getdents64") {
+ name = "getdents64"
+ fd = $fd
+ dirp_uaddr = $dirent
+ count = $count
+ argstr = sprintf("%d, [0x%x], %d", fd, dirp_uaddr, count)
+}
+probe syscall.getdents64.return = kernel.function("sys_getdents64").return {
+ name = "getdents64"
+ returnp = 1
+}
+
# getegid ____________________________________________________
-/*
- * asmlinkage long
- * sys_getegid(void)
- */
-probe kernel.syscall.getegid =
- kernel.function("sys_getegid") {
- name = "getegid"
- }
-probe kernel.syscall.getegid.return =
- kernel.function("sys_getegid").return {
- name = "getegid.return"
- }
+# long sys_getegid(void)
+probe syscall.getegid = kernel.function("sys_getegid") {
+ name = "getegid"
+}
+probe syscall.getegid.return = kernel.function("sys_getegid").return {
+ name = "getegid"
+ returnp = 1
+}
+
# getegid16 __________________________________________________
-/*
- * asmlinkage long
- * sys_getegid16(void)
- */
-probe kernel.syscall.getegid16 =
- kernel.function("sys_getegid16") {
- name = "getegid16"
- }
-probe kernel.syscall.getegid16.return =
- kernel.function("sys_getegid16").return {
- name = "getegid16.return"
- }
+# long sys_getegid16(void)
+probe syscall.getegid16 = kernel.function("sys_getegid16") {
+ name = "getegid16"
+}
+probe syscall.getegid16.return = kernel.function("sys_getegid16").return {
+ name = "getegid16"
+ returnp = 1
+}
+
# geteuid ____________________________________________________
-/*
- * asmlinkage long
- * sys_geteuid(void)
- */
-probe kernel.syscall.geteuid =
- kernel.function("sys_geteuid") {
- name = "geteuid"
- }
-probe kernel.syscall.geteuid.return =
- kernel.function("sys_geteuid").return {
- name = "geteuid.return"
- }
+# long sys_geteuid(void)
+probe syscall.geteuid = kernel.function("sys_geteuid") {
+ name = "geteuid"
+}
+probe syscall.geteuid.return = kernel.function("sys_geteuid").return {
+ name = "geteuid"
+ returnp = 1
+}
+
# geteuid16 __________________________________________________
-/*
- * asmlinkage long
- * sys_geteuid16(void)
- */
-probe kernel.syscall.geteuid16 =
- kernel.function("sys_geteuid16") {
- name = "geteuid16"
- }
-probe kernel.syscall.geteuid16.return =
- kernel.function("sys_geteuid16").return {
- name = "geteuid16.return"
- }
+# long sys_geteuid16(void)
+probe syscall.geteuid16 = kernel.function("sys_geteuid16") {
+ name = "geteuid16"
+}
+probe syscall.geteuid16.return = kernel.function("sys_geteuid16").return {
+ name = "geteuid16"
+ returnp = 1
+}
+
# getgid _____________________________________________________
-/*
- * asmlinkage long
- * sys_getgid(void)
- */
-probe kernel.syscall.getgid =
- kernel.function("sys_getgid") {
- name = "getgid"
- }
-probe kernel.syscall.getgid.return =
- kernel.function("sys_getgid").return {
- name = "getgid.return"
- }
+# long sys_getgid(void)
+probe syscall.getgid =kernel.function("sys_getgid") {
+ name = "getgid"
+}
+probe syscall.getgid.return = kernel.function("sys_getgid").return {
+ name = "getgid"
+ returnp = 1
+}
+
# getgid16 ___________________________________________________
-/*
- * asmlinkage long
- * sys_getgid16(void)
- */
-probe kernel.syscall.getgid16 =
- kernel.function("sys_getgid16") {
- name = "getgid16"
- }
-probe kernel.syscall.getgid16.return =
- kernel.function("sys_getgid16").return {
- name = "getgid16.return"
- }
+# long sys_getgid16(void)
+probe syscall.getgid16 = kernel.function("sys_getgid16") {
+ name = "getgid16"
+}
+probe syscall.getgid16.return = kernel.function("sys_getgid16").return {
+ name = "getgid16"
+ returnp = 1
+}
+
# getgroups __________________________________________________
-/*
- * asmlinkage long
- * sys_getgroups(int gidsetsize,
- * gid_t __user *grouplist)
- */
-probe kernel.syscall.getgroups =
- kernel.function("sys_getgroups") {
- name = "getgroups"
- size = $gidsetsize
- /*
- * NOTE
- * list defined as "gid_t list[]" there
- * is no practical way to export these
- * values. Therefore just export addr,
- * let the user take care of it with
- * embedded C if need be.
- */
- list_uaddr = $grouplist
- }
-probe kernel.syscall.getgroups.return =
- kernel.function("sys_getgroups").return {
- name = "getgroups.return"
- }
+# long sys_getgroups(int gidsetsize, gid_t __user *grouplist)
+probe syscall.getgroups = kernel.function("sys_getgroups") {
+ name = "getgroups"
+ size = $gidsetsize
+ list_uaddr = $grouplist
+ argstr = sprintf("%d, [0x%x]", size, list_uaddr)
+}
+probe syscall.getgroups.return = kernel.function("sys_getgroups").return {
+ name = "getgroups"
+ returnp = 1
+}
+
# getgroups16 ________________________________________________
-/*
- * asmlinkage long
- * sys_getgroups16(int gidsetsize,
- * old_gid_t __user *grouplist)
- */
-probe kernel.syscall.getgroups16 =
- kernel.function("sys_getgroups16") {
- name = "getgroups16"
- size = $gidsetsize
- list_uaddr = $grouplist
- }
-probe kernel.syscall.getgroups16.return =
- kernel.function("sys_getgroups16").return {
- name = "getgroups16.return"
- }
+# long sys_getgroups16(int gidsetsize, old_gid_t __user *grouplist)
+probe syscall.getgroups16 = kernel.function("sys_getgroups16") {
+ name = "getgroups16"
+ size = $gidsetsize
+ list_uaddr = $grouplist
+ argstr = sprintf("%d, [0x%x]", size, list_uaddr)
+}
+probe syscall.getgroups16.return = kernel.function("sys_getgroups16").return {
+ name = "getgroups16"
+ returnp = 1
+}
+
# gethostname ________________________________________________
-/*
- * asmlinkage long
- * sys_gethostname(char __user *name,
- * int len)
- */
-probe kernel.syscall.gethostname =
- kernel.function("sys_gethostname") {
- name = "gethostname"
- hostname_uaddr = $name
- len = $len
- }
-probe kernel.syscall.gethostname.return =
- kernel.function("sys_gethostname").return {
- name = "gethostname.return"
- }
+# long sys_gethostname(char __user *name, int len)
+probe syscall.gethostname = kernel.function("sys_gethostname") {
+ name = "gethostname"
+ name_uaddr = $name
+ len = $len
+ argstr = sprintf ("[0x%x], %d", name_uaddr, len)
+}
+probe syscall.gethostname.return = kernel.function("sys_gethostname").return {
+ name = "gethostname"
+ returnp = 1
+}
+
# getitimer __________________________________________________
-/*
- * asmlinkage long
- * sys_getitimer(int which,
- * struct itimerval __user *value)
- */
-probe kernel.syscall.getitimer =
- kernel.function("sys_getitimer") {
- name = "getitimer"
- which = $which
- which_str = _itimer_which_str($which)
- value_uaddr = $value
- /*
- * XXX NOT SAFE -- might sleep
- * value_it_interval_tv_sec = __uget_itimerval_tv_m($value,0)
- * value_it_interval_tv_usec = __uget_itimerval_tv_m($value,1)
- * value_it_value_tv_sec = __uget_itimerval_tv_m($value,2)
- * value_it_value_tv_usec = __uget_itimerval_tv_m($value,3)
- */
- }
-probe kernel.syscall.getitimer.return =
- kernel.function("sys_getitimer").return {
- name = "getitimer.return"
- }
+# long sys_getitimer(int which, struct itimerval __user *value)
+probe syscall.getitimer = kernel.function("sys_getitimer") {
+ name = "getitimer"
+ which = $which
+ value_uaddr = $value
+ argstr = sprintf("%s, [0x%x]", _itimer_which_str(which), value_uaddr)
+}
+probe syscall.getitimer.return = kernel.function("sys_getitimer").return {
+ name = "getitimer"
+ returnp = 1
+}
+
# getpeername ________________________________________________
/*
* asmlinkage long
@@ -1168,214 +1057,165 @@ probe kernel.syscall.getpeername.return =
kernel.function("sys_getpeername").return {
name = "getpeername.return"
}
+
# getpgid ____________________________________________________
-/*
- * asmlinkage long
- * sys_getpgid(void)
- */
-probe kernel.syscall.getpgid =
- kernel.function("sys_getpgid") {
- name = "getpgid"
- }
-probe kernel.syscall.getpgid.return =
- kernel.function("sys_getpgid").return {
- name = "getpgid.return"
- }
+# long sys_getpgid(void)
+probe syscall.getpgid = kernel.function("sys_getpgid") {
+ name = "getpgid"
+}
+probe syscall.getpgid.return = kernel.function("sys_getpgid").return {
+ name = "getpgid"
+ returnp = 1
+}
+
# getpgrp ____________________________________________________
-/*
- * asmlinkage long
- * sys_getpgrp(void)
- */
-probe kernel.syscall.getpgrp =
- kernel.function("sys_getpgrp") {
- name = "getpgrp"
- }
-probe kernel.syscall.getpgrp.return =
- kernel.function("sys_getpgrp").return {
- name = "getpgrp.return"
- }
+# long sys_getpgrp(void)
+probe syscall.getpgrp = kernel.function("sys_getpgrp") {
+ name = "getpgrp"
+}
+probe syscall.getpgrp.return = kernel.function("sys_getpgrp").return {
+ name = "getpgrp"
+ returnp = 1
+}
+
# getpid _____________________________________________________
-/*
- * asmlinkage long
- * sys_getpid(void)
- */
-probe kernel.syscall.getpid =
- kernel.function("sys_getpid") {
- name = "getpid"
- }
-probe kernel.syscall.getpid.return =
- kernel.function("sys_getpid").return {
- name = "getpid.return"
- }
+# long sys_getpid(void)
+probe syscall.getpid = kernel.function("sys_getpid") {
+ name = "getpid"
+}
+probe syscall.getpid.return = kernel.function("sys_getpid").return {
+ name = "getpid"
+ returnp = 1
+}
+
# getppid ____________________________________________________
-/*
- * asmlinkage long
- * sys_getppid(void)
- */
-probe kernel.syscall.getppid =
- kernel.function("sys_getppid") {
- name = "getppid"
- }
-probe kernel.syscall.getppid.return =
- kernel.function("sys_getppid").return {
- name = "getppid.return"
- }
+# long sys_getppid(void)
+probe syscall.getppid = kernel.function("sys_getppid") {
+ name = "getppid"
+}
+probe syscall.getppid.return = kernel.function("sys_getppid").return {
+ name = "getppid"
+}
+
# getpriority ________________________________________________
-/*
- * asmlinkage long
- * sys_getpriority(int which,
- * int who)
- */
-probe kernel.syscall.getpriority =
- kernel.function("sys_getpriority") {
- name = "getpriority"
- which = $which
- which_str = _priority_which_str($which)
- who = $who
- }
-probe kernel.syscall.getpriority.return =
- kernel.function("sys_getpriority").return {
- name = "getpriority.return"
- }
+# long sys_getpriority(int which, int who)
+probe syscall.getpriority = kernel.function("sys_getpriority") {
+ name = "getpriority"
+ which = $which
+ who = $who
+ argstr = sprintf("%s, %d", _priority_which_str(which), who)
+}
+probe syscall.getpriority.return = kernel.function("sys_getpriority").return {
+ name = "getpriority"
+ returnp = 1
+}
+
# getresgid __________________________________________________
-/*
- * asmlinkage
- * long sys_getresgid(gid_t __user *rgid,
- * gid_t __user *egid,
- * gid_t __user *sgid)
- */
-probe kernel.syscall.getresgid =
- kernel.function("sys_getresgid") {
- name = "getresgid"
- rgid_uaddr = $rgid
- egid_uaddr = $egid
- sgid_uaddr = $sgid
- /*
- * XXX NOT SAFE -- might sleep
- * rgid = __uget_num($rgid)
- * egid = __uget_num($egid)
- * sgid = __uget_num($sgid)
- */
- }
-probe kernel.syscall.getresgid.return =
- kernel.function("sys_getresgid").return {
- name = "getresgid.return"
- }
+# long sys_getresgid(gid_t __user *rgid,
+# gid_t __user *egid,
+# gid_t __user *sgid)
+probe syscall.getresgid = kernel.function("sys_getresgid") {
+ name = "getresgid"
+ rgid_uaddr = $rgid
+ egid_uaddr = $egid
+ sgid_uaddr = $sgid
+ argstr = sprintf("[0x%x], [0x%x], [0x%x]", rgid_uaddr, egid_uaddr, sgid_uaddr)
+}
+probe syscall.getresgid.return = kernel.function("sys_getresgid").return {
+ name = "getresgid"
+ returnp = 1
+}
+
# getresgid16 ________________________________________________
-/*
- * asmlinkage long
- * sys_getresgid16(old_uid_t __user *rgid,
- * old_uid_t __user *egid,
- * old_uid_t __user *sgid)
- */
-probe kernel.syscall.getresgid16 =
- kernel.function("sys_getresgid") {
- name = "getresgid16"
- rgid_uaddr = $rgid
- egid_uaddr = $egid
- sgid_uaddr = $sgid
- }
-probe kernel.syscall.getresgid16.return =
- kernel.function("sys_getresgid").return {
- name = "getresgid16.return"
- }
+# long sys_getresgid16(old_uid_t __user *rgid,
+# old_uid_t __user *egid,
+# old_uid_t __user *sgid)
+probe syscall.getresgid16 = kernel.function("sys_getresgid") {
+ name = "getresgid16"
+ rgid_uaddr = $rgid
+ egid_uaddr = $egid
+ sgid_uaddr = $sgid
+ argstr = sprintf("[0x%x], [0x%x], [0x%x]", rgid_uaddr, egid_uaddr, sgid_uaddr)
+}
+probe syscall.getresgid16.return = kernel.function("sys_getresgid").return {
+ name = "getresgid16"
+ returnp = 1
+}
+
# getresuid __________________________________________________
-/*
- * asmlinkage long
- * sys_getresuid(uid_t __user *ruid,
- * uid_t __user *euid,
- * uid_t __user *suid)
- */
-probe kernel.syscall.getresuid =
- kernel.function("sys_getresuid") {
- name = "getresuid"
- ruid_uaddr = $ruid
- euid_uaddr = $euid
- suid_uaddr = $suid
- /*
- * XXX NOT SAFE -- might sleep
- * ruid = __uget_num($ruid)
- * euid = __uget_num($euid)
- * suid = __uget_num($suid)
- */
- }
-probe kernel.syscall.getresuid.return =
- kernel.function("sys_getresuid").return {
- name = "getresuid.return"
- }
+# long sys_getresuid(uid_t __user *ruid,
+# uid_t __user *euid,
+# uid_t __user *suid)
+probe syscall.getresuid = kernel.function("sys_getresuid") {
+ name = "getresuid"
+ ruid_uaddr = $ruid
+ euid_uaddr = $euid
+ suid_uaddr = $suid
+ argstr = sprintf("[0x%x], [0x%x], [0x%x]", ruid_uaddr, euid_uaddr, suid_uaddr)
+}
+probe syscall.getresuid.return = kernel.function("sys_getresuid").return {
+ name = "getresuid"
+ returnp = 1
+}
+
# getresuid16 ________________________________________________
-/*
- * asmlinkage long
- * sys_getresuid16(old_uid_t __user *ruid,
- * old_uid_t __user *euid,
- * old_uid_t __user *suid)
- */
-probe kernel.syscall.getresuid16 =
- kernel.function("sys_getresuid") {
- name = "getresuid16"
- ruid_uaddr = $ruid
- euid_uaddr = $euid
- suid_uaddr = $suid
- }
-probe kernel.syscall.getresuid16.return =
- kernel.function("sys_getresuid").return {
- name = "getresuid16.return"
- }
+# long sys_getresuid16(old_uid_t __user *ruid,
+# old_uid_t __user *euid,
+# old_uid_t __user *suid)
+probe syscall.getresuid16 = kernel.function("sys_getresuid") {
+ name = "getresuid16"
+ ruid_uaddr = $ruid
+ euid_uaddr = $euid
+ suid_uaddr = $suid
+ argstr = sprintf("[0x%x], [0x%x], [0x%x]", ruid_uaddr, euid_uaddr, suid_uaddr)
+}
+probe syscall.getresuid16.return = kernel.function("sys_getresuid").return {
+ name = "getresuid16"
+ returnp = 1
+}
+
# getrlimit __________________________________________________
-/*
- * asmlinkage long
- * sys_getrlimit(unsigned int resource,
- * struct rlimit __user *rlim)
- */
-probe kernel.syscall.getrlimit =
- kernel.function("sys_getrlimit") {
- name = "getrlimit"
- resource = $resource
- resource_str = _rlimit_resource_str($resource)
- rlim_uaddr = $rlim
- }
-probe kernel.syscall.getrlimit.return =
- kernel.function("sys_getrlimit").return {
- name = "getrlimit.return"
- }
+# long sys_getrlimit(unsigned int resource, struct rlimit __user *rlim)
+probe syscall.getrlimit = kernel.function("sys_getrlimit") {
+ name = "getrlimit"
+ resource = $resource
+ rlim_uaddr = $rlim
+ argstr = sprintf("%s, [0x%x]", _rlimit_resource_str($resource), rlim_uaddr)
+}
+probe syscall.getrlimit.return = kernel.function("sys_getrlimit").return {
+ name = "getrlimit"
+ returnp = 1
+}
+
# getrusage __________________________________________________
-/*
- * asmlinkage long
- * sys_getrusage(int who,
- * struct rusage __user *ru)
- */
-probe kernel.syscall.getrusage =
- kernel.function("sys_getrusage") {
- name = "getrusage"
- who = $who
- who_str = _rusage_who_str($who)
- usage_uaddr = $ru
- }
-probe kernel.syscall.getrusage.return =
- kernel.function("sys_getrusage").return {
- name = "getrusage.return"
- }
+# long sys_getrusage(int who, struct rusage __user *ru)
+probe syscall.getrusage = kernel.function("sys_getrusage") {
+ name = "getrusage"
+ who = $who
+ usage_uaddr = $ru
+ argstr = sprintf("%s, [0x%x]",_rusage_who_str($who), usage_uaddr)
+}
+probe syscall.getrusage.return = kernel.function("sys_getrusage").return {
+ name = "getrusage"
+ returnp = 1
+}
+
# getsid _____________________________________________________
-/*
- * asmlinkage long
- * sys_getsid(pid_t pid)
- */
-probe kernel.syscall.getsid =
- kernel.function("sys_getsid") {
- name = "getsid"
- pid = $pid
- }
-probe kernel.syscall.getsid.return =
- kernel.function("sys_getsid").return {
- name = "getsid.return"
- }
+# long sys_getsid(pid_t pid)
+probe syscall.getsid = kernel.function("sys_getsid") {
+ name = "getsid"
+ pid = $pid
+ argstr = string(pid)
+}
+probe syscall.getsid.return = kernel.function("sys_getsid").return {
+ name = "getsid"
+ returnp = 1
+}
+
# getsockname ________________________________________________
-/*
- * asmlinkage long
- * sys_getsockname(int fd,
- * struct sockaddr __user *usockaddr,
- * int __user *usockaddr_len)
- */
+# long sys_getsockname(int fd,
+# struct sockaddr __user *usockaddr,
+# int __user *usockaddr_len)
probe kernel.syscall.getsockname =
kernel.function("sys_getsockname") {
name = "getsockname"
@@ -1387,6 +1227,7 @@ probe kernel.syscall.getsockname.return =
kernel.function("sys_getsockname").return {
name = "getsockname.return"
}
+
# getsockopt _________________________________________________
/*
* asmlinkage long
@@ -1411,177 +1252,149 @@ probe kernel.syscall.getsockopt.return =
kernel.function("sys_getsockopt").return {
name = "getsockopt.return"
}
+
# gettid _____________________________________________________
-/*
- * asmlinkage long
- * sys_gettid(void)
- */
-probe kernel.syscall.gettid =
- kernel.function("sys_gettid") {
- name = "gettid"
- }
-probe kernel.syscall.gettid.return =
- kernel.function("sys_gettid").return {
- name = "gettid.return"
- }
+# long sys_gettid(void)
+probe syscall.gettid = kernel.function("sys_gettid") {
+ name = "gettid"
+}
+probe syscall.gettid.return = kernel.function("sys_gettid").return {
+ name = "gettid"
+ returnp = 1
+}
+
# gettimeofday _______________________________________________
-/*
- * asmlinkage long
- * sys_gettimeofday(struct timeval __user *tv,
- * struct timezone __user *tz)
- */
-probe kernel.syscall.gettimeofday =
- kernel.function("sys_gettimeofday") {
- name = "gettimeofday"
- tv_uaddr = $tv
- tz_uaddr = $tz
- /*
- * XXX NOT SAFE -- might sleep
- * tv_tv_sec = __uget_tv_m($tv,0)
- * tv_tv_usec = __uget_tv_m($tv,1)
- * tz_tz_minuteswest = __uget_tz_m($tz,0)
- * tz_tz_dsttime = __uget_tz_m($tz,1)
- */
- }
-probe kernel.syscall.gettimeofday.return =
- kernel.function("sys_gettimeofday").return {
- name = "gettimeofday.return"
- }
+# long sys_gettimeofday(struct timeval __user *tv,
+# struct timezone __user *tz)
+probe syscall.gettimeofday = kernel.function("sys_gettimeofday") {
+ name = "gettimeofday"
+ tv_uaddr = $tv
+ tz_uaddr = $tz
+ argstr = sprintf("[0x%x], [0x%x]", tv_uaddr, tz_uaddr)
+}
+probe syscall.gettimeofday.return = kernel.function("sys_gettimeofday").return {
+ name = "gettimeofday"
+ returnp = 1
+}
+
# getuid _____________________________________________________
-/*
- * asmlinkage long
- * sys_getuid(void)
- */
-probe kernel.syscall.getuid =
- kernel.function("sys_getuid") {
- name = "getuid"
- }
-probe kernel.syscall.getuid.return =
- kernel.function("sys_getuid").return {
- name = "getuid.return"
- }
+# long sys_getuid(void)
+probe syscall.getuid = kernel.function("sys_getuid") {
+ name = "getuid"
+}
+probe syscall.getuid.return = kernel.function("sys_getuid").return {
+ name = "getuid"
+ returnp = 1
+}
+
# getuid16 ___________________________________________________
-/*
- * asmlinkage long
- * sys_getuid16(void)
- */
-probe kernel.syscall.getuid16 =
- kernel.function("sys_getuid16") {
- name = "getuid16"
- }
-probe kernel.syscall.getuid16.return =
- kernel.function("sys_getuid16").return {
- name = "getuid16.return"
- }
+# long sys_getuid16(void)
+probe syscall.getuid16 = kernel.function("sys_getuid16") {
+ name = "getuid16"
+}
+probe syscall.getuid16.return = kernel.function("sys_getuid16").return {
+ name = "getuid16"
+ returnp = 1
+}
+
# getxattr ___________________________________________________
-/*
- * asmlinkage ssize_t
- * sys_getxattr(char __user *path,
- * char __user *name,
- * void __user *value,
- * size_t size)
- */
-probe kernel.syscall.getxattr =
- kernel.function("sys_getxattr") {
- name = "getxattr"
- path_uaddr = $path
- name_uaddr = $name
- value_uaddr = $value
- size = $size
- }
-probe kernel.syscall.getxattr.return =
- kernel.function("sys_getxattr").return {
- name = "getxattr.return"
- }
+# ssize_t sys_getxattr(char __user *path, char __user *name,
+# void __user *value, size_t size)
+probe syscall.getxattr = kernel.function("sys_getxattr") {
+ name = "getxattr"
+ path = user_string($path)
+ # FIXME
+ name2 = user_string($name)
+ value_uaddr = $value
+ size = $size
+ argstr = sprintf("%s, %s, [0x%x], %d", path, name2,
+ value_uaddr, size)
+}
+probe syscall.getxattr.return = kernel.function("sys_getxattr").return {
+ name = "getxattr"
+ returnp = 1
+}
+
# init_module ________________________________________________
-/*
- * sys_init_module(void __user *umod,
- * unsigned long len,
- * const char __user *uargs)
- */
-probe kernel.syscall.init_module =
- kernel.function("sys_init_module") {
- name = "init_module"
- umod_uaddr = $umod
- len = $len
- uargs_uaddr = $uargs
- }
-probe kernel.syscall.init_module.return =
- kernel.function("sys_init_module").return {
- name = "init_module.return"
- }
+# long sys_init_module(void __user *umod,
+# unsigned long len,
+# const char __user *uargs)
+probe syscall.init_module = kernel.function("sys_init_module") {
+ name = "init_module"
+ umod_uaddr = $umod
+ len = $len
+ uargs = user_string($uargs)
+ argstr = sprintf("[0x%x], %d, %s", umod_uaddr, len, uargs)
+}
+probe syscall.init_module.return = kernel.function("sys_init_module").return {
+ name = "init_module"
+ returnp = 1
+}
+
# io_cancel __________________________________________________
-/*
- * asmlinkage long
- * sys_io_cancel(aio_context_t ctx_id,
- * struct iocb __user *iocb,
- * struct io_event __user *result)
- */
-probe kernel.syscall.io_cancel =
- kernel.function("sys_io_cancel") {
- name = "io_cancel"
- ctx_id = $ctx_id
- iocb_uaddr = $iocb
- result_uaddr = $result
- }
-probe kernel.syscall.io_cancel.return =
- kernel.function("sys_io_cancel").return {
- name = "io_cancel.return"
- }
+# long sys_io_cancel(aio_context_t ctx_id,
+# struct iocb __user *iocb,
+# struct io_event __user *result)
+probe syscall.io_cancel = kernel.function("sys_io_cancel") {
+ name = "io_cancel"
+ ctx_id = $ctx_id
+ iocb_uaddr = $iocb
+ result_uaddr = $result
+ argstr = sprintf("%d, [0x%x], [0x%x]", ctx_id, iocb_uaddr, result_uaddr)
+}
+probe syscall.io_cancel.return = kernel.function("sys_io_cancel").return {
+ name = "io_cancel"
+ returnp = 1
+}
+
# ioctl ______________________________________________________
-/*
- * asmlinkage long
- * sys_ioctl(unsigned int fd,
- * unsigned int cmd,
- * unsigned long arg)
- */
-probe kernel.syscall.ioctl =
- kernel.function("sys_ioctl") {
- name = "ioctl"
- fd = $fd
- request = $cmd
- argp = $arg
- }
-probe kernel.syscall.ioctl.return =
- kernel.function("sys_ioctl").return {
- name = "ioctl.return"
- }
+# long sys_ioctl(unsigned int fd, unsigned int cmd,
+# unsigned long arg)
+probe syscall.ioctl = kernel.function("sys_ioctl") {
+ name = "ioctl"
+ fd = $fd
+ request = $cmd
+ argp = $arg
+ argstr = sprintf("%d, %d, [0x%x]", fd, request, argp)
+}
+probe syscall.ioctl.return = kernel.function("sys_ioctl").return {
+ name = "ioctl"
+ returnp = 1
+}
+
# io_destroy _________________________________________________
-/*
- * asmlinkage long
- * sys_io_destroy(aio_context_t ctx)
- */
-probe kernel.syscall.io_destroy =
- kernel.function("sys_io_destroy") {
- name = "io_destroy"
- ctx = $ctx
- }
-probe kernel.syscall.io_destroy.return =
- kernel.function("sys_io_destroy").return {
- name = "io_destroy.return"
- }
+# long sys_io_destroy(aio_context_t ctx)
+probe syscall.io_destroy = kernel.function("sys_io_destroy") {
+ name = "io_destroy"
+ ctx = $ctx
+ argstr = sprintf("%d", ctx)
+}
+probe syscall.io_destroy.return = kernel.function("sys_io_destroy").return {
+ name = "io_destroy"
+ returnp = 1
+}
+
# io_getevents _______________________________________________
-/*
- * asmlinkage long
- * sys_io_getevents(aio_context_t ctx_id,
- * long min_nr,
- * long nr,
- * struct io_event __user *events,
- * struct timespec __user *timeout)
- */
-probe kernel.syscall.io_getevents =
- kernel.function("sys_io_getevents") {
- name = "io_getevents"
- ctx_id = $ctx_id
- min_nr = $min_nr
- nr = $nr
- events_uaddr = $events
- timeout_uaddr = $timeout
- }
-probe kernel.syscall.io_getevents.return =
- kernel.function("sys_io_getevents").return {
- name = "io_getevents.return"
- }
+# long sys_io_getevents(aio_context_t ctx_id,
+# long min_nr,
+# long nr,
+# struct io_event __user *events,
+# struct timespec __user *timeout)
+
+probe syscall.io_getevents = kernel.function("sys_io_getevents") {
+ name = "io_getevents"
+ ctx_id = $ctx_id
+ min_nr = $min_nr
+ nr = $nr
+ events_uaddr = $events
+ timeout_uaddr = $timeout
+# argstr = sprintf("%d, %d, %d, [0x%x],")
+}
+probe syscall.io_getevents.return = kernel.function("sys_io_getevents").return {
+ name = "io_getevents"
+ returnp = 1
+}
+
# ioperm _____________________________________________________
/*
* asmlinkage long
@@ -1678,21 +1491,20 @@ probe kernel.syscall.keyctl.return =
kernel.function("sys_keyctl").return {
name = "keyctl.return"
}
+
# kill _______________________________________________________
-/*
- * asmlinkage long
- * sys_kill(int pid, int sig)
- */
-probe kernel.syscall.kill =
- kernel.function("sys_kill") {
- name = "kill"
- pid = $pid
- sig = $sig
- }
-probe kernel.syscall.kill.return =
- kernel.function("sys_kill").return {
- name = "kill.return"
- }
+# long sys_kill(int pid, int sig)
+probe syscall.kill = kernel.function("sys_kill") {
+ name = "kill"
+ pid = $pid
+ sig = $sig
+ argstr = sprintf("%d, %s", $pid, _signal_name($sig))
+}
+probe syscall.kill.return = kernel.function("sys_kill").return {
+ name = "kill"
+ returnp = 1
+}
+
# lchown _____________________________________________________
/*
* asmlinkage long
@@ -1916,21 +1728,17 @@ probe kernel.syscall.lsetxattr.return =
name = "lsetxattr.return"
}
# lstat ______________________________________________________
-/*
- * asmlinkage long
- * sys_lstat(char __user * filename,
- * struct __old_kernel_stat __user * statbuf)
- */
-probe kernel.syscall.lstat =
- kernel.function("sys_lstat") {
- name = "lstat"
- filename_uaddr = $filename
- buf_uaddr = $statbuf
- }
-probe kernel.syscall.lstat.return =
- kernel.function("sys_lstat").return {
- name = "lstat.return"
- }
+# long sys_lstat(char __user * filename, struct __old_kernel_stat __user * statbuf)
+probe syscall.lstat = kernel.function("sys_lstat") {
+ name = "lstat"
+ file_name = user_string($filename)
+ buf_uaddr = $statbuf
+ argstr = sprintf("%s, [0x%x]", file_name, buf_uaddr)
+}
+probe syscall.lstat.return = kernel.function("sys_lstat").return {
+ name = "lstat.return"
+ returnp = 1
+}
# madvise ____________________________________________________
/*
* asmlinkage long
diff --git a/tapset/syscalls2.stp b/tapset/syscalls2.stp
index 35886d13..ac34610a 100644
--- a/tapset/syscalls2.stp
+++ b/tapset/syscalls2.stp
@@ -1339,21 +1339,10 @@ probe syscall.sethostname.return = kernel.function("sys_sethostname").return {
probe syscall.setitimer = kernel.function("sys_setitimer") {
name = "setitimer"
which = $which
- which_str = _itimer_which_str($which)
value_uaddr = $value
ovalue_uaddr = $ovalue
- /*
- * XXX NOT SAFE -- might sleep
- * value_it_interval_tv_sec = __uget_itimerval_tv_m($value,0)
- * value_it_interval_tv_usec = __uget_itimerval_tv_m($value,1)
- * value_it_value_tv_sec = __uget_itimerval_tv_m($value,2)
- * value_it_value_tv_usec = __uget_itimerval_tv_m($value,3)
- * ovalue_it_interval_tv_sec = __uget_itimerval_tv_m($ovalue,0)
- * ovalue_it_interval_tv_usec =__uget_itimerval_tv_m($ovalue,1)
- * ovalue_it_value_tv_sec = __uget_itimerval_tv_m($ovalue,2)
- * ovalue_it_value_tv_usec = __uget_itimerval_tv_m($ovalue,3)
- */
- argstr = ""
+ argstr = sprintf("%s, %s, 0x%x", _itimer_which_str($which),
+ _struct_itimerval_u($value), $ovalue)
}
probe syscall.setitimer.return = kernel.function("sys_setitimer").return {
name = "setitimer"