From a968ea63067cb079cbd1608804ec80c36026f0ab Mon Sep 17 00:00:00 2001 From: hunt Date: Tue, 31 Jul 2007 16:20:30 +0000 Subject: 2007-07-31 Martin Hunt * */syscalls.stp: Added mmap functions. Continued moving common compatibility functions to the main tapset. * aux_syscalls.stp (_shmat_flags_str): New. (__get_compat_argv): New. * syscalls.stp (adjtimex): Just print hex argument. (compat_adjtimex): New. (clock_getres): Also probe compat_clock_getres. (clock_gettime): Also probe compat funcs. (compat_clock_nanosleep): New. (compat_execve): New. (fstatat): New. (get[e][gu]id): Also probe sys32. (getsockopt): Make optional. Also probe compat. (mmap, mmap2): These are arch-specific, so move to individual architecture subdirs. (compat_sys_msgctl): New. (compat_sys_msgrcv): New. (compat_sys_msgsnd): New. * syscalls.stp (pread32): Remove. It calls pread64 . (quotactl): Make optional. (recv): Probe correct function. (recvfrom): Fix args. (compat_sys_recvmsg): New. (semctl): Make optional. (compat_sys_semctl): New. (semget): Make optional. (semop): Make optional. (semtimedop): Make optional. (compat_sys_semtimedop): New. (send): Make optional. (sendmsg): Make optional. (compat_sys_sendmsg): New. (sendto): Make optional. (setsockopt): Make optional. Add compat. (shmat): New. (compat_sys_shmat): New. (shmctl): New. (compat_sys_shmctl): New. (shmdt): New. (shmget): New. (shutdown): Make optional. (socket): Make optional. (socketpair): Make optional. (swapoff): Make optional. (swapon): Make optional. (sysctl): Add probe on sys32. --- tapset/i686/syscalls.stp | 66 +++++++++++++++++++++++++----------------------- 1 file changed, 34 insertions(+), 32 deletions(-) (limited to 'tapset/i686') diff --git a/tapset/i686/syscalls.stp b/tapset/i686/syscalls.stp index ad984075..1106ea3d 100644 --- a/tapset/i686/syscalls.stp +++ b/tapset/i686/syscalls.stp @@ -1,3 +1,7 @@ +# 32-bit x86-specific system calls +# These are typically defined in arch/i386 +# + # get_thread_area ____________________________________________ /* * asmlinkage int @@ -28,16 +32,9 @@ probe syscall.iopl.return = kernel.function("sys_iopl").return { } # ipc ________________________________________________________ -/* - * asmlinkage int - * sys_ipc(uint call, - * int first, - * int second, - * int third, - * void __user *ptr, - * long fifth) - */ -probe syscall.ipc = kernel.function("sys_ipc") { +# int sys_ipc (uint call, int first, int second, int third, void __user *ptr, long fifth) +# +probe syscall.ipc = kernel.function("sys_ipc") ? { name = "ipc" call = $call first = $first @@ -46,13 +43,38 @@ probe syscall.ipc = kernel.function("sys_ipc") { ptr_uaddr = $ptr fifth = $fifth argstr = sprintf("%d, %d, %d, %d, %p, %d", $call, $first, - $second, $third, ptr_uaddr, $fifth) + $second, $third, $ptr, $fifth) } -probe syscall.ipc.return = kernel.function("sys_ipc").return { +probe syscall.ipc.return = kernel.function("sys_ipc").return ? { name = "ipc" retstr = returnstr(1) } + +# mmap2 ____________________________________________ +# sys_mmap2(unsigned long addr, unsigned long len, +# unsigned long prot, unsigned long flags, +# unsigned long fd, unsigned long pgoff) +# +probe syscall.mmap2 = kernel.function("sys_mmap2") ? +{ + name = "mmap2" + start = $addr + length = $len + prot = $prot + flags = $flags + fd = $fd + pgoffset = $pgoff + argstr = sprintf("%p, %d, %s, %s, %d, %d", $addr, + $len, _mprotect_prot_str($prot), _mmap_flags($flags), + $fd, $pgoff) +} +probe syscall.mmap2.return = kernel.function("sys_mmap2").return ? +{ + name = "mmap2" + retstr = returnstr(2) +} + # set_thread_area ____________________________________________ /* * asmlinkage int @@ -91,26 +113,6 @@ probe syscall.set_zone_reclaim.return = retstr = returnstr(1) } %) -# shmat ______________________________________________________ -/* - * asmlinkage long - * sys_shmat(int shmid, - * char __user *shmaddr, - * int shmflg) - */ -probe syscall.shmat = - kernel.function("sys_shmat") { - name = "shmat" - shmid = $shmid - shmaddr_uaddr = $shmaddr - shmflg = $shmflg - argstr = sprintf("%d, %p, %d", $shmid, shmaddr_uaddr, $shmflg) -} -probe syscall.shmat.return = - kernel.function("sys_shmat").return { - name = "shmat" - retstr = returnstr(1) -} # sigaltstack ________________________________________________ # int sys_sigaltstack(unsigned long ebx) -- cgit