aboutsummaryrefslogtreecommitdiff
path: root/linux-user/ppc
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2016-08-03 22:38:51 +1000
committerDavid Gibson <david@gibson.dropbear.id.au>2016-09-23 10:29:40 +1000
commit95cda4c44ee2ae8616b2f9d8a2d68882cf437859 (patch)
treeec6ab3158b21ede4c1f43cbe398c17640d42e2c2 /linux-user/ppc
parentab04543602b7fa8fbc33401c66f071ae4570da04 (diff)
downloadqemu-95cda4c44ee2ae8616b2f9d8a2d68882cf437859.zip
qemu-95cda4c44ee2ae8616b2f9d8a2d68882cf437859.tar.gz
qemu-95cda4c44ee2ae8616b2f9d8a2d68882cf437859.tar.bz2
ppc: Fix signal delivery in ppc-user and ppc64-user
There were a number of bugs in the implementation: - The structure alignment was wrong for 64-bit. - Also 64-bit only does RT signals. - On 64-bit, we need to put a pointer to the (aligned) vector registers in the frame and use it for restoring - We had endian bugs when saving/restoring vector registers - My recent fixes for exception NIP broke sigreturn in user mode causing us to resume one instruction too far. - Add VSR second halves Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'linux-user/ppc')
-rw-r--r--linux-user/ppc/syscall_nr.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/linux-user/ppc/syscall_nr.h b/linux-user/ppc/syscall_nr.h
index 46ed8a6..afa3654 100644
--- a/linux-user/ppc/syscall_nr.h
+++ b/linux-user/ppc/syscall_nr.h
@@ -120,7 +120,9 @@
#define TARGET_NR_sysinfo 116
#define TARGET_NR_ipc 117
#define TARGET_NR_fsync 118
+#if !defined(TARGET_PPC64)
#define TARGET_NR_sigreturn 119
+#endif
#define TARGET_NR_clone 120
#define TARGET_NR_setdomainname 121
#define TARGET_NR_uname 122