linux/include/asm-x86/sigcontext32.h
<<
>>
Prefs
   1#ifndef _SIGCONTEXT32_H
   2#define _SIGCONTEXT32_H 1
   3
   4/* signal context for 32bit programs. */
   5
   6#define X86_FXSR_MAGIC          0x0000
   7
   8struct _fpreg {
   9        unsigned short significand[4];
  10        unsigned short exponent;
  11};
  12
  13struct _fpxreg {
  14        unsigned short significand[4];
  15        unsigned short exponent;
  16        unsigned short padding[3];
  17};
  18
  19struct _xmmreg {
  20        __u32   element[4];
  21};
  22
  23/* FSAVE frame with extensions */
  24struct _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
  46struct 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