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/s390x/syscalls.stp | 65 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 50 insertions(+), 15 deletions(-) (limited to 'tapset/s390x') diff --git a/tapset/s390x/syscalls.stp b/tapset/s390x/syscalls.stp index b1804388..40a73fd5 100644 --- a/tapset/s390x/syscalls.stp +++ b/tapset/s390x/syscalls.stp @@ -1,22 +1,59 @@ +# S390-specific system calls + %(arch == "s390x" %? -# mmap - s390x version of the syscall.mmap probes +# getresgid __________________________________________________ +# long sys32_getresgid16(u16 __user *rgid, u16 __user *egid, u16 __user *sgid) +# +probe syscall.getresgid16 = kernel.function("sys32_getresgid16") ? +{ + name = "getresgid" + argstr = sprintf("%p, %p, %p", $rgid, $egid, $sgid) +} +probe syscall.getresgid16.return = kernel.function("sys32_getresgid16").return ? +{ + name = "getresgid" + retstr = returnstr(1) +} +# getresuid __________________________________________________ +# long sys32_getresuid16(u16 __user *ruid, u16 __user *euid, u16 __user *suid) +# +probe syscall.getresuid16 = kernel.function("sys32_getresuid16") ? +{ + name = "getresuid" + argstr = sprintf("%p, %p, %p", $ruid, $euid, $suid) +} +probe syscall.getresuid16.return = kernel.function("sys32_getresuid16").return ? +{ + name = "getresuid" + retstr = returnstr(1) +} + +# ipc _________________________________________________ +# long sys32_ipc(u32 call, int first, int second, int third, u32 ptr) # +probe syscall.ipc = kernel.function("sys32_ipc") ? { + name = "ipc" + argstr = sprintf("%d, %d, %d, %d, %p", $call, $first, $second, $third, $ptr) +} +probe syscall.ipc.return = kernel.function("sys_ipc").return ? { + name = "ipc" + retstr = returnstr(1) +} + +# mmap _________________________________________________ # long old_mmap(struct mmap_arg_struct __user *arg) # long old32_mmap(struct mmap_arg_struct_emu31 __user *arg) # - probe syscall.mmap = kernel.function("old_mmap"), kernel.function("old32_mmap") { name = "mmap" - if ( probefunc() == "old_mmap" ){ - argstr = get_mmap_args($arg); - }else{ - argstr = get_32mmap_args($arg); - } - + if (probefunc() == "old_mmap") + argstr = get_mmap_args($arg) + else + argstr = get_32mmap_args($arg) } probe syscall.mmap.return = kernel.function("old_mmap").return, @@ -27,7 +64,7 @@ probe syscall.mmap.return = kernel.function("old_mmap").return, } -# mmap2 - s390x version of the syscall.mmap2 probes +# mmap2 _________________________________________________ # # long sys_mmap2(struct mmap_arg_struct __user *arg) # long sys32_mmap2(struct mmap_arg_struct_emu31 __user *arg) @@ -37,12 +74,10 @@ probe syscall.mmap2 = kernel.function("sys_mmap2"), { name = "mmap2" - if ( probefunc() == "sys_mmap2" ){ - argstr = get_mmap_args($arg); - }else{ - argstr = get_32mmap_args($arg); - } - + if (probefunc() == "sys_mmap2") + argstr = get_mmap_args($arg) + else + argstr = get_32mmap_args($arg) } probe syscall.mmap2.return = kernel.function("sys_mmap2").return, -- cgit