aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel/signal-common.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/kernel/signal-common.h')
-rw-r--r--arch/mips/kernel/signal-common.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/arch/mips/kernel/signal-common.h b/arch/mips/kernel/signal-common.h
index 03d2b603fb84..6700bde06053 100644
--- a/arch/mips/kernel/signal-common.h
+++ b/arch/mips/kernel/signal-common.h
@@ -12,6 +12,32 @@
12#define __SIGNAL_COMMON_H 12#define __SIGNAL_COMMON_H
13 13
14/* 14/*
15 * Horribly complicated - with the bloody RM9000 workarounds enabled
16 * the signal trampolines is moving to the end of the structure so we can
17 * increase the alignment without breaking software compatibility.
18 */
19#if ICACHE_REFILLS_WORKAROUND_WAR == 0
20
21struct sigframe {
22 u32 sf_ass[4]; /* argument save space for o32 */
23 u32 sf_code[2]; /* signal trampoline */
24 struct sigcontext sf_sc;
25 sigset_t sf_mask;
26};
27
28#else /* ICACHE_REFILLS_WORKAROUND_WAR */
29
30struct sigframe {
31 u32 sf_ass[4]; /* argument save space for o32 */
32 u32 sf_pad[2];
33 struct sigcontext sf_sc; /* hw context */
34 sigset_t sf_mask;
35 u32 sf_code[8] ____cacheline_aligned; /* signal trampoline */
36};
37
38#endif /* !ICACHE_REFILLS_WORKAROUND_WAR */
39
40/*
15 * handle hardware context 41 * handle hardware context
16 */ 42 */
17extern int setup_sigcontext(struct pt_regs *, struct sigcontext __user *); 43extern int setup_sigcontext(struct pt_regs *, struct sigcontext __user *);