sighndh.inc 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. {
  2. This file is part of the Free Pascal run time library.
  3. Copyright (c) 2011 by Free Pascal development team
  4. This file implements all the types/constants related
  5. to signals for AIX.
  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. type
  13. plabel_t = ^label_t;
  14. label_t = record
  15. prev: plabel_t;
  16. iar: culong;
  17. stack: culong;
  18. toc: culong;
  19. cr: culong;
  20. intpri: culong;
  21. reg: array[0..18] of culong; // non-volatile regs (13..31)
  22. end;
  23. padspace_t = ^adspace_t;
  24. adspace_t = record
  25. alloc: culong;
  26. srval: array[0..15] of cuint;
  27. end;
  28. pmstsave = ^mstsave;
  29. mstsave = record
  30. prev: pmstsave;
  31. kjmpbuf: plabel_t;
  32. stackfix: PAnsiChar;
  33. intpri: byte;
  34. backt: byte;
  35. rsvd: array[0..1] of byte;
  36. curid: pid_t;
  37. excp_type: cint;
  38. iar: culong; // instruction address register
  39. msr: culong;
  40. cr: culong;
  41. lr: culong;
  42. ctr: culong;
  43. xer: culong;
  44. mq: culong;
  45. tid: culong;
  46. fpscr: culong;
  47. fpeu: bytebool;
  48. fpinfo: byte;
  49. pad: array[0..1] of byte;
  50. except_: array[0..4] of culong;
  51. pad1: array[0..3] of byte;
  52. o_iar: culong;
  53. o_toc: culong;
  54. o_arg1: culong;
  55. excbranch: culong;
  56. fpscrx: culong;
  57. o_vaddr: culong;
  58. cachealign: array[0..6] of culong;
  59. as_: adspace_t;
  60. gpr: array[0..31] of culong;
  61. fpr: array[0..31] of double;
  62. end;
  63. pstack_t = ^stack_t;
  64. stack_t = record
  65. ss_sp: pointer;
  66. ss_size: size_t;
  67. ss_flags: cint;
  68. __pad: array[0..3] of cint;
  69. end;
  70. __vmxreg_t = record
  71. __v: array[0..3] of cuint;
  72. end;
  73. __vmx_context = record
  74. __vr: array[0..31] of __vmxreg_t;
  75. __pad1: array[0..2] of cuint;
  76. __vscr: cuint;
  77. __vrsave: cuint;
  78. __pad2: array[0..1] of cuint;
  79. end;
  80. p__extctx_t = ^__extctx_t;
  81. __extctx_t = record
  82. __flags: cuint;
  83. __rsvd1: array[0..2] of cuint;
  84. __u1: record
  85. __vmx: __vmx_context
  86. end;
  87. __ukeys: array[0..1] of cuint;
  88. __reserved: array[0..4096-sizeof(__vmx_context)-7*sizeof(cint)-1] of byte;
  89. __extctx_magic: cint;
  90. end;
  91. {$ifdef cpu64}
  92. __context64 = record
  93. gpr: array[0..31] of culonglong;
  94. msr: culonglong;
  95. iar: culonglong;
  96. lr: culonglong;
  97. ctr: culonglong;
  98. cr: cuint;
  99. xer: cuint;
  100. fpscr: cuint;
  101. fpscrx: cuint;
  102. except_: array[0..0] of culonglong;
  103. fpr: array[0..31] of double;
  104. fpeu: byte;
  105. fpinfo: byte;
  106. pad: array[0..1] of byte;
  107. excp_type: cint;
  108. end;
  109. mcontext_t = __context64;
  110. {$else}
  111. mcontext_t = mstsave;
  112. {$endif}
  113. pucontext_t = ^tucontext_t;
  114. PSigContext = pucontext_t;
  115. tucontext_t = record
  116. __sc_onstack: cint;
  117. uc_sigmask: sigset_t;
  118. __sc_uerror: cint;
  119. uc_mcontext: mcontext_t;
  120. uc_link: pucontext_t;
  121. uc_stack: stack_t;
  122. __extctx: p__extctx_t;
  123. __extctx_magic: cint;
  124. __pad: array[0..{$ifdef cpu64}0{$else}1{$endif}] of cint;
  125. end;