aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/kernel/sigframe.h28
1 files changed, 17 insertions, 11 deletions
diff --git a/arch/x86/kernel/sigframe.h b/arch/x86/kernel/sigframe.h
index 6dd7e2b70a4..6718ed04b05 100644
--- a/arch/x86/kernel/sigframe.h
+++ b/arch/x86/kernel/sigframe.h
@@ -1,8 +1,14 @@
1#ifdef CONFIG_X86_32 1#ifdef CONFIG_X86_32
2struct sigframe { 2#define sigframe_ia32 sigframe
3 char __user *pretcode; 3#define rt_sigframe_ia32 rt_sigframe
4#define sigcontext_ia32 sigcontext
5#define _fpstate_ia32 _fpstate
6#define ucontext_ia32 ucontext
7
8struct sigframe_ia32 {
9 u32 pretcode;
4 int sig; 10 int sig;
5 struct sigcontext sc; 11 struct sigcontext_ia32 sc;
6 /* 12 /*
7 * fpstate is unused. fpstate is moved/allocated after 13 * fpstate is unused. fpstate is moved/allocated after
8 * retcode[] below. This movement allows to have the FP state and the 14 * retcode[] below. This movement allows to have the FP state and the
@@ -11,27 +17,27 @@ struct sigframe {
11 * the offset of extramask[] in the sigframe and thus prevent any 17 * the offset of extramask[] in the sigframe and thus prevent any
12 * legacy application accessing/modifying it. 18 * legacy application accessing/modifying it.
13 */ 19 */
14 struct _fpstate fpstate_unused; 20 struct _fpstate_ia32 fpstate_unused;
15 unsigned long extramask[_NSIG_WORDS-1]; 21 unsigned long extramask[_NSIG_WORDS-1];
16 char retcode[8]; 22 char retcode[8];
17 /* fp state follows here */ 23 /* fp state follows here */
18}; 24};
19 25
20struct rt_sigframe { 26struct rt_sigframe_ia32 {
21 char __user *pretcode; 27 u32 pretcode;
22 int sig; 28 int sig;
23 struct siginfo __user *pinfo; 29 u32 pinfo;
24 void __user *puc; 30 u32 puc;
25 struct siginfo info; 31 struct siginfo info;
26 struct ucontext uc; 32 struct ucontext_ia32 uc;
27 char retcode[8]; 33 char retcode[8];
28 /* fp state follows here */ 34 /* fp state follows here */
29}; 35};
30#else 36#else /* !CONFIG_X86_32 */
31struct rt_sigframe { 37struct rt_sigframe {
32 char __user *pretcode; 38 char __user *pretcode;
33 struct ucontext uc; 39 struct ucontext uc;
34 struct siginfo info; 40 struct siginfo info;
35 /* fp state follows here */ 41 /* fp state follows here */
36}; 42};
37#endif 43#endif /* CONFIG_X86_32 */