aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/include/asm/sigframe.h22
1 files changed, 20 insertions, 2 deletions
diff --git a/arch/x86/include/asm/sigframe.h b/arch/x86/include/asm/sigframe.h
index 6718ed04b05b..491a0878c3aa 100644
--- a/arch/x86/include/asm/sigframe.h
+++ b/arch/x86/include/asm/sigframe.h
@@ -4,7 +4,15 @@
4#define sigcontext_ia32 sigcontext 4#define sigcontext_ia32 sigcontext
5#define _fpstate_ia32 _fpstate 5#define _fpstate_ia32 _fpstate
6#define ucontext_ia32 ucontext 6#define ucontext_ia32 ucontext
7#else /* !CONFIG_X86_32 */
8
9#ifdef CONFIG_IA32_EMULATION
10#include <asm/ia32.h>
11#endif /* CONFIG_IA32_EMULATION */
12
13#endif /* CONFIG_X86_32 */
7 14
15#if defined(CONFIG_X86_32) || defined(CONFIG_IA32_EMULATION)
8struct sigframe_ia32 { 16struct sigframe_ia32 {
9 u32 pretcode; 17 u32 pretcode;
10 int sig; 18 int sig;
@@ -18,7 +26,11 @@ struct sigframe_ia32 {
18 * legacy application accessing/modifying it. 26 * legacy application accessing/modifying it.
19 */ 27 */
20 struct _fpstate_ia32 fpstate_unused; 28 struct _fpstate_ia32 fpstate_unused;
29#ifdef CONFIG_IA32_EMULATION
30 unsigned int extramask[_COMPAT_NSIG_WORDS-1];
31#else /* !CONFIG_IA32_EMULATION */
21 unsigned long extramask[_NSIG_WORDS-1]; 32 unsigned long extramask[_NSIG_WORDS-1];
33#endif /* CONFIG_IA32_EMULATION */
22 char retcode[8]; 34 char retcode[8];
23 /* fp state follows here */ 35 /* fp state follows here */
24}; 36};
@@ -28,16 +40,22 @@ struct rt_sigframe_ia32 {
28 int sig; 40 int sig;
29 u32 pinfo; 41 u32 pinfo;
30 u32 puc; 42 u32 puc;
43#ifdef CONFIG_IA32_EMULATION
44 compat_siginfo_t info;
45#else /* !CONFIG_IA32_EMULATION */
31 struct siginfo info; 46 struct siginfo info;
47#endif /* CONFIG_IA32_EMULATION */
32 struct ucontext_ia32 uc; 48 struct ucontext_ia32 uc;
33 char retcode[8]; 49 char retcode[8];
34 /* fp state follows here */ 50 /* fp state follows here */
35}; 51};
36#else /* !CONFIG_X86_32 */ 52#endif /* defined(CONFIG_X86_32) || defined(CONFIG_IA32_EMULATION) */
53
54#ifdef CONFIG_X86_64
37struct rt_sigframe { 55struct rt_sigframe {
38 char __user *pretcode; 56 char __user *pretcode;
39 struct ucontext uc; 57 struct ucontext uc;
40 struct siginfo info; 58 struct siginfo info;
41 /* fp state follows here */ 59 /* fp state follows here */
42}; 60};
43#endif /* CONFIG_X86_32 */ 61#endif /* CONFIG_X86_64 */