Commit | Line | Data |
---|---|---|
123a6347 | 1 | #ifdef CONFIG_X86_32 |
a5c56eb3 HS |
2 | #define sigframe_ia32 sigframe |
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; | |
1da177e4 | 10 | int sig; |
a5c56eb3 | 11 | struct sigcontext_ia32 sc; |
3c1c7f10 SS |
12 | /* |
13 | * fpstate is unused. fpstate is moved/allocated after | |
14 | * retcode[] below. This movement allows to have the FP state and the | |
15 | * future state extensions (xsave) stay together. | |
16 | * And at the same time retaining the unused fpstate, prevents changing | |
17 | * the offset of extramask[] in the sigframe and thus prevent any | |
18 | * legacy application accessing/modifying it. | |
19 | */ | |
a5c56eb3 | 20 | struct _fpstate_ia32 fpstate_unused; |
1da177e4 LT |
21 | unsigned long extramask[_NSIG_WORDS-1]; |
22 | char retcode[8]; | |
3c1c7f10 | 23 | /* fp state follows here */ |
1da177e4 LT |
24 | }; |
25 | ||
a5c56eb3 HS |
26 | struct rt_sigframe_ia32 { |
27 | u32 pretcode; | |
1da177e4 | 28 | int sig; |
a5c56eb3 HS |
29 | u32 pinfo; |
30 | u32 puc; | |
1da177e4 | 31 | struct siginfo info; |
a5c56eb3 | 32 | struct ucontext_ia32 uc; |
1da177e4 | 33 | char retcode[8]; |
3c1c7f10 | 34 | /* fp state follows here */ |
1da177e4 | 35 | }; |
a5c56eb3 | 36 | #else /* !CONFIG_X86_32 */ |
123a6347 HH |
37 | struct rt_sigframe { |
38 | char __user *pretcode; | |
39 | struct ucontext uc; | |
40 | struct siginfo info; | |
3c1c7f10 | 41 | /* fp state follows here */ |
123a6347 | 42 | }; |
a5c56eb3 | 43 | #endif /* CONFIG_X86_32 */ |