ffi 1.12.2-java → 1.14.2-java

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 (97) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +82 -0
  3. data/Gemfile +17 -0
  4. data/LICENSE.SPECS +22 -0
  5. data/README.md +10 -2
  6. data/Rakefile +31 -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 +167 -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 +175 -29
  95. checksums.yaml.gz.sig +0 -3
  96. data.tar.gz.sig +0 -3
  97. metadata.gz.sig +0 -4
@@ -0,0 +1,20 @@
1
+ require 'ffi'
2
+
3
+ module LibC
4
+ extend FFI::Library
5
+ ffi_lib FFI::Library::LIBC
6
+ callback :qsort_cmp, [ :pointer, :pointer ], :int
7
+ attach_function :qsort, [ :pointer, :ulong, :ulong, :qsort_cmp ], :int
8
+ end
9
+
10
+ p = FFI::MemoryPointer.new(:int, 2)
11
+ p.put_array_of_int32(0, [ 2, 1 ])
12
+ puts "ptr=#{p.inspect}"
13
+ puts "Before qsort #{p.get_array_of_int32(0, 2).join(', ')}"
14
+ LibC.qsort(p, 2, 4) do |p1, p2|
15
+ i1 = p1.get_int32(0)
16
+ i2 = p2.get_int32(0)
17
+ puts "In block: comparing #{i1} and #{i2}"
18
+ i1 < i2 ? -1 : i1 > i2 ? 1 : 0
19
+ end
20
+ puts "After qsort #{p.get_array_of_int32(0, 2).join(', ')}"
metadata CHANGED
@@ -1,36 +1,85 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ffi
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.12.2
4
+ version: 1.14.2
5
5
  platform: java
6
6
  authors:
7
7
  - Wayne Meissner
8
8
  autorequire:
9
9
  bindir: bin
10
- cert_chain:
11
- - |
12
- -----BEGIN CERTIFICATE-----
13
- MIIDLjCCAhagAwIBAgIBBzANBgkqhkiG9w0BAQsFADA9MQ4wDAYDVQQDDAVrYW5p
14
- czEXMBUGCgmSJomT8ixkARkWB2NvbWNhcmQxEjAQBgoJkiaJk/IsZAEZFgJkZTAe
15
- Fw0xOTAzMTgxMTAxMTJaFw0yMDAzMTcxMTAxMTJaMD0xDjAMBgNVBAMMBWthbmlz
16
- MRcwFQYKCZImiZPyLGQBGRYHY29tY2FyZDESMBAGCgmSJomT8ixkARkWAmRlMIIB
17
- IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApop+rNmg35bzRugZ21VMGqI6
18
- HGzPLO4VHYncWn/xmgPU/ZMcZdfj6MzIaZJ/czXyt4eHpBk1r8QOV3gBXnRXEjVW
19
- 9xi+EdVOkTV2/AVFKThcbTAQGiF/bT1n2M+B1GTybRzMg6hyhOJeGPqIhLfJEpxn
20
- lJi4+ENAVT4MpqHEAGB8yFoPC0GqiOHQsdHxQV3P3c2OZqG+yJey74QtwA2tLcLn
21
- Q53c63+VLGsOjODl1yPn/2ejyq8qWu6ahfTxiIlSar2UbwtaQGBDFdb2CXgEufXT
22
- L7oaPxlmj+Q2oLOfOnInd2Oxop59HoJCQPsg8f921J43NCQGA8VHK6paxIRDLQID
23
- AQABozkwNzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUvgTdT7fe
24
- x17ugO3IOsjEJwW7KP4wDQYJKoZIhvcNAQELBQADggEBAEDXe/Rdgh+rU+9cArNb
25
- GiuiropNUeku47BL8dzhuel9YsZ5o/ueUQg3nFy2qHAkVE6hpKgNN2fGUMVc5Aca
26
- J3AUdSFWtIFfU37O3iaIcPGxCOZiRlYmi66lclwmX/z+yoMDpP38aOTwsC8oMI3y
27
- 1j48yD5L3zRI7tf62zrcMlCNjDr9+HA3pLHP3arJ898Ln5Kob9Aj5FKOqzj68K2k
28
- SiOk45TqI+62R+glrx0aqJi6/HNf2bPuCXM3kug+ywOqWPhWnopNm25oIe4wYCJj
29
- fdp2GoA2ezoVxsXo04CSIMo+0jIcv3Vq8RZ6XHo8zPEvBRNEASKTbMqqefFM0LMX
30
- y/U=
31
- -----END CERTIFICATE-----
32
- date: 2020-02-03 00:00:00.000000000 Z
33
- dependencies: []
10
+ cert_chain: []
11
+ date: 2020-12-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '13.0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '13.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake-compiler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake-compiler-dock
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 2.14.1
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 2.14.1
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubygems-tasks
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.2.4
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.2.4
34
83
  description: Ruby FFI library
35
84
  email: wmeissner@gmail.com
36
85
  executables: []
@@ -39,29 +88,126 @@ extra_rdoc_files: []
39
88
  files:
40
89
  - CHANGELOG.md
41
90
  - COPYING
91
+ - Gemfile
42
92
  - LICENSE
93
+ - LICENSE.SPECS
43
94
  - README.md
44
95
  - Rakefile
96
+ - ffi.gemspec
97
+ - lib/ffi.rb
98
+ - lib/ffi/abstract_memory.rb
99
+ - lib/ffi/autopointer.rb
100
+ - lib/ffi/buffer.rb
101
+ - lib/ffi/callback.rb
102
+ - lib/ffi/data_converter.rb
103
+ - lib/ffi/enum.rb
104
+ - lib/ffi/errno.rb
105
+ - lib/ffi/ffi.rb
106
+ - lib/ffi/io.rb
107
+ - lib/ffi/library.rb
108
+ - lib/ffi/managedstruct.rb
109
+ - lib/ffi/memorypointer.rb
110
+ - lib/ffi/platform.rb
111
+ - lib/ffi/platform/aarch64-darwin/types.conf
112
+ - lib/ffi/platform/aarch64-freebsd/types.conf
113
+ - lib/ffi/platform/aarch64-freebsd12/types.conf
114
+ - lib/ffi/platform/aarch64-linux/types.conf
115
+ - lib/ffi/platform/aarch64-openbsd/types.conf
116
+ - lib/ffi/platform/arm-freebsd/types.conf
117
+ - lib/ffi/platform/arm-freebsd12/types.conf
118
+ - lib/ffi/platform/arm-linux/types.conf
119
+ - lib/ffi/platform/i386-cygwin/types.conf
120
+ - lib/ffi/platform/i386-darwin/types.conf
121
+ - lib/ffi/platform/i386-freebsd/types.conf
122
+ - lib/ffi/platform/i386-freebsd12/types.conf
123
+ - lib/ffi/platform/i386-gnu/types.conf
124
+ - lib/ffi/platform/i386-linux/types.conf
125
+ - lib/ffi/platform/i386-netbsd/types.conf
126
+ - lib/ffi/platform/i386-openbsd/types.conf
127
+ - lib/ffi/platform/i386-solaris/types.conf
128
+ - lib/ffi/platform/i386-windows/types.conf
129
+ - lib/ffi/platform/ia64-linux/types.conf
130
+ - lib/ffi/platform/mips-linux/types.conf
131
+ - lib/ffi/platform/mips64-linux/types.conf
132
+ - lib/ffi/platform/mips64el-linux/types.conf
133
+ - lib/ffi/platform/mipsel-linux/types.conf
134
+ - lib/ffi/platform/mipsisa32r6-linux/types.conf
135
+ - lib/ffi/platform/mipsisa32r6el-linux/types.conf
136
+ - lib/ffi/platform/mipsisa64r6-linux/types.conf
137
+ - lib/ffi/platform/mipsisa64r6el-linux/types.conf
138
+ - lib/ffi/platform/powerpc-aix/types.conf
139
+ - lib/ffi/platform/powerpc-darwin/types.conf
140
+ - lib/ffi/platform/powerpc-linux/types.conf
141
+ - lib/ffi/platform/powerpc-openbsd/types.conf
142
+ - lib/ffi/platform/powerpc64-linux/types.conf
143
+ - lib/ffi/platform/s390-linux/types.conf
144
+ - lib/ffi/platform/s390x-linux/types.conf
145
+ - lib/ffi/platform/sparc-linux/types.conf
146
+ - lib/ffi/platform/sparc-solaris/types.conf
147
+ - lib/ffi/platform/sparc64-linux/types.conf
148
+ - lib/ffi/platform/sparcv9-openbsd/types.conf
149
+ - lib/ffi/platform/sparcv9-solaris/types.conf
150
+ - lib/ffi/platform/x86_64-cygwin/types.conf
151
+ - lib/ffi/platform/x86_64-darwin/types.conf
152
+ - lib/ffi/platform/x86_64-dragonflybsd/types.conf
153
+ - lib/ffi/platform/x86_64-freebsd/types.conf
154
+ - lib/ffi/platform/x86_64-freebsd12/types.conf
155
+ - lib/ffi/platform/x86_64-haiku/types.conf
156
+ - lib/ffi/platform/x86_64-linux/types.conf
157
+ - lib/ffi/platform/x86_64-msys/types.conf
158
+ - lib/ffi/platform/x86_64-netbsd/types.conf
159
+ - lib/ffi/platform/x86_64-openbsd/types.conf
160
+ - lib/ffi/platform/x86_64-solaris/types.conf
161
+ - lib/ffi/platform/x86_64-windows/types.conf
162
+ - lib/ffi/pointer.rb
163
+ - lib/ffi/struct.rb
164
+ - lib/ffi/struct_by_reference.rb
165
+ - lib/ffi/struct_layout.rb
166
+ - lib/ffi/struct_layout_builder.rb
167
+ - lib/ffi/tools/const_generator.rb
168
+ - lib/ffi/tools/generator.rb
169
+ - lib/ffi/tools/generator_task.rb
170
+ - lib/ffi/tools/struct_generator.rb
171
+ - lib/ffi/tools/types_generator.rb
172
+ - lib/ffi/types.rb
173
+ - lib/ffi/union.rb
174
+ - lib/ffi/variadic.rb
175
+ - lib/ffi/version.rb
176
+ - samples/getlogin.rb
177
+ - samples/getpid.rb
178
+ - samples/gettimeofday.rb
179
+ - samples/hello.rb
180
+ - samples/inotify.rb
181
+ - samples/pty.rb
182
+ - samples/qsort.rb
45
183
  homepage: https://github.com/ffi/ffi/wiki
46
184
  licenses:
47
185
  - BSD-3-Clause
48
- metadata: {}
186
+ metadata:
187
+ bug_tracker_uri: https://github.com/ffi/ffi/issues
188
+ changelog_uri: https://github.com/ffi/ffi/blob/master/CHANGELOG.md
189
+ documentation_uri: https://github.com/ffi/ffi/wiki
190
+ wiki_uri: https://github.com/ffi/ffi/wiki
191
+ source_code_uri: https://github.com/ffi/ffi/
192
+ mailing_list_uri: http://groups.google.com/group/ruby-ffi
49
193
  post_install_message:
50
- rdoc_options: []
194
+ rdoc_options:
195
+ - "--exclude=ext/ffi_c/.*\\.o$"
196
+ - "--exclude=ffi_c\\.(bundle|so)$"
51
197
  require_paths:
52
198
  - lib
53
199
  required_ruby_version: !ruby/object:Gem::Requirement
54
200
  requirements:
55
201
  - - ">="
56
202
  - !ruby/object:Gem::Version
57
- version: '0'
203
+ version: '2.3'
58
204
  required_rubygems_version: !ruby/object:Gem::Requirement
59
205
  requirements:
60
206
  - - ">="
61
207
  - !ruby/object:Gem::Version
62
208
  version: '0'
63
209
  requirements: []
64
- rubygems_version: 3.1.2
210
+ rubygems_version: 3.1.4
65
211
  signing_key:
66
212
  specification_version: 4
67
213
  summary: Ruby FFI
@@ -1,3 +0,0 @@
1
- h�e�k:��{M�BS7$����gis �~�\ɂ�۶���z&�v>����]!5X`���;K�;�N/�,�@�,�e�Z��
2
- }�m�e�y�D���4�`geA�B�2�Mڥ�2}��Tv��
3
- V�������8��ȱs6�{ư>���[.��3<��}t��n���R��1��[.3�,��� �y�E��� �<���8�qHo�a'�R���-�m���J��'\:Z��VH���E���bp�n'A����U�b����9u
data.tar.gz.sig DELETED
@@ -1,3 +0,0 @@
1
- uX����ɦ����a=^`�+ݹO���E֋@��:ή]@�+��Q��{���אĭQ;����F��?����m�
2
- ��!s��6�/Ӝ�`�WQ>
3
- �}~Ȁn!�`/1�����x�nἇ*�N��7E������p��v��p\�`�
metadata.gz.sig DELETED
@@ -1,4 +0,0 @@
1
- Dh�W���-�-�9j6��Ost��K8���&<}i��]{��ҁ�[�����(�k�Hs��R��[e$VHx'2�ȁq�?�%�*�2Fڷ�P����r����y�9�k�y�N9�GNL�4���;3rxt��r�\
2
- �&��:�U�=�Ä�z^��X*+u1D���>2L�5?c�ӭ};�j�6��w�p8�wÌ����|����c:b�r�7� &_σ
3
- ���h��s
4
- Q0�\�-.ڹ�Ծ