]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Fix the sigsuspend wrapper - the existing implementation was totally
authorTom Hughes <tom@compton.nu>
Sun, 14 Nov 2004 19:44:25 +0000 (19:44 +0000)
committerTom Hughes <tom@compton.nu>
Sun, 14 Nov 2004 19:44:25 +0000 (19:44 +0000)
bogus. Also checked the rt_sigsuspend wrapper, which does seem to be
correct.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2997

coregrind/vg_syscalls.c

index 952002e0855773d69470ad967bc5a830ae1cd7c1..f34016d57f051aaee107659a2807a8f4892e2b16 100644 (file)
@@ -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) {