qemu/linux-user
pbrook 0b1bcb00fb MIPS signal handling fixes.
Also fixes a register corruption bug in do_sigreturn. When "returning"
from sigreturn we are actually restoring the virtual cpu state from the
signal frame.  This is actually surprisingly hard to observe in practice.

Typically an thread be blocked in a FUTEX_WAIT call when the signal arrives,
so the effect is a spurious syscall success and the introduction of a
subtle race condition.

On x86/arm a syscall modifies a single word sized register, so
do_sigreturn can just return that value.  On MIPS a syscall clobbers
multiple registers, so we need additional smarts.  My solution is to
invent a magic errno value that means "don't touch CPU state".


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7194 c046a42c-6fe2-441c-8c8c-71466251a162
2009-04-21 01:41:10 +00:00
..
alpha Remove unnecessary trailing newlines 2008-12-13 09:32:43 +00:00
arm Remove unnecessary trailing newlines 2008-12-13 09:32:43 +00:00
cris CRIS: Add a bunch of syscall numbers. 2009-01-07 19:47:53 +00:00
i386 Remove unnecessary trailing newlines 2008-12-13 09:32:43 +00:00
m68k Remove unnecessary trailing newlines 2008-12-13 09:32:43 +00:00
mips MIPS signal handling fixes. 2009-04-21 01:41:10 +00:00
mips64 More efficient target register / TC accesses. 2008-06-27 10:02:35 +00:00
mipsn32 More efficient target register / TC accesses. 2008-06-27 10:02:35 +00:00
ppc Update FSF address in GPL/LGPL boilerplate 2009-01-04 22:05:52 +00:00
sh4 SH4: Signal handling for the user space emulator, by Magnus Damm. 2007-12-02 06:31:25 +00:00
sparc Remove unnecessary trailing newlines 2008-12-13 09:32:43 +00:00
sparc64 Remove unnecessary trailing newlines 2008-12-13 09:32:43 +00:00
x86_64 x86_64 linux user emulation 2007-11-14 18:08:56 +00:00
elfload32.c Remove unwanted executable properties 2008-04-06 06:04:39 +00:00
elfload.c Convert references to logfile/loglevel to use qemu_log*() macros 2009-01-15 22:34:14 +00:00
envlist.c linux-user: Add generic env variable handling 2009-01-30 19:59:17 +00:00
envlist.h linux-user: Add generic env variable handling 2009-01-30 19:59:17 +00:00
errno_defs.h Remove unnecessary trailing newlines 2008-12-13 09:32:43 +00:00
flat.h Support for 32 bit ABI on 64 bit targets (only enabled Sparc64) 2007-10-14 16:27:31 +00:00
flatload.c Fix more FSF addresses 2009-01-05 18:11:53 +00:00
ioctls.h Add MTIOCTOP, MTIOCGET and MTIOCPOS ioctls (Kirill Shutemov). 2008-09-20 03:03:09 +00:00
linux_loop.h Fix build failure with old kernel headers (loop.h is incompatible with 2008-05-23 16:06:43 +00:00
linuxload.c suppressed tgetx and tputx (initial patch by Thayne Harbaugh) 2007-11-16 10:46:05 +00:00
m68k-sim.c Fix more FSF addresses 2009-01-05 18:11:53 +00:00
main.c MIPS signal handling fixes. 2009-04-21 01:41:10 +00:00
mmap.c Partialy fix mmap at EOF for large pagesize targets in user-mode. 2009-02-03 23:06:34 +00:00
path.c linux-user: don't crash with null name 2009-01-30 19:48:07 +00:00
qemu-types.h linux-user: Move abi_* typedefs into qemu-types.h 2008-12-08 18:12:04 +00:00
qemu.h Translate signal values in exit status. 2009-04-16 15:17:02 +00:00
signal.c MIPS signal handling fixes. 2009-04-21 01:41:10 +00:00
socket.h Various linux-user structures and definitions fixes for PowerPC targets. 2007-12-10 08:24:59 +00:00
strace.c Use the ARRAY_SIZE() macro where appropriate. 2008-12-22 20:33:55 +00:00
strace.list linux-user: Added posix message queue syscalls except mq_notify 2009-04-15 16:11:43 +00:00
syscall_defs.h Fix target_siginfo ordering for MIPS. 2009-04-21 00:59:40 +00:00
syscall_types.h Add MTIOCTOP, MTIOCGET and MTIOCPOS ioctls (Kirill Shutemov). 2008-09-20 03:03:09 +00:00
syscall.c linux-user: Linux kernel's fchmodat and faccessat have three args (no 4th arg) 2009-04-19 08:52:17 +00:00
uaccess.c Suppress gcc 4.x -Wpointer-sign (included in -Wall) warnings 2008-09-20 08:07:15 +00:00
vm86.c Convert references to logfile/loglevel to use qemu_log*() macros 2009-01-15 22:34:14 +00:00