~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux/include/asm-i386/sigcontext.h

Version: ~ [ 2.4.0 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 #ifndef _ASMi386_SIGCONTEXT_H
  2 #define _ASMi386_SIGCONTEXT_H
  3 
  4 /*
  5  * As documented in the iBCS2 standard..
  6  *
  7  * The first part of "struct _fpstate" is just the normal i387
  8  * hardware setup, the extra "status" word is used to save the
  9  * coprocessor status word before entering the handler.
 10  *
 11  * Pentium III FXSR, SSE support
 12  *      Gareth Hughes <gareth@valinux.com>, May 2000
 13  *
 14  * The FPU state data structure has had to grow to accomodate the
 15  * extended FPU state required by the Streaming SIMD Extensions.
 16  * There is no documented standard to accomplish this at the moment.
 17  */
 18 struct _fpreg {
 19         unsigned short significand[4];
 20         unsigned short exponent;
 21 };
 22 
 23 struct _fpxreg {
 24         unsigned short significand[4];
 25         unsigned short exponent;
 26         unsigned short padding[3];
 27 };
 28 
 29 struct _xmmreg {
 30         unsigned long element[4];
 31 };
 32 
 33 struct _fpstate {
 34         /* Regular FPU environment */
 35         unsigned long   cw;
 36         unsigned long   sw;
 37         unsigned long   tag;
 38         unsigned long   ipoff;
 39         unsigned long   cssel;
 40         unsigned long   dataoff;
 41         unsigned long   datasel;
 42         struct _fpreg   _st[8];
 43         unsigned short  status;
 44         unsigned short  magic;          /* 0xffff = regular FPU data only */
 45 
 46         /* FXSR FPU environment */
 47         unsigned long   _fxsr_env[6];   /* FXSR FPU env is ignored */
 48         unsigned long   mxcsr;
 49         unsigned long   reserved;
 50         struct _fpxreg  _fxsr_st[8];    /* FXSR FPU reg data is ignored */
 51         struct _xmmreg  _xmm[8];
 52         unsigned long   padding[56];
 53 };
 54 
 55 #define X86_FXSR_MAGIC          0x0000
 56 
 57 struct sigcontext {
 58         unsigned short gs, __gsh;
 59         unsigned short fs, __fsh;
 60         unsigned short es, __esh;
 61         unsigned short ds, __dsh;
 62         unsigned long edi;
 63         unsigned long esi;
 64         unsigned long ebp;
 65         unsigned long esp;
 66         unsigned long ebx;
 67         unsigned long edx;
 68         unsigned long ecx;
 69         unsigned long eax;
 70         unsigned long trapno;
 71         unsigned long err;
 72         unsigned long eip;
 73         unsigned short cs, __csh;
 74         unsigned long eflags;
 75         unsigned long esp_at_signal;
 76         unsigned short ss, __ssh;
 77         struct _fpstate * fpstate;
 78         unsigned long oldmask;
 79         unsigned long cr2;
 80 };
 81 
 82 
 83 #endif
 84 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.