From: Tom Hughes Date: Sun, 14 Nov 2004 19:44:25 +0000 (+0000) Subject: Fix the sigsuspend wrapper - the existing implementation was totally X-Git-Tag: svn/VALGRIND_3_0_0~1315 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c817c6bfaf9ca4d9a3297decf2ea5cf77689dfc8;p=thirdparty%2Fvalgrind.git Fix the sigsuspend wrapper - the existing implementation was totally bogus. Also checked the rt_sigsuspend wrapper, which does seem to be correct. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2997 --- diff --git a/coregrind/vg_syscalls.c b/coregrind/vg_syscalls.c index 952002e085..f34016d57f 100644 --- a/coregrind/vg_syscalls.c +++ b/coregrind/vg_syscalls.c @@ -5710,24 +5710,15 @@ PREx(sys_pause, MayBlock) // XXX: x86-specific PREx(sys_sigsuspend, MayBlock) { - // XXX: is this right? sys_sigsuspend prototype looks like this: - // - // int sys_sigsuspend(int history0, int history1, old_sigset_t mask) - // - PRINT("sys_sigsuspend ( %p )", arg1 ); - PRE_REG_READ1(int, "sigsuspend", // XXX: is this right? + PRINT("sys_sigsuspend ( %d, %d, %d )", arg1,arg2,arg3 ); + PRE_REG_READ3(int, "sigsuspend", + int, history0, int, history1, vki_old_sigset_t, mask); - if (arg1 != (Addr)NULL) { - PRE_MEM_READ( "sigsuspend(mask)", arg1, sizeof(vki_old_sigset_t) ); - } } // XXX: x86-specific PREx(sys_rt_sigsuspend, MayBlock) { - // XXX: is this right? sys_rt_sigsuspend prototype looks like this: - // - // int sys_rt_sigsuspend(struct pt_regs regs) PRINT("sys_rt_sigsuspend ( %p, %d )", arg1,arg2 ); PRE_REG_READ2(int, "rt_sigsuspend", vki_sigset_t *, mask, vki_size_t, size) if (arg1 != (Addr)NULL) {