sigcontext32.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:2k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. #ifndef _SIGCONTEXT32_H
  2. #define _SIGCONTEXT32_H 1
  3. /* signal context for 32bit programs. */
  4. #define X86_FXSR_MAGIC 0x0000
  5. struct _fpreg {
  6. unsigned short significand[4];
  7. unsigned short exponent;
  8. };
  9. struct _fpxreg {
  10. unsigned short significand[4];
  11. unsigned short exponent;
  12. unsigned short padding[3];
  13. };
  14. struct _xmmreg {
  15. __u32 element[4];
  16. };
  17. /* FSAVE frame with extensions */
  18. struct _fpstate_ia32 {
  19. /* Regular FPU environment */
  20. __u32  cw;
  21. __u32 sw;
  22. __u32 tag; /* not compatible to 64bit twd */
  23. __u32 ipoff;
  24. __u32 cssel;
  25. __u32 dataoff;
  26. __u32 datasel;
  27. struct _fpreg _st[8];
  28. unsigned short status;
  29. unsigned short magic; /* 0xffff = regular FPU data only */
  30. /* FXSR FPU environment */
  31. __u32 _fxsr_env[6];
  32. __u32 mxcsr;
  33. __u32 reserved;
  34. struct _fpxreg _fxsr_st[8];
  35. struct _xmmreg _xmm[8]; /* It's actually 16 */ 
  36. __u32 padding[56];
  37. };
  38. struct sigcontext_ia32 {
  39.        unsigned short gs, __gsh;
  40.        unsigned short fs, __fsh;
  41.        unsigned short es, __esh;
  42.        unsigned short ds, __dsh;
  43.        unsigned int edi;
  44.        unsigned int esi;
  45.        unsigned int ebp;
  46.        unsigned int esp;
  47.        unsigned int ebx;
  48.        unsigned int edx;
  49.        unsigned int ecx;
  50.        unsigned int eax;
  51.        unsigned int trapno;
  52.        unsigned int err;
  53.        unsigned int eip;
  54.        unsigned short cs, __csh;
  55.        unsigned int eflags;
  56.        unsigned int esp_at_signal;
  57.        unsigned short ss, __ssh;
  58.        unsigned int fpstate; /* really (struct _fpstate_ia32 *) */
  59.        unsigned int oldmask;
  60.        unsigned int cr2;
  61. };
  62. #endif