[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 01/10] alpha-linux-user: Fix signal handling
From: |
Richard Henderson |
Subject: |
[Qemu-devel] [PATCH 01/10] alpha-linux-user: Fix signal handling |
Date: |
Fri, 3 Aug 2012 15:40:48 -0700 |
Proper signal numbers were not defined, and EXCP_INTERRUPT
was unhandled, leading to all sorts of subtle confusion.
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
---
linux-user/main.c | 3 +++
linux-user/syscall_defs.h | 41 ++++++++++++++++++++++++++++++++++++++++-
2 files changed, 43 insertions(+), 1 deletions(-)
diff --git a/linux-user/main.c b/linux-user/main.c
index 25eaa11..a21942c 100644
--- a/linux-user/main.c
+++ b/linux-user/main.c
@@ -2921,6 +2921,9 @@ void cpu_loop(CPUAlphaState *env)
case EXCP_STQ_C:
do_store_exclusive(env, env->error_code, trapnr - EXCP_STL_C);
break;
+ case EXCP_INTERRUPT:
+ /* Just indicate that signals should be handled asap. */
+ break;
default:
printf ("Unhandled trap: 0x%x\n", trapnr);
cpu_dump_state(env, stderr, fprintf, 0);
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index cfece21..308831f 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -371,7 +371,46 @@ int do_sigaction(int sig, const struct target_sigaction
*act,
#define TARGET_SA_RESTORER 0x04000000
#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_SIGINT 2
--
1.7.7.6
- [Qemu-devel] [PATCH v5 00/10] {alpha-}linux user improvements, Richard Henderson, 2012/08/03
- [Qemu-devel] [PATCH 01/10] alpha-linux-user: Fix signal handling,
Richard Henderson <=
- [Qemu-devel] [PATCH 02/10] alpha-linux-user: Work around hosted mmap allocation problems, Richard Henderson, 2012/08/03
- [Qemu-devel] [PATCH 03/10] alpha-linux-user: Handle TARGET_SSI_IEEE_RAISE_EXCEPTION properly, Richard Henderson, 2012/08/03
- [Qemu-devel] [PATCH 05/10] linux-user: Handle O_SYNC, O_NOATIME, O_CLOEXEC, O_PATH, Richard Henderson, 2012/08/03
- [Qemu-devel] [PATCH 04/10] linux-user: Sync fcntl.h bits with the kernel, Richard Henderson, 2012/08/03
- [Qemu-devel] [PATCH 06/10] linux-user: Allocate the right amount of space for non-fixed file maps, Richard Henderson, 2012/08/03
- [Qemu-devel] [PATCH 08/10] alpha-linux-user: Fix a3 error return with v0 error bypass., Richard Henderson, 2012/08/03
- [Qemu-devel] [PATCH 07/10] linux-user: Translate pipe2 flags; add to strace, Richard Henderson, 2012/08/03
- [Qemu-devel] [PATCH 09/10] alpha-linux-user: Properly handle the non-rt sigprocmask syscall., Richard Henderson, 2012/08/03
- [Qemu-devel] [PATCH 10/10] alpha-linux-user: Fix the getpriority syscall, Richard Henderson, 2012/08/03
- Re: [Qemu-devel] [PATCH v5 00/10] {alpha-}linux user improvements, Blue Swirl, 2012/08/04