ffi 1.11.3-java → 1.14.0-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +93 -0
  3. data/Gemfile +17 -0
  4. data/LICENSE.SPECS +22 -0
  5. data/README.md +20 -3
  6. data/Rakefile +24 -43
  7. data/ffi.gemspec +43 -0
  8. data/lib/ffi.rb +28 -0
  9. data/lib/ffi/abstract_memory.rb +44 -0
  10. data/lib/ffi/autopointer.rb +203 -0
  11. data/lib/ffi/buffer.rb +4 -0
  12. data/lib/ffi/callback.rb +4 -0
  13. data/lib/ffi/data_converter.rb +67 -0
  14. data/lib/ffi/enum.rb +296 -0
  15. data/lib/ffi/errno.rb +43 -0
  16. data/lib/ffi/ffi.rb +47 -0
  17. data/lib/ffi/io.rb +62 -0
  18. data/lib/ffi/library.rb +592 -0
  19. data/lib/ffi/managedstruct.rb +84 -0
  20. data/lib/ffi/memorypointer.rb +1 -0
  21. data/lib/ffi/platform.rb +188 -0
  22. data/lib/ffi/platform/aarch64-darwin/types.conf +130 -0
  23. data/lib/ffi/platform/aarch64-freebsd/types.conf +128 -0
  24. data/lib/ffi/platform/aarch64-freebsd12/types.conf +128 -0
  25. data/lib/ffi/platform/aarch64-linux/types.conf +104 -0
  26. data/lib/ffi/platform/aarch64-openbsd/types.conf +134 -0
  27. data/lib/ffi/platform/arm-freebsd/types.conf +152 -0
  28. data/lib/ffi/platform/arm-freebsd12/types.conf +152 -0
  29. data/lib/ffi/platform/arm-linux/types.conf +132 -0
  30. data/lib/ffi/platform/i386-cygwin/types.conf +3 -0
  31. data/lib/ffi/platform/i386-darwin/types.conf +100 -0
  32. data/lib/ffi/platform/i386-freebsd/types.conf +152 -0
  33. data/lib/ffi/platform/i386-freebsd12/types.conf +152 -0
  34. data/lib/ffi/platform/i386-gnu/types.conf +107 -0
  35. data/lib/ffi/platform/i386-linux/types.conf +103 -0
  36. data/lib/ffi/platform/i386-netbsd/types.conf +126 -0
  37. data/lib/ffi/platform/i386-openbsd/types.conf +128 -0
  38. data/lib/ffi/platform/i386-solaris/types.conf +122 -0
  39. data/lib/ffi/platform/i386-windows/types.conf +52 -0
  40. data/lib/ffi/platform/ia64-linux/types.conf +104 -0
  41. data/lib/ffi/platform/mips-linux/types.conf +102 -0
  42. data/lib/ffi/platform/mips64-linux/types.conf +104 -0
  43. data/lib/ffi/platform/mips64el-linux/types.conf +104 -0
  44. data/lib/ffi/platform/mipsel-linux/types.conf +102 -0
  45. data/lib/ffi/platform/mipsisa32r6-linux/types.conf +102 -0
  46. data/lib/ffi/platform/mipsisa32r6el-linux/types.conf +102 -0
  47. data/lib/ffi/platform/mipsisa64r6-linux/types.conf +104 -0
  48. data/lib/ffi/platform/mipsisa64r6el-linux/types.conf +104 -0
  49. data/lib/ffi/platform/powerpc-aix/types.conf +180 -0
  50. data/lib/ffi/platform/powerpc-darwin/types.conf +100 -0
  51. data/lib/ffi/platform/powerpc-linux/types.conf +130 -0
  52. data/lib/ffi/platform/powerpc-openbsd/types.conf +156 -0
  53. data/lib/ffi/platform/powerpc64-linux/types.conf +104 -0
  54. data/lib/ffi/platform/s390-linux/types.conf +102 -0
  55. data/lib/ffi/platform/s390x-linux/types.conf +102 -0
  56. data/lib/ffi/platform/sparc-linux/types.conf +102 -0
  57. data/lib/ffi/platform/sparc-solaris/types.conf +128 -0
  58. data/lib/ffi/platform/sparc64-linux/types.conf +102 -0
  59. data/lib/ffi/platform/sparcv9-openbsd/types.conf +156 -0
  60. data/lib/ffi/platform/sparcv9-solaris/types.conf +128 -0
  61. data/lib/ffi/platform/x86_64-cygwin/types.conf +3 -0
  62. data/lib/ffi/platform/x86_64-darwin/types.conf +130 -0
  63. data/lib/ffi/platform/x86_64-dragonflybsd/types.conf +130 -0
  64. data/lib/ffi/platform/x86_64-freebsd/types.conf +128 -0
  65. data/lib/ffi/platform/x86_64-freebsd12/types.conf +158 -0
  66. data/lib/ffi/platform/x86_64-haiku/types.conf +117 -0
  67. data/lib/ffi/platform/x86_64-linux/types.conf +132 -0
  68. data/lib/ffi/platform/x86_64-msys/types.conf +119 -0
  69. data/lib/ffi/platform/x86_64-netbsd/types.conf +128 -0
  70. data/lib/ffi/platform/x86_64-openbsd/types.conf +134 -0
  71. data/lib/ffi/platform/x86_64-solaris/types.conf +122 -0
  72. data/lib/ffi/platform/x86_64-windows/types.conf +52 -0
  73. data/lib/ffi/pointer.rb +181 -0
  74. data/lib/ffi/struct.rb +316 -0
  75. data/lib/ffi/struct_by_reference.rb +72 -0
  76. data/lib/ffi/struct_layout.rb +96 -0
  77. data/lib/ffi/struct_layout_builder.rb +227 -0
  78. data/lib/ffi/tools/const_generator.rb +230 -0
  79. data/lib/ffi/tools/generator.rb +105 -0
  80. data/lib/ffi/tools/generator_task.rb +32 -0
  81. data/lib/ffi/tools/struct_generator.rb +194 -0
  82. data/lib/ffi/tools/types_generator.rb +137 -0
  83. data/lib/ffi/types.rb +194 -0
  84. data/lib/ffi/union.rb +43 -0
  85. data/lib/ffi/variadic.rb +78 -0
  86. data/lib/ffi/version.rb +3 -0
  87. data/samples/getlogin.rb +8 -0
  88. data/samples/getpid.rb +8 -0
  89. data/samples/gettimeofday.rb +18 -0
  90. data/samples/hello.rb +8 -0
  91. data/samples/inotify.rb +60 -0
  92. data/samples/pty.rb +75 -0
  93. data/samples/qsort.rb +20 -0
  94. metadata +174 -7
@@ -0,0 +1,84 @@
1
+ # Copyright (C) 2008 Mike Dalessio
2
+ #
3
+ # This file is part of ruby-ffi.
4
+ #
5
+ # All rights reserved.
6
+ #
7
+ # Redistribution and use in source and binary forms, with or without
8
+ # modification, are permitted provided that the following conditions are met:
9
+ #
10
+ # * Redistributions of source code must retain the above copyright notice, this
11
+ # list of conditions and the following disclaimer.
12
+ # * Redistributions in binary form must reproduce the above copyright notice
13
+ # this list of conditions and the following disclaimer in the documentation
14
+ # and/or other materials provided with the distribution.
15
+ # * Neither the name of the Ruby FFI project nor the names of its contributors
16
+ # may be used to endorse or promote products derived from this software
17
+ # without specific prior written permission.
18
+ #
19
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
+ # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
+ # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22
+ # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
23
+ # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24
+ # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
25
+ # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26
+ # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27
+ # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28
+ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
+
30
+ module FFI
31
+ #
32
+ # FFI::ManagedStruct allows custom garbage-collection of your FFI::Structs.
33
+ #
34
+ # The typical use case would be when interacting with a library
35
+ # that has a nontrivial memory management design, such as a linked
36
+ # list or a binary tree.
37
+ #
38
+ # When the {Struct} instance is garbage collected, FFI::ManagedStruct will
39
+ # invoke the class's release() method during object finalization.
40
+ #
41
+ # @example Example usage:
42
+ # module MyLibrary
43
+ # ffi_lib "libmylibrary"
44
+ # attach_function :new_dlist, [], :pointer
45
+ # attach_function :destroy_dlist, [:pointer], :void
46
+ # end
47
+ #
48
+ # class DoublyLinkedList < FFI::ManagedStruct
49
+ # @@@
50
+ # struct do |s|
51
+ # s.name 'struct dlist'
52
+ # s.include 'dlist.h'
53
+ # s.field :head, :pointer
54
+ # s.field :tail, :pointer
55
+ # end
56
+ # @@@
57
+ #
58
+ # def self.release ptr
59
+ # MyLibrary.destroy_dlist(ptr)
60
+ # end
61
+ # end
62
+ #
63
+ # begin
64
+ # ptr = DoublyLinkedList.new(MyLibrary.new_dlist)
65
+ # # do something with the list
66
+ # end
67
+ # # struct is out of scope, and will be GC'd using DoublyLinkedList#release
68
+ #
69
+ #
70
+ class ManagedStruct < FFI::Struct
71
+
72
+ # @overload initialize(pointer)
73
+ # @param [Pointer] pointer
74
+ # Create a new ManagedStruct which will invoke the class method #release on
75
+ # @overload initialize
76
+ # A new instance of FFI::ManagedStruct.
77
+ def initialize(pointer=nil)
78
+ raise NoMethodError, "release() not implemented for class #{self}" unless self.class.respond_to? :release
79
+ raise ArgumentError, "Must supply a pointer to memory for the Struct" unless pointer
80
+ super AutoPointer.new(pointer, self.class.method(:release))
81
+ end
82
+
83
+ end
84
+ end
@@ -0,0 +1 @@
1
+ # This class is now implemented in C
@@ -0,0 +1,188 @@
1
+ #
2
+ # Copyright (C) 2008, 2009 Wayne Meissner
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
+ require 'rbconfig'
32
+ module FFI
33
+ class PlatformError < LoadError; end
34
+
35
+ # This module defines different constants and class methods to play with
36
+ # various platforms.
37
+ module Platform
38
+ OS = case RbConfig::CONFIG['host_os'].downcase
39
+ when /linux/
40
+ "linux"
41
+ when /darwin/
42
+ "darwin"
43
+ when /freebsd/
44
+ "freebsd"
45
+ when /netbsd/
46
+ "netbsd"
47
+ when /openbsd/
48
+ "openbsd"
49
+ when /dragonfly/
50
+ "dragonflybsd"
51
+ when /sunos|solaris/
52
+ "solaris"
53
+ when /mingw|mswin/
54
+ "windows"
55
+ else
56
+ RbConfig::CONFIG['host_os'].downcase
57
+ end
58
+
59
+ OSVERSION = RbConfig::CONFIG['host_os'].gsub(/[^\d]/, '').to_i
60
+
61
+ CPU = RbConfig::CONFIG['host_cpu']
62
+
63
+ ARCH = case CPU.downcase
64
+ when /amd64|x86_64|x64/
65
+ "x86_64"
66
+ when /i\d86|x86|i86pc/
67
+ "i386"
68
+ when /ppc64|powerpc64/
69
+ "powerpc64"
70
+ when /ppc|powerpc/
71
+ "powerpc"
72
+ when /sparcv9|sparc64/
73
+ "sparcv9"
74
+ when /arm64|aarch64/ # MacOS calls it "arm64", other operating systems "aarch64"
75
+ "aarch64"
76
+ when /^arm/
77
+ if OS == "darwin" # Ruby before 3.0 reports "arm" instead of "arm64" as host_cpu on darwin
78
+ "aarch64"
79
+ else
80
+ "arm"
81
+ end
82
+ else
83
+ RbConfig::CONFIG['host_cpu']
84
+ end
85
+
86
+ private
87
+ # @param [String) os
88
+ # @return [Boolean]
89
+ # Test if current OS is +os+.
90
+ def self.is_os(os)
91
+ OS == os
92
+ end
93
+
94
+ IS_GNU = defined?(GNU_LIBC)
95
+ IS_LINUX = is_os("linux")
96
+ IS_MAC = is_os("darwin")
97
+ IS_FREEBSD = is_os("freebsd")
98
+ IS_NETBSD = is_os("netbsd")
99
+ IS_OPENBSD = is_os("openbsd")
100
+ IS_DRAGONFLYBSD = is_os("dragonfly")
101
+ IS_SOLARIS = is_os("solaris")
102
+ IS_WINDOWS = is_os("windows")
103
+ IS_BSD = IS_MAC || IS_FREEBSD || IS_NETBSD || IS_OPENBSD || IS_DRAGONFLYBSD
104
+
105
+ # Add the version for known ABI breaks
106
+ name_version = "12" if IS_FREEBSD && OSVERSION >= 12 # 64-bit inodes
107
+
108
+ NAME = "#{ARCH}-#{OS}#{name_version}"
109
+ CONF_DIR = File.join(File.dirname(__FILE__), 'platform', NAME)
110
+
111
+ public
112
+
113
+ LIBPREFIX = case OS
114
+ when /windows|msys/
115
+ ''
116
+ when /cygwin/
117
+ 'cyg'
118
+ else
119
+ 'lib'
120
+ end
121
+
122
+ LIBSUFFIX = case OS
123
+ when /darwin/
124
+ 'dylib'
125
+ when /linux|bsd|solaris/
126
+ 'so'
127
+ when /windows|cygwin|msys/
128
+ 'dll'
129
+ else
130
+ # Punt and just assume a sane unix (i.e. anything but AIX)
131
+ 'so'
132
+ end
133
+
134
+ LIBC = if IS_WINDOWS
135
+ if RbConfig::CONFIG['host_os'] =~ /mingw/i
136
+ RbConfig::CONFIG['RUBY_SO_NAME'].split('-')[-2] + '.dll'
137
+ else
138
+ "ucrtbase.dll"
139
+ end
140
+ elsif IS_GNU
141
+ GNU_LIBC
142
+ elsif OS == 'cygwin'
143
+ "cygwin1.dll"
144
+ elsif OS == 'msys'
145
+ # Not sure how msys 1.0 behaves, tested on MSYS2.
146
+ "msys-2.0.dll"
147
+ else
148
+ "#{LIBPREFIX}c.#{LIBSUFFIX}"
149
+ end
150
+
151
+ LITTLE_ENDIAN = 1234 unless defined?(LITTLE_ENDIAN)
152
+ BIG_ENDIAN = 4321 unless defined?(BIG_ENDIAN)
153
+ unless defined?(BYTE_ORDER)
154
+ BYTE_ORDER = [0x12345678].pack("I") == [0x12345678].pack("N") ? BIG_ENDIAN : LITTLE_ENDIAN
155
+ end
156
+
157
+ # Test if current OS is a *BSD (include MAC)
158
+ # @return [Boolean]
159
+ def self.bsd?
160
+ IS_BSD
161
+ end
162
+
163
+ # Test if current OS is Windows
164
+ # @return [Boolean]
165
+ def self.windows?
166
+ IS_WINDOWS
167
+ end
168
+
169
+ # Test if current OS is Mac OS
170
+ # @return [Boolean]
171
+ def self.mac?
172
+ IS_MAC
173
+ end
174
+
175
+ # Test if current OS is Solaris (Sun OS)
176
+ # @return [Boolean]
177
+ def self.solaris?
178
+ IS_SOLARIS
179
+ end
180
+
181
+ # Test if current OS is a unix OS
182
+ # @return [Boolean]
183
+ def self.unix?
184
+ !IS_WINDOWS
185
+ end
186
+ end
187
+ end
188
+
@@ -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
@@ -0,0 +1,128 @@
1
+ rbx.platform.typedef.__clock_t = int
2
+ rbx.platform.typedef.__clockid_t = int
3
+ rbx.platform.typedef.__cpuid_t = ulong
4
+ rbx.platform.typedef.__dev_t = int
5
+ rbx.platform.typedef.__fd_mask = int
6
+ rbx.platform.typedef.__fixpt_t = uint
7
+ 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 = uint
12
+ rbx.platform.typedef.__int16_t = short
13
+ rbx.platform.typedef.__int32_t = int
14
+ rbx.platform.typedef.__int64_t = long_long
15
+ rbx.platform.typedef.__int8_t = char
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_fast8_t = int
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.__int_least8_t = char
24
+ rbx.platform.typedef.__intmax_t = long_long
25
+ rbx.platform.typedef.__intptr_t = long
26
+ rbx.platform.typedef.__key_t = long
27
+ rbx.platform.typedef.__mode_t = uint
28
+ rbx.platform.typedef.__nlink_t = uint
29
+ rbx.platform.typedef.__off_t = long_long
30
+ rbx.platform.typedef.__paddr_t = ulong
31
+ rbx.platform.typedef.__pid_t = int
32
+ rbx.platform.typedef.__psize_t = ulong
33
+ rbx.platform.typedef.__ptrdiff_t = long
34
+ rbx.platform.typedef.__register_t = long_long
35
+ rbx.platform.typedef.__rlim_t = ulong_long
36
+ rbx.platform.typedef.__rune_t = int
37
+ rbx.platform.typedef.__sa_family_t = uchar
38
+ rbx.platform.typedef.__segsz_t = int
39
+ rbx.platform.typedef.__size_t = ulong
40
+ rbx.platform.typedef.__socklen_t = uint
41
+ 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
46
+ rbx.platform.typedef.__uid_t = uint
47
+ rbx.platform.typedef.__uint16_t = ushort
48
+ rbx.platform.typedef.__uint32_t = uint
49
+ rbx.platform.typedef.__uint64_t = ulong_long
50
+ rbx.platform.typedef.__uint8_t = uchar
51
+ rbx.platform.typedef.__uint_fast16_t = uint
52
+ rbx.platform.typedef.__uint_fast32_t = uint
53
+ rbx.platform.typedef.__uint_fast64_t = ulong_long
54
+ rbx.platform.typedef.__uint_fast8_t = uint
55
+ rbx.platform.typedef.__uint_least16_t = ushort
56
+ rbx.platform.typedef.__uint_least32_t = uint
57
+ rbx.platform.typedef.__uint_least64_t = ulong_long
58
+ rbx.platform.typedef.__uint_least8_t = uchar
59
+ rbx.platform.typedef.__uintmax_t = ulong_long
60
+ rbx.platform.typedef.__uintptr_t = ulong
61
+ 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
67
+ rbx.platform.typedef.__wint_t = int
68
+ rbx.platform.typedef.caddr_t = string
69
+ rbx.platform.typedef.clock_t = int
70
+ 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 = int
76
+ rbx.platform.typedef.fixpt_t = uint
77
+ rbx.platform.typedef.gid_t = uint
78
+ rbx.platform.typedef.id_t = uint
79
+ rbx.platform.typedef.in_addr_t = uint
80
+ rbx.platform.typedef.in_port_t = ushort
81
+ rbx.platform.typedef.ino_t = uint
82
+ rbx.platform.typedef.int16_t = short
83
+ rbx.platform.typedef.int32_t = int
84
+ rbx.platform.typedef.int64_t = long_long
85
+ rbx.platform.typedef.int8_t = char
86
+ rbx.platform.typedef.intptr_t = long
87
+ rbx.platform.typedef.key_t = long
88
+ rbx.platform.typedef.mode_t = uint
89
+ rbx.platform.typedef.nlink_t = uint
90
+ rbx.platform.typedef.off_t = long_long
91
+ rbx.platform.typedef.paddr_t = ulong
92
+ rbx.platform.typedef.pid_t = int
93
+ rbx.platform.typedef.psize_t = ulong
94
+ 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
98
+ rbx.platform.typedef.sa_family_t = uchar
99
+ rbx.platform.typedef.segsz_t = int
100
+ rbx.platform.typedef.size_t = ulong
101
+ rbx.platform.typedef.socklen_t = uint
102
+ 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
107
+ rbx.platform.typedef.u_char = uchar
108
+ rbx.platform.typedef.u_int = uint
109
+ rbx.platform.typedef.u_int16_t = ushort
110
+ rbx.platform.typedef.u_int32_t = uint
111
+ rbx.platform.typedef.u_int64_t = ulong_long
112
+ rbx.platform.typedef.u_int8_t = uchar
113
+ rbx.platform.typedef.u_long = ulong
114
+ rbx.platform.typedef.u_quad_t = ulong_long
115
+ rbx.platform.typedef.u_short = ushort
116
+ rbx.platform.typedef.uid_t = uint
117
+ rbx.platform.typedef.uint = uint
118
+ rbx.platform.typedef.uint16_t = ushort
119
+ rbx.platform.typedef.uint32_t = uint
120
+ rbx.platform.typedef.uint64_t = ulong_long
121
+ rbx.platform.typedef.uint8_t = uchar
122
+ rbx.platform.typedef.uintptr_t = ulong
123
+ rbx.platform.typedef.ulong = ulong
124
+ rbx.platform.typedef.unchar = uchar
125
+ rbx.platform.typedef.useconds_t = uint
126
+ rbx.platform.typedef.ushort = ushort
127
+ rbx.platform.typedef.vaddr_t = ulong
128
+ rbx.platform.typedef.vsize_t = ulong