2007-08-22 Martin Hunt <hunt@redhat.com>
+ * ppc64/syscalls.stp: Remove a bunch of
+ non-ppc64 specific probes.
+
+ * syscalls.stp (compat_sys_epoll_ctl): New.
+ (compat_sys_epoll_wait): New.
+ (sys_epoll_pwait): New.
+ (compat_sys_epoll_pwait): New.
+ (compat_sys_keyctl): New.
+ (compat_sys_mq_open): New.
+ (compat_sys_futex): New.
+ (compat_sys_mq_timedsend): New.
+ (compat_sys_mq_timedreceive): New.
+ (compat_sys_mq_notify): New.
+ (compat_sys_mq_getsetattr): New.
+ (init_module): Make optional and quote args.
+ (sys_eventfd): New.
+
+ * syscalls2.stp (sys_splice): New.
+ (sys_vmsplice): New.
+ (compat_sys_vmsplice): New.
+ (sys_tee): New.
+ (sys_signalfd): New.
+ (compat_sys_signalfd): New.
+ (sys_timerfd): New.
+ (compat_sys_timerfd): New.
+ (old32_readdir): New.
+
+2007-08-22 Martin Hunt <hunt@redhat.com>
+
* aux_syscalls.stp (_utimensat_flag_str): New.
(_dfd_str): New.
(_struct_timeval2_u): Deleted.
if(_stp_copy_from_user((char*)&ubuf,ptr,sizeof(ubuf)) == 0) {
_stp_ctime(ubuf.actime, abuf, 24);
_stp_ctime(ubuf.modtime, mbuf, 24);
- snprintf(THIS->__retvalue, MAXSTRINGLEN, "%s, %s", abuf, mbuf);
+ snprintf(THIS->__retvalue, MAXSTRINGLEN, "[%s, %s]", abuf, mbuf);
} else
strlcpy (THIS->__retvalue, "UNKNOWN", MAXSTRINGLEN);
}
if(_stp_copy_from_user((char*)&ubuf,ptr,sizeof(ubuf)) == 0) {
_stp_ctime(ubuf.actime, abuf, 24);
_stp_ctime(ubuf.modtime, mbuf, 24);
- snprintf(THIS->__retvalue, MAXSTRINGLEN, "%s, %s", abuf, mbuf);
+ snprintf(THIS->__retvalue, MAXSTRINGLEN, "[%s, %s]", abuf, mbuf);
} else
strlcpy (THIS->__retvalue, "UNKNOWN", MAXSTRINGLEN);
}
return sprint(d)
}
-function _utimensat_flag_str(f) {
+function _at_flag_str(f) {
if (f == 0x100) return "AT_SYMLINK_NOFOLLOW"
return sprintf("0x%x", f)
}
}
# vm86 _______________________________________________________
-/*
- * asmlinkage int
- * sys_vm86(struct pt_regs regs)
- */
-probe syscall.vm86 = kernel.function("sys_vm86") {
+#
+# int sys_vm86(struct pt_regs regs)
+#
+probe syscall.vm86 = kernel.function("sys_vm86") ? {
name = "vm86"
/*
* unsupported type identifier '$regs'
* regs = $regs
*/
+ argstr = ""
}
-probe syscall.vm86.return = kernel.function("sys_vm86").return {
+probe syscall.vm86.return = kernel.function("sys_vm86").return ? {
name = "vm86"
retstr = returnstr(1)
}
+
# vm86old ____________________________________________________
-/*
- * asmlinkage int
- * sys_vm86old(struct pt_regs regs)
- */
-probe syscall.vm86old = kernel.function("sys_vm86old") {
- name = "vm86old"
+#
+# int sys_vm86old(struct pt_regs regs)
+#
+probe syscall.vm86old = kernel.function("sys_vm86old") ? {
+ name = "vm86old"
/*
* unsupported type identifier '$regs'
* regs = $regs
*/
+ argstr = ""
}
-probe syscall.vm86old.return = kernel.function("sys_vm86old").return {
+probe syscall.vm86old.return = kernel.function("sys_vm86old").return ? {
name = "vm86old"
retstr = returnstr(1)
}
# PPC64-specific system calls
-# compat_sys_futex ________________________________________
-#
-# asmlinkage long compat_sys_futex(u32 __user *uaddr, int op, int val,
-# struct compat_timespec __user *utime, u32 __user *uaddr2,
-# int val3)
-#
-probe syscall.compat_sys_futex = kernel.function("compat_sys_futex") {
- name = "compat_sys_futex"
- futex_uaddr = $uaddr
- op = $op
- val = $val
- utime_uaddr = $utime
- uaddr2_uaddr = $uaddr2
- val3 = $val3
- argstr = sprintf("%p, %s, %d, %s", $uaddr, _futex_op_str($op),
- $val, _struct_timespec_u($utime))
-}
-probe syscall.compat_sys_futex.return =
- kernel.function("compat_sys_futex").return {
- name = "compat_sys_futex"
- retstr = returnstr(1)
-}
-# compat_sys_newlstat ________________________________________
-#
-# asmlinkage long compat_sys_newlstat(char __user * filename,
-# struct compat_stat __user *statbuf)
-#
-probe syscall.compat_sys_newlstat = kernel.function("compat_sys_newlstat") {
- name = "compat_sys_newlstat"
- path = user_string($filename)
- buf_uaddr = $statbuf
- argstr = sprintf("%s, %p", user_string_quoted($filename), buf_uaddr)
-}
-probe syscall.compat_sys_newlstat.return =
- kernel.function("compat_sys_newlstat").return {
- name = "compat_sys_newlstat"
- retstr = returnstr(1)
-}
-
-# compat_sys_fcntl64 ________________________________________
-#
-# asmlinkage long compat_sys_fcntl64(unsigned int fd, unsigned int cmd,
-# unsigned long arg)
-#
-probe syscall.compat_sys_fcntl64 = kernel.function("compat_sys_fcntl64") {
- name = "compat_sys_fcntl64"
- fd = $fd
- cmd = $cmd
- arg = $arg
- argstr = sprintf("%d, %s, %p", fd, _fcntl_cmd_str($cmd), arg)
-}
-probe syscall.compat_sys_fcntl64.return =
- kernel.function("compat_sys_fcntl64").return {
- name = "compat_sys_fcntl64"
- retstr = returnstr(1)
-}
-# compat_sys_fcntl ________________________________________
-#
-# asmlinkage long compat_sys_fcntl(unsigned int fd, unsigned int cmd,
-# unsigned long arg)
-#
-probe syscall.compat_sys_fcntl = kernel.function("compat_sys_fcntl") {
- name = "compat_sys_fcntl"
- fd = $fd
- cmd = $cmd
- arg = $arg
- argstr = sprintf("%d, %s, %p", fd, _fcntl_cmd_str($cmd), arg)
-}
-probe syscall.compat_sys_fcntl.return =
- kernel.function("compat_sys_fcntl").return {
- name = "compat_sys_fcntl"
- retstr = returnstr(1)
-}
-
-# compat_sys_mq_open ________________________________________
-#
-# asmlinkage long compat_sys_mq_open(const char __user *u_name,
-# int oflag, compat_mode_t mode,
-# struct compat_mq_attr __user *u_attr)
-#
-probe syscall.compat_sys_mq_open = kernel.function("compat_sys_mq_open") {
- name = "compat_sys_mq_open"
- name_uaddr = $u_name
- name_str = user_string($u_name)
- oflag = $oflag
- mode = $mode
- u_attr_uaddr = $u_attr
- argstr = sprintf("\"%s\", %d, %d, %p", name_str, oflag, mode,
- u_attr_uaddr)
-}
-probe syscall.compat_sys_mq_open.return =
- kernel.function("compat_sys_mq_open").return {
- name = "compat_sys_mq_open"
- retstr = returnstr(1)
-}
-# compat_sys_mq_timedsend ________________________________________
-#
-# asmlinkage long compat_sys_mq_timedsend(mqd_t mqdes,
-# const char __user *u_msg_ptr,
-# size_t msg_len, unsigned int msg_prio,
-# const struct compat_timespec __user *u_abs_timeout)
-#
-probe syscall.compat_sys_mq_timedsend = kernel.function("compat_sys_mq_timedsend") {
- name = "compat_sys_mq_timedsend"
- mqdes = $mqdes
- msg_ptr_uaddr = $u_msg_ptr
- msg_len = $msg_len
- msg_prio = $msg_prio
- abs_timeout_uaddr = $u_abs_timeout
- argstr = "FIXME"
-}
-probe syscall.compat_sys_mq_timedsend.return =
- kernel.function("compat_sys_mq_timedsend").return {
- name = "compat_sys_mq_timedsend"
- retstr = returnstr(1)
-}
-# compat_sys_mq_timedreceive ________________________________________
-#
-# asmlinkage ssize_t compat_sys_mq_timedreceive(mqd_t mqdes,
-# char __user *u_msg_ptr,
-# size_t msg_len, unsigned int __user *u_msg_prio,
-# const struct compat_timespec __user *u_abs_timeout)
-#
-probe syscall.compat_sys_mq_timedreceive = kernel.function("compat_sys_mq_timedreceive") {
- name = "compat_sys_mq_timedreceive"
- mqdes = $mqdes
- msg_ptr_uaddr = $u_msg_ptr
- msg_len = $msg_len
- msg_prio_uaddr = $u_msg_prio
- abs_timout_uaddr = $u_abs_timeout
- argstr = "FIXME"
-}
-probe syscall.compat_sys_mq_timedreceive.return =
- kernel.function("compat_sys_mq_timedreceive").return {
- name = "compat_sys_mq_timedreceive"
- retstr = returnstr(1)
-}
-# compat_sys_mq_notify ________________________________________
-#
-# asmlinkage long compat_sys_mq_notify(mqd_t mqdes,
-# const struct compat_sigevent __user *u_notification)
-#
-probe syscall.compat_sys_mq_notify = kernel.function("compat_sys_mq_notify") {
- name = "compat_sys_mq_notify"
- mqdes = $mqdes
- notification_uaddr = $u_notification
- argstr = sprintf("%d, %p", mqdes, notification_uaddr)
-}
-probe syscall.compat_sys_mq_notify.return =
- kernel.function("compat_sys_mq_notify").return {
- name = "compat_sys_mq_notify"
- retstr = returnstr(1)
-}
-# compat_sys_mq_getsetattr ________________________________________
-#
-# asmlinkage long compat_sys_mq_getsetattr(mqd_t mqdes,
-# const struct compat_mq_attr __user *u_mqstat,
-# struct compat_mq_attr __user *u_omqstat)
-#
-probe syscall.compat_sys_mq_getsetattr =
- kernel.function("compat_sys_mq_getsetattr") {
- name = "compat_sys_mq_getsetattr"
- mqdes = $mqdes
- u_mqstat_uaddr = $u_mqstat
- u_omqstat_uaddr = $u_omqstat
- argstr = sprintf("%d, %p, %p", mqdes, u_mqstat_uaddr,
- u_omqstat_uaddr)
-}
-probe syscall.compat_sys_mq_getsetattr.return =
- kernel.function("compat_sys_mq_getsetattr").return {
- name = "compat_sys_mq_getsetattr"
- retstr = returnstr(1)
-}
-# compat_sys_keyctl ________________________________________
-#
-# asmlinkage long compat_sys_keyctl(u32 option,
-# u32 arg2, u32 arg3, u32 arg4, u32 arg5)
-#
-/* FIXME
-probe syscall.compat_sys_keyctl = kernel.function("compat_sys_keyctl") {
- name = "compat_sys_keyctl"
- option = $option
- arg2 = $arg2
- arg3 = $arg3
- arg4 = $arg4
- arg5 = $arg5
- argstr = sprintf("%d, %d, %d, %d, %d", option, arg2, arg3,
- arg4, arg5)
-}
-probe syscall.compat_sys_keyctl.return =
- kernel.function("compat_sys_keyctl").return {
- name = "compat_sys_keyctl"
- retstr = returnstr(1)
-}
-*/
-
-#sys32_open _______________________________________________________
-# asmlinkage long sys32_open(const char * filename, int flags, int mode)
-probe syscall.sys32_open = kernel.function("sys32_open") ? {
- name = "open"
- filename_uaddr = $filename
- path = user_string($filename)
- flags = $flags
- mode = $mode
- if (flags & 64)
- argstr = sprintf("%s, %s, %#o", user_string_quoted($filename),
- _sys_open_flag_str(flags), mode)
- else
- argstr = sprintf("%s, %s", user_string_quoted(filename), _sys_open_flag_str(flags))
-}
-probe syscall.sys32_open.return = kernel.function("sys32_open").return ? {
- name = "open"
- retstr = returnstr(1)
-}
-# old32_readdir ________________________________________
-#
-# asmlinkage int old32_readdir(unsigned int fd,
-# struct old_linux_dirent32 __user *dirent,
-# unsigned int count)
-#
-probe syscall.old32_readdir = kernel.function("old32_readdir") {
- name = "old32_readdir"
- fd = $fd
- dirp_uaddr = $dirent
- count = $count
- argstr = sprintf("%d, %p, %d", fd, dirp_uaddr, count)
-}
-probe syscall.old32_readdir.return =
- kernel.function("old32_readdir").return {
- name = "old32_readdir"
- retstr = returnstr(1)
-}
# sys64_time ________________________________________
#
# time_t sys64_time(time_t __user * tloc)
#
-%( kernel_v <= "2.6.15" %?
-
-probe syscall.sys64_time = kernel.function("sys64_time") {
+probe syscall.sys64_time = kernel.function("sys64_time") ? {
name = "sys64_time"
- /* FIXME */
- t_uaddr = $tloc
- argstr = sprintf("%p", t_uaddr)
+ argstr = sprintf("%p", $tloc)
}
-probe syscall.sys64_time.return = kernel.function("sys64_time").return {
+probe syscall.sys64_time.return = kernel.function("sys64_time").return ? {
name = "sys64_time"
retstr = returnstr(1)
}
-%)
+
# ppc64_personality ________________________________________
#
# long ppc64_personality(unsigned long personality)
persona = $personality
argstr = sprint($personality)
}
-probe syscall.ppc64_personality.return =
- kernel.function("ppc64_personality").return {
+probe syscall.ppc64_personality.return = kernel.function("ppc64_personality").return {
name = "ppc64_personality"
retstr = returnstr(1)
}
+
# ppc_rtas ________________________________________
#
-# asmlinkage int ppc_rtas(struct rtas_args __user *uargs)
+# int ppc_rtas(struct rtas_args __user *uargs)
#
probe syscall.ppc_rtas = kernel.function("ppc_rtas") {
name = "ppc_rtas"
uargs_uaddr = $uargs
- argstr = sprintf("%p", uargs_uaddr)
+ argstr = sprintf("%p", $uargs)
}
probe syscall.ppc_rtas.return = kernel.function("ppc_rtas").return {
name = "ppc_rtas"
retstr = returnstr(1)
}
-# sys32_execve ________________________________________
-#
-# long sys32_execve(unsigned long a0, unsigned long a1, unsigned long a2,
-# unsigned long a3, unsigned long a4, unsigned long a5,
-# struct pt_regs *regs)
-#
-probe syscall.sys32_execve = kernel.function("sys32_execve") ? {
- name = "sys32_execve"
- filename = user_string($a0)
- args = __get_argv($a1, 0)
- argstr = sprintf("%s %s", user_string_quoted($a0), __get_argv($a1, 1))
-}
-probe syscall.sys32_execve.return =
- kernel.function("sys32_execve").return ? {
- name = "sys32_execve"
- retstr = returnstr(1)
-}
-
-
# ppc64_sys32_stime ________________________________________
#
# long ppc64_sys32_stime(int __user * tptr)
#
probe syscall.ppc64_sys32_stime = kernel.function("ppc64_sys32_stime") ? {
name = "ppc64_sys32_stime"
- /* FIXME */
t_uaddr = $tptr
- argstr = sprintf("%p", t_uaddr)
+ argstr = sprintf("%p", $tptr)
}
-probe syscall.ppc64_sys32_stime.return =
- kernel.function("ppc64_sys32_stime").return ? {
+probe syscall.ppc64_sys32_stime.return = kernel.function("ppc64_sys32_stime").return ? {
name = "ppc64_sys32_stime"
retstr = returnstr(1)
}
# sys32_ptrace ________________________________________
-#
+# (obsolete)
# int sys32_ptrace(long request, long pid, unsigned long addr,
# unsigned long data)
#
pid = $pid
addr = $addr
data = $data
- argstr = sprintf("%p, %p, %p, %p", request, pid,
- addr, data)
+ argstr = sprintf("%p, %p, %p, %p", $request, $pid, $addr, $data)
}
probe syscall.sys32_ptrace.return = kernel.function("sys32_ptrace").return ? {
name = "sys32_ptrace"
retstr = returnstr(1)
}
+
# sys32_sysinfo ________________________________________
#
-# asmlinkage long sys32_sysinfo(struct sysinfo32 __user *info)
+# (obsolete) long sys32_sysinfo(struct sysinfo32 __user *info)
#
probe syscall.sys32_sysinfo = kernel.function("sys32_sysinfo") ? {
name = "sys32_sysinfo"
info_uaddr = $info
argstr = sprintf("%p", info_uaddr)
}
-probe syscall.sys32_sysinfo.return =
- kernel.function("sys32_sysinfo").return ? {
+probe syscall.sys32_sysinfo.return = kernel.function("sys32_sysinfo").return ? {
name = "sys32_sysinfo"
retstr = returnstr(1)
}
r7 = $r7
r8 = $r8
argstr = sprintf("%p, %p, %p, %p, %p, %p",
- r3, r4, r5, r6, r7, r8)
+ $r3, $r4, $r5, $r6, $r7, $r8)
}
probe syscall.sys32_sigreturn.return =
kernel.function("sys32_sigreturn").return ? {
}
# sys32_adjtimex ________________________________________
#
-# asmlinkage long sys32_adjtimex(struct timex32 __user *utp)
+# long sys32_adjtimex(struct timex32 __user *utp)
#
probe syscall.sys32_adjtimex = kernel.function("sys32_adjtimex") ? {
name = "sys32_adjtimex"
# accept _____________________________________________________
# long sys_accept(int fd, struct sockaddr __user *upeer_sockaddr,
# int __user *upeer_addrlen)
-probe syscall.accept = kernel.function("sys_accept") {
+probe syscall.accept = kernel.function("sys_accept") ? {
name = "accept"
sockfd = $fd
addr_uaddr = $upeer_sockaddr
addrlen_uaddr = $upeer_addrlen
argstr = sprintf("%d, %p, %p", $fd, $upeer_sockaddr, $upeer_addrlen)
}
-probe syscall.accept.return = kernel.function("sys_accept").return {
+probe syscall.accept.return = kernel.function("sys_accept").return ? {
name = "accept"
retstr = returnstr(1)
}
# bind _______________________________________________________
# long sys_bind(int fd, struct sockaddr __user *umyaddr, int addrlen)
-probe syscall.bind = kernel.function("sys_bind") {
+probe syscall.bind = kernel.function("sys_bind") ? {
name = "bind"
sockfd = $fd
my_addr_uaddr = $umyaddr
addrlen = $addrlen
argstr = sprintf("%d, %s, %d", $fd, _struct_sockaddr_u($umyaddr,$addrlen),$addrlen)
}
-probe syscall.bind.return = kernel.function("sys_bind").return {
+probe syscall.bind.return = kernel.function("sys_bind").return ? {
name = "bind"
retstr = returnstr(1)
}
}
# connect ____________________________________________________
# long sys_connect(int fd, struct sockaddr __user *uservaddr, int addrlen)
-probe syscall.connect = kernel.function("sys_connect") {
+probe syscall.connect = kernel.function("sys_connect") ? {
name = "connect"
sockfd = $fd
serv_addr_uaddr = $uservaddr
addrlen = $addrlen
argstr = sprintf("%d, %s, %d", $fd, _struct_sockaddr_u($uservaddr,$addrlen),$addrlen)
}
-probe syscall.connect.return = kernel.function("sys_connect").return {
+probe syscall.connect.return = kernel.function("sys_connect").return ? {
name = "connect"
retstr = returnstr(1)
}
# delete_module ______________________________________________
# long sys_delete_module(const char __user *name_user, unsigned int flags)
-probe syscall.delete_module = kernel.function("sys_delete_module") {
+probe syscall.delete_module = kernel.function("sys_delete_module") ? {
name = "delete_module"
name_user = user_string($name_user)
flags = $flags
- argstr = sprintf("%s, %s", user_string_quoted($name_user), _module_flags_str(flags))
+ argstr = sprintf("%s, %s", user_string_quoted($name_user), _module_flags_str($flags))
}
-probe syscall.delete_module.return = kernel.function("sys_delete_module").return {
+probe syscall.delete_module.return = kernel.function("sys_delete_module").return ? {
name = "delete_module"
retstr = returnstr(1)
}
# epoll_create _______________________________________________
# long sys_epoll_create(int size)
-probe syscall.epoll_create = kernel.function("sys_epoll_create") {
+probe syscall.epoll_create = kernel.function("sys_epoll_create") ? {
name = "epoll_create"
size = $size
argstr = sprint($size)
}
-probe syscall.epoll_create.return = kernel.function("sys_epoll_create").return {
+probe syscall.epoll_create.return = kernel.function("sys_epoll_create").return ? {
name = "epoll_create"
retstr = returnstr(1)
}
# epoll_ctl __________________________________________________
#
# long sys_epoll_ctl(int epfd, int op, int fd, struct epoll_event __user *event)
+# long compat_sys_epoll_ctl(int epfd, int op, int fd,
+# struct compat_epoll_event __user *event)
#
-probe syscall.epoll_ctl = kernel.function("sys_epoll_ctl") {
+probe syscall.epoll_ctl =
+ kernel.function("sys_epoll_ctl") ?,
+ kernel.function("compat_sys_epoll_ctl") ?
+{
name = "epoll_ctl"
epfd = $epfd
op = $op
event_uaddr = $event
argstr = sprintf("%d, %s, %d, %p", $epfd, _opoll_op_str($op), $fd, $event)
}
-probe syscall.epoll_ctl.return = kernel.function("sys_epoll_ctl").return {
+probe syscall.epoll_ctl.return =
+ kernel.function("sys_epoll_ctl").return ?,
+ kernel.function("compat_sys_epoll_ctl").return ?
+{
name = "epoll_ctl"
retstr = returnstr(1)
}
+# epoll_pwait _________________________________________________
+#
+# long sys_epoll_pwait(int epfd, struct epoll_event __user *events,
+# int maxevents, int timeout, const sigset_t __user *sigmask,
+# size_t sigsetsize)
+# long compat_sys_epoll_pwait(int epfd,
+# struct compat_epoll_event __user *events,
+# int maxevents, int timeout,
+# const compat_sigset_t __user *sigmask,
+# compat_size_t sigsetsize)
+#
+probe syscall.epoll_pwait =
+ kernel.function("sys_epoll_pwait") ?,
+ kernel.function("compat_sys_epoll_pwait") ?
+{
+ name = "epoll_pwait"
+ argstr = sprintf("%d, %p, %d, %d, %p, %d",
+ $epfd, $events, $maxevents, $timeout, $sigmask, $sigsetsize)
+}
+probe syscall.epoll_pwait.return =
+ kernel.function("sys_epoll_pwait").return ?,
+ kernel.function("compat_sys_epoll_pwait").return ?
+{
+ name = "epoll_pwait"
+ retstr = returnstr(1)
+}
+
# epoll_wait _________________________________________________
#
# long sys_epoll_wait(int epfd, struct epoll_event __user *events,
# int maxevents, int timeout)
+# long compat_sys_epoll_wait(int epfd,
+# struct compat_epoll_event __user *events,
+# int maxevents, int timeout)
#
-probe syscall.epoll_wait = kernel.function("sys_epoll_wait") {
+probe syscall.epoll_wait =
+ kernel.function("sys_epoll_wait") ?,
+ kernel.function("compat_sys_epoll_wait") ?
+{
name = "epoll_wait"
epfd = $epfd
events_uaddr = $events
timeout = $timeout
argstr = sprintf("%d, %p, %d, %d", $epfd, $events, $maxevents, $timeout)
}
-probe syscall.epoll_wait.return = kernel.function("sys_epoll_wait").return {
+probe syscall.epoll_wait.return =
+ kernel.function("sys_epoll_wait").return ?,
+ kernel.function("compat_sys_epoll_wait").return ?
+{
name = "epoll_wait"
retstr = returnstr(1)
}
+# eventfd _____________________________________________________
+# long sys_eventfd(unsigned int count)
+#
+probe syscall.eventfd = kernel.function("sys_eventfd") ? {
+ name = "eventfd"
+ argstr = sprint($count)
+}
+probe syscall.eventfd.return = kernel.function("sys_eventfd").return ? {
+ name = "eventfd"
+ retstr = returnstr(1)
+}
+
# execve _____________________________________________________
# int sys_execve(struct pt_regs regs)
# which breaks out the args and immediately calls
cmd = $cmd
cmd_str = _fcntl_cmd_str($cmd)
arg = $arg
- argstr = sprintf("%d, %s, %p", $fd, cmd_str, $arg)
+ argstr = sprintf("%d, %s, %p", $fd, _fcntl_cmd_str($cmd), $arg)
}
probe syscall.fcntl.return =
kernel.function("sys_fcntl").return ?,
# sys32_fstatat64(unsigned int dfd, char __user *filename, struct stat64_emu31 __user* statbuf, int flag)
# long sys_newfstatat(int dfd, char __user *filename, struct stat __user *statbuf, int flag)
# long sys_fstatat64(int dfd, char __user *filename, struct stat64 __user *statbuf, int flag)
-#
+# long compat_sys_newfstatat(unsigned int dfd, char __user *filename, struct compat_stat __user *statbuf, int flag)
probe syscall.fstatat =
kernel.function("sys_fstatat64") ?,
kernel.function("sys_newfstatat") ?,
+ kernel.function("compat_sys_newfstatat") ?,
kernel.function("sys32_fstatat64") ?
{
name = "fstatat"
dirfd = $dfd
path = user_string($filename)
buf_uaddr = $statbuf
-
- if ($flag == 0x100)
- flags = "AT_SYMLINK_NOFOLLOW"
- else
- flags = sprintf("0x%x", $flag)
-
- argstr = sprintf("%d, %s, %p, %s", $dfd, user_string_quoted($filename), $statbuf, flags)
+ argstr = sprintf("%s, %s, %p, %s", _dfd_str($dfd), user_string_quoted($filename), $statbuf, _at_flag_str($flag))
}
probe syscall.fstatat.return =
kernel.function("sys_fstatat64").return ?,
kernel.function("sys_newfstatat").return ?,
+ kernel.function("compat_sys_newfstatat").return ?,
kernel.function("sys32_fstatat64").return ?
{
name = "fstatat"
#
probe syscall.fstatfs64 =
kernel.function("sys_fstatfs64") ?,
- kernel.function("comp_sys_fstatfs64") ?
+ kernel.function("compat_sys_fstatfs64") ?
{
name = "fstatfs"
fd = $fd
}
probe syscall.fstatfs64.return =
kernel.function("sys_fstatfs64").return ?,
- kernel.function("comp_sys_fstatfs64").return ?
+ kernel.function("compat_sys_fstatfs64").return ?
{
name = "fstatfs"
retstr = returnstr(1)
# struct timespec __user *utime,
# u32 __user *uaddr2,
# int val3)
+# long compat_sys_futex(u32 __user *uaddr, int op, u32 val,
+# struct compat_timespec __user *utime, u32 __user *uaddr2,
+# u32 val3)
#
-probe syscall.futex = kernel.function("sys_futex") {
+probe syscall.futex = kernel.function("sys_futex") ? {
name = "futex"
futex_uaddr = $uaddr
op = $op
argstr = sprintf("%p, %s, %d", $uaddr, _futex_op_str($op),
$val)
}
-probe syscall.futex.return = kernel.function("sys_futex").return {
+probe syscall.futex.return = kernel.function("sys_futex").return ? {
+ name = "futex"
+ retstr = returnstr(1)
+}
+probe syscall.compat_futex = kernel.function("compat_sys_futex") ? {
+ name = "futex"
+ futex_uaddr = $uaddr
+ op = $op
+ val = $val
+ utime_uaddr = $utime
+ uaddr2_uaddr = $uaddr2
+ val3 = $val3
+ if (op == 0)
+ argstr = sprintf("%p, %s, %d, %s", $uaddr, _futex_op_str($op),
+ $val, _struct_compat_timespec_u($utime,1))
+ else
+ argstr = sprintf("%p, %s, %d", $uaddr, _futex_op_str($op),
+ $val)
+}
+probe syscall.compat_futex.return = kernel.function("compat_sys_futex").return ? {
name = "futex"
retstr = returnstr(1)
}
filename_uaddr = $filename
filename = user_string($filename)
tvp_uaddr = $utimes
- argstr = sprintf("%d, %s, %s", $dfd, user_string_quoted($filename),
+ argstr = sprintf("%s, %s, %s", _dfd_str($dfd), user_string_quoted($filename),
_struct_timeval_u($utimes, 2))
}
probe syscall.compat_futimesat = kernel.function("compat_sys_futimesat") ? {
filename_uaddr = $filename
filename = user_string($filename)
tvp_uaddr = $t
- argstr = sprintf("%d, %s, %s", $dfd, user_string_quoted($filename),
+ argstr = sprintf("%s, %s, %s", _dfd_str($dfd), user_string_quoted($filename),
_struct_compat_timeval_u($t, 2))
}
probe syscall.futimesat.return = kernel.function("sys_futimesat").return ? {
# getpeername ________________________________________________
# long sys_getpeername(int fd, struct sockaddr __user *usockaddr, int __user *usockaddr_len)
#
-probe syscall.getpeername = kernel.function("sys_getpeername") {
+probe syscall.getpeername = kernel.function("sys_getpeername") ? {
name = "getpeername"
s = $fd
name_uaddr = $usockaddr
namelen_uaddr = $usockaddr_len
argstr = sprintf("%d, %p, %p", $fd, $usockaddr, $usockaddr_len)
}
-probe syscall.getpeername.return = kernel.function("sys_getpeername").return {
+probe syscall.getpeername.return = kernel.function("sys_getpeername").return ? {
name = "getpeername"
retstr = returnstr(1)
}
# long sys_getsockname(int fd,
# struct sockaddr __user *usockaddr,
# int __user *usockaddr_len)
-probe syscall.getsockname = kernel.function("sys_getsockname") {
+probe syscall.getsockname = kernel.function("sys_getsockname") ? {
name = "getsockname"
s = $fd
name_uaddr = $usockaddr
namelen_uaddr = $usockaddr_len
argstr = sprintf("%d, %p, %p", $fd, $usockaddr, $usockaddr_len)
}
-probe syscall.getsockname.return = kernel.function("sys_getsockname").return {
+probe syscall.getsockname.return = kernel.function("sys_getsockname").return ? {
name = "getsockname"
retstr = returnstr(1)
}
# long sys_init_module(void __user *umod,
# unsigned long len,
# const char __user *uargs)
-probe syscall.init_module = kernel.function("sys_init_module") {
+#
+probe syscall.init_module = kernel.function("sys_init_module") ? {
name = "init_module"
umod_uaddr = $umod
len = $len
uargs = user_string($uargs)
- argstr = sprintf("%p, %d, %s", umod_uaddr, len, uargs)
+ argstr = sprintf("%p, %d, %s", $umod, $len, user_string_quoted($uargs))
}
-probe syscall.init_module.return = kernel.function("sys_init_module").return {
+probe syscall.init_module.return = kernel.function("sys_init_module").return ? {
name = "init_module"
retstr = returnstr(1)
}
iocbpp_uaddr = $iocb
argstr = sprintf("%d, %d, %p", $ctx_id, $nr, $iocb)
}
-probe syscall.compat_io_submit.return = kernel.function("sys_io_submit").return ? {
+probe syscall.compat_io_submit.return = kernel.function("compat_sys_io_submit").return ? {
name = "io_submit"
retstr = returnstr(1)
}
# unsigned long arg3,
# unsigned long arg4,
# unsigned long arg5)
+# long compat_sys_keyctl(u32 option, u32 arg2, u32 arg3, u32 arg4, u32 arg5)
#
-probe syscall.keyctl = kernel.function("sys_keyctl") ? {
+probe syscall.keyctl =
+ kernel.function("sys_keyctl") ?,
+ kernel.function("compat_sys_keyctl") ?
+{
name = "keyctl"
- option = $option
- arg2 = $arg2
- arg3 = $arg3
- arg4 = $arg4
- arg5 = $arg5
- argstr = sprintf("%d", $option)
-}
-probe syscall.keyctl.return = kernel.function("sys_keyctl").return ? {
+ argstr = sprintf("%d, ...", $option)
+
+}
+probe syscall.keyctl.return =
+ kernel.function("sys_keyctl").return ?,
+ kernel.function("compat_sys_keyctl").return ?
+{
name = "keyctl"
retstr = returnstr(1)
}
# listen _____________________________________________________
# long sys_listen(int fd, int backlog)
-probe syscall.listen = kernel.function("sys_listen") {
+probe syscall.listen = kernel.function("sys_listen") ? {
name = "listen"
sockfd = $fd
backlog = $backlog
argstr = sprintf("%d, %d", $fd, $backlog)
}
-probe syscall.listen.return = kernel.function("sys_listen").return {
+probe syscall.listen.return = kernel.function("sys_listen").return ? {
name = "listen"
retstr = returnstr(1)
}
# lookup_dcookie _____________________________________________
# long sys_lookup_dcookie(u64 cookie64, char __user * buf, size_t len)
#
-probe syscall.lookup_dcookie = kernel.function("sys_lookup_dcookie") {
+probe syscall.lookup_dcookie = kernel.function("sys_lookup_dcookie") ? {
name = "lookup_dcookie"
cookie = $cookie64
buffer_uaddr = $buf
len = $len
argstr = sprintf("%d, %p, %d", $cookie64, $buf, $len)
}
-probe syscall.lookup_dcookie.return = kernel.function("sys_lookup_dcookie").return {
+probe syscall.lookup_dcookie.return = kernel.function("sys_lookup_dcookie").return ? {
name = "lookup_dcookie"
retstr = returnstr(1)
}
# long sys_mq_getsetattr(mqd_t mqdes,
# const struct mq_attr __user *u_mqstat,
# struct mq_attr __user *u_omqstat)
+# long compat_sys_mq_getsetattr(mqd_t mqdes,
+# const struct compat_mq_attr __user *u_mqstat,
+# struct compat_mq_attr __user *u_omqstat)
#
-probe syscall.mq_getsetattr = kernel.function("sys_mq_getsetattr") {
+probe syscall.mq_getsetattr =
+ kernel.function("sys_mq_getsetattr") ?,
+ kernel.function("compat_sys_mq_getsetattr") ?
+{
name = "mq_getsetattr"
mqdes = $mqdes
u_mqstat_uaddr = $u_mqstat
u_omqstat_uaddr = $u_omqstat
argstr = sprintf("%d, %p, %p", $mqdes, $u_mqstat, $u_omqstat)
}
-probe syscall.mq_getsetattr.return = kernel.function("sys_mq_getsetattr").return {
+probe syscall.mq_getsetattr.return =
+ kernel.function("sys_mq_getsetattr").return ?,
+ kernel.function("compat_sys_mq_getsetattr").return ?
+{
name = "mq_getsetattr"
retstr = returnstr(1)
}
# mq_notify __________________________________________________
# long sys_mq_notify(mqd_t mqdes, const struct sigevent __user *u_notification)
+# long compat_sys_mq_notify(mqd_t mqdes, const struct compat_sigevent __user *u_notification)
#
-probe syscall.mq_notify = kernel.function("sys_mq_notify") {
+probe syscall.mq_notify =
+ kernel.function("sys_mq_notify") ?,
+ kernel.function("compat_sys_mq_notify") ?
+{
name = "mq_notify"
mqdes = $mqdes
notification_uaddr = $u_notification
argstr = sprintf("%d, %p", $mqdes, $u_notification)
}
-probe syscall.mq_notify.return = kernel.function("sys_mq_notify").return {
+probe syscall.mq_notify.return =
+ kernel.function("sys_mq_notify").return ?,
+ kernel.function("compat_sys_mq_notify").return ?
+{
name = "mq_notify"
retstr = returnstr(1)
}
# int oflag,
# mode_t mode,
# struct mq_attr __user *u_attr)
+# long compat_sys_mq_open(const char __user *u_name,
+# int oflag, compat_mode_t mode,
+# struct compat_mq_attr __user *u_attr)
#
-probe syscall.mq_open = kernel.function("sys_mq_open") {
+probe syscall.mq_open =
+ kernel.function("sys_mq_open") ?,
+ kernel.function("compat_sys_mq_open") ?
+{
name = "mq_open"
name_uaddr = $u_name
filename = user_string($u_name)
oflag = $oflag
if (oflag & 64)
argstr = sprintf("%s, %s, %#o, %p", user_string_quoted($u_name),
- _sys_open_flag_str(oflag), $mode, $u_attr)
+ _sys_open_flag_str($oflag), $mode, $u_attr)
else
- argstr = sprintf("%s, %s", user_string_quoted($u_name), _sys_open_flag_str(oflag))
+ argstr = sprintf("%s, %s", user_string_quoted($u_name), _sys_open_flag_str($oflag))
}
-probe syscall.mq_open.return = kernel.function("sys_mq_open").return {
+probe syscall.mq_open.return =
+ kernel.function("sys_mq_open").return ?,
+ kernel.function("compat_sys_mq_open").return ?
+{
name = "mq_open"
retstr = returnstr(1)
}
# size_t msg_len,
# unsigned int __user *u_msg_prio,
# const struct timespec __user *u_abs_timeout)
-#
-probe syscall.mq_timedreceive = kernel.function("sys_mq_timedreceive") {
+# ssize_t compat_sys_mq_timedreceive(mqd_t mqdes,
+# char __user *u_msg_ptr,
+# size_t msg_len, unsigned int __user *u_msg_prio,
+# const struct compat_timespec __user *u_abs_timeout)
+#
+probe syscall.mq_timedreceive =
+ kernel.function("sys_mq_timedreceive") ?,
+ kernel.function("compat_sys_mq_timedreceive") ?
+{
name = "mq_timedreceive"
mqdes = $mqdes
msg_ptr_uaddr = $u_msg_ptr
argstr = sprintf("%d, %p, %d, %p, %p", $mqdes, $u_msg_ptr, $msg_len,
$u_msg_prio, $u_abs_timeout)
}
-probe syscall.mq_timedreceive.return = kernel.function("sys_mq_timedreceive").return {
+probe syscall.mq_timedreceive.return =
+ kernel.function("sys_mq_timedreceive").return ?,
+ kernel.function("compat_sys_mq_timedreceive").return ?
+{
name = "mq_timedreceive"
retstr = returnstr(1)
}
# size_t msg_len,
# unsigned int msg_prio,
# const struct timespec __user *u_abs_timeout)
-#
-probe syscall.mq_timedsend = kernel.function("sys_mq_timedsend") {
+# long compat_sys_mq_timedsend(mqd_t mqdes,
+# const char __user *u_msg_ptr,
+# size_t msg_len, unsigned int msg_prio,
+# const struct compat_timespec __user *u_abs_timeout)
+#
+probe syscall.mq_timedsend =
+ kernel.function("sys_mq_timedsend") ?,
+ kernel.function("compat_sys_mq_timedsend") ?
+{
name = "mq_timedsend"
mqdes = $mqdes
msg_ptr_uaddr = $u_msg_ptr
argstr = sprintf("%d, %p, %d, %d, %p", $mqdes, $u_msg_ptr, $msg_len,
$msg_prio, $u_abs_timeout)
}
-probe syscall.mq_timedsend.return = kernel.function("sys_mq_timedsend").return {
+probe syscall.mq_timedsend.return =
+ kernel.function("sys_mq_timedsend").return ?,
+ kernel.function("compat_sys_mq_timedsend").return ?
+{
name = "mq_timedsend"
retstr = returnstr(1)
}
# mq_unlink __________________________________________________
# long sys_mq_unlink(const char __user *u_name)
#
-probe syscall.mq_unlink = kernel.function("sys_mq_unlink") {
+probe syscall.mq_unlink = kernel.function("sys_mq_unlink") ? {
name = "mq_unlink"
u_name_uaddr = $u_name
u_name = user_string($u_name)
argstr = user_string_quoted($u_name)
}
-probe syscall.mq_unlink.return = kernel.function("sys_mq_unlink").return {
+probe syscall.mq_unlink.return = kernel.function("sys_mq_unlink").return ? {
name = "mq_unlink"
retstr = returnstr(1)
}
# msgctl _____________________________________________________
# long sys_msgctl (int msqid, int cmd, struct msqid_ds __user *buf)
#
-probe syscall.msgctl = kernel.function("sys_msgctl") {
+probe syscall.msgctl = kernel.function("sys_msgctl") ? {
name = "msgctl"
msqid = $msqid
cmd = $cmd
buf_uaddr = $buf
argstr = sprintf("%d, %d, %p", $msqid, $cmd, $buf)
}
-probe syscall.msgctl.return = kernel.function("sys_msgctl").return {
+probe syscall.msgctl.return = kernel.function("sys_msgctl").return ? {
name = "msgctl"
retstr = returnstr(1)
}
# msgget _____________________________________________________
# long sys_msgget (key_t key, int msgflg)
#
-probe syscall.msgget = kernel.function("sys_msgget") {
+probe syscall.msgget = kernel.function("sys_msgget") ? {
name = "msgget"
key = $key
msgflg = $msgflg
msgflg_str = _sys_open_flag_str($msgflg)
argstr = sprintf("%d, %s", $key, _sys_open_flag_str($msgflg))
}
-probe syscall.msgget.return = kernel.function("sys_msgget").return {
+probe syscall.msgget.return = kernel.function("sys_msgget").return ? {
name = "msgget"
retstr = returnstr(1)
}
# long msgtyp,
# int msgflg)
#
-probe syscall.msgrcv = kernel.function("sys_msgrcv") {
+probe syscall.msgrcv = kernel.function("sys_msgrcv") ? {
name = "msgrcv"
msqid = $msqid
msgp_uaddr = $msgp
msgflg = $msgflg
argstr = sprintf("%d, %p, %d, %d, %d", $msqid, $msgp, $msgsz, $msgtyp, $msgflg)
}
-probe syscall.msgrcv.return = kernel.function("sys_msgrcv").return {
+probe syscall.msgrcv.return = kernel.function("sys_msgrcv").return ? {
name = "msgrcv"
retstr = returnstr(1)
}
# size_t msgsz,
# int msgflg)
#
-probe syscall.msgsnd = kernel.function("sys_msgsnd") {
+probe syscall.msgsnd = kernel.function("sys_msgsnd") ? {
name = "msgsnd"
msqid = $msqid
msgp_uaddr = $msgp
msgflg = $msgflg
argstr = sprintf("%d, %p, %d, %d", $msqid, $msgp, $msgsz, $msgflg)
}
-probe syscall.msgsnd.return = kernel.function("sys_msgsnd").return {
+probe syscall.msgsnd.return = kernel.function("sys_msgsnd").return ? {
name = "msgsnd"
retstr = returnstr(1)
}
# open _______________________________________________________
# long sys_open(const char __user * filename, int flags, int mode)
+# (obsolete) long sys32_open(const char * filename, int flags, int mode)
+#
probe syscall.open =
kernel.function("sys_open") ?,
kernel.function("compat_sys_open") ?,
argstr = sprintf("%d, %p, %p, %p, %s, %p, %d", $n, $inp, $outp, $exp,
_struct_compat_timespec_u($tsp,1), $sigmask, $sigsetsize)
}
-probe syscall.compat_pselect7.return = kernel.function("compat_sys_pselect").return ? {
+probe syscall.compat_pselect7.return = kernel.function("compat_sys_pselect7").return ? {
name = "pselect7"
retstr = returnstr(1)
}
# readdir ___________________________________________________
#
# long compat_sys_old_readdir(unsigned int fd, struct compat_old_linux_dirent __user *dirent, unsigned int count)
-#
-probe syscall.readdir = kernel.function("compat_sys_old_readdir") ? {
+# int old32_readdir(unsigned int fd, struct old_linux_dirent32 *dirent, unsigned int count)
+#
+probe syscall.readdir =
+ kernel.function("compat_sys_old_readdir") ?,
+ kernel.function("old32_readdir") ?
+{
name = "readdir"
argstr = sprintf("%d, %p, %d", $fd, $dirent, $count)
}
-probe syscall.readdir.return = kernel.function("compat_sys_old_readdir").return ? {
+probe syscall.readdir.return =
+ kernel.function("compat_sys_old_readdir").return ?,
+ kernel.function("old32_readdir").return ?
+{
name = "readdir"
retstr = returnstr(1)
}
len = $size
flags = $flags
flags_str = _recvflags_str($flags)
- argstr = sprintf("%d, %p, %d, %s", $fd, $ubuf, $size, flags_str)
+ argstr = sprintf("%d, %p, %d, %s", $fd, $ubuf, $size, _recvflags_str($flags))
}
probe syscall.recv.return = kernel.function("sys_recv").return ? {
name = "recv"
# struct sockaddr __user *addr,
# int __user *addr_len)
#
-probe syscall.recvfrom = kernel.function("sys_recvfrom") {
+probe syscall.recvfrom = kernel.function("sys_recvfrom") ? {
name = "recvfrom"
s = $fd
buf_uaddr = $ubuf
addr_uaddr = $addr
addrlen_uaddr = $addr_len
argstr = sprintf("%d, %p, %d, %s, %p, %p",
- $fd, $ubuf, $size, flags_str, $addr, $addr_len)
+ $fd, $ubuf, $size, _recvflags_str($flags), $addr, $addr_len)
}
probe syscall.recvfrom.return = kernel.function("sys_recvfrom").return ? {
name = "recvfrom"
}
# sched_getscheduler _________________________________________
#
-# asmlinkage long
-# sys_sched_getscheduler(pid_t pid)
+# long sys_sched_getscheduler(pid_t pid)
#
probe syscall.sched_getscheduler = kernel.function("sys_sched_getscheduler") {
name = "sched_getscheduler"
pid = $pid
- argstr = sprint(pid)
+ argstr = sprint($pid)
}
-probe syscall.sched_getscheduler.return =
- kernel.function("sys_sched_getscheduler").return {
+probe syscall.sched_getscheduler.return = kernel.function("sys_sched_getscheduler").return {
name = "sched_getscheduler"
retstr = returnstr(1)
}
# sched_rr_get_interval ______________________________________
#
-# asmlinkage long
-# sys_sched_rr_get_interval(pid_t pid,
-# struct timespec __user *interval)
+# long sys_sched_rr_get_interval(pid_t pid, struct timespec __user *interval)
#
-probe syscall.sched_rr_get_interval =
- kernel.function("sys_sched_rr_get_interval") {
+probe syscall.sched_rr_get_interval = kernel.function("sys_sched_rr_get_interval") {
name = "sched_rr_get_interval"
pid = $pid
tp_uaddr = $interval
argstr = sprintf("%d, %s", $pid, _struct_timespec_u($interval,1))
}
-probe syscall.sched_rr_get_interval.return =
- kernel.function("sys_sched_rr_get_interval").return {
+probe syscall.sched_rr_get_interval.return = kernel.function("sys_sched_rr_get_interval").return {
name = "sched_rr_get_interval"
retstr = returnstr(1)
}
retstr = returnstr(1)
}
+# signalfd _____________________________________________________
+#
+# long sys_signalfd(int ufd, sigset_t __user *user_mask, size_t sizemask)
+# long compat_sys_signalfd(int ufd, const compat_sigset_t __user *sigmask,
+# compat_size_t sigsetsize)
+#
+probe syscall.signalfd = kernel.function("sys_signalfd") ? {
+ name = "signalfd"
+ argstr = sprintf("%d, %p, %d", $ufd, $user_mask, $sizemask)
+}
+probe syscall.signalfd.return = kernel.function("sys_signalfd").return ? {
+ name = "signalfd"
+ retstr = returnstr(1)
+}
+probe syscall.compat_signalfd = kernel.function("compat_sys_signalfd") ? {
+ name = "compat_signalfd"
+ argstr = sprintf("%d, %p, %d", $ufd, $sigmask, $sigsetsize)
+}
+probe syscall.compat_signalfd.return = kernel.function("compat_sys_signalfd").return ? {
+ name = "compat_signalfd"
+ retstr = returnstr(1)
+}
+
# sigpending _________________________________________________
# long sys_sigpending(old_sigset_t __user *set)
#
#
# long sys_socketcall(int call, unsigned long __user *args)
#
-#probe syscall.socketcall = kernel.function("sys_socketcall") {
+#probe syscall.socketcall = kernel.function("sys_socketcall") ? {
# name = "socketcall"
# call = $call
# args_uaddr = $args
# argstr = sprintf("%d, %p", $call, args_uaddr)
#}
-#probe syscall.socketcall.return = kernel.function("sys_socketcall").return {
+#probe syscall.socketcall.return = kernel.function("sys_socketcall").return ? {
# name = "socketcall"
# retstr = returnstr(1)
#}
retstr = returnstr(1)
}
+# splice ___________________________________________________
+#
+# long sys_splice(int fd_in, loff_t __user *off_in,
+# int fd_out, loff_t __user *off_out,
+# size_t len, unsigned int flags)
+#
+probe syscall.splice = kernel.function("sys_splice") ? {
+ name = "splice"
+ argstr = sprintf("%d, %p, %d, %p, %d, 0x%x",
+ $fd_in, $off_in, $fd_out, $off_out, $len, $flags)
+}
+probe syscall.splice.return = kernel.function("sys_splice").return ? {
+ name = "splice"
+ retstr = returnstr(1)
+}
+
# ssetmask ___________________________________________________
#
-# asmlinkage long
-# sys_ssetmask(int newmask)
+# long sys_ssetmask(int newmask)
#
-probe syscall.ssetmask = kernel.function("sys_ssetmask")? {
+probe syscall.ssetmask = kernel.function("sys_ssetmask") ? {
name = "ssetmask"
newmask = $newmask
argstr = sprint($newmask)
}
-probe syscall.ssetmask.return = kernel.function("sys_ssetmask").return ?{
+probe syscall.ssetmask.return = kernel.function("sys_ssetmask").return ? {
name = "ssetmask"
retstr = returnstr(1)
}
#
probe syscall.statfs64 =
kernel.function("sys_statfs64") ?,
- kernel.function("comp_sys_statfs64") ?
+ kernel.function("compat_sys_statfs64") ?
{
name = "statfs"
path = user_string($path)
}
probe syscall.statfs64.return =
kernel.function("sys_statfs64").return ?,
- kernel.function("comp_sys_statfs64").return ?
+ kernel.function("compat_sys_statfs64").return ?
{
name = "statfs"
retstr = returnstr(1)
retstr = returnstr(1)
}
+# tee _____________________________________________________
+#
+# long sys_tee(int fdin, int fdout, size_t len, unsigned int flags)
+#
+probe syscall.tee = kernel.function("sys_tee") ? {
+ name = "tee"
+ argstr = sprintf("%d, %d, %d, 0x%x", $fdin, $fdout, $len, $flags)
+}
+probe syscall.tee.return = kernel.function("sys_tee").return {
+ name = "tee"
+ retstr = returnstr(1)
+}
+
# tgkill _____________________________________________________
#
# asmlinkage long
retstr = returnstr(1)
}
+# timerfd ______________________________________________
+#
+# long sys_timerfd(int ufd, int clockid, int flags,
+# const struct itimerspec __user *utmr)
+# long compat_sys_timerfd(int ufd, int clockid, int flags,
+# const struct compat_itimerspec __user *utmr)
+#
+probe syscall.timerfd =
+ kernel.function("sys_timerfd") ?,
+ kernel.function("compat_sys_timerfd") ?
+{
+ name = "timerfd"
+ argstr = sprintf("%d, %d, 0x%x", $ufd, $clockid, $flags)
+}
+probe syscall.timerfd.return =
+ kernel.function("sys_timerfd").return ?,
+ kernel.function("compat_sys_timerfd").return ?
+{
+ name = "timerfd"
+ retstr = returnstr(1)
+}
+
# times ______________________________________________________
#
# long sys_times(struct tms __user * tbuf)
filename = user_string($filename)
buf_uaddr = $times
buf_str = _struct_utimbuf_u($times)
- argstr = sprintf("%s, [%s]", user_string_quoted($filename), buf_str)
+ argstr = sprintf("%s, %s", user_string_quoted($filename), buf_str)
}
probe syscall.utime.return = kernel.function("sys_utime").return ? {
name = "utime"
filename = user_string($filename)
buf_uaddr = $t
buf_str = _struct_compat_utimbuf_u($t)
- argstr = sprintf("%s, [%s]", user_string_quoted($filename), _struct_compat_utimbuf_u($t))
+ argstr = sprintf("%s, %s", user_string_quoted($filename), _struct_compat_utimbuf_u($t))
}
probe syscall.compat_utime.return = kernel.function("compat_sys_utime").return ? {
name = "utime"
probe syscall.utimensat = kernel.function("sys_utimensat") ? {
name = "utimensat"
argstr = sprintf("%s, %s, %s, %s", _dfd_str($dfd), user_string_quoted($filename), _struct_timespec_u($utimes,2),
- _utimensat_flag_str($flags))
+ _at_flag_str($flags))
}
probe syscall.compat_utimensat = kernel.function("compat_sys_utimensat") ? {
name = "utimensat"
argstr = sprintf("%s, %s, %s, %s", _dfd_str($dfd), user_string_quoted($filename), _struct_compat_timespec_u($utimes,2),
- _utimensat_flag_str($flags))
+ _at_flag_str($flags))
}
-probe syscall.utimensat.return =
- kernel.function("sys_utimensat").return ?,
- kernel.function("compat_sys_utimensat").return ?
-{
+probe syscall.utimensat.return = kernel.function("sys_utimensat").return ? {
+ name = "utimensat"
+ retstr = returnstr(1)
+}
+probe syscall.compat_utimensat.return = kernel.function("compat_sys_utimensat").return ? {
name = "utimensat"
retstr = returnstr(1)
}
retstr = returnstr(1)
}
+# vmsplice ___________________________________________________
+#
+# long sys_vmsplice(int fd, const struct iovec __user *iov,
+# unsigned long nr_segs, unsigned int flags)
+# long compat_sys_vmsplice(int fd, const struct compat_iovec __user *iov32,
+# unsigned int nr_segs, unsigned int flags)
+#
+probe syscall.vmsplice = kernel.function("sys_vmsplice") ? {
+ name = "vmsplice"
+ argstr = sprintf("%d, %p, %d, 0x%x", $fd, $iov, $nr_segs, $flags)
+}
+probe syscall.compat_vmsplice = kernel.function("compat_sys_vmsplice") ? {
+ name = "vmsplice"
+ argstr = sprintf("%d, %p, %d, 0x%x", $fd, $iov32, $nr_segs, $flags)
+}
+probe syscall.vmsplice.return = kernel.function("sys_vmsplice").return ? {
+ name = "vmsplice"
+ retstr = returnstr(1)
+}
+probe syscall.compat_vmsplice.return = kernel.function("compat_sys_vmsplice").return ? {
+ name = "vmsplice"
+ retstr = returnstr(1)
+}
+
# wait4 ______________________________________________________
#
# long sys_wait4(pid_t pid,