This commit is contained in:
@@ -0,0 +1,507 @@
|
||||
1.17.4 / 2026-03-26
|
||||
-------------------
|
||||
|
||||
Fixed:
|
||||
* Fix union by-value ABI mismatch with float and double types on ARM64 and X86_64.
|
||||
See #1177 and #1178 for details.
|
||||
* Exclude libffi files, which are unnecessary. #1176
|
||||
|
||||
|
||||
1.17.3 / 2025-12-29
|
||||
-------------------
|
||||
|
||||
Fixed:
|
||||
* Opt-in for MFA requirement explicitly. #1159
|
||||
* Fix type signature for FFI::AutoPointer#initialize, FFI::StructByReference#native_type and FFI::Struct#auto_ptr . #1158
|
||||
* Fix function signature of function_call in FFI trampoline. #1154
|
||||
It failed on `aarch64-mingw-ucrt`.
|
||||
* Add workaround for segmentation faults on `aarch64-mingw-ucrt`. #1154
|
||||
* Call super in `Library#freeze` . #1154
|
||||
* Deny duplication of AutoPointer per #dup and #clone . #1173
|
||||
They led to double free before.
|
||||
|
||||
Added:
|
||||
* Add binary gems for Ruby-4.0, now providing binary gems for Ruby-3.0 to 4.0.
|
||||
* Add msys2_mingw_dependencies for Windows Mingw for automatic installation of libffi. #1143
|
||||
* Mark callback dispatcher thread as fork safe for Puma. #1156
|
||||
* Add missing FFI::Platform module and LastError signatures. #1169
|
||||
|
||||
Removed:
|
||||
* Drop fat binary gems for Ruby < 3.0
|
||||
* Remove `FFI::TypesGenerator` from distributed gems. #1164
|
||||
* Remove libffi build dir after install, safing some install space. #1157
|
||||
|
||||
|
||||
1.17.2 / 2025-04-15
|
||||
-------------------
|
||||
|
||||
Fixed:
|
||||
* #1144, #1145 Update libffi to 3.4.8 to fix installation issues on latest Macos on ARM64
|
||||
* Various adjustments to run the specs cleanly on Ruby-3.5 master branch.
|
||||
|
||||
|
||||
1.17.1 / 2024-12-30
|
||||
-------------------
|
||||
|
||||
Fixed:
|
||||
* #1117 Restart async callback dispatcher thread after fork.
|
||||
* #1133 Add ruby-3.4 native gem.
|
||||
* #1134 Fix FFI::DataConverter non-generic usage in RBS files.
|
||||
|
||||
|
||||
1.17.0 / 2024-06-02
|
||||
-------------------
|
||||
|
||||
Fixed:
|
||||
* Add FFI::AbstractMemory#read_array_of_string . It was defined but not exposed to Ruby nor tested. #1070
|
||||
|
||||
|
||||
1.17.0.rc2 / 2024-04-22
|
||||
-------------------
|
||||
|
||||
Fixed:
|
||||
* Add missing write barriers to StructLayout#initialize causing a segfault with GC.stress. #1079
|
||||
|
||||
|
||||
1.17.0.rc1 / 2024-04-08
|
||||
-------------------
|
||||
|
||||
Fixed:
|
||||
* Fix type definitions on `aarch64-linux`. #1067, #1066
|
||||
* Use RB_TEST for `Pointer.autorelease=` . #1065
|
||||
So that `false` and `nil` are treated as falsey and anything else as truthy.
|
||||
* Replace Fixnum by Integer. #1064
|
||||
Fixnum is no longer present in the ruby language.
|
||||
* Update `FFI::NativeType` doc. #1061
|
||||
* Store FFI::Type::Mapped of FFI::StrPtrConverter in global instead of custom type map
|
||||
* Various documentation fixes. #1042
|
||||
* Update `FFI::Pointer#==` to return `false` if a pointer is compared to a non-pointer object, which is the expected behavior. #1083
|
||||
* Avoid warning about undefined wariable `@ffi_functions` #1085
|
||||
* Fix a very unlikely GC bug when using a callback block. # 1089
|
||||
|
||||
Added:
|
||||
* Provide binary gems for many platforms. #990
|
||||
* Add Windows fat binary gem for Ruby-3.3
|
||||
* Add RBS type definitions for many user facing parts of the FFI API. #1042
|
||||
* Improve fallback search path logic. #1088
|
||||
Respect LD_LIBRARY_PATH and DYLD_LIBRARY_PATH on Macos.
|
||||
* Update libffi to current git master branch.
|
||||
|
||||
Removed:
|
||||
* Remove `enum CHAR_ARRAY` which is no longer used. #1063
|
||||
|
||||
|
||||
1.16.3 / 2023-10-04
|
||||
-------------------
|
||||
|
||||
Fixed:
|
||||
* Fix gcc error when building on CentOS 7. #1052
|
||||
* Avoid trying to store new DataConverter type in frozen TypeDefs hash. #1057
|
||||
|
||||
|
||||
1.16.2 / 2023-09-25
|
||||
-------------------
|
||||
|
||||
Fixed:
|
||||
* Handle null pointer crash after fork. #1051
|
||||
|
||||
|
||||
1.16.1 / 2023-09-24
|
||||
-------------------
|
||||
|
||||
Fixed:
|
||||
* Fix compiling the builtin libffi. #1049
|
||||
|
||||
|
||||
1.16.0 / 2023-09-23
|
||||
-------------------
|
||||
|
||||
Fixed:
|
||||
* Fix an issue with signed bitmasks when using flags on the most significant bit. #949
|
||||
* Fix FFI::Pointer#initialize using NUM2LL instead of NUM2ULL.
|
||||
* Fix FFI::Type#inspect to properly display the constant name. #1002
|
||||
* Use libffi closure allocations on hppa-Linux. #1017
|
||||
Previously they would segfault.
|
||||
* Fix class name of Symbol#inspect.
|
||||
* Fix MSVC support of libtest. #1028
|
||||
* Fix attach_function of functions ending in ? or ! #971
|
||||
|
||||
Added:
|
||||
* Convert all C-based classes to TypedData and use write barriers. #994, #995, #996, #997, #998, #999, #1000, #1001, #1003, #1004, #1005, #1006, #1007, #1008, #1009, #1010, #1011, #1012
|
||||
This results in less pressure on the garbage collector, since the objects can be promoted to the old generation, which means they only get marked on major GC.
|
||||
* Implement `ObjectSpace.memsize_of()` of all C-based classes.
|
||||
* Make FFI Ractor compatible. #1023
|
||||
Modules extended per `extend FFI::Library` need to be frozen in order to be used by non-main Ractors.
|
||||
This can be done by calling `freeze` below of all C interface definitions.
|
||||
* In a Ractor it's possible to:
|
||||
* load DLLs and call its functions, access its global variables
|
||||
* use builtin typedefs
|
||||
* use and modify ractor local typedefs
|
||||
* define callbacks
|
||||
* receive async callbacks from non-ruby threads
|
||||
* use frozen FFI::Library based modules with all attributes (enums, structs, typedefs, functions, callbacks)
|
||||
* invoke frozen functions and callbacks defined in the main Ractor
|
||||
* use FFI::Struct definitions from the main Ractor
|
||||
* In a Ractor it's impossible to:
|
||||
* create new FFI::Library based modules
|
||||
* create new FFI::Struct definitions
|
||||
* use custom global typedefs
|
||||
* use non-frozen FFI::Library based modules
|
||||
* Allow type retrieval of attached functions+variables. #1023
|
||||
* Make FFI classes `GC.compact` friendly. #1021
|
||||
* Update libffi and disable custom trampoline when using libffi closure allocation. #1020
|
||||
This is because libffi changed the way how closures are allocated to static trampolines.
|
||||
* Add types.conf for loongarch64-linux. #943
|
||||
* Add types.conf for sw_64-linux (Shen Wei 64-bit, based on Alpha). #1018
|
||||
* Add support for aarch64-windows. #1035
|
||||
* Windows: Update LoadLibrary error message to include error code. #1026
|
||||
* Allow private release method for FFI::ManagedStruct and FFI::AutoPointer. #1029
|
||||
* Add support for passing ABI version to FFI.map_library_name. #963
|
||||
This adds the new class FFI::LibraryPath .
|
||||
* Add support for ruby-3.2 to windows binary gem. #1047
|
||||
* Enable debug symbols for `rake compile` builds to ease debugging. #1048
|
||||
|
||||
Removed:
|
||||
* Remove allocator of AbstractMemory. #1013
|
||||
This disables AbstractMemory.new, which has no practical use.
|
||||
* Remove unused FFI::SizeTypes. #1022
|
||||
|
||||
|
||||
1.15.5 / 2022-01-10
|
||||
-------------------
|
||||
|
||||
Fixed:
|
||||
* Fix long double argument or return values on 32bit i686. #849
|
||||
* FFI::ConstGenerator: avoid usage of the same binary file simultaneously. #929
|
||||
|
||||
Added:
|
||||
* Add Windows fat binary gem for Ruby-3.1
|
||||
|
||||
Removed:
|
||||
* Remove Windows fat binary gem for Ruby < 2.4
|
||||
|
||||
|
||||
1.15.4 / 2021-09-01
|
||||
-------------------
|
||||
|
||||
Fixed:
|
||||
* Fix build for uClibc. #913
|
||||
* Correct module lookup when including `ffi-module` gem. #912
|
||||
|
||||
Changed:
|
||||
* Use ruby code of the ffi gem in JRuby-9.2.20+. #915
|
||||
|
||||
|
||||
1.15.3 / 2021-06-16
|
||||
-------------------
|
||||
|
||||
Fixed:
|
||||
* Fix temporary packaging issue with libffi. #904
|
||||
|
||||
|
||||
1.15.2 / 2021-06-16
|
||||
-------------------
|
||||
|
||||
Added:
|
||||
* Add support for Windows MINGW-UCRT build. #903
|
||||
* Add `/opt/homebrew/lib/` to fallback search paths to improve homebrew support. #880 #882
|
||||
|
||||
Changed:
|
||||
* Regenerate `types.conf` for FreeBSD12 aarch64. #902
|
||||
|
||||
|
||||
1.15.1 / 2021-05-22
|
||||
-------------------
|
||||
|
||||
Fixed:
|
||||
* Append -pthread to linker options. #893
|
||||
* Use arm or aarch64 to identify Apple ARM CPU arch. #899
|
||||
* Allow overriding `gcc` with the `CC` env var in `const_generator.rb` and `struct_generator.rb`. #897
|
||||
|
||||
|
||||
1.15.0 / 2021-03-05
|
||||
-------------------
|
||||
|
||||
Fixed:
|
||||
* Fix MSVC build
|
||||
* Fix async callbacks in conjunction with fork(). #884
|
||||
|
||||
Added:
|
||||
* Allow to pass callbacks in varargs. #885
|
||||
* Name the threads for FFI callback dispatcher and async thread calls for easier debugging. #883
|
||||
The name can be retrieved by Thread.name and is shown by Thread.list.inspect etc.
|
||||
Even gdb shows the thread name on supported operating systems.
|
||||
* Add types.conf for powerpc64le-linux
|
||||
* Add types.conf for riscv64-linux
|
||||
* More release automation of ffi gems
|
||||
|
||||
Changed:
|
||||
* Switch from rubygems-tasks to bundler/gem_helper
|
||||
|
||||
Removed:
|
||||
* Remove unused VariadicInvoker#init
|
||||
|
||||
|
||||
1.14.2 / 2020-12-21
|
||||
-------------------
|
||||
|
||||
Fixed:
|
||||
* Fix builtin libffi on newer Ubuntu caused by an outdated Makefile.in . #863
|
||||
|
||||
|
||||
1.14.1 / 2020-12-19
|
||||
-------------------
|
||||
|
||||
Changed:
|
||||
* Revert changes to FFI::Pointer#write_string made in ffi-1.14.0.
|
||||
It breaks compatibilty in a way that can cause hard to find errors. #857
|
||||
|
||||
|
||||
1.14.0 / 2020-12-18
|
||||
-------------------
|
||||
|
||||
Added:
|
||||
* Add types.conf for x86_64-msys, x86_64-haiku, aarch64-openbsd and aarch64-darwin (alias arm64-darwin)
|
||||
* Add method AbstractMemory#size_limit? . #829
|
||||
* Add new extconf option --enable-libffi-alloc which is enabled per default on Apple M1 (arm64-darwin).
|
||||
|
||||
Changed:
|
||||
* Do NULL pointer check only when array length > 0 . #305
|
||||
* Raise an error on an unknown order argument. #830
|
||||
* Change FFI::Pointer#write_string to terminate with a NUL byte like other string methods. #805
|
||||
* Update bundled libffi to latest master.
|
||||
|
||||
Removed:
|
||||
* Remove win32/stdint.h and stdbool.h because of copyright issue. #693
|
||||
|
||||
Fixed:
|
||||
* Fix possible UTF-8 load error in loader script interpretation. #792
|
||||
* Fix segfault on non-array argument to #write_array_of_*
|
||||
* Fix memory leak in MethodHandle . #815
|
||||
* Fix possible segfault in combination with fiddle or other libffi using gems . #835
|
||||
* Fix possibility to use ffi ruby gem with JRuby-9.3 . #763
|
||||
* Fix a GC issue, when a callback Proc is used on more than 2 callback signatures. #820
|
||||
|
||||
|
||||
1.13.1 / 2020-06-09
|
||||
-------------------
|
||||
|
||||
Changed:
|
||||
* Revert use of `ucrtbase.dll` as default C library on Windows-MINGW.
|
||||
`ucrtbase.dll` is still used on MSWIN target. #790
|
||||
* Test for `ffi_prep_closure_loc()` to make sure we can use this function.
|
||||
This fixes incorrect use of system libffi on MacOS Mojave (10.14). #787
|
||||
* Update types.conf on x86_64-dragonflybsd
|
||||
|
||||
|
||||
1.13.0 / 2020-06-01
|
||||
-------------------
|
||||
|
||||
Added:
|
||||
* Add TruffleRuby support. Almost all specs are running on TruffleRuby and succeed. #768
|
||||
* Add ruby source files to the java gem. This allows to ship the Ruby library code per platform java gem and add it as a default gem to JRuby. #763
|
||||
* Add FFI::Platform::LONG_DOUBLE_SIZE
|
||||
* Add bounds checks for writing to an inline char[] . #756
|
||||
* Add long double as callback return value. #771
|
||||
* Update type definitions and add types from stdint.h and stddef.h on i386-windows, x86_64-windows, x86_64-darwin, x86_64-linux, arm-linux, powerpc-linux. #749
|
||||
* Add new type definitions for powerpc-openbsd and sparcv9-openbsd. #775, #778
|
||||
|
||||
Changed:
|
||||
* Raise required ruby version to >= 2.3.
|
||||
* Lots of cleanups and improvements in library, specs and benchmarks.
|
||||
* Fix a lot of compiler warnings at the C-extension
|
||||
* Fix several install issues on MacOS:
|
||||
* Look for libffi in SDK paths, since recent versions of macOS removed it from `/usr/include` . #757
|
||||
* Fix error `ld: library not found for -lgcc_s.10.4`
|
||||
* Don't built for i386 architecture as it is deprecated
|
||||
* Several fixes for MSVC build on Windows. #779
|
||||
* Use `ucrtbase.dll` as default C library on Windows instead of old `msvcrt.dll`. #779
|
||||
* Update builtin libffi to fix a Powerpc issue with parameters of type long
|
||||
* Allow unmodified sourcing of (the ruby code of) this gem in JRuby and TruffleRuby as a default gem. #747
|
||||
* Improve check to detect if a module has a #find_type method suitable for FFI. This fixes compatibility with stdlib `mkmf` . #776
|
||||
|
||||
Removed:
|
||||
* Reject callback with `:string` return type at definition, because it didn't work so far and is not save to use. #751, #782
|
||||
|
||||
|
||||
1.12.2 / 2020-02-01
|
||||
-------------------
|
||||
|
||||
* Fix possible segfault at FFI::Struct#[] and []= after GC.compact . #742
|
||||
|
||||
|
||||
1.12.1 / 2020-01-14
|
||||
-------------------
|
||||
|
||||
Added:
|
||||
* Add binary gem support for ruby-2.7 on Windows
|
||||
|
||||
|
||||
1.12.0 / 2020-01-14
|
||||
-------------------
|
||||
|
||||
Added:
|
||||
* FFI::VERSION is defined as part of `require 'ffi'` now.
|
||||
It is no longer necessary to `require 'ffi/version'` .
|
||||
|
||||
Changed:
|
||||
* Update libffi to latest master.
|
||||
|
||||
Deprecated:
|
||||
* Overwriting struct layouts is now warned and will be disallowed in ffi-2.0. #734, #735
|
||||
|
||||
|
||||
1.11.3 / 2019-11-25
|
||||
-------------------
|
||||
|
||||
Removed:
|
||||
* Remove support for tainted objects which cause deprecation warnings in ruby-2.7. #730
|
||||
|
||||
|
||||
1.11.2 / 2019-11-11
|
||||
-------------------
|
||||
|
||||
Added:
|
||||
* Add DragonFlyBSD as a platform. #724
|
||||
|
||||
Changed:
|
||||
* Sort all types.conf files, so that files and changes are easier to compare.
|
||||
* Regenerated type conf for freebsd12 and x86_64-linux targets. #722
|
||||
* Remove MACOSX_DEPLOYMENT_TARGET that was targeting very old version 10.4. #647
|
||||
* Fix library name mangling for non glibc Linux/UNIX. #727
|
||||
* Fix compiler warnings raised by ruby-2.7
|
||||
* Update libffi to latest master.
|
||||
|
||||
|
||||
1.11.1 / 2019-05-20
|
||||
-------------------
|
||||
|
||||
Changed:
|
||||
* Raise required ruby version to >=2.0. #699, #700
|
||||
* Fix a possible linker error on ruby < 2.3 on Linux.
|
||||
|
||||
|
||||
1.11.0 / 2019-05-17
|
||||
-------------------
|
||||
This version was yanked on 2019-05-20 to fix an install issue on ruby-1.9.3. #700
|
||||
|
||||
Added:
|
||||
* Add ability to disable or force use of system libffi. #669
|
||||
Use like `gem inst ffi -- --enable-system-libffi` .
|
||||
* Add ability to call FFI callbacks from outside of FFI call frame. #584
|
||||
* Add proper documentation to FFI::Generator and ::Task
|
||||
* Add gemspec metadata. #696, #698
|
||||
|
||||
Changed:
|
||||
* Fix stdcall on Win32. #649, #669
|
||||
* Fix load paths for FFI::Generator::Task
|
||||
* Fix FFI::Pointer#read_string(0) to return a binary String. #692
|
||||
* Fix benchmark suite so that it runs on ruby-2.x
|
||||
* Move FFI::Platform::CPU from C to Ruby. #663
|
||||
* Move FFI::StructByReference to Ruby. #681
|
||||
* Move FFI::DataConverter to Ruby (#661)
|
||||
* Various cleanups and improvements of specs and benchmarks
|
||||
|
||||
Removed:
|
||||
* Remove ruby-1.8 and 1.9 compatibility code. #683
|
||||
* Remove unused spec files. #684
|
||||
|
||||
|
||||
1.10.0 / 2019-01-06
|
||||
-------------------
|
||||
|
||||
Added:
|
||||
* Add /opt/local/lib/ to ffi's fallback library search path. #638
|
||||
* Add binary gem support for ruby-2.6 on Windows
|
||||
* Add FreeBSD on AArch64 and ARM support. #644
|
||||
* Add FFI::LastError.winapi_error on Windows native or Cygwin. #633
|
||||
|
||||
Changed:
|
||||
* Update to rake-compiler-dock-0.7.0
|
||||
* Use 64-bit inodes on FreeBSD >= 12. #644
|
||||
* Switch time_t and suseconds_t types to long on FreeBSD. #627
|
||||
* Make register_t long_long on 64-bit FreeBSD. #644
|
||||
* Fix Pointer#write_array_of_type #637
|
||||
|
||||
Removed:
|
||||
* Drop binary gem support for ruby-2.0 and 2.1 on Windows
|
||||
|
||||
|
||||
1.9.25 / 2018-06-03
|
||||
-------------------
|
||||
|
||||
Changed:
|
||||
* Revert closures via libffi.
|
||||
This re-adds ClosurePool and fixes compat with SELinux enabled systems. #621
|
||||
|
||||
|
||||
1.9.24 / 2018-06-02
|
||||
-------------------
|
||||
|
||||
Security Note:
|
||||
|
||||
This update addresses vulnerability CVE-2018-1000201: DLL loading issue which can be hijacked on Windows OS, when a Symbol is used as DLL name instead of a String. Found by Matthew Bush.
|
||||
|
||||
Added:
|
||||
* Added a CHANGELOG file
|
||||
* Add mips64(eb) support, and mips r6 support. (#601)
|
||||
|
||||
Changed:
|
||||
* Update libffi to latest changes on master.
|
||||
* Don't search in hardcoded /usr paths on Windows.
|
||||
* Don't treat Symbol args different to Strings in ffi_lib.
|
||||
* Make sure size_t is defined in Thread.c. Fixes #609
|
||||
|
||||
|
||||
1.9.23 / 2018-02-25
|
||||
-------------------
|
||||
|
||||
Changed:
|
||||
* Fix unnecessary rebuild of configure in darwin multi arch. Fixes #605
|
||||
|
||||
|
||||
1.9.22 / 2018-02-22
|
||||
-------------------
|
||||
|
||||
Changed:
|
||||
* Update libffi to latest changes on master.
|
||||
* Update detection of system libffi to match new requirements. Fixes #617
|
||||
* Prefer bundled libffi over system libffi on Mac OS.
|
||||
* Do closures via libffi. This removes ClosurePool and fixes compat with PaX. #540
|
||||
* Use a more deterministic gem packaging.
|
||||
* Fix unnecessary update of autoconf files at gem install.
|
||||
|
||||
|
||||
1.9.21 / 2018-02-06
|
||||
-------------------
|
||||
|
||||
Added:
|
||||
* Ruby-2.5 support by Windows binary gems. Fixes #598
|
||||
* Add missing win64 types.
|
||||
* Added support for Bitmask. (#573)
|
||||
* Add support for MSYS2 (#572) and Sparc64 Linux. (#574)
|
||||
|
||||
Changed:
|
||||
* Fix read_string to not throw an error on length 0.
|
||||
* Don't use absolute paths for sh and env. Fixes usage on Adroid #528
|
||||
* Use Ruby implementation for `which` for better compat with Windows. Fixes #315
|
||||
* Fix compatibility with PPC64LE platform. (#577)
|
||||
* Normalize sparc64 to sparcv9. (#575)
|
||||
|
||||
Removed:
|
||||
* Drop Ruby 1.8.7 support (#480)
|
||||
|
||||
|
||||
1.9.18 / 2017-03-03
|
||||
-------------------
|
||||
|
||||
Added:
|
||||
* Add compatibility with Ruby-2.4.
|
||||
|
||||
Changed:
|
||||
* Add missing shlwapi.h include to fix Windows build.
|
||||
* Avoid undefined behaviour of LoadLibrary() on Windows. #553
|
||||
|
||||
|
||||
1.9.17 / 2017-01-13
|
||||
-------------------
|
||||
@@ -0,0 +1,49 @@
|
||||
Copyright (c) 2008-2013, Ruby FFI project contributors
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of the Ruby FFI project nor the
|
||||
names of its contributors may be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
|
||||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
libffi, used by this project, is licensed under the MIT license:
|
||||
|
||||
libffi - Copyright (c) 1996-2011 Anthony Green, Red Hat, Inc and others.
|
||||
See source files for details.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
``Software''), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
source 'https://rubygems.org'
|
||||
|
||||
gemspec
|
||||
|
||||
group :development do
|
||||
gem 'benchmark' # necessary on ruby-3.5+
|
||||
gem 'bigdecimal' # necessary on ruby-3.3+
|
||||
gem 'bundler', '>= 1.16', '< 5.dev'
|
||||
gem 'fiddle' # necessary on ruby-4.0+
|
||||
gem 'rake', '~> 13.0'
|
||||
gem 'rake-compiler', '~> 1.1'
|
||||
gem 'rake-compiler-dock', '~> 1.11.0'
|
||||
gem 'rspec', '~> 3.0'
|
||||
end
|
||||
|
||||
group :doc do
|
||||
gem 'kramdown'
|
||||
gem 'yard', '~> 0.9'
|
||||
end
|
||||
|
||||
group :type_check do
|
||||
if RUBY_VERSION >= "3.0" && %w[ ruby truffleruby ].include?(RUBY_ENGINE)
|
||||
gem 'rbs', '~> 3.0'
|
||||
gem 'steep', '~> 1.6'
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,24 @@
|
||||
Copyright (c) 2008-2016, Ruby FFI project contributors
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of the Ruby FFI project nor the
|
||||
names of its contributors may be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
|
||||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
@@ -0,0 +1,22 @@
|
||||
Copyright (c) 2008-2012 Ruby-FFI contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person
|
||||
obtaining a copy of this software and associated documentation
|
||||
files (the "Software"), to deal in the Software without
|
||||
restriction, including without limitation the rights to use,
|
||||
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following
|
||||
conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
@@ -0,0 +1,138 @@
|
||||
# Ruby-FFI https://github.com/ffi/ffi/wiki
|
||||
|
||||
## Description
|
||||
|
||||
Ruby-FFI is a gem for programmatically loading dynamically-linked native
|
||||
libraries, binding functions within them, and calling those functions
|
||||
from Ruby code. Moreover, a Ruby-FFI extension works without changes
|
||||
on CRuby (MRI), JRuby, Rubinius and TruffleRuby. [Discover why you should write your next extension
|
||||
using Ruby-FFI](https://github.com/ffi/ffi/wiki/why-use-ffi).
|
||||
|
||||
## Features
|
||||
|
||||
* Intuitive DSL
|
||||
* Supports all C native types
|
||||
* C structs (also nested), enums and global variables
|
||||
* Callbacks from C to Ruby
|
||||
* Automatic garbage collection of native memory
|
||||
* Usable in Ractor: [How-to-use-FFI-in-Ruby-Ractors](https://github.com/ffi/ffi/wiki/Ractors)
|
||||
|
||||
## Synopsis
|
||||
|
||||
```ruby
|
||||
require 'ffi'
|
||||
|
||||
module MyLib
|
||||
extend FFI::Library
|
||||
ffi_lib 'c'
|
||||
attach_function :puts, [ :string ], :int
|
||||
end
|
||||
|
||||
MyLib.puts 'Hello, World using libc!'
|
||||
```
|
||||
|
||||
For less minimalistic and more examples you may look at:
|
||||
|
||||
* The [documentation](https://www.rubydoc.info/gems/ffi)
|
||||
* the `samples/` folder
|
||||
* the examples on the [wiki](https://github.com/ffi/ffi/wiki)
|
||||
* the projects using FFI listed on the wiki: https://github.com/ffi/ffi/wiki/projects-using-ffi
|
||||
|
||||
## Requirements
|
||||
|
||||
When installing the gem on CRuby (MRI), you will need:
|
||||
* A C compiler (e.g., Xcode on macOS, `gcc` or `clang` on everything else)
|
||||
Optionally (speeds up installation):
|
||||
* The `libffi` library and development headers - this is commonly in the `libffi-dev` or `libffi-devel` packages
|
||||
|
||||
The ffi gem comes with a builtin libffi version, which is used, when the system libffi library is not available or too old.
|
||||
Use of the system libffi can be enforced by:
|
||||
```
|
||||
gem install ffi -- --enable-system-libffi # to install the gem manually
|
||||
bundle config build.ffi --enable-system-libffi # for bundle install
|
||||
```
|
||||
or prevented by `--disable-system-libffi`.
|
||||
|
||||
On Linux systems running with [PaX](https://en.wikipedia.org/wiki/PaX) (Gentoo, Alpine, etc.), FFI may trigger `mprotect` errors. You may need to disable [mprotect](https://en.wikibooks.org/wiki/Grsecurity/Appendix/Grsecurity_and_PaX_Configuration_Options#Restrict_mprotect.28.29) for ruby (`paxctl -m [/path/to/ruby]`) for the time being until a solution is found.
|
||||
|
||||
On FreeBSD systems pkgconf must be installed for the gem to be able to compile using clang. Install either via packages `pkg install pkgconf` or from ports via `devel/pkgconf`.
|
||||
|
||||
On JRuby and TruffleRuby, there are no requirements to install the FFI gem, and `require 'ffi'` works even without installing the gem (i.e., the gem is preinstalled on these implementations).
|
||||
|
||||
## Installation
|
||||
|
||||
From rubygems:
|
||||
|
||||
[sudo] gem install ffi
|
||||
|
||||
From a Gemfile using git or GitHub
|
||||
|
||||
gem 'ffi', github: 'ffi/ffi', submodules: true
|
||||
|
||||
or from the git repository on github:
|
||||
|
||||
git clone git://github.com/ffi/ffi.git
|
||||
cd ffi
|
||||
git submodule update --init --recursive
|
||||
bundle install
|
||||
rake install
|
||||
|
||||
### Install options:
|
||||
|
||||
* `--enable-system-libffi` : Force usage of system libffi
|
||||
* `--disable-system-libffi` : Force usage of builtin libffi
|
||||
* `--enable-libffi-alloc` : Force closure allocation by libffi
|
||||
* `--disable-libffi-alloc` : Force closure allocation by builtin method
|
||||
|
||||
## License
|
||||
|
||||
The ffi library is covered by the BSD license, also see the LICENSE file.
|
||||
The specs are covered by the same license as [ruby/spec](https://github.com/ruby/spec), the MIT license.
|
||||
|
||||
## Credits
|
||||
|
||||
The following people have submitted code, bug reports, or otherwise contributed to the success of this project:
|
||||
|
||||
* Alban Peignier <alban.peignier@free.fr>
|
||||
* Aman Gupta <aman@tmm1.net>
|
||||
* Andrea Fazzi <andrea.fazzi@alcacoop.it>
|
||||
* Andreas Niederl <rico32@gmx.net>
|
||||
* Andrew Cholakian <andrew@andrewvc.com>
|
||||
* Antonio Terceiro <terceiro@softwarelivre.org>
|
||||
* Benoit Daloze <eregontp@gmail.com>
|
||||
* Brian Candler <B.Candler@pobox.com>
|
||||
* Brian D. Burns <burns180@gmail.com>
|
||||
* Bryan Kearney <bkearney@redhat.com>
|
||||
* Charlie Savage <cfis@zerista.com>
|
||||
* Chikanaga Tomoyuki <nagachika00@gmail.com>
|
||||
* Hongli Lai <hongli@phusion.nl>
|
||||
* Ian MacLeod <ian@nevir.net>
|
||||
* Jake Douglas <jake@shiftedlabs.com>
|
||||
* Jean-Dominique Morani <jdmorani@mac.com>
|
||||
* Jeremy Hinegardner <jeremy@hinegardner.org>
|
||||
* Jesús García Sáez <blaxter@gmail.com>
|
||||
* Joe Khoobyar <joe@ankhcraft.com>
|
||||
* Jurij Smakov <jurij@wooyd.org>
|
||||
* KISHIMOTO, Makoto <ksmakoto@dd.iij4u.or.jp>
|
||||
* Kim Burgestrand <kim@burgestrand.se>
|
||||
* Lars Kanis <lars@greiz-reinsdorf.de>
|
||||
* Luc Heinrich <luc@honk-honk.com>
|
||||
* Luis Lavena <luislavena@gmail.com>
|
||||
* Matijs van Zuijlen <matijs@matijs.net>
|
||||
* Matthew King <automatthew@gmail.com>
|
||||
* Mike Dalessio <mike.dalessio@gmail.com>
|
||||
* NARUSE, Yui <naruse@airemix.jp>
|
||||
* Park Heesob <phasis@gmail.com>
|
||||
* Shin Yee <shinyee@speedgocomputing.com>
|
||||
* Stephen Bannasch <stephen.bannasch@gmail.com>
|
||||
* Suraj N. Kurapati <sunaku@gmail.com>
|
||||
* Sylvain Daubert <sylvain.daubert@laposte.net>
|
||||
* Victor Costan
|
||||
* beoran@gmail.com
|
||||
* ctide <christide@christide.com>
|
||||
* emboss <Martin.Bosslet@googlemail.com>
|
||||
* hobophobe <unusualtears@gmail.com>
|
||||
* meh <meh@paranoici.org>
|
||||
* postmodern <postmodern.mod3@gmail.com>
|
||||
* wycats@gmail.com <wycats@gmail.com>
|
||||
* Wayne Meissner <wmeissner@gmail.com>
|
||||
@@ -0,0 +1,209 @@
|
||||
require 'rbconfig'
|
||||
require 'date'
|
||||
require 'fileutils'
|
||||
require 'yaml'
|
||||
require 'rspec/core/rake_task'
|
||||
require 'rubygems/package_task'
|
||||
require 'rake/extensiontask'
|
||||
require_relative "lib/ffi/version"
|
||||
require_relative "rakelib/ffi_gem_helper"
|
||||
|
||||
BUILD_DIR = "build"
|
||||
BUILD_EXT_DIR = File.join(BUILD_DIR, "#{RbConfig::CONFIG['arch']}", 'ffi_c', RUBY_VERSION)
|
||||
|
||||
gem_spec = Bundler.load_gemspec('ffi.gemspec')
|
||||
|
||||
RSpec::Core::RakeTask.new(:spec) do |config|
|
||||
config.rspec_opts = YAML.load_file 'spec/spec.opts'
|
||||
end
|
||||
|
||||
desc "Build all packages"
|
||||
task :package => %w[ gem:java gem:native ]
|
||||
|
||||
CLOBBER.include 'lib/ffi/types.conf'
|
||||
CLOBBER.include 'pkg'
|
||||
CLOBBER.include 'log'
|
||||
|
||||
CLEAN.include 'build'
|
||||
CLEAN.include 'conftest.dSYM'
|
||||
CLEAN.include 'spec/ffi/fixtures/libtest.{dylib,so,dll}'
|
||||
CLEAN.include 'spec/ffi/fixtures/*.o'
|
||||
CLEAN.include 'spec/ffi/embed-test/ext/*.{o,def}'
|
||||
CLEAN.include 'spec/ffi/embed-test/ext/Makefile'
|
||||
CLEAN.include "pkg/ffi-*-*/"
|
||||
CLEAN.include 'lib/{2,3}.*'
|
||||
|
||||
# clean all shipped files, that are not in git
|
||||
CLEAN.include(
|
||||
gem_spec.files -
|
||||
`git --git-dir ext/ffi_c/libffi/.git ls-files -z`.split("\x0").map { |f| File.join("ext/ffi_c/libffi", f) } -
|
||||
`git ls-files -z`.split("\x0")
|
||||
)
|
||||
|
||||
task :distclean => :clobber
|
||||
|
||||
desc "Test the extension"
|
||||
task :test => [ :spec ]
|
||||
|
||||
|
||||
namespace :bench do
|
||||
ITER = ENV['ITER'] ? ENV['ITER'].to_i : 100000
|
||||
bench_files = Dir["bench/bench_*.rb"].sort.reject { |f| f == "bench/bench_helper.rb" }
|
||||
bench_files.each do |bench|
|
||||
task File.basename(bench, ".rb")[6..-1] => :compile do
|
||||
sh %{#{Gem.ruby} #{bench} #{ITER}}
|
||||
end
|
||||
end
|
||||
task :all => :compile do
|
||||
bench_files.each do |bench|
|
||||
sh %{#{Gem.ruby} #{bench}}
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
task 'spec:run' => :compile
|
||||
task 'spec:specdoc' => :compile
|
||||
|
||||
task :default => :spec
|
||||
|
||||
namespace 'java' do
|
||||
|
||||
java_gem_spec = gem_spec.dup.tap do |s|
|
||||
s.files.reject! { |f| File.fnmatch?("ext/*", f) }
|
||||
s.extensions = []
|
||||
s.platform = 'java'
|
||||
end
|
||||
|
||||
Gem::PackageTask.new(java_gem_spec) do |pkg|
|
||||
pkg.need_zip = true
|
||||
pkg.need_tar = true
|
||||
pkg.package_dir = 'pkg'
|
||||
end
|
||||
end
|
||||
|
||||
task 'gem:java' => 'java:gem'
|
||||
|
||||
FfiGemHelper.install_tasks
|
||||
# Register binary gems to be pushed to rubygems.org
|
||||
Bundler::GemHelper.instance.cross_platforms = %w[
|
||||
x86-mingw32
|
||||
x64-mingw-ucrt
|
||||
x64-mingw32
|
||||
x86-linux-gnu
|
||||
x86-linux-musl
|
||||
x86_64-linux-gnu
|
||||
x86_64-linux-musl
|
||||
arm-linux-gnu
|
||||
arm-linux-musl
|
||||
aarch64-linux-gnu
|
||||
aarch64-linux-musl
|
||||
aarch64-mingw-ucrt
|
||||
x86_64-darwin
|
||||
arm64-darwin
|
||||
]
|
||||
|
||||
if RUBY_ENGINE == 'ruby' || RUBY_ENGINE == 'rbx'
|
||||
require 'rake/extensiontask'
|
||||
Rake::ExtensionTask.new('ffi_c', gem_spec) do |ext|
|
||||
ext.name = 'ffi_c' # indicate the name of the extension.
|
||||
# ext.lib_dir = BUILD_DIR # put binaries into this folder.
|
||||
ext.tmp_dir = BUILD_DIR # temporary folder used during compilation.
|
||||
ext.cross_compile = true # enable cross compilation (requires cross compile toolchain)
|
||||
ext.cross_platform = Bundler::GemHelper.instance.cross_platforms
|
||||
ext.cross_compiling do |spec|
|
||||
spec.files.reject! { |path| File.fnmatch?('ext/*', path) }
|
||||
# Binary gems don't need libffi header+lib files
|
||||
spec.metadata.delete("msys2_mingw_dependencies")
|
||||
end
|
||||
# Enable debug info for 'rake compile' but not for 'gem install'
|
||||
ext.config_options << "--enable-debug"
|
||||
|
||||
end
|
||||
else
|
||||
task :compile do
|
||||
STDERR.puts "Nothing to compile on #{RUBY_ENGINE}"
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
namespace "gem" do
|
||||
task 'prepare' do
|
||||
require 'rake_compiler_dock'
|
||||
sh "bundle package"
|
||||
end
|
||||
|
||||
Bundler::GemHelper.instance.cross_platforms.each do |plat|
|
||||
desc "Build all native binary gems in parallel"
|
||||
multitask 'native' => plat
|
||||
|
||||
desc "Build the native gem for #{plat}"
|
||||
task plat => ['prepare', 'build'] do
|
||||
RakeCompilerDock.sh <<-EOT, platform: plat
|
||||
sudo apt-get update && sudo apt-get install -y libltdl-dev &&
|
||||
bundle install --local &&
|
||||
rake native:#{plat} pkg/#{gem_spec.full_name}-#{plat}.gem MAKE='nice make -j`nproc`' RUBY_CC_VERSION=#{RakeCompilerDock.ruby_cc_version("~>4.0", "~>3.0")}
|
||||
EOT
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
directory "ext/ffi_c/libffi"
|
||||
file "ext/ffi_c/libffi/autogen.sh" => "ext/ffi_c/libffi" do
|
||||
warn "Downloading libffi ..."
|
||||
sh "git submodule update --init --recursive"
|
||||
end
|
||||
task :libffi => "ext/ffi_c/libffi/autogen.sh"
|
||||
|
||||
LIBFFI_GIT_FILES = `git --git-dir ext/ffi_c/libffi/.git ls-files -z`.split("\x0")
|
||||
|
||||
# Generate files which are in the gemspec but not in libffi's git repo by running autogen.sh
|
||||
gem_spec.files.select do |f|
|
||||
f =~ /ext\/ffi_c\/libffi\/(.*)/ && !LIBFFI_GIT_FILES.include?($1)
|
||||
end.each do |f|
|
||||
file f => "ext/ffi_c/libffi/autogen.sh" do
|
||||
chdir "ext/ffi_c/libffi" do
|
||||
sh "sh ./autogen.sh"
|
||||
end
|
||||
touch f
|
||||
if gem_spec.files != Gem::Specification.load('./ffi.gemspec').files
|
||||
warn "gemspec files have changed -> Please restart rake!"
|
||||
exit 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# Make sure we have all gemspec files before packaging
|
||||
task :build => gem_spec.files
|
||||
task :gem => :build
|
||||
|
||||
|
||||
require_relative "lib/ffi/platform"
|
||||
types_conf = File.expand_path(File.join(FFI::Platform::CONF_DIR, 'types.conf'))
|
||||
logfile = File.join(File.dirname(__FILE__), 'types_log')
|
||||
|
||||
task types_conf do |task|
|
||||
require 'fileutils'
|
||||
require_relative "rakelib/types_generator"
|
||||
options = {}
|
||||
FileUtils.mkdir_p(File.dirname(task.name), mode: 0755 )
|
||||
File.open(task.name, File::CREAT|File::TRUNC|File::RDWR, 0644) do |f|
|
||||
f.puts FFI::TypesGenerator.generate(options)
|
||||
end
|
||||
File.open(logfile, 'w') do |log|
|
||||
log.puts(types_conf)
|
||||
end
|
||||
end
|
||||
|
||||
desc "Create or update type information for platform #{FFI::Platform::NAME}"
|
||||
task :types_conf => types_conf
|
||||
|
||||
begin
|
||||
require 'yard'
|
||||
|
||||
namespace :doc do
|
||||
YARD::Rake::YardocTask.new do |yard|
|
||||
end
|
||||
end
|
||||
rescue LoadError
|
||||
warn "[warn] YARD unavailable"
|
||||
end
|
||||
@@ -0,0 +1,8 @@
|
||||
target :lib do
|
||||
signature "sig"
|
||||
|
||||
check "lib"
|
||||
|
||||
# ignore whole of lib, to just validate RBS in sig
|
||||
ignore "lib"
|
||||
end
|
||||
@@ -0,0 +1,43 @@
|
||||
require File.expand_path("../lib/#{File.basename(__FILE__, '.gemspec')}/version", __FILE__)
|
||||
|
||||
Gem::Specification.new do |s|
|
||||
s.name = 'ffi'
|
||||
s.version = FFI::VERSION
|
||||
s.author = 'Wayne Meissner'
|
||||
s.email = 'wmeissner@gmail.com'
|
||||
s.homepage = 'https://github.com/ffi/ffi/wiki'
|
||||
s.summary = 'Ruby FFI'
|
||||
s.description = 'Ruby FFI library'
|
||||
if s.respond_to?(:metadata)
|
||||
s.metadata['bug_tracker_uri'] = 'https://github.com/ffi/ffi/issues'
|
||||
s.metadata['changelog_uri'] = 'https://github.com/ffi/ffi/blob/master/CHANGELOG.md'
|
||||
s.metadata['documentation_uri'] = 'https://github.com/ffi/ffi/wiki'
|
||||
s.metadata['wiki_uri'] = 'https://github.com/ffi/ffi/wiki'
|
||||
s.metadata['source_code_uri'] = 'https://github.com/ffi/ffi/'
|
||||
s.metadata['mailing_list_uri'] = 'http://groups.google.com/group/ruby-ffi'
|
||||
s.metadata['rubygems_mfa_required'] = 'true'
|
||||
end
|
||||
s.files = `git ls-files -z`.split("\x0").reject do |f|
|
||||
f =~ /^(\.|bench|gen|libtest|nbproject|spec|rakelib)/
|
||||
end
|
||||
|
||||
# Add libffi git files
|
||||
lfs = `git --git-dir ext/ffi_c/libffi/.git ls-files -z`.split("\x0").reject do |f|
|
||||
f =~ /^(\.|testsuite)/
|
||||
end
|
||||
# Add autoconf generated files of libffi
|
||||
lfs += %w[ compile configure config.guess config.sub install-sh ltmain.sh missing fficonfig.h.in ]
|
||||
# Add automake generated files of libffi
|
||||
lfs += `git --git-dir ext/ffi_c/libffi/.git ls-files -z *.am */*.am`.gsub(".am\0", ".in\0").split("\x0")
|
||||
s.files += lfs.map do |f|
|
||||
File.join("ext/ffi_c/libffi", f)
|
||||
end
|
||||
|
||||
s.extensions << 'ext/ffi_c/extconf.rb'
|
||||
s.rdoc_options = %w[--exclude=ext/ffi_c/.*\.o$ --exclude=ffi_c\.(bundle|so)$]
|
||||
s.license = 'BSD-3-Clause'
|
||||
s.require_paths << 'ext/ffi_c'
|
||||
s.required_ruby_version = '>= 2.5'
|
||||
|
||||
s.metadata['msys2_mingw_dependencies'] = 'libffi'
|
||||
end
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
@@ -0,0 +1,27 @@
|
||||
if RUBY_ENGINE == 'ruby'
|
||||
begin
|
||||
require RUBY_VERSION.split('.')[0, 2].join('.') + '/ffi_c'
|
||||
rescue Exception
|
||||
require 'ffi_c'
|
||||
end
|
||||
|
||||
require 'ffi/ffi'
|
||||
|
||||
elsif RUBY_ENGINE == 'jruby' && (RUBY_ENGINE_VERSION.split('.').map(&:to_i) <=> [9, 2, 20]) >= 0
|
||||
JRuby::Util.load_ext("org.jruby.ext.ffi.FFIService")
|
||||
require 'ffi/ffi'
|
||||
|
||||
elsif RUBY_ENGINE == 'truffleruby' && (RUBY_ENGINE_VERSION.split('.').map(&:to_i) <=> [20, 1, 0]) >= 0
|
||||
require 'truffleruby/ffi_backend'
|
||||
require 'ffi/ffi'
|
||||
|
||||
else
|
||||
# Remove the ffi gem dir from the load path, then reload the internal ffi implementation
|
||||
$LOAD_PATH.delete(File.dirname(__FILE__))
|
||||
$LOAD_PATH.delete(File.join(File.dirname(__FILE__), 'ffi'))
|
||||
unless $LOADED_FEATURES.nil?
|
||||
$LOADED_FEATURES.delete(__FILE__)
|
||||
$LOADED_FEATURES.delete('ffi.rb')
|
||||
end
|
||||
require 'ffi.rb'
|
||||
end
|
||||
@@ -0,0 +1,44 @@
|
||||
#
|
||||
# Copyright (C) 2020 Lars Kanis
|
||||
#
|
||||
# This file is part of ruby-ffi.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice, this
|
||||
# list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright notice
|
||||
# this list of conditions and the following disclaimer in the documentation
|
||||
# and/or other materials provided with the distribution.
|
||||
# * Neither the name of the Ruby FFI project nor the names of its contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.#
|
||||
|
||||
|
||||
module FFI
|
||||
class AbstractMemory
|
||||
LONG_MAX = FFI::Pointer.new(1).size
|
||||
private_constant :LONG_MAX
|
||||
|
||||
# Return +true+ if +self+ has a size limit.
|
||||
#
|
||||
# @return [Boolean]
|
||||
def size_limit?
|
||||
size != LONG_MAX
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,186 @@
|
||||
#
|
||||
# Copyright (C) 2008-2010 Wayne Meissner
|
||||
# Copyright (C) 2008 Mike Dalessio
|
||||
#
|
||||
# This file is part of ruby-ffi.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice, this
|
||||
# list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright notice
|
||||
# this list of conditions and the following disclaimer in the documentation
|
||||
# and/or other materials provided with the distribution.
|
||||
# * Neither the name of the Ruby FFI project nor the names of its contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
module FFI
|
||||
class AutoPointer < Pointer
|
||||
extend DataConverter
|
||||
|
||||
# @overload initialize(pointer, method)
|
||||
# @param pointer [Pointer]
|
||||
# @param method [Method]
|
||||
# @return [self]
|
||||
# The passed Method will be invoked at GC time.
|
||||
# @overload initialize(pointer, proc)
|
||||
# @param pointer [Pointer]
|
||||
# @return [self]
|
||||
# The passed Proc will be invoked at GC time (SEE WARNING BELOW!)
|
||||
# @note WARNING: passing a proc _may_ cause your pointer to never be
|
||||
# GC'd, unless you're careful to avoid trapping a reference to the
|
||||
# pointer in the proc. See the test specs for examples.
|
||||
# @overload initialize(pointer)
|
||||
# @param pointer [Pointer]
|
||||
# @return [self]
|
||||
# The pointer's release() class method will be invoked at GC time.
|
||||
#
|
||||
# @note The safest, and therefore preferred, calling
|
||||
# idiom is to pass a Method as the second parameter. Example usage:
|
||||
#
|
||||
# class PointerHelper
|
||||
# def self.release(pointer)
|
||||
# ...
|
||||
# end
|
||||
# end
|
||||
#
|
||||
# p = AutoPointer.new(other_pointer, PointerHelper.method(:release))
|
||||
#
|
||||
# The above code will cause PointerHelper#release to be invoked at GC time.
|
||||
#
|
||||
# @note
|
||||
# The last calling idiom (only one parameter) is generally only
|
||||
# going to be useful if you subclass {AutoPointer}, and override
|
||||
# #release, which by default does nothing.
|
||||
def initialize(ptr, proc=nil)
|
||||
raise TypeError, "Invalid pointer" if ptr.nil? || !ptr.kind_of?(Pointer) ||
|
||||
ptr.kind_of?(MemoryPointer) || ptr.kind_of?(AutoPointer)
|
||||
super(ptr.type_size, ptr)
|
||||
|
||||
@releaser = if proc
|
||||
if not proc.respond_to?(:call)
|
||||
raise RuntimeError.new("proc must be callable")
|
||||
end
|
||||
Releaser.new(ptr, proc)
|
||||
|
||||
else
|
||||
if not self.class.respond_to?(:release, true)
|
||||
raise RuntimeError.new("no release method defined")
|
||||
end
|
||||
Releaser.new(ptr, self.class.method(:release))
|
||||
end
|
||||
|
||||
ObjectSpace.define_finalizer(self, @releaser)
|
||||
self
|
||||
end
|
||||
|
||||
def dup
|
||||
raise RuntimeError, "cannot duplicate FFI::AutoPointer"
|
||||
end
|
||||
|
||||
alias clone dup
|
||||
|
||||
# @return [nil]
|
||||
# Free the pointer.
|
||||
def free
|
||||
@releaser.free
|
||||
end
|
||||
|
||||
# @param [Boolean] autorelease
|
||||
# @return [Boolean] +autorelease+
|
||||
# Set +autorelease+ property. See {Pointer Autorelease section at Pointer}.
|
||||
def autorelease=(autorelease)
|
||||
raise FrozenError.new("can't modify frozen #{self.class}") if frozen?
|
||||
@releaser.autorelease=(autorelease)
|
||||
end
|
||||
|
||||
# @return [Boolean] +autorelease+
|
||||
# Get +autorelease+ property. See {Pointer Autorelease section at Pointer}.
|
||||
def autorelease?
|
||||
@releaser.autorelease
|
||||
end
|
||||
|
||||
# @abstract Base class for {AutoPointer}'s releasers.
|
||||
#
|
||||
# All subclasses of Releaser should define a +#release(ptr)+ method.
|
||||
# A releaser is an object in charge of release an {AutoPointer}.
|
||||
class Releaser
|
||||
attr_accessor :autorelease
|
||||
|
||||
# @param [Pointer] ptr
|
||||
# @param [#call] proc
|
||||
# @return [nil]
|
||||
# A new instance of Releaser.
|
||||
def initialize(ptr, proc)
|
||||
@ptr = ptr
|
||||
@proc = proc
|
||||
@autorelease = true
|
||||
end
|
||||
|
||||
# @return [nil]
|
||||
# Free pointer.
|
||||
def free
|
||||
if @ptr
|
||||
release(@ptr)
|
||||
@autorelease = false
|
||||
@ptr = nil
|
||||
@proc = nil
|
||||
end
|
||||
end
|
||||
|
||||
# @param args
|
||||
# Release pointer if +autorelease+ is set.
|
||||
def call(*args)
|
||||
release(@ptr) if @autorelease && @ptr
|
||||
end
|
||||
|
||||
# Release +ptr+ by using Proc or Method defined at +ptr+
|
||||
# {AutoPointer#initialize initialization}.
|
||||
#
|
||||
# @param [Pointer] ptr
|
||||
# @return [nil]
|
||||
def release(ptr)
|
||||
@proc.call(ptr)
|
||||
end
|
||||
end
|
||||
|
||||
# Return native type of AutoPointer.
|
||||
#
|
||||
# Override {DataConverter#native_type}.
|
||||
# @return [Type::POINTER]
|
||||
# @raise {RuntimeError} if class does not implement a +#release+ method
|
||||
def self.native_type
|
||||
if not self.respond_to?(:release, true)
|
||||
raise RuntimeError.new("no release method defined for #{self.inspect}")
|
||||
end
|
||||
Type::POINTER
|
||||
end
|
||||
|
||||
# Create a new AutoPointer.
|
||||
#
|
||||
# Override {DataConverter#from_native}.
|
||||
# @overload self.from_native(ptr, ctx)
|
||||
# @param [Pointer] ptr
|
||||
# @param ctx not used. Please set +nil+.
|
||||
# @return [AutoPointer]
|
||||
def self.from_native(val, ctx)
|
||||
self.new(val)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
@@ -0,0 +1,4 @@
|
||||
#
|
||||
# All the code from this file is now implemented in C. This file remains
|
||||
# to satisfy any leftover require 'ffi/buffer' in user code
|
||||
#
|
||||
@@ -0,0 +1,4 @@
|
||||
#
|
||||
# All the code from this file is now implemented in C. This file remains
|
||||
# to satisfy any leftover require 'ffi/callback' in user code
|
||||
#
|
||||
@@ -0,0 +1,54 @@
|
||||
#
|
||||
# Copyright (C) 2023-2023 Lars Kanis
|
||||
#
|
||||
# This file is part of ruby-ffi.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice, this
|
||||
# list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright notice
|
||||
# this list of conditions and the following disclaimer in the documentation
|
||||
# and/or other materials provided with the distribution.
|
||||
# * Neither the name of the Ruby FFI project nor the names of its contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
|
||||
module FFI
|
||||
if defined?(Ractor.make_shareable)
|
||||
# This is for FFI internal use only.
|
||||
def self.make_shareable(obj)
|
||||
Ractor.make_shareable(obj)
|
||||
end
|
||||
else
|
||||
def self.make_shareable(obj)
|
||||
obj.freeze
|
||||
end
|
||||
end
|
||||
|
||||
if defined?(Ractor.shareable_proc)
|
||||
# This is for FFI internal use only.
|
||||
def self.shareable_proc(**kwargs, &block)
|
||||
Ractor.shareable_proc(**kwargs, &block)
|
||||
end
|
||||
else
|
||||
def self.shareable_proc(**_kwargs, &block)
|
||||
block
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,67 @@
|
||||
#
|
||||
# Copyright (C) 2008-2010 Wayne Meissner
|
||||
#
|
||||
# This file is part of ruby-ffi.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice, this
|
||||
# list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright notice
|
||||
# this list of conditions and the following disclaimer in the documentation
|
||||
# and/or other materials provided with the distribution.
|
||||
# * Neither the name of the Ruby FFI project nor the names of its contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.#
|
||||
|
||||
module FFI
|
||||
# This module is used to extend somes classes and give then a common API.
|
||||
#
|
||||
# Most of methods defined here must be overridden.
|
||||
module DataConverter
|
||||
# Get native type.
|
||||
#
|
||||
# @overload native_type(type)
|
||||
# @param [String, Symbol, Type] type
|
||||
# @return [Type]
|
||||
# Get native type from +type+.
|
||||
#
|
||||
# @overload native_type
|
||||
# @raise {NotImplementedError} This method must be overridden.
|
||||
def native_type(type = nil)
|
||||
if type
|
||||
@native_type = FFI.find_type(type)
|
||||
else
|
||||
native_type = @native_type
|
||||
unless native_type
|
||||
raise NotImplementedError, 'native_type method not overridden and no native_type set'
|
||||
end
|
||||
native_type
|
||||
end
|
||||
end
|
||||
|
||||
# Convert to a native type.
|
||||
def to_native(value, ctx)
|
||||
value
|
||||
end
|
||||
|
||||
# Convert from a native type.
|
||||
def from_native(value, ctx)
|
||||
value
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,118 @@
|
||||
#
|
||||
# Copyright (C) 2008-2010 Wayne Meissner
|
||||
#
|
||||
# This file is part of ruby-ffi.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice, this
|
||||
# list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright notice
|
||||
# this list of conditions and the following disclaimer in the documentation
|
||||
# and/or other materials provided with the distribution.
|
||||
# * Neither the name of the Ruby FFI project nor the names of its contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.#
|
||||
|
||||
module FFI
|
||||
class DynamicLibrary
|
||||
SEARCH_PATH = []
|
||||
|
||||
# The following search paths are tried, if the library could not be loaded in the first attempt.
|
||||
# They are only executed on Macos in the following order:
|
||||
if FFI::Platform.mac?
|
||||
|
||||
# 1. Try library paths possibly defined in LD_LIBRARY_PATH DYLD_LIBRARY_PATH first.
|
||||
# This is because dlopen doesn't respect LD_LIBRARY_PATH and DYLD_LIBRARY_PATH is deleted by SIP-protected binaries.
|
||||
# See here for details: https://github.com/ffi/ffi/issues/923#issuecomment-1872565313
|
||||
%w[LD_LIBRARY_PATH DYLD_LIBRARY_PATH].each do |custom_path|
|
||||
SEARCH_PATH.concat ENV.fetch(custom_path,"").split(File::PATH_SEPARATOR)
|
||||
end
|
||||
|
||||
# 2. Then on macos/arm64 try /opt/homebrew/lib, since this is a typical standard directory.
|
||||
# FFI is often used together with homebrew, so that we hardcode the path for arm64 here.
|
||||
if FFI::Platform::ARCH == 'aarch64'
|
||||
SEARCH_PATH << '/opt/homebrew/lib'
|
||||
end
|
||||
|
||||
# 3. Then try typical system directories starting with the /local/ directory first.
|
||||
#
|
||||
# /usr/local/lib is used by homebrow on x86_64.
|
||||
# /opt/local/lib is used by MacPorts and Fink.
|
||||
# /usr/lib is there, because it was always there.
|
||||
SEARCH_PATH.concat %w[/opt/local/lib /usr/local/lib /usr/lib]
|
||||
end
|
||||
|
||||
# On Linux the library lookup paths are usually defined through /etc/ld.so.conf, which can be changed at will with root permissions.
|
||||
# Also LD_LIBRARY_PATH is respected by the dynamic loader, so that there's usually no need and no advantage to do a fallback handling.
|
||||
#
|
||||
# Windows has it's own library lookup logic, very different to what we do here.
|
||||
# See: https://github.com/oneclick/rubyinstaller2/wiki/For-gem-developers#user-content-dll-loading
|
||||
|
||||
FFI.make_shareable(SEARCH_PATH)
|
||||
SEARCH_PATH_MESSAGE = "Searched in <system library path>#{ SEARCH_PATH.map{|a| ', ' + a}.join }".freeze
|
||||
|
||||
def self.load_library(name, flags)
|
||||
if name == FFI::CURRENT_PROCESS
|
||||
FFI::DynamicLibrary.open(nil, RTLD_LAZY | RTLD_LOCAL)
|
||||
else
|
||||
flags ||= RTLD_LAZY | RTLD_LOCAL
|
||||
|
||||
libnames = (name.is_a?(::Array) ? name : [name])
|
||||
libnames = libnames.map(&:to_s).map { |n| [n, FFI.map_library_name(n)].uniq }.flatten.compact
|
||||
errors = []
|
||||
|
||||
libnames.each do |libname|
|
||||
lib = try_load(libname, flags, errors)
|
||||
return lib if lib
|
||||
|
||||
unless libname.start_with?("/")
|
||||
SEARCH_PATH.each do |prefix|
|
||||
path = "#{prefix}/#{libname}"
|
||||
if File.exist?(path)
|
||||
lib = try_load(path, flags, errors)
|
||||
return lib if lib
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
raise LoadError, [*errors, SEARCH_PATH_MESSAGE].join(".\n")
|
||||
end
|
||||
end
|
||||
private_class_method :load_library
|
||||
|
||||
def self.try_load(libname, flags, errors)
|
||||
begin
|
||||
lib = FFI::DynamicLibrary.open(libname, flags)
|
||||
return lib if lib
|
||||
|
||||
# LoadError for C ext & JRuby, RuntimeError for TruffleRuby
|
||||
rescue LoadError, RuntimeError => ex
|
||||
if ex.message =~ /(([^ \t()])+\.so([^ \t:()])*):([ \t])*(invalid ELF header|file too short|invalid file format)/
|
||||
if File.binread($1) =~ /(?:GROUP|INPUT) *\( *([^ \)]+)/
|
||||
return try_load($1, flags, errors)
|
||||
end
|
||||
end
|
||||
|
||||
errors << ex
|
||||
nil
|
||||
end
|
||||
end
|
||||
private_class_method :try_load
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,302 @@
|
||||
#
|
||||
# Copyright (C) 2009, 2010 Wayne Meissner
|
||||
# Copyright (C) 2009 Luc Heinrich
|
||||
#
|
||||
# This file is part of ruby-ffi.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice, this
|
||||
# list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright notice
|
||||
# this list of conditions and the following disclaimer in the documentation
|
||||
# and/or other materials provided with the distribution.
|
||||
# * Neither the name of the Ruby FFI project nor the names of its contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
|
||||
module FFI
|
||||
|
||||
# An instance of this class permits to manage {Enum}s. In fact, Enums is a collection of {Enum}s.
|
||||
class Enums
|
||||
|
||||
def initialize
|
||||
@all_enums = Array.new
|
||||
@tagged_enums = Hash.new
|
||||
@symbol_map = Hash.new
|
||||
end
|
||||
|
||||
# @param [Enum] enum
|
||||
# Add an {Enum} to the collection.
|
||||
def <<(enum)
|
||||
@all_enums << enum
|
||||
@tagged_enums[enum.tag] = enum unless enum.tag.nil?
|
||||
@symbol_map.merge!(enum.symbol_map)
|
||||
end
|
||||
|
||||
# @param query enum tag or part of an enum name
|
||||
# @return [Enum]
|
||||
# Find a {Enum} in collection.
|
||||
def find(query)
|
||||
if @tagged_enums.has_key?(query)
|
||||
@tagged_enums[query]
|
||||
else
|
||||
@all_enums.detect { |enum| enum.symbols.include?(query) }
|
||||
end
|
||||
end
|
||||
|
||||
# @param symbol a symbol to find in merge symbol maps of all enums.
|
||||
# @return a symbol
|
||||
def __map_symbol(symbol)
|
||||
@symbol_map[symbol]
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
# Represents a C enum.
|
||||
#
|
||||
# For a C enum:
|
||||
# enum fruits {
|
||||
# apple,
|
||||
# banana,
|
||||
# orange,
|
||||
# pineapple
|
||||
# };
|
||||
# are defined this vocabulary:
|
||||
# * a _symbol_ is a word from the enumeration (ie. _apple_, by example);
|
||||
# * a _value_ is the value of a symbol in the enumeration (by example, apple has value _0_ and banana _1_).
|
||||
class Enum
|
||||
include DataConverter
|
||||
|
||||
attr_reader :tag
|
||||
attr_reader :native_type
|
||||
|
||||
# @overload initialize(info, tag=nil)
|
||||
# @param [nil, Enumerable] info
|
||||
# @param [nil, Symbol] tag enum tag
|
||||
# @overload initialize(native_type, info, tag=nil)
|
||||
# @param [FFI::Type] native_type Native type for new Enum
|
||||
# @param [nil, Enumerable] info symbols and values for new Enum
|
||||
# @param [nil, Symbol] tag name of new Enum
|
||||
def initialize(*args)
|
||||
@native_type = args.first.kind_of?(FFI::Type) ? args.shift : Type::INT
|
||||
info, @tag = *args
|
||||
@kv_map = Hash.new
|
||||
unless info.nil?
|
||||
last_cst = nil
|
||||
value = 0
|
||||
info.each do |i|
|
||||
case i
|
||||
when Symbol
|
||||
raise ArgumentError, "duplicate enum key" if @kv_map.has_key?(i)
|
||||
@kv_map[i] = value
|
||||
last_cst = i
|
||||
value += 1
|
||||
when Integer
|
||||
@kv_map[last_cst] = i
|
||||
value = i+1
|
||||
end
|
||||
end
|
||||
end
|
||||
@vk_map = @kv_map.invert
|
||||
end
|
||||
|
||||
# @return [Array] enum symbol names
|
||||
def symbols
|
||||
@kv_map.keys
|
||||
end
|
||||
|
||||
# Get a symbol or a value from the enum.
|
||||
# @overload [](query)
|
||||
# Get enum value from symbol.
|
||||
# @param [Symbol] query
|
||||
# @return [Integer]
|
||||
# @overload [](query)
|
||||
# Get enum symbol from value.
|
||||
# @param [Integer] query
|
||||
# @return [Symbol]
|
||||
def [](query)
|
||||
case query
|
||||
when Symbol
|
||||
@kv_map[query]
|
||||
when Integer
|
||||
@vk_map[query]
|
||||
end
|
||||
end
|
||||
alias find []
|
||||
|
||||
# Get the symbol map.
|
||||
# @return [Hash]
|
||||
def symbol_map
|
||||
@kv_map
|
||||
end
|
||||
|
||||
alias to_h symbol_map
|
||||
alias to_hash symbol_map
|
||||
|
||||
# @param [Symbol, Integer, #to_int] val
|
||||
# @param ctx unused
|
||||
# @return [Integer] value of a enum symbol
|
||||
def to_native(val, ctx)
|
||||
@kv_map[val] || if val.is_a?(Integer)
|
||||
val
|
||||
elsif val.respond_to?(:to_int)
|
||||
val.to_int
|
||||
else
|
||||
raise ArgumentError, "invalid enum value, #{val.inspect}"
|
||||
end
|
||||
end
|
||||
|
||||
# @param val
|
||||
# @return symbol name if it exists for +val+.
|
||||
def from_native(val, ctx)
|
||||
@vk_map[val] || val
|
||||
end
|
||||
end
|
||||
|
||||
# Represents a C enum whose values are power of 2
|
||||
#
|
||||
# @example
|
||||
# enum {
|
||||
# red = (1<<0),
|
||||
# green = (1<<1),
|
||||
# blue = (1<<2)
|
||||
# }
|
||||
#
|
||||
# Contrary to classical enums, bitmask values are usually combined
|
||||
# when used.
|
||||
class Bitmask < Enum
|
||||
|
||||
# @overload initialize(info, tag=nil)
|
||||
# @param [nil, Enumerable] info symbols and bit rank for new Bitmask
|
||||
# @param [nil, Symbol] tag name of new Bitmask
|
||||
# @overload initialize(native_type, info, tag=nil)
|
||||
# @param [FFI::Type] native_type Native type for new Bitmask
|
||||
# @param [nil, Enumerable] info symbols and bit rank for new Bitmask
|
||||
# @param [nil, Symbol] tag name of new Bitmask
|
||||
def initialize(*args)
|
||||
@native_type = args.first.kind_of?(FFI::Type) ? args.shift : Type::INT
|
||||
@signed = [Type::INT8, Type::INT16, Type::INT32, Type::INT64].include?(@native_type)
|
||||
info, @tag = *args
|
||||
@kv_map = Hash.new
|
||||
unless info.nil?
|
||||
last_cst = nil
|
||||
value = 0
|
||||
info.each do |i|
|
||||
case i
|
||||
when Symbol
|
||||
raise ArgumentError, "duplicate bitmask key" if @kv_map.has_key?(i)
|
||||
@kv_map[i] = 1 << value
|
||||
last_cst = i
|
||||
value += 1
|
||||
when Integer
|
||||
raise ArgumentError, "bitmask index should be positive" if i<0
|
||||
@kv_map[last_cst] = 1 << i
|
||||
value = i+1
|
||||
end
|
||||
end
|
||||
end
|
||||
@vk_map = @kv_map.invert
|
||||
end
|
||||
|
||||
# Get a symbol list or a value from the bitmask
|
||||
# @overload [](*query)
|
||||
# Get bitmask value from symbol list
|
||||
# @param [Symbol] query
|
||||
# @return [Integer]
|
||||
# @overload [](query)
|
||||
# Get bitmask value from symbol array
|
||||
# @param [Array<Symbol>] query
|
||||
# @return [Integer]
|
||||
# @overload [](*query)
|
||||
# Get a list of bitmask symbols corresponding to
|
||||
# the or reduction of a list of integer
|
||||
# @param [Integer] query
|
||||
# @return [Array<Symbol>]
|
||||
# @overload [](query)
|
||||
# Get a list of bitmask symbols corresponding to
|
||||
# the or reduction of a list of integer
|
||||
# @param [Array<Integer>] query
|
||||
# @return [Array<Symbol>]
|
||||
def [](*query)
|
||||
flat_query = query.flatten
|
||||
raise ArgumentError, "query should be homogeneous, #{query.inspect}" unless flat_query.all? { |o| o.is_a?(Symbol) } || flat_query.all? { |o| o.is_a?(Integer) || o.respond_to?(:to_int) }
|
||||
case flat_query[0]
|
||||
when Symbol
|
||||
flat_query.inject(0) do |val, o|
|
||||
v = @kv_map[o]
|
||||
if v then val | v else val end
|
||||
end
|
||||
when Integer, ->(o) { o.respond_to?(:to_int) }
|
||||
val = flat_query.inject(0) { |mask, o| mask |= o.to_int }
|
||||
@kv_map.select { |_, v| v & val != 0 }.keys
|
||||
end
|
||||
end
|
||||
|
||||
# Get the native value of a bitmask
|
||||
# @overload to_native(query, ctx)
|
||||
# @param [Symbol, Integer, #to_int] query
|
||||
# @param ctx unused
|
||||
# @return [Integer] value of a bitmask
|
||||
# @overload to_native(query, ctx)
|
||||
# @param [Array<Symbol, Integer, #to_int>] query
|
||||
# @param ctx unused
|
||||
# @return [Integer] value of a bitmask
|
||||
def to_native(query, ctx)
|
||||
return 0 if query.nil?
|
||||
flat_query = [query].flatten
|
||||
res = flat_query.inject(0) do |val, o|
|
||||
case o
|
||||
when Symbol
|
||||
v = @kv_map[o]
|
||||
raise ArgumentError, "invalid bitmask value, #{o.inspect}" unless v
|
||||
val | v
|
||||
when Integer
|
||||
val | o
|
||||
when ->(obj) { obj.respond_to?(:to_int) }
|
||||
val | o.to_int
|
||||
else
|
||||
raise ArgumentError, "invalid bitmask value, #{o.inspect}"
|
||||
end
|
||||
end
|
||||
# Take two's complement of positive values bigger than the max value
|
||||
# for the type when native type is signed.
|
||||
if @signed && res >= (1 << (@native_type.size * 8 - 1))
|
||||
res = -(-res & ((1 << (@native_type.size * 8)) - 1))
|
||||
end
|
||||
res
|
||||
end
|
||||
|
||||
# @param [Integer] val
|
||||
# @param ctx unused
|
||||
# @return [Array<Symbol, Integer>] list of symbol names corresponding to val, plus an optional remainder if some bits don't match any constant
|
||||
def from_native(val, ctx)
|
||||
flags = @kv_map.select { |_, v| v & val != 0 }
|
||||
list = flags.keys
|
||||
# force an unsigned value of the correct size
|
||||
val &= (1 << (@native_type.size * 8)) - 1 if @signed
|
||||
# If there are unmatch flags,
|
||||
# return them in an integer,
|
||||
# else information can be lost.
|
||||
# Similar to Enum behavior.
|
||||
remainder = val ^ flags.values.reduce(0, :|)
|
||||
list.push remainder unless remainder == 0
|
||||
return list
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,43 @@
|
||||
#
|
||||
# Copyright (C) 2008-2010 Wayne Meissner
|
||||
#
|
||||
# This file is part of ruby-ffi.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice, this
|
||||
# list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright notice
|
||||
# this list of conditions and the following disclaimer in the documentation
|
||||
# and/or other materials provided with the distribution.
|
||||
# * Neither the name of the Ruby FFI project nor the names of its contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.#
|
||||
|
||||
module FFI
|
||||
# @return (see FFI::LastError.error)
|
||||
# @see FFI::LastError.error
|
||||
def self.errno
|
||||
FFI::LastError.error
|
||||
end
|
||||
# @param error (see FFI::LastError.error=)
|
||||
# @return (see FFI::LastError.error=)
|
||||
# @see FFI::LastError.error=
|
||||
def self.errno=(error)
|
||||
FFI::LastError.error = error
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,109 @@
|
||||
#
|
||||
# Copyright (C) 2008-2010 JRuby project
|
||||
#
|
||||
# This file is part of ruby-ffi.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice, this
|
||||
# list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright notice
|
||||
# this list of conditions and the following disclaimer in the documentation
|
||||
# and/or other materials provided with the distribution.
|
||||
# * Neither the name of the Ruby FFI project nor the names of its contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
require 'ffi/compat'
|
||||
require 'ffi/platform'
|
||||
require 'ffi/data_converter'
|
||||
require 'ffi/types'
|
||||
require 'ffi/library_path'
|
||||
require 'ffi/library'
|
||||
require 'ffi/errno'
|
||||
require 'ffi/abstract_memory'
|
||||
require 'ffi/pointer'
|
||||
require 'ffi/memorypointer'
|
||||
require 'ffi/struct'
|
||||
require 'ffi/union'
|
||||
require 'ffi/managedstruct'
|
||||
require 'ffi/callback'
|
||||
require 'ffi/io'
|
||||
require 'ffi/autopointer'
|
||||
require 'ffi/variadic'
|
||||
require 'ffi/enum'
|
||||
require 'ffi/version'
|
||||
require 'ffi/function'
|
||||
|
||||
module FFI
|
||||
module ModernForkTracking
|
||||
def _fork
|
||||
pid = super
|
||||
if pid == 0
|
||||
FFI._async_cb_dispatcher_atfork_child
|
||||
end
|
||||
pid
|
||||
end
|
||||
end
|
||||
|
||||
module LegacyForkTracking
|
||||
module KernelExt
|
||||
def fork
|
||||
if block_given?
|
||||
super do
|
||||
FFI._async_cb_dispatcher_atfork_child
|
||||
yield
|
||||
end
|
||||
else
|
||||
pid = super
|
||||
FFI._async_cb_dispatcher_atfork_child if pid.nil?
|
||||
pid
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
module KernelExtPrivate
|
||||
include KernelExt
|
||||
private :fork
|
||||
end
|
||||
|
||||
module IOExt
|
||||
def popen(*args)
|
||||
return super unless args[0] == '-'
|
||||
|
||||
super(*args) do |pipe|
|
||||
FFI._async_cb_dispatcher_atfork_child if pipe.nil?
|
||||
yield pipe
|
||||
end
|
||||
end
|
||||
ruby2_keywords :popen if respond_to?(:ruby2_keywords)
|
||||
end
|
||||
end
|
||||
|
||||
if Process.respond_to?(:_fork)
|
||||
# The nice Ruby 3.1+ way of doing things
|
||||
::Process.singleton_class.prepend(ModernForkTracking)
|
||||
elsif Process.respond_to?(:fork)
|
||||
# Barf. Old CRuby.
|
||||
# Most of the inspiration for how to do this was stolen from ActiveSupport.
|
||||
::Object.prepend(LegacyForkTracking::KernelExtPrivate)
|
||||
::Object.singleton_class.prepend(LegacyForkTracking::KernelExt)
|
||||
::Kernel.prepend(LegacyForkTracking::KernelExtPrivate)
|
||||
::Kernel.singleton_class.prepend(LegacyForkTracking::KernelExt)
|
||||
::IO.singleton_class.prepend(LegacyForkTracking::IOExt)
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,94 @@
|
||||
#
|
||||
# Copyright (C) 2008-2010 JRuby project
|
||||
#
|
||||
# This file is part of ruby-ffi.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice, this
|
||||
# list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright notice
|
||||
# this list of conditions and the following disclaimer in the documentation
|
||||
# and/or other materials provided with the distribution.
|
||||
# * Neither the name of the Ruby FFI project nor the names of its contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
module FFI
|
||||
class Function
|
||||
# Only MRI allows function type queries
|
||||
if private_method_defined?(:type)
|
||||
# Retrieve the return type of the function
|
||||
#
|
||||
# This method returns FFI type returned by the function.
|
||||
#
|
||||
# @return [FFI::Type]
|
||||
def return_type
|
||||
type.return_type
|
||||
end
|
||||
|
||||
# Retrieve Array of parameter types
|
||||
#
|
||||
# This method returns an Array of FFI types accepted as function parameters.
|
||||
#
|
||||
# @return [Array<FFI::Type>]
|
||||
def param_types
|
||||
type.param_types
|
||||
end
|
||||
end
|
||||
|
||||
if RUBY_PLATFORM == 'aarch64-mingw-ucrt'
|
||||
# Use a workaround for https://github.com/libffi/libffi/issues/905
|
||||
def attach(mod, name)
|
||||
this = self
|
||||
body = proc do |*args, &block|
|
||||
this.call(*args, &block)
|
||||
end
|
||||
|
||||
mod.define_method(name, body)
|
||||
mod.define_singleton_method(name, body)
|
||||
|
||||
# Store function Proc's for re-definition as Ractor-shareable in Library#freeze
|
||||
funcs = mod.instance_variable_get("@ffi_function_procs")
|
||||
unless funcs
|
||||
funcs = {}
|
||||
mod.instance_variable_set("@ffi_function_procs", funcs)
|
||||
end
|
||||
funcs[name] = self
|
||||
|
||||
self
|
||||
end
|
||||
end
|
||||
|
||||
# Stash the Function in a module variable so it can be inspected by attached_functions.
|
||||
# On CRuby it also ensures that it does not get garbage collected.
|
||||
module RegisterAttach
|
||||
def attach(mod, name)
|
||||
funcs = mod.instance_variable_defined?("@ffi_functions") && mod.instance_variable_get("@ffi_functions")
|
||||
unless funcs
|
||||
funcs = {}
|
||||
mod.instance_variable_set("@ffi_functions", funcs)
|
||||
end
|
||||
funcs[name.to_sym] = self
|
||||
# Jump to the native attach method of CRuby, JRuby or Tuffleruby
|
||||
super
|
||||
end
|
||||
end
|
||||
private_constant :RegisterAttach
|
||||
prepend RegisterAttach
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,62 @@
|
||||
#
|
||||
# Copyright (C) 2008, 2009 Wayne Meissner
|
||||
#
|
||||
# This file is part of ruby-ffi.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice, this
|
||||
# list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright notice
|
||||
# this list of conditions and the following disclaimer in the documentation
|
||||
# and/or other materials provided with the distribution.
|
||||
# * Neither the name of the Ruby FFI project nor the names of its contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.#
|
||||
|
||||
module FFI
|
||||
|
||||
# This module implements a couple of class methods to play with IO.
|
||||
module IO
|
||||
# @param [Integer] fd file decriptor
|
||||
# @param [String] mode mode string
|
||||
# @return [::IO]
|
||||
# Synonym for IO::for_fd.
|
||||
def self.for_fd(fd, mode = "r")
|
||||
::IO.for_fd(fd, mode)
|
||||
end
|
||||
|
||||
# @param [#read] io io to read from
|
||||
# @param [AbstractMemory] buf destination for data read from +io+
|
||||
# @param [nil, Integer] len maximul number of bytes to read from +io+. If +nil+,
|
||||
# read until end of file.
|
||||
# @return [Integer] length really read, in bytes
|
||||
#
|
||||
# A version of IO#read that reads data from an IO and put then into a native buffer.
|
||||
#
|
||||
# This will be optimized at some future time to eliminate the double copy.
|
||||
#
|
||||
def self.native_read(io, buf, len)
|
||||
tmp = io.read(len)
|
||||
return -1 unless tmp
|
||||
buf.put_bytes(0, tmp)
|
||||
tmp.length
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
@@ -0,0 +1,592 @@
|
||||
#
|
||||
# Copyright (C) 2008-2010 Wayne Meissner
|
||||
#
|
||||
# This file is part of ruby-ffi.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice, this
|
||||
# list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright notice
|
||||
# this list of conditions and the following disclaimer in the documentation
|
||||
# and/or other materials provided with the distribution.
|
||||
# * Neither the name of the Ruby FFI project nor the names of its contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.#
|
||||
|
||||
require 'ffi/dynamic_library'
|
||||
|
||||
module FFI
|
||||
CURRENT_PROCESS = USE_THIS_PROCESS_AS_LIBRARY = FFI.make_shareable(Object.new)
|
||||
|
||||
# @param [String, FFI::LibraryPath] lib library name or LibraryPath object
|
||||
# @return [String] library name formatted for current platform
|
||||
# Transform a generic library name to a platform library name
|
||||
# @example
|
||||
# # Linux
|
||||
# FFI.map_library_name 'c' # -> "libc.so.6"
|
||||
# FFI.map_library_name 'jpeg' # -> "libjpeg.so"
|
||||
# # Windows
|
||||
# FFI.map_library_name 'c' # -> "msvcrt.dll"
|
||||
# FFI.map_library_name 'jpeg' # -> "jpeg.dll"
|
||||
def self.map_library_name(lib)
|
||||
# Mangle the library name to reflect the native library naming conventions
|
||||
LibraryPath.wrap(lib).to_s
|
||||
end
|
||||
|
||||
# Exception raised when a function is not found in libraries
|
||||
class NotFoundError < LoadError
|
||||
def initialize(function, *libraries)
|
||||
super("Function '#{function}' not found in [#{libraries[0].nil? ? 'current process' : libraries.join(", ")}]")
|
||||
end
|
||||
end
|
||||
|
||||
# This module is the base to use native functions.
|
||||
#
|
||||
# A basic usage may be:
|
||||
# require 'ffi'
|
||||
#
|
||||
# module Hello
|
||||
# extend FFI::Library
|
||||
# ffi_lib FFI::Library::LIBC
|
||||
# attach_function 'puts', [ :string ], :int
|
||||
# end
|
||||
#
|
||||
# Hello.puts("Hello, World")
|
||||
#
|
||||
#
|
||||
module Library
|
||||
CURRENT_PROCESS = FFI::CURRENT_PROCESS
|
||||
LIBC = FFI::Platform::LIBC
|
||||
|
||||
# @param mod extended object
|
||||
# @return [nil]
|
||||
# @raise {RuntimeError} if +mod+ is not a Module
|
||||
# Test if extended object is a Module. If not, raise RuntimeError.
|
||||
def self.extended(mod)
|
||||
raise RuntimeError.new("must only be extended by module") unless mod.kind_of?(::Module)
|
||||
end
|
||||
|
||||
|
||||
# @param [Array] names names of libraries to load
|
||||
# @return [Array<DynamicLibrary>]
|
||||
# @raise {LoadError} if a library cannot be opened
|
||||
# Load native libraries.
|
||||
def ffi_lib(*names)
|
||||
raise LoadError.new("library names list must not be empty") if names.empty?
|
||||
|
||||
lib_flags = defined?(@ffi_lib_flags) && @ffi_lib_flags
|
||||
|
||||
@ffi_libs = names.map do |name|
|
||||
FFI::DynamicLibrary.send(:load_library, name, lib_flags)
|
||||
end
|
||||
end
|
||||
|
||||
# Set the calling convention for {#attach_function} and {#callback}
|
||||
#
|
||||
# @see http://en.wikipedia.org/wiki/Stdcall#stdcall
|
||||
# @note +:stdcall+ is typically used for attaching Windows API functions
|
||||
#
|
||||
# @param [Symbol] convention one of +:default+, +:stdcall+
|
||||
# @return [Symbol] the new calling convention
|
||||
def ffi_convention(convention = nil)
|
||||
@ffi_convention ||= :default
|
||||
@ffi_convention = convention if convention
|
||||
@ffi_convention
|
||||
end
|
||||
|
||||
# @see #ffi_lib
|
||||
# @return [Array<FFI::DynamicLibrary>] array of currently loaded FFI libraries
|
||||
# @raise [LoadError] if no libraries have been loaded (using {#ffi_lib})
|
||||
# Get FFI libraries loaded using {#ffi_lib}.
|
||||
def ffi_libraries
|
||||
raise LoadError.new("no library specified") if !defined?(@ffi_libs) || @ffi_libs.empty?
|
||||
@ffi_libs
|
||||
end
|
||||
|
||||
# Flags used in {#ffi_lib}.
|
||||
#
|
||||
# This map allows you to supply symbols to {#ffi_lib_flags} instead of
|
||||
# the actual constants.
|
||||
FlagsMap = {
|
||||
:global => DynamicLibrary::RTLD_GLOBAL,
|
||||
:local => DynamicLibrary::RTLD_LOCAL,
|
||||
:lazy => DynamicLibrary::RTLD_LAZY,
|
||||
:now => DynamicLibrary::RTLD_NOW
|
||||
}
|
||||
|
||||
# Sets library flags for {#ffi_lib}.
|
||||
#
|
||||
# @example
|
||||
# ffi_lib_flags(:lazy, :local) # => 5
|
||||
#
|
||||
# @param [Symbol, …] flags (see {FlagsMap})
|
||||
# @return [Integer] the new value
|
||||
def ffi_lib_flags(*flags)
|
||||
@ffi_lib_flags = flags.inject(0) { |result, f| result | FlagsMap[f] }
|
||||
end
|
||||
|
||||
|
||||
##
|
||||
# @overload attach_function(func, args, returns, options = {})
|
||||
# @example attach function without an explicit name
|
||||
# module Foo
|
||||
# extend FFI::Library
|
||||
# ffi_lib FFI::Library::LIBC
|
||||
# attach_function :malloc, [:size_t], :pointer
|
||||
# end
|
||||
# # now callable via Foo.malloc
|
||||
# @overload attach_function(name, func, args, returns, options = {})
|
||||
# @example attach function with an explicit name
|
||||
# module Bar
|
||||
# extend FFI::Library
|
||||
# ffi_lib FFI::Library::LIBC
|
||||
# attach_function :c_malloc, :malloc, [:size_t], :pointer
|
||||
# end
|
||||
# # now callable via Bar.c_malloc
|
||||
#
|
||||
# Attach C function +func+ to this module.
|
||||
#
|
||||
#
|
||||
# @param [#to_s] name name of ruby method to attach as
|
||||
# @param [#to_s] func name of C function to attach
|
||||
# @param [Array<Symbol>] args an array of types
|
||||
# @param [Symbol] returns type of return value
|
||||
# @option options [Boolean] :blocking (@blocking) set to true if the C function is a blocking call
|
||||
# @option options [Symbol] :convention (:default) calling convention (see {#ffi_convention})
|
||||
# @option options [FFI::Enums] :enums
|
||||
# @option options [Hash] :type_map
|
||||
#
|
||||
# @return [FFI::VariadicInvoker]
|
||||
#
|
||||
# @raise [FFI::NotFoundError] if +func+ cannot be found in the attached libraries (see {#ffi_lib})
|
||||
def attach_function(name, func, args, returns = nil, options = nil)
|
||||
mname, a2, a3, a4, a5 = name, func, args, returns, options
|
||||
cname, arg_types, ret_type, opts = (a4 && (a2.is_a?(String) || a2.is_a?(Symbol))) ? [ a2, a3, a4, a5 ] : [ mname.to_s, a2, a3, a4 ]
|
||||
|
||||
# Convert :foo to the native type
|
||||
arg_types = arg_types.map { |e| find_type(e) }
|
||||
options = {
|
||||
:convention => ffi_convention,
|
||||
:type_map => defined?(@ffi_typedefs) ? @ffi_typedefs : nil,
|
||||
:blocking => defined?(@blocking) && @blocking,
|
||||
:enums => defined?(@ffi_enums) ? @ffi_enums : nil,
|
||||
}
|
||||
|
||||
@blocking = false
|
||||
options.merge!(opts) if opts && opts.is_a?(Hash)
|
||||
|
||||
# Try to locate the function in any of the libraries
|
||||
invokers = []
|
||||
ffi_libraries.each do |lib|
|
||||
if invokers.empty?
|
||||
begin
|
||||
function = nil
|
||||
function_names(cname, arg_types).find do |fname|
|
||||
function = lib.find_function(fname)
|
||||
end
|
||||
raise LoadError unless function
|
||||
|
||||
invokers << if arg_types[-1] == FFI::NativeType::VARARGS
|
||||
VariadicInvoker.new(function, arg_types, find_type(ret_type), options)
|
||||
|
||||
else
|
||||
Function.new(find_type(ret_type), arg_types, function, options)
|
||||
end
|
||||
|
||||
rescue LoadError
|
||||
end
|
||||
end
|
||||
end
|
||||
invoker = invokers.compact.shift
|
||||
raise FFI::NotFoundError.new(cname.to_s, ffi_libraries.map { |lib| lib.name }) unless invoker
|
||||
|
||||
invoker.attach(self, mname.to_s)
|
||||
invoker
|
||||
end
|
||||
|
||||
# @param [#to_s] name function name
|
||||
# @param [Array] arg_types function's argument types
|
||||
# @return [Array<String>]
|
||||
# This function returns a list of possible names to lookup.
|
||||
# @note Function names on windows may be decorated if they are using stdcall. See
|
||||
# * http://en.wikipedia.org/wiki/Name_mangling#C_name_decoration_in_Microsoft_Windows
|
||||
# * http://msdn.microsoft.com/en-us/library/zxk0tw93%28v=VS.100%29.aspx
|
||||
# * http://en.wikibooks.org/wiki/X86_Disassembly/Calling_Conventions#STDCALL
|
||||
# Note that decorated names can be overridden via def files. Also note that the
|
||||
# windows api, although using, doesn't have decorated names.
|
||||
def function_names(name, arg_types)
|
||||
result = [name.to_s]
|
||||
if ffi_convention == :stdcall
|
||||
# Get the size of each parameter
|
||||
size = arg_types.inject(0) do |mem, arg|
|
||||
size = arg.size
|
||||
# The size must be a multiple of 4
|
||||
size += (4 - size) % 4
|
||||
mem + size
|
||||
end
|
||||
|
||||
result << "_#{name.to_s}@#{size}" # win32
|
||||
result << "#{name.to_s}@#{size}" # win64
|
||||
end
|
||||
result
|
||||
end
|
||||
|
||||
# @overload attach_variable(mname, cname, type)
|
||||
# @param [#to_s] mname name of ruby method to attach as
|
||||
# @param [#to_s] cname name of C variable to attach
|
||||
# @param [DataConverter, Struct, Symbol, Type] type C variable's type
|
||||
# @example
|
||||
# module Bar
|
||||
# extend FFI::Library
|
||||
# ffi_lib 'my_lib'
|
||||
# attach_variable :c_myvar, :myvar, :long
|
||||
# end
|
||||
# # now callable via Bar.c_myvar
|
||||
# @overload attach_variable(cname, type)
|
||||
# @param [#to_s] mname name of ruby method to attach as
|
||||
# @param [DataConverter, Struct, Symbol, Type] type C variable's type
|
||||
# @example
|
||||
# module Bar
|
||||
# extend FFI::Library
|
||||
# ffi_lib 'my_lib'
|
||||
# attach_variable :myvar, :long
|
||||
# end
|
||||
# # now callable via Bar.myvar
|
||||
# @return [DynamicLibrary::Symbol]
|
||||
# @raise {FFI::NotFoundError} if +cname+ cannot be found in libraries
|
||||
#
|
||||
# Attach C variable +cname+ to this module.
|
||||
def attach_variable(mname, a1, a2 = nil)
|
||||
cname, type = a2 ? [ a1, a2 ] : [ mname.to_s, a1 ]
|
||||
mname = mname.to_sym
|
||||
address = nil
|
||||
ffi_libraries.each do |lib|
|
||||
begin
|
||||
address = lib.find_variable(cname.to_s)
|
||||
break unless address.nil?
|
||||
rescue LoadError
|
||||
end
|
||||
end
|
||||
|
||||
raise FFI::NotFoundError.new(cname, ffi_libraries) if address.nil? || address.null?
|
||||
if type.is_a?(Class) && type < FFI::Struct
|
||||
# If it is a global struct, just attach directly to the pointer
|
||||
s = s = type.new(address) # Assigning twice to suppress unused variable warning
|
||||
self.module_eval(<<-code, __FILE__, __LINE__)
|
||||
@ffi_gsvars = {} unless defined?(@ffi_gsvars)
|
||||
@ffi_gsvars[#{mname.inspect}] = s
|
||||
def self.#{mname}
|
||||
@ffi_gsvars[#{mname.inspect}]
|
||||
end
|
||||
code
|
||||
|
||||
else
|
||||
sc = Class.new(FFI::Struct)
|
||||
sc.layout :gvar, find_type(type)
|
||||
s = sc.new(address)
|
||||
#
|
||||
# Attach to this module as mname/mname=
|
||||
#
|
||||
self.module_eval(<<-code, __FILE__, __LINE__)
|
||||
@ffi_gvars = {} unless defined?(@ffi_gvars)
|
||||
@ffi_gvars[#{mname.inspect}] = s
|
||||
def self.#{mname}
|
||||
@ffi_gvars[#{mname.inspect}][:gvar]
|
||||
end
|
||||
def self.#{mname}=(value)
|
||||
@ffi_gvars[#{mname.inspect}][:gvar] = value
|
||||
end
|
||||
code
|
||||
|
||||
end
|
||||
|
||||
address
|
||||
end
|
||||
|
||||
|
||||
# @overload callback(name, params, ret)
|
||||
# @param name callback name to add to type map
|
||||
# @param [Array] params array of parameters' types
|
||||
# @param [DataConverter, Struct, Symbol, Type] ret callback return type
|
||||
# @overload callback(params, ret)
|
||||
# @param [Array] params array of parameters' types
|
||||
# @param [DataConverter, Struct, Symbol, Type] ret callback return type
|
||||
# @return [FFI::CallbackInfo]
|
||||
def callback(*args)
|
||||
raise ArgumentError, "wrong number of arguments" if args.length < 2 || args.length > 3
|
||||
name, params, ret = if args.length == 3
|
||||
args
|
||||
else
|
||||
[ nil, args[0], args[1] ]
|
||||
end
|
||||
|
||||
native_params = params.map { |e| find_type(e) }
|
||||
raise ArgumentError, "callbacks cannot have variadic parameters" if native_params.include?(FFI::Type::VARARGS)
|
||||
options = Hash.new
|
||||
options[:convention] = ffi_convention
|
||||
options[:enums] = @ffi_enums if defined?(@ffi_enums)
|
||||
ret_type = find_type(ret)
|
||||
if ret_type == Type::STRING
|
||||
raise TypeError, ":string is not allowed as return type of callbacks"
|
||||
end
|
||||
cb = FFI::CallbackInfo.new(ret_type, native_params, options)
|
||||
|
||||
# Add to the symbol -> type map (unless there was no name)
|
||||
unless name.nil?
|
||||
typedef cb, name
|
||||
end
|
||||
|
||||
cb
|
||||
end
|
||||
|
||||
# Register or get an already registered type definition.
|
||||
#
|
||||
# To register a new type definition, +old+ should be a {FFI::Type}. +add+
|
||||
# is in this case the type definition.
|
||||
#
|
||||
# If +old+ is a {DataConverter}, a {Type::Mapped} is returned.
|
||||
#
|
||||
# If +old+ is +:enum+
|
||||
# * and +add+ is an +Array+, a call to {#enum} is made with +add+ as single parameter;
|
||||
# * in others cases, +info+ is used to create a named enum.
|
||||
#
|
||||
# If +old+ is a key for type map, #typedef get +old+ type definition.
|
||||
#
|
||||
# @param [DataConverter, Symbol, Type] old
|
||||
# @param [Symbol] add
|
||||
# @param [Symbol] info
|
||||
# @return [FFI::Enum, FFI::Type]
|
||||
def typedef(old, add, info=nil)
|
||||
@ffi_typedefs = Hash.new unless defined?(@ffi_typedefs)
|
||||
|
||||
@ffi_typedefs[add] = if old.kind_of?(FFI::Type)
|
||||
old
|
||||
|
||||
elsif @ffi_typedefs.has_key?(old)
|
||||
@ffi_typedefs[old]
|
||||
|
||||
elsif old.is_a?(DataConverter)
|
||||
FFI::Type::Mapped.new(old)
|
||||
|
||||
elsif old == :enum
|
||||
if add.kind_of?(Array)
|
||||
self.enum(add)
|
||||
else
|
||||
self.enum(info, add)
|
||||
end
|
||||
|
||||
else
|
||||
FFI.find_type(old)
|
||||
end
|
||||
end
|
||||
|
||||
# @param [DataConverter, Type, Struct, Symbol] t type to find
|
||||
# @return [Type]
|
||||
# Find a type definition.
|
||||
def find_type(t)
|
||||
if t.kind_of?(Type)
|
||||
t
|
||||
|
||||
elsif defined?(@ffi_typedefs) && @ffi_typedefs.has_key?(t)
|
||||
@ffi_typedefs[t]
|
||||
|
||||
elsif t.is_a?(Class) && t < Struct
|
||||
Type::POINTER
|
||||
|
||||
elsif t.is_a?(DataConverter)
|
||||
# Add a typedef so next time the converter is used, it hits the cache
|
||||
typedef Type::Mapped.new(t), t
|
||||
|
||||
end || FFI.find_type(t)
|
||||
end
|
||||
|
||||
private
|
||||
# Generic enum builder
|
||||
# @param [Class] klass can be one of FFI::Enum or FFI::Bitmask
|
||||
# @param args (see #enum or #bitmask)
|
||||
def generic_enum(klass, *args)
|
||||
native_type = args.first.kind_of?(FFI::Type) ? args.shift : nil
|
||||
name, values = if args[0].kind_of?(Symbol) && args[1].kind_of?(Array)
|
||||
[ args[0], args[1] ]
|
||||
elsif args[0].kind_of?(Array)
|
||||
[ nil, args[0] ]
|
||||
else
|
||||
[ nil, args ]
|
||||
end
|
||||
@ffi_enums = FFI::Enums.new unless defined?(@ffi_enums)
|
||||
@ffi_enums << (e = native_type ? klass.new(native_type, values, name) : klass.new(values, name))
|
||||
|
||||
# If called with a name, add a typedef alias
|
||||
typedef(e, name) if name
|
||||
e
|
||||
end
|
||||
|
||||
public
|
||||
# @overload enum(name, values)
|
||||
# Create a named enum.
|
||||
# @example
|
||||
# enum :foo, [:zero, :one, :two] # named enum
|
||||
# @param [Symbol] name name for new enum
|
||||
# @param [Array] values values for enum
|
||||
# @overload enum(*args)
|
||||
# Create an unnamed enum.
|
||||
# @example
|
||||
# enum :zero, :one, :two # unnamed enum
|
||||
# @param args values for enum
|
||||
# @overload enum(values)
|
||||
# Create an unnamed enum.
|
||||
# @example
|
||||
# enum [:zero, :one, :two] # unnamed enum, equivalent to above example
|
||||
# @param [Array] values values for enum
|
||||
# @overload enum(native_type, name, values)
|
||||
# Create a named enum and specify the native type.
|
||||
# @example
|
||||
# enum FFI::Type::UINT64, :foo, [:zero, :one, :two] # named enum
|
||||
# @param [FFI::Type] native_type native type for new enum
|
||||
# @param [Symbol] name name for new enum
|
||||
# @param [Array] values values for enum
|
||||
# @overload enum(native_type, *args)
|
||||
# Create an unnamed enum and specify the native type.
|
||||
# @example
|
||||
# enum FFI::Type::UINT64, :zero, :one, :two # unnamed enum
|
||||
# @param [FFI::Type] native_type native type for new enum
|
||||
# @param args values for enum
|
||||
# @overload enum(native_type, values)
|
||||
# Create an unnamed enum and specify the native type.
|
||||
# @example
|
||||
# enum Type::UINT64, [:zero, :one, :two] # unnamed enum, equivalent to above example
|
||||
# @param [FFI::Type] native_type native type for new enum
|
||||
# @param [Array] values values for enum
|
||||
# @return [FFI::Enum]
|
||||
# Create a new {FFI::Enum}.
|
||||
def enum(*args)
|
||||
generic_enum(FFI::Enum, *args)
|
||||
end
|
||||
|
||||
# @overload bitmask(name, values)
|
||||
# Create a named bitmask
|
||||
# @example
|
||||
# bitmask :foo, [:red, :green, :blue] # bits 0,1,2 are used
|
||||
# bitmask :foo, [:red, :green, 5, :blue] # bits 0,5,6 are used
|
||||
# @param [Symbol] name for new bitmask
|
||||
# @param [Array<Symbol, Integer>] values for new bitmask
|
||||
# @overload bitmask(*args)
|
||||
# Create an unamed bitmask
|
||||
# @example
|
||||
# bm = bitmask :red, :green, :blue # bits 0,1,2 are used
|
||||
# bm = bitmask :red, :green, 5, blue # bits 0,5,6 are used
|
||||
# @param [Symbol, Integer] args values for new bitmask
|
||||
# @overload bitmask(values)
|
||||
# Create an unamed bitmask
|
||||
# @example
|
||||
# bm = bitmask [:red, :green, :blue] # bits 0,1,2 are used
|
||||
# bm = bitmask [:red, :green, 5, blue] # bits 0,5,6 are used
|
||||
# @param [Array<Symbol, Integer>] values for new bitmask
|
||||
# @overload bitmask(native_type, name, values)
|
||||
# Create a named enum and specify the native type.
|
||||
# @example
|
||||
# bitmask FFI::Type::UINT64, :foo, [:red, :green, :blue]
|
||||
# @param [FFI::Type] native_type native type for new bitmask
|
||||
# @param [Symbol] name for new bitmask
|
||||
# @param [Array<Symbol, Integer>] values for new bitmask
|
||||
# @overload bitmask(native_type, *args)
|
||||
# @example
|
||||
# bitmask FFI::Type::UINT64, :red, :green, :blue
|
||||
# @param [FFI::Type] native_type native type for new bitmask
|
||||
# @param [Symbol, Integer] args values for new bitmask
|
||||
# @overload bitmask(native_type, values)
|
||||
# Create a named enum and specify the native type.
|
||||
# @example
|
||||
# bitmask FFI::Type::UINT64, [:red, :green, :blue]
|
||||
# @param [FFI::Type] native_type native type for new bitmask
|
||||
# @param [Array<Symbol, Integer>] values for new bitmask
|
||||
# @return [FFI::Bitmask]
|
||||
# Create a new FFI::Bitmask
|
||||
def bitmask(*args)
|
||||
generic_enum(FFI::Bitmask, *args)
|
||||
end
|
||||
|
||||
# @param name
|
||||
# @return [FFI::Enum]
|
||||
# Find an enum by name.
|
||||
def enum_type(name)
|
||||
@ffi_enums.find(name) if defined?(@ffi_enums)
|
||||
end
|
||||
|
||||
# @param symbol
|
||||
# @return [FFI::Enum]
|
||||
# Find an enum by a symbol it contains.
|
||||
def enum_value(symbol)
|
||||
@ffi_enums.__map_symbol(symbol)
|
||||
end
|
||||
|
||||
# Retrieve all attached functions and their function signature
|
||||
#
|
||||
# This method returns a Hash of method names of attached functions connected by #attach_function and the corresponding function type.
|
||||
# The function type responds to #return_type and #param_types which return the FFI types of the function signature.
|
||||
#
|
||||
# @return [Hash< Symbol => [FFI::Function, FFI::VariadicInvoker] >]
|
||||
def attached_functions
|
||||
@ffi_functions || {}
|
||||
end
|
||||
|
||||
# Retrieve all attached variables and their type
|
||||
#
|
||||
# This method returns a Hash of variable names and the corresponding type or variables connected by #attach_variable .
|
||||
#
|
||||
# @return [Hash< Symbol => ffi_type >]
|
||||
def attached_variables
|
||||
(
|
||||
(defined?(@ffi_gsvars) ? @ffi_gsvars : {}).map do |name, gvar|
|
||||
[name, gvar.class]
|
||||
end +
|
||||
(defined?(@ffi_gvars) ? @ffi_gvars : {}).map do |name, gvar|
|
||||
[name, gvar.layout[:gvar].type]
|
||||
end
|
||||
).to_h
|
||||
end
|
||||
|
||||
# Freeze all definitions of the module
|
||||
#
|
||||
# This freezes the module's definitions, so that it can be used in a Ractor.
|
||||
# No further functions or variables can be attached and no further enums or typedefs can be created in this module afterwards.
|
||||
def freeze
|
||||
# @ffi_function_procs is only used on aarch64-mingw-ucrt
|
||||
instance_variable_get("@ffi_function_procs")&.each do |name, func|
|
||||
# Redefine attached functions as Ractor-shareable.
|
||||
# The function Proc can't be shareable from the beginning, since it references enums and typedefs.
|
||||
this = FFI.make_shareable(func)
|
||||
body = FFI.shareable_proc(self: nil) do |*args, &block|
|
||||
this.call(*args, &block)
|
||||
end
|
||||
undef_method(name)
|
||||
singleton_class.undef_method(name)
|
||||
|
||||
define_method(name, body)
|
||||
define_singleton_method(name, body)
|
||||
end
|
||||
|
||||
instance_variables.each do |name|
|
||||
var = instance_variable_get(name)
|
||||
FFI.make_shareable(var)
|
||||
end
|
||||
super
|
||||
nil
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,109 @@
|
||||
#
|
||||
# Copyright (C) 2023 Lars Kanis
|
||||
#
|
||||
# This file is part of ruby-ffi.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice, this
|
||||
# list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright notice
|
||||
# this list of conditions and the following disclaimer in the documentation
|
||||
# and/or other materials provided with the distribution.
|
||||
# * Neither the name of the Ruby FFI project nor the names of its contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.#
|
||||
|
||||
module FFI
|
||||
# Transform a generic library name and ABI number to a platform library name
|
||||
#
|
||||
# Example:
|
||||
# module LibVips
|
||||
# extend FFI::Library
|
||||
# ffi_lib LibraryPath.new("vips", abi_number: 42)
|
||||
# end
|
||||
#
|
||||
# This translates to the following library file names:
|
||||
# libvips-42.dll on Windows
|
||||
# libvips.so.42 on Linux
|
||||
# libvips.42.dylib on Macos
|
||||
#
|
||||
# See https://packaging.ubuntu.com/html/libraries.html for more information about library naming.
|
||||
class LibraryPath
|
||||
attr_reader :name
|
||||
attr_reader :abi_number
|
||||
attr_reader :root
|
||||
|
||||
# Build a new library path
|
||||
#
|
||||
# * <tt>name</tt> : The name of the library without file prefix or suffix.
|
||||
# * <tt>abi_number</tt> : The ABI number of the library.
|
||||
# * <tt>root</tt> : An optional base path prepended to the library name.
|
||||
def initialize(name, abi_number: nil, root: nil)
|
||||
@name = name
|
||||
@abi_number = abi_number
|
||||
@root = root
|
||||
end
|
||||
|
||||
def self.wrap(value)
|
||||
# We allow instances of LibraryPath to pass through transparently:
|
||||
return value if value.is_a?(self)
|
||||
|
||||
# We special case a library named 'c' to be the standard C library:
|
||||
return Library::LIBC if value == 'c'
|
||||
|
||||
# If provided a relative file name we convert it into a library path:
|
||||
if value && File.basename(value) == value
|
||||
return self.new(value)
|
||||
end
|
||||
|
||||
# Otherwise, we assume it's a full path to a library:
|
||||
return value
|
||||
end
|
||||
|
||||
def full_name
|
||||
# If the abi_number is given, we format it specifically according to platform rules:
|
||||
if abi_number
|
||||
if Platform.windows?
|
||||
"#{Platform::LIBPREFIX}#{name}-#{abi_number}.#{Platform::LIBSUFFIX}"
|
||||
elsif Platform.mac?
|
||||
"#{Platform::LIBPREFIX}#{name}.#{abi_number}.#{Platform::LIBSUFFIX}"
|
||||
else # Linux? BSD? etc.
|
||||
"#{Platform::LIBPREFIX}#{name}.#{Platform::LIBSUFFIX}.#{abi_number}"
|
||||
end
|
||||
else
|
||||
# Otherwise we just add prefix and suffix:
|
||||
lib = name
|
||||
# Add library prefix if missing
|
||||
lib = Platform::LIBPREFIX + lib unless lib =~ /^#{Platform::LIBPREFIX}/
|
||||
# Add library extension if missing
|
||||
r = Platform.windows? || Platform.mac? ? "\\.#{Platform::LIBSUFFIX}$" : "\\.so($|\\.[1234567890]+)"
|
||||
lib += ".#{Platform::LIBSUFFIX}" unless lib =~ /#{r}/
|
||||
lib
|
||||
end
|
||||
end
|
||||
|
||||
def to_s
|
||||
if root
|
||||
# If the root path is given, we generate the full path:
|
||||
File.join(root, full_name)
|
||||
else
|
||||
full_name
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,84 @@
|
||||
# Copyright (C) 2008 Mike Dalessio
|
||||
#
|
||||
# This file is part of ruby-ffi.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice, this
|
||||
# list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright notice
|
||||
# this list of conditions and the following disclaimer in the documentation
|
||||
# and/or other materials provided with the distribution.
|
||||
# * Neither the name of the Ruby FFI project nor the names of its contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
module FFI
|
||||
#
|
||||
# FFI::ManagedStruct allows custom garbage-collection of your FFI::Structs.
|
||||
#
|
||||
# The typical use case would be when interacting with a library
|
||||
# that has a nontrivial memory management design, such as a linked
|
||||
# list or a binary tree.
|
||||
#
|
||||
# When the {Struct} instance is garbage collected, FFI::ManagedStruct will
|
||||
# invoke the class's release() method during object finalization.
|
||||
#
|
||||
# @example Example usage:
|
||||
# module MyLibrary
|
||||
# ffi_lib "libmylibrary"
|
||||
# attach_function :new_dlist, [], :pointer
|
||||
# attach_function :destroy_dlist, [:pointer], :void
|
||||
# end
|
||||
#
|
||||
# class DoublyLinkedList < FFI::ManagedStruct
|
||||
# @@@
|
||||
# struct do |s|
|
||||
# s.name 'struct dlist'
|
||||
# s.include 'dlist.h'
|
||||
# s.field :head, :pointer
|
||||
# s.field :tail, :pointer
|
||||
# end
|
||||
# @@@
|
||||
#
|
||||
# def self.release ptr
|
||||
# MyLibrary.destroy_dlist(ptr)
|
||||
# end
|
||||
# end
|
||||
#
|
||||
# begin
|
||||
# ptr = DoublyLinkedList.new(MyLibrary.new_dlist)
|
||||
# # do something with the list
|
||||
# end
|
||||
# # struct is out of scope, and will be GC'd using DoublyLinkedList#release
|
||||
#
|
||||
#
|
||||
class ManagedStruct < FFI::Struct
|
||||
|
||||
# @overload initialize(pointer)
|
||||
# @param [Pointer] pointer
|
||||
# Create a new ManagedStruct which will invoke the class method #release on
|
||||
# @overload initialize
|
||||
# A new instance of FFI::ManagedStruct.
|
||||
def initialize(pointer=nil)
|
||||
raise NoMethodError, "release() not implemented for class #{self}" unless self.class.respond_to?(:release, true)
|
||||
raise ArgumentError, "Must supply a pointer to memory for the Struct" unless pointer
|
||||
super AutoPointer.new(pointer, self.class.method(:release))
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1 @@
|
||||
# This class is now implemented in C
|
||||
@@ -0,0 +1,187 @@
|
||||
#
|
||||
# Copyright (C) 2008, 2009 Wayne Meissner
|
||||
#
|
||||
# This file is part of ruby-ffi.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice, this
|
||||
# list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright notice
|
||||
# this list of conditions and the following disclaimer in the documentation
|
||||
# and/or other materials provided with the distribution.
|
||||
# * Neither the name of the Ruby FFI project nor the names of its contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.#
|
||||
|
||||
require 'rbconfig'
|
||||
require_relative 'compat'
|
||||
|
||||
module FFI
|
||||
class PlatformError < LoadError; end
|
||||
|
||||
# This module defines different constants and class methods to play with
|
||||
# various platforms.
|
||||
module Platform
|
||||
OS = FFI.make_shareable(case RbConfig::CONFIG['host_os'].downcase
|
||||
when /linux/
|
||||
"linux"
|
||||
when /darwin/
|
||||
"darwin"
|
||||
when /freebsd/
|
||||
"freebsd"
|
||||
when /netbsd/
|
||||
"netbsd"
|
||||
when /openbsd/
|
||||
"openbsd"
|
||||
when /dragonfly/
|
||||
"dragonflybsd"
|
||||
when /sunos|solaris/
|
||||
"solaris"
|
||||
when /mingw|mswin/
|
||||
"windows"
|
||||
else
|
||||
RbConfig::CONFIG['host_os'].downcase
|
||||
end)
|
||||
|
||||
OSVERSION = RbConfig::CONFIG['host_os'].gsub(/[^\d]/, '').to_i
|
||||
|
||||
CPU = FFI.make_shareable(RbConfig::CONFIG['host_cpu'])
|
||||
|
||||
ARCH = FFI.make_shareable(case CPU.downcase
|
||||
when /amd64|x86_64|x64/
|
||||
"x86_64"
|
||||
when /i\d86|x86|i86pc/
|
||||
"i386"
|
||||
when /ppc64|powerpc64/
|
||||
"powerpc64"
|
||||
when /ppc|powerpc/
|
||||
"powerpc"
|
||||
when /sparcv9|sparc64/
|
||||
"sparcv9"
|
||||
when /arm64|aarch64/ # MacOS calls it "arm64", other operating systems "aarch64"
|
||||
"aarch64"
|
||||
when /^arm/
|
||||
if OS == "darwin" # Ruby before 3.0 reports "arm" instead of "arm64" as host_cpu on darwin
|
||||
"aarch64"
|
||||
else
|
||||
"arm"
|
||||
end
|
||||
else
|
||||
RbConfig::CONFIG['host_cpu']
|
||||
end)
|
||||
|
||||
private
|
||||
# @param [String) os
|
||||
# @return [Boolean]
|
||||
# Test if current OS is +os+.
|
||||
def self.is_os(os)
|
||||
OS == os
|
||||
end
|
||||
|
||||
IS_GNU = defined?(GNU_LIBC)
|
||||
IS_LINUX = is_os("linux")
|
||||
IS_MAC = is_os("darwin")
|
||||
IS_FREEBSD = is_os("freebsd")
|
||||
IS_NETBSD = is_os("netbsd")
|
||||
IS_OPENBSD = is_os("openbsd")
|
||||
IS_DRAGONFLYBSD = is_os("dragonfly")
|
||||
IS_SOLARIS = is_os("solaris")
|
||||
IS_WINDOWS = is_os("windows")
|
||||
IS_BSD = IS_MAC || IS_FREEBSD || IS_NETBSD || IS_OPENBSD || IS_DRAGONFLYBSD
|
||||
|
||||
# Add the version for known ABI breaks
|
||||
name_version = "12" if IS_FREEBSD && OSVERSION >= 12 # 64-bit inodes
|
||||
|
||||
NAME = FFI.make_shareable("#{ARCH}-#{OS}#{name_version}")
|
||||
CONF_DIR = FFI.make_shareable(File.join(File.dirname(__FILE__), 'platform', NAME))
|
||||
|
||||
public
|
||||
|
||||
LIBPREFIX = FFI.make_shareable(case OS
|
||||
when /windows|msys/
|
||||
''
|
||||
when /cygwin/
|
||||
'cyg'
|
||||
else
|
||||
'lib'
|
||||
end)
|
||||
|
||||
LIBSUFFIX = FFI.make_shareable(case OS
|
||||
when /darwin/
|
||||
'dylib'
|
||||
when /linux|bsd|solaris/
|
||||
'so'
|
||||
when /windows|cygwin|msys/
|
||||
'dll'
|
||||
else
|
||||
# Punt and just assume a sane unix (i.e. anything but AIX)
|
||||
'so'
|
||||
end)
|
||||
|
||||
LIBC = FFI.make_shareable(if IS_WINDOWS
|
||||
crtname = RbConfig::CONFIG["RUBY_SO_NAME"][/msvc\w+/] || 'ucrtbase'
|
||||
"#{crtname}.dll"
|
||||
elsif IS_GNU
|
||||
GNU_LIBC
|
||||
elsif OS == 'cygwin'
|
||||
"cygwin1.dll"
|
||||
elsif OS == 'msys'
|
||||
# Not sure how msys 1.0 behaves, tested on MSYS2.
|
||||
"msys-2.0.dll"
|
||||
else
|
||||
"#{LIBPREFIX}c.#{LIBSUFFIX}"
|
||||
end)
|
||||
|
||||
LITTLE_ENDIAN = 1234 unless defined?(LITTLE_ENDIAN)
|
||||
BIG_ENDIAN = 4321 unless defined?(BIG_ENDIAN)
|
||||
unless defined?(BYTE_ORDER)
|
||||
BYTE_ORDER = [0x12345678].pack("I") == [0x12345678].pack("N") ? BIG_ENDIAN : LITTLE_ENDIAN
|
||||
end
|
||||
|
||||
# Test if current OS is a *BSD (include MAC)
|
||||
# @return [Boolean]
|
||||
def self.bsd?
|
||||
IS_BSD
|
||||
end
|
||||
|
||||
# Test if current OS is Windows
|
||||
# @return [Boolean]
|
||||
def self.windows?
|
||||
IS_WINDOWS
|
||||
end
|
||||
|
||||
# Test if current OS is Mac OS
|
||||
# @return [Boolean]
|
||||
def self.mac?
|
||||
IS_MAC
|
||||
end
|
||||
|
||||
# Test if current OS is Solaris (Sun OS)
|
||||
# @return [Boolean]
|
||||
def self.solaris?
|
||||
IS_SOLARIS
|
||||
end
|
||||
|
||||
# Test if current OS is a unix OS
|
||||
# @return [Boolean]
|
||||
def self.unix?
|
||||
!IS_WINDOWS
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -0,0 +1,130 @@
|
||||
rbx.platform.typedef.__darwin_blkcnt_t = long_long
|
||||
rbx.platform.typedef.__darwin_blksize_t = int
|
||||
rbx.platform.typedef.__darwin_clock_t = ulong
|
||||
rbx.platform.typedef.__darwin_ct_rune_t = int
|
||||
rbx.platform.typedef.__darwin_dev_t = int
|
||||
rbx.platform.typedef.__darwin_fsblkcnt_t = uint
|
||||
rbx.platform.typedef.__darwin_fsfilcnt_t = uint
|
||||
rbx.platform.typedef.__darwin_gid_t = uint
|
||||
rbx.platform.typedef.__darwin_id_t = uint
|
||||
rbx.platform.typedef.__darwin_ino64_t = ulong_long
|
||||
rbx.platform.typedef.__darwin_ino_t = ulong_long
|
||||
rbx.platform.typedef.__darwin_intptr_t = long
|
||||
rbx.platform.typedef.__darwin_mach_port_name_t = uint
|
||||
rbx.platform.typedef.__darwin_mach_port_t = uint
|
||||
rbx.platform.typedef.__darwin_mode_t = ushort
|
||||
rbx.platform.typedef.__darwin_natural_t = uint
|
||||
rbx.platform.typedef.__darwin_off_t = long_long
|
||||
rbx.platform.typedef.__darwin_pid_t = int
|
||||
rbx.platform.typedef.__darwin_pthread_key_t = ulong
|
||||
rbx.platform.typedef.__darwin_ptrdiff_t = long
|
||||
rbx.platform.typedef.__darwin_rune_t = int
|
||||
rbx.platform.typedef.__darwin_sigset_t = uint
|
||||
rbx.platform.typedef.__darwin_size_t = ulong
|
||||
rbx.platform.typedef.__darwin_socklen_t = uint
|
||||
rbx.platform.typedef.__darwin_ssize_t = long
|
||||
rbx.platform.typedef.__darwin_suseconds_t = int
|
||||
rbx.platform.typedef.__darwin_time_t = long
|
||||
rbx.platform.typedef.__darwin_uid_t = uint
|
||||
rbx.platform.typedef.__darwin_useconds_t = uint
|
||||
rbx.platform.typedef.__darwin_uuid_string_t[37] = char
|
||||
rbx.platform.typedef.__darwin_uuid_t[16] = uchar
|
||||
rbx.platform.typedef.__darwin_wchar_t = int
|
||||
rbx.platform.typedef.__darwin_wint_t = int
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long_long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong_long
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.blkcnt_t = long_long
|
||||
rbx.platform.typedef.blksize_t = int
|
||||
rbx.platform.typedef.caddr_t = string
|
||||
rbx.platform.typedef.clock_t = ulong
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = int
|
||||
rbx.platform.typedef.errno_t = int
|
||||
rbx.platform.typedef.fd_mask = int
|
||||
rbx.platform.typedef.fixpt_t = uint
|
||||
rbx.platform.typedef.fsblkcnt_t = uint
|
||||
rbx.platform.typedef.fsfilcnt_t = uint
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.in_port_t = ushort
|
||||
rbx.platform.typedef.ino64_t = ulong_long
|
||||
rbx.platform.typedef.ino_t = ulong_long
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.int_fast16_t = short
|
||||
rbx.platform.typedef.int_fast32_t = int
|
||||
rbx.platform.typedef.int_fast64_t = long_long
|
||||
rbx.platform.typedef.int_fast8_t = char
|
||||
rbx.platform.typedef.int_least16_t = short
|
||||
rbx.platform.typedef.int_least32_t = int
|
||||
rbx.platform.typedef.int_least64_t = long_long
|
||||
rbx.platform.typedef.int_least8_t = char
|
||||
rbx.platform.typedef.intmax_t = long
|
||||
rbx.platform.typedef.intptr_t = long
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.mode_t = ushort
|
||||
rbx.platform.typedef.nlink_t = ushort
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = ulong
|
||||
rbx.platform.typedef.ptrdiff_t = long
|
||||
rbx.platform.typedef.qaddr_t = pointer
|
||||
rbx.platform.typedef.quad_t = long_long
|
||||
rbx.platform.typedef.register_t = long_long
|
||||
rbx.platform.typedef.rlim_t = ulong_long
|
||||
rbx.platform.typedef.rsize_t = ulong
|
||||
rbx.platform.typedef.sa_family_t = uchar
|
||||
rbx.platform.typedef.sae_associd_t = uint
|
||||
rbx.platform.typedef.sae_connid_t = uint
|
||||
rbx.platform.typedef.segsz_t = int
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = long
|
||||
rbx.platform.typedef.suseconds_t = int
|
||||
rbx.platform.typedef.swblk_t = int
|
||||
rbx.platform.typedef.syscall_arg_t = ulong_long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong_long
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint32_t = uint
|
||||
rbx.platform.typedef.uint64_t = ulong_long
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.uint_fast16_t = ushort
|
||||
rbx.platform.typedef.uint_fast32_t = uint
|
||||
rbx.platform.typedef.uint_fast64_t = ulong_long
|
||||
rbx.platform.typedef.uint_fast8_t = uchar
|
||||
rbx.platform.typedef.uint_least16_t = ushort
|
||||
rbx.platform.typedef.uint_least32_t = uint
|
||||
rbx.platform.typedef.uint_least64_t = ulong_long
|
||||
rbx.platform.typedef.uint_least8_t = uchar
|
||||
rbx.platform.typedef.uintmax_t = ulong
|
||||
rbx.platform.typedef.uintptr_t = ulong
|
||||
rbx.platform.typedef.useconds_t = uint
|
||||
rbx.platform.typedef.user_addr_t = ulong_long
|
||||
rbx.platform.typedef.user_long_t = long_long
|
||||
rbx.platform.typedef.user_off_t = long_long
|
||||
rbx.platform.typedef.user_size_t = ulong_long
|
||||
rbx.platform.typedef.user_ssize_t = long_long
|
||||
rbx.platform.typedef.user_time_t = long_long
|
||||
rbx.platform.typedef.user_ulong_t = ulong_long
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
rbx.platform.typedef.wchar_t = int
|
||||
@@ -0,0 +1,128 @@
|
||||
rbx.platform.typedef.__clock_t = int
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__cpuid_t = ulong
|
||||
rbx.platform.typedef.__dev_t = int
|
||||
rbx.platform.typedef.__fd_mask = int
|
||||
rbx.platform.typedef.__fixpt_t = uint
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__in_addr_t = uint
|
||||
rbx.platform.typedef.__in_port_t = ushort
|
||||
rbx.platform.typedef.__ino_t = uint
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long_long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__int_fast16_t = int
|
||||
rbx.platform.typedef.__int_fast32_t = int
|
||||
rbx.platform.typedef.__int_fast64_t = long_long
|
||||
rbx.platform.typedef.__int_fast8_t = int
|
||||
rbx.platform.typedef.__int_least16_t = short
|
||||
rbx.platform.typedef.__int_least32_t = int
|
||||
rbx.platform.typedef.__int_least64_t = long_long
|
||||
rbx.platform.typedef.__int_least8_t = char
|
||||
rbx.platform.typedef.__intmax_t = long_long
|
||||
rbx.platform.typedef.__intptr_t = long
|
||||
rbx.platform.typedef.__key_t = long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = uint
|
||||
rbx.platform.typedef.__off_t = long_long
|
||||
rbx.platform.typedef.__paddr_t = ulong
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__psize_t = ulong
|
||||
rbx.platform.typedef.__ptrdiff_t = long
|
||||
rbx.platform.typedef.__register_t = long_long
|
||||
rbx.platform.typedef.__rlim_t = ulong_long
|
||||
rbx.platform.typedef.__rune_t = int
|
||||
rbx.platform.typedef.__sa_family_t = uchar
|
||||
rbx.platform.typedef.__segsz_t = int
|
||||
rbx.platform.typedef.__size_t = ulong
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = long
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__swblk_t = int
|
||||
rbx.platform.typedef.__time_t = long
|
||||
rbx.platform.typedef.__timer_t = int
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong_long
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__uint_fast16_t = uint
|
||||
rbx.platform.typedef.__uint_fast32_t = uint
|
||||
rbx.platform.typedef.__uint_fast64_t = ulong_long
|
||||
rbx.platform.typedef.__uint_fast8_t = uint
|
||||
rbx.platform.typedef.__uint_least16_t = ushort
|
||||
rbx.platform.typedef.__uint_least32_t = uint
|
||||
rbx.platform.typedef.__uint_least64_t = ulong_long
|
||||
rbx.platform.typedef.__uint_least8_t = uchar
|
||||
rbx.platform.typedef.__uintmax_t = ulong_long
|
||||
rbx.platform.typedef.__uintptr_t = ulong
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.__vaddr_t = ulong
|
||||
rbx.platform.typedef.__vsize_t = ulong
|
||||
rbx.platform.typedef.__wchar_t = int
|
||||
rbx.platform.typedef.__wctrans_t = pointer
|
||||
rbx.platform.typedef.__wctype_t = pointer
|
||||
rbx.platform.typedef.__wint_t = int
|
||||
rbx.platform.typedef.caddr_t = string
|
||||
rbx.platform.typedef.clock_t = int
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.cpuid_t = ulong
|
||||
rbx.platform.typedef.daddr32_t = int
|
||||
rbx.platform.typedef.daddr64_t = long_long
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = int
|
||||
rbx.platform.typedef.fixpt_t = uint
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.in_port_t = ushort
|
||||
rbx.platform.typedef.ino_t = uint
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.intptr_t = long
|
||||
rbx.platform.typedef.key_t = long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = uint
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.paddr_t = ulong
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.psize_t = ulong
|
||||
rbx.platform.typedef.qaddr_t = pointer
|
||||
rbx.platform.typedef.quad_t = long_long
|
||||
rbx.platform.typedef.register_t = long_long
|
||||
rbx.platform.typedef.rlim_t = ulong_long
|
||||
rbx.platform.typedef.sa_family_t = uchar
|
||||
rbx.platform.typedef.segsz_t = int
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = long
|
||||
rbx.platform.typedef.suseconds_t = int
|
||||
rbx.platform.typedef.swblk_t = int
|
||||
rbx.platform.typedef.time_t = int
|
||||
rbx.platform.typedef.timer_t = int
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong_long
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint32_t = uint
|
||||
rbx.platform.typedef.uint64_t = ulong_long
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.uintptr_t = ulong
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.unchar = uchar
|
||||
rbx.platform.typedef.useconds_t = uint
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
rbx.platform.typedef.vaddr_t = ulong
|
||||
rbx.platform.typedef.vsize_t = ulong
|
||||
@@ -0,0 +1,181 @@
|
||||
rbx.platform.typedef.*) = pointer
|
||||
rbx.platform.typedef.___wchar_t = uint
|
||||
rbx.platform.typedef.__accmode_t = int
|
||||
rbx.platform.typedef.__blkcnt_t = long
|
||||
rbx.platform.typedef.__blksize_t = int
|
||||
rbx.platform.typedef.__char16_t = ushort
|
||||
rbx.platform.typedef.__char32_t = uint
|
||||
rbx.platform.typedef.__clock_t = int
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__cpulevel_t = int
|
||||
rbx.platform.typedef.__cpusetid_t = int
|
||||
rbx.platform.typedef.__cpuwhich_t = int
|
||||
rbx.platform.typedef.__critical_t = long
|
||||
rbx.platform.typedef.__ct_rune_t = int
|
||||
rbx.platform.typedef.__daddr_t = long
|
||||
rbx.platform.typedef.__dev_t = ulong
|
||||
rbx.platform.typedef.__fd_mask = ulong
|
||||
rbx.platform.typedef.__fflags_t = uint
|
||||
rbx.platform.typedef.__fixpt_t = uint
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = long
|
||||
rbx.platform.typedef.__ino_t = ulong
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__int_fast16_t = int
|
||||
rbx.platform.typedef.__int_fast32_t = int
|
||||
rbx.platform.typedef.__int_fast64_t = long
|
||||
rbx.platform.typedef.__int_fast8_t = int
|
||||
rbx.platform.typedef.__int_least16_t = short
|
||||
rbx.platform.typedef.__int_least32_t = int
|
||||
rbx.platform.typedef.__int_least64_t = long
|
||||
rbx.platform.typedef.__int_least8_t = char
|
||||
rbx.platform.typedef.__intfptr_t = long
|
||||
rbx.platform.typedef.__intmax_t = long
|
||||
rbx.platform.typedef.__intptr_t = long
|
||||
rbx.platform.typedef.__key_t = long
|
||||
rbx.platform.typedef.__lwpid_t = int
|
||||
rbx.platform.typedef.__mode_t = ushort
|
||||
rbx.platform.typedef.__nl_item = int
|
||||
rbx.platform.typedef.__nlink_t = ulong
|
||||
rbx.platform.typedef.__off64_t = long
|
||||
rbx.platform.typedef.__off_t = long
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__ptrdiff_t = long
|
||||
rbx.platform.typedef.__register_t = long
|
||||
rbx.platform.typedef.__rlim_t = long
|
||||
rbx.platform.typedef.__rman_res_t = ulong
|
||||
rbx.platform.typedef.__rune_t = int
|
||||
rbx.platform.typedef.__sa_family_t = uchar
|
||||
rbx.platform.typedef.__segsz_t = long
|
||||
rbx.platform.typedef.__size_t = ulong
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = long
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__time_t = long
|
||||
rbx.platform.typedef.__u_register_t = ulong
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__uint_fast16_t = uint
|
||||
rbx.platform.typedef.__uint_fast32_t = uint
|
||||
rbx.platform.typedef.__uint_fast64_t = ulong
|
||||
rbx.platform.typedef.__uint_fast8_t = uint
|
||||
rbx.platform.typedef.__uint_least16_t = ushort
|
||||
rbx.platform.typedef.__uint_least32_t = uint
|
||||
rbx.platform.typedef.__uint_least64_t = ulong
|
||||
rbx.platform.typedef.__uint_least8_t = uchar
|
||||
rbx.platform.typedef.__uintfptr_t = ulong
|
||||
rbx.platform.typedef.__uintmax_t = ulong
|
||||
rbx.platform.typedef.__uintptr_t = ulong
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.__vm_offset_t = ulong
|
||||
rbx.platform.typedef.__vm_paddr_t = ulong
|
||||
rbx.platform.typedef.__vm_size_t = ulong
|
||||
rbx.platform.typedef.__wint_t = int
|
||||
rbx.platform.typedef.accmode_t = int
|
||||
rbx.platform.typedef.blkcnt_t = long
|
||||
rbx.platform.typedef.blksize_t = int
|
||||
rbx.platform.typedef.c_caddr_t = pointer
|
||||
rbx.platform.typedef.caddr_t = string
|
||||
rbx.platform.typedef.cap_ioctl_t = ulong
|
||||
rbx.platform.typedef.clock_t = int
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.cpulevel_t = int
|
||||
rbx.platform.typedef.cpusetid_t = int
|
||||
rbx.platform.typedef.cpuwhich_t = int
|
||||
rbx.platform.typedef.critical_t = long
|
||||
rbx.platform.typedef.daddr_t = long
|
||||
rbx.platform.typedef.dev_t = ulong
|
||||
rbx.platform.typedef.fd_mask = ulong
|
||||
rbx.platform.typedef.fflags_t = uint
|
||||
rbx.platform.typedef.fixpt_t = uint
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = long
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.in_port_t = ushort
|
||||
rbx.platform.typedef.ino_t = ulong
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.int_fast16_t = int
|
||||
rbx.platform.typedef.int_fast32_t = int
|
||||
rbx.platform.typedef.int_fast64_t = long
|
||||
rbx.platform.typedef.int_fast8_t = int
|
||||
rbx.platform.typedef.int_least16_t = short
|
||||
rbx.platform.typedef.int_least32_t = int
|
||||
rbx.platform.typedef.int_least64_t = long
|
||||
rbx.platform.typedef.int_least8_t = char
|
||||
rbx.platform.typedef.intmax_t = long
|
||||
rbx.platform.typedef.intptr_t = long
|
||||
rbx.platform.typedef.key_t = long
|
||||
rbx.platform.typedef.kpaddr_t = ulong
|
||||
rbx.platform.typedef.ksize_t = ulong
|
||||
rbx.platform.typedef.kssize_t = long
|
||||
rbx.platform.typedef.kvaddr_t = ulong
|
||||
rbx.platform.typedef.lwpid_t = int
|
||||
rbx.platform.typedef.mode_t = ushort
|
||||
rbx.platform.typedef.nlink_t = ulong
|
||||
rbx.platform.typedef.off64_t = long
|
||||
rbx.platform.typedef.off_t = long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = int
|
||||
rbx.platform.typedef.ptrdiff_t = long
|
||||
rbx.platform.typedef.qaddr_t = pointer
|
||||
rbx.platform.typedef.quad_t = long
|
||||
rbx.platform.typedef.register_t = long
|
||||
rbx.platform.typedef.rlim_t = long
|
||||
rbx.platform.typedef.rman_res_t = ulong
|
||||
rbx.platform.typedef.rsize_t = ulong
|
||||
rbx.platform.typedef.rune_t = int
|
||||
rbx.platform.typedef.sa_family_t = uchar
|
||||
rbx.platform.typedef.sbintime_t = long
|
||||
rbx.platform.typedef.segsz_t = long
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = long
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong
|
||||
rbx.platform.typedef.u_register_t = ulong
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint32_t = uint
|
||||
rbx.platform.typedef.uint64_t = ulong
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.uint_fast16_t = uint
|
||||
rbx.platform.typedef.uint_fast32_t = uint
|
||||
rbx.platform.typedef.uint_fast64_t = ulong
|
||||
rbx.platform.typedef.uint_fast8_t = uint
|
||||
rbx.platform.typedef.uint_least16_t = ushort
|
||||
rbx.platform.typedef.uint_least32_t = uint
|
||||
rbx.platform.typedef.uint_least64_t = ulong
|
||||
rbx.platform.typedef.uint_least8_t = uchar
|
||||
rbx.platform.typedef.uintmax_t = ulong
|
||||
rbx.platform.typedef.uintptr_t = ulong
|
||||
rbx.platform.typedef.useconds_t = uint
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
rbx.platform.typedef.vm_offset_t = ulong
|
||||
rbx.platform.typedef.vm_ooffset_t = ulong
|
||||
rbx.platform.typedef.vm_paddr_t = ulong
|
||||
rbx.platform.typedef.vm_pindex_t = ulong
|
||||
rbx.platform.typedef.vm_size_t = ulong
|
||||
rbx.platform.typedef.wchar_t = uint
|
||||
@@ -0,0 +1,175 @@
|
||||
rbx.platform.typedef.*__caddr_t = char
|
||||
rbx.platform.typedef.__blkcnt64_t = long
|
||||
rbx.platform.typedef.__blkcnt_t = long
|
||||
rbx.platform.typedef.__blksize_t = int
|
||||
rbx.platform.typedef.__clock_t = long
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__daddr_t = int
|
||||
rbx.platform.typedef.__dev_t = ulong
|
||||
rbx.platform.typedef.__fd_mask = long
|
||||
rbx.platform.typedef.__fsblkcnt64_t = ulong
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt64_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.__fsword_t = long
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__ino64_t = ulong
|
||||
rbx.platform.typedef.__ino_t = ulong
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__int_least16_t = short
|
||||
rbx.platform.typedef.__int_least32_t = int
|
||||
rbx.platform.typedef.__int_least64_t = long
|
||||
rbx.platform.typedef.__int_least8_t = char
|
||||
rbx.platform.typedef.__intmax_t = long
|
||||
rbx.platform.typedef.__intptr_t = long
|
||||
rbx.platform.typedef.__kernel_caddr_t = string
|
||||
rbx.platform.typedef.__kernel_clock_t = long
|
||||
rbx.platform.typedef.__kernel_clockid_t = int
|
||||
rbx.platform.typedef.__kernel_daddr_t = int
|
||||
rbx.platform.typedef.__kernel_gid16_t = ushort
|
||||
rbx.platform.typedef.__kernel_gid32_t = uint
|
||||
rbx.platform.typedef.__kernel_gid_t = uint
|
||||
rbx.platform.typedef.__kernel_ino_t = ulong
|
||||
rbx.platform.typedef.__kernel_ipc_pid_t = int
|
||||
rbx.platform.typedef.__kernel_key_t = int
|
||||
rbx.platform.typedef.__kernel_loff_t = long_long
|
||||
rbx.platform.typedef.__kernel_long_t = long
|
||||
rbx.platform.typedef.__kernel_mode_t = uint
|
||||
rbx.platform.typedef.__kernel_mqd_t = int
|
||||
rbx.platform.typedef.__kernel_off_t = long
|
||||
rbx.platform.typedef.__kernel_old_dev_t = uint
|
||||
rbx.platform.typedef.__kernel_old_gid_t = ushort
|
||||
rbx.platform.typedef.__kernel_old_time_t = long
|
||||
rbx.platform.typedef.__kernel_old_uid_t = ushort
|
||||
rbx.platform.typedef.__kernel_pid_t = int
|
||||
rbx.platform.typedef.__kernel_ptrdiff_t = long
|
||||
rbx.platform.typedef.__kernel_size_t = ulong
|
||||
rbx.platform.typedef.__kernel_ssize_t = long
|
||||
rbx.platform.typedef.__kernel_suseconds_t = long
|
||||
rbx.platform.typedef.__kernel_time64_t = long_long
|
||||
rbx.platform.typedef.__kernel_time_t = long
|
||||
rbx.platform.typedef.__kernel_timer_t = int
|
||||
rbx.platform.typedef.__kernel_uid16_t = ushort
|
||||
rbx.platform.typedef.__kernel_uid32_t = uint
|
||||
rbx.platform.typedef.__kernel_uid_t = uint
|
||||
rbx.platform.typedef.__kernel_ulong_t = ulong
|
||||
rbx.platform.typedef.__key_t = int
|
||||
rbx.platform.typedef.__loff_t = long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = uint
|
||||
rbx.platform.typedef.__off64_t = long
|
||||
rbx.platform.typedef.__off_t = long
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__priority_which_t = int
|
||||
rbx.platform.typedef.__quad_t = long
|
||||
rbx.platform.typedef.__rlim64_t = ulong
|
||||
rbx.platform.typedef.__rlim_t = ulong
|
||||
rbx.platform.typedef.__rlimit_resource_t = int
|
||||
rbx.platform.typedef.__rusage_who_t = int
|
||||
rbx.platform.typedef.__sig_atomic_t = int
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = long
|
||||
rbx.platform.typedef.__suseconds64_t = long
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__syscall_slong_t = long
|
||||
rbx.platform.typedef.__syscall_ulong_t = ulong
|
||||
rbx.platform.typedef.__thrd_t = ulong
|
||||
rbx.platform.typedef.__time_t = long
|
||||
rbx.platform.typedef.__timer_t = pointer
|
||||
rbx.platform.typedef.__tss_t = uint
|
||||
rbx.platform.typedef.__u_char = uchar
|
||||
rbx.platform.typedef.__u_int = uint
|
||||
rbx.platform.typedef.__u_long = ulong
|
||||
rbx.platform.typedef.__u_quad_t = ulong
|
||||
rbx.platform.typedef.__u_short = ushort
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__uint_least16_t = ushort
|
||||
rbx.platform.typedef.__uint_least32_t = uint
|
||||
rbx.platform.typedef.__uint_least64_t = ulong
|
||||
rbx.platform.typedef.__uint_least8_t = uchar
|
||||
rbx.platform.typedef.__uintmax_t = ulong
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.blkcnt_t = long
|
||||
rbx.platform.typedef.blksize_t = int
|
||||
rbx.platform.typedef.clock_t = long
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = ulong
|
||||
rbx.platform.typedef.fd_mask = long
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.in_port_t = ushort
|
||||
rbx.platform.typedef.ino_t = ulong
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.int_fast16_t = long
|
||||
rbx.platform.typedef.int_fast32_t = long
|
||||
rbx.platform.typedef.int_fast64_t = long
|
||||
rbx.platform.typedef.int_fast8_t = char
|
||||
rbx.platform.typedef.int_least16_t = short
|
||||
rbx.platform.typedef.int_least32_t = int
|
||||
rbx.platform.typedef.int_least64_t = long
|
||||
rbx.platform.typedef.int_least8_t = char
|
||||
rbx.platform.typedef.intmax_t = long
|
||||
rbx.platform.typedef.intptr_t = long
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.loff_t = long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = uint
|
||||
rbx.platform.typedef.off_t = long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = uint
|
||||
rbx.platform.typedef.pthread_once_t = int
|
||||
rbx.platform.typedef.pthread_t = ulong
|
||||
rbx.platform.typedef.ptrdiff_t = long
|
||||
rbx.platform.typedef.quad_t = long
|
||||
rbx.platform.typedef.register_t = long
|
||||
rbx.platform.typedef.rlim_t = ulong
|
||||
rbx.platform.typedef.sa_family_t = ushort
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = long
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.timer_t = pointer
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint32_t = uint
|
||||
rbx.platform.typedef.uint64_t = ulong
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.uint_fast16_t = ulong
|
||||
rbx.platform.typedef.uint_fast32_t = ulong
|
||||
rbx.platform.typedef.uint_fast64_t = ulong
|
||||
rbx.platform.typedef.uint_fast8_t = uchar
|
||||
rbx.platform.typedef.uint_least16_t = ushort
|
||||
rbx.platform.typedef.uint_least32_t = uint
|
||||
rbx.platform.typedef.uint_least64_t = ulong
|
||||
rbx.platform.typedef.uint_least8_t = uchar
|
||||
rbx.platform.typedef.uintmax_t = ulong
|
||||
rbx.platform.typedef.uintptr_t = ulong
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
rbx.platform.typedef.wchar_t = uint
|
||||
@@ -0,0 +1,134 @@
|
||||
rbx.platform.typedef.__blkcnt_t = long_long
|
||||
rbx.platform.typedef.__blksize_t = int
|
||||
rbx.platform.typedef.__clock_t = long_long
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__cpuid_t = ulong
|
||||
rbx.platform.typedef.__dev_t = int
|
||||
rbx.platform.typedef.__fd_mask = uint
|
||||
rbx.platform.typedef.__fixpt_t = uint
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong_long
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong_long
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__in_addr_t = uint
|
||||
rbx.platform.typedef.__in_port_t = ushort
|
||||
rbx.platform.typedef.__ino_t = ulong_long
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long_long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__int_fast16_t = int
|
||||
rbx.platform.typedef.__int_fast32_t = int
|
||||
rbx.platform.typedef.__int_fast64_t = long_long
|
||||
rbx.platform.typedef.__int_fast8_t = int
|
||||
rbx.platform.typedef.__int_least16_t = short
|
||||
rbx.platform.typedef.__int_least32_t = int
|
||||
rbx.platform.typedef.__int_least64_t = long_long
|
||||
rbx.platform.typedef.__int_least8_t = char
|
||||
rbx.platform.typedef.__intmax_t = long_long
|
||||
rbx.platform.typedef.__intptr_t = long
|
||||
rbx.platform.typedef.__key_t = long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = uint
|
||||
rbx.platform.typedef.__off_t = long_long
|
||||
rbx.platform.typedef.__paddr_t = ulong
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__psize_t = ulong
|
||||
rbx.platform.typedef.__ptrdiff_t = long
|
||||
rbx.platform.typedef.__register_t = long
|
||||
rbx.platform.typedef.__rlim_t = ulong_long
|
||||
rbx.platform.typedef.__rune_t = int
|
||||
rbx.platform.typedef.__sa_family_t = uchar
|
||||
rbx.platform.typedef.__segsz_t = int
|
||||
rbx.platform.typedef.__size_t = ulong
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = long
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__swblk_t = int
|
||||
rbx.platform.typedef.__time_t = long_long
|
||||
rbx.platform.typedef.__timer_t = int
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong_long
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__uint_fast16_t = uint
|
||||
rbx.platform.typedef.__uint_fast32_t = uint
|
||||
rbx.platform.typedef.__uint_fast64_t = ulong_long
|
||||
rbx.platform.typedef.__uint_fast8_t = uint
|
||||
rbx.platform.typedef.__uint_least16_t = ushort
|
||||
rbx.platform.typedef.__uint_least32_t = uint
|
||||
rbx.platform.typedef.__uint_least64_t = ulong_long
|
||||
rbx.platform.typedef.__uint_least8_t = uchar
|
||||
rbx.platform.typedef.__uintmax_t = ulong_long
|
||||
rbx.platform.typedef.__uintptr_t = ulong
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.__vaddr_t = ulong
|
||||
rbx.platform.typedef.__vsize_t = ulong
|
||||
rbx.platform.typedef.__wchar_t = int
|
||||
rbx.platform.typedef.__wctrans_t = pointer
|
||||
rbx.platform.typedef.__wctype_t = pointer
|
||||
rbx.platform.typedef.__wint_t = int
|
||||
rbx.platform.typedef.blkcnt_t = long_long
|
||||
rbx.platform.typedef.blksize_t = int
|
||||
rbx.platform.typedef.caddr_t = string
|
||||
rbx.platform.typedef.clock_t = long_long
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.cpuid_t = ulong
|
||||
rbx.platform.typedef.daddr32_t = int
|
||||
rbx.platform.typedef.daddr_t = long_long
|
||||
rbx.platform.typedef.dev_t = int
|
||||
rbx.platform.typedef.fixpt_t = uint
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong_long
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong_long
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.in_port_t = ushort
|
||||
rbx.platform.typedef.ino_t = ulong_long
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.key_t = long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = uint
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.paddr_t = ulong
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.psize_t = ulong
|
||||
rbx.platform.typedef.qaddr_t = pointer
|
||||
rbx.platform.typedef.quad_t = long_long
|
||||
rbx.platform.typedef.register_t = long
|
||||
rbx.platform.typedef.rlim_t = ulong_long
|
||||
rbx.platform.typedef.sa_family_t = uchar
|
||||
rbx.platform.typedef.segsz_t = int
|
||||
rbx.platform.typedef.sigset_t = uint
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = long
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.swblk_t = int
|
||||
rbx.platform.typedef.time_t = long_long
|
||||
rbx.platform.typedef.timer_t = int
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong_long
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint32_t = uint
|
||||
rbx.platform.typedef.uint64_t = ulong_long
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.unchar = uchar
|
||||
rbx.platform.typedef.useconds_t = uint
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
rbx.platform.typedef.vaddr_t = ulong
|
||||
rbx.platform.typedef.vsize_t = ulong
|
||||
@@ -0,0 +1,52 @@
|
||||
rbx.platform.typedef.__time32_t = long
|
||||
rbx.platform.typedef.__time64_t = long_long
|
||||
rbx.platform.typedef._dev_t = uint
|
||||
rbx.platform.typedef._ino_t = ushort
|
||||
rbx.platform.typedef._mode_t = ushort
|
||||
rbx.platform.typedef._off64_t = long_long
|
||||
rbx.platform.typedef._off_t = long
|
||||
rbx.platform.typedef._pid_t = long_long
|
||||
rbx.platform.typedef._sigset_t = ulong_long
|
||||
rbx.platform.typedef.dev_t = uint
|
||||
rbx.platform.typedef.errno_t = int
|
||||
rbx.platform.typedef.ino_t = ushort
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.int_fast16_t = short
|
||||
rbx.platform.typedef.int_fast32_t = int
|
||||
rbx.platform.typedef.int_fast64_t = long_long
|
||||
rbx.platform.typedef.int_fast8_t = char
|
||||
rbx.platform.typedef.int_least16_t = short
|
||||
rbx.platform.typedef.int_least32_t = int
|
||||
rbx.platform.typedef.int_least64_t = long_long
|
||||
rbx.platform.typedef.int_least8_t = char
|
||||
rbx.platform.typedef.intmax_t = long_long
|
||||
rbx.platform.typedef.intptr_t = long_long
|
||||
rbx.platform.typedef.mode_t = ushort
|
||||
rbx.platform.typedef.off32_t = long
|
||||
rbx.platform.typedef.off64_t = long_long
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.pid_t = long_long
|
||||
rbx.platform.typedef.ptrdiff_t = long_long
|
||||
rbx.platform.typedef.rsize_t = ulong_long
|
||||
rbx.platform.typedef.size_t = ulong_long
|
||||
rbx.platform.typedef.ssize_t = long_long
|
||||
rbx.platform.typedef.time_t = long_long
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint64_t = ulong_long
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.uint_fast16_t = ushort
|
||||
rbx.platform.typedef.uint_fast32_t = uint
|
||||
rbx.platform.typedef.uint_fast64_t = ulong_long
|
||||
rbx.platform.typedef.uint_fast8_t = uchar
|
||||
rbx.platform.typedef.uint_least16_t = ushort
|
||||
rbx.platform.typedef.uint_least64_t = ulong_long
|
||||
rbx.platform.typedef.uint_least8_t = uchar
|
||||
rbx.platform.typedef.uintmax_t = ulong_long
|
||||
rbx.platform.typedef.uintptr_t = ulong_long
|
||||
rbx.platform.typedef.useconds_t = uint
|
||||
rbx.platform.typedef.wchar_t = ushort
|
||||
rbx.platform.typedef.wctype_t = ushort
|
||||
rbx.platform.typedef.wint_t = ushort
|
||||
@@ -0,0 +1,152 @@
|
||||
|
||||
rbx.platform.typedef.*) = pointer
|
||||
rbx.platform.typedef.__accmode_t = int
|
||||
rbx.platform.typedef.__blkcnt_t = long_long
|
||||
rbx.platform.typedef.__blksize_t = uint
|
||||
rbx.platform.typedef.__clock_t = ulong
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__cpulevel_t = int
|
||||
rbx.platform.typedef.__cpumask_t = uint
|
||||
rbx.platform.typedef.__cpusetid_t = int
|
||||
rbx.platform.typedef.__cpuwhich_t = int
|
||||
rbx.platform.typedef.__critical_t = int
|
||||
rbx.platform.typedef.__ct_rune_t = int
|
||||
rbx.platform.typedef.__dev_t = uint
|
||||
rbx.platform.typedef.__fd_mask = ulong
|
||||
rbx.platform.typedef.__fflags_t = uint
|
||||
rbx.platform.typedef.__fixpt_t = uint
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong_long
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong_long
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = long_long
|
||||
rbx.platform.typedef.__ino_t = uint
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long_long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__int_fast16_t = int
|
||||
rbx.platform.typedef.__int_fast32_t = int
|
||||
rbx.platform.typedef.__int_fast64_t = long_long
|
||||
rbx.platform.typedef.__int_fast8_t = int
|
||||
rbx.platform.typedef.__int_least16_t = short
|
||||
rbx.platform.typedef.__int_least32_t = int
|
||||
rbx.platform.typedef.__int_least64_t = long_long
|
||||
rbx.platform.typedef.__int_least8_t = char
|
||||
rbx.platform.typedef.__intfptr_t = int
|
||||
rbx.platform.typedef.__intmax_t = long_long
|
||||
rbx.platform.typedef.__intptr_t = int
|
||||
rbx.platform.typedef.__key_t = long
|
||||
rbx.platform.typedef.__lwpid_t = int
|
||||
rbx.platform.typedef.__mode_t = ushort
|
||||
rbx.platform.typedef.__nl_item = int
|
||||
rbx.platform.typedef.__nlink_t = ushort
|
||||
rbx.platform.typedef.__off_t = long_long
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__ptrdiff_t = int
|
||||
rbx.platform.typedef.__register_t = int
|
||||
rbx.platform.typedef.__rlim_t = long_long
|
||||
rbx.platform.typedef.__rune_t = int
|
||||
rbx.platform.typedef.__sa_family_t = uchar
|
||||
rbx.platform.typedef.__segsz_t = int
|
||||
rbx.platform.typedef.__size_t = uint
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = int
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__time_t = int
|
||||
rbx.platform.typedef.__u_register_t = uint
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong_long
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__uint_fast16_t = uint
|
||||
rbx.platform.typedef.__uint_fast32_t = uint
|
||||
rbx.platform.typedef.__uint_fast64_t = ulong_long
|
||||
rbx.platform.typedef.__uint_fast8_t = uint
|
||||
rbx.platform.typedef.__uint_least16_t = ushort
|
||||
rbx.platform.typedef.__uint_least32_t = uint
|
||||
rbx.platform.typedef.__uint_least64_t = ulong_long
|
||||
rbx.platform.typedef.__uint_least8_t = uchar
|
||||
rbx.platform.typedef.__uintfptr_t = uint
|
||||
rbx.platform.typedef.__uintmax_t = ulong_long
|
||||
rbx.platform.typedef.__uintptr_t = uint
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.__vm_offset_t = uint
|
||||
rbx.platform.typedef.__vm_ooffset_t = long_long
|
||||
rbx.platform.typedef.__vm_paddr_t = uint
|
||||
rbx.platform.typedef.__vm_pindex_t = ulong_long
|
||||
rbx.platform.typedef.__vm_size_t = uint
|
||||
rbx.platform.typedef.__wchar_t = int
|
||||
rbx.platform.typedef.__wint_t = int
|
||||
rbx.platform.typedef.__wint_t = int
|
||||
rbx.platform.typedef.accmode_t = int
|
||||
rbx.platform.typedef.blkcnt_t = long_long
|
||||
rbx.platform.typedef.blksize_t = uint
|
||||
rbx.platform.typedef.c_caddr_t = pointer
|
||||
rbx.platform.typedef.caddr_t = string
|
||||
rbx.platform.typedef.clock_t = ulong
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.cpulevel_t = int
|
||||
rbx.platform.typedef.cpumask_t = uint
|
||||
rbx.platform.typedef.cpusetid_t = int
|
||||
rbx.platform.typedef.cpuwhich_t = int
|
||||
rbx.platform.typedef.critical_t = int
|
||||
rbx.platform.typedef.daddr_t = long_long
|
||||
rbx.platform.typedef.dev_t = uint
|
||||
rbx.platform.typedef.fd_mask = ulong
|
||||
rbx.platform.typedef.fflags_t = uint
|
||||
rbx.platform.typedef.fixpt_t = uint
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong_long
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong_long
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = long_long
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.in_port_t = ushort
|
||||
rbx.platform.typedef.ino_t = uint
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.intptr_t = int
|
||||
rbx.platform.typedef.key_t = long
|
||||
rbx.platform.typedef.lwpid_t = int
|
||||
rbx.platform.typedef.mode_t = ushort
|
||||
rbx.platform.typedef.nlink_t = ushort
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = int
|
||||
rbx.platform.typedef.qaddr_t = pointer
|
||||
rbx.platform.typedef.quad_t = long_long
|
||||
rbx.platform.typedef.register_t = int
|
||||
rbx.platform.typedef.rlim_t = long_long
|
||||
rbx.platform.typedef.sa_family_t = uchar
|
||||
rbx.platform.typedef.segsz_t = int
|
||||
rbx.platform.typedef.size_t = uint
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = int
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.time_t = int
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong_long
|
||||
rbx.platform.typedef.u_register_t = uint
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint32_t = uint
|
||||
rbx.platform.typedef.uint64_t = ulong_long
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.uintptr_t = uint
|
||||
rbx.platform.typedef.useconds_t = uint
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
rbx.platform.typedef.vm_offset_t = uint
|
||||
rbx.platform.typedef.vm_ooffset_t = long_long
|
||||
rbx.platform.typedef.vm_paddr_t = uint
|
||||
rbx.platform.typedef.vm_pindex_t = ulong_long
|
||||
rbx.platform.typedef.vm_size_t = uint
|
||||
@@ -0,0 +1,152 @@
|
||||
|
||||
rbx.platform.typedef.*) = pointer
|
||||
rbx.platform.typedef.__accmode_t = int
|
||||
rbx.platform.typedef.__blkcnt_t = long_long
|
||||
rbx.platform.typedef.__blksize_t = uint
|
||||
rbx.platform.typedef.__clock_t = ulong
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__cpulevel_t = int
|
||||
rbx.platform.typedef.__cpumask_t = uint
|
||||
rbx.platform.typedef.__cpusetid_t = int
|
||||
rbx.platform.typedef.__cpuwhich_t = int
|
||||
rbx.platform.typedef.__critical_t = int
|
||||
rbx.platform.typedef.__ct_rune_t = int
|
||||
rbx.platform.typedef.__dev_t = ulong_long
|
||||
rbx.platform.typedef.__fd_mask = ulong
|
||||
rbx.platform.typedef.__fflags_t = uint
|
||||
rbx.platform.typedef.__fixpt_t = uint
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong_long
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong_long
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = long_long
|
||||
rbx.platform.typedef.__ino_t = ulong_long
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long_long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__int_fast16_t = int
|
||||
rbx.platform.typedef.__int_fast32_t = int
|
||||
rbx.platform.typedef.__int_fast64_t = long_long
|
||||
rbx.platform.typedef.__int_fast8_t = int
|
||||
rbx.platform.typedef.__int_least16_t = short
|
||||
rbx.platform.typedef.__int_least32_t = int
|
||||
rbx.platform.typedef.__int_least64_t = long_long
|
||||
rbx.platform.typedef.__int_least8_t = char
|
||||
rbx.platform.typedef.__intfptr_t = int
|
||||
rbx.platform.typedef.__intmax_t = long_long
|
||||
rbx.platform.typedef.__intptr_t = int
|
||||
rbx.platform.typedef.__key_t = long
|
||||
rbx.platform.typedef.__lwpid_t = int
|
||||
rbx.platform.typedef.__mode_t = ushort
|
||||
rbx.platform.typedef.__nl_item = int
|
||||
rbx.platform.typedef.__nlink_t = ulong_long
|
||||
rbx.platform.typedef.__off_t = long_long
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__ptrdiff_t = int
|
||||
rbx.platform.typedef.__register_t = int
|
||||
rbx.platform.typedef.__rlim_t = long_long
|
||||
rbx.platform.typedef.__rune_t = int
|
||||
rbx.platform.typedef.__sa_family_t = uchar
|
||||
rbx.platform.typedef.__segsz_t = int
|
||||
rbx.platform.typedef.__size_t = uint
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = int
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__time_t = int
|
||||
rbx.platform.typedef.__u_register_t = uint
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong_long
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__uint_fast16_t = uint
|
||||
rbx.platform.typedef.__uint_fast32_t = uint
|
||||
rbx.platform.typedef.__uint_fast64_t = ulong_long
|
||||
rbx.platform.typedef.__uint_fast8_t = uint
|
||||
rbx.platform.typedef.__uint_least16_t = ushort
|
||||
rbx.platform.typedef.__uint_least32_t = uint
|
||||
rbx.platform.typedef.__uint_least64_t = ulong_long
|
||||
rbx.platform.typedef.__uint_least8_t = uchar
|
||||
rbx.platform.typedef.__uintfptr_t = uint
|
||||
rbx.platform.typedef.__uintmax_t = ulong_long
|
||||
rbx.platform.typedef.__uintptr_t = uint
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.__vm_offset_t = uint
|
||||
rbx.platform.typedef.__vm_ooffset_t = long_long
|
||||
rbx.platform.typedef.__vm_paddr_t = uint
|
||||
rbx.platform.typedef.__vm_pindex_t = ulong_long
|
||||
rbx.platform.typedef.__vm_size_t = uint
|
||||
rbx.platform.typedef.__wchar_t = int
|
||||
rbx.platform.typedef.__wint_t = int
|
||||
rbx.platform.typedef.__wint_t = int
|
||||
rbx.platform.typedef.accmode_t = int
|
||||
rbx.platform.typedef.blkcnt_t = long_long
|
||||
rbx.platform.typedef.blksize_t = uint
|
||||
rbx.platform.typedef.c_caddr_t = pointer
|
||||
rbx.platform.typedef.caddr_t = string
|
||||
rbx.platform.typedef.clock_t = ulong
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.cpulevel_t = int
|
||||
rbx.platform.typedef.cpumask_t = uint
|
||||
rbx.platform.typedef.cpusetid_t = int
|
||||
rbx.platform.typedef.cpuwhich_t = int
|
||||
rbx.platform.typedef.critical_t = int
|
||||
rbx.platform.typedef.daddr_t = long_long
|
||||
rbx.platform.typedef.dev_t = ulong_long
|
||||
rbx.platform.typedef.fd_mask = ulong
|
||||
rbx.platform.typedef.fflags_t = uint
|
||||
rbx.platform.typedef.fixpt_t = uint
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong_long
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong_long
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = long_long
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.in_port_t = ushort
|
||||
rbx.platform.typedef.ino_t = ulong_long
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.intptr_t = int
|
||||
rbx.platform.typedef.key_t = long
|
||||
rbx.platform.typedef.lwpid_t = int
|
||||
rbx.platform.typedef.mode_t = ushort
|
||||
rbx.platform.typedef.nlink_t = ulong_long
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = int
|
||||
rbx.platform.typedef.qaddr_t = pointer
|
||||
rbx.platform.typedef.quad_t = long_long
|
||||
rbx.platform.typedef.register_t = int
|
||||
rbx.platform.typedef.rlim_t = long_long
|
||||
rbx.platform.typedef.sa_family_t = uchar
|
||||
rbx.platform.typedef.segsz_t = int
|
||||
rbx.platform.typedef.size_t = uint
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = int
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.time_t = int
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong_long
|
||||
rbx.platform.typedef.u_register_t = uint
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint32_t = uint
|
||||
rbx.platform.typedef.uint64_t = ulong_long
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.uintptr_t = uint
|
||||
rbx.platform.typedef.useconds_t = uint
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
rbx.platform.typedef.vm_offset_t = uint
|
||||
rbx.platform.typedef.vm_ooffset_t = long_long
|
||||
rbx.platform.typedef.vm_paddr_t = uint
|
||||
rbx.platform.typedef.vm_pindex_t = ulong_long
|
||||
rbx.platform.typedef.vm_size_t = uint
|
||||
@@ -0,0 +1,132 @@
|
||||
rbx.platform.typedef.*__caddr_t = char
|
||||
rbx.platform.typedef.__blkcnt64_t = long_long
|
||||
rbx.platform.typedef.__blkcnt_t = long
|
||||
rbx.platform.typedef.__blksize_t = long
|
||||
rbx.platform.typedef.__clock_t = long
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__daddr_t = int
|
||||
rbx.platform.typedef.__dev_t = ulong_long
|
||||
rbx.platform.typedef.__fd_mask = long
|
||||
rbx.platform.typedef.__fsblkcnt64_t = ulong_long
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt64_t = ulong_long
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.__fsword_t = int
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__ino64_t = ulong_long
|
||||
rbx.platform.typedef.__ino_t = ulong
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long_long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__intmax_t = long_long
|
||||
rbx.platform.typedef.__intptr_t = int
|
||||
rbx.platform.typedef.__key_t = int
|
||||
rbx.platform.typedef.__loff_t = long_long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = uint
|
||||
rbx.platform.typedef.__off64_t = long_long
|
||||
rbx.platform.typedef.__off_t = long
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__priority_which_t = int
|
||||
rbx.platform.typedef.__quad_t = long_long
|
||||
rbx.platform.typedef.__rlim64_t = ulong_long
|
||||
rbx.platform.typedef.__rlim_t = ulong
|
||||
rbx.platform.typedef.__rlimit_resource_t = int
|
||||
rbx.platform.typedef.__rusage_who_t = int
|
||||
rbx.platform.typedef.__sig_atomic_t = int
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = int
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__syscall_slong_t = long
|
||||
rbx.platform.typedef.__syscall_ulong_t = ulong
|
||||
rbx.platform.typedef.__time_t = long
|
||||
rbx.platform.typedef.__timer_t = pointer
|
||||
rbx.platform.typedef.__u_char = uchar
|
||||
rbx.platform.typedef.__u_int = uint
|
||||
rbx.platform.typedef.__u_long = ulong
|
||||
rbx.platform.typedef.__u_quad_t = ulong_long
|
||||
rbx.platform.typedef.__u_short = ushort
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong_long
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__uintmax_t = ulong_long
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.blkcnt_t = long_long
|
||||
rbx.platform.typedef.blksize_t = long
|
||||
rbx.platform.typedef.clock_t = long
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = ulong_long
|
||||
rbx.platform.typedef.fd_mask = long
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong_long
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong_long
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.in_port_t = ushort
|
||||
rbx.platform.typedef.ino_t = ulong_long
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.int_fast16_t = int
|
||||
rbx.platform.typedef.int_fast32_t = int
|
||||
rbx.platform.typedef.int_fast64_t = long_long
|
||||
rbx.platform.typedef.int_fast8_t = char
|
||||
rbx.platform.typedef.int_least32_t = int
|
||||
rbx.platform.typedef.int_least64_t = long_long
|
||||
rbx.platform.typedef.int_least8_t = char
|
||||
rbx.platform.typedef.intmax_t = long_long
|
||||
rbx.platform.typedef.intptr_t = int
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.loff_t = long_long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = uint
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = uint
|
||||
rbx.platform.typedef.pthread_once_t = int
|
||||
rbx.platform.typedef.pthread_t = ulong
|
||||
rbx.platform.typedef.ptrdiff_t = int
|
||||
rbx.platform.typedef.quad_t = long_long
|
||||
rbx.platform.typedef.register_t = long
|
||||
rbx.platform.typedef.rlim_t = ulong_long
|
||||
rbx.platform.typedef.sa_family_t = ushort
|
||||
rbx.platform.typedef.size_t = uint
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = int
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.timer_t = pointer
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong_long
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint32_t = uint
|
||||
rbx.platform.typedef.uint64_t = ulong_long
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.uint_fast16_t = uint
|
||||
rbx.platform.typedef.uint_fast32_t = uint
|
||||
rbx.platform.typedef.uint_fast64_t = ulong_long
|
||||
rbx.platform.typedef.uint_fast8_t = uchar
|
||||
rbx.platform.typedef.uint_least16_t = ushort
|
||||
rbx.platform.typedef.uint_least32_t = uint
|
||||
rbx.platform.typedef.uint_least64_t = ulong_long
|
||||
rbx.platform.typedef.uint_least8_t = uchar
|
||||
rbx.platform.typedef.uintmax_t = ulong_long
|
||||
rbx.platform.typedef.uintptr_t = uint
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
rbx.platform.typedef.wchar_t = uint
|
||||
@@ -0,0 +1,178 @@
|
||||
rbx.platform.typedef.*__caddr_t = char
|
||||
rbx.platform.typedef.__blkcnt64_t = long_long
|
||||
rbx.platform.typedef.__blkcnt_t = long
|
||||
rbx.platform.typedef.__blksize_t = long
|
||||
rbx.platform.typedef.__clock_t = long
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__daddr_t = int
|
||||
rbx.platform.typedef.__dev_t = ulong_long
|
||||
rbx.platform.typedef.__fd_mask = long
|
||||
rbx.platform.typedef.__fsblkcnt64_t = ulong_long
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt64_t = ulong_long
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.__fsword_t = int
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__ino64_t = ulong_long
|
||||
rbx.platform.typedef.__ino_t = ulong
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long_long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__int_least16_t = short
|
||||
rbx.platform.typedef.__int_least32_t = int
|
||||
rbx.platform.typedef.__int_least64_t = long_long
|
||||
rbx.platform.typedef.__int_least8_t = char
|
||||
rbx.platform.typedef.__intmax_t = long_long
|
||||
rbx.platform.typedef.__intptr_t = int
|
||||
rbx.platform.typedef.__kernel_caddr_t = string
|
||||
rbx.platform.typedef.__kernel_clock_t = long
|
||||
rbx.platform.typedef.__kernel_clockid_t = int
|
||||
rbx.platform.typedef.__kernel_daddr_t = int
|
||||
rbx.platform.typedef.__kernel_gid16_t = ushort
|
||||
rbx.platform.typedef.__kernel_gid32_t = uint
|
||||
rbx.platform.typedef.__kernel_gid_t = uint
|
||||
rbx.platform.typedef.__kernel_ino64_t = ulong_long
|
||||
rbx.platform.typedef.__kernel_ino_t = ulong
|
||||
rbx.platform.typedef.__kernel_ipc_pid_t = ushort
|
||||
rbx.platform.typedef.__kernel_key_t = int
|
||||
rbx.platform.typedef.__kernel_loff_t = long_long
|
||||
rbx.platform.typedef.__kernel_long_t = long
|
||||
rbx.platform.typedef.__kernel_mode_t = ushort
|
||||
rbx.platform.typedef.__kernel_mqd_t = int
|
||||
rbx.platform.typedef.__kernel_off64_t = long_long
|
||||
rbx.platform.typedef.__kernel_off_t = long
|
||||
rbx.platform.typedef.__kernel_old_dev_t = uint
|
||||
rbx.platform.typedef.__kernel_old_gid_t = uint
|
||||
rbx.platform.typedef.__kernel_old_time_t = long
|
||||
rbx.platform.typedef.__kernel_old_uid_t = uint
|
||||
rbx.platform.typedef.__kernel_pid_t = int
|
||||
rbx.platform.typedef.__kernel_ptrdiff_t = int
|
||||
rbx.platform.typedef.__kernel_size_t = uint
|
||||
rbx.platform.typedef.__kernel_ssize_t = int
|
||||
rbx.platform.typedef.__kernel_suseconds_t = long
|
||||
rbx.platform.typedef.__kernel_time64_t = long_long
|
||||
rbx.platform.typedef.__kernel_time_t = long
|
||||
rbx.platform.typedef.__kernel_timer_t = int
|
||||
rbx.platform.typedef.__kernel_uid16_t = ushort
|
||||
rbx.platform.typedef.__kernel_uid32_t = uint
|
||||
rbx.platform.typedef.__kernel_uid_t = uint
|
||||
rbx.platform.typedef.__kernel_ulong_t = ulong
|
||||
rbx.platform.typedef.__key_t = int
|
||||
rbx.platform.typedef.__loff_t = long_long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = uint
|
||||
rbx.platform.typedef.__off64_t = long_long
|
||||
rbx.platform.typedef.__off_t = long
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__priority_which_t = int
|
||||
rbx.platform.typedef.__quad_t = long_long
|
||||
rbx.platform.typedef.__rlim64_t = ulong_long
|
||||
rbx.platform.typedef.__rlim_t = ulong
|
||||
rbx.platform.typedef.__rlimit_resource_t = int
|
||||
rbx.platform.typedef.__rusage_who_t = int
|
||||
rbx.platform.typedef.__sig_atomic_t = int
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = int
|
||||
rbx.platform.typedef.__suseconds64_t = long_long
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__syscall_slong_t = long
|
||||
rbx.platform.typedef.__syscall_ulong_t = ulong
|
||||
rbx.platform.typedef.__thrd_t = ulong
|
||||
rbx.platform.typedef.__time64_t = long_long
|
||||
rbx.platform.typedef.__time_t = long
|
||||
rbx.platform.typedef.__timer_t = pointer
|
||||
rbx.platform.typedef.__tss_t = uint
|
||||
rbx.platform.typedef.__u_char = uchar
|
||||
rbx.platform.typedef.__u_int = uint
|
||||
rbx.platform.typedef.__u_long = ulong
|
||||
rbx.platform.typedef.__u_quad_t = ulong_long
|
||||
rbx.platform.typedef.__u_short = ushort
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong_long
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__uint_least16_t = ushort
|
||||
rbx.platform.typedef.__uint_least32_t = uint
|
||||
rbx.platform.typedef.__uint_least64_t = ulong_long
|
||||
rbx.platform.typedef.__uint_least8_t = uchar
|
||||
rbx.platform.typedef.__uintmax_t = ulong_long
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.blkcnt_t = long_long
|
||||
rbx.platform.typedef.blksize_t = long
|
||||
rbx.platform.typedef.clock_t = long
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = ulong_long
|
||||
rbx.platform.typedef.fd_mask = long
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong_long
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong_long
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.in_port_t = ushort
|
||||
rbx.platform.typedef.ino_t = ulong_long
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.int_fast16_t = int
|
||||
rbx.platform.typedef.int_fast32_t = int
|
||||
rbx.platform.typedef.int_fast64_t = long_long
|
||||
rbx.platform.typedef.int_fast8_t = char
|
||||
rbx.platform.typedef.int_least16_t = short
|
||||
rbx.platform.typedef.int_least32_t = int
|
||||
rbx.platform.typedef.int_least64_t = long_long
|
||||
rbx.platform.typedef.int_least8_t = char
|
||||
rbx.platform.typedef.intmax_t = long_long
|
||||
rbx.platform.typedef.intptr_t = int
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.loff_t = long_long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = uint
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = uint
|
||||
rbx.platform.typedef.pthread_once_t = int
|
||||
rbx.platform.typedef.pthread_t = ulong
|
||||
rbx.platform.typedef.ptrdiff_t = int
|
||||
rbx.platform.typedef.quad_t = long_long
|
||||
rbx.platform.typedef.register_t = long
|
||||
rbx.platform.typedef.rlim_t = ulong_long
|
||||
rbx.platform.typedef.sa_family_t = ushort
|
||||
rbx.platform.typedef.size_t = uint
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = int
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.timer_t = pointer
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong_long
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint32_t = uint
|
||||
rbx.platform.typedef.uint64_t = ulong_long
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.uint_fast16_t = uint
|
||||
rbx.platform.typedef.uint_fast32_t = uint
|
||||
rbx.platform.typedef.uint_fast64_t = ulong_long
|
||||
rbx.platform.typedef.uint_fast8_t = uchar
|
||||
rbx.platform.typedef.uint_least16_t = ushort
|
||||
rbx.platform.typedef.uint_least32_t = uint
|
||||
rbx.platform.typedef.uint_least64_t = ulong_long
|
||||
rbx.platform.typedef.uint_least8_t = uchar
|
||||
rbx.platform.typedef.uintmax_t = ulong_long
|
||||
rbx.platform.typedef.uintptr_t = uint
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
rbx.platform.typedef.wchar_t = long
|
||||
@@ -0,0 +1,178 @@
|
||||
rbx.platform.typedef.*__caddr_t = char
|
||||
rbx.platform.typedef.__blkcnt64_t = long_long
|
||||
rbx.platform.typedef.__blkcnt_t = long
|
||||
rbx.platform.typedef.__blksize_t = long
|
||||
rbx.platform.typedef.__clock_t = long
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__daddr_t = int
|
||||
rbx.platform.typedef.__dev_t = ulong_long
|
||||
rbx.platform.typedef.__fd_mask = long
|
||||
rbx.platform.typedef.__fsblkcnt64_t = ulong_long
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt64_t = ulong_long
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.__fsword_t = int
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__ino64_t = ulong_long
|
||||
rbx.platform.typedef.__ino_t = ulong
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long_long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__int_least16_t = short
|
||||
rbx.platform.typedef.__int_least32_t = int
|
||||
rbx.platform.typedef.__int_least64_t = long_long
|
||||
rbx.platform.typedef.__int_least8_t = char
|
||||
rbx.platform.typedef.__intmax_t = long_long
|
||||
rbx.platform.typedef.__intptr_t = int
|
||||
rbx.platform.typedef.__kernel_caddr_t = string
|
||||
rbx.platform.typedef.__kernel_clock_t = long
|
||||
rbx.platform.typedef.__kernel_clockid_t = int
|
||||
rbx.platform.typedef.__kernel_daddr_t = int
|
||||
rbx.platform.typedef.__kernel_gid16_t = ushort
|
||||
rbx.platform.typedef.__kernel_gid32_t = uint
|
||||
rbx.platform.typedef.__kernel_gid_t = uint
|
||||
rbx.platform.typedef.__kernel_ino64_t = ulong_long
|
||||
rbx.platform.typedef.__kernel_ino_t = ulong
|
||||
rbx.platform.typedef.__kernel_ipc_pid_t = ushort
|
||||
rbx.platform.typedef.__kernel_key_t = int
|
||||
rbx.platform.typedef.__kernel_loff_t = long_long
|
||||
rbx.platform.typedef.__kernel_long_t = long
|
||||
rbx.platform.typedef.__kernel_mode_t = ushort
|
||||
rbx.platform.typedef.__kernel_mqd_t = int
|
||||
rbx.platform.typedef.__kernel_off64_t = long_long
|
||||
rbx.platform.typedef.__kernel_off_t = long
|
||||
rbx.platform.typedef.__kernel_old_dev_t = uint
|
||||
rbx.platform.typedef.__kernel_old_gid_t = uint
|
||||
rbx.platform.typedef.__kernel_old_time_t = long
|
||||
rbx.platform.typedef.__kernel_old_uid_t = uint
|
||||
rbx.platform.typedef.__kernel_pid_t = int
|
||||
rbx.platform.typedef.__kernel_ptrdiff_t = int
|
||||
rbx.platform.typedef.__kernel_size_t = uint
|
||||
rbx.platform.typedef.__kernel_ssize_t = int
|
||||
rbx.platform.typedef.__kernel_suseconds_t = long
|
||||
rbx.platform.typedef.__kernel_time64_t = long_long
|
||||
rbx.platform.typedef.__kernel_time_t = long
|
||||
rbx.platform.typedef.__kernel_timer_t = int
|
||||
rbx.platform.typedef.__kernel_uid16_t = ushort
|
||||
rbx.platform.typedef.__kernel_uid32_t = uint
|
||||
rbx.platform.typedef.__kernel_uid_t = uint
|
||||
rbx.platform.typedef.__kernel_ulong_t = ulong
|
||||
rbx.platform.typedef.__key_t = int
|
||||
rbx.platform.typedef.__loff_t = long_long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = uint
|
||||
rbx.platform.typedef.__off64_t = long_long
|
||||
rbx.platform.typedef.__off_t = long
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__priority_which_t = int
|
||||
rbx.platform.typedef.__quad_t = long_long
|
||||
rbx.platform.typedef.__rlim64_t = ulong_long
|
||||
rbx.platform.typedef.__rlim_t = ulong
|
||||
rbx.platform.typedef.__rlimit_resource_t = int
|
||||
rbx.platform.typedef.__rusage_who_t = int
|
||||
rbx.platform.typedef.__sig_atomic_t = int
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = int
|
||||
rbx.platform.typedef.__suseconds64_t = long_long
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__syscall_slong_t = long
|
||||
rbx.platform.typedef.__syscall_ulong_t = ulong
|
||||
rbx.platform.typedef.__thrd_t = ulong
|
||||
rbx.platform.typedef.__time64_t = long_long
|
||||
rbx.platform.typedef.__time_t = long
|
||||
rbx.platform.typedef.__timer_t = pointer
|
||||
rbx.platform.typedef.__tss_t = uint
|
||||
rbx.platform.typedef.__u_char = uchar
|
||||
rbx.platform.typedef.__u_int = uint
|
||||
rbx.platform.typedef.__u_long = ulong
|
||||
rbx.platform.typedef.__u_quad_t = ulong_long
|
||||
rbx.platform.typedef.__u_short = ushort
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong_long
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__uint_least16_t = ushort
|
||||
rbx.platform.typedef.__uint_least32_t = uint
|
||||
rbx.platform.typedef.__uint_least64_t = ulong_long
|
||||
rbx.platform.typedef.__uint_least8_t = uchar
|
||||
rbx.platform.typedef.__uintmax_t = ulong_long
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.blkcnt_t = long_long
|
||||
rbx.platform.typedef.blksize_t = long
|
||||
rbx.platform.typedef.clock_t = long
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = ulong_long
|
||||
rbx.platform.typedef.fd_mask = long
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong_long
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong_long
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.in_port_t = ushort
|
||||
rbx.platform.typedef.ino_t = ulong_long
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.int_fast16_t = int
|
||||
rbx.platform.typedef.int_fast32_t = int
|
||||
rbx.platform.typedef.int_fast64_t = long_long
|
||||
rbx.platform.typedef.int_fast8_t = char
|
||||
rbx.platform.typedef.int_least16_t = short
|
||||
rbx.platform.typedef.int_least32_t = int
|
||||
rbx.platform.typedef.int_least64_t = long_long
|
||||
rbx.platform.typedef.int_least8_t = char
|
||||
rbx.platform.typedef.intmax_t = long_long
|
||||
rbx.platform.typedef.intptr_t = int
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.loff_t = long_long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = uint
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = uint
|
||||
rbx.platform.typedef.pthread_once_t = int
|
||||
rbx.platform.typedef.pthread_t = ulong
|
||||
rbx.platform.typedef.ptrdiff_t = int
|
||||
rbx.platform.typedef.quad_t = long_long
|
||||
rbx.platform.typedef.register_t = long
|
||||
rbx.platform.typedef.rlim_t = ulong_long
|
||||
rbx.platform.typedef.sa_family_t = ushort
|
||||
rbx.platform.typedef.size_t = uint
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = int
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.timer_t = pointer
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong_long
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint32_t = uint
|
||||
rbx.platform.typedef.uint64_t = ulong_long
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.uint_fast16_t = uint
|
||||
rbx.platform.typedef.uint_fast32_t = uint
|
||||
rbx.platform.typedef.uint_fast64_t = ulong_long
|
||||
rbx.platform.typedef.uint_fast8_t = uchar
|
||||
rbx.platform.typedef.uint_least16_t = ushort
|
||||
rbx.platform.typedef.uint_least32_t = uint
|
||||
rbx.platform.typedef.uint_least64_t = ulong_long
|
||||
rbx.platform.typedef.uint_least8_t = uchar
|
||||
rbx.platform.typedef.uintmax_t = ulong_long
|
||||
rbx.platform.typedef.uintptr_t = uint
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
rbx.platform.typedef.wchar_t = long
|
||||
@@ -0,0 +1,3 @@
|
||||
rbx.platform.typedef.ptrdiff_t = int
|
||||
rbx.platform.typedef.size_t = uint
|
||||
rbx.platform.typedef.ssize_t = int
|
||||
@@ -0,0 +1,100 @@
|
||||
rbx.platform.typedef.__darwin_blkcnt_t = long_long
|
||||
rbx.platform.typedef.__darwin_blksize_t = int
|
||||
rbx.platform.typedef.__darwin_clock_t = ulong
|
||||
rbx.platform.typedef.__darwin_ct_rune_t = int
|
||||
rbx.platform.typedef.__darwin_dev_t = int
|
||||
rbx.platform.typedef.__darwin_fsblkcnt_t = uint
|
||||
rbx.platform.typedef.__darwin_fsfilcnt_t = uint
|
||||
rbx.platform.typedef.__darwin_gid_t = uint
|
||||
rbx.platform.typedef.__darwin_id_t = uint
|
||||
rbx.platform.typedef.__darwin_ino64_t = ulong_long
|
||||
rbx.platform.typedef.__darwin_ino_t = ulong_long
|
||||
rbx.platform.typedef.__darwin_intptr_t = long
|
||||
rbx.platform.typedef.__darwin_mach_port_name_t = uint
|
||||
rbx.platform.typedef.__darwin_mach_port_t = uint
|
||||
rbx.platform.typedef.__darwin_mode_t = ushort
|
||||
rbx.platform.typedef.__darwin_natural_t = uint
|
||||
rbx.platform.typedef.__darwin_off_t = long_long
|
||||
rbx.platform.typedef.__darwin_pid_t = int
|
||||
rbx.platform.typedef.__darwin_pthread_key_t = ulong
|
||||
rbx.platform.typedef.__darwin_ptrdiff_t = int
|
||||
rbx.platform.typedef.__darwin_rune_t = int
|
||||
rbx.platform.typedef.__darwin_sigset_t = uint
|
||||
rbx.platform.typedef.__darwin_size_t = ulong
|
||||
rbx.platform.typedef.__darwin_socklen_t = uint
|
||||
rbx.platform.typedef.__darwin_ssize_t = long
|
||||
rbx.platform.typedef.__darwin_suseconds_t = int
|
||||
rbx.platform.typedef.__darwin_time_t = long
|
||||
rbx.platform.typedef.__darwin_uid_t = uint
|
||||
rbx.platform.typedef.__darwin_useconds_t = uint
|
||||
rbx.platform.typedef.__darwin_uuid_t[16] = uchar
|
||||
rbx.platform.typedef.__darwin_wchar_t = int
|
||||
rbx.platform.typedef.__darwin_wint_t = int
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long_long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong_long
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.blkcnt_t = long_long
|
||||
rbx.platform.typedef.blksize_t = int
|
||||
rbx.platform.typedef.caddr_t = string
|
||||
rbx.platform.typedef.clock_t = ulong
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = int
|
||||
rbx.platform.typedef.fd_mask = int
|
||||
rbx.platform.typedef.fixpt_t = uint
|
||||
rbx.platform.typedef.fsblkcnt_t = uint
|
||||
rbx.platform.typedef.fsfilcnt_t = uint
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.in_port_t = ushort
|
||||
rbx.platform.typedef.ino64_t = ulong_long
|
||||
rbx.platform.typedef.ino_t = ulong_long
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.intptr_t = long
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.mode_t = ushort
|
||||
rbx.platform.typedef.nlink_t = ushort
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = ulong
|
||||
rbx.platform.typedef.qaddr_t = pointer
|
||||
rbx.platform.typedef.quad_t = long_long
|
||||
rbx.platform.typedef.register_t = int
|
||||
rbx.platform.typedef.rlim_t = ulong_long
|
||||
rbx.platform.typedef.sa_family_t = uchar
|
||||
rbx.platform.typedef.segsz_t = int
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = long
|
||||
rbx.platform.typedef.suseconds_t = int
|
||||
rbx.platform.typedef.swblk_t = int
|
||||
rbx.platform.typedef.syscall_arg_t = ulong_long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong_long
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uintptr_t = ulong
|
||||
rbx.platform.typedef.useconds_t = uint
|
||||
rbx.platform.typedef.user_addr_t = ulong_long
|
||||
rbx.platform.typedef.user_long_t = long_long
|
||||
rbx.platform.typedef.user_size_t = ulong_long
|
||||
rbx.platform.typedef.user_ssize_t = long_long
|
||||
rbx.platform.typedef.user_time_t = long_long
|
||||
rbx.platform.typedef.user_ulong_t = ulong_long
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
@@ -0,0 +1,152 @@
|
||||
|
||||
rbx.platform.typedef.*) = pointer
|
||||
rbx.platform.typedef.__accmode_t = int
|
||||
rbx.platform.typedef.__blkcnt_t = long_long
|
||||
rbx.platform.typedef.__blksize_t = uint
|
||||
rbx.platform.typedef.__clock_t = ulong
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__cpulevel_t = int
|
||||
rbx.platform.typedef.__cpumask_t = uint
|
||||
rbx.platform.typedef.__cpusetid_t = int
|
||||
rbx.platform.typedef.__cpuwhich_t = int
|
||||
rbx.platform.typedef.__critical_t = int
|
||||
rbx.platform.typedef.__ct_rune_t = int
|
||||
rbx.platform.typedef.__dev_t = uint
|
||||
rbx.platform.typedef.__fd_mask = ulong
|
||||
rbx.platform.typedef.__fflags_t = uint
|
||||
rbx.platform.typedef.__fixpt_t = uint
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong_long
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong_long
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = long_long
|
||||
rbx.platform.typedef.__ino_t = uint
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long_long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__int_fast16_t = int
|
||||
rbx.platform.typedef.__int_fast32_t = int
|
||||
rbx.platform.typedef.__int_fast64_t = long_long
|
||||
rbx.platform.typedef.__int_fast8_t = int
|
||||
rbx.platform.typedef.__int_least16_t = short
|
||||
rbx.platform.typedef.__int_least32_t = int
|
||||
rbx.platform.typedef.__int_least64_t = long_long
|
||||
rbx.platform.typedef.__int_least8_t = char
|
||||
rbx.platform.typedef.__intfptr_t = int
|
||||
rbx.platform.typedef.__intmax_t = long_long
|
||||
rbx.platform.typedef.__intptr_t = int
|
||||
rbx.platform.typedef.__key_t = long
|
||||
rbx.platform.typedef.__lwpid_t = int
|
||||
rbx.platform.typedef.__mode_t = ushort
|
||||
rbx.platform.typedef.__nl_item = int
|
||||
rbx.platform.typedef.__nlink_t = ushort
|
||||
rbx.platform.typedef.__off_t = long_long
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__ptrdiff_t = int
|
||||
rbx.platform.typedef.__register_t = int
|
||||
rbx.platform.typedef.__rlim_t = long_long
|
||||
rbx.platform.typedef.__rune_t = int
|
||||
rbx.platform.typedef.__sa_family_t = uchar
|
||||
rbx.platform.typedef.__segsz_t = int
|
||||
rbx.platform.typedef.__size_t = uint
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = int
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__time_t = long
|
||||
rbx.platform.typedef.__u_register_t = uint
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong_long
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__uint_fast16_t = uint
|
||||
rbx.platform.typedef.__uint_fast32_t = uint
|
||||
rbx.platform.typedef.__uint_fast64_t = ulong_long
|
||||
rbx.platform.typedef.__uint_fast8_t = uint
|
||||
rbx.platform.typedef.__uint_least16_t = ushort
|
||||
rbx.platform.typedef.__uint_least32_t = uint
|
||||
rbx.platform.typedef.__uint_least64_t = ulong_long
|
||||
rbx.platform.typedef.__uint_least8_t = uchar
|
||||
rbx.platform.typedef.__uintfptr_t = uint
|
||||
rbx.platform.typedef.__uintmax_t = ulong_long
|
||||
rbx.platform.typedef.__uintptr_t = uint
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.__vm_offset_t = uint
|
||||
rbx.platform.typedef.__vm_ooffset_t = long_long
|
||||
rbx.platform.typedef.__vm_paddr_t = uint
|
||||
rbx.platform.typedef.__vm_pindex_t = ulong_long
|
||||
rbx.platform.typedef.__vm_size_t = uint
|
||||
rbx.platform.typedef.__wchar_t = int
|
||||
rbx.platform.typedef.__wint_t = int
|
||||
rbx.platform.typedef.__wint_t = int
|
||||
rbx.platform.typedef.accmode_t = int
|
||||
rbx.platform.typedef.blkcnt_t = long_long
|
||||
rbx.platform.typedef.blksize_t = uint
|
||||
rbx.platform.typedef.c_caddr_t = pointer
|
||||
rbx.platform.typedef.caddr_t = string
|
||||
rbx.platform.typedef.clock_t = ulong
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.cpulevel_t = int
|
||||
rbx.platform.typedef.cpumask_t = uint
|
||||
rbx.platform.typedef.cpusetid_t = int
|
||||
rbx.platform.typedef.cpuwhich_t = int
|
||||
rbx.platform.typedef.critical_t = int
|
||||
rbx.platform.typedef.daddr_t = long_long
|
||||
rbx.platform.typedef.dev_t = uint
|
||||
rbx.platform.typedef.fd_mask = ulong
|
||||
rbx.platform.typedef.fflags_t = uint
|
||||
rbx.platform.typedef.fixpt_t = uint
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong_long
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong_long
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = long_long
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.in_port_t = ushort
|
||||
rbx.platform.typedef.ino_t = uint
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.intptr_t = int
|
||||
rbx.platform.typedef.key_t = long
|
||||
rbx.platform.typedef.lwpid_t = int
|
||||
rbx.platform.typedef.mode_t = ushort
|
||||
rbx.platform.typedef.nlink_t = ushort
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = int
|
||||
rbx.platform.typedef.qaddr_t = pointer
|
||||
rbx.platform.typedef.quad_t = long_long
|
||||
rbx.platform.typedef.register_t = int
|
||||
rbx.platform.typedef.rlim_t = long_long
|
||||
rbx.platform.typedef.sa_family_t = uchar
|
||||
rbx.platform.typedef.segsz_t = int
|
||||
rbx.platform.typedef.size_t = uint
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = int
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong_long
|
||||
rbx.platform.typedef.u_register_t = uint
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint32_t = uint
|
||||
rbx.platform.typedef.uint64_t = ulong_long
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.uintptr_t = uint
|
||||
rbx.platform.typedef.useconds_t = uint
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
rbx.platform.typedef.vm_offset_t = uint
|
||||
rbx.platform.typedef.vm_ooffset_t = long_long
|
||||
rbx.platform.typedef.vm_paddr_t = uint
|
||||
rbx.platform.typedef.vm_pindex_t = ulong_long
|
||||
rbx.platform.typedef.vm_size_t = uint
|
||||
@@ -0,0 +1,152 @@
|
||||
|
||||
rbx.platform.typedef.*) = pointer
|
||||
rbx.platform.typedef.__accmode_t = int
|
||||
rbx.platform.typedef.__blkcnt_t = long_long
|
||||
rbx.platform.typedef.__blksize_t = uint
|
||||
rbx.platform.typedef.__clock_t = ulong
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__cpulevel_t = int
|
||||
rbx.platform.typedef.__cpumask_t = uint
|
||||
rbx.platform.typedef.__cpusetid_t = int
|
||||
rbx.platform.typedef.__cpuwhich_t = int
|
||||
rbx.platform.typedef.__critical_t = int
|
||||
rbx.platform.typedef.__ct_rune_t = int
|
||||
rbx.platform.typedef.__dev_t = ulong_long
|
||||
rbx.platform.typedef.__fd_mask = ulong
|
||||
rbx.platform.typedef.__fflags_t = uint
|
||||
rbx.platform.typedef.__fixpt_t = uint
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong_long
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong_long
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = long_long
|
||||
rbx.platform.typedef.__ino_t = ulong_long
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long_long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__int_fast16_t = int
|
||||
rbx.platform.typedef.__int_fast32_t = int
|
||||
rbx.platform.typedef.__int_fast64_t = long_long
|
||||
rbx.platform.typedef.__int_fast8_t = int
|
||||
rbx.platform.typedef.__int_least16_t = short
|
||||
rbx.platform.typedef.__int_least32_t = int
|
||||
rbx.platform.typedef.__int_least64_t = long_long
|
||||
rbx.platform.typedef.__int_least8_t = char
|
||||
rbx.platform.typedef.__intfptr_t = int
|
||||
rbx.platform.typedef.__intmax_t = long_long
|
||||
rbx.platform.typedef.__intptr_t = int
|
||||
rbx.platform.typedef.__key_t = long
|
||||
rbx.platform.typedef.__lwpid_t = int
|
||||
rbx.platform.typedef.__mode_t = ushort
|
||||
rbx.platform.typedef.__nl_item = int
|
||||
rbx.platform.typedef.__nlink_t = ulong_long
|
||||
rbx.platform.typedef.__off_t = long_long
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__ptrdiff_t = int
|
||||
rbx.platform.typedef.__register_t = int
|
||||
rbx.platform.typedef.__rlim_t = long_long
|
||||
rbx.platform.typedef.__rune_t = int
|
||||
rbx.platform.typedef.__sa_family_t = uchar
|
||||
rbx.platform.typedef.__segsz_t = int
|
||||
rbx.platform.typedef.__size_t = uint
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = int
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__time_t = int
|
||||
rbx.platform.typedef.__u_register_t = uint
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong_long
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__uint_fast16_t = uint
|
||||
rbx.platform.typedef.__uint_fast32_t = uint
|
||||
rbx.platform.typedef.__uint_fast64_t = ulong_long
|
||||
rbx.platform.typedef.__uint_fast8_t = uint
|
||||
rbx.platform.typedef.__uint_least16_t = ushort
|
||||
rbx.platform.typedef.__uint_least32_t = uint
|
||||
rbx.platform.typedef.__uint_least64_t = ulong_long
|
||||
rbx.platform.typedef.__uint_least8_t = uchar
|
||||
rbx.platform.typedef.__uintfptr_t = uint
|
||||
rbx.platform.typedef.__uintmax_t = ulong_long
|
||||
rbx.platform.typedef.__uintptr_t = uint
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.__vm_offset_t = uint
|
||||
rbx.platform.typedef.__vm_ooffset_t = long_long
|
||||
rbx.platform.typedef.__vm_paddr_t = uint
|
||||
rbx.platform.typedef.__vm_pindex_t = ulong_long
|
||||
rbx.platform.typedef.__vm_size_t = uint
|
||||
rbx.platform.typedef.__wchar_t = int
|
||||
rbx.platform.typedef.__wint_t = int
|
||||
rbx.platform.typedef.__wint_t = int
|
||||
rbx.platform.typedef.accmode_t = int
|
||||
rbx.platform.typedef.blkcnt_t = long_long
|
||||
rbx.platform.typedef.blksize_t = uint
|
||||
rbx.platform.typedef.c_caddr_t = pointer
|
||||
rbx.platform.typedef.caddr_t = string
|
||||
rbx.platform.typedef.clock_t = ulong
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.cpulevel_t = int
|
||||
rbx.platform.typedef.cpumask_t = uint
|
||||
rbx.platform.typedef.cpusetid_t = int
|
||||
rbx.platform.typedef.cpuwhich_t = int
|
||||
rbx.platform.typedef.critical_t = int
|
||||
rbx.platform.typedef.daddr_t = long_long
|
||||
rbx.platform.typedef.dev_t = ulong_long
|
||||
rbx.platform.typedef.fd_mask = ulong
|
||||
rbx.platform.typedef.fflags_t = uint
|
||||
rbx.platform.typedef.fixpt_t = uint
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong_long
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong_long
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = long_long
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.in_port_t = ushort
|
||||
rbx.platform.typedef.ino_t = ulong_long
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.intptr_t = int
|
||||
rbx.platform.typedef.key_t = long
|
||||
rbx.platform.typedef.lwpid_t = int
|
||||
rbx.platform.typedef.mode_t = ushort
|
||||
rbx.platform.typedef.nlink_t = ulong_long
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = int
|
||||
rbx.platform.typedef.qaddr_t = pointer
|
||||
rbx.platform.typedef.quad_t = long_long
|
||||
rbx.platform.typedef.register_t = int
|
||||
rbx.platform.typedef.rlim_t = long_long
|
||||
rbx.platform.typedef.sa_family_t = uchar
|
||||
rbx.platform.typedef.segsz_t = int
|
||||
rbx.platform.typedef.size_t = uint
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = int
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.time_t = int
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong_long
|
||||
rbx.platform.typedef.u_register_t = uint
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint32_t = uint
|
||||
rbx.platform.typedef.uint64_t = ulong_long
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.uintptr_t = uint
|
||||
rbx.platform.typedef.useconds_t = uint
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
rbx.platform.typedef.vm_offset_t = uint
|
||||
rbx.platform.typedef.vm_ooffset_t = long_long
|
||||
rbx.platform.typedef.vm_paddr_t = uint
|
||||
rbx.platform.typedef.vm_pindex_t = ulong_long
|
||||
rbx.platform.typedef.vm_size_t = uint
|
||||
@@ -0,0 +1,107 @@
|
||||
rbx.platform.typedef.*__caddr_t = char
|
||||
rbx.platform.typedef.*__qaddr_t = long_long
|
||||
rbx.platform.typedef.__blkcnt64_t = long_long
|
||||
rbx.platform.typedef.__blkcnt_t = long
|
||||
rbx.platform.typedef.__blksize_t = long
|
||||
rbx.platform.typedef.__clock_t = long
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__daddr_t = int
|
||||
rbx.platform.typedef.__dev_t = uint
|
||||
rbx.platform.typedef.__fd_mask = long
|
||||
rbx.platform.typedef.__fsblkcnt64_t = ulong_long
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt64_t = ulong_long
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.__fsid_t = ulong_long
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__ino64_t = ulong_long
|
||||
rbx.platform.typedef.__ino_t = ulong
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long_long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__intptr_t = int
|
||||
rbx.platform.typedef.__key_t = int
|
||||
rbx.platform.typedef.__loff_t = long_long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = uint
|
||||
rbx.platform.typedef.__off64_t = long_long
|
||||
rbx.platform.typedef.__off_t = long
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__priority_which_t = int
|
||||
rbx.platform.typedef.__pthread_key = int
|
||||
rbx.platform.typedef.__pthread_t = int
|
||||
rbx.platform.typedef.__quad_t = long_long
|
||||
rbx.platform.typedef.__rlim64_t = ulong_long
|
||||
rbx.platform.typedef.__rlim_t = ulong
|
||||
rbx.platform.typedef.__rlimit_resource_t = int
|
||||
rbx.platform.typedef.__rusage_who_t = int
|
||||
rbx.platform.typedef.__sig_atomic_t = int
|
||||
rbx.platform.typedef.__sigset_t = ulong
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = int
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__swblk_t = long
|
||||
rbx.platform.typedef.__time_t = long
|
||||
rbx.platform.typedef.__timer_t = int
|
||||
rbx.platform.typedef.__u_char = uchar
|
||||
rbx.platform.typedef.__u_int = uint
|
||||
rbx.platform.typedef.__u_long = ulong
|
||||
rbx.platform.typedef.__u_quad_t = ulong_long
|
||||
rbx.platform.typedef.__u_short = ushort
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong_long
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.blkcnt_t = long_long
|
||||
rbx.platform.typedef.blksize_t = long
|
||||
rbx.platform.typedef.clock_t = long
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = uint
|
||||
rbx.platform.typedef.fd_mask = long
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong_long
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong_long
|
||||
rbx.platform.typedef.fsid_t = ulong_long
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.ino_t = ulong_long
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.loff_t = long_long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = uint
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = int
|
||||
rbx.platform.typedef.pthread_t = int
|
||||
rbx.platform.typedef.quad_t = long_long
|
||||
rbx.platform.typedef.register_t = long
|
||||
rbx.platform.typedef.rlim_t = ulong_long
|
||||
rbx.platform.typedef.sa_family_t = uchar
|
||||
rbx.platform.typedef.sigset_t = ulong
|
||||
rbx.platform.typedef.size_t = uint
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = int
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.timer_t = int
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong_long
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
@@ -0,0 +1,103 @@
|
||||
rbx.platform.typedef.*__caddr_t = char
|
||||
rbx.platform.typedef.*__qaddr_t = long_long
|
||||
rbx.platform.typedef.__blkcnt64_t = long_long
|
||||
rbx.platform.typedef.__blkcnt_t = long
|
||||
rbx.platform.typedef.__blksize_t = long
|
||||
rbx.platform.typedef.__clock_t = long
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__daddr_t = int
|
||||
rbx.platform.typedef.__dev_t = ulong_long
|
||||
rbx.platform.typedef.__fd_mask = long
|
||||
rbx.platform.typedef.__fsblkcnt64_t = ulong_long
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt64_t = ulong_long
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__ino64_t = ulong_long
|
||||
rbx.platform.typedef.__ino_t = ulong
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long_long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__intptr_t = int
|
||||
rbx.platform.typedef.__key_t = int
|
||||
rbx.platform.typedef.__loff_t = long_long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = uint
|
||||
rbx.platform.typedef.__off64_t = long_long
|
||||
rbx.platform.typedef.__off_t = long
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__priority_which_t = int
|
||||
rbx.platform.typedef.__quad_t = long_long
|
||||
rbx.platform.typedef.__rlim64_t = ulong_long
|
||||
rbx.platform.typedef.__rlim_t = ulong
|
||||
rbx.platform.typedef.__rlimit_resource_t = int
|
||||
rbx.platform.typedef.__rusage_who_t = int
|
||||
rbx.platform.typedef.__sig_atomic_t = int
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = int
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__swblk_t = long
|
||||
rbx.platform.typedef.__time_t = long
|
||||
rbx.platform.typedef.__timer_t = pointer
|
||||
rbx.platform.typedef.__u_char = uchar
|
||||
rbx.platform.typedef.__u_int = uint
|
||||
rbx.platform.typedef.__u_long = ulong
|
||||
rbx.platform.typedef.__u_quad_t = ulong_long
|
||||
rbx.platform.typedef.__u_short = ushort
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong_long
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.blkcnt_t = long_long
|
||||
rbx.platform.typedef.blksize_t = long
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = ulong_long
|
||||
rbx.platform.typedef.fd_mask = long
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong_long
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong_long
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.in_port_t = ushort
|
||||
rbx.platform.typedef.ino_t = ulong_long
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.loff_t = long_long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = uint
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = uint
|
||||
rbx.platform.typedef.pthread_once_t = int
|
||||
rbx.platform.typedef.pthread_t = ulong
|
||||
rbx.platform.typedef.quad_t = long_long
|
||||
rbx.platform.typedef.register_t = long
|
||||
rbx.platform.typedef.rlim_t = ulong_long
|
||||
rbx.platform.typedef.sa_family_t = ushort
|
||||
rbx.platform.typedef.size_t = uint
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = int
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.timer_t = pointer
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong_long
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
@@ -0,0 +1,126 @@
|
||||
rbx.platform.typedef.__clock_t = int
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__cpuid_t = ulong
|
||||
rbx.platform.typedef.__dev_t = int
|
||||
rbx.platform.typedef.__fd_mask = int
|
||||
rbx.platform.typedef.__fixpt_t = uint
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__in_addr_t = uint
|
||||
rbx.platform.typedef.__in_port_t = ushort
|
||||
rbx.platform.typedef.__ino_t = uint
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long_long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__int_fast16_t = int
|
||||
rbx.platform.typedef.__int_fast32_t = int
|
||||
rbx.platform.typedef.__int_fast64_t = long_long
|
||||
rbx.platform.typedef.__int_fast8_t = int
|
||||
rbx.platform.typedef.__int_least16_t = short
|
||||
rbx.platform.typedef.__int_least32_t = int
|
||||
rbx.platform.typedef.__int_least64_t = long_long
|
||||
rbx.platform.typedef.__int_least8_t = char
|
||||
rbx.platform.typedef.__intmax_t = long_long
|
||||
rbx.platform.typedef.__intptr_t = long
|
||||
rbx.platform.typedef.__key_t = long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = uint
|
||||
rbx.platform.typedef.__off_t = long_long
|
||||
rbx.platform.typedef.__paddr_t = ulong
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__psize_t = ulong
|
||||
rbx.platform.typedef.__ptrdiff_t = long
|
||||
rbx.platform.typedef.__register_t = int
|
||||
rbx.platform.typedef.__rlim_t = ulong_long
|
||||
rbx.platform.typedef.__rune_t = int
|
||||
rbx.platform.typedef.__sa_family_t = uchar
|
||||
rbx.platform.typedef.__segsz_t = int
|
||||
rbx.platform.typedef.__size_t = ulong
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = long
|
||||
rbx.platform.typedef.__suseconds_t = int
|
||||
rbx.platform.typedef.__swblk_t = int
|
||||
rbx.platform.typedef.__time_t = int
|
||||
rbx.platform.typedef.__timer_t = int
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong_long
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__uint_fast16_t = uint
|
||||
rbx.platform.typedef.__uint_fast32_t = uint
|
||||
rbx.platform.typedef.__uint_fast64_t = ulong_long
|
||||
rbx.platform.typedef.__uint_fast8_t = uint
|
||||
rbx.platform.typedef.__uint_least16_t = ushort
|
||||
rbx.platform.typedef.__uint_least32_t = uint
|
||||
rbx.platform.typedef.__uint_least64_t = ulong_long
|
||||
rbx.platform.typedef.__uint_least8_t = uchar
|
||||
rbx.platform.typedef.__uintmax_t = ulong_long
|
||||
rbx.platform.typedef.__uintptr_t = ulong
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.__vaddr_t = ulong
|
||||
rbx.platform.typedef.__vsize_t = ulong
|
||||
rbx.platform.typedef.__wchar_t = int
|
||||
rbx.platform.typedef.__wctrans_t = pointer
|
||||
rbx.platform.typedef.__wctype_t = pointer
|
||||
rbx.platform.typedef.__wint_t = int
|
||||
rbx.platform.typedef.caddr_t = string
|
||||
rbx.platform.typedef.clock_t = int
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.cpuid_t = ulong
|
||||
rbx.platform.typedef.daddr32_t = int
|
||||
rbx.platform.typedef.daddr64_t = long_long
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = int
|
||||
rbx.platform.typedef.fixpt_t = uint
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.in_port_t = ushort
|
||||
rbx.platform.typedef.ino_t = uint
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.key_t = long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = uint
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.paddr_t = ulong
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.psize_t = ulong
|
||||
rbx.platform.typedef.qaddr_t = pointer
|
||||
rbx.platform.typedef.quad_t = long_long
|
||||
rbx.platform.typedef.register_t = int
|
||||
rbx.platform.typedef.rlim_t = ulong_long
|
||||
rbx.platform.typedef.sa_family_t = uchar
|
||||
rbx.platform.typedef.segsz_t = int
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = long
|
||||
rbx.platform.typedef.suseconds_t = int
|
||||
rbx.platform.typedef.swblk_t = int
|
||||
rbx.platform.typedef.time_t = int
|
||||
rbx.platform.typedef.timer_t = int
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong_long
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint32_t = uint
|
||||
rbx.platform.typedef.uint64_t = ulong_long
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.unchar = uchar
|
||||
rbx.platform.typedef.useconds_t = uint
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
rbx.platform.typedef.vaddr_t = ulong
|
||||
rbx.platform.typedef.vsize_t = ulong
|
||||
@@ -0,0 +1,128 @@
|
||||
rbx.platform.typedef.__clock_t = int
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__cpuid_t = ulong
|
||||
rbx.platform.typedef.__dev_t = int
|
||||
rbx.platform.typedef.__fd_mask = int
|
||||
rbx.platform.typedef.__fixpt_t = uint
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__in_addr_t = uint
|
||||
rbx.platform.typedef.__in_port_t = ushort
|
||||
rbx.platform.typedef.__ino_t = uint
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long_long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__int_fast16_t = int
|
||||
rbx.platform.typedef.__int_fast32_t = int
|
||||
rbx.platform.typedef.__int_fast64_t = long_long
|
||||
rbx.platform.typedef.__int_fast8_t = int
|
||||
rbx.platform.typedef.__int_least16_t = short
|
||||
rbx.platform.typedef.__int_least32_t = int
|
||||
rbx.platform.typedef.__int_least64_t = long_long
|
||||
rbx.platform.typedef.__int_least8_t = char
|
||||
rbx.platform.typedef.__intmax_t = long_long
|
||||
rbx.platform.typedef.__intptr_t = long
|
||||
rbx.platform.typedef.__key_t = long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = uint
|
||||
rbx.platform.typedef.__off_t = long_long
|
||||
rbx.platform.typedef.__paddr_t = ulong
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__psize_t = ulong
|
||||
rbx.platform.typedef.__ptrdiff_t = long
|
||||
rbx.platform.typedef.__register_t = int
|
||||
rbx.platform.typedef.__rlim_t = ulong_long
|
||||
rbx.platform.typedef.__rune_t = int
|
||||
rbx.platform.typedef.__sa_family_t = uchar
|
||||
rbx.platform.typedef.__segsz_t = int
|
||||
rbx.platform.typedef.__size_t = ulong
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = long
|
||||
rbx.platform.typedef.__suseconds_t = int
|
||||
rbx.platform.typedef.__swblk_t = int
|
||||
rbx.platform.typedef.__time_t = int
|
||||
rbx.platform.typedef.__timer_t = int
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong_long
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__uint_fast16_t = uint
|
||||
rbx.platform.typedef.__uint_fast32_t = uint
|
||||
rbx.platform.typedef.__uint_fast64_t = ulong_long
|
||||
rbx.platform.typedef.__uint_fast8_t = uint
|
||||
rbx.platform.typedef.__uint_least16_t = ushort
|
||||
rbx.platform.typedef.__uint_least32_t = uint
|
||||
rbx.platform.typedef.__uint_least64_t = ulong_long
|
||||
rbx.platform.typedef.__uint_least8_t = uchar
|
||||
rbx.platform.typedef.__uintmax_t = ulong_long
|
||||
rbx.platform.typedef.__uintptr_t = ulong
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.__vaddr_t = ulong
|
||||
rbx.platform.typedef.__vsize_t = ulong
|
||||
rbx.platform.typedef.__wchar_t = int
|
||||
rbx.platform.typedef.__wctrans_t = pointer
|
||||
rbx.platform.typedef.__wctype_t = pointer
|
||||
rbx.platform.typedef.__wint_t = int
|
||||
rbx.platform.typedef.caddr_t = string
|
||||
rbx.platform.typedef.clock_t = int
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.cpuid_t = ulong
|
||||
rbx.platform.typedef.daddr32_t = int
|
||||
rbx.platform.typedef.daddr64_t = long_long
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = int
|
||||
rbx.platform.typedef.fixpt_t = uint
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.in_port_t = ushort
|
||||
rbx.platform.typedef.ino_t = uint
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.intptr_t = long
|
||||
rbx.platform.typedef.key_t = long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = uint
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.paddr_t = ulong
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.psize_t = ulong
|
||||
rbx.platform.typedef.qaddr_t = pointer
|
||||
rbx.platform.typedef.quad_t = long_long
|
||||
rbx.platform.typedef.register_t = int
|
||||
rbx.platform.typedef.rlim_t = ulong_long
|
||||
rbx.platform.typedef.sa_family_t = uchar
|
||||
rbx.platform.typedef.segsz_t = int
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = long
|
||||
rbx.platform.typedef.suseconds_t = int
|
||||
rbx.platform.typedef.swblk_t = int
|
||||
rbx.platform.typedef.time_t = int
|
||||
rbx.platform.typedef.timer_t = int
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong_long
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint32_t = uint
|
||||
rbx.platform.typedef.uint64_t = ulong_long
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.uintptr_t = ulong
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.unchar = uchar
|
||||
rbx.platform.typedef.useconds_t = uint
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
rbx.platform.typedef.vaddr_t = ulong
|
||||
rbx.platform.typedef.vsize_t = ulong
|
||||
@@ -0,0 +1,122 @@
|
||||
rbx.platform.typedef.*caddr_t = char
|
||||
rbx.platform.typedef.blkcnt64_t = long_long
|
||||
rbx.platform.typedef.blkcnt_t = long_long
|
||||
rbx.platform.typedef.blksize_t = long
|
||||
rbx.platform.typedef.clock_t = long
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.cnt_t = short
|
||||
rbx.platform.typedef.cpu_flag_t = ushort
|
||||
rbx.platform.typedef.ctid_t = long
|
||||
rbx.platform.typedef.daddr_t = long
|
||||
rbx.platform.typedef.datalink_id_t = uint
|
||||
rbx.platform.typedef.dev_t = ulong
|
||||
rbx.platform.typedef.diskaddr_t = ulong_long
|
||||
rbx.platform.typedef.disp_lock_t = uchar
|
||||
rbx.platform.typedef.fd_mask = long
|
||||
rbx.platform.typedef.fds_mask = long
|
||||
rbx.platform.typedef.fsblkcnt64_t = ulong_long
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong_long
|
||||
rbx.platform.typedef.fsfilcnt64_t = ulong_long
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong_long
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.hrtime_t = long_long
|
||||
rbx.platform.typedef.id_t = long
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.in_port_t = ushort
|
||||
rbx.platform.typedef.index_t = short
|
||||
rbx.platform.typedef.ino64_t = ulong_long
|
||||
rbx.platform.typedef.ino_t = ulong_long
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.int_fast16_t = int
|
||||
rbx.platform.typedef.int_fast32_t = int
|
||||
rbx.platform.typedef.int_fast64_t = long_long
|
||||
rbx.platform.typedef.int_fast8_t = char
|
||||
rbx.platform.typedef.int_least16_t = short
|
||||
rbx.platform.typedef.int_least32_t = int
|
||||
rbx.platform.typedef.int_least64_t = long_long
|
||||
rbx.platform.typedef.int_least8_t = char
|
||||
rbx.platform.typedef.intmax_t = long_long
|
||||
rbx.platform.typedef.intptr_t = int
|
||||
rbx.platform.typedef.ipaddr_t = uint
|
||||
rbx.platform.typedef.k_fltset_t = uint
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.len_t = ulong_long
|
||||
rbx.platform.typedef.lgrp_id_t = long
|
||||
rbx.platform.typedef.lock_t = uchar
|
||||
rbx.platform.typedef.longlong_t = long_long
|
||||
rbx.platform.typedef.major_t = ulong
|
||||
rbx.platform.typedef.minor_t = ulong
|
||||
rbx.platform.typedef.mode_t = ulong
|
||||
rbx.platform.typedef.model_t = uint
|
||||
rbx.platform.typedef.nfds_t = ulong
|
||||
rbx.platform.typedef.nlink_t = ulong
|
||||
rbx.platform.typedef.o_dev_t = short
|
||||
rbx.platform.typedef.o_gid_t = ushort
|
||||
rbx.platform.typedef.o_ino_t = ushort
|
||||
rbx.platform.typedef.o_mode_t = ushort
|
||||
rbx.platform.typedef.o_nlink_t = short
|
||||
rbx.platform.typedef.o_pid_t = short
|
||||
rbx.platform.typedef.o_uid_t = ushort
|
||||
rbx.platform.typedef.off64_t = long_long
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.offset_t = long_long
|
||||
rbx.platform.typedef.pad64_t = long_long
|
||||
rbx.platform.typedef.pfn_t = ulong
|
||||
rbx.platform.typedef.pgcnt_t = ulong
|
||||
rbx.platform.typedef.pid_t = long
|
||||
rbx.platform.typedef.poolid_t = long
|
||||
rbx.platform.typedef.pri_t = short
|
||||
rbx.platform.typedef.projid_t = long
|
||||
rbx.platform.typedef.pthread_key_t = uint
|
||||
rbx.platform.typedef.pthread_t = uint
|
||||
rbx.platform.typedef.ptrdiff_t = int
|
||||
rbx.platform.typedef.rlim64_t = ulong_long
|
||||
rbx.platform.typedef.rlim_t = ulong_long
|
||||
rbx.platform.typedef.sa_family_t = ushort
|
||||
rbx.platform.typedef.size_t = uint
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.spgcnt_t = long
|
||||
rbx.platform.typedef.ssize_t = int
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.sysid_t = short
|
||||
rbx.platform.typedef.t_scalar_t = long
|
||||
rbx.platform.typedef.t_uscalar_t = ulong
|
||||
rbx.platform.typedef.taskid_t = long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.timer_t = int
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_longlong_t = ulong_long
|
||||
rbx.platform.typedef.u_offset_t = ulong_long
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uchar_t = uchar
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint32_t = uint
|
||||
rbx.platform.typedef.uint64_t = ulong_long
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.uint_fast16_t = uint
|
||||
rbx.platform.typedef.uint_fast32_t = uint
|
||||
rbx.platform.typedef.uint_fast64_t = ulong_long
|
||||
rbx.platform.typedef.uint_fast8_t = uchar
|
||||
rbx.platform.typedef.uint_least16_t = ushort
|
||||
rbx.platform.typedef.uint_least32_t = uint
|
||||
rbx.platform.typedef.uint_least64_t = ulong_long
|
||||
rbx.platform.typedef.uint_least8_t = uchar
|
||||
rbx.platform.typedef.uint_t = uint
|
||||
rbx.platform.typedef.uintmax_t = ulong_long
|
||||
rbx.platform.typedef.uintptr_t = uint
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.ulong_t = ulong
|
||||
rbx.platform.typedef.unchar = uchar
|
||||
rbx.platform.typedef.upad64_t = ulong_long
|
||||
rbx.platform.typedef.use_t = uchar
|
||||
rbx.platform.typedef.useconds_t = uint
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
rbx.platform.typedef.ushort_t = ushort
|
||||
rbx.platform.typedef.zoneid_t = long
|
||||
@@ -0,0 +1,52 @@
|
||||
rbx.platform.typedef.__time32_t = long
|
||||
rbx.platform.typedef.__time64_t = long_long
|
||||
rbx.platform.typedef._dev_t = uint
|
||||
rbx.platform.typedef._ino_t = ushort
|
||||
rbx.platform.typedef._mode_t = ushort
|
||||
rbx.platform.typedef._off64_t = long_long
|
||||
rbx.platform.typedef._off_t = long
|
||||
rbx.platform.typedef._pid_t = int
|
||||
rbx.platform.typedef._sigset_t = ulong
|
||||
rbx.platform.typedef.dev_t = uint
|
||||
rbx.platform.typedef.errno_t = int
|
||||
rbx.platform.typedef.ino_t = ushort
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.int_fast16_t = short
|
||||
rbx.platform.typedef.int_fast32_t = int
|
||||
rbx.platform.typedef.int_fast64_t = long_long
|
||||
rbx.platform.typedef.int_fast8_t = char
|
||||
rbx.platform.typedef.int_least16_t = short
|
||||
rbx.platform.typedef.int_least32_t = int
|
||||
rbx.platform.typedef.int_least64_t = long_long
|
||||
rbx.platform.typedef.int_least8_t = char
|
||||
rbx.platform.typedef.intmax_t = long_long
|
||||
rbx.platform.typedef.intptr_t = int
|
||||
rbx.platform.typedef.mode_t = ushort
|
||||
rbx.platform.typedef.off32_t = long
|
||||
rbx.platform.typedef.off64_t = long_long
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.ptrdiff_t = int
|
||||
rbx.platform.typedef.rsize_t = uint
|
||||
rbx.platform.typedef.size_t = uint
|
||||
rbx.platform.typedef.ssize_t = int
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint64_t = ulong_long
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.uint_fast16_t = ushort
|
||||
rbx.platform.typedef.uint_fast32_t = uint
|
||||
rbx.platform.typedef.uint_fast64_t = ulong_long
|
||||
rbx.platform.typedef.uint_fast8_t = uchar
|
||||
rbx.platform.typedef.uint_least16_t = ushort
|
||||
rbx.platform.typedef.uint_least64_t = ulong_long
|
||||
rbx.platform.typedef.uint_least8_t = uchar
|
||||
rbx.platform.typedef.uintmax_t = ulong_long
|
||||
rbx.platform.typedef.uintptr_t = uint
|
||||
rbx.platform.typedef.useconds_t = uint
|
||||
rbx.platform.typedef.wchar_t = ushort
|
||||
rbx.platform.typedef.wctype_t = ushort
|
||||
rbx.platform.typedef.wint_t = ushort
|
||||
@@ -0,0 +1,104 @@
|
||||
rbx.platform.typedef.*__caddr_t = char
|
||||
rbx.platform.typedef.*__qaddr_t = long
|
||||
rbx.platform.typedef.__blkcnt64_t = long
|
||||
rbx.platform.typedef.__blkcnt_t = long
|
||||
rbx.platform.typedef.__blksize_t = long
|
||||
rbx.platform.typedef.__clock_t = long
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__daddr_t = int
|
||||
rbx.platform.typedef.__dev_t = ulong
|
||||
rbx.platform.typedef.__fd_mask = long
|
||||
rbx.platform.typedef.__fsblkcnt64_t = ulong
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt64_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__in_addr_t = uint
|
||||
rbx.platform.typedef.__in_port_t = ushort
|
||||
rbx.platform.typedef.__ino64_t = ulong
|
||||
rbx.platform.typedef.__ino_t = ulong
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__intptr_t = long
|
||||
rbx.platform.typedef.__key_t = int
|
||||
rbx.platform.typedef.__loff_t = long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = ulong
|
||||
rbx.platform.typedef.__off64_t = long
|
||||
rbx.platform.typedef.__off_t = long
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__priority_which_t = int
|
||||
rbx.platform.typedef.__quad_t = long
|
||||
rbx.platform.typedef.__rlim64_t = ulong
|
||||
rbx.platform.typedef.__rlim_t = ulong
|
||||
rbx.platform.typedef.__rlimit_resource_t = int
|
||||
rbx.platform.typedef.__rusage_who_t = int
|
||||
rbx.platform.typedef.__sig_atomic_t = int
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = long
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__swblk_t = long
|
||||
rbx.platform.typedef.__time_t = long
|
||||
rbx.platform.typedef.__timer_t = pointer
|
||||
rbx.platform.typedef.__u_char = uchar
|
||||
rbx.platform.typedef.__u_int = uint
|
||||
rbx.platform.typedef.__u_long = ulong
|
||||
rbx.platform.typedef.__u_quad_t = ulong
|
||||
rbx.platform.typedef.__u_short = ushort
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.blkcnt_t = long
|
||||
rbx.platform.typedef.blksize_t = long
|
||||
rbx.platform.typedef.clock_t = long
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = ulong
|
||||
rbx.platform.typedef.fd_mask = long
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.ino_t = ulong
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.loff_t = long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = ulong
|
||||
rbx.platform.typedef.off_t = long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = uint
|
||||
rbx.platform.typedef.pthread_once_t = int
|
||||
rbx.platform.typedef.pthread_t = ulong
|
||||
rbx.platform.typedef.quad_t = long
|
||||
rbx.platform.typedef.register_t = long
|
||||
rbx.platform.typedef.rlim_t = ulong
|
||||
rbx.platform.typedef.sa_family_t = ushort
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = long
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.timer_t = pointer
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
@@ -0,0 +1,141 @@
|
||||
rbx.platform.typedef.*__caddr_t = char
|
||||
rbx.platform.typedef.__blkcnt64_t = long
|
||||
rbx.platform.typedef.__blkcnt_t = long
|
||||
rbx.platform.typedef.__blksize_t = int
|
||||
rbx.platform.typedef.__clock_t = long
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__daddr_t = int
|
||||
rbx.platform.typedef.__dev_t = ulong
|
||||
rbx.platform.typedef.__fd_mask = long
|
||||
rbx.platform.typedef.__fsblkcnt64_t = ulong
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt64_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.__fsword_t = long
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__ino64_t = ulong
|
||||
rbx.platform.typedef.__ino_t = ulong
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__int_least16_t = short
|
||||
rbx.platform.typedef.__int_least32_t = int
|
||||
rbx.platform.typedef.__int_least64_t = long
|
||||
rbx.platform.typedef.__int_least8_t = char
|
||||
rbx.platform.typedef.__intmax_t = long
|
||||
rbx.platform.typedef.__intptr_t = long
|
||||
rbx.platform.typedef.__key_t = int
|
||||
rbx.platform.typedef.__loff_t = long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = uint
|
||||
rbx.platform.typedef.__off64_t = long
|
||||
rbx.platform.typedef.__off_t = long
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__priority_which_t = int
|
||||
rbx.platform.typedef.__quad_t = long
|
||||
rbx.platform.typedef.__rlim64_t = ulong
|
||||
rbx.platform.typedef.__rlim_t = ulong
|
||||
rbx.platform.typedef.__rlimit_resource_t = int
|
||||
rbx.platform.typedef.__rusage_who_t = int
|
||||
rbx.platform.typedef.__sig_atomic_t = int
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = long
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__syscall_slong_t = long
|
||||
rbx.platform.typedef.__syscall_ulong_t = ulong
|
||||
rbx.platform.typedef.__time_t = long
|
||||
rbx.platform.typedef.__timer_t = pointer
|
||||
rbx.platform.typedef.__u_char = uchar
|
||||
rbx.platform.typedef.__u_int = uint
|
||||
rbx.platform.typedef.__u_long = ulong
|
||||
rbx.platform.typedef.__u_quad_t = ulong
|
||||
rbx.platform.typedef.__u_short = ushort
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__uint_least16_t = ushort
|
||||
rbx.platform.typedef.__uint_least32_t = uint
|
||||
rbx.platform.typedef.__uint_least64_t = ulong
|
||||
rbx.platform.typedef.__uint_least8_t = uchar
|
||||
rbx.platform.typedef.__uintmax_t = ulong
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.blkcnt_t = long
|
||||
rbx.platform.typedef.blksize_t = int
|
||||
rbx.platform.typedef.clock_t = long
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = ulong
|
||||
rbx.platform.typedef.fd_mask = long
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.in_port_t = ushort
|
||||
rbx.platform.typedef.ino_t = ulong
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.int_fast16_t = long
|
||||
rbx.platform.typedef.int_fast32_t = long
|
||||
rbx.platform.typedef.int_fast64_t = long
|
||||
rbx.platform.typedef.int_fast8_t = char
|
||||
rbx.platform.typedef.int_least16_t = short
|
||||
rbx.platform.typedef.int_least32_t = int
|
||||
rbx.platform.typedef.int_least64_t = long
|
||||
rbx.platform.typedef.int_least8_t = char
|
||||
rbx.platform.typedef.intmax_t = long
|
||||
rbx.platform.typedef.intptr_t = long
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.loff_t = long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = uint
|
||||
rbx.platform.typedef.off_t = long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = uint
|
||||
rbx.platform.typedef.pthread_once_t = int
|
||||
rbx.platform.typedef.pthread_t = ulong
|
||||
rbx.platform.typedef.ptrdiff_t = long
|
||||
rbx.platform.typedef.quad_t = long
|
||||
rbx.platform.typedef.register_t = long
|
||||
rbx.platform.typedef.rlim_t = ulong
|
||||
rbx.platform.typedef.sa_family_t = ushort
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = long
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.timer_t = pointer
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint32_t = uint
|
||||
rbx.platform.typedef.uint64_t = ulong
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.uint_fast16_t = ulong
|
||||
rbx.platform.typedef.uint_fast32_t = ulong
|
||||
rbx.platform.typedef.uint_fast64_t = ulong
|
||||
rbx.platform.typedef.uint_fast8_t = uchar
|
||||
rbx.platform.typedef.uint_least16_t = ushort
|
||||
rbx.platform.typedef.uint_least32_t = uint
|
||||
rbx.platform.typedef.uint_least64_t = ulong
|
||||
rbx.platform.typedef.uint_least8_t = uchar
|
||||
rbx.platform.typedef.uintmax_t = ulong
|
||||
rbx.platform.typedef.uintptr_t = ulong
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
rbx.platform.typedef.wchar_t = int
|
||||
@@ -0,0 +1,102 @@
|
||||
rbx.platform.typedef.*__caddr_t = char
|
||||
rbx.platform.typedef.*__qaddr_t = long_long
|
||||
rbx.platform.typedef.__blkcnt64_t = long_long
|
||||
rbx.platform.typedef.__blkcnt_t = long
|
||||
rbx.platform.typedef.__blksize_t = long
|
||||
rbx.platform.typedef.__clock_t = long
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__daddr_t = int
|
||||
rbx.platform.typedef.__dev_t = ulong_long
|
||||
rbx.platform.typedef.__fd_mask = long
|
||||
rbx.platform.typedef.__fsblkcnt64_t = ulong_long
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt64_t = ulong_long
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__ino64_t = ulong_long
|
||||
rbx.platform.typedef.__ino_t = ulong
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long_long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__intptr_t = int
|
||||
rbx.platform.typedef.__key_t = int
|
||||
rbx.platform.typedef.__loff_t = long_long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = uint
|
||||
rbx.platform.typedef.__off64_t = long_long
|
||||
rbx.platform.typedef.__off_t = long
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__priority_which_t = int
|
||||
rbx.platform.typedef.__quad_t = long_long
|
||||
rbx.platform.typedef.__rlim64_t = ulong_long
|
||||
rbx.platform.typedef.__rlim_t = ulong
|
||||
rbx.platform.typedef.__rlimit_resource_t = int
|
||||
rbx.platform.typedef.__rusage_who_t = int
|
||||
rbx.platform.typedef.__sig_atomic_t = int
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = int
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__swblk_t = long
|
||||
rbx.platform.typedef.__time_t = long
|
||||
rbx.platform.typedef.__timer_t = pointer
|
||||
rbx.platform.typedef.__u_char = uchar
|
||||
rbx.platform.typedef.__u_int = uint
|
||||
rbx.platform.typedef.__u_long = ulong
|
||||
rbx.platform.typedef.__u_quad_t = ulong_long
|
||||
rbx.platform.typedef.__u_short = ushort
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong_long
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.blkcnt_t = long_long
|
||||
rbx.platform.typedef.blksize_t = long
|
||||
rbx.platform.typedef.clock_t = long
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = ulong_long
|
||||
rbx.platform.typedef.fd_mask = long
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong_long
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong_long
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.ino_t = ulong_long
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.loff_t = long_long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = uint
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = uint
|
||||
rbx.platform.typedef.pthread_once_t = int
|
||||
rbx.platform.typedef.pthread_t = ulong
|
||||
rbx.platform.typedef.quad_t = long_long
|
||||
rbx.platform.typedef.register_t = long
|
||||
rbx.platform.typedef.rlim_t = ulong_long
|
||||
rbx.platform.typedef.sa_family_t = ushort
|
||||
rbx.platform.typedef.size_t = uint
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = int
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.timer_t = pointer
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong_long
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
@@ -0,0 +1,104 @@
|
||||
rbx.platform.typedef.*__caddr_t = char
|
||||
rbx.platform.typedef.*__qaddr_t = long
|
||||
rbx.platform.typedef.__blkcnt64_t = long
|
||||
rbx.platform.typedef.__blkcnt_t = long
|
||||
rbx.platform.typedef.__blksize_t = long
|
||||
rbx.platform.typedef.__clock_t = long
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__daddr_t = int
|
||||
rbx.platform.typedef.__dev_t = ulong
|
||||
rbx.platform.typedef.__fd_mask = long
|
||||
rbx.platform.typedef.__fsblkcnt64_t = ulong
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt64_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.__fsword_t = long
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__ino64_t = ulong
|
||||
rbx.platform.typedef.__ino_t = ulong
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__intptr_t = long
|
||||
rbx.platform.typedef.__key_t = int
|
||||
rbx.platform.typedef.__loff_t = long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = ulong
|
||||
rbx.platform.typedef.__off64_t = long
|
||||
rbx.platform.typedef.__off_t = long
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__priority_which_t = int
|
||||
rbx.platform.typedef.__quad_t = long
|
||||
rbx.platform.typedef.__rlim64_t = ulong
|
||||
rbx.platform.typedef.__rlim_t = ulong
|
||||
rbx.platform.typedef.__rlimit_resource_t = int
|
||||
rbx.platform.typedef.__rusage_who_t = int
|
||||
rbx.platform.typedef.__sig_atomic_t = int
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = long
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__syscall_slong_t = long
|
||||
rbx.platform.typedef.__syscall_ulong_t = ulong
|
||||
rbx.platform.typedef.__time_t = long
|
||||
rbx.platform.typedef.__timer_t = pointer
|
||||
rbx.platform.typedef.__u_char = uchar
|
||||
rbx.platform.typedef.__u_int = uint
|
||||
rbx.platform.typedef.__u_long = ulong
|
||||
rbx.platform.typedef.__u_quad_t = ulong
|
||||
rbx.platform.typedef.__u_short = ushort
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.blkcnt_t = long
|
||||
rbx.platform.typedef.blksize_t = long
|
||||
rbx.platform.typedef.clock_t = long
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = ulong
|
||||
rbx.platform.typedef.fd_mask = long
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.ino_t = ulong
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.loff_t = long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = ulong
|
||||
rbx.platform.typedef.off_t = long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = uint
|
||||
rbx.platform.typedef.pthread_once_t = int
|
||||
rbx.platform.typedef.pthread_t = ulong
|
||||
rbx.platform.typedef.quad_t = long
|
||||
rbx.platform.typedef.register_t = long
|
||||
rbx.platform.typedef.rlim_t = ulong
|
||||
rbx.platform.typedef.sa_family_t = ushort
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = long
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.timer_t = pointer
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
@@ -0,0 +1,104 @@
|
||||
rbx.platform.typedef.*__caddr_t = char
|
||||
rbx.platform.typedef.*__qaddr_t = long
|
||||
rbx.platform.typedef.__blkcnt64_t = long
|
||||
rbx.platform.typedef.__blkcnt_t = long
|
||||
rbx.platform.typedef.__blksize_t = long
|
||||
rbx.platform.typedef.__clock_t = long
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__daddr_t = int
|
||||
rbx.platform.typedef.__dev_t = ulong
|
||||
rbx.platform.typedef.__fd_mask = long
|
||||
rbx.platform.typedef.__fsblkcnt64_t = ulong
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt64_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.__fsword_t = long
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__ino64_t = ulong
|
||||
rbx.platform.typedef.__ino_t = ulong
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__intptr_t = long
|
||||
rbx.platform.typedef.__key_t = int
|
||||
rbx.platform.typedef.__loff_t = long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = ulong
|
||||
rbx.platform.typedef.__off64_t = long
|
||||
rbx.platform.typedef.__off_t = long
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__priority_which_t = int
|
||||
rbx.platform.typedef.__quad_t = long
|
||||
rbx.platform.typedef.__rlim64_t = ulong
|
||||
rbx.platform.typedef.__rlim_t = ulong
|
||||
rbx.platform.typedef.__rlimit_resource_t = int
|
||||
rbx.platform.typedef.__rusage_who_t = int
|
||||
rbx.platform.typedef.__sig_atomic_t = int
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = long
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__syscall_slong_t = long
|
||||
rbx.platform.typedef.__syscall_ulong_t = ulong
|
||||
rbx.platform.typedef.__time_t = long
|
||||
rbx.platform.typedef.__timer_t = pointer
|
||||
rbx.platform.typedef.__u_char = uchar
|
||||
rbx.platform.typedef.__u_int = uint
|
||||
rbx.platform.typedef.__u_long = ulong
|
||||
rbx.platform.typedef.__u_quad_t = ulong
|
||||
rbx.platform.typedef.__u_short = ushort
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.blkcnt_t = long
|
||||
rbx.platform.typedef.blksize_t = long
|
||||
rbx.platform.typedef.clock_t = long
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = ulong
|
||||
rbx.platform.typedef.fd_mask = long
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.ino_t = ulong
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.loff_t = long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = ulong
|
||||
rbx.platform.typedef.off_t = long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = uint
|
||||
rbx.platform.typedef.pthread_once_t = int
|
||||
rbx.platform.typedef.pthread_t = ulong
|
||||
rbx.platform.typedef.quad_t = long
|
||||
rbx.platform.typedef.register_t = long
|
||||
rbx.platform.typedef.rlim_t = ulong
|
||||
rbx.platform.typedef.sa_family_t = ushort
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = long
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.timer_t = pointer
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
@@ -0,0 +1,102 @@
|
||||
rbx.platform.typedef.*__caddr_t = char
|
||||
rbx.platform.typedef.*__qaddr_t = long_long
|
||||
rbx.platform.typedef.__blkcnt64_t = long_long
|
||||
rbx.platform.typedef.__blkcnt_t = long
|
||||
rbx.platform.typedef.__blksize_t = long
|
||||
rbx.platform.typedef.__clock_t = long
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__daddr_t = int
|
||||
rbx.platform.typedef.__dev_t = ulong_long
|
||||
rbx.platform.typedef.__fd_mask = long
|
||||
rbx.platform.typedef.__fsblkcnt64_t = ulong_long
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt64_t = ulong_long
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__ino64_t = ulong_long
|
||||
rbx.platform.typedef.__ino_t = ulong
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long_long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__intptr_t = int
|
||||
rbx.platform.typedef.__key_t = int
|
||||
rbx.platform.typedef.__loff_t = long_long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = uint
|
||||
rbx.platform.typedef.__off64_t = long_long
|
||||
rbx.platform.typedef.__off_t = long
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__priority_which_t = int
|
||||
rbx.platform.typedef.__quad_t = long_long
|
||||
rbx.platform.typedef.__rlim64_t = ulong_long
|
||||
rbx.platform.typedef.__rlim_t = ulong
|
||||
rbx.platform.typedef.__rlimit_resource_t = int
|
||||
rbx.platform.typedef.__rusage_who_t = int
|
||||
rbx.platform.typedef.__sig_atomic_t = int
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = int
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__swblk_t = long
|
||||
rbx.platform.typedef.__time_t = long
|
||||
rbx.platform.typedef.__timer_t = pointer
|
||||
rbx.platform.typedef.__u_char = uchar
|
||||
rbx.platform.typedef.__u_int = uint
|
||||
rbx.platform.typedef.__u_long = ulong
|
||||
rbx.platform.typedef.__u_quad_t = ulong_long
|
||||
rbx.platform.typedef.__u_short = ushort
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong_long
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.blkcnt_t = long_long
|
||||
rbx.platform.typedef.blksize_t = long
|
||||
rbx.platform.typedef.clock_t = long
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = ulong_long
|
||||
rbx.platform.typedef.fd_mask = long
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong_long
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong_long
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.ino_t = ulong_long
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.loff_t = long_long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = uint
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = uint
|
||||
rbx.platform.typedef.pthread_once_t = int
|
||||
rbx.platform.typedef.pthread_t = ulong
|
||||
rbx.platform.typedef.quad_t = long_long
|
||||
rbx.platform.typedef.register_t = long
|
||||
rbx.platform.typedef.rlim_t = ulong_long
|
||||
rbx.platform.typedef.sa_family_t = ushort
|
||||
rbx.platform.typedef.size_t = uint
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = int
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.timer_t = pointer
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong_long
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
@@ -0,0 +1,102 @@
|
||||
rbx.platform.typedef.*__caddr_t = char
|
||||
rbx.platform.typedef.*__qaddr_t = long_long
|
||||
rbx.platform.typedef.__blkcnt64_t = long_long
|
||||
rbx.platform.typedef.__blkcnt_t = long
|
||||
rbx.platform.typedef.__blksize_t = long
|
||||
rbx.platform.typedef.__clock_t = long
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__daddr_t = int
|
||||
rbx.platform.typedef.__dev_t = ulong_long
|
||||
rbx.platform.typedef.__fd_mask = long
|
||||
rbx.platform.typedef.__fsblkcnt64_t = ulong_long
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt64_t = ulong_long
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__ino64_t = ulong_long
|
||||
rbx.platform.typedef.__ino_t = ulong
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long_long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__intptr_t = int
|
||||
rbx.platform.typedef.__key_t = int
|
||||
rbx.platform.typedef.__loff_t = long_long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = uint
|
||||
rbx.platform.typedef.__off64_t = long_long
|
||||
rbx.platform.typedef.__off_t = long
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__priority_which_t = int
|
||||
rbx.platform.typedef.__quad_t = long_long
|
||||
rbx.platform.typedef.__rlim64_t = ulong_long
|
||||
rbx.platform.typedef.__rlim_t = ulong
|
||||
rbx.platform.typedef.__rlimit_resource_t = int
|
||||
rbx.platform.typedef.__rusage_who_t = int
|
||||
rbx.platform.typedef.__sig_atomic_t = int
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = int
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__swblk_t = long
|
||||
rbx.platform.typedef.__time_t = long
|
||||
rbx.platform.typedef.__timer_t = pointer
|
||||
rbx.platform.typedef.__u_char = uchar
|
||||
rbx.platform.typedef.__u_int = uint
|
||||
rbx.platform.typedef.__u_long = ulong
|
||||
rbx.platform.typedef.__u_quad_t = ulong_long
|
||||
rbx.platform.typedef.__u_short = ushort
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong_long
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.blkcnt_t = long_long
|
||||
rbx.platform.typedef.blksize_t = long
|
||||
rbx.platform.typedef.clock_t = long
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = ulong_long
|
||||
rbx.platform.typedef.fd_mask = long
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong_long
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong_long
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.ino_t = ulong_long
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.loff_t = long_long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = uint
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = uint
|
||||
rbx.platform.typedef.pthread_once_t = int
|
||||
rbx.platform.typedef.pthread_t = ulong
|
||||
rbx.platform.typedef.quad_t = long_long
|
||||
rbx.platform.typedef.register_t = long
|
||||
rbx.platform.typedef.rlim_t = ulong_long
|
||||
rbx.platform.typedef.sa_family_t = ushort
|
||||
rbx.platform.typedef.size_t = uint
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = int
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.timer_t = pointer
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong_long
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
@@ -0,0 +1,102 @@
|
||||
rbx.platform.typedef.*__caddr_t = char
|
||||
rbx.platform.typedef.*__qaddr_t = long_long
|
||||
rbx.platform.typedef.__blkcnt64_t = long_long
|
||||
rbx.platform.typedef.__blkcnt_t = long
|
||||
rbx.platform.typedef.__blksize_t = long
|
||||
rbx.platform.typedef.__clock_t = long
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__daddr_t = int
|
||||
rbx.platform.typedef.__dev_t = ulong_long
|
||||
rbx.platform.typedef.__fd_mask = long
|
||||
rbx.platform.typedef.__fsblkcnt64_t = ulong_long
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt64_t = ulong_long
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__ino64_t = ulong_long
|
||||
rbx.platform.typedef.__ino_t = ulong
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long_long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__intptr_t = int
|
||||
rbx.platform.typedef.__key_t = int
|
||||
rbx.platform.typedef.__loff_t = long_long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = uint
|
||||
rbx.platform.typedef.__off64_t = long_long
|
||||
rbx.platform.typedef.__off_t = long
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__priority_which_t = int
|
||||
rbx.platform.typedef.__quad_t = long_long
|
||||
rbx.platform.typedef.__rlim64_t = ulong_long
|
||||
rbx.platform.typedef.__rlim_t = ulong
|
||||
rbx.platform.typedef.__rlimit_resource_t = int
|
||||
rbx.platform.typedef.__rusage_who_t = int
|
||||
rbx.platform.typedef.__sig_atomic_t = int
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = int
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__swblk_t = long
|
||||
rbx.platform.typedef.__time_t = long
|
||||
rbx.platform.typedef.__timer_t = pointer
|
||||
rbx.platform.typedef.__u_char = uchar
|
||||
rbx.platform.typedef.__u_int = uint
|
||||
rbx.platform.typedef.__u_long = ulong
|
||||
rbx.platform.typedef.__u_quad_t = ulong_long
|
||||
rbx.platform.typedef.__u_short = ushort
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong_long
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.blkcnt_t = long_long
|
||||
rbx.platform.typedef.blksize_t = long
|
||||
rbx.platform.typedef.clock_t = long
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = ulong_long
|
||||
rbx.platform.typedef.fd_mask = long
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong_long
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong_long
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.ino_t = ulong_long
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.loff_t = long_long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = uint
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = uint
|
||||
rbx.platform.typedef.pthread_once_t = int
|
||||
rbx.platform.typedef.pthread_t = ulong
|
||||
rbx.platform.typedef.quad_t = long_long
|
||||
rbx.platform.typedef.register_t = long
|
||||
rbx.platform.typedef.rlim_t = ulong_long
|
||||
rbx.platform.typedef.sa_family_t = ushort
|
||||
rbx.platform.typedef.size_t = uint
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = int
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.timer_t = pointer
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong_long
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
@@ -0,0 +1,104 @@
|
||||
rbx.platform.typedef.*__caddr_t = char
|
||||
rbx.platform.typedef.*__qaddr_t = long
|
||||
rbx.platform.typedef.__blkcnt64_t = long
|
||||
rbx.platform.typedef.__blkcnt_t = long
|
||||
rbx.platform.typedef.__blksize_t = long
|
||||
rbx.platform.typedef.__clock_t = long
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__daddr_t = int
|
||||
rbx.platform.typedef.__dev_t = ulong
|
||||
rbx.platform.typedef.__fd_mask = long
|
||||
rbx.platform.typedef.__fsblkcnt64_t = ulong
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt64_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.__fsword_t = long
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__ino64_t = ulong
|
||||
rbx.platform.typedef.__ino_t = ulong
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__intptr_t = long
|
||||
rbx.platform.typedef.__key_t = int
|
||||
rbx.platform.typedef.__loff_t = long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = ulong
|
||||
rbx.platform.typedef.__off64_t = long
|
||||
rbx.platform.typedef.__off_t = long
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__priority_which_t = int
|
||||
rbx.platform.typedef.__quad_t = long
|
||||
rbx.platform.typedef.__rlim64_t = ulong
|
||||
rbx.platform.typedef.__rlim_t = ulong
|
||||
rbx.platform.typedef.__rlimit_resource_t = int
|
||||
rbx.platform.typedef.__rusage_who_t = int
|
||||
rbx.platform.typedef.__sig_atomic_t = int
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = long
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__syscall_slong_t = long
|
||||
rbx.platform.typedef.__syscall_ulong_t = ulong
|
||||
rbx.platform.typedef.__time_t = long
|
||||
rbx.platform.typedef.__timer_t = pointer
|
||||
rbx.platform.typedef.__u_char = uchar
|
||||
rbx.platform.typedef.__u_int = uint
|
||||
rbx.platform.typedef.__u_long = ulong
|
||||
rbx.platform.typedef.__u_quad_t = ulong
|
||||
rbx.platform.typedef.__u_short = ushort
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.blkcnt_t = long
|
||||
rbx.platform.typedef.blksize_t = long
|
||||
rbx.platform.typedef.clock_t = long
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = ulong
|
||||
rbx.platform.typedef.fd_mask = long
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.ino_t = ulong
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.loff_t = long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = ulong
|
||||
rbx.platform.typedef.off_t = long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = uint
|
||||
rbx.platform.typedef.pthread_once_t = int
|
||||
rbx.platform.typedef.pthread_t = ulong
|
||||
rbx.platform.typedef.quad_t = long
|
||||
rbx.platform.typedef.register_t = long
|
||||
rbx.platform.typedef.rlim_t = ulong
|
||||
rbx.platform.typedef.sa_family_t = ushort
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = long
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.timer_t = pointer
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
@@ -0,0 +1,104 @@
|
||||
rbx.platform.typedef.*__caddr_t = char
|
||||
rbx.platform.typedef.*__qaddr_t = long
|
||||
rbx.platform.typedef.__blkcnt64_t = long
|
||||
rbx.platform.typedef.__blkcnt_t = long
|
||||
rbx.platform.typedef.__blksize_t = long
|
||||
rbx.platform.typedef.__clock_t = long
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__daddr_t = int
|
||||
rbx.platform.typedef.__dev_t = ulong
|
||||
rbx.platform.typedef.__fd_mask = long
|
||||
rbx.platform.typedef.__fsblkcnt64_t = ulong
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt64_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.__fsword_t = long
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__ino64_t = ulong
|
||||
rbx.platform.typedef.__ino_t = ulong
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__intptr_t = long
|
||||
rbx.platform.typedef.__key_t = int
|
||||
rbx.platform.typedef.__loff_t = long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = ulong
|
||||
rbx.platform.typedef.__off64_t = long
|
||||
rbx.platform.typedef.__off_t = long
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__priority_which_t = int
|
||||
rbx.platform.typedef.__quad_t = long
|
||||
rbx.platform.typedef.__rlim64_t = ulong
|
||||
rbx.platform.typedef.__rlim_t = ulong
|
||||
rbx.platform.typedef.__rlimit_resource_t = int
|
||||
rbx.platform.typedef.__rusage_who_t = int
|
||||
rbx.platform.typedef.__sig_atomic_t = int
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = long
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__syscall_slong_t = long
|
||||
rbx.platform.typedef.__syscall_ulong_t = ulong
|
||||
rbx.platform.typedef.__time_t = long
|
||||
rbx.platform.typedef.__timer_t = pointer
|
||||
rbx.platform.typedef.__u_char = uchar
|
||||
rbx.platform.typedef.__u_int = uint
|
||||
rbx.platform.typedef.__u_long = ulong
|
||||
rbx.platform.typedef.__u_quad_t = ulong
|
||||
rbx.platform.typedef.__u_short = ushort
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.blkcnt_t = long
|
||||
rbx.platform.typedef.blksize_t = long
|
||||
rbx.platform.typedef.clock_t = long
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = ulong
|
||||
rbx.platform.typedef.fd_mask = long
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.ino_t = ulong
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.loff_t = long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = ulong
|
||||
rbx.platform.typedef.off_t = long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = uint
|
||||
rbx.platform.typedef.pthread_once_t = int
|
||||
rbx.platform.typedef.pthread_t = ulong
|
||||
rbx.platform.typedef.quad_t = long
|
||||
rbx.platform.typedef.register_t = long
|
||||
rbx.platform.typedef.rlim_t = ulong
|
||||
rbx.platform.typedef.sa_family_t = ushort
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = long
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.timer_t = pointer
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
@@ -0,0 +1,180 @@
|
||||
rbx.platform.typedef.UTF32Char = uint
|
||||
rbx.platform.typedef.UniChar = ushort
|
||||
rbx.platform.typedef.__cptr32 = string
|
||||
rbx.platform.typedef.__cptr64 = ulong_long
|
||||
rbx.platform.typedef.__long32_t = long
|
||||
rbx.platform.typedef.__long64_t = int
|
||||
rbx.platform.typedef.__ptr32 = pointer
|
||||
rbx.platform.typedef.__ptr64 = ulong_long
|
||||
rbx.platform.typedef.__ulong32_t = ulong
|
||||
rbx.platform.typedef.__ulong64_t = uint
|
||||
rbx.platform.typedef.aptx_t = ushort
|
||||
rbx.platform.typedef.blkcnt32_t = int
|
||||
rbx.platform.typedef.blkcnt64_t = ulong_long
|
||||
rbx.platform.typedef.blkcnt_t = int
|
||||
rbx.platform.typedef.blksize32_t = int
|
||||
rbx.platform.typedef.blksize64_t = ulong_long
|
||||
rbx.platform.typedef.blksize_t = int
|
||||
rbx.platform.typedef.boolean_t = int
|
||||
rbx.platform.typedef.caddr_t = string
|
||||
rbx.platform.typedef.chan_t = int
|
||||
rbx.platform.typedef.class_id_t = uint
|
||||
rbx.platform.typedef.clock_t = int
|
||||
rbx.platform.typedef.clockid_t = long_long
|
||||
rbx.platform.typedef.cnt64_t = long_long
|
||||
rbx.platform.typedef.cnt_t = short
|
||||
rbx.platform.typedef.crid_t = int
|
||||
rbx.platform.typedef.daddr32_t = int
|
||||
rbx.platform.typedef.daddr64_t = long_long
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev32_t = uint
|
||||
rbx.platform.typedef.dev64_t = ulong_long
|
||||
rbx.platform.typedef.dev_t = uint
|
||||
rbx.platform.typedef.esid_t = uint
|
||||
rbx.platform.typedef.ext_t = int
|
||||
rbx.platform.typedef.fpos64_t = long_long
|
||||
rbx.platform.typedef.fpos_t = long
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.ino32_t = uint
|
||||
rbx.platform.typedef.ino64_t = ulong_long
|
||||
rbx.platform.typedef.ino_t = uint
|
||||
rbx.platform.typedef.int16 = short
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32 = int
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int32long64_t = int
|
||||
rbx.platform.typedef.int64 = long_long
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8 = char
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.int_fast16_t = short
|
||||
rbx.platform.typedef.int_fast32_t = int
|
||||
rbx.platform.typedef.int_fast64_t = long_long
|
||||
rbx.platform.typedef.int_fast8_t = char
|
||||
rbx.platform.typedef.int_least16_t = short
|
||||
rbx.platform.typedef.int_least32_t = int
|
||||
rbx.platform.typedef.int_least64_t = long_long
|
||||
rbx.platform.typedef.int_least8_t = char
|
||||
rbx.platform.typedef.intfast_t = int
|
||||
rbx.platform.typedef.intmax_t = long_long
|
||||
rbx.platform.typedef.intptr_t = long
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.krpn_t = int
|
||||
rbx.platform.typedef.kvmhandle_t = ulong
|
||||
rbx.platform.typedef.kvmid_t = long
|
||||
rbx.platform.typedef.kvpn_t = int
|
||||
rbx.platform.typedef.level_t = int
|
||||
rbx.platform.typedef.liobn_t = uint
|
||||
rbx.platform.typedef.long32int64_t = long
|
||||
rbx.platform.typedef.longlong_t = long_long
|
||||
rbx.platform.typedef.mid_t = pointer
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.mtyp_t = long
|
||||
rbx.platform.typedef.nlink_t = short
|
||||
rbx.platform.typedef.off64_t = long_long
|
||||
rbx.platform.typedef.off_t = long
|
||||
rbx.platform.typedef.offset_t = long_long
|
||||
rbx.platform.typedef.paddr_t = long
|
||||
rbx.platform.typedef.pdtx_t = int
|
||||
rbx.platform.typedef.pid32_t = int
|
||||
rbx.platform.typedef.pid64_t = ulong_long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pshift_t = ushort
|
||||
rbx.platform.typedef.psize_t = long_long
|
||||
rbx.platform.typedef.psx_t = short
|
||||
rbx.platform.typedef.ptex_t = ulong
|
||||
rbx.platform.typedef.pthread_key_t = uint
|
||||
rbx.platform.typedef.pthread_t = uint
|
||||
rbx.platform.typedef.ptrdiff_t = long
|
||||
rbx.platform.typedef.rlim64_t = ulong_long
|
||||
rbx.platform.typedef.rlim_t = ulong
|
||||
rbx.platform.typedef.rpn64_t = long_long
|
||||
rbx.platform.typedef.rpn_t = int
|
||||
rbx.platform.typedef.sa_family_t = uchar
|
||||
rbx.platform.typedef.signal_t = int
|
||||
rbx.platform.typedef.size64_t = ulong_long
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.slab_t[12] = char
|
||||
rbx.platform.typedef.snidx_t = int
|
||||
rbx.platform.typedef.socklen_t = ulong
|
||||
rbx.platform.typedef.soff_t = int
|
||||
rbx.platform.typedef.sshift_t = ushort
|
||||
rbx.platform.typedef.ssize64_t = long_long
|
||||
rbx.platform.typedef.ssize_t = long
|
||||
rbx.platform.typedef.suseconds_t = int
|
||||
rbx.platform.typedef.swblk_t = int
|
||||
rbx.platform.typedef.swhatx_t = ulong
|
||||
rbx.platform.typedef.tid32_t = int
|
||||
rbx.platform.typedef.tid64_t = ulong_long
|
||||
rbx.platform.typedef.tid_t = int
|
||||
rbx.platform.typedef.time32_t = int
|
||||
rbx.platform.typedef.time64_t = long_long
|
||||
rbx.platform.typedef.time_t = int
|
||||
rbx.platform.typedef.timer32_t = int
|
||||
rbx.platform.typedef.timer64_t = long_long
|
||||
rbx.platform.typedef.timer_t = int
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16 = ushort
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32 = uint
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64 = ulong_long
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8 = uchar
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_longlong_t = ulong_long
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uchar = uchar
|
||||
rbx.platform.typedef.uchar_t = uchar
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint32_t = uint
|
||||
rbx.platform.typedef.uint32long64_t = uint
|
||||
rbx.platform.typedef.uint64_t = ulong_long
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.uint_fast16_t = ushort
|
||||
rbx.platform.typedef.uint_fast32_t = uint
|
||||
rbx.platform.typedef.uint_fast64_t = ulong_long
|
||||
rbx.platform.typedef.uint_fast8_t = uchar
|
||||
rbx.platform.typedef.uint_least16_t = ushort
|
||||
rbx.platform.typedef.uint_least32_t = uint
|
||||
rbx.platform.typedef.uint_least64_t = ulong_long
|
||||
rbx.platform.typedef.uint_least8_t = uchar
|
||||
rbx.platform.typedef.uint_t = uint
|
||||
rbx.platform.typedef.uintfast_t = uint
|
||||
rbx.platform.typedef.uintmax_t = ulong_long
|
||||
rbx.platform.typedef.uintptr_t = ulong
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.ulong32int64_t = ulong
|
||||
rbx.platform.typedef.ulong_t = ulong
|
||||
rbx.platform.typedef.unidx_t = int
|
||||
rbx.platform.typedef.unit_addr_t = ulong_long
|
||||
rbx.platform.typedef.ureg_t = ulong
|
||||
rbx.platform.typedef.useconds_t = uint
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
rbx.platform.typedef.ushort_t = ushort
|
||||
rbx.platform.typedef.va_list = string
|
||||
rbx.platform.typedef.vmfkey_t = uint
|
||||
rbx.platform.typedef.vmhandle32_t = uint
|
||||
rbx.platform.typedef.vmhandle_t = ulong
|
||||
rbx.platform.typedef.vmhwkey_t = int
|
||||
rbx.platform.typedef.vmid32_t = int
|
||||
rbx.platform.typedef.vmid64_t = long_long
|
||||
rbx.platform.typedef.vmid_t = long
|
||||
rbx.platform.typedef.vmidx_t = int
|
||||
rbx.platform.typedef.vmkey_t = int
|
||||
rbx.platform.typedef.vmlpghandle_t = ulong
|
||||
rbx.platform.typedef.vmm_lock_t = int
|
||||
rbx.platform.typedef.vmnodeidx_t = int
|
||||
rbx.platform.typedef.vmprkey_t = uint
|
||||
rbx.platform.typedef.vmsize_t = int
|
||||
rbx.platform.typedef.vpn_t = int
|
||||
rbx.platform.typedef.wchar_t = ushort
|
||||
rbx.platform.typedef.wctype_t = uint
|
||||
rbx.platform.typedef.wint_t = int
|
||||
@@ -0,0 +1,100 @@
|
||||
rbx.platform.typedef.__darwin_blkcnt_t = long_long
|
||||
rbx.platform.typedef.__darwin_blksize_t = int
|
||||
rbx.platform.typedef.__darwin_clock_t = ulong
|
||||
rbx.platform.typedef.__darwin_ct_rune_t = int
|
||||
rbx.platform.typedef.__darwin_dev_t = int
|
||||
rbx.platform.typedef.__darwin_fsblkcnt_t = uint
|
||||
rbx.platform.typedef.__darwin_fsfilcnt_t = uint
|
||||
rbx.platform.typedef.__darwin_gid_t = uint
|
||||
rbx.platform.typedef.__darwin_id_t = uint
|
||||
rbx.platform.typedef.__darwin_ino64_t = ulong_long
|
||||
rbx.platform.typedef.__darwin_ino_t = ulong_long
|
||||
rbx.platform.typedef.__darwin_intptr_t = long
|
||||
rbx.platform.typedef.__darwin_mach_port_name_t = uint
|
||||
rbx.platform.typedef.__darwin_mach_port_t = uint
|
||||
rbx.platform.typedef.__darwin_mode_t = ushort
|
||||
rbx.platform.typedef.__darwin_natural_t = uint
|
||||
rbx.platform.typedef.__darwin_off_t = long_long
|
||||
rbx.platform.typedef.__darwin_pid_t = int
|
||||
rbx.platform.typedef.__darwin_pthread_key_t = ulong
|
||||
rbx.platform.typedef.__darwin_ptrdiff_t = int
|
||||
rbx.platform.typedef.__darwin_rune_t = int
|
||||
rbx.platform.typedef.__darwin_sigset_t = uint
|
||||
rbx.platform.typedef.__darwin_size_t = ulong
|
||||
rbx.platform.typedef.__darwin_socklen_t = uint
|
||||
rbx.platform.typedef.__darwin_ssize_t = long
|
||||
rbx.platform.typedef.__darwin_suseconds_t = int
|
||||
rbx.platform.typedef.__darwin_time_t = long
|
||||
rbx.platform.typedef.__darwin_uid_t = uint
|
||||
rbx.platform.typedef.__darwin_useconds_t = uint
|
||||
rbx.platform.typedef.__darwin_uuid_t[16] = uchar
|
||||
rbx.platform.typedef.__darwin_wchar_t = int
|
||||
rbx.platform.typedef.__darwin_wint_t = int
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long_long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong_long
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.blkcnt_t = long_long
|
||||
rbx.platform.typedef.blksize_t = int
|
||||
rbx.platform.typedef.caddr_t = string
|
||||
rbx.platform.typedef.clock_t = ulong
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = int
|
||||
rbx.platform.typedef.fd_mask = int
|
||||
rbx.platform.typedef.fixpt_t = uint
|
||||
rbx.platform.typedef.fsblkcnt_t = uint
|
||||
rbx.platform.typedef.fsfilcnt_t = uint
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.in_port_t = ushort
|
||||
rbx.platform.typedef.ino64_t = ulong_long
|
||||
rbx.platform.typedef.ino_t = ulong_long
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.intptr_t = long
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.mode_t = ushort
|
||||
rbx.platform.typedef.nlink_t = ushort
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = ulong
|
||||
rbx.platform.typedef.qaddr_t = pointer
|
||||
rbx.platform.typedef.quad_t = long_long
|
||||
rbx.platform.typedef.register_t = int
|
||||
rbx.platform.typedef.rlim_t = ulong_long
|
||||
rbx.platform.typedef.sa_family_t = uchar
|
||||
rbx.platform.typedef.segsz_t = int
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = long
|
||||
rbx.platform.typedef.suseconds_t = int
|
||||
rbx.platform.typedef.swblk_t = int
|
||||
rbx.platform.typedef.syscall_arg_t = ulong_long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong_long
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uintptr_t = ulong
|
||||
rbx.platform.typedef.useconds_t = uint
|
||||
rbx.platform.typedef.user_addr_t = ulong_long
|
||||
rbx.platform.typedef.user_long_t = long_long
|
||||
rbx.platform.typedef.user_size_t = ulong_long
|
||||
rbx.platform.typedef.user_ssize_t = long_long
|
||||
rbx.platform.typedef.user_time_t = long_long
|
||||
rbx.platform.typedef.user_ulong_t = ulong_long
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
@@ -0,0 +1,130 @@
|
||||
rbx.platform.typedef.*__caddr_t = char
|
||||
rbx.platform.typedef.*__qaddr_t = long_long
|
||||
rbx.platform.typedef.__blkcnt64_t = long_long
|
||||
rbx.platform.typedef.__blkcnt_t = long
|
||||
rbx.platform.typedef.__blksize_t = long
|
||||
rbx.platform.typedef.__clock_t = long
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__daddr_t = int
|
||||
rbx.platform.typedef.__dev_t = ulong_long
|
||||
rbx.platform.typedef.__fd_mask = long
|
||||
rbx.platform.typedef.__fsblkcnt64_t = ulong_long
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt64_t = ulong_long
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.__fsword_t = int
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__ino64_t = ulong_long
|
||||
rbx.platform.typedef.__ino_t = ulong
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long_long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__intptr_t = int
|
||||
rbx.platform.typedef.__key_t = int
|
||||
rbx.platform.typedef.__loff_t = long_long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = uint
|
||||
rbx.platform.typedef.__off64_t = long_long
|
||||
rbx.platform.typedef.__off_t = long
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__priority_which_t = int
|
||||
rbx.platform.typedef.__quad_t = long_long
|
||||
rbx.platform.typedef.__rlim64_t = ulong_long
|
||||
rbx.platform.typedef.__rlim_t = ulong
|
||||
rbx.platform.typedef.__rlimit_resource_t = int
|
||||
rbx.platform.typedef.__rusage_who_t = int
|
||||
rbx.platform.typedef.__sig_atomic_t = int
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = int
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__syscall_slong_t = long
|
||||
rbx.platform.typedef.__syscall_ulong_t = ulong
|
||||
rbx.platform.typedef.__time_t = long
|
||||
rbx.platform.typedef.__timer_t = pointer
|
||||
rbx.platform.typedef.__u_char = uchar
|
||||
rbx.platform.typedef.__u_int = uint
|
||||
rbx.platform.typedef.__u_long = ulong
|
||||
rbx.platform.typedef.__u_quad_t = ulong_long
|
||||
rbx.platform.typedef.__u_short = ushort
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong_long
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.blkcnt_t = long_long
|
||||
rbx.platform.typedef.blksize_t = long
|
||||
rbx.platform.typedef.clock_t = long
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = ulong_long
|
||||
rbx.platform.typedef.fd_mask = long
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong_long
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong_long
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.in_port_t = ushort
|
||||
rbx.platform.typedef.ino_t = ulong_long
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.int_fast16_t = int
|
||||
rbx.platform.typedef.int_fast32_t = int
|
||||
rbx.platform.typedef.int_fast64_t = long_long
|
||||
rbx.platform.typedef.int_fast8_t = char
|
||||
rbx.platform.typedef.int_least32_t = int
|
||||
rbx.platform.typedef.int_least64_t = long_long
|
||||
rbx.platform.typedef.int_least8_t = char
|
||||
rbx.platform.typedef.intmax_t = long_long
|
||||
rbx.platform.typedef.intptr_t = int
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.loff_t = long_long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = uint
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = uint
|
||||
rbx.platform.typedef.pthread_once_t = int
|
||||
rbx.platform.typedef.pthread_t = ulong
|
||||
rbx.platform.typedef.ptrdiff_t = int
|
||||
rbx.platform.typedef.quad_t = long_long
|
||||
rbx.platform.typedef.register_t = long
|
||||
rbx.platform.typedef.rlim_t = ulong_long
|
||||
rbx.platform.typedef.sa_family_t = ushort
|
||||
rbx.platform.typedef.size_t = uint
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = int
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.timer_t = pointer
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong_long
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint32_t = uint
|
||||
rbx.platform.typedef.uint64_t = ulong_long
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.uint_fast16_t = uint
|
||||
rbx.platform.typedef.uint_fast32_t = uint
|
||||
rbx.platform.typedef.uint_fast64_t = ulong_long
|
||||
rbx.platform.typedef.uint_fast8_t = uchar
|
||||
rbx.platform.typedef.uint_least16_t = ushort
|
||||
rbx.platform.typedef.uint_least32_t = uint
|
||||
rbx.platform.typedef.uint_least64_t = ulong_long
|
||||
rbx.platform.typedef.uint_least8_t = uchar
|
||||
rbx.platform.typedef.uintmax_t = ulong_long
|
||||
rbx.platform.typedef.uintptr_t = uint
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
rbx.platform.typedef.wchar_t = long
|
||||
@@ -0,0 +1,156 @@
|
||||
rbx.platform.typedef.__blkcnt_t = long_long
|
||||
rbx.platform.typedef.__blksize_t = int
|
||||
rbx.platform.typedef.__clock_t = long_long
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__cpuid_t = ulong
|
||||
rbx.platform.typedef.__dev_t = int
|
||||
rbx.platform.typedef.__fd_mask = uint
|
||||
rbx.platform.typedef.__fixpt_t = uint
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong_long
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong_long
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__in_addr_t = uint
|
||||
rbx.platform.typedef.__in_port_t = ushort
|
||||
rbx.platform.typedef.__ino_t = ulong_long
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long_long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__int_fast16_t = int
|
||||
rbx.platform.typedef.__int_fast32_t = int
|
||||
rbx.platform.typedef.__int_fast64_t = long_long
|
||||
rbx.platform.typedef.__int_fast8_t = int
|
||||
rbx.platform.typedef.__int_least16_t = short
|
||||
rbx.platform.typedef.__int_least32_t = int
|
||||
rbx.platform.typedef.__int_least64_t = long_long
|
||||
rbx.platform.typedef.__int_least8_t = char
|
||||
rbx.platform.typedef.__intmax_t = long_long
|
||||
rbx.platform.typedef.__intptr_t = long
|
||||
rbx.platform.typedef.__key_t = long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = uint
|
||||
rbx.platform.typedef.__off_t = long_long
|
||||
rbx.platform.typedef.__paddr_t = ulong
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__psize_t = ulong
|
||||
rbx.platform.typedef.__ptrdiff_t = long
|
||||
rbx.platform.typedef.__register_t = long
|
||||
rbx.platform.typedef.__rlim_t = ulong_long
|
||||
rbx.platform.typedef.__rune_t = int
|
||||
rbx.platform.typedef.__sa_family_t = uchar
|
||||
rbx.platform.typedef.__segsz_t = int
|
||||
rbx.platform.typedef.__size_t = ulong
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = long
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__swblk_t = int
|
||||
rbx.platform.typedef.__time_t = long_long
|
||||
rbx.platform.typedef.__timer_t = int
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong_long
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__uint_fast16_t = uint
|
||||
rbx.platform.typedef.__uint_fast32_t = uint
|
||||
rbx.platform.typedef.__uint_fast64_t = ulong_long
|
||||
rbx.platform.typedef.__uint_fast8_t = uint
|
||||
rbx.platform.typedef.__uint_least16_t = ushort
|
||||
rbx.platform.typedef.__uint_least32_t = uint
|
||||
rbx.platform.typedef.__uint_least64_t = ulong_long
|
||||
rbx.platform.typedef.__uint_least8_t = uchar
|
||||
rbx.platform.typedef.__uintmax_t = ulong_long
|
||||
rbx.platform.typedef.__uintptr_t = ulong
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.__vaddr_t = ulong
|
||||
rbx.platform.typedef.__vsize_t = ulong
|
||||
rbx.platform.typedef.__wchar_t = int
|
||||
rbx.platform.typedef.__wctrans_t = pointer
|
||||
rbx.platform.typedef.__wctype_t = pointer
|
||||
rbx.platform.typedef.__wint_t = int
|
||||
rbx.platform.typedef.blkcnt_t = long_long
|
||||
rbx.platform.typedef.blksize_t = int
|
||||
rbx.platform.typedef.caddr_t = string
|
||||
rbx.platform.typedef.clock_t = long_long
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.cpuid_t = ulong
|
||||
rbx.platform.typedef.daddr32_t = int
|
||||
rbx.platform.typedef.daddr_t = long_long
|
||||
rbx.platform.typedef.dev_t = int
|
||||
rbx.platform.typedef.fixpt_t = uint
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong_long
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong_long
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.in_port_t = ushort
|
||||
rbx.platform.typedef.ino_t = ulong_long
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.int_fast16_t = int
|
||||
rbx.platform.typedef.int_fast32_t = int
|
||||
rbx.platform.typedef.int_fast64_t = long_long
|
||||
rbx.platform.typedef.int_fast8_t = int
|
||||
rbx.platform.typedef.int_least16_t = short
|
||||
rbx.platform.typedef.int_least32_t = int
|
||||
rbx.platform.typedef.int_least64_t = long_long
|
||||
rbx.platform.typedef.int_least8_t = char
|
||||
rbx.platform.typedef.intmax_t = long_long
|
||||
rbx.platform.typedef.intptr_t = long
|
||||
rbx.platform.typedef.key_t = long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = uint
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.paddr_t = ulong
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.psize_t = ulong
|
||||
rbx.platform.typedef.ptrdiff_t = long
|
||||
rbx.platform.typedef.quad_t = long_long
|
||||
rbx.platform.typedef.register_t = long
|
||||
rbx.platform.typedef.rlim_t = ulong_long
|
||||
rbx.platform.typedef.sa_family_t = uchar
|
||||
rbx.platform.typedef.segsz_t = int
|
||||
rbx.platform.typedef.sigset_t = uint
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = long
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.swblk_t = int
|
||||
rbx.platform.typedef.time_t = long_long
|
||||
rbx.platform.typedef.timer_t = int
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong_long
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint32_t = uint
|
||||
rbx.platform.typedef.uint64_t = ulong_long
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.uint_fast16_t = uint
|
||||
rbx.platform.typedef.uint_fast32_t = uint
|
||||
rbx.platform.typedef.uint_fast64_t = ulong_long
|
||||
rbx.platform.typedef.uint_fast8_t = uint
|
||||
rbx.platform.typedef.uint_least16_t = ushort
|
||||
rbx.platform.typedef.uint_least32_t = uint
|
||||
rbx.platform.typedef.uint_least64_t = ulong_long
|
||||
rbx.platform.typedef.uint_least8_t = uchar
|
||||
rbx.platform.typedef.uintmax_t = ulong_long
|
||||
rbx.platform.typedef.uintptr_t = ulong
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.unchar = uchar
|
||||
rbx.platform.typedef.useconds_t = uint
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
rbx.platform.typedef.vaddr_t = ulong
|
||||
rbx.platform.typedef.vsize_t = ulong
|
||||
rbx.platform.typedef.wchar_t = int
|
||||
rbx.platform.typedef.wint_t = int
|
||||
@@ -0,0 +1,104 @@
|
||||
rbx.platform.typedef.*__caddr_t = char
|
||||
rbx.platform.typedef.*__qaddr_t = long
|
||||
rbx.platform.typedef.__blkcnt64_t = long
|
||||
rbx.platform.typedef.__blkcnt_t = long
|
||||
rbx.platform.typedef.__blksize_t = long
|
||||
rbx.platform.typedef.__clock_t = long
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__daddr_t = int
|
||||
rbx.platform.typedef.__dev_t = ulong
|
||||
rbx.platform.typedef.__fd_mask = long
|
||||
rbx.platform.typedef.__fsblkcnt64_t = ulong
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt64_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.__fsword_t = long
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__ino64_t = ulong
|
||||
rbx.platform.typedef.__ino_t = ulong
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__intptr_t = long
|
||||
rbx.platform.typedef.__key_t = int
|
||||
rbx.platform.typedef.__loff_t = long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = ulong
|
||||
rbx.platform.typedef.__off64_t = long
|
||||
rbx.platform.typedef.__off_t = long
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__priority_which_t = int
|
||||
rbx.platform.typedef.__quad_t = long
|
||||
rbx.platform.typedef.__rlim64_t = ulong
|
||||
rbx.platform.typedef.__rlim_t = ulong
|
||||
rbx.platform.typedef.__rlimit_resource_t = int
|
||||
rbx.platform.typedef.__rusage_who_t = int
|
||||
rbx.platform.typedef.__sig_atomic_t = int
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = long
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__syscall_slong_t = long
|
||||
rbx.platform.typedef.__syscall_ulong_t = ulong
|
||||
rbx.platform.typedef.__time_t = long
|
||||
rbx.platform.typedef.__timer_t = pointer
|
||||
rbx.platform.typedef.__u_char = uchar
|
||||
rbx.platform.typedef.__u_int = uint
|
||||
rbx.platform.typedef.__u_long = ulong
|
||||
rbx.platform.typedef.__u_quad_t = ulong
|
||||
rbx.platform.typedef.__u_short = ushort
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.blkcnt_t = long
|
||||
rbx.platform.typedef.blksize_t = long
|
||||
rbx.platform.typedef.clock_t = long
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = ulong
|
||||
rbx.platform.typedef.fd_mask = long
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.ino_t = ulong
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.loff_t = long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = ulong
|
||||
rbx.platform.typedef.off_t = long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = uint
|
||||
rbx.platform.typedef.pthread_once_t = int
|
||||
rbx.platform.typedef.pthread_t = ulong
|
||||
rbx.platform.typedef.quad_t = long
|
||||
rbx.platform.typedef.register_t = long
|
||||
rbx.platform.typedef.rlim_t = ulong
|
||||
rbx.platform.typedef.sa_family_t = ushort
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = long
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.timer_t = pointer
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
@@ -0,0 +1,100 @@
|
||||
rbx.platform.typedef.*__caddr_t = char
|
||||
rbx.platform.typedef.*__qaddr_t = long
|
||||
rbx.platform.typedef.__blkcnt64_t = long
|
||||
rbx.platform.typedef.__blkcnt_t = long
|
||||
rbx.platform.typedef.__blksize_t = long
|
||||
rbx.platform.typedef.__clock_t = long
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__daddr_t = int
|
||||
rbx.platform.typedef.__dev_t = ulong
|
||||
rbx.platform.typedef.__fd_mask = long
|
||||
rbx.platform.typedef.__fsblkcnt64_t = ulong
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt64_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__ino64_t = ulong
|
||||
rbx.platform.typedef.__ino_t = ulong
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__intptr_t = long
|
||||
rbx.platform.typedef.__key_t = int
|
||||
rbx.platform.typedef.__loff_t = long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = ulong
|
||||
rbx.platform.typedef.__off64_t = long
|
||||
rbx.platform.typedef.__off_t = long
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__priority_which_t = int
|
||||
rbx.platform.typedef.__quad_t = long
|
||||
rbx.platform.typedef.__rlim64_t = ulong
|
||||
rbx.platform.typedef.__rlim_t = ulong
|
||||
rbx.platform.typedef.__rlimit_resource_t = int
|
||||
rbx.platform.typedef.__rusage_who_t = int
|
||||
rbx.platform.typedef.__sig_atomic_t = int
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = long
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__swblk_t = long
|
||||
rbx.platform.typedef.__time_t = long
|
||||
rbx.platform.typedef.__timer_t = pointer
|
||||
rbx.platform.typedef.__u_char = uchar
|
||||
rbx.platform.typedef.__u_int = uint
|
||||
rbx.platform.typedef.__u_long = ulong
|
||||
rbx.platform.typedef.__u_quad_t = ulong
|
||||
rbx.platform.typedef.__u_short = ushort
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.blkcnt_t = long
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = ulong
|
||||
rbx.platform.typedef.fd_mask = long
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.ino_t = ulong
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.loff_t = long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = ulong
|
||||
rbx.platform.typedef.off_t = long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = uint
|
||||
rbx.platform.typedef.pthread_once_t = int
|
||||
rbx.platform.typedef.pthread_t = ulong
|
||||
rbx.platform.typedef.quad_t = long
|
||||
rbx.platform.typedef.register_t = long
|
||||
rbx.platform.typedef.rlim_t = ulong
|
||||
rbx.platform.typedef.sa_family_t = ushort
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = long
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.timer_t = pointer
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
@@ -0,0 +1,104 @@
|
||||
rbx.platform.typedef.*__caddr_t = char
|
||||
rbx.platform.typedef.*__qaddr_t = long
|
||||
rbx.platform.typedef.__blkcnt64_t = long
|
||||
rbx.platform.typedef.__blkcnt_t = long
|
||||
rbx.platform.typedef.__blksize_t = int
|
||||
rbx.platform.typedef.__clock_t = long
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__daddr_t = int
|
||||
rbx.platform.typedef.__dev_t = ulong
|
||||
rbx.platform.typedef.__fd_mask = long
|
||||
rbx.platform.typedef.__fsblkcnt64_t = ulong
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt64_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.__fsword_t = long
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__ino64_t = ulong
|
||||
rbx.platform.typedef.__ino_t = ulong
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__intptr_t = long
|
||||
rbx.platform.typedef.__key_t = int
|
||||
rbx.platform.typedef.__loff_t = long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = uint
|
||||
rbx.platform.typedef.__off64_t = long
|
||||
rbx.platform.typedef.__off_t = long
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__priority_which_t = int
|
||||
rbx.platform.typedef.__quad_t = long
|
||||
rbx.platform.typedef.__rlim64_t = ulong
|
||||
rbx.platform.typedef.__rlim_t = ulong
|
||||
rbx.platform.typedef.__rlimit_resource_t = int
|
||||
rbx.platform.typedef.__rusage_who_t = int
|
||||
rbx.platform.typedef.__sig_atomic_t = int
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = long
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__syscall_slong_t = long
|
||||
rbx.platform.typedef.__syscall_ulong_t = ulong
|
||||
rbx.platform.typedef.__time_t = long
|
||||
rbx.platform.typedef.__timer_t = pointer
|
||||
rbx.platform.typedef.__u_char = uchar
|
||||
rbx.platform.typedef.__u_int = uint
|
||||
rbx.platform.typedef.__u_long = ulong
|
||||
rbx.platform.typedef.__u_quad_t = ulong
|
||||
rbx.platform.typedef.__u_short = ushort
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.blkcnt_t = long
|
||||
rbx.platform.typedef.blksize_t = int
|
||||
rbx.platform.typedef.clock_t = long
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = ulong
|
||||
rbx.platform.typedef.fd_mask = long
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.ino_t = ulong
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.loff_t = long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = uint
|
||||
rbx.platform.typedef.off_t = long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = uint
|
||||
rbx.platform.typedef.pthread_once_t = int
|
||||
rbx.platform.typedef.pthread_t = ulong
|
||||
rbx.platform.typedef.quad_t = long
|
||||
rbx.platform.typedef.register_t = long
|
||||
rbx.platform.typedef.rlim_t = ulong
|
||||
rbx.platform.typedef.sa_family_t = ushort
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = long
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.timer_t = pointer
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
@@ -0,0 +1,102 @@
|
||||
rbx.platform.typedef.*__caddr_t = char
|
||||
rbx.platform.typedef.*__qaddr_t = long_long
|
||||
rbx.platform.typedef.__blkcnt64_t = long_long
|
||||
rbx.platform.typedef.__blkcnt_t = long
|
||||
rbx.platform.typedef.__blksize_t = long
|
||||
rbx.platform.typedef.__clock_t = long
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__daddr_t = int
|
||||
rbx.platform.typedef.__dev_t = ulong_long
|
||||
rbx.platform.typedef.__fd_mask = long
|
||||
rbx.platform.typedef.__fsblkcnt64_t = ulong_long
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt64_t = ulong_long
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__ino64_t = ulong_long
|
||||
rbx.platform.typedef.__ino_t = ulong
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long_long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__intptr_t = int
|
||||
rbx.platform.typedef.__key_t = int
|
||||
rbx.platform.typedef.__loff_t = long_long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = uint
|
||||
rbx.platform.typedef.__off64_t = long_long
|
||||
rbx.platform.typedef.__off_t = long
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__priority_which_t = int
|
||||
rbx.platform.typedef.__quad_t = long_long
|
||||
rbx.platform.typedef.__rlim64_t = ulong_long
|
||||
rbx.platform.typedef.__rlim_t = ulong
|
||||
rbx.platform.typedef.__rlimit_resource_t = int
|
||||
rbx.platform.typedef.__rusage_who_t = int
|
||||
rbx.platform.typedef.__sig_atomic_t = int
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = long
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__swblk_t = long
|
||||
rbx.platform.typedef.__time_t = long
|
||||
rbx.platform.typedef.__timer_t = pointer
|
||||
rbx.platform.typedef.__u_char = uchar
|
||||
rbx.platform.typedef.__u_int = uint
|
||||
rbx.platform.typedef.__u_long = ulong
|
||||
rbx.platform.typedef.__u_quad_t = ulong_long
|
||||
rbx.platform.typedef.__u_short = ushort
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong_long
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.blkcnt_t = long_long
|
||||
rbx.platform.typedef.blksize_t = long
|
||||
rbx.platform.typedef.clock_t = long
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = ulong_long
|
||||
rbx.platform.typedef.fd_mask = long
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong_long
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong_long
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.ino_t = ulong_long
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.loff_t = long_long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = uint
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = uint
|
||||
rbx.platform.typedef.pthread_once_t = int
|
||||
rbx.platform.typedef.pthread_t = ulong
|
||||
rbx.platform.typedef.quad_t = long_long
|
||||
rbx.platform.typedef.register_t = long
|
||||
rbx.platform.typedef.rlim_t = ulong_long
|
||||
rbx.platform.typedef.sa_family_t = ushort
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = long
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.timer_t = pointer
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong_long
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
@@ -0,0 +1,102 @@
|
||||
rbx.platform.typedef.*__caddr_t = char
|
||||
rbx.platform.typedef.*__qaddr_t = long
|
||||
rbx.platform.typedef.__blkcnt64_t = long
|
||||
rbx.platform.typedef.__blkcnt_t = long
|
||||
rbx.platform.typedef.__blksize_t = long
|
||||
rbx.platform.typedef.__clock_t = long
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__daddr_t = int
|
||||
rbx.platform.typedef.__dev_t = ulong
|
||||
rbx.platform.typedef.__fd_mask = long
|
||||
rbx.platform.typedef.__fsblkcnt64_t = ulong
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt64_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__ino64_t = ulong
|
||||
rbx.platform.typedef.__ino_t = ulong
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__intptr_t = long
|
||||
rbx.platform.typedef.__key_t = int
|
||||
rbx.platform.typedef.__loff_t = long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = ulong
|
||||
rbx.platform.typedef.__off64_t = long
|
||||
rbx.platform.typedef.__off_t = long
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__priority_which_t = int
|
||||
rbx.platform.typedef.__quad_t = long
|
||||
rbx.platform.typedef.__rlim64_t = ulong
|
||||
rbx.platform.typedef.__rlim_t = ulong
|
||||
rbx.platform.typedef.__rlimit_resource_t = int
|
||||
rbx.platform.typedef.__rusage_who_t = int
|
||||
rbx.platform.typedef.__sig_atomic_t = int
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = long
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__swblk_t = long
|
||||
rbx.platform.typedef.__time_t = long
|
||||
rbx.platform.typedef.__timer_t = pointer
|
||||
rbx.platform.typedef.__u_char = uchar
|
||||
rbx.platform.typedef.__u_int = uint
|
||||
rbx.platform.typedef.__u_long = ulong
|
||||
rbx.platform.typedef.__u_quad_t = ulong
|
||||
rbx.platform.typedef.__u_short = ushort
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.blkcnt_t = long
|
||||
rbx.platform.typedef.blksize_t = long
|
||||
rbx.platform.typedef.clock_t = long
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = ulong
|
||||
rbx.platform.typedef.fd_mask = long
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.ino_t = ulong
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.loff_t = long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = ulong
|
||||
rbx.platform.typedef.off_t = long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = uint
|
||||
rbx.platform.typedef.pthread_once_t = int
|
||||
rbx.platform.typedef.pthread_t = ulong
|
||||
rbx.platform.typedef.quad_t = long
|
||||
rbx.platform.typedef.register_t = long
|
||||
rbx.platform.typedef.rlim_t = ulong
|
||||
rbx.platform.typedef.sa_family_t = ushort
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = long
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.timer_t = pointer
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
@@ -0,0 +1,102 @@
|
||||
rbx.platform.typedef.*__caddr_t = char
|
||||
rbx.platform.typedef.*__qaddr_t = long_long
|
||||
rbx.platform.typedef.__blkcnt64_t = long_long
|
||||
rbx.platform.typedef.__blkcnt_t = long
|
||||
rbx.platform.typedef.__blksize_t = long
|
||||
rbx.platform.typedef.__clock_t = long
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__daddr_t = int
|
||||
rbx.platform.typedef.__dev_t = ulong_long
|
||||
rbx.platform.typedef.__fd_mask = long
|
||||
rbx.platform.typedef.__fsblkcnt64_t = ulong_long
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt64_t = ulong_long
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__ino64_t = ulong_long
|
||||
rbx.platform.typedef.__ino_t = ulong
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long_long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__intptr_t = int
|
||||
rbx.platform.typedef.__key_t = int
|
||||
rbx.platform.typedef.__loff_t = long_long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = uint
|
||||
rbx.platform.typedef.__off64_t = long_long
|
||||
rbx.platform.typedef.__off_t = long
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__priority_which_t = int
|
||||
rbx.platform.typedef.__quad_t = long_long
|
||||
rbx.platform.typedef.__rlim64_t = ulong_long
|
||||
rbx.platform.typedef.__rlim_t = ulong
|
||||
rbx.platform.typedef.__rlimit_resource_t = int
|
||||
rbx.platform.typedef.__rusage_who_t = int
|
||||
rbx.platform.typedef.__sig_atomic_t = int
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = int
|
||||
rbx.platform.typedef.__suseconds_t = int
|
||||
rbx.platform.typedef.__swblk_t = long
|
||||
rbx.platform.typedef.__time_t = long
|
||||
rbx.platform.typedef.__timer_t = pointer
|
||||
rbx.platform.typedef.__u_char = uchar
|
||||
rbx.platform.typedef.__u_int = uint
|
||||
rbx.platform.typedef.__u_long = ulong
|
||||
rbx.platform.typedef.__u_quad_t = ulong_long
|
||||
rbx.platform.typedef.__u_short = ushort
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong_long
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.blkcnt_t = long_long
|
||||
rbx.platform.typedef.blksize_t = long
|
||||
rbx.platform.typedef.clock_t = long
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = ulong_long
|
||||
rbx.platform.typedef.fd_mask = long
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong_long
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong_long
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.ino_t = ulong_long
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.loff_t = long_long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = uint
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = uint
|
||||
rbx.platform.typedef.pthread_once_t = int
|
||||
rbx.platform.typedef.pthread_t = ulong
|
||||
rbx.platform.typedef.quad_t = long_long
|
||||
rbx.platform.typedef.register_t = long
|
||||
rbx.platform.typedef.rlim_t = ulong_long
|
||||
rbx.platform.typedef.sa_family_t = ushort
|
||||
rbx.platform.typedef.size_t = uint
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = int
|
||||
rbx.platform.typedef.suseconds_t = int
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.timer_t = pointer
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong_long
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
@@ -0,0 +1,128 @@
|
||||
rbx.platform.typedef.() = pointer
|
||||
rbx.platform.typedef.*caddr_t = char
|
||||
rbx.platform.typedef.Psocklen_t = pointer
|
||||
rbx.platform.typedef.avl_index_t = uint
|
||||
rbx.platform.typedef.blkcnt64_t = long_long
|
||||
rbx.platform.typedef.blkcnt_t = long_long
|
||||
rbx.platform.typedef.blksize_t = long
|
||||
rbx.platform.typedef.clock_t = long
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.cnt_t = short
|
||||
rbx.platform.typedef.cpu_flag_t = ushort
|
||||
rbx.platform.typedef.ctid_t = long
|
||||
rbx.platform.typedef.daddr_t = long
|
||||
rbx.platform.typedef.dev_t = ulong
|
||||
rbx.platform.typedef.diskaddr_t = ulong_long
|
||||
rbx.platform.typedef.disp_lock_t = uchar
|
||||
rbx.platform.typedef.fd_mask = long
|
||||
rbx.platform.typedef.fds_mask = long
|
||||
rbx.platform.typedef.fsblkcnt64_t = ulong_long
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong_long
|
||||
rbx.platform.typedef.fsfilcnt64_t = ulong_long
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong_long
|
||||
rbx.platform.typedef.gid_t = long
|
||||
rbx.platform.typedef.hrtime_t = long_long
|
||||
rbx.platform.typedef.id_t = long
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.in_port_t = ushort
|
||||
rbx.platform.typedef.index_t = short
|
||||
rbx.platform.typedef.ino64_t = ulong_long
|
||||
rbx.platform.typedef.ino_t = ulong_long
|
||||
rbx.platform.typedef.int) = pointer
|
||||
rbx.platform.typedef.int) = pointer
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.int_fast16_t = int
|
||||
rbx.platform.typedef.int_fast32_t = int
|
||||
rbx.platform.typedef.int_fast64_t = long_long
|
||||
rbx.platform.typedef.int_fast8_t = char
|
||||
rbx.platform.typedef.int_least16_t = short
|
||||
rbx.platform.typedef.int_least32_t = int
|
||||
rbx.platform.typedef.int_least64_t = long_long
|
||||
rbx.platform.typedef.int_least8_t = char
|
||||
rbx.platform.typedef.intmax_t = long_long
|
||||
rbx.platform.typedef.intptr_t = int
|
||||
rbx.platform.typedef.ipaddr_t = uint
|
||||
rbx.platform.typedef.k_fltset_t = uint
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.kid_t = int
|
||||
rbx.platform.typedef.len_t = ulong_long
|
||||
rbx.platform.typedef.lock_t = uchar
|
||||
rbx.platform.typedef.longlong_t = long_long
|
||||
rbx.platform.typedef.major_t = ulong
|
||||
rbx.platform.typedef.minor_t = ulong
|
||||
rbx.platform.typedef.mode_t = ulong
|
||||
rbx.platform.typedef.model_t = uint
|
||||
rbx.platform.typedef.nfds_t = ulong
|
||||
rbx.platform.typedef.nlink_t = ulong
|
||||
rbx.platform.typedef.o_dev_t = short
|
||||
rbx.platform.typedef.o_gid_t = ushort
|
||||
rbx.platform.typedef.o_ino_t = ushort
|
||||
rbx.platform.typedef.o_mode_t = ushort
|
||||
rbx.platform.typedef.o_nlink_t = short
|
||||
rbx.platform.typedef.o_pid_t = short
|
||||
rbx.platform.typedef.o_uid_t = ushort
|
||||
rbx.platform.typedef.off64_t = long_long
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.offset_t = long_long
|
||||
rbx.platform.typedef.pad64_t = long_long
|
||||
rbx.platform.typedef.pfn_t = ulong
|
||||
rbx.platform.typedef.pgcnt_t = ulong
|
||||
rbx.platform.typedef.pid_t = long
|
||||
rbx.platform.typedef.poolid_t = long
|
||||
rbx.platform.typedef.pri_t = short
|
||||
rbx.platform.typedef.projid_t = long
|
||||
rbx.platform.typedef.pthread_key_t = uint
|
||||
rbx.platform.typedef.pthread_t = uint
|
||||
rbx.platform.typedef.ptrdiff_t = int
|
||||
rbx.platform.typedef.rlim64_t = ulong_long
|
||||
rbx.platform.typedef.rlim_t = ulong_long
|
||||
rbx.platform.typedef.sa_family_t = ushort
|
||||
rbx.platform.typedef.size_t = uint
|
||||
rbx.platform.typedef.size_t) = pointer
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.spgcnt_t = long
|
||||
rbx.platform.typedef.ssize_t = int
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.sysid_t = short
|
||||
rbx.platform.typedef.t_scalar_t = long
|
||||
rbx.platform.typedef.t_uscalar_t = ulong
|
||||
rbx.platform.typedef.taskid_t = long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.timer_t = int
|
||||
rbx.platform.typedef.ts_t = long_long
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_longlong_t = ulong_long
|
||||
rbx.platform.typedef.u_offset_t = ulong_long
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uchar_t = uchar
|
||||
rbx.platform.typedef.uid_t = long
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint32_t = uint
|
||||
rbx.platform.typedef.uint64_t = ulong_long
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.uint_fast16_t = uint
|
||||
rbx.platform.typedef.uint_fast32_t = uint
|
||||
rbx.platform.typedef.uint_fast64_t = ulong_long
|
||||
rbx.platform.typedef.uint_fast8_t = uchar
|
||||
rbx.platform.typedef.uint_least16_t = ushort
|
||||
rbx.platform.typedef.uint_least32_t = uint
|
||||
rbx.platform.typedef.uint_least64_t = ulong_long
|
||||
rbx.platform.typedef.uint_least8_t = uchar
|
||||
rbx.platform.typedef.uint_t = uint
|
||||
rbx.platform.typedef.uintmax_t = ulong_long
|
||||
rbx.platform.typedef.uintptr_t = uint
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.ulong_t = ulong
|
||||
rbx.platform.typedef.unchar = uchar
|
||||
rbx.platform.typedef.upad64_t = ulong_long
|
||||
rbx.platform.typedef.use_t = uchar
|
||||
rbx.platform.typedef.useconds_t = uint
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
rbx.platform.typedef.ushort_t = ushort
|
||||
rbx.platform.typedef.zoneid_t = long
|
||||
@@ -0,0 +1,102 @@
|
||||
rbx.platform.typedef.*__caddr_t = char
|
||||
rbx.platform.typedef.*__qaddr_t = long
|
||||
rbx.platform.typedef.__blkcnt64_t = long
|
||||
rbx.platform.typedef.__blkcnt_t = long
|
||||
rbx.platform.typedef.__blksize_t = long
|
||||
rbx.platform.typedef.__clock_t = long
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__daddr_t = int
|
||||
rbx.platform.typedef.__dev_t = ulong
|
||||
rbx.platform.typedef.__fd_mask = long
|
||||
rbx.platform.typedef.__fsblkcnt64_t = ulong
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt64_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__ino64_t = ulong
|
||||
rbx.platform.typedef.__ino_t = ulong
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__intptr_t = long
|
||||
rbx.platform.typedef.__key_t = int
|
||||
rbx.platform.typedef.__loff_t = long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = uint
|
||||
rbx.platform.typedef.__off64_t = long
|
||||
rbx.platform.typedef.__off_t = long
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__priority_which_t = int
|
||||
rbx.platform.typedef.__quad_t = long
|
||||
rbx.platform.typedef.__rlim64_t = ulong
|
||||
rbx.platform.typedef.__rlim_t = ulong
|
||||
rbx.platform.typedef.__rlimit_resource_t = int
|
||||
rbx.platform.typedef.__rusage_who_t = int
|
||||
rbx.platform.typedef.__sig_atomic_t = int
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = long
|
||||
rbx.platform.typedef.__suseconds_t = int
|
||||
rbx.platform.typedef.__swblk_t = long
|
||||
rbx.platform.typedef.__time_t = long
|
||||
rbx.platform.typedef.__timer_t = pointer
|
||||
rbx.platform.typedef.__u_char = uchar
|
||||
rbx.platform.typedef.__u_int = uint
|
||||
rbx.platform.typedef.__u_long = ulong
|
||||
rbx.platform.typedef.__u_quad_t = ulong
|
||||
rbx.platform.typedef.__u_short = ushort
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.blkcnt_t = long
|
||||
rbx.platform.typedef.blksize_t = long
|
||||
rbx.platform.typedef.clock_t = long
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = ulong
|
||||
rbx.platform.typedef.fd_mask = long
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.ino_t = ulong
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.loff_t = long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = uint
|
||||
rbx.platform.typedef.off_t = long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = uint
|
||||
rbx.platform.typedef.pthread_once_t = int
|
||||
rbx.platform.typedef.pthread_t = ulong
|
||||
rbx.platform.typedef.quad_t = long
|
||||
rbx.platform.typedef.register_t = long
|
||||
rbx.platform.typedef.rlim_t = ulong
|
||||
rbx.platform.typedef.sa_family_t = ushort
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = long
|
||||
rbx.platform.typedef.suseconds_t = int
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.timer_t = pointer
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
@@ -0,0 +1,156 @@
|
||||
rbx.platform.typedef.__blkcnt_t = long_long
|
||||
rbx.platform.typedef.__blksize_t = int
|
||||
rbx.platform.typedef.__clock_t = long_long
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__cpuid_t = ulong
|
||||
rbx.platform.typedef.__dev_t = int
|
||||
rbx.platform.typedef.__fd_mask = uint
|
||||
rbx.platform.typedef.__fixpt_t = uint
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong_long
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong_long
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__in_addr_t = uint
|
||||
rbx.platform.typedef.__in_port_t = ushort
|
||||
rbx.platform.typedef.__ino_t = ulong_long
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long_long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__int_fast16_t = int
|
||||
rbx.platform.typedef.__int_fast32_t = int
|
||||
rbx.platform.typedef.__int_fast64_t = long_long
|
||||
rbx.platform.typedef.__int_fast8_t = int
|
||||
rbx.platform.typedef.__int_least16_t = short
|
||||
rbx.platform.typedef.__int_least32_t = int
|
||||
rbx.platform.typedef.__int_least64_t = long_long
|
||||
rbx.platform.typedef.__int_least8_t = char
|
||||
rbx.platform.typedef.__intmax_t = long_long
|
||||
rbx.platform.typedef.__intptr_t = long
|
||||
rbx.platform.typedef.__key_t = long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = uint
|
||||
rbx.platform.typedef.__off_t = long_long
|
||||
rbx.platform.typedef.__paddr_t = ulong
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__psize_t = ulong
|
||||
rbx.platform.typedef.__ptrdiff_t = long
|
||||
rbx.platform.typedef.__register_t = long
|
||||
rbx.platform.typedef.__rlim_t = ulong_long
|
||||
rbx.platform.typedef.__rune_t = int
|
||||
rbx.platform.typedef.__sa_family_t = uchar
|
||||
rbx.platform.typedef.__segsz_t = int
|
||||
rbx.platform.typedef.__size_t = ulong
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = long
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__swblk_t = int
|
||||
rbx.platform.typedef.__time_t = long_long
|
||||
rbx.platform.typedef.__timer_t = int
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong_long
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__uint_fast16_t = uint
|
||||
rbx.platform.typedef.__uint_fast32_t = uint
|
||||
rbx.platform.typedef.__uint_fast64_t = ulong_long
|
||||
rbx.platform.typedef.__uint_fast8_t = uint
|
||||
rbx.platform.typedef.__uint_least16_t = ushort
|
||||
rbx.platform.typedef.__uint_least32_t = uint
|
||||
rbx.platform.typedef.__uint_least64_t = ulong_long
|
||||
rbx.platform.typedef.__uint_least8_t = uchar
|
||||
rbx.platform.typedef.__uintmax_t = ulong_long
|
||||
rbx.platform.typedef.__uintptr_t = ulong
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.__vaddr_t = ulong
|
||||
rbx.platform.typedef.__vsize_t = ulong
|
||||
rbx.platform.typedef.__wchar_t = int
|
||||
rbx.platform.typedef.__wctrans_t = pointer
|
||||
rbx.platform.typedef.__wctype_t = pointer
|
||||
rbx.platform.typedef.__wint_t = int
|
||||
rbx.platform.typedef.blkcnt_t = long_long
|
||||
rbx.platform.typedef.blksize_t = int
|
||||
rbx.platform.typedef.caddr_t = string
|
||||
rbx.platform.typedef.clock_t = long_long
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.cpuid_t = ulong
|
||||
rbx.platform.typedef.daddr32_t = int
|
||||
rbx.platform.typedef.daddr_t = long_long
|
||||
rbx.platform.typedef.dev_t = int
|
||||
rbx.platform.typedef.fixpt_t = uint
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong_long
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong_long
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.in_port_t = ushort
|
||||
rbx.platform.typedef.ino_t = ulong_long
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.int_fast16_t = int
|
||||
rbx.platform.typedef.int_fast32_t = int
|
||||
rbx.platform.typedef.int_fast64_t = long_long
|
||||
rbx.platform.typedef.int_fast8_t = int
|
||||
rbx.platform.typedef.int_least16_t = short
|
||||
rbx.platform.typedef.int_least32_t = int
|
||||
rbx.platform.typedef.int_least64_t = long_long
|
||||
rbx.platform.typedef.int_least8_t = char
|
||||
rbx.platform.typedef.intmax_t = long_long
|
||||
rbx.platform.typedef.intptr_t = long
|
||||
rbx.platform.typedef.key_t = long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = uint
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.paddr_t = ulong
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.psize_t = ulong
|
||||
rbx.platform.typedef.ptrdiff_t = long
|
||||
rbx.platform.typedef.quad_t = long_long
|
||||
rbx.platform.typedef.register_t = long
|
||||
rbx.platform.typedef.rlim_t = ulong_long
|
||||
rbx.platform.typedef.sa_family_t = uchar
|
||||
rbx.platform.typedef.segsz_t = int
|
||||
rbx.platform.typedef.sigset_t = uint
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = long
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.swblk_t = int
|
||||
rbx.platform.typedef.time_t = long_long
|
||||
rbx.platform.typedef.timer_t = int
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong_long
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint32_t = uint
|
||||
rbx.platform.typedef.uint64_t = ulong_long
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.uint_fast16_t = uint
|
||||
rbx.platform.typedef.uint_fast32_t = uint
|
||||
rbx.platform.typedef.uint_fast64_t = ulong_long
|
||||
rbx.platform.typedef.uint_fast8_t = uint
|
||||
rbx.platform.typedef.uint_least16_t = ushort
|
||||
rbx.platform.typedef.uint_least32_t = uint
|
||||
rbx.platform.typedef.uint_least64_t = ulong_long
|
||||
rbx.platform.typedef.uint_least8_t = uchar
|
||||
rbx.platform.typedef.uintmax_t = ulong_long
|
||||
rbx.platform.typedef.uintptr_t = ulong
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.unchar = uchar
|
||||
rbx.platform.typedef.useconds_t = uint
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
rbx.platform.typedef.vaddr_t = ulong
|
||||
rbx.platform.typedef.vsize_t = ulong
|
||||
rbx.platform.typedef.wchar_t = int
|
||||
rbx.platform.typedef.wint_t = int
|
||||
@@ -0,0 +1,128 @@
|
||||
rbx.platform.typedef.() = pointer
|
||||
rbx.platform.typedef.*caddr_t = char
|
||||
rbx.platform.typedef.Psocklen_t = pointer
|
||||
rbx.platform.typedef.avl_index_t = uint
|
||||
rbx.platform.typedef.blkcnt64_t = long_long
|
||||
rbx.platform.typedef.blkcnt_t = long_long
|
||||
rbx.platform.typedef.blksize_t = long
|
||||
rbx.platform.typedef.clock_t = long
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.cnt_t = short
|
||||
rbx.platform.typedef.cpu_flag_t = ushort
|
||||
rbx.platform.typedef.ctid_t = long
|
||||
rbx.platform.typedef.daddr_t = long
|
||||
rbx.platform.typedef.dev_t = ulong
|
||||
rbx.platform.typedef.diskaddr_t = ulong_long
|
||||
rbx.platform.typedef.disp_lock_t = uchar
|
||||
rbx.platform.typedef.fd_mask = long
|
||||
rbx.platform.typedef.fds_mask = long
|
||||
rbx.platform.typedef.fsblkcnt64_t = ulong_long
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong_long
|
||||
rbx.platform.typedef.fsfilcnt64_t = ulong_long
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong_long
|
||||
rbx.platform.typedef.gid_t = long
|
||||
rbx.platform.typedef.hrtime_t = long_long
|
||||
rbx.platform.typedef.id_t = long
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.in_port_t = ushort
|
||||
rbx.platform.typedef.index_t = short
|
||||
rbx.platform.typedef.ino64_t = ulong_long
|
||||
rbx.platform.typedef.ino_t = ulong_long
|
||||
rbx.platform.typedef.int) = pointer
|
||||
rbx.platform.typedef.int) = pointer
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.int_fast16_t = int
|
||||
rbx.platform.typedef.int_fast32_t = int
|
||||
rbx.platform.typedef.int_fast64_t = long_long
|
||||
rbx.platform.typedef.int_fast8_t = char
|
||||
rbx.platform.typedef.int_least16_t = short
|
||||
rbx.platform.typedef.int_least32_t = int
|
||||
rbx.platform.typedef.int_least64_t = long_long
|
||||
rbx.platform.typedef.int_least8_t = char
|
||||
rbx.platform.typedef.intmax_t = long_long
|
||||
rbx.platform.typedef.intptr_t = int
|
||||
rbx.platform.typedef.ipaddr_t = uint
|
||||
rbx.platform.typedef.k_fltset_t = uint
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.kid_t = int
|
||||
rbx.platform.typedef.len_t = ulong_long
|
||||
rbx.platform.typedef.lock_t = uchar
|
||||
rbx.platform.typedef.longlong_t = long_long
|
||||
rbx.platform.typedef.major_t = ulong
|
||||
rbx.platform.typedef.minor_t = ulong
|
||||
rbx.platform.typedef.mode_t = ulong
|
||||
rbx.platform.typedef.model_t = uint
|
||||
rbx.platform.typedef.nfds_t = ulong
|
||||
rbx.platform.typedef.nlink_t = ulong
|
||||
rbx.platform.typedef.o_dev_t = short
|
||||
rbx.platform.typedef.o_gid_t = ushort
|
||||
rbx.platform.typedef.o_ino_t = ushort
|
||||
rbx.platform.typedef.o_mode_t = ushort
|
||||
rbx.platform.typedef.o_nlink_t = short
|
||||
rbx.platform.typedef.o_pid_t = short
|
||||
rbx.platform.typedef.o_uid_t = ushort
|
||||
rbx.platform.typedef.off64_t = long_long
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.offset_t = long_long
|
||||
rbx.platform.typedef.pad64_t = long_long
|
||||
rbx.platform.typedef.pfn_t = ulong
|
||||
rbx.platform.typedef.pgcnt_t = ulong
|
||||
rbx.platform.typedef.pid_t = long
|
||||
rbx.platform.typedef.poolid_t = long
|
||||
rbx.platform.typedef.pri_t = short
|
||||
rbx.platform.typedef.projid_t = long
|
||||
rbx.platform.typedef.pthread_key_t = uint
|
||||
rbx.platform.typedef.pthread_t = uint
|
||||
rbx.platform.typedef.ptrdiff_t = int
|
||||
rbx.platform.typedef.rlim64_t = ulong_long
|
||||
rbx.platform.typedef.rlim_t = ulong_long
|
||||
rbx.platform.typedef.sa_family_t = ushort
|
||||
rbx.platform.typedef.size_t = uint
|
||||
rbx.platform.typedef.size_t) = pointer
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.spgcnt_t = long
|
||||
rbx.platform.typedef.ssize_t = int
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.sysid_t = short
|
||||
rbx.platform.typedef.t_scalar_t = long
|
||||
rbx.platform.typedef.t_uscalar_t = ulong
|
||||
rbx.platform.typedef.taskid_t = long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.timer_t = int
|
||||
rbx.platform.typedef.ts_t = long_long
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_longlong_t = ulong_long
|
||||
rbx.platform.typedef.u_offset_t = ulong_long
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uchar_t = uchar
|
||||
rbx.platform.typedef.uid_t = long
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint32_t = uint
|
||||
rbx.platform.typedef.uint64_t = ulong_long
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.uint_fast16_t = uint
|
||||
rbx.platform.typedef.uint_fast32_t = uint
|
||||
rbx.platform.typedef.uint_fast64_t = ulong_long
|
||||
rbx.platform.typedef.uint_fast8_t = uchar
|
||||
rbx.platform.typedef.uint_least16_t = ushort
|
||||
rbx.platform.typedef.uint_least32_t = uint
|
||||
rbx.platform.typedef.uint_least64_t = ulong_long
|
||||
rbx.platform.typedef.uint_least8_t = uchar
|
||||
rbx.platform.typedef.uint_t = uint
|
||||
rbx.platform.typedef.uintmax_t = ulong_long
|
||||
rbx.platform.typedef.uintptr_t = uint
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.ulong_t = ulong
|
||||
rbx.platform.typedef.unchar = uchar
|
||||
rbx.platform.typedef.upad64_t = ulong_long
|
||||
rbx.platform.typedef.use_t = uchar
|
||||
rbx.platform.typedef.useconds_t = uint
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
rbx.platform.typedef.ushort_t = ushort
|
||||
rbx.platform.typedef.zoneid_t = long
|
||||
@@ -0,0 +1,141 @@
|
||||
rbx.platform.typedef.*__caddr_t = char
|
||||
rbx.platform.typedef.__blkcnt64_t = long
|
||||
rbx.platform.typedef.__blkcnt_t = long
|
||||
rbx.platform.typedef.__blksize_t = int
|
||||
rbx.platform.typedef.__clock_t = long
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__daddr_t = int
|
||||
rbx.platform.typedef.__dev_t = ulong
|
||||
rbx.platform.typedef.__fd_mask = long
|
||||
rbx.platform.typedef.__fsblkcnt64_t = ulong
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt64_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.__fsword_t = long
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__ino64_t = ulong
|
||||
rbx.platform.typedef.__ino_t = ulong
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__int_least16_t = short
|
||||
rbx.platform.typedef.__int_least32_t = int
|
||||
rbx.platform.typedef.__int_least64_t = long
|
||||
rbx.platform.typedef.__int_least8_t = char
|
||||
rbx.platform.typedef.__intmax_t = long
|
||||
rbx.platform.typedef.__intptr_t = long
|
||||
rbx.platform.typedef.__key_t = int
|
||||
rbx.platform.typedef.__loff_t = long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = uint
|
||||
rbx.platform.typedef.__off64_t = long
|
||||
rbx.platform.typedef.__off_t = long
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__priority_which_t = int
|
||||
rbx.platform.typedef.__quad_t = long
|
||||
rbx.platform.typedef.__rlim64_t = ulong
|
||||
rbx.platform.typedef.__rlim_t = ulong
|
||||
rbx.platform.typedef.__rlimit_resource_t = int
|
||||
rbx.platform.typedef.__rusage_who_t = int
|
||||
rbx.platform.typedef.__sig_atomic_t = int
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = long
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__syscall_slong_t = long
|
||||
rbx.platform.typedef.__syscall_ulong_t = ulong
|
||||
rbx.platform.typedef.__time_t = long
|
||||
rbx.platform.typedef.__timer_t = pointer
|
||||
rbx.platform.typedef.__u_char = uchar
|
||||
rbx.platform.typedef.__u_int = uint
|
||||
rbx.platform.typedef.__u_long = ulong
|
||||
rbx.platform.typedef.__u_quad_t = ulong
|
||||
rbx.platform.typedef.__u_short = ushort
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__uint_least16_t = ushort
|
||||
rbx.platform.typedef.__uint_least32_t = uint
|
||||
rbx.platform.typedef.__uint_least64_t = ulong
|
||||
rbx.platform.typedef.__uint_least8_t = uchar
|
||||
rbx.platform.typedef.__uintmax_t = ulong
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.blkcnt_t = long
|
||||
rbx.platform.typedef.blksize_t = int
|
||||
rbx.platform.typedef.clock_t = long
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = ulong
|
||||
rbx.platform.typedef.fd_mask = long
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.in_port_t = ushort
|
||||
rbx.platform.typedef.ino_t = ulong
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.int_fast16_t = long
|
||||
rbx.platform.typedef.int_fast32_t = long
|
||||
rbx.platform.typedef.int_fast64_t = long
|
||||
rbx.platform.typedef.int_fast8_t = char
|
||||
rbx.platform.typedef.int_least16_t = short
|
||||
rbx.platform.typedef.int_least32_t = int
|
||||
rbx.platform.typedef.int_least64_t = long
|
||||
rbx.platform.typedef.int_least8_t = char
|
||||
rbx.platform.typedef.intmax_t = long
|
||||
rbx.platform.typedef.intptr_t = long
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.loff_t = long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = uint
|
||||
rbx.platform.typedef.off_t = long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = uint
|
||||
rbx.platform.typedef.pthread_once_t = int
|
||||
rbx.platform.typedef.pthread_t = ulong
|
||||
rbx.platform.typedef.ptrdiff_t = long
|
||||
rbx.platform.typedef.quad_t = long
|
||||
rbx.platform.typedef.register_t = long
|
||||
rbx.platform.typedef.rlim_t = ulong
|
||||
rbx.platform.typedef.sa_family_t = ushort
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = long
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.timer_t = pointer
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint32_t = uint
|
||||
rbx.platform.typedef.uint64_t = ulong
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.uint_fast16_t = ulong
|
||||
rbx.platform.typedef.uint_fast32_t = ulong
|
||||
rbx.platform.typedef.uint_fast64_t = ulong
|
||||
rbx.platform.typedef.uint_fast8_t = uchar
|
||||
rbx.platform.typedef.uint_least16_t = ushort
|
||||
rbx.platform.typedef.uint_least32_t = uint
|
||||
rbx.platform.typedef.uint_least64_t = ulong
|
||||
rbx.platform.typedef.uint_least8_t = uchar
|
||||
rbx.platform.typedef.uintmax_t = ulong
|
||||
rbx.platform.typedef.uintptr_t = ulong
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
rbx.platform.typedef.wchar_t = int
|
||||
@@ -0,0 +1,3 @@
|
||||
rbx.platform.typedef.ptrdiff_t = int64
|
||||
rbx.platform.typedef.size_t = uint64
|
||||
rbx.platform.typedef.ssize_t = int64
|
||||
@@ -0,0 +1,130 @@
|
||||
rbx.platform.typedef.__darwin_blkcnt_t = long_long
|
||||
rbx.platform.typedef.__darwin_blksize_t = int
|
||||
rbx.platform.typedef.__darwin_clock_t = ulong
|
||||
rbx.platform.typedef.__darwin_ct_rune_t = int
|
||||
rbx.platform.typedef.__darwin_dev_t = int
|
||||
rbx.platform.typedef.__darwin_fsblkcnt_t = uint
|
||||
rbx.platform.typedef.__darwin_fsfilcnt_t = uint
|
||||
rbx.platform.typedef.__darwin_gid_t = uint
|
||||
rbx.platform.typedef.__darwin_id_t = uint
|
||||
rbx.platform.typedef.__darwin_ino64_t = ulong_long
|
||||
rbx.platform.typedef.__darwin_ino_t = ulong_long
|
||||
rbx.platform.typedef.__darwin_intptr_t = long
|
||||
rbx.platform.typedef.__darwin_mach_port_name_t = uint
|
||||
rbx.platform.typedef.__darwin_mach_port_t = uint
|
||||
rbx.platform.typedef.__darwin_mode_t = ushort
|
||||
rbx.platform.typedef.__darwin_natural_t = uint
|
||||
rbx.platform.typedef.__darwin_off_t = long_long
|
||||
rbx.platform.typedef.__darwin_pid_t = int
|
||||
rbx.platform.typedef.__darwin_pthread_key_t = ulong
|
||||
rbx.platform.typedef.__darwin_ptrdiff_t = long
|
||||
rbx.platform.typedef.__darwin_rune_t = int
|
||||
rbx.platform.typedef.__darwin_sigset_t = uint
|
||||
rbx.platform.typedef.__darwin_size_t = ulong
|
||||
rbx.platform.typedef.__darwin_socklen_t = uint
|
||||
rbx.platform.typedef.__darwin_ssize_t = long
|
||||
rbx.platform.typedef.__darwin_suseconds_t = int
|
||||
rbx.platform.typedef.__darwin_time_t = long
|
||||
rbx.platform.typedef.__darwin_uid_t = uint
|
||||
rbx.platform.typedef.__darwin_useconds_t = uint
|
||||
rbx.platform.typedef.__darwin_uuid_string_t[37] = char
|
||||
rbx.platform.typedef.__darwin_uuid_t[16] = uchar
|
||||
rbx.platform.typedef.__darwin_wchar_t = int
|
||||
rbx.platform.typedef.__darwin_wint_t = int
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long_long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong_long
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.blkcnt_t = long_long
|
||||
rbx.platform.typedef.blksize_t = int
|
||||
rbx.platform.typedef.caddr_t = string
|
||||
rbx.platform.typedef.clock_t = ulong
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = int
|
||||
rbx.platform.typedef.errno_t = int
|
||||
rbx.platform.typedef.fd_mask = int
|
||||
rbx.platform.typedef.fixpt_t = uint
|
||||
rbx.platform.typedef.fsblkcnt_t = uint
|
||||
rbx.platform.typedef.fsfilcnt_t = uint
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.in_port_t = ushort
|
||||
rbx.platform.typedef.ino64_t = ulong_long
|
||||
rbx.platform.typedef.ino_t = ulong_long
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.int_fast16_t = short
|
||||
rbx.platform.typedef.int_fast32_t = int
|
||||
rbx.platform.typedef.int_fast64_t = long_long
|
||||
rbx.platform.typedef.int_fast8_t = char
|
||||
rbx.platform.typedef.int_least16_t = short
|
||||
rbx.platform.typedef.int_least32_t = int
|
||||
rbx.platform.typedef.int_least64_t = long_long
|
||||
rbx.platform.typedef.int_least8_t = char
|
||||
rbx.platform.typedef.intmax_t = long
|
||||
rbx.platform.typedef.intptr_t = long
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.mode_t = ushort
|
||||
rbx.platform.typedef.nlink_t = ushort
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = ulong
|
||||
rbx.platform.typedef.ptrdiff_t = long
|
||||
rbx.platform.typedef.qaddr_t = pointer
|
||||
rbx.platform.typedef.quad_t = long_long
|
||||
rbx.platform.typedef.register_t = long_long
|
||||
rbx.platform.typedef.rlim_t = ulong_long
|
||||
rbx.platform.typedef.rsize_t = ulong
|
||||
rbx.platform.typedef.sa_family_t = uchar
|
||||
rbx.platform.typedef.sae_associd_t = uint
|
||||
rbx.platform.typedef.sae_connid_t = uint
|
||||
rbx.platform.typedef.segsz_t = int
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = long
|
||||
rbx.platform.typedef.suseconds_t = int
|
||||
rbx.platform.typedef.swblk_t = int
|
||||
rbx.platform.typedef.syscall_arg_t = ulong_long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong_long
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint32_t = uint
|
||||
rbx.platform.typedef.uint64_t = ulong_long
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.uint_fast16_t = ushort
|
||||
rbx.platform.typedef.uint_fast32_t = uint
|
||||
rbx.platform.typedef.uint_fast64_t = ulong_long
|
||||
rbx.platform.typedef.uint_fast8_t = uchar
|
||||
rbx.platform.typedef.uint_least16_t = ushort
|
||||
rbx.platform.typedef.uint_least32_t = uint
|
||||
rbx.platform.typedef.uint_least64_t = ulong_long
|
||||
rbx.platform.typedef.uint_least8_t = uchar
|
||||
rbx.platform.typedef.uintmax_t = ulong
|
||||
rbx.platform.typedef.uintptr_t = ulong
|
||||
rbx.platform.typedef.useconds_t = uint
|
||||
rbx.platform.typedef.user_addr_t = ulong_long
|
||||
rbx.platform.typedef.user_long_t = long_long
|
||||
rbx.platform.typedef.user_off_t = long_long
|
||||
rbx.platform.typedef.user_size_t = ulong_long
|
||||
rbx.platform.typedef.user_ssize_t = long_long
|
||||
rbx.platform.typedef.user_time_t = long_long
|
||||
rbx.platform.typedef.user_ulong_t = ulong_long
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
rbx.platform.typedef.wchar_t = int
|
||||
@@ -0,0 +1,130 @@
|
||||
rbx.platform.typedef.*) = pointer
|
||||
rbx.platform.typedef.___wchar_t = int
|
||||
rbx.platform.typedef.__clock_t = ulong
|
||||
rbx.platform.typedef.__clockid_t = ulong
|
||||
rbx.platform.typedef.__fd_mask = ulong
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__int_fast16_t = int
|
||||
rbx.platform.typedef.__int_fast32_t = int
|
||||
rbx.platform.typedef.__int_fast64_t = long
|
||||
rbx.platform.typedef.__int_fast8_t = int
|
||||
rbx.platform.typedef.__int_least16_t = short
|
||||
rbx.platform.typedef.__int_least32_t = int
|
||||
rbx.platform.typedef.__int_least64_t = long
|
||||
rbx.platform.typedef.__int_least8_t = char
|
||||
rbx.platform.typedef.__intlp_t = long
|
||||
rbx.platform.typedef.__intmax_t = long
|
||||
rbx.platform.typedef.__intptr_t = long
|
||||
rbx.platform.typedef.__off_t = long
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__ptrdiff_t = long
|
||||
rbx.platform.typedef.__register_t = long
|
||||
rbx.platform.typedef.__rlim_t = long
|
||||
rbx.platform.typedef.__sig_atomic_t = int
|
||||
rbx.platform.typedef.__size_t = ulong
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = long
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__time_t = long
|
||||
rbx.platform.typedef.__timer_t = int
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__uint_fast16_t = uint
|
||||
rbx.platform.typedef.__uint_fast32_t = uint
|
||||
rbx.platform.typedef.__uint_fast64_t = ulong
|
||||
rbx.platform.typedef.__uint_fast8_t = uint
|
||||
rbx.platform.typedef.__uint_least16_t = ushort
|
||||
rbx.platform.typedef.__uint_least32_t = uint
|
||||
rbx.platform.typedef.__uint_least64_t = ulong
|
||||
rbx.platform.typedef.__uint_least8_t = uchar
|
||||
rbx.platform.typedef.__uintlp_t = ulong
|
||||
rbx.platform.typedef.__uintmax_t = ulong
|
||||
rbx.platform.typedef.__uintptr_t = ulong
|
||||
rbx.platform.typedef.__wint_t = int
|
||||
rbx.platform.typedef.blkcnt_t = long
|
||||
rbx.platform.typedef.blksize_t = long
|
||||
rbx.platform.typedef.c_caddr_t = pointer
|
||||
rbx.platform.typedef.caddr_t = string
|
||||
rbx.platform.typedef.clock_t = ulong
|
||||
rbx.platform.typedef.clockid_t = ulong
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = uint
|
||||
rbx.platform.typedef.fixpt_t = uint
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = long
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.in_port_t = ushort
|
||||
rbx.platform.typedef.ino_t = ulong
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.int_fast16_t = int
|
||||
rbx.platform.typedef.int_fast32_t = int
|
||||
rbx.platform.typedef.int_fast64_t = long
|
||||
rbx.platform.typedef.int_fast8_t = int
|
||||
rbx.platform.typedef.int_least16_t = short
|
||||
rbx.platform.typedef.int_least32_t = int
|
||||
rbx.platform.typedef.int_least64_t = long
|
||||
rbx.platform.typedef.int_least8_t = char
|
||||
rbx.platform.typedef.intmax_t = long
|
||||
rbx.platform.typedef.intptr_t = long
|
||||
rbx.platform.typedef.key_t = long
|
||||
rbx.platform.typedef.lwpid_t = int
|
||||
rbx.platform.typedef.mode_t = ushort
|
||||
rbx.platform.typedef.nlink_t = uint
|
||||
rbx.platform.typedef.off_t = long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = int
|
||||
rbx.platform.typedef.ptrdiff_t = long
|
||||
rbx.platform.typedef.qaddr_t = pointer
|
||||
rbx.platform.typedef.quad_t = long
|
||||
rbx.platform.typedef.register_t = long
|
||||
rbx.platform.typedef.rlim_t = long
|
||||
rbx.platform.typedef.sa_family_t = uchar
|
||||
rbx.platform.typedef.segsz_t = long
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = long
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.timer_t = int
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_daddr_t = uint
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint32_t = uint
|
||||
rbx.platform.typedef.uint64_t = ulong
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.uint_fast16_t = uint
|
||||
rbx.platform.typedef.uint_fast32_t = uint
|
||||
rbx.platform.typedef.uint_fast64_t = ulong
|
||||
rbx.platform.typedef.uint_fast8_t = uint
|
||||
rbx.platform.typedef.uint_least16_t = ushort
|
||||
rbx.platform.typedef.uint_least32_t = uint
|
||||
rbx.platform.typedef.uint_least64_t = ulong
|
||||
rbx.platform.typedef.uint_least8_t = uchar
|
||||
rbx.platform.typedef.uintmax_t = ulong
|
||||
rbx.platform.typedef.uintptr_t = ulong
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.unchar = uchar
|
||||
rbx.platform.typedef.useconds_t = uint
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
rbx.platform.typedef.v_caddr_t = pointer
|
||||
rbx.platform.typedef.wchar_t = int
|
||||
@@ -0,0 +1,128 @@
|
||||
rbx.platform.typedef.__clock_t = int
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__cpuid_t = ulong
|
||||
rbx.platform.typedef.__dev_t = int
|
||||
rbx.platform.typedef.__fd_mask = int
|
||||
rbx.platform.typedef.__fixpt_t = uint
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__in_addr_t = uint
|
||||
rbx.platform.typedef.__in_port_t = ushort
|
||||
rbx.platform.typedef.__ino_t = uint
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long_long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__int_fast16_t = int
|
||||
rbx.platform.typedef.__int_fast32_t = int
|
||||
rbx.platform.typedef.__int_fast64_t = long_long
|
||||
rbx.platform.typedef.__int_fast8_t = int
|
||||
rbx.platform.typedef.__int_least16_t = short
|
||||
rbx.platform.typedef.__int_least32_t = int
|
||||
rbx.platform.typedef.__int_least64_t = long_long
|
||||
rbx.platform.typedef.__int_least8_t = char
|
||||
rbx.platform.typedef.__intmax_t = long_long
|
||||
rbx.platform.typedef.__intptr_t = long
|
||||
rbx.platform.typedef.__key_t = long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = uint
|
||||
rbx.platform.typedef.__off_t = long_long
|
||||
rbx.platform.typedef.__paddr_t = ulong
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__psize_t = ulong
|
||||
rbx.platform.typedef.__ptrdiff_t = long
|
||||
rbx.platform.typedef.__register_t = long_long
|
||||
rbx.platform.typedef.__rlim_t = ulong_long
|
||||
rbx.platform.typedef.__rune_t = int
|
||||
rbx.platform.typedef.__sa_family_t = uchar
|
||||
rbx.platform.typedef.__segsz_t = int
|
||||
rbx.platform.typedef.__size_t = ulong
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = long
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__swblk_t = int
|
||||
rbx.platform.typedef.__time_t = long
|
||||
rbx.platform.typedef.__timer_t = int
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong_long
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__uint_fast16_t = uint
|
||||
rbx.platform.typedef.__uint_fast32_t = uint
|
||||
rbx.platform.typedef.__uint_fast64_t = ulong_long
|
||||
rbx.platform.typedef.__uint_fast8_t = uint
|
||||
rbx.platform.typedef.__uint_least16_t = ushort
|
||||
rbx.platform.typedef.__uint_least32_t = uint
|
||||
rbx.platform.typedef.__uint_least64_t = ulong_long
|
||||
rbx.platform.typedef.__uint_least8_t = uchar
|
||||
rbx.platform.typedef.__uintmax_t = ulong_long
|
||||
rbx.platform.typedef.__uintptr_t = ulong
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.__vaddr_t = ulong
|
||||
rbx.platform.typedef.__vsize_t = ulong
|
||||
rbx.platform.typedef.__wchar_t = int
|
||||
rbx.platform.typedef.__wctrans_t = pointer
|
||||
rbx.platform.typedef.__wctype_t = pointer
|
||||
rbx.platform.typedef.__wint_t = int
|
||||
rbx.platform.typedef.caddr_t = string
|
||||
rbx.platform.typedef.clock_t = int
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.cpuid_t = ulong
|
||||
rbx.platform.typedef.daddr32_t = int
|
||||
rbx.platform.typedef.daddr64_t = long_long
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = int
|
||||
rbx.platform.typedef.fixpt_t = uint
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.in_port_t = ushort
|
||||
rbx.platform.typedef.ino_t = uint
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.intptr_t = long
|
||||
rbx.platform.typedef.key_t = long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = uint
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.paddr_t = ulong
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.psize_t = ulong
|
||||
rbx.platform.typedef.qaddr_t = pointer
|
||||
rbx.platform.typedef.quad_t = long_long
|
||||
rbx.platform.typedef.register_t = long_long
|
||||
rbx.platform.typedef.rlim_t = ulong_long
|
||||
rbx.platform.typedef.sa_family_t = uchar
|
||||
rbx.platform.typedef.segsz_t = int
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = long
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.swblk_t = int
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.timer_t = int
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong_long
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint32_t = uint
|
||||
rbx.platform.typedef.uint64_t = ulong_long
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.uintptr_t = ulong
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.unchar = uchar
|
||||
rbx.platform.typedef.useconds_t = uint
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
rbx.platform.typedef.vaddr_t = ulong
|
||||
rbx.platform.typedef.vsize_t = ulong
|
||||
@@ -0,0 +1,158 @@
|
||||
rbx.platform.typedef.*) = pointer
|
||||
rbx.platform.typedef.___wchar_t = int
|
||||
rbx.platform.typedef.__accmode_t = int
|
||||
rbx.platform.typedef.__blkcnt_t = long
|
||||
rbx.platform.typedef.__blksize_t = int
|
||||
rbx.platform.typedef.__char16_t = ushort
|
||||
rbx.platform.typedef.__char32_t = uint
|
||||
rbx.platform.typedef.__clock_t = int
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__cpulevel_t = int
|
||||
rbx.platform.typedef.__cpusetid_t = int
|
||||
rbx.platform.typedef.__cpuwhich_t = int
|
||||
rbx.platform.typedef.__critical_t = long
|
||||
rbx.platform.typedef.__ct_rune_t = int
|
||||
rbx.platform.typedef.__dev_t = ulong
|
||||
rbx.platform.typedef.__fd_mask = ulong
|
||||
rbx.platform.typedef.__fflags_t = uint
|
||||
rbx.platform.typedef.__fixpt_t = uint
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = long
|
||||
rbx.platform.typedef.__ino_t = ulong
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__int_fast16_t = int
|
||||
rbx.platform.typedef.__int_fast32_t = int
|
||||
rbx.platform.typedef.__int_fast64_t = long
|
||||
rbx.platform.typedef.__int_fast8_t = int
|
||||
rbx.platform.typedef.__int_least16_t = short
|
||||
rbx.platform.typedef.__int_least32_t = int
|
||||
rbx.platform.typedef.__int_least64_t = long
|
||||
rbx.platform.typedef.__int_least8_t = char
|
||||
rbx.platform.typedef.__intfptr_t = long
|
||||
rbx.platform.typedef.__intmax_t = long
|
||||
rbx.platform.typedef.__intptr_t = long
|
||||
rbx.platform.typedef.__key_t = long
|
||||
rbx.platform.typedef.__lwpid_t = int
|
||||
rbx.platform.typedef.__mode_t = ushort
|
||||
rbx.platform.typedef.__nl_item = int
|
||||
rbx.platform.typedef.__nlink_t = ulong
|
||||
rbx.platform.typedef.__off64_t = long
|
||||
rbx.platform.typedef.__off_t = long
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__ptrdiff_t = long
|
||||
rbx.platform.typedef.__register_t = long
|
||||
rbx.platform.typedef.__rlim_t = long
|
||||
rbx.platform.typedef.__rman_res_t = ulong
|
||||
rbx.platform.typedef.__rune_t = int
|
||||
rbx.platform.typedef.__sa_family_t = uchar
|
||||
rbx.platform.typedef.__segsz_t = long
|
||||
rbx.platform.typedef.__size_t = ulong
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = long
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__time_t = long
|
||||
rbx.platform.typedef.__u_register_t = ulong
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__uint_fast16_t = uint
|
||||
rbx.platform.typedef.__uint_fast32_t = uint
|
||||
rbx.platform.typedef.__uint_fast64_t = ulong
|
||||
rbx.platform.typedef.__uint_fast8_t = uint
|
||||
rbx.platform.typedef.__uint_least16_t = ushort
|
||||
rbx.platform.typedef.__uint_least32_t = uint
|
||||
rbx.platform.typedef.__uint_least64_t = ulong
|
||||
rbx.platform.typedef.__uint_least8_t = uchar
|
||||
rbx.platform.typedef.__uintfptr_t = ulong
|
||||
rbx.platform.typedef.__uintmax_t = ulong
|
||||
rbx.platform.typedef.__uintptr_t = ulong
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.__vm_offset_t = ulong
|
||||
rbx.platform.typedef.__vm_paddr_t = ulong
|
||||
rbx.platform.typedef.__vm_size_t = ulong
|
||||
rbx.platform.typedef.__wint_t = int
|
||||
rbx.platform.typedef.accmode_t = int
|
||||
rbx.platform.typedef.blkcnt_t = long
|
||||
rbx.platform.typedef.blksize_t = int
|
||||
rbx.platform.typedef.c_caddr_t = pointer
|
||||
rbx.platform.typedef.caddr_t = string
|
||||
rbx.platform.typedef.cap_ioctl_t = ulong
|
||||
rbx.platform.typedef.clock_t = int
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.cpulevel_t = int
|
||||
rbx.platform.typedef.cpusetid_t = int
|
||||
rbx.platform.typedef.cpuwhich_t = int
|
||||
rbx.platform.typedef.critical_t = long
|
||||
rbx.platform.typedef.daddr_t = long
|
||||
rbx.platform.typedef.dev_t = ulong
|
||||
rbx.platform.typedef.fd_mask = ulong
|
||||
rbx.platform.typedef.fflags_t = uint
|
||||
rbx.platform.typedef.fixpt_t = uint
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = long
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.in_port_t = ushort
|
||||
rbx.platform.typedef.ino_t = ulong
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.intmax_t = long
|
||||
rbx.platform.typedef.intptr_t = long
|
||||
rbx.platform.typedef.key_t = long
|
||||
rbx.platform.typedef.ksize_t = ulong
|
||||
rbx.platform.typedef.kvaddr_t = ulong
|
||||
rbx.platform.typedef.lwpid_t = int
|
||||
rbx.platform.typedef.mode_t = ushort
|
||||
rbx.platform.typedef.nlink_t = ulong
|
||||
rbx.platform.typedef.off64_t = long
|
||||
rbx.platform.typedef.off_t = long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = int
|
||||
rbx.platform.typedef.qaddr_t = pointer
|
||||
rbx.platform.typedef.quad_t = long
|
||||
rbx.platform.typedef.register_t = long
|
||||
rbx.platform.typedef.rlim_t = long
|
||||
rbx.platform.typedef.rman_res_t = ulong
|
||||
rbx.platform.typedef.sa_family_t = uchar
|
||||
rbx.platform.typedef.sbintime_t = long
|
||||
rbx.platform.typedef.segsz_t = long
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = long
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong
|
||||
rbx.platform.typedef.u_register_t = ulong
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint32_t = uint
|
||||
rbx.platform.typedef.uint64_t = ulong
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.uintmax_t = ulong
|
||||
rbx.platform.typedef.uintptr_t = ulong
|
||||
rbx.platform.typedef.useconds_t = uint
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
rbx.platform.typedef.vm_offset_t = ulong
|
||||
rbx.platform.typedef.vm_ooffset_t = long
|
||||
rbx.platform.typedef.vm_paddr_t = ulong
|
||||
rbx.platform.typedef.vm_pindex_t = ulong
|
||||
rbx.platform.typedef.vm_size_t = ulong
|
||||
@@ -0,0 +1,117 @@
|
||||
rbx.platform.typedef.__haiku_addr_t = ulong
|
||||
rbx.platform.typedef.__haiku_generic_addr_t = ulong
|
||||
rbx.platform.typedef.__haiku_int16 = short
|
||||
rbx.platform.typedef.__haiku_int32 = int
|
||||
rbx.platform.typedef.__haiku_int64 = long
|
||||
rbx.platform.typedef.__haiku_int8 = char
|
||||
rbx.platform.typedef.__haiku_phys_addr_t = ulong
|
||||
rbx.platform.typedef.__haiku_phys_saddr_t = long
|
||||
rbx.platform.typedef.__haiku_saddr_t = long
|
||||
rbx.platform.typedef.__haiku_std_int16 = short
|
||||
rbx.platform.typedef.__haiku_std_int32 = int
|
||||
rbx.platform.typedef.__haiku_std_int64 = long
|
||||
rbx.platform.typedef.__haiku_std_int8 = char
|
||||
rbx.platform.typedef.__haiku_std_uint16 = ushort
|
||||
rbx.platform.typedef.__haiku_std_uint32 = uint
|
||||
rbx.platform.typedef.__haiku_std_uint64 = ulong
|
||||
rbx.platform.typedef.__haiku_std_uint8 = uchar
|
||||
rbx.platform.typedef.__haiku_uint16 = ushort
|
||||
rbx.platform.typedef.__haiku_uint32 = uint
|
||||
rbx.platform.typedef.__haiku_uint64 = ulong
|
||||
rbx.platform.typedef.__haiku_uint8 = uchar
|
||||
rbx.platform.typedef.addr_t = ulong
|
||||
rbx.platform.typedef.bigtime_t = long
|
||||
rbx.platform.typedef.blkcnt_t = long
|
||||
rbx.platform.typedef.blksize_t = int
|
||||
rbx.platform.typedef.caddr_t = pointer
|
||||
rbx.platform.typedef.clock_t = int
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.cnt_t = int
|
||||
rbx.platform.typedef.daddr_t = long
|
||||
rbx.platform.typedef.dev_t = int
|
||||
rbx.platform.typedef.fd_mask = uint
|
||||
rbx.platform.typedef.fsblkcnt_t = long
|
||||
rbx.platform.typedef.fsfilcnt_t = long
|
||||
rbx.platform.typedef.generic_addr_t = ulong
|
||||
rbx.platform.typedef.generic_size_t = ulong
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = int
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.in_port_t = ushort
|
||||
rbx.platform.typedef.ino_t = long
|
||||
rbx.platform.typedef.int16 = short
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32 = int
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64 = long
|
||||
rbx.platform.typedef.int64_t = long
|
||||
rbx.platform.typedef.int8 = char
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.int_fast16_t = int
|
||||
rbx.platform.typedef.int_fast32_t = int
|
||||
rbx.platform.typedef.int_fast64_t = long
|
||||
rbx.platform.typedef.int_fast8_t = int
|
||||
rbx.platform.typedef.int_least16_t = short
|
||||
rbx.platform.typedef.int_least32_t = int
|
||||
rbx.platform.typedef.int_least64_t = long
|
||||
rbx.platform.typedef.int_least8_t = char
|
||||
rbx.platform.typedef.intmax_t = long
|
||||
rbx.platform.typedef.intptr_t = long
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nanotime_t = long
|
||||
rbx.platform.typedef.nlink_t = int
|
||||
rbx.platform.typedef.off_t = long
|
||||
rbx.platform.typedef.perform_code = uint
|
||||
rbx.platform.typedef.phys_addr_t = ulong
|
||||
rbx.platform.typedef.phys_size_t = ulong
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = int
|
||||
rbx.platform.typedef.ptrdiff_t = long
|
||||
rbx.platform.typedef.rlim_t = ulong
|
||||
rbx.platform.typedef.sa_family_t = uchar
|
||||
rbx.platform.typedef.sig_atomic_t = int
|
||||
rbx.platform.typedef.sigset_t = ulong
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.status_t = int
|
||||
rbx.platform.typedef.suseconds_t = int
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.type_code = uint
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uchar = uchar
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uint16 = ushort
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint32 = uint
|
||||
rbx.platform.typedef.uint32_t = uint
|
||||
rbx.platform.typedef.uint64 = ulong
|
||||
rbx.platform.typedef.uint64_t = ulong
|
||||
rbx.platform.typedef.uint8 = uchar
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.uint_fast16_t = uint
|
||||
rbx.platform.typedef.uint_fast32_t = uint
|
||||
rbx.platform.typedef.uint_fast64_t = ulong
|
||||
rbx.platform.typedef.uint_fast8_t = uint
|
||||
rbx.platform.typedef.uint_least16_t = ushort
|
||||
rbx.platform.typedef.uint_least32_t = uint
|
||||
rbx.platform.typedef.uint_least64_t = ulong
|
||||
rbx.platform.typedef.uint_least8_t = uchar
|
||||
rbx.platform.typedef.uintmax_t = ulong
|
||||
rbx.platform.typedef.uintptr_t = ulong
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.umode_t = uint
|
||||
rbx.platform.typedef.unchar = uchar
|
||||
rbx.platform.typedef.unichar = ushort
|
||||
rbx.platform.typedef.useconds_t = uint
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
rbx.platform.typedef.void*) = pointer
|
||||
rbx.platform.typedef.wchar_t = int
|
||||
@@ -0,0 +1,132 @@
|
||||
rbx.platform.typedef.*__caddr_t = char
|
||||
rbx.platform.typedef.__blkcnt64_t = long
|
||||
rbx.platform.typedef.__blkcnt_t = long
|
||||
rbx.platform.typedef.__blksize_t = long
|
||||
rbx.platform.typedef.__clock_t = long
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__daddr_t = int
|
||||
rbx.platform.typedef.__dev_t = ulong
|
||||
rbx.platform.typedef.__fd_mask = long
|
||||
rbx.platform.typedef.__fsblkcnt64_t = ulong
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt64_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.__fsword_t = long
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__ino64_t = ulong
|
||||
rbx.platform.typedef.__ino_t = ulong
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__intmax_t = long
|
||||
rbx.platform.typedef.__intptr_t = long
|
||||
rbx.platform.typedef.__key_t = int
|
||||
rbx.platform.typedef.__loff_t = long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = ulong
|
||||
rbx.platform.typedef.__off64_t = long
|
||||
rbx.platform.typedef.__off_t = long
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__priority_which_t = int
|
||||
rbx.platform.typedef.__quad_t = long
|
||||
rbx.platform.typedef.__rlim64_t = ulong
|
||||
rbx.platform.typedef.__rlim_t = ulong
|
||||
rbx.platform.typedef.__rlimit_resource_t = int
|
||||
rbx.platform.typedef.__rusage_who_t = int
|
||||
rbx.platform.typedef.__sig_atomic_t = int
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = long
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__syscall_slong_t = long
|
||||
rbx.platform.typedef.__syscall_ulong_t = ulong
|
||||
rbx.platform.typedef.__time_t = long
|
||||
rbx.platform.typedef.__timer_t = pointer
|
||||
rbx.platform.typedef.__u_char = uchar
|
||||
rbx.platform.typedef.__u_int = uint
|
||||
rbx.platform.typedef.__u_long = ulong
|
||||
rbx.platform.typedef.__u_quad_t = ulong
|
||||
rbx.platform.typedef.__u_short = ushort
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__uintmax_t = ulong
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.blkcnt_t = long
|
||||
rbx.platform.typedef.blksize_t = long
|
||||
rbx.platform.typedef.clock_t = long
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = ulong
|
||||
rbx.platform.typedef.fd_mask = long
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.in_port_t = ushort
|
||||
rbx.platform.typedef.ino_t = ulong
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.int_fast16_t = long
|
||||
rbx.platform.typedef.int_fast32_t = long
|
||||
rbx.platform.typedef.int_fast64_t = long
|
||||
rbx.platform.typedef.int_fast8_t = char
|
||||
rbx.platform.typedef.int_least32_t = int
|
||||
rbx.platform.typedef.int_least64_t = long
|
||||
rbx.platform.typedef.int_least8_t = char
|
||||
rbx.platform.typedef.intmax_t = long
|
||||
rbx.platform.typedef.intptr_t = long
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.loff_t = long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = ulong
|
||||
rbx.platform.typedef.off_t = long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = uint
|
||||
rbx.platform.typedef.pthread_once_t = int
|
||||
rbx.platform.typedef.pthread_t = ulong
|
||||
rbx.platform.typedef.ptrdiff_t = long
|
||||
rbx.platform.typedef.quad_t = long
|
||||
rbx.platform.typedef.register_t = long
|
||||
rbx.platform.typedef.rlim_t = ulong
|
||||
rbx.platform.typedef.sa_family_t = ushort
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = long
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.timer_t = pointer
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint32_t = uint
|
||||
rbx.platform.typedef.uint64_t = ulong
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.uint_fast16_t = ulong
|
||||
rbx.platform.typedef.uint_fast32_t = ulong
|
||||
rbx.platform.typedef.uint_fast64_t = ulong
|
||||
rbx.platform.typedef.uint_fast8_t = uchar
|
||||
rbx.platform.typedef.uint_least16_t = ushort
|
||||
rbx.platform.typedef.uint_least32_t = uint
|
||||
rbx.platform.typedef.uint_least64_t = ulong
|
||||
rbx.platform.typedef.uint_least8_t = uchar
|
||||
rbx.platform.typedef.uintmax_t = ulong
|
||||
rbx.platform.typedef.uintptr_t = ulong
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
rbx.platform.typedef.wchar_t = int
|
||||
@@ -0,0 +1,119 @@
|
||||
rbx.platform.typedef.*addr_t = char
|
||||
rbx.platform.typedef.__ULong = uint
|
||||
rbx.platform.typedef.__blkcnt_t = long
|
||||
rbx.platform.typedef.__blksize_t = int
|
||||
rbx.platform.typedef.__clock_t = ulong
|
||||
rbx.platform.typedef.__clockid_t = ulong
|
||||
rbx.platform.typedef.__cpu_mask = ulong
|
||||
rbx.platform.typedef.__dev_t = uint
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__ino_t = ulong
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__int_least32_t = int
|
||||
rbx.platform.typedef.__int_least64_t = long
|
||||
rbx.platform.typedef.__int_least8_t = char
|
||||
rbx.platform.typedef.__intmax_t = long
|
||||
rbx.platform.typedef.__intptr_t = long
|
||||
rbx.platform.typedef.__key_t = long_long
|
||||
rbx.platform.typedef.__loff_t = long_long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nl_item = int
|
||||
rbx.platform.typedef.__nlink_t = ushort
|
||||
rbx.platform.typedef.__off_t = long
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__sigset_t = ulong
|
||||
rbx.platform.typedef.__size_t = ulong
|
||||
rbx.platform.typedef.__socklen_t = int
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__time_t = long
|
||||
rbx.platform.typedef.__timer_t = ulong
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__uint_least32_t = uint
|
||||
rbx.platform.typedef.__uint_least64_t = ulong
|
||||
rbx.platform.typedef.__uint_least8_t = uchar
|
||||
rbx.platform.typedef.__uintmax_t = ulong
|
||||
rbx.platform.typedef.__uintptr_t = ulong
|
||||
rbx.platform.typedef.__useconds_t = ulong
|
||||
rbx.platform.typedef._fpos64_t = long_long
|
||||
rbx.platform.typedef._fpos_t = long
|
||||
rbx.platform.typedef._off64_t = long_long
|
||||
rbx.platform.typedef._off_t = long
|
||||
rbx.platform.typedef.blkcnt_t = long
|
||||
rbx.platform.typedef.blksize_t = int
|
||||
rbx.platform.typedef.caddr_t = string
|
||||
rbx.platform.typedef.clock_t = ulong
|
||||
rbx.platform.typedef.clockid_t = ulong
|
||||
rbx.platform.typedef.daddr_t = long
|
||||
rbx.platform.typedef.dev_t = uint
|
||||
rbx.platform.typedef.fd_mask = ulong
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.ino_t = ulong
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.int_fast16_t = long
|
||||
rbx.platform.typedef.int_fast32_t = long
|
||||
rbx.platform.typedef.int_fast64_t = long
|
||||
rbx.platform.typedef.int_fast8_t = char
|
||||
rbx.platform.typedef.int_least32_t = int
|
||||
rbx.platform.typedef.int_least64_t = long
|
||||
rbx.platform.typedef.int_least8_t = char
|
||||
rbx.platform.typedef.intmax_t = long
|
||||
rbx.platform.typedef.intptr_t = long
|
||||
rbx.platform.typedef.key_t = long_long
|
||||
rbx.platform.typedef.loff_t = long_long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = ushort
|
||||
rbx.platform.typedef.off_t = long
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.ptrdiff_t = long
|
||||
rbx.platform.typedef.register_t = long
|
||||
rbx.platform.typedef.rlim_t = ulong
|
||||
rbx.platform.typedef.sbintime_t = long
|
||||
rbx.platform.typedef.sig_atomic_t = int
|
||||
rbx.platform.typedef.sigset_t = ulong
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.socklen_t = int
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.timer_t = ulong
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_register_t = ulong
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uint32_t = uint
|
||||
rbx.platform.typedef.uint64_t = ulong
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.uint_fast16_t = ulong
|
||||
rbx.platform.typedef.uint_fast32_t = ulong
|
||||
rbx.platform.typedef.uint_fast64_t = ulong
|
||||
rbx.platform.typedef.uint_fast8_t = uchar
|
||||
rbx.platform.typedef.uint_least32_t = uint
|
||||
rbx.platform.typedef.uint_least64_t = ulong
|
||||
rbx.platform.typedef.uint_least8_t = uchar
|
||||
rbx.platform.typedef.uintmax_t = ulong
|
||||
rbx.platform.typedef.uintptr_t = ulong
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.useconds_t = ulong
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
rbx.platform.typedef.vm_offset_t = ulong
|
||||
rbx.platform.typedef.vm_size_t = ulong
|
||||
rbx.platform.typedef.wint_t = uint
|
||||
@@ -0,0 +1,128 @@
|
||||
rbx.platform.typedef.__clock_t = int
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__cpuid_t = ulong
|
||||
rbx.platform.typedef.__dev_t = int
|
||||
rbx.platform.typedef.__fd_mask = int
|
||||
rbx.platform.typedef.__fixpt_t = uint
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__in_addr_t = uint
|
||||
rbx.platform.typedef.__in_port_t = ushort
|
||||
rbx.platform.typedef.__ino_t = uint
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long_long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__int_fast16_t = int
|
||||
rbx.platform.typedef.__int_fast32_t = int
|
||||
rbx.platform.typedef.__int_fast64_t = long_long
|
||||
rbx.platform.typedef.__int_fast8_t = int
|
||||
rbx.platform.typedef.__int_least16_t = short
|
||||
rbx.platform.typedef.__int_least32_t = int
|
||||
rbx.platform.typedef.__int_least64_t = long_long
|
||||
rbx.platform.typedef.__int_least8_t = char
|
||||
rbx.platform.typedef.__intmax_t = long_long
|
||||
rbx.platform.typedef.__intptr_t = long
|
||||
rbx.platform.typedef.__key_t = long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = uint
|
||||
rbx.platform.typedef.__off_t = long_long
|
||||
rbx.platform.typedef.__paddr_t = ulong
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__psize_t = ulong
|
||||
rbx.platform.typedef.__ptrdiff_t = long
|
||||
rbx.platform.typedef.__register_t = int
|
||||
rbx.platform.typedef.__rlim_t = ulong_long
|
||||
rbx.platform.typedef.__rune_t = int
|
||||
rbx.platform.typedef.__sa_family_t = uchar
|
||||
rbx.platform.typedef.__segsz_t = int
|
||||
rbx.platform.typedef.__size_t = ulong
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = long
|
||||
rbx.platform.typedef.__suseconds_t = int
|
||||
rbx.platform.typedef.__swblk_t = int
|
||||
rbx.platform.typedef.__time_t = int
|
||||
rbx.platform.typedef.__timer_t = int
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong_long
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__uint_fast16_t = uint
|
||||
rbx.platform.typedef.__uint_fast32_t = uint
|
||||
rbx.platform.typedef.__uint_fast64_t = ulong_long
|
||||
rbx.platform.typedef.__uint_fast8_t = uint
|
||||
rbx.platform.typedef.__uint_least16_t = ushort
|
||||
rbx.platform.typedef.__uint_least32_t = uint
|
||||
rbx.platform.typedef.__uint_least64_t = ulong_long
|
||||
rbx.platform.typedef.__uint_least8_t = uchar
|
||||
rbx.platform.typedef.__uintmax_t = ulong_long
|
||||
rbx.platform.typedef.__uintptr_t = ulong
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.__vaddr_t = ulong
|
||||
rbx.platform.typedef.__vsize_t = ulong
|
||||
rbx.platform.typedef.__wchar_t = int
|
||||
rbx.platform.typedef.__wctrans_t = pointer
|
||||
rbx.platform.typedef.__wctype_t = pointer
|
||||
rbx.platform.typedef.__wint_t = int
|
||||
rbx.platform.typedef.caddr_t = string
|
||||
rbx.platform.typedef.clock_t = int
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.cpuid_t = ulong
|
||||
rbx.platform.typedef.daddr32_t = int
|
||||
rbx.platform.typedef.daddr64_t = long_long
|
||||
rbx.platform.typedef.daddr_t = int
|
||||
rbx.platform.typedef.dev_t = int
|
||||
rbx.platform.typedef.fixpt_t = uint
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.in_port_t = ushort
|
||||
rbx.platform.typedef.ino_t = uint
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.intptr_t = long
|
||||
rbx.platform.typedef.key_t = long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = uint
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.paddr_t = ulong
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.psize_t = ulong
|
||||
rbx.platform.typedef.qaddr_t = pointer
|
||||
rbx.platform.typedef.quad_t = long_long
|
||||
rbx.platform.typedef.register_t = int
|
||||
rbx.platform.typedef.rlim_t = ulong_long
|
||||
rbx.platform.typedef.sa_family_t = uchar
|
||||
rbx.platform.typedef.segsz_t = int
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = long
|
||||
rbx.platform.typedef.suseconds_t = int
|
||||
rbx.platform.typedef.swblk_t = int
|
||||
rbx.platform.typedef.time_t = int
|
||||
rbx.platform.typedef.timer_t = int
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong_long
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint32_t = uint
|
||||
rbx.platform.typedef.uint64_t = ulong_long
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.uintptr_t = ulong
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.unchar = uchar
|
||||
rbx.platform.typedef.useconds_t = uint
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
rbx.platform.typedef.vaddr_t = ulong
|
||||
rbx.platform.typedef.vsize_t = ulong
|
||||
@@ -0,0 +1,134 @@
|
||||
rbx.platform.typedef.__blkcnt_t = long_long
|
||||
rbx.platform.typedef.__blksize_t = int
|
||||
rbx.platform.typedef.__clock_t = long_long
|
||||
rbx.platform.typedef.__clockid_t = int
|
||||
rbx.platform.typedef.__cpuid_t = ulong
|
||||
rbx.platform.typedef.__dev_t = int
|
||||
rbx.platform.typedef.__fd_mask = uint
|
||||
rbx.platform.typedef.__fixpt_t = uint
|
||||
rbx.platform.typedef.__fsblkcnt_t = ulong_long
|
||||
rbx.platform.typedef.__fsfilcnt_t = ulong_long
|
||||
rbx.platform.typedef.__gid_t = uint
|
||||
rbx.platform.typedef.__id_t = uint
|
||||
rbx.platform.typedef.__in_addr_t = uint
|
||||
rbx.platform.typedef.__in_port_t = ushort
|
||||
rbx.platform.typedef.__ino_t = ulong_long
|
||||
rbx.platform.typedef.__int16_t = short
|
||||
rbx.platform.typedef.__int32_t = int
|
||||
rbx.platform.typedef.__int64_t = long_long
|
||||
rbx.platform.typedef.__int8_t = char
|
||||
rbx.platform.typedef.__int_fast16_t = int
|
||||
rbx.platform.typedef.__int_fast32_t = int
|
||||
rbx.platform.typedef.__int_fast64_t = long_long
|
||||
rbx.platform.typedef.__int_fast8_t = int
|
||||
rbx.platform.typedef.__int_least16_t = short
|
||||
rbx.platform.typedef.__int_least32_t = int
|
||||
rbx.platform.typedef.__int_least64_t = long_long
|
||||
rbx.platform.typedef.__int_least8_t = char
|
||||
rbx.platform.typedef.__intmax_t = long_long
|
||||
rbx.platform.typedef.__intptr_t = long
|
||||
rbx.platform.typedef.__key_t = long
|
||||
rbx.platform.typedef.__mode_t = uint
|
||||
rbx.platform.typedef.__nlink_t = uint
|
||||
rbx.platform.typedef.__off_t = long_long
|
||||
rbx.platform.typedef.__paddr_t = ulong
|
||||
rbx.platform.typedef.__pid_t = int
|
||||
rbx.platform.typedef.__psize_t = ulong
|
||||
rbx.platform.typedef.__ptrdiff_t = long
|
||||
rbx.platform.typedef.__register_t = long
|
||||
rbx.platform.typedef.__rlim_t = ulong_long
|
||||
rbx.platform.typedef.__rune_t = int
|
||||
rbx.platform.typedef.__sa_family_t = uchar
|
||||
rbx.platform.typedef.__segsz_t = int
|
||||
rbx.platform.typedef.__size_t = ulong
|
||||
rbx.platform.typedef.__socklen_t = uint
|
||||
rbx.platform.typedef.__ssize_t = long
|
||||
rbx.platform.typedef.__suseconds_t = long
|
||||
rbx.platform.typedef.__swblk_t = int
|
||||
rbx.platform.typedef.__time_t = long_long
|
||||
rbx.platform.typedef.__timer_t = int
|
||||
rbx.platform.typedef.__uid_t = uint
|
||||
rbx.platform.typedef.__uint16_t = ushort
|
||||
rbx.platform.typedef.__uint32_t = uint
|
||||
rbx.platform.typedef.__uint64_t = ulong_long
|
||||
rbx.platform.typedef.__uint8_t = uchar
|
||||
rbx.platform.typedef.__uint_fast16_t = uint
|
||||
rbx.platform.typedef.__uint_fast32_t = uint
|
||||
rbx.platform.typedef.__uint_fast64_t = ulong_long
|
||||
rbx.platform.typedef.__uint_fast8_t = uint
|
||||
rbx.platform.typedef.__uint_least16_t = ushort
|
||||
rbx.platform.typedef.__uint_least32_t = uint
|
||||
rbx.platform.typedef.__uint_least64_t = ulong_long
|
||||
rbx.platform.typedef.__uint_least8_t = uchar
|
||||
rbx.platform.typedef.__uintmax_t = ulong_long
|
||||
rbx.platform.typedef.__uintptr_t = ulong
|
||||
rbx.platform.typedef.__useconds_t = uint
|
||||
rbx.platform.typedef.__vaddr_t = ulong
|
||||
rbx.platform.typedef.__vsize_t = ulong
|
||||
rbx.platform.typedef.__wchar_t = int
|
||||
rbx.platform.typedef.__wctrans_t = pointer
|
||||
rbx.platform.typedef.__wctype_t = pointer
|
||||
rbx.platform.typedef.__wint_t = int
|
||||
rbx.platform.typedef.blkcnt_t = long_long
|
||||
rbx.platform.typedef.blksize_t = int
|
||||
rbx.platform.typedef.caddr_t = string
|
||||
rbx.platform.typedef.clock_t = long_long
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.cpuid_t = ulong
|
||||
rbx.platform.typedef.daddr32_t = int
|
||||
rbx.platform.typedef.daddr_t = long_long
|
||||
rbx.platform.typedef.dev_t = int
|
||||
rbx.platform.typedef.fixpt_t = uint
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong_long
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong_long
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.id_t = uint
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.in_port_t = ushort
|
||||
rbx.platform.typedef.ino_t = ulong_long
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.key_t = long
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.nlink_t = uint
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.paddr_t = ulong
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.psize_t = ulong
|
||||
rbx.platform.typedef.qaddr_t = pointer
|
||||
rbx.platform.typedef.quad_t = long_long
|
||||
rbx.platform.typedef.register_t = long
|
||||
rbx.platform.typedef.rlim_t = ulong_long
|
||||
rbx.platform.typedef.sa_family_t = uchar
|
||||
rbx.platform.typedef.segsz_t = int
|
||||
rbx.platform.typedef.sigset_t = uint
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.ssize_t = long
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.swblk_t = int
|
||||
rbx.platform.typedef.time_t = long_long
|
||||
rbx.platform.typedef.timer_t = int
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_int16_t = ushort
|
||||
rbx.platform.typedef.u_int32_t = uint
|
||||
rbx.platform.typedef.u_int64_t = ulong_long
|
||||
rbx.platform.typedef.u_int8_t = uchar
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_quad_t = ulong_long
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint32_t = uint
|
||||
rbx.platform.typedef.uint64_t = ulong_long
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.unchar = uchar
|
||||
rbx.platform.typedef.useconds_t = uint
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
rbx.platform.typedef.vaddr_t = ulong
|
||||
rbx.platform.typedef.vsize_t = ulong
|
||||
@@ -0,0 +1,122 @@
|
||||
rbx.platform.typedef.*caddr_t = char
|
||||
rbx.platform.typedef.blkcnt64_t = long
|
||||
rbx.platform.typedef.blkcnt_t = long
|
||||
rbx.platform.typedef.blksize_t = int
|
||||
rbx.platform.typedef.clock_t = long
|
||||
rbx.platform.typedef.clockid_t = int
|
||||
rbx.platform.typedef.cnt_t = short
|
||||
rbx.platform.typedef.cpu_flag_t = ushort
|
||||
rbx.platform.typedef.ctid_t = int
|
||||
rbx.platform.typedef.daddr_t = long
|
||||
rbx.platform.typedef.datalink_id_t = uint
|
||||
rbx.platform.typedef.dev_t = ulong
|
||||
rbx.platform.typedef.diskaddr_t = ulong_long
|
||||
rbx.platform.typedef.disp_lock_t = uchar
|
||||
rbx.platform.typedef.fd_mask = long
|
||||
rbx.platform.typedef.fds_mask = long
|
||||
rbx.platform.typedef.fsblkcnt64_t = ulong
|
||||
rbx.platform.typedef.fsblkcnt_t = ulong
|
||||
rbx.platform.typedef.fsfilcnt64_t = ulong
|
||||
rbx.platform.typedef.fsfilcnt_t = ulong
|
||||
rbx.platform.typedef.gid_t = uint
|
||||
rbx.platform.typedef.hrtime_t = long_long
|
||||
rbx.platform.typedef.id_t = int
|
||||
rbx.platform.typedef.in_addr_t = uint
|
||||
rbx.platform.typedef.in_port_t = ushort
|
||||
rbx.platform.typedef.index_t = short
|
||||
rbx.platform.typedef.ino64_t = ulong
|
||||
rbx.platform.typedef.ino_t = ulong
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.int_fast16_t = int
|
||||
rbx.platform.typedef.int_fast32_t = int
|
||||
rbx.platform.typedef.int_fast64_t = long
|
||||
rbx.platform.typedef.int_fast8_t = char
|
||||
rbx.platform.typedef.int_least16_t = short
|
||||
rbx.platform.typedef.int_least32_t = int
|
||||
rbx.platform.typedef.int_least64_t = long
|
||||
rbx.platform.typedef.int_least8_t = char
|
||||
rbx.platform.typedef.intmax_t = long
|
||||
rbx.platform.typedef.intptr_t = long
|
||||
rbx.platform.typedef.ipaddr_t = uint
|
||||
rbx.platform.typedef.k_fltset_t = uint
|
||||
rbx.platform.typedef.key_t = int
|
||||
rbx.platform.typedef.len_t = ulong_long
|
||||
rbx.platform.typedef.lgrp_id_t = int
|
||||
rbx.platform.typedef.lock_t = uchar
|
||||
rbx.platform.typedef.longlong_t = long_long
|
||||
rbx.platform.typedef.major_t = uint
|
||||
rbx.platform.typedef.minor_t = uint
|
||||
rbx.platform.typedef.mode_t = uint
|
||||
rbx.platform.typedef.model_t = uint
|
||||
rbx.platform.typedef.nfds_t = ulong
|
||||
rbx.platform.typedef.nlink_t = uint
|
||||
rbx.platform.typedef.o_dev_t = short
|
||||
rbx.platform.typedef.o_gid_t = ushort
|
||||
rbx.platform.typedef.o_ino_t = ushort
|
||||
rbx.platform.typedef.o_mode_t = ushort
|
||||
rbx.platform.typedef.o_nlink_t = short
|
||||
rbx.platform.typedef.o_pid_t = short
|
||||
rbx.platform.typedef.o_uid_t = ushort
|
||||
rbx.platform.typedef.off64_t = long
|
||||
rbx.platform.typedef.off_t = long
|
||||
rbx.platform.typedef.offset_t = long_long
|
||||
rbx.platform.typedef.pad64_t = long
|
||||
rbx.platform.typedef.pfn_t = ulong
|
||||
rbx.platform.typedef.pgcnt_t = ulong
|
||||
rbx.platform.typedef.pid_t = int
|
||||
rbx.platform.typedef.poolid_t = int
|
||||
rbx.platform.typedef.pri_t = short
|
||||
rbx.platform.typedef.projid_t = int
|
||||
rbx.platform.typedef.pthread_key_t = uint
|
||||
rbx.platform.typedef.pthread_t = uint
|
||||
rbx.platform.typedef.ptrdiff_t = long
|
||||
rbx.platform.typedef.rlim64_t = ulong_long
|
||||
rbx.platform.typedef.rlim_t = ulong
|
||||
rbx.platform.typedef.sa_family_t = ushort
|
||||
rbx.platform.typedef.size_t = ulong
|
||||
rbx.platform.typedef.socklen_t = uint
|
||||
rbx.platform.typedef.spgcnt_t = long
|
||||
rbx.platform.typedef.ssize_t = long
|
||||
rbx.platform.typedef.suseconds_t = long
|
||||
rbx.platform.typedef.sysid_t = short
|
||||
rbx.platform.typedef.t_scalar_t = int
|
||||
rbx.platform.typedef.t_uscalar_t = uint
|
||||
rbx.platform.typedef.taskid_t = int
|
||||
rbx.platform.typedef.time_t = long
|
||||
rbx.platform.typedef.timer_t = int
|
||||
rbx.platform.typedef.u_char = uchar
|
||||
rbx.platform.typedef.u_int = uint
|
||||
rbx.platform.typedef.u_long = ulong
|
||||
rbx.platform.typedef.u_longlong_t = ulong_long
|
||||
rbx.platform.typedef.u_offset_t = ulong_long
|
||||
rbx.platform.typedef.u_short = ushort
|
||||
rbx.platform.typedef.uchar_t = uchar
|
||||
rbx.platform.typedef.uid_t = uint
|
||||
rbx.platform.typedef.uint = uint
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint32_t = uint
|
||||
rbx.platform.typedef.uint64_t = ulong
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.uint_fast16_t = uint
|
||||
rbx.platform.typedef.uint_fast32_t = uint
|
||||
rbx.platform.typedef.uint_fast64_t = ulong
|
||||
rbx.platform.typedef.uint_fast8_t = uchar
|
||||
rbx.platform.typedef.uint_least16_t = ushort
|
||||
rbx.platform.typedef.uint_least32_t = uint
|
||||
rbx.platform.typedef.uint_least64_t = ulong
|
||||
rbx.platform.typedef.uint_least8_t = uchar
|
||||
rbx.platform.typedef.uint_t = uint
|
||||
rbx.platform.typedef.uintmax_t = ulong
|
||||
rbx.platform.typedef.uintptr_t = ulong
|
||||
rbx.platform.typedef.ulong = ulong
|
||||
rbx.platform.typedef.ulong_t = ulong
|
||||
rbx.platform.typedef.unchar = uchar
|
||||
rbx.platform.typedef.upad64_t = ulong
|
||||
rbx.platform.typedef.use_t = uchar
|
||||
rbx.platform.typedef.useconds_t = uint
|
||||
rbx.platform.typedef.ushort = ushort
|
||||
rbx.platform.typedef.ushort_t = ushort
|
||||
rbx.platform.typedef.zoneid_t = int
|
||||
@@ -0,0 +1,52 @@
|
||||
rbx.platform.typedef.__time32_t = long
|
||||
rbx.platform.typedef.__time64_t = long_long
|
||||
rbx.platform.typedef._dev_t = uint
|
||||
rbx.platform.typedef._ino_t = ushort
|
||||
rbx.platform.typedef._mode_t = ushort
|
||||
rbx.platform.typedef._off64_t = long_long
|
||||
rbx.platform.typedef._off_t = long
|
||||
rbx.platform.typedef._pid_t = long_long
|
||||
rbx.platform.typedef._sigset_t = ulong_long
|
||||
rbx.platform.typedef.dev_t = uint
|
||||
rbx.platform.typedef.errno_t = int
|
||||
rbx.platform.typedef.ino_t = ushort
|
||||
rbx.platform.typedef.int16_t = short
|
||||
rbx.platform.typedef.int32_t = int
|
||||
rbx.platform.typedef.int64_t = long_long
|
||||
rbx.platform.typedef.int8_t = char
|
||||
rbx.platform.typedef.int_fast16_t = short
|
||||
rbx.platform.typedef.int_fast32_t = int
|
||||
rbx.platform.typedef.int_fast64_t = long_long
|
||||
rbx.platform.typedef.int_fast8_t = char
|
||||
rbx.platform.typedef.int_least16_t = short
|
||||
rbx.platform.typedef.int_least32_t = int
|
||||
rbx.platform.typedef.int_least64_t = long_long
|
||||
rbx.platform.typedef.int_least8_t = char
|
||||
rbx.platform.typedef.intmax_t = long_long
|
||||
rbx.platform.typedef.intptr_t = long_long
|
||||
rbx.platform.typedef.mode_t = ushort
|
||||
rbx.platform.typedef.off32_t = long
|
||||
rbx.platform.typedef.off64_t = long_long
|
||||
rbx.platform.typedef.off_t = long_long
|
||||
rbx.platform.typedef.pid_t = long_long
|
||||
rbx.platform.typedef.ptrdiff_t = long_long
|
||||
rbx.platform.typedef.rsize_t = ulong_long
|
||||
rbx.platform.typedef.size_t = ulong_long
|
||||
rbx.platform.typedef.ssize_t = long_long
|
||||
rbx.platform.typedef.time_t = long_long
|
||||
rbx.platform.typedef.uint16_t = ushort
|
||||
rbx.platform.typedef.uint64_t = ulong_long
|
||||
rbx.platform.typedef.uint8_t = uchar
|
||||
rbx.platform.typedef.uint_fast16_t = ushort
|
||||
rbx.platform.typedef.uint_fast32_t = uint
|
||||
rbx.platform.typedef.uint_fast64_t = ulong_long
|
||||
rbx.platform.typedef.uint_fast8_t = uchar
|
||||
rbx.platform.typedef.uint_least16_t = ushort
|
||||
rbx.platform.typedef.uint_least64_t = ulong_long
|
||||
rbx.platform.typedef.uint_least8_t = uchar
|
||||
rbx.platform.typedef.uintmax_t = ulong_long
|
||||
rbx.platform.typedef.uintptr_t = ulong_long
|
||||
rbx.platform.typedef.useconds_t = uint
|
||||
rbx.platform.typedef.wchar_t = ushort
|
||||
rbx.platform.typedef.wctype_t = ushort
|
||||
rbx.platform.typedef.wint_t = ushort
|
||||
@@ -0,0 +1,167 @@
|
||||
#
|
||||
# Copyright (C) 2008, 2009 Wayne Meissner
|
||||
# Copyright (c) 2007, 2008 Evan Phoenix
|
||||
#
|
||||
# This file is part of ruby-ffi.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice, this
|
||||
# list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright notice
|
||||
# this list of conditions and the following disclaimer in the documentation
|
||||
# and/or other materials provided with the distribution.
|
||||
# * Neither the name of the Ruby FFI project nor the names of its contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
|
||||
require 'ffi/platform'
|
||||
|
||||
# NOTE: all method definitions in this file are conditional on
|
||||
# whether they are not already defined. This is needed because
|
||||
# some Ruby implementations (e.g., TruffleRuby) might already
|
||||
# provide these methods due to using FFI internally, and we
|
||||
# should not override them to avoid warnings.
|
||||
|
||||
module FFI
|
||||
class Pointer
|
||||
|
||||
# Pointer size
|
||||
SIZE = Platform::ADDRESS_SIZE / 8 unless const_defined?(:SIZE)
|
||||
|
||||
# Return the size of a pointer on the current platform, in bytes
|
||||
# @return [Integer]
|
||||
def self.size
|
||||
SIZE
|
||||
end unless respond_to?(:size)
|
||||
|
||||
# @param [nil,Integer] len length of string to return
|
||||
# @return [String]
|
||||
# Read pointer's contents as a string, or the first +len+ bytes of the
|
||||
# equivalent string if +len+ is not +nil+.
|
||||
def read_string(len=nil)
|
||||
if len
|
||||
return ''.b if len == 0
|
||||
get_bytes(0, len)
|
||||
else
|
||||
get_string(0)
|
||||
end
|
||||
end unless method_defined?(:read_string)
|
||||
|
||||
# @param [Integer] len length of string to return
|
||||
# @return [String]
|
||||
# Read the first +len+ bytes of pointer's contents as a string.
|
||||
#
|
||||
# Same as:
|
||||
# ptr.read_string(len) # with len not nil
|
||||
def read_string_length(len)
|
||||
get_bytes(0, len)
|
||||
end unless method_defined?(:read_string_length)
|
||||
|
||||
# @return [String]
|
||||
# Read pointer's contents as a string.
|
||||
#
|
||||
# Same as:
|
||||
# ptr.read_string # with no len
|
||||
def read_string_to_null
|
||||
get_string(0)
|
||||
end unless method_defined?(:read_string_to_null)
|
||||
|
||||
# @param [String] str string to write
|
||||
# @param [Integer] len length of string to return
|
||||
# @return [self]
|
||||
# Write +len+ first bytes of +str+ in pointer's contents.
|
||||
#
|
||||
# Same as:
|
||||
# ptr.write_string(str, len) # with len not nil
|
||||
def write_string_length(str, len)
|
||||
put_bytes(0, str, 0, len)
|
||||
end unless method_defined?(:write_string_length)
|
||||
|
||||
# @param [String] str string to write
|
||||
# @param [Integer] len length of string to return
|
||||
# @return [self]
|
||||
# Write +str+ in pointer's contents, or first +len+ bytes if
|
||||
# +len+ is not +nil+.
|
||||
def write_string(str, len=nil)
|
||||
len = str.bytesize unless len
|
||||
# Write the string data without NUL termination
|
||||
put_bytes(0, str, 0, len)
|
||||
end unless method_defined?(:write_string)
|
||||
|
||||
# @param [Type] type type of data to read from pointer's contents
|
||||
# @param [Symbol] reader method to send to +self+ to read +type+
|
||||
# @param [Integer] length
|
||||
# @return [Array]
|
||||
# Read an array of +type+ of length +length+.
|
||||
# @example
|
||||
# ptr.read_array_of_type(TYPE_UINT8, :read_uint8, 4) # -> [1, 2, 3, 4]
|
||||
def read_array_of_type(type, reader, length)
|
||||
ary = []
|
||||
size = FFI.type_size(type)
|
||||
tmp = self
|
||||
length.times { |j|
|
||||
ary << tmp.send(reader)
|
||||
tmp += size unless j == length-1 # avoid OOB
|
||||
}
|
||||
ary
|
||||
end unless method_defined?(:read_array_of_type)
|
||||
|
||||
# @param [Type] type type of data to write to pointer's contents
|
||||
# @param [Symbol] writer method to send to +self+ to write +type+
|
||||
# @param [Array] ary
|
||||
# @return [self]
|
||||
# Write +ary+ in pointer's contents as +type+.
|
||||
# @example
|
||||
# ptr.write_array_of_type(TYPE_UINT8, :put_uint8, [1, 2, 3 ,4])
|
||||
def write_array_of_type(type, writer, ary)
|
||||
size = FFI.type_size(type)
|
||||
ary.each_with_index { |val, i|
|
||||
break unless i < self.size
|
||||
self.send(writer, i * size, val)
|
||||
}
|
||||
self
|
||||
end unless method_defined?(:write_array_of_type)
|
||||
|
||||
# @return [self]
|
||||
def to_ptr
|
||||
self
|
||||
end unless method_defined?(:to_ptr)
|
||||
|
||||
# @param [Symbol,Type] type of data to read
|
||||
# @return [Object]
|
||||
# Read pointer's contents as +type+
|
||||
#
|
||||
# Same as:
|
||||
# ptr.get(type, 0)
|
||||
def read(type)
|
||||
get(type, 0)
|
||||
end unless method_defined?(:read)
|
||||
|
||||
# @param [Symbol,Type] type of data to read
|
||||
# @param [Object] value to write
|
||||
# @return [nil]
|
||||
# Write +value+ of type +type+ to pointer's content
|
||||
#
|
||||
# Same as:
|
||||
# ptr.put(type, 0)
|
||||
def write(type, value)
|
||||
put(type, 0, value)
|
||||
end unless method_defined?(:write)
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,317 @@
|
||||
#
|
||||
# Copyright (C) 2008-2010 Wayne Meissner
|
||||
# Copyright (C) 2008, 2009 Andrea Fazzi
|
||||
# Copyright (C) 2008, 2009 Luc Heinrich
|
||||
#
|
||||
# This file is part of ruby-ffi.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice, this
|
||||
# list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright notice
|
||||
# this list of conditions and the following disclaimer in the documentation
|
||||
# and/or other materials provided with the distribution.
|
||||
# * Neither the name of the Ruby FFI project nor the names of its contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
|
||||
require 'ffi/platform'
|
||||
require 'ffi/struct_layout'
|
||||
require 'ffi/struct_layout_builder'
|
||||
require 'ffi/struct_by_reference'
|
||||
|
||||
module FFI
|
||||
|
||||
class Struct
|
||||
|
||||
# Get struct size
|
||||
# @return [Integer]
|
||||
def size
|
||||
self.class.size
|
||||
end
|
||||
|
||||
# @return [Integer] Struct alignment
|
||||
def alignment
|
||||
self.class.alignment
|
||||
end
|
||||
alias_method :align, :alignment
|
||||
|
||||
# (see FFI::StructLayout#offset_of)
|
||||
def offset_of(name)
|
||||
self.class.offset_of(name)
|
||||
end
|
||||
|
||||
# (see FFI::StructLayout#members)
|
||||
def members
|
||||
self.class.members
|
||||
end
|
||||
|
||||
# @return [Array]
|
||||
# Get array of values from Struct fields.
|
||||
def values
|
||||
members.map { |m| self[m] }
|
||||
end
|
||||
|
||||
# (see FFI::StructLayout#offsets)
|
||||
def offsets
|
||||
self.class.offsets
|
||||
end
|
||||
|
||||
# Clear the struct content.
|
||||
# @return [self]
|
||||
def clear
|
||||
pointer.clear
|
||||
self
|
||||
end
|
||||
|
||||
# Get {Pointer} to struct content.
|
||||
# @return [AbstractMemory]
|
||||
def to_ptr
|
||||
pointer
|
||||
end
|
||||
|
||||
# Get struct size
|
||||
# @return [Integer]
|
||||
def self.size
|
||||
defined?(@layout) ? @layout.size : defined?(@size) ? @size : 0
|
||||
end
|
||||
|
||||
# set struct size
|
||||
# @param [Integer] size
|
||||
# @return [size]
|
||||
def self.size=(size)
|
||||
raise ArgumentError, "Size already set" if defined?(@size) || defined?(@layout)
|
||||
@size = size
|
||||
end
|
||||
|
||||
# @return (see Struct#alignment)
|
||||
def self.alignment
|
||||
@layout.alignment
|
||||
end
|
||||
|
||||
# (see FFI::Type#members)
|
||||
def self.members
|
||||
@layout.members
|
||||
end
|
||||
|
||||
# (see FFI::StructLayout#offsets)
|
||||
def self.offsets
|
||||
@layout.offsets
|
||||
end
|
||||
|
||||
# (see FFI::StructLayout#offset_of)
|
||||
def self.offset_of(name)
|
||||
@layout.offset_of(name)
|
||||
end
|
||||
|
||||
def self.in
|
||||
ptr(:in)
|
||||
end
|
||||
|
||||
def self.out
|
||||
ptr(:out)
|
||||
end
|
||||
|
||||
def self.ptr(flags = :inout)
|
||||
@ref_data_type ||= Type::Mapped.new(StructByReference.new(self))
|
||||
end
|
||||
|
||||
def self.val
|
||||
@val_data_type ||= StructByValue.new(self)
|
||||
end
|
||||
|
||||
def self.by_value
|
||||
self.val
|
||||
end
|
||||
|
||||
def self.by_ref(flags = :inout)
|
||||
self.ptr(flags)
|
||||
end
|
||||
|
||||
class ManagedStructConverter < StructByReference
|
||||
|
||||
# @param [Struct] struct_class
|
||||
def initialize(struct_class)
|
||||
super(struct_class)
|
||||
|
||||
raise NoMethodError, "release() not implemented for class #{struct_class}" unless struct_class.respond_to? :release
|
||||
@method = struct_class.method(:release)
|
||||
end
|
||||
|
||||
# @param [Pointer] ptr
|
||||
# @param [nil] ctx
|
||||
# @return [Struct]
|
||||
def from_native(ptr, ctx)
|
||||
struct_class.new(AutoPointer.new(ptr, @method))
|
||||
end
|
||||
end
|
||||
|
||||
def self.auto_ptr
|
||||
@managed_type ||= Type::Mapped.new(ManagedStructConverter.new(self))
|
||||
end
|
||||
|
||||
|
||||
class << self
|
||||
public
|
||||
|
||||
# @return [StructLayout]
|
||||
# @overload layout
|
||||
# @return [StructLayout]
|
||||
# Get struct layout.
|
||||
# @overload layout(*spec)
|
||||
# @param [Array<Symbol, Integer>,Array(Hash)] spec
|
||||
# @return [StructLayout]
|
||||
# Create struct layout from +spec+.
|
||||
# @example Creating a layout from an array +spec+
|
||||
# class MyStruct < Struct
|
||||
# layout :field1, :int,
|
||||
# :field2, :pointer,
|
||||
# :field3, :string
|
||||
# end
|
||||
# @example Creating a layout from an array +spec+ with offset
|
||||
# class MyStructWithOffset < Struct
|
||||
# layout :field1, :int,
|
||||
# :field2, :pointer, 6, # set offset to 6 for this field
|
||||
# :field3, :string
|
||||
# end
|
||||
# @example Creating a layout from a hash +spec+
|
||||
# class MyStructFromHash < Struct
|
||||
# layout :field1 => :int,
|
||||
# :field2 => :pointer,
|
||||
# :field3 => :string
|
||||
# end
|
||||
# @example Creating a layout with pointers to functions
|
||||
# class MyFunctionTable < Struct
|
||||
# layout :function1, callback([:int, :int], :int),
|
||||
# :function2, callback([:pointer], :void),
|
||||
# :field3, :string
|
||||
# end
|
||||
def layout(*spec)
|
||||
return @layout if spec.size == 0
|
||||
|
||||
warn "[DEPRECATION] Struct layout is already defined for class #{self.inspect}. Redefinition as in #{caller[0]} will be disallowed in ffi-2.0." if defined?(@layout)
|
||||
|
||||
builder = StructLayoutBuilder.new
|
||||
builder.union = self < Union
|
||||
builder.packed = @packed if defined?(@packed)
|
||||
builder.alignment = @min_alignment if defined?(@min_alignment)
|
||||
|
||||
if spec[0].kind_of?(Hash)
|
||||
hash_layout(builder, spec)
|
||||
else
|
||||
array_layout(builder, spec)
|
||||
end
|
||||
builder.size = @size if defined?(@size) && @size > builder.size
|
||||
cspec = builder.build
|
||||
@layout = cspec unless self == Struct
|
||||
@size = cspec.size
|
||||
return cspec
|
||||
end
|
||||
|
||||
|
||||
protected
|
||||
|
||||
def callback(params, ret)
|
||||
mod = enclosing_module
|
||||
ret_type = find_type(ret, mod)
|
||||
if ret_type == Type::STRING
|
||||
raise TypeError, ":string is not allowed as return type of callbacks"
|
||||
end
|
||||
FFI::CallbackInfo.new(ret_type, params.map { |e| find_type(e, mod) })
|
||||
end
|
||||
|
||||
def packed(packed = 1)
|
||||
@packed = packed
|
||||
end
|
||||
alias :pack :packed
|
||||
|
||||
def aligned(alignment = 1)
|
||||
@min_alignment = alignment
|
||||
end
|
||||
alias :align :aligned
|
||||
|
||||
def enclosing_module
|
||||
begin
|
||||
mod = self.name.split("::")[0..-2].inject(Object) { |obj, c| obj.const_get(c) }
|
||||
if mod.respond_to?(:find_type) && (mod.is_a?(FFI::Library) || mod < FFI::Struct)
|
||||
mod
|
||||
end
|
||||
rescue Exception
|
||||
nil
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def find_field_type(type, mod = enclosing_module)
|
||||
if type.kind_of?(Class) && type < Struct
|
||||
FFI::Type::Struct.new(type)
|
||||
|
||||
elsif type.kind_of?(Class) && type < FFI::StructLayout::Field
|
||||
type
|
||||
|
||||
elsif type.kind_of?(::Array)
|
||||
FFI::Type::Array.new(find_field_type(type[0]), type[1])
|
||||
|
||||
else
|
||||
find_type(type, mod)
|
||||
end
|
||||
end
|
||||
|
||||
def find_type(type, mod = enclosing_module)
|
||||
if mod
|
||||
mod.find_type(type)
|
||||
end || FFI.find_type(type)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
# @param [StructLayoutBuilder] builder
|
||||
# @param [Hash] spec
|
||||
# @return [builder]
|
||||
# Add hash +spec+ to +builder+.
|
||||
def hash_layout(builder, spec)
|
||||
spec[0].each do |name, type|
|
||||
builder.add name, find_field_type(type), nil
|
||||
end
|
||||
end
|
||||
|
||||
# @param [StructLayoutBuilder] builder
|
||||
# @param [Array<Symbol, Integer>] spec
|
||||
# @return [builder]
|
||||
# Add array +spec+ to +builder+.
|
||||
def array_layout(builder, spec)
|
||||
i = 0
|
||||
while i < spec.size
|
||||
name, type = spec[i, 2]
|
||||
i += 2
|
||||
|
||||
# If the next param is a Integer, it specifies the offset
|
||||
if spec[i].kind_of?(Integer)
|
||||
offset = spec[i]
|
||||
i += 1
|
||||
else
|
||||
offset = nil
|
||||
end
|
||||
|
||||
builder.add name, find_field_type(type), offset
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,72 @@
|
||||
#
|
||||
# Copyright (C) 2010 Wayne Meissner
|
||||
#
|
||||
# This file is part of ruby-ffi.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice, this
|
||||
# list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright notice
|
||||
# this list of conditions and the following disclaimer in the documentation
|
||||
# and/or other materials provided with the distribution.
|
||||
# * Neither the name of the Ruby FFI project nor the names of its contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.#
|
||||
|
||||
module FFI
|
||||
# This class includes the {FFI::DataConverter} module.
|
||||
class StructByReference
|
||||
include DataConverter
|
||||
|
||||
attr_reader :struct_class
|
||||
|
||||
# @param [Struct] struct_class
|
||||
def initialize(struct_class)
|
||||
unless Class === struct_class and struct_class < FFI::Struct
|
||||
raise TypeError, 'wrong type (expected subclass of FFI::Struct)'
|
||||
end
|
||||
@struct_class = struct_class
|
||||
end
|
||||
|
||||
# Always get {FFI::Type}::POINTER.
|
||||
def native_type(_type = nil)
|
||||
FFI::Type::POINTER
|
||||
end
|
||||
|
||||
# @param [nil, Struct] value
|
||||
# @param [nil] ctx
|
||||
# @return [AbstractMemory] Pointer on +value+.
|
||||
def to_native(value, ctx)
|
||||
return Pointer::NULL if value.nil?
|
||||
|
||||
unless @struct_class === value
|
||||
raise TypeError, "wrong argument type #{value.class} (expected #{@struct_class})"
|
||||
end
|
||||
|
||||
value.pointer
|
||||
end
|
||||
|
||||
# @param [AbstractMemory] value
|
||||
# @param [nil] ctx
|
||||
# @return [Struct]
|
||||
# Create a struct from content of memory +value+.
|
||||
def from_native(value, ctx)
|
||||
@struct_class.new(value)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,96 @@
|
||||
#
|
||||
# Copyright (C) 2008-2010 Wayne Meissner
|
||||
# Copyright (C) 2008, 2009 Andrea Fazzi
|
||||
# Copyright (C) 2008, 2009 Luc Heinrich
|
||||
#
|
||||
# This file is part of ruby-ffi.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice, this
|
||||
# list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright notice
|
||||
# this list of conditions and the following disclaimer in the documentation
|
||||
# and/or other materials provided with the distribution.
|
||||
# * Neither the name of the Ruby FFI project nor the names of its contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
|
||||
module FFI
|
||||
|
||||
class StructLayout
|
||||
|
||||
# @return [Array<Array(Symbol, Integer)>
|
||||
# Get an array of tuples (field name, offset of the field).
|
||||
def offsets
|
||||
members.map { |m| [ m, self[m].offset ] }
|
||||
end
|
||||
|
||||
# @return [Integer]
|
||||
# Get the offset of a field.
|
||||
def offset_of(field_name)
|
||||
self[field_name].offset
|
||||
end
|
||||
|
||||
# An enum {Field} in a {StructLayout}.
|
||||
class Enum < Field
|
||||
|
||||
# @param [AbstractMemory] ptr pointer on a {Struct}
|
||||
# @return [Object]
|
||||
# Get an object of type {#type} from memory pointed by +ptr+.
|
||||
def get(ptr)
|
||||
type.find(ptr.get_int(offset))
|
||||
end
|
||||
|
||||
# @param [AbstractMemory] ptr pointer on a {Struct}
|
||||
# @param value
|
||||
# @return [nil]
|
||||
# Set +value+ into memory pointed by +ptr+.
|
||||
def put(ptr, value)
|
||||
ptr.put_int(offset, type.find(value))
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
class InnerStruct < Field
|
||||
def get(ptr)
|
||||
type.struct_class.new(ptr.slice(self.offset, self.size))
|
||||
end
|
||||
|
||||
def put(ptr, value)
|
||||
raise TypeError, "wrong value type (expected #{type.struct_class})" unless value.is_a?(type.struct_class)
|
||||
ptr.slice(self.offset, self.size).__copy_from__(value.pointer, self.size)
|
||||
end
|
||||
end
|
||||
|
||||
class Mapped < Field
|
||||
def initialize(name, offset, type, orig_field)
|
||||
@orig_field = orig_field
|
||||
super(name, offset, type)
|
||||
end
|
||||
|
||||
def get(ptr)
|
||||
type.from_native(@orig_field.get(ptr), nil)
|
||||
end
|
||||
|
||||
def put(ptr, value)
|
||||
@orig_field.put(ptr, type.to_native(value, nil))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,227 @@
|
||||
#
|
||||
# Copyright (C) 2008-2010 Wayne Meissner
|
||||
#
|
||||
# This file is part of ruby-ffi.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice, this
|
||||
# list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright notice
|
||||
# this list of conditions and the following disclaimer in the documentation
|
||||
# and/or other materials provided with the distribution.
|
||||
# * Neither the name of the Ruby FFI project nor the names of its contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
|
||||
module FFI
|
||||
|
||||
# Build a {StructLayout struct layout}.
|
||||
class StructLayoutBuilder
|
||||
attr_reader :size
|
||||
attr_reader :alignment
|
||||
|
||||
def initialize
|
||||
@size = 0
|
||||
@alignment = 1
|
||||
@min_alignment = 1
|
||||
@packed = false
|
||||
@union = false
|
||||
@fields = Array.new
|
||||
end
|
||||
|
||||
# Set size attribute with +size+ only if +size+ is greater than attribute value.
|
||||
# @param [Integer] size
|
||||
def size=(size)
|
||||
@size = size if size > @size
|
||||
end
|
||||
|
||||
# Set alignment attribute with +align+ only if it is greater than attribute value.
|
||||
# @param [Integer] align
|
||||
def alignment=(align)
|
||||
@alignment = align if align > @alignment
|
||||
@min_alignment = align
|
||||
end
|
||||
|
||||
# Set union attribute.
|
||||
# Set to +true+ to build a {Union} instead of a {Struct}.
|
||||
# @param [Boolean] is_union
|
||||
# @return [is_union]
|
||||
def union=(is_union)
|
||||
@union = is_union
|
||||
end
|
||||
|
||||
# Building a {Union} or a {Struct} ?
|
||||
#
|
||||
# @return [Boolean]
|
||||
#
|
||||
def union?
|
||||
@union
|
||||
end
|
||||
|
||||
# Set packed attribute
|
||||
# @overload packed=(packed) Set alignment and packed attributes to
|
||||
# +packed+.
|
||||
#
|
||||
# @param [Integer] packed
|
||||
#
|
||||
# @return [packed]
|
||||
# @overload packed=(packed) Set packed attribute.
|
||||
# @param packed
|
||||
#
|
||||
# @return [0,1]
|
||||
#
|
||||
def packed=(packed)
|
||||
if packed.is_a?(0.class)
|
||||
@alignment = packed
|
||||
@packed = packed
|
||||
else
|
||||
@packed = packed ? 1 : 0
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
# List of number types
|
||||
NUMBER_TYPES = [
|
||||
Type::INT8,
|
||||
Type::UINT8,
|
||||
Type::INT16,
|
||||
Type::UINT16,
|
||||
Type::INT32,
|
||||
Type::UINT32,
|
||||
Type::LONG,
|
||||
Type::ULONG,
|
||||
Type::INT64,
|
||||
Type::UINT64,
|
||||
Type::FLOAT32,
|
||||
Type::FLOAT64,
|
||||
Type::LONGDOUBLE,
|
||||
Type::BOOL,
|
||||
].freeze
|
||||
|
||||
# @param [String, Symbol] name name of the field
|
||||
# @param [Array, DataConverter, Struct, StructLayout::Field, Symbol, Type] type type of the field
|
||||
# @param [Integer, nil] offset
|
||||
# @return [self]
|
||||
# Add a field to the builder.
|
||||
# @note Setting +offset+ to +nil+ or +-1+ is equivalent to +0+.
|
||||
def add(name, type, offset = nil)
|
||||
|
||||
if offset.nil? || offset == -1
|
||||
offset = @union ? 0 : align(@size, @packed ? [ @packed, type.alignment ].min : [ @min_alignment, type.alignment ].max)
|
||||
end
|
||||
|
||||
#
|
||||
# If a FFI::Type type was passed in as the field arg, try and convert to a StructLayout::Field instance
|
||||
#
|
||||
field = type.is_a?(StructLayout::Field) ? type : field_for_type(name, offset, type)
|
||||
@fields << field
|
||||
@alignment = [ @alignment, field.alignment ].max unless @packed
|
||||
@size = [ @size, field.size + (@union ? 0 : field.offset) ].max
|
||||
|
||||
return self
|
||||
end
|
||||
|
||||
# @param (see #add)
|
||||
# @return (see #add)
|
||||
# Same as {#add}.
|
||||
# @see #add
|
||||
def add_field(name, type, offset = nil)
|
||||
add(name, type, offset)
|
||||
end
|
||||
|
||||
# @param (see #add)
|
||||
# @return (see #add)
|
||||
# Add a struct as a field to the builder.
|
||||
def add_struct(name, type, offset = nil)
|
||||
add(name, Type::Struct.new(type), offset)
|
||||
end
|
||||
|
||||
# @param name (see #add)
|
||||
# @param type (see #add)
|
||||
# @param [Integer] count array length
|
||||
# @param offset (see #add)
|
||||
# @return (see #add)
|
||||
# Add an array as a field to the builder.
|
||||
def add_array(name, type, count, offset = nil)
|
||||
add(name, Type::Array.new(type, count), offset)
|
||||
end
|
||||
|
||||
# @return [StructLayout]
|
||||
# Build and return the struct layout.
|
||||
def build
|
||||
# Add tail padding if the struct is not packed
|
||||
size = @packed ? @size : align(@size, @alignment)
|
||||
|
||||
layout = StructLayout.new(@fields, size, @alignment)
|
||||
layout.__union! if @union
|
||||
layout
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
# @param [Integer] offset
|
||||
# @param [Integer] align
|
||||
# @return [Integer]
|
||||
def align(offset, align)
|
||||
align + ((offset - 1) & ~(align - 1));
|
||||
end
|
||||
|
||||
# @param (see #add)
|
||||
# @return [StructLayout::Field]
|
||||
def field_for_type(name, offset, type)
|
||||
field_class = case
|
||||
when type.is_a?(Type::Function)
|
||||
StructLayout::Function
|
||||
|
||||
when type.is_a?(Type::Struct)
|
||||
StructLayout::InnerStruct
|
||||
|
||||
when type.is_a?(Type::Array)
|
||||
StructLayout::Array
|
||||
|
||||
when type.is_a?(FFI::Enum)
|
||||
StructLayout::Enum
|
||||
|
||||
when NUMBER_TYPES.include?(type)
|
||||
StructLayout::Number
|
||||
|
||||
when type == Type::POINTER
|
||||
StructLayout::Pointer
|
||||
|
||||
when type == Type::STRING
|
||||
StructLayout::String
|
||||
|
||||
when type.is_a?(Class) && type < StructLayout::Field
|
||||
type
|
||||
|
||||
when type.is_a?(DataConverter)
|
||||
return StructLayout::Mapped.new(name, offset, Type::Mapped.new(type), field_for_type(name, offset, type.native_type))
|
||||
|
||||
when type.is_a?(Type::Mapped)
|
||||
return StructLayout::Mapped.new(name, offset, type, field_for_type(name, offset, type.native_type))
|
||||
|
||||
else
|
||||
raise TypeError, "invalid struct field type #{type.inspect}"
|
||||
end
|
||||
|
||||
field_class.new(name, offset, type)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
@@ -0,0 +1,232 @@
|
||||
require 'tempfile'
|
||||
require 'open3'
|
||||
|
||||
module FFI
|
||||
|
||||
# ConstGenerator turns C constants into ruby values.
|
||||
#
|
||||
# @example a simple example for stdio
|
||||
# require 'ffi/tools/const_generator'
|
||||
# cg = FFI::ConstGenerator.new('stdio') do |gen|
|
||||
# gen.const(:SEEK_SET)
|
||||
# gen.const('SEEK_CUR')
|
||||
# gen.const('seek_end') # this constant does not exist
|
||||
# end # #calculate called automatically at the end of the block
|
||||
#
|
||||
# cg['SEEK_SET'] # => 0
|
||||
# cg['SEEK_CUR'] # => 1
|
||||
# cg['seek_end'] # => nil
|
||||
# cg.to_ruby # => "SEEK_SET = 0\nSEEK_CUR = 1\n# seek_end not available"
|
||||
class ConstGenerator
|
||||
@options = {}
|
||||
attr_reader :constants
|
||||
|
||||
# Creates a new constant generator that uses +prefix+ as a name, and an
|
||||
# options hash.
|
||||
#
|
||||
# The only option is +:required+, which if set to +true+ raises an error if a
|
||||
# constant you have requested was not found.
|
||||
#
|
||||
# @param [#to_s] prefix
|
||||
# @param [Hash] options
|
||||
# @return
|
||||
# @option options [Boolean] :required
|
||||
# @overload initialize(prefix, options)
|
||||
# @overload initialize(prefix, options) { |gen| ... }
|
||||
# @yieldparam [ConstGenerator] gen new generator is passed to the block
|
||||
# When passed a block, {#calculate} is automatically called at the end of
|
||||
# the block, otherwise you must call it yourself.
|
||||
def initialize(prefix = nil, options = {})
|
||||
@includes = ['stdio.h', 'stddef.h']
|
||||
@constants = {}
|
||||
@prefix = prefix
|
||||
|
||||
@required = options[:required]
|
||||
@options = options
|
||||
|
||||
if block_given? then
|
||||
yield self
|
||||
calculate self.class.options.merge(options)
|
||||
end
|
||||
end
|
||||
# Set class options
|
||||
# These options are merged with {#initialize} options when it is called with a block.
|
||||
# @param [Hash] options
|
||||
# @return [Hash] class options
|
||||
def self.options=(options)
|
||||
@options = options
|
||||
end
|
||||
# Get class options.
|
||||
# @return [Hash] class options
|
||||
def self.options
|
||||
@options
|
||||
end
|
||||
# @param [String] name
|
||||
# @return constant value (converted if a +converter+ was defined).
|
||||
# Access a constant by name.
|
||||
def [](name)
|
||||
@constants[name].converted_value
|
||||
end
|
||||
|
||||
# Request the value for C constant +name+.
|
||||
#
|
||||
# @param [#to_s] name C constant name
|
||||
# @param [String] format a printf format string to print the value out
|
||||
# @param [String] cast a C cast for the value
|
||||
# @param ruby_name alternate ruby name for {#to_ruby}
|
||||
#
|
||||
# @overload const(name, format=nil, cast='', ruby_name=nil, converter=nil)
|
||||
# +converter+ is a Method or a Proc.
|
||||
# @param [#call] converter convert the value from a string to the appropriate
|
||||
# type for {#to_ruby}.
|
||||
# @overload const(name, format=nil, cast='', ruby_name=nil) { |value| ... }
|
||||
# Use a converter block. This block convert the value from a string to the
|
||||
# appropriate type for {#to_ruby}.
|
||||
# @yieldparam value constant value
|
||||
def const(name, format = nil, cast = '', ruby_name = nil, converter = nil,
|
||||
&converter_proc)
|
||||
format ||= '%d'
|
||||
cast ||= ''
|
||||
|
||||
if converter_proc and converter then
|
||||
raise ArgumentError, "Supply only converter or converter block"
|
||||
end
|
||||
|
||||
converter = converter_proc if converter.nil?
|
||||
|
||||
const = Constant.new name, format, cast, ruby_name, converter
|
||||
@constants[name.to_s] = const
|
||||
return const
|
||||
end
|
||||
|
||||
# Calculate constants values.
|
||||
# @param [Hash] options
|
||||
# @option options [String] :cppflags flags for C compiler
|
||||
# @return [nil]
|
||||
# @raise if a constant is missing and +:required+ was set to +true+ (see {#initialize})
|
||||
def calculate(options = {})
|
||||
binary_path = nil
|
||||
|
||||
Tempfile.open("#{@prefix}.const_generator") do |f|
|
||||
binary_path = f.path + ".bin"
|
||||
@includes.each do |inc|
|
||||
f.puts "#include <#{inc}>"
|
||||
end
|
||||
f.puts "\nint main(int argc, char **argv)\n{"
|
||||
|
||||
@constants.each_value do |const|
|
||||
f.puts <<-EOF
|
||||
#ifdef #{const.name}
|
||||
printf("#{const.name} #{const.format}\\n", #{const.cast}#{const.name});
|
||||
#endif
|
||||
EOF
|
||||
end
|
||||
|
||||
f.puts "\n\treturn 0;\n}"
|
||||
f.flush
|
||||
|
||||
cc = ENV['CC'] || 'gcc'
|
||||
output = `#{cc} #{options[:cppflags]} -D_DARWIN_USE_64_BIT_INODE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -x c -Wall -Werror #{f.path} -o #{binary_path} 2>&1`
|
||||
|
||||
unless $?.success? then
|
||||
output = output.split("\n").map { |l| "\t#{l}" }.join "\n"
|
||||
raise "Compilation error generating constants #{@prefix}:\n#{output}"
|
||||
end
|
||||
end
|
||||
|
||||
output = `#{binary_path}`
|
||||
File.unlink(binary_path + (FFI::Platform.windows? ? ".exe" : ""))
|
||||
output.each_line do |line|
|
||||
line =~ /^(\S+)\s(.*)$/
|
||||
const = @constants[$1]
|
||||
const.value = $2
|
||||
end
|
||||
|
||||
missing_constants = @constants.select do |name, constant|
|
||||
constant.value.nil?
|
||||
end.map { |name,| name }
|
||||
|
||||
if @required and not missing_constants.empty? then
|
||||
raise "Missing required constants for #{@prefix}: #{missing_constants.join ', '}"
|
||||
end
|
||||
end
|
||||
|
||||
# Dump constants to +io+.
|
||||
# @param [#puts] io
|
||||
# @return [nil]
|
||||
def dump_constants(io)
|
||||
@constants.each do |name, constant|
|
||||
name = [@prefix, name].join '.' if @prefix
|
||||
io.puts "#{name} = #{constant.converted_value}"
|
||||
end
|
||||
end
|
||||
|
||||
# Outputs values for discovered constants. If the constant's value was
|
||||
# not discovered it is not omitted.
|
||||
# @return [String]
|
||||
def to_ruby
|
||||
@constants.sort_by { |name,| name }.map do |name, constant|
|
||||
if constant.value.nil? then
|
||||
"# #{name} not available"
|
||||
else
|
||||
constant.to_ruby
|
||||
end
|
||||
end.join "\n"
|
||||
end
|
||||
|
||||
# Add additional C include file(s) to calculate constants from.
|
||||
# @note +stdio.h+ and +stddef.h+ automatically included
|
||||
# @param [List<String>, Array<String>] i include file(s)
|
||||
# @return [Array<String>] array of include files
|
||||
def include(*i)
|
||||
@includes |= i.flatten
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
# This class hold constants for {ConstGenerator}
|
||||
class ConstGenerator::Constant
|
||||
|
||||
attr_reader :name, :format, :cast
|
||||
attr_accessor :value
|
||||
|
||||
# @param [#to_s] name
|
||||
# @param [String] format a printf format string to print the value out
|
||||
# @param [String] cast a C cast for the value
|
||||
# @param ruby_name alternate ruby name for {#to_ruby}
|
||||
# @param [#call] converter convert the value from a string to the appropriate
|
||||
# type for {#to_ruby}.
|
||||
def initialize(name, format, cast, ruby_name = nil, converter=nil)
|
||||
@name = name
|
||||
@format = format
|
||||
@cast = cast
|
||||
@ruby_name = ruby_name
|
||||
@converter = converter
|
||||
@value = nil
|
||||
end
|
||||
|
||||
# Return constant value (converted if a +converter+ was defined).
|
||||
# @return constant value.
|
||||
def converted_value
|
||||
if @converter
|
||||
@converter.call(@value)
|
||||
else
|
||||
@value
|
||||
end
|
||||
end
|
||||
|
||||
# get constant ruby name
|
||||
# @return [String]
|
||||
def ruby_name
|
||||
@ruby_name || @name
|
||||
end
|
||||
|
||||
# Get an evaluable string from constant.
|
||||
# @return [String]
|
||||
def to_ruby
|
||||
"#{ruby_name} = #{converted_value}"
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
@@ -0,0 +1,105 @@
|
||||
require 'ffi/tools/struct_generator'
|
||||
require 'ffi/tools/const_generator'
|
||||
|
||||
module FFI
|
||||
|
||||
##
|
||||
# Generate files with C structs for FFI::Struct and C constants.
|
||||
#
|
||||
# == A simple example
|
||||
#
|
||||
# In file +zlib.rb.ffi+:
|
||||
# module Zlib
|
||||
# @@@
|
||||
# constants do |c|
|
||||
# c.include "zlib.h"
|
||||
# c.const :ZLIB_VERNUM
|
||||
# end
|
||||
# @@@
|
||||
#
|
||||
# class ZStream < FFI::Struct
|
||||
#
|
||||
# struct do |s|
|
||||
# s.name "struct z_stream_s"
|
||||
# s.include "zlib.h"
|
||||
#
|
||||
# s.field :next_in, :pointer
|
||||
# s.field :avail_in, :uint
|
||||
# s.field :total_in, :ulong
|
||||
# end
|
||||
# @@@
|
||||
# end
|
||||
# end
|
||||
#
|
||||
# Translate the file:
|
||||
# require "ffi/tools/generator"
|
||||
# FFI::Generator.new "zlib.rb.ffi", "zlib.rb"
|
||||
#
|
||||
# Generates the file +zlib.rb+ with constant values and offsets:
|
||||
# module Zlib
|
||||
# ZLIB_VERNUM = 4784
|
||||
#
|
||||
# class ZStream < FFI::Struct
|
||||
# layout :next_in, :pointer, 0,
|
||||
# :avail_in, :uint, 8,
|
||||
# :total_in, :ulong, 16
|
||||
# end
|
||||
#
|
||||
# @see FFI::Generator::Task for easy integration in a Rakefile
|
||||
class Generator
|
||||
|
||||
def initialize(ffi_name, rb_name, options = {})
|
||||
@ffi_name = ffi_name
|
||||
@rb_name = rb_name
|
||||
@options = options
|
||||
@name = File.basename rb_name, '.rb'
|
||||
|
||||
file = File.read @ffi_name
|
||||
|
||||
new_file = file.gsub(/^( *)@@@(.*?)@@@/m) do
|
||||
@constants = []
|
||||
@structs = []
|
||||
|
||||
indent = $1
|
||||
original_lines = $2.count "\n"
|
||||
|
||||
instance_eval $2, @ffi_name, $`.count("\n")
|
||||
|
||||
new_lines = []
|
||||
@constants.each { |c| new_lines << c.to_ruby }
|
||||
@structs.each { |s| new_lines << s.generate_layout }
|
||||
|
||||
new_lines = new_lines.join("\n").split "\n" # expand multiline blocks
|
||||
new_lines = new_lines.map { |line| indent + line }
|
||||
|
||||
padding = original_lines - new_lines.length
|
||||
new_lines += [nil] * padding if padding >= 0
|
||||
|
||||
new_lines.join "\n"
|
||||
end
|
||||
|
||||
open @rb_name, 'w' do |f|
|
||||
f.puts "# This file is generated from `#{@ffi_name}'. Do not edit."
|
||||
f.puts
|
||||
f.puts new_file
|
||||
end
|
||||
end
|
||||
|
||||
def constants(options = {}, &block)
|
||||
@constants << FFI::ConstGenerator.new(@name, @options.merge(options), &block)
|
||||
end
|
||||
|
||||
def struct(options = {}, &block)
|
||||
@structs << FFI::StructGenerator.new(@name, @options.merge(options), &block)
|
||||
end
|
||||
|
||||
##
|
||||
# Utility converter for constants
|
||||
|
||||
def to_s
|
||||
proc { |obj| obj.to_s.inspect }
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
require 'ffi/tools/generator'
|
||||
require 'rake'
|
||||
require 'rake/tasklib'
|
||||
|
||||
##
|
||||
# Add Rake tasks that generate files with C structs for FFI::Struct and C constants.
|
||||
#
|
||||
# @example a simple example for your Rakefile
|
||||
# require "ffi/tools/generator_task"
|
||||
# # Add a task to generate my_object.rb out of my_object.rb.ffi
|
||||
# FFI::Generator::Task.new ["my_object.rb"], cflags: "-I/usr/local/mylibrary"
|
||||
#
|
||||
# The generated files are also added to the 'clear' task.
|
||||
#
|
||||
# @see FFI::Generator for a description of the file content
|
||||
class FFI::Generator::Task < Rake::TaskLib
|
||||
|
||||
def initialize(rb_names, options={})
|
||||
task :clean do rm_f rb_names end
|
||||
|
||||
rb_names.each do |rb_name|
|
||||
ffi_name = "#{rb_name}.ffi"
|
||||
|
||||
file rb_name => ffi_name do |t|
|
||||
puts "Generating #{rb_name}..." if Rake.application.options.trace
|
||||
|
||||
FFI::Generator.new ffi_name, rb_name, options
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
@@ -0,0 +1,195 @@
|
||||
require 'tempfile'
|
||||
|
||||
module FFI
|
||||
|
||||
##
|
||||
# Generates an FFI Struct layout.
|
||||
#
|
||||
# Given the @@@ portion in:
|
||||
#
|
||||
# class Zlib::ZStream < FFI::Struct
|
||||
# @@@
|
||||
# name "struct z_stream_s"
|
||||
# include "zlib.h"
|
||||
#
|
||||
# field :next_in, :pointer
|
||||
# field :avail_in, :uint
|
||||
# field :total_in, :ulong
|
||||
#
|
||||
# # ...
|
||||
# @@@
|
||||
# end
|
||||
#
|
||||
# StructGenerator will create the layout:
|
||||
#
|
||||
# layout :next_in, :pointer, 0,
|
||||
# :avail_in, :uint, 4,
|
||||
# :total_in, :ulong, 8,
|
||||
# # ...
|
||||
#
|
||||
# StructGenerator does its best to pad the layout it produces to preserve
|
||||
# line numbers. Place the struct definition as close to the top of the file
|
||||
# for best results.
|
||||
|
||||
class StructGenerator
|
||||
@options = {}
|
||||
attr_accessor :size
|
||||
attr_reader :fields
|
||||
|
||||
def initialize(name, options = {})
|
||||
@name = name
|
||||
@struct_name = nil
|
||||
@includes = []
|
||||
@fields = []
|
||||
@found = false
|
||||
@size = nil
|
||||
|
||||
if block_given? then
|
||||
yield self
|
||||
calculate self.class.options.merge(options)
|
||||
end
|
||||
end
|
||||
def self.options=(options)
|
||||
@options = options
|
||||
end
|
||||
def self.options
|
||||
@options
|
||||
end
|
||||
def calculate(options = {})
|
||||
binary = File.join Dir.tmpdir, "rb_struct_gen_bin_#{Process.pid}"
|
||||
|
||||
raise "struct name not set" if @struct_name.nil?
|
||||
|
||||
Tempfile.open("#{@name}.struct_generator") do |f|
|
||||
f.puts "#include <stdio.h>"
|
||||
|
||||
@includes.each do |inc|
|
||||
f.puts "#include <#{inc}>"
|
||||
end
|
||||
|
||||
f.puts "#include <stddef.h>\n\n"
|
||||
f.puts "int main(int argc, char **argv)\n{"
|
||||
f.puts " #{@struct_name} s;"
|
||||
f.puts %[ printf("sizeof(#{@struct_name}) %u\\n", (unsigned int) sizeof(#{@struct_name}));]
|
||||
|
||||
@fields.each do |field|
|
||||
f.puts <<-EOF
|
||||
printf("#{field.name} %u %u\\n", (unsigned int) offsetof(#{@struct_name}, #{field.name}),
|
||||
(unsigned int) sizeof(s.#{field.name}));
|
||||
EOF
|
||||
end
|
||||
|
||||
f.puts "\n return 0;\n}"
|
||||
f.flush
|
||||
|
||||
cc = ENV['CC'] || 'gcc'
|
||||
output = `#{cc} #{options[:cppflags]} #{options[:cflags]} -D_DARWIN_USE_64_BIT_INODE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -x c -Wall -Werror #{f.path} -o #{binary} 2>&1`
|
||||
|
||||
unless $?.success? then
|
||||
@found = false
|
||||
output = output.split("\n").map { |l| "\t#{l}" }.join "\n"
|
||||
raise "Compilation error generating struct #{@name} (#{@struct_name}):\n#{output}"
|
||||
end
|
||||
end
|
||||
|
||||
output = `#{binary}`.split "\n"
|
||||
File.unlink(binary + (FFI::Platform.windows? ? ".exe" : ""))
|
||||
sizeof = output.shift
|
||||
unless @size
|
||||
m = /\s*sizeof\([^)]+\) (\d+)/.match sizeof
|
||||
@size = m[1]
|
||||
end
|
||||
|
||||
line_no = 0
|
||||
output.each do |line|
|
||||
md = line.match(/.+ (\d+) (\d+)/)
|
||||
@fields[line_no].offset = md[1].to_i
|
||||
@fields[line_no].size = md[2].to_i
|
||||
|
||||
line_no += 1
|
||||
end
|
||||
|
||||
@found = true
|
||||
end
|
||||
|
||||
def field(name, type=nil)
|
||||
field = Field.new(name, type)
|
||||
@fields << field
|
||||
return field
|
||||
end
|
||||
|
||||
def found?
|
||||
@found
|
||||
end
|
||||
|
||||
def dump_config(io)
|
||||
io.puts "rbx.platform.#{@name}.sizeof = #{@size}"
|
||||
|
||||
@fields.each { |field| io.puts field.to_config(@name) }
|
||||
end
|
||||
|
||||
def generate_layout
|
||||
buf = ""
|
||||
|
||||
@fields.each_with_index do |field, i|
|
||||
if buf.empty?
|
||||
buf << "layout :#{field.name}, :#{field.type}, #{field.offset}"
|
||||
else
|
||||
buf << " :#{field.name}, :#{field.type}, #{field.offset}"
|
||||
end
|
||||
|
||||
if i < @fields.length - 1
|
||||
buf << ",\n"
|
||||
end
|
||||
end
|
||||
|
||||
buf
|
||||
end
|
||||
|
||||
def get_field(name)
|
||||
@fields.find { |f| name == f.name }
|
||||
end
|
||||
|
||||
def include(i)
|
||||
@includes << i
|
||||
end
|
||||
|
||||
def name(n)
|
||||
@struct_name = n
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
##
|
||||
# A field in a Struct.
|
||||
|
||||
class StructGenerator::Field
|
||||
|
||||
attr_reader :name
|
||||
attr_reader :type
|
||||
attr_reader :offset
|
||||
attr_accessor :size
|
||||
|
||||
def initialize(name, type)
|
||||
@name = name
|
||||
@type = type
|
||||
@offset = nil
|
||||
@size = nil
|
||||
end
|
||||
|
||||
def offset=(o)
|
||||
@offset = o
|
||||
end
|
||||
|
||||
def to_config(name)
|
||||
buf = []
|
||||
buf << "rbx.platform.#{name}.#{@name}.offset = #{@offset}"
|
||||
buf << "rbx.platform.#{name}.#{@name}.size = #{@size}"
|
||||
buf << "rbx.platform.#{name}.#{@name}.type = #{@type}" if @type
|
||||
buf
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user