ffi 0.5.0-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of ffi might be problematic. Click here for more details.

Files changed (328) hide show
  1. data/LICENSE +51 -0
  2. data/README.rdoc +69 -0
  3. data/Rakefile +191 -0
  4. data/ext/ffi_c/AbstractMemory.c +489 -0
  5. data/ext/ffi_c/AbstractMemory.h +160 -0
  6. data/ext/ffi_c/ArrayType.c +129 -0
  7. data/ext/ffi_c/ArrayType.h +58 -0
  8. data/ext/ffi_c/AutoPointer.c +61 -0
  9. data/ext/ffi_c/AutoPointer.h +18 -0
  10. data/ext/ffi_c/Buffer.c +187 -0
  11. data/ext/ffi_c/Call.c +853 -0
  12. data/ext/ffi_c/Call.h +86 -0
  13. data/ext/ffi_c/ClosurePool.c +302 -0
  14. data/ext/ffi_c/ClosurePool.h +29 -0
  15. data/ext/ffi_c/DynamicLibrary.c +216 -0
  16. data/ext/ffi_c/DynamicLibrary.h +22 -0
  17. data/ext/ffi_c/Function.c +478 -0
  18. data/ext/ffi_c/Function.h +80 -0
  19. data/ext/ffi_c/FunctionInfo.c +221 -0
  20. data/ext/ffi_c/LastError.c +159 -0
  21. data/ext/ffi_c/LastError.h +18 -0
  22. data/ext/ffi_c/MemoryPointer.c +178 -0
  23. data/ext/ffi_c/MemoryPointer.h +20 -0
  24. data/ext/ffi_c/MethodHandle.c +346 -0
  25. data/ext/ffi_c/MethodHandle.h +53 -0
  26. data/ext/ffi_c/Platform.c +59 -0
  27. data/ext/ffi_c/Platform.h +16 -0
  28. data/ext/ffi_c/Pointer.c +224 -0
  29. data/ext/ffi_c/Pointer.h +49 -0
  30. data/ext/ffi_c/Struct.c +770 -0
  31. data/ext/ffi_c/Struct.h +80 -0
  32. data/ext/ffi_c/StructByValue.c +140 -0
  33. data/ext/ffi_c/StructByValue.h +53 -0
  34. data/ext/ffi_c/StructLayout.c +450 -0
  35. data/ext/ffi_c/Type.c +329 -0
  36. data/ext/ffi_c/Type.h +57 -0
  37. data/ext/ffi_c/Types.c +103 -0
  38. data/ext/ffi_c/Types.h +85 -0
  39. data/ext/ffi_c/Variadic.c +260 -0
  40. data/ext/ffi_c/compat.h +72 -0
  41. data/ext/ffi_c/endian.h +40 -0
  42. data/ext/ffi_c/extconf.rb +30 -0
  43. data/ext/ffi_c/ffi.c +82 -0
  44. data/ext/ffi_c/libffi.bsd.mk +34 -0
  45. data/ext/ffi_c/libffi.darwin.mk +75 -0
  46. data/ext/ffi_c/libffi.gnu.mk +29 -0
  47. data/ext/ffi_c/libffi.mk +13 -0
  48. data/ext/ffi_c/libffi/ChangeLog +3243 -0
  49. data/ext/ffi_c/libffi/ChangeLog.libffi +347 -0
  50. data/ext/ffi_c/libffi/ChangeLog.libgcj +40 -0
  51. data/ext/ffi_c/libffi/ChangeLog.v1 +764 -0
  52. data/ext/ffi_c/libffi/LICENSE +21 -0
  53. data/ext/ffi_c/libffi/Makefile.am +177 -0
  54. data/ext/ffi_c/libffi/Makefile.in +1640 -0
  55. data/ext/ffi_c/libffi/README +328 -0
  56. data/ext/ffi_c/libffi/TODO +1 -0
  57. data/ext/ffi_c/libffi/acinclude.m4 +92 -0
  58. data/ext/ffi_c/libffi/aclocal.m4 +7516 -0
  59. data/ext/ffi_c/libffi/compile +142 -0
  60. data/ext/ffi_c/libffi/config.guess +1516 -0
  61. data/ext/ffi_c/libffi/config.sub +1626 -0
  62. data/ext/ffi_c/libffi/configure +24414 -0
  63. data/ext/ffi_c/libffi/configure.ac +365 -0
  64. data/ext/ffi_c/libffi/configure.host +11 -0
  65. data/ext/ffi_c/libffi/depcomp +584 -0
  66. data/ext/ffi_c/libffi/doc/libffi.info +533 -0
  67. data/ext/ffi_c/libffi/doc/libffi.texi +541 -0
  68. data/ext/ffi_c/libffi/doc/stamp-vti +4 -0
  69. data/ext/ffi_c/libffi/doc/version.texi +4 -0
  70. data/ext/ffi_c/libffi/fficonfig.h.in +160 -0
  71. data/ext/ffi_c/libffi/include/Makefile.am +9 -0
  72. data/ext/ffi_c/libffi/include/Makefile.in +422 -0
  73. data/ext/ffi_c/libffi/include/ffi.h.in +393 -0
  74. data/ext/ffi_c/libffi/include/ffi_common.h +98 -0
  75. data/ext/ffi_c/libffi/install-sh +323 -0
  76. data/ext/ffi_c/libffi/libffi.pc.in +10 -0
  77. data/ext/ffi_c/libffi/libtool-version +29 -0
  78. data/ext/ffi_c/libffi/ltcf-c.sh +861 -0
  79. data/ext/ffi_c/libffi/ltcf-cxx.sh +1069 -0
  80. data/ext/ffi_c/libffi/ltcf-gcj.sh +700 -0
  81. data/ext/ffi_c/libffi/ltconfig +2862 -0
  82. data/ext/ffi_c/libffi/ltmain.sh +6930 -0
  83. data/ext/ffi_c/libffi/man/Makefile.am +8 -0
  84. data/ext/ffi_c/libffi/man/Makefile.in +395 -0
  85. data/ext/ffi_c/libffi/man/ffi.3 +31 -0
  86. data/ext/ffi_c/libffi/man/ffi_call.3 +103 -0
  87. data/ext/ffi_c/libffi/man/ffi_prep_cif.3 +66 -0
  88. data/ext/ffi_c/libffi/mdate-sh +201 -0
  89. data/ext/ffi_c/libffi/missing +353 -0
  90. data/ext/ffi_c/libffi/mkinstalldirs +158 -0
  91. data/ext/ffi_c/libffi/src/alpha/ffi.c +284 -0
  92. data/ext/ffi_c/libffi/src/alpha/ffitarget.h +48 -0
  93. data/ext/ffi_c/libffi/src/alpha/osf.S +366 -0
  94. data/ext/ffi_c/libffi/src/arm/ffi.c +309 -0
  95. data/ext/ffi_c/libffi/src/arm/ffitarget.h +49 -0
  96. data/ext/ffi_c/libffi/src/arm/sysv.S +299 -0
  97. data/ext/ffi_c/libffi/src/closures.c +596 -0
  98. data/ext/ffi_c/libffi/src/cris/ffi.c +383 -0
  99. data/ext/ffi_c/libffi/src/cris/ffitarget.h +51 -0
  100. data/ext/ffi_c/libffi/src/cris/sysv.S +215 -0
  101. data/ext/ffi_c/libffi/src/debug.c +59 -0
  102. data/ext/ffi_c/libffi/src/dlmalloc.c +5099 -0
  103. data/ext/ffi_c/libffi/src/frv/eabi.S +128 -0
  104. data/ext/ffi_c/libffi/src/frv/ffi.c +292 -0
  105. data/ext/ffi_c/libffi/src/frv/ffitarget.h +61 -0
  106. data/ext/ffi_c/libffi/src/ia64/ffi.c +580 -0
  107. data/ext/ffi_c/libffi/src/ia64/ffitarget.h +50 -0
  108. data/ext/ffi_c/libffi/src/ia64/ia64_flags.h +40 -0
  109. data/ext/ffi_c/libffi/src/ia64/unix.S +560 -0
  110. data/ext/ffi_c/libffi/src/java_raw_api.c +359 -0
  111. data/ext/ffi_c/libffi/src/m32r/ffi.c +232 -0
  112. data/ext/ffi_c/libffi/src/m32r/ffitarget.h +48 -0
  113. data/ext/ffi_c/libffi/src/m32r/sysv.S +121 -0
  114. data/ext/ffi_c/libffi/src/m68k/ffi.c +278 -0
  115. data/ext/ffi_c/libffi/src/m68k/ffitarget.h +49 -0
  116. data/ext/ffi_c/libffi/src/m68k/sysv.S +234 -0
  117. data/ext/ffi_c/libffi/src/mips/ffi.c +926 -0
  118. data/ext/ffi_c/libffi/src/mips/ffitarget.h +202 -0
  119. data/ext/ffi_c/libffi/src/mips/n32.S +534 -0
  120. data/ext/ffi_c/libffi/src/mips/o32.S +381 -0
  121. data/ext/ffi_c/libffi/src/pa/ffi.c +709 -0
  122. data/ext/ffi_c/libffi/src/pa/ffitarget.h +77 -0
  123. data/ext/ffi_c/libffi/src/pa/hpux32.S +368 -0
  124. data/ext/ffi_c/libffi/src/pa/linux.S +357 -0
  125. data/ext/ffi_c/libffi/src/powerpc/aix.S +225 -0
  126. data/ext/ffi_c/libffi/src/powerpc/aix_closure.S +247 -0
  127. data/ext/ffi_c/libffi/src/powerpc/asm.h +125 -0
  128. data/ext/ffi_c/libffi/src/powerpc/darwin.S +245 -0
  129. data/ext/ffi_c/libffi/src/powerpc/darwin_closure.S +317 -0
  130. data/ext/ffi_c/libffi/src/powerpc/ffi.c +1429 -0
  131. data/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +800 -0
  132. data/ext/ffi_c/libffi/src/powerpc/ffitarget.h +118 -0
  133. data/ext/ffi_c/libffi/src/powerpc/linux64.S +187 -0
  134. data/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +236 -0
  135. data/ext/ffi_c/libffi/src/powerpc/ppc_closure.S +327 -0
  136. data/ext/ffi_c/libffi/src/powerpc/sysv.S +230 -0
  137. data/ext/ffi_c/libffi/src/prep_cif.c +174 -0
  138. data/ext/ffi_c/libffi/src/raw_api.c +254 -0
  139. data/ext/ffi_c/libffi/src/s390/ffi.c +780 -0
  140. data/ext/ffi_c/libffi/src/s390/ffitarget.h +60 -0
  141. data/ext/ffi_c/libffi/src/s390/sysv.S +434 -0
  142. data/ext/ffi_c/libffi/src/sh/ffi.c +716 -0
  143. data/ext/ffi_c/libffi/src/sh/ffitarget.h +49 -0
  144. data/ext/ffi_c/libffi/src/sh/sysv.S +850 -0
  145. data/ext/ffi_c/libffi/src/sh64/ffi.c +453 -0
  146. data/ext/ffi_c/libffi/src/sh64/ffitarget.h +53 -0
  147. data/ext/ffi_c/libffi/src/sh64/sysv.S +530 -0
  148. data/ext/ffi_c/libffi/src/sparc/ffi.c +610 -0
  149. data/ext/ffi_c/libffi/src/sparc/ffitarget.h +66 -0
  150. data/ext/ffi_c/libffi/src/sparc/v8.S +272 -0
  151. data/ext/ffi_c/libffi/src/sparc/v9.S +307 -0
  152. data/ext/ffi_c/libffi/src/types.c +77 -0
  153. data/ext/ffi_c/libffi/src/x86/darwin.S +443 -0
  154. data/ext/ffi_c/libffi/src/x86/darwin64.S +416 -0
  155. data/ext/ffi_c/libffi/src/x86/ffi.c +475 -0
  156. data/ext/ffi_c/libffi/src/x86/ffi64.c +572 -0
  157. data/ext/ffi_c/libffi/src/x86/ffitarget.h +90 -0
  158. data/ext/ffi_c/libffi/src/x86/freebsd.S +458 -0
  159. data/ext/ffi_c/libffi/src/x86/sysv.S +437 -0
  160. data/ext/ffi_c/libffi/src/x86/unix64.S +418 -0
  161. data/ext/ffi_c/libffi/src/x86/win32.S +391 -0
  162. data/ext/ffi_c/libffi/testsuite/Makefile.am +71 -0
  163. data/ext/ffi_c/libffi/testsuite/Makefile.in +447 -0
  164. data/ext/ffi_c/libffi/testsuite/config/default.exp +1 -0
  165. data/ext/ffi_c/libffi/testsuite/lib/libffi-dg.exp +289 -0
  166. data/ext/ffi_c/libffi/testsuite/lib/target-libpath.exp +263 -0
  167. data/ext/ffi_c/libffi/testsuite/lib/wrapper.exp +45 -0
  168. data/ext/ffi_c/libffi/testsuite/libffi.call/call.exp +36 -0
  169. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn0.c +97 -0
  170. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn1.c +89 -0
  171. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn2.c +89 -0
  172. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn3.c +90 -0
  173. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn4.c +97 -0
  174. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn5.c +99 -0
  175. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn6.c +98 -0
  176. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_stdcall.c +72 -0
  177. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_12byte.c +102 -0
  178. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_16byte.c +103 -0
  179. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_18byte.c +104 -0
  180. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_19byte.c +110 -0
  181. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_1_1byte.c +97 -0
  182. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte.c +99 -0
  183. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte1.c +101 -0
  184. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_24byte.c +121 -0
  185. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_2byte.c +98 -0
  186. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3_1byte.c +103 -0
  187. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte1.c +98 -0
  188. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte2.c +98 -0
  189. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_4_1byte.c +106 -0
  190. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_4byte.c +98 -0
  191. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_5_1_byte.c +117 -0
  192. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_5byte.c +106 -0
  193. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_64byte.c +132 -0
  194. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_6_1_byte.c +121 -0
  195. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_6byte.c +107 -0
  196. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_7_1_byte.c +125 -0
  197. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_7byte.c +105 -0
  198. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_8byte.c +96 -0
  199. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte1.c +98 -0
  200. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte2.c +99 -0
  201. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_double.c +101 -0
  202. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_float.c +99 -0
  203. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble.c +100 -0
  204. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_pointer.c +101 -0
  205. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint16.c +99 -0
  206. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint32.c +99 -0
  207. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint64.c +99 -0
  208. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint16.c +99 -0
  209. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint32.c +99 -0
  210. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint64.c +100 -0
  211. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_double.c +51 -0
  212. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_float.c +51 -0
  213. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_schar.c +82 -0
  214. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshort.c +82 -0
  215. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshortchar.c +94 -0
  216. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_uchar.c +99 -0
  217. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushort.c +82 -0
  218. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushortchar.c +94 -0
  219. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_schar.c +52 -0
  220. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_sint.c +50 -0
  221. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_sshort.c +50 -0
  222. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uchar.c +50 -0
  223. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uint.c +51 -0
  224. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulonglong.c +54 -0
  225. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ushort.c +51 -0
  226. data/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +86 -0
  227. data/ext/ffi_c/libffi/testsuite/libffi.call/float.c +59 -0
  228. data/ext/ffi_c/libffi/testsuite/libffi.call/float1.c +58 -0
  229. data/ext/ffi_c/libffi/testsuite/libffi.call/float2.c +57 -0
  230. data/ext/ffi_c/libffi/testsuite/libffi.call/float3.c +72 -0
  231. data/ext/ffi_c/libffi/testsuite/libffi.call/float4.c +62 -0
  232. data/ext/ffi_c/libffi/testsuite/libffi.call/many.c +69 -0
  233. data/ext/ffi_c/libffi/testsuite/libffi.call/many_win32.c +63 -0
  234. data/ext/ffi_c/libffi/testsuite/libffi.call/negint.c +53 -0
  235. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct.c +160 -0
  236. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct1.c +169 -0
  237. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct10.c +141 -0
  238. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct2.c +118 -0
  239. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct3.c +119 -0
  240. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct4.c +119 -0
  241. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct5.c +120 -0
  242. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct6.c +139 -0
  243. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct7.c +119 -0
  244. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct8.c +139 -0
  245. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct9.c +139 -0
  246. data/ext/ffi_c/libffi/testsuite/libffi.call/problem1.c +98 -0
  247. data/ext/ffi_c/libffi/testsuite/libffi.call/promotion.c +59 -0
  248. data/ext/ffi_c/libffi/testsuite/libffi.call/pyobjc-tc.c +114 -0
  249. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl.c +35 -0
  250. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl1.c +43 -0
  251. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl2.c +42 -0
  252. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl.c +35 -0
  253. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl1.c +36 -0
  254. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl2.c +49 -0
  255. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl3.c +42 -0
  256. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ldl.c +34 -0
  257. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ll.c +41 -0
  258. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ll1.c +42 -0
  259. data/ext/ffi_c/libffi/testsuite/libffi.call/return_sc.c +36 -0
  260. data/ext/ffi_c/libffi/testsuite/libffi.call/return_sl.c +38 -0
  261. data/ext/ffi_c/libffi/testsuite/libffi.call/return_uc.c +38 -0
  262. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ul.c +38 -0
  263. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen.c +44 -0
  264. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen_win32.c +44 -0
  265. data/ext/ffi_c/libffi/testsuite/libffi.call/struct1.c +65 -0
  266. data/ext/ffi_c/libffi/testsuite/libffi.call/struct2.c +67 -0
  267. data/ext/ffi_c/libffi/testsuite/libffi.call/struct3.c +59 -0
  268. data/ext/ffi_c/libffi/testsuite/libffi.call/struct4.c +63 -0
  269. data/ext/ffi_c/libffi/testsuite/libffi.call/struct5.c +65 -0
  270. data/ext/ffi_c/libffi/testsuite/libffi.call/struct6.c +64 -0
  271. data/ext/ffi_c/libffi/testsuite/libffi.call/struct7.c +74 -0
  272. data/ext/ffi_c/libffi/testsuite/libffi.call/struct8.c +80 -0
  273. data/ext/ffi_c/libffi/testsuite/libffi.call/struct9.c +67 -0
  274. data/ext/ffi_c/libffi/testsuite/libffi.special/ffitestcxx.h +86 -0
  275. data/ext/ffi_c/libffi/testsuite/libffi.special/special.exp +38 -0
  276. data/ext/ffi_c/libffi/testsuite/libffi.special/unwindtest.cc +123 -0
  277. data/ext/ffi_c/libffi/testsuite/libffi.special/unwindtest_ffi_call.cc +53 -0
  278. data/ext/ffi_c/libffi/texinfo.tex +7482 -0
  279. data/ext/ffi_c/rbffi.h +26 -0
  280. data/gen/Rakefile +12 -0
  281. data/lib/1.8/ffi_c.so +0 -0
  282. data/lib/1.9/ffi_c.so +0 -0
  283. data/lib/ffi.rb +11 -0
  284. data/lib/ffi/autopointer.rb +61 -0
  285. data/lib/ffi/buffer.rb +0 -0
  286. data/lib/ffi/callback.rb +10 -0
  287. data/lib/ffi/enum.rb +78 -0
  288. data/lib/ffi/errno.rb +8 -0
  289. data/lib/ffi/ffi.rb +99 -0
  290. data/lib/ffi/io.rb +21 -0
  291. data/lib/ffi/library.rb +218 -0
  292. data/lib/ffi/managedstruct.rb +55 -0
  293. data/lib/ffi/memorypointer.rb +73 -0
  294. data/lib/ffi/platform.rb +88 -0
  295. data/lib/ffi/pointer.rb +119 -0
  296. data/lib/ffi/struct.rb +183 -0
  297. data/lib/ffi/tools/const_generator.rb +177 -0
  298. data/lib/ffi/tools/generator.rb +58 -0
  299. data/lib/ffi/tools/generator_task.rb +35 -0
  300. data/lib/ffi/tools/struct_generator.rb +194 -0
  301. data/lib/ffi/tools/types_generator.rb +123 -0
  302. data/lib/ffi/types.rb +153 -0
  303. data/lib/ffi/union.rb +12 -0
  304. data/lib/ffi/variadic.rb +25 -0
  305. data/spec/ffi/bool_spec.rb +24 -0
  306. data/spec/ffi/buffer_spec.rb +202 -0
  307. data/spec/ffi/callback_spec.rb +591 -0
  308. data/spec/ffi/enum_spec.rb +164 -0
  309. data/spec/ffi/errno_spec.rb +13 -0
  310. data/spec/ffi/function_spec.rb +73 -0
  311. data/spec/ffi/library_spec.rb +148 -0
  312. data/spec/ffi/managed_struct_spec.rb +56 -0
  313. data/spec/ffi/number_spec.rb +231 -0
  314. data/spec/ffi/pointer_spec.rb +195 -0
  315. data/spec/ffi/rbx/attach_function_spec.rb +27 -0
  316. data/spec/ffi/rbx/memory_pointer_spec.rb +102 -0
  317. data/spec/ffi/rbx/spec_helper.rb +1 -0
  318. data/spec/ffi/rbx/struct_spec.rb +13 -0
  319. data/spec/ffi/spec_helper.rb +17 -0
  320. data/spec/ffi/string_spec.rb +103 -0
  321. data/spec/ffi/struct_callback_spec.rb +64 -0
  322. data/spec/ffi/struct_initialize_spec.rb +30 -0
  323. data/spec/ffi/struct_spec.rb +529 -0
  324. data/spec/ffi/typedef_spec.rb +48 -0
  325. data/spec/ffi/union_spec.rb +60 -0
  326. data/spec/ffi/variadic_spec.rb +84 -0
  327. data/spec/spec.opts +4 -0
  328. metadata +396 -0
@@ -0,0 +1,53 @@
1
+ /* -----------------------------------------------------------------*-C-*-
2
+ ffitarget.h - Copyright (c) 1996-2003 Red Hat, Inc.
3
+ Target configuration macros for SuperH - SHmedia.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ ``Software''), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included
14
+ in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
20
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
21
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23
+ DEALINGS IN THE SOFTWARE.
24
+
25
+ ----------------------------------------------------------------------- */
26
+
27
+ #ifndef LIBFFI_TARGET_H
28
+ #define LIBFFI_TARGET_H
29
+
30
+ /* ---- Generic type definitions ----------------------------------------- */
31
+
32
+ #ifndef LIBFFI_ASM
33
+ typedef unsigned long ffi_arg;
34
+ typedef signed long ffi_sarg;
35
+
36
+ typedef enum ffi_abi {
37
+ FFI_FIRST_ABI = 0,
38
+ FFI_SYSV,
39
+ FFI_DEFAULT_ABI = FFI_SYSV,
40
+ FFI_LAST_ABI = FFI_DEFAULT_ABI + 1
41
+ } ffi_abi;
42
+
43
+ #define FFI_EXTRA_CIF_FIELDS long long flags2
44
+ #endif
45
+
46
+ /* ---- Definitions for closures ----------------------------------------- */
47
+
48
+ #define FFI_CLOSURES 1
49
+ #define FFI_TRAMPOLINE_SIZE 32
50
+ #define FFI_NATIVE_RAW_API 0
51
+
52
+ #endif
53
+
@@ -0,0 +1,530 @@
1
+ /* -----------------------------------------------------------------------
2
+ sysv.S - Copyright (c) 2003, 2004, 2008 Kaz Kojima
3
+
4
+ SuperH SHmedia Foreign Function Interface
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining
7
+ a copy of this software and associated documentation files (the
8
+ ``Software''), to deal in the Software without restriction, including
9
+ without limitation the rights to use, copy, modify, merge, publish,
10
+ distribute, sublicense, and/or sell copies of the Software, and to
11
+ permit persons to whom the Software is furnished to do so, subject to
12
+ the following conditions:
13
+
14
+ The above copyright notice and this permission notice shall be included
15
+ in all copies or substantial portions of the Software.
16
+
17
+ THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
18
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
20
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
21
+ ANY CLAIM, DAMAGES OR
22
+ OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
23
+ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
+ OTHER DEALINGS IN THE SOFTWARE.
25
+ ----------------------------------------------------------------------- */
26
+
27
+ #define LIBFFI_ASM
28
+ #include <fficonfig.h>
29
+ #include <ffi.h>
30
+ #ifdef HAVE_MACHINE_ASM_H
31
+ #include <machine/asm.h>
32
+ #else
33
+ /* XXX these lose for some platforms, I'm sure. */
34
+ #define CNAME(x) x
35
+ #define ENTRY(x) .globl CNAME(x); .type CNAME(x),%function; CNAME(x):
36
+ #endif
37
+
38
+ #ifdef __LITTLE_ENDIAN__
39
+ #define OFS_FLT 0
40
+ #else
41
+ #define OFS_FLT 4
42
+ #endif
43
+
44
+ .section .text..SHmedia32,"ax"
45
+
46
+ # r2: ffi_prep_args
47
+ # r3: &ecif
48
+ # r4: bytes
49
+ # r5: flags
50
+ # r6: flags2
51
+ # r7: rvalue
52
+ # r8: fn
53
+
54
+ # This assumes we are using gas.
55
+ .align 5
56
+ ENTRY(ffi_call_SYSV)
57
+ # Save registers
58
+ .LFB1:
59
+ addi.l r15, -48, r15
60
+ .LCFI0:
61
+ st.q r15, 40, r32
62
+ st.q r15, 32, r31
63
+ st.q r15, 24, r30
64
+ st.q r15, 16, r29
65
+ st.q r15, 8, r28
66
+ st.l r15, 4, r18
67
+ st.l r15, 0, r14
68
+ .LCFI1:
69
+ add.l r15, r63, r14
70
+ .LCFI2:
71
+ # add r4, r63, r28
72
+ add r5, r63, r29
73
+ add r6, r63, r30
74
+ add r7, r63, r31
75
+ add r8, r63, r32
76
+
77
+ addi r4, (64 + 7), r4
78
+ andi r4, ~7, r4
79
+ sub.l r15, r4, r15
80
+
81
+ ptabs/l r2, tr0
82
+ add r15, r63, r2
83
+ blink tr0, r18
84
+
85
+ addi r15, 64, r22
86
+ movi 0, r0
87
+ movi 0, r1
88
+
89
+ pt/l 1f, tr1
90
+ bnei/l r29, FFI_TYPE_STRUCT, tr1
91
+ ld.l r15, 0, r19
92
+ addi r15, 8, r15
93
+ addi r0, 1, r0
94
+ 1:
95
+
96
+ .L_pass:
97
+ andi r30, 3, r20
98
+ shlri r30, 2, r30
99
+
100
+ pt/l .L_call_it, tr0
101
+ pt/l .L_pass_i, tr1
102
+ pt/l .L_pass_f, tr2
103
+
104
+ beqi/l r20, FFI_TYPE_VOID, tr0
105
+ beqi/l r20, FFI_TYPE_INT, tr1
106
+ beqi/l r20, FFI_TYPE_FLOAT, tr2
107
+
108
+ .L_pass_d:
109
+ addi r0, 1, r0
110
+ addi r1, 1, r1
111
+ andi r1, ~1, r1
112
+
113
+ pt/l 3f, tr0
114
+ movi 12, r20
115
+ bge/l r1, r20, tr0
116
+
117
+ pt/l .L_pop_d, tr1
118
+ pt/l 2f, tr0
119
+ blink tr1, r63
120
+ 2:
121
+ addi.l r15, 8, r15
122
+ 3:
123
+ pt/l .L_pass, tr0
124
+ addi r1, 2, r1
125
+ blink tr0, r63
126
+
127
+ .L_pop_d:
128
+ pt/l .L_pop_d_tbl, tr1
129
+ gettr tr1, r20
130
+ shlli r1, 2, r21
131
+ add r20, r21, r20
132
+ ptabs/l r20, tr1
133
+ blink tr1, r63
134
+
135
+ .L_pop_d_tbl:
136
+ fld.d r15, 0, dr0
137
+ blink tr0, r63
138
+ fld.d r15, 0, dr2
139
+ blink tr0, r63
140
+ fld.d r15, 0, dr4
141
+ blink tr0, r63
142
+ fld.d r15, 0, dr6
143
+ blink tr0, r63
144
+ fld.d r15, 0, dr8
145
+ blink tr0, r63
146
+ fld.d r15, 0, dr10
147
+ blink tr0, r63
148
+
149
+ .L_pass_f:
150
+ addi r0, 1, r0
151
+ pt/l 3f, tr0
152
+ movi 12, r20
153
+ bge/l r1, r20, tr0
154
+
155
+ pt/l .L_pop_f, tr1
156
+ pt/l 2f, tr0
157
+ blink tr1, r63
158
+ 2:
159
+ addi.l r15, 8, r15
160
+ 3:
161
+ pt/l .L_pass, tr0
162
+ addi r1, 1, r1
163
+ blink tr0, r63
164
+
165
+ .L_pop_f:
166
+ pt/l .L_pop_f_tbl, tr1
167
+ gettr tr1, r20
168
+ shlli r1, 3, r21
169
+ add r20, r21, r20
170
+ ptabs/l r20, tr1
171
+ blink tr1, r63
172
+
173
+ .L_pop_f_tbl:
174
+ fld.s r15, OFS_FLT, fr0
175
+ blink tr0, r63
176
+ fld.s r15, OFS_FLT, fr1
177
+ blink tr0, r63
178
+ fld.s r15, OFS_FLT, fr2
179
+ blink tr0, r63
180
+ fld.s r15, OFS_FLT, fr3
181
+ blink tr0, r63
182
+ fld.s r15, OFS_FLT, fr4
183
+ blink tr0, r63
184
+ fld.s r15, OFS_FLT, fr5
185
+ blink tr0, r63
186
+ fld.s r15, OFS_FLT, fr6
187
+ blink tr0, r63
188
+ fld.s r15, OFS_FLT, fr7
189
+ blink tr0, r63
190
+ fld.s r15, OFS_FLT, fr8
191
+ blink tr0, r63
192
+ fld.s r15, OFS_FLT, fr9
193
+ blink tr0, r63
194
+ fld.s r15, OFS_FLT, fr10
195
+ blink tr0, r63
196
+ fld.s r15, OFS_FLT, fr11
197
+ blink tr0, r63
198
+
199
+ .L_pass_i:
200
+ pt/l 3f, tr0
201
+ movi 8, r20
202
+ bge/l r0, r20, tr0
203
+
204
+ pt/l .L_pop_i, tr1
205
+ pt/l 2f, tr0
206
+ blink tr1, r63
207
+ 2:
208
+ addi.l r15, 8, r15
209
+ 3:
210
+ pt/l .L_pass, tr0
211
+ addi r0, 1, r0
212
+ blink tr0, r63
213
+
214
+ .L_pop_i:
215
+ pt/l .L_pop_i_tbl, tr1
216
+ gettr tr1, r20
217
+ shlli r0, 3, r21
218
+ add r20, r21, r20
219
+ ptabs/l r20, tr1
220
+ blink tr1, r63
221
+
222
+ .L_pop_i_tbl:
223
+ ld.q r15, 0, r2
224
+ blink tr0, r63
225
+ ld.q r15, 0, r3
226
+ blink tr0, r63
227
+ ld.q r15, 0, r4
228
+ blink tr0, r63
229
+ ld.q r15, 0, r5
230
+ blink tr0, r63
231
+ ld.q r15, 0, r6
232
+ blink tr0, r63
233
+ ld.q r15, 0, r7
234
+ blink tr0, r63
235
+ ld.q r15, 0, r8
236
+ blink tr0, r63
237
+ ld.q r15, 0, r9
238
+ blink tr0, r63
239
+
240
+ .L_call_it:
241
+ # call function
242
+ pt/l 1f, tr1
243
+ bnei/l r29, FFI_TYPE_STRUCT, tr1
244
+ add r19, r63, r2
245
+ 1:
246
+ add r22, r63, r15
247
+ ptabs/l r32, tr0
248
+ blink tr0, r18
249
+
250
+ pt/l .L_ret_i, tr0
251
+ pt/l .L_ret_ll, tr1
252
+ pt/l .L_ret_d, tr2
253
+ pt/l .L_ret_f, tr3
254
+ pt/l .L_epilogue, tr4
255
+
256
+ beqi/l r29, FFI_TYPE_INT, tr0
257
+ beqi/l r29, FFI_TYPE_UINT32, tr0
258
+ beqi/l r29, FFI_TYPE_SINT64, tr1
259
+ beqi/l r29, FFI_TYPE_UINT64, tr1
260
+ beqi/l r29, FFI_TYPE_DOUBLE, tr2
261
+ beqi/l r29, FFI_TYPE_FLOAT, tr3
262
+
263
+ pt/l .L_ret_q, tr0
264
+ pt/l .L_ret_h, tr1
265
+
266
+ beqi/l r29, FFI_TYPE_UINT8, tr0
267
+ beqi/l r29, FFI_TYPE_UINT16, tr1
268
+ blink tr4, r63
269
+
270
+ .L_ret_d:
271
+ fst.d r31, 0, dr0
272
+ blink tr4, r63
273
+
274
+ .L_ret_ll:
275
+ st.q r31, 0, r2
276
+ blink tr4, r63
277
+
278
+ .L_ret_f:
279
+ fst.s r31, OFS_FLT, fr0
280
+ blink tr4, r63
281
+
282
+ .L_ret_q:
283
+ st.b r31, 0, r2
284
+ blink tr4, r63
285
+
286
+ .L_ret_h:
287
+ st.w r31, 0, r2
288
+ blink tr4, r63
289
+
290
+ .L_ret_i:
291
+ st.l r31, 0, r2
292
+ # Fall
293
+
294
+ .L_epilogue:
295
+ # Remove the space we pushed for the args
296
+ add r14, r63, r15
297
+
298
+ ld.l r15, 0, r14
299
+ ld.l r15, 4, r18
300
+ ld.q r15, 8, r28
301
+ ld.q r15, 16, r29
302
+ ld.q r15, 24, r30
303
+ ld.q r15, 32, r31
304
+ ld.q r15, 40, r32
305
+ addi.l r15, 48, r15
306
+ ptabs r18, tr0
307
+ blink tr0, r63
308
+
309
+ .LFE1:
310
+ .ffi_call_SYSV_end:
311
+ .size CNAME(ffi_call_SYSV),.ffi_call_SYSV_end-CNAME(ffi_call_SYSV)
312
+
313
+ .align 5
314
+ ENTRY(ffi_closure_SYSV)
315
+ .LFB2:
316
+ addi.l r15, -136, r15
317
+ .LCFI3:
318
+ st.l r15, 12, r18
319
+ st.l r15, 8, r14
320
+ st.l r15, 4, r12
321
+ .LCFI4:
322
+ add r15, r63, r14
323
+ .LCFI5:
324
+ /* Stack layout:
325
+ ...
326
+ 64 bytes (register parameters)
327
+ 48 bytes (floating register parameters)
328
+ 8 bytes (result)
329
+ 4 bytes (r18)
330
+ 4 bytes (r14)
331
+ 4 bytes (r12)
332
+ 4 bytes (for align)
333
+ <- new stack pointer
334
+ */
335
+ fst.d r14, 24, dr0
336
+ fst.d r14, 32, dr2
337
+ fst.d r14, 40, dr4
338
+ fst.d r14, 48, dr6
339
+ fst.d r14, 56, dr8
340
+ fst.d r14, 64, dr10
341
+ st.q r14, 72, r2
342
+ st.q r14, 80, r3
343
+ st.q r14, 88, r4
344
+ st.q r14, 96, r5
345
+ st.q r14, 104, r6
346
+ st.q r14, 112, r7
347
+ st.q r14, 120, r8
348
+ st.q r14, 128, r9
349
+
350
+ add r1, r63, r2
351
+ addi r14, 16, r3
352
+ addi r14, 72, r4
353
+ addi r14, 24, r5
354
+ addi r14, 136, r6
355
+ #ifdef PIC
356
+ movi (((datalabel _GLOBAL_OFFSET_TABLE_-(.LPCS0-.)) >> 16) & 65535), r12
357
+ shori ((datalabel _GLOBAL_OFFSET_TABLE_-(.LPCS0-.)) & 65535), r12
358
+ .LPCS0: ptrel/u r12, tr0
359
+ movi ((ffi_closure_helper_SYSV@GOTPLT) & 65535), r1
360
+ gettr tr0, r12
361
+ ldx.l r1, r12, r1
362
+ ptabs r1, tr0
363
+ #else
364
+ pt/l ffi_closure_helper_SYSV, tr0
365
+ #endif
366
+ blink tr0, r18
367
+
368
+ shlli r2, 1, r1
369
+ movi (((datalabel .L_table) >> 16) & 65535), r2
370
+ shori ((datalabel .L_table) & 65535), r2
371
+ ldx.w r2, r1, r1
372
+ add r1, r2, r1
373
+ pt/l .L_case_v, tr1
374
+ ptabs r1, tr0
375
+ blink tr0, r63
376
+
377
+ .align 2
378
+ .L_table:
379
+ .word .L_case_v - datalabel .L_table /* FFI_TYPE_VOID */
380
+ .word .L_case_i - datalabel .L_table /* FFI_TYPE_INT */
381
+ .word .L_case_f - datalabel .L_table /* FFI_TYPE_FLOAT */
382
+ .word .L_case_d - datalabel .L_table /* FFI_TYPE_DOUBLE */
383
+ .word .L_case_d - datalabel .L_table /* FFI_TYPE_LONGDOUBLE */
384
+ .word .L_case_uq - datalabel .L_table /* FFI_TYPE_UINT8 */
385
+ .word .L_case_q - datalabel .L_table /* FFI_TYPE_SINT8 */
386
+ .word .L_case_uh - datalabel .L_table /* FFI_TYPE_UINT16 */
387
+ .word .L_case_h - datalabel .L_table /* FFI_TYPE_SINT16 */
388
+ .word .L_case_i - datalabel .L_table /* FFI_TYPE_UINT32 */
389
+ .word .L_case_i - datalabel .L_table /* FFI_TYPE_SINT32 */
390
+ .word .L_case_ll - datalabel .L_table /* FFI_TYPE_UINT64 */
391
+ .word .L_case_ll - datalabel .L_table /* FFI_TYPE_SINT64 */
392
+ .word .L_case_v - datalabel .L_table /* FFI_TYPE_STRUCT */
393
+ .word .L_case_i - datalabel .L_table /* FFI_TYPE_POINTER */
394
+
395
+ .align 2
396
+ .L_case_d:
397
+ fld.d r14, 16, dr0
398
+ blink tr1, r63
399
+ .L_case_f:
400
+ fld.s r14, 16, fr0
401
+ blink tr1, r63
402
+ .L_case_ll:
403
+ ld.q r14, 16, r2
404
+ blink tr1, r63
405
+ .L_case_i:
406
+ ld.l r14, 16, r2
407
+ blink tr1, r63
408
+ .L_case_q:
409
+ ld.b r14, 16, r2
410
+ blink tr1, r63
411
+ .L_case_uq:
412
+ ld.ub r14, 16, r2
413
+ blink tr1, r63
414
+ .L_case_h:
415
+ ld.w r14, 16, r2
416
+ blink tr1, r63
417
+ .L_case_uh:
418
+ ld.uw r14, 16, r2
419
+ blink tr1, r63
420
+ .L_case_v:
421
+ add.l r14, r63, r15
422
+ ld.l r15, 4, r12
423
+ ld.l r15, 8, r14
424
+ ld.l r15, 12, r18
425
+ addi.l r15, 136, r15
426
+ ptabs r18, tr0
427
+ blink tr0, r63
428
+
429
+ .LFE2:
430
+ .ffi_closure_SYSV_end:
431
+ .size CNAME(ffi_closure_SYSV),.ffi_closure_SYSV_end-CNAME(ffi_closure_SYSV)
432
+
433
+ #if defined __ELF__ && defined __linux__
434
+ .section .note.GNU-stack,"",@progbits
435
+ #endif
436
+
437
+ .section ".eh_frame","aw",@progbits
438
+ __FRAME_BEGIN__:
439
+ .4byte .LECIE1-.LSCIE1 /* Length of Common Information Entry */
440
+ .LSCIE1:
441
+ .4byte 0x0 /* CIE Identifier Tag */
442
+ .byte 0x1 /* CIE Version */
443
+ #ifdef PIC
444
+ .ascii "zR\0" /* CIE Augmentation */
445
+ #else
446
+ .byte 0x0 /* CIE Augmentation */
447
+ #endif
448
+ .uleb128 0x1 /* CIE Code Alignment Factor */
449
+ .sleb128 -4 /* CIE Data Alignment Factor */
450
+ .byte 0x12 /* CIE RA Column */
451
+ #ifdef PIC
452
+ .uleb128 0x1 /* Augmentation size */
453
+ .byte 0x10 /* FDE Encoding (pcrel) */
454
+ #endif
455
+ .byte 0xc /* DW_CFA_def_cfa */
456
+ .uleb128 0xf
457
+ .uleb128 0x0
458
+ .align 2
459
+ .LECIE1:
460
+ .LSFDE1:
461
+ .4byte datalabel .LEFDE1-datalabel .LASFDE1 /* FDE Length */
462
+ .LASFDE1:
463
+ .4byte datalabel .LASFDE1-datalabel __FRAME_BEGIN__
464
+ #ifdef PIC
465
+ .4byte .LFB1-. /* FDE initial location */
466
+ #else
467
+ .4byte .LFB1 /* FDE initial location */
468
+ #endif
469
+ .4byte datalabel .LFE1-datalabel .LFB1 /* FDE address range */
470
+ #ifdef PIC
471
+ .uleb128 0x0 /* Augmentation size */
472
+ #endif
473
+ .byte 0x4 /* DW_CFA_advance_loc4 */
474
+ .4byte datalabel .LCFI0-datalabel .LFB1
475
+ .byte 0xe /* DW_CFA_def_cfa_offset */
476
+ .uleb128 0x30
477
+ .byte 0x4 /* DW_CFA_advance_loc4 */
478
+ .4byte datalabel .LCFI1-datalabel .LCFI0
479
+ .byte 0x8e /* DW_CFA_offset, column 0xe */
480
+ .uleb128 0xc
481
+ .byte 0x92 /* DW_CFA_offset, column 0x12 */
482
+ .uleb128 0xb
483
+ .byte 0x9c /* DW_CFA_offset, column 0x1c */
484
+ .uleb128 0xa
485
+ .byte 0x9d /* DW_CFA_offset, column 0x1d */
486
+ .uleb128 0x8
487
+ .byte 0x9e /* DW_CFA_offset, column 0x1e */
488
+ .uleb128 0x6
489
+ .byte 0x9f /* DW_CFA_offset, column 0x1f */
490
+ .uleb128 0x4
491
+ .byte 0xa0 /* DW_CFA_offset, column 0x20 */
492
+ .uleb128 0x2
493
+ .byte 0x4 /* DW_CFA_advance_loc4 */
494
+ .4byte datalabel .LCFI2-datalabel .LCFI1
495
+ .byte 0xd /* DW_CFA_def_cfa_register */
496
+ .uleb128 0xe
497
+ .align 2
498
+ .LEFDE1:
499
+
500
+ .LSFDE3:
501
+ .4byte datalabel .LEFDE3-datalabel .LASFDE3 /* FDE Length */
502
+ .LASFDE3:
503
+ .4byte datalabel .LASFDE3-datalabel __FRAME_BEGIN__
504
+ #ifdef PIC
505
+ .4byte .LFB2-. /* FDE initial location */
506
+ #else
507
+ .4byte .LFB2 /* FDE initial location */
508
+ #endif
509
+ .4byte datalabel .LFE2-datalabel .LFB2 /* FDE address range */
510
+ #ifdef PIC
511
+ .uleb128 0x0 /* Augmentation size */
512
+ #endif
513
+ .byte 0x4 /* DW_CFA_advance_loc4 */
514
+ .4byte datalabel .LCFI3-datalabel .LFB2
515
+ .byte 0xe /* DW_CFA_def_cfa_offset */
516
+ .uleb128 0x88
517
+ .byte 0x4 /* DW_CFA_advance_loc4 */
518
+ .4byte datalabel .LCFI4-datalabel .LCFI3
519
+ .byte 0x8c /* DW_CFA_offset, column 0xc */
520
+ .uleb128 0x21
521
+ .byte 0x8e /* DW_CFA_offset, column 0xe */
522
+ .uleb128 0x20
523
+ .byte 0x92 /* DW_CFA_offset, column 0x12 */
524
+ .uleb128 0x1f
525
+ .byte 0x4 /* DW_CFA_advance_loc4 */
526
+ .4byte datalabel .LCFI5-datalabel .LCFI4
527
+ .byte 0xd /* DW_CFA_def_cfa_register */
528
+ .uleb128 0xe
529
+ .align 2
530
+ .LEFDE3: