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.
- checksums.yaml +7 -0
- data/LICENSE +35 -0
- data/README.md +196 -0
- data/ext/tcc/extconf.rb +25 -0
- data/ext/tcc/tcc-0.9.26.patch +30 -0
- data/ext/tcc/tcc-0.9.26/COPYING +504 -0
- data/ext/tcc/tcc-0.9.26/Changelog +396 -0
- data/ext/tcc/tcc-0.9.26/Makefile +349 -0
- data/ext/tcc/tcc-0.9.26/README +101 -0
- data/ext/tcc/tcc-0.9.26/TODO +93 -0
- data/ext/tcc/tcc-0.9.26/VERSION +1 -0
- data/ext/tcc/tcc-0.9.26/arm-gen.c +2005 -0
- data/ext/tcc/tcc-0.9.26/c67-gen.c +2560 -0
- data/ext/tcc/tcc-0.9.26/coff.h +446 -0
- data/ext/tcc/tcc-0.9.26/config.h +8 -0
- data/ext/tcc/tcc-0.9.26/config.mak +28 -0
- data/ext/tcc/tcc-0.9.26/config.texi +1 -0
- data/ext/tcc/tcc-0.9.26/configure +540 -0
- data/ext/tcc/tcc-0.9.26/conftest.c +71 -0
- data/ext/tcc/tcc-0.9.26/elf.h +1731 -0
- data/ext/tcc/tcc-0.9.26/examples/ex1.c +8 -0
- data/ext/tcc/tcc-0.9.26/examples/ex2.c +98 -0
- data/ext/tcc/tcc-0.9.26/examples/ex3.c +24 -0
- data/ext/tcc/tcc-0.9.26/examples/ex4.c +26 -0
- data/ext/tcc/tcc-0.9.26/examples/ex5.c +8 -0
- data/ext/tcc/tcc-0.9.26/i386-asm.c +1498 -0
- data/ext/tcc/tcc-0.9.26/i386-asm.h +473 -0
- data/ext/tcc/tcc-0.9.26/i386-gen.c +1096 -0
- data/ext/tcc/tcc-0.9.26/i386-tok.h +243 -0
- data/ext/tcc/tcc-0.9.26/il-gen.c +667 -0
- data/ext/tcc/tcc-0.9.26/il-opcodes.h +251 -0
- data/ext/tcc/tcc-0.9.26/include/float.h +57 -0
- data/ext/tcc/tcc-0.9.26/include/stdarg.h +41 -0
- data/ext/tcc/tcc-0.9.26/include/stdbool.h +10 -0
- data/ext/tcc/tcc-0.9.26/include/stddef.h +28 -0
- data/ext/tcc/tcc-0.9.26/include/tcclib.h +78 -0
- data/ext/tcc/tcc-0.9.26/include/varargs.h +12 -0
- data/ext/tcc/tcc-0.9.26/lib/Makefile +102 -0
- data/ext/tcc/tcc-0.9.26/lib/alloca86-bt.S +47 -0
- data/ext/tcc/tcc-0.9.26/lib/alloca86.S +35 -0
- data/ext/tcc/tcc-0.9.26/lib/alloca86_64.S +42 -0
- data/ext/tcc/tcc-0.9.26/lib/bcheck.c +875 -0
- data/ext/tcc/tcc-0.9.26/lib/libtcc1.c +691 -0
- data/ext/tcc/tcc-0.9.26/libtcc.c +1941 -0
- data/ext/tcc/tcc-0.9.26/libtcc.h +103 -0
- data/ext/tcc/tcc-0.9.26/stab.def +234 -0
- data/ext/tcc/tcc-0.9.26/stab.h +17 -0
- data/ext/tcc/tcc-0.9.26/tcc-doc.html +2332 -0
- data/ext/tcc/tcc-0.9.26/tcc-doc.info +1151 -0
- data/ext/tcc/tcc-0.9.26/tcc-doc.texi +1268 -0
- data/ext/tcc/tcc-0.9.26/tcc.1 +415 -0
- data/ext/tcc/tcc-0.9.26/tcc.c +352 -0
- data/ext/tcc/tcc-0.9.26/tcc.h +1379 -0
- data/ext/tcc/tcc-0.9.26/tccasm.c +1118 -0
- data/ext/tcc/tcc-0.9.26/tcccoff.c +948 -0
- data/ext/tcc/tcc-0.9.26/tccelf.c +3129 -0
- data/ext/tcc/tcc-0.9.26/tccgen.c +5841 -0
- data/ext/tcc/tcc-0.9.26/tccpe.c +1887 -0
- data/ext/tcc/tcc-0.9.26/tccpp.c +3128 -0
- data/ext/tcc/tcc-0.9.26/tccrun.c +737 -0
- data/ext/tcc/tcc-0.9.26/tcctok.h +278 -0
- data/ext/tcc/tcc-0.9.26/tests/Makefile +199 -0
- data/ext/tcc/tcc-0.9.26/tests/asmtest.S +609 -0
- data/ext/tcc/tcc-0.9.26/tests/boundtest.c +233 -0
- data/ext/tcc/tcc-0.9.26/tests/gcctestsuite.sh +33 -0
- data/ext/tcc/tcc-0.9.26/tests/libtcc_test.c +76 -0
- data/ext/tcc/tcc-0.9.26/tests/tcctest.c +2713 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/00_assignment.c +18 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/00_assignment.expect +3 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/01_comment.c +14 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/01_comment.expect +5 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/02_printf.c +18 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/02_printf.expect +15 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/03_struct.c +31 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/03_struct.expect +6 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/04_for.c +15 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/04_for.expect +10 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/05_array.c +21 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/05_array.expect +10 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/06_case.c +29 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/06_case.expect +8 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/07_function.c +30 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/07_function.expect +4 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/08_while.c +24 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/08_while.expect +11 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/09_do_while.c +24 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/09_do_while.expect +11 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/10_pointer.c +40 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/10_pointer.expect +8 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/11_precedence.c +40 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/11_precedence.expect +15 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/12_hashdefine.c +14 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/12_hashdefine.expect +2 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/13_integer_literals.c +20 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/13_integer_literals.expect +5 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/14_if.c +21 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/14_if.expect +2 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/15_recursion.c +21 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/15_recursion.expect +10 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/16_nesting.c +21 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/16_nesting.expect +18 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/17_enum.c +29 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/17_enum.expect +3 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/18_include.c +12 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/18_include.expect +3 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/18_include.h +1 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/19_pointer_arithmetic.c +28 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/19_pointer_arithmetic.expect +3 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/20_pointer_comparison.c +24 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/20_pointer_comparison.expect +6 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/21_char_array.c +33 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/21_char_array.expect +7 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/22_floating_point.c +50 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/22_floating_point.expect +16 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/23_type_coercion.c +54 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/23_type_coercion.expect +12 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/24_math_library.c +28 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/24_math_library.expect +18 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/25_quicksort.c +83 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/25_quicksort.expect +2 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/26_character_constants.c +17 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/26_character_constants.expect +8 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/27_sizeof.c +16 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/27_sizeof.expect +3 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/28_strings.c +46 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/28_strings.expect +19 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/29_array_address.c +13 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/29_array_address.expect +1 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/30_hanoi.c +122 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/30_hanoi.expect +71 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/31_args.c +14 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/31_args.expect +7 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/32_led.c +266 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/32_led.expect +4 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/33_ternary_op.c +15 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/33_ternary_op.expect +10 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/34_array_assignment.c +23 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/34_array_assignment.expect +2 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/35_sizeof.c +14 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/35_sizeof.expect +2 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/36_array_initialisers.c +21 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/36_array_initialisers.expect +20 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/37_sprintf.c +17 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/37_sprintf.expect +20 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/38_multiple_array_index.c +32 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/38_multiple_array_index.expect +4 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/39_typedef.c +31 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/39_typedef.expect +3 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/40_stdio.c +52 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/40_stdio.expect +27 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/41_hashif.c +85 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/41_hashif.expect +6 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/42_function_pointer.c +18 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/42_function_pointer.expect +2 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/43_void_param.c +15 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/43_void_param.expect +1 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/44_scoped_declarations.c +17 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/44_scoped_declarations.expect +1 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/45_empty_for.c +18 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/45_empty_for.expect +10 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/46_grep.c +564 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/47_switch_return.c +24 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/47_switch_return.expect +4 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/48_nested_break.c +26 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/48_nested_break.expect +1 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/49_bracket_evaluation.c +23 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/49_bracket_evaluation.expect +1 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/50_logical_second_arg.c +29 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/50_logical_second_arg.expect +20 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/51_static.c +30 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/51_static.expect +8 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/52_unnamed_enum.c +27 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/52_unnamed_enum.expect +9 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/54_goto.c +56 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/54_goto.expect +8 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/55_lshift_type.c +52 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/55_lshift_type.expect +1 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/LICENSE +37 -0
- data/ext/tcc/tcc-0.9.26/tests/tests2/Makefile +98 -0
- data/ext/tcc/tcc-0.9.26/texi2pod.pl +427 -0
- data/ext/tcc/tcc-0.9.26/win32/build-tcc.bat +60 -0
- data/ext/tcc/tcc-0.9.26/win32/examples/dll.c +12 -0
- data/ext/tcc/tcc-0.9.26/win32/examples/fib.c +23 -0
- data/ext/tcc/tcc-0.9.26/win32/examples/hello_dll.c +19 -0
- data/ext/tcc/tcc-0.9.26/win32/examples/hello_win.c +163 -0
- data/ext/tcc/tcc-0.9.26/win32/include/_mingw.h +139 -0
- data/ext/tcc/tcc-0.9.26/win32/include/assert.h +54 -0
- data/ext/tcc/tcc-0.9.26/win32/include/conio.h +409 -0
- data/ext/tcc/tcc-0.9.26/win32/include/ctype.h +281 -0
- data/ext/tcc/tcc-0.9.26/win32/include/dir.h +31 -0
- data/ext/tcc/tcc-0.9.26/win32/include/direct.h +68 -0
- data/ext/tcc/tcc-0.9.26/win32/include/dirent.h +135 -0
- data/ext/tcc/tcc-0.9.26/win32/include/dos.h +55 -0
- data/ext/tcc/tcc-0.9.26/win32/include/errno.h +75 -0
- data/ext/tcc/tcc-0.9.26/win32/include/excpt.h +123 -0
- data/ext/tcc/tcc-0.9.26/win32/include/fcntl.h +52 -0
- data/ext/tcc/tcc-0.9.26/win32/include/fenv.h +108 -0
- data/ext/tcc/tcc-0.9.26/win32/include/inttypes.h +297 -0
- data/ext/tcc/tcc-0.9.26/win32/include/io.h +418 -0
- data/ext/tcc/tcc-0.9.26/win32/include/limits.h +111 -0
- data/ext/tcc/tcc-0.9.26/win32/include/locale.h +91 -0
- data/ext/tcc/tcc-0.9.26/win32/include/malloc.h +175 -0
- data/ext/tcc/tcc-0.9.26/win32/include/math.h +777 -0
- data/ext/tcc/tcc-0.9.26/win32/include/mem.h +13 -0
- data/ext/tcc/tcc-0.9.26/win32/include/memory.h +40 -0
- data/ext/tcc/tcc-0.9.26/win32/include/process.h +176 -0
- data/ext/tcc/tcc-0.9.26/win32/include/sec_api/conio_s.h +42 -0
- data/ext/tcc/tcc-0.9.26/win32/include/sec_api/crtdbg_s.h +19 -0
- data/ext/tcc/tcc-0.9.26/win32/include/sec_api/io_s.h +33 -0
- data/ext/tcc/tcc-0.9.26/win32/include/sec_api/mbstring_s.h +52 -0
- data/ext/tcc/tcc-0.9.26/win32/include/sec_api/search_s.h +25 -0
- data/ext/tcc/tcc-0.9.26/win32/include/sec_api/stdio_s.h +145 -0
- data/ext/tcc/tcc-0.9.26/win32/include/sec_api/stdlib_s.h +67 -0
- data/ext/tcc/tcc-0.9.26/win32/include/sec_api/stralign_s.h +30 -0
- data/ext/tcc/tcc-0.9.26/win32/include/sec_api/string_s.h +41 -0
- data/ext/tcc/tcc-0.9.26/win32/include/sec_api/sys/timeb_s.h +34 -0
- data/ext/tcc/tcc-0.9.26/win32/include/sec_api/tchar_s.h +266 -0
- data/ext/tcc/tcc-0.9.26/win32/include/sec_api/time_s.h +61 -0
- data/ext/tcc/tcc-0.9.26/win32/include/sec_api/wchar_s.h +128 -0
- data/ext/tcc/tcc-0.9.26/win32/include/setjmp.h +160 -0
- data/ext/tcc/tcc-0.9.26/win32/include/share.h +28 -0
- data/ext/tcc/tcc-0.9.26/win32/include/signal.h +63 -0
- data/ext/tcc/tcc-0.9.26/win32/include/stdint.h +209 -0
- data/ext/tcc/tcc-0.9.26/win32/include/stdio.h +429 -0
- data/ext/tcc/tcc-0.9.26/win32/include/stdlib.h +580 -0
- data/ext/tcc/tcc-0.9.26/win32/include/string.h +164 -0
- data/ext/tcc/tcc-0.9.26/win32/include/sys/fcntl.h +13 -0
- data/ext/tcc/tcc-0.9.26/win32/include/sys/file.h +14 -0
- data/ext/tcc/tcc-0.9.26/win32/include/sys/locking.h +30 -0
- data/ext/tcc/tcc-0.9.26/win32/include/sys/stat.h +290 -0
- data/ext/tcc/tcc-0.9.26/win32/include/sys/time.h +69 -0
- data/ext/tcc/tcc-0.9.26/win32/include/sys/timeb.h +133 -0
- data/ext/tcc/tcc-0.9.26/win32/include/sys/types.h +118 -0
- data/ext/tcc/tcc-0.9.26/win32/include/sys/unistd.h +14 -0
- data/ext/tcc/tcc-0.9.26/win32/include/sys/utime.h +146 -0
- data/ext/tcc/tcc-0.9.26/win32/include/tchar.h +1102 -0
- data/ext/tcc/tcc-0.9.26/win32/include/time.h +287 -0
- data/ext/tcc/tcc-0.9.26/win32/include/vadefs.h +11 -0
- data/ext/tcc/tcc-0.9.26/win32/include/values.h +4 -0
- data/ext/tcc/tcc-0.9.26/win32/include/wchar.h +871 -0
- data/ext/tcc/tcc-0.9.26/win32/include/wctype.h +172 -0
- data/ext/tcc/tcc-0.9.26/win32/include/winapi/basetsd.h +149 -0
- data/ext/tcc/tcc-0.9.26/win32/include/winapi/basetyps.h +85 -0
- data/ext/tcc/tcc-0.9.26/win32/include/winapi/guiddef.h +151 -0
- data/ext/tcc/tcc-0.9.26/win32/include/winapi/intrin.h +11 -0
- data/ext/tcc/tcc-0.9.26/win32/include/winapi/poppack.h +8 -0
- data/ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack1.h +8 -0
- data/ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack2.h +8 -0
- data/ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack4.h +8 -0
- data/ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack8.h +8 -0
- data/ext/tcc/tcc-0.9.26/win32/include/winapi/reason.h +80 -0
- data/ext/tcc/tcc-0.9.26/win32/include/winapi/specstrings.h +7 -0
- data/ext/tcc/tcc-0.9.26/win32/include/winapi/stralign.h +154 -0
- data/ext/tcc/tcc-0.9.26/win32/include/winapi/tvout.h +79 -0
- data/ext/tcc/tcc-0.9.26/win32/include/winapi/winbase.h +2951 -0
- data/ext/tcc/tcc-0.9.26/win32/include/winapi/wincon.h +301 -0
- data/ext/tcc/tcc-0.9.26/win32/include/winapi/windef.h +293 -0
- data/ext/tcc/tcc-0.9.26/win32/include/winapi/windows.h +123 -0
- data/ext/tcc/tcc-0.9.26/win32/include/winapi/winerror.h +3166 -0
- data/ext/tcc/tcc-0.9.26/win32/include/winapi/wingdi.h +4080 -0
- data/ext/tcc/tcc-0.9.26/win32/include/winapi/winnetwk.h +476 -0
- data/ext/tcc/tcc-0.9.26/win32/include/winapi/winnls.h +765 -0
- data/ext/tcc/tcc-0.9.26/win32/include/winapi/winnt.h +5770 -0
- data/ext/tcc/tcc-0.9.26/win32/include/winapi/winreg.h +272 -0
- data/ext/tcc/tcc-0.9.26/win32/include/winapi/winuser.h +5651 -0
- data/ext/tcc/tcc-0.9.26/win32/include/winapi/winver.h +160 -0
- data/ext/tcc/tcc-0.9.26/win32/lib/chkstk.S +191 -0
- data/ext/tcc/tcc-0.9.26/win32/lib/crt1.c +34 -0
- data/ext/tcc/tcc-0.9.26/win32/lib/dllcrt1.c +13 -0
- data/ext/tcc/tcc-0.9.26/win32/lib/dllmain.c +9 -0
- data/ext/tcc/tcc-0.9.26/win32/lib/gdi32.def +337 -0
- data/ext/tcc/tcc-0.9.26/win32/lib/kernel32.def +765 -0
- data/ext/tcc/tcc-0.9.26/win32/lib/msvcrt.def +1399 -0
- data/ext/tcc/tcc-0.9.26/win32/lib/user32.def +654 -0
- data/ext/tcc/tcc-0.9.26/win32/lib/wincrt1.c +64 -0
- data/ext/tcc/tcc-0.9.26/win32/tcc-win32.txt +156 -0
- data/ext/tcc/tcc-0.9.26/win32/tools/tiny_impdef.c +243 -0
- data/ext/tcc/tcc-0.9.26/win32/tools/tiny_libmaker.c +258 -0
- data/ext/tcc/tcc-0.9.26/x86_64-asm.h +448 -0
- data/ext/tcc/tcc-0.9.26/x86_64-gen.c +1701 -0
- data/lib/tcc.rb +291 -0
- data/tcc.gemspec +15 -0
- metadata +343 -0
@@ -0,0 +1,164 @@
|
|
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_STRING
|
7
|
+
#define _INC_STRING
|
8
|
+
|
9
|
+
#include <_mingw.h>
|
10
|
+
|
11
|
+
#ifdef __cplusplus
|
12
|
+
extern "C" {
|
13
|
+
#endif
|
14
|
+
|
15
|
+
#ifndef _NLSCMP_DEFINED
|
16
|
+
#define _NLSCMP_DEFINED
|
17
|
+
#define _NLSCMPERROR 2147483647
|
18
|
+
#endif
|
19
|
+
|
20
|
+
#ifndef NULL
|
21
|
+
#ifdef __cplusplus
|
22
|
+
#define NULL 0
|
23
|
+
#else
|
24
|
+
#define NULL ((void *)0)
|
25
|
+
#endif
|
26
|
+
#endif
|
27
|
+
|
28
|
+
#define _WConst_return _CONST_RETURN
|
29
|
+
|
30
|
+
#ifndef _CRT_MEMORY_DEFINED
|
31
|
+
#define _CRT_MEMORY_DEFINED
|
32
|
+
_CRTIMP void *__cdecl _memccpy(void *_Dst,const void *_Src,int _Val,size_t _MaxCount);
|
33
|
+
_CONST_RETURN void *__cdecl memchr(const void *_Buf ,int _Val,size_t _MaxCount);
|
34
|
+
_CRTIMP int __cdecl _memicmp(const void *_Buf1,const void *_Buf2,size_t _Size);
|
35
|
+
_CRTIMP int __cdecl _memicmp_l(const void *_Buf1,const void *_Buf2,size_t _Size,_locale_t _Locale);
|
36
|
+
int __cdecl memcmp(const void *_Buf1,const void *_Buf2,size_t _Size);
|
37
|
+
void *__cdecl memcpy(void *_Dst,const void *_Src,size_t _Size);
|
38
|
+
void *__cdecl memset(void *_Dst,int _Val,size_t _Size);
|
39
|
+
#ifndef NO_OLDNAMES
|
40
|
+
void *__cdecl memccpy(void *_Dst,const void *_Src,int _Val,size_t _Size);
|
41
|
+
int __cdecl memicmp(const void *_Buf1,const void *_Buf2,size_t _Size);
|
42
|
+
#endif
|
43
|
+
#endif
|
44
|
+
char *__cdecl _strset(char *_Str,int _Val);
|
45
|
+
char *__cdecl strcpy(char *_Dest,const char *_Source);
|
46
|
+
char *__cdecl strcat(char *_Dest,const char *_Source);
|
47
|
+
int __cdecl strcmp(const char *_Str1,const char *_Str2);
|
48
|
+
size_t __cdecl strlen(const char *_Str);
|
49
|
+
#if 0
|
50
|
+
size_t __cdecl strnlen(const char *_Str,size_t _MaxCount);
|
51
|
+
#endif
|
52
|
+
void *__cdecl memmove(void *_Dst,const void *_Src,size_t _Size);
|
53
|
+
_CRTIMP char *__cdecl _strdup(const char *_Src);
|
54
|
+
_CONST_RETURN char *__cdecl strchr(const char *_Str,int _Val);
|
55
|
+
_CRTIMP int __cdecl _stricmp(const char *_Str1,const char *_Str2);
|
56
|
+
_CRTIMP int __cdecl _strcmpi(const char *_Str1,const char *_Str2);
|
57
|
+
_CRTIMP int __cdecl _stricmp_l(const char *_Str1,const char *_Str2,_locale_t _Locale);
|
58
|
+
int __cdecl strcoll(const char *_Str1,const char *_Str2);
|
59
|
+
_CRTIMP int __cdecl _strcoll_l(const char *_Str1,const char *_Str2,_locale_t _Locale);
|
60
|
+
_CRTIMP int __cdecl _stricoll(const char *_Str1,const char *_Str2);
|
61
|
+
_CRTIMP int __cdecl _stricoll_l(const char *_Str1,const char *_Str2,_locale_t _Locale);
|
62
|
+
_CRTIMP int __cdecl _strncoll (const char *_Str1,const char *_Str2,size_t _MaxCount);
|
63
|
+
_CRTIMP int __cdecl _strncoll_l(const char *_Str1,const char *_Str2,size_t _MaxCount,_locale_t _Locale);
|
64
|
+
_CRTIMP int __cdecl _strnicoll (const char *_Str1,const char *_Str2,size_t _MaxCount);
|
65
|
+
_CRTIMP int __cdecl _strnicoll_l(const char *_Str1,const char *_Str2,size_t _MaxCount,_locale_t _Locale);
|
66
|
+
size_t __cdecl strcspn(const char *_Str,const char *_Control);
|
67
|
+
_CRTIMP char *__cdecl _strerror(const char *_ErrMsg);
|
68
|
+
char *__cdecl strerror(int);
|
69
|
+
_CRTIMP char *__cdecl _strlwr(char *_String);
|
70
|
+
char *strlwr_l(char *_String,_locale_t _Locale);
|
71
|
+
char *__cdecl strncat(char *_Dest,const char *_Source,size_t _Count);
|
72
|
+
int __cdecl strncmp(const char *_Str1,const char *_Str2,size_t _MaxCount);
|
73
|
+
_CRTIMP int __cdecl _strnicmp(const char *_Str1,const char *_Str2,size_t _MaxCount);
|
74
|
+
_CRTIMP int __cdecl _strnicmp_l(const char *_Str1,const char *_Str2,size_t _MaxCount,_locale_t _Locale);
|
75
|
+
char *strncpy(char *_Dest,const char *_Source,size_t _Count);
|
76
|
+
_CRTIMP char *__cdecl _strnset(char *_Str,int _Val,size_t _MaxCount);
|
77
|
+
_CONST_RETURN char *__cdecl strpbrk(const char *_Str,const char *_Control);
|
78
|
+
_CONST_RETURN char *__cdecl strrchr(const char *_Str,int _Ch);
|
79
|
+
_CRTIMP char *__cdecl _strrev(char *_Str);
|
80
|
+
size_t __cdecl strspn(const char *_Str,const char *_Control);
|
81
|
+
_CONST_RETURN char *__cdecl strstr(const char *_Str,const char *_SubStr);
|
82
|
+
char *__cdecl strtok(char *_Str,const char *_Delim);
|
83
|
+
_CRTIMP char *__cdecl _strupr(char *_String);
|
84
|
+
_CRTIMP char *_strupr_l(char *_String,_locale_t _Locale);
|
85
|
+
size_t __cdecl strxfrm(char *_Dst,const char *_Src,size_t _MaxCount);
|
86
|
+
_CRTIMP size_t __cdecl _strxfrm_l(char *_Dst,const char *_Src,size_t _MaxCount,_locale_t _Locale);
|
87
|
+
|
88
|
+
#ifndef NO_OLDNAMES
|
89
|
+
char *__cdecl strdup(const char *_Src);
|
90
|
+
int __cdecl strcmpi(const char *_Str1,const char *_Str2);
|
91
|
+
int __cdecl stricmp(const char *_Str1,const char *_Str2);
|
92
|
+
char *__cdecl strlwr(char *_Str);
|
93
|
+
int __cdecl strnicmp(const char *_Str1,const char *_Str,size_t _MaxCount);
|
94
|
+
__CRT_INLINE int __cdecl strncasecmp (const char *__sz1, const char *__sz2, size_t __sizeMaxCompare) { return _strnicmp (__sz1, __sz2, __sizeMaxCompare); }
|
95
|
+
__CRT_INLINE int __cdecl strcasecmp (const char *__sz1, const char *__sz2) { return _stricmp (__sz1, __sz2); }
|
96
|
+
char *__cdecl strnset(char *_Str,int _Val,size_t _MaxCount);
|
97
|
+
char *__cdecl strrev(char *_Str);
|
98
|
+
char *__cdecl strset(char *_Str,int _Val);
|
99
|
+
char *__cdecl strupr(char *_Str);
|
100
|
+
#endif
|
101
|
+
|
102
|
+
#ifndef _WSTRING_DEFINED
|
103
|
+
#define _WSTRING_DEFINED
|
104
|
+
|
105
|
+
_CRTIMP wchar_t *__cdecl _wcsdup(const wchar_t *_Str);
|
106
|
+
wchar_t *__cdecl wcscat(wchar_t *_Dest,const wchar_t *_Source);
|
107
|
+
_CONST_RETURN wchar_t *__cdecl wcschr(const wchar_t *_Str,wchar_t _Ch);
|
108
|
+
int __cdecl wcscmp(const wchar_t *_Str1,const wchar_t *_Str2);
|
109
|
+
wchar_t *__cdecl wcscpy(wchar_t *_Dest,const wchar_t *_Source);
|
110
|
+
size_t __cdecl wcscspn(const wchar_t *_Str,const wchar_t *_Control);
|
111
|
+
size_t __cdecl wcslen(const wchar_t *_Str);
|
112
|
+
size_t __cdecl wcsnlen(const wchar_t *_Src,size_t _MaxCount);
|
113
|
+
wchar_t *wcsncat(wchar_t *_Dest,const wchar_t *_Source,size_t _Count);
|
114
|
+
int __cdecl wcsncmp(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount);
|
115
|
+
wchar_t *wcsncpy(wchar_t *_Dest,const wchar_t *_Source,size_t _Count);
|
116
|
+
_CONST_RETURN wchar_t *__cdecl wcspbrk(const wchar_t *_Str,const wchar_t *_Control);
|
117
|
+
_CONST_RETURN wchar_t *__cdecl wcsrchr(const wchar_t *_Str,wchar_t _Ch);
|
118
|
+
size_t __cdecl wcsspn(const wchar_t *_Str,const wchar_t *_Control);
|
119
|
+
_CONST_RETURN wchar_t *__cdecl wcsstr(const wchar_t *_Str,const wchar_t *_SubStr);
|
120
|
+
wchar_t *__cdecl wcstok(wchar_t *_Str,const wchar_t *_Delim);
|
121
|
+
_CRTIMP wchar_t *__cdecl _wcserror(int _ErrNum);
|
122
|
+
_CRTIMP wchar_t *__cdecl __wcserror(const wchar_t *_Str);
|
123
|
+
_CRTIMP int __cdecl _wcsicmp(const wchar_t *_Str1,const wchar_t *_Str2);
|
124
|
+
_CRTIMP int __cdecl _wcsicmp_l(const wchar_t *_Str1,const wchar_t *_Str2,_locale_t _Locale);
|
125
|
+
_CRTIMP int __cdecl _wcsnicmp(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount);
|
126
|
+
_CRTIMP int __cdecl _wcsnicmp_l(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount,_locale_t _Locale);
|
127
|
+
_CRTIMP wchar_t *__cdecl _wcsnset(wchar_t *_Str,wchar_t _Val,size_t _MaxCount);
|
128
|
+
_CRTIMP wchar_t *__cdecl _wcsrev(wchar_t *_Str);
|
129
|
+
_CRTIMP wchar_t *__cdecl _wcsset(wchar_t *_Str,wchar_t _Val);
|
130
|
+
_CRTIMP wchar_t *__cdecl _wcslwr(wchar_t *_String);
|
131
|
+
_CRTIMP wchar_t *_wcslwr_l(wchar_t *_String,_locale_t _Locale);
|
132
|
+
_CRTIMP wchar_t *__cdecl _wcsupr(wchar_t *_String);
|
133
|
+
_CRTIMP wchar_t *_wcsupr_l(wchar_t *_String,_locale_t _Locale);
|
134
|
+
size_t __cdecl wcsxfrm(wchar_t *_Dst,const wchar_t *_Src,size_t _MaxCount);
|
135
|
+
_CRTIMP size_t __cdecl _wcsxfrm_l(wchar_t *_Dst,const wchar_t *_Src,size_t _MaxCount,_locale_t _Locale);
|
136
|
+
int __cdecl wcscoll(const wchar_t *_Str1,const wchar_t *_Str2);
|
137
|
+
_CRTIMP int __cdecl _wcscoll_l(const wchar_t *_Str1,const wchar_t *_Str2,_locale_t _Locale);
|
138
|
+
_CRTIMP int __cdecl _wcsicoll(const wchar_t *_Str1,const wchar_t *_Str2);
|
139
|
+
_CRTIMP int __cdecl _wcsicoll_l(const wchar_t *_Str1,const wchar_t *_Str2,_locale_t _Locale);
|
140
|
+
_CRTIMP int __cdecl _wcsncoll(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount);
|
141
|
+
_CRTIMP int __cdecl _wcsncoll_l(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount,_locale_t _Locale);
|
142
|
+
_CRTIMP int __cdecl _wcsnicoll(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount);
|
143
|
+
_CRTIMP int __cdecl _wcsnicoll_l(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount,_locale_t _Locale);
|
144
|
+
|
145
|
+
#ifndef NO_OLDNAMES
|
146
|
+
wchar_t *__cdecl wcsdup(const wchar_t *_Str);
|
147
|
+
#define wcswcs wcsstr
|
148
|
+
int __cdecl wcsicmp(const wchar_t *_Str1,const wchar_t *_Str2);
|
149
|
+
int __cdecl wcsnicmp(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount);
|
150
|
+
wchar_t *__cdecl wcsnset(wchar_t *_Str,wchar_t _Val,size_t _MaxCount);
|
151
|
+
wchar_t *__cdecl wcsrev(wchar_t *_Str);
|
152
|
+
wchar_t *__cdecl wcsset(wchar_t *_Str,wchar_t _Val);
|
153
|
+
wchar_t *__cdecl wcslwr(wchar_t *_Str);
|
154
|
+
wchar_t *__cdecl wcsupr(wchar_t *_Str);
|
155
|
+
int __cdecl wcsicoll(const wchar_t *_Str1,const wchar_t *_Str2);
|
156
|
+
#endif
|
157
|
+
#endif
|
158
|
+
|
159
|
+
#ifdef __cplusplus
|
160
|
+
}
|
161
|
+
#endif
|
162
|
+
|
163
|
+
#include <sec_api/string_s.h>
|
164
|
+
#endif
|
@@ -0,0 +1,13 @@
|
|
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
|
+
/*
|
7
|
+
* This file is part of the Mingw32 package.
|
8
|
+
*
|
9
|
+
* This fcntl.h maps to the root fcntl.h
|
10
|
+
*/
|
11
|
+
#ifndef __STRICT_ANSI__
|
12
|
+
#include <fcntl.h>
|
13
|
+
#endif
|
@@ -0,0 +1,14 @@
|
|
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
|
+
/*
|
7
|
+
* This file is part of the Mingw32 package.
|
8
|
+
*
|
9
|
+
* This file.h maps to the root fcntl.h
|
10
|
+
* TODO?
|
11
|
+
*/
|
12
|
+
#ifndef __STRICT_ANSI__
|
13
|
+
#include <fcntl.h>
|
14
|
+
#endif
|
@@ -0,0 +1,30 @@
|
|
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_LOCKING
|
7
|
+
#define _INC_LOCKING
|
8
|
+
|
9
|
+
#ifndef _WIN32
|
10
|
+
#error Only Win32 target is supported!
|
11
|
+
#endif
|
12
|
+
|
13
|
+
/* All the headers include this file. */
|
14
|
+
#include <_mingw.h>
|
15
|
+
|
16
|
+
#define _LK_UNLCK 0
|
17
|
+
#define _LK_LOCK 1
|
18
|
+
#define _LK_NBLCK 2
|
19
|
+
#define _LK_RLCK 3
|
20
|
+
#define _LK_NBRLCK 4
|
21
|
+
|
22
|
+
#ifndef NO_OLDNAMES
|
23
|
+
#define LK_UNLCK _LK_UNLCK
|
24
|
+
#define LK_LOCK _LK_LOCK
|
25
|
+
#define LK_NBLCK _LK_NBLCK
|
26
|
+
#define LK_RLCK _LK_RLCK
|
27
|
+
#define LK_NBRLCK _LK_NBRLCK
|
28
|
+
#endif
|
29
|
+
|
30
|
+
#endif
|
@@ -0,0 +1,290 @@
|
|
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_STAT
|
7
|
+
#define _INC_STAT
|
8
|
+
|
9
|
+
#ifndef _WIN32
|
10
|
+
#error Only Win32 target is supported!
|
11
|
+
#endif
|
12
|
+
|
13
|
+
#include <_mingw.h>
|
14
|
+
#include <io.h>
|
15
|
+
|
16
|
+
#pragma pack(push,_CRT_PACKING)
|
17
|
+
|
18
|
+
#ifdef __cplusplus
|
19
|
+
extern "C" {
|
20
|
+
#endif
|
21
|
+
|
22
|
+
#ifndef _CRTIMP
|
23
|
+
#define _CRTIMP __declspec(dllimport)
|
24
|
+
#endif
|
25
|
+
|
26
|
+
#include <sys/types.h>
|
27
|
+
|
28
|
+
#ifndef __TINYC__ //gr
|
29
|
+
#ifdef _USE_32BIT_TIME_T
|
30
|
+
#ifdef _WIN64
|
31
|
+
#undef _USE_32BIT_TIME_T
|
32
|
+
#endif
|
33
|
+
#else
|
34
|
+
#if _INTEGRAL_MAX_BITS < 64
|
35
|
+
#define _USE_32BIT_TIME_T
|
36
|
+
#endif
|
37
|
+
#endif
|
38
|
+
#endif
|
39
|
+
|
40
|
+
#ifndef _TIME32_T_DEFINED
|
41
|
+
typedef long __time32_t;
|
42
|
+
#define _TIME32_T_DEFINED
|
43
|
+
#endif
|
44
|
+
|
45
|
+
#ifndef _TIME64_T_DEFINED
|
46
|
+
#if _INTEGRAL_MAX_BITS >= 64
|
47
|
+
typedef __int64 __time64_t;
|
48
|
+
#endif
|
49
|
+
#define _TIME64_T_DEFINED
|
50
|
+
#endif
|
51
|
+
|
52
|
+
#ifndef _TIME_T_DEFINED
|
53
|
+
#ifdef _USE_32BIT_TIME_T
|
54
|
+
typedef __time32_t time_t;
|
55
|
+
#else
|
56
|
+
typedef __time64_t time_t;
|
57
|
+
#endif
|
58
|
+
#define _TIME_T_DEFINED
|
59
|
+
#endif
|
60
|
+
|
61
|
+
#ifndef _WCHAR_T_DEFINED
|
62
|
+
typedef unsigned short wchar_t;
|
63
|
+
#define _WCHAR_T_DEFINED
|
64
|
+
#endif
|
65
|
+
|
66
|
+
#ifndef _STAT_DEFINED
|
67
|
+
|
68
|
+
#ifdef _USE_32BIT_TIME_T
|
69
|
+
#ifndef _WIN64
|
70
|
+
#define _fstat32 _fstat
|
71
|
+
#define _stat32 _stat
|
72
|
+
#define _wstat32 _wstat
|
73
|
+
#else
|
74
|
+
#define _fstat _fstat32
|
75
|
+
#define _stat _stat32
|
76
|
+
#define _wstat _wstat32
|
77
|
+
#endif
|
78
|
+
#define _fstati64 _fstat32i64
|
79
|
+
#define _stati64 _stat32i64
|
80
|
+
#define _wstati64 _wstat32i64
|
81
|
+
#else
|
82
|
+
#define _fstat _fstat64i32
|
83
|
+
#define _fstati64 _fstat64
|
84
|
+
#define _stat _stat64i32
|
85
|
+
#define _stati64 _stat64
|
86
|
+
#define _wstat _wstat64i32
|
87
|
+
#define _wstati64 _wstat64
|
88
|
+
#endif
|
89
|
+
|
90
|
+
struct _stat32 {
|
91
|
+
_dev_t st_dev;
|
92
|
+
_ino_t st_ino;
|
93
|
+
unsigned short st_mode;
|
94
|
+
short st_nlink;
|
95
|
+
short st_uid;
|
96
|
+
short st_gid;
|
97
|
+
_dev_t st_rdev;
|
98
|
+
_off_t st_size;
|
99
|
+
__time32_t st_atime;
|
100
|
+
__time32_t st_mtime;
|
101
|
+
__time32_t st_ctime;
|
102
|
+
};
|
103
|
+
|
104
|
+
#ifndef NO_OLDNAMES
|
105
|
+
struct stat {
|
106
|
+
_dev_t st_dev;
|
107
|
+
_ino_t st_ino;
|
108
|
+
unsigned short st_mode;
|
109
|
+
short st_nlink;
|
110
|
+
short st_uid;
|
111
|
+
short st_gid;
|
112
|
+
_dev_t st_rdev;
|
113
|
+
_off_t st_size;
|
114
|
+
time_t st_atime;
|
115
|
+
time_t st_mtime;
|
116
|
+
time_t st_ctime;
|
117
|
+
};
|
118
|
+
#endif
|
119
|
+
|
120
|
+
#if _INTEGRAL_MAX_BITS >= 64
|
121
|
+
struct _stat32i64 {
|
122
|
+
_dev_t st_dev;
|
123
|
+
_ino_t st_ino;
|
124
|
+
unsigned short st_mode;
|
125
|
+
short st_nlink;
|
126
|
+
short st_uid;
|
127
|
+
short st_gid;
|
128
|
+
_dev_t st_rdev;
|
129
|
+
__int64 st_size;
|
130
|
+
__time32_t st_atime;
|
131
|
+
__time32_t st_mtime;
|
132
|
+
__time32_t st_ctime;
|
133
|
+
};
|
134
|
+
|
135
|
+
struct _stat64i32 {
|
136
|
+
_dev_t st_dev;
|
137
|
+
_ino_t st_ino;
|
138
|
+
unsigned short st_mode;
|
139
|
+
short st_nlink;
|
140
|
+
short st_uid;
|
141
|
+
short st_gid;
|
142
|
+
_dev_t st_rdev;
|
143
|
+
_off_t st_size;
|
144
|
+
__time64_t st_atime;
|
145
|
+
__time64_t st_mtime;
|
146
|
+
__time64_t st_ctime;
|
147
|
+
};
|
148
|
+
|
149
|
+
struct _stat64 {
|
150
|
+
_dev_t st_dev;
|
151
|
+
_ino_t st_ino;
|
152
|
+
unsigned short st_mode;
|
153
|
+
short st_nlink;
|
154
|
+
short st_uid;
|
155
|
+
short st_gid;
|
156
|
+
_dev_t st_rdev;
|
157
|
+
__int64 st_size;
|
158
|
+
__time64_t st_atime;
|
159
|
+
__time64_t st_mtime;
|
160
|
+
__time64_t st_ctime;
|
161
|
+
};
|
162
|
+
#endif
|
163
|
+
|
164
|
+
#define __stat64 _stat64
|
165
|
+
|
166
|
+
#define _STAT_DEFINED
|
167
|
+
#endif
|
168
|
+
|
169
|
+
#define _S_IFMT 0xF000
|
170
|
+
#define _S_IFDIR 0x4000
|
171
|
+
#define _S_IFCHR 0x2000
|
172
|
+
#define _S_IFIFO 0x1000
|
173
|
+
#define _S_IFREG 0x8000
|
174
|
+
#define _S_IREAD 0x0100
|
175
|
+
#define _S_IWRITE 0x0080
|
176
|
+
#define _S_IEXEC 0x0040
|
177
|
+
|
178
|
+
_CRTIMP int __cdecl _fstat32(int _FileDes,struct _stat32 *_Stat);
|
179
|
+
_CRTIMP int __cdecl _stat32(const char *_Name,struct _stat32 *_Stat);
|
180
|
+
#if _INTEGRAL_MAX_BITS >= 64
|
181
|
+
_CRTIMP int __cdecl _fstat64(int _FileDes,struct _stat64 *_Stat);
|
182
|
+
_CRTIMP int __cdecl _fstat32i64(int _FileDes,struct _stat32i64 *_Stat);
|
183
|
+
int __cdecl _fstat64i32(int _FileDes,struct _stat64i32 *_Stat);
|
184
|
+
__CRT_INLINE int __cdecl _fstat64i32(int _FileDes,struct _stat64i32 *_Stat)
|
185
|
+
{
|
186
|
+
struct _stat64 st;
|
187
|
+
int ret=_fstat64(_FileDes,&st);
|
188
|
+
_Stat->st_dev=st.st_dev;
|
189
|
+
_Stat->st_ino=st.st_ino;
|
190
|
+
_Stat->st_mode=st.st_mode;
|
191
|
+
_Stat->st_nlink=st.st_nlink;
|
192
|
+
_Stat->st_uid=st.st_uid;
|
193
|
+
_Stat->st_gid=st.st_gid;
|
194
|
+
_Stat->st_rdev=st.st_rdev;
|
195
|
+
_Stat->st_size=(_off_t) st.st_size;
|
196
|
+
_Stat->st_atime=st.st_atime;
|
197
|
+
_Stat->st_mtime=st.st_mtime;
|
198
|
+
_Stat->st_ctime=st.st_ctime;
|
199
|
+
return ret;
|
200
|
+
}
|
201
|
+
_CRTIMP int __cdecl _stat64(const char *_Name,struct _stat64 *_Stat);
|
202
|
+
_CRTIMP int __cdecl _stat32i64(const char *_Name,struct _stat32i64 *_Stat);
|
203
|
+
int __cdecl _stat64i32(const char *_Name,struct _stat64i32 *_Stat);
|
204
|
+
__CRT_INLINE int __cdecl _stat64i32(const char *_Name,struct _stat64i32 *_Stat)
|
205
|
+
{
|
206
|
+
struct _stat64 st;
|
207
|
+
int ret=_stat64(_Name,&st);
|
208
|
+
_Stat->st_dev=st.st_dev;
|
209
|
+
_Stat->st_ino=st.st_ino;
|
210
|
+
_Stat->st_mode=st.st_mode;
|
211
|
+
_Stat->st_nlink=st.st_nlink;
|
212
|
+
_Stat->st_uid=st.st_uid;
|
213
|
+
_Stat->st_gid=st.st_gid;
|
214
|
+
_Stat->st_rdev=st.st_rdev;
|
215
|
+
_Stat->st_size=(_off_t) st.st_size;
|
216
|
+
_Stat->st_atime=st.st_atime;
|
217
|
+
_Stat->st_mtime=st.st_mtime;
|
218
|
+
_Stat->st_ctime=st.st_ctime;
|
219
|
+
return ret;
|
220
|
+
}
|
221
|
+
#endif
|
222
|
+
|
223
|
+
#ifndef _WSTAT_DEFINED
|
224
|
+
#define _WSTAT_DEFINED
|
225
|
+
_CRTIMP int __cdecl _wstat32(const wchar_t *_Name,struct _stat32 *_Stat);
|
226
|
+
#if _INTEGRAL_MAX_BITS >= 64
|
227
|
+
_CRTIMP int __cdecl _wstat32i64(const wchar_t *_Name,struct _stat32i64 *_Stat);
|
228
|
+
int __cdecl _wstat64i32(const wchar_t *_Name,struct _stat64i32 *_Stat);
|
229
|
+
_CRTIMP int __cdecl _wstat64(const wchar_t *_Name,struct _stat64 *_Stat);
|
230
|
+
#endif
|
231
|
+
#endif
|
232
|
+
|
233
|
+
#ifndef NO_OLDNAMES
|
234
|
+
#define _S_IFBLK 0x3000 /* Block: Is this ever set under w32? */
|
235
|
+
|
236
|
+
#define S_IFMT _S_IFMT
|
237
|
+
#define S_IFDIR _S_IFDIR
|
238
|
+
#define S_IFCHR _S_IFCHR
|
239
|
+
#define S_IFREG _S_IFREG
|
240
|
+
#define S_IREAD _S_IREAD
|
241
|
+
#define S_IWRITE _S_IWRITE
|
242
|
+
#define S_IEXEC _S_IEXEC
|
243
|
+
#define S_IFIFO _S_IFIFO
|
244
|
+
#define S_IFBLK _S_IFBLK
|
245
|
+
|
246
|
+
#define _S_IRWXU (_S_IREAD | _S_IWRITE | _S_IEXEC)
|
247
|
+
#define _S_IXUSR _S_IEXEC
|
248
|
+
#define _S_IWUSR _S_IWRITE
|
249
|
+
|
250
|
+
#define S_IRWXU _S_IRWXU
|
251
|
+
#define S_IXUSR _S_IXUSR
|
252
|
+
#define S_IWUSR _S_IWUSR
|
253
|
+
#define S_IRUSR _S_IRUSR
|
254
|
+
#define _S_IRUSR _S_IREAD
|
255
|
+
|
256
|
+
#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
|
257
|
+
#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
|
258
|
+
#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
|
259
|
+
#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
|
260
|
+
#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
|
261
|
+
|
262
|
+
#endif
|
263
|
+
|
264
|
+
#if !defined (RC_INVOKED) && !defined (NO_OLDNAMES)
|
265
|
+
int __cdecl stat(const char *_Filename,struct stat *_Stat);
|
266
|
+
int __cdecl fstat(int _Desc,struct stat *_Stat);
|
267
|
+
int __cdecl wstat(const wchar_t *_Filename,struct stat *_Stat);
|
268
|
+
#ifdef _USE_32BIT_TIME_T
|
269
|
+
__CRT_INLINE int __cdecl fstat(int _Desc,struct stat *_Stat) {
|
270
|
+
return _fstat32(_Desc,(struct _stat32 *)_Stat);
|
271
|
+
}
|
272
|
+
__CRT_INLINE int __cdecl stat(const char *_Filename,struct stat *_Stat) {
|
273
|
+
return _stat32(_Filename,(struct _stat32 *)_Stat);
|
274
|
+
}
|
275
|
+
#else
|
276
|
+
__CRT_INLINE int __cdecl fstat(int _Desc,struct stat *_Stat) {
|
277
|
+
return _fstat64i32(_Desc,(struct _stat64i32 *)_Stat);
|
278
|
+
}
|
279
|
+
__CRT_INLINE int __cdecl stat(const char *_Filename,struct stat *_Stat) {
|
280
|
+
return _stat64i32(_Filename,(struct _stat64i32 *)_Stat);
|
281
|
+
}
|
282
|
+
#endif
|
283
|
+
#endif
|
284
|
+
|
285
|
+
#ifdef __cplusplus
|
286
|
+
}
|
287
|
+
#endif
|
288
|
+
|
289
|
+
#pragma pack(pop)
|
290
|
+
#endif
|