]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blob - include/asm-x86_64/sigcontext32.h
Linux-2.6.12-rc2
[mirror_ubuntu-artful-kernel.git] / include / asm-x86_64 / sigcontext32.h
1 #ifndef _SIGCONTEXT32_H
2 #define _SIGCONTEXT32_H 1
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[56];
44 };
45
46 struct sigcontext_ia32 {
47 unsigned short gs, __gsh;
48 unsigned short fs, __fsh;
49 unsigned short es, __esh;
50 unsigned short ds, __dsh;
51 unsigned int edi;
52 unsigned int esi;
53 unsigned int ebp;
54 unsigned int esp;
55 unsigned int ebx;
56 unsigned int edx;
57 unsigned int ecx;
58 unsigned int eax;
59 unsigned int trapno;
60 unsigned int err;
61 unsigned int eip;
62 unsigned short cs, __csh;
63 unsigned int eflags;
64 unsigned int esp_at_signal;
65 unsigned short ss, __ssh;
66 unsigned int fpstate; /* really (struct _fpstate_ia32 *) */
67 unsigned int oldmask;
68 unsigned int cr2;
69 };
70
71 #endif