Commit 60b196917f6e5cb58692b701a7e937ecc325dcfd

Authored by ths
1 parent 2a913eb1

linux-user: Add support for STOP/CONT signals.

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
Showing 1 changed file with 6 additions and 1 deletions
linux-user/signal.c
@@ -361,10 +361,15 @@ int queue_signal(CPUState *env, int sig, target_siginfo_t *info) @@ -361,10 +361,15 @@ int queue_signal(CPUState *env, int sig, target_siginfo_t *info)
361 k = &ts->sigtab[sig - 1]; 361 k = &ts->sigtab[sig - 1];
362 handler = sigact_table[sig - 1]._sa_handler; 362 handler = sigact_table[sig - 1]._sa_handler;
363 if (handler == TARGET_SIG_DFL) { 363 if (handler == TARGET_SIG_DFL) {
  364 + if (sig == TARGET_SIGTSTP || sig == TARGET_SIGTTIN || sig == TARGET_SIGTTOU) {
  365 + kill(getpid(),SIGSTOP);
  366 + return 0;
  367 + } else
364 /* default handler : ignore some signal. The other are fatal */ 368 /* default handler : ignore some signal. The other are fatal */
365 if (sig != TARGET_SIGCHLD && 369 if (sig != TARGET_SIGCHLD &&
366 sig != TARGET_SIGURG && 370 sig != TARGET_SIGURG &&
367 - sig != TARGET_SIGWINCH) { 371 + sig != TARGET_SIGWINCH &&
  372 + sig != TARGET_SIGCONT) {
368 force_sig(sig); 373 force_sig(sig);
369 } else { 374 } else {
370 return 0; /* indicate ignored */ 375 return 0; /* indicate ignored */