ffi 1.11.2-java → 1.13.1-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 (98) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  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 +75 -0
  11. data/Gemfile +17 -0
  12. data/LICENSE.SPECS +22 -0
  13. data/README.md +10 -1
  14. data/Rakefile +24 -43
  15. data/ffi.gemspec +43 -0
  16. data/lib/ffi.rb +28 -0
  17. data/lib/ffi/autopointer.rb +203 -0
  18. data/lib/ffi/buffer.rb +4 -0
  19. data/lib/ffi/callback.rb +4 -0
  20. data/lib/ffi/data_converter.rb +67 -0
  21. data/lib/ffi/enum.rb +296 -0
  22. data/lib/ffi/errno.rb +43 -0
  23. data/lib/ffi/ffi.rb +46 -0
  24. data/lib/ffi/io.rb +62 -0
  25. data/lib/ffi/library.rb +592 -0
  26. data/lib/ffi/managedstruct.rb +84 -0
  27. data/lib/ffi/memorypointer.rb +1 -0
  28. data/lib/ffi/platform.rb +179 -0
  29. data/lib/ffi/platform/aarch64-freebsd/types.conf +128 -0
  30. data/lib/ffi/platform/aarch64-freebsd12/types.conf +128 -0
  31. data/lib/ffi/platform/aarch64-linux/types.conf +104 -0
  32. data/lib/ffi/platform/arm-freebsd/types.conf +152 -0
  33. data/lib/ffi/platform/arm-freebsd12/types.conf +152 -0
  34. data/lib/ffi/platform/arm-linux/types.conf +132 -0
  35. data/lib/ffi/platform/i386-cygwin/types.conf +3 -0
  36. data/lib/ffi/platform/i386-darwin/types.conf +100 -0
  37. data/lib/ffi/platform/i386-freebsd/types.conf +152 -0
  38. data/lib/ffi/platform/i386-freebsd12/types.conf +152 -0
  39. data/lib/ffi/platform/i386-gnu/types.conf +107 -0
  40. data/lib/ffi/platform/i386-linux/types.conf +103 -0
  41. data/lib/ffi/platform/i386-netbsd/types.conf +126 -0
  42. data/lib/ffi/platform/i386-openbsd/types.conf +128 -0
  43. data/lib/ffi/platform/i386-solaris/types.conf +122 -0
  44. data/lib/ffi/platform/i386-windows/types.conf +52 -0
  45. data/lib/ffi/platform/ia64-linux/types.conf +104 -0
  46. data/lib/ffi/platform/mips-linux/types.conf +102 -0
  47. data/lib/ffi/platform/mips64-linux/types.conf +104 -0
  48. data/lib/ffi/platform/mips64el-linux/types.conf +104 -0
  49. data/lib/ffi/platform/mipsel-linux/types.conf +102 -0
  50. data/lib/ffi/platform/mipsisa32r6-linux/types.conf +102 -0
  51. data/lib/ffi/platform/mipsisa32r6el-linux/types.conf +102 -0
  52. data/lib/ffi/platform/mipsisa64r6-linux/types.conf +104 -0
  53. data/lib/ffi/platform/mipsisa64r6el-linux/types.conf +104 -0
  54. data/lib/ffi/platform/powerpc-aix/types.conf +180 -0
  55. data/lib/ffi/platform/powerpc-darwin/types.conf +100 -0
  56. data/lib/ffi/platform/powerpc-linux/types.conf +130 -0
  57. data/lib/ffi/platform/powerpc-openbsd/types.conf +156 -0
  58. data/lib/ffi/platform/powerpc64-linux/types.conf +104 -0
  59. data/lib/ffi/platform/s390-linux/types.conf +102 -0
  60. data/lib/ffi/platform/s390x-linux/types.conf +102 -0
  61. data/lib/ffi/platform/sparc-linux/types.conf +102 -0
  62. data/lib/ffi/platform/sparc-solaris/types.conf +128 -0
  63. data/lib/ffi/platform/sparc64-linux/types.conf +102 -0
  64. data/lib/ffi/platform/sparcv9-openbsd/types.conf +156 -0
  65. data/lib/ffi/platform/sparcv9-solaris/types.conf +128 -0
  66. data/lib/ffi/platform/x86_64-cygwin/types.conf +3 -0
  67. data/lib/ffi/platform/x86_64-darwin/types.conf +130 -0
  68. data/lib/ffi/platform/x86_64-dragonflybsd/types.conf +130 -0
  69. data/lib/ffi/platform/x86_64-freebsd/types.conf +128 -0
  70. data/lib/ffi/platform/x86_64-freebsd12/types.conf +158 -0
  71. data/lib/ffi/platform/x86_64-linux/types.conf +132 -0
  72. data/lib/ffi/platform/x86_64-netbsd/types.conf +128 -0
  73. data/lib/ffi/platform/x86_64-openbsd/types.conf +134 -0
  74. data/lib/ffi/platform/x86_64-solaris/types.conf +122 -0
  75. data/lib/ffi/platform/x86_64-windows/types.conf +52 -0
  76. data/lib/ffi/pointer.rb +167 -0
  77. data/lib/ffi/struct.rb +316 -0
  78. data/lib/ffi/struct_by_reference.rb +72 -0
  79. data/lib/ffi/struct_layout.rb +96 -0
  80. data/lib/ffi/struct_layout_builder.rb +227 -0
  81. data/lib/ffi/tools/const_generator.rb +230 -0
  82. data/lib/ffi/tools/generator.rb +105 -0
  83. data/lib/ffi/tools/generator_task.rb +32 -0
  84. data/lib/ffi/tools/struct_generator.rb +194 -0
  85. data/lib/ffi/tools/types_generator.rb +137 -0
  86. data/lib/ffi/types.rb +194 -0
  87. data/lib/ffi/union.rb +43 -0
  88. data/lib/ffi/variadic.rb +78 -0
  89. data/lib/ffi/version.rb +3 -0
  90. data/samples/getlogin.rb +8 -0
  91. data/samples/getpid.rb +8 -0
  92. data/samples/gettimeofday.rb +18 -0
  93. data/samples/hello.rb +8 -0
  94. data/samples/inotify.rb +60 -0
  95. data/samples/pty.rb +75 -0
  96. data/samples/qsort.rb +20 -0
  97. metadata +197 -8
  98. 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,46 +1,235 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ffi
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.11.2
4
+ version: 1.13.1
5
5
  platform: java
6
6
  authors:
7
7
  - Wayne Meissner
8
8
  autorequire:
9
9
  bindir: bin
10
- cert_chain: []
11
- date: 2019-11-11 00:00:00.000000000 Z
12
- dependencies: []
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
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
+ -----END CERTIFICATE-----
32
+ date: 2020-06-09 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
13
104
  description: Ruby FFI library
14
105
  email: wmeissner@gmail.com
15
106
  executables: []
16
107
  extensions: []
17
108
  extra_rdoc_files: []
18
109
  files:
110
+ - ".appveyor.yml"
111
+ - ".github/workflows/ci.yml"
112
+ - ".gitignore"
113
+ - ".gitmodules"
114
+ - ".travis.yml"
115
+ - ".yardopts"
19
116
  - CHANGELOG.md
20
117
  - COPYING
118
+ - Gemfile
21
119
  - LICENSE
120
+ - LICENSE.SPECS
22
121
  - README.md
23
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
24
205
  homepage: https://github.com/ffi/ffi/wiki
25
206
  licenses:
26
207
  - BSD-3-Clause
27
- 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
28
215
  post_install_message:
29
- rdoc_options: []
216
+ rdoc_options:
217
+ - "--exclude=ext/ffi_c/.*\\.o$"
218
+ - "--exclude=ffi_c\\.(bundle|so)$"
30
219
  require_paths:
31
220
  - lib
32
221
  required_ruby_version: !ruby/object:Gem::Requirement
33
222
  requirements:
34
223
  - - ">="
35
224
  - !ruby/object:Gem::Version
36
- version: '0'
225
+ version: '2.3'
37
226
  required_rubygems_version: !ruby/object:Gem::Requirement
38
227
  requirements:
39
228
  - - ">="
40
229
  - !ruby/object:Gem::Version
41
230
  version: '0'
42
231
  requirements: []
43
- rubygems_version: 3.0.3
232
+ rubygems_version: 3.1.2
44
233
  signing_key:
45
234
  specification_version: 4
46
235
  summary: Ruby FFI
Binary file