Home | History | Annotate | Download | only in asm
      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
     72