x86, um: initial part of asm-um move
[pandora-kernel.git] / arch / x86 / include / asm / sigcontext32.h
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 */