From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1L4MdU-0006Hd-6v for qemu-devel@nongnu.org; Sun, 23 Nov 2008 16:36:56 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1L4MdT-0006HK-Qn for qemu-devel@nongnu.org; Sun, 23 Nov 2008 16:36:55 -0500 Received: from [199.232.76.173] (port=37396 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1L4MdT-0006HF-Hj for qemu-devel@nongnu.org; Sun, 23 Nov 2008 16:36:55 -0500 Received: from [84.20.150.76] (port=38850 helo=narury.org) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1L4MdS-0005TS-EN for qemu-devel@nongnu.org; Sun, 23 Nov 2008 16:36:54 -0500 Received: from kos.to (localhost.localdomain [127.0.0.1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by narury.org (Postfix) with ESMTP id 09B0C3274003 for ; Sun, 23 Nov 2008 23:36:49 +0200 (EET) Date: Sun, 23 Nov 2008 23:36:48 +0200 From: Riku Voipio Message-ID: <20081123213648.GA15878@kos.to> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Subject: [Qemu-devel] [PATCH] linux-user: Add support for STOP/CONT signals Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org When running qemu-user, you might want to be able to STOP and CONT the emulated process. Signed-off-by: Riku Voipio --- linux-user/signal.c | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-) diff --git a/linux-user/signal.c b/linux-user/signal.c index 1dd634f..cce4922 100644 --- a/linux-user/signal.c +++ b/linux-user/signal.c @@ -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 */ -- 1.5.6.5 -- "rm -rf" only sounds scary if you don't have backups