ffi 1.17.0-aarch64-linux-gnu

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +456 -0
  3. data/COPYING +49 -0
  4. data/Gemfile +21 -0
  5. data/LICENSE +24 -0
  6. data/LICENSE.SPECS +22 -0
  7. data/README.md +137 -0
  8. data/Rakefile +206 -0
  9. data/ffi.gemspec +42 -0
  10. data/lib/2.5/ffi_c.so +0 -0
  11. data/lib/2.6/ffi_c.so +0 -0
  12. data/lib/2.7/ffi_c.so +0 -0
  13. data/lib/3.0/ffi_c.so +0 -0
  14. data/lib/3.1/ffi_c.so +0 -0
  15. data/lib/3.2/ffi_c.so +0 -0
  16. data/lib/3.3/ffi_c.so +0 -0
  17. data/lib/ffi/abstract_memory.rb +44 -0
  18. data/lib/ffi/autopointer.rb +180 -0
  19. data/lib/ffi/buffer.rb +4 -0
  20. data/lib/ffi/callback.rb +4 -0
  21. data/lib/ffi/compat.rb +43 -0
  22. data/lib/ffi/data_converter.rb +67 -0
  23. data/lib/ffi/dynamic_library.rb +118 -0
  24. data/lib/ffi/enum.rb +302 -0
  25. data/lib/ffi/errno.rb +43 -0
  26. data/lib/ffi/ffi.rb +50 -0
  27. data/lib/ffi/function.rb +71 -0
  28. data/lib/ffi/io.rb +62 -0
  29. data/lib/ffi/library.rb +576 -0
  30. data/lib/ffi/library_path.rb +109 -0
  31. data/lib/ffi/managedstruct.rb +84 -0
  32. data/lib/ffi/memorypointer.rb +1 -0
  33. data/lib/ffi/platform/aarch64-darwin/types.conf +130 -0
  34. data/lib/ffi/platform/aarch64-freebsd/types.conf +128 -0
  35. data/lib/ffi/platform/aarch64-freebsd12/types.conf +181 -0
  36. data/lib/ffi/platform/aarch64-linux/types.conf +175 -0
  37. data/lib/ffi/platform/aarch64-openbsd/types.conf +134 -0
  38. data/lib/ffi/platform/aarch64-windows/types.conf +52 -0
  39. data/lib/ffi/platform/arm-freebsd/types.conf +152 -0
  40. data/lib/ffi/platform/arm-freebsd12/types.conf +152 -0
  41. data/lib/ffi/platform/arm-linux/types.conf +132 -0
  42. data/lib/ffi/platform/hppa1.1-linux/types.conf +178 -0
  43. data/lib/ffi/platform/hppa2.0-linux/types.conf +178 -0
  44. data/lib/ffi/platform/i386-cygwin/types.conf +3 -0
  45. data/lib/ffi/platform/i386-darwin/types.conf +100 -0
  46. data/lib/ffi/platform/i386-freebsd/types.conf +152 -0
  47. data/lib/ffi/platform/i386-freebsd12/types.conf +152 -0
  48. data/lib/ffi/platform/i386-gnu/types.conf +107 -0
  49. data/lib/ffi/platform/i386-linux/types.conf +103 -0
  50. data/lib/ffi/platform/i386-netbsd/types.conf +126 -0
  51. data/lib/ffi/platform/i386-openbsd/types.conf +128 -0
  52. data/lib/ffi/platform/i386-solaris/types.conf +122 -0
  53. data/lib/ffi/platform/i386-windows/types.conf +52 -0
  54. data/lib/ffi/platform/ia64-linux/types.conf +104 -0
  55. data/lib/ffi/platform/loongarch64-linux/types.conf +141 -0
  56. data/lib/ffi/platform/mips-linux/types.conf +102 -0
  57. data/lib/ffi/platform/mips64-linux/types.conf +104 -0
  58. data/lib/ffi/platform/mips64el-linux/types.conf +104 -0
  59. data/lib/ffi/platform/mipsel-linux/types.conf +102 -0
  60. data/lib/ffi/platform/mipsisa32r6-linux/types.conf +102 -0
  61. data/lib/ffi/platform/mipsisa32r6el-linux/types.conf +102 -0
  62. data/lib/ffi/platform/mipsisa64r6-linux/types.conf +104 -0
  63. data/lib/ffi/platform/mipsisa64r6el-linux/types.conf +104 -0
  64. data/lib/ffi/platform/powerpc-aix/types.conf +180 -0
  65. data/lib/ffi/platform/powerpc-darwin/types.conf +100 -0
  66. data/lib/ffi/platform/powerpc-linux/types.conf +130 -0
  67. data/lib/ffi/platform/powerpc-openbsd/types.conf +156 -0
  68. data/lib/ffi/platform/powerpc64-linux/types.conf +104 -0
  69. data/lib/ffi/platform/powerpc64le-linux/types.conf +100 -0
  70. data/lib/ffi/platform/riscv64-linux/types.conf +104 -0
  71. data/lib/ffi/platform/s390-linux/types.conf +102 -0
  72. data/lib/ffi/platform/s390x-linux/types.conf +102 -0
  73. data/lib/ffi/platform/sparc-linux/types.conf +102 -0
  74. data/lib/ffi/platform/sparc-solaris/types.conf +128 -0
  75. data/lib/ffi/platform/sparcv9-linux/types.conf +102 -0
  76. data/lib/ffi/platform/sparcv9-openbsd/types.conf +156 -0
  77. data/lib/ffi/platform/sparcv9-solaris/types.conf +128 -0
  78. data/lib/ffi/platform/sw_64-linux/types.conf +141 -0
  79. data/lib/ffi/platform/x86_64-cygwin/types.conf +3 -0
  80. data/lib/ffi/platform/x86_64-darwin/types.conf +130 -0
  81. data/lib/ffi/platform/x86_64-dragonflybsd/types.conf +130 -0
  82. data/lib/ffi/platform/x86_64-freebsd/types.conf +128 -0
  83. data/lib/ffi/platform/x86_64-freebsd12/types.conf +158 -0
  84. data/lib/ffi/platform/x86_64-haiku/types.conf +117 -0
  85. data/lib/ffi/platform/x86_64-linux/types.conf +132 -0
  86. data/lib/ffi/platform/x86_64-msys/types.conf +119 -0
  87. data/lib/ffi/platform/x86_64-netbsd/types.conf +128 -0
  88. data/lib/ffi/platform/x86_64-openbsd/types.conf +134 -0
  89. data/lib/ffi/platform/x86_64-solaris/types.conf +122 -0
  90. data/lib/ffi/platform/x86_64-windows/types.conf +52 -0
  91. data/lib/ffi/platform.rb +187 -0
  92. data/lib/ffi/pointer.rb +167 -0
  93. data/lib/ffi/struct.rb +317 -0
  94. data/lib/ffi/struct_by_reference.rb +72 -0
  95. data/lib/ffi/struct_layout.rb +96 -0
  96. data/lib/ffi/struct_layout_builder.rb +227 -0
  97. data/lib/ffi/tools/const_generator.rb +232 -0
  98. data/lib/ffi/tools/generator.rb +105 -0
  99. data/lib/ffi/tools/generator_task.rb +32 -0
  100. data/lib/ffi/tools/struct_generator.rb +195 -0
  101. data/lib/ffi/tools/types_generator.rb +137 -0
  102. data/lib/ffi/types.rb +222 -0
  103. data/lib/ffi/union.rb +43 -0
  104. data/lib/ffi/variadic.rb +80 -0
  105. data/lib/ffi/version.rb +3 -0
  106. data/lib/ffi.rb +27 -0
  107. data/rakelib/ffi_gem_helper.rb +65 -0
  108. data/samples/getlogin.rb +8 -0
  109. data/samples/getpid.rb +8 -0
  110. data/samples/gettimeofday.rb +18 -0
  111. data/samples/hello.rb +8 -0
  112. data/samples/hello_ractor.rb +11 -0
  113. data/samples/inotify.rb +60 -0
  114. data/samples/pty.rb +75 -0
  115. data/samples/qsort.rb +20 -0
  116. data/samples/qsort_ractor.rb +28 -0
  117. data/sig/ffi/abstract_memory.rbs +165 -0
  118. data/sig/ffi/auto_pointer.rbs +27 -0
  119. data/sig/ffi/buffer.rbs +18 -0
  120. data/sig/ffi/data_converter.rbs +10 -0
  121. data/sig/ffi/dynamic_library.rbs +9 -0
  122. data/sig/ffi/enum.rbs +38 -0
  123. data/sig/ffi/function.rbs +39 -0
  124. data/sig/ffi/library.rbs +42 -0
  125. data/sig/ffi/native_type.rbs +86 -0
  126. data/sig/ffi/pointer.rbs +42 -0
  127. data/sig/ffi/struct.rbs +76 -0
  128. data/sig/ffi/struct_by_reference.rbs +11 -0
  129. data/sig/ffi/struct_by_value.rbs +7 -0
  130. data/sig/ffi/struct_layout.rbs +9 -0
  131. data/sig/ffi/struct_layout_builder.rbs +5 -0
  132. data/sig/ffi/type.rbs +39 -0
  133. data/sig/ffi.rbs +26 -0
  134. metadata +241 -0
@@ -0,0 +1,109 @@
1
+ #
2
+ # Copyright (C) 2023 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
+ module FFI
32
+ # Transform a generic library name and ABI number to a platform library name
33
+ #
34
+ # Example:
35
+ # module LibVips
36
+ # extend FFI::Library
37
+ # ffi_lib LibraryPath.new("vips", abi_number: 42)
38
+ # end
39
+ #
40
+ # This translates to the following library file names:
41
+ # libvips-42.dll on Windows
42
+ # libvips.so.42 on Linux
43
+ # libvips.42.dylib on Macos
44
+ #
45
+ # See https://packaging.ubuntu.com/html/libraries.html for more information about library naming.
46
+ class LibraryPath
47
+ attr_reader :name
48
+ attr_reader :abi_number
49
+ attr_reader :root
50
+
51
+ # Build a new library path
52
+ #
53
+ # * <tt>name</tt> : The name of the library without file prefix or suffix.
54
+ # * <tt>abi_number</tt> : The ABI number of the library.
55
+ # * <tt>root</tt> : An optional base path prepended to the library name.
56
+ def initialize(name, abi_number: nil, root: nil)
57
+ @name = name
58
+ @abi_number = abi_number
59
+ @root = root
60
+ end
61
+
62
+ def self.wrap(value)
63
+ # We allow instances of LibraryPath to pass through transparently:
64
+ return value if value.is_a?(self)
65
+
66
+ # We special case a library named 'c' to be the standard C library:
67
+ return Library::LIBC if value == 'c'
68
+
69
+ # If provided a relative file name we convert it into a library path:
70
+ if value && File.basename(value) == value
71
+ return self.new(value)
72
+ end
73
+
74
+ # Otherwise, we assume it's a full path to a library:
75
+ return value
76
+ end
77
+
78
+ def full_name
79
+ # If the abi_number is given, we format it specifically according to platform rules:
80
+ if abi_number
81
+ if Platform.windows?
82
+ "#{Platform::LIBPREFIX}#{name}-#{abi_number}.#{Platform::LIBSUFFIX}"
83
+ elsif Platform.mac?
84
+ "#{Platform::LIBPREFIX}#{name}.#{abi_number}.#{Platform::LIBSUFFIX}"
85
+ else # Linux? BSD? etc.
86
+ "#{Platform::LIBPREFIX}#{name}.#{Platform::LIBSUFFIX}.#{abi_number}"
87
+ end
88
+ else
89
+ # Otherwise we just add prefix and suffix:
90
+ lib = name
91
+ # Add library prefix if missing
92
+ lib = Platform::LIBPREFIX + lib unless lib =~ /^#{Platform::LIBPREFIX}/
93
+ # Add library extension if missing
94
+ r = Platform.windows? || Platform.mac? ? "\\.#{Platform::LIBSUFFIX}$" : "\\.so($|\\.[1234567890]+)"
95
+ lib += ".#{Platform::LIBSUFFIX}" unless lib =~ /#{r}/
96
+ lib
97
+ end
98
+ end
99
+
100
+ def to_s
101
+ if root
102
+ # If the root path is given, we generate the full path:
103
+ File.join(root, full_name)
104
+ else
105
+ full_name
106
+ end
107
+ end
108
+ end
109
+ end
@@ -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, true)
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,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 = long
43
+ rbx.platform.typedef.__swblk_t = int
44
+ rbx.platform.typedef.__time_t = long
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
@@ -0,0 +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
8
+ rbx.platform.typedef.__clock_t = int
9
+ rbx.platform.typedef.__clockid_t = 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
19
+ rbx.platform.typedef.__fixpt_t = uint
20
+ rbx.platform.typedef.__fsblkcnt_t = ulong
21
+ rbx.platform.typedef.__fsfilcnt_t = ulong
22
+ rbx.platform.typedef.__gid_t = uint
23
+ rbx.platform.typedef.__id_t = long
24
+ rbx.platform.typedef.__ino_t = ulong
25
+ rbx.platform.typedef.__int16_t = short
26
+ rbx.platform.typedef.__int32_t = int
27
+ rbx.platform.typedef.__int64_t = long
28
+ rbx.platform.typedef.__int8_t = char
29
+ rbx.platform.typedef.__int_fast16_t = int
30
+ rbx.platform.typedef.__int_fast32_t = int
31
+ rbx.platform.typedef.__int_fast64_t = long
32
+ rbx.platform.typedef.__int_fast8_t = int
33
+ rbx.platform.typedef.__int_least16_t = short
34
+ rbx.platform.typedef.__int_least32_t = int
35
+ rbx.platform.typedef.__int_least64_t = long
36
+ rbx.platform.typedef.__int_least8_t = char
37
+ rbx.platform.typedef.__intfptr_t = long
38
+ rbx.platform.typedef.__intmax_t = long
39
+ rbx.platform.typedef.__intptr_t = long
40
+ rbx.platform.typedef.__key_t = long
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
47
+ rbx.platform.typedef.__pid_t = int
48
+ rbx.platform.typedef.__ptrdiff_t = long
49
+ rbx.platform.typedef.__register_t = long
50
+ rbx.platform.typedef.__rlim_t = long
51
+ rbx.platform.typedef.__rman_res_t = ulong
52
+ rbx.platform.typedef.__rune_t = int
53
+ rbx.platform.typedef.__sa_family_t = uchar
54
+ rbx.platform.typedef.__segsz_t = long
55
+ rbx.platform.typedef.__size_t = ulong
56
+ rbx.platform.typedef.__socklen_t = uint
57
+ rbx.platform.typedef.__ssize_t = long
58
+ rbx.platform.typedef.__suseconds_t = long
59
+ rbx.platform.typedef.__time_t = long
60
+ rbx.platform.typedef.__u_register_t = ulong
61
+ rbx.platform.typedef.__uid_t = uint
62
+ rbx.platform.typedef.__uint16_t = ushort
63
+ rbx.platform.typedef.__uint32_t = uint
64
+ rbx.platform.typedef.__uint64_t = ulong
65
+ rbx.platform.typedef.__uint8_t = uchar
66
+ rbx.platform.typedef.__uint_fast16_t = uint
67
+ rbx.platform.typedef.__uint_fast32_t = uint
68
+ rbx.platform.typedef.__uint_fast64_t = ulong
69
+ rbx.platform.typedef.__uint_fast8_t = uint
70
+ rbx.platform.typedef.__uint_least16_t = ushort
71
+ rbx.platform.typedef.__uint_least32_t = uint
72
+ rbx.platform.typedef.__uint_least64_t = ulong
73
+ rbx.platform.typedef.__uint_least8_t = uchar
74
+ rbx.platform.typedef.__uintfptr_t = ulong
75
+ rbx.platform.typedef.__uintmax_t = ulong
76
+ rbx.platform.typedef.__uintptr_t = ulong
77
+ rbx.platform.typedef.__useconds_t = uint
78
+ rbx.platform.typedef.__vm_offset_t = ulong
79
+ rbx.platform.typedef.__vm_paddr_t = ulong
80
+ rbx.platform.typedef.__vm_size_t = ulong
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
86
+ rbx.platform.typedef.caddr_t = string
87
+ rbx.platform.typedef.cap_ioctl_t = ulong
88
+ rbx.platform.typedef.clock_t = int
89
+ rbx.platform.typedef.clockid_t = int
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
98
+ rbx.platform.typedef.fixpt_t = uint
99
+ rbx.platform.typedef.fsblkcnt_t = ulong
100
+ rbx.platform.typedef.fsfilcnt_t = ulong
101
+ rbx.platform.typedef.gid_t = uint
102
+ rbx.platform.typedef.id_t = long
103
+ rbx.platform.typedef.in_addr_t = uint
104
+ rbx.platform.typedef.in_port_t = ushort
105
+ rbx.platform.typedef.ino_t = ulong
106
+ rbx.platform.typedef.int16_t = short
107
+ rbx.platform.typedef.int32_t = int
108
+ rbx.platform.typedef.int64_t = long
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
119
+ rbx.platform.typedef.intptr_t = long
120
+ rbx.platform.typedef.key_t = long
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
130
+ rbx.platform.typedef.pid_t = int
131
+ rbx.platform.typedef.pthread_key_t = int
132
+ rbx.platform.typedef.ptrdiff_t = long
133
+ rbx.platform.typedef.qaddr_t = pointer
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
140
+ rbx.platform.typedef.sa_family_t = uchar
141
+ rbx.platform.typedef.sbintime_t = long
142
+ rbx.platform.typedef.segsz_t = long
143
+ rbx.platform.typedef.size_t = ulong
144
+ rbx.platform.typedef.socklen_t = uint
145
+ rbx.platform.typedef.ssize_t = long
146
+ rbx.platform.typedef.suseconds_t = long
147
+ rbx.platform.typedef.time_t = long
148
+ rbx.platform.typedef.u_char = uchar
149
+ rbx.platform.typedef.u_int = uint
150
+ rbx.platform.typedef.u_int16_t = ushort
151
+ rbx.platform.typedef.u_int32_t = uint
152
+ rbx.platform.typedef.u_int64_t = ulong
153
+ rbx.platform.typedef.u_int8_t = uchar
154
+ rbx.platform.typedef.u_long = ulong
155
+ rbx.platform.typedef.u_quad_t = ulong
156
+ rbx.platform.typedef.u_register_t = ulong
157
+ rbx.platform.typedef.u_short = ushort
158
+ rbx.platform.typedef.uid_t = uint
159
+ rbx.platform.typedef.uint = uint
160
+ rbx.platform.typedef.uint16_t = ushort
161
+ rbx.platform.typedef.uint32_t = uint
162
+ rbx.platform.typedef.uint64_t = ulong
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
173
+ rbx.platform.typedef.uintptr_t = ulong
174
+ rbx.platform.typedef.useconds_t = uint
175
+ rbx.platform.typedef.ushort = ushort
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