ffi 1.9.21-x86-mingw32 → 1.9.22-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.
- checksums.yaml +4 -4
- data/.gitignore +22 -0
- data/.gitmodules +3 -0
- data/.travis.yml +52 -0
- data/.yardopts +5 -0
- data/Gemfile +15 -0
- data/{spec/ffi/LICENSE.SPECS → LICENSE.SPECS} +1 -1
- data/README.md +1 -1
- data/Rakefile +28 -3
- data/appveyor.yml +22 -0
- data/ffi.gemspec +14 -1
- data/lib/2.0/ffi_c.so +0 -0
- data/lib/2.1/ffi_c.so +0 -0
- data/lib/2.2/ffi_c.so +0 -0
- data/lib/2.3/ffi_c.so +0 -0
- data/lib/2.4/ffi_c.so +0 -0
- data/lib/2.5/ffi_c.so +0 -0
- data/lib/ffi/library.rb +1 -1
- data/lib/ffi/version.rb +1 -1
- data/samples/getlogin.rb +8 -0
- data/samples/getpid.rb +8 -0
- data/samples/gettimeofday.rb +18 -0
- data/samples/hello.rb +7 -0
- data/samples/inotify.rb +60 -0
- data/samples/pty.rb +76 -0
- data/samples/qsort.rb +21 -0
- data/samples/sample_helper.rb +6 -0
- metadata +17 -526
- data/ext/ffi_c/AbstractMemory.c +0 -1109
- data/ext/ffi_c/AbstractMemory.h +0 -175
- data/ext/ffi_c/ArrayType.c +0 -162
- data/ext/ffi_c/ArrayType.h +0 -59
- data/ext/ffi_c/Buffer.c +0 -365
- data/ext/ffi_c/Call.c +0 -517
- data/ext/ffi_c/Call.h +0 -110
- data/ext/ffi_c/ClosurePool.c +0 -283
- data/ext/ffi_c/ClosurePool.h +0 -57
- data/ext/ffi_c/DataConverter.c +0 -91
- data/ext/ffi_c/DynamicLibrary.c +0 -339
- data/ext/ffi_c/DynamicLibrary.h +0 -98
- data/ext/ffi_c/Function.c +0 -998
- data/ext/ffi_c/Function.h +0 -87
- data/ext/ffi_c/FunctionInfo.c +0 -271
- data/ext/ffi_c/LastError.c +0 -184
- data/ext/ffi_c/LastError.h +0 -47
- data/ext/ffi_c/LongDouble.c +0 -63
- data/ext/ffi_c/LongDouble.h +0 -51
- data/ext/ffi_c/MappedType.c +0 -168
- data/ext/ffi_c/MappedType.h +0 -59
- data/ext/ffi_c/MemoryPointer.c +0 -197
- data/ext/ffi_c/MemoryPointer.h +0 -53
- data/ext/ffi_c/MethodHandle.c +0 -358
- data/ext/ffi_c/MethodHandle.h +0 -55
- data/ext/ffi_c/Platform.c +0 -129
- data/ext/ffi_c/Platform.h +0 -45
- data/ext/ffi_c/Pointer.c +0 -508
- data/ext/ffi_c/Pointer.h +0 -63
- data/ext/ffi_c/Struct.c +0 -829
- data/ext/ffi_c/Struct.h +0 -106
- data/ext/ffi_c/StructByReference.c +0 -190
- data/ext/ffi_c/StructByReference.h +0 -50
- data/ext/ffi_c/StructByValue.c +0 -150
- data/ext/ffi_c/StructByValue.h +0 -55
- data/ext/ffi_c/StructLayout.c +0 -698
- data/ext/ffi_c/Thread.c +0 -352
- data/ext/ffi_c/Thread.h +0 -95
- data/ext/ffi_c/Type.c +0 -397
- data/ext/ffi_c/Type.h +0 -62
- data/ext/ffi_c/Types.c +0 -139
- data/ext/ffi_c/Types.h +0 -89
- data/ext/ffi_c/Variadic.c +0 -304
- data/ext/ffi_c/compat.h +0 -78
- data/ext/ffi_c/extconf.rb +0 -71
- data/ext/ffi_c/ffi.c +0 -98
- data/ext/ffi_c/libffi.bsd.mk +0 -40
- data/ext/ffi_c/libffi.darwin.mk +0 -105
- data/ext/ffi_c/libffi.gnu.mk +0 -32
- data/ext/ffi_c/libffi.mk +0 -18
- data/ext/ffi_c/libffi.vc.mk +0 -26
- data/ext/ffi_c/libffi.vc64.mk +0 -26
- data/ext/ffi_c/libffi/ChangeLog.libffi +0 -584
- data/ext/ffi_c/libffi/ChangeLog.libffi-3.1 +0 -6000
- data/ext/ffi_c/libffi/ChangeLog.libgcj +0 -40
- data/ext/ffi_c/libffi/ChangeLog.v1 +0 -764
- data/ext/ffi_c/libffi/LICENSE +0 -21
- data/ext/ffi_c/libffi/Makefile.am +0 -205
- data/ext/ffi_c/libffi/Makefile.in +0 -1805
- data/ext/ffi_c/libffi/README +0 -454
- data/ext/ffi_c/libffi/acinclude.m4 +0 -473
- data/ext/ffi_c/libffi/aclocal.m4 +0 -2134
- data/ext/ffi_c/libffi/autogen.sh +0 -2
- data/ext/ffi_c/libffi/autom4te.cache/output.0 +0 -21972
- data/ext/ffi_c/libffi/autom4te.cache/output.1 +0 -21972
- data/ext/ffi_c/libffi/autom4te.cache/output.2 +0 -21972
- data/ext/ffi_c/libffi/autom4te.cache/output.3 +0 -21972
- data/ext/ffi_c/libffi/autom4te.cache/requests +0 -331
- data/ext/ffi_c/libffi/autom4te.cache/traces.0 +0 -4010
- data/ext/ffi_c/libffi/autom4te.cache/traces.1 +0 -1005
- data/ext/ffi_c/libffi/autom4te.cache/traces.2 +0 -4010
- data/ext/ffi_c/libffi/autom4te.cache/traces.3 +0 -4010
- data/ext/ffi_c/libffi/compile +0 -347
- data/ext/ffi_c/libffi/config.guess +0 -1462
- data/ext/ffi_c/libffi/config.sub +0 -1825
- data/ext/ffi_c/libffi/configure +0 -21972
- data/ext/ffi_c/libffi/configure.ac +0 -388
- data/ext/ffi_c/libffi/configure.host +0 -272
- data/ext/ffi_c/libffi/depcomp +0 -791
- data/ext/ffi_c/libffi/doc/Makefile.am +0 -3
- data/ext/ffi_c/libffi/doc/Makefile.in +0 -811
- data/ext/ffi_c/libffi/doc/libffi.texi +0 -985
- data/ext/ffi_c/libffi/doc/mdate-sh +0 -228
- data/ext/ffi_c/libffi/doc/texinfo.tex +0 -10079
- data/ext/ffi_c/libffi/doc/version.texi +0 -4
- data/ext/ffi_c/libffi/fficonfig.h.in +0 -210
- data/ext/ffi_c/libffi/fficonfig.h.in~ +0 -210
- data/ext/ffi_c/libffi/generate-darwin-source-and-headers.py +0 -207
- data/ext/ffi_c/libffi/include/Makefile.am +0 -9
- data/ext/ffi_c/libffi/include/Makefile.in +0 -604
- data/ext/ffi_c/libffi/include/ffi.h.in +0 -484
- data/ext/ffi_c/libffi/include/ffi_cfi.h +0 -55
- data/ext/ffi_c/libffi/include/ffi_common.h +0 -147
- data/ext/ffi_c/libffi/install-sh +0 -508
- data/ext/ffi_c/libffi/libffi.map.in +0 -80
- data/ext/ffi_c/libffi/libffi.pc.in +0 -11
- data/ext/ffi_c/libffi/libffi.xcodeproj/project.pbxproj +0 -637
- data/ext/ffi_c/libffi/libtool-ldflags +0 -106
- data/ext/ffi_c/libffi/libtool-version +0 -29
- data/ext/ffi_c/libffi/ltmain.sh +0 -11156
- data/ext/ffi_c/libffi/m4/asmcfi.m4 +0 -13
- data/ext/ffi_c/libffi/m4/ax_append_flag.m4 +0 -69
- data/ext/ffi_c/libffi/m4/ax_cc_maxopt.m4 +0 -181
- data/ext/ffi_c/libffi/m4/ax_cflags_warn_all.m4 +0 -122
- data/ext/ffi_c/libffi/m4/ax_check_compile_flag.m4 +0 -72
- data/ext/ffi_c/libffi/m4/ax_compiler_vendor.m4 +0 -84
- data/ext/ffi_c/libffi/m4/ax_configure_args.m4 +0 -70
- data/ext/ffi_c/libffi/m4/ax_enable_builddir.m4 +0 -301
- data/ext/ffi_c/libffi/m4/ax_gcc_archflag.m4 +0 -225
- data/ext/ffi_c/libffi/m4/ax_gcc_x86_cpuid.m4 +0 -79
- data/ext/ffi_c/libffi/m4/libtool.m4 +0 -8387
- data/ext/ffi_c/libffi/m4/ltoptions.m4 +0 -437
- data/ext/ffi_c/libffi/m4/ltsugar.m4 +0 -124
- data/ext/ffi_c/libffi/m4/ltversion.m4 +0 -23
- data/ext/ffi_c/libffi/m4/lt~obsolete.m4 +0 -99
- data/ext/ffi_c/libffi/man/Makefile.am +0 -8
- data/ext/ffi_c/libffi/man/Makefile.in +0 -558
- data/ext/ffi_c/libffi/man/ffi.3 +0 -41
- data/ext/ffi_c/libffi/man/ffi_call.3 +0 -103
- data/ext/ffi_c/libffi/man/ffi_prep_cif.3 +0 -68
- data/ext/ffi_c/libffi/man/ffi_prep_cif_var.3 +0 -73
- data/ext/ffi_c/libffi/missing +0 -215
- data/ext/ffi_c/libffi/msvcc.sh +0 -260
- data/ext/ffi_c/libffi/src/aarch64/ffi.c +0 -941
- data/ext/ffi_c/libffi/src/aarch64/ffitarget.h +0 -81
- data/ext/ffi_c/libffi/src/aarch64/internal.h +0 -67
- data/ext/ffi_c/libffi/src/aarch64/sysv.S +0 -438
- data/ext/ffi_c/libffi/src/alpha/ffi.c +0 -521
- data/ext/ffi_c/libffi/src/alpha/ffitarget.h +0 -57
- data/ext/ffi_c/libffi/src/alpha/internal.h +0 -23
- data/ext/ffi_c/libffi/src/alpha/osf.S +0 -282
- data/ext/ffi_c/libffi/src/arc/arcompact.S +0 -135
- data/ext/ffi_c/libffi/src/arc/ffi.c +0 -266
- data/ext/ffi_c/libffi/src/arc/ffitarget.h +0 -53
- data/ext/ffi_c/libffi/src/arm/ffi.c +0 -808
- data/ext/ffi_c/libffi/src/arm/ffitarget.h +0 -82
- data/ext/ffi_c/libffi/src/arm/internal.h +0 -7
- data/ext/ffi_c/libffi/src/arm/sysv.S +0 -383
- data/ext/ffi_c/libffi/src/avr32/ffi.c +0 -423
- data/ext/ffi_c/libffi/src/avr32/ffitarget.h +0 -55
- data/ext/ffi_c/libffi/src/avr32/sysv.S +0 -208
- data/ext/ffi_c/libffi/src/bfin/ffi.c +0 -196
- data/ext/ffi_c/libffi/src/bfin/ffitarget.h +0 -43
- data/ext/ffi_c/libffi/src/bfin/sysv.S +0 -179
- data/ext/ffi_c/libffi/src/closures.c +0 -890
- data/ext/ffi_c/libffi/src/cris/ffi.c +0 -386
- data/ext/ffi_c/libffi/src/cris/ffitarget.h +0 -56
- data/ext/ffi_c/libffi/src/cris/sysv.S +0 -215
- data/ext/ffi_c/libffi/src/debug.c +0 -64
- data/ext/ffi_c/libffi/src/dlmalloc.c +0 -5166
- data/ext/ffi_c/libffi/src/frv/eabi.S +0 -128
- data/ext/ffi_c/libffi/src/frv/ffi.c +0 -292
- data/ext/ffi_c/libffi/src/frv/ffitarget.h +0 -62
- data/ext/ffi_c/libffi/src/ia64/ffi.c +0 -586
- data/ext/ffi_c/libffi/src/ia64/ffitarget.h +0 -55
- data/ext/ffi_c/libffi/src/ia64/ia64_flags.h +0 -40
- data/ext/ffi_c/libffi/src/ia64/unix.S +0 -560
- data/ext/ffi_c/libffi/src/java_raw_api.c +0 -374
- data/ext/ffi_c/libffi/src/m32r/ffi.c +0 -232
- data/ext/ffi_c/libffi/src/m32r/ffitarget.h +0 -53
- data/ext/ffi_c/libffi/src/m32r/sysv.S +0 -121
- data/ext/ffi_c/libffi/src/m68k/ffi.c +0 -362
- data/ext/ffi_c/libffi/src/m68k/ffitarget.h +0 -54
- data/ext/ffi_c/libffi/src/m68k/sysv.S +0 -357
- data/ext/ffi_c/libffi/src/m88k/ffi.c +0 -400
- data/ext/ffi_c/libffi/src/m88k/ffitarget.h +0 -49
- data/ext/ffi_c/libffi/src/m88k/obsd.S +0 -209
- data/ext/ffi_c/libffi/src/metag/ffi.c +0 -330
- data/ext/ffi_c/libffi/src/metag/ffitarget.h +0 -53
- data/ext/ffi_c/libffi/src/metag/sysv.S +0 -311
- data/ext/ffi_c/libffi/src/microblaze/ffi.c +0 -321
- data/ext/ffi_c/libffi/src/microblaze/ffitarget.h +0 -53
- data/ext/ffi_c/libffi/src/microblaze/sysv.S +0 -302
- data/ext/ffi_c/libffi/src/mips/ffi.c +0 -1105
- data/ext/ffi_c/libffi/src/mips/ffitarget.h +0 -249
- data/ext/ffi_c/libffi/src/mips/n32.S +0 -661
- data/ext/ffi_c/libffi/src/mips/o32.S +0 -502
- data/ext/ffi_c/libffi/src/moxie/eabi.S +0 -101
- data/ext/ffi_c/libffi/src/moxie/ffi.c +0 -272
- data/ext/ffi_c/libffi/src/moxie/ffitarget.h +0 -52
- data/ext/ffi_c/libffi/src/nios2/ffi.c +0 -304
- data/ext/ffi_c/libffi/src/nios2/ffitarget.h +0 -52
- data/ext/ffi_c/libffi/src/nios2/sysv.S +0 -136
- data/ext/ffi_c/libffi/src/or1k/ffi.c +0 -328
- data/ext/ffi_c/libffi/src/or1k/ffitarget.h +0 -58
- data/ext/ffi_c/libffi/src/or1k/sysv.S +0 -107
- data/ext/ffi_c/libffi/src/pa/ffi.c +0 -719
- data/ext/ffi_c/libffi/src/pa/ffitarget.h +0 -85
- data/ext/ffi_c/libffi/src/pa/hpux32.S +0 -368
- data/ext/ffi_c/libffi/src/pa/linux.S +0 -357
- data/ext/ffi_c/libffi/src/powerpc/aix.S +0 -328
- data/ext/ffi_c/libffi/src/powerpc/aix_closure.S +0 -447
- data/ext/ffi_c/libffi/src/powerpc/asm.h +0 -125
- data/ext/ffi_c/libffi/src/powerpc/darwin.S +0 -378
- data/ext/ffi_c/libffi/src/powerpc/darwin_closure.S +0 -571
- data/ext/ffi_c/libffi/src/powerpc/ffi.c +0 -173
- data/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +0 -1359
- data/ext/ffi_c/libffi/src/powerpc/ffi_linux64.c +0 -945
- data/ext/ffi_c/libffi/src/powerpc/ffi_powerpc.h +0 -94
- data/ext/ffi_c/libffi/src/powerpc/ffi_sysv.c +0 -923
- data/ext/ffi_c/libffi/src/powerpc/ffitarget.h +0 -195
- data/ext/ffi_c/libffi/src/powerpc/linux64.S +0 -228
- data/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +0 -488
- data/ext/ffi_c/libffi/src/powerpc/ppc_closure.S +0 -397
- data/ext/ffi_c/libffi/src/powerpc/sysv.S +0 -175
- data/ext/ffi_c/libffi/src/prep_cif.c +0 -261
- data/ext/ffi_c/libffi/src/raw_api.c +0 -267
- data/ext/ffi_c/libffi/src/s390/ffi.c +0 -756
- data/ext/ffi_c/libffi/src/s390/ffitarget.h +0 -70
- data/ext/ffi_c/libffi/src/s390/internal.h +0 -11
- data/ext/ffi_c/libffi/src/s390/sysv.S +0 -325
- data/ext/ffi_c/libffi/src/sh/ffi.c +0 -717
- data/ext/ffi_c/libffi/src/sh/ffitarget.h +0 -54
- data/ext/ffi_c/libffi/src/sh/sysv.S +0 -850
- data/ext/ffi_c/libffi/src/sh64/ffi.c +0 -469
- data/ext/ffi_c/libffi/src/sh64/ffitarget.h +0 -58
- data/ext/ffi_c/libffi/src/sh64/sysv.S +0 -539
- data/ext/ffi_c/libffi/src/sparc/ffi.c +0 -468
- data/ext/ffi_c/libffi/src/sparc/ffi64.c +0 -608
- data/ext/ffi_c/libffi/src/sparc/ffitarget.h +0 -81
- data/ext/ffi_c/libffi/src/sparc/internal.h +0 -26
- data/ext/ffi_c/libffi/src/sparc/v8.S +0 -443
- data/ext/ffi_c/libffi/src/sparc/v9.S +0 -440
- data/ext/ffi_c/libffi/src/tile/ffi.c +0 -355
- data/ext/ffi_c/libffi/src/tile/ffitarget.h +0 -65
- data/ext/ffi_c/libffi/src/tile/tile.S +0 -360
- data/ext/ffi_c/libffi/src/types.c +0 -106
- data/ext/ffi_c/libffi/src/vax/elfbsd.S +0 -195
- data/ext/ffi_c/libffi/src/vax/ffi.c +0 -276
- data/ext/ffi_c/libffi/src/vax/ffitarget.h +0 -49
- data/ext/ffi_c/libffi/src/x86/asmnames.h +0 -30
- data/ext/ffi_c/libffi/src/x86/ffi.c +0 -733
- data/ext/ffi_c/libffi/src/x86/ffi64.c +0 -857
- data/ext/ffi_c/libffi/src/x86/ffitarget.h +0 -141
- data/ext/ffi_c/libffi/src/x86/ffiw64.c +0 -287
- data/ext/ffi_c/libffi/src/x86/internal.h +0 -29
- data/ext/ffi_c/libffi/src/x86/internal64.h +0 -22
- data/ext/ffi_c/libffi/src/x86/sysv.S +0 -1043
- data/ext/ffi_c/libffi/src/x86/unix64.S +0 -525
- data/ext/ffi_c/libffi/src/x86/win64.S +0 -232
- data/ext/ffi_c/libffi/src/x86/win64_intel.S +0 -237
- data/ext/ffi_c/libffi/src/xtensa/ffi.c +0 -298
- data/ext/ffi_c/libffi/src/xtensa/ffitarget.h +0 -53
- data/ext/ffi_c/libffi/src/xtensa/sysv.S +0 -253
- data/ext/ffi_c/libffi/stamp-h.in +0 -1
- data/ext/ffi_c/libffi/testsuite/Makefile.am +0 -85
- data/ext/ffi_c/libffi/testsuite/Makefile.in +0 -607
- data/ext/ffi_c/libffi/testsuite/config/default.exp +0 -1
- data/ext/ffi_c/libffi/testsuite/lib/libffi.exp +0 -445
- data/ext/ffi_c/libffi/testsuite/lib/target-libpath.exp +0 -283
- data/ext/ffi_c/libffi/testsuite/lib/wrapper.exp +0 -45
- data/ext/ffi_c/libffi/testsuite/libffi.call/align_mixed.c +0 -46
- data/ext/ffi_c/libffi/testsuite/libffi.call/call.exp +0 -30
- data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn0.c +0 -89
- data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn1.c +0 -81
- data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn2.c +0 -81
- data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn3.c +0 -82
- data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn4.c +0 -89
- data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn5.c +0 -92
- data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn6.c +0 -90
- data/ext/ffi_c/libffi/testsuite/libffi.call/closure_loc_fn0.c +0 -95
- data/ext/ffi_c/libffi/testsuite/libffi.call/closure_simple.c +0 -55
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_12byte.c +0 -94
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_16byte.c +0 -95
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_18byte.c +0 -96
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_19byte.c +0 -102
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_1_1byte.c +0 -89
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte.c +0 -91
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte1.c +0 -93
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_24byte.c +0 -113
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_2byte.c +0 -90
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3_1byte.c +0 -95
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte1.c +0 -90
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte2.c +0 -90
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_4_1byte.c +0 -98
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_4byte.c +0 -90
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_5_1_byte.c +0 -109
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_5byte.c +0 -98
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_64byte.c +0 -124
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_6_1_byte.c +0 -113
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_6byte.c +0 -99
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_7_1_byte.c +0 -117
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_7byte.c +0 -97
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_8byte.c +0 -88
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte1.c +0 -90
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte2.c +0 -91
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_double.c +0 -93
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_float.c +0 -91
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble.c +0 -92
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split.c +0 -132
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split2.c +0 -115
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_pointer.c +0 -95
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint16.c +0 -91
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint32.c +0 -91
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint64.c +0 -92
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint16.c +0 -91
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint32.c +0 -91
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint64.c +0 -93
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_dbls_struct.c +0 -66
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_double.c +0 -43
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_double_va.c +0 -61
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_float.c +0 -42
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble.c +0 -105
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble_va.c +0 -61
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_many_mixed_args.c +0 -70
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_many_mixed_float_double.c +0 -55
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_schar.c +0 -74
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshort.c +0 -74
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshortchar.c +0 -86
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_uchar.c +0 -91
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushort.c +0 -74
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushortchar.c +0 -86
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer.c +0 -74
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer_stack.c +0 -142
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_schar.c +0 -44
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_sint.c +0 -42
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_sshort.c +0 -42
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_struct_va1.c +0 -114
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uchar.c +0 -42
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uchar_va.c +0 -44
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uint.c +0 -43
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uint_va.c +0 -45
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulong_va.c +0 -45
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulonglong.c +0 -47
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ushort.c +0 -43
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ushort_va.c +0 -44
- data/ext/ffi_c/libffi/testsuite/libffi.call/err_bad_abi.c +0 -36
- data/ext/ffi_c/libffi/testsuite/libffi.call/err_bad_typedef.c +0 -26
- data/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +0 -136
- data/ext/ffi_c/libffi/testsuite/libffi.call/float.c +0 -59
- data/ext/ffi_c/libffi/testsuite/libffi.call/float1.c +0 -60
- data/ext/ffi_c/libffi/testsuite/libffi.call/float2.c +0 -60
- data/ext/ffi_c/libffi/testsuite/libffi.call/float3.c +0 -74
- data/ext/ffi_c/libffi/testsuite/libffi.call/float4.c +0 -62
- data/ext/ffi_c/libffi/testsuite/libffi.call/float_va.c +0 -107
- data/ext/ffi_c/libffi/testsuite/libffi.call/huge_struct.c +0 -341
- data/ext/ffi_c/libffi/testsuite/libffi.call/many.c +0 -59
- data/ext/ffi_c/libffi/testsuite/libffi.call/many2.c +0 -57
- data/ext/ffi_c/libffi/testsuite/libffi.call/many_double.c +0 -70
- data/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c +0 -78
- data/ext/ffi_c/libffi/testsuite/libffi.call/negint.c +0 -52
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct.c +0 -152
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct1.c +0 -161
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct10.c +0 -133
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct11.c +0 -121
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct2.c +0 -110
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct3.c +0 -111
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct4.c +0 -111
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct5.c +0 -112
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct6.c +0 -131
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct7.c +0 -111
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct8.c +0 -131
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct9.c +0 -131
- data/ext/ffi_c/libffi/testsuite/libffi.call/offsets.c +0 -46
- data/ext/ffi_c/libffi/testsuite/libffi.call/pr1172638.c +0 -127
- data/ext/ffi_c/libffi/testsuite/libffi.call/problem1.c +0 -90
- data/ext/ffi_c/libffi/testsuite/libffi.call/promotion.c +0 -59
- data/ext/ffi_c/libffi/testsuite/libffi.call/pyobjc-tc.c +0 -114
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl.c +0 -36
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl1.c +0 -43
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl2.c +0 -42
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl.c +0 -35
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl1.c +0 -36
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl2.c +0 -49
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl3.c +0 -42
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_ldl.c +0 -34
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_ll.c +0 -41
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_ll1.c +0 -43
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_sc.c +0 -36
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_sl.c +0 -38
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_uc.c +0 -38
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_ul.c +0 -38
- data/ext/ffi_c/libffi/testsuite/libffi.call/stret_large.c +0 -145
- data/ext/ffi_c/libffi/testsuite/libffi.call/stret_large2.c +0 -148
- data/ext/ffi_c/libffi/testsuite/libffi.call/stret_medium.c +0 -124
- data/ext/ffi_c/libffi/testsuite/libffi.call/stret_medium2.c +0 -125
- data/ext/ffi_c/libffi/testsuite/libffi.call/strlen.c +0 -44
- data/ext/ffi_c/libffi/testsuite/libffi.call/strlen2.c +0 -49
- data/ext/ffi_c/libffi/testsuite/libffi.call/strlen3.c +0 -49
- data/ext/ffi_c/libffi/testsuite/libffi.call/strlen4.c +0 -55
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct1.c +0 -67
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct2.c +0 -67
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct3.c +0 -60
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct4.c +0 -64
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct5.c +0 -66
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct6.c +0 -64
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct7.c +0 -74
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct8.c +0 -81
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct9.c +0 -68
- data/ext/ffi_c/libffi/testsuite/libffi.call/testclosure.c +0 -70
- data/ext/ffi_c/libffi/testsuite/libffi.call/uninitialized.c +0 -61
- data/ext/ffi_c/libffi/testsuite/libffi.call/unwindtest.cc +0 -117
- data/ext/ffi_c/libffi/testsuite/libffi.call/unwindtest_ffi_call.cc +0 -54
- data/ext/ffi_c/libffi/testsuite/libffi.call/va_1.c +0 -196
- data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct1.c +0 -121
- data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct2.c +0 -123
- data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct3.c +0 -125
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex.inc +0 -91
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_double.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_float.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_longdouble.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex.inc +0 -42
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_double.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_float.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_longdouble.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct.inc +0 -71
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_double.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_float.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_longdouble.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va.inc +0 -80
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_double.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_float.c +0 -16
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_longdouble.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex.exp +0 -36
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex.inc +0 -51
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_double.inc +0 -7
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_float.inc +0 -7
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_longdouble.inc +0 -7
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_double.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_float.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_int.c +0 -86
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_longdouble.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/ffitest.h +0 -1
- data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex.inc +0 -78
- data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_double.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_float.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_longdouble.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex.inc +0 -37
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1.inc +0 -41
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_double.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_float.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_longdouble.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2.inc +0 -44
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_double.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_float.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_longdouble.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_double.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_float.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_longdouble.c +0 -10
- data/ext/ffi_c/libffi/testsuite/libffi.go/aa-direct.c +0 -34
- data/ext/ffi_c/libffi/testsuite/libffi.go/closure1.c +0 -28
- data/ext/ffi_c/libffi/testsuite/libffi.go/ffitest.h +0 -1
- data/ext/ffi_c/libffi/testsuite/libffi.go/go.exp +0 -36
- data/ext/ffi_c/libffi/testsuite/libffi.go/static-chain.h +0 -19
- data/ext/ffi_c/rbffi.h +0 -57
- data/ext/ffi_c/rbffi_endian.h +0 -59
- data/ext/ffi_c/win32/stdbool.h +0 -8
- data/ext/ffi_c/win32/stdint.h +0 -201
- data/gen/Rakefile +0 -30
- data/libtest/Benchmark.c +0 -52
- data/libtest/BoolTest.c +0 -34
- data/libtest/BufferTest.c +0 -31
- data/libtest/ClosureTest.c +0 -205
- data/libtest/EnumTest.c +0 -51
- data/libtest/FunctionTest.c +0 -70
- data/libtest/GNUmakefile +0 -149
- data/libtest/GlobalVariable.c +0 -62
- data/libtest/LastErrorTest.c +0 -21
- data/libtest/NumberTest.c +0 -132
- data/libtest/PointerTest.c +0 -63
- data/libtest/ReferenceTest.c +0 -23
- data/libtest/StringTest.c +0 -34
- data/libtest/StructTest.c +0 -243
- data/libtest/UnionTest.c +0 -43
- data/libtest/VariadicTest.c +0 -99
- data/spec/ffi/async_callback_spec.rb +0 -35
- data/spec/ffi/bitmask_spec.rb +0 -575
- data/spec/ffi/bool_spec.rb +0 -32
- data/spec/ffi/buffer_spec.rb +0 -279
- data/spec/ffi/callback_spec.rb +0 -773
- data/spec/ffi/custom_param_type.rb +0 -37
- data/spec/ffi/custom_type_spec.rb +0 -74
- data/spec/ffi/dup_spec.rb +0 -52
- data/spec/ffi/embed-test/ext/Makefile +0 -242
- data/spec/ffi/enum_spec.rb +0 -423
- data/spec/ffi/errno_spec.rb +0 -20
- data/spec/ffi/ffi_spec.rb +0 -28
- data/spec/ffi/fixtures/Benchmark.c +0 -52
- data/spec/ffi/fixtures/BitmaskTest.c +0 -51
- data/spec/ffi/fixtures/BoolTest.c +0 -34
- data/spec/ffi/fixtures/BufferTest.c +0 -31
- data/spec/ffi/fixtures/ClosureTest.c +0 -205
- data/spec/ffi/fixtures/EnumTest.c +0 -51
- data/spec/ffi/fixtures/FunctionTest.c +0 -142
- data/spec/ffi/fixtures/GNUmakefile +0 -149
- data/spec/ffi/fixtures/GlobalVariable.c +0 -62
- data/spec/ffi/fixtures/LastErrorTest.c +0 -21
- data/spec/ffi/fixtures/NumberTest.c +0 -132
- data/spec/ffi/fixtures/PipeHelper.h +0 -21
- data/spec/ffi/fixtures/PipeHelperPosix.c +0 -41
- data/spec/ffi/fixtures/PipeHelperWindows.c +0 -72
- data/spec/ffi/fixtures/PointerTest.c +0 -63
- data/spec/ffi/fixtures/ReferenceTest.c +0 -23
- data/spec/ffi/fixtures/StringTest.c +0 -34
- data/spec/ffi/fixtures/StructTest.c +0 -243
- data/spec/ffi/fixtures/UnionTest.c +0 -43
- data/spec/ffi/fixtures/VariadicTest.c +0 -99
- data/spec/ffi/fixtures/classes.rb +0 -438
- data/spec/ffi/function_spec.rb +0 -97
- data/spec/ffi/io_spec.rb +0 -16
- data/spec/ffi/library_spec.rb +0 -286
- data/spec/ffi/long_double.rb +0 -30
- data/spec/ffi/managed_struct_spec.rb +0 -68
- data/spec/ffi/memorypointer_spec.rb +0 -78
- data/spec/ffi/number_spec.rb +0 -247
- data/spec/ffi/platform_spec.rb +0 -114
- data/spec/ffi/pointer_spec.rb +0 -285
- data/spec/ffi/rbx/attach_function_spec.rb +0 -34
- data/spec/ffi/rbx/memory_pointer_spec.rb +0 -198
- data/spec/ffi/rbx/spec_helper.rb +0 -6
- data/spec/ffi/rbx/struct_spec.rb +0 -18
- data/spec/ffi/spec_helper.rb +0 -93
- data/spec/ffi/string_spec.rb +0 -118
- data/spec/ffi/strptr_spec.rb +0 -50
- data/spec/ffi/struct_by_ref_spec.rb +0 -43
- data/spec/ffi/struct_callback_spec.rb +0 -69
- data/spec/ffi/struct_initialize_spec.rb +0 -35
- data/spec/ffi/struct_packed_spec.rb +0 -50
- data/spec/ffi/struct_spec.rb +0 -882
- data/spec/ffi/typedef_spec.rb +0 -91
- data/spec/ffi/union_spec.rb +0 -67
- data/spec/ffi/variadic_spec.rb +0 -132
- data/spec/spec.opts +0 -4
@@ -1,81 +0,0 @@
|
|
1
|
-
/* -----------------------------------------------------------------*-C-*-
|
2
|
-
ffitarget.h - Copyright (c) 2012 Anthony Green
|
3
|
-
Copyright (c) 1996-2003 Red Hat, Inc.
|
4
|
-
Target configuration macros for SPARC.
|
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,
|
18
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
19
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
20
|
-
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
21
|
-
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
22
|
-
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
23
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
24
|
-
DEALINGS IN THE SOFTWARE.
|
25
|
-
|
26
|
-
----------------------------------------------------------------------- */
|
27
|
-
|
28
|
-
#ifndef LIBFFI_TARGET_H
|
29
|
-
#define LIBFFI_TARGET_H
|
30
|
-
|
31
|
-
#ifndef LIBFFI_H
|
32
|
-
#error "Please do not include ffitarget.h directly into your source. Use ffi.h instead."
|
33
|
-
#endif
|
34
|
-
|
35
|
-
/* ---- System specific configurations ----------------------------------- */
|
36
|
-
|
37
|
-
#if defined(__arch64__) || defined(__sparcv9)
|
38
|
-
#ifndef SPARC64
|
39
|
-
#define SPARC64
|
40
|
-
#endif
|
41
|
-
#endif
|
42
|
-
|
43
|
-
#ifndef LIBFFI_ASM
|
44
|
-
typedef unsigned long ffi_arg;
|
45
|
-
typedef signed long ffi_sarg;
|
46
|
-
|
47
|
-
typedef enum ffi_abi {
|
48
|
-
FFI_FIRST_ABI = 0,
|
49
|
-
#ifdef SPARC64
|
50
|
-
FFI_V9,
|
51
|
-
FFI_DEFAULT_ABI = FFI_V9,
|
52
|
-
#else
|
53
|
-
FFI_V8,
|
54
|
-
FFI_DEFAULT_ABI = FFI_V8,
|
55
|
-
#endif
|
56
|
-
FFI_LAST_ABI
|
57
|
-
} ffi_abi;
|
58
|
-
#endif
|
59
|
-
|
60
|
-
#define FFI_TARGET_SPECIFIC_STACK_SPACE_ALLOCATION 1
|
61
|
-
#define FFI_TARGET_HAS_COMPLEX_TYPE 1
|
62
|
-
|
63
|
-
#ifdef SPARC64
|
64
|
-
# define FFI_TARGET_SPECIFIC_VARIADIC 1
|
65
|
-
# define FFI_EXTRA_CIF_FIELDS unsigned int nfixedargs
|
66
|
-
#endif
|
67
|
-
|
68
|
-
/* ---- Definitions for closures ----------------------------------------- */
|
69
|
-
|
70
|
-
#define FFI_CLOSURES 1
|
71
|
-
#define FFI_GO_CLOSURES 1
|
72
|
-
#define FFI_NATIVE_RAW_API 0
|
73
|
-
|
74
|
-
#ifdef SPARC64
|
75
|
-
#define FFI_TRAMPOLINE_SIZE 24
|
76
|
-
#else
|
77
|
-
#define FFI_TRAMPOLINE_SIZE 16
|
78
|
-
#endif
|
79
|
-
|
80
|
-
#endif
|
81
|
-
|
@@ -1,26 +0,0 @@
|
|
1
|
-
#define SPARC_RET_VOID 0
|
2
|
-
#define SPARC_RET_STRUCT 1
|
3
|
-
#define SPARC_RET_UINT8 2
|
4
|
-
#define SPARC_RET_SINT8 3
|
5
|
-
#define SPARC_RET_UINT16 4
|
6
|
-
#define SPARC_RET_SINT16 5
|
7
|
-
#define SPARC_RET_UINT32 6
|
8
|
-
#define SP_V9_RET_SINT32 7 /* v9 only */
|
9
|
-
#define SP_V8_RET_CPLX16 7 /* v8 only */
|
10
|
-
#define SPARC_RET_INT64 8
|
11
|
-
#define SPARC_RET_INT128 9
|
12
|
-
|
13
|
-
/* Note that F_7 is missing, and is handled by SPARC_RET_STRUCT. */
|
14
|
-
#define SPARC_RET_F_8 10
|
15
|
-
#define SPARC_RET_F_6 11
|
16
|
-
#define SPARC_RET_F_4 12
|
17
|
-
#define SPARC_RET_F_2 13
|
18
|
-
#define SP_V9_RET_F_3 14 /* v9 only */
|
19
|
-
#define SP_V8_RET_CPLX8 14 /* v8 only */
|
20
|
-
#define SPARC_RET_F_1 15
|
21
|
-
|
22
|
-
#define SPARC_FLAG_RET_MASK 15
|
23
|
-
#define SPARC_FLAG_RET_IN_MEM 32
|
24
|
-
#define SPARC_FLAG_FP_ARGS 64
|
25
|
-
|
26
|
-
#define SPARC_SIZEMASK_SHIFT 8
|
@@ -1,443 +0,0 @@
|
|
1
|
-
/* -----------------------------------------------------------------------
|
2
|
-
v8.S - Copyright (c) 2013 The Written Word, Inc.
|
3
|
-
Copyright (c) 1996, 1997, 2003, 2004, 2008 Red Hat, Inc.
|
4
|
-
|
5
|
-
SPARC Foreign Function Interface
|
6
|
-
|
7
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
8
|
-
a copy of this software and associated documentation files (the
|
9
|
-
``Software''), to deal in the Software without restriction, including
|
10
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
11
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
12
|
-
permit persons to whom the Software is furnished to do so, subject to
|
13
|
-
the following conditions:
|
14
|
-
|
15
|
-
The above copyright notice and this permission notice shall be included
|
16
|
-
in all copies or substantial portions of the Software.
|
17
|
-
|
18
|
-
THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
|
19
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
20
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
21
|
-
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
22
|
-
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
23
|
-
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
24
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
25
|
-
DEALINGS IN THE SOFTWARE.
|
26
|
-
----------------------------------------------------------------------- */
|
27
|
-
|
28
|
-
#define LIBFFI_ASM
|
29
|
-
#include <fficonfig.h>
|
30
|
-
#include <ffi.h>
|
31
|
-
#include "internal.h"
|
32
|
-
|
33
|
-
#ifndef SPARC64
|
34
|
-
|
35
|
-
#define C2(X, Y) X ## Y
|
36
|
-
#define C1(X, Y) C2(X, Y)
|
37
|
-
|
38
|
-
#ifdef __USER_LABEL_PREFIX__
|
39
|
-
# define C(Y) C1(__USER_LABEL_PREFIX__, Y)
|
40
|
-
#else
|
41
|
-
# define C(Y) Y
|
42
|
-
#endif
|
43
|
-
#define L(Y) C1(.L, Y)
|
44
|
-
|
45
|
-
.text
|
46
|
-
|
47
|
-
#ifndef __GNUC__
|
48
|
-
.align 8
|
49
|
-
.globl C(ffi_flush_icache)
|
50
|
-
.type C(ffi_flush_icache),#function
|
51
|
-
FFI_HIDDEN(C(ffi_flush_icache))
|
52
|
-
|
53
|
-
C(ffi_flush_icache):
|
54
|
-
1: iflush %o0
|
55
|
-
iflush %o+8
|
56
|
-
nop
|
57
|
-
nop
|
58
|
-
nop
|
59
|
-
nop
|
60
|
-
nop
|
61
|
-
retl
|
62
|
-
nop
|
63
|
-
.size C(ffi_flush_icache), . - C(ffi_flush_icache)
|
64
|
-
#endif
|
65
|
-
|
66
|
-
#if defined(__sun__) && defined(__svr4__)
|
67
|
-
# define E(INDEX) .align 16
|
68
|
-
#else
|
69
|
-
# define E(INDEX) .align 16; .org 2b + INDEX * 16
|
70
|
-
#endif
|
71
|
-
|
72
|
-
.align 8
|
73
|
-
.globl C(ffi_call_v8)
|
74
|
-
.type C(ffi_call_v8),#function
|
75
|
-
FFI_HIDDEN(C(ffi_call_v8))
|
76
|
-
|
77
|
-
C(ffi_call_v8):
|
78
|
-
.LUW0:
|
79
|
-
! Allocate a stack frame sized by ffi_call.
|
80
|
-
save %sp, %o4, %sp
|
81
|
-
.LUW1:
|
82
|
-
mov %i0, %o0 ! copy cif
|
83
|
-
add %sp, 64+32, %o1 ! load args area
|
84
|
-
mov %i2, %o2 ! copy rvalue
|
85
|
-
call C(ffi_prep_args_v8)
|
86
|
-
mov %i3, %o3 ! copy avalue
|
87
|
-
|
88
|
-
add %sp, 32, %sp ! deallocate prep frame
|
89
|
-
and %o0, SPARC_FLAG_RET_MASK, %l0 ! save return type
|
90
|
-
srl %o0, SPARC_SIZEMASK_SHIFT, %l1 ! save return size
|
91
|
-
ld [%sp+64+4], %o0 ! load all argument registers
|
92
|
-
ld [%sp+64+8], %o1
|
93
|
-
ld [%sp+64+12], %o2
|
94
|
-
ld [%sp+64+16], %o3
|
95
|
-
cmp %l0, SPARC_RET_STRUCT ! struct return needs an unimp 4
|
96
|
-
ld [%sp+64+20], %o4
|
97
|
-
be 8f
|
98
|
-
ld [%sp+64+24], %o5
|
99
|
-
|
100
|
-
! Call foreign function
|
101
|
-
call %i1
|
102
|
-
mov %i5, %g2 ! load static chain
|
103
|
-
|
104
|
-
0: call 1f ! load pc in %o7
|
105
|
-
sll %l0, 4, %l0
|
106
|
-
1: add %o7, %l0, %o7 ! o7 = 0b + ret_type*16
|
107
|
-
jmp %o7+(2f-0b)
|
108
|
-
nop
|
109
|
-
|
110
|
-
! Note that each entry is 4 insns, enforced by the E macro.
|
111
|
-
.align 16
|
112
|
-
2:
|
113
|
-
E(SPARC_RET_VOID)
|
114
|
-
ret
|
115
|
-
restore
|
116
|
-
E(SPARC_RET_STRUCT)
|
117
|
-
unimp
|
118
|
-
E(SPARC_RET_UINT8)
|
119
|
-
and %o0, 0xff, %o0
|
120
|
-
st %o0, [%i2]
|
121
|
-
ret
|
122
|
-
restore
|
123
|
-
E(SPARC_RET_SINT8)
|
124
|
-
sll %o0, 24, %o0
|
125
|
-
b 7f
|
126
|
-
sra %o0, 24, %o0
|
127
|
-
E(SPARC_RET_UINT16)
|
128
|
-
sll %o0, 16, %o0
|
129
|
-
b 7f
|
130
|
-
srl %o0, 16, %o0
|
131
|
-
E(SPARC_RET_SINT16)
|
132
|
-
sll %o0, 16, %o0
|
133
|
-
b 7f
|
134
|
-
sra %o0, 16, %o0
|
135
|
-
E(SPARC_RET_UINT32)
|
136
|
-
7: st %o0, [%i2]
|
137
|
-
ret
|
138
|
-
restore
|
139
|
-
E(SP_V8_RET_CPLX16)
|
140
|
-
sth %o0, [%i2+2]
|
141
|
-
b 9f
|
142
|
-
srl %o0, 16, %o0
|
143
|
-
E(SPARC_RET_INT64)
|
144
|
-
st %o0, [%i2]
|
145
|
-
st %o1, [%i2+4]
|
146
|
-
ret
|
147
|
-
restore
|
148
|
-
E(SPARC_RET_INT128)
|
149
|
-
std %o0, [%i2]
|
150
|
-
std %o2, [%i2+8]
|
151
|
-
ret
|
152
|
-
restore
|
153
|
-
E(SPARC_RET_F_8)
|
154
|
-
st %f7, [%i2+7*4]
|
155
|
-
nop
|
156
|
-
st %f6, [%i2+6*4]
|
157
|
-
nop
|
158
|
-
E(SPARC_RET_F_6)
|
159
|
-
st %f5, [%i2+5*4]
|
160
|
-
nop
|
161
|
-
st %f4, [%i2+4*4]
|
162
|
-
nop
|
163
|
-
E(SPARC_RET_F_4)
|
164
|
-
st %f3, [%i2+3*4]
|
165
|
-
nop
|
166
|
-
st %f2, [%i2+2*4]
|
167
|
-
nop
|
168
|
-
E(SPARC_RET_F_2)
|
169
|
-
st %f1, [%i2+4]
|
170
|
-
st %f0, [%i2]
|
171
|
-
ret
|
172
|
-
restore
|
173
|
-
E(SP_V8_RET_CPLX8)
|
174
|
-
stb %o0, [%i2+1]
|
175
|
-
b 0f
|
176
|
-
srl %o0, 8, %o0
|
177
|
-
E(SPARC_RET_F_1)
|
178
|
-
st %f0, [%i2]
|
179
|
-
ret
|
180
|
-
restore
|
181
|
-
|
182
|
-
.align 8
|
183
|
-
9: sth %o0, [%i2]
|
184
|
-
ret
|
185
|
-
restore
|
186
|
-
.align 8
|
187
|
-
0: stb %o0, [%i2]
|
188
|
-
ret
|
189
|
-
restore
|
190
|
-
|
191
|
-
! Struct returning functions expect and skip the unimp here.
|
192
|
-
! To make it worse, conforming callees examine the unimp and
|
193
|
-
! make sure the low 12 bits of the unimp match the size of
|
194
|
-
! the struct being returned.
|
195
|
-
.align 8
|
196
|
-
8: call 1f ! load pc in %o7
|
197
|
-
sll %l1, 2, %l0 ! size * 4
|
198
|
-
1: sll %l1, 4, %l1 ! size * 16
|
199
|
-
add %l0, %l1, %l0 ! size * 20
|
200
|
-
add %o7, %l0, %o7 ! o7 = 8b + size*20
|
201
|
-
jmp %o7+(2f-8b)
|
202
|
-
mov %i5, %g2 ! load static chain
|
203
|
-
2:
|
204
|
-
|
205
|
-
/* The Sun assembler doesn't understand .rept 0x1000. */
|
206
|
-
#define rept1 \
|
207
|
-
call %i1; \
|
208
|
-
nop; \
|
209
|
-
unimp (. - 2b) / 20; \
|
210
|
-
ret; \
|
211
|
-
restore
|
212
|
-
|
213
|
-
#define rept16 \
|
214
|
-
rept1; rept1; rept1; rept1; \
|
215
|
-
rept1; rept1; rept1; rept1; \
|
216
|
-
rept1; rept1; rept1; rept1; \
|
217
|
-
rept1; rept1; rept1; rept1
|
218
|
-
|
219
|
-
#define rept256 \
|
220
|
-
rept16; rept16; rept16; rept16; \
|
221
|
-
rept16; rept16; rept16; rept16; \
|
222
|
-
rept16; rept16; rept16; rept16; \
|
223
|
-
rept16; rept16; rept16; rept16
|
224
|
-
|
225
|
-
rept256; rept256; rept256; rept256
|
226
|
-
rept256; rept256; rept256; rept256
|
227
|
-
rept256; rept256; rept256; rept256
|
228
|
-
rept256; rept256; rept256; rept256
|
229
|
-
|
230
|
-
.LUW2:
|
231
|
-
.size C(ffi_call_v8),. - C(ffi_call_v8)
|
232
|
-
|
233
|
-
|
234
|
-
/* 16*4 register window + 1*4 struct return + 6*4 args backing store
|
235
|
-
+ 8*4 return storage + 1*4 alignment. */
|
236
|
-
#define STACKFRAME (16*4 + 4 + 6*4 + 8*4 + 4)
|
237
|
-
|
238
|
-
/* ffi_closure_v8(...)
|
239
|
-
|
240
|
-
Receives the closure argument in %g2. */
|
241
|
-
|
242
|
-
#ifdef HAVE_AS_REGISTER_PSEUDO_OP
|
243
|
-
.register %g2, #scratch
|
244
|
-
#endif
|
245
|
-
|
246
|
-
.align 8
|
247
|
-
.globl C(ffi_go_closure_v8)
|
248
|
-
.type C(ffi_go_closure_v8),#function
|
249
|
-
FFI_HIDDEN(C(ffi_go_closure_v8))
|
250
|
-
|
251
|
-
C(ffi_go_closure_v8):
|
252
|
-
.LUW3:
|
253
|
-
save %sp, -STACKFRAME, %sp
|
254
|
-
.LUW4:
|
255
|
-
ld [%g2+4], %o0 ! load cif
|
256
|
-
ld [%g2+8], %o1 ! load fun
|
257
|
-
b 0f
|
258
|
-
mov %g2, %o2 ! load user_data
|
259
|
-
.LUW5:
|
260
|
-
.size C(ffi_go_closure_v8), . - C(ffi_go_closure_v8)
|
261
|
-
|
262
|
-
.align 8
|
263
|
-
.globl C(ffi_closure_v8)
|
264
|
-
.type C(ffi_closure_v8),#function
|
265
|
-
FFI_HIDDEN(C(ffi_closure_v8))
|
266
|
-
|
267
|
-
C(ffi_closure_v8):
|
268
|
-
.LUW6:
|
269
|
-
save %sp, -STACKFRAME, %sp
|
270
|
-
.LUW7:
|
271
|
-
ld [%g2+FFI_TRAMPOLINE_SIZE], %o0 ! load cif
|
272
|
-
ld [%g2+FFI_TRAMPOLINE_SIZE+4], %o1 ! load fun
|
273
|
-
ld [%g2+FFI_TRAMPOLINE_SIZE+8], %o2 ! load user_data
|
274
|
-
0:
|
275
|
-
! Store all of the potential argument registers in va_list format.
|
276
|
-
st %i0, [%fp+68+0]
|
277
|
-
st %i1, [%fp+68+4]
|
278
|
-
st %i2, [%fp+68+8]
|
279
|
-
st %i3, [%fp+68+12]
|
280
|
-
st %i4, [%fp+68+16]
|
281
|
-
st %i5, [%fp+68+20]
|
282
|
-
|
283
|
-
! Call ffi_closure_sparc_inner to do the bulk of the work.
|
284
|
-
add %fp, -8*4, %o3
|
285
|
-
call ffi_closure_sparc_inner_v8
|
286
|
-
add %fp, 64, %o4
|
287
|
-
|
288
|
-
0: call 1f
|
289
|
-
and %o0, SPARC_FLAG_RET_MASK, %o0
|
290
|
-
1: sll %o0, 4, %o0 ! o0 = o0 * 16
|
291
|
-
add %o7, %o0, %o7 ! o7 = 0b + o0*16
|
292
|
-
jmp %o7+(2f-0b)
|
293
|
-
add %fp, -8*4, %i2
|
294
|
-
|
295
|
-
! Note that each entry is 4 insns, enforced by the E macro.
|
296
|
-
.align 16
|
297
|
-
2:
|
298
|
-
E(SPARC_RET_VOID)
|
299
|
-
ret
|
300
|
-
restore
|
301
|
-
E(SPARC_RET_STRUCT)
|
302
|
-
ld [%i2], %i0
|
303
|
-
jmp %i7+12
|
304
|
-
restore
|
305
|
-
E(SPARC_RET_UINT8)
|
306
|
-
ldub [%i2+3], %i0
|
307
|
-
ret
|
308
|
-
restore
|
309
|
-
E(SPARC_RET_SINT8)
|
310
|
-
ldsb [%i2+3], %i0
|
311
|
-
ret
|
312
|
-
restore
|
313
|
-
E(SPARC_RET_UINT16)
|
314
|
-
lduh [%i2+2], %i0
|
315
|
-
ret
|
316
|
-
restore
|
317
|
-
E(SPARC_RET_SINT16)
|
318
|
-
ldsh [%i2+2], %i0
|
319
|
-
ret
|
320
|
-
restore
|
321
|
-
E(SPARC_RET_UINT32)
|
322
|
-
ld [%i2], %i0
|
323
|
-
ret
|
324
|
-
restore
|
325
|
-
E(SP_V8_RET_CPLX16)
|
326
|
-
ld [%i2], %i0
|
327
|
-
ret
|
328
|
-
restore
|
329
|
-
E(SPARC_RET_INT64)
|
330
|
-
ldd [%i2], %i0
|
331
|
-
ret
|
332
|
-
restore
|
333
|
-
E(SPARC_RET_INT128)
|
334
|
-
ldd [%i2], %i0
|
335
|
-
ldd [%i2+8], %i2
|
336
|
-
ret
|
337
|
-
restore
|
338
|
-
E(SPARC_RET_F_8)
|
339
|
-
ld [%i2+7*4], %f7
|
340
|
-
nop
|
341
|
-
ld [%i2+6*4], %f6
|
342
|
-
nop
|
343
|
-
E(SPARC_RET_F_6)
|
344
|
-
ld [%i2+5*4], %f5
|
345
|
-
nop
|
346
|
-
ld [%i2+4*4], %f4
|
347
|
-
nop
|
348
|
-
E(SPARC_RET_F_4)
|
349
|
-
ld [%i2+3*4], %f3
|
350
|
-
nop
|
351
|
-
ld [%i2+2*4], %f2
|
352
|
-
nop
|
353
|
-
E(SPARC_RET_F_2)
|
354
|
-
ldd [%i2], %f0
|
355
|
-
ret
|
356
|
-
restore
|
357
|
-
E(SP_V8_RET_CPLX8)
|
358
|
-
lduh [%i2], %i0
|
359
|
-
ret
|
360
|
-
restore
|
361
|
-
E(SPARC_RET_F_1)
|
362
|
-
ld [%i2], %f0
|
363
|
-
ret
|
364
|
-
restore
|
365
|
-
|
366
|
-
.LUW8:
|
367
|
-
.size C(ffi_closure_v8), . - C(ffi_closure_v8)
|
368
|
-
|
369
|
-
#ifdef HAVE_RO_EH_FRAME
|
370
|
-
.section ".eh_frame",#alloc
|
371
|
-
#else
|
372
|
-
.section ".eh_frame",#alloc,#write
|
373
|
-
#endif
|
374
|
-
|
375
|
-
#ifdef HAVE_AS_SPARC_UA_PCREL
|
376
|
-
# define FDE_ADDR(X) %r_disp32(X)
|
377
|
-
#else
|
378
|
-
# define FDE_ADDR(X) X
|
379
|
-
#endif
|
380
|
-
|
381
|
-
.align 4
|
382
|
-
.LCIE:
|
383
|
-
.long .LECIE - .LSCIE ! CIE Length
|
384
|
-
.LSCIE:
|
385
|
-
.long 0 ! CIE Identifier Tag
|
386
|
-
.byte 1 ! CIE Version
|
387
|
-
.ascii "zR\0" ! CIE Augmentation
|
388
|
-
.byte 4 ! CIE Code Alignment Factor
|
389
|
-
.byte 0x7c ! CIE Data Alignment Factor
|
390
|
-
.byte 15 ! CIE RA Column
|
391
|
-
.byte 1 ! Augmentation size
|
392
|
-
#ifdef HAVE_AS_SPARC_UA_PCREL
|
393
|
-
.byte 0x1b ! FDE Encoding (pcrel sdata4)
|
394
|
-
#else
|
395
|
-
.byte 0x50 ! FDE Encoding (aligned absolute)
|
396
|
-
#endif
|
397
|
-
.byte 0xc, 14, 0 ! DW_CFA_def_cfa, %o6, offset 0
|
398
|
-
.align 4
|
399
|
-
.LECIE:
|
400
|
-
|
401
|
-
.long .LEFDE1 - .LSFDE1 ! FDE Length
|
402
|
-
.LSFDE1:
|
403
|
-
.long .LSFDE1 - .LCIE ! FDE CIE offset
|
404
|
-
.long FDE_ADDR(.LUW0) ! Initial location
|
405
|
-
.long .LUW2 - .LUW0 ! Address range
|
406
|
-
.byte 0 ! Augmentation size
|
407
|
-
.byte 0x40+1 ! DW_CFA_advance_loc 4
|
408
|
-
.byte 0xd, 30 ! DW_CFA_def_cfa_register, %i6
|
409
|
-
.byte 0x2d ! DW_CFA_GNU_window_save
|
410
|
-
.byte 0x9, 15, 31 ! DW_CFA_register, %o7, %i7
|
411
|
-
.align 4
|
412
|
-
.LEFDE1:
|
413
|
-
|
414
|
-
.long .LEFDE2 - .LSFDE2 ! FDE Length
|
415
|
-
.LSFDE2:
|
416
|
-
.long .LSFDE2 - .LCIE ! FDE CIE offset
|
417
|
-
.long FDE_ADDR(.LUW3) ! Initial location
|
418
|
-
.long .LUW5 - .LUW3 ! Address range
|
419
|
-
.byte 0 ! Augmentation size
|
420
|
-
.byte 0x40+1 ! DW_CFA_advance_loc 4
|
421
|
-
.byte 0xd, 30 ! DW_CFA_def_cfa_register, %i6
|
422
|
-
.byte 0x2d ! DW_CFA_GNU_window_save
|
423
|
-
.byte 0x9, 15, 31 ! DW_CFA_register, %o7, %i7
|
424
|
-
.align 4
|
425
|
-
.LEFDE2:
|
426
|
-
|
427
|
-
.long .LEFDE3 - .LSFDE3 ! FDE Length
|
428
|
-
.LSFDE3:
|
429
|
-
.long .LSFDE3 - .LCIE ! FDE CIE offset
|
430
|
-
.long FDE_ADDR(.LUW6) ! Initial location
|
431
|
-
.long .LUW8 - .LUW6 ! Address range
|
432
|
-
.byte 0 ! Augmentation size
|
433
|
-
.byte 0x40+1 ! DW_CFA_advance_loc 4
|
434
|
-
.byte 0xd, 30 ! DW_CFA_def_cfa_register, %i6
|
435
|
-
.byte 0x2d ! DW_CFA_GNU_window_save
|
436
|
-
.byte 0x9, 15, 31 ! DW_CFA_register, %o7, %i7
|
437
|
-
.align 4
|
438
|
-
.LEFDE3:
|
439
|
-
|
440
|
-
#endif /* !SPARC64 */
|
441
|
-
#if defined __ELF__ && defined __linux__
|
442
|
-
.section .note.GNU-stack,"",@progbits
|
443
|
-
#endif
|