summaryrefslogtreecommitdiffstats
path: root/arch/x86/include/asm/sigframe.h
diff options
context:
space:
mode:
authorHiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>2008-12-17 18:51:08 -0800
committerIngo Molnar <mingo@elte.hu>2008-12-18 11:28:55 +0100
commitc85c2ff877c9305f801f7d5b9e6382cb05a03d45 (patch)
tree72709e75b6869c95c0bc3414e302e2e2c303db88 /arch/x86/include/asm/sigframe.h
parent41af86fad3c40646b9748279e3862781e937a5d2 (diff)
downloadlinux-0-day-c85c2ff877c9305f801f7d5b9e6382cb05a03d45.tar.gz
linux-0-day-c85c2ff877c9305f801f7d5b9e6382cb05a03d45.tar.xz
x86: signal: prepare to include from ia32_signal.c
Impact: cleanup, prepare to use from ia32_signal.c Make struct sigframe_ia32 and rt_sigframe_ia32 visible to ia32_signal.c. Signed-off-by: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/include/asm/sigframe.h')
-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 6718ed04b05bf..491a0878c3aa0 100644
--- a/arch/x86/include/asm/sigframe.h
+++ b/arch/x86/include/asm/sigframe.h
@@ -4,7 +4,15 @@
#define sigcontext_ia32 sigcontext
#define _fpstate_ia32 _fpstate
#define ucontext_ia32 ucontext
+#else /* !CONFIG_X86_32 */
+
+#ifdef CONFIG_IA32_EMULATION
+#include <asm/ia32.h>
+#endif /* CONFIG_IA32_EMULATION */
+
+#endif /* CONFIG_X86_32 */
+#if defined(CONFIG_X86_32) || defined(CONFIG_IA32_EMULATION)
struct sigframe_ia32 {
u32 pretcode;
int sig;
@@ -18,7 +26,11 @@ struct sigframe_ia32 {
* legacy application accessing/modifying it.
*/
struct _fpstate_ia32 fpstate_unused;
+#ifdef CONFIG_IA32_EMULATION
+ unsigned int extramask[_COMPAT_NSIG_WORDS-1];
+#else /* !CONFIG_IA32_EMULATION */
unsigned long extramask[_NSIG_WORDS-1];
+#endif /* CONFIG_IA32_EMULATION */
char retcode[8];
/* fp state follows here */
};
@@ -28,16 +40,22 @@ struct rt_sigframe_ia32 {
int sig;
u32 pinfo;
u32 puc;
+#ifdef CONFIG_IA32_EMULATION
+ compat_siginfo_t info;
+#else /* !CONFIG_IA32_EMULATION */
struct siginfo info;
+#endif /* CONFIG_IA32_EMULATION */
struct ucontext_ia32 uc;
char retcode[8];
/* fp state follows here */
};
-#else /* !CONFIG_X86_32 */
+#endif /* defined(CONFIG_X86_32) || defined(CONFIG_IA32_EMULATION) */
+
+#ifdef CONFIG_X86_64
struct rt_sigframe {
char __user *pretcode;
struct ucontext uc;
struct siginfo info;
/* fp state follows here */
};
-#endif /* CONFIG_X86_32 */
+#endif /* CONFIG_X86_64 */