tcc 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (283) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +35 -0
  3. data/README.md +196 -0
  4. data/ext/tcc/extconf.rb +25 -0
  5. data/ext/tcc/tcc-0.9.26.patch +30 -0
  6. data/ext/tcc/tcc-0.9.26/COPYING +504 -0
  7. data/ext/tcc/tcc-0.9.26/Changelog +396 -0
  8. data/ext/tcc/tcc-0.9.26/Makefile +349 -0
  9. data/ext/tcc/tcc-0.9.26/README +101 -0
  10. data/ext/tcc/tcc-0.9.26/TODO +93 -0
  11. data/ext/tcc/tcc-0.9.26/VERSION +1 -0
  12. data/ext/tcc/tcc-0.9.26/arm-gen.c +2005 -0
  13. data/ext/tcc/tcc-0.9.26/c67-gen.c +2560 -0
  14. data/ext/tcc/tcc-0.9.26/coff.h +446 -0
  15. data/ext/tcc/tcc-0.9.26/config.h +8 -0
  16. data/ext/tcc/tcc-0.9.26/config.mak +28 -0
  17. data/ext/tcc/tcc-0.9.26/config.texi +1 -0
  18. data/ext/tcc/tcc-0.9.26/configure +540 -0
  19. data/ext/tcc/tcc-0.9.26/conftest.c +71 -0
  20. data/ext/tcc/tcc-0.9.26/elf.h +1731 -0
  21. data/ext/tcc/tcc-0.9.26/examples/ex1.c +8 -0
  22. data/ext/tcc/tcc-0.9.26/examples/ex2.c +98 -0
  23. data/ext/tcc/tcc-0.9.26/examples/ex3.c +24 -0
  24. data/ext/tcc/tcc-0.9.26/examples/ex4.c +26 -0
  25. data/ext/tcc/tcc-0.9.26/examples/ex5.c +8 -0
  26. data/ext/tcc/tcc-0.9.26/i386-asm.c +1498 -0
  27. data/ext/tcc/tcc-0.9.26/i386-asm.h +473 -0
  28. data/ext/tcc/tcc-0.9.26/i386-gen.c +1096 -0
  29. data/ext/tcc/tcc-0.9.26/i386-tok.h +243 -0
  30. data/ext/tcc/tcc-0.9.26/il-gen.c +667 -0
  31. data/ext/tcc/tcc-0.9.26/il-opcodes.h +251 -0
  32. data/ext/tcc/tcc-0.9.26/include/float.h +57 -0
  33. data/ext/tcc/tcc-0.9.26/include/stdarg.h +41 -0
  34. data/ext/tcc/tcc-0.9.26/include/stdbool.h +10 -0
  35. data/ext/tcc/tcc-0.9.26/include/stddef.h +28 -0
  36. data/ext/tcc/tcc-0.9.26/include/tcclib.h +78 -0
  37. data/ext/tcc/tcc-0.9.26/include/varargs.h +12 -0
  38. data/ext/tcc/tcc-0.9.26/lib/Makefile +102 -0
  39. data/ext/tcc/tcc-0.9.26/lib/alloca86-bt.S +47 -0
  40. data/ext/tcc/tcc-0.9.26/lib/alloca86.S +35 -0
  41. data/ext/tcc/tcc-0.9.26/lib/alloca86_64.S +42 -0
  42. data/ext/tcc/tcc-0.9.26/lib/bcheck.c +875 -0
  43. data/ext/tcc/tcc-0.9.26/lib/libtcc1.c +691 -0
  44. data/ext/tcc/tcc-0.9.26/libtcc.c +1941 -0
  45. data/ext/tcc/tcc-0.9.26/libtcc.h +103 -0
  46. data/ext/tcc/tcc-0.9.26/stab.def +234 -0
  47. data/ext/tcc/tcc-0.9.26/stab.h +17 -0
  48. data/ext/tcc/tcc-0.9.26/tcc-doc.html +2332 -0
  49. data/ext/tcc/tcc-0.9.26/tcc-doc.info +1151 -0
  50. data/ext/tcc/tcc-0.9.26/tcc-doc.texi +1268 -0
  51. data/ext/tcc/tcc-0.9.26/tcc.1 +415 -0
  52. data/ext/tcc/tcc-0.9.26/tcc.c +352 -0
  53. data/ext/tcc/tcc-0.9.26/tcc.h +1379 -0
  54. data/ext/tcc/tcc-0.9.26/tccasm.c +1118 -0
  55. data/ext/tcc/tcc-0.9.26/tcccoff.c +948 -0
  56. data/ext/tcc/tcc-0.9.26/tccelf.c +3129 -0
  57. data/ext/tcc/tcc-0.9.26/tccgen.c +5841 -0
  58. data/ext/tcc/tcc-0.9.26/tccpe.c +1887 -0
  59. data/ext/tcc/tcc-0.9.26/tccpp.c +3128 -0
  60. data/ext/tcc/tcc-0.9.26/tccrun.c +737 -0
  61. data/ext/tcc/tcc-0.9.26/tcctok.h +278 -0
  62. data/ext/tcc/tcc-0.9.26/tests/Makefile +199 -0
  63. data/ext/tcc/tcc-0.9.26/tests/asmtest.S +609 -0
  64. data/ext/tcc/tcc-0.9.26/tests/boundtest.c +233 -0
  65. data/ext/tcc/tcc-0.9.26/tests/gcctestsuite.sh +33 -0
  66. data/ext/tcc/tcc-0.9.26/tests/libtcc_test.c +76 -0
  67. data/ext/tcc/tcc-0.9.26/tests/tcctest.c +2713 -0
  68. data/ext/tcc/tcc-0.9.26/tests/tests2/00_assignment.c +18 -0
  69. data/ext/tcc/tcc-0.9.26/tests/tests2/00_assignment.expect +3 -0
  70. data/ext/tcc/tcc-0.9.26/tests/tests2/01_comment.c +14 -0
  71. data/ext/tcc/tcc-0.9.26/tests/tests2/01_comment.expect +5 -0
  72. data/ext/tcc/tcc-0.9.26/tests/tests2/02_printf.c +18 -0
  73. data/ext/tcc/tcc-0.9.26/tests/tests2/02_printf.expect +15 -0
  74. data/ext/tcc/tcc-0.9.26/tests/tests2/03_struct.c +31 -0
  75. data/ext/tcc/tcc-0.9.26/tests/tests2/03_struct.expect +6 -0
  76. data/ext/tcc/tcc-0.9.26/tests/tests2/04_for.c +15 -0
  77. data/ext/tcc/tcc-0.9.26/tests/tests2/04_for.expect +10 -0
  78. data/ext/tcc/tcc-0.9.26/tests/tests2/05_array.c +21 -0
  79. data/ext/tcc/tcc-0.9.26/tests/tests2/05_array.expect +10 -0
  80. data/ext/tcc/tcc-0.9.26/tests/tests2/06_case.c +29 -0
  81. data/ext/tcc/tcc-0.9.26/tests/tests2/06_case.expect +8 -0
  82. data/ext/tcc/tcc-0.9.26/tests/tests2/07_function.c +30 -0
  83. data/ext/tcc/tcc-0.9.26/tests/tests2/07_function.expect +4 -0
  84. data/ext/tcc/tcc-0.9.26/tests/tests2/08_while.c +24 -0
  85. data/ext/tcc/tcc-0.9.26/tests/tests2/08_while.expect +11 -0
  86. data/ext/tcc/tcc-0.9.26/tests/tests2/09_do_while.c +24 -0
  87. data/ext/tcc/tcc-0.9.26/tests/tests2/09_do_while.expect +11 -0
  88. data/ext/tcc/tcc-0.9.26/tests/tests2/10_pointer.c +40 -0
  89. data/ext/tcc/tcc-0.9.26/tests/tests2/10_pointer.expect +8 -0
  90. data/ext/tcc/tcc-0.9.26/tests/tests2/11_precedence.c +40 -0
  91. data/ext/tcc/tcc-0.9.26/tests/tests2/11_precedence.expect +15 -0
  92. data/ext/tcc/tcc-0.9.26/tests/tests2/12_hashdefine.c +14 -0
  93. data/ext/tcc/tcc-0.9.26/tests/tests2/12_hashdefine.expect +2 -0
  94. data/ext/tcc/tcc-0.9.26/tests/tests2/13_integer_literals.c +20 -0
  95. data/ext/tcc/tcc-0.9.26/tests/tests2/13_integer_literals.expect +5 -0
  96. data/ext/tcc/tcc-0.9.26/tests/tests2/14_if.c +21 -0
  97. data/ext/tcc/tcc-0.9.26/tests/tests2/14_if.expect +2 -0
  98. data/ext/tcc/tcc-0.9.26/tests/tests2/15_recursion.c +21 -0
  99. data/ext/tcc/tcc-0.9.26/tests/tests2/15_recursion.expect +10 -0
  100. data/ext/tcc/tcc-0.9.26/tests/tests2/16_nesting.c +21 -0
  101. data/ext/tcc/tcc-0.9.26/tests/tests2/16_nesting.expect +18 -0
  102. data/ext/tcc/tcc-0.9.26/tests/tests2/17_enum.c +29 -0
  103. data/ext/tcc/tcc-0.9.26/tests/tests2/17_enum.expect +3 -0
  104. data/ext/tcc/tcc-0.9.26/tests/tests2/18_include.c +12 -0
  105. data/ext/tcc/tcc-0.9.26/tests/tests2/18_include.expect +3 -0
  106. data/ext/tcc/tcc-0.9.26/tests/tests2/18_include.h +1 -0
  107. data/ext/tcc/tcc-0.9.26/tests/tests2/19_pointer_arithmetic.c +28 -0
  108. data/ext/tcc/tcc-0.9.26/tests/tests2/19_pointer_arithmetic.expect +3 -0
  109. data/ext/tcc/tcc-0.9.26/tests/tests2/20_pointer_comparison.c +24 -0
  110. data/ext/tcc/tcc-0.9.26/tests/tests2/20_pointer_comparison.expect +6 -0
  111. data/ext/tcc/tcc-0.9.26/tests/tests2/21_char_array.c +33 -0
  112. data/ext/tcc/tcc-0.9.26/tests/tests2/21_char_array.expect +7 -0
  113. data/ext/tcc/tcc-0.9.26/tests/tests2/22_floating_point.c +50 -0
  114. data/ext/tcc/tcc-0.9.26/tests/tests2/22_floating_point.expect +16 -0
  115. data/ext/tcc/tcc-0.9.26/tests/tests2/23_type_coercion.c +54 -0
  116. data/ext/tcc/tcc-0.9.26/tests/tests2/23_type_coercion.expect +12 -0
  117. data/ext/tcc/tcc-0.9.26/tests/tests2/24_math_library.c +28 -0
  118. data/ext/tcc/tcc-0.9.26/tests/tests2/24_math_library.expect +18 -0
  119. data/ext/tcc/tcc-0.9.26/tests/tests2/25_quicksort.c +83 -0
  120. data/ext/tcc/tcc-0.9.26/tests/tests2/25_quicksort.expect +2 -0
  121. data/ext/tcc/tcc-0.9.26/tests/tests2/26_character_constants.c +17 -0
  122. data/ext/tcc/tcc-0.9.26/tests/tests2/26_character_constants.expect +8 -0
  123. data/ext/tcc/tcc-0.9.26/tests/tests2/27_sizeof.c +16 -0
  124. data/ext/tcc/tcc-0.9.26/tests/tests2/27_sizeof.expect +3 -0
  125. data/ext/tcc/tcc-0.9.26/tests/tests2/28_strings.c +46 -0
  126. data/ext/tcc/tcc-0.9.26/tests/tests2/28_strings.expect +19 -0
  127. data/ext/tcc/tcc-0.9.26/tests/tests2/29_array_address.c +13 -0
  128. data/ext/tcc/tcc-0.9.26/tests/tests2/29_array_address.expect +1 -0
  129. data/ext/tcc/tcc-0.9.26/tests/tests2/30_hanoi.c +122 -0
  130. data/ext/tcc/tcc-0.9.26/tests/tests2/30_hanoi.expect +71 -0
  131. data/ext/tcc/tcc-0.9.26/tests/tests2/31_args.c +14 -0
  132. data/ext/tcc/tcc-0.9.26/tests/tests2/31_args.expect +7 -0
  133. data/ext/tcc/tcc-0.9.26/tests/tests2/32_led.c +266 -0
  134. data/ext/tcc/tcc-0.9.26/tests/tests2/32_led.expect +4 -0
  135. data/ext/tcc/tcc-0.9.26/tests/tests2/33_ternary_op.c +15 -0
  136. data/ext/tcc/tcc-0.9.26/tests/tests2/33_ternary_op.expect +10 -0
  137. data/ext/tcc/tcc-0.9.26/tests/tests2/34_array_assignment.c +23 -0
  138. data/ext/tcc/tcc-0.9.26/tests/tests2/34_array_assignment.expect +2 -0
  139. data/ext/tcc/tcc-0.9.26/tests/tests2/35_sizeof.c +14 -0
  140. data/ext/tcc/tcc-0.9.26/tests/tests2/35_sizeof.expect +2 -0
  141. data/ext/tcc/tcc-0.9.26/tests/tests2/36_array_initialisers.c +21 -0
  142. data/ext/tcc/tcc-0.9.26/tests/tests2/36_array_initialisers.expect +20 -0
  143. data/ext/tcc/tcc-0.9.26/tests/tests2/37_sprintf.c +17 -0
  144. data/ext/tcc/tcc-0.9.26/tests/tests2/37_sprintf.expect +20 -0
  145. data/ext/tcc/tcc-0.9.26/tests/tests2/38_multiple_array_index.c +32 -0
  146. data/ext/tcc/tcc-0.9.26/tests/tests2/38_multiple_array_index.expect +4 -0
  147. data/ext/tcc/tcc-0.9.26/tests/tests2/39_typedef.c +31 -0
  148. data/ext/tcc/tcc-0.9.26/tests/tests2/39_typedef.expect +3 -0
  149. data/ext/tcc/tcc-0.9.26/tests/tests2/40_stdio.c +52 -0
  150. data/ext/tcc/tcc-0.9.26/tests/tests2/40_stdio.expect +27 -0
  151. data/ext/tcc/tcc-0.9.26/tests/tests2/41_hashif.c +85 -0
  152. data/ext/tcc/tcc-0.9.26/tests/tests2/41_hashif.expect +6 -0
  153. data/ext/tcc/tcc-0.9.26/tests/tests2/42_function_pointer.c +18 -0
  154. data/ext/tcc/tcc-0.9.26/tests/tests2/42_function_pointer.expect +2 -0
  155. data/ext/tcc/tcc-0.9.26/tests/tests2/43_void_param.c +15 -0
  156. data/ext/tcc/tcc-0.9.26/tests/tests2/43_void_param.expect +1 -0
  157. data/ext/tcc/tcc-0.9.26/tests/tests2/44_scoped_declarations.c +17 -0
  158. data/ext/tcc/tcc-0.9.26/tests/tests2/44_scoped_declarations.expect +1 -0
  159. data/ext/tcc/tcc-0.9.26/tests/tests2/45_empty_for.c +18 -0
  160. data/ext/tcc/tcc-0.9.26/tests/tests2/45_empty_for.expect +10 -0
  161. data/ext/tcc/tcc-0.9.26/tests/tests2/46_grep.c +564 -0
  162. data/ext/tcc/tcc-0.9.26/tests/tests2/47_switch_return.c +24 -0
  163. data/ext/tcc/tcc-0.9.26/tests/tests2/47_switch_return.expect +4 -0
  164. data/ext/tcc/tcc-0.9.26/tests/tests2/48_nested_break.c +26 -0
  165. data/ext/tcc/tcc-0.9.26/tests/tests2/48_nested_break.expect +1 -0
  166. data/ext/tcc/tcc-0.9.26/tests/tests2/49_bracket_evaluation.c +23 -0
  167. data/ext/tcc/tcc-0.9.26/tests/tests2/49_bracket_evaluation.expect +1 -0
  168. data/ext/tcc/tcc-0.9.26/tests/tests2/50_logical_second_arg.c +29 -0
  169. data/ext/tcc/tcc-0.9.26/tests/tests2/50_logical_second_arg.expect +20 -0
  170. data/ext/tcc/tcc-0.9.26/tests/tests2/51_static.c +30 -0
  171. data/ext/tcc/tcc-0.9.26/tests/tests2/51_static.expect +8 -0
  172. data/ext/tcc/tcc-0.9.26/tests/tests2/52_unnamed_enum.c +27 -0
  173. data/ext/tcc/tcc-0.9.26/tests/tests2/52_unnamed_enum.expect +9 -0
  174. data/ext/tcc/tcc-0.9.26/tests/tests2/54_goto.c +56 -0
  175. data/ext/tcc/tcc-0.9.26/tests/tests2/54_goto.expect +8 -0
  176. data/ext/tcc/tcc-0.9.26/tests/tests2/55_lshift_type.c +52 -0
  177. data/ext/tcc/tcc-0.9.26/tests/tests2/55_lshift_type.expect +1 -0
  178. data/ext/tcc/tcc-0.9.26/tests/tests2/LICENSE +37 -0
  179. data/ext/tcc/tcc-0.9.26/tests/tests2/Makefile +98 -0
  180. data/ext/tcc/tcc-0.9.26/texi2pod.pl +427 -0
  181. data/ext/tcc/tcc-0.9.26/win32/build-tcc.bat +60 -0
  182. data/ext/tcc/tcc-0.9.26/win32/examples/dll.c +12 -0
  183. data/ext/tcc/tcc-0.9.26/win32/examples/fib.c +23 -0
  184. data/ext/tcc/tcc-0.9.26/win32/examples/hello_dll.c +19 -0
  185. data/ext/tcc/tcc-0.9.26/win32/examples/hello_win.c +163 -0
  186. data/ext/tcc/tcc-0.9.26/win32/include/_mingw.h +139 -0
  187. data/ext/tcc/tcc-0.9.26/win32/include/assert.h +54 -0
  188. data/ext/tcc/tcc-0.9.26/win32/include/conio.h +409 -0
  189. data/ext/tcc/tcc-0.9.26/win32/include/ctype.h +281 -0
  190. data/ext/tcc/tcc-0.9.26/win32/include/dir.h +31 -0
  191. data/ext/tcc/tcc-0.9.26/win32/include/direct.h +68 -0
  192. data/ext/tcc/tcc-0.9.26/win32/include/dirent.h +135 -0
  193. data/ext/tcc/tcc-0.9.26/win32/include/dos.h +55 -0
  194. data/ext/tcc/tcc-0.9.26/win32/include/errno.h +75 -0
  195. data/ext/tcc/tcc-0.9.26/win32/include/excpt.h +123 -0
  196. data/ext/tcc/tcc-0.9.26/win32/include/fcntl.h +52 -0
  197. data/ext/tcc/tcc-0.9.26/win32/include/fenv.h +108 -0
  198. data/ext/tcc/tcc-0.9.26/win32/include/inttypes.h +297 -0
  199. data/ext/tcc/tcc-0.9.26/win32/include/io.h +418 -0
  200. data/ext/tcc/tcc-0.9.26/win32/include/limits.h +111 -0
  201. data/ext/tcc/tcc-0.9.26/win32/include/locale.h +91 -0
  202. data/ext/tcc/tcc-0.9.26/win32/include/malloc.h +175 -0
  203. data/ext/tcc/tcc-0.9.26/win32/include/math.h +777 -0
  204. data/ext/tcc/tcc-0.9.26/win32/include/mem.h +13 -0
  205. data/ext/tcc/tcc-0.9.26/win32/include/memory.h +40 -0
  206. data/ext/tcc/tcc-0.9.26/win32/include/process.h +176 -0
  207. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/conio_s.h +42 -0
  208. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/crtdbg_s.h +19 -0
  209. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/io_s.h +33 -0
  210. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/mbstring_s.h +52 -0
  211. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/search_s.h +25 -0
  212. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/stdio_s.h +145 -0
  213. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/stdlib_s.h +67 -0
  214. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/stralign_s.h +30 -0
  215. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/string_s.h +41 -0
  216. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/sys/timeb_s.h +34 -0
  217. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/tchar_s.h +266 -0
  218. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/time_s.h +61 -0
  219. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/wchar_s.h +128 -0
  220. data/ext/tcc/tcc-0.9.26/win32/include/setjmp.h +160 -0
  221. data/ext/tcc/tcc-0.9.26/win32/include/share.h +28 -0
  222. data/ext/tcc/tcc-0.9.26/win32/include/signal.h +63 -0
  223. data/ext/tcc/tcc-0.9.26/win32/include/stdint.h +209 -0
  224. data/ext/tcc/tcc-0.9.26/win32/include/stdio.h +429 -0
  225. data/ext/tcc/tcc-0.9.26/win32/include/stdlib.h +580 -0
  226. data/ext/tcc/tcc-0.9.26/win32/include/string.h +164 -0
  227. data/ext/tcc/tcc-0.9.26/win32/include/sys/fcntl.h +13 -0
  228. data/ext/tcc/tcc-0.9.26/win32/include/sys/file.h +14 -0
  229. data/ext/tcc/tcc-0.9.26/win32/include/sys/locking.h +30 -0
  230. data/ext/tcc/tcc-0.9.26/win32/include/sys/stat.h +290 -0
  231. data/ext/tcc/tcc-0.9.26/win32/include/sys/time.h +69 -0
  232. data/ext/tcc/tcc-0.9.26/win32/include/sys/timeb.h +133 -0
  233. data/ext/tcc/tcc-0.9.26/win32/include/sys/types.h +118 -0
  234. data/ext/tcc/tcc-0.9.26/win32/include/sys/unistd.h +14 -0
  235. data/ext/tcc/tcc-0.9.26/win32/include/sys/utime.h +146 -0
  236. data/ext/tcc/tcc-0.9.26/win32/include/tchar.h +1102 -0
  237. data/ext/tcc/tcc-0.9.26/win32/include/time.h +287 -0
  238. data/ext/tcc/tcc-0.9.26/win32/include/vadefs.h +11 -0
  239. data/ext/tcc/tcc-0.9.26/win32/include/values.h +4 -0
  240. data/ext/tcc/tcc-0.9.26/win32/include/wchar.h +871 -0
  241. data/ext/tcc/tcc-0.9.26/win32/include/wctype.h +172 -0
  242. data/ext/tcc/tcc-0.9.26/win32/include/winapi/basetsd.h +149 -0
  243. data/ext/tcc/tcc-0.9.26/win32/include/winapi/basetyps.h +85 -0
  244. data/ext/tcc/tcc-0.9.26/win32/include/winapi/guiddef.h +151 -0
  245. data/ext/tcc/tcc-0.9.26/win32/include/winapi/intrin.h +11 -0
  246. data/ext/tcc/tcc-0.9.26/win32/include/winapi/poppack.h +8 -0
  247. data/ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack1.h +8 -0
  248. data/ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack2.h +8 -0
  249. data/ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack4.h +8 -0
  250. data/ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack8.h +8 -0
  251. data/ext/tcc/tcc-0.9.26/win32/include/winapi/reason.h +80 -0
  252. data/ext/tcc/tcc-0.9.26/win32/include/winapi/specstrings.h +7 -0
  253. data/ext/tcc/tcc-0.9.26/win32/include/winapi/stralign.h +154 -0
  254. data/ext/tcc/tcc-0.9.26/win32/include/winapi/tvout.h +79 -0
  255. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winbase.h +2951 -0
  256. data/ext/tcc/tcc-0.9.26/win32/include/winapi/wincon.h +301 -0
  257. data/ext/tcc/tcc-0.9.26/win32/include/winapi/windef.h +293 -0
  258. data/ext/tcc/tcc-0.9.26/win32/include/winapi/windows.h +123 -0
  259. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winerror.h +3166 -0
  260. data/ext/tcc/tcc-0.9.26/win32/include/winapi/wingdi.h +4080 -0
  261. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winnetwk.h +476 -0
  262. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winnls.h +765 -0
  263. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winnt.h +5770 -0
  264. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winreg.h +272 -0
  265. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winuser.h +5651 -0
  266. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winver.h +160 -0
  267. data/ext/tcc/tcc-0.9.26/win32/lib/chkstk.S +191 -0
  268. data/ext/tcc/tcc-0.9.26/win32/lib/crt1.c +34 -0
  269. data/ext/tcc/tcc-0.9.26/win32/lib/dllcrt1.c +13 -0
  270. data/ext/tcc/tcc-0.9.26/win32/lib/dllmain.c +9 -0
  271. data/ext/tcc/tcc-0.9.26/win32/lib/gdi32.def +337 -0
  272. data/ext/tcc/tcc-0.9.26/win32/lib/kernel32.def +765 -0
  273. data/ext/tcc/tcc-0.9.26/win32/lib/msvcrt.def +1399 -0
  274. data/ext/tcc/tcc-0.9.26/win32/lib/user32.def +654 -0
  275. data/ext/tcc/tcc-0.9.26/win32/lib/wincrt1.c +64 -0
  276. data/ext/tcc/tcc-0.9.26/win32/tcc-win32.txt +156 -0
  277. data/ext/tcc/tcc-0.9.26/win32/tools/tiny_impdef.c +243 -0
  278. data/ext/tcc/tcc-0.9.26/win32/tools/tiny_libmaker.c +258 -0
  279. data/ext/tcc/tcc-0.9.26/x86_64-asm.h +448 -0
  280. data/ext/tcc/tcc-0.9.26/x86_64-gen.c +1701 -0
  281. data/lib/tcc.rb +291 -0
  282. data/tcc.gemspec +15 -0
  283. metadata +343 -0
@@ -0,0 +1,172 @@
1
+ /**
2
+ * This file has no copyright assigned and is placed in the Public Domain.
3
+ * This file is part of the w64 mingw-runtime package.
4
+ * No warranty is given; refer to the file DISCLAIMER within this package.
5
+ */
6
+ #ifndef _INC_WCTYPE
7
+ #define _INC_WCTYPE
8
+
9
+ #ifndef _WIN32
10
+ #error Only Win32 target is supported!
11
+ #endif
12
+
13
+ #include <_mingw.h>
14
+
15
+ #pragma pack(push,_CRT_PACKING)
16
+
17
+ #ifdef __cplusplus
18
+ extern "C" {
19
+ #endif
20
+
21
+ #ifndef _CRTIMP
22
+ #define _CRTIMP __declspec(dllimport)
23
+ #endif
24
+
25
+ #ifndef _WCHAR_T_DEFINED
26
+ typedef unsigned short wchar_t;
27
+ #define _WCHAR_T_DEFINED
28
+ #endif
29
+
30
+ #ifndef _WCTYPE_T_DEFINED
31
+ typedef unsigned short wint_t;
32
+ typedef unsigned short wctype_t;
33
+ #define _WCTYPE_T_DEFINED
34
+ #endif
35
+
36
+ #ifndef WEOF
37
+ #define WEOF (wint_t)(0xFFFF)
38
+ #endif
39
+
40
+ #ifndef _CRT_CTYPEDATA_DEFINED
41
+ #define _CRT_CTYPEDATA_DEFINED
42
+ #ifndef _CTYPE_DISABLE_MACROS
43
+
44
+ #ifndef __PCTYPE_FUNC
45
+ #define __PCTYPE_FUNC __pctype_func()
46
+ #ifdef _MSVCRT_
47
+ #define __pctype_func() (_pctype)
48
+ #else
49
+ #define __pctype_func() (*_imp___pctype)
50
+ #endif
51
+ #endif
52
+
53
+ #ifndef _pctype
54
+ #ifdef _MSVCRT_
55
+ extern unsigned short *_pctype;
56
+ #else
57
+ extern unsigned short **_imp___pctype;
58
+ #define _pctype (*_imp___pctype)
59
+ #endif
60
+ #endif
61
+
62
+ #endif
63
+ #endif
64
+
65
+ #ifndef _CRT_WCTYPEDATA_DEFINED
66
+ #define _CRT_WCTYPEDATA_DEFINED
67
+ #ifndef _CTYPE_DISABLE_MACROS
68
+ #ifndef _wctype
69
+ #ifdef _MSVCRT_
70
+ extern unsigned short *_wctype;
71
+ #else
72
+ extern unsigned short **_imp___wctype;
73
+ #define _wctype (*_imp___wctype)
74
+ #endif
75
+ #endif
76
+
77
+ #ifndef _pwctype
78
+ #ifdef _MSVCRT_
79
+ extern unsigned short *_pwctype;
80
+ #else
81
+ extern unsigned short **_imp___pwctype;
82
+ #define _pwctype (*_imp___pwctype)
83
+ #define __pwctype_func() (*_imp___pwctype)
84
+ #endif
85
+ #endif
86
+ #endif
87
+ #endif
88
+
89
+ #define _UPPER 0x1
90
+ #define _LOWER 0x2
91
+ #define _DIGIT 0x4
92
+ #define _SPACE 0x8
93
+
94
+ #define _PUNCT 0x10
95
+ #define _CONTROL 0x20
96
+ #define _BLANK 0x40
97
+ #define _HEX 0x80
98
+
99
+ #define _LEADBYTE 0x8000
100
+ #define _ALPHA (0x0100|_UPPER|_LOWER)
101
+
102
+ #ifndef _WCTYPE_DEFINED
103
+ #define _WCTYPE_DEFINED
104
+
105
+ int __cdecl iswalpha(wint_t);
106
+ int __cdecl iswupper(wint_t);
107
+ int __cdecl iswlower(wint_t);
108
+ int __cdecl iswdigit(wint_t);
109
+ int __cdecl iswxdigit(wint_t);
110
+ int __cdecl iswspace(wint_t);
111
+ int __cdecl iswpunct(wint_t);
112
+ int __cdecl iswalnum(wint_t);
113
+ int __cdecl iswprint(wint_t);
114
+ int __cdecl iswgraph(wint_t);
115
+ int __cdecl iswcntrl(wint_t);
116
+ int __cdecl iswascii(wint_t);
117
+ int __cdecl isleadbyte(int);
118
+ wint_t __cdecl towupper(wint_t);
119
+ wint_t __cdecl towlower(wint_t);
120
+ int __cdecl iswctype(wint_t,wctype_t);
121
+ _CRTIMP int __cdecl __iswcsymf(wint_t);
122
+ _CRTIMP int __cdecl __iswcsym(wint_t);
123
+ int __cdecl is_wctype(wint_t,wctype_t);
124
+ #if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || !defined (NO_OLDNAMES)
125
+ int __cdecl isblank(int _C);
126
+ #endif
127
+ #endif
128
+
129
+ #ifndef _WCTYPE_INLINE_DEFINED
130
+ #define _WCTYPE_INLINE_DEFINED
131
+ #ifndef __cplusplus
132
+ #define iswalpha(_c) (iswctype(_c,_ALPHA))
133
+ #define iswupper(_c) (iswctype(_c,_UPPER))
134
+ #define iswlower(_c) (iswctype(_c,_LOWER))
135
+ #define iswdigit(_c) (iswctype(_c,_DIGIT))
136
+ #define iswxdigit(_c) (iswctype(_c,_HEX))
137
+ #define iswspace(_c) (iswctype(_c,_SPACE))
138
+ #define iswpunct(_c) (iswctype(_c,_PUNCT))
139
+ #define iswalnum(_c) (iswctype(_c,_ALPHA|_DIGIT))
140
+ #define iswprint(_c) (iswctype(_c,_BLANK|_PUNCT|_ALPHA|_DIGIT))
141
+ #define iswgraph(_c) (iswctype(_c,_PUNCT|_ALPHA|_DIGIT))
142
+ #define iswcntrl(_c) (iswctype(_c,_CONTROL))
143
+ #define iswascii(_c) ((unsigned)(_c) < 0x80)
144
+ #define isleadbyte(c) (__pctype_func()[(unsigned char)(c)] & _LEADBYTE)
145
+ #else
146
+ __CRT_INLINE int __cdecl iswalpha(wint_t _C) {return (iswctype(_C,_ALPHA)); }
147
+ __CRT_INLINE int __cdecl iswupper(wint_t _C) {return (iswctype(_C,_UPPER)); }
148
+ __CRT_INLINE int __cdecl iswlower(wint_t _C) {return (iswctype(_C,_LOWER)); }
149
+ __CRT_INLINE int __cdecl iswdigit(wint_t _C) {return (iswctype(_C,_DIGIT)); }
150
+ __CRT_INLINE int __cdecl iswxdigit(wint_t _C) {return (iswctype(_C,_HEX)); }
151
+ __CRT_INLINE int __cdecl iswspace(wint_t _C) {return (iswctype(_C,_SPACE)); }
152
+ __CRT_INLINE int __cdecl iswpunct(wint_t _C) {return (iswctype(_C,_PUNCT)); }
153
+ __CRT_INLINE int __cdecl iswalnum(wint_t _C) {return (iswctype(_C,_ALPHA|_DIGIT)); }
154
+ __CRT_INLINE int __cdecl iswprint(wint_t _C) {return (iswctype(_C,_BLANK|_PUNCT|_ALPHA|_DIGIT)); }
155
+ __CRT_INLINE int __cdecl iswgraph(wint_t _C) {return (iswctype(_C,_PUNCT|_ALPHA|_DIGIT)); }
156
+ __CRT_INLINE int __cdecl iswcntrl(wint_t _C) {return (iswctype(_C,_CONTROL)); }
157
+ __CRT_INLINE int __cdecl iswascii(wint_t _C) {return ((unsigned)(_C) < 0x80); }
158
+ __CRT_INLINE int __cdecl isleadbyte(int _C) {return (__pctype_func()[(unsigned char)(_C)] & _LEADBYTE); }
159
+ #endif
160
+ #endif
161
+
162
+ typedef wchar_t wctrans_t;
163
+ wint_t __cdecl towctrans(wint_t,wctrans_t);
164
+ wctrans_t __cdecl wctrans(const char *);
165
+ wctype_t __cdecl wctype(const char *);
166
+
167
+ #ifdef __cplusplus
168
+ }
169
+ #endif
170
+
171
+ #pragma pack(pop)
172
+ #endif
@@ -0,0 +1,149 @@
1
+ /**
2
+ * This file has no copyright assigned and is placed in the Public Domain.
3
+ * This file is part of the w64 mingw-runtime package.
4
+ * No warranty is given; refer to the file DISCLAIMER within this package.
5
+ */
6
+ #ifndef _BASETSD_H_
7
+ #define _BASETSD_H_
8
+
9
+ #if (defined(__x86_64) || defined(__ia64__)) && !defined(RC_INVOKED)
10
+ typedef unsigned __int64 POINTER_64_INT;
11
+ #else
12
+ typedef unsigned long POINTER_64_INT;
13
+ #endif
14
+
15
+ #define POINTER_32
16
+ #define POINTER_64
17
+ #define FIRMWARE_PTR
18
+
19
+ #ifdef __cplusplus
20
+ extern "C" {
21
+ #endif
22
+
23
+ typedef signed char INT8,*PINT8;
24
+ typedef signed short INT16,*PINT16;
25
+ typedef signed int INT32,*PINT32;
26
+ typedef signed __int64 INT64,*PINT64;
27
+ typedef unsigned char UINT8,*PUINT8;
28
+ typedef unsigned short UINT16,*PUINT16;
29
+ typedef unsigned int UINT32,*PUINT32;
30
+ typedef unsigned __int64 UINT64,*PUINT64;
31
+ typedef signed int LONG32,*PLONG32;
32
+ typedef unsigned int ULONG32,*PULONG32;
33
+ typedef unsigned int DWORD32,*PDWORD32;
34
+
35
+ #ifndef _W64
36
+ #define _W64
37
+ #endif
38
+
39
+ #ifdef _WIN64
40
+ typedef __int64 INT_PTR,*PINT_PTR;
41
+ typedef unsigned __int64 UINT_PTR,*PUINT_PTR;
42
+ typedef __int64 LONG_PTR,*PLONG_PTR;
43
+ typedef unsigned __int64 ULONG_PTR,*PULONG_PTR;
44
+ #define __int3264 __int64
45
+ #else
46
+ typedef int INT_PTR,*PINT_PTR;
47
+ typedef unsigned int UINT_PTR,*PUINT_PTR;
48
+ typedef long LONG_PTR,*PLONG_PTR;
49
+ typedef unsigned long ULONG_PTR,*PULONG_PTR;
50
+ #define __int3264 __int32
51
+ #endif
52
+
53
+ #ifdef _WIN64
54
+ #define ADDRESS_TAG_BIT 0x40000000000ULL
55
+ typedef __int64 SHANDLE_PTR;
56
+ typedef unsigned __int64 HANDLE_PTR;
57
+ typedef unsigned int UHALF_PTR,*PUHALF_PTR;
58
+ typedef int HALF_PTR,*PHALF_PTR;
59
+
60
+ static __inline unsigned long HandleToULong(const void *h) { return((unsigned long) (ULONG_PTR) h); }
61
+ static __inline long HandleToLong(const void *h) { return((long) (LONG_PTR) h); }
62
+ static __inline void *ULongToHandle(const unsigned long h) { return((void *) (UINT_PTR) h); }
63
+ static __inline void *LongToHandle(const long h) { return((void *) (INT_PTR) h); }
64
+ static __inline unsigned long PtrToUlong(const void *p) { return((unsigned long) (ULONG_PTR) p); }
65
+ static __inline unsigned int PtrToUint(const void *p) { return((unsigned int) (UINT_PTR) p); }
66
+ static __inline unsigned short PtrToUshort(const void *p) { return((unsigned short) (unsigned long) (ULONG_PTR) p); }
67
+ static __inline long PtrToLong(const void *p) { return((long) (LONG_PTR) p); }
68
+ static __inline int PtrToInt(const void *p) { return((int) (INT_PTR) p); }
69
+ static __inline short PtrToShort(const void *p) { return((short) (long) (LONG_PTR) p); }
70
+ static __inline void *IntToPtr(const int i) { return((void *)(INT_PTR)i); }
71
+ static __inline void *UIntToPtr(const unsigned int ui) { return((void *)(UINT_PTR)ui); }
72
+ static __inline void *LongToPtr(const long l) { return((void *)(LONG_PTR)l); }
73
+ static __inline void *ULongToPtr(const unsigned long ul) { return((void *)(ULONG_PTR)ul); }
74
+
75
+ #define PtrToPtr64(p) ((void *) p)
76
+ #define Ptr64ToPtr(p) ((void *) p)
77
+ #define HandleToHandle64(h) (PtrToPtr64(h))
78
+ #define Handle64ToHandle(h) (Ptr64ToPtr(h))
79
+
80
+ static __inline void *Ptr32ToPtr(const void *p) { return (void *)p; }
81
+ static __inline void *Handle32ToHandle(const void *h) { return((void *) h); }
82
+ static __inline void *PtrToPtr32(const void *p) { return((void *) (ULONG_PTR) p); }
83
+
84
+ #define HandleToHandle32(h) (PtrToPtr32(h))
85
+ #else
86
+
87
+ #define ADDRESS_TAG_BIT 0x80000000UL
88
+
89
+ typedef unsigned short UHALF_PTR,*PUHALF_PTR;
90
+ typedef short HALF_PTR,*PHALF_PTR;
91
+ typedef long SHANDLE_PTR;
92
+ typedef unsigned long HANDLE_PTR;
93
+
94
+ #define HandleToULong(h) ((ULONG)(ULONG_PTR)(h))
95
+ #define HandleToLong(h) ((LONG)(LONG_PTR) (h))
96
+ #define ULongToHandle(ul) ((HANDLE)(ULONG_PTR) (ul))
97
+ #define LongToHandle(h) ((HANDLE)(LONG_PTR) (h))
98
+ #define PtrToUlong(p) ((ULONG)(ULONG_PTR) (p))
99
+ #define PtrToLong(p) ((LONG)(LONG_PTR) (p))
100
+ #define PtrToUint(p) ((UINT)(UINT_PTR) (p))
101
+ #define PtrToInt(p) ((INT)(INT_PTR) (p))
102
+ #define PtrToUshort(p) ((unsigned short)(ULONG_PTR)(p))
103
+ #define PtrToShort(p) ((short)(LONG_PTR)(p))
104
+ #define IntToPtr(i) ((VOID *)(INT_PTR)((int)i))
105
+ #define UIntToPtr(ui) ((VOID *)(UINT_PTR)((unsigned int)ui))
106
+ #define LongToPtr(l) ((VOID *)(LONG_PTR)((long)l))
107
+ #define ULongToPtr(ul) ((VOID *)(ULONG_PTR)((unsigned long)ul))
108
+
109
+ static __inline void *PtrToPtr64(const void *p) { return((void *) (ULONG_PTR)p); }
110
+ static __inline void *Ptr64ToPtr(const void *p) { return((void *) (ULONG_PTR) p); }
111
+ static __inline void *HandleToHandle64(const void *h) { return((void *) h); }
112
+ static __inline void *Handle64ToHandle(const void *h) { return((void *) (ULONG_PTR) h); }
113
+
114
+ #define Ptr32ToPtr(p) ((void *) p)
115
+ #define Handle32ToHandle(h) (Ptr32ToPtr(h))
116
+ #define PtrToPtr32(p) ((void *) p)
117
+ #define HandleToHandle32(h) (PtrToPtr32(h))
118
+ #endif
119
+
120
+ #define HandleToUlong(h) HandleToULong(h)
121
+ #define UlongToHandle(ul) ULongToHandle(ul)
122
+ #define UlongToPtr(ul) ULongToPtr(ul)
123
+ #define UintToPtr(ui) UIntToPtr(ui)
124
+
125
+ #define MAXUINT_PTR (~((UINT_PTR)0))
126
+ #define MAXINT_PTR ((INT_PTR)(MAXUINT_PTR >> 1))
127
+ #define MININT_PTR (~MAXINT_PTR)
128
+
129
+ #define MAXULONG_PTR (~((ULONG_PTR)0))
130
+ #define MAXLONG_PTR ((LONG_PTR)(MAXULONG_PTR >> 1))
131
+ #define MINLONG_PTR (~MAXLONG_PTR)
132
+
133
+ #define MAXUHALF_PTR ((UHALF_PTR)~0)
134
+ #define MAXHALF_PTR ((HALF_PTR)(MAXUHALF_PTR >> 1))
135
+ #define MINHALF_PTR (~MAXHALF_PTR)
136
+
137
+ typedef ULONG_PTR SIZE_T,*PSIZE_T;
138
+ typedef LONG_PTR SSIZE_T,*PSSIZE_T;
139
+ typedef ULONG_PTR DWORD_PTR,*PDWORD_PTR;
140
+ typedef __int64 LONG64,*PLONG64;
141
+ typedef unsigned __int64 ULONG64,*PULONG64;
142
+ typedef unsigned __int64 DWORD64,*PDWORD64;
143
+ typedef ULONG_PTR KAFFINITY;
144
+ typedef KAFFINITY *PKAFFINITY;
145
+
146
+ #ifdef __cplusplus
147
+ }
148
+ #endif
149
+ #endif
@@ -0,0 +1,85 @@
1
+ /**
2
+ * This file has no copyright assigned and is placed in the Public Domain.
3
+ * This file is part of the w64 mingw-runtime package.
4
+ * No warranty is given; refer to the file DISCLAIMER within this package.
5
+ */
6
+ #if !defined(_BASETYPS_H_)
7
+ #define _BASETYPS_H_
8
+
9
+ #ifdef __cplusplus
10
+ #define EXTERN_C extern "C"
11
+ #else
12
+ #define EXTERN_C extern
13
+ #endif
14
+
15
+ #define STDMETHODCALLTYPE WINAPI
16
+ #define STDMETHODVCALLTYPE __cdecl
17
+
18
+ #define STDAPICALLTYPE WINAPI
19
+ #define STDAPIVCALLTYPE __cdecl
20
+
21
+ #define STDAPI EXTERN_C HRESULT WINAPI
22
+ #define STDAPI_(type) EXTERN_C type WINAPI
23
+
24
+ #define STDMETHODIMP HRESULT WINAPI
25
+ #define STDMETHODIMP_(type) type WINAPI
26
+
27
+ #define STDAPIV EXTERN_C HRESULT STDAPIVCALLTYPE
28
+ #define STDAPIV_(type) EXTERN_C type STDAPIVCALLTYPE
29
+
30
+ #define STDMETHODIMPV HRESULT STDMETHODVCALLTYPE
31
+ #define STDMETHODIMPV_(type) type STDMETHODVCALLTYPE
32
+
33
+ #if defined(__cplusplus) && !defined(CINTERFACE)
34
+
35
+ #define __STRUCT__ struct
36
+ #define STDMETHOD(method) virtual HRESULT WINAPI method
37
+ #define STDMETHOD_(type,method) virtual type WINAPI method
38
+ #define STDMETHODV(method) virtual HRESULT STDMETHODVCALLTYPE method
39
+ #define STDMETHODV_(type,method) virtual type STDMETHODVCALLTYPE method
40
+ #define PURE = 0
41
+ #define THIS_
42
+ #define THIS void
43
+ #define DECLARE_INTERFACE(iface) __STRUCT__ iface
44
+ #define DECLARE_INTERFACE_(iface,baseiface) __STRUCT__ iface : public baseiface
45
+ #else
46
+
47
+ #ifndef __OBJC__
48
+ #define interface struct
49
+ #endif
50
+
51
+ #define STDMETHOD(method) HRESULT (WINAPI *method)
52
+ #define STDMETHOD_(type,method) type (WINAPI *method)
53
+ #define STDMETHODV(method) HRESULT (STDMETHODVCALLTYPE *method)
54
+ #define STDMETHODV_(type,method) type (STDMETHODVCALLTYPE *method)
55
+
56
+ #define PURE
57
+ #define THIS_ INTERFACE *This,
58
+ #define THIS INTERFACE *This
59
+ #ifdef CONST_VTABLE
60
+ #define DECLARE_INTERFACE(iface) typedef struct iface { \
61
+ const struct iface##Vtbl *lpVtbl; } iface; \
62
+ typedef const struct iface##Vtbl iface##Vtbl; \
63
+ const struct iface##Vtbl
64
+ #else
65
+ #define DECLARE_INTERFACE(iface) typedef struct iface { \
66
+ struct iface##Vtbl *lpVtbl; \
67
+ } iface; \
68
+ typedef struct iface##Vtbl iface##Vtbl; \
69
+ struct iface##Vtbl
70
+ #endif
71
+ #define DECLARE_INTERFACE_(iface,baseiface) DECLARE_INTERFACE(iface)
72
+ #endif
73
+
74
+ #include <guiddef.h>
75
+
76
+ #ifndef _ERROR_STATUS_T_DEFINED
77
+ #define _ERROR_STATUS_T_DEFINED
78
+ typedef unsigned long error_status_t;
79
+ #endif
80
+
81
+ #ifndef _WCHAR_T_DEFINED
82
+ typedef unsigned short wchar_t;
83
+ #define _WCHAR_T_DEFINED
84
+ #endif
85
+ #endif
@@ -0,0 +1,151 @@
1
+ /**
2
+ * This file has no copyright assigned and is placed in the Public Domain.
3
+ * This file is part of the w64 mingw-runtime package.
4
+ * No warranty is given; refer to the file DISCLAIMER within this package.
5
+ */
6
+ #ifndef GUID_DEFINED
7
+ #define GUID_DEFINED
8
+ typedef struct _GUID {
9
+ unsigned long Data1;
10
+ unsigned short Data2;
11
+ unsigned short Data3;
12
+ unsigned char Data4[8 ];
13
+ } GUID;
14
+ #endif
15
+
16
+ #ifndef FAR
17
+ #define FAR
18
+ #endif
19
+
20
+ #ifndef DECLSPEC_SELECTANY
21
+ #define DECLSPEC_SELECTANY __declspec(selectany)
22
+ #endif
23
+
24
+ #ifndef EXTERN_C
25
+ #ifdef __cplusplus
26
+ #define EXTERN_C extern "C"
27
+ #else
28
+ #define EXTERN_C extern
29
+ #endif
30
+ #endif
31
+
32
+ #ifdef DEFINE_GUID
33
+ #undef DEFINE_GUID
34
+ #endif
35
+
36
+ #ifdef INITGUID
37
+ #ifdef __cplusplus
38
+ #define DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) EXTERN_C const GUID DECLSPEC_SELECTANY name = { l,w1,w2,{ b1,b2,b3,b4,b5,b6,b7,b8 } }
39
+ #else
40
+ #define DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) const GUID DECLSPEC_SELECTANY name = { l,w1,w2,{ b1,b2,b3,b4,b5,b6,b7,b8 } }
41
+ #endif
42
+ #else
43
+ #define DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) EXTERN_C const GUID name
44
+ #endif
45
+
46
+ #define DEFINE_OLEGUID(name,l,w1,w2) DEFINE_GUID(name,l,w1,w2,0xC0,0,0,0,0,0,0,0x46)
47
+
48
+ #ifndef _GUIDDEF_H_
49
+ #define _GUIDDEF_H_
50
+
51
+ #ifndef __LPGUID_DEFINED__
52
+ #define __LPGUID_DEFINED__
53
+ typedef GUID *LPGUID;
54
+ #endif
55
+
56
+ #ifndef __LPCGUID_DEFINED__
57
+ #define __LPCGUID_DEFINED__
58
+ typedef const GUID *LPCGUID;
59
+ #endif
60
+
61
+ #ifndef __IID_DEFINED__
62
+ #define __IID_DEFINED__
63
+
64
+ typedef GUID IID;
65
+ typedef IID *LPIID;
66
+ #define IID_NULL GUID_NULL
67
+ #define IsEqualIID(riid1,riid2) IsEqualGUID(riid1,riid2)
68
+ typedef GUID CLSID;
69
+ typedef CLSID *LPCLSID;
70
+ #define CLSID_NULL GUID_NULL
71
+ #define IsEqualCLSID(rclsid1,rclsid2) IsEqualGUID(rclsid1,rclsid2)
72
+ typedef GUID FMTID;
73
+ typedef FMTID *LPFMTID;
74
+ #define FMTID_NULL GUID_NULL
75
+ #define IsEqualFMTID(rfmtid1,rfmtid2) IsEqualGUID(rfmtid1,rfmtid2)
76
+
77
+ #ifdef __midl_proxy
78
+ #define __MIDL_CONST
79
+ #else
80
+ #define __MIDL_CONST const
81
+ #endif
82
+
83
+ #ifndef _REFGUID_DEFINED
84
+ #define _REFGUID_DEFINED
85
+ #ifdef __cplusplus
86
+ #define REFGUID const GUID &
87
+ #else
88
+ #define REFGUID const GUID *__MIDL_CONST
89
+ #endif
90
+ #endif
91
+
92
+ #ifndef _REFIID_DEFINED
93
+ #define _REFIID_DEFINED
94
+ #ifdef __cplusplus
95
+ #define REFIID const IID &
96
+ #else
97
+ #define REFIID const IID *__MIDL_CONST
98
+ #endif
99
+ #endif
100
+
101
+ #ifndef _REFCLSID_DEFINED
102
+ #define _REFCLSID_DEFINED
103
+ #ifdef __cplusplus
104
+ #define REFCLSID const IID &
105
+ #else
106
+ #define REFCLSID const IID *__MIDL_CONST
107
+ #endif
108
+ #endif
109
+
110
+ #ifndef _REFFMTID_DEFINED
111
+ #define _REFFMTID_DEFINED
112
+ #ifdef __cplusplus
113
+ #define REFFMTID const IID &
114
+ #else
115
+ #define REFFMTID const IID *__MIDL_CONST
116
+ #endif
117
+ #endif
118
+ #endif
119
+
120
+ #ifndef _SYS_GUID_OPERATORS_
121
+ #define _SYS_GUID_OPERATORS_
122
+ #include <string.h>
123
+
124
+ #ifdef __cplusplus
125
+ __inline int InlineIsEqualGUID(REFGUID rguid1,REFGUID rguid2) {
126
+ return (((unsigned long *) &rguid1)[0]==((unsigned long *) &rguid2)[0] && ((unsigned long *) &rguid1)[1]==((unsigned long *) &rguid2)[1] &&
127
+ ((unsigned long *) &rguid1)[2]==((unsigned long *) &rguid2)[2] && ((unsigned long *) &rguid1)[3]==((unsigned long *) &rguid2)[3]);
128
+ }
129
+ __inline int IsEqualGUID(REFGUID rguid1,REFGUID rguid2) { return !memcmp(&rguid1,&rguid2,sizeof(GUID)); }
130
+ #else
131
+ #define InlineIsEqualGUID(rguid1,rguid2) (((unsigned long *) rguid1)[0]==((unsigned long *) rguid2)[0] && ((unsigned long *) rguid1)[1]==((unsigned long *) rguid2)[1] && ((unsigned long *) rguid1)[2]==((unsigned long *) rguid2)[2] && ((unsigned long *) rguid1)[3]==((unsigned long *) rguid2)[3])
132
+ #define IsEqualGUID(rguid1,rguid2) (!memcmp(rguid1,rguid2,sizeof(GUID)))
133
+ #endif
134
+
135
+ #ifdef __INLINE_ISEQUAL_GUID
136
+ #undef IsEqualGUID
137
+ #define IsEqualGUID(rguid1,rguid2) InlineIsEqualGUID(rguid1,rguid2)
138
+ #endif
139
+
140
+ #define IsEqualIID(riid1,riid2) IsEqualGUID(riid1,riid2)
141
+ #define IsEqualCLSID(rclsid1,rclsid2) IsEqualGUID(rclsid1,rclsid2)
142
+
143
+ #if !defined _SYS_GUID_OPERATOR_EQ_ && !defined _NO_SYS_GUID_OPERATOR_EQ_
144
+ #define _SYS_GUID_OPERATOR_EQ_
145
+ #ifdef __cplusplus
146
+ __inline int operator==(REFGUID guidOne,REFGUID guidOther) { return IsEqualGUID(guidOne,guidOther); }
147
+ __inline int operator!=(REFGUID guidOne,REFGUID guidOther) { return !(guidOne==guidOther); }
148
+ #endif
149
+ #endif
150
+ #endif
151
+ #endif