linux-user: Add support for STOP/CONT signals.
authorths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>
Thu, 27 Nov 2008 15:47:15 +0000 (15:47 +0000)
committerths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>
Thu, 27 Nov 2008 15:47:15 +0000 (15:47 +0000)
Signed-off-by: Riku Voipio <riku.voipio@iki.fi>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5802 c046a42c-6fe2-441c-8c8c-71466251a162

linux-user/signal.c

index 0a8d7aa..e0f6aaf 100644 (file)
@@ -361,10 +361,15 @@ int queue_signal(CPUState *env, int sig, target_siginfo_t *info)
     k = &ts->sigtab[sig - 1];
     handler = sigact_table[sig - 1]._sa_handler;
     if (handler == TARGET_SIG_DFL) {
+        if (sig == TARGET_SIGTSTP || sig == TARGET_SIGTTIN || sig == TARGET_SIGTTOU) {
+            kill(getpid(),SIGSTOP);
+            return 0;
+        } else
         /* default handler : ignore some signal. The other are fatal */
         if (sig != TARGET_SIGCHLD &&
             sig != TARGET_SIGURG &&
-            sig != TARGET_SIGWINCH) {
+            sig != TARGET_SIGWINCH &&
+            sig != TARGET_SIGCONT) {
             force_sig(sig);
         } else {
             return 0; /* indicate ignored */