aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2007-02-12 20:31:48 -0500
committerRalf Baechle <ralf@linux-mips.org>2007-02-13 17:40:50 -0500
commit66680583461d7cae281cef63c050c9b6371e3286 (patch)
tree4aaafd553e821775206d4cf0cd0720a98dcd33e2 /arch
parent205d84aaea380bbd1cc1079d44086cd50c2c2dad (diff)
[MIPS] signal: Move sigframe definition for native O32/N64 into signal.c
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/mips/kernel/signal-common.h26
-rw-r--r--arch/mips/kernel/signal.c20
2 files changed, 20 insertions, 26 deletions
diff --git a/arch/mips/kernel/signal-common.h b/arch/mips/kernel/signal-common.h
index d9a832f67e8a..b95e542ace27 100644
--- a/arch/mips/kernel/signal-common.h
+++ b/arch/mips/kernel/signal-common.h
@@ -20,32 +20,6 @@
20#endif 20#endif
21 21
22/* 22/*
23 * Horribly complicated - with the bloody RM9000 workarounds enabled
24 * the signal trampolines is moving to the end of the structure so we can
25 * increase the alignment without breaking software compatibility.
26 */
27#if ICACHE_REFILLS_WORKAROUND_WAR == 0
28
29struct sigframe {
30 u32 sf_ass[4]; /* argument save space for o32 */
31 u32 sf_code[2]; /* signal trampoline */
32 struct sigcontext sf_sc;
33 sigset_t sf_mask;
34};
35
36#else /* ICACHE_REFILLS_WORKAROUND_WAR */
37
38struct sigframe {
39 u32 sf_ass[4]; /* argument save space for o32 */
40 u32 sf_pad[2];
41 struct sigcontext sf_sc; /* hw context */
42 sigset_t sf_mask;
43 u32 sf_code[8] ____cacheline_aligned; /* signal trampoline */
44};
45
46#endif /* !ICACHE_REFILLS_WORKAROUND_WAR */
47
48/*
49 * Determine which stack to use.. 23 * Determine which stack to use..
50 */ 24 */
51extern void __user *get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, 25extern void __user *get_sigframe(struct k_sigaction *ka, struct pt_regs *regs,
diff --git a/arch/mips/kernel/signal.c b/arch/mips/kernel/signal.c
index 54398af2371f..e7b04928caec 100644
--- a/arch/mips/kernel/signal.c
+++ b/arch/mips/kernel/signal.c
@@ -36,8 +36,20 @@
36 36
37#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) 37#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP)))
38 38
39/*
40 * Horribly complicated - with the bloody RM9000 workarounds enabled
41 * the signal trampolines is moving to the end of the structure so we can
42 * increase the alignment without breaking software compatibility.
43 */
39#if ICACHE_REFILLS_WORKAROUND_WAR == 0 44#if ICACHE_REFILLS_WORKAROUND_WAR == 0
40 45
46struct sigframe {
47 u32 sf_ass[4]; /* argument save space for o32 */
48 u32 sf_code[2]; /* signal trampoline */
49 struct sigcontext sf_sc;
50 sigset_t sf_mask;
51};
52
41struct rt_sigframe { 53struct rt_sigframe {
42 u32 rs_ass[4]; /* argument save space for o32 */ 54 u32 rs_ass[4]; /* argument save space for o32 */
43 u32 rs_code[2]; /* signal trampoline */ 55 u32 rs_code[2]; /* signal trampoline */
@@ -47,6 +59,14 @@ struct rt_sigframe {
47 59
48#else 60#else
49 61
62struct sigframe {
63 u32 sf_ass[4]; /* argument save space for o32 */
64 u32 sf_pad[2];
65 struct sigcontext sf_sc; /* hw context */
66 sigset_t sf_mask;
67 u32 sf_code[8] ____cacheline_aligned; /* signal trampoline */
68};
69
50struct rt_sigframe { 70struct rt_sigframe {
51 u32 rs_ass[4]; /* argument save space for o32 */ 71 u32 rs_ass[4]; /* argument save space for o32 */
52 u32 rs_pad[2]; 72 u32 rs_pad[2];