ffi 1.12.2-java → 1.13.0-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. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +3 -3
  4. data/.appveyor.yml +30 -0
  5. data/.github/workflows/ci.yml +64 -0
  6. data/.gitignore +25 -0
  7. data/.gitmodules +4 -0
  8. data/.travis.yml +58 -0
  9. data/.yardopts +5 -0
  10. data/CHANGELOG.md +30 -0
  11. data/Gemfile +17 -0
  12. data/LICENSE.SPECS +22 -0
  13. data/Rakefile +24 -43
  14. data/ffi.gemspec +43 -0
  15. data/lib/ffi.rb +28 -0
  16. data/lib/ffi/autopointer.rb +203 -0
  17. data/lib/ffi/buffer.rb +4 -0
  18. data/lib/ffi/callback.rb +4 -0
  19. data/lib/ffi/data_converter.rb +67 -0
  20. data/lib/ffi/enum.rb +296 -0
  21. data/lib/ffi/errno.rb +43 -0
  22. data/lib/ffi/ffi.rb +46 -0
  23. data/lib/ffi/io.rb +62 -0
  24. data/lib/ffi/library.rb +592 -0
  25. data/lib/ffi/managedstruct.rb +84 -0
  26. data/lib/ffi/memorypointer.rb +1 -0
  27. data/lib/ffi/platform.rb +175 -0
  28. data/lib/ffi/platform/aarch64-freebsd/types.conf +128 -0
  29. data/lib/ffi/platform/aarch64-freebsd12/types.conf +128 -0
  30. data/lib/ffi/platform/aarch64-linux/types.conf +104 -0
  31. data/lib/ffi/platform/arm-freebsd/types.conf +152 -0
  32. data/lib/ffi/platform/arm-freebsd12/types.conf +152 -0
  33. data/lib/ffi/platform/arm-linux/types.conf +132 -0
  34. data/lib/ffi/platform/i386-cygwin/types.conf +3 -0
  35. data/lib/ffi/platform/i386-darwin/types.conf +100 -0
  36. data/lib/ffi/platform/i386-freebsd/types.conf +152 -0
  37. data/lib/ffi/platform/i386-freebsd12/types.conf +152 -0
  38. data/lib/ffi/platform/i386-gnu/types.conf +107 -0
  39. data/lib/ffi/platform/i386-linux/types.conf +103 -0
  40. data/lib/ffi/platform/i386-netbsd/types.conf +126 -0
  41. data/lib/ffi/platform/i386-openbsd/types.conf +128 -0
  42. data/lib/ffi/platform/i386-solaris/types.conf +122 -0
  43. data/lib/ffi/platform/i386-windows/types.conf +52 -0
  44. data/lib/ffi/platform/ia64-linux/types.conf +104 -0
  45. data/lib/ffi/platform/mips-linux/types.conf +102 -0
  46. data/lib/ffi/platform/mips64-linux/types.conf +104 -0
  47. data/lib/ffi/platform/mips64el-linux/types.conf +104 -0
  48. data/lib/ffi/platform/mipsel-linux/types.conf +102 -0
  49. data/lib/ffi/platform/mipsisa32r6-linux/types.conf +102 -0
  50. data/lib/ffi/platform/mipsisa32r6el-linux/types.conf +102 -0
  51. data/lib/ffi/platform/mipsisa64r6-linux/types.conf +104 -0
  52. data/lib/ffi/platform/mipsisa64r6el-linux/types.conf +104 -0
  53. data/lib/ffi/platform/powerpc-aix/types.conf +180 -0
  54. data/lib/ffi/platform/powerpc-darwin/types.conf +100 -0
  55. data/lib/ffi/platform/powerpc-linux/types.conf +130 -0
  56. data/lib/ffi/platform/powerpc-openbsd/types.conf +156 -0
  57. data/lib/ffi/platform/powerpc64-linux/types.conf +104 -0
  58. data/lib/ffi/platform/s390-linux/types.conf +102 -0
  59. data/lib/ffi/platform/s390x-linux/types.conf +102 -0
  60. data/lib/ffi/platform/sparc-linux/types.conf +102 -0
  61. data/lib/ffi/platform/sparc-solaris/types.conf +128 -0
  62. data/lib/ffi/platform/sparc64-linux/types.conf +102 -0
  63. data/lib/ffi/platform/sparcv9-openbsd/types.conf +156 -0
  64. data/lib/ffi/platform/sparcv9-solaris/types.conf +128 -0
  65. data/lib/ffi/platform/x86_64-cygwin/types.conf +3 -0
  66. data/lib/ffi/platform/x86_64-darwin/types.conf +130 -0
  67. data/lib/ffi/platform/x86_64-dragonflybsd/types.conf +148 -0
  68. data/lib/ffi/platform/x86_64-freebsd/types.conf +128 -0
  69. data/lib/ffi/platform/x86_64-freebsd12/types.conf +158 -0
  70. data/lib/ffi/platform/x86_64-linux/types.conf +132 -0
  71. data/lib/ffi/platform/x86_64-netbsd/types.conf +128 -0
  72. data/lib/ffi/platform/x86_64-openbsd/types.conf +134 -0
  73. data/lib/ffi/platform/x86_64-solaris/types.conf +122 -0
  74. data/lib/ffi/platform/x86_64-windows/types.conf +52 -0
  75. data/lib/ffi/pointer.rb +167 -0
  76. data/lib/ffi/struct.rb +316 -0
  77. data/lib/ffi/struct_by_reference.rb +72 -0
  78. data/lib/ffi/struct_layout.rb +96 -0
  79. data/lib/ffi/struct_layout_builder.rb +227 -0
  80. data/lib/ffi/tools/const_generator.rb +230 -0
  81. data/lib/ffi/tools/generator.rb +105 -0
  82. data/lib/ffi/tools/generator_task.rb +32 -0
  83. data/lib/ffi/tools/struct_generator.rb +194 -0
  84. data/lib/ffi/tools/types_generator.rb +137 -0
  85. data/lib/ffi/types.rb +194 -0
  86. data/lib/ffi/union.rb +43 -0
  87. data/lib/ffi/variadic.rb +78 -0
  88. data/lib/ffi/version.rb +3 -0
  89. data/samples/getlogin.rb +8 -0
  90. data/samples/getpid.rb +8 -0
  91. data/samples/gettimeofday.rb +18 -0
  92. data/samples/hello.rb +8 -0
  93. data/samples/inotify.rb +60 -0
  94. data/samples/pty.rb +75 -0
  95. data/samples/qsort.rb +20 -0
  96. metadata +192 -24
  97. metadata.gz.sig +0 -0
@@ -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,7 +1,7 @@
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.13.0
5
5
  platform: java
6
6
  authors:
7
7
  - Wayne Meissner
@@ -10,51 +10,219 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
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=
13
+ MIIDPDCCAiSgAwIBAgIBATANBgkqhkiG9w0BAQsFADAkMSIwIAYDVQQDDBl0cmF2
14
+ aXMtY2kvREM9ZHVtbXkvREM9b3JnMB4XDTIwMDQwODExMDA0MFoXDTIxMDQwODEx
15
+ MDA0MFowJDEiMCAGA1UEAwwZdHJhdmlzLWNpL0RDPWR1bW15L0RDPW9yZzCCASIw
16
+ DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK+5uh+zqCXKho0zXIaLmJD6YDpa
17
+ l07nJ+PQFcMBYgsKA2ip01THj3DVYwP/va6hYgqPmxEJB3tsEthKnHVHm0dgqqg/
18
+ gfyDFU0ZfbSYKeNlZQRIdddKPc6dNbmtY2gBWFt6YOZnBccsgJmSUAbh0a9xhVbm
19
+ qAStn/q7eq9iW9+12AB9HM+QCWrsCAXEHGGNENDAK9HtHwBs4KsneiIQY5rd/Mzs
20
+ Ii25XXnDUa1NjC4u/mMuJXBpWLw2rEAQkzEFQBZR0W0ehm9Mi4TokhLy/QH8GRaH
21
+ 0KADzpk1cxuOrEBIhy6ISQs7g/tI6YTePAmDMTsodov02FZCcMpoxOifpFkCAwEA
22
+ AaN5MHcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFOTn5ek+QtcI
23
+ g+ZglIvRPAPGoXvLMB4GA1UdEQQXMBWBE3RyYXZpcy1jaUBkdW1teS5vcmcwHgYD
24
+ VR0SBBcwFYETdHJhdmlzLWNpQGR1bW15Lm9yZzANBgkqhkiG9w0BAQsFAAOCAQEA
25
+ Xuaj6r4QXrQwDdrmT2sPgWiS5/CRRiSwyWsE1jfM0q5spzuKRIy+vSfmj6isScGf
26
+ vT7nwXus+3IcISSdfUddGqf/L54z6U9dVc+V5SH+QuptDRPgQ+fPJFKn8uFARJDU
27
+ 9qNNSKpyoXXHksouuRV4dXVYRChfhLiavXaR0jNmi6qgTsSSvyKD2aObyVdVUzxr
28
+ Umpavc3v5BbquwF9DlKeHZwU/qP0ynCZg/Z9CFa18e5JfyBSFXHXDA0YXE6+b4Dh
29
+ +QvsIa+rEKMYbn0IActnL2SCNlGcttHDcH0AkctmwmAN2r6LTInUBCJoahaIeIXU
30
+ RE1H1QyCW3SV93CTTKaR2A==
31
31
  -----END CERTIFICATE-----
32
- date: 2020-02-03 00:00:00.000000000 Z
33
- dependencies: []
32
+ date: 2020-06-01 00:00:00.000000000 Z
33
+ dependencies:
34
+ - !ruby/object:Gem::Dependency
35
+ name: rake
36
+ requirement: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '13.0'
41
+ type: :development
42
+ prerelease: false
43
+ version_requirements: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '13.0'
48
+ - !ruby/object:Gem::Dependency
49
+ name: rake-compiler
50
+ requirement: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.0'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: rake-compiler-dock
64
+ requirement: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.0'
69
+ type: :development
70
+ prerelease: false
71
+ version_requirements: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1.0'
76
+ - !ruby/object:Gem::Dependency
77
+ name: rspec
78
+ requirement: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 2.14.1
83
+ type: :development
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 2.14.1
90
+ - !ruby/object:Gem::Dependency
91
+ name: rubygems-tasks
92
+ requirement: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 0.2.4
97
+ type: :development
98
+ prerelease: false
99
+ version_requirements: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 0.2.4
34
104
  description: Ruby FFI library
35
105
  email: wmeissner@gmail.com
36
106
  executables: []
37
107
  extensions: []
38
108
  extra_rdoc_files: []
39
109
  files:
110
+ - ".appveyor.yml"
111
+ - ".github/workflows/ci.yml"
112
+ - ".gitignore"
113
+ - ".gitmodules"
114
+ - ".travis.yml"
115
+ - ".yardopts"
40
116
  - CHANGELOG.md
41
117
  - COPYING
118
+ - Gemfile
42
119
  - LICENSE
120
+ - LICENSE.SPECS
43
121
  - README.md
44
122
  - Rakefile
123
+ - ffi.gemspec
124
+ - lib/ffi.rb
125
+ - lib/ffi/autopointer.rb
126
+ - lib/ffi/buffer.rb
127
+ - lib/ffi/callback.rb
128
+ - lib/ffi/data_converter.rb
129
+ - lib/ffi/enum.rb
130
+ - lib/ffi/errno.rb
131
+ - lib/ffi/ffi.rb
132
+ - lib/ffi/io.rb
133
+ - lib/ffi/library.rb
134
+ - lib/ffi/managedstruct.rb
135
+ - lib/ffi/memorypointer.rb
136
+ - lib/ffi/platform.rb
137
+ - lib/ffi/platform/aarch64-freebsd/types.conf
138
+ - lib/ffi/platform/aarch64-freebsd12/types.conf
139
+ - lib/ffi/platform/aarch64-linux/types.conf
140
+ - lib/ffi/platform/arm-freebsd/types.conf
141
+ - lib/ffi/platform/arm-freebsd12/types.conf
142
+ - lib/ffi/platform/arm-linux/types.conf
143
+ - lib/ffi/platform/i386-cygwin/types.conf
144
+ - lib/ffi/platform/i386-darwin/types.conf
145
+ - lib/ffi/platform/i386-freebsd/types.conf
146
+ - lib/ffi/platform/i386-freebsd12/types.conf
147
+ - lib/ffi/platform/i386-gnu/types.conf
148
+ - lib/ffi/platform/i386-linux/types.conf
149
+ - lib/ffi/platform/i386-netbsd/types.conf
150
+ - lib/ffi/platform/i386-openbsd/types.conf
151
+ - lib/ffi/platform/i386-solaris/types.conf
152
+ - lib/ffi/platform/i386-windows/types.conf
153
+ - lib/ffi/platform/ia64-linux/types.conf
154
+ - lib/ffi/platform/mips-linux/types.conf
155
+ - lib/ffi/platform/mips64-linux/types.conf
156
+ - lib/ffi/platform/mips64el-linux/types.conf
157
+ - lib/ffi/platform/mipsel-linux/types.conf
158
+ - lib/ffi/platform/mipsisa32r6-linux/types.conf
159
+ - lib/ffi/platform/mipsisa32r6el-linux/types.conf
160
+ - lib/ffi/platform/mipsisa64r6-linux/types.conf
161
+ - lib/ffi/platform/mipsisa64r6el-linux/types.conf
162
+ - lib/ffi/platform/powerpc-aix/types.conf
163
+ - lib/ffi/platform/powerpc-darwin/types.conf
164
+ - lib/ffi/platform/powerpc-linux/types.conf
165
+ - lib/ffi/platform/powerpc-openbsd/types.conf
166
+ - lib/ffi/platform/powerpc64-linux/types.conf
167
+ - lib/ffi/platform/s390-linux/types.conf
168
+ - lib/ffi/platform/s390x-linux/types.conf
169
+ - lib/ffi/platform/sparc-linux/types.conf
170
+ - lib/ffi/platform/sparc-solaris/types.conf
171
+ - lib/ffi/platform/sparc64-linux/types.conf
172
+ - lib/ffi/platform/sparcv9-openbsd/types.conf
173
+ - lib/ffi/platform/sparcv9-solaris/types.conf
174
+ - lib/ffi/platform/x86_64-cygwin/types.conf
175
+ - lib/ffi/platform/x86_64-darwin/types.conf
176
+ - lib/ffi/platform/x86_64-dragonflybsd/types.conf
177
+ - lib/ffi/platform/x86_64-freebsd/types.conf
178
+ - lib/ffi/platform/x86_64-freebsd12/types.conf
179
+ - lib/ffi/platform/x86_64-linux/types.conf
180
+ - lib/ffi/platform/x86_64-netbsd/types.conf
181
+ - lib/ffi/platform/x86_64-openbsd/types.conf
182
+ - lib/ffi/platform/x86_64-solaris/types.conf
183
+ - lib/ffi/platform/x86_64-windows/types.conf
184
+ - lib/ffi/pointer.rb
185
+ - lib/ffi/struct.rb
186
+ - lib/ffi/struct_by_reference.rb
187
+ - lib/ffi/struct_layout.rb
188
+ - lib/ffi/struct_layout_builder.rb
189
+ - lib/ffi/tools/const_generator.rb
190
+ - lib/ffi/tools/generator.rb
191
+ - lib/ffi/tools/generator_task.rb
192
+ - lib/ffi/tools/struct_generator.rb
193
+ - lib/ffi/tools/types_generator.rb
194
+ - lib/ffi/types.rb
195
+ - lib/ffi/union.rb
196
+ - lib/ffi/variadic.rb
197
+ - lib/ffi/version.rb
198
+ - samples/getlogin.rb
199
+ - samples/getpid.rb
200
+ - samples/gettimeofday.rb
201
+ - samples/hello.rb
202
+ - samples/inotify.rb
203
+ - samples/pty.rb
204
+ - samples/qsort.rb
45
205
  homepage: https://github.com/ffi/ffi/wiki
46
206
  licenses:
47
207
  - BSD-3-Clause
48
- metadata: {}
208
+ metadata:
209
+ bug_tracker_uri: https://github.com/ffi/ffi/issues
210
+ changelog_uri: https://github.com/ffi/ffi/blob/master/CHANGELOG.md
211
+ documentation_uri: https://github.com/ffi/ffi/wiki
212
+ wiki_uri: https://github.com/ffi/ffi/wiki
213
+ source_code_uri: https://github.com/ffi/ffi/
214
+ mailing_list_uri: http://groups.google.com/group/ruby-ffi
49
215
  post_install_message:
50
- rdoc_options: []
216
+ rdoc_options:
217
+ - "--exclude=ext/ffi_c/.*\\.o$"
218
+ - "--exclude=ffi_c\\.(bundle|so)$"
51
219
  require_paths:
52
220
  - lib
53
221
  required_ruby_version: !ruby/object:Gem::Requirement
54
222
  requirements:
55
223
  - - ">="
56
224
  - !ruby/object:Gem::Version
57
- version: '0'
225
+ version: '2.3'
58
226
  required_rubygems_version: !ruby/object:Gem::Requirement
59
227
  requirements:
60
228
  - - ">="
metadata.gz.sig CHANGED
Binary file