ffi 1.17.3-aarch64-mingw-ucrt

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 (130) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +498 -0
  3. data/COPYING +49 -0
  4. data/Gemfile +26 -0
  5. data/LICENSE +24 -0
  6. data/LICENSE.SPECS +22 -0
  7. data/README.md +138 -0
  8. data/Rakefile +209 -0
  9. data/Steepfile +8 -0
  10. data/ffi.gemspec +41 -0
  11. data/lib/3.4/ffi_c.so +0 -0
  12. data/lib/4.0/ffi_c.so +0 -0
  13. data/lib/ffi/abstract_memory.rb +44 -0
  14. data/lib/ffi/autopointer.rb +186 -0
  15. data/lib/ffi/buffer.rb +4 -0
  16. data/lib/ffi/callback.rb +4 -0
  17. data/lib/ffi/compat.rb +54 -0
  18. data/lib/ffi/data_converter.rb +67 -0
  19. data/lib/ffi/dynamic_library.rb +118 -0
  20. data/lib/ffi/enum.rb +302 -0
  21. data/lib/ffi/errno.rb +43 -0
  22. data/lib/ffi/ffi.rb +109 -0
  23. data/lib/ffi/function.rb +94 -0
  24. data/lib/ffi/io.rb +62 -0
  25. data/lib/ffi/library.rb +592 -0
  26. data/lib/ffi/library_path.rb +109 -0
  27. data/lib/ffi/managedstruct.rb +84 -0
  28. data/lib/ffi/memorypointer.rb +1 -0
  29. data/lib/ffi/platform/aarch64-darwin/types.conf +130 -0
  30. data/lib/ffi/platform/aarch64-freebsd/types.conf +128 -0
  31. data/lib/ffi/platform/aarch64-freebsd12/types.conf +181 -0
  32. data/lib/ffi/platform/aarch64-linux/types.conf +175 -0
  33. data/lib/ffi/platform/aarch64-openbsd/types.conf +134 -0
  34. data/lib/ffi/platform/aarch64-windows/types.conf +52 -0
  35. data/lib/ffi/platform/arm-freebsd/types.conf +152 -0
  36. data/lib/ffi/platform/arm-freebsd12/types.conf +152 -0
  37. data/lib/ffi/platform/arm-linux/types.conf +132 -0
  38. data/lib/ffi/platform/hppa1.1-linux/types.conf +178 -0
  39. data/lib/ffi/platform/hppa2.0-linux/types.conf +178 -0
  40. data/lib/ffi/platform/i386-cygwin/types.conf +3 -0
  41. data/lib/ffi/platform/i386-darwin/types.conf +100 -0
  42. data/lib/ffi/platform/i386-freebsd/types.conf +152 -0
  43. data/lib/ffi/platform/i386-freebsd12/types.conf +152 -0
  44. data/lib/ffi/platform/i386-gnu/types.conf +107 -0
  45. data/lib/ffi/platform/i386-linux/types.conf +103 -0
  46. data/lib/ffi/platform/i386-netbsd/types.conf +126 -0
  47. data/lib/ffi/platform/i386-openbsd/types.conf +128 -0
  48. data/lib/ffi/platform/i386-solaris/types.conf +122 -0
  49. data/lib/ffi/platform/i386-windows/types.conf +52 -0
  50. data/lib/ffi/platform/ia64-linux/types.conf +104 -0
  51. data/lib/ffi/platform/loongarch64-linux/types.conf +141 -0
  52. data/lib/ffi/platform/mips-linux/types.conf +102 -0
  53. data/lib/ffi/platform/mips64-linux/types.conf +104 -0
  54. data/lib/ffi/platform/mips64el-linux/types.conf +104 -0
  55. data/lib/ffi/platform/mipsel-linux/types.conf +102 -0
  56. data/lib/ffi/platform/mipsisa32r6-linux/types.conf +102 -0
  57. data/lib/ffi/platform/mipsisa32r6el-linux/types.conf +102 -0
  58. data/lib/ffi/platform/mipsisa64r6-linux/types.conf +104 -0
  59. data/lib/ffi/platform/mipsisa64r6el-linux/types.conf +104 -0
  60. data/lib/ffi/platform/powerpc-aix/types.conf +180 -0
  61. data/lib/ffi/platform/powerpc-darwin/types.conf +100 -0
  62. data/lib/ffi/platform/powerpc-linux/types.conf +130 -0
  63. data/lib/ffi/platform/powerpc-openbsd/types.conf +156 -0
  64. data/lib/ffi/platform/powerpc64-linux/types.conf +104 -0
  65. data/lib/ffi/platform/powerpc64le-linux/types.conf +100 -0
  66. data/lib/ffi/platform/riscv64-linux/types.conf +104 -0
  67. data/lib/ffi/platform/s390-linux/types.conf +102 -0
  68. data/lib/ffi/platform/s390x-linux/types.conf +102 -0
  69. data/lib/ffi/platform/sparc-linux/types.conf +102 -0
  70. data/lib/ffi/platform/sparc-solaris/types.conf +128 -0
  71. data/lib/ffi/platform/sparcv9-linux/types.conf +102 -0
  72. data/lib/ffi/platform/sparcv9-openbsd/types.conf +156 -0
  73. data/lib/ffi/platform/sparcv9-solaris/types.conf +128 -0
  74. data/lib/ffi/platform/sw_64-linux/types.conf +141 -0
  75. data/lib/ffi/platform/x86_64-cygwin/types.conf +3 -0
  76. data/lib/ffi/platform/x86_64-darwin/types.conf +130 -0
  77. data/lib/ffi/platform/x86_64-dragonflybsd/types.conf +130 -0
  78. data/lib/ffi/platform/x86_64-freebsd/types.conf +128 -0
  79. data/lib/ffi/platform/x86_64-freebsd12/types.conf +158 -0
  80. data/lib/ffi/platform/x86_64-haiku/types.conf +117 -0
  81. data/lib/ffi/platform/x86_64-linux/types.conf +132 -0
  82. data/lib/ffi/platform/x86_64-msys/types.conf +119 -0
  83. data/lib/ffi/platform/x86_64-netbsd/types.conf +128 -0
  84. data/lib/ffi/platform/x86_64-openbsd/types.conf +134 -0
  85. data/lib/ffi/platform/x86_64-solaris/types.conf +122 -0
  86. data/lib/ffi/platform/x86_64-windows/types.conf +52 -0
  87. data/lib/ffi/platform.rb +187 -0
  88. data/lib/ffi/pointer.rb +167 -0
  89. data/lib/ffi/struct.rb +317 -0
  90. data/lib/ffi/struct_by_reference.rb +72 -0
  91. data/lib/ffi/struct_layout.rb +96 -0
  92. data/lib/ffi/struct_layout_builder.rb +227 -0
  93. data/lib/ffi/tools/const_generator.rb +232 -0
  94. data/lib/ffi/tools/generator.rb +105 -0
  95. data/lib/ffi/tools/generator_task.rb +32 -0
  96. data/lib/ffi/tools/struct_generator.rb +195 -0
  97. data/lib/ffi/types.rb +222 -0
  98. data/lib/ffi/union.rb +43 -0
  99. data/lib/ffi/variadic.rb +80 -0
  100. data/lib/ffi/version.rb +3 -0
  101. data/lib/ffi.rb +27 -0
  102. data/samples/getlogin.rb +8 -0
  103. data/samples/getpid.rb +8 -0
  104. data/samples/gettimeofday.rb +18 -0
  105. data/samples/hello.rb +8 -0
  106. data/samples/hello_ractor.rb +19 -0
  107. data/samples/inotify.rb +60 -0
  108. data/samples/pty.rb +75 -0
  109. data/samples/qsort.rb +20 -0
  110. data/samples/qsort_ractor.rb +36 -0
  111. data/sig/ffi/abstract_memory.rbs +165 -0
  112. data/sig/ffi/auto_pointer.rbs +26 -0
  113. data/sig/ffi/buffer.rbs +18 -0
  114. data/sig/ffi/data_converter.rbs +10 -0
  115. data/sig/ffi/dynamic_library.rbs +9 -0
  116. data/sig/ffi/enum.rbs +38 -0
  117. data/sig/ffi/errno.rbs +8 -0
  118. data/sig/ffi/function.rbs +39 -0
  119. data/sig/ffi/library.rbs +42 -0
  120. data/sig/ffi/native_type.rbs +86 -0
  121. data/sig/ffi/platform.rbs +49 -0
  122. data/sig/ffi/pointer.rbs +42 -0
  123. data/sig/ffi/struct.rbs +76 -0
  124. data/sig/ffi/struct_by_reference.rbs +11 -0
  125. data/sig/ffi/struct_by_value.rbs +7 -0
  126. data/sig/ffi/struct_layout.rbs +9 -0
  127. data/sig/ffi/struct_layout_builder.rbs +5 -0
  128. data/sig/ffi/type.rbs +39 -0
  129. data/sig/ffi.rbs +29 -0
  130. metadata +179 -0
@@ -0,0 +1,86 @@
1
+ module FFI
2
+ class Type
3
+ INT8: Builtin
4
+ SCHAR: Builtin
5
+ CHAR: Builtin
6
+ UINT8: Builtin
7
+ UCHAR: Builtin
8
+ INT16: Builtin
9
+ SHORT: Builtin
10
+ SSHORT: Builtin
11
+ UINT16: Builtin
12
+ USHORT: Builtin
13
+ INT32: Builtin
14
+ INT: Builtin
15
+ SINT: Builtin
16
+ UINT32: Builtin
17
+ UINT: Builtin
18
+ INT64: Builtin
19
+ LONG_LONG: Builtin
20
+ SLONG_LONG: Builtin
21
+ UINT64: Builtin
22
+ ULONG_LONG: Builtin
23
+ LONG: Builtin
24
+ SLONG: Builtin
25
+ ULONG: Builtin
26
+ FLOAT32: Builtin
27
+ FLOAT: Builtin
28
+ FLOAT64: Builtin
29
+ DOUBLE: Builtin
30
+ LONGDOUBLE: Builtin
31
+ POINTER: Builtin
32
+ BOOL: Builtin
33
+ STRING: Builtin
34
+ BUFFER_IN: Builtin
35
+ BUFFER_OUT: Builtin
36
+ BUFFER_INOUT: Builtin
37
+ VARARGS: Builtin
38
+ VOID: Builtin
39
+ end
40
+
41
+ module NativeType
42
+ INT8: Type::Builtin
43
+ UINT8: Type::Builtin
44
+ INT16: Type::Builtin
45
+ UINT16: Type::Builtin
46
+ INT32: Type::Builtin
47
+ UINT32: Type::Builtin
48
+ INT64: Type::Builtin
49
+ UINT64: Type::Builtin
50
+ LONG: Type::Builtin
51
+ ULONG: Type::Builtin
52
+ FLOAT32: Type::Builtin
53
+ FLOAT64: Type::Builtin
54
+ LONGDOUBLE: Type::Builtin
55
+ POINTER: Type::Builtin
56
+ BOOL: Type::Builtin
57
+ STRING: Type::Builtin
58
+ BUFFER_IN: Type::Builtin
59
+ BUFFER_OUT: Type::Builtin
60
+ BUFFER_INOUT: Type::Builtin
61
+ VARARGS: Type::Builtin
62
+ VOID: Type::Builtin
63
+ end
64
+
65
+ TYPE_INT8: Type::Builtin
66
+ TYPE_UINT8: Type::Builtin
67
+ TYPE_INT16: Type::Builtin
68
+ TYPE_UINT16: Type::Builtin
69
+ TYPE_INT32: Type::Builtin
70
+ TYPE_UINT32: Type::Builtin
71
+ TYPE_INT64: Type::Builtin
72
+ TYPE_UINT64: Type::Builtin
73
+ TYPE_LONG: Type::Builtin
74
+ TYPE_ULONG: Type::Builtin
75
+ TYPE_FLOAT32: Type::Builtin
76
+ TYPE_FLOAT64: Type::Builtin
77
+ TYPE_LONGDOUBLE: Type::Builtin
78
+ TYPE_POINTER: Type::Builtin
79
+ TYPE_BOOL: Type::Builtin
80
+ TYPE_STRING: Type::Builtin
81
+ TYPE_BUFFER_IN: Type::Builtin
82
+ TYPE_BUFFER_OUT: Type::Builtin
83
+ TYPE_BUFFER_INOUT: Type::Builtin
84
+ TYPE_VARARGS: Type::Builtin
85
+ TYPE_VOID: Type::Builtin
86
+ end
@@ -0,0 +1,49 @@
1
+ module FFI
2
+ class PlatformError < LoadError
3
+ end
4
+
5
+ module Platform
6
+ OS: String
7
+
8
+ OSVERSION: Integer
9
+
10
+ CPU: String
11
+
12
+ ARCH: String
13
+
14
+ IS_GNU: bool
15
+ IS_LINUX: bool
16
+ IS_MAC: bool
17
+ IS_FREEBSD: bool
18
+ IS_NETBSD: bool
19
+ IS_OPENBSD: bool
20
+ IS_DRAGONFLYBSD: bool
21
+ IS_SOLARIS: bool
22
+ IS_WINDOWS: bool
23
+ IS_BSD: bool
24
+
25
+ NAME: String
26
+
27
+ CONF_DIR: String
28
+
29
+ LIBPREFIX: String
30
+
31
+ LIBSUFFIX: String
32
+
33
+ LIBC: String
34
+
35
+ LITTLE_ENDIAN: Integer
36
+
37
+ BIG_ENDIAN: Integer
38
+
39
+ def self.bsd?: () -> bool
40
+ def self.windows?: () -> bool
41
+ def self.mac?: () -> bool
42
+ def self.solaris?: () -> bool
43
+ def self.unix?: () -> bool
44
+
45
+ private
46
+
47
+ def self.is_os: (String os) -> bool
48
+ end
49
+ end
@@ -0,0 +1,42 @@
1
+ module FFI
2
+ type pointer = Pointer::_ToPtr? | Integer
3
+ class Pointer < AbstractMemory
4
+ interface _ToPtr
5
+ def to_ptr: () -> Pointer
6
+ end
7
+ include _ToPtr
8
+
9
+ SIZE: Integer
10
+ NULL: Pointer
11
+ def self.size: () -> Integer
12
+
13
+ def initialize: (?AbstractMemory::type_size type, (Pointer | Integer) address) -> void
14
+ def +: (Integer offset) -> Pointer
15
+ def ==: (Pointer? other) -> bool
16
+ def address: () -> Integer
17
+ alias to_i address
18
+ def autorelease?: () -> bool
19
+ def autorelease=: (boolish autorelease) -> boolish
20
+ def free: () -> self
21
+ def inspect: ...
22
+ def null?: () -> bool
23
+ def order: () -> AbstractMemory::order_out
24
+ | (AbstractMemory::order_in) -> Pointer
25
+ def read: (ffi_type type) -> top
26
+ def read_array_of_type: (ffi_auto_type type, Symbol reader, Integer length) -> Array[top]
27
+ def read_string: (?Integer? len) -> String
28
+ def read_string_length: (Integer len) -> String
29
+ def read_string_to_null: () -> String
30
+ def slice: (Integer offset, Integer length) -> Pointer
31
+ def type_size: () -> Integer
32
+ def write: (ffi_type type, top value) -> nil
33
+ def write_array_of_type: (ffi_auto_type type, Symbol writer, Array[top]) -> self
34
+ def write_string: (String str, ?Integer? len) -> self
35
+ def write_string_length: (String str, Integer len) -> self
36
+ end
37
+
38
+ class MemoryPointer < Pointer
39
+ def initialize: (AbstractMemory::type_size size, ?Integer count, ?boolish clear) -> self
40
+ def self.from_string: (String s) -> instance
41
+ end
42
+ end
@@ -0,0 +1,76 @@
1
+ module FFI
2
+ class Struct[out P < AbstractMemory, unchecked out E]
3
+ type layout = Library::ffi_lib_type | singleton(StructLayout::Field) | [layout, Integer]
4
+
5
+ type ptr = Type::Mapped[
6
+ StructByReference[Struct[AbstractMemory, untyped], AbstractMemory],
7
+ AbstractMemory, Struct[AbstractMemory, untyped], untyped
8
+ ]
9
+ def self.ptr: (?untyped flags) -> ptr # https://github.com/ffi/ffi/issues/1073
10
+ alias self.by_ref self.ptr
11
+ def self.in: () -> ptr
12
+ def self.out: () -> ptr
13
+ def self.val: () -> StructByValue[singleton(Struct)]
14
+ alias self.by_value self.val
15
+
16
+ alias self.alloc_inout self.new
17
+ alias self.alloc_in self.new
18
+ alias self.alloc_out self.new
19
+ alias self.new_inout self.new
20
+ alias self.new_in self.new
21
+ alias self.new_out self.new
22
+
23
+ def self.auto_ptr: () -> Type::Mapped[
24
+ ManagedStructConverter[ManagedStruct[AutoPointer, untyped], AutoPointer],
25
+ Pointer, ManagedStruct[AutoPointer, untyped], untyped
26
+ ]
27
+ def self.layout: (*layout | Integer) -> StructLayout
28
+ | (Hash[Symbol, layout]) -> StructLayout
29
+ def self.size=: (Integer size) -> Integer
30
+
31
+ def self?.alignment: () -> Integer
32
+ def self?.members: () -> Array[Symbol]
33
+ def self?.offset_of: (Symbol name) -> Integer
34
+ def self?.offsets: () -> Array[[Symbol, Integer]]
35
+ def self?.size: -> Integer
36
+
37
+ def initialize: (?P pointer, *layout args) -> void
38
+ def []: (Symbol field_name) -> E
39
+ def []=: (Symbol field_name, E value) -> E
40
+ alias align alignment
41
+ def clear: () -> self
42
+ def layout: () -> StructLayout
43
+ def null?: () -> bool
44
+ def order: (AbstractMemory::order_in order) -> Struct[P, E]
45
+ | () -> AbstractMemory::order_out
46
+ def pointer: () -> P
47
+ alias to_ptr pointer
48
+ def values: () -> Array[E]
49
+
50
+ class InlineArray[out P < AbstractMemory, unchecked out E]
51
+ include Enumerable[E]
52
+ include AbstractMemory::_Size
53
+
54
+ def initialize: (P memory, StructLayout::Field field) -> self
55
+ def []: (Integer index) -> E
56
+ def []=: (Integer index, E value) -> E
57
+ def each: () { (E) -> void } -> self
58
+ def to_a: () -> Array[E]
59
+ def to_ptr: () -> P
60
+ end
61
+
62
+ class ManagedStructConverter[S < ManagedStruct[P, untyped], P < AutoPointer] < StructByReference[S, P]
63
+ def initialize: ...
64
+ def from_native: (Pointer ptr, untyped ctx) -> S
65
+ end
66
+ end
67
+
68
+ class ManagedStruct[out P < AutoPointer, unchecked out E] < Struct[P, E]
69
+ def self.release: (AbstractMemory ptr) -> void
70
+ def initialize: (Pointer pointer) -> self
71
+ end
72
+
73
+ class Union[out P < AbstractMemory, unchecked out E] < Struct[P, E]
74
+ def self.builder: () -> StructLayoutBuilder
75
+ end
76
+ end
@@ -0,0 +1,11 @@
1
+ module FFI
2
+ class StructByReference[S < Struct[P, untyped], P < AbstractMemory]
3
+ include DataConverter[P, S, untyped]
4
+ attr_reader struct_class: Struct[P, untyped]
5
+
6
+ def initialize: (S struct_class) -> void
7
+ def from_native: (P value, untyped ctx) -> S
8
+ def native_type: (?ffi_auto_type? type) -> Type
9
+ def to_native: (S? value, untyped ctx) -> P
10
+ end
11
+ end
@@ -0,0 +1,7 @@
1
+ module FFI
2
+ class StructByValue[C < singleton(Struct)] < Type
3
+ def initialize: (C) -> self
4
+ def layout: () -> StructLayout
5
+ def struct_class: () -> C
6
+ end
7
+ end
@@ -0,0 +1,9 @@
1
+ module FFI
2
+ class StructLayout
3
+ #TODO
4
+
5
+ class Field
6
+ #TODO
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,5 @@
1
+ module FFI
2
+ class StructLayoutBuilder
3
+ #TODO
4
+ end
5
+ end
data/sig/ffi/type.rbs ADDED
@@ -0,0 +1,39 @@
1
+ module FFI
2
+ class Type
3
+ class Array = ArrayType
4
+ class Function = FunctionType
5
+ class Struct = StructByValue
6
+
7
+ include AbstractMemory::_Size
8
+ def initialize: (Integer | Type value) -> self
9
+ def alignment: () -> Integer
10
+ def inspect: ...
11
+
12
+ class Builtin < Type
13
+ def inspect: ...
14
+ end
15
+
16
+ class Mapped[X < _DataConverter[N, R, C], N, R, C]
17
+ include _DataConverter[N, R, C]
18
+
19
+ def initialize: (X converter) -> self
20
+ def converter: () -> X
21
+ end
22
+ end
23
+
24
+ class ArrayType
25
+ def initialize: (Type component_type, Integer length) -> self
26
+ def element_type: -> Type
27
+ def length: -> Integer
28
+ end
29
+
30
+ class FunctionType < Type
31
+ def initialize:
32
+ (
33
+ ffi_type return_type, Array[ffi_type] param_types,
34
+ ?blocking: boolish, ?convention: Library::convention, ?enums: Enums
35
+ ) -> self
36
+ def param_types: () -> Array[Type]
37
+ def return_type: () -> Type
38
+ end
39
+ end
data/sig/ffi.rbs ADDED
@@ -0,0 +1,29 @@
1
+ module FFI
2
+ type ffi_type = Type | Symbol
3
+ type ffi_auto_type = ffi_type | DataConverter[untyped, untyped, untyped]
4
+ type type_map = Hash[Symbol | DataConverter[untyped, untyped, untyped], Type]
5
+
6
+ class CallbackInfo = FunctionType
7
+ class FunctionInfo = FunctionType
8
+ class NativeLibrary = DynamicLibrary
9
+
10
+ VERSION: String
11
+ TypeDefs: type_map
12
+
13
+ type current_process = Object
14
+ CURRENT_PROCESS: current_process
15
+ USE_THIS_PROCESS_AS_LIBRARY: current_process
16
+
17
+ class NotFoundError < LoadError
18
+ end
19
+
20
+ private def self.custom_typedefs: () -> type_map
21
+ def self.errno: () -> Integer
22
+ def self.errno=: (Integer) -> Integer
23
+ def self.find_type: (ffi_auto_type name, ?type_map? type_map) -> Type
24
+ def self.make_shareable: [T] (T obj) -> T
25
+ def self.map_library_name: (_ToS lib) -> String
26
+ def self.type_size: (ffi_auto_type type) -> Integer
27
+ def self.typedef: (ffi_auto_type old, Symbol add) -> Type
28
+ alias self.add_typedef self.typedef
29
+ end
metadata ADDED
@@ -0,0 +1,179 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ffi
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.17.3
5
+ platform: aarch64-mingw-ucrt
6
+ authors:
7
+ - Wayne Meissner
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies: []
12
+ description: Ruby FFI library
13
+ email: wmeissner@gmail.com
14
+ executables: []
15
+ extensions: []
16
+ extra_rdoc_files: []
17
+ files:
18
+ - CHANGELOG.md
19
+ - COPYING
20
+ - Gemfile
21
+ - LICENSE
22
+ - LICENSE.SPECS
23
+ - README.md
24
+ - Rakefile
25
+ - Steepfile
26
+ - ffi.gemspec
27
+ - lib/3.4/ffi_c.so
28
+ - lib/4.0/ffi_c.so
29
+ - lib/ffi.rb
30
+ - lib/ffi/abstract_memory.rb
31
+ - lib/ffi/autopointer.rb
32
+ - lib/ffi/buffer.rb
33
+ - lib/ffi/callback.rb
34
+ - lib/ffi/compat.rb
35
+ - lib/ffi/data_converter.rb
36
+ - lib/ffi/dynamic_library.rb
37
+ - lib/ffi/enum.rb
38
+ - lib/ffi/errno.rb
39
+ - lib/ffi/ffi.rb
40
+ - lib/ffi/function.rb
41
+ - lib/ffi/io.rb
42
+ - lib/ffi/library.rb
43
+ - lib/ffi/library_path.rb
44
+ - lib/ffi/managedstruct.rb
45
+ - lib/ffi/memorypointer.rb
46
+ - lib/ffi/platform.rb
47
+ - lib/ffi/platform/aarch64-darwin/types.conf
48
+ - lib/ffi/platform/aarch64-freebsd/types.conf
49
+ - lib/ffi/platform/aarch64-freebsd12/types.conf
50
+ - lib/ffi/platform/aarch64-linux/types.conf
51
+ - lib/ffi/platform/aarch64-openbsd/types.conf
52
+ - lib/ffi/platform/aarch64-windows/types.conf
53
+ - lib/ffi/platform/arm-freebsd/types.conf
54
+ - lib/ffi/platform/arm-freebsd12/types.conf
55
+ - lib/ffi/platform/arm-linux/types.conf
56
+ - lib/ffi/platform/hppa1.1-linux/types.conf
57
+ - lib/ffi/platform/hppa2.0-linux/types.conf
58
+ - lib/ffi/platform/i386-cygwin/types.conf
59
+ - lib/ffi/platform/i386-darwin/types.conf
60
+ - lib/ffi/platform/i386-freebsd/types.conf
61
+ - lib/ffi/platform/i386-freebsd12/types.conf
62
+ - lib/ffi/platform/i386-gnu/types.conf
63
+ - lib/ffi/platform/i386-linux/types.conf
64
+ - lib/ffi/platform/i386-netbsd/types.conf
65
+ - lib/ffi/platform/i386-openbsd/types.conf
66
+ - lib/ffi/platform/i386-solaris/types.conf
67
+ - lib/ffi/platform/i386-windows/types.conf
68
+ - lib/ffi/platform/ia64-linux/types.conf
69
+ - lib/ffi/platform/loongarch64-linux/types.conf
70
+ - lib/ffi/platform/mips-linux/types.conf
71
+ - lib/ffi/platform/mips64-linux/types.conf
72
+ - lib/ffi/platform/mips64el-linux/types.conf
73
+ - lib/ffi/platform/mipsel-linux/types.conf
74
+ - lib/ffi/platform/mipsisa32r6-linux/types.conf
75
+ - lib/ffi/platform/mipsisa32r6el-linux/types.conf
76
+ - lib/ffi/platform/mipsisa64r6-linux/types.conf
77
+ - lib/ffi/platform/mipsisa64r6el-linux/types.conf
78
+ - lib/ffi/platform/powerpc-aix/types.conf
79
+ - lib/ffi/platform/powerpc-darwin/types.conf
80
+ - lib/ffi/platform/powerpc-linux/types.conf
81
+ - lib/ffi/platform/powerpc-openbsd/types.conf
82
+ - lib/ffi/platform/powerpc64-linux/types.conf
83
+ - lib/ffi/platform/powerpc64le-linux/types.conf
84
+ - lib/ffi/platform/riscv64-linux/types.conf
85
+ - lib/ffi/platform/s390-linux/types.conf
86
+ - lib/ffi/platform/s390x-linux/types.conf
87
+ - lib/ffi/platform/sparc-linux/types.conf
88
+ - lib/ffi/platform/sparc-solaris/types.conf
89
+ - lib/ffi/platform/sparcv9-linux/types.conf
90
+ - lib/ffi/platform/sparcv9-openbsd/types.conf
91
+ - lib/ffi/platform/sparcv9-solaris/types.conf
92
+ - lib/ffi/platform/sw_64-linux/types.conf
93
+ - lib/ffi/platform/x86_64-cygwin/types.conf
94
+ - lib/ffi/platform/x86_64-darwin/types.conf
95
+ - lib/ffi/platform/x86_64-dragonflybsd/types.conf
96
+ - lib/ffi/platform/x86_64-freebsd/types.conf
97
+ - lib/ffi/platform/x86_64-freebsd12/types.conf
98
+ - lib/ffi/platform/x86_64-haiku/types.conf
99
+ - lib/ffi/platform/x86_64-linux/types.conf
100
+ - lib/ffi/platform/x86_64-msys/types.conf
101
+ - lib/ffi/platform/x86_64-netbsd/types.conf
102
+ - lib/ffi/platform/x86_64-openbsd/types.conf
103
+ - lib/ffi/platform/x86_64-solaris/types.conf
104
+ - lib/ffi/platform/x86_64-windows/types.conf
105
+ - lib/ffi/pointer.rb
106
+ - lib/ffi/struct.rb
107
+ - lib/ffi/struct_by_reference.rb
108
+ - lib/ffi/struct_layout.rb
109
+ - lib/ffi/struct_layout_builder.rb
110
+ - lib/ffi/tools/const_generator.rb
111
+ - lib/ffi/tools/generator.rb
112
+ - lib/ffi/tools/generator_task.rb
113
+ - lib/ffi/tools/struct_generator.rb
114
+ - lib/ffi/types.rb
115
+ - lib/ffi/union.rb
116
+ - lib/ffi/variadic.rb
117
+ - lib/ffi/version.rb
118
+ - samples/getlogin.rb
119
+ - samples/getpid.rb
120
+ - samples/gettimeofday.rb
121
+ - samples/hello.rb
122
+ - samples/hello_ractor.rb
123
+ - samples/inotify.rb
124
+ - samples/pty.rb
125
+ - samples/qsort.rb
126
+ - samples/qsort_ractor.rb
127
+ - sig/ffi.rbs
128
+ - sig/ffi/abstract_memory.rbs
129
+ - sig/ffi/auto_pointer.rbs
130
+ - sig/ffi/buffer.rbs
131
+ - sig/ffi/data_converter.rbs
132
+ - sig/ffi/dynamic_library.rbs
133
+ - sig/ffi/enum.rbs
134
+ - sig/ffi/errno.rbs
135
+ - sig/ffi/function.rbs
136
+ - sig/ffi/library.rbs
137
+ - sig/ffi/native_type.rbs
138
+ - sig/ffi/platform.rbs
139
+ - sig/ffi/pointer.rbs
140
+ - sig/ffi/struct.rbs
141
+ - sig/ffi/struct_by_reference.rbs
142
+ - sig/ffi/struct_by_value.rbs
143
+ - sig/ffi/struct_layout.rbs
144
+ - sig/ffi/struct_layout_builder.rbs
145
+ - sig/ffi/type.rbs
146
+ homepage: https://github.com/ffi/ffi/wiki
147
+ licenses:
148
+ - BSD-3-Clause
149
+ metadata:
150
+ bug_tracker_uri: https://github.com/ffi/ffi/issues
151
+ changelog_uri: https://github.com/ffi/ffi/blob/master/CHANGELOG.md
152
+ documentation_uri: https://github.com/ffi/ffi/wiki
153
+ wiki_uri: https://github.com/ffi/ffi/wiki
154
+ source_code_uri: https://github.com/ffi/ffi/
155
+ mailing_list_uri: http://groups.google.com/group/ruby-ffi
156
+ rubygems_mfa_required: 'true'
157
+ rdoc_options:
158
+ - "--exclude=ext/ffi_c/.*\\.o$"
159
+ - "--exclude=ffi_c\\.(bundle|so)$"
160
+ require_paths:
161
+ - lib
162
+ required_ruby_version: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '3.4'
167
+ - - "<"
168
+ - !ruby/object:Gem::Version
169
+ version: 4.1.dev
170
+ required_rubygems_version: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - ">="
173
+ - !ruby/object:Gem::Version
174
+ version: '0'
175
+ requirements: []
176
+ rubygems_version: 4.0.3
177
+ specification_version: 4
178
+ summary: Ruby FFI
179
+ test_files: []