ffi 1.9.23 → 1.9.24

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +66 -0
  3. data/Rakefile +1 -1
  4. data/ext/ffi_c/Call.c +5 -2
  5. data/ext/ffi_c/Function.c +8 -5
  6. data/ext/ffi_c/Thread.c +1 -0
  7. data/ext/ffi_c/extconf.rb +1 -0
  8. data/ext/ffi_c/libffi/.appveyor.yml +6 -4
  9. data/ext/ffi_c/libffi/.github/issue_template.md +10 -0
  10. data/ext/ffi_c/libffi/.gitignore +2 -0
  11. data/ext/ffi_c/libffi/.travis.yml +20 -16
  12. data/ext/ffi_c/libffi/.travis/ar-lib +270 -0
  13. data/ext/ffi_c/libffi/.travis/build.sh +34 -0
  14. data/ext/ffi_c/libffi/.travis/compile +351 -0
  15. data/ext/ffi_c/libffi/.travis/install.sh +11 -3
  16. data/ext/ffi_c/libffi/.travis/moxie-sim.exp +60 -0
  17. data/ext/ffi_c/libffi/.travis/site.exp +18 -0
  18. data/ext/ffi_c/libffi/LICENSE-BUILDTOOLS +352 -0
  19. data/ext/ffi_c/libffi/Makefile.am +4 -45
  20. data/ext/ffi_c/libffi/{README → README.md} +237 -230
  21. data/ext/ffi_c/libffi/configure.ac +10 -8
  22. data/ext/ffi_c/libffi/configure.host +5 -0
  23. data/ext/ffi_c/libffi/include/ffi.h.in +48 -26
  24. data/ext/ffi_c/libffi/include/ffi_common.h +2 -0
  25. data/ext/ffi_c/libffi/m4/ax_append_flag.m4 +18 -16
  26. data/ext/ffi_c/libffi/m4/ax_cc_maxopt.m4 +21 -8
  27. data/ext/ffi_c/libffi/m4/ax_cflags_warn_all.m4 +4 -4
  28. data/ext/ffi_c/libffi/m4/ax_check_compile_flag.m4 +9 -7
  29. data/ext/ffi_c/libffi/m4/ax_compiler_vendor.m4 +8 -5
  30. data/ext/ffi_c/libffi/m4/ax_configure_args.m4 +5 -5
  31. data/ext/ffi_c/libffi/m4/ax_enable_builddir.m4 +7 -6
  32. data/ext/ffi_c/libffi/m4/ax_gcc_archflag.m4 +99 -61
  33. data/ext/ffi_c/libffi/m4/ax_gcc_x86_cpuid.m4 +18 -8
  34. data/ext/ffi_c/libffi/m4/ax_require_defined.m4 +37 -0
  35. data/ext/ffi_c/libffi/msvcc.sh +82 -14
  36. data/ext/ffi_c/libffi/src/aarch64/ffi.c +8 -31
  37. data/ext/ffi_c/libffi/src/closures.c +31 -1
  38. data/ext/ffi_c/libffi/src/ia64/ffi.c +24 -6
  39. data/ext/ffi_c/libffi/src/ia64/ffitarget.h +2 -1
  40. data/ext/ffi_c/libffi/src/ia64/unix.S +6 -1
  41. data/ext/ffi_c/libffi/src/mips/ffi.c +29 -12
  42. data/ext/ffi_c/libffi/src/mips/ffitarget.h +7 -12
  43. data/ext/ffi_c/libffi/src/moxie/eabi.S +1 -1
  44. data/ext/ffi_c/libffi/src/moxie/ffi.c +18 -5
  45. data/ext/ffi_c/libffi/src/powerpc/ffi_linux64.c +45 -16
  46. data/ext/ffi_c/libffi/src/riscv/ffi.c +445 -0
  47. data/ext/ffi_c/libffi/src/riscv/ffitarget.h +68 -0
  48. data/ext/ffi_c/libffi/src/riscv/sysv.S +214 -0
  49. data/ext/ffi_c/libffi/src/types.c +3 -1
  50. data/ext/ffi_c/libffi/src/x86/ffi.c +18 -0
  51. data/ext/ffi_c/libffi/src/x86/ffi64.c +15 -9
  52. data/ext/ffi_c/libffi/src/x86/ffitarget.h +8 -2
  53. data/ext/ffi_c/libffi/src/x86/ffiw64.c +30 -9
  54. data/ext/ffi_c/libffi/src/xtensa/sysv.S +6 -1
  55. data/ext/ffi_c/libffi/testsuite/Makefile.am +108 -77
  56. data/ext/ffi_c/libffi/testsuite/lib/libffi.exp +195 -5
  57. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/Makefile +28 -0
  58. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/README +78 -0
  59. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/alignof.h +50 -0
  60. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/bhaible.exp +58 -0
  61. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-call.c +1745 -0
  62. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-callback.c +2885 -0
  63. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/testcases.c +743 -0
  64. data/ext/ffi_c/libffi/testsuite/libffi.call/align_stdcall.c +46 -0
  65. data/ext/ffi_c/libffi/testsuite/libffi.call/call.exp +14 -1
  66. data/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +3 -1
  67. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct10.c +1 -0
  68. data/ext/ffi_c/libffi/testsuite/libffi.call/struct10.c +57 -0
  69. data/ext/ffi_c/libffi/testsuite/libffi.call/unwindtest.cc +1 -1
  70. data/ext/ffi_c/libffi/testsuite/libffi.call/unwindtest_ffi_call.cc +1 -1
  71. data/lib/ffi/library.rb +2 -4
  72. data/lib/ffi/platform/mips64-linux/types.conf +104 -0
  73. data/lib/ffi/platform/mipsisa32r6-linux/types.conf +102 -0
  74. data/lib/ffi/platform/mipsisa32r6el-linux/types.conf +102 -0
  75. data/lib/ffi/platform/mipsisa64r6-linux/types.conf +104 -0
  76. data/lib/ffi/platform/mipsisa64r6el-linux/types.conf +104 -0
  77. data/lib/ffi/version.rb +1 -1
  78. metadata +29 -3
@@ -0,0 +1,46 @@
1
+ /* Area: ffi_call
2
+ Purpose: Check for proper argument alignment.
3
+ Limitations: none.
4
+ PR: none.
5
+ Originator: <twalljava@java.net> (from many_win32.c) */
6
+
7
+ /* { dg-do run } */
8
+
9
+ #include "ffitest.h"
10
+
11
+ static float ABI_ATTR align_arguments(int i1,
12
+ double f2,
13
+ int i3,
14
+ double f4)
15
+ {
16
+ return i1+f2+i3+f4;
17
+ }
18
+
19
+ int main(void)
20
+ {
21
+ ffi_cif cif;
22
+ ffi_type *args[4] = {
23
+ &ffi_type_sint,
24
+ &ffi_type_double,
25
+ &ffi_type_sint,
26
+ &ffi_type_double
27
+ };
28
+ double fa[2] = {1,2};
29
+ int ia[2] = {1,2};
30
+ void *values[4] = {&ia[0], &fa[0], &ia[1], &fa[1]};
31
+ float f, ff;
32
+
33
+ /* Initialize the cif */
34
+ CHECK(ffi_prep_cif(&cif, ABI_NUM, 4,
35
+ &ffi_type_float, args) == FFI_OK);
36
+
37
+ ff = align_arguments(ia[0], fa[0], ia[1], fa[1]);;
38
+
39
+ ffi_call(&cif, FFI_FN(align_arguments), &f, values);
40
+
41
+ if (f == ff)
42
+ printf("align arguments tests ok!\n");
43
+ else
44
+ CHECK(0);
45
+ exit(0);
46
+ }
@@ -19,9 +19,22 @@ libffi-init
19
19
 
20
20
  global srcdir subdir
21
21
 
22
+ if { [string match $compiler_vendor "microsoft"] } {
23
+ # -wd4005 macro redefinition
24
+ # -wd4244 implicit conversion to type of smaller size
25
+ # -wd4305 truncation to smaller type
26
+ # -wd4477 printf %lu of uintptr_t
27
+ # -wd4312 implicit conversion to type of greater size
28
+ # -wd4311 pointer truncation to unsigned long
29
+ # -EHsc C++ Exception Handling (no SEH exceptions)
30
+ set additional_options "-wd4005 -wd4244 -wd4305 -wd4477 -wd4312 -wd4311 -EHsc";
31
+ } else {
32
+ set additional_options "";
33
+ }
34
+
22
35
  set tlist [lsort [glob -nocomplain -- $srcdir/$subdir/*.{c,cc}]]
23
36
 
24
- run-many-tests $tlist ""
37
+ run-many-tests $tlist $additional_options
25
38
 
26
39
  dg-finish
27
40
 
@@ -64,7 +64,7 @@
64
64
  #endif
65
65
 
66
66
  /* MinGW kludge. */
67
- #ifdef _WIN64
67
+ #if defined(_WIN64) | defined(_WIN32)
68
68
  #define PRIdLL "I64d"
69
69
  #define PRIuLL "I64u"
70
70
  #else
@@ -124,12 +124,14 @@
124
124
 
125
125
  /* MSVC kludge. */
126
126
  #if defined _MSC_VER
127
+ #if !defined(__cplusplus) || defined(__STDC_FORMAT_MACROS)
127
128
  #define PRIuPTR "lu"
128
129
  #define PRIu8 "u"
129
130
  #define PRId8 "d"
130
131
  #define PRIu64 "I64u"
131
132
  #define PRId64 "I64d"
132
133
  #endif
134
+ #endif
133
135
 
134
136
  #ifndef PRIuPTR
135
137
  #define PRIuPTR "u"
@@ -32,6 +32,7 @@ static B B_fn(struct A b2, struct B b3, struct C b4)
32
32
  result.x.a = b2.a + b3.x.a + b3.z + b4.d;
33
33
  result.x.b = b2.b + b3.x.b + b3.y + b4.e;
34
34
  result.y = b2.b + b3.x.b + b4.e;
35
+ result.z = 0;
35
36
 
36
37
  printf("%d %d %d %d %d %d %d %d: %d %d %d\n", (int)b2.a, b2.b,
37
38
  (int)b3.x.a, b3.x.b, b3.y, b3.z, (int)b4.d, b4.e,
@@ -0,0 +1,57 @@
1
+ /* Area: ffi_call
2
+ Purpose: Check structures.
3
+ Limitations: none.
4
+ PR: none.
5
+ Originator: Sergei Trofimovich <slyfox@gentoo.org>
6
+
7
+ The test originally discovered in ruby's bindings
8
+ for ffi in https://bugs.gentoo.org/634190 */
9
+
10
+ /* { dg-do run } */
11
+ #include "ffitest.h"
12
+
13
+ struct s {
14
+ int s32;
15
+ float f32;
16
+ signed char s8;
17
+ };
18
+
19
+ struct s make_s(void) {
20
+ struct s r;
21
+ r.s32 = 0x1234;
22
+ r.f32 = 7.0;
23
+ r.s8 = 0x78;
24
+ return r;
25
+ }
26
+
27
+ int main() {
28
+ ffi_cif cif;
29
+ struct s r;
30
+ ffi_type rtype;
31
+ ffi_type* s_fields[] = {
32
+ &ffi_type_sint,
33
+ &ffi_type_float,
34
+ &ffi_type_schar,
35
+ NULL,
36
+ };
37
+
38
+ rtype.size = 0;
39
+ rtype.alignment = 0,
40
+ rtype.type = FFI_TYPE_STRUCT,
41
+ rtype.elements = s_fields,
42
+
43
+ r.s32 = 0xbad;
44
+ r.f32 = 999.999;
45
+ r.s8 = 0x51;
46
+
47
+ // Here we emulate the following call:
48
+ //r = make_s();
49
+
50
+ CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 0, &rtype, NULL) == FFI_OK);
51
+ ffi_call(&cif, FFI_FN(make_s), &r, NULL);
52
+
53
+ CHECK(r.s32 == 0x1234);
54
+ CHECK(r.f32 == 7.0);
55
+ CHECK(r.s8 == 0x78);
56
+ exit(0);
57
+ }
@@ -4,7 +4,7 @@
4
4
  PR: none.
5
5
  Originator: Jeff Sturm <jsturm@one-point.com> */
6
6
 
7
- /* { dg-do run { xfail x86_64-apple-darwin* } } */
7
+ /* { dg-do run { xfail x86_64-apple-darwin* moxie*-*-* } } */
8
8
 
9
9
  #include "ffitest.h"
10
10
 
@@ -4,7 +4,7 @@
4
4
  PR: none.
5
5
  Originator: Andreas Tobler <andreast@gcc.gnu.org> 20061213 */
6
6
 
7
- /* { dg-do run } */
7
+ /* { dg-do run { xfail moxie*-*-* } } */
8
8
 
9
9
  #include "ffitest.h"
10
10
 
@@ -43,7 +43,6 @@ module FFI
43
43
  # FFI.map_library_name 'jpeg' # -> "jpeg.dll"
44
44
  def self.map_library_name(lib)
45
45
  # Mangle the library name to reflect the native library naming conventions
46
- lib = lib.to_s unless lib.kind_of?(String)
47
46
  lib = Library::LIBC if lib == 'c'
48
47
 
49
48
  if lib && File.basename(lib) == lib
@@ -103,7 +102,7 @@ module FFI
103
102
  FFI::DynamicLibrary.open(nil, FFI::DynamicLibrary::RTLD_LAZY | FFI::DynamicLibrary::RTLD_LOCAL)
104
103
 
105
104
  else
106
- libnames = (name.is_a?(::Array) ? name : [ name ]).map { |n| [ n, FFI.map_library_name(n) ].uniq }.flatten.compact
105
+ libnames = (name.is_a?(::Array) ? name : [ name ]).map(&:to_s).map { |n| [ n, FFI.map_library_name(n) ].uniq }.flatten.compact
107
106
  lib = nil
108
107
  errors = {}
109
108
 
@@ -126,8 +125,7 @@ module FFI
126
125
  retry
127
126
  else
128
127
  # TODO better library lookup logic
129
- libname = libname.to_s
130
- unless libname.start_with?("/")
128
+ unless libname.start_with?("/") || FFI::Platform.windows?
131
129
  path = ['/usr/lib/','/usr/local/lib/'].find do |pth|
132
130
  File.exist?(pth + libname)
133
131
  end
@@ -0,0 +1,104 @@
1
+ rbx.platform.typedef.__u_char = uchar
2
+ rbx.platform.typedef.__u_short = ushort
3
+ rbx.platform.typedef.__u_int = uint
4
+ rbx.platform.typedef.__u_long = ulong
5
+ rbx.platform.typedef.__int8_t = char
6
+ rbx.platform.typedef.__uint8_t = uchar
7
+ rbx.platform.typedef.__int16_t = short
8
+ rbx.platform.typedef.__uint16_t = ushort
9
+ rbx.platform.typedef.__int32_t = int
10
+ rbx.platform.typedef.__uint32_t = uint
11
+ rbx.platform.typedef.__int64_t = long
12
+ rbx.platform.typedef.__uint64_t = ulong
13
+ rbx.platform.typedef.__quad_t = long
14
+ rbx.platform.typedef.__u_quad_t = ulong
15
+ rbx.platform.typedef.__dev_t = ulong
16
+ rbx.platform.typedef.__uid_t = uint
17
+ rbx.platform.typedef.__gid_t = uint
18
+ rbx.platform.typedef.__ino_t = ulong
19
+ rbx.platform.typedef.__ino64_t = ulong
20
+ rbx.platform.typedef.__mode_t = uint
21
+ rbx.platform.typedef.__nlink_t = ulong
22
+ rbx.platform.typedef.__off_t = long
23
+ rbx.platform.typedef.__off64_t = long
24
+ rbx.platform.typedef.__pid_t = int
25
+ rbx.platform.typedef.__clock_t = long
26
+ rbx.platform.typedef.__rlim_t = ulong
27
+ rbx.platform.typedef.__rlim64_t = ulong
28
+ rbx.platform.typedef.__id_t = uint
29
+ rbx.platform.typedef.__time_t = long
30
+ rbx.platform.typedef.__useconds_t = uint
31
+ rbx.platform.typedef.__suseconds_t = long
32
+ rbx.platform.typedef.__daddr_t = int
33
+ rbx.platform.typedef.__key_t = int
34
+ rbx.platform.typedef.__clockid_t = int
35
+ rbx.platform.typedef.__timer_t = pointer
36
+ rbx.platform.typedef.__blksize_t = long
37
+ rbx.platform.typedef.__blkcnt_t = long
38
+ rbx.platform.typedef.__blkcnt64_t = long
39
+ rbx.platform.typedef.__fsblkcnt_t = ulong
40
+ rbx.platform.typedef.__fsblkcnt64_t = ulong
41
+ rbx.platform.typedef.__fsfilcnt_t = ulong
42
+ rbx.platform.typedef.__fsfilcnt64_t = ulong
43
+ rbx.platform.typedef.__fsword_t = long
44
+ rbx.platform.typedef.__ssize_t = long
45
+ rbx.platform.typedef.__syscall_slong_t = long
46
+ rbx.platform.typedef.__syscall_ulong_t = ulong
47
+ rbx.platform.typedef.__loff_t = long
48
+ rbx.platform.typedef.*__qaddr_t = long
49
+ rbx.platform.typedef.*__caddr_t = char
50
+ rbx.platform.typedef.__intptr_t = long
51
+ rbx.platform.typedef.__socklen_t = uint
52
+ rbx.platform.typedef.u_char = uchar
53
+ rbx.platform.typedef.u_short = ushort
54
+ rbx.platform.typedef.u_int = uint
55
+ rbx.platform.typedef.u_long = ulong
56
+ rbx.platform.typedef.quad_t = long
57
+ rbx.platform.typedef.u_quad_t = ulong
58
+ rbx.platform.typedef.loff_t = long
59
+ rbx.platform.typedef.ino_t = ulong
60
+ rbx.platform.typedef.dev_t = ulong
61
+ rbx.platform.typedef.gid_t = uint
62
+ rbx.platform.typedef.mode_t = uint
63
+ rbx.platform.typedef.nlink_t = ulong
64
+ rbx.platform.typedef.uid_t = uint
65
+ rbx.platform.typedef.off_t = long
66
+ rbx.platform.typedef.pid_t = int
67
+ rbx.platform.typedef.id_t = uint
68
+ rbx.platform.typedef.ssize_t = long
69
+ rbx.platform.typedef.daddr_t = int
70
+ rbx.platform.typedef.key_t = int
71
+ rbx.platform.typedef.clock_t = long
72
+ rbx.platform.typedef.time_t = long
73
+ rbx.platform.typedef.clockid_t = int
74
+ rbx.platform.typedef.timer_t = pointer
75
+ rbx.platform.typedef.size_t = ulong
76
+ rbx.platform.typedef.ulong = ulong
77
+ rbx.platform.typedef.ushort = ushort
78
+ rbx.platform.typedef.uint = uint
79
+ rbx.platform.typedef.int8_t = char
80
+ rbx.platform.typedef.int16_t = short
81
+ rbx.platform.typedef.int32_t = int
82
+ rbx.platform.typedef.int64_t = long_long
83
+ rbx.platform.typedef.u_int8_t = uchar
84
+ rbx.platform.typedef.u_int16_t = ushort
85
+ rbx.platform.typedef.u_int32_t = uint
86
+ rbx.platform.typedef.u_int64_t = ulong_long
87
+ rbx.platform.typedef.register_t = long
88
+ rbx.platform.typedef.__sig_atomic_t = int
89
+ rbx.platform.typedef.suseconds_t = long
90
+ rbx.platform.typedef.__fd_mask = long
91
+ rbx.platform.typedef.fd_mask = long
92
+ rbx.platform.typedef.blksize_t = long
93
+ rbx.platform.typedef.blkcnt_t = long
94
+ rbx.platform.typedef.fsblkcnt_t = ulong
95
+ rbx.platform.typedef.fsfilcnt_t = ulong
96
+ rbx.platform.typedef.pthread_t = ulong
97
+ rbx.platform.typedef.pthread_key_t = uint
98
+ rbx.platform.typedef.pthread_once_t = int
99
+ rbx.platform.typedef.socklen_t = uint
100
+ rbx.platform.typedef.sa_family_t = ushort
101
+ rbx.platform.typedef.rlim_t = ulong
102
+ rbx.platform.typedef.__rlimit_resource_t = int
103
+ rbx.platform.typedef.__rusage_who_t = int
104
+ rbx.platform.typedef.__priority_which_t = int
@@ -0,0 +1,102 @@
1
+ rbx.platform.typedef.__u_char = uchar
2
+ rbx.platform.typedef.__u_short = ushort
3
+ rbx.platform.typedef.__u_int = uint
4
+ rbx.platform.typedef.__u_long = ulong
5
+ rbx.platform.typedef.__int8_t = char
6
+ rbx.platform.typedef.__uint8_t = uchar
7
+ rbx.platform.typedef.__int16_t = short
8
+ rbx.platform.typedef.__uint16_t = ushort
9
+ rbx.platform.typedef.__int32_t = int
10
+ rbx.platform.typedef.__uint32_t = uint
11
+ rbx.platform.typedef.__int64_t = long_long
12
+ rbx.platform.typedef.__uint64_t = ulong_long
13
+ rbx.platform.typedef.__quad_t = long_long
14
+ rbx.platform.typedef.__u_quad_t = ulong_long
15
+ rbx.platform.typedef.__dev_t = ulong_long
16
+ rbx.platform.typedef.__uid_t = uint
17
+ rbx.platform.typedef.__gid_t = uint
18
+ rbx.platform.typedef.__ino_t = ulong
19
+ rbx.platform.typedef.__ino64_t = ulong_long
20
+ rbx.platform.typedef.__mode_t = uint
21
+ rbx.platform.typedef.__nlink_t = uint
22
+ rbx.platform.typedef.__off_t = long
23
+ rbx.platform.typedef.__off64_t = long_long
24
+ rbx.platform.typedef.__pid_t = int
25
+ rbx.platform.typedef.__clock_t = long
26
+ rbx.platform.typedef.__rlim_t = ulong
27
+ rbx.platform.typedef.__rlim64_t = ulong_long
28
+ rbx.platform.typedef.__id_t = uint
29
+ rbx.platform.typedef.__time_t = long
30
+ rbx.platform.typedef.__useconds_t = uint
31
+ rbx.platform.typedef.__suseconds_t = long
32
+ rbx.platform.typedef.__daddr_t = int
33
+ rbx.platform.typedef.__swblk_t = long
34
+ rbx.platform.typedef.__key_t = int
35
+ rbx.platform.typedef.__clockid_t = int
36
+ rbx.platform.typedef.__timer_t = pointer
37
+ rbx.platform.typedef.__blksize_t = long
38
+ rbx.platform.typedef.__blkcnt_t = long
39
+ rbx.platform.typedef.__blkcnt64_t = long_long
40
+ rbx.platform.typedef.__fsblkcnt_t = ulong
41
+ rbx.platform.typedef.__fsblkcnt64_t = ulong_long
42
+ rbx.platform.typedef.__fsfilcnt_t = ulong
43
+ rbx.platform.typedef.__fsfilcnt64_t = ulong_long
44
+ rbx.platform.typedef.__ssize_t = int
45
+ rbx.platform.typedef.__loff_t = long_long
46
+ rbx.platform.typedef.*__qaddr_t = long_long
47
+ rbx.platform.typedef.*__caddr_t = char
48
+ rbx.platform.typedef.__intptr_t = int
49
+ rbx.platform.typedef.__socklen_t = uint
50
+ rbx.platform.typedef.u_char = uchar
51
+ rbx.platform.typedef.u_short = ushort
52
+ rbx.platform.typedef.u_int = uint
53
+ rbx.platform.typedef.u_long = ulong
54
+ rbx.platform.typedef.quad_t = long_long
55
+ rbx.platform.typedef.u_quad_t = ulong_long
56
+ rbx.platform.typedef.loff_t = long_long
57
+ rbx.platform.typedef.ino_t = ulong_long
58
+ rbx.platform.typedef.dev_t = ulong_long
59
+ rbx.platform.typedef.gid_t = uint
60
+ rbx.platform.typedef.mode_t = uint
61
+ rbx.platform.typedef.nlink_t = uint
62
+ rbx.platform.typedef.uid_t = uint
63
+ rbx.platform.typedef.off_t = long_long
64
+ rbx.platform.typedef.pid_t = int
65
+ rbx.platform.typedef.id_t = uint
66
+ rbx.platform.typedef.ssize_t = int
67
+ rbx.platform.typedef.daddr_t = int
68
+ rbx.platform.typedef.key_t = int
69
+ rbx.platform.typedef.clock_t = long
70
+ rbx.platform.typedef.time_t = long
71
+ rbx.platform.typedef.clockid_t = int
72
+ rbx.platform.typedef.timer_t = pointer
73
+ rbx.platform.typedef.size_t = uint
74
+ rbx.platform.typedef.ulong = ulong
75
+ rbx.platform.typedef.ushort = ushort
76
+ rbx.platform.typedef.uint = uint
77
+ rbx.platform.typedef.int8_t = char
78
+ rbx.platform.typedef.int16_t = short
79
+ rbx.platform.typedef.int32_t = int
80
+ rbx.platform.typedef.int64_t = long_long
81
+ rbx.platform.typedef.u_int8_t = uchar
82
+ rbx.platform.typedef.u_int16_t = ushort
83
+ rbx.platform.typedef.u_int32_t = uint
84
+ rbx.platform.typedef.u_int64_t = ulong_long
85
+ rbx.platform.typedef.register_t = long
86
+ rbx.platform.typedef.__sig_atomic_t = int
87
+ rbx.platform.typedef.suseconds_t = long
88
+ rbx.platform.typedef.__fd_mask = long
89
+ rbx.platform.typedef.fd_mask = long
90
+ rbx.platform.typedef.blksize_t = long
91
+ rbx.platform.typedef.blkcnt_t = long_long
92
+ rbx.platform.typedef.fsblkcnt_t = ulong_long
93
+ rbx.platform.typedef.fsfilcnt_t = ulong_long
94
+ rbx.platform.typedef.pthread_t = ulong
95
+ rbx.platform.typedef.pthread_key_t = uint
96
+ rbx.platform.typedef.pthread_once_t = int
97
+ rbx.platform.typedef.socklen_t = uint
98
+ rbx.platform.typedef.sa_family_t = ushort
99
+ rbx.platform.typedef.rlim_t = ulong_long
100
+ rbx.platform.typedef.__rlimit_resource_t = int
101
+ rbx.platform.typedef.__rusage_who_t = int
102
+ rbx.platform.typedef.__priority_which_t = int
@@ -0,0 +1,102 @@
1
+ rbx.platform.typedef.__u_char = uchar
2
+ rbx.platform.typedef.__u_short = ushort
3
+ rbx.platform.typedef.__u_int = uint
4
+ rbx.platform.typedef.__u_long = ulong
5
+ rbx.platform.typedef.__int8_t = char
6
+ rbx.platform.typedef.__uint8_t = uchar
7
+ rbx.platform.typedef.__int16_t = short
8
+ rbx.platform.typedef.__uint16_t = ushort
9
+ rbx.platform.typedef.__int32_t = int
10
+ rbx.platform.typedef.__uint32_t = uint
11
+ rbx.platform.typedef.__int64_t = long_long
12
+ rbx.platform.typedef.__uint64_t = ulong_long
13
+ rbx.platform.typedef.__quad_t = long_long
14
+ rbx.platform.typedef.__u_quad_t = ulong_long
15
+ rbx.platform.typedef.__dev_t = ulong_long
16
+ rbx.platform.typedef.__uid_t = uint
17
+ rbx.platform.typedef.__gid_t = uint
18
+ rbx.platform.typedef.__ino_t = ulong
19
+ rbx.platform.typedef.__ino64_t = ulong_long
20
+ rbx.platform.typedef.__mode_t = uint
21
+ rbx.platform.typedef.__nlink_t = uint
22
+ rbx.platform.typedef.__off_t = long
23
+ rbx.platform.typedef.__off64_t = long_long
24
+ rbx.platform.typedef.__pid_t = int
25
+ rbx.platform.typedef.__clock_t = long
26
+ rbx.platform.typedef.__rlim_t = ulong
27
+ rbx.platform.typedef.__rlim64_t = ulong_long
28
+ rbx.platform.typedef.__id_t = uint
29
+ rbx.platform.typedef.__time_t = long
30
+ rbx.platform.typedef.__useconds_t = uint
31
+ rbx.platform.typedef.__suseconds_t = long
32
+ rbx.platform.typedef.__daddr_t = int
33
+ rbx.platform.typedef.__swblk_t = long
34
+ rbx.platform.typedef.__key_t = int
35
+ rbx.platform.typedef.__clockid_t = int
36
+ rbx.platform.typedef.__timer_t = pointer
37
+ rbx.platform.typedef.__blksize_t = long
38
+ rbx.platform.typedef.__blkcnt_t = long
39
+ rbx.platform.typedef.__blkcnt64_t = long_long
40
+ rbx.platform.typedef.__fsblkcnt_t = ulong
41
+ rbx.platform.typedef.__fsblkcnt64_t = ulong_long
42
+ rbx.platform.typedef.__fsfilcnt_t = ulong
43
+ rbx.platform.typedef.__fsfilcnt64_t = ulong_long
44
+ rbx.platform.typedef.__ssize_t = int
45
+ rbx.platform.typedef.__loff_t = long_long
46
+ rbx.platform.typedef.*__qaddr_t = long_long
47
+ rbx.platform.typedef.*__caddr_t = char
48
+ rbx.platform.typedef.__intptr_t = int
49
+ rbx.platform.typedef.__socklen_t = uint
50
+ rbx.platform.typedef.u_char = uchar
51
+ rbx.platform.typedef.u_short = ushort
52
+ rbx.platform.typedef.u_int = uint
53
+ rbx.platform.typedef.u_long = ulong
54
+ rbx.platform.typedef.quad_t = long_long
55
+ rbx.platform.typedef.u_quad_t = ulong_long
56
+ rbx.platform.typedef.loff_t = long_long
57
+ rbx.platform.typedef.ino_t = ulong_long
58
+ rbx.platform.typedef.dev_t = ulong_long
59
+ rbx.platform.typedef.gid_t = uint
60
+ rbx.platform.typedef.mode_t = uint
61
+ rbx.platform.typedef.nlink_t = uint
62
+ rbx.platform.typedef.uid_t = uint
63
+ rbx.platform.typedef.off_t = long_long
64
+ rbx.platform.typedef.pid_t = int
65
+ rbx.platform.typedef.id_t = uint
66
+ rbx.platform.typedef.ssize_t = int
67
+ rbx.platform.typedef.daddr_t = int
68
+ rbx.platform.typedef.key_t = int
69
+ rbx.platform.typedef.clock_t = long
70
+ rbx.platform.typedef.time_t = long
71
+ rbx.platform.typedef.clockid_t = int
72
+ rbx.platform.typedef.timer_t = pointer
73
+ rbx.platform.typedef.size_t = uint
74
+ rbx.platform.typedef.ulong = ulong
75
+ rbx.platform.typedef.ushort = ushort
76
+ rbx.platform.typedef.uint = uint
77
+ rbx.platform.typedef.int8_t = char
78
+ rbx.platform.typedef.int16_t = short
79
+ rbx.platform.typedef.int32_t = int
80
+ rbx.platform.typedef.int64_t = long_long
81
+ rbx.platform.typedef.u_int8_t = uchar
82
+ rbx.platform.typedef.u_int16_t = ushort
83
+ rbx.platform.typedef.u_int32_t = uint
84
+ rbx.platform.typedef.u_int64_t = ulong_long
85
+ rbx.platform.typedef.register_t = long
86
+ rbx.platform.typedef.__sig_atomic_t = int
87
+ rbx.platform.typedef.suseconds_t = long
88
+ rbx.platform.typedef.__fd_mask = long
89
+ rbx.platform.typedef.fd_mask = long
90
+ rbx.platform.typedef.blksize_t = long
91
+ rbx.platform.typedef.blkcnt_t = long_long
92
+ rbx.platform.typedef.fsblkcnt_t = ulong_long
93
+ rbx.platform.typedef.fsfilcnt_t = ulong_long
94
+ rbx.platform.typedef.pthread_t = ulong
95
+ rbx.platform.typedef.pthread_key_t = uint
96
+ rbx.platform.typedef.pthread_once_t = int
97
+ rbx.platform.typedef.socklen_t = uint
98
+ rbx.platform.typedef.sa_family_t = ushort
99
+ rbx.platform.typedef.rlim_t = ulong_long
100
+ rbx.platform.typedef.__rlimit_resource_t = int
101
+ rbx.platform.typedef.__rusage_who_t = int
102
+ rbx.platform.typedef.__priority_which_t = int