alpha-linux-user: Fix signal handling
Proper signal numbers were not defined, and EXCP_INTERRUPT was unhandled, leading to all sorts of subtle confusion. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <rth@twiddle.net>
This commit is contained in:
parent
161abfb5f9
commit
d0f204952a
@ -2921,6 +2921,9 @@ void cpu_loop(CPUAlphaState *env)
|
|||||||
case EXCP_STQ_C:
|
case EXCP_STQ_C:
|
||||||
do_store_exclusive(env, env->error_code, trapnr - EXCP_STL_C);
|
do_store_exclusive(env, env->error_code, trapnr - EXCP_STL_C);
|
||||||
break;
|
break;
|
||||||
|
case EXCP_INTERRUPT:
|
||||||
|
/* Just indicate that signals should be handled asap. */
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
printf ("Unhandled trap: 0x%x\n", trapnr);
|
printf ("Unhandled trap: 0x%x\n", trapnr);
|
||||||
cpu_dump_state(env, stderr, fprintf, 0);
|
cpu_dump_state(env, stderr, fprintf, 0);
|
||||||
|
@ -371,7 +371,46 @@ int do_sigaction(int sig, const struct target_sigaction *act,
|
|||||||
#define TARGET_SA_RESTORER 0x04000000
|
#define TARGET_SA_RESTORER 0x04000000
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(TARGET_SPARC)
|
#if defined(TARGET_ALPHA)
|
||||||
|
|
||||||
|
#define TARGET_SIGHUP 1
|
||||||
|
#define TARGET_SIGINT 2
|
||||||
|
#define TARGET_SIGQUIT 3
|
||||||
|
#define TARGET_SIGILL 4
|
||||||
|
#define TARGET_SIGTRAP 5
|
||||||
|
#define TARGET_SIGABRT 6
|
||||||
|
#define TARGET_SIGSTKFLT 7 /* actually SIGEMT */
|
||||||
|
#define TARGET_SIGFPE 8
|
||||||
|
#define TARGET_SIGKILL 9
|
||||||
|
#define TARGET_SIGBUS 10
|
||||||
|
#define TARGET_SIGSEGV 11
|
||||||
|
#define TARGET_SIGSYS 12
|
||||||
|
#define TARGET_SIGPIPE 13
|
||||||
|
#define TARGET_SIGALRM 14
|
||||||
|
#define TARGET_SIGTERM 15
|
||||||
|
#define TARGET_SIGURG 16
|
||||||
|
#define TARGET_SIGSTOP 17
|
||||||
|
#define TARGET_SIGTSTP 18
|
||||||
|
#define TARGET_SIGCONT 19
|
||||||
|
#define TARGET_SIGCHLD 20
|
||||||
|
#define TARGET_SIGTTIN 21
|
||||||
|
#define TARGET_SIGTTOU 22
|
||||||
|
#define TARGET_SIGIO 23
|
||||||
|
#define TARGET_SIGXCPU 24
|
||||||
|
#define TARGET_SIGXFSZ 25
|
||||||
|
#define TARGET_SIGVTALRM 26
|
||||||
|
#define TARGET_SIGPROF 27
|
||||||
|
#define TARGET_SIGWINCH 28
|
||||||
|
#define TARGET_SIGPWR 29 /* actually SIGINFO */
|
||||||
|
#define TARGET_SIGUSR1 30
|
||||||
|
#define TARGET_SIGUSR2 31
|
||||||
|
#define TARGET_SIGRTMIN 32
|
||||||
|
|
||||||
|
#define TARGET_SIG_BLOCK 1
|
||||||
|
#define TARGET_SIG_UNBLOCK 2
|
||||||
|
#define TARGET_SIG_SETMASK 3
|
||||||
|
|
||||||
|
#elif defined(TARGET_SPARC)
|
||||||
|
|
||||||
#define TARGET_SIGHUP 1
|
#define TARGET_SIGHUP 1
|
||||||
#define TARGET_SIGINT 2
|
#define TARGET_SIGINT 2
|
||||||
|
Loading…
Reference in New Issue
Block a user