ffi 1.12.2-java → 1.13.0-java

Sign up to get free protection for your applications and to get access to all the features.
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