qemu/linux-user
Benjamin Herrenschmidt 9b2fadda3e ppc: Rework generation of priv and inval interrupts
Recent server processors use the Hypervisor Emulation Assistance
interrupt for illegal instructions and *some* type of SPR accesses.

Also the code was always generating inval instructions even for priv
violations due to setting the wrong flags

Finally, the checking for PR/HV was open coded everywhere.

This reworks it all, using little helper macros for checking, and
adding the HV interrupt (which gets converted back to program check
in the slow path of excp_helper.c on CPUs that don't want it).

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
[clg: fixed checkpatch.pl errors ]
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2016-06-23 12:43:54 +10:00
..
aarch64 linux-user: remove unavailable syscalls from aarch64 2016-02-23 21:25:10 +02:00
alpha linux-user: Support for restarting system calls for Alpha targets 2016-05-27 14:49:50 +03:00
arm linux-user: arm: Remove ARM_cpsr and similar #defines 2016-05-27 14:50:39 +03:00
cris linux-user: Support for restarting system calls for CRIS targets 2016-05-27 14:49:50 +03:00
host linux-user: provide frame information in x86-64 safe_syscall 2016-06-08 10:13:45 +03:00
i386 linux-user: correct timerfd_create syscall numbers 2016-02-23 21:25:10 +02:00
m68k linux-user: Support for restarting system calls for M68K targets 2016-05-27 14:49:50 +03:00
microblaze linux-user: Support for restarting system calls for Microblaze targets 2016-05-27 14:49:51 +03:00
mips linux-user: Support for restarting system calls for MIPS targets 2016-05-27 14:49:49 +03:00
mips64 linux-user: Support for restarting system calls for MIPS targets 2016-05-27 14:49:49 +03:00
openrisc linux-user: Support for restarting system calls for OpenRISC targets 2016-05-27 14:49:50 +03:00
ppc linux-user: Support for restarting system calls for PPC targets 2016-05-27 14:49:49 +03:00
s390x linux-user: Support for restarting system calls for S390 targets 2016-05-27 14:49:50 +03:00
sh4 linux-user: Support for restarting system calls for SH4 targets 2016-05-27 14:49:49 +03:00
sparc linux-user: Support for restarting system calls for SPARC targets 2016-05-27 14:49:49 +03:00
sparc64 linux-user: Support for restarting system calls for SPARC targets 2016-05-27 14:49:49 +03:00
tilegx linux-user: Support for restarting system calls for tilegx targets 2016-05-27 14:49:50 +03:00
unicore32 build: [linux-user] Rename "syscall.h" to "target_syscall.h" in target directories 2016-02-23 21:25:09 +02:00
x86_64 linux-user: correct timerfd_create syscall numbers 2016-02-23 21:25:10 +02:00
Makefile.objs linux-user: Provide safe_syscall for fixing races between signals and syscalls 2016-05-27 14:49:51 +03:00
elfload.c os-posix: include sys/mman.h 2016-06-16 18:39:03 +02:00
errno_defs.h linux-user: Renumber TARGET_QEMU_ESIGRETURN, make it not arch-specific 2016-05-27 14:49:49 +03: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 os-posix: include sys/mman.h 2016-06-16 18:39:03 +02:00
ioctls.h linux-user: Convert blkpg to use a special subop handler 2014-10-06 21:52:45 +03: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 linux-user: Clean up includes 2016-01-29 15:07:22 +00:00
m68k-sim.c linux-user: Clean up includes 2016-01-29 15:07:22 +00:00
main.c ppc: Rework generation of priv and inval interrupts 2016-06-23 12:43:54 +10:00
mmap.c os-posix: include sys/mman.h 2016-06-16 18:39:03 +02:00
qemu.h linux-user: Make target_strerror() return 'const char *' 2016-06-08 12:06:57 +03:00
safe-syscall.S linux-user: Provide safe_syscall for fixing races between signals and syscalls 2016-05-27 14:49:51 +03:00
signal.c coccinelle: Remove unnecessary variables for function return value 2016-06-20 16:38:13 +02:00
socket.h linux-user: support SO_PASSSEC setsockopt option 2014-06-29 14:19:59 +03:00
strace.c os-posix: include sys/mman.h 2016-06-16 18:39:03 +02:00
strace.list linux-user: add setns and unshare 2014-08-22 15:06:34 +03:00
syscall.c os-posix: include sys/mman.h 2016-06-16 18:39:03 +02:00
syscall_defs.h linux-user: Correct signedness of target_flock l_start and l_len fields 2016-06-08 12:06:50 +03:00
syscall_types.h linux-user: Convert blkpg to use a special subop handler 2014-10-06 21:52:45 +03:00
target_flat.h linux-user/FLAT: allow targets to override FLAT processing 2011-02-09 10:33:54 +02:00
trace-events trace: split out trace events for linux-user/ directory 2016-06-20 17:22:17 +01:00
uaccess.c util: move declarations out of qemu-common.h 2016-03-22 22:20:17 +01:00
uname.c linux-user: Clean up includes 2016-01-29 15:07:22 +00:00
uname.h linux-user: move uname functions to uname.c 2014-05-02 21:59:36 +03:00
vm86.c linux-user: Clean up includes 2016-01-29 15:07:22 +00:00