ffi 1.13.1 → 1.15.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (121) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +116 -0
  3. data/Gemfile +1 -4
  4. data/README.md +14 -2
  5. data/Rakefile +43 -29
  6. data/ext/ffi_c/AbstractMemory.c +24 -25
  7. data/ext/ffi_c/Buffer.c +2 -7
  8. data/ext/ffi_c/Call.c +3 -9
  9. data/ext/ffi_c/ClosurePool.c +64 -11
  10. data/ext/ffi_c/ClosurePool.h +3 -1
  11. data/ext/ffi_c/DynamicLibrary.c +1 -6
  12. data/ext/ffi_c/Function.c +31 -16
  13. data/ext/ffi_c/Function.h +0 -4
  14. data/ext/ffi_c/FunctionInfo.c +2 -6
  15. data/ext/ffi_c/LastError.c +2 -6
  16. data/ext/ffi_c/MemoryPointer.c +2 -7
  17. data/ext/ffi_c/MemoryPointer.h +0 -4
  18. data/ext/ffi_c/MethodHandle.c +4 -8
  19. data/ext/ffi_c/Platform.c +4 -9
  20. data/ext/ffi_c/Pointer.c +24 -25
  21. data/ext/ffi_c/Pointer.h +0 -4
  22. data/ext/ffi_c/Struct.c +3 -6
  23. data/ext/ffi_c/StructByValue.c +2 -7
  24. data/ext/ffi_c/StructLayout.c +2 -6
  25. data/ext/ffi_c/Thread.c +0 -5
  26. data/ext/ffi_c/Thread.h +1 -6
  27. data/ext/ffi_c/Type.c +1 -1
  28. data/ext/ffi_c/Types.c +6 -7
  29. data/ext/ffi_c/Types.h +3 -4
  30. data/ext/ffi_c/Variadic.c +14 -9
  31. data/ext/ffi_c/extconf.rb +20 -4
  32. data/ext/ffi_c/libffi/.travis/bfin-sim.exp +1 -1
  33. data/ext/ffi_c/libffi/.travis/m32r-sim.exp +1 -1
  34. data/ext/ffi_c/libffi/.travis/moxie-sim.exp +1 -1
  35. data/ext/ffi_c/libffi/.travis/or1k-sim.exp +1 -1
  36. data/ext/ffi_c/libffi/.travis/powerpc-eabisim.exp +1 -1
  37. data/ext/ffi_c/libffi/.travis/wine-sim.exp +1 -1
  38. data/ext/ffi_c/libffi/Makefile.am +48 -58
  39. data/ext/ffi_c/libffi/Makefile.in +420 -156
  40. data/ext/ffi_c/libffi/README.md +4 -0
  41. data/ext/ffi_c/libffi/config.guess +552 -331
  42. data/ext/ffi_c/libffi/config.sub +1321 -1306
  43. data/ext/ffi_c/libffi/configure +158 -96
  44. data/ext/ffi_c/libffi/configure.ac +6 -1
  45. data/ext/ffi_c/libffi/configure.host +32 -20
  46. data/ext/ffi_c/libffi/doc/Makefile.in +8 -5
  47. data/ext/ffi_c/libffi/fficonfig.h.in +6 -0
  48. data/ext/ffi_c/libffi/generate-darwin-source-and-headers.py +1 -1
  49. data/ext/ffi_c/libffi/include/Makefile.in +8 -5
  50. data/ext/ffi_c/libffi/install-sh +23 -13
  51. data/ext/ffi_c/libffi/ltmain.sh +156 -61
  52. data/ext/ffi_c/libffi/man/Makefile.in +8 -5
  53. data/ext/ffi_c/libffi/missing +8 -8
  54. data/ext/ffi_c/libffi/msvcc.sh +11 -11
  55. data/ext/ffi_c/libffi/src/aarch64/ffi.c +45 -35
  56. data/ext/ffi_c/libffi/src/aarch64/ffitarget.h +10 -5
  57. data/ext/ffi_c/libffi/src/aarch64/internal.h +1 -0
  58. data/ext/ffi_c/libffi/src/aarch64/sysv.S +1 -1
  59. data/ext/ffi_c/libffi/src/aarch64/win64_armasm.S +1 -1
  60. data/ext/ffi_c/libffi/src/arm/ffi.c +22 -0
  61. data/ext/ffi_c/libffi/src/arm/sysv.S +4 -4
  62. data/ext/ffi_c/libffi/src/closures.c +23 -6
  63. data/ext/ffi_c/libffi/src/csky/ffi.c +395 -0
  64. data/ext/ffi_c/libffi/src/csky/ffitarget.h +63 -0
  65. data/ext/ffi_c/libffi/src/csky/sysv.S +371 -0
  66. data/ext/ffi_c/libffi/src/dlmalloc.c +1 -1
  67. data/ext/ffi_c/libffi/src/kvx/asm.h +5 -0
  68. data/ext/ffi_c/libffi/src/kvx/ffi.c +273 -0
  69. data/ext/ffi_c/libffi/src/kvx/ffitarget.h +75 -0
  70. data/ext/ffi_c/libffi/src/kvx/sysv.S +127 -0
  71. data/ext/ffi_c/libffi/src/mips/ffi.c +5 -1
  72. data/ext/ffi_c/libffi/src/mips/ffitarget.h +1 -1
  73. data/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +13 -1
  74. data/ext/ffi_c/libffi/src/powerpc/ffi_powerpc.h +1 -1
  75. data/ext/ffi_c/libffi/src/powerpc/linux64.S +8 -0
  76. data/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +13 -1
  77. data/ext/ffi_c/libffi/src/prep_cif.c +1 -1
  78. data/ext/ffi_c/libffi/src/x86/ffi.c +8 -2
  79. data/ext/ffi_c/libffi/src/x86/ffi64.c +7 -0
  80. data/ext/ffi_c/libffi/src/x86/ffiw64.c +5 -0
  81. data/ext/ffi_c/libffi/src/x86/sysv.S +2 -2
  82. data/ext/ffi_c/libffi/src/x86/unix64.S +1 -2
  83. data/ext/ffi_c/libffi/src/x86/win64.S +3 -2
  84. data/ext/ffi_c/libffi/src/x86/win64_intel.S +3 -2
  85. data/ext/ffi_c/libffi/testsuite/Makefile.in +9 -6
  86. data/ext/ffi_c/libffi/testsuite/lib/libffi.exp +22 -2
  87. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-call.c +4 -4
  88. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-callback.c +2 -2
  89. data/ext/ffi_c/libffi/testsuite/libffi.closures/huge_struct.c +2 -0
  90. data/ffi.gemspec +1 -2
  91. data/lib/ffi/abstract_memory.rb +44 -0
  92. data/lib/ffi/autopointer.rb +1 -1
  93. data/lib/ffi/ffi.rb +1 -0
  94. data/lib/ffi/io.rb +3 -3
  95. data/lib/ffi/library.rb +3 -3
  96. data/lib/ffi/managedstruct.rb +2 -2
  97. data/lib/ffi/platform/aarch64-darwin/types.conf +130 -0
  98. data/lib/ffi/platform/aarch64-freebsd/types.conf +2 -2
  99. data/lib/ffi/platform/aarch64-freebsd12/types.conf +113 -60
  100. data/lib/ffi/platform/aarch64-openbsd/types.conf +134 -0
  101. data/lib/ffi/platform/powerpc64le-linux/types.conf +100 -0
  102. data/lib/ffi/platform/riscv64-linux/types.conf +104 -0
  103. data/lib/ffi/platform/x86_64-haiku/types.conf +117 -0
  104. data/lib/ffi/platform/x86_64-msys/types.conf +119 -0
  105. data/lib/ffi/platform.rb +17 -11
  106. data/lib/ffi/pointer.rb +2 -2
  107. data/lib/ffi/tools/const_generator.rb +6 -4
  108. data/lib/ffi/tools/struct_generator.rb +2 -1
  109. data/lib/ffi/variadic.rb +1 -10
  110. data/lib/ffi/version.rb +1 -1
  111. data/lib/ffi.rb +3 -4
  112. data/rakelib/ffi_gem_helper.rb +65 -0
  113. metadata +21 -28
  114. data/.appveyor.yml +0 -30
  115. data/.github/workflows/ci.yml +0 -64
  116. data/.gitignore +0 -25
  117. data/.gitmodules +0 -4
  118. data/.travis.yml +0 -58
  119. data/.yardopts +0 -5
  120. data/ext/ffi_c/win32/stdbool.h +0 -8
  121. data/ext/ffi_c/win32/stdint.h +0 -201
@@ -4,7 +4,7 @@
4
4
 
5
5
  This program is free software: you can redistribute it and/or modify
6
6
  it under the terms of the GNU General Public License as published by
7
- the Free Software Foundation; either version 2 of the License, or
7
+ the Free Software Foundation; either version 3 of the License, or
8
8
  (at your option) any later version.
9
9
 
10
10
  This program is distributed in the hope that it will be useful,
@@ -16,7 +16,7 @@
16
16
  along with this program. If not, see <http://www.gnu.org/licenses/>.
17
17
  **/
18
18
 
19
- /* { dg-do run } */
19
+ /* { dg-do run { xfail gccbug } } */
20
20
 
21
21
  #include <stdio.h>
22
22
  #include <stdlib.h>
@@ -1220,7 +1220,7 @@ void
1220
1220
  }
1221
1221
  fprintf(out,"->{%g}\n",Fr.x);
1222
1222
  fflush(out);
1223
- #endif
1223
+ #endif
1224
1224
  #if (!defined(DGTEST)) || DGTEST == 56
1225
1225
  Dr = D_fDd(f1,D2,d3);
1226
1226
  fprintf(out,"->{%g}\n",Dr.x);
@@ -1243,7 +1243,7 @@ void
1243
1243
  }
1244
1244
  fprintf(out,"->{%g}\n",Dr.x);
1245
1245
  fflush(out);
1246
- #endif
1246
+ #endif
1247
1247
  #if (!defined(DGTEST)) || DGTEST == 57
1248
1248
  Dr = D_Dfd(D1,f2,d3);
1249
1249
  fprintf(out,"->{%g}\n",Dr.x);
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * This program is free software: you can redistribute it and/or modify
6
6
  * it under the terms of the GNU General Public License as published by
7
- * the Free Software Foundation; either version 2 of the License, or
7
+ * the Free Software Foundation; either version 3 of the License, or
8
8
  * (at your option) any later version.
9
9
  *
10
10
  * This program is distributed in the hope that it will be useful,
@@ -16,7 +16,7 @@
16
16
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17
17
  */
18
18
 
19
- /* { dg-do run } */
19
+ /* { dg-do run { xfail gccbug } } */
20
20
 
21
21
  #include <stdio.h>
22
22
  #include <stdlib.h>
@@ -9,6 +9,8 @@
9
9
  /* { dg-options -mlong-double-128 { target powerpc64*-*-linux* } } */
10
10
  /* { dg-options -Wformat=0 { target moxie*-*-elf or1k-*-* } } */
11
11
 
12
+ #include <inttypes.h>
13
+
12
14
  #include "ffitest.h"
13
15
 
14
16
  typedef struct BigStruct{
data/ffi.gemspec CHANGED
@@ -17,7 +17,7 @@ Gem::Specification.new do |s|
17
17
  s.metadata['mailing_list_uri'] = 'http://groups.google.com/group/ruby-ffi'
18
18
  end
19
19
  s.files = `git ls-files -z`.split("\x0").reject do |f|
20
- f =~ /^(bench|gen|libtest|nbproject|spec)/
20
+ f =~ /^(\.|bench|gen|libtest|nbproject|spec)/
21
21
  end
22
22
 
23
23
  # Add libffi git files
@@ -39,5 +39,4 @@ Gem::Specification.new do |s|
39
39
  s.add_development_dependency 'rake-compiler', '~> 1.0'
40
40
  s.add_development_dependency 'rake-compiler-dock', '~> 1.0'
41
41
  s.add_development_dependency 'rspec', '~> 2.14.1'
42
- s.add_development_dependency 'rubygems-tasks', "~> 0.2.4"
43
42
  end
@@ -0,0 +1,44 @@
1
+ #
2
+ # Copyright (C) 2020 Lars Kanis
3
+ #
4
+ # This file is part of ruby-ffi.
5
+ #
6
+ # All rights reserved.
7
+ #
8
+ # Redistribution and use in source and binary forms, with or without
9
+ # modification, are permitted provided that the following conditions are met:
10
+ #
11
+ # * Redistributions of source code must retain the above copyright notice, this
12
+ # list of conditions and the following disclaimer.
13
+ # * Redistributions in binary form must reproduce the above copyright notice
14
+ # this list of conditions and the following disclaimer in the documentation
15
+ # and/or other materials provided with the distribution.
16
+ # * Neither the name of the Ruby FFI project nor the names of its contributors
17
+ # may be used to endorse or promote products derived from this software
18
+ # without specific prior written permission.
19
+ #
20
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
+ # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
+ # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23
+ # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
24
+ # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
+ # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26
+ # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27
+ # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28
+ # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
+ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.#
30
+
31
+
32
+ module FFI
33
+ class AbstractMemory
34
+ LONG_MAX = FFI::Pointer.new(1).size
35
+ private_constant :LONG_MAX
36
+
37
+ # Return +true+ if +self+ has a size limit.
38
+ #
39
+ # @return [Boolean]
40
+ def size_limit?
41
+ size != LONG_MAX
42
+ end
43
+ end
44
+ end
@@ -117,7 +117,7 @@ module FFI
117
117
  end
118
118
 
119
119
  # @abstract Base class for {AutoPointer}'s releasers.
120
- #
120
+ #
121
121
  # All subclasses of Releaser should define a +#release(ptr)+ method.
122
122
  # A releaser is an object in charge of release an {AutoPointer}.
123
123
  class Releaser
data/lib/ffi/ffi.rb CHANGED
@@ -33,6 +33,7 @@ require 'ffi/data_converter'
33
33
  require 'ffi/types'
34
34
  require 'ffi/library'
35
35
  require 'ffi/errno'
36
+ require 'ffi/abstract_memory'
36
37
  require 'ffi/pointer'
37
38
  require 'ffi/memorypointer'
38
39
  require 'ffi/struct'
data/lib/ffi/io.rb CHANGED
@@ -29,7 +29,7 @@
29
29
  # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.#
30
30
 
31
31
  module FFI
32
-
32
+
33
33
  # This module implements a couple of class methods to play with IO.
34
34
  module IO
35
35
  # @param [Integer] fd file decriptor
@@ -42,12 +42,12 @@ module FFI
42
42
 
43
43
  # @param [#read] io io to read from
44
44
  # @param [AbstractMemory] buf destination for data read from +io+
45
- # @param [nil, Numeric] len maximul number of bytes to read from +io+. If +nil+,
45
+ # @param [nil, Numeric] len maximul number of bytes to read from +io+. If +nil+,
46
46
  # read until end of file.
47
47
  # @return [Numeric] length really read, in bytes
48
48
  #
49
49
  # A version of IO#read that reads data from an IO and put then into a native buffer.
50
- #
50
+ #
51
51
  # This will be optimized at some future time to eliminate the double copy.
52
52
  #
53
53
  def self.native_read(io, buf, len)
data/lib/ffi/library.rb CHANGED
@@ -84,7 +84,7 @@ module FFI
84
84
  # @raise {RuntimeError} if +mod+ is not a Module
85
85
  # Test if extended object is a Module. If not, raise RuntimeError.
86
86
  def self.extended(mod)
87
- raise RuntimeError.new("must only be extended by module") unless mod.kind_of?(Module)
87
+ raise RuntimeError.new("must only be extended by module") unless mod.kind_of?(::Module)
88
88
  end
89
89
 
90
90
 
@@ -115,7 +115,7 @@ module FFI
115
115
  rescue Exception => ex
116
116
  ldscript = false
117
117
  if ex.message =~ /(([^ \t()])+\.so([^ \t:()])*):([ \t])*(invalid ELF header|file too short|invalid file format)/
118
- if File.read($1) =~ /(?:GROUP|INPUT) *\( *([^ \)]+)/
118
+ if File.binread($1) =~ /(?:GROUP|INPUT) *\( *([^ \)]+)/
119
119
  libname = $1
120
120
  ldscript = true
121
121
  end
@@ -126,7 +126,7 @@ module FFI
126
126
  else
127
127
  # TODO better library lookup logic
128
128
  unless libname.start_with?("/") || FFI::Platform.windows?
129
- path = ['/usr/lib/','/usr/local/lib/','/opt/local/lib/'].find do |pth|
129
+ path = ['/usr/lib/','/usr/local/lib/','/opt/local/lib/', '/opt/homebrew/lib/'].find do |pth|
130
130
  File.exist?(pth + libname)
131
131
  end
132
132
  if path
@@ -44,7 +44,7 @@ module FFI
44
44
  # attach_function :new_dlist, [], :pointer
45
45
  # attach_function :destroy_dlist, [:pointer], :void
46
46
  # end
47
- #
47
+ #
48
48
  # class DoublyLinkedList < FFI::ManagedStruct
49
49
  # @@@
50
50
  # struct do |s|
@@ -71,7 +71,7 @@ module FFI
71
71
 
72
72
  # @overload initialize(pointer)
73
73
  # @param [Pointer] pointer
74
- # Create a new ManagedStruct which will invoke the class method #release on
74
+ # Create a new ManagedStruct which will invoke the class method #release on
75
75
  # @overload initialize
76
76
  # A new instance of FFI::ManagedStruct.
77
77
  def initialize(pointer=nil)
@@ -0,0 +1,130 @@
1
+ rbx.platform.typedef.__darwin_blkcnt_t = long_long
2
+ rbx.platform.typedef.__darwin_blksize_t = int
3
+ rbx.platform.typedef.__darwin_clock_t = ulong
4
+ rbx.platform.typedef.__darwin_ct_rune_t = int
5
+ rbx.platform.typedef.__darwin_dev_t = int
6
+ rbx.platform.typedef.__darwin_fsblkcnt_t = uint
7
+ rbx.platform.typedef.__darwin_fsfilcnt_t = uint
8
+ rbx.platform.typedef.__darwin_gid_t = uint
9
+ rbx.platform.typedef.__darwin_id_t = uint
10
+ rbx.platform.typedef.__darwin_ino64_t = ulong_long
11
+ rbx.platform.typedef.__darwin_ino_t = ulong_long
12
+ rbx.platform.typedef.__darwin_intptr_t = long
13
+ rbx.platform.typedef.__darwin_mach_port_name_t = uint
14
+ rbx.platform.typedef.__darwin_mach_port_t = uint
15
+ rbx.platform.typedef.__darwin_mode_t = ushort
16
+ rbx.platform.typedef.__darwin_natural_t = uint
17
+ rbx.platform.typedef.__darwin_off_t = long_long
18
+ rbx.platform.typedef.__darwin_pid_t = int
19
+ rbx.platform.typedef.__darwin_pthread_key_t = ulong
20
+ rbx.platform.typedef.__darwin_ptrdiff_t = long
21
+ rbx.platform.typedef.__darwin_rune_t = int
22
+ rbx.platform.typedef.__darwin_sigset_t = uint
23
+ rbx.platform.typedef.__darwin_size_t = ulong
24
+ rbx.platform.typedef.__darwin_socklen_t = uint
25
+ rbx.platform.typedef.__darwin_ssize_t = long
26
+ rbx.platform.typedef.__darwin_suseconds_t = int
27
+ rbx.platform.typedef.__darwin_time_t = long
28
+ rbx.platform.typedef.__darwin_uid_t = uint
29
+ rbx.platform.typedef.__darwin_useconds_t = uint
30
+ rbx.platform.typedef.__darwin_uuid_string_t[37] = char
31
+ rbx.platform.typedef.__darwin_uuid_t[16] = uchar
32
+ rbx.platform.typedef.__darwin_wchar_t = int
33
+ rbx.platform.typedef.__darwin_wint_t = int
34
+ rbx.platform.typedef.__int16_t = short
35
+ rbx.platform.typedef.__int32_t = int
36
+ rbx.platform.typedef.__int64_t = long_long
37
+ rbx.platform.typedef.__int8_t = char
38
+ rbx.platform.typedef.__uint16_t = ushort
39
+ rbx.platform.typedef.__uint32_t = uint
40
+ rbx.platform.typedef.__uint64_t = ulong_long
41
+ rbx.platform.typedef.__uint8_t = uchar
42
+ rbx.platform.typedef.blkcnt_t = long_long
43
+ rbx.platform.typedef.blksize_t = int
44
+ rbx.platform.typedef.caddr_t = string
45
+ rbx.platform.typedef.clock_t = ulong
46
+ rbx.platform.typedef.daddr_t = int
47
+ rbx.platform.typedef.dev_t = int
48
+ rbx.platform.typedef.errno_t = int
49
+ rbx.platform.typedef.fd_mask = int
50
+ rbx.platform.typedef.fixpt_t = uint
51
+ rbx.platform.typedef.fsblkcnt_t = uint
52
+ rbx.platform.typedef.fsfilcnt_t = uint
53
+ rbx.platform.typedef.gid_t = uint
54
+ rbx.platform.typedef.id_t = uint
55
+ rbx.platform.typedef.in_addr_t = uint
56
+ rbx.platform.typedef.in_port_t = ushort
57
+ rbx.platform.typedef.ino64_t = ulong_long
58
+ rbx.platform.typedef.ino_t = ulong_long
59
+ rbx.platform.typedef.int16_t = short
60
+ rbx.platform.typedef.int32_t = int
61
+ rbx.platform.typedef.int64_t = long_long
62
+ rbx.platform.typedef.int8_t = char
63
+ rbx.platform.typedef.int_fast16_t = short
64
+ rbx.platform.typedef.int_fast32_t = int
65
+ rbx.platform.typedef.int_fast64_t = long_long
66
+ rbx.platform.typedef.int_fast8_t = char
67
+ rbx.platform.typedef.int_least16_t = short
68
+ rbx.platform.typedef.int_least32_t = int
69
+ rbx.platform.typedef.int_least64_t = long_long
70
+ rbx.platform.typedef.int_least8_t = char
71
+ rbx.platform.typedef.intmax_t = long
72
+ rbx.platform.typedef.intptr_t = long
73
+ rbx.platform.typedef.key_t = int
74
+ rbx.platform.typedef.mode_t = ushort
75
+ rbx.platform.typedef.nlink_t = ushort
76
+ rbx.platform.typedef.off_t = long_long
77
+ rbx.platform.typedef.pid_t = int
78
+ rbx.platform.typedef.pthread_key_t = ulong
79
+ rbx.platform.typedef.ptrdiff_t = long
80
+ rbx.platform.typedef.qaddr_t = pointer
81
+ rbx.platform.typedef.quad_t = long_long
82
+ rbx.platform.typedef.register_t = long_long
83
+ rbx.platform.typedef.rlim_t = ulong_long
84
+ rbx.platform.typedef.rsize_t = ulong
85
+ rbx.platform.typedef.sa_family_t = uchar
86
+ rbx.platform.typedef.sae_associd_t = uint
87
+ rbx.platform.typedef.sae_connid_t = uint
88
+ rbx.platform.typedef.segsz_t = int
89
+ rbx.platform.typedef.size_t = ulong
90
+ rbx.platform.typedef.socklen_t = uint
91
+ rbx.platform.typedef.ssize_t = long
92
+ rbx.platform.typedef.suseconds_t = int
93
+ rbx.platform.typedef.swblk_t = int
94
+ rbx.platform.typedef.syscall_arg_t = ulong_long
95
+ rbx.platform.typedef.time_t = long
96
+ rbx.platform.typedef.u_char = uchar
97
+ rbx.platform.typedef.u_int = uint
98
+ rbx.platform.typedef.u_int16_t = ushort
99
+ rbx.platform.typedef.u_int32_t = uint
100
+ rbx.platform.typedef.u_int64_t = ulong_long
101
+ rbx.platform.typedef.u_int8_t = uchar
102
+ rbx.platform.typedef.u_long = ulong
103
+ rbx.platform.typedef.u_quad_t = ulong_long
104
+ rbx.platform.typedef.u_short = ushort
105
+ rbx.platform.typedef.uid_t = uint
106
+ rbx.platform.typedef.uint = uint
107
+ rbx.platform.typedef.uint16_t = ushort
108
+ rbx.platform.typedef.uint32_t = uint
109
+ rbx.platform.typedef.uint64_t = ulong_long
110
+ rbx.platform.typedef.uint8_t = uchar
111
+ rbx.platform.typedef.uint_fast16_t = ushort
112
+ rbx.platform.typedef.uint_fast32_t = uint
113
+ rbx.platform.typedef.uint_fast64_t = ulong_long
114
+ rbx.platform.typedef.uint_fast8_t = uchar
115
+ rbx.platform.typedef.uint_least16_t = ushort
116
+ rbx.platform.typedef.uint_least32_t = uint
117
+ rbx.platform.typedef.uint_least64_t = ulong_long
118
+ rbx.platform.typedef.uint_least8_t = uchar
119
+ rbx.platform.typedef.uintmax_t = ulong
120
+ rbx.platform.typedef.uintptr_t = ulong
121
+ rbx.platform.typedef.useconds_t = uint
122
+ rbx.platform.typedef.user_addr_t = ulong_long
123
+ rbx.platform.typedef.user_long_t = long_long
124
+ rbx.platform.typedef.user_off_t = long_long
125
+ rbx.platform.typedef.user_size_t = ulong_long
126
+ rbx.platform.typedef.user_ssize_t = long_long
127
+ rbx.platform.typedef.user_time_t = long_long
128
+ rbx.platform.typedef.user_ulong_t = ulong_long
129
+ rbx.platform.typedef.ushort = ushort
130
+ rbx.platform.typedef.wchar_t = int
@@ -39,9 +39,9 @@ rbx.platform.typedef.__segsz_t = int
39
39
  rbx.platform.typedef.__size_t = ulong
40
40
  rbx.platform.typedef.__socklen_t = uint
41
41
  rbx.platform.typedef.__ssize_t = long
42
- rbx.platform.typedef.__suseconds_t = int
42
+ rbx.platform.typedef.__suseconds_t = long
43
43
  rbx.platform.typedef.__swblk_t = int
44
- rbx.platform.typedef.__time_t = int
44
+ rbx.platform.typedef.__time_t = long
45
45
  rbx.platform.typedef.__timer_t = int
46
46
  rbx.platform.typedef.__uid_t = uint
47
47
  rbx.platform.typedef.__uint16_t = ushort
@@ -1,128 +1,181 @@
1
+ rbx.platform.typedef.*) = pointer
2
+ rbx.platform.typedef.___wchar_t = uint
3
+ rbx.platform.typedef.__accmode_t = int
4
+ rbx.platform.typedef.__blkcnt_t = long
5
+ rbx.platform.typedef.__blksize_t = int
6
+ rbx.platform.typedef.__char16_t = ushort
7
+ rbx.platform.typedef.__char32_t = uint
1
8
  rbx.platform.typedef.__clock_t = int
2
9
  rbx.platform.typedef.__clockid_t = int
3
- rbx.platform.typedef.__cpuid_t = ulong
4
- rbx.platform.typedef.__dev_t = ulong_long
5
- rbx.platform.typedef.__fd_mask = int
10
+ rbx.platform.typedef.__cpulevel_t = int
11
+ rbx.platform.typedef.__cpusetid_t = int
12
+ rbx.platform.typedef.__cpuwhich_t = int
13
+ rbx.platform.typedef.__critical_t = long
14
+ rbx.platform.typedef.__ct_rune_t = int
15
+ rbx.platform.typedef.__daddr_t = long
16
+ rbx.platform.typedef.__dev_t = ulong
17
+ rbx.platform.typedef.__fd_mask = ulong
18
+ rbx.platform.typedef.__fflags_t = uint
6
19
  rbx.platform.typedef.__fixpt_t = uint
20
+ rbx.platform.typedef.__fsblkcnt_t = ulong
21
+ rbx.platform.typedef.__fsfilcnt_t = ulong
7
22
  rbx.platform.typedef.__gid_t = uint
8
- rbx.platform.typedef.__id_t = uint
9
- rbx.platform.typedef.__in_addr_t = uint
10
- rbx.platform.typedef.__in_port_t = ushort
11
- rbx.platform.typedef.__ino_t = ulong_long
23
+ rbx.platform.typedef.__id_t = long
24
+ rbx.platform.typedef.__ino_t = ulong
12
25
  rbx.platform.typedef.__int16_t = short
13
26
  rbx.platform.typedef.__int32_t = int
14
- rbx.platform.typedef.__int64_t = long_long
27
+ rbx.platform.typedef.__int64_t = long
15
28
  rbx.platform.typedef.__int8_t = char
16
29
  rbx.platform.typedef.__int_fast16_t = int
17
30
  rbx.platform.typedef.__int_fast32_t = int
18
- rbx.platform.typedef.__int_fast64_t = long_long
31
+ rbx.platform.typedef.__int_fast64_t = long
19
32
  rbx.platform.typedef.__int_fast8_t = int
20
33
  rbx.platform.typedef.__int_least16_t = short
21
34
  rbx.platform.typedef.__int_least32_t = int
22
- rbx.platform.typedef.__int_least64_t = long_long
35
+ rbx.platform.typedef.__int_least64_t = long
23
36
  rbx.platform.typedef.__int_least8_t = char
24
- rbx.platform.typedef.__intmax_t = long_long
37
+ rbx.platform.typedef.__intfptr_t = long
38
+ rbx.platform.typedef.__intmax_t = long
25
39
  rbx.platform.typedef.__intptr_t = long
26
40
  rbx.platform.typedef.__key_t = long
27
- rbx.platform.typedef.__mode_t = uint
28
- rbx.platform.typedef.__nlink_t = ulong_long
29
- rbx.platform.typedef.__off_t = long_long
30
- rbx.platform.typedef.__paddr_t = ulong
41
+ rbx.platform.typedef.__lwpid_t = int
42
+ rbx.platform.typedef.__mode_t = ushort
43
+ rbx.platform.typedef.__nl_item = int
44
+ rbx.platform.typedef.__nlink_t = ulong
45
+ rbx.platform.typedef.__off64_t = long
46
+ rbx.platform.typedef.__off_t = long
31
47
  rbx.platform.typedef.__pid_t = int
32
- rbx.platform.typedef.__psize_t = ulong
33
48
  rbx.platform.typedef.__ptrdiff_t = long
34
- rbx.platform.typedef.__register_t = long_long
35
- rbx.platform.typedef.__rlim_t = ulong_long
49
+ rbx.platform.typedef.__register_t = long
50
+ rbx.platform.typedef.__rlim_t = long
51
+ rbx.platform.typedef.__rman_res_t = ulong
36
52
  rbx.platform.typedef.__rune_t = int
37
53
  rbx.platform.typedef.__sa_family_t = uchar
38
- rbx.platform.typedef.__segsz_t = int
54
+ rbx.platform.typedef.__segsz_t = long
39
55
  rbx.platform.typedef.__size_t = ulong
40
56
  rbx.platform.typedef.__socklen_t = uint
41
57
  rbx.platform.typedef.__ssize_t = long
42
- rbx.platform.typedef.__suseconds_t = int
43
- rbx.platform.typedef.__swblk_t = int
44
- rbx.platform.typedef.__time_t = int
45
- rbx.platform.typedef.__timer_t = int
58
+ rbx.platform.typedef.__suseconds_t = long
59
+ rbx.platform.typedef.__time_t = long
60
+ rbx.platform.typedef.__u_register_t = ulong
46
61
  rbx.platform.typedef.__uid_t = uint
47
62
  rbx.platform.typedef.__uint16_t = ushort
48
63
  rbx.platform.typedef.__uint32_t = uint
49
- rbx.platform.typedef.__uint64_t = ulong_long
64
+ rbx.platform.typedef.__uint64_t = ulong
50
65
  rbx.platform.typedef.__uint8_t = uchar
51
66
  rbx.platform.typedef.__uint_fast16_t = uint
52
67
  rbx.platform.typedef.__uint_fast32_t = uint
53
- rbx.platform.typedef.__uint_fast64_t = ulong_long
68
+ rbx.platform.typedef.__uint_fast64_t = ulong
54
69
  rbx.platform.typedef.__uint_fast8_t = uint
55
70
  rbx.platform.typedef.__uint_least16_t = ushort
56
71
  rbx.platform.typedef.__uint_least32_t = uint
57
- rbx.platform.typedef.__uint_least64_t = ulong_long
72
+ rbx.platform.typedef.__uint_least64_t = ulong
58
73
  rbx.platform.typedef.__uint_least8_t = uchar
59
- rbx.platform.typedef.__uintmax_t = ulong_long
74
+ rbx.platform.typedef.__uintfptr_t = ulong
75
+ rbx.platform.typedef.__uintmax_t = ulong
60
76
  rbx.platform.typedef.__uintptr_t = ulong
61
77
  rbx.platform.typedef.__useconds_t = uint
62
- rbx.platform.typedef.__vaddr_t = ulong
63
- rbx.platform.typedef.__vsize_t = ulong
64
- rbx.platform.typedef.__wchar_t = int
65
- rbx.platform.typedef.__wctrans_t = pointer
66
- rbx.platform.typedef.__wctype_t = pointer
78
+ rbx.platform.typedef.__vm_offset_t = ulong
79
+ rbx.platform.typedef.__vm_paddr_t = ulong
80
+ rbx.platform.typedef.__vm_size_t = ulong
67
81
  rbx.platform.typedef.__wint_t = int
82
+ rbx.platform.typedef.accmode_t = int
83
+ rbx.platform.typedef.blkcnt_t = long
84
+ rbx.platform.typedef.blksize_t = int
85
+ rbx.platform.typedef.c_caddr_t = pointer
68
86
  rbx.platform.typedef.caddr_t = string
87
+ rbx.platform.typedef.cap_ioctl_t = ulong
69
88
  rbx.platform.typedef.clock_t = int
70
89
  rbx.platform.typedef.clockid_t = int
71
- rbx.platform.typedef.cpuid_t = ulong
72
- rbx.platform.typedef.daddr32_t = int
73
- rbx.platform.typedef.daddr64_t = long_long
74
- rbx.platform.typedef.daddr_t = int
75
- rbx.platform.typedef.dev_t = ulong_long
90
+ rbx.platform.typedef.cpulevel_t = int
91
+ rbx.platform.typedef.cpusetid_t = int
92
+ rbx.platform.typedef.cpuwhich_t = int
93
+ rbx.platform.typedef.critical_t = long
94
+ rbx.platform.typedef.daddr_t = long
95
+ rbx.platform.typedef.dev_t = ulong
96
+ rbx.platform.typedef.fd_mask = ulong
97
+ rbx.platform.typedef.fflags_t = uint
76
98
  rbx.platform.typedef.fixpt_t = uint
99
+ rbx.platform.typedef.fsblkcnt_t = ulong
100
+ rbx.platform.typedef.fsfilcnt_t = ulong
77
101
  rbx.platform.typedef.gid_t = uint
78
- rbx.platform.typedef.id_t = uint
102
+ rbx.platform.typedef.id_t = long
79
103
  rbx.platform.typedef.in_addr_t = uint
80
104
  rbx.platform.typedef.in_port_t = ushort
81
- rbx.platform.typedef.ino_t = ulong_long
105
+ rbx.platform.typedef.ino_t = ulong
82
106
  rbx.platform.typedef.int16_t = short
83
107
  rbx.platform.typedef.int32_t = int
84
- rbx.platform.typedef.int64_t = long_long
108
+ rbx.platform.typedef.int64_t = long
85
109
  rbx.platform.typedef.int8_t = char
110
+ rbx.platform.typedef.int_fast16_t = int
111
+ rbx.platform.typedef.int_fast32_t = int
112
+ rbx.platform.typedef.int_fast64_t = long
113
+ rbx.platform.typedef.int_fast8_t = int
114
+ rbx.platform.typedef.int_least16_t = short
115
+ rbx.platform.typedef.int_least32_t = int
116
+ rbx.platform.typedef.int_least64_t = long
117
+ rbx.platform.typedef.int_least8_t = char
118
+ rbx.platform.typedef.intmax_t = long
86
119
  rbx.platform.typedef.intptr_t = long
87
120
  rbx.platform.typedef.key_t = long
88
- rbx.platform.typedef.mode_t = uint
89
- rbx.platform.typedef.nlink_t = ulong_long
90
- rbx.platform.typedef.off_t = long_long
91
- rbx.platform.typedef.paddr_t = ulong
121
+ rbx.platform.typedef.kpaddr_t = ulong
122
+ rbx.platform.typedef.ksize_t = ulong
123
+ rbx.platform.typedef.kssize_t = long
124
+ rbx.platform.typedef.kvaddr_t = ulong
125
+ rbx.platform.typedef.lwpid_t = int
126
+ rbx.platform.typedef.mode_t = ushort
127
+ rbx.platform.typedef.nlink_t = ulong
128
+ rbx.platform.typedef.off64_t = long
129
+ rbx.platform.typedef.off_t = long
92
130
  rbx.platform.typedef.pid_t = int
93
- rbx.platform.typedef.psize_t = ulong
131
+ rbx.platform.typedef.pthread_key_t = int
132
+ rbx.platform.typedef.ptrdiff_t = long
94
133
  rbx.platform.typedef.qaddr_t = pointer
95
- rbx.platform.typedef.quad_t = long_long
96
- rbx.platform.typedef.register_t = long_long
97
- rbx.platform.typedef.rlim_t = ulong_long
134
+ rbx.platform.typedef.quad_t = long
135
+ rbx.platform.typedef.register_t = long
136
+ rbx.platform.typedef.rlim_t = long
137
+ rbx.platform.typedef.rman_res_t = ulong
138
+ rbx.platform.typedef.rsize_t = ulong
139
+ rbx.platform.typedef.rune_t = int
98
140
  rbx.platform.typedef.sa_family_t = uchar
99
- rbx.platform.typedef.segsz_t = int
141
+ rbx.platform.typedef.sbintime_t = long
142
+ rbx.platform.typedef.segsz_t = long
100
143
  rbx.platform.typedef.size_t = ulong
101
144
  rbx.platform.typedef.socklen_t = uint
102
145
  rbx.platform.typedef.ssize_t = long
103
- rbx.platform.typedef.suseconds_t = int
104
- rbx.platform.typedef.swblk_t = int
105
- rbx.platform.typedef.time_t = int
106
- rbx.platform.typedef.timer_t = int
146
+ rbx.platform.typedef.suseconds_t = long
147
+ rbx.platform.typedef.time_t = long
107
148
  rbx.platform.typedef.u_char = uchar
108
149
  rbx.platform.typedef.u_int = uint
109
150
  rbx.platform.typedef.u_int16_t = ushort
110
151
  rbx.platform.typedef.u_int32_t = uint
111
- rbx.platform.typedef.u_int64_t = ulong_long
152
+ rbx.platform.typedef.u_int64_t = ulong
112
153
  rbx.platform.typedef.u_int8_t = uchar
113
154
  rbx.platform.typedef.u_long = ulong
114
- rbx.platform.typedef.u_quad_t = ulong_long
155
+ rbx.platform.typedef.u_quad_t = ulong
156
+ rbx.platform.typedef.u_register_t = ulong
115
157
  rbx.platform.typedef.u_short = ushort
116
158
  rbx.platform.typedef.uid_t = uint
117
159
  rbx.platform.typedef.uint = uint
118
160
  rbx.platform.typedef.uint16_t = ushort
119
161
  rbx.platform.typedef.uint32_t = uint
120
- rbx.platform.typedef.uint64_t = ulong_long
162
+ rbx.platform.typedef.uint64_t = ulong
121
163
  rbx.platform.typedef.uint8_t = uchar
164
+ rbx.platform.typedef.uint_fast16_t = uint
165
+ rbx.platform.typedef.uint_fast32_t = uint
166
+ rbx.platform.typedef.uint_fast64_t = ulong
167
+ rbx.platform.typedef.uint_fast8_t = uint
168
+ rbx.platform.typedef.uint_least16_t = ushort
169
+ rbx.platform.typedef.uint_least32_t = uint
170
+ rbx.platform.typedef.uint_least64_t = ulong
171
+ rbx.platform.typedef.uint_least8_t = uchar
172
+ rbx.platform.typedef.uintmax_t = ulong
122
173
  rbx.platform.typedef.uintptr_t = ulong
123
- rbx.platform.typedef.ulong = ulong
124
- rbx.platform.typedef.unchar = uchar
125
174
  rbx.platform.typedef.useconds_t = uint
126
175
  rbx.platform.typedef.ushort = ushort
127
- rbx.platform.typedef.vaddr_t = ulong
128
- rbx.platform.typedef.vsize_t = ulong
176
+ rbx.platform.typedef.vm_offset_t = ulong
177
+ rbx.platform.typedef.vm_ooffset_t = ulong
178
+ rbx.platform.typedef.vm_paddr_t = ulong
179
+ rbx.platform.typedef.vm_pindex_t = ulong
180
+ rbx.platform.typedef.vm_size_t = ulong
181
+ rbx.platform.typedef.wchar_t = uint