diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2008-08-17 21:05:42 -0400 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2008-10-23 01:55:20 -0400 |
commit | bb8985586b7a906e116db835c64773b7a7d51663 (patch) | |
tree | de93ae58e88cc563d95cc124a73f3930594c6100 /arch/x86/include/asm/sigcontext32.h | |
parent | 8ede0bdb63305d3353efd97e9af6210afb05734e (diff) |
x86, um: ... and asm-x86 move
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'arch/x86/include/asm/sigcontext32.h')
-rw-r--r-- | arch/x86/include/asm/sigcontext32.h | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/arch/x86/include/asm/sigcontext32.h b/arch/x86/include/asm/sigcontext32.h new file mode 100644 index 000000000000..8c347032c2f2 --- /dev/null +++ b/arch/x86/include/asm/sigcontext32.h | |||
@@ -0,0 +1,75 @@ | |||
1 | #ifndef ASM_X86__SIGCONTEXT32_H | ||
2 | #define ASM_X86__SIGCONTEXT32_H | ||
3 | |||
4 | /* signal context for 32bit programs. */ | ||
5 | |||
6 | #define X86_FXSR_MAGIC 0x0000 | ||
7 | |||
8 | struct _fpreg { | ||
9 | unsigned short significand[4]; | ||
10 | unsigned short exponent; | ||
11 | }; | ||
12 | |||
13 | struct _fpxreg { | ||
14 | unsigned short significand[4]; | ||
15 | unsigned short exponent; | ||
16 | unsigned short padding[3]; | ||
17 | }; | ||
18 | |||
19 | struct _xmmreg { | ||
20 | __u32 element[4]; | ||
21 | }; | ||
22 | |||
23 | /* FSAVE frame with extensions */ | ||
24 | struct _fpstate_ia32 { | ||
25 | /* Regular FPU environment */ | ||
26 | __u32 cw; | ||
27 | __u32 sw; | ||
28 | __u32 tag; /* not compatible to 64bit twd */ | ||
29 | __u32 ipoff; | ||
30 | __u32 cssel; | ||
31 | __u32 dataoff; | ||
32 | __u32 datasel; | ||
33 | struct _fpreg _st[8]; | ||
34 | unsigned short status; | ||
35 | unsigned short magic; /* 0xffff = regular FPU data only */ | ||
36 | |||
37 | /* FXSR FPU environment */ | ||
38 | __u32 _fxsr_env[6]; | ||
39 | __u32 mxcsr; | ||
40 | __u32 reserved; | ||
41 | struct _fpxreg _fxsr_st[8]; | ||
42 | struct _xmmreg _xmm[8]; /* It's actually 16 */ | ||
43 | __u32 padding[44]; | ||
44 | union { | ||
45 | __u32 padding2[12]; | ||
46 | struct _fpx_sw_bytes sw_reserved; | ||
47 | }; | ||
48 | }; | ||
49 | |||
50 | struct sigcontext_ia32 { | ||
51 | unsigned short gs, __gsh; | ||
52 | unsigned short fs, __fsh; | ||
53 | unsigned short es, __esh; | ||
54 | unsigned short ds, __dsh; | ||
55 | unsigned int di; | ||
56 | unsigned int si; | ||
57 | unsigned int bp; | ||
58 | unsigned int sp; | ||
59 | unsigned int bx; | ||
60 | unsigned int dx; | ||
61 | unsigned int cx; | ||
62 | unsigned int ax; | ||
63 | unsigned int trapno; | ||
64 | unsigned int err; | ||
65 | unsigned int ip; | ||
66 | unsigned short cs, __csh; | ||
67 | unsigned int flags; | ||
68 | unsigned int sp_at_signal; | ||
69 | unsigned short ss, __ssh; | ||
70 | unsigned int fpstate; /* really (struct _fpstate_ia32 *) */ | ||
71 | unsigned int oldmask; | ||
72 | unsigned int cr2; | ||
73 | }; | ||
74 | |||
75 | #endif /* ASM_X86__SIGCONTEXT32_H */ | ||