sighndh.inc 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. {
  2. This file is part of the Free Pascal run time library.
  3. Copyright (c) 1999-2000 by Jonas Maebe,
  4. member of the Free Pascal development team.
  5. Sigcontext and Sigaction
  6. See the file COPYING.FPC, included in this distribution,
  7. for details about the copyright.
  8. This program is distributed in the hope that it will be useful,
  9. but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  11. **********************************************************************}
  12. {$packrecords C}
  13. { sparc v8 definition }
  14. const
  15. SPARC_MAXREGWINDOW = 31;
  16. _NGREG = 19;
  17. type
  18. {$ifdef cpu64}
  19. TGReg = clong;
  20. {$else}
  21. TGReg = cint;
  22. {$endif}
  23. TGRegSet = array[0.._NGREG-1] of TGReg;
  24. PSPBuf = ^TSPBuf;
  25. TSPBuf = array[0..SPARC_MAXREGWINDOW-1] of TGReg;
  26. TRWindow = record
  27. rw_local : array[0..7] of TGReg;
  28. rw_in : array[0..7] of TGReg;
  29. end;
  30. PGWindows = ^TGWindows;
  31. TGWindows = record
  32. wbcnt : cint;
  33. spbuf : PSPBuf;
  34. rwindow : array[0..SPARC_MAXREGWINDOW-1] of TRWindow;
  35. end;
  36. TFPURegs = record
  37. case longint of
  38. 0: ( fpuregs: array[0..31] of cardinal);
  39. 1: ( fpudregs: array[0..15] of double);
  40. end;
  41. PFQ = ^TFQ;
  42. TFQ = record
  43. fpq_addr : ^cuint;
  44. fpq_instr : cuint;
  45. end;
  46. TFPU = record
  47. fpu_fr : TFPURegs;
  48. fq: PFQ;
  49. fpu_fsr: cardinal;
  50. fpu_qcnt : byte;
  51. fpu_q_entrysize : byte;
  52. fpu_e : byte;
  53. end;
  54. TFPRegSet = TFPU;
  55. TXRS = record
  56. xrs_id : cuint;
  57. xrs_ptr : pointer;
  58. end;
  59. TMContext = record
  60. gregs : TGRegSet;
  61. gwins : PGWindows;
  62. fpregs : TFPRegSet;
  63. xrs : TXRS;
  64. __filler : array[0..19-1] of clong;
  65. end;
  66. TStack = record
  67. ss_sp : pointer;
  68. ss_size : size_t;
  69. ss_flags : cint;
  70. end;
  71. PSigContext = ^TSigContext;
  72. TSigContext = record
  73. uc_flags : cuint;
  74. uc_link : PSigContext;
  75. uc_sigmask : sigset_t;
  76. uc_stack : TStack;
  77. uc_mcontext : TMContext;
  78. __uc_filler : array[0..23-1] of clong;
  79. end;