diff options
-rw-r--r-- | arch/x86/kernel/sigframe.h | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/arch/x86/kernel/sigframe.h b/arch/x86/kernel/sigframe.h index 6dd7e2b70a4b..6718ed04b05b 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 |
2 | struct 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 | |||
8 | struct 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 | ||
20 | struct rt_sigframe { | 26 | struct 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 */ |
31 | struct rt_sigframe { | 37 | struct 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 */ |