summary refs log tree commit diff stats
path: root/linux-user/signal.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Revert "Get rid of _t suffix"Anthony Liguori2009-10-011-123/+123
| | | | | | | | | | | | In the very least, a change like this requires discussion on the list. The naming convention is goofy and it causes a massive merge problem. Something like this _must_ be presented on the list first so people can provide input and cope with it. This reverts commit 99a0949b720a0936da2052cb9a46db04ffc6db29. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* Get rid of _t suffixmalc2009-10-011-123/+123
| | | | | | | Some not so obvious bits, slirp and Xen were left alone for the time being. Signed-off-by: malc <av1474@comtv.ru>
* m68k, linux-user: add setup_rt_frameLaurent Vivier2009-08-251-3/+202
| | | | | | | This patch implements setup_rt_frame(). Signed-off-by: Laurent Vivier <laurent@vivier.eu> Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
* m68k,linux-user: add setup_frameLaurent Vivier2009-08-251-0/+183
| | | | | | | | | | | | This patch adds signals management for linux-user. It implements setup_frame() which allows to call the user signal handler. setup_rt_frame() is always unimplemented. Signed-off-by: Laurent Vivier <laurent@vivier.eu> Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
* Fix most warnings (errors with -Werror) when debugging is enabledBlue Swirl2009-07-201-2/+2
| | | | | | | I used the following command to enable debugging: perl -p -i -e 's/^\/\/#define DEBUG/#define DEBUG/g' * */* */*/* Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* Avoid name clashes with symbols that leak from system headersmalc2009-07-181-4/+4
| | | | Signed-off-by: malc <av1474@comtv.ru>
* Update to a hopefully more future proof FSF addressBlue Swirl2009-07-161-3/+1
| | | | Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* MIPS signal handling fixPaul Brook2009-07-091-0/+2
| | | | | | Add explicit padding to MIPS signal frame structures. Signed-off-by: Paul Brook <paul@codesourcery.com>
* linux-user: implemented ELF coredump support for ARM targetMika Westerberg2009-06-161-3/+37
| | | | | | | | | | | | When target process is killed with signal (such signal that should dump core) a coredump file is created. This file is similar than coredump generated by Linux (there are few exceptions though). Riku Voipio: added support for rlimit Signed-off-by: Mika Westerberg <mika.westerberg@iki.fi> Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
* microblaze: linux-user support.Edgar E. Iglesias2009-05-261-0/+216
| | | | Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
* linux-user: ppc signal handlingNathan Froyd2009-05-161-0/+596
| | | | | | | | | Implement setup_{,rt_}frame and do_{,rt_}sigreturn for PPC 32-bit. Use the same TARGET_QEMU_ESIGRETURN hack as for MIPS to avoid clobbering register state on a sigreturn. Signed-off-by: Nathan Froyd <froydnj@codesourcery.com> Signed-off-by: malc <av1474@comtv.ru>
* MIPS signal handling fixes.pbrook2009-04-211-4/+101
| | | | | | | | | | | | | | | | | | 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
* Translate signal values in exit status.pbrook2009-04-161-1/+1
| | | | | | | Signed-off-by: Paul Brook <paul@codesourcery.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7131 c046a42c-6fe2-441c-8c8c-71466251a162
* linux-user: proper exit code for uncaught signalsaurel322009-04-151-12/+25
| | | | | | | | | | | | | | | | The proper exit code for dieing from an uncaught signal is -<signal>. The kernel doesn't allow exit() or _exit() to pass a negative value. To get the proper exit code we need to actually die from an uncaught signal. A default signal handler is installed, we send ourself a signal and we wait for it to arrive. Patch originates from Scratchbox Signed-off-by: Riku Voipio <riku.voipio@iki.fi> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7119 c046a42c-6fe2-441c-8c8c-71466251a162
* Use a dedicated function to request exit from execution loopaurel322009-03-071-1/+1
| | | | | | Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6762 c046a42c-6fe2-441c-8c8c-71466251a162
* The _exit syscall is used for both thread termination in NPTL applications,pbrook2009-03-071-1/+1
| | | | | | | | | | | | | and process termination in legacy applications. Try to guess which we want based on the presence of multiple threads. Also implement locking when modifying the CPU list. Signed-off-by: Paul Brook <paul@codesourcery.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6735 c046a42c-6fe2-441c-8c8c-71466251a162
* Replace noreturn with QEMU_NORETURNmalc2009-02-011-1/+1
| | | | | | | | Thanks to Robert Riebisch for analysis [1] [1] http://marc.info/?l=qemu-devel&m=123352293319271&w=2 git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6492 c046a42c-6fe2-441c-8c8c-71466251a162
* linux-user: fix signal.c warningaurel322009-01-301-4/+4
| | | | | | | | | | | | | | | | This patch fixes: linux-user/signal.c:1403: warning: no previous prototype for 'do_sigreturn_v1' linux-user/signal.c:1473: warning: no previous prototype for 'do_sigreturn_v2' linux-user/signal.c:1511: warning: no previous prototype for 'do_rt_sigreturn_v1' linux-user/signal.c:1552: warning: no previous prototype for 'do_rt_sigreturn_v2' by making the appropriate functions static. Signed-off-by: Nathan Froyd <froydnj@codesourcery.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6486 c046a42c-6fe2-441c-8c8c-71466251a162
* Add noreturn function attributeblueswir12009-01-141-1/+2
| | | | | | | | | | | | | | | | Introduce noreturn attribute and attach it to cpu_loop_exit as well as interrupt/exception helpers for i386. This avoids a bunch of gcc4 warnings. [ Note that this patch comes with a workaround to include qemu-common.h even in cases where is currently causes conflicts with dyngen-exec.h. I've been told that these conflicts will get resolved in the future (/me will try to have a look as well - as time permits). ] Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6303 c046a42c-6fe2-441c-8c8c-71466251a162
* Fix more FSF addressesblueswir12009-01-051-1/+2
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6192 c046a42c-6fe2-441c-8c8c-71466251a162
* Fix qemu endless loop when raising a SIGSEGV/SIGBUS signal with gdbstub in ↵aurel322009-01-031-2/+2
| | | | | | | | | | | | | | | | | | user emulation When a SIGSEGV signal is raised in user mode emulation the current test to know whether the signal is sent by the kernel is wrong : info->si_code == SI_KERNEL according to /usr/include/bits/siginfo.h it should be info->si_code > 0 Signed-off-by: Lionel Landwerlin <lionel.landwerlin@openwide.fr> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6151 c046a42c-6fe2-441c-8c8c-71466251a162
* User-mode GDB stub improvements - handle signalsaurel322008-12-181-16/+49
| | | | | | | | | | | | | Handle signals in the user-mode GDB stub. Report them to GDB, and allow it to change or cancel them. Also correct the protocol numbering; it happens to match Linux numbering for SIGINT and SIGTRAP, but that's just good fortune. Signed-off-by: Daniel Jacobowitz <dan@codesourcery.com> Acked-by: Edgar E. Iglesias <edgar.iglesias@gmail.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6096 c046a42c-6fe2-441c-8c8c-71466251a162
* linux-user: Add support for STOP/CONT signals.ths2008-11-271-1/+6
| | | | | | | 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
* linux-user: sig is target signal.ths2008-11-271-1/+1
| | | | | | | Signed-off-by: Riku Voipio <riku.voipio@iki.fi> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5801 c046a42c-6fe2-441c-8c8c-71466251a162
* CRIS: linux-user signals dont need ERP compensation after break anymore.edgar_igl2008-10-081-3/+0
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5450 c046a42c-6fe2-441c-8c8c-71466251a162
* Make target_sigaltstack_used staticblueswir12008-10-051-1/+1
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5428 c046a42c-6fe2-441c-8c8c-71466251a162
* Move offsetof to osdep.h, remove local defintions.balrog2008-09-161-4/+0
| | | | | | | | With this container_of can actually be used without causing build errors. Reformat container_of. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5234 c046a42c-6fe2-441c-8c8c-71466251a162
* Fix some warnings that would be generated by gcc -Wmissing-prototypesblueswir12008-08-171-2/+3
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5022 c046a42c-6fe2-441c-8c8c-71466251a162
* Fix a bunch of type mismatch-related warnings (Jan Kiszka).balrog2008-07-161-3/+3
| | | | | | | Fix a typo in my previous comming (spotted by Laurent Desnouges). git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4877 c046a42c-6fe2-441c-8c8c-71466251a162
* More efficient target register / TC accesses.ths2008-06-271-17/+17
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4794 c046a42c-6fe2-441c-8c8c-71466251a162
* Multithreaded locking fixes.pbrook2008-06-071-2/+2
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4692 c046a42c-6fe2-441c-8c8c-71466251a162
* Make signal queues per thread.pbrook2008-05-311-126/+131
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4635 c046a42c-6fe2-441c-8c8c-71466251a162
* Fix usermode build.pbrook2008-05-311-1/+1
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4634 c046a42c-6fe2-441c-8c8c-71466251a162
* Copy siginfo.si_code.pbrook2008-05-301-1/+1
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4632 c046a42c-6fe2-441c-8c8c-71466251a162
* Translate whole of target_sigset. Use host sigset accessors.pbrook2008-05-301-38/+30
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4631 c046a42c-6fe2-441c-8c8c-71466251a162
* Perform target->host signal mapping for *kill syscalls.pbrook2008-05-301-1/+5
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4625 c046a42c-6fe2-441c-8c8c-71466251a162
* Update ARM non-rt sigframe layout.pbrook2008-05-071-101/+165
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4385 c046a42c-6fe2-441c-8c8c-71466251a162
* Update ARM rt_frame layout.pbrook2008-05-061-14/+140
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4365 c046a42c-6fe2-441c-8c8c-71466251a162
* Fix Thumb signal handlers.pbrook2008-03-211-28/+3
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4089 c046a42c-6fe2-441c-8c8c-71466251a162
* CRIS signals:edgar_igl2008-03-031-57/+58
| | | | | | | | * Save $mof across signals. * Cleaned up frame accesses. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4012 c046a42c-6fe2-441c-8c8c-71466251a162
* First try at supporting ordinary signals for CRIS linux-user guests.edgar_igl2008-02-281-0/+172
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3999 c046a42c-6fe2-441c-8c8c-71466251a162
* Make MIPS MT implementation more cache friendly.ths2008-02-121-14/+14
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3981 c046a42c-6fe2-441c-8c8c-71466251a162
* SH4: Signal handling for the user space emulator, by Magnus Damm.ths2007-12-021-10/+311
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3764 c046a42c-6fe2-441c-8c8c-71466251a162
* fixed more invalid pointer usagebellard2007-11-111-48/+55
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3624 c046a42c-6fe2-441c-8c8c-71466251a162
* user access fixesbellard2007-11-111-55/+57
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3623 c046a42c-6fe2-441c-8c8c-71466251a162
* removed warnings - improved sparc32/64 signal frame setup - disabled x86 ↵bellard2007-11-111-59/+92
| | | | | | frame setup for x86_64 git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3608 c046a42c-6fe2-441c-8c8c-71466251a162
* removed warnings - fixed arm stack copy bugbellard2007-11-111-8/+19
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3593 c046a42c-6fe2-441c-8c8c-71466251a162
* Linux user memory access API change (initial patch by Thayne Harbaugh)bellard2007-11-111-106/+138
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3583 c046a42c-6fe2-441c-8c8c-71466251a162
* Clean out the N32 macros from target-mips, and introduce MIPS ABI specificths2007-11-081-3/+3
| | | | | | | defines for linux-user. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3556 c046a42c-6fe2-441c-8c8c-71466251a162
* removed obsolete x86 code copy supportbellard2007-11-081-5/+1
| | | | git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3551 c046a42c-6fe2-441c-8c8c-71466251a162