From be1487de1597bd3fe070d9edffdb6f66314c0535 Mon Sep 17 00:00:00 2001 From: zhaolei Date: Fri, 21 Sep 2007 06:53:27 +0000 Subject: 2007-09-21 Zhaolei From Lai Jiangshan * aux_syscalls.stp (_sys_open_flag_str): Fix bug that missing "O_ASYNC". From Lai Jiangshan * aux_syscalls.stp: Add a function _mremap_flags. * syscalls.stp (syscall.mremap): Use _mremap_flags instead of _mmap_flags. --- tapset/ChangeLog | 11 +++++++++++ tapset/aux_syscalls.stp | 9 +++++++++ tapset/syscalls.stp | 2 +- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/tapset/ChangeLog b/tapset/ChangeLog index 8c51f4d7..559664c5 100644 --- a/tapset/ChangeLog +++ b/tapset/ChangeLog @@ -1,3 +1,14 @@ +2007-09-21 Zhaolei + + From Lai Jiangshan + * aux_syscalls.stp (_sys_open_flag_str): Fix bug that missing + "O_ASYNC". + + From Lai Jiangshan + * aux_syscalls.stp: Add a function _mremap_flags. + * syscalls.stp (syscall.mremap): Use _mremap_flags instead of + _mmap_flags. + 2007-09-21 Zhaolei * aux_syscalls.stp(_reboot_magic_str) Fix the problem that diff --git a/tapset/aux_syscalls.stp b/tapset/aux_syscalls.stp index d2f53f37..fe16cac7 100644 --- a/tapset/aux_syscalls.stp +++ b/tapset/aux_syscalls.stp @@ -984,6 +984,9 @@ function _sys_open_flag_str:string (f:long) #ifdef O_ASYNC if (flags & O_ASYNC) strlcat (THIS->__retvalue, "|O_ASYNC", MAXSTRINGLEN); +#elif defined(FASYNC) + if (flags & FASYNC) + strlcat (THIS->__retvalue, "|O_ASYNC", MAXSTRINGLEN); #endif #ifdef O_DIRECT if (flags & O_DIRECT) @@ -1366,6 +1369,12 @@ function _mmap_flags(flags) { return substr(msg,0,strlen(msg)-1) } +function _mremap_flags(flags) { + if (flags & 1) msg="MREMAP_MAYMOVE|" + if (flags & 2) msg="MREMAP_FIXED|".msg + return substr(msg,0,strlen(msg)-1) +} + function _mprotect_prot_str(prot) { if (prot) { if(prot & 1) ps="PROT_READ|" diff --git a/tapset/syscalls.stp b/tapset/syscalls.stp index 0171a681..a66f3ed1 100644 --- a/tapset/syscalls.stp +++ b/tapset/syscalls.stp @@ -2563,7 +2563,7 @@ probe syscall.mremap = kernel.function("sys_mremap") ? { flags = $flags new_address = $new_addr argstr = sprintf("%p, %d, %d, %s, %p", $addr, $old_len, $new_len, - _mmap_flags($flags), $new_addr) + _mremap_flags($flags), $new_addr) } probe syscall.mremap.return = kernel.function("sys_mremap").return ? { name = "mremap" -- cgit