ffi 1.9.25 → 1.10.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cf13d7fccdcd65b73b5286e04fc25a174b7b855ab1803995eaa4564d5d65456a
4
- data.tar.gz: 187c8d21dd770d08e7e123ead2a727fc3e9e384d35ff2b5d37fc3a0df712f37e
3
+ metadata.gz: 108ea9d730d92bf5994912324af1cd21b23256c575d0344a7884990d8307baa7
4
+ data.tar.gz: be60f268828396e8b67d1329ac95b136f4f03a229d37f95f73d35dcd1fb8908c
5
5
  SHA512:
6
- metadata.gz: 06eb5d5d2c033e0b7ade6d75957f835d7831aca9b492ac752e7d2b4760707ecb07981e1cd366f0059b67c1b2f3a9b5964e70388d123f4997efa0f5c691baede8
7
- data.tar.gz: e050bf8673f3bb19afbe78646f18f452c4fa2d70fc2a8f9f8efb073cd0658f6a7e0f1737dd6a05076422533ecf22e9952f08d407bdd0480bbde31fd55eef52de
6
+ metadata.gz: eed04778f789f4216f78466bc8fb3f30efa96f3da66720fe3fcce1f5eba01213387c20fe0eb1bcd73146931cefdc68133a3d6a1723b921e1ce00adb58e8e6440
7
+ data.tar.gz: 8c8c96560189bce8d0a95513872028692b89d181ed8ba68752085cbcac2cf957bde9b00c6666946646849acea167b300c28727fd9669098cfb83514fbcf29474
@@ -11,15 +11,11 @@ os:
11
11
  - linux
12
12
  - osx
13
13
  rvm:
14
- - 1.9.3
15
- - 2.0.0
16
- - 2.1
17
- - 2.2.8
18
- - 2.3.5
19
- - 2.4.3
20
- - 2.5.0
14
+ - 2.3.8
15
+ - 2.4.5
16
+ - 2.5.3
17
+ - 2.6.0
21
18
  - ruby-head
22
- - rbx
23
19
  - system
24
20
  env:
25
21
  - CC=gcc
@@ -27,13 +23,8 @@ env:
27
23
  matrix:
28
24
  allow_failures:
29
25
  - rvm: system
30
- - os: osx
31
- rvm: 2.0.0
32
26
  - os: osx
33
27
  rvm: ruby-head
34
- - rvm: rbx
35
- - rvm: rbx-head
36
- - rvm: 1.9.3
37
28
  exclude: # ruby 2.4.2 needs build with xcode9 or later on osx
38
29
  - os: osx
39
30
  rvm: 2.4.2
@@ -1,3 +1,23 @@
1
+ 1.10.0 / 2019-01-06
2
+ -------------------
3
+
4
+ Added:
5
+ * Add /opt/local/lib/ to ffi's fallback library search path. #638
6
+ * Add binary gem support for ruby-2.6 on Windows
7
+ * Add FreeBSD on AArch64 and ARM support. #644
8
+ * Add FFI::LastError.winapi_error on Windows native or Cygwin. #633
9
+
10
+ Changed:
11
+ * Update to rake-compiler-dock-0.7.0
12
+ * Use 64-bit inodes on FreeBSD >= 12. #644
13
+ * Switch time_t and suseconds_t types to long on FreeBSD. #627
14
+ * Make register_t long_long on 64-bit FreeBSD. #644
15
+ * Fix Pointer#write_array_of_type #637
16
+
17
+ Removed:
18
+ * Drop binary gem support for ruby-2.0 and 2.1 on Windows
19
+
20
+
1
21
  1.9.25 / 2018-06-03
2
22
  -------------------
3
23
 
@@ -9,6 +29,10 @@ Changed:
9
29
  1.9.24 / 2018-06-02
10
30
  -------------------
11
31
 
32
+ Security Note:
33
+
34
+ This update addresses vulnerability CVE-2018-1000201: DLL loading issue which can be hijacked on Windows OS, when a Symbol is used as DLL name instead of a String. Found by Matthew Bush.
35
+
12
36
  Added:
13
37
  * Added a CHANGELOG file
14
38
  * Add mips64(eb) support, and mips r6 support. (#601)
data/Gemfile CHANGED
@@ -3,7 +3,7 @@ source 'https://rubygems.org'
3
3
  group :development do
4
4
  gem 'rake', '~> 10.1'
5
5
  gem 'rake-compiler', '~> 1.0.3'
6
- gem 'rake-compiler-dock', '~> 0.6.2'
6
+ gem 'rake-compiler-dock', '~> 0.7.0'
7
7
  gem 'rspec', '~> 3.0'
8
8
  gem 'rubygems-tasks', '~> 0.2.4', :require => 'rubygems/tasks'
9
9
  gem "rubysl", "~> 2.0", :platforms => 'rbx'
data/Rakefile CHANGED
@@ -162,7 +162,6 @@ namespace 'java' do
162
162
  s.summary = gem_spec.summary
163
163
  s.description = gem_spec.description
164
164
  s.files = %w(LICENSE COPYING README.md CHANGELOG.md Rakefile)
165
- s.has_rdoc = false
166
165
  s.license = gem_spec.license
167
166
  s.platform = 'java'
168
167
  end
@@ -199,12 +198,13 @@ if USE_RAKE_COMPILER
199
198
  sh "x86_64-w64-mingw32-strip -S build/x64-mingw32/stage/lib/#{ruby_version[/^\d+\.\d+/]}/ffi_c.so"
200
199
  end
201
200
  end
201
+ end
202
202
 
203
- desc "build a windows gem without all the ceremony."
204
- task "gem:windows" do
205
- require "rake_compiler_dock"
206
- RakeCompilerDock.sh "sudo apt-get update && sudo apt-get install -y libltdl-dev && bundle && rake cross native gem MAKE='nice make -j`nproc`'"
207
- end
203
+ desc "build a windows gem without all the ceremony"
204
+ task "gem:windows" do
205
+ require "rake_compiler_dock"
206
+ sh "bundle package"
207
+ RakeCompilerDock.sh "sudo apt-get update && sudo apt-get install -y libltdl-dev && bundle --local && rake cross native gem MAKE='nice make -j`nproc`'"
208
208
  end
209
209
 
210
210
  directory "ext/ffi_c/libffi"
@@ -8,7 +8,7 @@ install:
8
8
  }
9
9
  - ridk version
10
10
  - gem --version
11
- - gem install bundler --quiet --no-ri --no-rdoc
11
+ - gem install bundler --quiet --no-document
12
12
  - bundle install
13
13
  build: off
14
14
  build_script:
@@ -49,8 +49,17 @@
49
49
  # define USE_PTHREAD_LOCAL
50
50
  #endif
51
51
 
52
+ #if defined(__CYGWIN__)
53
+ typedef uint32_t DWORD;
54
+ DWORD __stdcall GetLastError(void);
55
+ void __stdcall SetLastError(DWORD);
56
+ #endif
57
+
52
58
  typedef struct ThreadData {
53
59
  int td_errno;
60
+ #if defined(_WIN32) || defined(__CYGWIN__)
61
+ DWORD td_winapi_errno;
62
+ #endif
54
63
  } ThreadData;
55
64
 
56
65
  #if defined(USE_PTHREAD_LOCAL)
@@ -126,6 +135,19 @@ get_last_error(VALUE self)
126
135
  return INT2NUM(thread_data_get()->td_errno);
127
136
  }
128
137
 
138
+ #if defined(_WIN32) || defined(__CYGWIN__)
139
+ /*
140
+ * call-seq: winapi_error
141
+ * @return [Numeric]
142
+ * Get +GetLastError()+ value. Only Windows or Cygwin.
143
+ */
144
+ static VALUE
145
+ get_last_winapi_error(VALUE self)
146
+ {
147
+ return INT2NUM(thread_data_get()->td_winapi_errno);
148
+ }
149
+ #endif
150
+
129
151
 
130
152
  /*
131
153
  * call-seq: error(error)
@@ -146,22 +168,40 @@ set_last_error(VALUE self, VALUE error)
146
168
  return Qnil;
147
169
  }
148
170
 
171
+ #if defined(_WIN32) || defined(__CYGWIN__)
172
+ /*
173
+ * call-seq: error(error)
174
+ * @param [Numeric] error
175
+ * @return [nil]
176
+ * Set +GetLastError()+ value. Only on Windows and Cygwin.
177
+ */
178
+ static VALUE
179
+ set_last_winapi_error(VALUE self, VALUE error)
180
+ {
181
+ SetLastError(NUM2INT(error));
182
+ return Qnil;
183
+ }
184
+ #endif
185
+
149
186
 
150
187
  void
151
188
  rbffi_save_errno(void)
152
189
  {
153
190
  int error = 0;
154
-
155
191
  #ifdef _WIN32
156
192
  error = GetLastError();
157
193
  #else
158
194
  error = errno;
159
195
  #endif
160
196
 
197
+ #if defined(_WIN32) || defined(__CYGWIN__)
198
+ DWORD winapi_error = GetLastError();
199
+ thread_data_get()->td_winapi_errno = winapi_error;
200
+ #endif
201
+
161
202
  thread_data_get()->td_errno = error;
162
203
  }
163
204
 
164
-
165
205
  void
166
206
  rbffi_LastError_Init(VALUE moduleFFI)
167
207
  {
@@ -175,6 +215,11 @@ rbffi_LastError_Init(VALUE moduleFFI)
175
215
  rb_define_module_function(moduleError, "error", get_last_error, 0);
176
216
  rb_define_module_function(moduleError, "error=", set_last_error, 1);
177
217
 
218
+ #if defined(_WIN32) || defined(__CYGWIN__)
219
+ rb_define_module_function(moduleError, "winapi_error", get_last_winapi_error, 0);
220
+ rb_define_module_function(moduleError, "winapi_error=", set_last_winapi_error, 1);
221
+ #endif
222
+
178
223
  #if defined(USE_PTHREAD_LOCAL)
179
224
  pthread_key_create(&threadDataKey, thread_data_free);
180
225
  #else
@@ -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/'].find do |pth|
129
+ path = ['/usr/lib/','/usr/local/lib/','/opt/local/lib/'].find do |pth|
130
130
  File.exist?(pth + libname)
131
131
  end
132
132
  if path
@@ -54,6 +54,8 @@ module FFI
54
54
  RbConfig::CONFIG['host_os'].downcase
55
55
  end
56
56
 
57
+ OSVERSION = RbConfig::CONFIG['host_os'].gsub(/[^\d]/, '').to_i
58
+
57
59
  ARCH = case CPU.downcase
58
60
  when /amd64|x86_64/
59
61
  "x86_64"
@@ -82,7 +84,6 @@ module FFI
82
84
  OS == os
83
85
  end
84
86
 
85
- NAME = "#{ARCH}-#{OS}"
86
87
  IS_GNU = defined?(GNU_LIBC)
87
88
  IS_LINUX = is_os("linux")
88
89
  IS_MAC = is_os("darwin")
@@ -92,6 +93,11 @@ module FFI
92
93
  IS_SOLARIS = is_os("solaris")
93
94
  IS_WINDOWS = is_os("windows")
94
95
  IS_BSD = IS_MAC || IS_FREEBSD || IS_NETBSD || IS_OPENBSD
96
+
97
+ # Add the version for known ABI breaks
98
+ name_version = "12" if IS_FREEBSD && OSVERSION >= 12 # 64-bit inodes
99
+
100
+ NAME = "#{ARCH}-#{OS}#{name_version}"
95
101
  CONF_DIR = File.join(File.dirname(__FILE__), 'platform', NAME)
96
102
 
97
103
  public
@@ -0,0 +1,128 @@
1
+ rbx.platform.typedef.__int8_t = char
2
+ rbx.platform.typedef.__uint8_t = uchar
3
+ rbx.platform.typedef.__int16_t = short
4
+ rbx.platform.typedef.__uint16_t = ushort
5
+ rbx.platform.typedef.__int32_t = int
6
+ rbx.platform.typedef.__uint32_t = uint
7
+ rbx.platform.typedef.__int64_t = long_long
8
+ rbx.platform.typedef.__uint64_t = ulong_long
9
+ rbx.platform.typedef.__int_least8_t = char
10
+ rbx.platform.typedef.__uint_least8_t = uchar
11
+ rbx.platform.typedef.__int_least16_t = short
12
+ rbx.platform.typedef.__uint_least16_t = ushort
13
+ rbx.platform.typedef.__int_least32_t = int
14
+ rbx.platform.typedef.__uint_least32_t = uint
15
+ rbx.platform.typedef.__int_least64_t = long_long
16
+ rbx.platform.typedef.__uint_least64_t = ulong_long
17
+ rbx.platform.typedef.__int_fast8_t = int
18
+ rbx.platform.typedef.__uint_fast8_t = uint
19
+ rbx.platform.typedef.__int_fast16_t = int
20
+ rbx.platform.typedef.__uint_fast16_t = uint
21
+ rbx.platform.typedef.__int_fast32_t = int
22
+ rbx.platform.typedef.__uint_fast32_t = uint
23
+ rbx.platform.typedef.__int_fast64_t = long_long
24
+ rbx.platform.typedef.__uint_fast64_t = ulong_long
25
+ rbx.platform.typedef.__intptr_t = long
26
+ rbx.platform.typedef.__uintptr_t = ulong
27
+ rbx.platform.typedef.__intmax_t = long_long
28
+ rbx.platform.typedef.__uintmax_t = ulong_long
29
+ rbx.platform.typedef.__register_t = long_long
30
+ rbx.platform.typedef.__vaddr_t = ulong
31
+ rbx.platform.typedef.__paddr_t = ulong
32
+ rbx.platform.typedef.__vsize_t = ulong
33
+ rbx.platform.typedef.__psize_t = ulong
34
+ rbx.platform.typedef.__clock_t = int
35
+ rbx.platform.typedef.__clockid_t = int
36
+ rbx.platform.typedef.__off_t = long_long
37
+ rbx.platform.typedef.__ptrdiff_t = long
38
+ rbx.platform.typedef.__size_t = ulong
39
+ rbx.platform.typedef.__ssize_t = long
40
+ rbx.platform.typedef.__time_t = int
41
+ rbx.platform.typedef.__timer_t = int
42
+ rbx.platform.typedef.__wchar_t = int
43
+ rbx.platform.typedef.__wint_t = int
44
+ rbx.platform.typedef.__rune_t = int
45
+ rbx.platform.typedef.__wctrans_t = pointer
46
+ rbx.platform.typedef.__wctype_t = pointer
47
+ rbx.platform.typedef.__cpuid_t = ulong
48
+ rbx.platform.typedef.__dev_t = int
49
+ rbx.platform.typedef.__fixpt_t = uint
50
+ rbx.platform.typedef.__gid_t = uint
51
+ rbx.platform.typedef.__id_t = uint
52
+ rbx.platform.typedef.__in_addr_t = uint
53
+ rbx.platform.typedef.__in_port_t = ushort
54
+ rbx.platform.typedef.__ino_t = uint
55
+ rbx.platform.typedef.__key_t = long
56
+ rbx.platform.typedef.__mode_t = uint
57
+ rbx.platform.typedef.__nlink_t = uint
58
+ rbx.platform.typedef.__pid_t = int
59
+ rbx.platform.typedef.__rlim_t = ulong_long
60
+ rbx.platform.typedef.__sa_family_t = uchar
61
+ rbx.platform.typedef.__segsz_t = int
62
+ rbx.platform.typedef.__socklen_t = uint
63
+ rbx.platform.typedef.__swblk_t = int
64
+ rbx.platform.typedef.__uid_t = uint
65
+ rbx.platform.typedef.__useconds_t = uint
66
+ rbx.platform.typedef.__suseconds_t = int
67
+ rbx.platform.typedef.u_char = uchar
68
+ rbx.platform.typedef.u_short = ushort
69
+ rbx.platform.typedef.u_int = uint
70
+ rbx.platform.typedef.u_long = ulong
71
+ rbx.platform.typedef.unchar = uchar
72
+ rbx.platform.typedef.ushort = ushort
73
+ rbx.platform.typedef.uint = uint
74
+ rbx.platform.typedef.ulong = ulong
75
+ rbx.platform.typedef.cpuid_t = ulong
76
+ rbx.platform.typedef.register_t = long_long
77
+ rbx.platform.typedef.int8_t = char
78
+ rbx.platform.typedef.uint8_t = uchar
79
+ rbx.platform.typedef.int16_t = short
80
+ rbx.platform.typedef.uint16_t = ushort
81
+ rbx.platform.typedef.int32_t = int
82
+ rbx.platform.typedef.uint32_t = uint
83
+ rbx.platform.typedef.int64_t = long_long
84
+ rbx.platform.typedef.uint64_t = ulong_long
85
+ rbx.platform.typedef.intptr_t = long
86
+ rbx.platform.typedef.uintptr_t = ulong
87
+ rbx.platform.typedef.u_int8_t = uchar
88
+ rbx.platform.typedef.u_int16_t = ushort
89
+ rbx.platform.typedef.u_int32_t = uint
90
+ rbx.platform.typedef.u_int64_t = ulong_long
91
+ rbx.platform.typedef.quad_t = long_long
92
+ rbx.platform.typedef.u_quad_t = ulong_long
93
+ rbx.platform.typedef.qaddr_t = pointer
94
+ rbx.platform.typedef.vaddr_t = ulong
95
+ rbx.platform.typedef.paddr_t = ulong
96
+ rbx.platform.typedef.vsize_t = ulong
97
+ rbx.platform.typedef.psize_t = ulong
98
+ rbx.platform.typedef.caddr_t = string
99
+ rbx.platform.typedef.daddr_t = int
100
+ rbx.platform.typedef.daddr32_t = int
101
+ rbx.platform.typedef.daddr64_t = long_long
102
+ rbx.platform.typedef.dev_t = int
103
+ rbx.platform.typedef.fixpt_t = uint
104
+ rbx.platform.typedef.gid_t = uint
105
+ rbx.platform.typedef.id_t = uint
106
+ rbx.platform.typedef.ino_t = uint
107
+ rbx.platform.typedef.key_t = long
108
+ rbx.platform.typedef.mode_t = uint
109
+ rbx.platform.typedef.nlink_t = uint
110
+ rbx.platform.typedef.pid_t = int
111
+ rbx.platform.typedef.rlim_t = ulong_long
112
+ rbx.platform.typedef.segsz_t = int
113
+ rbx.platform.typedef.swblk_t = int
114
+ rbx.platform.typedef.uid_t = uint
115
+ rbx.platform.typedef.useconds_t = uint
116
+ rbx.platform.typedef.suseconds_t = int
117
+ rbx.platform.typedef.in_addr_t = uint
118
+ rbx.platform.typedef.in_port_t = ushort
119
+ rbx.platform.typedef.sa_family_t = uchar
120
+ rbx.platform.typedef.socklen_t = uint
121
+ rbx.platform.typedef.clock_t = int
122
+ rbx.platform.typedef.clockid_t = int
123
+ rbx.platform.typedef.size_t = ulong
124
+ rbx.platform.typedef.ssize_t = long
125
+ rbx.platform.typedef.time_t = int
126
+ rbx.platform.typedef.timer_t = int
127
+ rbx.platform.typedef.off_t = long_long
128
+ rbx.platform.typedef.__fd_mask = int
@@ -0,0 +1,128 @@
1
+ rbx.platform.typedef.__int8_t = char
2
+ rbx.platform.typedef.__uint8_t = uchar
3
+ rbx.platform.typedef.__int16_t = short
4
+ rbx.platform.typedef.__uint16_t = ushort
5
+ rbx.platform.typedef.__int32_t = int
6
+ rbx.platform.typedef.__uint32_t = uint
7
+ rbx.platform.typedef.__int64_t = long_long
8
+ rbx.platform.typedef.__uint64_t = ulong_long
9
+ rbx.platform.typedef.__int_least8_t = char
10
+ rbx.platform.typedef.__uint_least8_t = uchar
11
+ rbx.platform.typedef.__int_least16_t = short
12
+ rbx.platform.typedef.__uint_least16_t = ushort
13
+ rbx.platform.typedef.__int_least32_t = int
14
+ rbx.platform.typedef.__uint_least32_t = uint
15
+ rbx.platform.typedef.__int_least64_t = long_long
16
+ rbx.platform.typedef.__uint_least64_t = ulong_long
17
+ rbx.platform.typedef.__int_fast8_t = int
18
+ rbx.platform.typedef.__uint_fast8_t = uint
19
+ rbx.platform.typedef.__int_fast16_t = int
20
+ rbx.platform.typedef.__uint_fast16_t = uint
21
+ rbx.platform.typedef.__int_fast32_t = int
22
+ rbx.platform.typedef.__uint_fast32_t = uint
23
+ rbx.platform.typedef.__int_fast64_t = long_long
24
+ rbx.platform.typedef.__uint_fast64_t = ulong_long
25
+ rbx.platform.typedef.__intptr_t = long
26
+ rbx.platform.typedef.__uintptr_t = ulong
27
+ rbx.platform.typedef.__intmax_t = long_long
28
+ rbx.platform.typedef.__uintmax_t = ulong_long
29
+ rbx.platform.typedef.__register_t = long_long
30
+ rbx.platform.typedef.__vaddr_t = ulong
31
+ rbx.platform.typedef.__paddr_t = ulong
32
+ rbx.platform.typedef.__vsize_t = ulong
33
+ rbx.platform.typedef.__psize_t = ulong
34
+ rbx.platform.typedef.__clock_t = int
35
+ rbx.platform.typedef.__clockid_t = int
36
+ rbx.platform.typedef.__off_t = long_long
37
+ rbx.platform.typedef.__ptrdiff_t = long
38
+ rbx.platform.typedef.__size_t = ulong
39
+ rbx.platform.typedef.__ssize_t = long
40
+ rbx.platform.typedef.__time_t = int
41
+ rbx.platform.typedef.__timer_t = int
42
+ rbx.platform.typedef.__wchar_t = int
43
+ rbx.platform.typedef.__wint_t = int
44
+ rbx.platform.typedef.__rune_t = int
45
+ rbx.platform.typedef.__wctrans_t = pointer
46
+ rbx.platform.typedef.__wctype_t = pointer
47
+ rbx.platform.typedef.__cpuid_t = ulong
48
+ rbx.platform.typedef.__dev_t = ulong_long
49
+ rbx.platform.typedef.__fixpt_t = uint
50
+ rbx.platform.typedef.__gid_t = uint
51
+ rbx.platform.typedef.__id_t = uint
52
+ rbx.platform.typedef.__in_addr_t = uint
53
+ rbx.platform.typedef.__in_port_t = ushort
54
+ rbx.platform.typedef.__ino_t = ulong_long
55
+ rbx.platform.typedef.__key_t = long
56
+ rbx.platform.typedef.__mode_t = uint
57
+ rbx.platform.typedef.__nlink_t = ulong_long
58
+ rbx.platform.typedef.__pid_t = int
59
+ rbx.platform.typedef.__rlim_t = ulong_long
60
+ rbx.platform.typedef.__sa_family_t = uchar
61
+ rbx.platform.typedef.__segsz_t = int
62
+ rbx.platform.typedef.__socklen_t = uint
63
+ rbx.platform.typedef.__swblk_t = int
64
+ rbx.platform.typedef.__uid_t = uint
65
+ rbx.platform.typedef.__useconds_t = uint
66
+ rbx.platform.typedef.__suseconds_t = int
67
+ rbx.platform.typedef.u_char = uchar
68
+ rbx.platform.typedef.u_short = ushort
69
+ rbx.platform.typedef.u_int = uint
70
+ rbx.platform.typedef.u_long = ulong
71
+ rbx.platform.typedef.unchar = uchar
72
+ rbx.platform.typedef.ushort = ushort
73
+ rbx.platform.typedef.uint = uint
74
+ rbx.platform.typedef.ulong = ulong
75
+ rbx.platform.typedef.cpuid_t = ulong
76
+ rbx.platform.typedef.register_t = long_long
77
+ rbx.platform.typedef.int8_t = char
78
+ rbx.platform.typedef.uint8_t = uchar
79
+ rbx.platform.typedef.int16_t = short
80
+ rbx.platform.typedef.uint16_t = ushort
81
+ rbx.platform.typedef.int32_t = int
82
+ rbx.platform.typedef.uint32_t = uint
83
+ rbx.platform.typedef.int64_t = long_long
84
+ rbx.platform.typedef.uint64_t = ulong_long
85
+ rbx.platform.typedef.intptr_t = long
86
+ rbx.platform.typedef.uintptr_t = ulong
87
+ rbx.platform.typedef.u_int8_t = uchar
88
+ rbx.platform.typedef.u_int16_t = ushort
89
+ rbx.platform.typedef.u_int32_t = uint
90
+ rbx.platform.typedef.u_int64_t = ulong_long
91
+ rbx.platform.typedef.quad_t = long_long
92
+ rbx.platform.typedef.u_quad_t = ulong_long
93
+ rbx.platform.typedef.qaddr_t = pointer
94
+ rbx.platform.typedef.vaddr_t = ulong
95
+ rbx.platform.typedef.paddr_t = ulong
96
+ rbx.platform.typedef.vsize_t = ulong
97
+ rbx.platform.typedef.psize_t = ulong
98
+ rbx.platform.typedef.caddr_t = string
99
+ rbx.platform.typedef.daddr_t = int
100
+ rbx.platform.typedef.daddr32_t = int
101
+ rbx.platform.typedef.daddr64_t = long_long
102
+ rbx.platform.typedef.dev_t = ulong_long
103
+ rbx.platform.typedef.fixpt_t = uint
104
+ rbx.platform.typedef.gid_t = uint
105
+ rbx.platform.typedef.id_t = uint
106
+ rbx.platform.typedef.ino_t = ulong_long
107
+ rbx.platform.typedef.key_t = long
108
+ rbx.platform.typedef.mode_t = uint
109
+ rbx.platform.typedef.nlink_t = ulong_long
110
+ rbx.platform.typedef.pid_t = int
111
+ rbx.platform.typedef.rlim_t = ulong_long
112
+ rbx.platform.typedef.segsz_t = int
113
+ rbx.platform.typedef.swblk_t = int
114
+ rbx.platform.typedef.uid_t = uint
115
+ rbx.platform.typedef.useconds_t = uint
116
+ rbx.platform.typedef.suseconds_t = int
117
+ rbx.platform.typedef.in_addr_t = uint
118
+ rbx.platform.typedef.in_port_t = ushort
119
+ rbx.platform.typedef.sa_family_t = uchar
120
+ rbx.platform.typedef.socklen_t = uint
121
+ rbx.platform.typedef.clock_t = int
122
+ rbx.platform.typedef.clockid_t = int
123
+ rbx.platform.typedef.size_t = ulong
124
+ rbx.platform.typedef.ssize_t = long
125
+ rbx.platform.typedef.time_t = int
126
+ rbx.platform.typedef.timer_t = int
127
+ rbx.platform.typedef.off_t = long_long
128
+ rbx.platform.typedef.__fd_mask = int
@@ -0,0 +1,152 @@
1
+ rbx.platform.typedef.__int8_t = char
2
+ rbx.platform.typedef.__uint8_t = uchar
3
+ rbx.platform.typedef.__int16_t = short
4
+ rbx.platform.typedef.__uint16_t = ushort
5
+ rbx.platform.typedef.__int32_t = int
6
+ rbx.platform.typedef.__uint32_t = uint
7
+ rbx.platform.typedef.__int64_t = long_long
8
+ rbx.platform.typedef.__uint64_t = ulong_long
9
+ rbx.platform.typedef.__clock_t = ulong
10
+ rbx.platform.typedef.__cpumask_t = uint
11
+ rbx.platform.typedef.__critical_t = int
12
+ rbx.platform.typedef.__intfptr_t = int
13
+ rbx.platform.typedef.__intmax_t = long_long
14
+ rbx.platform.typedef.__intptr_t = int
15
+ rbx.platform.typedef.__int_fast8_t = int
16
+ rbx.platform.typedef.__int_fast16_t = int
17
+ rbx.platform.typedef.__int_fast32_t = int
18
+ rbx.platform.typedef.__int_fast64_t = long_long
19
+ rbx.platform.typedef.__int_least8_t = char
20
+ rbx.platform.typedef.__int_least16_t = short
21
+ rbx.platform.typedef.__int_least32_t = int
22
+ rbx.platform.typedef.__int_least64_t = long_long
23
+ rbx.platform.typedef.__ptrdiff_t = int
24
+ rbx.platform.typedef.__register_t = int
25
+ rbx.platform.typedef.__segsz_t = int
26
+ rbx.platform.typedef.__size_t = uint
27
+ rbx.platform.typedef.__ssize_t = int
28
+ rbx.platform.typedef.__time_t = int
29
+ rbx.platform.typedef.__uintfptr_t = uint
30
+ rbx.platform.typedef.__uintmax_t = ulong_long
31
+ rbx.platform.typedef.__uintptr_t = uint
32
+ rbx.platform.typedef.__uint_fast8_t = uint
33
+ rbx.platform.typedef.__uint_fast16_t = uint
34
+ rbx.platform.typedef.__uint_fast32_t = uint
35
+ rbx.platform.typedef.__uint_fast64_t = ulong_long
36
+ rbx.platform.typedef.__uint_least8_t = uchar
37
+ rbx.platform.typedef.__uint_least16_t = ushort
38
+ rbx.platform.typedef.__uint_least32_t = uint
39
+ rbx.platform.typedef.__uint_least64_t = ulong_long
40
+ rbx.platform.typedef.__u_register_t = uint
41
+ rbx.platform.typedef.__vm_offset_t = uint
42
+ rbx.platform.typedef.__vm_ooffset_t = long_long
43
+ rbx.platform.typedef.__vm_paddr_t = uint
44
+ rbx.platform.typedef.__vm_pindex_t = ulong_long
45
+ rbx.platform.typedef.__vm_size_t = uint
46
+ rbx.platform.typedef.__blksize_t = uint
47
+ rbx.platform.typedef.__blkcnt_t = long_long
48
+ rbx.platform.typedef.__clockid_t = int
49
+ rbx.platform.typedef.__fflags_t = uint
50
+ rbx.platform.typedef.__fsblkcnt_t = ulong_long
51
+ rbx.platform.typedef.__fsfilcnt_t = ulong_long
52
+ rbx.platform.typedef.__gid_t = uint
53
+ rbx.platform.typedef.__id_t = long_long
54
+ rbx.platform.typedef.__ino_t = uint
55
+ rbx.platform.typedef.__key_t = long
56
+ rbx.platform.typedef.__lwpid_t = int
57
+ rbx.platform.typedef.__mode_t = ushort
58
+ rbx.platform.typedef.__accmode_t = int
59
+ rbx.platform.typedef.__nl_item = int
60
+ rbx.platform.typedef.__nlink_t = ushort
61
+ rbx.platform.typedef.__off_t = long_long
62
+ rbx.platform.typedef.__pid_t = int
63
+ rbx.platform.typedef.__rlim_t = long_long
64
+ rbx.platform.typedef.__sa_family_t = uchar
65
+ rbx.platform.typedef.__socklen_t = uint
66
+ rbx.platform.typedef.__suseconds_t = long
67
+ rbx.platform.typedef.__uid_t = uint
68
+ rbx.platform.typedef.__useconds_t = uint
69
+ rbx.platform.typedef.__cpuwhich_t = int
70
+ rbx.platform.typedef.__cpulevel_t = int
71
+ rbx.platform.typedef.__cpusetid_t = int
72
+ rbx.platform.typedef.__ct_rune_t = int
73
+ rbx.platform.typedef.__rune_t = int
74
+ rbx.platform.typedef.__wchar_t = int
75
+ rbx.platform.typedef.__wint_t = int
76
+ rbx.platform.typedef.__wint_t = int
77
+ rbx.platform.typedef.__dev_t = uint
78
+ rbx.platform.typedef.__fixpt_t = uint
79
+ rbx.platform.typedef.pthread_key_t = int
80
+ rbx.platform.typedef.*) = pointer
81
+ rbx.platform.typedef.u_char = uchar
82
+ rbx.platform.typedef.u_short = ushort
83
+ rbx.platform.typedef.u_int = uint
84
+ rbx.platform.typedef.u_long = ulong
85
+ rbx.platform.typedef.ushort = ushort
86
+ rbx.platform.typedef.uint = uint
87
+ rbx.platform.typedef.int8_t = char
88
+ rbx.platform.typedef.int16_t = short
89
+ rbx.platform.typedef.int32_t = int
90
+ rbx.platform.typedef.int64_t = long_long
91
+ rbx.platform.typedef.uint8_t = uchar
92
+ rbx.platform.typedef.uint16_t = ushort
93
+ rbx.platform.typedef.uint32_t = uint
94
+ rbx.platform.typedef.uint64_t = ulong_long
95
+ rbx.platform.typedef.intptr_t = int
96
+ rbx.platform.typedef.uintptr_t = uint
97
+ rbx.platform.typedef.u_int8_t = uchar
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_quad_t = ulong_long
102
+ rbx.platform.typedef.quad_t = long_long
103
+ rbx.platform.typedef.qaddr_t = pointer
104
+ rbx.platform.typedef.caddr_t = string
105
+ rbx.platform.typedef.c_caddr_t = pointer
106
+ rbx.platform.typedef.blksize_t = uint
107
+ rbx.platform.typedef.cpuwhich_t = int
108
+ rbx.platform.typedef.cpulevel_t = int
109
+ rbx.platform.typedef.cpusetid_t = int
110
+ rbx.platform.typedef.blkcnt_t = long_long
111
+ rbx.platform.typedef.clock_t = ulong
112
+ rbx.platform.typedef.clockid_t = int
113
+ rbx.platform.typedef.cpumask_t = uint
114
+ rbx.platform.typedef.critical_t = int
115
+ rbx.platform.typedef.daddr_t = long_long
116
+ rbx.platform.typedef.dev_t = uint
117
+ rbx.platform.typedef.fflags_t = uint
118
+ rbx.platform.typedef.fixpt_t = uint
119
+ rbx.platform.typedef.fsblkcnt_t = ulong_long
120
+ rbx.platform.typedef.fsfilcnt_t = ulong_long
121
+ rbx.platform.typedef.gid_t = uint
122
+ rbx.platform.typedef.in_addr_t = uint
123
+ rbx.platform.typedef.in_port_t = ushort
124
+ rbx.platform.typedef.id_t = long_long
125
+ rbx.platform.typedef.ino_t = uint
126
+ rbx.platform.typedef.key_t = long
127
+ rbx.platform.typedef.lwpid_t = int
128
+ rbx.platform.typedef.mode_t = ushort
129
+ rbx.platform.typedef.accmode_t = int
130
+ rbx.platform.typedef.nlink_t = ushort
131
+ rbx.platform.typedef.off_t = long_long
132
+ rbx.platform.typedef.pid_t = int
133
+ rbx.platform.typedef.register_t = int
134
+ rbx.platform.typedef.rlim_t = long_long
135
+ rbx.platform.typedef.segsz_t = int
136
+ rbx.platform.typedef.size_t = uint
137
+ rbx.platform.typedef.ssize_t = int
138
+ rbx.platform.typedef.suseconds_t = long
139
+ rbx.platform.typedef.time_t = int
140
+ rbx.platform.typedef.u_register_t = uint
141
+ rbx.platform.typedef.uid_t = uint
142
+ rbx.platform.typedef.useconds_t = uint
143
+ rbx.platform.typedef.vm_offset_t = uint
144
+ rbx.platform.typedef.vm_ooffset_t = long_long
145
+ rbx.platform.typedef.vm_paddr_t = uint
146
+ rbx.platform.typedef.vm_pindex_t = ulong_long
147
+ rbx.platform.typedef.vm_size_t = uint
148
+ rbx.platform.typedef.__fd_mask = ulong
149
+ rbx.platform.typedef.fd_mask = ulong
150
+ rbx.platform.typedef.sa_family_t = uchar
151
+ rbx.platform.typedef.socklen_t = uint
152
+
@@ -0,0 +1,152 @@
1
+ rbx.platform.typedef.__int8_t = char
2
+ rbx.platform.typedef.__uint8_t = uchar
3
+ rbx.platform.typedef.__int16_t = short
4
+ rbx.platform.typedef.__uint16_t = ushort
5
+ rbx.platform.typedef.__int32_t = int
6
+ rbx.platform.typedef.__uint32_t = uint
7
+ rbx.platform.typedef.__int64_t = long_long
8
+ rbx.platform.typedef.__uint64_t = ulong_long
9
+ rbx.platform.typedef.__clock_t = ulong
10
+ rbx.platform.typedef.__cpumask_t = uint
11
+ rbx.platform.typedef.__critical_t = int
12
+ rbx.platform.typedef.__intfptr_t = int
13
+ rbx.platform.typedef.__intmax_t = long_long
14
+ rbx.platform.typedef.__intptr_t = int
15
+ rbx.platform.typedef.__int_fast8_t = int
16
+ rbx.platform.typedef.__int_fast16_t = int
17
+ rbx.platform.typedef.__int_fast32_t = int
18
+ rbx.platform.typedef.__int_fast64_t = long_long
19
+ rbx.platform.typedef.__int_least8_t = char
20
+ rbx.platform.typedef.__int_least16_t = short
21
+ rbx.platform.typedef.__int_least32_t = int
22
+ rbx.platform.typedef.__int_least64_t = long_long
23
+ rbx.platform.typedef.__ptrdiff_t = int
24
+ rbx.platform.typedef.__register_t = int
25
+ rbx.platform.typedef.__segsz_t = int
26
+ rbx.platform.typedef.__size_t = uint
27
+ rbx.platform.typedef.__ssize_t = int
28
+ rbx.platform.typedef.__time_t = int
29
+ rbx.platform.typedef.__uintfptr_t = uint
30
+ rbx.platform.typedef.__uintmax_t = ulong_long
31
+ rbx.platform.typedef.__uintptr_t = uint
32
+ rbx.platform.typedef.__uint_fast8_t = uint
33
+ rbx.platform.typedef.__uint_fast16_t = uint
34
+ rbx.platform.typedef.__uint_fast32_t = uint
35
+ rbx.platform.typedef.__uint_fast64_t = ulong_long
36
+ rbx.platform.typedef.__uint_least8_t = uchar
37
+ rbx.platform.typedef.__uint_least16_t = ushort
38
+ rbx.platform.typedef.__uint_least32_t = uint
39
+ rbx.platform.typedef.__uint_least64_t = ulong_long
40
+ rbx.platform.typedef.__u_register_t = uint
41
+ rbx.platform.typedef.__vm_offset_t = uint
42
+ rbx.platform.typedef.__vm_ooffset_t = long_long
43
+ rbx.platform.typedef.__vm_paddr_t = uint
44
+ rbx.platform.typedef.__vm_pindex_t = ulong_long
45
+ rbx.platform.typedef.__vm_size_t = uint
46
+ rbx.platform.typedef.__blksize_t = uint
47
+ rbx.platform.typedef.__blkcnt_t = long_long
48
+ rbx.platform.typedef.__clockid_t = int
49
+ rbx.platform.typedef.__fflags_t = uint
50
+ rbx.platform.typedef.__fsblkcnt_t = ulong_long
51
+ rbx.platform.typedef.__fsfilcnt_t = ulong_long
52
+ rbx.platform.typedef.__gid_t = uint
53
+ rbx.platform.typedef.__id_t = long_long
54
+ rbx.platform.typedef.__ino_t = ulong_long
55
+ rbx.platform.typedef.__key_t = long
56
+ rbx.platform.typedef.__lwpid_t = int
57
+ rbx.platform.typedef.__mode_t = ushort
58
+ rbx.platform.typedef.__accmode_t = int
59
+ rbx.platform.typedef.__nl_item = int
60
+ rbx.platform.typedef.__nlink_t = ulong_long
61
+ rbx.platform.typedef.__off_t = long_long
62
+ rbx.platform.typedef.__pid_t = int
63
+ rbx.platform.typedef.__rlim_t = long_long
64
+ rbx.platform.typedef.__sa_family_t = uchar
65
+ rbx.platform.typedef.__socklen_t = uint
66
+ rbx.platform.typedef.__suseconds_t = long
67
+ rbx.platform.typedef.__uid_t = uint
68
+ rbx.platform.typedef.__useconds_t = uint
69
+ rbx.platform.typedef.__cpuwhich_t = int
70
+ rbx.platform.typedef.__cpulevel_t = int
71
+ rbx.platform.typedef.__cpusetid_t = int
72
+ rbx.platform.typedef.__ct_rune_t = int
73
+ rbx.platform.typedef.__rune_t = int
74
+ rbx.platform.typedef.__wchar_t = int
75
+ rbx.platform.typedef.__wint_t = int
76
+ rbx.platform.typedef.__wint_t = int
77
+ rbx.platform.typedef.__dev_t = ulong_long
78
+ rbx.platform.typedef.__fixpt_t = uint
79
+ rbx.platform.typedef.pthread_key_t = int
80
+ rbx.platform.typedef.*) = pointer
81
+ rbx.platform.typedef.u_char = uchar
82
+ rbx.platform.typedef.u_short = ushort
83
+ rbx.platform.typedef.u_int = uint
84
+ rbx.platform.typedef.u_long = ulong
85
+ rbx.platform.typedef.ushort = ushort
86
+ rbx.platform.typedef.uint = uint
87
+ rbx.platform.typedef.int8_t = char
88
+ rbx.platform.typedef.int16_t = short
89
+ rbx.platform.typedef.int32_t = int
90
+ rbx.platform.typedef.int64_t = long_long
91
+ rbx.platform.typedef.uint8_t = uchar
92
+ rbx.platform.typedef.uint16_t = ushort
93
+ rbx.platform.typedef.uint32_t = uint
94
+ rbx.platform.typedef.uint64_t = ulong_long
95
+ rbx.platform.typedef.intptr_t = int
96
+ rbx.platform.typedef.uintptr_t = uint
97
+ rbx.platform.typedef.u_int8_t = uchar
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_quad_t = ulong_long
102
+ rbx.platform.typedef.quad_t = long_long
103
+ rbx.platform.typedef.qaddr_t = pointer
104
+ rbx.platform.typedef.caddr_t = string
105
+ rbx.platform.typedef.c_caddr_t = pointer
106
+ rbx.platform.typedef.blksize_t = uint
107
+ rbx.platform.typedef.cpuwhich_t = int
108
+ rbx.platform.typedef.cpulevel_t = int
109
+ rbx.platform.typedef.cpusetid_t = int
110
+ rbx.platform.typedef.blkcnt_t = long_long
111
+ rbx.platform.typedef.clock_t = ulong
112
+ rbx.platform.typedef.clockid_t = int
113
+ rbx.platform.typedef.cpumask_t = uint
114
+ rbx.platform.typedef.critical_t = int
115
+ rbx.platform.typedef.daddr_t = long_long
116
+ rbx.platform.typedef.dev_t = ulong_long
117
+ rbx.platform.typedef.fflags_t = uint
118
+ rbx.platform.typedef.fixpt_t = uint
119
+ rbx.platform.typedef.fsblkcnt_t = ulong_long
120
+ rbx.platform.typedef.fsfilcnt_t = ulong_long
121
+ rbx.platform.typedef.gid_t = uint
122
+ rbx.platform.typedef.in_addr_t = uint
123
+ rbx.platform.typedef.in_port_t = ushort
124
+ rbx.platform.typedef.id_t = long_long
125
+ rbx.platform.typedef.ino_t = ulong_long
126
+ rbx.platform.typedef.key_t = long
127
+ rbx.platform.typedef.lwpid_t = int
128
+ rbx.platform.typedef.mode_t = ushort
129
+ rbx.platform.typedef.accmode_t = int
130
+ rbx.platform.typedef.nlink_t = ulong_long
131
+ rbx.platform.typedef.off_t = long_long
132
+ rbx.platform.typedef.pid_t = int
133
+ rbx.platform.typedef.register_t = int
134
+ rbx.platform.typedef.rlim_t = long_long
135
+ rbx.platform.typedef.segsz_t = int
136
+ rbx.platform.typedef.size_t = uint
137
+ rbx.platform.typedef.ssize_t = int
138
+ rbx.platform.typedef.suseconds_t = long
139
+ rbx.platform.typedef.time_t = int
140
+ rbx.platform.typedef.u_register_t = uint
141
+ rbx.platform.typedef.uid_t = uint
142
+ rbx.platform.typedef.useconds_t = uint
143
+ rbx.platform.typedef.vm_offset_t = uint
144
+ rbx.platform.typedef.vm_ooffset_t = long_long
145
+ rbx.platform.typedef.vm_paddr_t = uint
146
+ rbx.platform.typedef.vm_pindex_t = ulong_long
147
+ rbx.platform.typedef.vm_size_t = uint
148
+ rbx.platform.typedef.__fd_mask = ulong
149
+ rbx.platform.typedef.fd_mask = ulong
150
+ rbx.platform.typedef.sa_family_t = uchar
151
+ rbx.platform.typedef.socklen_t = uint
152
+
@@ -25,7 +25,7 @@ rbx.platform.typedef.__register_t = int
25
25
  rbx.platform.typedef.__segsz_t = int
26
26
  rbx.platform.typedef.__size_t = uint
27
27
  rbx.platform.typedef.__ssize_t = int
28
- rbx.platform.typedef.__time_t = int
28
+ rbx.platform.typedef.__time_t = long
29
29
  rbx.platform.typedef.__uintfptr_t = uint
30
30
  rbx.platform.typedef.__uintmax_t = ulong_long
31
31
  rbx.platform.typedef.__uintptr_t = uint
@@ -136,7 +136,7 @@ rbx.platform.typedef.segsz_t = int
136
136
  rbx.platform.typedef.size_t = uint
137
137
  rbx.platform.typedef.ssize_t = int
138
138
  rbx.platform.typedef.suseconds_t = long
139
- rbx.platform.typedef.time_t = int
139
+ rbx.platform.typedef.time_t = long
140
140
  rbx.platform.typedef.u_register_t = uint
141
141
  rbx.platform.typedef.uid_t = uint
142
142
  rbx.platform.typedef.useconds_t = uint
@@ -0,0 +1,152 @@
1
+ rbx.platform.typedef.__int8_t = char
2
+ rbx.platform.typedef.__uint8_t = uchar
3
+ rbx.platform.typedef.__int16_t = short
4
+ rbx.platform.typedef.__uint16_t = ushort
5
+ rbx.platform.typedef.__int32_t = int
6
+ rbx.platform.typedef.__uint32_t = uint
7
+ rbx.platform.typedef.__int64_t = long_long
8
+ rbx.platform.typedef.__uint64_t = ulong_long
9
+ rbx.platform.typedef.__clock_t = ulong
10
+ rbx.platform.typedef.__cpumask_t = uint
11
+ rbx.platform.typedef.__critical_t = int
12
+ rbx.platform.typedef.__intfptr_t = int
13
+ rbx.platform.typedef.__intmax_t = long_long
14
+ rbx.platform.typedef.__intptr_t = int
15
+ rbx.platform.typedef.__int_fast8_t = int
16
+ rbx.platform.typedef.__int_fast16_t = int
17
+ rbx.platform.typedef.__int_fast32_t = int
18
+ rbx.platform.typedef.__int_fast64_t = long_long
19
+ rbx.platform.typedef.__int_least8_t = char
20
+ rbx.platform.typedef.__int_least16_t = short
21
+ rbx.platform.typedef.__int_least32_t = int
22
+ rbx.platform.typedef.__int_least64_t = long_long
23
+ rbx.platform.typedef.__ptrdiff_t = int
24
+ rbx.platform.typedef.__register_t = int
25
+ rbx.platform.typedef.__segsz_t = int
26
+ rbx.platform.typedef.__size_t = uint
27
+ rbx.platform.typedef.__ssize_t = int
28
+ rbx.platform.typedef.__time_t = int
29
+ rbx.platform.typedef.__uintfptr_t = uint
30
+ rbx.platform.typedef.__uintmax_t = ulong_long
31
+ rbx.platform.typedef.__uintptr_t = uint
32
+ rbx.platform.typedef.__uint_fast8_t = uint
33
+ rbx.platform.typedef.__uint_fast16_t = uint
34
+ rbx.platform.typedef.__uint_fast32_t = uint
35
+ rbx.platform.typedef.__uint_fast64_t = ulong_long
36
+ rbx.platform.typedef.__uint_least8_t = uchar
37
+ rbx.platform.typedef.__uint_least16_t = ushort
38
+ rbx.platform.typedef.__uint_least32_t = uint
39
+ rbx.platform.typedef.__uint_least64_t = ulong_long
40
+ rbx.platform.typedef.__u_register_t = uint
41
+ rbx.platform.typedef.__vm_offset_t = uint
42
+ rbx.platform.typedef.__vm_ooffset_t = long_long
43
+ rbx.platform.typedef.__vm_paddr_t = uint
44
+ rbx.platform.typedef.__vm_pindex_t = ulong_long
45
+ rbx.platform.typedef.__vm_size_t = uint
46
+ rbx.platform.typedef.__blksize_t = uint
47
+ rbx.platform.typedef.__blkcnt_t = long_long
48
+ rbx.platform.typedef.__clockid_t = int
49
+ rbx.platform.typedef.__fflags_t = uint
50
+ rbx.platform.typedef.__fsblkcnt_t = ulong_long
51
+ rbx.platform.typedef.__fsfilcnt_t = ulong_long
52
+ rbx.platform.typedef.__gid_t = uint
53
+ rbx.platform.typedef.__id_t = long_long
54
+ rbx.platform.typedef.__ino_t = ulong_long
55
+ rbx.platform.typedef.__key_t = long
56
+ rbx.platform.typedef.__lwpid_t = int
57
+ rbx.platform.typedef.__mode_t = ushort
58
+ rbx.platform.typedef.__accmode_t = int
59
+ rbx.platform.typedef.__nl_item = int
60
+ rbx.platform.typedef.__nlink_t = ulong_long
61
+ rbx.platform.typedef.__off_t = long_long
62
+ rbx.platform.typedef.__pid_t = int
63
+ rbx.platform.typedef.__rlim_t = long_long
64
+ rbx.platform.typedef.__sa_family_t = uchar
65
+ rbx.platform.typedef.__socklen_t = uint
66
+ rbx.platform.typedef.__suseconds_t = long
67
+ rbx.platform.typedef.__uid_t = uint
68
+ rbx.platform.typedef.__useconds_t = uint
69
+ rbx.platform.typedef.__cpuwhich_t = int
70
+ rbx.platform.typedef.__cpulevel_t = int
71
+ rbx.platform.typedef.__cpusetid_t = int
72
+ rbx.platform.typedef.__ct_rune_t = int
73
+ rbx.platform.typedef.__rune_t = int
74
+ rbx.platform.typedef.__wchar_t = int
75
+ rbx.platform.typedef.__wint_t = int
76
+ rbx.platform.typedef.__wint_t = int
77
+ rbx.platform.typedef.__dev_t = ulong_long
78
+ rbx.platform.typedef.__fixpt_t = uint
79
+ rbx.platform.typedef.pthread_key_t = int
80
+ rbx.platform.typedef.*) = pointer
81
+ rbx.platform.typedef.u_char = uchar
82
+ rbx.platform.typedef.u_short = ushort
83
+ rbx.platform.typedef.u_int = uint
84
+ rbx.platform.typedef.u_long = ulong
85
+ rbx.platform.typedef.ushort = ushort
86
+ rbx.platform.typedef.uint = uint
87
+ rbx.platform.typedef.int8_t = char
88
+ rbx.platform.typedef.int16_t = short
89
+ rbx.platform.typedef.int32_t = int
90
+ rbx.platform.typedef.int64_t = long_long
91
+ rbx.platform.typedef.uint8_t = uchar
92
+ rbx.platform.typedef.uint16_t = ushort
93
+ rbx.platform.typedef.uint32_t = uint
94
+ rbx.platform.typedef.uint64_t = ulong_long
95
+ rbx.platform.typedef.intptr_t = int
96
+ rbx.platform.typedef.uintptr_t = uint
97
+ rbx.platform.typedef.u_int8_t = uchar
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_quad_t = ulong_long
102
+ rbx.platform.typedef.quad_t = long_long
103
+ rbx.platform.typedef.qaddr_t = pointer
104
+ rbx.platform.typedef.caddr_t = string
105
+ rbx.platform.typedef.c_caddr_t = pointer
106
+ rbx.platform.typedef.blksize_t = uint
107
+ rbx.platform.typedef.cpuwhich_t = int
108
+ rbx.platform.typedef.cpulevel_t = int
109
+ rbx.platform.typedef.cpusetid_t = int
110
+ rbx.platform.typedef.blkcnt_t = long_long
111
+ rbx.platform.typedef.clock_t = ulong
112
+ rbx.platform.typedef.clockid_t = int
113
+ rbx.platform.typedef.cpumask_t = uint
114
+ rbx.platform.typedef.critical_t = int
115
+ rbx.platform.typedef.daddr_t = long_long
116
+ rbx.platform.typedef.dev_t = ulong_long
117
+ rbx.platform.typedef.fflags_t = uint
118
+ rbx.platform.typedef.fixpt_t = uint
119
+ rbx.platform.typedef.fsblkcnt_t = ulong_long
120
+ rbx.platform.typedef.fsfilcnt_t = ulong_long
121
+ rbx.platform.typedef.gid_t = uint
122
+ rbx.platform.typedef.in_addr_t = uint
123
+ rbx.platform.typedef.in_port_t = ushort
124
+ rbx.platform.typedef.id_t = long_long
125
+ rbx.platform.typedef.ino_t = ulong_long
126
+ rbx.platform.typedef.key_t = long
127
+ rbx.platform.typedef.lwpid_t = int
128
+ rbx.platform.typedef.mode_t = ushort
129
+ rbx.platform.typedef.accmode_t = int
130
+ rbx.platform.typedef.nlink_t = ulong_long
131
+ rbx.platform.typedef.off_t = long_long
132
+ rbx.platform.typedef.pid_t = int
133
+ rbx.platform.typedef.register_t = int
134
+ rbx.platform.typedef.rlim_t = long_long
135
+ rbx.platform.typedef.segsz_t = int
136
+ rbx.platform.typedef.size_t = uint
137
+ rbx.platform.typedef.ssize_t = int
138
+ rbx.platform.typedef.suseconds_t = long
139
+ rbx.platform.typedef.time_t = int
140
+ rbx.platform.typedef.u_register_t = uint
141
+ rbx.platform.typedef.uid_t = uint
142
+ rbx.platform.typedef.useconds_t = uint
143
+ rbx.platform.typedef.vm_offset_t = uint
144
+ rbx.platform.typedef.vm_ooffset_t = long_long
145
+ rbx.platform.typedef.vm_paddr_t = uint
146
+ rbx.platform.typedef.vm_pindex_t = ulong_long
147
+ rbx.platform.typedef.vm_size_t = uint
148
+ rbx.platform.typedef.__fd_mask = ulong
149
+ rbx.platform.typedef.fd_mask = ulong
150
+ rbx.platform.typedef.sa_family_t = uchar
151
+ rbx.platform.typedef.socklen_t = uint
152
+
@@ -26,7 +26,7 @@ rbx.platform.typedef.__intptr_t = long
26
26
  rbx.platform.typedef.__uintptr_t = ulong
27
27
  rbx.platform.typedef.__intmax_t = long_long
28
28
  rbx.platform.typedef.__uintmax_t = ulong_long
29
- rbx.platform.typedef.__register_t = int
29
+ rbx.platform.typedef.__register_t = long_long
30
30
  rbx.platform.typedef.__vaddr_t = ulong
31
31
  rbx.platform.typedef.__paddr_t = ulong
32
32
  rbx.platform.typedef.__vsize_t = ulong
@@ -37,7 +37,7 @@ rbx.platform.typedef.__off_t = long_long
37
37
  rbx.platform.typedef.__ptrdiff_t = long
38
38
  rbx.platform.typedef.__size_t = ulong
39
39
  rbx.platform.typedef.__ssize_t = long
40
- rbx.platform.typedef.__time_t = int
40
+ rbx.platform.typedef.__time_t = long
41
41
  rbx.platform.typedef.__timer_t = int
42
42
  rbx.platform.typedef.__wchar_t = int
43
43
  rbx.platform.typedef.__wint_t = int
@@ -63,7 +63,7 @@ rbx.platform.typedef.__socklen_t = uint
63
63
  rbx.platform.typedef.__swblk_t = int
64
64
  rbx.platform.typedef.__uid_t = uint
65
65
  rbx.platform.typedef.__useconds_t = uint
66
- rbx.platform.typedef.__suseconds_t = int
66
+ rbx.platform.typedef.__suseconds_t = long
67
67
  rbx.platform.typedef.u_char = uchar
68
68
  rbx.platform.typedef.u_short = ushort
69
69
  rbx.platform.typedef.u_int = uint
@@ -73,7 +73,7 @@ rbx.platform.typedef.ushort = ushort
73
73
  rbx.platform.typedef.uint = uint
74
74
  rbx.platform.typedef.ulong = ulong
75
75
  rbx.platform.typedef.cpuid_t = ulong
76
- rbx.platform.typedef.register_t = int
76
+ rbx.platform.typedef.register_t = long_long
77
77
  rbx.platform.typedef.int8_t = char
78
78
  rbx.platform.typedef.uint8_t = uchar
79
79
  rbx.platform.typedef.int16_t = short
@@ -113,7 +113,7 @@ rbx.platform.typedef.segsz_t = int
113
113
  rbx.platform.typedef.swblk_t = int
114
114
  rbx.platform.typedef.uid_t = uint
115
115
  rbx.platform.typedef.useconds_t = uint
116
- rbx.platform.typedef.suseconds_t = int
116
+ rbx.platform.typedef.suseconds_t = long
117
117
  rbx.platform.typedef.in_addr_t = uint
118
118
  rbx.platform.typedef.in_port_t = ushort
119
119
  rbx.platform.typedef.sa_family_t = uchar
@@ -122,7 +122,7 @@ rbx.platform.typedef.clock_t = int
122
122
  rbx.platform.typedef.clockid_t = int
123
123
  rbx.platform.typedef.size_t = ulong
124
124
  rbx.platform.typedef.ssize_t = long
125
- rbx.platform.typedef.time_t = int
125
+ rbx.platform.typedef.time_t = long
126
126
  rbx.platform.typedef.timer_t = int
127
127
  rbx.platform.typedef.off_t = long_long
128
128
  rbx.platform.typedef.__fd_mask = int
@@ -0,0 +1,128 @@
1
+ rbx.platform.typedef.__int8_t = char
2
+ rbx.platform.typedef.__uint8_t = uchar
3
+ rbx.platform.typedef.__int16_t = short
4
+ rbx.platform.typedef.__uint16_t = ushort
5
+ rbx.platform.typedef.__int32_t = int
6
+ rbx.platform.typedef.__uint32_t = uint
7
+ rbx.platform.typedef.__int64_t = long_long
8
+ rbx.platform.typedef.__uint64_t = ulong_long
9
+ rbx.platform.typedef.__int_least8_t = char
10
+ rbx.platform.typedef.__uint_least8_t = uchar
11
+ rbx.platform.typedef.__int_least16_t = short
12
+ rbx.platform.typedef.__uint_least16_t = ushort
13
+ rbx.platform.typedef.__int_least32_t = int
14
+ rbx.platform.typedef.__uint_least32_t = uint
15
+ rbx.platform.typedef.__int_least64_t = long_long
16
+ rbx.platform.typedef.__uint_least64_t = ulong_long
17
+ rbx.platform.typedef.__int_fast8_t = int
18
+ rbx.platform.typedef.__uint_fast8_t = uint
19
+ rbx.platform.typedef.__int_fast16_t = int
20
+ rbx.platform.typedef.__uint_fast16_t = uint
21
+ rbx.platform.typedef.__int_fast32_t = int
22
+ rbx.platform.typedef.__uint_fast32_t = uint
23
+ rbx.platform.typedef.__int_fast64_t = long_long
24
+ rbx.platform.typedef.__uint_fast64_t = ulong_long
25
+ rbx.platform.typedef.__intptr_t = long
26
+ rbx.platform.typedef.__uintptr_t = ulong
27
+ rbx.platform.typedef.__intmax_t = long_long
28
+ rbx.platform.typedef.__uintmax_t = ulong_long
29
+ rbx.platform.typedef.__register_t = long_long
30
+ rbx.platform.typedef.__vaddr_t = ulong
31
+ rbx.platform.typedef.__paddr_t = ulong
32
+ rbx.platform.typedef.__vsize_t = ulong
33
+ rbx.platform.typedef.__psize_t = ulong
34
+ rbx.platform.typedef.__clock_t = int
35
+ rbx.platform.typedef.__clockid_t = int
36
+ rbx.platform.typedef.__off_t = long_long
37
+ rbx.platform.typedef.__ptrdiff_t = long
38
+ rbx.platform.typedef.__size_t = ulong
39
+ rbx.platform.typedef.__ssize_t = long
40
+ rbx.platform.typedef.__time_t = int
41
+ rbx.platform.typedef.__timer_t = int
42
+ rbx.platform.typedef.__wchar_t = int
43
+ rbx.platform.typedef.__wint_t = int
44
+ rbx.platform.typedef.__rune_t = int
45
+ rbx.platform.typedef.__wctrans_t = pointer
46
+ rbx.platform.typedef.__wctype_t = pointer
47
+ rbx.platform.typedef.__cpuid_t = ulong
48
+ rbx.platform.typedef.__dev_t = ulong_long
49
+ rbx.platform.typedef.__fixpt_t = uint
50
+ rbx.platform.typedef.__gid_t = uint
51
+ rbx.platform.typedef.__id_t = uint
52
+ rbx.platform.typedef.__in_addr_t = uint
53
+ rbx.platform.typedef.__in_port_t = ushort
54
+ rbx.platform.typedef.__ino_t = ulong_long
55
+ rbx.platform.typedef.__key_t = long
56
+ rbx.platform.typedef.__mode_t = uint
57
+ rbx.platform.typedef.__nlink_t = ulong_long
58
+ rbx.platform.typedef.__pid_t = int
59
+ rbx.platform.typedef.__rlim_t = ulong_long
60
+ rbx.platform.typedef.__sa_family_t = uchar
61
+ rbx.platform.typedef.__segsz_t = int
62
+ rbx.platform.typedef.__socklen_t = uint
63
+ rbx.platform.typedef.__swblk_t = int
64
+ rbx.platform.typedef.__uid_t = uint
65
+ rbx.platform.typedef.__useconds_t = uint
66
+ rbx.platform.typedef.__suseconds_t = int
67
+ rbx.platform.typedef.u_char = uchar
68
+ rbx.platform.typedef.u_short = ushort
69
+ rbx.platform.typedef.u_int = uint
70
+ rbx.platform.typedef.u_long = ulong
71
+ rbx.platform.typedef.unchar = uchar
72
+ rbx.platform.typedef.ushort = ushort
73
+ rbx.platform.typedef.uint = uint
74
+ rbx.platform.typedef.ulong = ulong
75
+ rbx.platform.typedef.cpuid_t = ulong
76
+ rbx.platform.typedef.register_t = long_long
77
+ rbx.platform.typedef.int8_t = char
78
+ rbx.platform.typedef.uint8_t = uchar
79
+ rbx.platform.typedef.int16_t = short
80
+ rbx.platform.typedef.uint16_t = ushort
81
+ rbx.platform.typedef.int32_t = int
82
+ rbx.platform.typedef.uint32_t = uint
83
+ rbx.platform.typedef.int64_t = long_long
84
+ rbx.platform.typedef.uint64_t = ulong_long
85
+ rbx.platform.typedef.intptr_t = long
86
+ rbx.platform.typedef.uintptr_t = ulong
87
+ rbx.platform.typedef.u_int8_t = uchar
88
+ rbx.platform.typedef.u_int16_t = ushort
89
+ rbx.platform.typedef.u_int32_t = uint
90
+ rbx.platform.typedef.u_int64_t = ulong_long
91
+ rbx.platform.typedef.quad_t = long_long
92
+ rbx.platform.typedef.u_quad_t = ulong_long
93
+ rbx.platform.typedef.qaddr_t = pointer
94
+ rbx.platform.typedef.vaddr_t = ulong
95
+ rbx.platform.typedef.paddr_t = ulong
96
+ rbx.platform.typedef.vsize_t = ulong
97
+ rbx.platform.typedef.psize_t = ulong
98
+ rbx.platform.typedef.caddr_t = string
99
+ rbx.platform.typedef.daddr_t = int
100
+ rbx.platform.typedef.daddr32_t = int
101
+ rbx.platform.typedef.daddr64_t = long_long
102
+ rbx.platform.typedef.dev_t = ulong_long
103
+ rbx.platform.typedef.fixpt_t = uint
104
+ rbx.platform.typedef.gid_t = uint
105
+ rbx.platform.typedef.id_t = uint
106
+ rbx.platform.typedef.ino_t = ulong_long
107
+ rbx.platform.typedef.key_t = long
108
+ rbx.platform.typedef.mode_t = uint
109
+ rbx.platform.typedef.nlink_t = ulong_long
110
+ rbx.platform.typedef.pid_t = int
111
+ rbx.platform.typedef.rlim_t = ulong_long
112
+ rbx.platform.typedef.segsz_t = int
113
+ rbx.platform.typedef.swblk_t = int
114
+ rbx.platform.typedef.uid_t = uint
115
+ rbx.platform.typedef.useconds_t = uint
116
+ rbx.platform.typedef.suseconds_t = int
117
+ rbx.platform.typedef.in_addr_t = uint
118
+ rbx.platform.typedef.in_port_t = ushort
119
+ rbx.platform.typedef.sa_family_t = uchar
120
+ rbx.platform.typedef.socklen_t = uint
121
+ rbx.platform.typedef.clock_t = int
122
+ rbx.platform.typedef.clockid_t = int
123
+ rbx.platform.typedef.size_t = ulong
124
+ rbx.platform.typedef.ssize_t = long
125
+ rbx.platform.typedef.time_t = int
126
+ rbx.platform.typedef.timer_t = int
127
+ rbx.platform.typedef.off_t = long_long
128
+ rbx.platform.typedef.__fd_mask = int
@@ -103,7 +103,7 @@ module FFI
103
103
  # @return [Array]
104
104
  # Read an array of +type+ of length +length+.
105
105
  # @example
106
- # ptr.read_array_of_type(TYPE_UINT8, :get_uint8, 4) # -> [1, 2, 3, 4]
106
+ # ptr.read_array_of_type(TYPE_UINT8, :read_uint8, 4) # -> [1, 2, 3, 4]
107
107
  def read_array_of_type(type, reader, length)
108
108
  ary = []
109
109
  size = FFI.type_size(type)
@@ -124,10 +124,9 @@ module FFI
124
124
  # ptr.write_array_of_type(TYPE_UINT8, :put_uint8, [1, 2, 3 ,4])
125
125
  def write_array_of_type(type, writer, ary)
126
126
  size = FFI.type_size(type)
127
- tmp = self
128
- ary.each_with_index {|i, j|
129
- tmp.send(writer, i)
130
- tmp += size unless j == ary.length-1 # avoid OOB
127
+ ary.each_with_index { |val, i|
128
+ break unless i < self.size
129
+ self.send(writer, i * size, val)
131
130
  }
132
131
  self
133
132
  end
@@ -1,3 +1,3 @@
1
1
  module FFI
2
- VERSION = '1.9.25'
2
+ VERSION = '1.10.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ffi
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.25
4
+ version: 1.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wayne Meissner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-06-03 00:00:00.000000000 Z
11
+ date: 2019-01-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -565,11 +565,16 @@ files:
565
565
  - lib/ffi/managedstruct.rb
566
566
  - lib/ffi/memorypointer.rb
567
567
  - lib/ffi/platform.rb
568
+ - lib/ffi/platform/aarch64-freebsd/types.conf
569
+ - lib/ffi/platform/aarch64-freebsd12/types.conf
568
570
  - lib/ffi/platform/aarch64-linux/types.conf
571
+ - lib/ffi/platform/arm-freebsd/types.conf
572
+ - lib/ffi/platform/arm-freebsd12/types.conf
569
573
  - lib/ffi/platform/arm-linux/types.conf
570
574
  - lib/ffi/platform/i386-cygwin/types.conf
571
575
  - lib/ffi/platform/i386-darwin/types.conf
572
576
  - lib/ffi/platform/i386-freebsd/types.conf
577
+ - lib/ffi/platform/i386-freebsd12/types.conf
573
578
  - lib/ffi/platform/i386-gnu/types.conf
574
579
  - lib/ffi/platform/i386-linux/types.conf
575
580
  - lib/ffi/platform/i386-netbsd/types.conf
@@ -598,6 +603,7 @@ files:
598
603
  - lib/ffi/platform/x86_64-cygwin/types.conf
599
604
  - lib/ffi/platform/x86_64-darwin/types.conf
600
605
  - lib/ffi/platform/x86_64-freebsd/types.conf
606
+ - lib/ffi/platform/x86_64-freebsd12/types.conf
601
607
  - lib/ffi/platform/x86_64-linux/types.conf
602
608
  - lib/ffi/platform/x86_64-netbsd/types.conf
603
609
  - lib/ffi/platform/x86_64-openbsd/types.conf
@@ -645,7 +651,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
645
651
  version: '0'
646
652
  requirements: []
647
653
  rubyforge_project:
648
- rubygems_version: 2.7.3
654
+ rubygems_version: 2.7.8
649
655
  signing_key:
650
656
  specification_version: 4
651
657
  summary: Ruby FFI