]> granicus.if.org Git - strace/commitdiff
handle sigwait on svr4
authorJohn Hughes <john@Calva.COM>
Thu, 18 Oct 2001 14:48:26 +0000 (14:48 +0000)
committerJohn Hughes <john@Calva.COM>
Thu, 18 Oct 2001 14:48:26 +0000 (14:48 +0000)
ChangeLog
signal.c
svr4/dummy.h
svr4/syscall.h

index 930e8f0cac3a2bb11e27fa7240d3caa1ee0fba36..f0bf4b381f1a139ac11ebb2ac0b89b258e9b6ae8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2001-10-18  John Hughes  <john@Calva.COM>
+
+       * signal.c: handle sigwait
+       * svr4/dummy.c: Move sigwait to done
+       * svr4/syscall.h: handle sigwait
+
 2001-10-16  John Hughes  <john@Calva.COM>
 
        * system.c(sys_ssisys): decode some args for ssisys.
index d4c6293894cbcee6aa26b8eea87dd23cf4f19b55..df6470422a18604abd846e7a60ed5243eca7da36 100644 (file)
--- a/signal.c
+++ b/signal.c
@@ -1280,6 +1280,26 @@ struct tcb *tcp;
        return 0;
 }
 
+int sys_sigwait(tcp)
+struct tcb *tcp;
+{
+       sigset_t sigset;
+
+       if (entering(tcp)) {
+               if (copy_sigset(tcp, tcp->u_arg[0], &sigset) < 0)
+                       tprintf("[?]");
+               else
+                       printsigmask(&sigset, 0);
+       }
+       else {
+               if (!syserror(tcp)) {
+                       tcp->auxstr = signalent[tcp->u_rval];
+                       return RVAL_DECIMAL | RVAL_STR;
+               }
+       }
+       return 0;
+}
+
 #ifdef LINUX
 
        int
index 6a12cd5d9143302a0d1bb6d629bfd859f711bb4c..d1a5e542b7c7f9a4e49a1c1e679a723956eb5ced 100644 (file)
 #define sys_unblock printargs
 #define sys_cancelblock printargs
 #define sys_lwpkill printargs
-#define sys_sigwait printargs
 #define sys_modload printargs
 #define sys_moduload printargs
 #define sys_modpath printargs
 #define sys_kaio printargs
 
 #if DONE
+#define sys_sigwait printargs
 #define sys_mount printargs
 #define sys_sysinfo printargs
 #define sys_sysconfig printargs
index 22b55f12a37f0492a699de3a137f187b98c8a134..b06f3052536cdfad3a98583943d5f0118719e041 100644 (file)
@@ -305,6 +305,7 @@ extern int sys_aclipc();
 extern int sys_door();
 #endif
 #if UNIXWARE >= 2
+extern int sys_sigwait();
 extern int sys_truncate();
 extern int sys_ftruncate();
 extern int sys_getksym ();