diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5c0a9a0..1082c98 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,89 +5,61 @@ on: pull_request: jobs: - build-and-test: + msrv: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - - # We need this to cache the .so files in /usr/local/lib... - - name: Give tar root permissions - run: sudo chmod u+s /bin/tar - - # We'll use the commit hash as the key for caching wireshark's repo - - name: Get wireshark commit hash - id: get-wireshark-hash + - name: Install Wireshark 4.4 from PPA run: | - echo "hash=$(git submodule status epan-sys/wireshark | awk '{print $1;}')" >> $GITHUB_OUTPUT - - - name: Cache wireshark source - uses: actions/cache@v3 - id: cache-wireshark + sudo add-apt-repository ppa:wireshark-dev/stable -y + sudo apt-get update + sudo apt-get install -y \ + build-essential cmake ninja-build pkg-config \ + libwireshark-dev libwiretap-dev libwsutil-dev \ + libglib2.0-dev libgcrypt20-dev libpcap-dev tshark + - name: Install MSRV toolchain + uses: actions-rs/toolchain@v1 with: - path: epan-sys/wireshark - key: ${{ runner.os }}-wireshark-source-${{ steps.get-wireshark-hash.outputs.hash }} - - - name: Cache libwireshark.so - uses: actions/cache@v3 - id: cache-libwireshark + toolchain: "1.85" + override: true + - name: Check on MSRV + uses: actions-rs/cargo@v1 with: - path: | - /usr/local/lib/libwireshark.so* - /usr/local/lib/libwiretap.so* - /usr/local/lib/libwsutil.so* - /usr/local/lib/pkgconfig/wireshark.pc - key: ${{ runner.os }}-wireshark-dylib-${{ steps.get-wireshark-hash.outputs.hash }} - - - name: Checkout wireshark - if: steps.cache-wireshark.outputs.cache-hit != 'true' - run: git submodule update --init --recursive ./epan-sys/wireshark - - - name: Set up wireshark dependencies - run: sudo bash ./epan-sys/wireshark/tools/debian-setup.sh + command: check + args: --all-targets - - name: Install ninja - if: steps.cache-libwireshark.outputs.cache-hit != 'true' - run: sudo apt-get install -y ninja-build + build-and-test: + strategy: + matrix: + os: [ubuntu-latest] + rust: [stable] + fail-fast: false + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v3 - - name: Build and install wireshark - if: steps.cache-libwireshark.outputs.cache-hit != 'true' + - name: Install Wireshark 4.4 from PPA run: | - cd ./epan-sys/wireshark && \ - mkdir -p build && \ - cd build && \ - cmake -G Ninja \ - -DBUILD_androiddump=OFF \ - -DBUILD_capinfos=OFF \ - -DBUILD_captype=OFF \ - -DBUILD_ciscodump=OFF \ - -DBUILD_corbaidl2wrs=OFF \ - -DBUILD_dcerpcidl2wrs=OFF \ - -DBUILD_dftest=OFF \ - -DBUILD_dpauxmon=OFF \ - -DBUILD_dumpcap=OFF \ - -DBUILD_editcap=OFF \ - -DBUILD_etwdump=OFF \ - -DBUILD_logray=OFF \ - -DBUILD_mergecap=OFF \ - -DBUILD_randpkt=OFF \ - -DBUILD_randpktdump=OFF \ - -DBUILD_rawshark=OFF \ - -DBUILD_reordercap=OFF \ - -DBUILD_sshdump=OFF \ - -DBUILD_text2pcap=OFF \ - -DBUILD_tfshark=OFF \ - -DBUILD_tshark=OFF \ - -DBUILD_wifidump=OFF \ - -DBUILD_wireshark=OFF \ - -DBUILD_xxx2deb=OFF \ - .. && \ - ninja libwireshark.so && \ - sudo ninja install - - - name: Check libwireshark.so + sudo add-apt-repository ppa:wireshark-dev/stable -y + sudo apt-get update + sudo apt-get install -y \ + build-essential \ + cmake \ + ninja-build \ + pkg-config \ + libwireshark-dev \ + libwiretap-dev \ + libwsutil-dev \ + libglib2.0-dev \ + libgcrypt20-dev \ + libpcap-dev \ + tshark + + - name: Verify wireshark installation run: | - ls /usr/local/lib | grep libwireshark.so* && \ - pkg-config --libs wireshark + pkg-config --exists wireshark && echo "pkg-config: OK" || echo "pkg-config: Not found" + pkg-config --modversion wireshark 2>/dev/null || echo "Version not available via pkg-config" + tshark --version | head -1 - name: Set up Rust toolchain uses: actions-rs/toolchain@v1 @@ -113,9 +85,31 @@ jobs: command: build args: --all-targets - - name: Run tests + - name: Run unit tests + uses: actions-rs/cargo@v1 + with: + command: test + args: --lib + + - name: Run integration tests uses: actions-rs/cargo@v1 - env: - LD_LIBRARY_PATH: /usr/local/lib with: command: test + args: --test integration_test + + - name: Build examples + uses: actions-rs/cargo@v1 + with: + command: build + args: --examples + + - name: Verify plugin artifacts + run: | + ls -la target/debug/examples/ || echo "No examples built" + if [ -f target/debug/examples/libbuilder.so ]; then + echo "Plugin built successfully" + file target/debug/examples/libbuilder.so + ldd target/debug/examples/libbuilder.so || echo "ldd failed (expected if libs not in path)" + else + echo "Plugin not found" + fi diff --git a/Cargo.toml b/Cargo.toml index 27db750..ef1007d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,3 +1,6 @@ [workspace] members = ["epan-sys", "wsdf"] resolver = "2" + +[workspace.lints.rust] +unexpected_cfgs = { level = "warn", check-cfg = ['cfg(wireshark4)', 'cfg(wireshark44)', 'cfg(wireshark46)'] } diff --git a/docs/TODO.md b/docs/TODO.md index e01e73c..d99d80e 100644 --- a/docs/TODO.md +++ b/docs/TODO.md @@ -1,13 +1,15 @@ +# wsdf TODO + + API Improvements - Lua API Parity Focus The overarching goal is to provide a Lua-like API with Rust ergonomics and - native C performance. After benchmarking it may turn out that they - performance gain is minimal, however, it might be more important for - usability of this crate to at least reach parity with Lua API. + native C performance. After benchmarking it may turn out that the performance + gain is minimal, however, it might be more important for usability of this + crate to at least reach parity with the Lua API. - Generating Wireshark's Lua API documentation by running make-wsluarm.py, the - we are currently missing the following for implementation for decent-ish - parity: + Generating Wireshark's Lua API documentation by running make-wsluarm.py, we + are currently missing the following for decent-ish parity: -- 1. Core Missing Features -- @@ -24,8 +26,8 @@ API Improvements - Lua API Parity Focus ::guid() etc. for ergonomic field creation. DissectorTable Runtime Access: Allow dynamic dissector table manipulation - with add(), remove(), try(), get_dissector() equivalent to Lua's DissectorTable - class methods. + with add(), remove(), try(), get_dissector() equivalent to Lua's + DissectorTable class methods. -- 2. Advanced Protocol Features -- @@ -35,9 +37,6 @@ API Improvements - Lua API Parity Focus Field Access System: Add Field and FieldInfo classes for accessing fields from other dissectors, enabling cross-protocol field references. - Enhanced String Encoding: Full charset support beyond current UTF8/ASCII - basic implementation to match Lua's encoding options. - Address Manipulation: Implement Address class with ip(), ipv6(), ether() constructors and comparison operations for network address handling. @@ -49,213 +48,93 @@ API Improvements - Lua API Parity Focus Listener/Tap System: Packet statistics and analysis framework with Listener.new() equivalent and tap registration. - ByteArray Utilities: Data manipulation helpers for protocol processing - beyond current TvbRange byte extraction. - - Tree API: Implement RAII-style tree management to eliminate - end_subtree calls + Tree API: Implement RAII-style tree management to eliminate end_subtree + calls, probably via a SubtreeGuard<'parent> pattern. -Developer Experience - Build System: Improve platform detection and Wireshark version compatibility + Error type: Unify error handling before implementing the above — currently + inconsistent across the codebase. - Installation Tools: Automated plugin installation and management Be aware of possible incoming changes to the plugin API - There is [discussion](https://lists.wireshark.org/archives/wireshark-dev/202312/msg00000.html) - on the wireshark-dev mailing list about changes to the plugin API. This has - been in the works for a while, and got reverted once. But it is likely to - happen in the future. Ideally maintainers should keep an eye on this. - Interesting thread to follow as [well.](https://gitlab.com/wireshark/wireshark/-/merge_requests/13747) - -Create integration testing for wsdf generated plugins - - As of now, besides unit tests, theres not an end to end testing framework - that will give a better outlook on parity of wsdf generated plugins and - wireshark native plugin functionality. - - A good approach would be to hook onto the test suite of wireshark which uses - tshark to run against sample pcap files for integration testing. - - Testing should validate Lua API parity by comparing output from equivalent - Lua and Rust dissectors against the same packet data. We can possibly do - this using a tshark based flow. - - -Build System Enhancements (Probably will priotise this) - - Current Issues Identified: - - macOS Wireshark.app bundle detection fails (libwireshark.18.dylib not found) - - No platform-specific library path detection - - Missing versioned library handling (libwireshark.18 vs libwireshark) - - No soname generation for cdylibs (required for Linux packaging) - - Limited cross-compilation support - - No post-build rpath fixing for macOS app bundles - - Poor error messages with no actionable guidance - - No proper shared library link arguments for cross-platform compatibility - - Enhanced Multi-Tier Detection Strategy: - 1. Cargo.toml metadata configuration (target-specific overrides) - 2. Environment variables (WIRESHARK_LIB_DIR, WIRESHARK_VERSION) - 3. Platform-specific auto-detection with multiple search paths - 4. pkg-config fallback - 5. Smoke test compilation (libz-sys approach) - 6. Source build as last resort - - Platform-Specific Detection Paths: - macOS: - - /Applications/Wireshark.app/Contents/Frameworks (versioned dylibs) - - /opt/homebrew/lib (Apple Silicon Homebrew) - - /usr/local/lib (Intel Homebrew) - - /opt/local/lib (MacPorts) - - Linux: - - /usr/lib/x86_64-linux-gnu (Ubuntu/Debian multiarch) - - /usr/lib64, /usr/lib (standard locations) - - /usr/local/lib (custom builds) - - Distribution-specific paths - - Windows: - - C:\Program Files\Wireshark - - Registry-based detection - - DLL search path configuration - - Cargo.toml Metadata Integration: - [package.metadata.wsdf] - verbose_build = true - generate_soname = true - fix_rpaths = true - - [package.metadata.wsdf.target."aarch64-apple-darwin"] - wireshark_lib_dir = "/Applications/Wireshark.app/Contents/Frameworks" - fix_app_bundle_rpaths = true - preferred_version = "18" - - User Workflow Support: - Zero Config (90% users): - cargo build --example builder - cargo post build --example builder (with post-processing) - - Environment Override (8% users): - WIRESHARK_LIB_DIR=/path cargo build - WIRESHARK_VERSION=18 cargo build - - Advanced Configuration (2% users): - Target-specific Cargo.toml metadata - Cross-compilation support - CI/CD integration - - cdylib soname Generation (inspired by cdylib-link-lines crate): - - Automatic soname for versions >= 1.0.0 - - Format: libname.so.{major_version} - - Linux: -Wl,-soname,libname.so.1 - - macOS: -Wl,-install_name,@rpath/libname.dylib - - Reference: https://github.com/lu-zero/cdylib-link-lines - - Post-Build Processing (post_build.rs): - macOS: - - Fix rpath for Wireshark.app bundles - - Set proper install_name with @rpath - - install_name_tool integration - - Linux: - - Verify soname is set correctly - - Optional plugin installation - - All Platforms: - - Automatic plugin directory installation - - Build artifact validation - - Professional Error Handling: - - Clear platform-specific installation instructions - - Actionable error messages with solutions - - Library version compatibility checking - - Development headers validation - - Dependencies to Add: - build-target = "0.4" # Target detection - cargo_metadata = "0.18" # Metadata reading - semver = "1.0" # Version parsing - cargo-post (user install) # Post-build processing - - Implementation Priority: - 1. Enhanced platform detection in build.rs - 2. Cargo.toml metadata support - 3. Post-build script for rpath/soname - 4. Professional error handling - 5. Cross-compilation testing - 6. Documentation and examples - - Windows Testing: - Currently untested and needs investigation for: - - Library detection methods - - DLL search path configuration - - Visual Studio vs MinGW compatibility - -Code Generation Research and Future Automation - - Wireshark's Lua API is largely auto-generated from C code using macro-based - annotation and Python scripts. Understanding this system could enable similar - automation for the Rust port: + There is discussion on the wireshark-dev mailing list about changes to the + plugin API (https://lists.wireshark.org/archives/wireshark-dev/202312/msg00000.html). + This has been in the works for a while, and got reverted once. MR !13747 + (https://gitlab.com/wireshark/wireshark/-/merge_requests/13747) is still open + as of 2026-04-26 and represents a revert of a prior redesign. No action + needed until it merges, but check before any 5.0 branch cut. - Wireshark's Code Generation System: + Wireshark 5.0 milestone expired 2026-04-01 at ~45% complete and is currently + undated. Both 4.4 and 4.6 are still actively supported. - Annotation Macros: C source uses WSLUA_CLASS_DEFINE, WSLUA_FUNCTION, - WSLUA_METHOD, WSLUA_CONSTRUCTOR macros to mark exportable functions. - Registration Generation: make-reg.py (epan/wslua/make-reg.py) scans C - files for these macros and generates register_wslua.c and declare_wslua.h - automatically. +Multi-version Wireshark support - Documentation Generation: make-wsluarm.py extracts Doxygen-style comments - from macro-annotated functions to generate AsciiDoc API documentation. + Homebrew ships 4.6.4 while the submodule tracks 4.4.14. macOS users on the + Homebrew install get a plugin_want_minor mismatch at load time today. The + fix follows the openssl-sys pattern: commit bindings_44.rs and bindings_46.rs + side by side, emit cargo:rustc-cfg=wireshark44 / wireshark46 flags from + build.rs, and cfg-gate any ABI differences in lib.rs. - Build Integration: CMake integrates these scripts to regenerate binding - code when C sources change, maintaining API consistency. + Next concrete step is to bump the submodule to 4.6.4, regenerate + bindings_46.rs, and verify that the 4.6.1 ABI break (Issue 20881) does not + touch proto_plugin, proto_tree_add_item, or field_info in a way that breaks + wsdf source. Windows hardcodes C:\Program Files\Wireshark which covers ~90% + of installs; registry detection is deferred. - Potential Rust Automation Approaches: - Macro-based Annotations: Develop Rust macros that annotate functions for - Lua-style API export, similar to Wireshark's WSLUA_* macros? +Integration testing for wsdf generated plugins - Use proc macros to generate boilerplate registration code, field builders, - and FFI bindings from high-level declarations. + Basic integration testing is in place in tests/integration_test.rs. The + dissect_bytes() helper wraps raw bytes in an Ethernet+IP frame using + text2pcap, loads the built plugin via the personal Wireshark plugin directory, + runs tshark -T json, and asserts on the parsed serde_json::Value. The + test_dissection_uncompressed_packet test covers the builder example end to end. - Build Script Integration: Enhance build.rs to scan annotated Rust code - and auto-generate plugin registration, similar to make-reg.py workflow. + What is still missing is Lua API parity diffing: running the same pcap through + an equivalent Lua dissector and an equivalent wsdf dissector and asserting the + JSON output is identical. A good approach would be to run two tshark + invocations (one with WIRESHARK_EXTRA_PLUGIN_DIRS pointing at the built .so, + one with -X lua_script:equivalent.lua) and diff the wsdf_example layer. This + is the most direct way to catch parity regressions as the API grows. - Documentation Extraction: Extract doc comments from annotated functions - to generate API documentation matching Wireshark's style. - Research Priority: Analyze feasibility of proc macro system that could - generate Protocol builders, field definitions, and registration code from - declarative syntax, reducing boilerplate while maintaining type safety. +Code Generation Research and Future Automation -Add logs to generated code + Wireshark's Lua API is largely auto-generated from C code using macro-based + annotation and Python scripts. Understanding this system could enable similar + automation for the Rust port. - Currently, the generated code does not log anything. This makes it hard to - file bug reports and try to reproduce stuff. + Wireshark's C sources use WSLUA_CLASS_DEFINE, WSLUA_FUNCTION, WSLUA_METHOD, + WSLUA_CONSTRUCTOR macros to mark exportable functions. make-reg.py scans + those annotations and generates register_wslua.c and declare_wslua.h + automatically; make-wsluarm.py extracts the adjacent Doxygen comments to + produce AsciiDoc API docs. CMake hooks both scripts so bindings regenerate + when C sources change. - We could use the `log` crate, but then we'd have to re-export both `log` - and something like `env_logger` from `wsdf`, so that the generated code can - call `wsdf::log::info!` etc. + The interesting question for wsdf is whether a proc macro system could do + something analogous: generate Protocol builders, field definitions, and + registration code from a high-level declarative syntax, the way + WSLUA_CLASS_DEFINE does for Lua. This is speculative and should be researched + before committing to an approach, given that proc macros already do a lot of + the heavy lifting in wsdf today. -Use the "smoke-test" thing in build.rs +Add logs to generated code - See https://github.com/rust-lang/libz-sys/blob/main/src/smoke.c and how - they use it in their build.rs. + Currently the generated code does not log anything, which makes it hard to + file bug reports and reproduce issues. We could use the log crate, but then + we would need to re-export both log and something like env_logger from wsdf, + so that the generated code can call wsdf::log::info! etc. - Basically there may be funky situations where the libwireshark and its - headers are installed on the system but pkg config cannot find it. In that - case, we have a smoke.c file pulling in the headers we want. If that - compiles, that means the headers and dynamic library can be resolved - somehow. We don't need to clone down the whole wireshark repo in that case. Improve CI - Currently, we call Wireshark's debian setup script each time to set up some - system deps. Obviously in ci we don't need wireshark or tshark. So we - should prune the useless ones (e.g. alot of QT dependencies!) + Docker multi-distro environments (ubuntu/fedora/alpine) are in docker/ and + docker-compose.yml. The integration test job still needs wiring up in CI now + that dissect_bytes() is implemented. - This step is not too slow though, so it is not that important. + On the Debian/Ubuntu runner we still call Wireshark's debian-setup.sh each + time to install system deps. That script pulls in a lot of Qt dependencies + that are not needed for headless tshark testing. Pruning the dep list would + speed up CI noticeably even if it is not critical right now. diff --git a/epan-sys/Cargo.toml b/epan-sys/Cargo.toml index 0e80f0f..f9586bc 100644 --- a/epan-sys/Cargo.toml +++ b/epan-sys/Cargo.toml @@ -2,6 +2,7 @@ name = "epan-sys" version = "0.2.0" edition = "2021" +rust-version = "1.85" license = "MIT OR Apache-2.0" description = "FFI Bindings to Wireshark's epan module" homepage = "https://github.com/ghpr-asia/wsdf" @@ -12,15 +13,24 @@ links = "wireshark" keywords = ["wireshark", "ffi"] categories = ["external-ffi-bindings"] +[[bin]] +name = "post_build" +path = "post_build.rs" + [lib] doctest = false # because the comments in generated bindings aren't even Rust code [build-dependencies] pkg-config = "0.3" -cmake = "0.1" +cmake = { version = "0.1", optional = true } bindgen = { version = "0.66", optional = true } +semver = "1.0" +cargo_metadata = "0.18" +cc = "1" -# Enabling this feature causes us to generate the bindings at build time instead -# of using the pre-generated bindings.rs file. [features] +# Regenerate bindings.rs at build time (slow — never pass --all-features). bindgen = ["dep:bindgen"] +# Allow falling back to cloning and building Wireshark from source (~200 MB). +# Off by default to avoid silent multi-minute downloads on first build. +source-build = ["dep:cmake"] diff --git a/epan-sys/bindings_44.rs b/epan-sys/bindings_44.rs new file mode 100644 index 0000000..0e50b49 --- /dev/null +++ b/epan-sys/bindings_44.rs @@ -0,0 +1,47290 @@ +/* automatically generated by rust-bindgen 0.66.1 */ + +#[repr(C)] +#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] +pub struct __BindgenBitfieldUnit { + storage: Storage, +} +impl __BindgenBitfieldUnit { + #[inline] + pub const fn new(storage: Storage) -> Self { + Self { storage } + } +} +impl __BindgenBitfieldUnit +where + Storage: AsRef<[u8]> + AsMut<[u8]>, +{ + #[inline] + pub fn get_bit(&self, index: usize) -> bool { + debug_assert!(index / 8 < self.storage.as_ref().len()); + let byte_index = index / 8; + let byte = self.storage.as_ref()[byte_index]; + let bit_index = if cfg!(target_endian = "big") { + 7 - (index % 8) + } else { + index % 8 + }; + let mask = 1 << bit_index; + byte & mask == mask + } + #[inline] + pub fn set_bit(&mut self, index: usize, val: bool) { + debug_assert!(index / 8 < self.storage.as_ref().len()); + let byte_index = index / 8; + let byte = &mut self.storage.as_mut()[byte_index]; + let bit_index = if cfg!(target_endian = "big") { + 7 - (index % 8) + } else { + index % 8 + }; + let mask = 1 << bit_index; + if val { + *byte |= mask; + } else { + *byte &= !mask; + } + } + #[inline] + pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { + debug_assert!(bit_width <= 64); + debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); + debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); + let mut val = 0; + for i in 0..(bit_width as usize) { + if self.get_bit(i + bit_offset) { + let index = if cfg!(target_endian = "big") { + bit_width as usize - 1 - i + } else { + i + }; + val |= 1 << index; + } + } + val + } + #[inline] + pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { + debug_assert!(bit_width <= 64); + debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); + debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); + for i in 0..(bit_width as usize) { + let mask = 1 << i; + let val_bit_is_set = val & mask == mask; + let index = if cfg!(target_endian = "big") { + bit_width as usize - 1 - i + } else { + i + }; + self.set_bit(index + bit_offset, val_bit_is_set); + } + } +} +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField(::std::marker::PhantomData, [T; 0]); +impl __IncompleteArrayField { + #[inline] + pub const fn new() -> Self { + __IncompleteArrayField(::std::marker::PhantomData, []) + } + #[inline] + pub fn as_ptr(&self) -> *const T { + self as *const _ as *const T + } + #[inline] + pub fn as_mut_ptr(&mut self) -> *mut T { + self as *mut _ as *mut T + } + #[inline] + pub unsafe fn as_slice(&self, len: usize) -> &[T] { + ::std::slice::from_raw_parts(self.as_ptr(), len) + } + #[inline] + pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { + ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len) + } +} +impl ::std::fmt::Debug for __IncompleteArrayField { + fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { + fmt.write_str("__IncompleteArrayField") + } +} +pub const __PRI_8_LENGTH_MODIFIER__: &[u8; 3] = b"hh\0"; +pub const __PRI_64_LENGTH_MODIFIER__: &[u8; 3] = b"ll\0"; +pub const __SCN_64_LENGTH_MODIFIER__: &[u8; 3] = b"ll\0"; +pub const __PRI_MAX_LENGTH_MODIFIER__: &[u8; 2] = b"j\0"; +pub const __SCN_MAX_LENGTH_MODIFIER__: &[u8; 2] = b"j\0"; +pub const PRId8: &[u8; 4] = b"hhd\0"; +pub const PRIi8: &[u8; 4] = b"hhi\0"; +pub const PRIo8: &[u8; 4] = b"hho\0"; +pub const PRIu8: &[u8; 4] = b"hhu\0"; +pub const PRIx8: &[u8; 4] = b"hhx\0"; +pub const PRIX8: &[u8; 4] = b"hhX\0"; +pub const PRId16: &[u8; 3] = b"hd\0"; +pub const PRIi16: &[u8; 3] = b"hi\0"; +pub const PRIo16: &[u8; 3] = b"ho\0"; +pub const PRIu16: &[u8; 3] = b"hu\0"; +pub const PRIx16: &[u8; 3] = b"hx\0"; +pub const PRIX16: &[u8; 3] = b"hX\0"; +pub const PRId32: &[u8; 2] = b"d\0"; +pub const PRIi32: &[u8; 2] = b"i\0"; +pub const PRIo32: &[u8; 2] = b"o\0"; +pub const PRIu32: &[u8; 2] = b"u\0"; +pub const PRIx32: &[u8; 2] = b"x\0"; +pub const PRIX32: &[u8; 2] = b"X\0"; +pub const PRId64: &[u8; 4] = b"lld\0"; +pub const PRIi64: &[u8; 4] = b"lli\0"; +pub const PRIo64: &[u8; 4] = b"llo\0"; +pub const PRIu64: &[u8; 4] = b"llu\0"; +pub const PRIx64: &[u8; 4] = b"llx\0"; +pub const PRIX64: &[u8; 4] = b"llX\0"; +pub const PRIdLEAST8: &[u8; 4] = b"hhd\0"; +pub const PRIiLEAST8: &[u8; 4] = b"hhi\0"; +pub const PRIoLEAST8: &[u8; 4] = b"hho\0"; +pub const PRIuLEAST8: &[u8; 4] = b"hhu\0"; +pub const PRIxLEAST8: &[u8; 4] = b"hhx\0"; +pub const PRIXLEAST8: &[u8; 4] = b"hhX\0"; +pub const PRIdLEAST16: &[u8; 3] = b"hd\0"; +pub const PRIiLEAST16: &[u8; 3] = b"hi\0"; +pub const PRIoLEAST16: &[u8; 3] = b"ho\0"; +pub const PRIuLEAST16: &[u8; 3] = b"hu\0"; +pub const PRIxLEAST16: &[u8; 3] = b"hx\0"; +pub const PRIXLEAST16: &[u8; 3] = b"hX\0"; +pub const PRIdLEAST32: &[u8; 2] = b"d\0"; +pub const PRIiLEAST32: &[u8; 2] = b"i\0"; +pub const PRIoLEAST32: &[u8; 2] = b"o\0"; +pub const PRIuLEAST32: &[u8; 2] = b"u\0"; +pub const PRIxLEAST32: &[u8; 2] = b"x\0"; +pub const PRIXLEAST32: &[u8; 2] = b"X\0"; +pub const PRIdLEAST64: &[u8; 4] = b"lld\0"; +pub const PRIiLEAST64: &[u8; 4] = b"lli\0"; +pub const PRIoLEAST64: &[u8; 4] = b"llo\0"; +pub const PRIuLEAST64: &[u8; 4] = b"llu\0"; +pub const PRIxLEAST64: &[u8; 4] = b"llx\0"; +pub const PRIXLEAST64: &[u8; 4] = b"llX\0"; +pub const PRIdFAST8: &[u8; 4] = b"hhd\0"; +pub const PRIiFAST8: &[u8; 4] = b"hhi\0"; +pub const PRIoFAST8: &[u8; 4] = b"hho\0"; +pub const PRIuFAST8: &[u8; 4] = b"hhu\0"; +pub const PRIxFAST8: &[u8; 4] = b"hhx\0"; +pub const PRIXFAST8: &[u8; 4] = b"hhX\0"; +pub const PRIdFAST16: &[u8; 3] = b"hd\0"; +pub const PRIiFAST16: &[u8; 3] = b"hi\0"; +pub const PRIoFAST16: &[u8; 3] = b"ho\0"; +pub const PRIuFAST16: &[u8; 3] = b"hu\0"; +pub const PRIxFAST16: &[u8; 3] = b"hx\0"; +pub const PRIXFAST16: &[u8; 3] = b"hX\0"; +pub const PRIdFAST32: &[u8; 2] = b"d\0"; +pub const PRIiFAST32: &[u8; 2] = b"i\0"; +pub const PRIoFAST32: &[u8; 2] = b"o\0"; +pub const PRIuFAST32: &[u8; 2] = b"u\0"; +pub const PRIxFAST32: &[u8; 2] = b"x\0"; +pub const PRIXFAST32: &[u8; 2] = b"X\0"; +pub const PRIdFAST64: &[u8; 4] = b"lld\0"; +pub const PRIiFAST64: &[u8; 4] = b"lli\0"; +pub const PRIoFAST64: &[u8; 4] = b"llo\0"; +pub const PRIuFAST64: &[u8; 4] = b"llu\0"; +pub const PRIxFAST64: &[u8; 4] = b"llx\0"; +pub const PRIXFAST64: &[u8; 4] = b"llX\0"; +pub const PRIdPTR: &[u8; 3] = b"ld\0"; +pub const PRIiPTR: &[u8; 3] = b"li\0"; +pub const PRIoPTR: &[u8; 3] = b"lo\0"; +pub const PRIuPTR: &[u8; 3] = b"lu\0"; +pub const PRIxPTR: &[u8; 3] = b"lx\0"; +pub const PRIXPTR: &[u8; 3] = b"lX\0"; +pub const PRIdMAX: &[u8; 3] = b"jd\0"; +pub const PRIiMAX: &[u8; 3] = b"ji\0"; +pub const PRIoMAX: &[u8; 3] = b"jo\0"; +pub const PRIuMAX: &[u8; 3] = b"ju\0"; +pub const PRIxMAX: &[u8; 3] = b"jx\0"; +pub const PRIXMAX: &[u8; 3] = b"jX\0"; +pub const SCNd8: &[u8; 4] = b"hhd\0"; +pub const SCNi8: &[u8; 4] = b"hhi\0"; +pub const SCNo8: &[u8; 4] = b"hho\0"; +pub const SCNu8: &[u8; 4] = b"hhu\0"; +pub const SCNx8: &[u8; 4] = b"hhx\0"; +pub const SCNd16: &[u8; 3] = b"hd\0"; +pub const SCNi16: &[u8; 3] = b"hi\0"; +pub const SCNo16: &[u8; 3] = b"ho\0"; +pub const SCNu16: &[u8; 3] = b"hu\0"; +pub const SCNx16: &[u8; 3] = b"hx\0"; +pub const SCNd32: &[u8; 2] = b"d\0"; +pub const SCNi32: &[u8; 2] = b"i\0"; +pub const SCNo32: &[u8; 2] = b"o\0"; +pub const SCNu32: &[u8; 2] = b"u\0"; +pub const SCNx32: &[u8; 2] = b"x\0"; +pub const SCNd64: &[u8; 4] = b"lld\0"; +pub const SCNi64: &[u8; 4] = b"lli\0"; +pub const SCNo64: &[u8; 4] = b"llo\0"; +pub const SCNu64: &[u8; 4] = b"llu\0"; +pub const SCNx64: &[u8; 4] = b"llx\0"; +pub const SCNdLEAST8: &[u8; 4] = b"hhd\0"; +pub const SCNiLEAST8: &[u8; 4] = b"hhi\0"; +pub const SCNoLEAST8: &[u8; 4] = b"hho\0"; +pub const SCNuLEAST8: &[u8; 4] = b"hhu\0"; +pub const SCNxLEAST8: &[u8; 4] = b"hhx\0"; +pub const SCNdLEAST16: &[u8; 3] = b"hd\0"; +pub const SCNiLEAST16: &[u8; 3] = b"hi\0"; +pub const SCNoLEAST16: &[u8; 3] = b"ho\0"; +pub const SCNuLEAST16: &[u8; 3] = b"hu\0"; +pub const SCNxLEAST16: &[u8; 3] = b"hx\0"; +pub const SCNdLEAST32: &[u8; 2] = b"d\0"; +pub const SCNiLEAST32: &[u8; 2] = b"i\0"; +pub const SCNoLEAST32: &[u8; 2] = b"o\0"; +pub const SCNuLEAST32: &[u8; 2] = b"u\0"; +pub const SCNxLEAST32: &[u8; 2] = b"x\0"; +pub const SCNdLEAST64: &[u8; 4] = b"lld\0"; +pub const SCNiLEAST64: &[u8; 4] = b"lli\0"; +pub const SCNoLEAST64: &[u8; 4] = b"llo\0"; +pub const SCNuLEAST64: &[u8; 4] = b"llu\0"; +pub const SCNxLEAST64: &[u8; 4] = b"llx\0"; +pub const SCNdFAST8: &[u8; 4] = b"hhd\0"; +pub const SCNiFAST8: &[u8; 4] = b"hhi\0"; +pub const SCNoFAST8: &[u8; 4] = b"hho\0"; +pub const SCNuFAST8: &[u8; 4] = b"hhu\0"; +pub const SCNxFAST8: &[u8; 4] = b"hhx\0"; +pub const SCNdFAST16: &[u8; 3] = b"hd\0"; +pub const SCNiFAST16: &[u8; 3] = b"hi\0"; +pub const SCNoFAST16: &[u8; 3] = b"ho\0"; +pub const SCNuFAST16: &[u8; 3] = b"hu\0"; +pub const SCNxFAST16: &[u8; 3] = b"hx\0"; +pub const SCNdFAST32: &[u8; 2] = b"d\0"; +pub const SCNiFAST32: &[u8; 2] = b"i\0"; +pub const SCNoFAST32: &[u8; 2] = b"o\0"; +pub const SCNuFAST32: &[u8; 2] = b"u\0"; +pub const SCNxFAST32: &[u8; 2] = b"x\0"; +pub const SCNdFAST64: &[u8; 4] = b"lld\0"; +pub const SCNiFAST64: &[u8; 4] = b"lli\0"; +pub const SCNoFAST64: &[u8; 4] = b"llo\0"; +pub const SCNuFAST64: &[u8; 4] = b"llu\0"; +pub const SCNxFAST64: &[u8; 4] = b"llx\0"; +pub const SCNdPTR: &[u8; 3] = b"ld\0"; +pub const SCNiPTR: &[u8; 3] = b"li\0"; +pub const SCNoPTR: &[u8; 3] = b"lo\0"; +pub const SCNuPTR: &[u8; 3] = b"lu\0"; +pub const SCNxPTR: &[u8; 3] = b"lx\0"; +pub const SCNdMAX: &[u8; 3] = b"jd\0"; +pub const SCNiMAX: &[u8; 3] = b"ji\0"; +pub const SCNoMAX: &[u8; 3] = b"jo\0"; +pub const SCNuMAX: &[u8; 3] = b"ju\0"; +pub const SCNxMAX: &[u8; 3] = b"jx\0"; +pub const __has_safe_buffers: u32 = 1; +pub const __DARWIN_ONLY_64_BIT_INO_T: u32 = 1; +pub const __DARWIN_ONLY_UNIX_CONFORMANCE: u32 = 1; +pub const __DARWIN_ONLY_VERS_1050: u32 = 1; +pub const __DARWIN_UNIX03: u32 = 1; +pub const __DARWIN_64_BIT_INO_T: u32 = 1; +pub const __DARWIN_VERS_1050: u32 = 1; +pub const __DARWIN_NON_CANCELABLE: u32 = 0; +pub const __DARWIN_SUF_EXTSN: &[u8; 14] = b"$DARWIN_EXTSN\0"; +pub const __DARWIN_C_ANSI: u32 = 4096; +pub const __DARWIN_C_FULL: u32 = 900000; +pub const __DARWIN_C_LEVEL: u32 = 900000; +pub const __STDC_WANT_LIB_EXT1__: u32 = 1; +pub const __DARWIN_NO_LONG_LONG: u32 = 0; +pub const _DARWIN_FEATURE_64_BIT_INODE: u32 = 1; +pub const _DARWIN_FEATURE_ONLY_64_BIT_INODE: u32 = 1; +pub const _DARWIN_FEATURE_ONLY_VERS_1050: u32 = 1; +pub const _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE: u32 = 1; +pub const _DARWIN_FEATURE_UNIX_CONFORMANCE: u32 = 3; +pub const __has_ptrcheck: u32 = 0; +pub const __API_TO_BE_DEPRECATED: u32 = 100000; +pub const __API_TO_BE_DEPRECATED_MACOS: u32 = 100000; +pub const __API_TO_BE_DEPRECATED_IOS: u32 = 100000; +pub const __API_TO_BE_DEPRECATED_MACCATALYST: u32 = 100000; +pub const __API_TO_BE_DEPRECATED_WATCHOS: u32 = 100000; +pub const __API_TO_BE_DEPRECATED_TVOS: u32 = 100000; +pub const __API_TO_BE_DEPRECATED_DRIVERKIT: u32 = 100000; +pub const __API_TO_BE_DEPRECATED_VISIONOS: u32 = 100000; +pub const __MAC_10_0: u32 = 1000; +pub const __MAC_10_1: u32 = 1010; +pub const __MAC_10_2: u32 = 1020; +pub const __MAC_10_3: u32 = 1030; +pub const __MAC_10_4: u32 = 1040; +pub const __MAC_10_5: u32 = 1050; +pub const __MAC_10_6: u32 = 1060; +pub const __MAC_10_7: u32 = 1070; +pub const __MAC_10_8: u32 = 1080; +pub const __MAC_10_9: u32 = 1090; +pub const __MAC_10_10: u32 = 101000; +pub const __MAC_10_10_2: u32 = 101002; +pub const __MAC_10_10_3: u32 = 101003; +pub const __MAC_10_11: u32 = 101100; +pub const __MAC_10_11_2: u32 = 101102; +pub const __MAC_10_11_3: u32 = 101103; +pub const __MAC_10_11_4: u32 = 101104; +pub const __MAC_10_12: u32 = 101200; +pub const __MAC_10_12_1: u32 = 101201; +pub const __MAC_10_12_2: u32 = 101202; +pub const __MAC_10_12_4: u32 = 101204; +pub const __MAC_10_13: u32 = 101300; +pub const __MAC_10_13_1: u32 = 101301; +pub const __MAC_10_13_2: u32 = 101302; +pub const __MAC_10_13_4: u32 = 101304; +pub const __MAC_10_14: u32 = 101400; +pub const __MAC_10_14_1: u32 = 101401; +pub const __MAC_10_14_4: u32 = 101404; +pub const __MAC_10_14_5: u32 = 101405; +pub const __MAC_10_14_6: u32 = 101406; +pub const __MAC_10_15: u32 = 101500; +pub const __MAC_10_15_1: u32 = 101501; +pub const __MAC_10_15_4: u32 = 101504; +pub const __MAC_10_16: u32 = 101600; +pub const __MAC_11_0: u32 = 110000; +pub const __MAC_11_1: u32 = 110100; +pub const __MAC_11_3: u32 = 110300; +pub const __MAC_11_4: u32 = 110400; +pub const __MAC_11_5: u32 = 110500; +pub const __MAC_11_6: u32 = 110600; +pub const __MAC_12_0: u32 = 120000; +pub const __MAC_12_1: u32 = 120100; +pub const __MAC_12_2: u32 = 120200; +pub const __MAC_12_3: u32 = 120300; +pub const __MAC_12_4: u32 = 120400; +pub const __MAC_12_5: u32 = 120500; +pub const __MAC_12_6: u32 = 120600; +pub const __MAC_12_7: u32 = 120700; +pub const __MAC_13_0: u32 = 130000; +pub const __MAC_13_1: u32 = 130100; +pub const __MAC_13_2: u32 = 130200; +pub const __MAC_13_3: u32 = 130300; +pub const __MAC_13_4: u32 = 130400; +pub const __MAC_13_5: u32 = 130500; +pub const __MAC_13_6: u32 = 130600; +pub const __MAC_14_0: u32 = 140000; +pub const __MAC_14_1: u32 = 140100; +pub const __MAC_14_2: u32 = 140200; +pub const __MAC_14_3: u32 = 140300; +pub const __MAC_14_4: u32 = 140400; +pub const __MAC_14_5: u32 = 140500; +pub const __IPHONE_2_0: u32 = 20000; +pub const __IPHONE_2_1: u32 = 20100; +pub const __IPHONE_2_2: u32 = 20200; +pub const __IPHONE_3_0: u32 = 30000; +pub const __IPHONE_3_1: u32 = 30100; +pub const __IPHONE_3_2: u32 = 30200; +pub const __IPHONE_4_0: u32 = 40000; +pub const __IPHONE_4_1: u32 = 40100; +pub const __IPHONE_4_2: u32 = 40200; +pub const __IPHONE_4_3: u32 = 40300; +pub const __IPHONE_5_0: u32 = 50000; +pub const __IPHONE_5_1: u32 = 50100; +pub const __IPHONE_6_0: u32 = 60000; +pub const __IPHONE_6_1: u32 = 60100; +pub const __IPHONE_7_0: u32 = 70000; +pub const __IPHONE_7_1: u32 = 70100; +pub const __IPHONE_8_0: u32 = 80000; +pub const __IPHONE_8_1: u32 = 80100; +pub const __IPHONE_8_2: u32 = 80200; +pub const __IPHONE_8_3: u32 = 80300; +pub const __IPHONE_8_4: u32 = 80400; +pub const __IPHONE_9_0: u32 = 90000; +pub const __IPHONE_9_1: u32 = 90100; +pub const __IPHONE_9_2: u32 = 90200; +pub const __IPHONE_9_3: u32 = 90300; +pub const __IPHONE_10_0: u32 = 100000; +pub const __IPHONE_10_1: u32 = 100100; +pub const __IPHONE_10_2: u32 = 100200; +pub const __IPHONE_10_3: u32 = 100300; +pub const __IPHONE_11_0: u32 = 110000; +pub const __IPHONE_11_1: u32 = 110100; +pub const __IPHONE_11_2: u32 = 110200; +pub const __IPHONE_11_3: u32 = 110300; +pub const __IPHONE_11_4: u32 = 110400; +pub const __IPHONE_12_0: u32 = 120000; +pub const __IPHONE_12_1: u32 = 120100; +pub const __IPHONE_12_2: u32 = 120200; +pub const __IPHONE_12_3: u32 = 120300; +pub const __IPHONE_12_4: u32 = 120400; +pub const __IPHONE_13_0: u32 = 130000; +pub const __IPHONE_13_1: u32 = 130100; +pub const __IPHONE_13_2: u32 = 130200; +pub const __IPHONE_13_3: u32 = 130300; +pub const __IPHONE_13_4: u32 = 130400; +pub const __IPHONE_13_5: u32 = 130500; +pub const __IPHONE_13_6: u32 = 130600; +pub const __IPHONE_13_7: u32 = 130700; +pub const __IPHONE_14_0: u32 = 140000; +pub const __IPHONE_14_1: u32 = 140100; +pub const __IPHONE_14_2: u32 = 140200; +pub const __IPHONE_14_3: u32 = 140300; +pub const __IPHONE_14_5: u32 = 140500; +pub const __IPHONE_14_4: u32 = 140400; +pub const __IPHONE_14_6: u32 = 140600; +pub const __IPHONE_14_7: u32 = 140700; +pub const __IPHONE_14_8: u32 = 140800; +pub const __IPHONE_15_0: u32 = 150000; +pub const __IPHONE_15_1: u32 = 150100; +pub const __IPHONE_15_2: u32 = 150200; +pub const __IPHONE_15_3: u32 = 150300; +pub const __IPHONE_15_4: u32 = 150400; +pub const __IPHONE_15_5: u32 = 150500; +pub const __IPHONE_15_6: u32 = 150600; +pub const __IPHONE_15_7: u32 = 150700; +pub const __IPHONE_15_8: u32 = 150800; +pub const __IPHONE_16_0: u32 = 160000; +pub const __IPHONE_16_1: u32 = 160100; +pub const __IPHONE_16_2: u32 = 160200; +pub const __IPHONE_16_3: u32 = 160300; +pub const __IPHONE_16_4: u32 = 160400; +pub const __IPHONE_16_5: u32 = 160500; +pub const __IPHONE_16_6: u32 = 160600; +pub const __IPHONE_16_7: u32 = 160700; +pub const __IPHONE_17_0: u32 = 170000; +pub const __IPHONE_17_1: u32 = 170100; +pub const __IPHONE_17_2: u32 = 170200; +pub const __IPHONE_17_3: u32 = 170300; +pub const __IPHONE_17_4: u32 = 170400; +pub const __IPHONE_17_5: u32 = 170500; +pub const __WATCHOS_1_0: u32 = 10000; +pub const __WATCHOS_2_0: u32 = 20000; +pub const __WATCHOS_2_1: u32 = 20100; +pub const __WATCHOS_2_2: u32 = 20200; +pub const __WATCHOS_3_0: u32 = 30000; +pub const __WATCHOS_3_1: u32 = 30100; +pub const __WATCHOS_3_1_1: u32 = 30101; +pub const __WATCHOS_3_2: u32 = 30200; +pub const __WATCHOS_4_0: u32 = 40000; +pub const __WATCHOS_4_1: u32 = 40100; +pub const __WATCHOS_4_2: u32 = 40200; +pub const __WATCHOS_4_3: u32 = 40300; +pub const __WATCHOS_5_0: u32 = 50000; +pub const __WATCHOS_5_1: u32 = 50100; +pub const __WATCHOS_5_2: u32 = 50200; +pub const __WATCHOS_5_3: u32 = 50300; +pub const __WATCHOS_6_0: u32 = 60000; +pub const __WATCHOS_6_1: u32 = 60100; +pub const __WATCHOS_6_2: u32 = 60200; +pub const __WATCHOS_7_0: u32 = 70000; +pub const __WATCHOS_7_1: u32 = 70100; +pub const __WATCHOS_7_2: u32 = 70200; +pub const __WATCHOS_7_3: u32 = 70300; +pub const __WATCHOS_7_4: u32 = 70400; +pub const __WATCHOS_7_5: u32 = 70500; +pub const __WATCHOS_7_6: u32 = 70600; +pub const __WATCHOS_8_0: u32 = 80000; +pub const __WATCHOS_8_1: u32 = 80100; +pub const __WATCHOS_8_3: u32 = 80300; +pub const __WATCHOS_8_4: u32 = 80400; +pub const __WATCHOS_8_5: u32 = 80500; +pub const __WATCHOS_8_6: u32 = 80600; +pub const __WATCHOS_8_7: u32 = 80700; +pub const __WATCHOS_8_8: u32 = 80800; +pub const __WATCHOS_9_0: u32 = 90000; +pub const __WATCHOS_9_1: u32 = 90100; +pub const __WATCHOS_9_2: u32 = 90200; +pub const __WATCHOS_9_3: u32 = 90300; +pub const __WATCHOS_9_4: u32 = 90400; +pub const __WATCHOS_9_5: u32 = 90500; +pub const __WATCHOS_9_6: u32 = 90600; +pub const __WATCHOS_10_0: u32 = 100000; +pub const __WATCHOS_10_1: u32 = 100100; +pub const __WATCHOS_10_2: u32 = 100200; +pub const __WATCHOS_10_3: u32 = 100300; +pub const __WATCHOS_10_4: u32 = 100400; +pub const __WATCHOS_10_5: u32 = 100500; +pub const __TVOS_9_0: u32 = 90000; +pub const __TVOS_9_1: u32 = 90100; +pub const __TVOS_9_2: u32 = 90200; +pub const __TVOS_10_0: u32 = 100000; +pub const __TVOS_10_0_1: u32 = 100001; +pub const __TVOS_10_1: u32 = 100100; +pub const __TVOS_10_2: u32 = 100200; +pub const __TVOS_11_0: u32 = 110000; +pub const __TVOS_11_1: u32 = 110100; +pub const __TVOS_11_2: u32 = 110200; +pub const __TVOS_11_3: u32 = 110300; +pub const __TVOS_11_4: u32 = 110400; +pub const __TVOS_12_0: u32 = 120000; +pub const __TVOS_12_1: u32 = 120100; +pub const __TVOS_12_2: u32 = 120200; +pub const __TVOS_12_3: u32 = 120300; +pub const __TVOS_12_4: u32 = 120400; +pub const __TVOS_13_0: u32 = 130000; +pub const __TVOS_13_2: u32 = 130200; +pub const __TVOS_13_3: u32 = 130300; +pub const __TVOS_13_4: u32 = 130400; +pub const __TVOS_14_0: u32 = 140000; +pub const __TVOS_14_1: u32 = 140100; +pub const __TVOS_14_2: u32 = 140200; +pub const __TVOS_14_3: u32 = 140300; +pub const __TVOS_14_5: u32 = 140500; +pub const __TVOS_14_6: u32 = 140600; +pub const __TVOS_14_7: u32 = 140700; +pub const __TVOS_15_0: u32 = 150000; +pub const __TVOS_15_1: u32 = 150100; +pub const __TVOS_15_2: u32 = 150200; +pub const __TVOS_15_3: u32 = 150300; +pub const __TVOS_15_4: u32 = 150400; +pub const __TVOS_15_5: u32 = 150500; +pub const __TVOS_15_6: u32 = 150600; +pub const __TVOS_16_0: u32 = 160000; +pub const __TVOS_16_1: u32 = 160100; +pub const __TVOS_16_2: u32 = 160200; +pub const __TVOS_16_3: u32 = 160300; +pub const __TVOS_16_4: u32 = 160400; +pub const __TVOS_16_5: u32 = 160500; +pub const __TVOS_16_6: u32 = 160600; +pub const __TVOS_17_0: u32 = 170000; +pub const __TVOS_17_1: u32 = 170100; +pub const __TVOS_17_2: u32 = 170200; +pub const __TVOS_17_3: u32 = 170300; +pub const __TVOS_17_4: u32 = 170400; +pub const __TVOS_17_5: u32 = 170500; +pub const __BRIDGEOS_2_0: u32 = 20000; +pub const __BRIDGEOS_3_0: u32 = 30000; +pub const __BRIDGEOS_3_1: u32 = 30100; +pub const __BRIDGEOS_3_4: u32 = 30400; +pub const __BRIDGEOS_4_0: u32 = 40000; +pub const __BRIDGEOS_4_1: u32 = 40100; +pub const __BRIDGEOS_5_0: u32 = 50000; +pub const __BRIDGEOS_5_1: u32 = 50100; +pub const __BRIDGEOS_5_3: u32 = 50300; +pub const __BRIDGEOS_6_0: u32 = 60000; +pub const __BRIDGEOS_6_2: u32 = 60200; +pub const __BRIDGEOS_6_4: u32 = 60400; +pub const __BRIDGEOS_6_5: u32 = 60500; +pub const __BRIDGEOS_6_6: u32 = 60600; +pub const __BRIDGEOS_7_0: u32 = 70000; +pub const __BRIDGEOS_7_1: u32 = 70100; +pub const __BRIDGEOS_7_2: u32 = 70200; +pub const __BRIDGEOS_7_3: u32 = 70300; +pub const __BRIDGEOS_7_4: u32 = 70400; +pub const __BRIDGEOS_7_6: u32 = 70600; +pub const __BRIDGEOS_8_0: u32 = 80000; +pub const __BRIDGEOS_8_1: u32 = 80100; +pub const __BRIDGEOS_8_2: u32 = 80200; +pub const __BRIDGEOS_8_3: u32 = 80300; +pub const __BRIDGEOS_8_4: u32 = 80400; +pub const __BRIDGEOS_8_5: u32 = 80500; +pub const __DRIVERKIT_19_0: u32 = 190000; +pub const __DRIVERKIT_20_0: u32 = 200000; +pub const __DRIVERKIT_21_0: u32 = 210000; +pub const __DRIVERKIT_22_0: u32 = 220000; +pub const __DRIVERKIT_22_4: u32 = 220400; +pub const __DRIVERKIT_22_5: u32 = 220500; +pub const __DRIVERKIT_22_6: u32 = 220600; +pub const __DRIVERKIT_23_0: u32 = 230000; +pub const __DRIVERKIT_23_1: u32 = 230100; +pub const __DRIVERKIT_23_2: u32 = 230200; +pub const __DRIVERKIT_23_3: u32 = 230300; +pub const __DRIVERKIT_23_4: u32 = 230400; +pub const __DRIVERKIT_23_5: u32 = 230500; +pub const __VISIONOS_1_0: u32 = 10000; +pub const __VISIONOS_1_1: u32 = 10100; +pub const __VISIONOS_1_2: u32 = 10200; +pub const MAC_OS_X_VERSION_10_0: u32 = 1000; +pub const MAC_OS_X_VERSION_10_1: u32 = 1010; +pub const MAC_OS_X_VERSION_10_2: u32 = 1020; +pub const MAC_OS_X_VERSION_10_3: u32 = 1030; +pub const MAC_OS_X_VERSION_10_4: u32 = 1040; +pub const MAC_OS_X_VERSION_10_5: u32 = 1050; +pub const MAC_OS_X_VERSION_10_6: u32 = 1060; +pub const MAC_OS_X_VERSION_10_7: u32 = 1070; +pub const MAC_OS_X_VERSION_10_8: u32 = 1080; +pub const MAC_OS_X_VERSION_10_9: u32 = 1090; +pub const MAC_OS_X_VERSION_10_10: u32 = 101000; +pub const MAC_OS_X_VERSION_10_10_2: u32 = 101002; +pub const MAC_OS_X_VERSION_10_10_3: u32 = 101003; +pub const MAC_OS_X_VERSION_10_11: u32 = 101100; +pub const MAC_OS_X_VERSION_10_11_2: u32 = 101102; +pub const MAC_OS_X_VERSION_10_11_3: u32 = 101103; +pub const MAC_OS_X_VERSION_10_11_4: u32 = 101104; +pub const MAC_OS_X_VERSION_10_12: u32 = 101200; +pub const MAC_OS_X_VERSION_10_12_1: u32 = 101201; +pub const MAC_OS_X_VERSION_10_12_2: u32 = 101202; +pub const MAC_OS_X_VERSION_10_12_4: u32 = 101204; +pub const MAC_OS_X_VERSION_10_13: u32 = 101300; +pub const MAC_OS_X_VERSION_10_13_1: u32 = 101301; +pub const MAC_OS_X_VERSION_10_13_2: u32 = 101302; +pub const MAC_OS_X_VERSION_10_13_4: u32 = 101304; +pub const MAC_OS_X_VERSION_10_14: u32 = 101400; +pub const MAC_OS_X_VERSION_10_14_1: u32 = 101401; +pub const MAC_OS_X_VERSION_10_14_4: u32 = 101404; +pub const MAC_OS_X_VERSION_10_14_5: u32 = 101405; +pub const MAC_OS_X_VERSION_10_14_6: u32 = 101406; +pub const MAC_OS_X_VERSION_10_15: u32 = 101500; +pub const MAC_OS_X_VERSION_10_15_1: u32 = 101501; +pub const MAC_OS_X_VERSION_10_15_4: u32 = 101504; +pub const MAC_OS_X_VERSION_10_16: u32 = 101600; +pub const MAC_OS_VERSION_11_0: u32 = 110000; +pub const MAC_OS_VERSION_11_1: u32 = 110100; +pub const MAC_OS_VERSION_11_3: u32 = 110300; +pub const MAC_OS_VERSION_11_4: u32 = 110400; +pub const MAC_OS_VERSION_11_5: u32 = 110500; +pub const MAC_OS_VERSION_11_6: u32 = 110600; +pub const MAC_OS_VERSION_12_0: u32 = 120000; +pub const MAC_OS_VERSION_12_1: u32 = 120100; +pub const MAC_OS_VERSION_12_2: u32 = 120200; +pub const MAC_OS_VERSION_12_3: u32 = 120300; +pub const MAC_OS_VERSION_12_4: u32 = 120400; +pub const MAC_OS_VERSION_12_5: u32 = 120500; +pub const MAC_OS_VERSION_12_6: u32 = 120600; +pub const MAC_OS_VERSION_12_7: u32 = 120700; +pub const MAC_OS_VERSION_13_0: u32 = 130000; +pub const MAC_OS_VERSION_13_1: u32 = 130100; +pub const MAC_OS_VERSION_13_2: u32 = 130200; +pub const MAC_OS_VERSION_13_3: u32 = 130300; +pub const MAC_OS_VERSION_13_4: u32 = 130400; +pub const MAC_OS_VERSION_13_5: u32 = 130500; +pub const MAC_OS_VERSION_13_6: u32 = 130600; +pub const MAC_OS_VERSION_14_0: u32 = 140000; +pub const MAC_OS_VERSION_14_1: u32 = 140100; +pub const MAC_OS_VERSION_14_2: u32 = 140200; +pub const MAC_OS_VERSION_14_3: u32 = 140300; +pub const MAC_OS_VERSION_14_4: u32 = 140400; +pub const MAC_OS_VERSION_14_5: u32 = 140500; +pub const __MAC_OS_X_VERSION_MAX_ALLOWED: u32 = 140500; +pub const __ENABLE_LEGACY_MAC_AVAILABILITY: u32 = 1; +pub const __PTHREAD_SIZE__: u32 = 8176; +pub const __PTHREAD_ATTR_SIZE__: u32 = 56; +pub const __PTHREAD_MUTEXATTR_SIZE__: u32 = 8; +pub const __PTHREAD_MUTEX_SIZE__: u32 = 56; +pub const __PTHREAD_CONDATTR_SIZE__: u32 = 8; +pub const __PTHREAD_COND_SIZE__: u32 = 40; +pub const __PTHREAD_ONCE_SIZE__: u32 = 8; +pub const __PTHREAD_RWLOCK_SIZE__: u32 = 192; +pub const __PTHREAD_RWLOCKATTR_SIZE__: u32 = 16; +pub const __DARWIN_WCHAR_MIN: i32 = -2147483648; +pub const _FORTIFY_SOURCE: u32 = 2; +pub const __WORDSIZE: u32 = 64; +pub const INT8_MAX: u32 = 127; +pub const INT16_MAX: u32 = 32767; +pub const INT32_MAX: u32 = 2147483647; +pub const INT64_MAX: u64 = 9223372036854775807; +pub const INT8_MIN: i32 = -128; +pub const INT16_MIN: i32 = -32768; +pub const INT32_MIN: i32 = -2147483648; +pub const INT64_MIN: i64 = -9223372036854775808; +pub const UINT8_MAX: u32 = 255; +pub const UINT16_MAX: u32 = 65535; +pub const UINT32_MAX: u32 = 4294967295; +pub const UINT64_MAX: i32 = -1; +pub const INT_LEAST8_MIN: i32 = -128; +pub const INT_LEAST16_MIN: i32 = -32768; +pub const INT_LEAST32_MIN: i32 = -2147483648; +pub const INT_LEAST64_MIN: i64 = -9223372036854775808; +pub const INT_LEAST8_MAX: u32 = 127; +pub const INT_LEAST16_MAX: u32 = 32767; +pub const INT_LEAST32_MAX: u32 = 2147483647; +pub const INT_LEAST64_MAX: u64 = 9223372036854775807; +pub const UINT_LEAST8_MAX: u32 = 255; +pub const UINT_LEAST16_MAX: u32 = 65535; +pub const UINT_LEAST32_MAX: u32 = 4294967295; +pub const UINT_LEAST64_MAX: i32 = -1; +pub const INT_FAST8_MIN: i32 = -128; +pub const INT_FAST16_MIN: i32 = -32768; +pub const INT_FAST32_MIN: i32 = -2147483648; +pub const INT_FAST64_MIN: i64 = -9223372036854775808; +pub const INT_FAST8_MAX: u32 = 127; +pub const INT_FAST16_MAX: u32 = 32767; +pub const INT_FAST32_MAX: u32 = 2147483647; +pub const INT_FAST64_MAX: u64 = 9223372036854775807; +pub const UINT_FAST8_MAX: u32 = 255; +pub const UINT_FAST16_MAX: u32 = 65535; +pub const UINT_FAST32_MAX: u32 = 4294967295; +pub const UINT_FAST64_MAX: i32 = -1; +pub const INTPTR_MAX: u64 = 9223372036854775807; +pub const INTPTR_MIN: i64 = -9223372036854775808; +pub const UINTPTR_MAX: i32 = -1; +pub const SIZE_MAX: i32 = -1; +pub const RSIZE_MAX: i32 = -1; +pub const WINT_MIN: i32 = -2147483648; +pub const WINT_MAX: u32 = 2147483647; +pub const SIG_ATOMIC_MIN: i32 = -2147483648; +pub const SIG_ATOMIC_MAX: u32 = 2147483647; +pub const __bool_true_false_are_defined: u32 = 1; +pub const true_: u32 = 1; +pub const false_: u32 = 0; +pub const _USE_FORTIFY_LEVEL: u32 = 2; +pub const __HAS_FIXED_CHK_PROTOTYPES: u32 = 1; +pub const G_ANALYZER_ANALYZING: u32 = 0; +pub const FALSE: u32 = 0; +pub const G_HAVE_GNUC_VISIBILITY: u32 = 1; +pub const __DARWIN_CLK_TCK: u32 = 100; +pub const MB_LEN_MAX: u32 = 6; +pub const CLK_TCK: u32 = 100; +pub const CHAR_BIT: u32 = 8; +pub const SCHAR_MAX: u32 = 127; +pub const SCHAR_MIN: i32 = -128; +pub const UCHAR_MAX: u32 = 255; +pub const CHAR_MAX: u32 = 127; +pub const CHAR_MIN: i32 = -128; +pub const USHRT_MAX: u32 = 65535; +pub const SHRT_MAX: u32 = 32767; +pub const SHRT_MIN: i32 = -32768; +pub const UINT_MAX: u32 = 4294967295; +pub const INT_MAX: u32 = 2147483647; +pub const INT_MIN: i32 = -2147483648; +pub const ULONG_MAX: i32 = -1; +pub const LONG_MAX: u64 = 9223372036854775807; +pub const LONG_MIN: i64 = -9223372036854775808; +pub const ULLONG_MAX: i32 = -1; +pub const LLONG_MAX: u64 = 9223372036854775807; +pub const LLONG_MIN: i64 = -9223372036854775808; +pub const LONG_BIT: u32 = 64; +pub const SSIZE_MAX: u64 = 9223372036854775807; +pub const WORD_BIT: u32 = 32; +pub const SIZE_T_MAX: i32 = -1; +pub const UQUAD_MAX: i32 = -1; +pub const QUAD_MAX: u64 = 9223372036854775807; +pub const QUAD_MIN: i64 = -9223372036854775808; +pub const ARG_MAX: u32 = 1048576; +pub const CHILD_MAX: u32 = 266; +pub const GID_MAX: u32 = 2147483647; +pub const LINK_MAX: u32 = 32767; +pub const MAX_CANON: u32 = 1024; +pub const MAX_INPUT: u32 = 1024; +pub const NAME_MAX: u32 = 255; +pub const NGROUPS_MAX: u32 = 16; +pub const UID_MAX: u32 = 2147483647; +pub const OPEN_MAX: u32 = 10240; +pub const PATH_MAX: u32 = 1024; +pub const PIPE_BUF: u32 = 512; +pub const BC_BASE_MAX: u32 = 99; +pub const BC_DIM_MAX: u32 = 2048; +pub const BC_SCALE_MAX: u32 = 99; +pub const BC_STRING_MAX: u32 = 1000; +pub const CHARCLASS_NAME_MAX: u32 = 14; +pub const COLL_WEIGHTS_MAX: u32 = 2; +pub const EQUIV_CLASS_MAX: u32 = 2; +pub const EXPR_NEST_MAX: u32 = 32; +pub const LINE_MAX: u32 = 2048; +pub const RE_DUP_MAX: u32 = 255; +pub const NZERO: u32 = 20; +pub const _POSIX_ARG_MAX: u32 = 4096; +pub const _POSIX_CHILD_MAX: u32 = 25; +pub const _POSIX_LINK_MAX: u32 = 8; +pub const _POSIX_MAX_CANON: u32 = 255; +pub const _POSIX_MAX_INPUT: u32 = 255; +pub const _POSIX_NAME_MAX: u32 = 14; +pub const _POSIX_NGROUPS_MAX: u32 = 8; +pub const _POSIX_OPEN_MAX: u32 = 20; +pub const _POSIX_PATH_MAX: u32 = 256; +pub const _POSIX_PIPE_BUF: u32 = 512; +pub const _POSIX_SSIZE_MAX: u32 = 32767; +pub const _POSIX_STREAM_MAX: u32 = 8; +pub const _POSIX_TZNAME_MAX: u32 = 6; +pub const _POSIX2_BC_BASE_MAX: u32 = 99; +pub const _POSIX2_BC_DIM_MAX: u32 = 2048; +pub const _POSIX2_BC_SCALE_MAX: u32 = 99; +pub const _POSIX2_BC_STRING_MAX: u32 = 1000; +pub const _POSIX2_EQUIV_CLASS_MAX: u32 = 2; +pub const _POSIX2_EXPR_NEST_MAX: u32 = 32; +pub const _POSIX2_LINE_MAX: u32 = 2048; +pub const _POSIX2_RE_DUP_MAX: u32 = 255; +pub const _POSIX_AIO_LISTIO_MAX: u32 = 2; +pub const _POSIX_AIO_MAX: u32 = 1; +pub const _POSIX_DELAYTIMER_MAX: u32 = 32; +pub const _POSIX_MQ_OPEN_MAX: u32 = 8; +pub const _POSIX_MQ_PRIO_MAX: u32 = 32; +pub const _POSIX_RTSIG_MAX: u32 = 8; +pub const _POSIX_SEM_NSEMS_MAX: u32 = 256; +pub const _POSIX_SEM_VALUE_MAX: u32 = 32767; +pub const _POSIX_SIGQUEUE_MAX: u32 = 32; +pub const _POSIX_TIMER_MAX: u32 = 32; +pub const _POSIX_CLOCKRES_MIN: u32 = 20000000; +pub const _POSIX_THREAD_DESTRUCTOR_ITERATIONS: u32 = 4; +pub const _POSIX_THREAD_KEYS_MAX: u32 = 128; +pub const _POSIX_THREAD_THREADS_MAX: u32 = 64; +pub const PTHREAD_DESTRUCTOR_ITERATIONS: u32 = 4; +pub const PTHREAD_KEYS_MAX: u32 = 512; +pub const PTHREAD_STACK_MIN: u32 = 16384; +pub const _POSIX_HOST_NAME_MAX: u32 = 255; +pub const _POSIX_LOGIN_NAME_MAX: u32 = 9; +pub const _POSIX_SS_REPL_MAX: u32 = 4; +pub const _POSIX_SYMLINK_MAX: u32 = 255; +pub const _POSIX_SYMLOOP_MAX: u32 = 8; +pub const _POSIX_TRACE_EVENT_NAME_MAX: u32 = 30; +pub const _POSIX_TRACE_NAME_MAX: u32 = 8; +pub const _POSIX_TRACE_SYS_MAX: u32 = 8; +pub const _POSIX_TRACE_USER_EVENT_MAX: u32 = 32; +pub const _POSIX_TTY_NAME_MAX: u32 = 9; +pub const _POSIX2_CHARCLASS_NAME_MAX: u32 = 14; +pub const _POSIX2_COLL_WEIGHTS_MAX: u32 = 2; +pub const _POSIX_RE_DUP_MAX: u32 = 255; +pub const OFF_MIN: i64 = -9223372036854775808; +pub const OFF_MAX: u64 = 9223372036854775807; +pub const PASS_MAX: u32 = 128; +pub const NL_ARGMAX: u32 = 9; +pub const NL_LANGMAX: u32 = 14; +pub const NL_MSGMAX: u32 = 32767; +pub const NL_NMAX: u32 = 1; +pub const NL_SETMAX: u32 = 255; +pub const NL_TEXTMAX: u32 = 2048; +pub const _XOPEN_IOV_MAX: u32 = 16; +pub const IOV_MAX: u32 = 1024; +pub const _XOPEN_NAME_MAX: u32 = 255; +pub const _XOPEN_PATH_MAX: u32 = 1024; +pub const FLT_HAS_SUBNORM: u32 = 1; +pub const DBL_HAS_SUBNORM: u32 = 1; +pub const LDBL_HAS_SUBNORM: u32 = 1; +pub const G_MINSHORT: i32 = -32768; +pub const G_MAXSHORT: u32 = 32767; +pub const G_MAXUSHORT: u32 = 65535; +pub const G_MININT: i32 = -2147483648; +pub const G_MAXINT: u32 = 2147483647; +pub const G_MAXUINT: u32 = 4294967295; +pub const G_MINLONG: i64 = -9223372036854775808; +pub const G_MAXLONG: u64 = 9223372036854775807; +pub const G_MAXULONG: i32 = -1; +pub const G_GINT16_MODIFIER: &[u8; 2] = b"h\0"; +pub const G_GINT16_FORMAT: &[u8; 3] = b"hi\0"; +pub const G_GUINT16_FORMAT: &[u8; 3] = b"hu\0"; +pub const G_GINT32_MODIFIER: &[u8; 1] = b"\0"; +pub const G_GINT32_FORMAT: &[u8; 2] = b"i\0"; +pub const G_GUINT32_FORMAT: &[u8; 2] = b"u\0"; +pub const G_HAVE_GINT64: u32 = 1; +pub const G_GINT64_MODIFIER: &[u8; 3] = b"ll\0"; +pub const G_GINT64_FORMAT: &[u8; 4] = b"lli\0"; +pub const G_GUINT64_FORMAT: &[u8; 4] = b"llu\0"; +pub const GLIB_SIZEOF_VOID_P: u32 = 8; +pub const GLIB_SIZEOF_LONG: u32 = 8; +pub const GLIB_SIZEOF_SIZE_T: u32 = 8; +pub const GLIB_SIZEOF_SSIZE_T: u32 = 8; +pub const G_GSIZE_MODIFIER: &[u8; 2] = b"l\0"; +pub const G_GSSIZE_MODIFIER: &[u8; 2] = b"l\0"; +pub const G_GSIZE_FORMAT: &[u8; 3] = b"lu\0"; +pub const G_GSSIZE_FORMAT: &[u8; 3] = b"li\0"; +pub const G_MAXSIZE: i32 = -1; +pub const G_MINSSIZE: i64 = -9223372036854775808; +pub const G_MAXSSIZE: u64 = 9223372036854775807; +pub const G_GOFFSET_MODIFIER: &[u8; 3] = b"ll\0"; +pub const G_GOFFSET_FORMAT: &[u8; 4] = b"lli\0"; +pub const G_POLLFD_FORMAT: &[u8; 3] = b"%d\0"; +pub const G_GINTPTR_MODIFIER: &[u8; 2] = b"l\0"; +pub const G_GINTPTR_FORMAT: &[u8; 3] = b"li\0"; +pub const G_GUINTPTR_FORMAT: &[u8; 3] = b"lu\0"; +pub const GLIB_MAJOR_VERSION: u32 = 2; +pub const GLIB_MINOR_VERSION: u32 = 82; +pub const GLIB_MICRO_VERSION: u32 = 2; +pub const G_HAVE_ISO_VARARGS: u32 = 1; +pub const G_HAVE_GROWING_STACK: u32 = 0; +pub const G_HAVE_GNUC_VARARGS: u32 = 1; +pub const G_PID_FORMAT: &[u8; 2] = b"i\0"; +pub const GLIB_SYSDEF_AF_UNIX: u32 = 1; +pub const GLIB_SYSDEF_AF_INET: u32 = 2; +pub const GLIB_SYSDEF_AF_INET6: u32 = 30; +pub const GLIB_SYSDEF_MSG_OOB: u32 = 1; +pub const GLIB_SYSDEF_MSG_PEEK: u32 = 2; +pub const GLIB_SYSDEF_MSG_DONTROUTE: u32 = 4; +pub const G_DIR_SEPARATOR: u8 = 47u8; +pub const G_DIR_SEPARATOR_S: &[u8; 2] = b"/\0"; +pub const G_SEARCHPATH_SEPARATOR: u8 = 58u8; +pub const G_SEARCHPATH_SEPARATOR_S: &[u8; 2] = b":\0"; +pub const TIME_UTC: u32 = 1; +pub const G_E: f64 = 2.718281828459045; +pub const G_LN2: f64 = 0.6931471805599453; +pub const G_LN10: f64 = 2.302585092994046; +pub const G_PI: f64 = 3.141592653589793; +pub const G_PI_2: f64 = 1.5707963267948966; +pub const G_PI_4: f64 = 0.7853981633974483; +pub const G_SQRT2: f64 = 1.4142135623730951; +pub const G_LITTLE_ENDIAN: u32 = 1234; +pub const G_BIG_ENDIAN: u32 = 4321; +pub const G_PDP_ENDIAN: u32 = 3412; +pub const G_IEEE754_FLOAT_BIAS: u32 = 127; +pub const G_IEEE754_DOUBLE_BIAS: u32 = 1023; +pub const G_LOG_2_BASE_10: f64 = 0.3010299956639812; +pub const __DARWIN_NSIG: u32 = 32; +pub const NSIG: u32 = 32; +pub const _ARM_SIGNAL_: u32 = 1; +pub const SIGHUP: u32 = 1; +pub const SIGINT: u32 = 2; +pub const SIGQUIT: u32 = 3; +pub const SIGILL: u32 = 4; +pub const SIGTRAP: u32 = 5; +pub const SIGABRT: u32 = 6; +pub const SIGIOT: u32 = 6; +pub const SIGEMT: u32 = 7; +pub const SIGFPE: u32 = 8; +pub const SIGKILL: u32 = 9; +pub const SIGBUS: u32 = 10; +pub const SIGSEGV: u32 = 11; +pub const SIGSYS: u32 = 12; +pub const SIGPIPE: u32 = 13; +pub const SIGALRM: u32 = 14; +pub const SIGTERM: u32 = 15; +pub const SIGURG: u32 = 16; +pub const SIGSTOP: u32 = 17; +pub const SIGTSTP: u32 = 18; +pub const SIGCONT: u32 = 19; +pub const SIGCHLD: u32 = 20; +pub const SIGTTIN: u32 = 21; +pub const SIGTTOU: u32 = 22; +pub const SIGIO: u32 = 23; +pub const SIGXCPU: u32 = 24; +pub const SIGXFSZ: u32 = 25; +pub const SIGVTALRM: u32 = 26; +pub const SIGPROF: u32 = 27; +pub const SIGWINCH: u32 = 28; +pub const SIGINFO: u32 = 29; +pub const SIGUSR1: u32 = 30; +pub const SIGUSR2: u32 = 31; +pub const __DARWIN_OPAQUE_ARM_THREAD_STATE64: u32 = 0; +pub const SIGEV_NONE: u32 = 0; +pub const SIGEV_SIGNAL: u32 = 1; +pub const SIGEV_THREAD: u32 = 3; +pub const ILL_NOOP: u32 = 0; +pub const ILL_ILLOPC: u32 = 1; +pub const ILL_ILLTRP: u32 = 2; +pub const ILL_PRVOPC: u32 = 3; +pub const ILL_ILLOPN: u32 = 4; +pub const ILL_ILLADR: u32 = 5; +pub const ILL_PRVREG: u32 = 6; +pub const ILL_COPROC: u32 = 7; +pub const ILL_BADSTK: u32 = 8; +pub const FPE_NOOP: u32 = 0; +pub const FPE_FLTDIV: u32 = 1; +pub const FPE_FLTOVF: u32 = 2; +pub const FPE_FLTUND: u32 = 3; +pub const FPE_FLTRES: u32 = 4; +pub const FPE_FLTINV: u32 = 5; +pub const FPE_FLTSUB: u32 = 6; +pub const FPE_INTDIV: u32 = 7; +pub const FPE_INTOVF: u32 = 8; +pub const SEGV_NOOP: u32 = 0; +pub const SEGV_MAPERR: u32 = 1; +pub const SEGV_ACCERR: u32 = 2; +pub const BUS_NOOP: u32 = 0; +pub const BUS_ADRALN: u32 = 1; +pub const BUS_ADRERR: u32 = 2; +pub const BUS_OBJERR: u32 = 3; +pub const TRAP_BRKPT: u32 = 1; +pub const TRAP_TRACE: u32 = 2; +pub const CLD_NOOP: u32 = 0; +pub const CLD_EXITED: u32 = 1; +pub const CLD_KILLED: u32 = 2; +pub const CLD_DUMPED: u32 = 3; +pub const CLD_TRAPPED: u32 = 4; +pub const CLD_STOPPED: u32 = 5; +pub const CLD_CONTINUED: u32 = 6; +pub const POLL_IN: u32 = 1; +pub const POLL_OUT: u32 = 2; +pub const POLL_MSG: u32 = 3; +pub const POLL_ERR: u32 = 4; +pub const POLL_PRI: u32 = 5; +pub const POLL_HUP: u32 = 6; +pub const SA_ONSTACK: u32 = 1; +pub const SA_RESTART: u32 = 2; +pub const SA_RESETHAND: u32 = 4; +pub const SA_NOCLDSTOP: u32 = 8; +pub const SA_NODEFER: u32 = 16; +pub const SA_NOCLDWAIT: u32 = 32; +pub const SA_SIGINFO: u32 = 64; +pub const SA_USERTRAMP: u32 = 256; +pub const SA_64REGSET: u32 = 512; +pub const SA_USERSPACE_MASK: u32 = 127; +pub const SIG_BLOCK: u32 = 1; +pub const SIG_UNBLOCK: u32 = 2; +pub const SIG_SETMASK: u32 = 3; +pub const SI_USER: u32 = 65537; +pub const SI_QUEUE: u32 = 65538; +pub const SI_TIMER: u32 = 65539; +pub const SI_ASYNCIO: u32 = 65540; +pub const SI_MESGQ: u32 = 65541; +pub const SS_ONSTACK: u32 = 1; +pub const SS_DISABLE: u32 = 4; +pub const MINSIGSTKSZ: u32 = 32768; +pub const SIGSTKSZ: u32 = 131072; +pub const SV_ONSTACK: u32 = 1; +pub const SV_INTERRUPT: u32 = 2; +pub const SV_RESETHAND: u32 = 4; +pub const SV_NODEFER: u32 = 16; +pub const SV_NOCLDSTOP: u32 = 8; +pub const SV_SIGINFO: u32 = 64; +pub const PRIO_PROCESS: u32 = 0; +pub const PRIO_PGRP: u32 = 1; +pub const PRIO_USER: u32 = 2; +pub const PRIO_DARWIN_THREAD: u32 = 3; +pub const PRIO_DARWIN_PROCESS: u32 = 4; +pub const PRIO_MIN: i32 = -20; +pub const PRIO_MAX: u32 = 20; +pub const PRIO_DARWIN_BG: u32 = 4096; +pub const PRIO_DARWIN_NONUI: u32 = 4097; +pub const RUSAGE_SELF: u32 = 0; +pub const RUSAGE_CHILDREN: i32 = -1; +pub const RUSAGE_INFO_V0: u32 = 0; +pub const RUSAGE_INFO_V1: u32 = 1; +pub const RUSAGE_INFO_V2: u32 = 2; +pub const RUSAGE_INFO_V3: u32 = 3; +pub const RUSAGE_INFO_V4: u32 = 4; +pub const RUSAGE_INFO_V5: u32 = 5; +pub const RUSAGE_INFO_V6: u32 = 6; +pub const RUSAGE_INFO_CURRENT: u32 = 6; +pub const RU_PROC_RUNS_RESLIDE: u32 = 1; +pub const RLIMIT_CPU: u32 = 0; +pub const RLIMIT_FSIZE: u32 = 1; +pub const RLIMIT_DATA: u32 = 2; +pub const RLIMIT_STACK: u32 = 3; +pub const RLIMIT_CORE: u32 = 4; +pub const RLIMIT_AS: u32 = 5; +pub const RLIMIT_RSS: u32 = 5; +pub const RLIMIT_MEMLOCK: u32 = 6; +pub const RLIMIT_NPROC: u32 = 7; +pub const RLIMIT_NOFILE: u32 = 8; +pub const RLIM_NLIMITS: u32 = 9; +pub const _RLIMIT_POSIX_FLAG: u32 = 4096; +pub const RLIMIT_WAKEUPS_MONITOR: u32 = 1; +pub const RLIMIT_CPU_USAGE_MONITOR: u32 = 2; +pub const RLIMIT_THREAD_CPULIMITS: u32 = 3; +pub const RLIMIT_FOOTPRINT_INTERVAL: u32 = 4; +pub const WAKEMON_ENABLE: u32 = 1; +pub const WAKEMON_DISABLE: u32 = 2; +pub const WAKEMON_GET_PARAMS: u32 = 4; +pub const WAKEMON_SET_DEFAULTS: u32 = 8; +pub const WAKEMON_MAKE_FATAL: u32 = 16; +pub const CPUMON_MAKE_FATAL: u32 = 4096; +pub const FOOTPRINT_INTERVAL_RESET: u32 = 1; +pub const IOPOL_TYPE_DISK: u32 = 0; +pub const IOPOL_TYPE_VFS_ATIME_UPDATES: u32 = 2; +pub const IOPOL_TYPE_VFS_MATERIALIZE_DATALESS_FILES: u32 = 3; +pub const IOPOL_TYPE_VFS_STATFS_NO_DATA_VOLUME: u32 = 4; +pub const IOPOL_TYPE_VFS_TRIGGER_RESOLVE: u32 = 5; +pub const IOPOL_TYPE_VFS_IGNORE_CONTENT_PROTECTION: u32 = 6; +pub const IOPOL_TYPE_VFS_IGNORE_PERMISSIONS: u32 = 7; +pub const IOPOL_TYPE_VFS_SKIP_MTIME_UPDATE: u32 = 8; +pub const IOPOL_TYPE_VFS_ALLOW_LOW_SPACE_WRITES: u32 = 9; +pub const IOPOL_TYPE_VFS_DISALLOW_RW_FOR_O_EVTONLY: u32 = 10; +pub const IOPOL_SCOPE_PROCESS: u32 = 0; +pub const IOPOL_SCOPE_THREAD: u32 = 1; +pub const IOPOL_SCOPE_DARWIN_BG: u32 = 2; +pub const IOPOL_DEFAULT: u32 = 0; +pub const IOPOL_IMPORTANT: u32 = 1; +pub const IOPOL_PASSIVE: u32 = 2; +pub const IOPOL_THROTTLE: u32 = 3; +pub const IOPOL_UTILITY: u32 = 4; +pub const IOPOL_STANDARD: u32 = 5; +pub const IOPOL_APPLICATION: u32 = 5; +pub const IOPOL_NORMAL: u32 = 1; +pub const IOPOL_ATIME_UPDATES_DEFAULT: u32 = 0; +pub const IOPOL_ATIME_UPDATES_OFF: u32 = 1; +pub const IOPOL_MATERIALIZE_DATALESS_FILES_DEFAULT: u32 = 0; +pub const IOPOL_MATERIALIZE_DATALESS_FILES_OFF: u32 = 1; +pub const IOPOL_MATERIALIZE_DATALESS_FILES_ON: u32 = 2; +pub const IOPOL_VFS_STATFS_NO_DATA_VOLUME_DEFAULT: u32 = 0; +pub const IOPOL_VFS_STATFS_FORCE_NO_DATA_VOLUME: u32 = 1; +pub const IOPOL_VFS_TRIGGER_RESOLVE_DEFAULT: u32 = 0; +pub const IOPOL_VFS_TRIGGER_RESOLVE_OFF: u32 = 1; +pub const IOPOL_VFS_CONTENT_PROTECTION_DEFAULT: u32 = 0; +pub const IOPOL_VFS_CONTENT_PROTECTION_IGNORE: u32 = 1; +pub const IOPOL_VFS_IGNORE_PERMISSIONS_OFF: u32 = 0; +pub const IOPOL_VFS_IGNORE_PERMISSIONS_ON: u32 = 1; +pub const IOPOL_VFS_SKIP_MTIME_UPDATE_OFF: u32 = 0; +pub const IOPOL_VFS_SKIP_MTIME_UPDATE_ON: u32 = 1; +pub const IOPOL_VFS_ALLOW_LOW_SPACE_WRITES_OFF: u32 = 0; +pub const IOPOL_VFS_ALLOW_LOW_SPACE_WRITES_ON: u32 = 1; +pub const IOPOL_VFS_DISALLOW_RW_FOR_O_EVTONLY_DEFAULT: u32 = 0; +pub const IOPOL_VFS_DISALLOW_RW_FOR_O_EVTONLY_ON: u32 = 1; +pub const IOPOL_VFS_NOCACHE_WRITE_FS_BLKSIZE_DEFAULT: u32 = 0; +pub const IOPOL_VFS_NOCACHE_WRITE_FS_BLKSIZE_ON: u32 = 1; +pub const WNOHANG: u32 = 1; +pub const WUNTRACED: u32 = 2; +pub const WCOREFLAG: u32 = 128; +pub const _WSTOPPED: u32 = 127; +pub const WEXITED: u32 = 4; +pub const WSTOPPED: u32 = 8; +pub const WCONTINUED: u32 = 16; +pub const WNOWAIT: u32 = 32; +pub const WAIT_ANY: i32 = -1; +pub const WAIT_MYPGRP: u32 = 0; +pub const _QUAD_HIGHWORD: u32 = 1; +pub const _QUAD_LOWWORD: u32 = 0; +pub const __DARWIN_LITTLE_ENDIAN: u32 = 1234; +pub const __DARWIN_BIG_ENDIAN: u32 = 4321; +pub const __DARWIN_PDP_ENDIAN: u32 = 3412; +pub const __DARWIN_BYTE_ORDER: u32 = 1234; +pub const LITTLE_ENDIAN: u32 = 1234; +pub const BIG_ENDIAN: u32 = 4321; +pub const PDP_ENDIAN: u32 = 3412; +pub const BYTE_ORDER: u32 = 1234; +pub const EXIT_FAILURE: u32 = 1; +pub const EXIT_SUCCESS: u32 = 0; +pub const RAND_MAX: u32 = 2147483647; +pub const G_DATALIST_FLAGS_MASK: u32 = 3; +pub const G_DATE_BAD_JULIAN: u32 = 0; +pub const G_DATE_BAD_DAY: u32 = 0; +pub const G_DATE_BAD_YEAR: u32 = 0; +pub const __DARWIN_MAXNAMLEN: u32 = 255; +pub const __DARWIN_MAXPATHLEN: u32 = 1024; +pub const MAXNAMLEN: u32 = 255; +pub const DT_UNKNOWN: u32 = 0; +pub const DT_FIFO: u32 = 1; +pub const DT_CHR: u32 = 2; +pub const DT_DIR: u32 = 4; +pub const DT_BLK: u32 = 6; +pub const DT_REG: u32 = 8; +pub const DT_LNK: u32 = 10; +pub const DT_SOCK: u32 = 12; +pub const DT_WHT: u32 = 14; +pub const DIRBLKSIZ: u32 = 1024; +pub const DTF_HIDEW: u32 = 1; +pub const DTF_NODUP: u32 = 2; +pub const DTF_REWIND: u32 = 4; +pub const __DTF_READALL: u32 = 8; +pub const __DTF_SKIPREAD: u32 = 16; +pub const __DTF_ATEND: u32 = 32; +pub const G_MEM_ALIGN: u32 = 8; +pub const G_HOOK_FLAG_USER_SHIFT: u32 = 4; +pub const G_PRIORITY_HIGH: i32 = -100; +pub const G_PRIORITY_DEFAULT: u32 = 0; +pub const G_PRIORITY_HIGH_IDLE: u32 = 100; +pub const G_PRIORITY_DEFAULT_IDLE: u32 = 200; +pub const G_PRIORITY_LOW: u32 = 300; +pub const G_SOURCE_REMOVE: u32 = 0; +pub const G_UNICHAR_MAX_DECOMPOSITION_LENGTH: u32 = 18; +pub const G_STR_DELIMITERS: &[u8; 8] = b"_-|> <.\0"; +pub const G_ASCII_DTOSTR_BUF_SIZE: u32 = 39; +pub const G_KEY_FILE_DESKTOP_GROUP: &[u8; 14] = b"Desktop Entry\0"; +pub const G_KEY_FILE_DESKTOP_KEY_TYPE: &[u8; 5] = b"Type\0"; +pub const G_KEY_FILE_DESKTOP_KEY_VERSION: &[u8; 8] = b"Version\0"; +pub const G_KEY_FILE_DESKTOP_KEY_NAME: &[u8; 5] = b"Name\0"; +pub const G_KEY_FILE_DESKTOP_KEY_GENERIC_NAME: &[u8; 12] = b"GenericName\0"; +pub const G_KEY_FILE_DESKTOP_KEY_NO_DISPLAY: &[u8; 10] = b"NoDisplay\0"; +pub const G_KEY_FILE_DESKTOP_KEY_COMMENT: &[u8; 8] = b"Comment\0"; +pub const G_KEY_FILE_DESKTOP_KEY_ICON: &[u8; 5] = b"Icon\0"; +pub const G_KEY_FILE_DESKTOP_KEY_HIDDEN: &[u8; 7] = b"Hidden\0"; +pub const G_KEY_FILE_DESKTOP_KEY_ONLY_SHOW_IN: &[u8; 11] = b"OnlyShowIn\0"; +pub const G_KEY_FILE_DESKTOP_KEY_NOT_SHOW_IN: &[u8; 10] = b"NotShowIn\0"; +pub const G_KEY_FILE_DESKTOP_KEY_TRY_EXEC: &[u8; 8] = b"TryExec\0"; +pub const G_KEY_FILE_DESKTOP_KEY_EXEC: &[u8; 5] = b"Exec\0"; +pub const G_KEY_FILE_DESKTOP_KEY_PATH: &[u8; 5] = b"Path\0"; +pub const G_KEY_FILE_DESKTOP_KEY_TERMINAL: &[u8; 9] = b"Terminal\0"; +pub const G_KEY_FILE_DESKTOP_KEY_MIME_TYPE: &[u8; 9] = b"MimeType\0"; +pub const G_KEY_FILE_DESKTOP_KEY_CATEGORIES: &[u8; 11] = b"Categories\0"; +pub const G_KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY: &[u8; 14] = b"StartupNotify\0"; +pub const G_KEY_FILE_DESKTOP_KEY_STARTUP_WM_CLASS: &[u8; 15] = b"StartupWMClass\0"; +pub const G_KEY_FILE_DESKTOP_KEY_URL: &[u8; 4] = b"URL\0"; +pub const G_KEY_FILE_DESKTOP_KEY_DBUS_ACTIVATABLE: &[u8; 16] = b"DBusActivatable\0"; +pub const G_KEY_FILE_DESKTOP_KEY_ACTIONS: &[u8; 8] = b"Actions\0"; +pub const G_KEY_FILE_DESKTOP_TYPE_APPLICATION: &[u8; 12] = b"Application\0"; +pub const G_KEY_FILE_DESKTOP_TYPE_LINK: &[u8; 5] = b"Link\0"; +pub const G_KEY_FILE_DESKTOP_TYPE_DIRECTORY: &[u8; 10] = b"Directory\0"; +pub const G_LOG_LEVEL_USER_SHIFT: u32 = 8; +pub const G_OPTION_REMAINING: &[u8; 1] = b"\0"; +pub const G_CSET_A_2_Z: &[u8; 27] = b"ABCDEFGHIJKLMNOPQRSTUVWXYZ\0"; +pub const G_CSET_a_2_z: &[u8; 27] = b"abcdefghijklmnopqrstuvwxyz\0"; +pub const G_CSET_DIGITS: &[u8; 11] = b"0123456789\0"; +pub const G_CSET_LATINC : & [u8 ; 31] = b"\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD8\xD9\xDA\xDB\xDC\xDD\xDE\0" ; +pub const G_CSET_LATINS : & [u8 ; 33] = b"\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF\0" ; +pub const EPERM: u32 = 1; +pub const ENOENT: u32 = 2; +pub const ESRCH: u32 = 3; +pub const EINTR: u32 = 4; +pub const EIO: u32 = 5; +pub const ENXIO: u32 = 6; +pub const E2BIG: u32 = 7; +pub const ENOEXEC: u32 = 8; +pub const EBADF: u32 = 9; +pub const ECHILD: u32 = 10; +pub const EDEADLK: u32 = 11; +pub const ENOMEM: u32 = 12; +pub const EACCES: u32 = 13; +pub const EFAULT: u32 = 14; +pub const ENOTBLK: u32 = 15; +pub const EBUSY: u32 = 16; +pub const EEXIST: u32 = 17; +pub const EXDEV: u32 = 18; +pub const ENODEV: u32 = 19; +pub const ENOTDIR: u32 = 20; +pub const EISDIR: u32 = 21; +pub const EINVAL: u32 = 22; +pub const ENFILE: u32 = 23; +pub const EMFILE: u32 = 24; +pub const ENOTTY: u32 = 25; +pub const ETXTBSY: u32 = 26; +pub const EFBIG: u32 = 27; +pub const ENOSPC: u32 = 28; +pub const ESPIPE: u32 = 29; +pub const EROFS: u32 = 30; +pub const EMLINK: u32 = 31; +pub const EPIPE: u32 = 32; +pub const EDOM: u32 = 33; +pub const ERANGE: u32 = 34; +pub const EAGAIN: u32 = 35; +pub const EWOULDBLOCK: u32 = 35; +pub const EINPROGRESS: u32 = 36; +pub const EALREADY: u32 = 37; +pub const ENOTSOCK: u32 = 38; +pub const EDESTADDRREQ: u32 = 39; +pub const EMSGSIZE: u32 = 40; +pub const EPROTOTYPE: u32 = 41; +pub const ENOPROTOOPT: u32 = 42; +pub const EPROTONOSUPPORT: u32 = 43; +pub const ESOCKTNOSUPPORT: u32 = 44; +pub const ENOTSUP: u32 = 45; +pub const EPFNOSUPPORT: u32 = 46; +pub const EAFNOSUPPORT: u32 = 47; +pub const EADDRINUSE: u32 = 48; +pub const EADDRNOTAVAIL: u32 = 49; +pub const ENETDOWN: u32 = 50; +pub const ENETUNREACH: u32 = 51; +pub const ENETRESET: u32 = 52; +pub const ECONNABORTED: u32 = 53; +pub const ECONNRESET: u32 = 54; +pub const ENOBUFS: u32 = 55; +pub const EISCONN: u32 = 56; +pub const ENOTCONN: u32 = 57; +pub const ESHUTDOWN: u32 = 58; +pub const ETOOMANYREFS: u32 = 59; +pub const ETIMEDOUT: u32 = 60; +pub const ECONNREFUSED: u32 = 61; +pub const ELOOP: u32 = 62; +pub const ENAMETOOLONG: u32 = 63; +pub const EHOSTDOWN: u32 = 64; +pub const EHOSTUNREACH: u32 = 65; +pub const ENOTEMPTY: u32 = 66; +pub const EPROCLIM: u32 = 67; +pub const EUSERS: u32 = 68; +pub const EDQUOT: u32 = 69; +pub const ESTALE: u32 = 70; +pub const EREMOTE: u32 = 71; +pub const EBADRPC: u32 = 72; +pub const ERPCMISMATCH: u32 = 73; +pub const EPROGUNAVAIL: u32 = 74; +pub const EPROGMISMATCH: u32 = 75; +pub const EPROCUNAVAIL: u32 = 76; +pub const ENOLCK: u32 = 77; +pub const ENOSYS: u32 = 78; +pub const EFTYPE: u32 = 79; +pub const EAUTH: u32 = 80; +pub const ENEEDAUTH: u32 = 81; +pub const EPWROFF: u32 = 82; +pub const EDEVERR: u32 = 83; +pub const EOVERFLOW: u32 = 84; +pub const EBADEXEC: u32 = 85; +pub const EBADARCH: u32 = 86; +pub const ESHLIBVERS: u32 = 87; +pub const EBADMACHO: u32 = 88; +pub const ECANCELED: u32 = 89; +pub const EIDRM: u32 = 90; +pub const ENOMSG: u32 = 91; +pub const EILSEQ: u32 = 92; +pub const ENOATTR: u32 = 93; +pub const EBADMSG: u32 = 94; +pub const EMULTIHOP: u32 = 95; +pub const ENODATA: u32 = 96; +pub const ENOLINK: u32 = 97; +pub const ENOSR: u32 = 98; +pub const ENOSTR: u32 = 99; +pub const EPROTO: u32 = 100; +pub const ETIME: u32 = 101; +pub const EOPNOTSUPP: u32 = 102; +pub const ENOPOLICY: u32 = 103; +pub const ENOTRECOVERABLE: u32 = 104; +pub const EOWNERDEAD: u32 = 105; +pub const EQFULL: u32 = 106; +pub const ELAST: u32 = 106; +pub const G_TEST_OPTION_ISOLATE_DIRS: &[u8; 13] = b"isolate_dirs\0"; +pub const G_USEC_PER_SEC: u32 = 1000000; +pub const G_URI_RESERVED_CHARS_GENERIC_DELIMITERS: &[u8; 8] = b":/?#[]@\0"; +pub const G_URI_RESERVED_CHARS_SUBCOMPONENT_DELIMITERS: &[u8; 12] = b"!$&'()*+,;=\0"; +pub const G_URI_RESERVED_CHARS_ALLOWED_IN_PATH_ELEMENT: &[u8; 14] = b"!$&'()*+,;=:@\0"; +pub const G_URI_RESERVED_CHARS_ALLOWED_IN_PATH: &[u8; 15] = b"!$&'()*+,;=:@/\0"; +pub const G_URI_RESERVED_CHARS_ALLOWED_IN_USERINFO: &[u8; 13] = b"!$&'()*+,;=:\0"; +pub const G_ALLOC_ONLY: u32 = 1; +pub const G_ALLOC_AND_FREE: u32 = 2; +pub const G_ALLOCATOR_LIST: u32 = 1; +pub const G_ALLOCATOR_SLIST: u32 = 2; +pub const G_ALLOCATOR_NODE: u32 = 3; +pub const __DARWIN_FD_SETSIZE: u32 = 1024; +pub const __DARWIN_NBBY: u32 = 8; +pub const NBBY: u32 = 8; +pub const FD_SETSIZE: u32 = 1024; +pub const _PTHREAD_MUTEX_SIG_init: u32 = 850045863; +pub const _PTHREAD_ERRORCHECK_MUTEX_SIG_init: u32 = 850045857; +pub const _PTHREAD_RECURSIVE_MUTEX_SIG_init: u32 = 850045858; +pub const _PTHREAD_FIRSTFIT_MUTEX_SIG_init: u32 = 850045859; +pub const _PTHREAD_COND_SIG_init: u32 = 1018212795; +pub const _PTHREAD_ONCE_SIG_init: u32 = 816954554; +pub const _PTHREAD_RWLOCK_SIG_init: u32 = 766030772; +pub const SCHED_OTHER: u32 = 1; +pub const SCHED_FIFO: u32 = 4; +pub const SCHED_RR: u32 = 2; +pub const __SCHED_PARAM_SIZE__: u32 = 4; +pub const QOS_MIN_RELATIVE_PRIORITY: i32 = -15; +pub const PTHREAD_CREATE_JOINABLE: u32 = 1; +pub const PTHREAD_CREATE_DETACHED: u32 = 2; +pub const PTHREAD_INHERIT_SCHED: u32 = 1; +pub const PTHREAD_EXPLICIT_SCHED: u32 = 2; +pub const PTHREAD_CANCEL_ENABLE: u32 = 1; +pub const PTHREAD_CANCEL_DISABLE: u32 = 0; +pub const PTHREAD_CANCEL_DEFERRED: u32 = 2; +pub const PTHREAD_CANCEL_ASYNCHRONOUS: u32 = 0; +pub const PTHREAD_SCOPE_SYSTEM: u32 = 1; +pub const PTHREAD_SCOPE_PROCESS: u32 = 2; +pub const PTHREAD_PROCESS_SHARED: u32 = 1; +pub const PTHREAD_PROCESS_PRIVATE: u32 = 2; +pub const PTHREAD_PRIO_NONE: u32 = 0; +pub const PTHREAD_PRIO_INHERIT: u32 = 1; +pub const PTHREAD_PRIO_PROTECT: u32 = 2; +pub const PTHREAD_MUTEX_NORMAL: u32 = 0; +pub const PTHREAD_MUTEX_ERRORCHECK: u32 = 1; +pub const PTHREAD_MUTEX_RECURSIVE: u32 = 2; +pub const PTHREAD_MUTEX_DEFAULT: u32 = 0; +pub const PTHREAD_MUTEX_POLICY_FAIRSHARE_NP: u32 = 1; +pub const PTHREAD_MUTEX_POLICY_FIRSTFIT_NP: u32 = 3; +pub const WIRESHARK_VERSION_MAJOR: u32 = 4; +pub const WIRESHARK_VERSION_MINOR: u32 = 4; +pub const WIRESHARK_VERSION_MICRO: u32 = 1; +pub const RENAME_SECLUDE: u32 = 1; +pub const RENAME_SWAP: u32 = 2; +pub const RENAME_EXCL: u32 = 4; +pub const RENAME_RESERVED1: u32 = 8; +pub const RENAME_NOFOLLOW_ANY: u32 = 16; +pub const SEEK_SET: u32 = 0; +pub const SEEK_CUR: u32 = 1; +pub const SEEK_END: u32 = 2; +pub const SEEK_HOLE: u32 = 3; +pub const SEEK_DATA: u32 = 4; +pub const __SLBF: u32 = 1; +pub const __SNBF: u32 = 2; +pub const __SRD: u32 = 4; +pub const __SWR: u32 = 8; +pub const __SRW: u32 = 16; +pub const __SEOF: u32 = 32; +pub const __SERR: u32 = 64; +pub const __SMBF: u32 = 128; +pub const __SAPP: u32 = 256; +pub const __SSTR: u32 = 512; +pub const __SOPT: u32 = 1024; +pub const __SNPT: u32 = 2048; +pub const __SOFF: u32 = 4096; +pub const __SMOD: u32 = 8192; +pub const __SALC: u32 = 16384; +pub const __SIGN: u32 = 32768; +pub const _IOFBF: u32 = 0; +pub const _IOLBF: u32 = 1; +pub const _IONBF: u32 = 2; +pub const BUFSIZ: u32 = 1024; +pub const EOF: i32 = -1; +pub const FOPEN_MAX: u32 = 20; +pub const FILENAME_MAX: u32 = 1024; +pub const P_tmpdir: &[u8; 10] = b"/var/tmp/\0"; +pub const L_tmpnam: u32 = 1024; +pub const TMP_MAX: u32 = 308915776; +pub const L_ctermid: u32 = 1024; +pub const LOG_DOMAIN_MAIN: &[u8; 5] = b"Main\0"; +pub const LOG_DOMAIN_CAPTURE: &[u8; 8] = b"Capture\0"; +pub const LOG_DOMAIN_CAPCHILD: &[u8; 9] = b"Capchild\0"; +pub const LOG_DOMAIN_WIRETAP: &[u8; 8] = b"Wiretap\0"; +pub const LOG_DOMAIN_EPAN: &[u8; 5] = b"Epan\0"; +pub const LOG_DOMAIN_DFILTER: &[u8; 8] = b"DFilter\0"; +pub const LOG_DOMAIN_WSUTIL: &[u8; 7] = b"WSUtil\0"; +pub const LOG_DOMAIN_QTUI: &[u8; 4] = b"GUI\0"; +pub const LOG_DOMAIN_UAT: &[u8; 4] = b"UAT\0"; +pub const LOG_DOMAIN_EXTCAP: &[u8; 7] = b"Extcap\0"; +pub const LOG_DOMAIN_UTF_8: &[u8; 6] = b"UTF-8\0"; +pub const LOG_DOMAIN_MMDB: &[u8; 10] = b"MaxMindDB\0"; +pub const LOG_DOMAIN_EINVAL: &[u8; 11] = b"InvalidArg\0"; +pub const LOG_DOMAIN_PLUGINS: &[u8; 8] = b"Plugins\0"; +pub const LOG_DOMAIN_WSLUA: &[u8; 4] = b"Lua\0"; +pub const _LOG_DOMAIN: &[u8; 1] = b"\0"; +pub const _LOG_DEBUG_ENABLED: u32 = 0; +pub const LOG_HKCU_CONSOLE_OPEN: &[u8; 12] = b"ConsoleOpen\0"; +pub const LOG_ARGS_NOEXIT: i32 = -1; +pub const UNICODE_REPLACEMENT_CHARACTER: u32 = 65533; +pub const WMEM_TREE_STRING_NOCASE: u32 = 1; +pub const WS_ASSERT_ENABLED: u32 = 1; +pub const NSTIME_UNIX_BUFSIZE: u32 = 31; +pub const WS_TSPREC_MAX: u32 = 9; +pub const NUM_WS_TSPREC_VALS: u32 = 10; +pub const WS_INET_ADDRSTRLEN: u32 = 16; +pub const WS_INET6_ADDRSTRLEN: u32 = 46; +pub const WS_INET_CIDRADDRSTRLEN: u32 = 19; +pub const OPT_EOFOPT: u32 = 0; +pub const OPT_COMMENT: u32 = 1; +pub const OPT_CUSTOM_STR_COPY: u32 = 2988; +pub const OPT_CUSTOM_BIN_COPY: u32 = 2989; +pub const OPT_CUSTOM_STR_NO_COPY: u32 = 19372; +pub const OPT_CUSTOM_BIN_NO_COPY: u32 = 19373; +pub const OPT_SHB_HARDWARE: u32 = 2; +pub const OPT_SHB_OS: u32 = 3; +pub const OPT_SHB_USERAPPL: u32 = 4; +pub const OPT_IDB_NAME: u32 = 2; +pub const OPT_IDB_DESCRIPTION: u32 = 3; +pub const OPT_IDB_IP4ADDR: u32 = 4; +pub const OPT_IDB_IP6ADDR: u32 = 5; +pub const OPT_IDB_MACADDR: u32 = 6; +pub const OPT_IDB_EUIADDR: u32 = 7; +pub const OPT_IDB_SPEED: u32 = 8; +pub const OPT_IDB_TSRESOL: u32 = 9; +pub const OPT_IDB_TZONE: u32 = 10; +pub const OPT_IDB_FILTER: u32 = 11; +pub const OPT_IDB_OS: u32 = 12; +pub const OPT_IDB_FCSLEN: u32 = 13; +pub const OPT_IDB_TSOFFSET: u32 = 14; +pub const OPT_IDB_HARDWARE: u32 = 15; +pub const OPT_PKT_FLAGS: u32 = 2; +pub const OPT_PKT_HASH: u32 = 3; +pub const OPT_PKT_DROPCOUNT: u32 = 4; +pub const OPT_PKT_PACKETID: u32 = 5; +pub const OPT_PKT_QUEUE: u32 = 6; +pub const OPT_PKT_VERDICT: u32 = 7; +pub const OPT_NS_DNSNAME: u32 = 2; +pub const OPT_NS_DNSIP4ADDR: u32 = 3; +pub const OPT_NS_DNSIP6ADDR: u32 = 4; +pub const OPT_ISB_STARTTIME: u32 = 2; +pub const OPT_ISB_ENDTIME: u32 = 3; +pub const OPT_ISB_IFRECV: u32 = 4; +pub const OPT_ISB_IFDROP: u32 = 5; +pub const OPT_ISB_FILTERACCEPT: u32 = 6; +pub const OPT_ISB_OSDROP: u32 = 7; +pub const OPT_ISB_USRDELIV: u32 = 8; +pub const PEN_NFLX: u32 = 10949; +pub const PEN_VCTR: u32 = 46254; +pub const NFLX_OPT_TYPE_VERSION: u32 = 1; +pub const NFLX_OPT_TYPE_TCPINFO: u32 = 2; +pub const NFLX_OPT_TYPE_DUMPINFO: u32 = 4; +pub const NFLX_OPT_TYPE_DUMPTIME: u32 = 5; +pub const NFLX_OPT_TYPE_STACKNAME: u32 = 6; +pub const NFLX_TLB_FLAG_RXBUF: u32 = 1; +pub const NFLX_TLB_FLAG_TXBUF: u32 = 2; +pub const NFLX_TLB_FLAG_HDR: u32 = 4; +pub const NFLX_TLB_FLAG_VERBOSE: u32 = 8; +pub const NFLX_TLB_FLAG_STACKINFO: u32 = 16; +pub const NFLX_TLB_TF_REQ_SCALE: u32 = 32; +pub const NFLX_TLB_TF_RCVD_SCALE: u32 = 64; +pub const NFLX_TLB_TCPS_ESTABLISHED: u32 = 4; +pub const WTAP_ENCAP_NONE: i32 = -2; +pub const WTAP_ENCAP_PER_PACKET: i32 = -1; +pub const WTAP_ENCAP_UNKNOWN: u32 = 0; +pub const WTAP_ENCAP_ETHERNET: u32 = 1; +pub const WTAP_ENCAP_TOKEN_RING: u32 = 2; +pub const WTAP_ENCAP_SLIP: u32 = 3; +pub const WTAP_ENCAP_PPP: u32 = 4; +pub const WTAP_ENCAP_FDDI: u32 = 5; +pub const WTAP_ENCAP_FDDI_BITSWAPPED: u32 = 6; +pub const WTAP_ENCAP_RAW_IP: u32 = 7; +pub const WTAP_ENCAP_ARCNET: u32 = 8; +pub const WTAP_ENCAP_ARCNET_LINUX: u32 = 9; +pub const WTAP_ENCAP_ATM_RFC1483: u32 = 10; +pub const WTAP_ENCAP_LINUX_ATM_CLIP: u32 = 11; +pub const WTAP_ENCAP_LAPB: u32 = 12; +pub const WTAP_ENCAP_ATM_PDUS: u32 = 13; +pub const WTAP_ENCAP_ATM_PDUS_UNTRUNCATED: u32 = 14; +pub const WTAP_ENCAP_NULL: u32 = 15; +pub const WTAP_ENCAP_ASCEND: u32 = 16; +pub const WTAP_ENCAP_ISDN: u32 = 17; +pub const WTAP_ENCAP_IP_OVER_FC: u32 = 18; +pub const WTAP_ENCAP_PPP_WITH_PHDR: u32 = 19; +pub const WTAP_ENCAP_IEEE_802_11: u32 = 20; +pub const WTAP_ENCAP_IEEE_802_11_PRISM: u32 = 21; +pub const WTAP_ENCAP_IEEE_802_11_WITH_RADIO: u32 = 22; +pub const WTAP_ENCAP_IEEE_802_11_RADIOTAP: u32 = 23; +pub const WTAP_ENCAP_IEEE_802_11_AVS: u32 = 24; +pub const WTAP_ENCAP_SLL: u32 = 25; +pub const WTAP_ENCAP_FRELAY: u32 = 26; +pub const WTAP_ENCAP_FRELAY_WITH_PHDR: u32 = 27; +pub const WTAP_ENCAP_CHDLC: u32 = 28; +pub const WTAP_ENCAP_CISCO_IOS: u32 = 29; +pub const WTAP_ENCAP_LOCALTALK: u32 = 30; +pub const WTAP_ENCAP_OLD_PFLOG: u32 = 31; +pub const WTAP_ENCAP_HHDLC: u32 = 32; +pub const WTAP_ENCAP_DOCSIS: u32 = 33; +pub const WTAP_ENCAP_COSINE: u32 = 34; +pub const WTAP_ENCAP_WFLEET_HDLC: u32 = 35; +pub const WTAP_ENCAP_SDLC: u32 = 36; +pub const WTAP_ENCAP_TZSP: u32 = 37; +pub const WTAP_ENCAP_ENC: u32 = 38; +pub const WTAP_ENCAP_PFLOG: u32 = 39; +pub const WTAP_ENCAP_CHDLC_WITH_PHDR: u32 = 40; +pub const WTAP_ENCAP_BLUETOOTH_H4: u32 = 41; +pub const WTAP_ENCAP_MTP2: u32 = 42; +pub const WTAP_ENCAP_MTP3: u32 = 43; +pub const WTAP_ENCAP_IRDA: u32 = 44; +pub const WTAP_ENCAP_USER0: u32 = 45; +pub const WTAP_ENCAP_USER1: u32 = 46; +pub const WTAP_ENCAP_USER2: u32 = 47; +pub const WTAP_ENCAP_USER3: u32 = 48; +pub const WTAP_ENCAP_USER4: u32 = 49; +pub const WTAP_ENCAP_USER5: u32 = 50; +pub const WTAP_ENCAP_USER6: u32 = 51; +pub const WTAP_ENCAP_USER7: u32 = 52; +pub const WTAP_ENCAP_USER8: u32 = 53; +pub const WTAP_ENCAP_USER9: u32 = 54; +pub const WTAP_ENCAP_USER10: u32 = 55; +pub const WTAP_ENCAP_USER11: u32 = 56; +pub const WTAP_ENCAP_USER12: u32 = 57; +pub const WTAP_ENCAP_USER13: u32 = 58; +pub const WTAP_ENCAP_USER14: u32 = 59; +pub const WTAP_ENCAP_USER15: u32 = 60; +pub const WTAP_ENCAP_SYMANTEC: u32 = 61; +pub const WTAP_ENCAP_APPLE_IP_OVER_IEEE1394: u32 = 62; +pub const WTAP_ENCAP_BACNET_MS_TP: u32 = 63; +pub const WTAP_ENCAP_NETTL_RAW_ICMP: u32 = 64; +pub const WTAP_ENCAP_NETTL_RAW_ICMPV6: u32 = 65; +pub const WTAP_ENCAP_GPRS_LLC: u32 = 66; +pub const WTAP_ENCAP_JUNIPER_ATM1: u32 = 67; +pub const WTAP_ENCAP_JUNIPER_ATM2: u32 = 68; +pub const WTAP_ENCAP_REDBACK: u32 = 69; +pub const WTAP_ENCAP_NETTL_RAW_IP: u32 = 70; +pub const WTAP_ENCAP_NETTL_ETHERNET: u32 = 71; +pub const WTAP_ENCAP_NETTL_TOKEN_RING: u32 = 72; +pub const WTAP_ENCAP_NETTL_FDDI: u32 = 73; +pub const WTAP_ENCAP_NETTL_UNKNOWN: u32 = 74; +pub const WTAP_ENCAP_MTP2_WITH_PHDR: u32 = 75; +pub const WTAP_ENCAP_JUNIPER_PPPOE: u32 = 76; +pub const WTAP_ENCAP_GCOM_TIE1: u32 = 77; +pub const WTAP_ENCAP_GCOM_SERIAL: u32 = 78; +pub const WTAP_ENCAP_NETTL_X25: u32 = 79; +pub const WTAP_ENCAP_K12: u32 = 80; +pub const WTAP_ENCAP_JUNIPER_MLPPP: u32 = 81; +pub const WTAP_ENCAP_JUNIPER_MLFR: u32 = 82; +pub const WTAP_ENCAP_JUNIPER_ETHER: u32 = 83; +pub const WTAP_ENCAP_JUNIPER_PPP: u32 = 84; +pub const WTAP_ENCAP_JUNIPER_FRELAY: u32 = 85; +pub const WTAP_ENCAP_JUNIPER_CHDLC: u32 = 86; +pub const WTAP_ENCAP_JUNIPER_GGSN: u32 = 87; +pub const WTAP_ENCAP_LINUX_LAPD: u32 = 88; +pub const WTAP_ENCAP_CATAPULT_DCT2000: u32 = 89; +pub const WTAP_ENCAP_BER: u32 = 90; +pub const WTAP_ENCAP_JUNIPER_VP: u32 = 91; +pub const WTAP_ENCAP_USB_FREEBSD: u32 = 92; +pub const WTAP_ENCAP_IEEE802_16_MAC_CPS: u32 = 93; +pub const WTAP_ENCAP_NETTL_RAW_TELNET: u32 = 94; +pub const WTAP_ENCAP_USB_LINUX: u32 = 95; +pub const WTAP_ENCAP_MPEG: u32 = 96; +pub const WTAP_ENCAP_PPI: u32 = 97; +pub const WTAP_ENCAP_ERF: u32 = 98; +pub const WTAP_ENCAP_BLUETOOTH_H4_WITH_PHDR: u32 = 99; +pub const WTAP_ENCAP_SITA: u32 = 100; +pub const WTAP_ENCAP_SCCP: u32 = 101; +pub const WTAP_ENCAP_BLUETOOTH_HCI: u32 = 102; +pub const WTAP_ENCAP_IPMB_KONTRON: u32 = 103; +pub const WTAP_ENCAP_IEEE802_15_4: u32 = 104; +pub const WTAP_ENCAP_X2E_XORAYA: u32 = 105; +pub const WTAP_ENCAP_FLEXRAY: u32 = 106; +pub const WTAP_ENCAP_LIN: u32 = 107; +pub const WTAP_ENCAP_MOST: u32 = 108; +pub const WTAP_ENCAP_CAN20B: u32 = 109; +pub const WTAP_ENCAP_LAYER1_EVENT: u32 = 110; +pub const WTAP_ENCAP_X2E_SERIAL: u32 = 111; +pub const WTAP_ENCAP_I2C_LINUX: u32 = 112; +pub const WTAP_ENCAP_IEEE802_15_4_NONASK_PHY: u32 = 113; +pub const WTAP_ENCAP_TNEF: u32 = 114; +pub const WTAP_ENCAP_USB_LINUX_MMAPPED: u32 = 115; +pub const WTAP_ENCAP_GSM_UM: u32 = 116; +pub const WTAP_ENCAP_DPNSS: u32 = 117; +pub const WTAP_ENCAP_PACKETLOGGER: u32 = 118; +pub const WTAP_ENCAP_NSTRACE_1_0: u32 = 119; +pub const WTAP_ENCAP_NSTRACE_2_0: u32 = 120; +pub const WTAP_ENCAP_FIBRE_CHANNEL_FC2: u32 = 121; +pub const WTAP_ENCAP_FIBRE_CHANNEL_FC2_WITH_FRAME_DELIMS: u32 = 122; +pub const WTAP_ENCAP_JPEG_JFIF: u32 = 123; +pub const WTAP_ENCAP_IPNET: u32 = 124; +pub const WTAP_ENCAP_SOCKETCAN: u32 = 125; +pub const WTAP_ENCAP_IEEE_802_11_NETMON: u32 = 126; +pub const WTAP_ENCAP_IEEE802_15_4_NOFCS: u32 = 127; +pub const WTAP_ENCAP_RAW_IPFIX: u32 = 128; +pub const WTAP_ENCAP_RAW_IP4: u32 = 129; +pub const WTAP_ENCAP_RAW_IP6: u32 = 130; +pub const WTAP_ENCAP_LAPD: u32 = 131; +pub const WTAP_ENCAP_DVBCI: u32 = 132; +pub const WTAP_ENCAP_MUX27010: u32 = 133; +pub const WTAP_ENCAP_MIME: u32 = 134; +pub const WTAP_ENCAP_NETANALYZER: u32 = 135; +pub const WTAP_ENCAP_NETANALYZER_TRANSPARENT: u32 = 136; +pub const WTAP_ENCAP_IP_OVER_IB_SNOOP: u32 = 137; +pub const WTAP_ENCAP_MPEG_2_TS: u32 = 138; +pub const WTAP_ENCAP_PPP_ETHER: u32 = 139; +pub const WTAP_ENCAP_NFC_LLCP: u32 = 140; +pub const WTAP_ENCAP_NFLOG: u32 = 141; +pub const WTAP_ENCAP_V5_EF: u32 = 142; +pub const WTAP_ENCAP_BACNET_MS_TP_WITH_PHDR: u32 = 143; +pub const WTAP_ENCAP_IXVERIWAVE: u32 = 144; +pub const WTAP_ENCAP_SDH: u32 = 145; +pub const WTAP_ENCAP_DBUS: u32 = 146; +pub const WTAP_ENCAP_AX25_KISS: u32 = 147; +pub const WTAP_ENCAP_AX25: u32 = 148; +pub const WTAP_ENCAP_SCTP: u32 = 149; +pub const WTAP_ENCAP_INFINIBAND: u32 = 150; +pub const WTAP_ENCAP_JUNIPER_SVCS: u32 = 151; +pub const WTAP_ENCAP_USBPCAP: u32 = 152; +pub const WTAP_ENCAP_RTAC_SERIAL: u32 = 153; +pub const WTAP_ENCAP_BLUETOOTH_LE_LL: u32 = 154; +pub const WTAP_ENCAP_WIRESHARK_UPPER_PDU: u32 = 155; +pub const WTAP_ENCAP_STANAG_4607: u32 = 156; +pub const WTAP_ENCAP_STANAG_5066_D_PDU: u32 = 157; +pub const WTAP_ENCAP_NETLINK: u32 = 158; +pub const WTAP_ENCAP_BLUETOOTH_LINUX_MONITOR: u32 = 159; +pub const WTAP_ENCAP_BLUETOOTH_BREDR_BB: u32 = 160; +pub const WTAP_ENCAP_BLUETOOTH_LE_LL_WITH_PHDR: u32 = 161; +pub const WTAP_ENCAP_NSTRACE_3_0: u32 = 162; +pub const WTAP_ENCAP_LOGCAT: u32 = 163; +pub const WTAP_ENCAP_LOGCAT_BRIEF: u32 = 164; +pub const WTAP_ENCAP_LOGCAT_PROCESS: u32 = 165; +pub const WTAP_ENCAP_LOGCAT_TAG: u32 = 166; +pub const WTAP_ENCAP_LOGCAT_THREAD: u32 = 167; +pub const WTAP_ENCAP_LOGCAT_TIME: u32 = 168; +pub const WTAP_ENCAP_LOGCAT_THREADTIME: u32 = 169; +pub const WTAP_ENCAP_LOGCAT_LONG: u32 = 170; +pub const WTAP_ENCAP_PKTAP: u32 = 171; +pub const WTAP_ENCAP_EPON: u32 = 172; +pub const WTAP_ENCAP_IPMI_TRACE: u32 = 173; +pub const WTAP_ENCAP_LOOP: u32 = 174; +pub const WTAP_ENCAP_JSON: u32 = 175; +pub const WTAP_ENCAP_NSTRACE_3_5: u32 = 176; +pub const WTAP_ENCAP_ISO14443: u32 = 177; +pub const WTAP_ENCAP_GFP_T: u32 = 178; +pub const WTAP_ENCAP_GFP_F: u32 = 179; +pub const WTAP_ENCAP_IP_OVER_IB_PCAP: u32 = 180; +pub const WTAP_ENCAP_JUNIPER_VN: u32 = 181; +pub const WTAP_ENCAP_USB_DARWIN: u32 = 182; +pub const WTAP_ENCAP_LORATAP: u32 = 183; +pub const WTAP_ENCAP_3MB_ETHERNET: u32 = 184; +pub const WTAP_ENCAP_VSOCK: u32 = 185; +pub const WTAP_ENCAP_NORDIC_BLE: u32 = 186; +pub const WTAP_ENCAP_NETMON_NET_NETEVENT: u32 = 187; +pub const WTAP_ENCAP_NETMON_HEADER: u32 = 188; +pub const WTAP_ENCAP_NETMON_NET_FILTER: u32 = 189; +pub const WTAP_ENCAP_NETMON_NETWORK_INFO_EX: u32 = 190; +pub const WTAP_ENCAP_MA_WFP_CAPTURE_V4: u32 = 191; +pub const WTAP_ENCAP_MA_WFP_CAPTURE_V6: u32 = 192; +pub const WTAP_ENCAP_MA_WFP_CAPTURE_2V4: u32 = 193; +pub const WTAP_ENCAP_MA_WFP_CAPTURE_2V6: u32 = 194; +pub const WTAP_ENCAP_MA_WFP_CAPTURE_AUTH_V4: u32 = 195; +pub const WTAP_ENCAP_MA_WFP_CAPTURE_AUTH_V6: u32 = 196; +pub const WTAP_ENCAP_JUNIPER_ST: u32 = 197; +pub const WTAP_ENCAP_ETHERNET_MPACKET: u32 = 198; +pub const WTAP_ENCAP_DOCSIS31_XRA31: u32 = 199; +pub const WTAP_ENCAP_DPAUXMON: u32 = 200; +pub const WTAP_ENCAP_RUBY_MARSHAL: u32 = 201; +pub const WTAP_ENCAP_RFC7468: u32 = 202; +pub const WTAP_ENCAP_SYSTEMD_JOURNAL: u32 = 203; +pub const WTAP_ENCAP_EBHSCR: u32 = 204; +pub const WTAP_ENCAP_VPP: u32 = 205; +pub const WTAP_ENCAP_IEEE802_15_4_TAP: u32 = 206; +pub const WTAP_ENCAP_LOG_3GPP: u32 = 207; +pub const WTAP_ENCAP_USB_2_0: u32 = 208; +pub const WTAP_ENCAP_MP4: u32 = 209; +pub const WTAP_ENCAP_SLL2: u32 = 210; +pub const WTAP_ENCAP_ZWAVE_SERIAL: u32 = 211; +pub const WTAP_ENCAP_ETW: u32 = 212; +pub const WTAP_ENCAP_ERI_ENB_LOG: u32 = 213; +pub const WTAP_ENCAP_ZBNCP: u32 = 214; +pub const WTAP_ENCAP_USB_2_0_LOW_SPEED: u32 = 215; +pub const WTAP_ENCAP_USB_2_0_FULL_SPEED: u32 = 216; +pub const WTAP_ENCAP_USB_2_0_HIGH_SPEED: u32 = 217; +pub const WTAP_ENCAP_AUTOSAR_DLT: u32 = 218; +pub const WTAP_ENCAP_AUERSWALD_LOG: u32 = 219; +pub const WTAP_ENCAP_ATSC_ALP: u32 = 220; +pub const WTAP_ENCAP_FIRA_UCI: u32 = 221; +pub const WTAP_ENCAP_SILABS_DEBUG_CHANNEL: u32 = 222; +pub const WTAP_ENCAP_MDB: u32 = 223; +pub const WTAP_ENCAP_EMS: u32 = 224; +pub const WTAP_ENCAP_DECT_NR: u32 = 225; +pub const WTAP_FILE_TYPE_SUBTYPE_UNKNOWN: i32 = -1; +pub const WTAP_TSPREC_UNKNOWN: i32 = -2; +pub const WTAP_TSPREC_PER_PACKET: i32 = -1; +pub const WTAP_TSPREC_SEC: u32 = 0; +pub const WTAP_TSPREC_100_MSEC: u32 = 1; +pub const WTAP_TSPREC_DSEC: u32 = 1; +pub const WTAP_TSPREC_10_MSEC: u32 = 2; +pub const WTAP_TSPREC_CSEC: u32 = 2; +pub const WTAP_TSPREC_MSEC: u32 = 3; +pub const WTAP_TSPREC_100_USEC: u32 = 4; +pub const WTAP_TSPREC_10_USEC: u32 = 5; +pub const WTAP_TSPREC_USEC: u32 = 6; +pub const WTAP_TSPREC_100_NSEC: u32 = 7; +pub const WTAP_TSPREC_10_NSEC: u32 = 8; +pub const WTAP_TSPREC_NSEC: u32 = 9; +pub const WTAP_MAX_PACKET_SIZE_STANDARD: u32 = 262144; +pub const WTAP_MAX_PACKET_SIZE_USBPCAP: u32 = 134217728; +pub const WTAP_MAX_PACKET_SIZE_EBHSCR: u32 = 33554432; +pub const WTAP_MAX_PACKET_SIZE_DBUS: u32 = 134217728; +pub const FROM_DCE: u32 = 128; +pub const ATM_RAW_CELL: u32 = 1; +pub const ATM_NO_HEC: u32 = 2; +pub const ATM_AAL2_NOPHDR: u32 = 4; +pub const ATM_REASSEMBLY_ERROR: u32 = 8; +pub const AAL_UNKNOWN: u32 = 0; +pub const AAL_1: u32 = 1; +pub const AAL_2: u32 = 2; +pub const AAL_3_4: u32 = 3; +pub const AAL_5: u32 = 4; +pub const AAL_USER: u32 = 5; +pub const AAL_SIGNALLING: u32 = 6; +pub const AAL_OAMCELL: u32 = 7; +pub const TRAF_UNKNOWN: u32 = 0; +pub const TRAF_LLCMX: u32 = 1; +pub const TRAF_VCMX: u32 = 2; +pub const TRAF_LANE: u32 = 3; +pub const TRAF_ILMI: u32 = 4; +pub const TRAF_FR: u32 = 5; +pub const TRAF_SPANS: u32 = 6; +pub const TRAF_IPSILON: u32 = 7; +pub const TRAF_UMTS_FP: u32 = 8; +pub const TRAF_GPRS_NS: u32 = 9; +pub const TRAF_SSCOP: u32 = 10; +pub const TRAF_ST_UNKNOWN: u32 = 0; +pub const TRAF_ST_VCMX_802_3_FCS: u32 = 1; +pub const TRAF_ST_VCMX_802_4_FCS: u32 = 2; +pub const TRAF_ST_VCMX_802_5_FCS: u32 = 3; +pub const TRAF_ST_VCMX_FDDI_FCS: u32 = 4; +pub const TRAF_ST_VCMX_802_6_FCS: u32 = 5; +pub const TRAF_ST_VCMX_802_3: u32 = 7; +pub const TRAF_ST_VCMX_802_4: u32 = 8; +pub const TRAF_ST_VCMX_802_5: u32 = 9; +pub const TRAF_ST_VCMX_FDDI: u32 = 10; +pub const TRAF_ST_VCMX_802_6: u32 = 11; +pub const TRAF_ST_VCMX_FRAGMENTS: u32 = 12; +pub const TRAF_ST_VCMX_BPDU: u32 = 13; +pub const TRAF_ST_LANE_LE_CTRL: u32 = 1; +pub const TRAF_ST_LANE_802_3: u32 = 2; +pub const TRAF_ST_LANE_802_5: u32 = 3; +pub const TRAF_ST_LANE_802_3_MC: u32 = 4; +pub const TRAF_ST_LANE_802_5_MC: u32 = 5; +pub const TRAF_ST_IPSILON_FT0: u32 = 1; +pub const TRAF_ST_IPSILON_FT1: u32 = 2; +pub const TRAF_ST_IPSILON_FT2: u32 = 3; +pub const ASCEND_MAX_STR_LEN: u32 = 64; +pub const ASCEND_PFX_WDS_X: u32 = 1; +pub const ASCEND_PFX_WDS_R: u32 = 2; +pub const ASCEND_PFX_WDD: u32 = 3; +pub const ASCEND_PFX_ISDN_X: u32 = 4; +pub const ASCEND_PFX_ISDN_R: u32 = 5; +pub const ASCEND_PFX_ETHER: u32 = 6; +pub const PHDR_802_11_PHY_UNKNOWN: u32 = 0; +pub const PHDR_802_11_PHY_11_FHSS: u32 = 1; +pub const PHDR_802_11_PHY_11_IR: u32 = 2; +pub const PHDR_802_11_PHY_11_DSSS: u32 = 3; +pub const PHDR_802_11_PHY_11B: u32 = 4; +pub const PHDR_802_11_PHY_11A: u32 = 5; +pub const PHDR_802_11_PHY_11G: u32 = 6; +pub const PHDR_802_11_PHY_11N: u32 = 7; +pub const PHDR_802_11_PHY_11AC: u32 = 8; +pub const PHDR_802_11_PHY_11AD: u32 = 9; +pub const PHDR_802_11_PHY_11AH: u32 = 10; +pub const PHDR_802_11_PHY_11AX: u32 = 11; +pub const PHDR_802_11_PHY_11BE: u32 = 12; +pub const PHDR_802_11A_CHANNEL_TYPE_NORMAL: u32 = 0; +pub const PHDR_802_11A_CHANNEL_TYPE_HALF_CLOCKED: u32 = 1; +pub const PHDR_802_11A_CHANNEL_TYPE_QUARTER_CLOCKED: u32 = 2; +pub const PHDR_802_11A_TURBO_TYPE_NORMAL: u32 = 0; +pub const PHDR_802_11A_TURBO_TYPE_TURBO: u32 = 1; +pub const PHDR_802_11A_TURBO_TYPE_DYNAMIC_TURBO: u32 = 2; +pub const PHDR_802_11A_TURBO_TYPE_STATIC_TURBO: u32 = 3; +pub const PHDR_802_11G_MODE_NORMAL: u32 = 0; +pub const PHDR_802_11G_MODE_SUPER_G: u32 = 1; +pub const PHDR_802_11_BANDWIDTH_20_MHZ: u32 = 0; +pub const PHDR_802_11_BANDWIDTH_40_MHZ: u32 = 1; +pub const PHDR_802_11_BANDWIDTH_20_20L: u32 = 2; +pub const PHDR_802_11_BANDWIDTH_20_20U: u32 = 3; +pub const PHDR_802_11_BANDWIDTH_80_MHZ: u32 = 4; +pub const PHDR_802_11_BANDWIDTH_40_40L: u32 = 5; +pub const PHDR_802_11_BANDWIDTH_40_40U: u32 = 6; +pub const PHDR_802_11_BANDWIDTH_20LL: u32 = 7; +pub const PHDR_802_11_BANDWIDTH_20LU: u32 = 8; +pub const PHDR_802_11_BANDWIDTH_20UL: u32 = 9; +pub const PHDR_802_11_BANDWIDTH_20UU: u32 = 10; +pub const PHDR_802_11_BANDWIDTH_160_MHZ: u32 = 11; +pub const PHDR_802_11_BANDWIDTH_80_80L: u32 = 12; +pub const PHDR_802_11_BANDWIDTH_80_80U: u32 = 13; +pub const PHDR_802_11_BANDWIDTH_40LL: u32 = 14; +pub const PHDR_802_11_BANDWIDTH_40LU: u32 = 15; +pub const PHDR_802_11_BANDWIDTH_40UL: u32 = 16; +pub const PHDR_802_11_BANDWIDTH_40UU: u32 = 17; +pub const PHDR_802_11_BANDWIDTH_20LLL: u32 = 18; +pub const PHDR_802_11_BANDWIDTH_20LLU: u32 = 19; +pub const PHDR_802_11_BANDWIDTH_20LUL: u32 = 20; +pub const PHDR_802_11_BANDWIDTH_20LUU: u32 = 21; +pub const PHDR_802_11_BANDWIDTH_20ULL: u32 = 22; +pub const PHDR_802_11_BANDWIDTH_20ULU: u32 = 23; +pub const PHDR_802_11_BANDWIDTH_20UUL: u32 = 24; +pub const PHDR_802_11_BANDWIDTH_20UUU: u32 = 25; +pub const PHDR_802_11AD_MIN_FREQUENCY: u32 = 57000; +pub const PHDR_802_11AD_MAX_FREQUENCY: u32 = 71000; +pub const PHDR_802_11BE_MAX_USERS: u32 = 4; +pub const PHDR_802_11_LAST_PART_OF_A_MPDU: u32 = 1; +pub const PHDR_802_11_A_MPDU_DELIM_CRC_ERROR: u32 = 2; +pub const PHDR_802_11_SOUNDING_PSDU: u32 = 0; +pub const PHDR_802_11_DATA_NOT_CAPTURED: u32 = 1; +pub const PHDR_802_11_0_LENGTH_PSDU_VENDOR_SPECIFIC: u32 = 255; +pub const COSINE_MAX_IF_NAME_LEN: u32 = 128; +pub const COSINE_ENCAP_TEST: u32 = 1; +pub const COSINE_ENCAP_PPoATM: u32 = 2; +pub const COSINE_ENCAP_PPoFR: u32 = 3; +pub const COSINE_ENCAP_ATM: u32 = 4; +pub const COSINE_ENCAP_FR: u32 = 5; +pub const COSINE_ENCAP_HDLC: u32 = 6; +pub const COSINE_ENCAP_PPP: u32 = 7; +pub const COSINE_ENCAP_ETH: u32 = 8; +pub const COSINE_ENCAP_UNKNOWN: u32 = 99; +pub const COSINE_DIR_TX: u32 = 1; +pub const COSINE_DIR_RX: u32 = 2; +pub const IRDA_INCOMING: u32 = 0; +pub const IRDA_OUTGOING: u32 = 4; +pub const IRDA_LOG_MESSAGE: u32 = 256; +pub const IRDA_MISSED_MSG: u32 = 257; +pub const IRDA_CLASS_FRAME: u32 = 0; +pub const IRDA_CLASS_LOG: u32 = 256; +pub const IRDA_CLASS_MASK: u32 = 65280; +pub const MTP2_ANNEX_A_NOT_USED: u32 = 0; +pub const MTP2_ANNEX_A_USED: u32 = 1; +pub const MTP2_ANNEX_A_USED_UNKNOWN: u32 = 2; +pub const K12_PORT_DS0S: u32 = 65544; +pub const K12_PORT_DS1: u32 = 1048584; +pub const K12_PORT_ATMPVC: u32 = 16908288; +pub const MAX_ERF_EHDR: u32 = 16; +pub const SITA_FRAME_DIR_TXED: u32 = 0; +pub const SITA_FRAME_DIR_RXED: u32 = 1; +pub const SITA_FRAME_DIR: u32 = 1; +pub const SITA_ERROR_NO_BUFFER: u32 = 128; +pub const SITA_SIG_DSR: u32 = 1; +pub const SITA_SIG_DTR: u32 = 2; +pub const SITA_SIG_CTS: u32 = 4; +pub const SITA_SIG_RTS: u32 = 8; +pub const SITA_SIG_DCD: u32 = 16; +pub const SITA_SIG_UNDEF1: u32 = 32; +pub const SITA_SIG_UNDEF2: u32 = 64; +pub const SITA_SIG_UNDEF3: u32 = 128; +pub const SITA_ERROR_TX_UNDERRUN: u32 = 1; +pub const SITA_ERROR_TX_CTS_LOST: u32 = 2; +pub const SITA_ERROR_TX_UART_ERROR: u32 = 4; +pub const SITA_ERROR_TX_RETX_LIMIT: u32 = 8; +pub const SITA_ERROR_TX_UNDEF1: u32 = 16; +pub const SITA_ERROR_TX_UNDEF2: u32 = 32; +pub const SITA_ERROR_TX_UNDEF3: u32 = 64; +pub const SITA_ERROR_TX_UNDEF4: u32 = 128; +pub const SITA_ERROR_RX_FRAMING: u32 = 1; +pub const SITA_ERROR_RX_PARITY: u32 = 2; +pub const SITA_ERROR_RX_COLLISION: u32 = 4; +pub const SITA_ERROR_RX_FRAME_LONG: u32 = 8; +pub const SITA_ERROR_RX_FRAME_SHORT: u32 = 16; +pub const SITA_ERROR_RX_UNDEF1: u32 = 32; +pub const SITA_ERROR_RX_UNDEF2: u32 = 64; +pub const SITA_ERROR_RX_UNDEF3: u32 = 128; +pub const SITA_ERROR_RX_NONOCTET_ALIGNED: u32 = 1; +pub const SITA_ERROR_RX_ABORT: u32 = 2; +pub const SITA_ERROR_RX_CD_LOST: u32 = 4; +pub const SITA_ERROR_RX_DPLL: u32 = 8; +pub const SITA_ERROR_RX_OVERRUN: u32 = 16; +pub const SITA_ERROR_RX_FRAME_LEN_VIOL: u32 = 32; +pub const SITA_ERROR_RX_CRC: u32 = 64; +pub const SITA_ERROR_RX_BREAK: u32 = 128; +pub const SITA_PROTO_UNUSED: u32 = 0; +pub const SITA_PROTO_BOP_LAPB: u32 = 1; +pub const SITA_PROTO_ETHERNET: u32 = 2; +pub const SITA_PROTO_ASYNC_INTIO: u32 = 3; +pub const SITA_PROTO_ASYNC_BLKIO: u32 = 4; +pub const SITA_PROTO_ALC: u32 = 5; +pub const SITA_PROTO_UTS: u32 = 6; +pub const SITA_PROTO_PPP_HDLC: u32 = 7; +pub const SITA_PROTO_SDLC: u32 = 8; +pub const SITA_PROTO_TOKENRING: u32 = 9; +pub const SITA_PROTO_I2C: u32 = 16; +pub const SITA_PROTO_DPM_LINK: u32 = 17; +pub const SITA_PROTO_BOP_FRL: u32 = 18; +pub const BTHCI_CHANNEL_COMMAND: u32 = 1; +pub const BTHCI_CHANNEL_ACL: u32 = 2; +pub const BTHCI_CHANNEL_SCO: u32 = 3; +pub const BTHCI_CHANNEL_EVENT: u32 = 4; +pub const BTHCI_CHANNEL_ISO: u32 = 5; +pub const GSM_UM_CHANNEL_UNKNOWN: u32 = 0; +pub const GSM_UM_CHANNEL_BCCH: u32 = 1; +pub const GSM_UM_CHANNEL_SDCCH: u32 = 2; +pub const GSM_UM_CHANNEL_SACCH: u32 = 3; +pub const GSM_UM_CHANNEL_FACCH: u32 = 4; +pub const GSM_UM_CHANNEL_CCCH: u32 = 5; +pub const GSM_UM_CHANNEL_RACH: u32 = 6; +pub const GSM_UM_CHANNEL_AGCH: u32 = 7; +pub const GSM_UM_CHANNEL_PCH: u32 = 8; +pub const LLCP_PHDR_FLAG_SENT: u32 = 0; +pub const REC_TYPE_PACKET: u32 = 0; +pub const REC_TYPE_FT_SPECIFIC_EVENT: u32 = 1; +pub const REC_TYPE_FT_SPECIFIC_REPORT: u32 = 2; +pub const REC_TYPE_SYSCALL: u32 = 3; +pub const REC_TYPE_SYSTEMD_JOURNAL_EXPORT: u32 = 4; +pub const REC_TYPE_CUSTOM_BLOCK: u32 = 5; +pub const PACK_FLAGS_DIRECTION_MASK: u32 = 3; +pub const PACK_FLAGS_DIRECTION_SHIFT: u32 = 0; +pub const PACK_FLAGS_DIRECTION_UNKNOWN: u32 = 0; +pub const PACK_FLAGS_DIRECTION_INBOUND: u32 = 1; +pub const PACK_FLAGS_DIRECTION_OUTBOUND: u32 = 2; +pub const PACK_FLAGS_RECEPTION_TYPE_MASK: u32 = 28; +pub const PACK_FLAGS_RECEPTION_TYPE_SHIFT: u32 = 2; +pub const PACK_FLAGS_RECEPTION_TYPE_UNSPECIFIED: u32 = 0; +pub const PACK_FLAGS_RECEPTION_TYPE_UNICAST: u32 = 1; +pub const PACK_FLAGS_RECEPTION_TYPE_MULTICAST: u32 = 2; +pub const PACK_FLAGS_RECEPTION_TYPE_BROADCAST: u32 = 3; +pub const PACK_FLAGS_RECEPTION_TYPE_PROMISCUOUS: u32 = 4; +pub const PACK_FLAGS_FCS_LENGTH_MASK: u32 = 480; +pub const PACK_FLAGS_FCS_LENGTH_SHIFT: u32 = 5; +pub const PACK_FLAGS_RESERVED_MASK: u32 = 65024; +pub const PACK_FLAGS_CRC_ERROR: u32 = 16777216; +pub const PACK_FLAGS_PACKET_TOO_LONG: u32 = 33554432; +pub const PACK_FLAGS_PACKET_TOO_SHORT: u32 = 67108864; +pub const PACK_FLAGS_WRONG_INTER_FRAME_GAP: u32 = 134217728; +pub const PACK_FLAGS_UNALIGNED_FRAME: u32 = 268435456; +pub const PACK_FLAGS_START_FRAME_DELIMITER_ERROR: u32 = 536870912; +pub const PACK_FLAGS_PREAMBLE_ERROR: u32 = 1073741824; +pub const PACK_FLAGS_SYMBOL_ERROR: u32 = 2147483648; +pub const BBLOG_TYPE_EVENT_BLOCK: u32 = 1; +pub const BBLOG_TYPE_SKIPPED_BLOCK: u32 = 2; +pub const WTAP_HAS_TS: u32 = 1; +pub const WTAP_HAS_CAP_LEN: u32 = 2; +pub const WTAP_HAS_INTERFACE_ID: u32 = 4; +pub const WTAP_HAS_SECTION_NUMBER: u32 = 8; +pub const MAXNAMELEN: u32 = 64; +pub const WTAP_COMMENT_PER_SECTION: u32 = 1; +pub const WTAP_COMMENT_PER_INTERFACE: u32 = 2; +pub const WTAP_COMMENT_PER_PACKET: u32 = 4; +pub const WTAP_TYPE_AUTO: u32 = 0; +pub const WTAP_ERR_NOT_REGULAR_FILE: i32 = -1; +pub const WTAP_ERR_RANDOM_OPEN_PIPE: i32 = -2; +pub const WTAP_ERR_FILE_UNKNOWN_FORMAT: i32 = -3; +pub const WTAP_ERR_UNSUPPORTED: i32 = -4; +pub const WTAP_ERR_CANT_WRITE_TO_PIPE: i32 = -5; +pub const WTAP_ERR_CANT_OPEN: i32 = -6; +pub const WTAP_ERR_UNWRITABLE_FILE_TYPE: i32 = -7; +pub const WTAP_ERR_UNWRITABLE_ENCAP: i32 = -8; +pub const WTAP_ERR_ENCAP_PER_PACKET_UNSUPPORTED: i32 = -9; +pub const WTAP_ERR_CANT_WRITE: i32 = -10; +pub const WTAP_ERR_CANT_CLOSE: i32 = -11; +pub const WTAP_ERR_SHORT_READ: i32 = -12; +pub const WTAP_ERR_BAD_FILE: i32 = -13; +pub const WTAP_ERR_SHORT_WRITE: i32 = -14; +pub const WTAP_ERR_UNC_OVERFLOW: i32 = -15; +pub const WTAP_ERR_RANDOM_OPEN_STDIN: i32 = -16; +pub const WTAP_ERR_COMPRESSION_NOT_SUPPORTED: i32 = -17; +pub const WTAP_ERR_CANT_SEEK: i32 = -18; +pub const WTAP_ERR_CANT_SEEK_COMPRESSED: i32 = -19; +pub const WTAP_ERR_DECOMPRESS: i32 = -20; +pub const WTAP_ERR_INTERNAL: i32 = -21; +pub const WTAP_ERR_PACKET_TOO_LARGE: i32 = -22; +pub const WTAP_ERR_CHECK_WSLUA: i32 = -23; +pub const WTAP_ERR_UNWRITABLE_REC_TYPE: i32 = -24; +pub const WTAP_ERR_UNWRITABLE_REC_DATA: i32 = -25; +pub const WTAP_ERR_DECOMPRESSION_NOT_SUPPORTED: i32 = -26; +pub const WTAP_ERR_TIME_STAMP_NOT_SUPPORTED: i32 = -27; +pub const WS_PLUGIN_DESC_DISSECTOR: u32 = 1; +pub const WS_PLUGIN_DESC_FILE_TYPE: u32 = 2; +pub const WS_PLUGIN_DESC_CODEC: u32 = 4; +pub const WS_PLUGIN_DESC_EPAN: u32 = 8; +pub const WS_PLUGIN_DESC_TAP_LISTENER: u32 = 16; +pub const WS_PLUGIN_DESC_DFILTER: u32 = 32; +pub const GUID_LEN: u32 = 16; +pub const P2P_DIR_UNKNOWN: i32 = -1; +pub const P2P_DIR_SENT: u32 = 0; +pub const P2P_DIR_RECV: u32 = 1; +pub const LINK_DIR_UNKNOWN: i32 = -1; +pub const P2P_DIR_UL: u32 = 0; +pub const P2P_DIR_DL: u32 = 1; +pub const PINFO_HAS_TS: u32 = 1; +pub const DESEGMENT_ONE_MORE_SEGMENT: u32 = 268435455; +pub const DESEGMENT_UNTIL_FIN: u32 = 268435454; +pub const WS_REGEX_CASELESS: u32 = 1; +pub const WS_REGEX_NEVER_UTF: u32 = 2; +pub const WS_REGEX_ANCHORED: u32 = 4; +pub const FT_ETHER_LEN: u32 = 6; +pub const FT_GUID_LEN: u32 = 16; +pub const FT_IPv4_LEN: u32 = 4; +pub const FT_IPv6_LEN: u32 = 16; +pub const FT_IPXNET_LEN: u32 = 4; +pub const FT_EUI64_LEN: u32 = 8; +pub const FT_AX25_ADDR_LEN: u32 = 7; +pub const FT_VINES_ADDR_LEN: u32 = 6; +pub const FT_FCWWN_LEN: u32 = 8; +pub const FT_VARINT_MAX_LEN: u32 = 10; +pub const FT_TRUE: u32 = 1; +pub const FT_FALSE: u32 = 0; +pub const ITEM_LABEL_LENGTH: u32 = 240; +pub const ITEM_LABEL_UNKNOWN_STR: &[u8; 8] = b"Unknown\0"; +pub const ENC_BIG_ENDIAN: u32 = 0; +pub const ENC_LITTLE_ENDIAN: u32 = 2147483648; +pub const ENC_HOST_ENDIAN: u32 = 2147483648; +pub const ENC_ANTI_HOST_ENDIAN: u32 = 0; +pub const ENC_NA: u32 = 0; +pub const ENC_CHARENCODING_MASK: u32 = 65534; +pub const ENC_ASCII: u32 = 0; +pub const ENC_ISO_646_IRV: u32 = 0; +pub const ENC_UTF_8: u32 = 2; +pub const ENC_UTF_16: u32 = 4; +pub const ENC_UCS_2: u32 = 6; +pub const ENC_UCS_4: u32 = 8; +pub const ENC_ISO_8859_1: u32 = 10; +pub const ENC_ISO_8859_2: u32 = 12; +pub const ENC_ISO_8859_3: u32 = 14; +pub const ENC_ISO_8859_4: u32 = 16; +pub const ENC_ISO_8859_5: u32 = 18; +pub const ENC_ISO_8859_6: u32 = 20; +pub const ENC_ISO_8859_7: u32 = 22; +pub const ENC_ISO_8859_8: u32 = 24; +pub const ENC_ISO_8859_9: u32 = 26; +pub const ENC_ISO_8859_10: u32 = 28; +pub const ENC_ISO_8859_11: u32 = 30; +pub const ENC_ISO_8859_13: u32 = 34; +pub const ENC_ISO_8859_14: u32 = 36; +pub const ENC_ISO_8859_15: u32 = 38; +pub const ENC_ISO_8859_16: u32 = 40; +pub const ENC_WINDOWS_1250: u32 = 42; +pub const ENC_3GPP_TS_23_038_7BITS_PACKED: u32 = 44; +pub const ENC_3GPP_TS_23_038_7BITS: u32 = 44; +pub const ENC_EBCDIC: u32 = 46; +pub const ENC_MAC_ROMAN: u32 = 48; +pub const ENC_CP437: u32 = 50; +pub const ENC_ASCII_7BITS: u32 = 52; +pub const ENC_T61: u32 = 54; +pub const ENC_EBCDIC_CP037: u32 = 56; +pub const ENC_WINDOWS_1252: u32 = 58; +pub const ENC_WINDOWS_1251: u32 = 60; +pub const ENC_CP855: u32 = 62; +pub const ENC_CP866: u32 = 64; +pub const ENC_ISO_646_BASIC: u32 = 66; +pub const ENC_BCD_DIGITS_0_9: u32 = 68; +pub const ENC_KEYPAD_ABC_TBCD: u32 = 70; +pub const ENC_KEYPAD_BC_TBCD: u32 = 72; +pub const ENC_3GPP_TS_23_038_7BITS_UNPACKED: u32 = 76; +pub const ENC_ETSI_TS_102_221_ANNEX_A: u32 = 78; +pub const ENC_GB18030: u32 = 80; +pub const ENC_EUC_KR: u32 = 82; +pub const ENC_APN_STR: u32 = 84; +pub const ENC_DECT_STANDARD_8BITS: u32 = 86; +pub const ENC_DECT_STANDARD_4BITS_TBCD: u32 = 88; +pub const ENC_EBCDIC_CP500: u32 = 96; +pub const ENC_ZIGBEE: u32 = 1073741824; +pub const ENC_BOM: u32 = 536870912; +pub const ENC_STR_NUM: u32 = 16777216; +pub const ENC_STR_HEX: u32 = 33554432; +pub const ENC_STRING: u32 = 50331648; +pub const ENC_STR_MASK: u32 = 65534; +pub const ENC_NUM_PREF: u32 = 2097152; +pub const ENC_SEP_NONE: u32 = 65536; +pub const ENC_SEP_COLON: u32 = 131072; +pub const ENC_SEP_DASH: u32 = 262144; +pub const ENC_SEP_DOT: u32 = 524288; +pub const ENC_SEP_SPACE: u32 = 1048576; +pub const ENC_SEP_MASK: u32 = 2031616; +pub const ENC_BCD_ODD_NUM_DIG: u32 = 65536; +pub const ENC_BCD_SKIP_FIRST: u32 = 131072; +pub const ENC_TIME_SECS_NSECS: u32 = 0; +pub const ENC_TIME_TIMESPEC: u32 = 0; +pub const ENC_TIME_NTP: u32 = 2; +pub const ENC_TIME_TOD: u32 = 4; +pub const ENC_TIME_RTPS: u32 = 8; +pub const ENC_TIME_NTP_BASE_ZERO: u32 = 8; +pub const ENC_TIME_SECS_USECS: u32 = 16; +pub const ENC_TIME_TIMEVAL: u32 = 16; +pub const ENC_TIME_SECS: u32 = 18; +pub const ENC_TIME_MSECS: u32 = 20; +pub const ENC_TIME_SECS_NTP: u32 = 24; +pub const ENC_TIME_RFC_3971: u32 = 32; +pub const ENC_TIME_MSEC_NTP: u32 = 34; +pub const ENC_TIME_MIP6: u32 = 36; +pub const ENC_TIME_MP4_FILE_SECS: u32 = 38; +pub const ENC_TIME_CLASSIC_MAC_OS_SECS: u32 = 38; +pub const ENC_TIME_NSECS: u32 = 40; +pub const ENC_TIME_USECS: u32 = 48; +pub const ENC_TIME_ZBEE_ZCL: u32 = 50; +pub const ENC_ISO_8601_DATE: u32 = 65536; +pub const ENC_ISO_8601_TIME: u32 = 131072; +pub const ENC_ISO_8601_DATE_TIME: u32 = 196608; +pub const ENC_IMF_DATE_TIME: u32 = 262144; +pub const ENC_RFC_822: u32 = 262144; +pub const ENC_RFC_1123: u32 = 262144; +pub const ENC_ISO_8601_DATE_TIME_BASIC: u32 = 1048576; +pub const ENC_STR_TIME_MASK: u32 = 2031616; +pub const ENC_VARINT_PROTOBUF: u32 = 2; +pub const ENC_VARINT_QUIC: u32 = 4; +pub const ENC_VARINT_ZIGZAG: u32 = 8; +pub const ENC_VARINT_SDNV: u32 = 16; +pub const ENC_VARINT_MASK: u32 = 30; +pub const FIELD_DISPLAY_E_MASK: u32 = 255; +pub const BASE_RANGE_STRING: u32 = 256; +pub const BASE_EXT_STRING: u32 = 512; +pub const BASE_VAL64_STRING: u32 = 1024; +pub const BASE_ALLOW_ZERO: u32 = 2048; +pub const BASE_UNIT_STRING: u32 = 4096; +pub const BASE_NO_DISPLAY_VALUE: u32 = 8192; +pub const BASE_PROTOCOL_INFO: u32 = 16384; +pub const BASE_SPECIAL_VALS: u32 = 32768; +pub const BASE_SHOW_ASCII_PRINTABLE: u32 = 65536; +pub const BASE_SHOW_UTF_8_PRINTABLE: u32 = 131072; +pub const FI_HIDDEN: u32 = 1; +pub const FI_GENERATED: u32 = 2; +pub const FI_URL: u32 = 4; +pub const FI_LITTLE_ENDIAN: u32 = 8; +pub const FI_BIG_ENDIAN: u32 = 16; +pub const FI_VARINT: u32 = 16384; +pub const PI_SEVERITY_MASK: u32 = 15728640; +pub const PI_COMMENT: u32 = 1048576; +pub const PI_CHAT: u32 = 2097152; +pub const PI_NOTE: u32 = 4194304; +pub const PI_WARN: u32 = 6291456; +pub const PI_ERROR: u32 = 8388608; +pub const PI_GROUP_MASK: u32 = 4278190080; +pub const PI_CHECKSUM: u32 = 16777216; +pub const PI_SEQUENCE: u32 = 33554432; +pub const PI_RESPONSE_CODE: u32 = 50331648; +pub const PI_REQUEST_CODE: u32 = 67108864; +pub const PI_UNDECODED: u32 = 83886080; +pub const PI_REASSEMBLE: u32 = 100663296; +pub const PI_MALFORMED: u32 = 117440512; +pub const PI_DEBUG: u32 = 134217728; +pub const PI_PROTOCOL: u32 = 150994944; +pub const PI_SECURITY: u32 = 167772160; +pub const PI_COMMENTS_GROUP: u32 = 184549376; +pub const PI_DECRYPTION: u32 = 201326592; +pub const PI_ASSUMPTION: u32 = 218103808; +pub const PI_DEPRECATED: u32 = 234881024; +pub const PI_RECEIVE: u32 = 251658240; +pub const PI_INTERFACE: u32 = 268435456; +pub const PI_DISSECTOR_BUG: u32 = 285212672; +pub const BMT_NO_FLAGS: u32 = 0; +pub const BMT_NO_APPEND: u32 = 1; +pub const BMT_NO_INT: u32 = 2; +pub const BMT_NO_FALSE: u32 = 4; +pub const BMT_NO_TFS: u32 = 8; +pub const PROTO_CHECKSUM_NO_FLAGS: u32 = 0; +pub const PROTO_CHECKSUM_VERIFY: u32 = 1; +pub const PROTO_CHECKSUM_GENERATED: u32 = 2; +pub const PROTO_CHECKSUM_IN_CKSUM: u32 = 4; +pub const PROTO_CHECKSUM_ZERO: u32 = 8; +pub const PROTO_CHECKSUM_NOT_PRESENT: u32 = 16; +pub const MAX_SCTP_PORT: u32 = 65535; +pub const MAX_TCP_PORT: u32 = 65535; +pub const MAX_UDP_PORT: u32 = 65535; +pub const MAX_DCCP_PORT: u32 = 65535; +pub const DEF_WIDTH: u32 = 750; +pub const DEF_HEIGHT: u32 = 550; +pub const MAX_VAL_LEN: u32 = 1024; +pub const TAP_UPDATE_DEFAULT_INTERVAL: u32 = 3000; +pub const ST_DEF_BURSTRES: u32 = 5; +pub const ST_DEF_BURSTLEN: u32 = 100; +pub const ST_MAX_BURSTRES: u32 = 600000; +pub const ST_MAX_BURSTBUCKETS: u32 = 100; +pub const DEF_GUI_DECIMAL_PLACES1: u32 = 2; +pub const DEF_GUI_DECIMAL_PLACES2: u32 = 4; +pub const DEF_GUI_DECIMAL_PLACES3: u32 = 6; +pub const CONV_DEINT_KEY_CAPFILE: u32 = 1; +pub const CONV_DEINT_KEY_INTERFACE: u32 = 2; +pub const CONV_DEINT_KEY_MAC: u32 = 4; +pub const CONV_DEINT_KEY_VLAN: u32 = 8; +pub const FO_STYLE_LAST_OPENED: u32 = 0; +pub const FO_STYLE_SPECIFIED: u32 = 1; +pub const FO_STYLE_CWD: u32 = 2; +pub const TB_STYLE_ICONS: u32 = 0; +pub const TB_STYLE_TEXT: u32 = 1; +pub const TB_STYLE_BOTH: u32 = 2; +pub const COLOR_STYLE_DEFAULT: u32 = 0; +pub const COLOR_STYLE_FLAT: u32 = 1; +pub const COLOR_STYLE_GRADIENT: u32 = 2; +pub const COLOR_STYLE_ALPHA: f64 = 0.25; +pub const COL_MAX_LEN: u32 = 2048; +pub const COL_MAX_INFO_LEN: u32 = 4096; +pub const COL_CUSTOM_PRIME_REGEX: &[u8; 39] = b"(?:^ *| *\\|\\| *| +or +| *$)(?![^(]*\\))\0"; +pub const STRING_CASE_SENSITIVE: u32 = 0; +pub const STRING_CASE_INSENSITIVE: u32 = 1; +pub const MAX_DECODE_AS_PROMPT_LEN: u32 = 200; +pub const DECODE_AS_ENTRY: &[u8; 16] = b"decode_as_entry\0"; +pub const DECODE_AS_NONE: &[u8; 7] = b"(none)\0"; +pub const DECODE_AS_ENTRIES_FILE_NAME: &[u8; 18] = b"decode_as_entries\0"; +pub const EI_INIT_EI: i32 = -1; +pub const EI_INIT_HF: i32 = -1; +pub const PRE_ALLOC_EXPERT_FIELDS_MEM: u32 = 5000; +pub const EXPERT_CHECKSUM_DISABLED: i32 = -2; +pub const EXPERT_CHECKSUM_UNKNOWN: i32 = -1; +pub const EXPERT_CHECKSUM_GOOD: u32 = 0; +pub const EXPERT_CHECKSUM_BAD: u32 = 1; +pub const FD_DEFRAGMENTED: u32 = 1; +pub const FD_OVERLAP: u32 = 2; +pub const FD_OVERLAPCONFLICT: u32 = 4; +pub const FD_MULTIPLETAILS: u32 = 8; +pub const FD_TOOLONGFRAGMENT: u32 = 16; +pub const FD_SUBSET_TVB: u32 = 32; +pub const FD_PARTIAL_REASSEMBLY: u32 = 64; +pub const FD_BLOCKSEQUENCE: u32 = 256; +pub const FD_DATALEN_SET: u32 = 1024; +pub const REASSEMBLE_FLAGS_NO_FRAG_NUMBER: u32 = 1; +pub const REASSEMBLE_FLAGS_802_11_HACK: u32 = 2; +pub const REASSEMBLE_FLAGS_AGING: u32 = 1; +pub type __int8_t = ::std::os::raw::c_schar; +pub type __uint8_t = ::std::os::raw::c_uchar; +pub type __int16_t = ::std::os::raw::c_short; +pub type __uint16_t = ::std::os::raw::c_ushort; +pub type __int32_t = ::std::os::raw::c_int; +pub type __uint32_t = ::std::os::raw::c_uint; +pub type __int64_t = ::std::os::raw::c_longlong; +pub type __uint64_t = ::std::os::raw::c_ulonglong; +pub type __darwin_intptr_t = ::std::os::raw::c_long; +pub type __darwin_natural_t = ::std::os::raw::c_uint; +pub type __darwin_ct_rune_t = ::std::os::raw::c_int; +#[repr(C)] +#[derive(Copy, Clone)] +pub union __mbstate_t { + pub __mbstate8: [::std::os::raw::c_char; 128usize], + pub _mbstateL: ::std::os::raw::c_longlong, +} +#[test] +fn bindgen_test_layout___mbstate_t() { + const UNINIT: ::std::mem::MaybeUninit<__mbstate_t> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<__mbstate_t>(), + 128usize, + concat!("Size of: ", stringify!(__mbstate_t)) + ); + assert_eq!( + ::std::mem::align_of::<__mbstate_t>(), + 8usize, + concat!("Alignment of ", stringify!(__mbstate_t)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__mbstate8) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__mbstate_t), + "::", + stringify!(__mbstate8) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._mbstateL) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__mbstate_t), + "::", + stringify!(_mbstateL) + ) + ); +} +pub type __darwin_mbstate_t = __mbstate_t; +pub type __darwin_ptrdiff_t = ::std::os::raw::c_long; +pub type __darwin_size_t = ::std::os::raw::c_ulong; +pub type __darwin_va_list = __builtin_va_list; +pub type __darwin_wchar_t = ::std::os::raw::c_int; +pub type __darwin_rune_t = __darwin_wchar_t; +pub type __darwin_wint_t = ::std::os::raw::c_int; +pub type __darwin_clock_t = ::std::os::raw::c_ulong; +pub type __darwin_socklen_t = __uint32_t; +pub type __darwin_ssize_t = ::std::os::raw::c_long; +pub type __darwin_time_t = ::std::os::raw::c_long; +pub type __darwin_blkcnt_t = __int64_t; +pub type __darwin_blksize_t = __int32_t; +pub type __darwin_dev_t = __int32_t; +pub type __darwin_fsblkcnt_t = ::std::os::raw::c_uint; +pub type __darwin_fsfilcnt_t = ::std::os::raw::c_uint; +pub type __darwin_gid_t = __uint32_t; +pub type __darwin_id_t = __uint32_t; +pub type __darwin_ino64_t = __uint64_t; +pub type __darwin_ino_t = __darwin_ino64_t; +pub type __darwin_mach_port_name_t = __darwin_natural_t; +pub type __darwin_mach_port_t = __darwin_mach_port_name_t; +pub type __darwin_mode_t = __uint16_t; +pub type __darwin_off_t = __int64_t; +pub type __darwin_pid_t = __int32_t; +pub type __darwin_sigset_t = __uint32_t; +pub type __darwin_suseconds_t = __int32_t; +pub type __darwin_uid_t = __uint32_t; +pub type __darwin_useconds_t = __uint32_t; +pub type __darwin_uuid_t = [::std::os::raw::c_uchar; 16usize]; +pub type __darwin_uuid_string_t = [::std::os::raw::c_char; 37usize]; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __darwin_pthread_handler_rec { + pub __routine: ::std::option::Option, + pub __arg: *mut ::std::os::raw::c_void, + pub __next: *mut __darwin_pthread_handler_rec, +} +#[test] +fn bindgen_test_layout___darwin_pthread_handler_rec() { + const UNINIT: ::std::mem::MaybeUninit<__darwin_pthread_handler_rec> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<__darwin_pthread_handler_rec>(), + 24usize, + concat!("Size of: ", stringify!(__darwin_pthread_handler_rec)) + ); + assert_eq!( + ::std::mem::align_of::<__darwin_pthread_handler_rec>(), + 8usize, + concat!("Alignment of ", stringify!(__darwin_pthread_handler_rec)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__routine) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__darwin_pthread_handler_rec), + "::", + stringify!(__routine) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__arg) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(__darwin_pthread_handler_rec), + "::", + stringify!(__arg) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__next) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(__darwin_pthread_handler_rec), + "::", + stringify!(__next) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _opaque_pthread_attr_t { + pub __sig: ::std::os::raw::c_long, + pub __opaque: [::std::os::raw::c_char; 56usize], +} +#[test] +fn bindgen_test_layout__opaque_pthread_attr_t() { + const UNINIT: ::std::mem::MaybeUninit<_opaque_pthread_attr_t> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_opaque_pthread_attr_t>(), + 64usize, + concat!("Size of: ", stringify!(_opaque_pthread_attr_t)) + ); + assert_eq!( + ::std::mem::align_of::<_opaque_pthread_attr_t>(), + 8usize, + concat!("Alignment of ", stringify!(_opaque_pthread_attr_t)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__sig) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_opaque_pthread_attr_t), + "::", + stringify!(__sig) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__opaque) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_opaque_pthread_attr_t), + "::", + stringify!(__opaque) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _opaque_pthread_cond_t { + pub __sig: ::std::os::raw::c_long, + pub __opaque: [::std::os::raw::c_char; 40usize], +} +#[test] +fn bindgen_test_layout__opaque_pthread_cond_t() { + const UNINIT: ::std::mem::MaybeUninit<_opaque_pthread_cond_t> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_opaque_pthread_cond_t>(), + 48usize, + concat!("Size of: ", stringify!(_opaque_pthread_cond_t)) + ); + assert_eq!( + ::std::mem::align_of::<_opaque_pthread_cond_t>(), + 8usize, + concat!("Alignment of ", stringify!(_opaque_pthread_cond_t)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__sig) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_opaque_pthread_cond_t), + "::", + stringify!(__sig) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__opaque) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_opaque_pthread_cond_t), + "::", + stringify!(__opaque) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _opaque_pthread_condattr_t { + pub __sig: ::std::os::raw::c_long, + pub __opaque: [::std::os::raw::c_char; 8usize], +} +#[test] +fn bindgen_test_layout__opaque_pthread_condattr_t() { + const UNINIT: ::std::mem::MaybeUninit<_opaque_pthread_condattr_t> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_opaque_pthread_condattr_t>(), + 16usize, + concat!("Size of: ", stringify!(_opaque_pthread_condattr_t)) + ); + assert_eq!( + ::std::mem::align_of::<_opaque_pthread_condattr_t>(), + 8usize, + concat!("Alignment of ", stringify!(_opaque_pthread_condattr_t)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__sig) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_opaque_pthread_condattr_t), + "::", + stringify!(__sig) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__opaque) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_opaque_pthread_condattr_t), + "::", + stringify!(__opaque) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _opaque_pthread_mutex_t { + pub __sig: ::std::os::raw::c_long, + pub __opaque: [::std::os::raw::c_char; 56usize], +} +#[test] +fn bindgen_test_layout__opaque_pthread_mutex_t() { + const UNINIT: ::std::mem::MaybeUninit<_opaque_pthread_mutex_t> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_opaque_pthread_mutex_t>(), + 64usize, + concat!("Size of: ", stringify!(_opaque_pthread_mutex_t)) + ); + assert_eq!( + ::std::mem::align_of::<_opaque_pthread_mutex_t>(), + 8usize, + concat!("Alignment of ", stringify!(_opaque_pthread_mutex_t)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__sig) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_opaque_pthread_mutex_t), + "::", + stringify!(__sig) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__opaque) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_opaque_pthread_mutex_t), + "::", + stringify!(__opaque) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _opaque_pthread_mutexattr_t { + pub __sig: ::std::os::raw::c_long, + pub __opaque: [::std::os::raw::c_char; 8usize], +} +#[test] +fn bindgen_test_layout__opaque_pthread_mutexattr_t() { + const UNINIT: ::std::mem::MaybeUninit<_opaque_pthread_mutexattr_t> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_opaque_pthread_mutexattr_t>(), + 16usize, + concat!("Size of: ", stringify!(_opaque_pthread_mutexattr_t)) + ); + assert_eq!( + ::std::mem::align_of::<_opaque_pthread_mutexattr_t>(), + 8usize, + concat!("Alignment of ", stringify!(_opaque_pthread_mutexattr_t)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__sig) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_opaque_pthread_mutexattr_t), + "::", + stringify!(__sig) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__opaque) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_opaque_pthread_mutexattr_t), + "::", + stringify!(__opaque) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _opaque_pthread_once_t { + pub __sig: ::std::os::raw::c_long, + pub __opaque: [::std::os::raw::c_char; 8usize], +} +#[test] +fn bindgen_test_layout__opaque_pthread_once_t() { + const UNINIT: ::std::mem::MaybeUninit<_opaque_pthread_once_t> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_opaque_pthread_once_t>(), + 16usize, + concat!("Size of: ", stringify!(_opaque_pthread_once_t)) + ); + assert_eq!( + ::std::mem::align_of::<_opaque_pthread_once_t>(), + 8usize, + concat!("Alignment of ", stringify!(_opaque_pthread_once_t)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__sig) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_opaque_pthread_once_t), + "::", + stringify!(__sig) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__opaque) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_opaque_pthread_once_t), + "::", + stringify!(__opaque) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _opaque_pthread_rwlock_t { + pub __sig: ::std::os::raw::c_long, + pub __opaque: [::std::os::raw::c_char; 192usize], +} +#[test] +fn bindgen_test_layout__opaque_pthread_rwlock_t() { + const UNINIT: ::std::mem::MaybeUninit<_opaque_pthread_rwlock_t> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_opaque_pthread_rwlock_t>(), + 200usize, + concat!("Size of: ", stringify!(_opaque_pthread_rwlock_t)) + ); + assert_eq!( + ::std::mem::align_of::<_opaque_pthread_rwlock_t>(), + 8usize, + concat!("Alignment of ", stringify!(_opaque_pthread_rwlock_t)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__sig) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_opaque_pthread_rwlock_t), + "::", + stringify!(__sig) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__opaque) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_opaque_pthread_rwlock_t), + "::", + stringify!(__opaque) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _opaque_pthread_rwlockattr_t { + pub __sig: ::std::os::raw::c_long, + pub __opaque: [::std::os::raw::c_char; 16usize], +} +#[test] +fn bindgen_test_layout__opaque_pthread_rwlockattr_t() { + const UNINIT: ::std::mem::MaybeUninit<_opaque_pthread_rwlockattr_t> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_opaque_pthread_rwlockattr_t>(), + 24usize, + concat!("Size of: ", stringify!(_opaque_pthread_rwlockattr_t)) + ); + assert_eq!( + ::std::mem::align_of::<_opaque_pthread_rwlockattr_t>(), + 8usize, + concat!("Alignment of ", stringify!(_opaque_pthread_rwlockattr_t)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__sig) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_opaque_pthread_rwlockattr_t), + "::", + stringify!(__sig) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__opaque) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_opaque_pthread_rwlockattr_t), + "::", + stringify!(__opaque) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _opaque_pthread_t { + pub __sig: ::std::os::raw::c_long, + pub __cleanup_stack: *mut __darwin_pthread_handler_rec, + pub __opaque: [::std::os::raw::c_char; 8176usize], +} +#[test] +fn bindgen_test_layout__opaque_pthread_t() { + const UNINIT: ::std::mem::MaybeUninit<_opaque_pthread_t> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_opaque_pthread_t>(), + 8192usize, + concat!("Size of: ", stringify!(_opaque_pthread_t)) + ); + assert_eq!( + ::std::mem::align_of::<_opaque_pthread_t>(), + 8usize, + concat!("Alignment of ", stringify!(_opaque_pthread_t)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__sig) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_opaque_pthread_t), + "::", + stringify!(__sig) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__cleanup_stack) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_opaque_pthread_t), + "::", + stringify!(__cleanup_stack) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__opaque) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_opaque_pthread_t), + "::", + stringify!(__opaque) + ) + ); +} +pub type __darwin_pthread_attr_t = _opaque_pthread_attr_t; +pub type __darwin_pthread_cond_t = _opaque_pthread_cond_t; +pub type __darwin_pthread_condattr_t = _opaque_pthread_condattr_t; +pub type __darwin_pthread_key_t = ::std::os::raw::c_ulong; +pub type __darwin_pthread_mutex_t = _opaque_pthread_mutex_t; +pub type __darwin_pthread_mutexattr_t = _opaque_pthread_mutexattr_t; +pub type __darwin_pthread_once_t = _opaque_pthread_once_t; +pub type __darwin_pthread_rwlock_t = _opaque_pthread_rwlock_t; +pub type __darwin_pthread_rwlockattr_t = _opaque_pthread_rwlockattr_t; +pub type __darwin_pthread_t = *mut _opaque_pthread_t; +pub type __darwin_nl_item = ::std::os::raw::c_int; +pub type __darwin_wctrans_t = ::std::os::raw::c_int; +pub type __darwin_wctype_t = __uint32_t; +pub type wchar_t = __darwin_wchar_t; +pub type int_least8_t = i8; +pub type int_least16_t = i16; +pub type int_least32_t = i32; +pub type int_least64_t = i64; +pub type uint_least8_t = u8; +pub type uint_least16_t = u16; +pub type uint_least32_t = u32; +pub type uint_least64_t = u64; +pub type int_fast8_t = i8; +pub type int_fast16_t = i16; +pub type int_fast32_t = i32; +pub type int_fast64_t = i64; +pub type uint_fast8_t = u8; +pub type uint_fast16_t = u16; +pub type uint_fast32_t = u32; +pub type uint_fast64_t = u64; +pub type u_int8_t = ::std::os::raw::c_uchar; +pub type u_int16_t = ::std::os::raw::c_ushort; +pub type u_int32_t = ::std::os::raw::c_uint; +pub type u_int64_t = ::std::os::raw::c_ulonglong; +pub type register_t = i64; +pub type user_addr_t = u_int64_t; +pub type user_size_t = u_int64_t; +pub type user_ssize_t = i64; +pub type user_long_t = i64; +pub type user_ulong_t = u_int64_t; +pub type user_time_t = i64; +pub type user_off_t = i64; +pub type syscall_arg_t = u_int64_t; +pub type intmax_t = ::std::os::raw::c_long; +pub type uintmax_t = ::std::os::raw::c_ulong; +extern "C" { + pub fn imaxabs(j: intmax_t) -> intmax_t; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct imaxdiv_t { + pub quot: intmax_t, + pub rem: intmax_t, +} +#[test] +fn bindgen_test_layout_imaxdiv_t() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(imaxdiv_t)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(imaxdiv_t)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(imaxdiv_t), + "::", + stringify!(quot) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(imaxdiv_t), + "::", + stringify!(rem) + ) + ); +} +extern "C" { + pub fn imaxdiv(__numer: intmax_t, __denom: intmax_t) -> imaxdiv_t; +} +extern "C" { + pub fn strtoimax( + __nptr: *const ::std::os::raw::c_char, + __endptr: *mut *mut ::std::os::raw::c_char, + __base: ::std::os::raw::c_int, + ) -> intmax_t; +} +extern "C" { + pub fn strtoumax( + __nptr: *const ::std::os::raw::c_char, + __endptr: *mut *mut ::std::os::raw::c_char, + __base: ::std::os::raw::c_int, + ) -> uintmax_t; +} +extern "C" { + pub fn wcstoimax( + __nptr: *const wchar_t, + __endptr: *mut *mut wchar_t, + __base: ::std::os::raw::c_int, + ) -> intmax_t; +} +extern "C" { + pub fn wcstoumax( + __nptr: *const wchar_t, + __endptr: *mut *mut wchar_t, + __base: ::std::os::raw::c_int, + ) -> uintmax_t; +} +extern "C" { + pub fn memchr( + __s: *const ::std::os::raw::c_void, + __c: ::std::os::raw::c_int, + __n: ::std::os::raw::c_ulong, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn memcmp( + __s1: *const ::std::os::raw::c_void, + __s2: *const ::std::os::raw::c_void, + __n: ::std::os::raw::c_ulong, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn memcpy( + __dst: *mut ::std::os::raw::c_void, + __src: *const ::std::os::raw::c_void, + __n: ::std::os::raw::c_ulong, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn memmove( + __dst: *mut ::std::os::raw::c_void, + __src: *const ::std::os::raw::c_void, + __len: ::std::os::raw::c_ulong, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn memset( + __b: *mut ::std::os::raw::c_void, + __c: ::std::os::raw::c_int, + __len: ::std::os::raw::c_ulong, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn strcat( + __s1: *mut ::std::os::raw::c_char, + __s2: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strchr( + __s: *const ::std::os::raw::c_char, + __c: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strcmp( + __s1: *const ::std::os::raw::c_char, + __s2: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn strcoll( + __s1: *const ::std::os::raw::c_char, + __s2: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn strcpy( + __dst: *mut ::std::os::raw::c_char, + __src: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strcspn( + __s: *const ::std::os::raw::c_char, + __charset: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_ulong; +} +extern "C" { + pub fn strerror(__errnum: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strlen(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_ulong; +} +extern "C" { + pub fn strncat( + __s1: *mut ::std::os::raw::c_char, + __s2: *const ::std::os::raw::c_char, + __n: ::std::os::raw::c_ulong, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strncmp( + __s1: *const ::std::os::raw::c_char, + __s2: *const ::std::os::raw::c_char, + __n: ::std::os::raw::c_ulong, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn strncpy( + __dst: *mut ::std::os::raw::c_char, + __src: *const ::std::os::raw::c_char, + __n: ::std::os::raw::c_ulong, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strpbrk( + __s: *const ::std::os::raw::c_char, + __charset: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strrchr( + __s: *const ::std::os::raw::c_char, + __c: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strspn( + __s: *const ::std::os::raw::c_char, + __charset: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_ulong; +} +extern "C" { + pub fn strstr( + __big: *const ::std::os::raw::c_char, + __little: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strtok( + __str: *mut ::std::os::raw::c_char, + __sep: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strxfrm( + __s1: *mut ::std::os::raw::c_char, + __s2: *const ::std::os::raw::c_char, + __n: ::std::os::raw::c_ulong, + ) -> ::std::os::raw::c_ulong; +} +extern "C" { + pub fn strtok_r( + __str: *mut ::std::os::raw::c_char, + __sep: *const ::std::os::raw::c_char, + __lasts: *mut *mut ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strerror_r( + __errnum: ::std::os::raw::c_int, + __strerrbuf: *mut ::std::os::raw::c_char, + __buflen: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn strdup(__s1: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn memccpy( + __dst: *mut ::std::os::raw::c_void, + __src: *const ::std::os::raw::c_void, + __c: ::std::os::raw::c_int, + __n: ::std::os::raw::c_ulong, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn stpcpy( + __dst: *mut ::std::os::raw::c_char, + __src: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn stpncpy( + __dst: *mut ::std::os::raw::c_char, + __src: *const ::std::os::raw::c_char, + __n: ::std::os::raw::c_ulong, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strndup( + __s1: *const ::std::os::raw::c_char, + __n: ::std::os::raw::c_ulong, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strnlen(__s1: *const ::std::os::raw::c_char, __n: usize) -> usize; +} +extern "C" { + pub fn strsignal(__sig: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; +} +pub type rsize_t = __darwin_size_t; +pub type errno_t = ::std::os::raw::c_int; +extern "C" { + pub fn memset_s( + __s: *mut ::std::os::raw::c_void, + __smax: rsize_t, + __c: ::std::os::raw::c_int, + __n: rsize_t, + ) -> errno_t; +} +extern "C" { + pub fn memmem( + __big: *const ::std::os::raw::c_void, + __big_len: usize, + __little: *const ::std::os::raw::c_void, + __little_len: usize, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn memset_pattern4( + __b: *mut ::std::os::raw::c_void, + __pattern4: *const ::std::os::raw::c_void, + __len: usize, + ); +} +extern "C" { + pub fn memset_pattern8( + __b: *mut ::std::os::raw::c_void, + __pattern8: *const ::std::os::raw::c_void, + __len: usize, + ); +} +extern "C" { + pub fn memset_pattern16( + __b: *mut ::std::os::raw::c_void, + __pattern16: *const ::std::os::raw::c_void, + __len: usize, + ); +} +extern "C" { + pub fn strcasestr( + __big: *const ::std::os::raw::c_char, + __little: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strnstr( + __big: *const ::std::os::raw::c_char, + __little: *const ::std::os::raw::c_char, + __len: usize, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn strlcat( + __dst: *mut ::std::os::raw::c_char, + __source: *const ::std::os::raw::c_char, + __size: ::std::os::raw::c_ulong, + ) -> ::std::os::raw::c_ulong; +} +extern "C" { + pub fn strlcpy( + __dst: *mut ::std::os::raw::c_char, + __source: *const ::std::os::raw::c_char, + __size: ::std::os::raw::c_ulong, + ) -> ::std::os::raw::c_ulong; +} +extern "C" { + pub fn strmode(__mode: ::std::os::raw::c_int, __bp: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn strsep( + __stringp: *mut *mut ::std::os::raw::c_char, + __delim: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn swab( + arg1: *const ::std::os::raw::c_void, + arg2: *mut ::std::os::raw::c_void, + arg3: isize, + ); +} +extern "C" { + pub fn timingsafe_bcmp( + __b1: *const ::std::os::raw::c_void, + __b2: *const ::std::os::raw::c_void, + __len: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn strsignal_r( + __sig: ::std::os::raw::c_int, + __strsignalbuf: *mut ::std::os::raw::c_char, + __buflen: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn bcmp( + arg1: *const ::std::os::raw::c_void, + arg2: *const ::std::os::raw::c_void, + arg3: ::std::os::raw::c_ulong, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn bcopy( + arg1: *const ::std::os::raw::c_void, + arg2: *mut ::std::os::raw::c_void, + arg3: usize, + ); +} +extern "C" { + pub fn bzero(arg1: *mut ::std::os::raw::c_void, arg2: ::std::os::raw::c_ulong); +} +extern "C" { + pub fn index( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn rindex( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn ffs(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn strcasecmp( + arg1: *const ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn strncasecmp( + arg1: *const ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + arg3: ::std::os::raw::c_ulong, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ffsl(arg1: ::std::os::raw::c_long) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ffsll(arg1: ::std::os::raw::c_longlong) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fls(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn flsl(arg1: ::std::os::raw::c_long) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn flsll(arg1: ::std::os::raw::c_longlong) -> ::std::os::raw::c_int; +} +pub type max_align_t = f64; +pub type gint8 = ::std::os::raw::c_schar; +pub type guint8 = ::std::os::raw::c_uchar; +pub type gint16 = ::std::os::raw::c_short; +pub type guint16 = ::std::os::raw::c_ushort; +pub type gint32 = ::std::os::raw::c_int; +pub type guint32 = ::std::os::raw::c_uint; +pub type gint64 = ::std::os::raw::c_longlong; +pub type guint64 = ::std::os::raw::c_ulonglong; +pub type gssize = ::std::os::raw::c_long; +pub type gsize = ::std::os::raw::c_ulong; +pub type goffset = gint64; +pub type gintptr = ::std::os::raw::c_long; +pub type guintptr = ::std::os::raw::c_ulong; +pub type GPid = ::std::os::raw::c_int; +pub type clock_t = __darwin_clock_t; +pub type time_t = __darwin_time_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timespec { + pub tv_sec: __darwin_time_t, + pub tv_nsec: ::std::os::raw::c_long, +} +#[test] +fn bindgen_test_layout_timespec() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(timespec)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(timespec)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(timespec), + "::", + stringify!(tv_sec) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tv_nsec) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(timespec), + "::", + stringify!(tv_nsec) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tm { + pub tm_sec: ::std::os::raw::c_int, + pub tm_min: ::std::os::raw::c_int, + pub tm_hour: ::std::os::raw::c_int, + pub tm_mday: ::std::os::raw::c_int, + pub tm_mon: ::std::os::raw::c_int, + pub tm_year: ::std::os::raw::c_int, + pub tm_wday: ::std::os::raw::c_int, + pub tm_yday: ::std::os::raw::c_int, + pub tm_isdst: ::std::os::raw::c_int, + pub tm_gmtoff: ::std::os::raw::c_long, + pub tm_zone: *mut ::std::os::raw::c_char, +} +#[test] +fn bindgen_test_layout_tm() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(tm)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(tm)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tm_sec) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(tm), + "::", + stringify!(tm_sec) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tm_min) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(tm), + "::", + stringify!(tm_min) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tm_hour) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(tm), + "::", + stringify!(tm_hour) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tm_mday) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(tm), + "::", + stringify!(tm_mday) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tm_mon) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(tm), + "::", + stringify!(tm_mon) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tm_year) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(tm), + "::", + stringify!(tm_year) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tm_wday) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(tm), + "::", + stringify!(tm_wday) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tm_yday) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(tm), + "::", + stringify!(tm_yday) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tm_isdst) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(tm), + "::", + stringify!(tm_isdst) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tm_gmtoff) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(tm), + "::", + stringify!(tm_gmtoff) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tm_zone) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(tm), + "::", + stringify!(tm_zone) + ) + ); +} +extern "C" { + pub static mut tzname: [*mut ::std::os::raw::c_char; 0usize]; +} +extern "C" { + pub static mut getdate_err: ::std::os::raw::c_int; +} +extern "C" { + pub static mut timezone: ::std::os::raw::c_long; +} +extern "C" { + pub static mut daylight: ::std::os::raw::c_int; +} +extern "C" { + pub fn asctime(arg1: *const tm) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn clock() -> clock_t; +} +extern "C" { + pub fn ctime(arg1: *const time_t) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn difftime(arg1: time_t, arg2: time_t) -> f64; +} +extern "C" { + pub fn getdate(arg1: *const ::std::os::raw::c_char) -> *mut tm; +} +extern "C" { + pub fn gmtime(arg1: *const time_t) -> *mut tm; +} +extern "C" { + pub fn localtime(arg1: *const time_t) -> *mut tm; +} +extern "C" { + pub fn mktime(arg1: *mut tm) -> time_t; +} +extern "C" { + pub fn strftime( + arg1: *mut ::std::os::raw::c_char, + arg2: usize, + arg3: *const ::std::os::raw::c_char, + arg4: *const tm, + ) -> usize; +} +extern "C" { + pub fn strptime( + arg1: *const ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + arg3: *mut tm, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn time(arg1: *mut time_t) -> time_t; +} +extern "C" { + pub fn tzset(); +} +extern "C" { + pub fn asctime_r( + arg1: *const tm, + arg2: *mut ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn ctime_r( + arg1: *const time_t, + arg2: *mut ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn gmtime_r(arg1: *const time_t, arg2: *mut tm) -> *mut tm; +} +extern "C" { + pub fn localtime_r(arg1: *const time_t, arg2: *mut tm) -> *mut tm; +} +extern "C" { + pub fn posix2time(arg1: time_t) -> time_t; +} +extern "C" { + pub fn tzsetwall(); +} +extern "C" { + pub fn time2posix(arg1: time_t) -> time_t; +} +extern "C" { + pub fn timelocal(arg1: *mut tm) -> time_t; +} +extern "C" { + pub fn timegm(arg1: *mut tm) -> time_t; +} +extern "C" { + pub fn nanosleep(__rqtp: *const timespec, __rmtp: *mut timespec) -> ::std::os::raw::c_int; +} +pub const clockid_t__CLOCK_REALTIME: clockid_t = 0; +pub const clockid_t__CLOCK_MONOTONIC: clockid_t = 6; +pub const clockid_t__CLOCK_MONOTONIC_RAW: clockid_t = 4; +pub const clockid_t__CLOCK_MONOTONIC_RAW_APPROX: clockid_t = 5; +pub const clockid_t__CLOCK_UPTIME_RAW: clockid_t = 8; +pub const clockid_t__CLOCK_UPTIME_RAW_APPROX: clockid_t = 9; +pub const clockid_t__CLOCK_PROCESS_CPUTIME_ID: clockid_t = 12; +pub const clockid_t__CLOCK_THREAD_CPUTIME_ID: clockid_t = 16; +pub type clockid_t = ::std::os::raw::c_uint; +extern "C" { + pub fn clock_getres(__clock_id: clockid_t, __res: *mut timespec) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn clock_gettime(__clock_id: clockid_t, __tp: *mut timespec) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn clock_gettime_nsec_np(__clock_id: clockid_t) -> __uint64_t; +} +extern "C" { + pub fn clock_settime(__clock_id: clockid_t, __tp: *const timespec) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn timespec_get(ts: *mut timespec, base: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +pub type gchar = ::std::os::raw::c_char; +pub type gshort = ::std::os::raw::c_short; +pub type glong = ::std::os::raw::c_long; +pub type gint = ::std::os::raw::c_int; +pub type gboolean = gint; +pub type guchar = ::std::os::raw::c_uchar; +pub type gushort = ::std::os::raw::c_ushort; +pub type gulong = ::std::os::raw::c_ulong; +pub type guint = ::std::os::raw::c_uint; +pub type gfloat = f32; +pub type gdouble = f64; +pub type gpointer = *mut ::std::os::raw::c_void; +pub type gconstpointer = *const ::std::os::raw::c_void; +pub type GCompareFunc = + ::std::option::Option gint>; +pub type GCompareDataFunc = ::std::option::Option< + unsafe extern "C" fn(a: gconstpointer, b: gconstpointer, user_data: gpointer) -> gint, +>; +pub type GEqualFunc = + ::std::option::Option gboolean>; +pub type GEqualFuncFull = ::std::option::Option< + unsafe extern "C" fn(a: gconstpointer, b: gconstpointer, user_data: gpointer) -> gboolean, +>; +pub type GDestroyNotify = ::std::option::Option; +pub type GFunc = ::std::option::Option; +pub type GHashFunc = ::std::option::Option guint>; +pub type GHFunc = ::std::option::Option< + unsafe extern "C" fn(key: gpointer, value: gpointer, user_data: gpointer), +>; +pub type GCopyFunc = + ::std::option::Option gpointer>; +pub type GFreeFunc = ::std::option::Option; +pub type GTranslateFunc = + ::std::option::Option *const gchar>; +pub type GDoubleIEEE754 = _GDoubleIEEE754; +pub type GFloatIEEE754 = _GFloatIEEE754; +#[repr(C)] +#[derive(Copy, Clone)] +pub union _GFloatIEEE754 { + pub v_float: gfloat, + pub mpn: _GFloatIEEE754__bindgen_ty_1, +} +#[repr(C)] +#[repr(align(4))] +#[derive(Debug, Copy, Clone)] +pub struct _GFloatIEEE754__bindgen_ty_1 { + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +#[test] +fn bindgen_test_layout__GFloatIEEE754__bindgen_ty_1() { + assert_eq!( + ::std::mem::size_of::<_GFloatIEEE754__bindgen_ty_1>(), + 4usize, + concat!("Size of: ", stringify!(_GFloatIEEE754__bindgen_ty_1)) + ); + assert_eq!( + ::std::mem::align_of::<_GFloatIEEE754__bindgen_ty_1>(), + 4usize, + concat!("Alignment of ", stringify!(_GFloatIEEE754__bindgen_ty_1)) + ); +} +impl _GFloatIEEE754__bindgen_ty_1 { + #[inline] + pub fn mantissa(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 23u8) as u32) } + } + #[inline] + pub fn set_mantissa(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 23u8, val as u64) + } + } + #[inline] + pub fn biased_exponent(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(23usize, 8u8) as u32) } + } + #[inline] + pub fn set_biased_exponent(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(23usize, 8u8, val as u64) + } + } + #[inline] + pub fn sign(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(31usize, 1u8) as u32) } + } + #[inline] + pub fn set_sign(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(31usize, 1u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + mantissa: guint, + biased_exponent: guint, + sign: guint, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 23u8, { + let mantissa: u32 = unsafe { ::std::mem::transmute(mantissa) }; + mantissa as u64 + }); + __bindgen_bitfield_unit.set(23usize, 8u8, { + let biased_exponent: u32 = unsafe { ::std::mem::transmute(biased_exponent) }; + biased_exponent as u64 + }); + __bindgen_bitfield_unit.set(31usize, 1u8, { + let sign: u32 = unsafe { ::std::mem::transmute(sign) }; + sign as u64 + }); + __bindgen_bitfield_unit + } +} +#[test] +fn bindgen_test_layout__GFloatIEEE754() { + const UNINIT: ::std::mem::MaybeUninit<_GFloatIEEE754> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GFloatIEEE754>(), + 4usize, + concat!("Size of: ", stringify!(_GFloatIEEE754)) + ); + assert_eq!( + ::std::mem::align_of::<_GFloatIEEE754>(), + 4usize, + concat!("Alignment of ", stringify!(_GFloatIEEE754)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).v_float) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GFloatIEEE754), + "::", + stringify!(v_float) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).mpn) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GFloatIEEE754), + "::", + stringify!(mpn) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union _GDoubleIEEE754 { + pub v_double: gdouble, + pub mpn: _GDoubleIEEE754__bindgen_ty_1, +} +#[repr(C)] +#[repr(align(4))] +#[derive(Debug, Copy, Clone)] +pub struct _GDoubleIEEE754__bindgen_ty_1 { + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, +} +#[test] +fn bindgen_test_layout__GDoubleIEEE754__bindgen_ty_1() { + assert_eq!( + ::std::mem::size_of::<_GDoubleIEEE754__bindgen_ty_1>(), + 8usize, + concat!("Size of: ", stringify!(_GDoubleIEEE754__bindgen_ty_1)) + ); + assert_eq!( + ::std::mem::align_of::<_GDoubleIEEE754__bindgen_ty_1>(), + 4usize, + concat!("Alignment of ", stringify!(_GDoubleIEEE754__bindgen_ty_1)) + ); +} +impl _GDoubleIEEE754__bindgen_ty_1 { + #[inline] + pub fn mantissa_low(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 32u8) as u32) } + } + #[inline] + pub fn set_mantissa_low(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 32u8, val as u64) + } + } + #[inline] + pub fn mantissa_high(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 20u8) as u32) } + } + #[inline] + pub fn set_mantissa_high(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(32usize, 20u8, val as u64) + } + } + #[inline] + pub fn biased_exponent(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(52usize, 11u8) as u32) } + } + #[inline] + pub fn set_biased_exponent(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(52usize, 11u8, val as u64) + } + } + #[inline] + pub fn sign(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(63usize, 1u8) as u32) } + } + #[inline] + pub fn set_sign(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(63usize, 1u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + mantissa_low: guint, + mantissa_high: guint, + biased_exponent: guint, + sign: guint, + ) -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 32u8, { + let mantissa_low: u32 = unsafe { ::std::mem::transmute(mantissa_low) }; + mantissa_low as u64 + }); + __bindgen_bitfield_unit.set(32usize, 20u8, { + let mantissa_high: u32 = unsafe { ::std::mem::transmute(mantissa_high) }; + mantissa_high as u64 + }); + __bindgen_bitfield_unit.set(52usize, 11u8, { + let biased_exponent: u32 = unsafe { ::std::mem::transmute(biased_exponent) }; + biased_exponent as u64 + }); + __bindgen_bitfield_unit.set(63usize, 1u8, { + let sign: u32 = unsafe { ::std::mem::transmute(sign) }; + sign as u64 + }); + __bindgen_bitfield_unit + } +} +#[test] +fn bindgen_test_layout__GDoubleIEEE754() { + const UNINIT: ::std::mem::MaybeUninit<_GDoubleIEEE754> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GDoubleIEEE754>(), + 8usize, + concat!("Size of: ", stringify!(_GDoubleIEEE754)) + ); + assert_eq!( + ::std::mem::align_of::<_GDoubleIEEE754>(), + 8usize, + concat!("Alignment of ", stringify!(_GDoubleIEEE754)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).v_double) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GDoubleIEEE754), + "::", + stringify!(v_double) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).mpn) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GDoubleIEEE754), + "::", + stringify!(mpn) + ) + ); +} +pub type GTimeVal = _GTimeVal; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GTimeVal { + pub tv_sec: glong, + pub tv_usec: glong, +} +#[test] +fn bindgen_test_layout__GTimeVal() { + const UNINIT: ::std::mem::MaybeUninit<_GTimeVal> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GTimeVal>(), + 16usize, + concat!("Size of: ", stringify!(_GTimeVal)) + ); + assert_eq!( + ::std::mem::align_of::<_GTimeVal>(), + 8usize, + concat!("Alignment of ", stringify!(_GTimeVal)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GTimeVal), + "::", + stringify!(tv_sec) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tv_usec) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GTimeVal), + "::", + stringify!(tv_usec) + ) + ); +} +pub type grefcount = gint; +pub type gatomicrefcount = gint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GBytes { + _unused: [u8; 0], +} +pub type GBytes = _GBytes; +pub type GArray = _GArray; +pub type GByteArray = _GByteArray; +pub type GPtrArray = _GPtrArray; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GArray { + pub data: *mut gchar, + pub len: guint, +} +#[test] +fn bindgen_test_layout__GArray() { + const UNINIT: ::std::mem::MaybeUninit<_GArray> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GArray>(), + 16usize, + concat!("Size of: ", stringify!(_GArray)) + ); + assert_eq!( + ::std::mem::align_of::<_GArray>(), + 8usize, + concat!("Alignment of ", stringify!(_GArray)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GArray), + "::", + stringify!(data) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GArray), + "::", + stringify!(len) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GByteArray { + pub data: *mut guint8, + pub len: guint, +} +#[test] +fn bindgen_test_layout__GByteArray() { + const UNINIT: ::std::mem::MaybeUninit<_GByteArray> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GByteArray>(), + 16usize, + concat!("Size of: ", stringify!(_GByteArray)) + ); + assert_eq!( + ::std::mem::align_of::<_GByteArray>(), + 8usize, + concat!("Alignment of ", stringify!(_GByteArray)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GByteArray), + "::", + stringify!(data) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GByteArray), + "::", + stringify!(len) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GPtrArray { + pub pdata: *mut gpointer, + pub len: guint, +} +#[test] +fn bindgen_test_layout__GPtrArray() { + const UNINIT: ::std::mem::MaybeUninit<_GPtrArray> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GPtrArray>(), + 16usize, + concat!("Size of: ", stringify!(_GPtrArray)) + ); + assert_eq!( + ::std::mem::align_of::<_GPtrArray>(), + 8usize, + concat!("Alignment of ", stringify!(_GPtrArray)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pdata) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GPtrArray), + "::", + stringify!(pdata) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GPtrArray), + "::", + stringify!(len) + ) + ); +} +extern "C" { + pub fn g_array_new( + zero_terminated: gboolean, + clear_: gboolean, + element_size: guint, + ) -> *mut GArray; +} +extern "C" { + pub fn g_array_new_take( + data: gpointer, + len: gsize, + clear: gboolean, + element_size: gsize, + ) -> *mut GArray; +} +extern "C" { + pub fn g_array_new_take_zero_terminated( + data: gpointer, + clear: gboolean, + element_size: gsize, + ) -> *mut GArray; +} +extern "C" { + pub fn g_array_steal(array: *mut GArray, len: *mut gsize) -> gpointer; +} +extern "C" { + pub fn g_array_sized_new( + zero_terminated: gboolean, + clear_: gboolean, + element_size: guint, + reserved_size: guint, + ) -> *mut GArray; +} +extern "C" { + pub fn g_array_copy(array: *mut GArray) -> *mut GArray; +} +extern "C" { + pub fn g_array_free(array: *mut GArray, free_segment: gboolean) -> *mut gchar; +} +extern "C" { + pub fn g_array_ref(array: *mut GArray) -> *mut GArray; +} +extern "C" { + pub fn g_array_unref(array: *mut GArray); +} +extern "C" { + pub fn g_array_get_element_size(array: *mut GArray) -> guint; +} +extern "C" { + pub fn g_array_append_vals(array: *mut GArray, data: gconstpointer, len: guint) -> *mut GArray; +} +extern "C" { + pub fn g_array_prepend_vals(array: *mut GArray, data: gconstpointer, len: guint) + -> *mut GArray; +} +extern "C" { + pub fn g_array_insert_vals( + array: *mut GArray, + index_: guint, + data: gconstpointer, + len: guint, + ) -> *mut GArray; +} +extern "C" { + pub fn g_array_set_size(array: *mut GArray, length: guint) -> *mut GArray; +} +extern "C" { + pub fn g_array_remove_index(array: *mut GArray, index_: guint) -> *mut GArray; +} +extern "C" { + pub fn g_array_remove_index_fast(array: *mut GArray, index_: guint) -> *mut GArray; +} +extern "C" { + pub fn g_array_remove_range(array: *mut GArray, index_: guint, length: guint) -> *mut GArray; +} +extern "C" { + pub fn g_array_sort(array: *mut GArray, compare_func: GCompareFunc); +} +extern "C" { + pub fn g_array_sort_with_data( + array: *mut GArray, + compare_func: GCompareDataFunc, + user_data: gpointer, + ); +} +extern "C" { + pub fn g_array_binary_search( + array: *mut GArray, + target: gconstpointer, + compare_func: GCompareFunc, + out_match_index: *mut guint, + ) -> gboolean; +} +extern "C" { + pub fn g_array_set_clear_func(array: *mut GArray, clear_func: GDestroyNotify); +} +extern "C" { + pub fn g_ptr_array_new() -> *mut GPtrArray; +} +extern "C" { + pub fn g_ptr_array_new_with_free_func(element_free_func: GDestroyNotify) -> *mut GPtrArray; +} +extern "C" { + pub fn g_ptr_array_new_take( + data: *mut gpointer, + len: gsize, + element_free_func: GDestroyNotify, + ) -> *mut GPtrArray; +} +extern "C" { + pub fn g_ptr_array_new_from_array( + data: *mut gpointer, + len: gsize, + copy_func: GCopyFunc, + copy_func_user_data: gpointer, + element_free_func: GDestroyNotify, + ) -> *mut GPtrArray; +} +extern "C" { + pub fn g_ptr_array_steal(array: *mut GPtrArray, len: *mut gsize) -> *mut gpointer; +} +extern "C" { + pub fn g_ptr_array_copy( + array: *mut GPtrArray, + func: GCopyFunc, + user_data: gpointer, + ) -> *mut GPtrArray; +} +extern "C" { + pub fn g_ptr_array_sized_new(reserved_size: guint) -> *mut GPtrArray; +} +extern "C" { + pub fn g_ptr_array_new_full( + reserved_size: guint, + element_free_func: GDestroyNotify, + ) -> *mut GPtrArray; +} +extern "C" { + pub fn g_ptr_array_new_null_terminated( + reserved_size: guint, + element_free_func: GDestroyNotify, + null_terminated: gboolean, + ) -> *mut GPtrArray; +} +extern "C" { + pub fn g_ptr_array_new_take_null_terminated( + data: *mut gpointer, + element_free_func: GDestroyNotify, + ) -> *mut GPtrArray; +} +extern "C" { + pub fn g_ptr_array_new_from_null_terminated_array( + data: *mut gpointer, + copy_func: GCopyFunc, + copy_func_user_data: gpointer, + element_free_func: GDestroyNotify, + ) -> *mut GPtrArray; +} +extern "C" { + pub fn g_ptr_array_free(array: *mut GPtrArray, free_seg: gboolean) -> *mut gpointer; +} +extern "C" { + pub fn g_ptr_array_ref(array: *mut GPtrArray) -> *mut GPtrArray; +} +extern "C" { + pub fn g_ptr_array_unref(array: *mut GPtrArray); +} +extern "C" { + pub fn g_ptr_array_set_free_func(array: *mut GPtrArray, element_free_func: GDestroyNotify); +} +extern "C" { + pub fn g_ptr_array_set_size(array: *mut GPtrArray, length: gint); +} +extern "C" { + pub fn g_ptr_array_remove_index(array: *mut GPtrArray, index_: guint) -> gpointer; +} +extern "C" { + pub fn g_ptr_array_remove_index_fast(array: *mut GPtrArray, index_: guint) -> gpointer; +} +extern "C" { + pub fn g_ptr_array_steal_index(array: *mut GPtrArray, index_: guint) -> gpointer; +} +extern "C" { + pub fn g_ptr_array_steal_index_fast(array: *mut GPtrArray, index_: guint) -> gpointer; +} +extern "C" { + pub fn g_ptr_array_remove(array: *mut GPtrArray, data: gpointer) -> gboolean; +} +extern "C" { + pub fn g_ptr_array_remove_fast(array: *mut GPtrArray, data: gpointer) -> gboolean; +} +extern "C" { + pub fn g_ptr_array_remove_range( + array: *mut GPtrArray, + index_: guint, + length: guint, + ) -> *mut GPtrArray; +} +extern "C" { + pub fn g_ptr_array_add(array: *mut GPtrArray, data: gpointer); +} +extern "C" { + pub fn g_ptr_array_extend( + array_to_extend: *mut GPtrArray, + array: *mut GPtrArray, + func: GCopyFunc, + user_data: gpointer, + ); +} +extern "C" { + pub fn g_ptr_array_extend_and_steal(array_to_extend: *mut GPtrArray, array: *mut GPtrArray); +} +extern "C" { + pub fn g_ptr_array_insert(array: *mut GPtrArray, index_: gint, data: gpointer); +} +extern "C" { + pub fn g_ptr_array_sort(array: *mut GPtrArray, compare_func: GCompareFunc); +} +extern "C" { + pub fn g_ptr_array_sort_with_data( + array: *mut GPtrArray, + compare_func: GCompareDataFunc, + user_data: gpointer, + ); +} +extern "C" { + pub fn g_ptr_array_sort_values(array: *mut GPtrArray, compare_func: GCompareFunc); +} +extern "C" { + pub fn g_ptr_array_sort_values_with_data( + array: *mut GPtrArray, + compare_func: GCompareDataFunc, + user_data: gpointer, + ); +} +extern "C" { + pub fn g_ptr_array_foreach(array: *mut GPtrArray, func: GFunc, user_data: gpointer); +} +extern "C" { + pub fn g_ptr_array_find( + haystack: *mut GPtrArray, + needle: gconstpointer, + index_: *mut guint, + ) -> gboolean; +} +extern "C" { + pub fn g_ptr_array_find_with_equal_func( + haystack: *mut GPtrArray, + needle: gconstpointer, + equal_func: GEqualFunc, + index_: *mut guint, + ) -> gboolean; +} +extern "C" { + pub fn g_ptr_array_is_null_terminated(array: *mut GPtrArray) -> gboolean; +} +extern "C" { + pub fn g_byte_array_new() -> *mut GByteArray; +} +extern "C" { + pub fn g_byte_array_new_take(data: *mut guint8, len: gsize) -> *mut GByteArray; +} +extern "C" { + pub fn g_byte_array_steal(array: *mut GByteArray, len: *mut gsize) -> *mut guint8; +} +extern "C" { + pub fn g_byte_array_sized_new(reserved_size: guint) -> *mut GByteArray; +} +extern "C" { + pub fn g_byte_array_free(array: *mut GByteArray, free_segment: gboolean) -> *mut guint8; +} +extern "C" { + pub fn g_byte_array_free_to_bytes(array: *mut GByteArray) -> *mut GBytes; +} +extern "C" { + pub fn g_byte_array_ref(array: *mut GByteArray) -> *mut GByteArray; +} +extern "C" { + pub fn g_byte_array_unref(array: *mut GByteArray); +} +extern "C" { + pub fn g_byte_array_append( + array: *mut GByteArray, + data: *const guint8, + len: guint, + ) -> *mut GByteArray; +} +extern "C" { + pub fn g_byte_array_prepend( + array: *mut GByteArray, + data: *const guint8, + len: guint, + ) -> *mut GByteArray; +} +extern "C" { + pub fn g_byte_array_set_size(array: *mut GByteArray, length: guint) -> *mut GByteArray; +} +extern "C" { + pub fn g_byte_array_remove_index(array: *mut GByteArray, index_: guint) -> *mut GByteArray; +} +extern "C" { + pub fn g_byte_array_remove_index_fast(array: *mut GByteArray, index_: guint) + -> *mut GByteArray; +} +extern "C" { + pub fn g_byte_array_remove_range( + array: *mut GByteArray, + index_: guint, + length: guint, + ) -> *mut GByteArray; +} +extern "C" { + pub fn g_byte_array_sort(array: *mut GByteArray, compare_func: GCompareFunc); +} +extern "C" { + pub fn g_byte_array_sort_with_data( + array: *mut GByteArray, + compare_func: GCompareDataFunc, + user_data: gpointer, + ); +} +extern "C" { + pub fn g_atomic_int_get(atomic: *const gint) -> gint; +} +extern "C" { + pub fn g_atomic_int_set(atomic: *mut gint, newval: gint); +} +extern "C" { + pub fn g_atomic_int_inc(atomic: *mut gint); +} +extern "C" { + pub fn g_atomic_int_dec_and_test(atomic: *mut gint) -> gboolean; +} +extern "C" { + pub fn g_atomic_int_compare_and_exchange( + atomic: *mut gint, + oldval: gint, + newval: gint, + ) -> gboolean; +} +extern "C" { + pub fn g_atomic_int_compare_and_exchange_full( + atomic: *mut gint, + oldval: gint, + newval: gint, + preval: *mut gint, + ) -> gboolean; +} +extern "C" { + pub fn g_atomic_int_exchange(atomic: *mut gint, newval: gint) -> gint; +} +extern "C" { + pub fn g_atomic_int_add(atomic: *mut gint, val: gint) -> gint; +} +extern "C" { + pub fn g_atomic_int_and(atomic: *mut guint, val: guint) -> guint; +} +extern "C" { + pub fn g_atomic_int_or(atomic: *mut guint, val: guint) -> guint; +} +extern "C" { + pub fn g_atomic_int_xor(atomic: *mut guint, val: guint) -> guint; +} +extern "C" { + pub fn g_atomic_pointer_get(atomic: *const ::std::os::raw::c_void) -> gpointer; +} +extern "C" { + pub fn g_atomic_pointer_set(atomic: *mut ::std::os::raw::c_void, newval: gpointer); +} +extern "C" { + pub fn g_atomic_pointer_compare_and_exchange( + atomic: *mut ::std::os::raw::c_void, + oldval: gpointer, + newval: gpointer, + ) -> gboolean; +} +extern "C" { + pub fn g_atomic_pointer_compare_and_exchange_full( + atomic: *mut ::std::os::raw::c_void, + oldval: gpointer, + newval: gpointer, + preval: *mut ::std::os::raw::c_void, + ) -> gboolean; +} +extern "C" { + pub fn g_atomic_pointer_exchange( + atomic: *mut ::std::os::raw::c_void, + newval: gpointer, + ) -> gpointer; +} +extern "C" { + pub fn g_atomic_pointer_add(atomic: *mut ::std::os::raw::c_void, val: gssize) -> gintptr; +} +extern "C" { + pub fn g_atomic_pointer_and(atomic: *mut ::std::os::raw::c_void, val: gsize) -> guintptr; +} +extern "C" { + pub fn g_atomic_pointer_or(atomic: *mut ::std::os::raw::c_void, val: gsize) -> guintptr; +} +extern "C" { + pub fn g_atomic_pointer_xor(atomic: *mut ::std::os::raw::c_void, val: gsize) -> guintptr; +} +extern "C" { + pub fn g_atomic_int_exchange_and_add(atomic: *mut gint, val: gint) -> gint; +} +pub type __gnuc_va_list = __builtin_va_list; +pub type va_list = __builtin_va_list; +pub type GQuark = guint32; +extern "C" { + pub fn g_quark_try_string(string: *const gchar) -> GQuark; +} +extern "C" { + pub fn g_quark_from_static_string(string: *const gchar) -> GQuark; +} +extern "C" { + pub fn g_quark_from_string(string: *const gchar) -> GQuark; +} +extern "C" { + pub fn g_quark_to_string(quark: GQuark) -> *const gchar; +} +extern "C" { + pub fn g_intern_string(string: *const gchar) -> *const gchar; +} +extern "C" { + pub fn g_intern_static_string(string: *const gchar) -> *const gchar; +} +pub type GError = _GError; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GError { + pub domain: GQuark, + pub code: gint, + pub message: *mut gchar, +} +#[test] +fn bindgen_test_layout__GError() { + const UNINIT: ::std::mem::MaybeUninit<_GError> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GError>(), + 16usize, + concat!("Size of: ", stringify!(_GError)) + ); + assert_eq!( + ::std::mem::align_of::<_GError>(), + 8usize, + concat!("Alignment of ", stringify!(_GError)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).domain) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GError), + "::", + stringify!(domain) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).code) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_GError), + "::", + stringify!(code) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).message) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GError), + "::", + stringify!(message) + ) + ); +} +pub type GErrorInitFunc = ::std::option::Option; +pub type GErrorCopyFunc = + ::std::option::Option; +pub type GErrorClearFunc = ::std::option::Option; +extern "C" { + pub fn g_error_domain_register_static( + error_type_name: *const ::std::os::raw::c_char, + error_type_private_size: gsize, + error_type_init: GErrorInitFunc, + error_type_copy: GErrorCopyFunc, + error_type_clear: GErrorClearFunc, + ) -> GQuark; +} +extern "C" { + pub fn g_error_domain_register( + error_type_name: *const ::std::os::raw::c_char, + error_type_private_size: gsize, + error_type_init: GErrorInitFunc, + error_type_copy: GErrorCopyFunc, + error_type_clear: GErrorClearFunc, + ) -> GQuark; +} +extern "C" { + pub fn g_error_new(domain: GQuark, code: gint, format: *const gchar, ...) -> *mut GError; +} +extern "C" { + pub fn g_error_new_literal(domain: GQuark, code: gint, message: *const gchar) -> *mut GError; +} +extern "C" { + pub fn g_error_new_valist( + domain: GQuark, + code: gint, + format: *const gchar, + args: va_list, + ) -> *mut GError; +} +extern "C" { + pub fn g_error_free(error: *mut GError); +} +extern "C" { + pub fn g_error_copy(error: *const GError) -> *mut GError; +} +extern "C" { + pub fn g_error_matches(error: *const GError, domain: GQuark, code: gint) -> gboolean; +} +extern "C" { + pub fn g_set_error( + err: *mut *mut GError, + domain: GQuark, + code: gint, + format: *const gchar, + ... + ); +} +extern "C" { + pub fn g_set_error_literal( + err: *mut *mut GError, + domain: GQuark, + code: gint, + message: *const gchar, + ); +} +extern "C" { + pub fn g_propagate_error(dest: *mut *mut GError, src: *mut GError); +} +extern "C" { + pub fn g_clear_error(err: *mut *mut GError); +} +extern "C" { + pub fn g_prefix_error(err: *mut *mut GError, format: *const gchar, ...); +} +extern "C" { + pub fn g_prefix_error_literal(err: *mut *mut GError, prefix: *const gchar); +} +extern "C" { + pub fn g_propagate_prefixed_error( + dest: *mut *mut GError, + src: *mut GError, + format: *const gchar, + ... + ); +} +extern "C" { + pub fn g_get_user_name() -> *const gchar; +} +extern "C" { + pub fn g_get_real_name() -> *const gchar; +} +extern "C" { + pub fn g_get_home_dir() -> *const gchar; +} +extern "C" { + pub fn g_get_tmp_dir() -> *const gchar; +} +extern "C" { + pub fn g_get_host_name() -> *const gchar; +} +extern "C" { + pub fn g_get_prgname() -> *const gchar; +} +extern "C" { + pub fn g_set_prgname(prgname: *const gchar); +} +extern "C" { + pub fn g_get_application_name() -> *const gchar; +} +extern "C" { + pub fn g_set_application_name(application_name: *const gchar); +} +extern "C" { + pub fn g_get_os_info(key_name: *const gchar) -> *mut gchar; +} +extern "C" { + pub fn g_reload_user_special_dirs_cache(); +} +extern "C" { + pub fn g_get_user_data_dir() -> *const gchar; +} +extern "C" { + pub fn g_get_user_config_dir() -> *const gchar; +} +extern "C" { + pub fn g_get_user_cache_dir() -> *const gchar; +} +extern "C" { + pub fn g_get_user_state_dir() -> *const gchar; +} +extern "C" { + pub fn g_get_system_data_dirs() -> *const *const gchar; +} +extern "C" { + pub fn g_get_system_config_dirs() -> *const *const gchar; +} +extern "C" { + pub fn g_get_user_runtime_dir() -> *const gchar; +} +pub const GUserDirectory_G_USER_DIRECTORY_DESKTOP: GUserDirectory = 0; +pub const GUserDirectory_G_USER_DIRECTORY_DOCUMENTS: GUserDirectory = 1; +pub const GUserDirectory_G_USER_DIRECTORY_DOWNLOAD: GUserDirectory = 2; +pub const GUserDirectory_G_USER_DIRECTORY_MUSIC: GUserDirectory = 3; +pub const GUserDirectory_G_USER_DIRECTORY_PICTURES: GUserDirectory = 4; +pub const GUserDirectory_G_USER_DIRECTORY_PUBLIC_SHARE: GUserDirectory = 5; +pub const GUserDirectory_G_USER_DIRECTORY_TEMPLATES: GUserDirectory = 6; +pub const GUserDirectory_G_USER_DIRECTORY_VIDEOS: GUserDirectory = 7; +pub const GUserDirectory_G_USER_N_DIRECTORIES: GUserDirectory = 8; +pub type GUserDirectory = ::std::os::raw::c_uint; +extern "C" { + pub fn g_get_user_special_dir(directory: GUserDirectory) -> *const gchar; +} +pub type GDebugKey = _GDebugKey; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GDebugKey { + pub key: *const gchar, + pub value: guint, +} +#[test] +fn bindgen_test_layout__GDebugKey() { + const UNINIT: ::std::mem::MaybeUninit<_GDebugKey> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GDebugKey>(), + 16usize, + concat!("Size of: ", stringify!(_GDebugKey)) + ); + assert_eq!( + ::std::mem::align_of::<_GDebugKey>(), + 8usize, + concat!("Alignment of ", stringify!(_GDebugKey)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GDebugKey), + "::", + stringify!(key) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GDebugKey), + "::", + stringify!(value) + ) + ); +} +extern "C" { + pub fn g_parse_debug_string( + string: *const gchar, + keys: *const GDebugKey, + nkeys: guint, + ) -> guint; +} +extern "C" { + pub fn g_snprintf(string: *mut gchar, n: gulong, format: *const gchar, ...) -> gint; +} +extern "C" { + pub fn g_vsnprintf(string: *mut gchar, n: gulong, format: *const gchar, args: va_list) -> gint; +} +extern "C" { + pub fn g_nullify_pointer(nullify_location: *mut gpointer); +} +pub const GFormatSizeFlags_G_FORMAT_SIZE_DEFAULT: GFormatSizeFlags = 0; +pub const GFormatSizeFlags_G_FORMAT_SIZE_LONG_FORMAT: GFormatSizeFlags = 1; +pub const GFormatSizeFlags_G_FORMAT_SIZE_IEC_UNITS: GFormatSizeFlags = 2; +pub const GFormatSizeFlags_G_FORMAT_SIZE_BITS: GFormatSizeFlags = 4; +pub const GFormatSizeFlags_G_FORMAT_SIZE_ONLY_VALUE: GFormatSizeFlags = 8; +pub const GFormatSizeFlags_G_FORMAT_SIZE_ONLY_UNIT: GFormatSizeFlags = 16; +pub type GFormatSizeFlags = ::std::os::raw::c_uint; +extern "C" { + pub fn g_format_size_full(size: guint64, flags: GFormatSizeFlags) -> *mut gchar; +} +extern "C" { + pub fn g_format_size(size: guint64) -> *mut gchar; +} +extern "C" { + pub fn g_format_size_for_display(size: goffset) -> *mut gchar; +} +pub type GVoidFunc = ::std::option::Option; +extern "C" { + pub fn g_atexit(func: GVoidFunc); +} +extern "C" { + pub fn g_find_program_in_path(program: *const gchar) -> *mut gchar; +} +extern "C" { + pub fn g_bit_nth_lsf(mask: gulong, nth_bit: gint) -> gint; +} +extern "C" { + pub fn g_bit_nth_msf(mask: gulong, nth_bit: gint) -> gint; +} +extern "C" { + pub fn g_bit_storage(number: gulong) -> guint; +} +pub const idtype_t_P_ALL: idtype_t = 0; +pub const idtype_t_P_PID: idtype_t = 1; +pub const idtype_t_P_PGID: idtype_t = 2; +pub type idtype_t = ::std::os::raw::c_uint; +pub type pid_t = __darwin_pid_t; +pub type id_t = __darwin_id_t; +pub type sig_atomic_t = ::std::os::raw::c_int; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __darwin_arm_exception_state { + pub __exception: __uint32_t, + pub __fsr: __uint32_t, + pub __far: __uint32_t, +} +#[test] +fn bindgen_test_layout___darwin_arm_exception_state() { + const UNINIT: ::std::mem::MaybeUninit<__darwin_arm_exception_state> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<__darwin_arm_exception_state>(), + 12usize, + concat!("Size of: ", stringify!(__darwin_arm_exception_state)) + ); + assert_eq!( + ::std::mem::align_of::<__darwin_arm_exception_state>(), + 4usize, + concat!("Alignment of ", stringify!(__darwin_arm_exception_state)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__exception) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_exception_state), + "::", + stringify!(__exception) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__fsr) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_exception_state), + "::", + stringify!(__fsr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__far) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_exception_state), + "::", + stringify!(__far) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __darwin_arm_exception_state64 { + pub __far: __uint64_t, + pub __esr: __uint32_t, + pub __exception: __uint32_t, +} +#[test] +fn bindgen_test_layout___darwin_arm_exception_state64() { + const UNINIT: ::std::mem::MaybeUninit<__darwin_arm_exception_state64> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<__darwin_arm_exception_state64>(), + 16usize, + concat!("Size of: ", stringify!(__darwin_arm_exception_state64)) + ); + assert_eq!( + ::std::mem::align_of::<__darwin_arm_exception_state64>(), + 8usize, + concat!("Alignment of ", stringify!(__darwin_arm_exception_state64)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__far) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_exception_state64), + "::", + stringify!(__far) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__esr) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_exception_state64), + "::", + stringify!(__esr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__exception) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_exception_state64), + "::", + stringify!(__exception) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __darwin_arm_thread_state { + pub __r: [__uint32_t; 13usize], + pub __sp: __uint32_t, + pub __lr: __uint32_t, + pub __pc: __uint32_t, + pub __cpsr: __uint32_t, +} +#[test] +fn bindgen_test_layout___darwin_arm_thread_state() { + const UNINIT: ::std::mem::MaybeUninit<__darwin_arm_thread_state> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<__darwin_arm_thread_state>(), + 68usize, + concat!("Size of: ", stringify!(__darwin_arm_thread_state)) + ); + assert_eq!( + ::std::mem::align_of::<__darwin_arm_thread_state>(), + 4usize, + concat!("Alignment of ", stringify!(__darwin_arm_thread_state)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__r) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_thread_state), + "::", + stringify!(__r) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__sp) as usize - ptr as usize }, + 52usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_thread_state), + "::", + stringify!(__sp) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__lr) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_thread_state), + "::", + stringify!(__lr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__pc) as usize - ptr as usize }, + 60usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_thread_state), + "::", + stringify!(__pc) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__cpsr) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_thread_state), + "::", + stringify!(__cpsr) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __darwin_arm_thread_state64 { + pub __x: [__uint64_t; 29usize], + pub __fp: __uint64_t, + pub __lr: __uint64_t, + pub __sp: __uint64_t, + pub __pc: __uint64_t, + pub __cpsr: __uint32_t, + pub __pad: __uint32_t, +} +#[test] +fn bindgen_test_layout___darwin_arm_thread_state64() { + const UNINIT: ::std::mem::MaybeUninit<__darwin_arm_thread_state64> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<__darwin_arm_thread_state64>(), + 272usize, + concat!("Size of: ", stringify!(__darwin_arm_thread_state64)) + ); + assert_eq!( + ::std::mem::align_of::<__darwin_arm_thread_state64>(), + 8usize, + concat!("Alignment of ", stringify!(__darwin_arm_thread_state64)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__x) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_thread_state64), + "::", + stringify!(__x) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__fp) as usize - ptr as usize }, + 232usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_thread_state64), + "::", + stringify!(__fp) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__lr) as usize - ptr as usize }, + 240usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_thread_state64), + "::", + stringify!(__lr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__sp) as usize - ptr as usize }, + 248usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_thread_state64), + "::", + stringify!(__sp) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__pc) as usize - ptr as usize }, + 256usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_thread_state64), + "::", + stringify!(__pc) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__cpsr) as usize - ptr as usize }, + 264usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_thread_state64), + "::", + stringify!(__cpsr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__pad) as usize - ptr as usize }, + 268usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_thread_state64), + "::", + stringify!(__pad) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __darwin_arm_vfp_state { + pub __r: [__uint32_t; 64usize], + pub __fpscr: __uint32_t, +} +#[test] +fn bindgen_test_layout___darwin_arm_vfp_state() { + const UNINIT: ::std::mem::MaybeUninit<__darwin_arm_vfp_state> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<__darwin_arm_vfp_state>(), + 260usize, + concat!("Size of: ", stringify!(__darwin_arm_vfp_state)) + ); + assert_eq!( + ::std::mem::align_of::<__darwin_arm_vfp_state>(), + 4usize, + concat!("Alignment of ", stringify!(__darwin_arm_vfp_state)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__r) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_vfp_state), + "::", + stringify!(__r) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__fpscr) as usize - ptr as usize }, + 256usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_vfp_state), + "::", + stringify!(__fpscr) + ) + ); +} +#[repr(C)] +#[repr(align(16))] +#[derive(Debug, Copy, Clone)] +pub struct __darwin_arm_neon_state64 { + pub __v: [__uint128_t; 32usize], + pub __fpsr: __uint32_t, + pub __fpcr: __uint32_t, +} +#[test] +fn bindgen_test_layout___darwin_arm_neon_state64() { + const UNINIT: ::std::mem::MaybeUninit<__darwin_arm_neon_state64> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<__darwin_arm_neon_state64>(), + 528usize, + concat!("Size of: ", stringify!(__darwin_arm_neon_state64)) + ); + assert_eq!( + ::std::mem::align_of::<__darwin_arm_neon_state64>(), + 16usize, + concat!("Alignment of ", stringify!(__darwin_arm_neon_state64)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__v) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_neon_state64), + "::", + stringify!(__v) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__fpsr) as usize - ptr as usize }, + 512usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_neon_state64), + "::", + stringify!(__fpsr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__fpcr) as usize - ptr as usize }, + 516usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_neon_state64), + "::", + stringify!(__fpcr) + ) + ); +} +#[repr(C)] +#[repr(align(16))] +#[derive(Debug, Copy, Clone)] +pub struct __darwin_arm_neon_state { + pub __v: [__uint128_t; 16usize], + pub __fpsr: __uint32_t, + pub __fpcr: __uint32_t, +} +#[test] +fn bindgen_test_layout___darwin_arm_neon_state() { + const UNINIT: ::std::mem::MaybeUninit<__darwin_arm_neon_state> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<__darwin_arm_neon_state>(), + 272usize, + concat!("Size of: ", stringify!(__darwin_arm_neon_state)) + ); + assert_eq!( + ::std::mem::align_of::<__darwin_arm_neon_state>(), + 16usize, + concat!("Alignment of ", stringify!(__darwin_arm_neon_state)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__v) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_neon_state), + "::", + stringify!(__v) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__fpsr) as usize - ptr as usize }, + 256usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_neon_state), + "::", + stringify!(__fpsr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__fpcr) as usize - ptr as usize }, + 260usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_neon_state), + "::", + stringify!(__fpcr) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __arm_pagein_state { + pub __pagein_error: ::std::os::raw::c_int, +} +#[test] +fn bindgen_test_layout___arm_pagein_state() { + const UNINIT: ::std::mem::MaybeUninit<__arm_pagein_state> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<__arm_pagein_state>(), + 4usize, + concat!("Size of: ", stringify!(__arm_pagein_state)) + ); + assert_eq!( + ::std::mem::align_of::<__arm_pagein_state>(), + 4usize, + concat!("Alignment of ", stringify!(__arm_pagein_state)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__pagein_error) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__arm_pagein_state), + "::", + stringify!(__pagein_error) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __arm_legacy_debug_state { + pub __bvr: [__uint32_t; 16usize], + pub __bcr: [__uint32_t; 16usize], + pub __wvr: [__uint32_t; 16usize], + pub __wcr: [__uint32_t; 16usize], +} +#[test] +fn bindgen_test_layout___arm_legacy_debug_state() { + const UNINIT: ::std::mem::MaybeUninit<__arm_legacy_debug_state> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<__arm_legacy_debug_state>(), + 256usize, + concat!("Size of: ", stringify!(__arm_legacy_debug_state)) + ); + assert_eq!( + ::std::mem::align_of::<__arm_legacy_debug_state>(), + 4usize, + concat!("Alignment of ", stringify!(__arm_legacy_debug_state)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__bvr) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__arm_legacy_debug_state), + "::", + stringify!(__bvr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__bcr) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(__arm_legacy_debug_state), + "::", + stringify!(__bcr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__wvr) as usize - ptr as usize }, + 128usize, + concat!( + "Offset of field: ", + stringify!(__arm_legacy_debug_state), + "::", + stringify!(__wvr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__wcr) as usize - ptr as usize }, + 192usize, + concat!( + "Offset of field: ", + stringify!(__arm_legacy_debug_state), + "::", + stringify!(__wcr) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __darwin_arm_debug_state32 { + pub __bvr: [__uint32_t; 16usize], + pub __bcr: [__uint32_t; 16usize], + pub __wvr: [__uint32_t; 16usize], + pub __wcr: [__uint32_t; 16usize], + pub __mdscr_el1: __uint64_t, +} +#[test] +fn bindgen_test_layout___darwin_arm_debug_state32() { + const UNINIT: ::std::mem::MaybeUninit<__darwin_arm_debug_state32> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<__darwin_arm_debug_state32>(), + 264usize, + concat!("Size of: ", stringify!(__darwin_arm_debug_state32)) + ); + assert_eq!( + ::std::mem::align_of::<__darwin_arm_debug_state32>(), + 8usize, + concat!("Alignment of ", stringify!(__darwin_arm_debug_state32)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__bvr) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_debug_state32), + "::", + stringify!(__bvr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__bcr) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_debug_state32), + "::", + stringify!(__bcr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__wvr) as usize - ptr as usize }, + 128usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_debug_state32), + "::", + stringify!(__wvr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__wcr) as usize - ptr as usize }, + 192usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_debug_state32), + "::", + stringify!(__wcr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__mdscr_el1) as usize - ptr as usize }, + 256usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_debug_state32), + "::", + stringify!(__mdscr_el1) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __darwin_arm_debug_state64 { + pub __bvr: [__uint64_t; 16usize], + pub __bcr: [__uint64_t; 16usize], + pub __wvr: [__uint64_t; 16usize], + pub __wcr: [__uint64_t; 16usize], + pub __mdscr_el1: __uint64_t, +} +#[test] +fn bindgen_test_layout___darwin_arm_debug_state64() { + const UNINIT: ::std::mem::MaybeUninit<__darwin_arm_debug_state64> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<__darwin_arm_debug_state64>(), + 520usize, + concat!("Size of: ", stringify!(__darwin_arm_debug_state64)) + ); + assert_eq!( + ::std::mem::align_of::<__darwin_arm_debug_state64>(), + 8usize, + concat!("Alignment of ", stringify!(__darwin_arm_debug_state64)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__bvr) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_debug_state64), + "::", + stringify!(__bvr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__bcr) as usize - ptr as usize }, + 128usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_debug_state64), + "::", + stringify!(__bcr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__wvr) as usize - ptr as usize }, + 256usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_debug_state64), + "::", + stringify!(__wvr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__wcr) as usize - ptr as usize }, + 384usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_debug_state64), + "::", + stringify!(__wcr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__mdscr_el1) as usize - ptr as usize }, + 512usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_debug_state64), + "::", + stringify!(__mdscr_el1) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __darwin_arm_cpmu_state64 { + pub __ctrs: [__uint64_t; 16usize], +} +#[test] +fn bindgen_test_layout___darwin_arm_cpmu_state64() { + const UNINIT: ::std::mem::MaybeUninit<__darwin_arm_cpmu_state64> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<__darwin_arm_cpmu_state64>(), + 128usize, + concat!("Size of: ", stringify!(__darwin_arm_cpmu_state64)) + ); + assert_eq!( + ::std::mem::align_of::<__darwin_arm_cpmu_state64>(), + 8usize, + concat!("Alignment of ", stringify!(__darwin_arm_cpmu_state64)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__ctrs) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__darwin_arm_cpmu_state64), + "::", + stringify!(__ctrs) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __darwin_mcontext32 { + pub __es: __darwin_arm_exception_state, + pub __ss: __darwin_arm_thread_state, + pub __fs: __darwin_arm_vfp_state, +} +#[test] +fn bindgen_test_layout___darwin_mcontext32() { + const UNINIT: ::std::mem::MaybeUninit<__darwin_mcontext32> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<__darwin_mcontext32>(), + 340usize, + concat!("Size of: ", stringify!(__darwin_mcontext32)) + ); + assert_eq!( + ::std::mem::align_of::<__darwin_mcontext32>(), + 4usize, + concat!("Alignment of ", stringify!(__darwin_mcontext32)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__es) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__darwin_mcontext32), + "::", + stringify!(__es) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__ss) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(__darwin_mcontext32), + "::", + stringify!(__ss) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__fs) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(__darwin_mcontext32), + "::", + stringify!(__fs) + ) + ); +} +#[repr(C)] +#[repr(align(16))] +#[derive(Debug, Copy, Clone)] +pub struct __darwin_mcontext64 { + pub __es: __darwin_arm_exception_state64, + pub __ss: __darwin_arm_thread_state64, + pub __ns: __darwin_arm_neon_state64, +} +#[test] +fn bindgen_test_layout___darwin_mcontext64() { + const UNINIT: ::std::mem::MaybeUninit<__darwin_mcontext64> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<__darwin_mcontext64>(), + 816usize, + concat!("Size of: ", stringify!(__darwin_mcontext64)) + ); + assert_eq!( + ::std::mem::align_of::<__darwin_mcontext64>(), + 16usize, + concat!("Alignment of ", stringify!(__darwin_mcontext64)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__es) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__darwin_mcontext64), + "::", + stringify!(__es) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__ss) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(__darwin_mcontext64), + "::", + stringify!(__ss) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__ns) as usize - ptr as usize }, + 288usize, + concat!( + "Offset of field: ", + stringify!(__darwin_mcontext64), + "::", + stringify!(__ns) + ) + ); +} +pub type mcontext_t = *mut __darwin_mcontext64; +pub type pthread_attr_t = __darwin_pthread_attr_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __darwin_sigaltstack { + pub ss_sp: *mut ::std::os::raw::c_void, + pub ss_size: __darwin_size_t, + pub ss_flags: ::std::os::raw::c_int, +} +#[test] +fn bindgen_test_layout___darwin_sigaltstack() { + const UNINIT: ::std::mem::MaybeUninit<__darwin_sigaltstack> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<__darwin_sigaltstack>(), + 24usize, + concat!("Size of: ", stringify!(__darwin_sigaltstack)) + ); + assert_eq!( + ::std::mem::align_of::<__darwin_sigaltstack>(), + 8usize, + concat!("Alignment of ", stringify!(__darwin_sigaltstack)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ss_sp) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__darwin_sigaltstack), + "::", + stringify!(ss_sp) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ss_size) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(__darwin_sigaltstack), + "::", + stringify!(ss_size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ss_flags) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(__darwin_sigaltstack), + "::", + stringify!(ss_flags) + ) + ); +} +pub type stack_t = __darwin_sigaltstack; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __darwin_ucontext { + pub uc_onstack: ::std::os::raw::c_int, + pub uc_sigmask: __darwin_sigset_t, + pub uc_stack: __darwin_sigaltstack, + pub uc_link: *mut __darwin_ucontext, + pub uc_mcsize: __darwin_size_t, + pub uc_mcontext: *mut __darwin_mcontext64, +} +#[test] +fn bindgen_test_layout___darwin_ucontext() { + const UNINIT: ::std::mem::MaybeUninit<__darwin_ucontext> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<__darwin_ucontext>(), + 56usize, + concat!("Size of: ", stringify!(__darwin_ucontext)) + ); + assert_eq!( + ::std::mem::align_of::<__darwin_ucontext>(), + 8usize, + concat!("Alignment of ", stringify!(__darwin_ucontext)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).uc_onstack) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__darwin_ucontext), + "::", + stringify!(uc_onstack) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).uc_sigmask) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(__darwin_ucontext), + "::", + stringify!(uc_sigmask) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).uc_stack) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(__darwin_ucontext), + "::", + stringify!(uc_stack) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).uc_link) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(__darwin_ucontext), + "::", + stringify!(uc_link) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).uc_mcsize) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(__darwin_ucontext), + "::", + stringify!(uc_mcsize) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).uc_mcontext) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(__darwin_ucontext), + "::", + stringify!(uc_mcontext) + ) + ); +} +pub type ucontext_t = __darwin_ucontext; +pub type sigset_t = __darwin_sigset_t; +pub type uid_t = __darwin_uid_t; +#[repr(C)] +#[derive(Copy, Clone)] +pub union sigval { + pub sival_int: ::std::os::raw::c_int, + pub sival_ptr: *mut ::std::os::raw::c_void, +} +#[test] +fn bindgen_test_layout_sigval() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(sigval)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(sigval)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sival_int) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sigval), + "::", + stringify!(sival_int) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sival_ptr) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sigval), + "::", + stringify!(sival_ptr) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sigevent { + pub sigev_notify: ::std::os::raw::c_int, + pub sigev_signo: ::std::os::raw::c_int, + pub sigev_value: sigval, + pub sigev_notify_function: ::std::option::Option, + pub sigev_notify_attributes: *mut pthread_attr_t, +} +#[test] +fn bindgen_test_layout_sigevent() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(sigevent)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(sigevent)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sigev_notify) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sigevent), + "::", + stringify!(sigev_notify) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sigev_signo) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(sigevent), + "::", + stringify!(sigev_signo) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sigev_value) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(sigevent), + "::", + stringify!(sigev_value) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sigev_notify_function) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(sigevent), + "::", + stringify!(sigev_notify_function) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sigev_notify_attributes) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(sigevent), + "::", + stringify!(sigev_notify_attributes) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __siginfo { + pub si_signo: ::std::os::raw::c_int, + pub si_errno: ::std::os::raw::c_int, + pub si_code: ::std::os::raw::c_int, + pub si_pid: pid_t, + pub si_uid: uid_t, + pub si_status: ::std::os::raw::c_int, + pub si_addr: *mut ::std::os::raw::c_void, + pub si_value: sigval, + pub si_band: ::std::os::raw::c_long, + pub __pad: [::std::os::raw::c_ulong; 7usize], +} +#[test] +fn bindgen_test_layout___siginfo() { + const UNINIT: ::std::mem::MaybeUninit<__siginfo> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<__siginfo>(), + 104usize, + concat!("Size of: ", stringify!(__siginfo)) + ); + assert_eq!( + ::std::mem::align_of::<__siginfo>(), + 8usize, + concat!("Alignment of ", stringify!(__siginfo)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).si_signo) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__siginfo), + "::", + stringify!(si_signo) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).si_errno) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(__siginfo), + "::", + stringify!(si_errno) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).si_code) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(__siginfo), + "::", + stringify!(si_code) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).si_pid) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(__siginfo), + "::", + stringify!(si_pid) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).si_uid) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(__siginfo), + "::", + stringify!(si_uid) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).si_status) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(__siginfo), + "::", + stringify!(si_status) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).si_addr) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(__siginfo), + "::", + stringify!(si_addr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).si_value) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(__siginfo), + "::", + stringify!(si_value) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).si_band) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(__siginfo), + "::", + stringify!(si_band) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__pad) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(__siginfo), + "::", + stringify!(__pad) + ) + ); +} +pub type siginfo_t = __siginfo; +#[repr(C)] +#[derive(Copy, Clone)] +pub union __sigaction_u { + pub __sa_handler: ::std::option::Option, + pub __sa_sigaction: ::std::option::Option< + unsafe extern "C" fn( + arg1: ::std::os::raw::c_int, + arg2: *mut __siginfo, + arg3: *mut ::std::os::raw::c_void, + ), + >, +} +#[test] +fn bindgen_test_layout___sigaction_u() { + const UNINIT: ::std::mem::MaybeUninit<__sigaction_u> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<__sigaction_u>(), + 8usize, + concat!("Size of: ", stringify!(__sigaction_u)) + ); + assert_eq!( + ::std::mem::align_of::<__sigaction_u>(), + 8usize, + concat!("Alignment of ", stringify!(__sigaction_u)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__sa_handler) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__sigaction_u), + "::", + stringify!(__sa_handler) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__sa_sigaction) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__sigaction_u), + "::", + stringify!(__sa_sigaction) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __sigaction { + pub __sigaction_u: __sigaction_u, + pub sa_tramp: ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut ::std::os::raw::c_void, + arg2: ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + arg4: *mut siginfo_t, + arg5: *mut ::std::os::raw::c_void, + ), + >, + pub sa_mask: sigset_t, + pub sa_flags: ::std::os::raw::c_int, +} +#[test] +fn bindgen_test_layout___sigaction() { + const UNINIT: ::std::mem::MaybeUninit<__sigaction> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<__sigaction>(), + 24usize, + concat!("Size of: ", stringify!(__sigaction)) + ); + assert_eq!( + ::std::mem::align_of::<__sigaction>(), + 8usize, + concat!("Alignment of ", stringify!(__sigaction)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__sigaction_u) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__sigaction), + "::", + stringify!(__sigaction_u) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sa_tramp) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(__sigaction), + "::", + stringify!(sa_tramp) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sa_mask) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(__sigaction), + "::", + stringify!(sa_mask) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sa_flags) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(__sigaction), + "::", + stringify!(sa_flags) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sigaction { + pub __sigaction_u: __sigaction_u, + pub sa_mask: sigset_t, + pub sa_flags: ::std::os::raw::c_int, +} +#[test] +fn bindgen_test_layout_sigaction() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(sigaction)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(sigaction)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__sigaction_u) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sigaction), + "::", + stringify!(__sigaction_u) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sa_mask) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(sigaction), + "::", + stringify!(sa_mask) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sa_flags) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(sigaction), + "::", + stringify!(sa_flags) + ) + ); +} +pub type sig_t = ::std::option::Option; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sigvec { + pub sv_handler: ::std::option::Option, + pub sv_mask: ::std::os::raw::c_int, + pub sv_flags: ::std::os::raw::c_int, +} +#[test] +fn bindgen_test_layout_sigvec() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(sigvec)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(sigvec)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sv_handler) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sigvec), + "::", + stringify!(sv_handler) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sv_mask) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(sigvec), + "::", + stringify!(sv_mask) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sv_flags) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(sigvec), + "::", + stringify!(sv_flags) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sigstack { + pub ss_sp: *mut ::std::os::raw::c_char, + pub ss_onstack: ::std::os::raw::c_int, +} +#[test] +fn bindgen_test_layout_sigstack() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(sigstack)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(sigstack)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ss_sp) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sigstack), + "::", + stringify!(ss_sp) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ss_onstack) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(sigstack), + "::", + stringify!(ss_onstack) + ) + ); +} +extern "C" { + pub fn signal( + arg1: ::std::os::raw::c_int, + arg2: ::std::option::Option, + ) -> ::std::option::Option< + unsafe extern "C" fn( + arg1: ::std::os::raw::c_int, + arg2: ::std::option::Option, + ), + >; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timeval { + pub tv_sec: __darwin_time_t, + pub tv_usec: __darwin_suseconds_t, +} +#[test] +fn bindgen_test_layout_timeval() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(timeval)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(timeval)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(timeval), + "::", + stringify!(tv_sec) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tv_usec) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(timeval), + "::", + stringify!(tv_usec) + ) + ); +} +pub type rlim_t = __uint64_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rusage { + pub ru_utime: timeval, + pub ru_stime: timeval, + pub ru_maxrss: ::std::os::raw::c_long, + pub ru_ixrss: ::std::os::raw::c_long, + pub ru_idrss: ::std::os::raw::c_long, + pub ru_isrss: ::std::os::raw::c_long, + pub ru_minflt: ::std::os::raw::c_long, + pub ru_majflt: ::std::os::raw::c_long, + pub ru_nswap: ::std::os::raw::c_long, + pub ru_inblock: ::std::os::raw::c_long, + pub ru_oublock: ::std::os::raw::c_long, + pub ru_msgsnd: ::std::os::raw::c_long, + pub ru_msgrcv: ::std::os::raw::c_long, + pub ru_nsignals: ::std::os::raw::c_long, + pub ru_nvcsw: ::std::os::raw::c_long, + pub ru_nivcsw: ::std::os::raw::c_long, +} +#[test] +fn bindgen_test_layout_rusage() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 144usize, + concat!("Size of: ", stringify!(rusage)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(rusage)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ru_utime) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(rusage), + "::", + stringify!(ru_utime) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ru_stime) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(rusage), + "::", + stringify!(ru_stime) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ru_maxrss) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(rusage), + "::", + stringify!(ru_maxrss) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ru_ixrss) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(rusage), + "::", + stringify!(ru_ixrss) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ru_idrss) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(rusage), + "::", + stringify!(ru_idrss) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ru_isrss) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(rusage), + "::", + stringify!(ru_isrss) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ru_minflt) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(rusage), + "::", + stringify!(ru_minflt) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ru_majflt) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(rusage), + "::", + stringify!(ru_majflt) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ru_nswap) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(rusage), + "::", + stringify!(ru_nswap) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ru_inblock) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(rusage), + "::", + stringify!(ru_inblock) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ru_oublock) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(rusage), + "::", + stringify!(ru_oublock) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ru_msgsnd) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(rusage), + "::", + stringify!(ru_msgsnd) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ru_msgrcv) as usize - ptr as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(rusage), + "::", + stringify!(ru_msgrcv) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ru_nsignals) as usize - ptr as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(rusage), + "::", + stringify!(ru_nsignals) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ru_nvcsw) as usize - ptr as usize }, + 128usize, + concat!( + "Offset of field: ", + stringify!(rusage), + "::", + stringify!(ru_nvcsw) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ru_nivcsw) as usize - ptr as usize }, + 136usize, + concat!( + "Offset of field: ", + stringify!(rusage), + "::", + stringify!(ru_nivcsw) + ) + ); +} +pub type rusage_info_t = *mut ::std::os::raw::c_void; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rusage_info_v0 { + pub ri_uuid: [u8; 16usize], + pub ri_user_time: u64, + pub ri_system_time: u64, + pub ri_pkg_idle_wkups: u64, + pub ri_interrupt_wkups: u64, + pub ri_pageins: u64, + pub ri_wired_size: u64, + pub ri_resident_size: u64, + pub ri_phys_footprint: u64, + pub ri_proc_start_abstime: u64, + pub ri_proc_exit_abstime: u64, +} +#[test] +fn bindgen_test_layout_rusage_info_v0() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 96usize, + concat!("Size of: ", stringify!(rusage_info_v0)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(rusage_info_v0)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_uuid) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v0), + "::", + stringify!(ri_uuid) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_user_time) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v0), + "::", + stringify!(ri_user_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_system_time) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v0), + "::", + stringify!(ri_system_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_pkg_idle_wkups) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v0), + "::", + stringify!(ri_pkg_idle_wkups) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_interrupt_wkups) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v0), + "::", + stringify!(ri_interrupt_wkups) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_pageins) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v0), + "::", + stringify!(ri_pageins) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_wired_size) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v0), + "::", + stringify!(ri_wired_size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_resident_size) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v0), + "::", + stringify!(ri_resident_size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_phys_footprint) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v0), + "::", + stringify!(ri_phys_footprint) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_proc_start_abstime) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v0), + "::", + stringify!(ri_proc_start_abstime) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_proc_exit_abstime) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v0), + "::", + stringify!(ri_proc_exit_abstime) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rusage_info_v1 { + pub ri_uuid: [u8; 16usize], + pub ri_user_time: u64, + pub ri_system_time: u64, + pub ri_pkg_idle_wkups: u64, + pub ri_interrupt_wkups: u64, + pub ri_pageins: u64, + pub ri_wired_size: u64, + pub ri_resident_size: u64, + pub ri_phys_footprint: u64, + pub ri_proc_start_abstime: u64, + pub ri_proc_exit_abstime: u64, + pub ri_child_user_time: u64, + pub ri_child_system_time: u64, + pub ri_child_pkg_idle_wkups: u64, + pub ri_child_interrupt_wkups: u64, + pub ri_child_pageins: u64, + pub ri_child_elapsed_abstime: u64, +} +#[test] +fn bindgen_test_layout_rusage_info_v1() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 144usize, + concat!("Size of: ", stringify!(rusage_info_v1)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(rusage_info_v1)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_uuid) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v1), + "::", + stringify!(ri_uuid) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_user_time) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v1), + "::", + stringify!(ri_user_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_system_time) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v1), + "::", + stringify!(ri_system_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_pkg_idle_wkups) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v1), + "::", + stringify!(ri_pkg_idle_wkups) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_interrupt_wkups) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v1), + "::", + stringify!(ri_interrupt_wkups) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_pageins) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v1), + "::", + stringify!(ri_pageins) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_wired_size) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v1), + "::", + stringify!(ri_wired_size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_resident_size) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v1), + "::", + stringify!(ri_resident_size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_phys_footprint) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v1), + "::", + stringify!(ri_phys_footprint) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_proc_start_abstime) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v1), + "::", + stringify!(ri_proc_start_abstime) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_proc_exit_abstime) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v1), + "::", + stringify!(ri_proc_exit_abstime) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_user_time) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v1), + "::", + stringify!(ri_child_user_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_system_time) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v1), + "::", + stringify!(ri_child_system_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_pkg_idle_wkups) as usize - ptr as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v1), + "::", + stringify!(ri_child_pkg_idle_wkups) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_interrupt_wkups) as usize - ptr as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v1), + "::", + stringify!(ri_child_interrupt_wkups) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_pageins) as usize - ptr as usize }, + 128usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v1), + "::", + stringify!(ri_child_pageins) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_elapsed_abstime) as usize - ptr as usize }, + 136usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v1), + "::", + stringify!(ri_child_elapsed_abstime) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rusage_info_v2 { + pub ri_uuid: [u8; 16usize], + pub ri_user_time: u64, + pub ri_system_time: u64, + pub ri_pkg_idle_wkups: u64, + pub ri_interrupt_wkups: u64, + pub ri_pageins: u64, + pub ri_wired_size: u64, + pub ri_resident_size: u64, + pub ri_phys_footprint: u64, + pub ri_proc_start_abstime: u64, + pub ri_proc_exit_abstime: u64, + pub ri_child_user_time: u64, + pub ri_child_system_time: u64, + pub ri_child_pkg_idle_wkups: u64, + pub ri_child_interrupt_wkups: u64, + pub ri_child_pageins: u64, + pub ri_child_elapsed_abstime: u64, + pub ri_diskio_bytesread: u64, + pub ri_diskio_byteswritten: u64, +} +#[test] +fn bindgen_test_layout_rusage_info_v2() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 160usize, + concat!("Size of: ", stringify!(rusage_info_v2)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(rusage_info_v2)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_uuid) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v2), + "::", + stringify!(ri_uuid) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_user_time) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v2), + "::", + stringify!(ri_user_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_system_time) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v2), + "::", + stringify!(ri_system_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_pkg_idle_wkups) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v2), + "::", + stringify!(ri_pkg_idle_wkups) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_interrupt_wkups) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v2), + "::", + stringify!(ri_interrupt_wkups) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_pageins) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v2), + "::", + stringify!(ri_pageins) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_wired_size) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v2), + "::", + stringify!(ri_wired_size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_resident_size) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v2), + "::", + stringify!(ri_resident_size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_phys_footprint) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v2), + "::", + stringify!(ri_phys_footprint) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_proc_start_abstime) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v2), + "::", + stringify!(ri_proc_start_abstime) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_proc_exit_abstime) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v2), + "::", + stringify!(ri_proc_exit_abstime) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_user_time) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v2), + "::", + stringify!(ri_child_user_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_system_time) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v2), + "::", + stringify!(ri_child_system_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_pkg_idle_wkups) as usize - ptr as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v2), + "::", + stringify!(ri_child_pkg_idle_wkups) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_interrupt_wkups) as usize - ptr as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v2), + "::", + stringify!(ri_child_interrupt_wkups) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_pageins) as usize - ptr as usize }, + 128usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v2), + "::", + stringify!(ri_child_pageins) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_elapsed_abstime) as usize - ptr as usize }, + 136usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v2), + "::", + stringify!(ri_child_elapsed_abstime) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_diskio_bytesread) as usize - ptr as usize }, + 144usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v2), + "::", + stringify!(ri_diskio_bytesread) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_diskio_byteswritten) as usize - ptr as usize }, + 152usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v2), + "::", + stringify!(ri_diskio_byteswritten) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rusage_info_v3 { + pub ri_uuid: [u8; 16usize], + pub ri_user_time: u64, + pub ri_system_time: u64, + pub ri_pkg_idle_wkups: u64, + pub ri_interrupt_wkups: u64, + pub ri_pageins: u64, + pub ri_wired_size: u64, + pub ri_resident_size: u64, + pub ri_phys_footprint: u64, + pub ri_proc_start_abstime: u64, + pub ri_proc_exit_abstime: u64, + pub ri_child_user_time: u64, + pub ri_child_system_time: u64, + pub ri_child_pkg_idle_wkups: u64, + pub ri_child_interrupt_wkups: u64, + pub ri_child_pageins: u64, + pub ri_child_elapsed_abstime: u64, + pub ri_diskio_bytesread: u64, + pub ri_diskio_byteswritten: u64, + pub ri_cpu_time_qos_default: u64, + pub ri_cpu_time_qos_maintenance: u64, + pub ri_cpu_time_qos_background: u64, + pub ri_cpu_time_qos_utility: u64, + pub ri_cpu_time_qos_legacy: u64, + pub ri_cpu_time_qos_user_initiated: u64, + pub ri_cpu_time_qos_user_interactive: u64, + pub ri_billed_system_time: u64, + pub ri_serviced_system_time: u64, +} +#[test] +fn bindgen_test_layout_rusage_info_v3() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 232usize, + concat!("Size of: ", stringify!(rusage_info_v3)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(rusage_info_v3)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_uuid) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v3), + "::", + stringify!(ri_uuid) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_user_time) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v3), + "::", + stringify!(ri_user_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_system_time) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v3), + "::", + stringify!(ri_system_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_pkg_idle_wkups) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v3), + "::", + stringify!(ri_pkg_idle_wkups) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_interrupt_wkups) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v3), + "::", + stringify!(ri_interrupt_wkups) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_pageins) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v3), + "::", + stringify!(ri_pageins) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_wired_size) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v3), + "::", + stringify!(ri_wired_size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_resident_size) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v3), + "::", + stringify!(ri_resident_size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_phys_footprint) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v3), + "::", + stringify!(ri_phys_footprint) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_proc_start_abstime) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v3), + "::", + stringify!(ri_proc_start_abstime) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_proc_exit_abstime) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v3), + "::", + stringify!(ri_proc_exit_abstime) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_user_time) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v3), + "::", + stringify!(ri_child_user_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_system_time) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v3), + "::", + stringify!(ri_child_system_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_pkg_idle_wkups) as usize - ptr as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v3), + "::", + stringify!(ri_child_pkg_idle_wkups) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_interrupt_wkups) as usize - ptr as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v3), + "::", + stringify!(ri_child_interrupt_wkups) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_pageins) as usize - ptr as usize }, + 128usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v3), + "::", + stringify!(ri_child_pageins) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_elapsed_abstime) as usize - ptr as usize }, + 136usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v3), + "::", + stringify!(ri_child_elapsed_abstime) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_diskio_bytesread) as usize - ptr as usize }, + 144usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v3), + "::", + stringify!(ri_diskio_bytesread) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_diskio_byteswritten) as usize - ptr as usize }, + 152usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v3), + "::", + stringify!(ri_diskio_byteswritten) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_cpu_time_qos_default) as usize - ptr as usize }, + 160usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v3), + "::", + stringify!(ri_cpu_time_qos_default) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_cpu_time_qos_maintenance) as usize - ptr as usize }, + 168usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v3), + "::", + stringify!(ri_cpu_time_qos_maintenance) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_cpu_time_qos_background) as usize - ptr as usize }, + 176usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v3), + "::", + stringify!(ri_cpu_time_qos_background) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_cpu_time_qos_utility) as usize - ptr as usize }, + 184usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v3), + "::", + stringify!(ri_cpu_time_qos_utility) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_cpu_time_qos_legacy) as usize - ptr as usize }, + 192usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v3), + "::", + stringify!(ri_cpu_time_qos_legacy) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).ri_cpu_time_qos_user_initiated) as usize - ptr as usize + }, + 200usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v3), + "::", + stringify!(ri_cpu_time_qos_user_initiated) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).ri_cpu_time_qos_user_interactive) as usize - ptr as usize + }, + 208usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v3), + "::", + stringify!(ri_cpu_time_qos_user_interactive) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_billed_system_time) as usize - ptr as usize }, + 216usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v3), + "::", + stringify!(ri_billed_system_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_serviced_system_time) as usize - ptr as usize }, + 224usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v3), + "::", + stringify!(ri_serviced_system_time) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rusage_info_v4 { + pub ri_uuid: [u8; 16usize], + pub ri_user_time: u64, + pub ri_system_time: u64, + pub ri_pkg_idle_wkups: u64, + pub ri_interrupt_wkups: u64, + pub ri_pageins: u64, + pub ri_wired_size: u64, + pub ri_resident_size: u64, + pub ri_phys_footprint: u64, + pub ri_proc_start_abstime: u64, + pub ri_proc_exit_abstime: u64, + pub ri_child_user_time: u64, + pub ri_child_system_time: u64, + pub ri_child_pkg_idle_wkups: u64, + pub ri_child_interrupt_wkups: u64, + pub ri_child_pageins: u64, + pub ri_child_elapsed_abstime: u64, + pub ri_diskio_bytesread: u64, + pub ri_diskio_byteswritten: u64, + pub ri_cpu_time_qos_default: u64, + pub ri_cpu_time_qos_maintenance: u64, + pub ri_cpu_time_qos_background: u64, + pub ri_cpu_time_qos_utility: u64, + pub ri_cpu_time_qos_legacy: u64, + pub ri_cpu_time_qos_user_initiated: u64, + pub ri_cpu_time_qos_user_interactive: u64, + pub ri_billed_system_time: u64, + pub ri_serviced_system_time: u64, + pub ri_logical_writes: u64, + pub ri_lifetime_max_phys_footprint: u64, + pub ri_instructions: u64, + pub ri_cycles: u64, + pub ri_billed_energy: u64, + pub ri_serviced_energy: u64, + pub ri_interval_max_phys_footprint: u64, + pub ri_runnable_time: u64, +} +#[test] +fn bindgen_test_layout_rusage_info_v4() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 296usize, + concat!("Size of: ", stringify!(rusage_info_v4)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(rusage_info_v4)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_uuid) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_uuid) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_user_time) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_user_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_system_time) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_system_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_pkg_idle_wkups) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_pkg_idle_wkups) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_interrupt_wkups) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_interrupt_wkups) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_pageins) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_pageins) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_wired_size) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_wired_size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_resident_size) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_resident_size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_phys_footprint) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_phys_footprint) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_proc_start_abstime) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_proc_start_abstime) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_proc_exit_abstime) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_proc_exit_abstime) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_user_time) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_child_user_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_system_time) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_child_system_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_pkg_idle_wkups) as usize - ptr as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_child_pkg_idle_wkups) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_interrupt_wkups) as usize - ptr as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_child_interrupt_wkups) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_pageins) as usize - ptr as usize }, + 128usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_child_pageins) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_elapsed_abstime) as usize - ptr as usize }, + 136usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_child_elapsed_abstime) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_diskio_bytesread) as usize - ptr as usize }, + 144usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_diskio_bytesread) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_diskio_byteswritten) as usize - ptr as usize }, + 152usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_diskio_byteswritten) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_cpu_time_qos_default) as usize - ptr as usize }, + 160usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_cpu_time_qos_default) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_cpu_time_qos_maintenance) as usize - ptr as usize }, + 168usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_cpu_time_qos_maintenance) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_cpu_time_qos_background) as usize - ptr as usize }, + 176usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_cpu_time_qos_background) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_cpu_time_qos_utility) as usize - ptr as usize }, + 184usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_cpu_time_qos_utility) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_cpu_time_qos_legacy) as usize - ptr as usize }, + 192usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_cpu_time_qos_legacy) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).ri_cpu_time_qos_user_initiated) as usize - ptr as usize + }, + 200usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_cpu_time_qos_user_initiated) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).ri_cpu_time_qos_user_interactive) as usize - ptr as usize + }, + 208usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_cpu_time_qos_user_interactive) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_billed_system_time) as usize - ptr as usize }, + 216usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_billed_system_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_serviced_system_time) as usize - ptr as usize }, + 224usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_serviced_system_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_logical_writes) as usize - ptr as usize }, + 232usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_logical_writes) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).ri_lifetime_max_phys_footprint) as usize - ptr as usize + }, + 240usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_lifetime_max_phys_footprint) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_instructions) as usize - ptr as usize }, + 248usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_instructions) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_cycles) as usize - ptr as usize }, + 256usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_cycles) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_billed_energy) as usize - ptr as usize }, + 264usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_billed_energy) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_serviced_energy) as usize - ptr as usize }, + 272usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_serviced_energy) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).ri_interval_max_phys_footprint) as usize - ptr as usize + }, + 280usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_interval_max_phys_footprint) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_runnable_time) as usize - ptr as usize }, + 288usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v4), + "::", + stringify!(ri_runnable_time) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rusage_info_v5 { + pub ri_uuid: [u8; 16usize], + pub ri_user_time: u64, + pub ri_system_time: u64, + pub ri_pkg_idle_wkups: u64, + pub ri_interrupt_wkups: u64, + pub ri_pageins: u64, + pub ri_wired_size: u64, + pub ri_resident_size: u64, + pub ri_phys_footprint: u64, + pub ri_proc_start_abstime: u64, + pub ri_proc_exit_abstime: u64, + pub ri_child_user_time: u64, + pub ri_child_system_time: u64, + pub ri_child_pkg_idle_wkups: u64, + pub ri_child_interrupt_wkups: u64, + pub ri_child_pageins: u64, + pub ri_child_elapsed_abstime: u64, + pub ri_diskio_bytesread: u64, + pub ri_diskio_byteswritten: u64, + pub ri_cpu_time_qos_default: u64, + pub ri_cpu_time_qos_maintenance: u64, + pub ri_cpu_time_qos_background: u64, + pub ri_cpu_time_qos_utility: u64, + pub ri_cpu_time_qos_legacy: u64, + pub ri_cpu_time_qos_user_initiated: u64, + pub ri_cpu_time_qos_user_interactive: u64, + pub ri_billed_system_time: u64, + pub ri_serviced_system_time: u64, + pub ri_logical_writes: u64, + pub ri_lifetime_max_phys_footprint: u64, + pub ri_instructions: u64, + pub ri_cycles: u64, + pub ri_billed_energy: u64, + pub ri_serviced_energy: u64, + pub ri_interval_max_phys_footprint: u64, + pub ri_runnable_time: u64, + pub ri_flags: u64, +} +#[test] +fn bindgen_test_layout_rusage_info_v5() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 304usize, + concat!("Size of: ", stringify!(rusage_info_v5)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(rusage_info_v5)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_uuid) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_uuid) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_user_time) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_user_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_system_time) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_system_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_pkg_idle_wkups) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_pkg_idle_wkups) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_interrupt_wkups) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_interrupt_wkups) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_pageins) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_pageins) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_wired_size) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_wired_size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_resident_size) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_resident_size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_phys_footprint) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_phys_footprint) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_proc_start_abstime) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_proc_start_abstime) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_proc_exit_abstime) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_proc_exit_abstime) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_user_time) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_child_user_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_system_time) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_child_system_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_pkg_idle_wkups) as usize - ptr as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_child_pkg_idle_wkups) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_interrupt_wkups) as usize - ptr as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_child_interrupt_wkups) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_pageins) as usize - ptr as usize }, + 128usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_child_pageins) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_elapsed_abstime) as usize - ptr as usize }, + 136usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_child_elapsed_abstime) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_diskio_bytesread) as usize - ptr as usize }, + 144usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_diskio_bytesread) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_diskio_byteswritten) as usize - ptr as usize }, + 152usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_diskio_byteswritten) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_cpu_time_qos_default) as usize - ptr as usize }, + 160usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_cpu_time_qos_default) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_cpu_time_qos_maintenance) as usize - ptr as usize }, + 168usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_cpu_time_qos_maintenance) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_cpu_time_qos_background) as usize - ptr as usize }, + 176usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_cpu_time_qos_background) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_cpu_time_qos_utility) as usize - ptr as usize }, + 184usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_cpu_time_qos_utility) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_cpu_time_qos_legacy) as usize - ptr as usize }, + 192usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_cpu_time_qos_legacy) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).ri_cpu_time_qos_user_initiated) as usize - ptr as usize + }, + 200usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_cpu_time_qos_user_initiated) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).ri_cpu_time_qos_user_interactive) as usize - ptr as usize + }, + 208usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_cpu_time_qos_user_interactive) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_billed_system_time) as usize - ptr as usize }, + 216usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_billed_system_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_serviced_system_time) as usize - ptr as usize }, + 224usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_serviced_system_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_logical_writes) as usize - ptr as usize }, + 232usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_logical_writes) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).ri_lifetime_max_phys_footprint) as usize - ptr as usize + }, + 240usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_lifetime_max_phys_footprint) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_instructions) as usize - ptr as usize }, + 248usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_instructions) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_cycles) as usize - ptr as usize }, + 256usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_cycles) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_billed_energy) as usize - ptr as usize }, + 264usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_billed_energy) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_serviced_energy) as usize - ptr as usize }, + 272usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_serviced_energy) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).ri_interval_max_phys_footprint) as usize - ptr as usize + }, + 280usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_interval_max_phys_footprint) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_runnable_time) as usize - ptr as usize }, + 288usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_runnable_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_flags) as usize - ptr as usize }, + 296usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v5), + "::", + stringify!(ri_flags) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rusage_info_v6 { + pub ri_uuid: [u8; 16usize], + pub ri_user_time: u64, + pub ri_system_time: u64, + pub ri_pkg_idle_wkups: u64, + pub ri_interrupt_wkups: u64, + pub ri_pageins: u64, + pub ri_wired_size: u64, + pub ri_resident_size: u64, + pub ri_phys_footprint: u64, + pub ri_proc_start_abstime: u64, + pub ri_proc_exit_abstime: u64, + pub ri_child_user_time: u64, + pub ri_child_system_time: u64, + pub ri_child_pkg_idle_wkups: u64, + pub ri_child_interrupt_wkups: u64, + pub ri_child_pageins: u64, + pub ri_child_elapsed_abstime: u64, + pub ri_diskio_bytesread: u64, + pub ri_diskio_byteswritten: u64, + pub ri_cpu_time_qos_default: u64, + pub ri_cpu_time_qos_maintenance: u64, + pub ri_cpu_time_qos_background: u64, + pub ri_cpu_time_qos_utility: u64, + pub ri_cpu_time_qos_legacy: u64, + pub ri_cpu_time_qos_user_initiated: u64, + pub ri_cpu_time_qos_user_interactive: u64, + pub ri_billed_system_time: u64, + pub ri_serviced_system_time: u64, + pub ri_logical_writes: u64, + pub ri_lifetime_max_phys_footprint: u64, + pub ri_instructions: u64, + pub ri_cycles: u64, + pub ri_billed_energy: u64, + pub ri_serviced_energy: u64, + pub ri_interval_max_phys_footprint: u64, + pub ri_runnable_time: u64, + pub ri_flags: u64, + pub ri_user_ptime: u64, + pub ri_system_ptime: u64, + pub ri_pinstructions: u64, + pub ri_pcycles: u64, + pub ri_energy_nj: u64, + pub ri_penergy_nj: u64, + pub ri_secure_time_in_system: u64, + pub ri_secure_ptime_in_system: u64, + pub ri_reserved: [u64; 12usize], +} +#[test] +fn bindgen_test_layout_rusage_info_v6() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 464usize, + concat!("Size of: ", stringify!(rusage_info_v6)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(rusage_info_v6)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_uuid) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_uuid) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_user_time) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_user_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_system_time) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_system_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_pkg_idle_wkups) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_pkg_idle_wkups) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_interrupt_wkups) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_interrupt_wkups) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_pageins) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_pageins) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_wired_size) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_wired_size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_resident_size) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_resident_size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_phys_footprint) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_phys_footprint) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_proc_start_abstime) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_proc_start_abstime) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_proc_exit_abstime) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_proc_exit_abstime) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_user_time) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_child_user_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_system_time) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_child_system_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_pkg_idle_wkups) as usize - ptr as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_child_pkg_idle_wkups) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_interrupt_wkups) as usize - ptr as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_child_interrupt_wkups) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_pageins) as usize - ptr as usize }, + 128usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_child_pageins) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_child_elapsed_abstime) as usize - ptr as usize }, + 136usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_child_elapsed_abstime) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_diskio_bytesread) as usize - ptr as usize }, + 144usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_diskio_bytesread) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_diskio_byteswritten) as usize - ptr as usize }, + 152usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_diskio_byteswritten) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_cpu_time_qos_default) as usize - ptr as usize }, + 160usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_cpu_time_qos_default) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_cpu_time_qos_maintenance) as usize - ptr as usize }, + 168usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_cpu_time_qos_maintenance) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_cpu_time_qos_background) as usize - ptr as usize }, + 176usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_cpu_time_qos_background) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_cpu_time_qos_utility) as usize - ptr as usize }, + 184usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_cpu_time_qos_utility) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_cpu_time_qos_legacy) as usize - ptr as usize }, + 192usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_cpu_time_qos_legacy) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).ri_cpu_time_qos_user_initiated) as usize - ptr as usize + }, + 200usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_cpu_time_qos_user_initiated) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).ri_cpu_time_qos_user_interactive) as usize - ptr as usize + }, + 208usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_cpu_time_qos_user_interactive) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_billed_system_time) as usize - ptr as usize }, + 216usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_billed_system_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_serviced_system_time) as usize - ptr as usize }, + 224usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_serviced_system_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_logical_writes) as usize - ptr as usize }, + 232usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_logical_writes) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).ri_lifetime_max_phys_footprint) as usize - ptr as usize + }, + 240usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_lifetime_max_phys_footprint) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_instructions) as usize - ptr as usize }, + 248usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_instructions) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_cycles) as usize - ptr as usize }, + 256usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_cycles) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_billed_energy) as usize - ptr as usize }, + 264usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_billed_energy) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_serviced_energy) as usize - ptr as usize }, + 272usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_serviced_energy) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).ri_interval_max_phys_footprint) as usize - ptr as usize + }, + 280usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_interval_max_phys_footprint) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_runnable_time) as usize - ptr as usize }, + 288usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_runnable_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_flags) as usize - ptr as usize }, + 296usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_user_ptime) as usize - ptr as usize }, + 304usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_user_ptime) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_system_ptime) as usize - ptr as usize }, + 312usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_system_ptime) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_pinstructions) as usize - ptr as usize }, + 320usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_pinstructions) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_pcycles) as usize - ptr as usize }, + 328usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_pcycles) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_energy_nj) as usize - ptr as usize }, + 336usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_energy_nj) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_penergy_nj) as usize - ptr as usize }, + 344usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_penergy_nj) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_secure_time_in_system) as usize - ptr as usize }, + 352usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_secure_time_in_system) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_secure_ptime_in_system) as usize - ptr as usize }, + 360usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_secure_ptime_in_system) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ri_reserved) as usize - ptr as usize }, + 368usize, + concat!( + "Offset of field: ", + stringify!(rusage_info_v6), + "::", + stringify!(ri_reserved) + ) + ); +} +pub type rusage_info_current = rusage_info_v6; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rlimit { + pub rlim_cur: rlim_t, + pub rlim_max: rlim_t, +} +#[test] +fn bindgen_test_layout_rlimit() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(rlimit)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(rlimit)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).rlim_cur) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(rlimit), + "::", + stringify!(rlim_cur) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).rlim_max) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(rlimit), + "::", + stringify!(rlim_max) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct proc_rlimit_control_wakeupmon { + pub wm_flags: u32, + pub wm_rate: i32, +} +#[test] +fn bindgen_test_layout_proc_rlimit_control_wakeupmon() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(proc_rlimit_control_wakeupmon)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(proc_rlimit_control_wakeupmon)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).wm_flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(proc_rlimit_control_wakeupmon), + "::", + stringify!(wm_flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).wm_rate) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(proc_rlimit_control_wakeupmon), + "::", + stringify!(wm_rate) + ) + ); +} +extern "C" { + pub fn getpriority(arg1: ::std::os::raw::c_int, arg2: id_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn getiopolicy_np( + arg1: ::std::os::raw::c_int, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn getrlimit(arg1: ::std::os::raw::c_int, arg2: *mut rlimit) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn getrusage(arg1: ::std::os::raw::c_int, arg2: *mut rusage) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn setpriority( + arg1: ::std::os::raw::c_int, + arg2: id_t, + arg3: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn setiopolicy_np( + arg1: ::std::os::raw::c_int, + arg2: ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn setrlimit(arg1: ::std::os::raw::c_int, arg2: *const rlimit) -> ::std::os::raw::c_int; +} +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct _OSUnalignedU16 { + pub __val: u16, +} +#[test] +fn bindgen_test_layout__OSUnalignedU16() { + const UNINIT: ::std::mem::MaybeUninit<_OSUnalignedU16> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_OSUnalignedU16>(), + 2usize, + concat!("Size of: ", stringify!(_OSUnalignedU16)) + ); + assert_eq!( + ::std::mem::align_of::<_OSUnalignedU16>(), + 1usize, + concat!("Alignment of ", stringify!(_OSUnalignedU16)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__val) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_OSUnalignedU16), + "::", + stringify!(__val) + ) + ); +} +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct _OSUnalignedU32 { + pub __val: u32, +} +#[test] +fn bindgen_test_layout__OSUnalignedU32() { + const UNINIT: ::std::mem::MaybeUninit<_OSUnalignedU32> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_OSUnalignedU32>(), + 4usize, + concat!("Size of: ", stringify!(_OSUnalignedU32)) + ); + assert_eq!( + ::std::mem::align_of::<_OSUnalignedU32>(), + 1usize, + concat!("Alignment of ", stringify!(_OSUnalignedU32)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__val) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_OSUnalignedU32), + "::", + stringify!(__val) + ) + ); +} +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct _OSUnalignedU64 { + pub __val: u64, +} +#[test] +fn bindgen_test_layout__OSUnalignedU64() { + const UNINIT: ::std::mem::MaybeUninit<_OSUnalignedU64> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_OSUnalignedU64>(), + 8usize, + concat!("Size of: ", stringify!(_OSUnalignedU64)) + ); + assert_eq!( + ::std::mem::align_of::<_OSUnalignedU64>(), + 1usize, + concat!("Alignment of ", stringify!(_OSUnalignedU64)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__val) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_OSUnalignedU64), + "::", + stringify!(__val) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union wait { + pub w_status: ::std::os::raw::c_int, + pub w_T: wait__bindgen_ty_1, + pub w_S: wait__bindgen_ty_2, +} +#[repr(C)] +#[repr(align(4))] +#[derive(Debug, Copy, Clone)] +pub struct wait__bindgen_ty_1 { + pub _bitfield_align_1: [u16; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +#[test] +fn bindgen_test_layout_wait__bindgen_ty_1() { + assert_eq!( + ::std::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(wait__bindgen_ty_1)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(wait__bindgen_ty_1)) + ); +} +impl wait__bindgen_ty_1 { + #[inline] + pub fn w_Termsig(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 7u8) as u32) } + } + #[inline] + pub fn set_w_Termsig(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 7u8, val as u64) + } + } + #[inline] + pub fn w_Coredump(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } + } + #[inline] + pub fn set_w_Coredump(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub fn w_Retcode(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 8u8) as u32) } + } + #[inline] + pub fn set_w_Retcode(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(8usize, 8u8, val as u64) + } + } + #[inline] + pub fn w_Filler(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 16u8) as u32) } + } + #[inline] + pub fn set_w_Filler(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(16usize, 16u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + w_Termsig: ::std::os::raw::c_uint, + w_Coredump: ::std::os::raw::c_uint, + w_Retcode: ::std::os::raw::c_uint, + w_Filler: ::std::os::raw::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 7u8, { + let w_Termsig: u32 = unsafe { ::std::mem::transmute(w_Termsig) }; + w_Termsig as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let w_Coredump: u32 = unsafe { ::std::mem::transmute(w_Coredump) }; + w_Coredump as u64 + }); + __bindgen_bitfield_unit.set(8usize, 8u8, { + let w_Retcode: u32 = unsafe { ::std::mem::transmute(w_Retcode) }; + w_Retcode as u64 + }); + __bindgen_bitfield_unit.set(16usize, 16u8, { + let w_Filler: u32 = unsafe { ::std::mem::transmute(w_Filler) }; + w_Filler as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[repr(align(4))] +#[derive(Debug, Copy, Clone)] +pub struct wait__bindgen_ty_2 { + pub _bitfield_align_1: [u16; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +#[test] +fn bindgen_test_layout_wait__bindgen_ty_2() { + assert_eq!( + ::std::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(wait__bindgen_ty_2)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(wait__bindgen_ty_2)) + ); +} +impl wait__bindgen_ty_2 { + #[inline] + pub fn w_Stopval(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) } + } + #[inline] + pub fn set_w_Stopval(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 8u8, val as u64) + } + } + #[inline] + pub fn w_Stopsig(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 8u8) as u32) } + } + #[inline] + pub fn set_w_Stopsig(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(8usize, 8u8, val as u64) + } + } + #[inline] + pub fn w_Filler(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 16u8) as u32) } + } + #[inline] + pub fn set_w_Filler(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(16usize, 16u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + w_Stopval: ::std::os::raw::c_uint, + w_Stopsig: ::std::os::raw::c_uint, + w_Filler: ::std::os::raw::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 8u8, { + let w_Stopval: u32 = unsafe { ::std::mem::transmute(w_Stopval) }; + w_Stopval as u64 + }); + __bindgen_bitfield_unit.set(8usize, 8u8, { + let w_Stopsig: u32 = unsafe { ::std::mem::transmute(w_Stopsig) }; + w_Stopsig as u64 + }); + __bindgen_bitfield_unit.set(16usize, 16u8, { + let w_Filler: u32 = unsafe { ::std::mem::transmute(w_Filler) }; + w_Filler as u64 + }); + __bindgen_bitfield_unit + } +} +#[test] +fn bindgen_test_layout_wait() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(wait)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(wait)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).w_status) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wait), + "::", + stringify!(w_status) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).w_T) as usize - ptr as usize }, + 0usize, + concat!("Offset of field: ", stringify!(wait), "::", stringify!(w_T)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).w_S) as usize - ptr as usize }, + 0usize, + concat!("Offset of field: ", stringify!(wait), "::", stringify!(w_S)) + ); +} +extern "C" { + pub fn wait(arg1: *mut ::std::os::raw::c_int) -> pid_t; +} +extern "C" { + pub fn waitpid( + arg1: pid_t, + arg2: *mut ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + ) -> pid_t; +} +extern "C" { + pub fn waitid( + arg1: idtype_t, + arg2: id_t, + arg3: *mut siginfo_t, + arg4: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wait3( + arg1: *mut ::std::os::raw::c_int, + arg2: ::std::os::raw::c_int, + arg3: *mut rusage, + ) -> pid_t; +} +extern "C" { + pub fn wait4( + arg1: pid_t, + arg2: *mut ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + arg4: *mut rusage, + ) -> pid_t; +} +extern "C" { + pub fn __builtin_alloca(arg1: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void; +} +pub type ct_rune_t = __darwin_ct_rune_t; +pub type rune_t = __darwin_rune_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct div_t { + pub quot: ::std::os::raw::c_int, + pub rem: ::std::os::raw::c_int, +} +#[test] +fn bindgen_test_layout_div_t() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(div_t)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(div_t)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(div_t), + "::", + stringify!(quot) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(div_t), + "::", + stringify!(rem) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ldiv_t { + pub quot: ::std::os::raw::c_long, + pub rem: ::std::os::raw::c_long, +} +#[test] +fn bindgen_test_layout_ldiv_t() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ldiv_t)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ldiv_t)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ldiv_t), + "::", + stringify!(quot) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ldiv_t), + "::", + stringify!(rem) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct lldiv_t { + pub quot: ::std::os::raw::c_longlong, + pub rem: ::std::os::raw::c_longlong, +} +#[test] +fn bindgen_test_layout_lldiv_t() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(lldiv_t)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(lldiv_t)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(lldiv_t), + "::", + stringify!(quot) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(lldiv_t), + "::", + stringify!(rem) + ) + ); +} +extern "C" { + pub static mut __mb_cur_max: ::std::os::raw::c_int; +} +pub type malloc_type_id_t = ::std::os::raw::c_ulonglong; +extern "C" { + pub fn malloc_type_malloc( + size: usize, + type_id: malloc_type_id_t, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn malloc_type_calloc( + count: usize, + size: usize, + type_id: malloc_type_id_t, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn malloc_type_free(ptr: *mut ::std::os::raw::c_void, type_id: malloc_type_id_t); +} +extern "C" { + pub fn malloc_type_realloc( + ptr: *mut ::std::os::raw::c_void, + size: usize, + type_id: malloc_type_id_t, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn malloc_type_valloc( + size: usize, + type_id: malloc_type_id_t, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn malloc_type_aligned_alloc( + alignment: usize, + size: usize, + type_id: malloc_type_id_t, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn malloc_type_posix_memalign( + memptr: *mut *mut ::std::os::raw::c_void, + alignment: usize, + size: usize, + type_id: malloc_type_id_t, + ) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _malloc_zone_t { + _unused: [u8; 0], +} +pub type malloc_zone_t = _malloc_zone_t; +extern "C" { + pub fn malloc_type_zone_malloc( + zone: *mut malloc_zone_t, + size: usize, + type_id: malloc_type_id_t, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn malloc_type_zone_calloc( + zone: *mut malloc_zone_t, + count: usize, + size: usize, + type_id: malloc_type_id_t, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn malloc_type_zone_free( + zone: *mut malloc_zone_t, + ptr: *mut ::std::os::raw::c_void, + type_id: malloc_type_id_t, + ); +} +extern "C" { + pub fn malloc_type_zone_realloc( + zone: *mut malloc_zone_t, + ptr: *mut ::std::os::raw::c_void, + size: usize, + type_id: malloc_type_id_t, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn malloc_type_zone_valloc( + zone: *mut malloc_zone_t, + size: usize, + type_id: malloc_type_id_t, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn malloc_type_zone_memalign( + zone: *mut malloc_zone_t, + alignment: usize, + size: usize, + type_id: malloc_type_id_t, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn malloc(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn calloc( + __count: ::std::os::raw::c_ulong, + __size: ::std::os::raw::c_ulong, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn free(arg1: *mut ::std::os::raw::c_void); +} +extern "C" { + pub fn realloc( + __ptr: *mut ::std::os::raw::c_void, + __size: ::std::os::raw::c_ulong, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn reallocf( + __ptr: *mut ::std::os::raw::c_void, + __size: usize, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn valloc(arg1: usize) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn aligned_alloc( + __alignment: ::std::os::raw::c_ulong, + __size: ::std::os::raw::c_ulong, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn posix_memalign( + __memptr: *mut *mut ::std::os::raw::c_void, + __alignment: usize, + __size: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn abort() -> !; +} +extern "C" { + pub fn abs(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn atexit(arg1: ::std::option::Option) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn atof(arg1: *const ::std::os::raw::c_char) -> f64; +} +extern "C" { + pub fn atoi(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn atol(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn atoll(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_longlong; +} +extern "C" { + pub fn bsearch( + __key: *const ::std::os::raw::c_void, + __base: *const ::std::os::raw::c_void, + __nel: usize, + __width: usize, + __compar: ::std::option::Option< + unsafe extern "C" fn( + arg1: *const ::std::os::raw::c_void, + arg2: *const ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int, + >, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn div(arg1: ::std::os::raw::c_int, arg2: ::std::os::raw::c_int) -> div_t; +} +extern "C" { + pub fn exit(arg1: ::std::os::raw::c_int) -> !; +} +extern "C" { + pub fn getenv(arg1: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn labs(arg1: ::std::os::raw::c_long) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn ldiv(arg1: ::std::os::raw::c_long, arg2: ::std::os::raw::c_long) -> ldiv_t; +} +extern "C" { + pub fn llabs(arg1: ::std::os::raw::c_longlong) -> ::std::os::raw::c_longlong; +} +extern "C" { + pub fn lldiv(arg1: ::std::os::raw::c_longlong, arg2: ::std::os::raw::c_longlong) -> lldiv_t; +} +extern "C" { + pub fn mblen(__s: *const ::std::os::raw::c_char, __n: usize) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn mbstowcs(arg1: *mut wchar_t, arg2: *const ::std::os::raw::c_char, arg3: usize) -> usize; +} +extern "C" { + pub fn mbtowc( + arg1: *mut wchar_t, + arg2: *const ::std::os::raw::c_char, + arg3: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn qsort( + __base: *mut ::std::os::raw::c_void, + __nel: usize, + __width: usize, + __compar: ::std::option::Option< + unsafe extern "C" fn( + arg1: *const ::std::os::raw::c_void, + arg2: *const ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int, + >, + ); +} +extern "C" { + pub fn rand() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn srand(arg1: ::std::os::raw::c_uint); +} +extern "C" { + pub fn strtod( + arg1: *const ::std::os::raw::c_char, + arg2: *mut *mut ::std::os::raw::c_char, + ) -> f64; +} +extern "C" { + pub fn strtof( + arg1: *const ::std::os::raw::c_char, + arg2: *mut *mut ::std::os::raw::c_char, + ) -> f32; +} +extern "C" { + pub fn strtol( + __str: *const ::std::os::raw::c_char, + __endptr: *mut *mut ::std::os::raw::c_char, + __base: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn strtold( + arg1: *const ::std::os::raw::c_char, + arg2: *mut *mut ::std::os::raw::c_char, + ) -> f64; +} +extern "C" { + pub fn strtoll( + __str: *const ::std::os::raw::c_char, + __endptr: *mut *mut ::std::os::raw::c_char, + __base: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_longlong; +} +extern "C" { + pub fn strtoul( + __str: *const ::std::os::raw::c_char, + __endptr: *mut *mut ::std::os::raw::c_char, + __base: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_ulong; +} +extern "C" { + pub fn strtoull( + __str: *const ::std::os::raw::c_char, + __endptr: *mut *mut ::std::os::raw::c_char, + __base: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_ulonglong; +} +extern "C" { + pub fn system(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wcstombs(arg1: *mut ::std::os::raw::c_char, arg2: *const wchar_t, arg3: usize) -> usize; +} +extern "C" { + pub fn wctomb(arg1: *mut ::std::os::raw::c_char, arg2: wchar_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn _Exit(arg1: ::std::os::raw::c_int) -> !; +} +extern "C" { + pub fn a64l(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn drand48() -> f64; +} +extern "C" { + pub fn ecvt( + arg1: f64, + arg2: ::std::os::raw::c_int, + arg3: *mut ::std::os::raw::c_int, + arg4: *mut ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn erand48(arg1: *mut ::std::os::raw::c_ushort) -> f64; +} +extern "C" { + pub fn fcvt( + arg1: f64, + arg2: ::std::os::raw::c_int, + arg3: *mut ::std::os::raw::c_int, + arg4: *mut ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn gcvt( + arg1: f64, + arg2: ::std::os::raw::c_int, + arg3: *mut ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn getsubopt( + arg1: *mut *mut ::std::os::raw::c_char, + arg2: *const *mut ::std::os::raw::c_char, + arg3: *mut *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn grantpt(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn initstate( + arg1: ::std::os::raw::c_uint, + arg2: *mut ::std::os::raw::c_char, + arg3: usize, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn jrand48(arg1: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn l64a(arg1: ::std::os::raw::c_long) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn lcong48(arg1: *mut ::std::os::raw::c_ushort); +} +extern "C" { + pub fn lrand48() -> ::std::os::raw::c_long; +} +extern "C" { + pub fn mktemp(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn mkstemp(arg1: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn mrand48() -> ::std::os::raw::c_long; +} +extern "C" { + pub fn nrand48(arg1: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn posix_openpt(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ptsname(arg1: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn ptsname_r( + fildes: ::std::os::raw::c_int, + buffer: *mut ::std::os::raw::c_char, + buflen: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn putenv(arg1: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn random() -> ::std::os::raw::c_long; +} +extern "C" { + pub fn rand_r(arg1: *mut ::std::os::raw::c_uint) -> ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}_realpath$DARWIN_EXTSN"] + pub fn realpath( + arg1: *const ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn seed48(arg1: *mut ::std::os::raw::c_ushort) -> *mut ::std::os::raw::c_ushort; +} +extern "C" { + pub fn setenv( + __name: *const ::std::os::raw::c_char, + __value: *const ::std::os::raw::c_char, + __overwrite: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn setkey(arg1: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn setstate(arg1: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn srand48(arg1: ::std::os::raw::c_long); +} +extern "C" { + pub fn srandom(arg1: ::std::os::raw::c_uint); +} +extern "C" { + pub fn unlockpt(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn unsetenv(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +pub type dev_t = __darwin_dev_t; +pub type mode_t = __darwin_mode_t; +extern "C" { + pub fn arc4random() -> u32; +} +extern "C" { + pub fn arc4random_addrandom(arg1: *mut ::std::os::raw::c_uchar, arg2: ::std::os::raw::c_int); +} +extern "C" { + pub fn arc4random_buf(__buf: *mut ::std::os::raw::c_void, __nbytes: usize); +} +extern "C" { + pub fn arc4random_stir(); +} +extern "C" { + pub fn arc4random_uniform(__upper_bound: u32) -> u32; +} +extern "C" { + pub fn atexit_b(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn bsearch_b( + __key: *const ::std::os::raw::c_void, + __base: *const ::std::os::raw::c_void, + __nel: usize, + __width: usize, + __compar: *mut ::std::os::raw::c_void, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn cgetcap( + arg1: *mut ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn cgetclose() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn cgetent( + arg1: *mut *mut ::std::os::raw::c_char, + arg2: *mut *mut ::std::os::raw::c_char, + arg3: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn cgetfirst( + arg1: *mut *mut ::std::os::raw::c_char, + arg2: *mut *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn cgetmatch( + arg1: *const ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn cgetnext( + arg1: *mut *mut ::std::os::raw::c_char, + arg2: *mut *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn cgetnum( + arg1: *mut ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + arg3: *mut ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn cgetset(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn cgetstr( + arg1: *mut ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + arg3: *mut *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn cgetustr( + arg1: *mut ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + arg3: *mut *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn daemon( + arg1: ::std::os::raw::c_int, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn devname(arg1: dev_t, arg2: mode_t) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn devname_r( + arg1: dev_t, + arg2: mode_t, + buf: *mut ::std::os::raw::c_char, + len: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn getbsize( + arg1: *mut ::std::os::raw::c_int, + arg2: *mut ::std::os::raw::c_long, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn getloadavg(arg1: *mut f64, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn getprogname() -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn setprogname(arg1: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn heapsort( + __base: *mut ::std::os::raw::c_void, + __nel: usize, + __width: usize, + __compar: ::std::option::Option< + unsafe extern "C" fn( + arg1: *const ::std::os::raw::c_void, + arg2: *const ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int, + >, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn heapsort_b( + __base: *mut ::std::os::raw::c_void, + __nel: usize, + __width: usize, + __compar: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn mergesort( + __base: *mut ::std::os::raw::c_void, + __nel: usize, + __width: usize, + __compar: ::std::option::Option< + unsafe extern "C" fn( + arg1: *const ::std::os::raw::c_void, + arg2: *const ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int, + >, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn mergesort_b( + __base: *mut ::std::os::raw::c_void, + __nel: usize, + __width: usize, + __compar: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn psort( + __base: *mut ::std::os::raw::c_void, + __nel: usize, + __width: usize, + __compar: ::std::option::Option< + unsafe extern "C" fn( + arg1: *const ::std::os::raw::c_void, + arg2: *const ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int, + >, + ); +} +extern "C" { + pub fn psort_b( + __base: *mut ::std::os::raw::c_void, + __nel: usize, + __width: usize, + __compar: *mut ::std::os::raw::c_void, + ); +} +extern "C" { + pub fn psort_r( + __base: *mut ::std::os::raw::c_void, + __nel: usize, + __width: usize, + arg1: *mut ::std::os::raw::c_void, + __compar: ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut ::std::os::raw::c_void, + arg2: *const ::std::os::raw::c_void, + arg3: *const ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int, + >, + ); +} +extern "C" { + pub fn qsort_b( + __base: *mut ::std::os::raw::c_void, + __nel: usize, + __width: usize, + __compar: *mut ::std::os::raw::c_void, + ); +} +extern "C" { + pub fn qsort_r( + __base: *mut ::std::os::raw::c_void, + __nel: usize, + __width: usize, + arg1: *mut ::std::os::raw::c_void, + __compar: ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut ::std::os::raw::c_void, + arg2: *const ::std::os::raw::c_void, + arg3: *const ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int, + >, + ); +} +extern "C" { + pub fn radixsort( + __base: *mut *const ::std::os::raw::c_uchar, + __nel: ::std::os::raw::c_int, + __table: *const ::std::os::raw::c_uchar, + __endbyte: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn rpmatch(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sradixsort( + __base: *mut *const ::std::os::raw::c_uchar, + __nel: ::std::os::raw::c_int, + __table: *const ::std::os::raw::c_uchar, + __endbyte: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sranddev(); +} +extern "C" { + pub fn srandomdev(); +} +extern "C" { + pub fn strtonum( + __numstr: *const ::std::os::raw::c_char, + __minval: ::std::os::raw::c_longlong, + __maxval: ::std::os::raw::c_longlong, + __errstrp: *mut *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_longlong; +} +extern "C" { + pub fn strtoq( + __str: *const ::std::os::raw::c_char, + __endptr: *mut *mut ::std::os::raw::c_char, + __base: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_longlong; +} +extern "C" { + pub fn strtouq( + __str: *const ::std::os::raw::c_char, + __endptr: *mut *mut ::std::os::raw::c_char, + __base: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_ulonglong; +} +extern "C" { + pub static mut suboptarg: *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn g_thread_error_quark() -> GQuark; +} +pub const GThreadError_G_THREAD_ERROR_AGAIN: GThreadError = 0; +pub type GThreadError = ::std::os::raw::c_uint; +pub type GThreadFunc = ::std::option::Option gpointer>; +pub type GThread = _GThread; +pub type GMutex = _GMutex; +pub type GRecMutex = _GRecMutex; +pub type GRWLock = _GRWLock; +pub type GCond = _GCond; +pub type GPrivate = _GPrivate; +pub type GOnce = _GOnce; +#[repr(C)] +#[derive(Copy, Clone)] +pub union _GMutex { + pub p: gpointer, + pub i: [guint; 2usize], +} +#[test] +fn bindgen_test_layout__GMutex() { + const UNINIT: ::std::mem::MaybeUninit<_GMutex> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GMutex>(), + 8usize, + concat!("Size of: ", stringify!(_GMutex)) + ); + assert_eq!( + ::std::mem::align_of::<_GMutex>(), + 8usize, + concat!("Alignment of ", stringify!(_GMutex)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).p) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GMutex), + "::", + stringify!(p) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).i) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GMutex), + "::", + stringify!(i) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GRWLock { + pub p: gpointer, + pub i: [guint; 2usize], +} +#[test] +fn bindgen_test_layout__GRWLock() { + const UNINIT: ::std::mem::MaybeUninit<_GRWLock> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GRWLock>(), + 16usize, + concat!("Size of: ", stringify!(_GRWLock)) + ); + assert_eq!( + ::std::mem::align_of::<_GRWLock>(), + 8usize, + concat!("Alignment of ", stringify!(_GRWLock)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).p) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GRWLock), + "::", + stringify!(p) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).i) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GRWLock), + "::", + stringify!(i) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GCond { + pub p: gpointer, + pub i: [guint; 2usize], +} +#[test] +fn bindgen_test_layout__GCond() { + const UNINIT: ::std::mem::MaybeUninit<_GCond> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GCond>(), + 16usize, + concat!("Size of: ", stringify!(_GCond)) + ); + assert_eq!( + ::std::mem::align_of::<_GCond>(), + 8usize, + concat!("Alignment of ", stringify!(_GCond)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).p) as usize - ptr as usize }, + 0usize, + concat!("Offset of field: ", stringify!(_GCond), "::", stringify!(p)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).i) as usize - ptr as usize }, + 8usize, + concat!("Offset of field: ", stringify!(_GCond), "::", stringify!(i)) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GRecMutex { + pub p: gpointer, + pub i: [guint; 2usize], +} +#[test] +fn bindgen_test_layout__GRecMutex() { + const UNINIT: ::std::mem::MaybeUninit<_GRecMutex> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GRecMutex>(), + 16usize, + concat!("Size of: ", stringify!(_GRecMutex)) + ); + assert_eq!( + ::std::mem::align_of::<_GRecMutex>(), + 8usize, + concat!("Alignment of ", stringify!(_GRecMutex)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).p) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GRecMutex), + "::", + stringify!(p) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).i) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GRecMutex), + "::", + stringify!(i) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GPrivate { + pub p: gpointer, + pub notify: GDestroyNotify, + pub future: [gpointer; 2usize], +} +#[test] +fn bindgen_test_layout__GPrivate() { + const UNINIT: ::std::mem::MaybeUninit<_GPrivate> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GPrivate>(), + 32usize, + concat!("Size of: ", stringify!(_GPrivate)) + ); + assert_eq!( + ::std::mem::align_of::<_GPrivate>(), + 8usize, + concat!("Alignment of ", stringify!(_GPrivate)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).p) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GPrivate), + "::", + stringify!(p) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).notify) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GPrivate), + "::", + stringify!(notify) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).future) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_GPrivate), + "::", + stringify!(future) + ) + ); +} +pub const GOnceStatus_G_ONCE_STATUS_NOTCALLED: GOnceStatus = 0; +pub const GOnceStatus_G_ONCE_STATUS_PROGRESS: GOnceStatus = 1; +pub const GOnceStatus_G_ONCE_STATUS_READY: GOnceStatus = 2; +pub type GOnceStatus = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GOnce { + pub status: GOnceStatus, + pub retval: gpointer, +} +#[test] +fn bindgen_test_layout__GOnce() { + const UNINIT: ::std::mem::MaybeUninit<_GOnce> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GOnce>(), + 16usize, + concat!("Size of: ", stringify!(_GOnce)) + ); + assert_eq!( + ::std::mem::align_of::<_GOnce>(), + 8usize, + concat!("Alignment of ", stringify!(_GOnce)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).status) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GOnce), + "::", + stringify!(status) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).retval) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GOnce), + "::", + stringify!(retval) + ) + ); +} +extern "C" { + pub fn g_thread_ref(thread: *mut GThread) -> *mut GThread; +} +extern "C" { + pub fn g_thread_unref(thread: *mut GThread); +} +extern "C" { + pub fn g_thread_new(name: *const gchar, func: GThreadFunc, data: gpointer) -> *mut GThread; +} +extern "C" { + pub fn g_thread_try_new( + name: *const gchar, + func: GThreadFunc, + data: gpointer, + error: *mut *mut GError, + ) -> *mut GThread; +} +extern "C" { + pub fn g_thread_self() -> *mut GThread; +} +extern "C" { + pub fn g_thread_exit(retval: gpointer) -> !; +} +extern "C" { + pub fn g_thread_join(thread: *mut GThread) -> gpointer; +} +extern "C" { + pub fn g_thread_yield(); +} +extern "C" { + pub fn g_mutex_init(mutex: *mut GMutex); +} +extern "C" { + pub fn g_mutex_clear(mutex: *mut GMutex); +} +extern "C" { + pub fn g_mutex_lock(mutex: *mut GMutex); +} +extern "C" { + pub fn g_mutex_trylock(mutex: *mut GMutex) -> gboolean; +} +extern "C" { + pub fn g_mutex_unlock(mutex: *mut GMutex); +} +extern "C" { + pub fn g_rw_lock_init(rw_lock: *mut GRWLock); +} +extern "C" { + pub fn g_rw_lock_clear(rw_lock: *mut GRWLock); +} +extern "C" { + pub fn g_rw_lock_writer_lock(rw_lock: *mut GRWLock); +} +extern "C" { + pub fn g_rw_lock_writer_trylock(rw_lock: *mut GRWLock) -> gboolean; +} +extern "C" { + pub fn g_rw_lock_writer_unlock(rw_lock: *mut GRWLock); +} +extern "C" { + pub fn g_rw_lock_reader_lock(rw_lock: *mut GRWLock); +} +extern "C" { + pub fn g_rw_lock_reader_trylock(rw_lock: *mut GRWLock) -> gboolean; +} +extern "C" { + pub fn g_rw_lock_reader_unlock(rw_lock: *mut GRWLock); +} +extern "C" { + pub fn g_rec_mutex_init(rec_mutex: *mut GRecMutex); +} +extern "C" { + pub fn g_rec_mutex_clear(rec_mutex: *mut GRecMutex); +} +extern "C" { + pub fn g_rec_mutex_lock(rec_mutex: *mut GRecMutex); +} +extern "C" { + pub fn g_rec_mutex_trylock(rec_mutex: *mut GRecMutex) -> gboolean; +} +extern "C" { + pub fn g_rec_mutex_unlock(rec_mutex: *mut GRecMutex); +} +extern "C" { + pub fn g_cond_init(cond: *mut GCond); +} +extern "C" { + pub fn g_cond_clear(cond: *mut GCond); +} +extern "C" { + pub fn g_cond_wait(cond: *mut GCond, mutex: *mut GMutex); +} +extern "C" { + pub fn g_cond_signal(cond: *mut GCond); +} +extern "C" { + pub fn g_cond_broadcast(cond: *mut GCond); +} +extern "C" { + pub fn g_cond_wait_until(cond: *mut GCond, mutex: *mut GMutex, end_time: gint64) -> gboolean; +} +extern "C" { + pub fn g_private_get(key: *mut GPrivate) -> gpointer; +} +extern "C" { + pub fn g_private_set(key: *mut GPrivate, value: gpointer); +} +extern "C" { + pub fn g_private_replace(key: *mut GPrivate, value: gpointer); +} +extern "C" { + pub fn g_once_impl(once: *mut GOnce, func: GThreadFunc, arg: gpointer) -> gpointer; +} +extern "C" { + pub fn g_once_init_enter(location: *mut ::std::os::raw::c_void) -> gboolean; +} +extern "C" { + pub fn g_once_init_leave(location: *mut ::std::os::raw::c_void, result: gsize); +} +extern "C" { + pub fn g_once_init_enter_pointer(location: *mut ::std::os::raw::c_void) -> gboolean; +} +extern "C" { + pub fn g_once_init_leave_pointer(location: *mut ::std::os::raw::c_void, result: gpointer); +} +extern "C" { + pub fn g_get_num_processors() -> guint; +} +pub type GMutexLocker = ::std::os::raw::c_void; +pub type GRecMutexLocker = ::std::os::raw::c_void; +pub type GRWLockWriterLocker = ::std::os::raw::c_void; +pub type GRWLockReaderLocker = ::std::os::raw::c_void; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GAsyncQueue { + _unused: [u8; 0], +} +pub type GAsyncQueue = _GAsyncQueue; +extern "C" { + pub fn g_async_queue_new() -> *mut GAsyncQueue; +} +extern "C" { + pub fn g_async_queue_new_full(item_free_func: GDestroyNotify) -> *mut GAsyncQueue; +} +extern "C" { + pub fn g_async_queue_lock(queue: *mut GAsyncQueue); +} +extern "C" { + pub fn g_async_queue_unlock(queue: *mut GAsyncQueue); +} +extern "C" { + pub fn g_async_queue_ref(queue: *mut GAsyncQueue) -> *mut GAsyncQueue; +} +extern "C" { + pub fn g_async_queue_unref(queue: *mut GAsyncQueue); +} +extern "C" { + pub fn g_async_queue_ref_unlocked(queue: *mut GAsyncQueue); +} +extern "C" { + pub fn g_async_queue_unref_and_unlock(queue: *mut GAsyncQueue); +} +extern "C" { + pub fn g_async_queue_push(queue: *mut GAsyncQueue, data: gpointer); +} +extern "C" { + pub fn g_async_queue_push_unlocked(queue: *mut GAsyncQueue, data: gpointer); +} +extern "C" { + pub fn g_async_queue_push_sorted( + queue: *mut GAsyncQueue, + data: gpointer, + func: GCompareDataFunc, + user_data: gpointer, + ); +} +extern "C" { + pub fn g_async_queue_push_sorted_unlocked( + queue: *mut GAsyncQueue, + data: gpointer, + func: GCompareDataFunc, + user_data: gpointer, + ); +} +extern "C" { + pub fn g_async_queue_pop(queue: *mut GAsyncQueue) -> gpointer; +} +extern "C" { + pub fn g_async_queue_pop_unlocked(queue: *mut GAsyncQueue) -> gpointer; +} +extern "C" { + pub fn g_async_queue_try_pop(queue: *mut GAsyncQueue) -> gpointer; +} +extern "C" { + pub fn g_async_queue_try_pop_unlocked(queue: *mut GAsyncQueue) -> gpointer; +} +extern "C" { + pub fn g_async_queue_timeout_pop(queue: *mut GAsyncQueue, timeout: guint64) -> gpointer; +} +extern "C" { + pub fn g_async_queue_timeout_pop_unlocked( + queue: *mut GAsyncQueue, + timeout: guint64, + ) -> gpointer; +} +extern "C" { + pub fn g_async_queue_length(queue: *mut GAsyncQueue) -> gint; +} +extern "C" { + pub fn g_async_queue_length_unlocked(queue: *mut GAsyncQueue) -> gint; +} +extern "C" { + pub fn g_async_queue_sort(queue: *mut GAsyncQueue, func: GCompareDataFunc, user_data: gpointer); +} +extern "C" { + pub fn g_async_queue_sort_unlocked( + queue: *mut GAsyncQueue, + func: GCompareDataFunc, + user_data: gpointer, + ); +} +extern "C" { + pub fn g_async_queue_remove(queue: *mut GAsyncQueue, item: gpointer) -> gboolean; +} +extern "C" { + pub fn g_async_queue_remove_unlocked(queue: *mut GAsyncQueue, item: gpointer) -> gboolean; +} +extern "C" { + pub fn g_async_queue_push_front(queue: *mut GAsyncQueue, item: gpointer); +} +extern "C" { + pub fn g_async_queue_push_front_unlocked(queue: *mut GAsyncQueue, item: gpointer); +} +extern "C" { + pub fn g_async_queue_timed_pop(queue: *mut GAsyncQueue, end_time: *mut GTimeVal) -> gpointer; +} +extern "C" { + pub fn g_async_queue_timed_pop_unlocked( + queue: *mut GAsyncQueue, + end_time: *mut GTimeVal, + ) -> gpointer; +} +pub type pthread_t = __darwin_pthread_t; +extern "C" { + pub static sys_signame: [*const ::std::os::raw::c_char; 32usize]; +} +extern "C" { + pub static sys_siglist: [*const ::std::os::raw::c_char; 32usize]; +} +extern "C" { + pub fn raise(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn bsd_signal( + arg1: ::std::os::raw::c_int, + arg2: ::std::option::Option, + ) -> ::std::option::Option< + unsafe extern "C" fn( + arg1: ::std::os::raw::c_int, + arg2: ::std::option::Option, + ), + >; +} +extern "C" { + pub fn kill(arg1: pid_t, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn killpg(arg1: pid_t, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_kill(arg1: pthread_t, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_sigmask( + arg1: ::std::os::raw::c_int, + arg2: *const sigset_t, + arg3: *mut sigset_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigaction( + arg1: ::std::os::raw::c_int, + arg2: *const sigaction, + arg3: *mut sigaction, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigaddset(arg1: *mut sigset_t, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigaltstack(arg1: *const stack_t, arg2: *mut stack_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigdelset(arg1: *mut sigset_t, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigemptyset(arg1: *mut sigset_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigfillset(arg1: *mut sigset_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sighold(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigignore(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn siginterrupt( + arg1: ::std::os::raw::c_int, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigismember(arg1: *const sigset_t, arg2: ::std::os::raw::c_int) + -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigpause(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigpending(arg1: *mut sigset_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigprocmask( + arg1: ::std::os::raw::c_int, + arg2: *const sigset_t, + arg3: *mut sigset_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigrelse(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigset( + arg1: ::std::os::raw::c_int, + arg2: ::std::option::Option, + ) -> ::std::option::Option< + unsafe extern "C" fn( + arg1: ::std::os::raw::c_int, + arg2: ::std::option::Option, + ), + >; +} +extern "C" { + pub fn sigsuspend(arg1: *const sigset_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigwait( + arg1: *const sigset_t, + arg2: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn psignal(arg1: ::std::os::raw::c_int, arg2: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn sigblock(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigsetmask(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sigvec( + arg1: ::std::os::raw::c_int, + arg2: *mut sigvec, + arg3: *mut sigvec, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn g_on_error_query(prg_name: *const gchar); +} +extern "C" { + pub fn g_on_error_stack_trace(prg_name: *const gchar); +} +extern "C" { + pub fn g_base64_encode_step( + in_: *const guchar, + len: gsize, + break_lines: gboolean, + out: *mut gchar, + state: *mut gint, + save: *mut gint, + ) -> gsize; +} +extern "C" { + pub fn g_base64_encode_close( + break_lines: gboolean, + out: *mut gchar, + state: *mut gint, + save: *mut gint, + ) -> gsize; +} +extern "C" { + pub fn g_base64_encode(data: *const guchar, len: gsize) -> *mut gchar; +} +extern "C" { + pub fn g_base64_decode_step( + in_: *const gchar, + len: gsize, + out: *mut guchar, + state: *mut gint, + save: *mut guint, + ) -> gsize; +} +extern "C" { + pub fn g_base64_decode(text: *const gchar, out_len: *mut gsize) -> *mut guchar; +} +extern "C" { + pub fn g_base64_decode_inplace(text: *mut gchar, out_len: *mut gsize) -> *mut guchar; +} +extern "C" { + pub fn g_bit_lock(address: *mut gint, lock_bit: gint); +} +extern "C" { + pub fn g_bit_trylock(address: *mut gint, lock_bit: gint) -> gboolean; +} +extern "C" { + pub fn g_bit_unlock(address: *mut gint, lock_bit: gint); +} +extern "C" { + pub fn g_pointer_bit_lock(address: *mut ::std::os::raw::c_void, lock_bit: gint); +} +extern "C" { + pub fn g_pointer_bit_lock_and_get(address: gpointer, lock_bit: guint, out_ptr: *mut guintptr); +} +extern "C" { + pub fn g_pointer_bit_trylock(address: *mut ::std::os::raw::c_void, lock_bit: gint) -> gboolean; +} +extern "C" { + pub fn g_pointer_bit_unlock(address: *mut ::std::os::raw::c_void, lock_bit: gint); +} +extern "C" { + pub fn g_pointer_bit_lock_mask_ptr( + ptr: gpointer, + lock_bit: guint, + set: gboolean, + preserve_mask: guintptr, + preserve_ptr: gpointer, + ) -> gpointer; +} +extern "C" { + pub fn g_pointer_bit_unlock_and_set( + address: *mut ::std::os::raw::c_void, + lock_bit: guint, + ptr: gpointer, + preserve_mask: guintptr, + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GTimeZone { + _unused: [u8; 0], +} +pub type GTimeZone = _GTimeZone; +pub const GTimeType_G_TIME_TYPE_STANDARD: GTimeType = 0; +pub const GTimeType_G_TIME_TYPE_DAYLIGHT: GTimeType = 1; +pub const GTimeType_G_TIME_TYPE_UNIVERSAL: GTimeType = 2; +pub type GTimeType = ::std::os::raw::c_uint; +extern "C" { + pub fn g_time_zone_new(identifier: *const gchar) -> *mut GTimeZone; +} +extern "C" { + pub fn g_time_zone_new_identifier(identifier: *const gchar) -> *mut GTimeZone; +} +extern "C" { + pub fn g_time_zone_new_utc() -> *mut GTimeZone; +} +extern "C" { + pub fn g_time_zone_new_local() -> *mut GTimeZone; +} +extern "C" { + pub fn g_time_zone_new_offset(seconds: gint32) -> *mut GTimeZone; +} +extern "C" { + pub fn g_time_zone_ref(tz: *mut GTimeZone) -> *mut GTimeZone; +} +extern "C" { + pub fn g_time_zone_unref(tz: *mut GTimeZone); +} +extern "C" { + pub fn g_time_zone_find_interval(tz: *mut GTimeZone, type_: GTimeType, time_: gint64) -> gint; +} +extern "C" { + pub fn g_time_zone_adjust_time( + tz: *mut GTimeZone, + type_: GTimeType, + time_: *mut gint64, + ) -> gint; +} +extern "C" { + pub fn g_time_zone_get_abbreviation(tz: *mut GTimeZone, interval: gint) -> *const gchar; +} +extern "C" { + pub fn g_time_zone_get_offset(tz: *mut GTimeZone, interval: gint) -> gint32; +} +extern "C" { + pub fn g_time_zone_is_dst(tz: *mut GTimeZone, interval: gint) -> gboolean; +} +extern "C" { + pub fn g_time_zone_get_identifier(tz: *mut GTimeZone) -> *const gchar; +} +pub type GTimeSpan = gint64; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GDateTime { + _unused: [u8; 0], +} +pub type GDateTime = _GDateTime; +extern "C" { + pub fn g_date_time_unref(datetime: *mut GDateTime); +} +extern "C" { + pub fn g_date_time_ref(datetime: *mut GDateTime) -> *mut GDateTime; +} +extern "C" { + pub fn g_date_time_new_now(tz: *mut GTimeZone) -> *mut GDateTime; +} +extern "C" { + pub fn g_date_time_new_now_local() -> *mut GDateTime; +} +extern "C" { + pub fn g_date_time_new_now_utc() -> *mut GDateTime; +} +extern "C" { + pub fn g_date_time_new_from_unix_local(t: gint64) -> *mut GDateTime; +} +extern "C" { + pub fn g_date_time_new_from_unix_utc(t: gint64) -> *mut GDateTime; +} +extern "C" { + pub fn g_date_time_new_from_unix_local_usec(usecs: gint64) -> *mut GDateTime; +} +extern "C" { + pub fn g_date_time_new_from_unix_utc_usec(usecs: gint64) -> *mut GDateTime; +} +extern "C" { + pub fn g_date_time_new_from_timeval_local(tv: *const GTimeVal) -> *mut GDateTime; +} +extern "C" { + pub fn g_date_time_new_from_timeval_utc(tv: *const GTimeVal) -> *mut GDateTime; +} +extern "C" { + pub fn g_date_time_new_from_iso8601( + text: *const gchar, + default_tz: *mut GTimeZone, + ) -> *mut GDateTime; +} +extern "C" { + pub fn g_date_time_new( + tz: *mut GTimeZone, + year: gint, + month: gint, + day: gint, + hour: gint, + minute: gint, + seconds: gdouble, + ) -> *mut GDateTime; +} +extern "C" { + pub fn g_date_time_new_local( + year: gint, + month: gint, + day: gint, + hour: gint, + minute: gint, + seconds: gdouble, + ) -> *mut GDateTime; +} +extern "C" { + pub fn g_date_time_new_utc( + year: gint, + month: gint, + day: gint, + hour: gint, + minute: gint, + seconds: gdouble, + ) -> *mut GDateTime; +} +extern "C" { + pub fn g_date_time_add(datetime: *mut GDateTime, timespan: GTimeSpan) -> *mut GDateTime; +} +extern "C" { + pub fn g_date_time_add_years(datetime: *mut GDateTime, years: gint) -> *mut GDateTime; +} +extern "C" { + pub fn g_date_time_add_months(datetime: *mut GDateTime, months: gint) -> *mut GDateTime; +} +extern "C" { + pub fn g_date_time_add_weeks(datetime: *mut GDateTime, weeks: gint) -> *mut GDateTime; +} +extern "C" { + pub fn g_date_time_add_days(datetime: *mut GDateTime, days: gint) -> *mut GDateTime; +} +extern "C" { + pub fn g_date_time_add_hours(datetime: *mut GDateTime, hours: gint) -> *mut GDateTime; +} +extern "C" { + pub fn g_date_time_add_minutes(datetime: *mut GDateTime, minutes: gint) -> *mut GDateTime; +} +extern "C" { + pub fn g_date_time_add_seconds(datetime: *mut GDateTime, seconds: gdouble) -> *mut GDateTime; +} +extern "C" { + pub fn g_date_time_add_full( + datetime: *mut GDateTime, + years: gint, + months: gint, + days: gint, + hours: gint, + minutes: gint, + seconds: gdouble, + ) -> *mut GDateTime; +} +extern "C" { + pub fn g_date_time_compare(dt1: gconstpointer, dt2: gconstpointer) -> gint; +} +extern "C" { + pub fn g_date_time_difference(end: *mut GDateTime, begin: *mut GDateTime) -> GTimeSpan; +} +extern "C" { + pub fn g_date_time_hash(datetime: gconstpointer) -> guint; +} +extern "C" { + pub fn g_date_time_equal(dt1: gconstpointer, dt2: gconstpointer) -> gboolean; +} +extern "C" { + pub fn g_date_time_get_ymd( + datetime: *mut GDateTime, + year: *mut gint, + month: *mut gint, + day: *mut gint, + ); +} +extern "C" { + pub fn g_date_time_get_year(datetime: *mut GDateTime) -> gint; +} +extern "C" { + pub fn g_date_time_get_month(datetime: *mut GDateTime) -> gint; +} +extern "C" { + pub fn g_date_time_get_day_of_month(datetime: *mut GDateTime) -> gint; +} +extern "C" { + pub fn g_date_time_get_week_numbering_year(datetime: *mut GDateTime) -> gint; +} +extern "C" { + pub fn g_date_time_get_week_of_year(datetime: *mut GDateTime) -> gint; +} +extern "C" { + pub fn g_date_time_get_day_of_week(datetime: *mut GDateTime) -> gint; +} +extern "C" { + pub fn g_date_time_get_day_of_year(datetime: *mut GDateTime) -> gint; +} +extern "C" { + pub fn g_date_time_get_hour(datetime: *mut GDateTime) -> gint; +} +extern "C" { + pub fn g_date_time_get_minute(datetime: *mut GDateTime) -> gint; +} +extern "C" { + pub fn g_date_time_get_second(datetime: *mut GDateTime) -> gint; +} +extern "C" { + pub fn g_date_time_get_microsecond(datetime: *mut GDateTime) -> gint; +} +extern "C" { + pub fn g_date_time_get_seconds(datetime: *mut GDateTime) -> gdouble; +} +extern "C" { + pub fn g_date_time_to_unix(datetime: *mut GDateTime) -> gint64; +} +extern "C" { + pub fn g_date_time_to_unix_usec(datetime: *mut GDateTime) -> gint64; +} +extern "C" { + pub fn g_date_time_to_timeval(datetime: *mut GDateTime, tv: *mut GTimeVal) -> gboolean; +} +extern "C" { + pub fn g_date_time_get_utc_offset(datetime: *mut GDateTime) -> GTimeSpan; +} +extern "C" { + pub fn g_date_time_get_timezone(datetime: *mut GDateTime) -> *mut GTimeZone; +} +extern "C" { + pub fn g_date_time_get_timezone_abbreviation(datetime: *mut GDateTime) -> *const gchar; +} +extern "C" { + pub fn g_date_time_is_daylight_savings(datetime: *mut GDateTime) -> gboolean; +} +extern "C" { + pub fn g_date_time_to_timezone(datetime: *mut GDateTime, tz: *mut GTimeZone) -> *mut GDateTime; +} +extern "C" { + pub fn g_date_time_to_local(datetime: *mut GDateTime) -> *mut GDateTime; +} +extern "C" { + pub fn g_date_time_to_utc(datetime: *mut GDateTime) -> *mut GDateTime; +} +extern "C" { + pub fn g_date_time_format(datetime: *mut GDateTime, format: *const gchar) -> *mut gchar; +} +extern "C" { + pub fn g_date_time_format_iso8601(datetime: *mut GDateTime) -> *mut gchar; +} +pub const GBookmarkFileError_G_BOOKMARK_FILE_ERROR_INVALID_URI: GBookmarkFileError = 0; +pub const GBookmarkFileError_G_BOOKMARK_FILE_ERROR_INVALID_VALUE: GBookmarkFileError = 1; +pub const GBookmarkFileError_G_BOOKMARK_FILE_ERROR_APP_NOT_REGISTERED: GBookmarkFileError = 2; +pub const GBookmarkFileError_G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND: GBookmarkFileError = 3; +pub const GBookmarkFileError_G_BOOKMARK_FILE_ERROR_READ: GBookmarkFileError = 4; +pub const GBookmarkFileError_G_BOOKMARK_FILE_ERROR_UNKNOWN_ENCODING: GBookmarkFileError = 5; +pub const GBookmarkFileError_G_BOOKMARK_FILE_ERROR_WRITE: GBookmarkFileError = 6; +pub const GBookmarkFileError_G_BOOKMARK_FILE_ERROR_FILE_NOT_FOUND: GBookmarkFileError = 7; +pub type GBookmarkFileError = ::std::os::raw::c_uint; +extern "C" { + pub fn g_bookmark_file_error_quark() -> GQuark; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GBookmarkFile { + _unused: [u8; 0], +} +pub type GBookmarkFile = _GBookmarkFile; +extern "C" { + pub fn g_bookmark_file_new() -> *mut GBookmarkFile; +} +extern "C" { + pub fn g_bookmark_file_free(bookmark: *mut GBookmarkFile); +} +extern "C" { + pub fn g_bookmark_file_copy(bookmark: *mut GBookmarkFile) -> *mut GBookmarkFile; +} +extern "C" { + pub fn g_bookmark_file_load_from_file( + bookmark: *mut GBookmarkFile, + filename: *const gchar, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_bookmark_file_load_from_data( + bookmark: *mut GBookmarkFile, + data: *const gchar, + length: gsize, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_bookmark_file_load_from_data_dirs( + bookmark: *mut GBookmarkFile, + file: *const gchar, + full_path: *mut *mut gchar, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_bookmark_file_to_data( + bookmark: *mut GBookmarkFile, + length: *mut gsize, + error: *mut *mut GError, + ) -> *mut gchar; +} +extern "C" { + pub fn g_bookmark_file_to_file( + bookmark: *mut GBookmarkFile, + filename: *const gchar, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_bookmark_file_set_title( + bookmark: *mut GBookmarkFile, + uri: *const gchar, + title: *const gchar, + ); +} +extern "C" { + pub fn g_bookmark_file_get_title( + bookmark: *mut GBookmarkFile, + uri: *const gchar, + error: *mut *mut GError, + ) -> *mut gchar; +} +extern "C" { + pub fn g_bookmark_file_set_description( + bookmark: *mut GBookmarkFile, + uri: *const gchar, + description: *const gchar, + ); +} +extern "C" { + pub fn g_bookmark_file_get_description( + bookmark: *mut GBookmarkFile, + uri: *const gchar, + error: *mut *mut GError, + ) -> *mut gchar; +} +extern "C" { + pub fn g_bookmark_file_set_mime_type( + bookmark: *mut GBookmarkFile, + uri: *const gchar, + mime_type: *const gchar, + ); +} +extern "C" { + pub fn g_bookmark_file_get_mime_type( + bookmark: *mut GBookmarkFile, + uri: *const gchar, + error: *mut *mut GError, + ) -> *mut gchar; +} +extern "C" { + pub fn g_bookmark_file_set_groups( + bookmark: *mut GBookmarkFile, + uri: *const gchar, + groups: *mut *const gchar, + length: gsize, + ); +} +extern "C" { + pub fn g_bookmark_file_add_group( + bookmark: *mut GBookmarkFile, + uri: *const gchar, + group: *const gchar, + ); +} +extern "C" { + pub fn g_bookmark_file_has_group( + bookmark: *mut GBookmarkFile, + uri: *const gchar, + group: *const gchar, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_bookmark_file_get_groups( + bookmark: *mut GBookmarkFile, + uri: *const gchar, + length: *mut gsize, + error: *mut *mut GError, + ) -> *mut *mut gchar; +} +extern "C" { + pub fn g_bookmark_file_add_application( + bookmark: *mut GBookmarkFile, + uri: *const gchar, + name: *const gchar, + exec: *const gchar, + ); +} +extern "C" { + pub fn g_bookmark_file_has_application( + bookmark: *mut GBookmarkFile, + uri: *const gchar, + name: *const gchar, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_bookmark_file_get_applications( + bookmark: *mut GBookmarkFile, + uri: *const gchar, + length: *mut gsize, + error: *mut *mut GError, + ) -> *mut *mut gchar; +} +extern "C" { + pub fn g_bookmark_file_set_app_info( + bookmark: *mut GBookmarkFile, + uri: *const gchar, + name: *const gchar, + exec: *const gchar, + count: gint, + stamp: time_t, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_bookmark_file_set_application_info( + bookmark: *mut GBookmarkFile, + uri: *const ::std::os::raw::c_char, + name: *const ::std::os::raw::c_char, + exec: *const ::std::os::raw::c_char, + count: ::std::os::raw::c_int, + stamp: *mut GDateTime, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_bookmark_file_get_app_info( + bookmark: *mut GBookmarkFile, + uri: *const gchar, + name: *const gchar, + exec: *mut *mut gchar, + count: *mut guint, + stamp: *mut time_t, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_bookmark_file_get_application_info( + bookmark: *mut GBookmarkFile, + uri: *const ::std::os::raw::c_char, + name: *const ::std::os::raw::c_char, + exec: *mut *mut ::std::os::raw::c_char, + count: *mut ::std::os::raw::c_uint, + stamp: *mut *mut GDateTime, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_bookmark_file_set_is_private( + bookmark: *mut GBookmarkFile, + uri: *const gchar, + is_private: gboolean, + ); +} +extern "C" { + pub fn g_bookmark_file_get_is_private( + bookmark: *mut GBookmarkFile, + uri: *const gchar, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_bookmark_file_set_icon( + bookmark: *mut GBookmarkFile, + uri: *const gchar, + href: *const gchar, + mime_type: *const gchar, + ); +} +extern "C" { + pub fn g_bookmark_file_get_icon( + bookmark: *mut GBookmarkFile, + uri: *const gchar, + href: *mut *mut gchar, + mime_type: *mut *mut gchar, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_bookmark_file_set_added( + bookmark: *mut GBookmarkFile, + uri: *const gchar, + added: time_t, + ); +} +extern "C" { + pub fn g_bookmark_file_set_added_date_time( + bookmark: *mut GBookmarkFile, + uri: *const ::std::os::raw::c_char, + added: *mut GDateTime, + ); +} +extern "C" { + pub fn g_bookmark_file_get_added( + bookmark: *mut GBookmarkFile, + uri: *const gchar, + error: *mut *mut GError, + ) -> time_t; +} +extern "C" { + pub fn g_bookmark_file_get_added_date_time( + bookmark: *mut GBookmarkFile, + uri: *const ::std::os::raw::c_char, + error: *mut *mut GError, + ) -> *mut GDateTime; +} +extern "C" { + pub fn g_bookmark_file_set_modified( + bookmark: *mut GBookmarkFile, + uri: *const gchar, + modified: time_t, + ); +} +extern "C" { + pub fn g_bookmark_file_set_modified_date_time( + bookmark: *mut GBookmarkFile, + uri: *const ::std::os::raw::c_char, + modified: *mut GDateTime, + ); +} +extern "C" { + pub fn g_bookmark_file_get_modified( + bookmark: *mut GBookmarkFile, + uri: *const gchar, + error: *mut *mut GError, + ) -> time_t; +} +extern "C" { + pub fn g_bookmark_file_get_modified_date_time( + bookmark: *mut GBookmarkFile, + uri: *const ::std::os::raw::c_char, + error: *mut *mut GError, + ) -> *mut GDateTime; +} +extern "C" { + pub fn g_bookmark_file_set_visited( + bookmark: *mut GBookmarkFile, + uri: *const gchar, + visited: time_t, + ); +} +extern "C" { + pub fn g_bookmark_file_set_visited_date_time( + bookmark: *mut GBookmarkFile, + uri: *const ::std::os::raw::c_char, + visited: *mut GDateTime, + ); +} +extern "C" { + pub fn g_bookmark_file_get_visited( + bookmark: *mut GBookmarkFile, + uri: *const gchar, + error: *mut *mut GError, + ) -> time_t; +} +extern "C" { + pub fn g_bookmark_file_get_visited_date_time( + bookmark: *mut GBookmarkFile, + uri: *const ::std::os::raw::c_char, + error: *mut *mut GError, + ) -> *mut GDateTime; +} +extern "C" { + pub fn g_bookmark_file_has_item(bookmark: *mut GBookmarkFile, uri: *const gchar) -> gboolean; +} +extern "C" { + pub fn g_bookmark_file_get_size(bookmark: *mut GBookmarkFile) -> gint; +} +extern "C" { + pub fn g_bookmark_file_get_uris( + bookmark: *mut GBookmarkFile, + length: *mut gsize, + ) -> *mut *mut gchar; +} +extern "C" { + pub fn g_bookmark_file_remove_group( + bookmark: *mut GBookmarkFile, + uri: *const gchar, + group: *const gchar, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_bookmark_file_remove_application( + bookmark: *mut GBookmarkFile, + uri: *const gchar, + name: *const gchar, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_bookmark_file_remove_item( + bookmark: *mut GBookmarkFile, + uri: *const gchar, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_bookmark_file_move_item( + bookmark: *mut GBookmarkFile, + old_uri: *const gchar, + new_uri: *const gchar, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_bytes_new(data: gconstpointer, size: gsize) -> *mut GBytes; +} +extern "C" { + pub fn g_bytes_new_take(data: gpointer, size: gsize) -> *mut GBytes; +} +extern "C" { + pub fn g_bytes_new_static(data: gconstpointer, size: gsize) -> *mut GBytes; +} +extern "C" { + pub fn g_bytes_new_with_free_func( + data: gconstpointer, + size: gsize, + free_func: GDestroyNotify, + user_data: gpointer, + ) -> *mut GBytes; +} +extern "C" { + pub fn g_bytes_new_from_bytes(bytes: *mut GBytes, offset: gsize, length: gsize) -> *mut GBytes; +} +extern "C" { + pub fn g_bytes_get_data(bytes: *mut GBytes, size: *mut gsize) -> gconstpointer; +} +extern "C" { + pub fn g_bytes_get_size(bytes: *mut GBytes) -> gsize; +} +extern "C" { + pub fn g_bytes_ref(bytes: *mut GBytes) -> *mut GBytes; +} +extern "C" { + pub fn g_bytes_unref(bytes: *mut GBytes); +} +extern "C" { + pub fn g_bytes_unref_to_data(bytes: *mut GBytes, size: *mut gsize) -> gpointer; +} +extern "C" { + pub fn g_bytes_unref_to_array(bytes: *mut GBytes) -> *mut GByteArray; +} +extern "C" { + pub fn g_bytes_hash(bytes: gconstpointer) -> guint; +} +extern "C" { + pub fn g_bytes_equal(bytes1: gconstpointer, bytes2: gconstpointer) -> gboolean; +} +extern "C" { + pub fn g_bytes_compare(bytes1: gconstpointer, bytes2: gconstpointer) -> gint; +} +extern "C" { + pub fn g_bytes_get_region( + bytes: *mut GBytes, + element_size: gsize, + offset: gsize, + n_elements: gsize, + ) -> gconstpointer; +} +extern "C" { + pub fn g_get_charset(charset: *mut *const ::std::os::raw::c_char) -> gboolean; +} +extern "C" { + pub fn g_get_codeset() -> *mut gchar; +} +extern "C" { + pub fn g_get_console_charset(charset: *mut *const ::std::os::raw::c_char) -> gboolean; +} +extern "C" { + pub fn g_get_language_names() -> *const *const gchar; +} +extern "C" { + pub fn g_get_language_names_with_category(category_name: *const gchar) -> *const *const gchar; +} +extern "C" { + pub fn g_get_locale_variants(locale: *const gchar) -> *mut *mut gchar; +} +pub const GChecksumType_G_CHECKSUM_MD5: GChecksumType = 0; +pub const GChecksumType_G_CHECKSUM_SHA1: GChecksumType = 1; +pub const GChecksumType_G_CHECKSUM_SHA256: GChecksumType = 2; +pub const GChecksumType_G_CHECKSUM_SHA512: GChecksumType = 3; +pub const GChecksumType_G_CHECKSUM_SHA384: GChecksumType = 4; +pub type GChecksumType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GChecksum { + _unused: [u8; 0], +} +pub type GChecksum = _GChecksum; +extern "C" { + pub fn g_checksum_type_get_length(checksum_type: GChecksumType) -> gssize; +} +extern "C" { + pub fn g_checksum_new(checksum_type: GChecksumType) -> *mut GChecksum; +} +extern "C" { + pub fn g_checksum_reset(checksum: *mut GChecksum); +} +extern "C" { + pub fn g_checksum_copy(checksum: *const GChecksum) -> *mut GChecksum; +} +extern "C" { + pub fn g_checksum_free(checksum: *mut GChecksum); +} +extern "C" { + pub fn g_checksum_update(checksum: *mut GChecksum, data: *const guchar, length: gssize); +} +extern "C" { + pub fn g_checksum_get_string(checksum: *mut GChecksum) -> *const gchar; +} +extern "C" { + pub fn g_checksum_get_digest( + checksum: *mut GChecksum, + buffer: *mut guint8, + digest_len: *mut gsize, + ); +} +extern "C" { + pub fn g_compute_checksum_for_data( + checksum_type: GChecksumType, + data: *const guchar, + length: gsize, + ) -> *mut gchar; +} +extern "C" { + pub fn g_compute_checksum_for_string( + checksum_type: GChecksumType, + str_: *const gchar, + length: gssize, + ) -> *mut gchar; +} +extern "C" { + pub fn g_compute_checksum_for_bytes( + checksum_type: GChecksumType, + data: *mut GBytes, + ) -> *mut gchar; +} +pub const GConvertError_G_CONVERT_ERROR_NO_CONVERSION: GConvertError = 0; +pub const GConvertError_G_CONVERT_ERROR_ILLEGAL_SEQUENCE: GConvertError = 1; +pub const GConvertError_G_CONVERT_ERROR_FAILED: GConvertError = 2; +pub const GConvertError_G_CONVERT_ERROR_PARTIAL_INPUT: GConvertError = 3; +pub const GConvertError_G_CONVERT_ERROR_BAD_URI: GConvertError = 4; +pub const GConvertError_G_CONVERT_ERROR_NOT_ABSOLUTE_PATH: GConvertError = 5; +pub const GConvertError_G_CONVERT_ERROR_NO_MEMORY: GConvertError = 6; +pub const GConvertError_G_CONVERT_ERROR_EMBEDDED_NUL: GConvertError = 7; +pub type GConvertError = ::std::os::raw::c_uint; +extern "C" { + pub fn g_convert_error_quark() -> GQuark; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GIConv { + _unused: [u8; 0], +} +pub type GIConv = *mut _GIConv; +extern "C" { + pub fn g_iconv_open(to_codeset: *const gchar, from_codeset: *const gchar) -> GIConv; +} +extern "C" { + pub fn g_iconv( + converter: GIConv, + inbuf: *mut *mut gchar, + inbytes_left: *mut gsize, + outbuf: *mut *mut gchar, + outbytes_left: *mut gsize, + ) -> gsize; +} +extern "C" { + pub fn g_iconv_close(converter: GIConv) -> gint; +} +extern "C" { + pub fn g_convert( + str_: *const gchar, + len: gssize, + to_codeset: *const gchar, + from_codeset: *const gchar, + bytes_read: *mut gsize, + bytes_written: *mut gsize, + error: *mut *mut GError, + ) -> *mut gchar; +} +extern "C" { + pub fn g_convert_with_iconv( + str_: *const gchar, + len: gssize, + converter: GIConv, + bytes_read: *mut gsize, + bytes_written: *mut gsize, + error: *mut *mut GError, + ) -> *mut gchar; +} +extern "C" { + pub fn g_convert_with_fallback( + str_: *const gchar, + len: gssize, + to_codeset: *const gchar, + from_codeset: *const gchar, + fallback: *const gchar, + bytes_read: *mut gsize, + bytes_written: *mut gsize, + error: *mut *mut GError, + ) -> *mut gchar; +} +extern "C" { + pub fn g_locale_to_utf8( + opsysstring: *const gchar, + len: gssize, + bytes_read: *mut gsize, + bytes_written: *mut gsize, + error: *mut *mut GError, + ) -> *mut gchar; +} +extern "C" { + pub fn g_locale_from_utf8( + utf8string: *const gchar, + len: gssize, + bytes_read: *mut gsize, + bytes_written: *mut gsize, + error: *mut *mut GError, + ) -> *mut gchar; +} +extern "C" { + pub fn g_filename_to_utf8( + opsysstring: *const gchar, + len: gssize, + bytes_read: *mut gsize, + bytes_written: *mut gsize, + error: *mut *mut GError, + ) -> *mut gchar; +} +extern "C" { + pub fn g_filename_from_utf8( + utf8string: *const gchar, + len: gssize, + bytes_read: *mut gsize, + bytes_written: *mut gsize, + error: *mut *mut GError, + ) -> *mut gchar; +} +extern "C" { + pub fn g_filename_from_uri( + uri: *const gchar, + hostname: *mut *mut gchar, + error: *mut *mut GError, + ) -> *mut gchar; +} +extern "C" { + pub fn g_filename_to_uri( + filename: *const gchar, + hostname: *const gchar, + error: *mut *mut GError, + ) -> *mut gchar; +} +extern "C" { + pub fn g_filename_display_name(filename: *const gchar) -> *mut gchar; +} +extern "C" { + pub fn g_get_filename_charsets(filename_charsets: *mut *mut *const gchar) -> gboolean; +} +extern "C" { + pub fn g_filename_display_basename(filename: *const gchar) -> *mut gchar; +} +extern "C" { + pub fn g_uri_list_extract_uris(uri_list: *const gchar) -> *mut *mut gchar; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GData { + _unused: [u8; 0], +} +pub type GData = _GData; +pub type GDataForeachFunc = ::std::option::Option< + unsafe extern "C" fn(key_id: GQuark, data: gpointer, user_data: gpointer), +>; +extern "C" { + pub fn g_datalist_init(datalist: *mut *mut GData); +} +extern "C" { + pub fn g_datalist_clear(datalist: *mut *mut GData); +} +extern "C" { + pub fn g_datalist_id_get_data(datalist: *mut *mut GData, key_id: GQuark) -> gpointer; +} +extern "C" { + pub fn g_datalist_id_set_data_full( + datalist: *mut *mut GData, + key_id: GQuark, + data: gpointer, + destroy_func: GDestroyNotify, + ); +} +extern "C" { + pub fn g_datalist_id_remove_multiple( + datalist: *mut *mut GData, + keys: *mut GQuark, + n_keys: gsize, + ); +} +pub type GDuplicateFunc = + ::std::option::Option gpointer>; +extern "C" { + pub fn g_datalist_id_dup_data( + datalist: *mut *mut GData, + key_id: GQuark, + dup_func: GDuplicateFunc, + user_data: gpointer, + ) -> gpointer; +} +extern "C" { + pub fn g_datalist_id_replace_data( + datalist: *mut *mut GData, + key_id: GQuark, + oldval: gpointer, + newval: gpointer, + destroy: GDestroyNotify, + old_destroy: *mut GDestroyNotify, + ) -> gboolean; +} +extern "C" { + pub fn g_datalist_id_remove_no_notify(datalist: *mut *mut GData, key_id: GQuark) -> gpointer; +} +extern "C" { + pub fn g_datalist_foreach( + datalist: *mut *mut GData, + func: GDataForeachFunc, + user_data: gpointer, + ); +} +extern "C" { + pub fn g_datalist_set_flags(datalist: *mut *mut GData, flags: guint); +} +extern "C" { + pub fn g_datalist_unset_flags(datalist: *mut *mut GData, flags: guint); +} +extern "C" { + pub fn g_datalist_get_flags(datalist: *mut *mut GData) -> guint; +} +extern "C" { + pub fn g_dataset_destroy(dataset_location: gconstpointer); +} +extern "C" { + pub fn g_dataset_id_get_data(dataset_location: gconstpointer, key_id: GQuark) -> gpointer; +} +extern "C" { + pub fn g_datalist_get_data(datalist: *mut *mut GData, key: *const gchar) -> gpointer; +} +extern "C" { + pub fn g_dataset_id_set_data_full( + dataset_location: gconstpointer, + key_id: GQuark, + data: gpointer, + destroy_func: GDestroyNotify, + ); +} +extern "C" { + pub fn g_dataset_id_remove_no_notify( + dataset_location: gconstpointer, + key_id: GQuark, + ) -> gpointer; +} +extern "C" { + pub fn g_dataset_foreach( + dataset_location: gconstpointer, + func: GDataForeachFunc, + user_data: gpointer, + ); +} +pub type GTime = gint32; +pub type GDateYear = guint16; +pub type GDateDay = guint8; +pub type GDate = _GDate; +pub const GDateDMY_G_DATE_DAY: GDateDMY = 0; +pub const GDateDMY_G_DATE_MONTH: GDateDMY = 1; +pub const GDateDMY_G_DATE_YEAR: GDateDMY = 2; +pub type GDateDMY = ::std::os::raw::c_uint; +pub const GDateWeekday_G_DATE_BAD_WEEKDAY: GDateWeekday = 0; +pub const GDateWeekday_G_DATE_MONDAY: GDateWeekday = 1; +pub const GDateWeekday_G_DATE_TUESDAY: GDateWeekday = 2; +pub const GDateWeekday_G_DATE_WEDNESDAY: GDateWeekday = 3; +pub const GDateWeekday_G_DATE_THURSDAY: GDateWeekday = 4; +pub const GDateWeekday_G_DATE_FRIDAY: GDateWeekday = 5; +pub const GDateWeekday_G_DATE_SATURDAY: GDateWeekday = 6; +pub const GDateWeekday_G_DATE_SUNDAY: GDateWeekday = 7; +pub type GDateWeekday = ::std::os::raw::c_uint; +pub const GDateMonth_G_DATE_BAD_MONTH: GDateMonth = 0; +pub const GDateMonth_G_DATE_JANUARY: GDateMonth = 1; +pub const GDateMonth_G_DATE_FEBRUARY: GDateMonth = 2; +pub const GDateMonth_G_DATE_MARCH: GDateMonth = 3; +pub const GDateMonth_G_DATE_APRIL: GDateMonth = 4; +pub const GDateMonth_G_DATE_MAY: GDateMonth = 5; +pub const GDateMonth_G_DATE_JUNE: GDateMonth = 6; +pub const GDateMonth_G_DATE_JULY: GDateMonth = 7; +pub const GDateMonth_G_DATE_AUGUST: GDateMonth = 8; +pub const GDateMonth_G_DATE_SEPTEMBER: GDateMonth = 9; +pub const GDateMonth_G_DATE_OCTOBER: GDateMonth = 10; +pub const GDateMonth_G_DATE_NOVEMBER: GDateMonth = 11; +pub const GDateMonth_G_DATE_DECEMBER: GDateMonth = 12; +pub type GDateMonth = ::std::os::raw::c_uint; +#[repr(C)] +#[repr(align(4))] +#[derive(Debug, Copy, Clone)] +pub struct _GDate { + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, +} +#[test] +fn bindgen_test_layout__GDate() { + assert_eq!( + ::std::mem::size_of::<_GDate>(), + 8usize, + concat!("Size of: ", stringify!(_GDate)) + ); + assert_eq!( + ::std::mem::align_of::<_GDate>(), + 4usize, + concat!("Alignment of ", stringify!(_GDate)) + ); +} +impl _GDate { + #[inline] + pub fn julian_days(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 32u8) as u32) } + } + #[inline] + pub fn set_julian_days(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 32u8, val as u64) + } + } + #[inline] + pub fn julian(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 1u8) as u32) } + } + #[inline] + pub fn set_julian(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(32usize, 1u8, val as u64) + } + } + #[inline] + pub fn dmy(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(33usize, 1u8) as u32) } + } + #[inline] + pub fn set_dmy(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(33usize, 1u8, val as u64) + } + } + #[inline] + pub fn day(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(34usize, 6u8) as u32) } + } + #[inline] + pub fn set_day(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(34usize, 6u8, val as u64) + } + } + #[inline] + pub fn month(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(40usize, 4u8) as u32) } + } + #[inline] + pub fn set_month(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(40usize, 4u8, val as u64) + } + } + #[inline] + pub fn year(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(44usize, 16u8) as u32) } + } + #[inline] + pub fn set_year(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(44usize, 16u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + julian_days: guint, + julian: guint, + dmy: guint, + day: guint, + month: guint, + year: guint, + ) -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 32u8, { + let julian_days: u32 = unsafe { ::std::mem::transmute(julian_days) }; + julian_days as u64 + }); + __bindgen_bitfield_unit.set(32usize, 1u8, { + let julian: u32 = unsafe { ::std::mem::transmute(julian) }; + julian as u64 + }); + __bindgen_bitfield_unit.set(33usize, 1u8, { + let dmy: u32 = unsafe { ::std::mem::transmute(dmy) }; + dmy as u64 + }); + __bindgen_bitfield_unit.set(34usize, 6u8, { + let day: u32 = unsafe { ::std::mem::transmute(day) }; + day as u64 + }); + __bindgen_bitfield_unit.set(40usize, 4u8, { + let month: u32 = unsafe { ::std::mem::transmute(month) }; + month as u64 + }); + __bindgen_bitfield_unit.set(44usize, 16u8, { + let year: u32 = unsafe { ::std::mem::transmute(year) }; + year as u64 + }); + __bindgen_bitfield_unit + } +} +extern "C" { + pub fn g_date_new() -> *mut GDate; +} +extern "C" { + pub fn g_date_new_dmy(day: GDateDay, month: GDateMonth, year: GDateYear) -> *mut GDate; +} +extern "C" { + pub fn g_date_new_julian(julian_day: guint32) -> *mut GDate; +} +extern "C" { + pub fn g_date_free(date: *mut GDate); +} +extern "C" { + pub fn g_date_copy(date: *const GDate) -> *mut GDate; +} +extern "C" { + pub fn g_date_valid(date: *const GDate) -> gboolean; +} +extern "C" { + pub fn g_date_valid_day(day: GDateDay) -> gboolean; +} +extern "C" { + pub fn g_date_valid_month(month: GDateMonth) -> gboolean; +} +extern "C" { + pub fn g_date_valid_year(year: GDateYear) -> gboolean; +} +extern "C" { + pub fn g_date_valid_weekday(weekday: GDateWeekday) -> gboolean; +} +extern "C" { + pub fn g_date_valid_julian(julian_date: guint32) -> gboolean; +} +extern "C" { + pub fn g_date_valid_dmy(day: GDateDay, month: GDateMonth, year: GDateYear) -> gboolean; +} +extern "C" { + pub fn g_date_get_weekday(date: *const GDate) -> GDateWeekday; +} +extern "C" { + pub fn g_date_get_month(date: *const GDate) -> GDateMonth; +} +extern "C" { + pub fn g_date_get_year(date: *const GDate) -> GDateYear; +} +extern "C" { + pub fn g_date_get_day(date: *const GDate) -> GDateDay; +} +extern "C" { + pub fn g_date_get_julian(date: *const GDate) -> guint32; +} +extern "C" { + pub fn g_date_get_day_of_year(date: *const GDate) -> guint; +} +extern "C" { + pub fn g_date_get_monday_week_of_year(date: *const GDate) -> guint; +} +extern "C" { + pub fn g_date_get_sunday_week_of_year(date: *const GDate) -> guint; +} +extern "C" { + pub fn g_date_get_iso8601_week_of_year(date: *const GDate) -> guint; +} +extern "C" { + pub fn g_date_clear(date: *mut GDate, n_dates: guint); +} +extern "C" { + pub fn g_date_set_parse(date: *mut GDate, str_: *const gchar); +} +extern "C" { + pub fn g_date_set_time_t(date: *mut GDate, timet: time_t); +} +extern "C" { + pub fn g_date_set_time_val(date: *mut GDate, timeval: *mut GTimeVal); +} +extern "C" { + pub fn g_date_set_time(date: *mut GDate, time_: GTime); +} +extern "C" { + pub fn g_date_set_month(date: *mut GDate, month: GDateMonth); +} +extern "C" { + pub fn g_date_set_day(date: *mut GDate, day: GDateDay); +} +extern "C" { + pub fn g_date_set_year(date: *mut GDate, year: GDateYear); +} +extern "C" { + pub fn g_date_set_dmy(date: *mut GDate, day: GDateDay, month: GDateMonth, y: GDateYear); +} +extern "C" { + pub fn g_date_set_julian(date: *mut GDate, julian_date: guint32); +} +extern "C" { + pub fn g_date_is_first_of_month(date: *const GDate) -> gboolean; +} +extern "C" { + pub fn g_date_is_last_of_month(date: *const GDate) -> gboolean; +} +extern "C" { + pub fn g_date_add_days(date: *mut GDate, n_days: guint); +} +extern "C" { + pub fn g_date_subtract_days(date: *mut GDate, n_days: guint); +} +extern "C" { + pub fn g_date_add_months(date: *mut GDate, n_months: guint); +} +extern "C" { + pub fn g_date_subtract_months(date: *mut GDate, n_months: guint); +} +extern "C" { + pub fn g_date_add_years(date: *mut GDate, n_years: guint); +} +extern "C" { + pub fn g_date_subtract_years(date: *mut GDate, n_years: guint); +} +extern "C" { + pub fn g_date_is_leap_year(year: GDateYear) -> gboolean; +} +extern "C" { + pub fn g_date_get_days_in_month(month: GDateMonth, year: GDateYear) -> guint8; +} +extern "C" { + pub fn g_date_get_monday_weeks_in_year(year: GDateYear) -> guint8; +} +extern "C" { + pub fn g_date_get_sunday_weeks_in_year(year: GDateYear) -> guint8; +} +extern "C" { + pub fn g_date_days_between(date1: *const GDate, date2: *const GDate) -> gint; +} +extern "C" { + pub fn g_date_compare(lhs: *const GDate, rhs: *const GDate) -> gint; +} +extern "C" { + pub fn g_date_to_struct_tm(date: *const GDate, tm: *mut tm); +} +extern "C" { + pub fn g_date_clamp(date: *mut GDate, min_date: *const GDate, max_date: *const GDate); +} +extern "C" { + pub fn g_date_order(date1: *mut GDate, date2: *mut GDate); +} +extern "C" { + pub fn g_date_strftime( + s: *mut gchar, + slen: gsize, + format: *const gchar, + date: *const GDate, + ) -> gsize; +} +pub type ino_t = __darwin_ino_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dirent { + pub d_ino: __uint64_t, + pub d_seekoff: __uint64_t, + pub d_reclen: __uint16_t, + pub d_namlen: __uint16_t, + pub d_type: __uint8_t, + pub d_name: [::std::os::raw::c_char; 1024usize], +} +#[test] +fn bindgen_test_layout_dirent() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 1048usize, + concat!("Size of: ", stringify!(dirent)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(dirent)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).d_ino) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(dirent), + "::", + stringify!(d_ino) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).d_seekoff) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(dirent), + "::", + stringify!(d_seekoff) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).d_reclen) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(dirent), + "::", + stringify!(d_reclen) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).d_namlen) as usize - ptr as usize }, + 18usize, + concat!( + "Offset of field: ", + stringify!(dirent), + "::", + stringify!(d_namlen) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).d_type) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(dirent), + "::", + stringify!(d_type) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).d_name) as usize - ptr as usize }, + 21usize, + concat!( + "Offset of field: ", + stringify!(dirent), + "::", + stringify!(d_name) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _telldir { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct DIR { + pub __dd_fd: ::std::os::raw::c_int, + pub __dd_loc: ::std::os::raw::c_long, + pub __dd_size: ::std::os::raw::c_long, + pub __dd_buf: *mut ::std::os::raw::c_char, + pub __dd_len: ::std::os::raw::c_int, + pub __dd_seek: ::std::os::raw::c_long, + pub __padding: ::std::os::raw::c_long, + pub __dd_flags: ::std::os::raw::c_int, + pub __dd_lock: __darwin_pthread_mutex_t, + pub __dd_td: *mut _telldir, +} +#[test] +fn bindgen_test_layout_DIR() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 136usize, + concat!("Size of: ", stringify!(DIR)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(DIR)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__dd_fd) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(DIR), + "::", + stringify!(__dd_fd) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__dd_loc) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(DIR), + "::", + stringify!(__dd_loc) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__dd_size) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(DIR), + "::", + stringify!(__dd_size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__dd_buf) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(DIR), + "::", + stringify!(__dd_buf) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__dd_len) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(DIR), + "::", + stringify!(__dd_len) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__dd_seek) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(DIR), + "::", + stringify!(__dd_seek) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__padding) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(DIR), + "::", + stringify!(__padding) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__dd_flags) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(DIR), + "::", + stringify!(__dd_flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__dd_lock) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(DIR), + "::", + stringify!(__dd_lock) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__dd_td) as usize - ptr as usize }, + 128usize, + concat!( + "Offset of field: ", + stringify!(DIR), + "::", + stringify!(__dd_td) + ) + ); +} +extern "C" { + pub fn closedir(arg1: *mut DIR) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn opendir(arg1: *const ::std::os::raw::c_char) -> *mut DIR; +} +extern "C" { + pub fn readdir(arg1: *mut DIR) -> *mut dirent; +} +extern "C" { + pub fn readdir_r( + arg1: *mut DIR, + arg2: *mut dirent, + arg3: *mut *mut dirent, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn rewinddir(arg1: *mut DIR); +} +extern "C" { + pub fn seekdir(arg1: *mut DIR, arg2: ::std::os::raw::c_long); +} +extern "C" { + pub fn telldir(arg1: *mut DIR) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn fdopendir(arg1: ::std::os::raw::c_int) -> *mut DIR; +} +extern "C" { + pub fn alphasort(arg1: *mut *const dirent, arg2: *mut *const dirent) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn dirfd(dirp: *mut DIR) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn scandir( + arg1: *const ::std::os::raw::c_char, + arg2: *mut *mut *mut dirent, + arg3: ::std::option::Option< + unsafe extern "C" fn(arg1: *const dirent) -> ::std::os::raw::c_int, + >, + arg4: ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut *const dirent, + arg2: *mut *const dirent, + ) -> ::std::os::raw::c_int, + >, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn scandir_b( + arg1: *const ::std::os::raw::c_char, + arg2: *mut *mut *mut dirent, + arg3: *mut ::std::os::raw::c_void, + arg4: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + #[link_name = "\u{1}_getdirentries_is_not_available_when_64_bit_inodes_are_in_effect"] + pub fn getdirentries( + arg1: ::std::os::raw::c_int, + arg2: *mut ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + arg4: *mut ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn __opendir2(arg1: *const ::std::os::raw::c_char, arg2: ::std::os::raw::c_int) + -> *mut DIR; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GDir { + _unused: [u8; 0], +} +pub type GDir = _GDir; +extern "C" { + pub fn g_dir_open(path: *const gchar, flags: guint, error: *mut *mut GError) -> *mut GDir; +} +extern "C" { + pub fn g_dir_read_name(dir: *mut GDir) -> *const gchar; +} +extern "C" { + pub fn g_dir_rewind(dir: *mut GDir); +} +extern "C" { + pub fn g_dir_close(dir: *mut GDir); +} +extern "C" { + pub fn g_dir_ref(dir: *mut GDir) -> *mut GDir; +} +extern "C" { + pub fn g_dir_unref(dir: *mut GDir); +} +extern "C" { + pub fn g_getenv(variable: *const gchar) -> *const gchar; +} +extern "C" { + pub fn g_setenv(variable: *const gchar, value: *const gchar, overwrite: gboolean) -> gboolean; +} +extern "C" { + pub fn g_unsetenv(variable: *const gchar); +} +extern "C" { + pub fn g_listenv() -> *mut *mut gchar; +} +extern "C" { + pub fn g_get_environ() -> *mut *mut gchar; +} +extern "C" { + pub fn g_environ_getenv(envp: *mut *mut gchar, variable: *const gchar) -> *const gchar; +} +extern "C" { + pub fn g_environ_setenv( + envp: *mut *mut gchar, + variable: *const gchar, + value: *const gchar, + overwrite: gboolean, + ) -> *mut *mut gchar; +} +extern "C" { + pub fn g_environ_unsetenv(envp: *mut *mut gchar, variable: *const gchar) -> *mut *mut gchar; +} +pub const GFileError_G_FILE_ERROR_EXIST: GFileError = 0; +pub const GFileError_G_FILE_ERROR_ISDIR: GFileError = 1; +pub const GFileError_G_FILE_ERROR_ACCES: GFileError = 2; +pub const GFileError_G_FILE_ERROR_NAMETOOLONG: GFileError = 3; +pub const GFileError_G_FILE_ERROR_NOENT: GFileError = 4; +pub const GFileError_G_FILE_ERROR_NOTDIR: GFileError = 5; +pub const GFileError_G_FILE_ERROR_NXIO: GFileError = 6; +pub const GFileError_G_FILE_ERROR_NODEV: GFileError = 7; +pub const GFileError_G_FILE_ERROR_ROFS: GFileError = 8; +pub const GFileError_G_FILE_ERROR_TXTBSY: GFileError = 9; +pub const GFileError_G_FILE_ERROR_FAULT: GFileError = 10; +pub const GFileError_G_FILE_ERROR_LOOP: GFileError = 11; +pub const GFileError_G_FILE_ERROR_NOSPC: GFileError = 12; +pub const GFileError_G_FILE_ERROR_NOMEM: GFileError = 13; +pub const GFileError_G_FILE_ERROR_MFILE: GFileError = 14; +pub const GFileError_G_FILE_ERROR_NFILE: GFileError = 15; +pub const GFileError_G_FILE_ERROR_BADF: GFileError = 16; +pub const GFileError_G_FILE_ERROR_INVAL: GFileError = 17; +pub const GFileError_G_FILE_ERROR_PIPE: GFileError = 18; +pub const GFileError_G_FILE_ERROR_AGAIN: GFileError = 19; +pub const GFileError_G_FILE_ERROR_INTR: GFileError = 20; +pub const GFileError_G_FILE_ERROR_IO: GFileError = 21; +pub const GFileError_G_FILE_ERROR_PERM: GFileError = 22; +pub const GFileError_G_FILE_ERROR_NOSYS: GFileError = 23; +pub const GFileError_G_FILE_ERROR_FAILED: GFileError = 24; +pub type GFileError = ::std::os::raw::c_uint; +pub const GFileTest_G_FILE_TEST_IS_REGULAR: GFileTest = 1; +pub const GFileTest_G_FILE_TEST_IS_SYMLINK: GFileTest = 2; +pub const GFileTest_G_FILE_TEST_IS_DIR: GFileTest = 4; +pub const GFileTest_G_FILE_TEST_IS_EXECUTABLE: GFileTest = 8; +pub const GFileTest_G_FILE_TEST_EXISTS: GFileTest = 16; +pub type GFileTest = ::std::os::raw::c_uint; +pub const GFileSetContentsFlags_G_FILE_SET_CONTENTS_NONE: GFileSetContentsFlags = 0; +pub const GFileSetContentsFlags_G_FILE_SET_CONTENTS_CONSISTENT: GFileSetContentsFlags = 1; +pub const GFileSetContentsFlags_G_FILE_SET_CONTENTS_DURABLE: GFileSetContentsFlags = 2; +pub const GFileSetContentsFlags_G_FILE_SET_CONTENTS_ONLY_EXISTING: GFileSetContentsFlags = 4; +pub type GFileSetContentsFlags = ::std::os::raw::c_uint; +extern "C" { + pub fn g_file_error_quark() -> GQuark; +} +extern "C" { + pub fn g_file_error_from_errno(err_no: gint) -> GFileError; +} +extern "C" { + pub fn g_file_test(filename: *const gchar, test: GFileTest) -> gboolean; +} +extern "C" { + pub fn g_file_get_contents( + filename: *const gchar, + contents: *mut *mut gchar, + length: *mut gsize, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_file_set_contents( + filename: *const gchar, + contents: *const gchar, + length: gssize, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_file_set_contents_full( + filename: *const gchar, + contents: *const gchar, + length: gssize, + flags: GFileSetContentsFlags, + mode: ::std::os::raw::c_int, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_file_read_link(filename: *const gchar, error: *mut *mut GError) -> *mut gchar; +} +extern "C" { + pub fn g_mkdtemp(tmpl: *mut gchar) -> *mut gchar; +} +extern "C" { + pub fn g_mkdtemp_full(tmpl: *mut gchar, mode: gint) -> *mut gchar; +} +extern "C" { + pub fn g_mkstemp(tmpl: *mut gchar) -> gint; +} +extern "C" { + pub fn g_mkstemp_full(tmpl: *mut gchar, flags: gint, mode: gint) -> gint; +} +extern "C" { + pub fn g_file_open_tmp( + tmpl: *const gchar, + name_used: *mut *mut gchar, + error: *mut *mut GError, + ) -> gint; +} +extern "C" { + pub fn g_dir_make_tmp(tmpl: *const gchar, error: *mut *mut GError) -> *mut gchar; +} +extern "C" { + pub fn g_build_path(separator: *const gchar, first_element: *const gchar, ...) -> *mut gchar; +} +extern "C" { + pub fn g_build_pathv(separator: *const gchar, args: *mut *mut gchar) -> *mut gchar; +} +extern "C" { + pub fn g_build_filename(first_element: *const gchar, ...) -> *mut gchar; +} +extern "C" { + pub fn g_build_filenamev(args: *mut *mut gchar) -> *mut gchar; +} +extern "C" { + pub fn g_build_filename_valist(first_element: *const gchar, args: *mut va_list) -> *mut gchar; +} +extern "C" { + pub fn g_mkdir_with_parents(pathname: *const gchar, mode: gint) -> gint; +} +extern "C" { + pub fn g_path_is_absolute(file_name: *const gchar) -> gboolean; +} +extern "C" { + pub fn g_path_skip_root(file_name: *const gchar) -> *const gchar; +} +extern "C" { + pub fn g_basename(file_name: *const gchar) -> *const gchar; +} +extern "C" { + pub fn g_get_current_dir() -> *mut gchar; +} +extern "C" { + pub fn g_path_get_basename(file_name: *const gchar) -> *mut gchar; +} +extern "C" { + pub fn g_path_get_dirname(file_name: *const gchar) -> *mut gchar; +} +extern "C" { + pub fn g_canonicalize_filename(filename: *const gchar, relative_to: *const gchar) + -> *mut gchar; +} +extern "C" { + pub fn g_strip_context(msgid: *const gchar, msgval: *const gchar) -> *const gchar; +} +extern "C" { + pub fn g_dgettext(domain: *const gchar, msgid: *const gchar) -> *const gchar; +} +extern "C" { + pub fn g_dcgettext(domain: *const gchar, msgid: *const gchar, category: gint) -> *const gchar; +} +extern "C" { + pub fn g_dngettext( + domain: *const gchar, + msgid: *const gchar, + msgid_plural: *const gchar, + n: gulong, + ) -> *const gchar; +} +extern "C" { + pub fn g_dpgettext( + domain: *const gchar, + msgctxtid: *const gchar, + msgidoffset: gsize, + ) -> *const gchar; +} +extern "C" { + pub fn g_dpgettext2( + domain: *const gchar, + context: *const gchar, + msgid: *const gchar, + ) -> *const gchar; +} +pub type GMemVTable = _GMemVTable; +extern "C" { + pub fn g_free(mem: gpointer); +} +extern "C" { + pub fn g_free_sized(mem: gpointer, size: usize); +} +extern "C" { + pub fn g_clear_pointer(pp: *mut gpointer, destroy: GDestroyNotify); +} +extern "C" { + pub fn g_malloc(n_bytes: gsize) -> gpointer; +} +extern "C" { + pub fn g_malloc0(n_bytes: gsize) -> gpointer; +} +extern "C" { + pub fn g_realloc(mem: gpointer, n_bytes: gsize) -> gpointer; +} +extern "C" { + pub fn g_try_malloc(n_bytes: gsize) -> gpointer; +} +extern "C" { + pub fn g_try_malloc0(n_bytes: gsize) -> gpointer; +} +extern "C" { + pub fn g_try_realloc(mem: gpointer, n_bytes: gsize) -> gpointer; +} +extern "C" { + pub fn g_malloc_n(n_blocks: gsize, n_block_bytes: gsize) -> gpointer; +} +extern "C" { + pub fn g_malloc0_n(n_blocks: gsize, n_block_bytes: gsize) -> gpointer; +} +extern "C" { + pub fn g_realloc_n(mem: gpointer, n_blocks: gsize, n_block_bytes: gsize) -> gpointer; +} +extern "C" { + pub fn g_try_malloc_n(n_blocks: gsize, n_block_bytes: gsize) -> gpointer; +} +extern "C" { + pub fn g_try_malloc0_n(n_blocks: gsize, n_block_bytes: gsize) -> gpointer; +} +extern "C" { + pub fn g_try_realloc_n(mem: gpointer, n_blocks: gsize, n_block_bytes: gsize) -> gpointer; +} +extern "C" { + pub fn g_aligned_alloc(n_blocks: gsize, n_block_bytes: gsize, alignment: gsize) -> gpointer; +} +extern "C" { + pub fn g_aligned_alloc0(n_blocks: gsize, n_block_bytes: gsize, alignment: gsize) -> gpointer; +} +extern "C" { + pub fn g_aligned_free(mem: gpointer); +} +extern "C" { + pub fn g_aligned_free_sized(mem: gpointer, alignment: usize, size: usize); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GMemVTable { + pub malloc: ::std::option::Option gpointer>, + pub realloc: + ::std::option::Option gpointer>, + pub free: ::std::option::Option, + pub calloc: ::std::option::Option< + unsafe extern "C" fn(n_blocks: gsize, n_block_bytes: gsize) -> gpointer, + >, + pub try_malloc: ::std::option::Option gpointer>, + pub try_realloc: + ::std::option::Option gpointer>, +} +#[test] +fn bindgen_test_layout__GMemVTable() { + const UNINIT: ::std::mem::MaybeUninit<_GMemVTable> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GMemVTable>(), + 48usize, + concat!("Size of: ", stringify!(_GMemVTable)) + ); + assert_eq!( + ::std::mem::align_of::<_GMemVTable>(), + 8usize, + concat!("Alignment of ", stringify!(_GMemVTable)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).malloc) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GMemVTable), + "::", + stringify!(malloc) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).realloc) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GMemVTable), + "::", + stringify!(realloc) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).free) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_GMemVTable), + "::", + stringify!(free) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).calloc) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_GMemVTable), + "::", + stringify!(calloc) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).try_malloc) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_GMemVTable), + "::", + stringify!(try_malloc) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).try_realloc) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(_GMemVTable), + "::", + stringify!(try_realloc) + ) + ); +} +extern "C" { + pub fn g_mem_set_vtable(vtable: *mut GMemVTable); +} +extern "C" { + pub fn g_mem_is_system_malloc() -> gboolean; +} +extern "C" { + pub static mut g_mem_gc_friendly: gboolean; +} +extern "C" { + pub static mut glib_mem_profiler_table: *mut GMemVTable; +} +extern "C" { + pub fn g_mem_profile(); +} +pub type GNode = _GNode; +pub const GTraverseFlags_G_TRAVERSE_LEAVES: GTraverseFlags = 1; +pub const GTraverseFlags_G_TRAVERSE_NON_LEAVES: GTraverseFlags = 2; +pub const GTraverseFlags_G_TRAVERSE_ALL: GTraverseFlags = 3; +pub const GTraverseFlags_G_TRAVERSE_MASK: GTraverseFlags = 3; +pub const GTraverseFlags_G_TRAVERSE_LEAFS: GTraverseFlags = 1; +pub const GTraverseFlags_G_TRAVERSE_NON_LEAFS: GTraverseFlags = 2; +pub type GTraverseFlags = ::std::os::raw::c_uint; +pub const GTraverseType_G_IN_ORDER: GTraverseType = 0; +pub const GTraverseType_G_PRE_ORDER: GTraverseType = 1; +pub const GTraverseType_G_POST_ORDER: GTraverseType = 2; +pub const GTraverseType_G_LEVEL_ORDER: GTraverseType = 3; +pub type GTraverseType = ::std::os::raw::c_uint; +pub type GNodeTraverseFunc = + ::std::option::Option gboolean>; +pub type GNodeForeachFunc = + ::std::option::Option; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GNode { + pub data: gpointer, + pub next: *mut GNode, + pub prev: *mut GNode, + pub parent: *mut GNode, + pub children: *mut GNode, +} +#[test] +fn bindgen_test_layout__GNode() { + const UNINIT: ::std::mem::MaybeUninit<_GNode> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GNode>(), + 40usize, + concat!("Size of: ", stringify!(_GNode)) + ); + assert_eq!( + ::std::mem::align_of::<_GNode>(), + 8usize, + concat!("Alignment of ", stringify!(_GNode)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GNode), + "::", + stringify!(data) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GNode), + "::", + stringify!(next) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_GNode), + "::", + stringify!(prev) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).parent) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_GNode), + "::", + stringify!(parent) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).children) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_GNode), + "::", + stringify!(children) + ) + ); +} +extern "C" { + pub fn g_node_new(data: gpointer) -> *mut GNode; +} +extern "C" { + pub fn g_node_destroy(root: *mut GNode); +} +extern "C" { + pub fn g_node_unlink(node: *mut GNode); +} +extern "C" { + pub fn g_node_copy_deep(node: *mut GNode, copy_func: GCopyFunc, data: gpointer) -> *mut GNode; +} +extern "C" { + pub fn g_node_copy(node: *mut GNode) -> *mut GNode; +} +extern "C" { + pub fn g_node_insert(parent: *mut GNode, position: gint, node: *mut GNode) -> *mut GNode; +} +extern "C" { + pub fn g_node_insert_before( + parent: *mut GNode, + sibling: *mut GNode, + node: *mut GNode, + ) -> *mut GNode; +} +extern "C" { + pub fn g_node_insert_after( + parent: *mut GNode, + sibling: *mut GNode, + node: *mut GNode, + ) -> *mut GNode; +} +extern "C" { + pub fn g_node_prepend(parent: *mut GNode, node: *mut GNode) -> *mut GNode; +} +extern "C" { + pub fn g_node_n_nodes(root: *mut GNode, flags: GTraverseFlags) -> guint; +} +extern "C" { + pub fn g_node_get_root(node: *mut GNode) -> *mut GNode; +} +extern "C" { + pub fn g_node_is_ancestor(node: *mut GNode, descendant: *mut GNode) -> gboolean; +} +extern "C" { + pub fn g_node_depth(node: *mut GNode) -> guint; +} +extern "C" { + pub fn g_node_find( + root: *mut GNode, + order: GTraverseType, + flags: GTraverseFlags, + data: gpointer, + ) -> *mut GNode; +} +extern "C" { + pub fn g_node_traverse( + root: *mut GNode, + order: GTraverseType, + flags: GTraverseFlags, + max_depth: gint, + func: GNodeTraverseFunc, + data: gpointer, + ); +} +extern "C" { + pub fn g_node_max_height(root: *mut GNode) -> guint; +} +extern "C" { + pub fn g_node_children_foreach( + node: *mut GNode, + flags: GTraverseFlags, + func: GNodeForeachFunc, + data: gpointer, + ); +} +extern "C" { + pub fn g_node_reverse_children(node: *mut GNode); +} +extern "C" { + pub fn g_node_n_children(node: *mut GNode) -> guint; +} +extern "C" { + pub fn g_node_nth_child(node: *mut GNode, n: guint) -> *mut GNode; +} +extern "C" { + pub fn g_node_last_child(node: *mut GNode) -> *mut GNode; +} +extern "C" { + pub fn g_node_find_child(node: *mut GNode, flags: GTraverseFlags, data: gpointer) + -> *mut GNode; +} +extern "C" { + pub fn g_node_child_position(node: *mut GNode, child: *mut GNode) -> gint; +} +extern "C" { + pub fn g_node_child_index(node: *mut GNode, data: gpointer) -> gint; +} +extern "C" { + pub fn g_node_first_sibling(node: *mut GNode) -> *mut GNode; +} +extern "C" { + pub fn g_node_last_sibling(node: *mut GNode) -> *mut GNode; +} +pub type GList = _GList; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GList { + pub data: gpointer, + pub next: *mut GList, + pub prev: *mut GList, +} +#[test] +fn bindgen_test_layout__GList() { + const UNINIT: ::std::mem::MaybeUninit<_GList> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GList>(), + 24usize, + concat!("Size of: ", stringify!(_GList)) + ); + assert_eq!( + ::std::mem::align_of::<_GList>(), + 8usize, + concat!("Alignment of ", stringify!(_GList)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GList), + "::", + stringify!(data) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GList), + "::", + stringify!(next) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_GList), + "::", + stringify!(prev) + ) + ); +} +extern "C" { + pub fn g_list_alloc() -> *mut GList; +} +extern "C" { + pub fn g_list_free(list: *mut GList); +} +extern "C" { + pub fn g_list_free_1(list: *mut GList); +} +extern "C" { + pub fn g_list_free_full(list: *mut GList, free_func: GDestroyNotify); +} +extern "C" { + pub fn g_list_append(list: *mut GList, data: gpointer) -> *mut GList; +} +extern "C" { + pub fn g_list_prepend(list: *mut GList, data: gpointer) -> *mut GList; +} +extern "C" { + pub fn g_list_insert(list: *mut GList, data: gpointer, position: gint) -> *mut GList; +} +extern "C" { + pub fn g_list_insert_sorted(list: *mut GList, data: gpointer, func: GCompareFunc) + -> *mut GList; +} +extern "C" { + pub fn g_list_insert_sorted_with_data( + list: *mut GList, + data: gpointer, + func: GCompareDataFunc, + user_data: gpointer, + ) -> *mut GList; +} +extern "C" { + pub fn g_list_insert_before( + list: *mut GList, + sibling: *mut GList, + data: gpointer, + ) -> *mut GList; +} +extern "C" { + pub fn g_list_insert_before_link( + list: *mut GList, + sibling: *mut GList, + link_: *mut GList, + ) -> *mut GList; +} +extern "C" { + pub fn g_list_concat(list1: *mut GList, list2: *mut GList) -> *mut GList; +} +extern "C" { + pub fn g_list_remove(list: *mut GList, data: gconstpointer) -> *mut GList; +} +extern "C" { + pub fn g_list_remove_all(list: *mut GList, data: gconstpointer) -> *mut GList; +} +extern "C" { + pub fn g_list_remove_link(list: *mut GList, llink: *mut GList) -> *mut GList; +} +extern "C" { + pub fn g_list_delete_link(list: *mut GList, link_: *mut GList) -> *mut GList; +} +extern "C" { + pub fn g_list_reverse(list: *mut GList) -> *mut GList; +} +extern "C" { + pub fn g_list_copy(list: *mut GList) -> *mut GList; +} +extern "C" { + pub fn g_list_copy_deep(list: *mut GList, func: GCopyFunc, user_data: gpointer) -> *mut GList; +} +extern "C" { + pub fn g_list_nth(list: *mut GList, n: guint) -> *mut GList; +} +extern "C" { + pub fn g_list_nth_prev(list: *mut GList, n: guint) -> *mut GList; +} +extern "C" { + pub fn g_list_find(list: *mut GList, data: gconstpointer) -> *mut GList; +} +extern "C" { + pub fn g_list_find_custom( + list: *mut GList, + data: gconstpointer, + func: GCompareFunc, + ) -> *mut GList; +} +extern "C" { + pub fn g_list_position(list: *mut GList, llink: *mut GList) -> gint; +} +extern "C" { + pub fn g_list_index(list: *mut GList, data: gconstpointer) -> gint; +} +extern "C" { + pub fn g_list_last(list: *mut GList) -> *mut GList; +} +extern "C" { + pub fn g_list_first(list: *mut GList) -> *mut GList; +} +extern "C" { + pub fn g_list_length(list: *mut GList) -> guint; +} +extern "C" { + pub fn g_list_foreach(list: *mut GList, func: GFunc, user_data: gpointer); +} +extern "C" { + pub fn g_list_sort(list: *mut GList, compare_func: GCompareFunc) -> *mut GList; +} +extern "C" { + pub fn g_list_sort_with_data( + list: *mut GList, + compare_func: GCompareDataFunc, + user_data: gpointer, + ) -> *mut GList; +} +extern "C" { + pub fn g_list_nth_data(list: *mut GList, n: guint) -> gpointer; +} +extern "C" { + pub fn g_clear_list(list_ptr: *mut *mut GList, destroy: GDestroyNotify); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GHashTable { + _unused: [u8; 0], +} +pub type GHashTable = _GHashTable; +pub type GHRFunc = ::std::option::Option< + unsafe extern "C" fn(key: gpointer, value: gpointer, user_data: gpointer) -> gboolean, +>; +pub type GHashTableIter = _GHashTableIter; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GHashTableIter { + pub dummy1: gpointer, + pub dummy2: gpointer, + pub dummy3: gpointer, + pub dummy4: ::std::os::raw::c_int, + pub dummy5: gboolean, + pub dummy6: gpointer, +} +#[test] +fn bindgen_test_layout__GHashTableIter() { + const UNINIT: ::std::mem::MaybeUninit<_GHashTableIter> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GHashTableIter>(), + 40usize, + concat!("Size of: ", stringify!(_GHashTableIter)) + ); + assert_eq!( + ::std::mem::align_of::<_GHashTableIter>(), + 8usize, + concat!("Alignment of ", stringify!(_GHashTableIter)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dummy1) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GHashTableIter), + "::", + stringify!(dummy1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dummy2) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GHashTableIter), + "::", + stringify!(dummy2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dummy3) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_GHashTableIter), + "::", + stringify!(dummy3) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dummy4) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_GHashTableIter), + "::", + stringify!(dummy4) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dummy5) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(_GHashTableIter), + "::", + stringify!(dummy5) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dummy6) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_GHashTableIter), + "::", + stringify!(dummy6) + ) + ); +} +extern "C" { + pub fn g_hash_table_new(hash_func: GHashFunc, key_equal_func: GEqualFunc) -> *mut GHashTable; +} +extern "C" { + pub fn g_hash_table_new_full( + hash_func: GHashFunc, + key_equal_func: GEqualFunc, + key_destroy_func: GDestroyNotify, + value_destroy_func: GDestroyNotify, + ) -> *mut GHashTable; +} +extern "C" { + pub fn g_hash_table_new_similar(other_hash_table: *mut GHashTable) -> *mut GHashTable; +} +extern "C" { + pub fn g_hash_table_destroy(hash_table: *mut GHashTable); +} +extern "C" { + pub fn g_hash_table_insert( + hash_table: *mut GHashTable, + key: gpointer, + value: gpointer, + ) -> gboolean; +} +extern "C" { + pub fn g_hash_table_replace( + hash_table: *mut GHashTable, + key: gpointer, + value: gpointer, + ) -> gboolean; +} +extern "C" { + pub fn g_hash_table_add(hash_table: *mut GHashTable, key: gpointer) -> gboolean; +} +extern "C" { + pub fn g_hash_table_remove(hash_table: *mut GHashTable, key: gconstpointer) -> gboolean; +} +extern "C" { + pub fn g_hash_table_remove_all(hash_table: *mut GHashTable); +} +extern "C" { + pub fn g_hash_table_steal(hash_table: *mut GHashTable, key: gconstpointer) -> gboolean; +} +extern "C" { + pub fn g_hash_table_steal_extended( + hash_table: *mut GHashTable, + lookup_key: gconstpointer, + stolen_key: *mut gpointer, + stolen_value: *mut gpointer, + ) -> gboolean; +} +extern "C" { + pub fn g_hash_table_steal_all(hash_table: *mut GHashTable); +} +extern "C" { + pub fn g_hash_table_steal_all_keys(hash_table: *mut GHashTable) -> *mut GPtrArray; +} +extern "C" { + pub fn g_hash_table_steal_all_values(hash_table: *mut GHashTable) -> *mut GPtrArray; +} +extern "C" { + pub fn g_hash_table_lookup(hash_table: *mut GHashTable, key: gconstpointer) -> gpointer; +} +extern "C" { + pub fn g_hash_table_contains(hash_table: *mut GHashTable, key: gconstpointer) -> gboolean; +} +extern "C" { + pub fn g_hash_table_lookup_extended( + hash_table: *mut GHashTable, + lookup_key: gconstpointer, + orig_key: *mut gpointer, + value: *mut gpointer, + ) -> gboolean; +} +extern "C" { + pub fn g_hash_table_foreach(hash_table: *mut GHashTable, func: GHFunc, user_data: gpointer); +} +extern "C" { + pub fn g_hash_table_find( + hash_table: *mut GHashTable, + predicate: GHRFunc, + user_data: gpointer, + ) -> gpointer; +} +extern "C" { + pub fn g_hash_table_foreach_remove( + hash_table: *mut GHashTable, + func: GHRFunc, + user_data: gpointer, + ) -> guint; +} +extern "C" { + pub fn g_hash_table_foreach_steal( + hash_table: *mut GHashTable, + func: GHRFunc, + user_data: gpointer, + ) -> guint; +} +extern "C" { + pub fn g_hash_table_size(hash_table: *mut GHashTable) -> guint; +} +extern "C" { + pub fn g_hash_table_get_keys(hash_table: *mut GHashTable) -> *mut GList; +} +extern "C" { + pub fn g_hash_table_get_values(hash_table: *mut GHashTable) -> *mut GList; +} +extern "C" { + pub fn g_hash_table_get_keys_as_array( + hash_table: *mut GHashTable, + length: *mut guint, + ) -> *mut gpointer; +} +extern "C" { + pub fn g_hash_table_get_keys_as_ptr_array(hash_table: *mut GHashTable) -> *mut GPtrArray; +} +extern "C" { + pub fn g_hash_table_get_values_as_ptr_array(hash_table: *mut GHashTable) -> *mut GPtrArray; +} +extern "C" { + pub fn g_hash_table_iter_init(iter: *mut GHashTableIter, hash_table: *mut GHashTable); +} +extern "C" { + pub fn g_hash_table_iter_next( + iter: *mut GHashTableIter, + key: *mut gpointer, + value: *mut gpointer, + ) -> gboolean; +} +extern "C" { + pub fn g_hash_table_iter_get_hash_table(iter: *mut GHashTableIter) -> *mut GHashTable; +} +extern "C" { + pub fn g_hash_table_iter_remove(iter: *mut GHashTableIter); +} +extern "C" { + pub fn g_hash_table_iter_replace(iter: *mut GHashTableIter, value: gpointer); +} +extern "C" { + pub fn g_hash_table_iter_steal(iter: *mut GHashTableIter); +} +extern "C" { + pub fn g_hash_table_ref(hash_table: *mut GHashTable) -> *mut GHashTable; +} +extern "C" { + pub fn g_hash_table_unref(hash_table: *mut GHashTable); +} +extern "C" { + pub fn g_str_equal(v1: gconstpointer, v2: gconstpointer) -> gboolean; +} +extern "C" { + pub fn g_str_hash(v: gconstpointer) -> guint; +} +extern "C" { + pub fn g_int_equal(v1: gconstpointer, v2: gconstpointer) -> gboolean; +} +extern "C" { + pub fn g_int_hash(v: gconstpointer) -> guint; +} +extern "C" { + pub fn g_int64_equal(v1: gconstpointer, v2: gconstpointer) -> gboolean; +} +extern "C" { + pub fn g_int64_hash(v: gconstpointer) -> guint; +} +extern "C" { + pub fn g_double_equal(v1: gconstpointer, v2: gconstpointer) -> gboolean; +} +extern "C" { + pub fn g_double_hash(v: gconstpointer) -> guint; +} +extern "C" { + pub fn g_direct_hash(v: gconstpointer) -> guint; +} +extern "C" { + pub fn g_direct_equal(v1: gconstpointer, v2: gconstpointer) -> gboolean; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GHmac { + _unused: [u8; 0], +} +pub type GHmac = _GHmac; +extern "C" { + pub fn g_hmac_new(digest_type: GChecksumType, key: *const guchar, key_len: gsize) + -> *mut GHmac; +} +extern "C" { + pub fn g_hmac_copy(hmac: *const GHmac) -> *mut GHmac; +} +extern "C" { + pub fn g_hmac_ref(hmac: *mut GHmac) -> *mut GHmac; +} +extern "C" { + pub fn g_hmac_unref(hmac: *mut GHmac); +} +extern "C" { + pub fn g_hmac_update(hmac: *mut GHmac, data: *const guchar, length: gssize); +} +extern "C" { + pub fn g_hmac_get_string(hmac: *mut GHmac) -> *const gchar; +} +extern "C" { + pub fn g_hmac_get_digest(hmac: *mut GHmac, buffer: *mut guint8, digest_len: *mut gsize); +} +extern "C" { + pub fn g_compute_hmac_for_data( + digest_type: GChecksumType, + key: *const guchar, + key_len: gsize, + data: *const guchar, + length: gsize, + ) -> *mut gchar; +} +extern "C" { + pub fn g_compute_hmac_for_string( + digest_type: GChecksumType, + key: *const guchar, + key_len: gsize, + str_: *const gchar, + length: gssize, + ) -> *mut gchar; +} +extern "C" { + pub fn g_compute_hmac_for_bytes( + digest_type: GChecksumType, + key: *mut GBytes, + data: *mut GBytes, + ) -> *mut gchar; +} +pub type GHook = _GHook; +pub type GHookList = _GHookList; +pub type GHookCompareFunc = + ::std::option::Option gint>; +pub type GHookFindFunc = + ::std::option::Option gboolean>; +pub type GHookMarshaller = + ::std::option::Option; +pub type GHookCheckMarshaller = ::std::option::Option< + unsafe extern "C" fn(hook: *mut GHook, marshal_data: gpointer) -> gboolean, +>; +pub type GHookFunc = ::std::option::Option; +pub type GHookCheckFunc = ::std::option::Option gboolean>; +pub type GHookFinalizeFunc = + ::std::option::Option; +pub const GHookFlagMask_G_HOOK_FLAG_ACTIVE: GHookFlagMask = 1; +pub const GHookFlagMask_G_HOOK_FLAG_IN_CALL: GHookFlagMask = 2; +pub const GHookFlagMask_G_HOOK_FLAG_MASK: GHookFlagMask = 15; +pub type GHookFlagMask = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GHookList { + pub seq_id: gulong, + pub _bitfield_align_1: [u16; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>, + pub hooks: *mut GHook, + pub dummy3: gpointer, + pub finalize_hook: GHookFinalizeFunc, + pub dummy: [gpointer; 2usize], +} +#[test] +fn bindgen_test_layout__GHookList() { + const UNINIT: ::std::mem::MaybeUninit<_GHookList> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GHookList>(), + 56usize, + concat!("Size of: ", stringify!(_GHookList)) + ); + assert_eq!( + ::std::mem::align_of::<_GHookList>(), + 8usize, + concat!("Alignment of ", stringify!(_GHookList)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).seq_id) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GHookList), + "::", + stringify!(seq_id) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).hooks) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_GHookList), + "::", + stringify!(hooks) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dummy3) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_GHookList), + "::", + stringify!(dummy3) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).finalize_hook) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_GHookList), + "::", + stringify!(finalize_hook) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(_GHookList), + "::", + stringify!(dummy) + ) + ); +} +impl _GHookList { + #[inline] + pub fn hook_size(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 16u8) as u32) } + } + #[inline] + pub fn set_hook_size(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 16u8, val as u64) + } + } + #[inline] + pub fn is_setup(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u32) } + } + #[inline] + pub fn set_is_setup(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(16usize, 1u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + hook_size: guint, + is_setup: guint, + ) -> __BindgenBitfieldUnit<[u8; 3usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 16u8, { + let hook_size: u32 = unsafe { ::std::mem::transmute(hook_size) }; + hook_size as u64 + }); + __bindgen_bitfield_unit.set(16usize, 1u8, { + let is_setup: u32 = unsafe { ::std::mem::transmute(is_setup) }; + is_setup as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GHook { + pub data: gpointer, + pub next: *mut GHook, + pub prev: *mut GHook, + pub ref_count: guint, + pub hook_id: gulong, + pub flags: guint, + pub func: gpointer, + pub destroy: GDestroyNotify, +} +#[test] +fn bindgen_test_layout__GHook() { + const UNINIT: ::std::mem::MaybeUninit<_GHook> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GHook>(), + 64usize, + concat!("Size of: ", stringify!(_GHook)) + ); + assert_eq!( + ::std::mem::align_of::<_GHook>(), + 8usize, + concat!("Alignment of ", stringify!(_GHook)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GHook), + "::", + stringify!(data) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GHook), + "::", + stringify!(next) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_GHook), + "::", + stringify!(prev) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ref_count) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_GHook), + "::", + stringify!(ref_count) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).hook_id) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_GHook), + "::", + stringify!(hook_id) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(_GHook), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(_GHook), + "::", + stringify!(func) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(_GHook), + "::", + stringify!(destroy) + ) + ); +} +extern "C" { + pub fn g_hook_list_init(hook_list: *mut GHookList, hook_size: guint); +} +extern "C" { + pub fn g_hook_list_clear(hook_list: *mut GHookList); +} +extern "C" { + pub fn g_hook_alloc(hook_list: *mut GHookList) -> *mut GHook; +} +extern "C" { + pub fn g_hook_free(hook_list: *mut GHookList, hook: *mut GHook); +} +extern "C" { + pub fn g_hook_ref(hook_list: *mut GHookList, hook: *mut GHook) -> *mut GHook; +} +extern "C" { + pub fn g_hook_unref(hook_list: *mut GHookList, hook: *mut GHook); +} +extern "C" { + pub fn g_hook_destroy(hook_list: *mut GHookList, hook_id: gulong) -> gboolean; +} +extern "C" { + pub fn g_hook_destroy_link(hook_list: *mut GHookList, hook: *mut GHook); +} +extern "C" { + pub fn g_hook_prepend(hook_list: *mut GHookList, hook: *mut GHook); +} +extern "C" { + pub fn g_hook_insert_before(hook_list: *mut GHookList, sibling: *mut GHook, hook: *mut GHook); +} +extern "C" { + pub fn g_hook_insert_sorted( + hook_list: *mut GHookList, + hook: *mut GHook, + func: GHookCompareFunc, + ); +} +extern "C" { + pub fn g_hook_get(hook_list: *mut GHookList, hook_id: gulong) -> *mut GHook; +} +extern "C" { + pub fn g_hook_find( + hook_list: *mut GHookList, + need_valids: gboolean, + func: GHookFindFunc, + data: gpointer, + ) -> *mut GHook; +} +extern "C" { + pub fn g_hook_find_data( + hook_list: *mut GHookList, + need_valids: gboolean, + data: gpointer, + ) -> *mut GHook; +} +extern "C" { + pub fn g_hook_find_func( + hook_list: *mut GHookList, + need_valids: gboolean, + func: gpointer, + ) -> *mut GHook; +} +extern "C" { + pub fn g_hook_find_func_data( + hook_list: *mut GHookList, + need_valids: gboolean, + func: gpointer, + data: gpointer, + ) -> *mut GHook; +} +extern "C" { + pub fn g_hook_first_valid(hook_list: *mut GHookList, may_be_in_call: gboolean) -> *mut GHook; +} +extern "C" { + pub fn g_hook_next_valid( + hook_list: *mut GHookList, + hook: *mut GHook, + may_be_in_call: gboolean, + ) -> *mut GHook; +} +extern "C" { + pub fn g_hook_compare_ids(new_hook: *mut GHook, sibling: *mut GHook) -> gint; +} +extern "C" { + pub fn g_hook_list_invoke(hook_list: *mut GHookList, may_recurse: gboolean); +} +extern "C" { + pub fn g_hook_list_invoke_check(hook_list: *mut GHookList, may_recurse: gboolean); +} +extern "C" { + pub fn g_hook_list_marshal( + hook_list: *mut GHookList, + may_recurse: gboolean, + marshaller: GHookMarshaller, + marshal_data: gpointer, + ); +} +extern "C" { + pub fn g_hook_list_marshal_check( + hook_list: *mut GHookList, + may_recurse: gboolean, + marshaller: GHookCheckMarshaller, + marshal_data: gpointer, + ); +} +extern "C" { + pub fn g_hostname_is_non_ascii(hostname: *const gchar) -> gboolean; +} +extern "C" { + pub fn g_hostname_is_ascii_encoded(hostname: *const gchar) -> gboolean; +} +extern "C" { + pub fn g_hostname_is_ip_address(hostname: *const gchar) -> gboolean; +} +extern "C" { + pub fn g_hostname_to_ascii(hostname: *const gchar) -> *mut gchar; +} +extern "C" { + pub fn g_hostname_to_unicode(hostname: *const gchar) -> *mut gchar; +} +pub type GPollFD = _GPollFD; +pub type GPollFunc = ::std::option::Option< + unsafe extern "C" fn(ufds: *mut GPollFD, nfsd: guint, timeout_: gint) -> gint, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GPollFD { + pub fd: gint, + pub events: gushort, + pub revents: gushort, +} +#[test] +fn bindgen_test_layout__GPollFD() { + const UNINIT: ::std::mem::MaybeUninit<_GPollFD> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GPollFD>(), + 8usize, + concat!("Size of: ", stringify!(_GPollFD)) + ); + assert_eq!( + ::std::mem::align_of::<_GPollFD>(), + 4usize, + concat!("Alignment of ", stringify!(_GPollFD)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).fd) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GPollFD), + "::", + stringify!(fd) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).events) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_GPollFD), + "::", + stringify!(events) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).revents) as usize - ptr as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(_GPollFD), + "::", + stringify!(revents) + ) + ); +} +extern "C" { + pub fn g_poll(fds: *mut GPollFD, nfds: guint, timeout: gint) -> gint; +} +pub type GSList = _GSList; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GSList { + pub data: gpointer, + pub next: *mut GSList, +} +#[test] +fn bindgen_test_layout__GSList() { + const UNINIT: ::std::mem::MaybeUninit<_GSList> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GSList>(), + 16usize, + concat!("Size of: ", stringify!(_GSList)) + ); + assert_eq!( + ::std::mem::align_of::<_GSList>(), + 8usize, + concat!("Alignment of ", stringify!(_GSList)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GSList), + "::", + stringify!(data) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GSList), + "::", + stringify!(next) + ) + ); +} +extern "C" { + pub fn g_slist_alloc() -> *mut GSList; +} +extern "C" { + pub fn g_slist_free(list: *mut GSList); +} +extern "C" { + pub fn g_slist_free_1(list: *mut GSList); +} +extern "C" { + pub fn g_slist_free_full(list: *mut GSList, free_func: GDestroyNotify); +} +extern "C" { + pub fn g_slist_append(list: *mut GSList, data: gpointer) -> *mut GSList; +} +extern "C" { + pub fn g_slist_prepend(list: *mut GSList, data: gpointer) -> *mut GSList; +} +extern "C" { + pub fn g_slist_insert(list: *mut GSList, data: gpointer, position: gint) -> *mut GSList; +} +extern "C" { + pub fn g_slist_insert_sorted( + list: *mut GSList, + data: gpointer, + func: GCompareFunc, + ) -> *mut GSList; +} +extern "C" { + pub fn g_slist_insert_sorted_with_data( + list: *mut GSList, + data: gpointer, + func: GCompareDataFunc, + user_data: gpointer, + ) -> *mut GSList; +} +extern "C" { + pub fn g_slist_insert_before( + slist: *mut GSList, + sibling: *mut GSList, + data: gpointer, + ) -> *mut GSList; +} +extern "C" { + pub fn g_slist_concat(list1: *mut GSList, list2: *mut GSList) -> *mut GSList; +} +extern "C" { + pub fn g_slist_remove(list: *mut GSList, data: gconstpointer) -> *mut GSList; +} +extern "C" { + pub fn g_slist_remove_all(list: *mut GSList, data: gconstpointer) -> *mut GSList; +} +extern "C" { + pub fn g_slist_remove_link(list: *mut GSList, link_: *mut GSList) -> *mut GSList; +} +extern "C" { + pub fn g_slist_delete_link(list: *mut GSList, link_: *mut GSList) -> *mut GSList; +} +extern "C" { + pub fn g_slist_reverse(list: *mut GSList) -> *mut GSList; +} +extern "C" { + pub fn g_slist_copy(list: *mut GSList) -> *mut GSList; +} +extern "C" { + pub fn g_slist_copy_deep( + list: *mut GSList, + func: GCopyFunc, + user_data: gpointer, + ) -> *mut GSList; +} +extern "C" { + pub fn g_slist_nth(list: *mut GSList, n: guint) -> *mut GSList; +} +extern "C" { + pub fn g_slist_find(list: *mut GSList, data: gconstpointer) -> *mut GSList; +} +extern "C" { + pub fn g_slist_find_custom( + list: *mut GSList, + data: gconstpointer, + func: GCompareFunc, + ) -> *mut GSList; +} +extern "C" { + pub fn g_slist_position(list: *mut GSList, llink: *mut GSList) -> gint; +} +extern "C" { + pub fn g_slist_index(list: *mut GSList, data: gconstpointer) -> gint; +} +extern "C" { + pub fn g_slist_last(list: *mut GSList) -> *mut GSList; +} +extern "C" { + pub fn g_slist_length(list: *mut GSList) -> guint; +} +extern "C" { + pub fn g_slist_foreach(list: *mut GSList, func: GFunc, user_data: gpointer); +} +extern "C" { + pub fn g_slist_sort(list: *mut GSList, compare_func: GCompareFunc) -> *mut GSList; +} +extern "C" { + pub fn g_slist_sort_with_data( + list: *mut GSList, + compare_func: GCompareDataFunc, + user_data: gpointer, + ) -> *mut GSList; +} +extern "C" { + pub fn g_slist_nth_data(list: *mut GSList, n: guint) -> gpointer; +} +extern "C" { + pub fn g_clear_slist(slist_ptr: *mut *mut GSList, destroy: GDestroyNotify); +} +pub const GIOCondition_G_IO_IN: GIOCondition = 1; +pub const GIOCondition_G_IO_OUT: GIOCondition = 4; +pub const GIOCondition_G_IO_PRI: GIOCondition = 2; +pub const GIOCondition_G_IO_ERR: GIOCondition = 8; +pub const GIOCondition_G_IO_HUP: GIOCondition = 16; +pub const GIOCondition_G_IO_NVAL: GIOCondition = 32; +pub type GIOCondition = ::std::os::raw::c_uint; +pub const GMainContextFlags_G_MAIN_CONTEXT_FLAGS_NONE: GMainContextFlags = 0; +pub const GMainContextFlags_G_MAIN_CONTEXT_FLAGS_OWNERLESS_POLLING: GMainContextFlags = 1; +pub type GMainContextFlags = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GMainContext { + _unused: [u8; 0], +} +pub type GMainContext = _GMainContext; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GMainLoop { + _unused: [u8; 0], +} +pub type GMainLoop = _GMainLoop; +pub type GSource = _GSource; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GSourcePrivate { + _unused: [u8; 0], +} +pub type GSourcePrivate = _GSourcePrivate; +pub type GSourceCallbackFuncs = _GSourceCallbackFuncs; +pub type GSourceFuncs = _GSourceFuncs; +pub type GSourceFunc = ::std::option::Option gboolean>; +pub type GSourceOnceFunc = ::std::option::Option; +pub type GChildWatchFunc = + ::std::option::Option; +pub type GSourceDisposeFunc = ::std::option::Option; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GSource { + pub callback_data: gpointer, + pub callback_funcs: *mut GSourceCallbackFuncs, + pub source_funcs: *const GSourceFuncs, + pub ref_count: guint, + pub context: *mut GMainContext, + pub priority: gint, + pub flags: guint, + pub source_id: guint, + pub poll_fds: *mut GSList, + pub prev: *mut GSource, + pub next: *mut GSource, + pub name: *mut ::std::os::raw::c_char, + pub priv_: *mut GSourcePrivate, +} +#[test] +fn bindgen_test_layout__GSource() { + const UNINIT: ::std::mem::MaybeUninit<_GSource> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GSource>(), + 96usize, + concat!("Size of: ", stringify!(_GSource)) + ); + assert_eq!( + ::std::mem::align_of::<_GSource>(), + 8usize, + concat!("Alignment of ", stringify!(_GSource)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).callback_data) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GSource), + "::", + stringify!(callback_data) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).callback_funcs) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GSource), + "::", + stringify!(callback_funcs) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).source_funcs) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_GSource), + "::", + stringify!(source_funcs) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ref_count) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_GSource), + "::", + stringify!(ref_count) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_GSource), + "::", + stringify!(context) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).priority) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(_GSource), + "::", + stringify!(priority) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(_GSource), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).source_id) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(_GSource), + "::", + stringify!(source_id) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).poll_fds) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(_GSource), + "::", + stringify!(poll_fds) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(_GSource), + "::", + stringify!(prev) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(_GSource), + "::", + stringify!(next) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(_GSource), + "::", + stringify!(name) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).priv_) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(_GSource), + "::", + stringify!(priv_) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GSourceCallbackFuncs { + pub ref_: ::std::option::Option, + pub unref: ::std::option::Option, + pub get: ::std::option::Option< + unsafe extern "C" fn( + cb_data: gpointer, + source: *mut GSource, + func: *mut GSourceFunc, + data: *mut gpointer, + ), + >, +} +#[test] +fn bindgen_test_layout__GSourceCallbackFuncs() { + const UNINIT: ::std::mem::MaybeUninit<_GSourceCallbackFuncs> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GSourceCallbackFuncs>(), + 24usize, + concat!("Size of: ", stringify!(_GSourceCallbackFuncs)) + ); + assert_eq!( + ::std::mem::align_of::<_GSourceCallbackFuncs>(), + 8usize, + concat!("Alignment of ", stringify!(_GSourceCallbackFuncs)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ref_) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GSourceCallbackFuncs), + "::", + stringify!(ref_) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).unref) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GSourceCallbackFuncs), + "::", + stringify!(unref) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_GSourceCallbackFuncs), + "::", + stringify!(get) + ) + ); +} +pub type GSourceDummyMarshal = ::std::option::Option; +pub type GSourceFuncsPrepareFunc = ::std::option::Option< + unsafe extern "C" fn(source: *mut GSource, timeout_: *mut gint) -> gboolean, +>; +pub type GSourceFuncsCheckFunc = + ::std::option::Option gboolean>; +pub type GSourceFuncsDispatchFunc = ::std::option::Option< + unsafe extern "C" fn( + source: *mut GSource, + callback: GSourceFunc, + user_data: gpointer, + ) -> gboolean, +>; +pub type GSourceFuncsFinalizeFunc = + ::std::option::Option; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GSourceFuncs { + pub prepare: GSourceFuncsPrepareFunc, + pub check: GSourceFuncsCheckFunc, + pub dispatch: GSourceFuncsDispatchFunc, + pub finalize: GSourceFuncsFinalizeFunc, + pub closure_callback: GSourceFunc, + pub closure_marshal: GSourceDummyMarshal, +} +#[test] +fn bindgen_test_layout__GSourceFuncs() { + const UNINIT: ::std::mem::MaybeUninit<_GSourceFuncs> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GSourceFuncs>(), + 48usize, + concat!("Size of: ", stringify!(_GSourceFuncs)) + ); + assert_eq!( + ::std::mem::align_of::<_GSourceFuncs>(), + 8usize, + concat!("Alignment of ", stringify!(_GSourceFuncs)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).prepare) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GSourceFuncs), + "::", + stringify!(prepare) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).check) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GSourceFuncs), + "::", + stringify!(check) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dispatch) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_GSourceFuncs), + "::", + stringify!(dispatch) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).finalize) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_GSourceFuncs), + "::", + stringify!(finalize) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).closure_callback) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_GSourceFuncs), + "::", + stringify!(closure_callback) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).closure_marshal) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(_GSourceFuncs), + "::", + stringify!(closure_marshal) + ) + ); +} +extern "C" { + pub fn g_main_context_new() -> *mut GMainContext; +} +extern "C" { + pub fn g_main_context_new_with_flags(flags: GMainContextFlags) -> *mut GMainContext; +} +extern "C" { + pub fn g_main_context_ref(context: *mut GMainContext) -> *mut GMainContext; +} +extern "C" { + pub fn g_main_context_unref(context: *mut GMainContext); +} +extern "C" { + pub fn g_main_context_default() -> *mut GMainContext; +} +extern "C" { + pub fn g_main_context_iteration(context: *mut GMainContext, may_block: gboolean) -> gboolean; +} +extern "C" { + pub fn g_main_context_pending(context: *mut GMainContext) -> gboolean; +} +extern "C" { + pub fn g_main_context_find_source_by_id( + context: *mut GMainContext, + source_id: guint, + ) -> *mut GSource; +} +extern "C" { + pub fn g_main_context_find_source_by_user_data( + context: *mut GMainContext, + user_data: gpointer, + ) -> *mut GSource; +} +extern "C" { + pub fn g_main_context_find_source_by_funcs_user_data( + context: *mut GMainContext, + funcs: *mut GSourceFuncs, + user_data: gpointer, + ) -> *mut GSource; +} +extern "C" { + pub fn g_main_context_wakeup(context: *mut GMainContext); +} +extern "C" { + pub fn g_main_context_acquire(context: *mut GMainContext) -> gboolean; +} +extern "C" { + pub fn g_main_context_release(context: *mut GMainContext); +} +extern "C" { + pub fn g_main_context_is_owner(context: *mut GMainContext) -> gboolean; +} +extern "C" { + pub fn g_main_context_wait( + context: *mut GMainContext, + cond: *mut GCond, + mutex: *mut GMutex, + ) -> gboolean; +} +extern "C" { + pub fn g_main_context_prepare(context: *mut GMainContext, priority: *mut gint) -> gboolean; +} +extern "C" { + pub fn g_main_context_query( + context: *mut GMainContext, + max_priority: gint, + timeout_: *mut gint, + fds: *mut GPollFD, + n_fds: gint, + ) -> gint; +} +extern "C" { + pub fn g_main_context_check( + context: *mut GMainContext, + max_priority: gint, + fds: *mut GPollFD, + n_fds: gint, + ) -> gboolean; +} +extern "C" { + pub fn g_main_context_dispatch(context: *mut GMainContext); +} +extern "C" { + pub fn g_main_context_set_poll_func(context: *mut GMainContext, func: GPollFunc); +} +extern "C" { + pub fn g_main_context_get_poll_func(context: *mut GMainContext) -> GPollFunc; +} +extern "C" { + pub fn g_main_context_add_poll(context: *mut GMainContext, fd: *mut GPollFD, priority: gint); +} +extern "C" { + pub fn g_main_context_remove_poll(context: *mut GMainContext, fd: *mut GPollFD); +} +extern "C" { + pub fn g_main_depth() -> gint; +} +extern "C" { + pub fn g_main_current_source() -> *mut GSource; +} +extern "C" { + pub fn g_main_context_push_thread_default(context: *mut GMainContext); +} +extern "C" { + pub fn g_main_context_pop_thread_default(context: *mut GMainContext); +} +extern "C" { + pub fn g_main_context_get_thread_default() -> *mut GMainContext; +} +extern "C" { + pub fn g_main_context_ref_thread_default() -> *mut GMainContext; +} +pub type GMainContextPusher = ::std::os::raw::c_void; +extern "C" { + pub fn g_main_loop_new(context: *mut GMainContext, is_running: gboolean) -> *mut GMainLoop; +} +extern "C" { + pub fn g_main_loop_run(loop_: *mut GMainLoop); +} +extern "C" { + pub fn g_main_loop_quit(loop_: *mut GMainLoop); +} +extern "C" { + pub fn g_main_loop_ref(loop_: *mut GMainLoop) -> *mut GMainLoop; +} +extern "C" { + pub fn g_main_loop_unref(loop_: *mut GMainLoop); +} +extern "C" { + pub fn g_main_loop_is_running(loop_: *mut GMainLoop) -> gboolean; +} +extern "C" { + pub fn g_main_loop_get_context(loop_: *mut GMainLoop) -> *mut GMainContext; +} +extern "C" { + pub fn g_source_new(source_funcs: *mut GSourceFuncs, struct_size: guint) -> *mut GSource; +} +extern "C" { + pub fn g_source_set_dispose_function(source: *mut GSource, dispose: GSourceDisposeFunc); +} +extern "C" { + pub fn g_source_ref(source: *mut GSource) -> *mut GSource; +} +extern "C" { + pub fn g_source_unref(source: *mut GSource); +} +extern "C" { + pub fn g_source_attach(source: *mut GSource, context: *mut GMainContext) -> guint; +} +extern "C" { + pub fn g_source_destroy(source: *mut GSource); +} +extern "C" { + pub fn g_source_set_priority(source: *mut GSource, priority: gint); +} +extern "C" { + pub fn g_source_get_priority(source: *mut GSource) -> gint; +} +extern "C" { + pub fn g_source_set_can_recurse(source: *mut GSource, can_recurse: gboolean); +} +extern "C" { + pub fn g_source_get_can_recurse(source: *mut GSource) -> gboolean; +} +extern "C" { + pub fn g_source_get_id(source: *mut GSource) -> guint; +} +extern "C" { + pub fn g_source_get_context(source: *mut GSource) -> *mut GMainContext; +} +extern "C" { + pub fn g_source_set_callback( + source: *mut GSource, + func: GSourceFunc, + data: gpointer, + notify: GDestroyNotify, + ); +} +extern "C" { + pub fn g_source_set_funcs(source: *mut GSource, funcs: *mut GSourceFuncs); +} +extern "C" { + pub fn g_source_is_destroyed(source: *mut GSource) -> gboolean; +} +extern "C" { + pub fn g_source_set_name(source: *mut GSource, name: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn g_source_set_static_name(source: *mut GSource, name: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn g_source_get_name(source: *mut GSource) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn g_source_set_name_by_id(tag: guint, name: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn g_source_set_ready_time(source: *mut GSource, ready_time: gint64); +} +extern "C" { + pub fn g_source_get_ready_time(source: *mut GSource) -> gint64; +} +extern "C" { + pub fn g_source_add_unix_fd(source: *mut GSource, fd: gint, events: GIOCondition) -> gpointer; +} +extern "C" { + pub fn g_source_modify_unix_fd(source: *mut GSource, tag: gpointer, new_events: GIOCondition); +} +extern "C" { + pub fn g_source_remove_unix_fd(source: *mut GSource, tag: gpointer); +} +extern "C" { + pub fn g_source_query_unix_fd(source: *mut GSource, tag: gpointer) -> GIOCondition; +} +extern "C" { + pub fn g_source_set_callback_indirect( + source: *mut GSource, + callback_data: gpointer, + callback_funcs: *mut GSourceCallbackFuncs, + ); +} +extern "C" { + pub fn g_source_add_poll(source: *mut GSource, fd: *mut GPollFD); +} +extern "C" { + pub fn g_source_remove_poll(source: *mut GSource, fd: *mut GPollFD); +} +extern "C" { + pub fn g_source_add_child_source(source: *mut GSource, child_source: *mut GSource); +} +extern "C" { + pub fn g_source_remove_child_source(source: *mut GSource, child_source: *mut GSource); +} +extern "C" { + pub fn g_source_get_current_time(source: *mut GSource, timeval: *mut GTimeVal); +} +extern "C" { + pub fn g_source_get_time(source: *mut GSource) -> gint64; +} +extern "C" { + pub fn g_idle_source_new() -> *mut GSource; +} +extern "C" { + pub fn g_child_watch_source_new(pid: GPid) -> *mut GSource; +} +extern "C" { + pub fn g_timeout_source_new(interval: guint) -> *mut GSource; +} +extern "C" { + pub fn g_timeout_source_new_seconds(interval: guint) -> *mut GSource; +} +extern "C" { + pub fn g_get_current_time(result: *mut GTimeVal); +} +extern "C" { + pub fn g_get_monotonic_time() -> gint64; +} +extern "C" { + pub fn g_get_real_time() -> gint64; +} +extern "C" { + pub fn g_source_remove(tag: guint) -> gboolean; +} +extern "C" { + pub fn g_source_remove_by_user_data(user_data: gpointer) -> gboolean; +} +extern "C" { + pub fn g_source_remove_by_funcs_user_data( + funcs: *mut GSourceFuncs, + user_data: gpointer, + ) -> gboolean; +} +pub type GClearHandleFunc = ::std::option::Option; +extern "C" { + pub fn g_clear_handle_id(tag_ptr: *mut guint, clear_func: GClearHandleFunc); +} +extern "C" { + pub fn g_timeout_add_full( + priority: gint, + interval: guint, + function: GSourceFunc, + data: gpointer, + notify: GDestroyNotify, + ) -> guint; +} +extern "C" { + pub fn g_timeout_add(interval: guint, function: GSourceFunc, data: gpointer) -> guint; +} +extern "C" { + pub fn g_timeout_add_once(interval: guint, function: GSourceOnceFunc, data: gpointer) -> guint; +} +extern "C" { + pub fn g_timeout_add_seconds_full( + priority: gint, + interval: guint, + function: GSourceFunc, + data: gpointer, + notify: GDestroyNotify, + ) -> guint; +} +extern "C" { + pub fn g_timeout_add_seconds(interval: guint, function: GSourceFunc, data: gpointer) -> guint; +} +extern "C" { + pub fn g_timeout_add_seconds_once( + interval: guint, + function: GSourceOnceFunc, + data: gpointer, + ) -> guint; +} +extern "C" { + pub fn g_child_watch_add_full( + priority: gint, + pid: GPid, + function: GChildWatchFunc, + data: gpointer, + notify: GDestroyNotify, + ) -> guint; +} +extern "C" { + pub fn g_child_watch_add(pid: GPid, function: GChildWatchFunc, data: gpointer) -> guint; +} +extern "C" { + pub fn g_idle_add(function: GSourceFunc, data: gpointer) -> guint; +} +extern "C" { + pub fn g_idle_add_full( + priority: gint, + function: GSourceFunc, + data: gpointer, + notify: GDestroyNotify, + ) -> guint; +} +extern "C" { + pub fn g_idle_add_once(function: GSourceOnceFunc, data: gpointer) -> guint; +} +extern "C" { + pub fn g_idle_remove_by_data(data: gpointer) -> gboolean; +} +extern "C" { + pub fn g_main_context_invoke_full( + context: *mut GMainContext, + priority: gint, + function: GSourceFunc, + data: gpointer, + notify: GDestroyNotify, + ); +} +extern "C" { + pub fn g_main_context_invoke(context: *mut GMainContext, function: GSourceFunc, data: gpointer); +} +extern "C" { + pub static mut g_timeout_funcs: GSourceFuncs; +} +extern "C" { + pub static mut g_child_watch_funcs: GSourceFuncs; +} +extern "C" { + pub static mut g_idle_funcs: GSourceFuncs; +} +extern "C" { + pub static mut g_unix_signal_funcs: GSourceFuncs; +} +extern "C" { + pub static mut g_unix_fd_source_funcs: GSourceFuncs; +} +pub type gunichar = guint32; +pub type gunichar2 = guint16; +pub const GUnicodeType_G_UNICODE_CONTROL: GUnicodeType = 0; +pub const GUnicodeType_G_UNICODE_FORMAT: GUnicodeType = 1; +pub const GUnicodeType_G_UNICODE_UNASSIGNED: GUnicodeType = 2; +pub const GUnicodeType_G_UNICODE_PRIVATE_USE: GUnicodeType = 3; +pub const GUnicodeType_G_UNICODE_SURROGATE: GUnicodeType = 4; +pub const GUnicodeType_G_UNICODE_LOWERCASE_LETTER: GUnicodeType = 5; +pub const GUnicodeType_G_UNICODE_MODIFIER_LETTER: GUnicodeType = 6; +pub const GUnicodeType_G_UNICODE_OTHER_LETTER: GUnicodeType = 7; +pub const GUnicodeType_G_UNICODE_TITLECASE_LETTER: GUnicodeType = 8; +pub const GUnicodeType_G_UNICODE_UPPERCASE_LETTER: GUnicodeType = 9; +pub const GUnicodeType_G_UNICODE_SPACING_MARK: GUnicodeType = 10; +pub const GUnicodeType_G_UNICODE_ENCLOSING_MARK: GUnicodeType = 11; +pub const GUnicodeType_G_UNICODE_NON_SPACING_MARK: GUnicodeType = 12; +pub const GUnicodeType_G_UNICODE_DECIMAL_NUMBER: GUnicodeType = 13; +pub const GUnicodeType_G_UNICODE_LETTER_NUMBER: GUnicodeType = 14; +pub const GUnicodeType_G_UNICODE_OTHER_NUMBER: GUnicodeType = 15; +pub const GUnicodeType_G_UNICODE_CONNECT_PUNCTUATION: GUnicodeType = 16; +pub const GUnicodeType_G_UNICODE_DASH_PUNCTUATION: GUnicodeType = 17; +pub const GUnicodeType_G_UNICODE_CLOSE_PUNCTUATION: GUnicodeType = 18; +pub const GUnicodeType_G_UNICODE_FINAL_PUNCTUATION: GUnicodeType = 19; +pub const GUnicodeType_G_UNICODE_INITIAL_PUNCTUATION: GUnicodeType = 20; +pub const GUnicodeType_G_UNICODE_OTHER_PUNCTUATION: GUnicodeType = 21; +pub const GUnicodeType_G_UNICODE_OPEN_PUNCTUATION: GUnicodeType = 22; +pub const GUnicodeType_G_UNICODE_CURRENCY_SYMBOL: GUnicodeType = 23; +pub const GUnicodeType_G_UNICODE_MODIFIER_SYMBOL: GUnicodeType = 24; +pub const GUnicodeType_G_UNICODE_MATH_SYMBOL: GUnicodeType = 25; +pub const GUnicodeType_G_UNICODE_OTHER_SYMBOL: GUnicodeType = 26; +pub const GUnicodeType_G_UNICODE_LINE_SEPARATOR: GUnicodeType = 27; +pub const GUnicodeType_G_UNICODE_PARAGRAPH_SEPARATOR: GUnicodeType = 28; +pub const GUnicodeType_G_UNICODE_SPACE_SEPARATOR: GUnicodeType = 29; +pub type GUnicodeType = ::std::os::raw::c_uint; +pub const GUnicodeBreakType_G_UNICODE_BREAK_MANDATORY: GUnicodeBreakType = 0; +pub const GUnicodeBreakType_G_UNICODE_BREAK_CARRIAGE_RETURN: GUnicodeBreakType = 1; +pub const GUnicodeBreakType_G_UNICODE_BREAK_LINE_FEED: GUnicodeBreakType = 2; +pub const GUnicodeBreakType_G_UNICODE_BREAK_COMBINING_MARK: GUnicodeBreakType = 3; +pub const GUnicodeBreakType_G_UNICODE_BREAK_SURROGATE: GUnicodeBreakType = 4; +pub const GUnicodeBreakType_G_UNICODE_BREAK_ZERO_WIDTH_SPACE: GUnicodeBreakType = 5; +pub const GUnicodeBreakType_G_UNICODE_BREAK_INSEPARABLE: GUnicodeBreakType = 6; +pub const GUnicodeBreakType_G_UNICODE_BREAK_NON_BREAKING_GLUE: GUnicodeBreakType = 7; +pub const GUnicodeBreakType_G_UNICODE_BREAK_CONTINGENT: GUnicodeBreakType = 8; +pub const GUnicodeBreakType_G_UNICODE_BREAK_SPACE: GUnicodeBreakType = 9; +pub const GUnicodeBreakType_G_UNICODE_BREAK_AFTER: GUnicodeBreakType = 10; +pub const GUnicodeBreakType_G_UNICODE_BREAK_BEFORE: GUnicodeBreakType = 11; +pub const GUnicodeBreakType_G_UNICODE_BREAK_BEFORE_AND_AFTER: GUnicodeBreakType = 12; +pub const GUnicodeBreakType_G_UNICODE_BREAK_HYPHEN: GUnicodeBreakType = 13; +pub const GUnicodeBreakType_G_UNICODE_BREAK_NON_STARTER: GUnicodeBreakType = 14; +pub const GUnicodeBreakType_G_UNICODE_BREAK_OPEN_PUNCTUATION: GUnicodeBreakType = 15; +pub const GUnicodeBreakType_G_UNICODE_BREAK_CLOSE_PUNCTUATION: GUnicodeBreakType = 16; +pub const GUnicodeBreakType_G_UNICODE_BREAK_QUOTATION: GUnicodeBreakType = 17; +pub const GUnicodeBreakType_G_UNICODE_BREAK_EXCLAMATION: GUnicodeBreakType = 18; +pub const GUnicodeBreakType_G_UNICODE_BREAK_IDEOGRAPHIC: GUnicodeBreakType = 19; +pub const GUnicodeBreakType_G_UNICODE_BREAK_NUMERIC: GUnicodeBreakType = 20; +pub const GUnicodeBreakType_G_UNICODE_BREAK_INFIX_SEPARATOR: GUnicodeBreakType = 21; +pub const GUnicodeBreakType_G_UNICODE_BREAK_SYMBOL: GUnicodeBreakType = 22; +pub const GUnicodeBreakType_G_UNICODE_BREAK_ALPHABETIC: GUnicodeBreakType = 23; +pub const GUnicodeBreakType_G_UNICODE_BREAK_PREFIX: GUnicodeBreakType = 24; +pub const GUnicodeBreakType_G_UNICODE_BREAK_POSTFIX: GUnicodeBreakType = 25; +pub const GUnicodeBreakType_G_UNICODE_BREAK_COMPLEX_CONTEXT: GUnicodeBreakType = 26; +pub const GUnicodeBreakType_G_UNICODE_BREAK_AMBIGUOUS: GUnicodeBreakType = 27; +pub const GUnicodeBreakType_G_UNICODE_BREAK_UNKNOWN: GUnicodeBreakType = 28; +pub const GUnicodeBreakType_G_UNICODE_BREAK_NEXT_LINE: GUnicodeBreakType = 29; +pub const GUnicodeBreakType_G_UNICODE_BREAK_WORD_JOINER: GUnicodeBreakType = 30; +pub const GUnicodeBreakType_G_UNICODE_BREAK_HANGUL_L_JAMO: GUnicodeBreakType = 31; +pub const GUnicodeBreakType_G_UNICODE_BREAK_HANGUL_V_JAMO: GUnicodeBreakType = 32; +pub const GUnicodeBreakType_G_UNICODE_BREAK_HANGUL_T_JAMO: GUnicodeBreakType = 33; +pub const GUnicodeBreakType_G_UNICODE_BREAK_HANGUL_LV_SYLLABLE: GUnicodeBreakType = 34; +pub const GUnicodeBreakType_G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE: GUnicodeBreakType = 35; +pub const GUnicodeBreakType_G_UNICODE_BREAK_CLOSE_PARANTHESIS: GUnicodeBreakType = 36; +pub const GUnicodeBreakType_G_UNICODE_BREAK_CLOSE_PARENTHESIS: GUnicodeBreakType = 36; +pub const GUnicodeBreakType_G_UNICODE_BREAK_CONDITIONAL_JAPANESE_STARTER: GUnicodeBreakType = 37; +pub const GUnicodeBreakType_G_UNICODE_BREAK_HEBREW_LETTER: GUnicodeBreakType = 38; +pub const GUnicodeBreakType_G_UNICODE_BREAK_REGIONAL_INDICATOR: GUnicodeBreakType = 39; +pub const GUnicodeBreakType_G_UNICODE_BREAK_EMOJI_BASE: GUnicodeBreakType = 40; +pub const GUnicodeBreakType_G_UNICODE_BREAK_EMOJI_MODIFIER: GUnicodeBreakType = 41; +pub const GUnicodeBreakType_G_UNICODE_BREAK_ZERO_WIDTH_JOINER: GUnicodeBreakType = 42; +pub const GUnicodeBreakType_G_UNICODE_BREAK_AKSARA: GUnicodeBreakType = 43; +pub const GUnicodeBreakType_G_UNICODE_BREAK_AKSARA_PRE_BASE: GUnicodeBreakType = 44; +pub const GUnicodeBreakType_G_UNICODE_BREAK_AKSARA_START: GUnicodeBreakType = 45; +pub const GUnicodeBreakType_G_UNICODE_BREAK_VIRAMA_FINAL: GUnicodeBreakType = 46; +pub const GUnicodeBreakType_G_UNICODE_BREAK_VIRAMA: GUnicodeBreakType = 47; +pub type GUnicodeBreakType = ::std::os::raw::c_uint; +pub const GUnicodeScript_G_UNICODE_SCRIPT_INVALID_CODE: GUnicodeScript = -1; +pub const GUnicodeScript_G_UNICODE_SCRIPT_COMMON: GUnicodeScript = 0; +pub const GUnicodeScript_G_UNICODE_SCRIPT_INHERITED: GUnicodeScript = 1; +pub const GUnicodeScript_G_UNICODE_SCRIPT_ARABIC: GUnicodeScript = 2; +pub const GUnicodeScript_G_UNICODE_SCRIPT_ARMENIAN: GUnicodeScript = 3; +pub const GUnicodeScript_G_UNICODE_SCRIPT_BENGALI: GUnicodeScript = 4; +pub const GUnicodeScript_G_UNICODE_SCRIPT_BOPOMOFO: GUnicodeScript = 5; +pub const GUnicodeScript_G_UNICODE_SCRIPT_CHEROKEE: GUnicodeScript = 6; +pub const GUnicodeScript_G_UNICODE_SCRIPT_COPTIC: GUnicodeScript = 7; +pub const GUnicodeScript_G_UNICODE_SCRIPT_CYRILLIC: GUnicodeScript = 8; +pub const GUnicodeScript_G_UNICODE_SCRIPT_DESERET: GUnicodeScript = 9; +pub const GUnicodeScript_G_UNICODE_SCRIPT_DEVANAGARI: GUnicodeScript = 10; +pub const GUnicodeScript_G_UNICODE_SCRIPT_ETHIOPIC: GUnicodeScript = 11; +pub const GUnicodeScript_G_UNICODE_SCRIPT_GEORGIAN: GUnicodeScript = 12; +pub const GUnicodeScript_G_UNICODE_SCRIPT_GOTHIC: GUnicodeScript = 13; +pub const GUnicodeScript_G_UNICODE_SCRIPT_GREEK: GUnicodeScript = 14; +pub const GUnicodeScript_G_UNICODE_SCRIPT_GUJARATI: GUnicodeScript = 15; +pub const GUnicodeScript_G_UNICODE_SCRIPT_GURMUKHI: GUnicodeScript = 16; +pub const GUnicodeScript_G_UNICODE_SCRIPT_HAN: GUnicodeScript = 17; +pub const GUnicodeScript_G_UNICODE_SCRIPT_HANGUL: GUnicodeScript = 18; +pub const GUnicodeScript_G_UNICODE_SCRIPT_HEBREW: GUnicodeScript = 19; +pub const GUnicodeScript_G_UNICODE_SCRIPT_HIRAGANA: GUnicodeScript = 20; +pub const GUnicodeScript_G_UNICODE_SCRIPT_KANNADA: GUnicodeScript = 21; +pub const GUnicodeScript_G_UNICODE_SCRIPT_KATAKANA: GUnicodeScript = 22; +pub const GUnicodeScript_G_UNICODE_SCRIPT_KHMER: GUnicodeScript = 23; +pub const GUnicodeScript_G_UNICODE_SCRIPT_LAO: GUnicodeScript = 24; +pub const GUnicodeScript_G_UNICODE_SCRIPT_LATIN: GUnicodeScript = 25; +pub const GUnicodeScript_G_UNICODE_SCRIPT_MALAYALAM: GUnicodeScript = 26; +pub const GUnicodeScript_G_UNICODE_SCRIPT_MONGOLIAN: GUnicodeScript = 27; +pub const GUnicodeScript_G_UNICODE_SCRIPT_MYANMAR: GUnicodeScript = 28; +pub const GUnicodeScript_G_UNICODE_SCRIPT_OGHAM: GUnicodeScript = 29; +pub const GUnicodeScript_G_UNICODE_SCRIPT_OLD_ITALIC: GUnicodeScript = 30; +pub const GUnicodeScript_G_UNICODE_SCRIPT_ORIYA: GUnicodeScript = 31; +pub const GUnicodeScript_G_UNICODE_SCRIPT_RUNIC: GUnicodeScript = 32; +pub const GUnicodeScript_G_UNICODE_SCRIPT_SINHALA: GUnicodeScript = 33; +pub const GUnicodeScript_G_UNICODE_SCRIPT_SYRIAC: GUnicodeScript = 34; +pub const GUnicodeScript_G_UNICODE_SCRIPT_TAMIL: GUnicodeScript = 35; +pub const GUnicodeScript_G_UNICODE_SCRIPT_TELUGU: GUnicodeScript = 36; +pub const GUnicodeScript_G_UNICODE_SCRIPT_THAANA: GUnicodeScript = 37; +pub const GUnicodeScript_G_UNICODE_SCRIPT_THAI: GUnicodeScript = 38; +pub const GUnicodeScript_G_UNICODE_SCRIPT_TIBETAN: GUnicodeScript = 39; +pub const GUnicodeScript_G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL: GUnicodeScript = 40; +pub const GUnicodeScript_G_UNICODE_SCRIPT_YI: GUnicodeScript = 41; +pub const GUnicodeScript_G_UNICODE_SCRIPT_TAGALOG: GUnicodeScript = 42; +pub const GUnicodeScript_G_UNICODE_SCRIPT_HANUNOO: GUnicodeScript = 43; +pub const GUnicodeScript_G_UNICODE_SCRIPT_BUHID: GUnicodeScript = 44; +pub const GUnicodeScript_G_UNICODE_SCRIPT_TAGBANWA: GUnicodeScript = 45; +pub const GUnicodeScript_G_UNICODE_SCRIPT_BRAILLE: GUnicodeScript = 46; +pub const GUnicodeScript_G_UNICODE_SCRIPT_CYPRIOT: GUnicodeScript = 47; +pub const GUnicodeScript_G_UNICODE_SCRIPT_LIMBU: GUnicodeScript = 48; +pub const GUnicodeScript_G_UNICODE_SCRIPT_OSMANYA: GUnicodeScript = 49; +pub const GUnicodeScript_G_UNICODE_SCRIPT_SHAVIAN: GUnicodeScript = 50; +pub const GUnicodeScript_G_UNICODE_SCRIPT_LINEAR_B: GUnicodeScript = 51; +pub const GUnicodeScript_G_UNICODE_SCRIPT_TAI_LE: GUnicodeScript = 52; +pub const GUnicodeScript_G_UNICODE_SCRIPT_UGARITIC: GUnicodeScript = 53; +pub const GUnicodeScript_G_UNICODE_SCRIPT_NEW_TAI_LUE: GUnicodeScript = 54; +pub const GUnicodeScript_G_UNICODE_SCRIPT_BUGINESE: GUnicodeScript = 55; +pub const GUnicodeScript_G_UNICODE_SCRIPT_GLAGOLITIC: GUnicodeScript = 56; +pub const GUnicodeScript_G_UNICODE_SCRIPT_TIFINAGH: GUnicodeScript = 57; +pub const GUnicodeScript_G_UNICODE_SCRIPT_SYLOTI_NAGRI: GUnicodeScript = 58; +pub const GUnicodeScript_G_UNICODE_SCRIPT_OLD_PERSIAN: GUnicodeScript = 59; +pub const GUnicodeScript_G_UNICODE_SCRIPT_KHAROSHTHI: GUnicodeScript = 60; +pub const GUnicodeScript_G_UNICODE_SCRIPT_UNKNOWN: GUnicodeScript = 61; +pub const GUnicodeScript_G_UNICODE_SCRIPT_BALINESE: GUnicodeScript = 62; +pub const GUnicodeScript_G_UNICODE_SCRIPT_CUNEIFORM: GUnicodeScript = 63; +pub const GUnicodeScript_G_UNICODE_SCRIPT_PHOENICIAN: GUnicodeScript = 64; +pub const GUnicodeScript_G_UNICODE_SCRIPT_PHAGS_PA: GUnicodeScript = 65; +pub const GUnicodeScript_G_UNICODE_SCRIPT_NKO: GUnicodeScript = 66; +pub const GUnicodeScript_G_UNICODE_SCRIPT_KAYAH_LI: GUnicodeScript = 67; +pub const GUnicodeScript_G_UNICODE_SCRIPT_LEPCHA: GUnicodeScript = 68; +pub const GUnicodeScript_G_UNICODE_SCRIPT_REJANG: GUnicodeScript = 69; +pub const GUnicodeScript_G_UNICODE_SCRIPT_SUNDANESE: GUnicodeScript = 70; +pub const GUnicodeScript_G_UNICODE_SCRIPT_SAURASHTRA: GUnicodeScript = 71; +pub const GUnicodeScript_G_UNICODE_SCRIPT_CHAM: GUnicodeScript = 72; +pub const GUnicodeScript_G_UNICODE_SCRIPT_OL_CHIKI: GUnicodeScript = 73; +pub const GUnicodeScript_G_UNICODE_SCRIPT_VAI: GUnicodeScript = 74; +pub const GUnicodeScript_G_UNICODE_SCRIPT_CARIAN: GUnicodeScript = 75; +pub const GUnicodeScript_G_UNICODE_SCRIPT_LYCIAN: GUnicodeScript = 76; +pub const GUnicodeScript_G_UNICODE_SCRIPT_LYDIAN: GUnicodeScript = 77; +pub const GUnicodeScript_G_UNICODE_SCRIPT_AVESTAN: GUnicodeScript = 78; +pub const GUnicodeScript_G_UNICODE_SCRIPT_BAMUM: GUnicodeScript = 79; +pub const GUnicodeScript_G_UNICODE_SCRIPT_EGYPTIAN_HIEROGLYPHS: GUnicodeScript = 80; +pub const GUnicodeScript_G_UNICODE_SCRIPT_IMPERIAL_ARAMAIC: GUnicodeScript = 81; +pub const GUnicodeScript_G_UNICODE_SCRIPT_INSCRIPTIONAL_PAHLAVI: GUnicodeScript = 82; +pub const GUnicodeScript_G_UNICODE_SCRIPT_INSCRIPTIONAL_PARTHIAN: GUnicodeScript = 83; +pub const GUnicodeScript_G_UNICODE_SCRIPT_JAVANESE: GUnicodeScript = 84; +pub const GUnicodeScript_G_UNICODE_SCRIPT_KAITHI: GUnicodeScript = 85; +pub const GUnicodeScript_G_UNICODE_SCRIPT_LISU: GUnicodeScript = 86; +pub const GUnicodeScript_G_UNICODE_SCRIPT_MEETEI_MAYEK: GUnicodeScript = 87; +pub const GUnicodeScript_G_UNICODE_SCRIPT_OLD_SOUTH_ARABIAN: GUnicodeScript = 88; +pub const GUnicodeScript_G_UNICODE_SCRIPT_OLD_TURKIC: GUnicodeScript = 89; +pub const GUnicodeScript_G_UNICODE_SCRIPT_SAMARITAN: GUnicodeScript = 90; +pub const GUnicodeScript_G_UNICODE_SCRIPT_TAI_THAM: GUnicodeScript = 91; +pub const GUnicodeScript_G_UNICODE_SCRIPT_TAI_VIET: GUnicodeScript = 92; +pub const GUnicodeScript_G_UNICODE_SCRIPT_BATAK: GUnicodeScript = 93; +pub const GUnicodeScript_G_UNICODE_SCRIPT_BRAHMI: GUnicodeScript = 94; +pub const GUnicodeScript_G_UNICODE_SCRIPT_MANDAIC: GUnicodeScript = 95; +pub const GUnicodeScript_G_UNICODE_SCRIPT_CHAKMA: GUnicodeScript = 96; +pub const GUnicodeScript_G_UNICODE_SCRIPT_MEROITIC_CURSIVE: GUnicodeScript = 97; +pub const GUnicodeScript_G_UNICODE_SCRIPT_MEROITIC_HIEROGLYPHS: GUnicodeScript = 98; +pub const GUnicodeScript_G_UNICODE_SCRIPT_MIAO: GUnicodeScript = 99; +pub const GUnicodeScript_G_UNICODE_SCRIPT_SHARADA: GUnicodeScript = 100; +pub const GUnicodeScript_G_UNICODE_SCRIPT_SORA_SOMPENG: GUnicodeScript = 101; +pub const GUnicodeScript_G_UNICODE_SCRIPT_TAKRI: GUnicodeScript = 102; +pub const GUnicodeScript_G_UNICODE_SCRIPT_BASSA_VAH: GUnicodeScript = 103; +pub const GUnicodeScript_G_UNICODE_SCRIPT_CAUCASIAN_ALBANIAN: GUnicodeScript = 104; +pub const GUnicodeScript_G_UNICODE_SCRIPT_DUPLOYAN: GUnicodeScript = 105; +pub const GUnicodeScript_G_UNICODE_SCRIPT_ELBASAN: GUnicodeScript = 106; +pub const GUnicodeScript_G_UNICODE_SCRIPT_GRANTHA: GUnicodeScript = 107; +pub const GUnicodeScript_G_UNICODE_SCRIPT_KHOJKI: GUnicodeScript = 108; +pub const GUnicodeScript_G_UNICODE_SCRIPT_KHUDAWADI: GUnicodeScript = 109; +pub const GUnicodeScript_G_UNICODE_SCRIPT_LINEAR_A: GUnicodeScript = 110; +pub const GUnicodeScript_G_UNICODE_SCRIPT_MAHAJANI: GUnicodeScript = 111; +pub const GUnicodeScript_G_UNICODE_SCRIPT_MANICHAEAN: GUnicodeScript = 112; +pub const GUnicodeScript_G_UNICODE_SCRIPT_MENDE_KIKAKUI: GUnicodeScript = 113; +pub const GUnicodeScript_G_UNICODE_SCRIPT_MODI: GUnicodeScript = 114; +pub const GUnicodeScript_G_UNICODE_SCRIPT_MRO: GUnicodeScript = 115; +pub const GUnicodeScript_G_UNICODE_SCRIPT_NABATAEAN: GUnicodeScript = 116; +pub const GUnicodeScript_G_UNICODE_SCRIPT_OLD_NORTH_ARABIAN: GUnicodeScript = 117; +pub const GUnicodeScript_G_UNICODE_SCRIPT_OLD_PERMIC: GUnicodeScript = 118; +pub const GUnicodeScript_G_UNICODE_SCRIPT_PAHAWH_HMONG: GUnicodeScript = 119; +pub const GUnicodeScript_G_UNICODE_SCRIPT_PALMYRENE: GUnicodeScript = 120; +pub const GUnicodeScript_G_UNICODE_SCRIPT_PAU_CIN_HAU: GUnicodeScript = 121; +pub const GUnicodeScript_G_UNICODE_SCRIPT_PSALTER_PAHLAVI: GUnicodeScript = 122; +pub const GUnicodeScript_G_UNICODE_SCRIPT_SIDDHAM: GUnicodeScript = 123; +pub const GUnicodeScript_G_UNICODE_SCRIPT_TIRHUTA: GUnicodeScript = 124; +pub const GUnicodeScript_G_UNICODE_SCRIPT_WARANG_CITI: GUnicodeScript = 125; +pub const GUnicodeScript_G_UNICODE_SCRIPT_AHOM: GUnicodeScript = 126; +pub const GUnicodeScript_G_UNICODE_SCRIPT_ANATOLIAN_HIEROGLYPHS: GUnicodeScript = 127; +pub const GUnicodeScript_G_UNICODE_SCRIPT_HATRAN: GUnicodeScript = 128; +pub const GUnicodeScript_G_UNICODE_SCRIPT_MULTANI: GUnicodeScript = 129; +pub const GUnicodeScript_G_UNICODE_SCRIPT_OLD_HUNGARIAN: GUnicodeScript = 130; +pub const GUnicodeScript_G_UNICODE_SCRIPT_SIGNWRITING: GUnicodeScript = 131; +pub const GUnicodeScript_G_UNICODE_SCRIPT_ADLAM: GUnicodeScript = 132; +pub const GUnicodeScript_G_UNICODE_SCRIPT_BHAIKSUKI: GUnicodeScript = 133; +pub const GUnicodeScript_G_UNICODE_SCRIPT_MARCHEN: GUnicodeScript = 134; +pub const GUnicodeScript_G_UNICODE_SCRIPT_NEWA: GUnicodeScript = 135; +pub const GUnicodeScript_G_UNICODE_SCRIPT_OSAGE: GUnicodeScript = 136; +pub const GUnicodeScript_G_UNICODE_SCRIPT_TANGUT: GUnicodeScript = 137; +pub const GUnicodeScript_G_UNICODE_SCRIPT_MASARAM_GONDI: GUnicodeScript = 138; +pub const GUnicodeScript_G_UNICODE_SCRIPT_NUSHU: GUnicodeScript = 139; +pub const GUnicodeScript_G_UNICODE_SCRIPT_SOYOMBO: GUnicodeScript = 140; +pub const GUnicodeScript_G_UNICODE_SCRIPT_ZANABAZAR_SQUARE: GUnicodeScript = 141; +pub const GUnicodeScript_G_UNICODE_SCRIPT_DOGRA: GUnicodeScript = 142; +pub const GUnicodeScript_G_UNICODE_SCRIPT_GUNJALA_GONDI: GUnicodeScript = 143; +pub const GUnicodeScript_G_UNICODE_SCRIPT_HANIFI_ROHINGYA: GUnicodeScript = 144; +pub const GUnicodeScript_G_UNICODE_SCRIPT_MAKASAR: GUnicodeScript = 145; +pub const GUnicodeScript_G_UNICODE_SCRIPT_MEDEFAIDRIN: GUnicodeScript = 146; +pub const GUnicodeScript_G_UNICODE_SCRIPT_OLD_SOGDIAN: GUnicodeScript = 147; +pub const GUnicodeScript_G_UNICODE_SCRIPT_SOGDIAN: GUnicodeScript = 148; +pub const GUnicodeScript_G_UNICODE_SCRIPT_ELYMAIC: GUnicodeScript = 149; +pub const GUnicodeScript_G_UNICODE_SCRIPT_NANDINAGARI: GUnicodeScript = 150; +pub const GUnicodeScript_G_UNICODE_SCRIPT_NYIAKENG_PUACHUE_HMONG: GUnicodeScript = 151; +pub const GUnicodeScript_G_UNICODE_SCRIPT_WANCHO: GUnicodeScript = 152; +pub const GUnicodeScript_G_UNICODE_SCRIPT_CHORASMIAN: GUnicodeScript = 153; +pub const GUnicodeScript_G_UNICODE_SCRIPT_DIVES_AKURU: GUnicodeScript = 154; +pub const GUnicodeScript_G_UNICODE_SCRIPT_KHITAN_SMALL_SCRIPT: GUnicodeScript = 155; +pub const GUnicodeScript_G_UNICODE_SCRIPT_YEZIDI: GUnicodeScript = 156; +pub const GUnicodeScript_G_UNICODE_SCRIPT_CYPRO_MINOAN: GUnicodeScript = 157; +pub const GUnicodeScript_G_UNICODE_SCRIPT_OLD_UYGHUR: GUnicodeScript = 158; +pub const GUnicodeScript_G_UNICODE_SCRIPT_TANGSA: GUnicodeScript = 159; +pub const GUnicodeScript_G_UNICODE_SCRIPT_TOTO: GUnicodeScript = 160; +pub const GUnicodeScript_G_UNICODE_SCRIPT_VITHKUQI: GUnicodeScript = 161; +pub const GUnicodeScript_G_UNICODE_SCRIPT_MATH: GUnicodeScript = 162; +pub const GUnicodeScript_G_UNICODE_SCRIPT_KAWI: GUnicodeScript = 163; +pub const GUnicodeScript_G_UNICODE_SCRIPT_NAG_MUNDARI: GUnicodeScript = 164; +pub type GUnicodeScript = ::std::os::raw::c_int; +extern "C" { + pub fn g_unicode_script_to_iso15924(script: GUnicodeScript) -> guint32; +} +extern "C" { + pub fn g_unicode_script_from_iso15924(iso15924: guint32) -> GUnicodeScript; +} +extern "C" { + pub fn g_unichar_isalnum(c: gunichar) -> gboolean; +} +extern "C" { + pub fn g_unichar_isalpha(c: gunichar) -> gboolean; +} +extern "C" { + pub fn g_unichar_iscntrl(c: gunichar) -> gboolean; +} +extern "C" { + pub fn g_unichar_isdigit(c: gunichar) -> gboolean; +} +extern "C" { + pub fn g_unichar_isgraph(c: gunichar) -> gboolean; +} +extern "C" { + pub fn g_unichar_islower(c: gunichar) -> gboolean; +} +extern "C" { + pub fn g_unichar_isprint(c: gunichar) -> gboolean; +} +extern "C" { + pub fn g_unichar_ispunct(c: gunichar) -> gboolean; +} +extern "C" { + pub fn g_unichar_isspace(c: gunichar) -> gboolean; +} +extern "C" { + pub fn g_unichar_isupper(c: gunichar) -> gboolean; +} +extern "C" { + pub fn g_unichar_isxdigit(c: gunichar) -> gboolean; +} +extern "C" { + pub fn g_unichar_istitle(c: gunichar) -> gboolean; +} +extern "C" { + pub fn g_unichar_isdefined(c: gunichar) -> gboolean; +} +extern "C" { + pub fn g_unichar_iswide(c: gunichar) -> gboolean; +} +extern "C" { + pub fn g_unichar_iswide_cjk(c: gunichar) -> gboolean; +} +extern "C" { + pub fn g_unichar_iszerowidth(c: gunichar) -> gboolean; +} +extern "C" { + pub fn g_unichar_ismark(c: gunichar) -> gboolean; +} +extern "C" { + pub fn g_unichar_toupper(c: gunichar) -> gunichar; +} +extern "C" { + pub fn g_unichar_tolower(c: gunichar) -> gunichar; +} +extern "C" { + pub fn g_unichar_totitle(c: gunichar) -> gunichar; +} +extern "C" { + pub fn g_unichar_digit_value(c: gunichar) -> gint; +} +extern "C" { + pub fn g_unichar_xdigit_value(c: gunichar) -> gint; +} +extern "C" { + pub fn g_unichar_type(c: gunichar) -> GUnicodeType; +} +extern "C" { + pub fn g_unichar_break_type(c: gunichar) -> GUnicodeBreakType; +} +extern "C" { + pub fn g_unichar_combining_class(uc: gunichar) -> gint; +} +extern "C" { + pub fn g_unichar_get_mirror_char(ch: gunichar, mirrored_ch: *mut gunichar) -> gboolean; +} +extern "C" { + pub fn g_unichar_get_script(ch: gunichar) -> GUnicodeScript; +} +extern "C" { + pub fn g_unichar_validate(ch: gunichar) -> gboolean; +} +extern "C" { + pub fn g_unichar_compose(a: gunichar, b: gunichar, ch: *mut gunichar) -> gboolean; +} +extern "C" { + pub fn g_unichar_decompose(ch: gunichar, a: *mut gunichar, b: *mut gunichar) -> gboolean; +} +extern "C" { + pub fn g_unichar_fully_decompose( + ch: gunichar, + compat: gboolean, + result: *mut gunichar, + result_len: gsize, + ) -> gsize; +} +extern "C" { + pub fn g_unicode_canonical_ordering(string: *mut gunichar, len: gsize); +} +extern "C" { + pub fn g_unicode_canonical_decomposition(ch: gunichar, result_len: *mut gsize) + -> *mut gunichar; +} +extern "C" { + pub static g_utf8_skip: *const gchar; +} +extern "C" { + pub fn g_utf8_get_char(p: *const gchar) -> gunichar; +} +extern "C" { + pub fn g_utf8_get_char_validated(p: *const gchar, max_len: gssize) -> gunichar; +} +extern "C" { + pub fn g_utf8_offset_to_pointer(str_: *const gchar, offset: glong) -> *mut gchar; +} +extern "C" { + pub fn g_utf8_pointer_to_offset(str_: *const gchar, pos: *const gchar) -> glong; +} +extern "C" { + pub fn g_utf8_prev_char(p: *const gchar) -> *mut gchar; +} +extern "C" { + pub fn g_utf8_find_next_char(p: *const gchar, end: *const gchar) -> *mut gchar; +} +extern "C" { + pub fn g_utf8_find_prev_char(str_: *const gchar, p: *const gchar) -> *mut gchar; +} +extern "C" { + pub fn g_utf8_strlen(p: *const gchar, max: gssize) -> glong; +} +extern "C" { + pub fn g_utf8_substring(str_: *const gchar, start_pos: glong, end_pos: glong) -> *mut gchar; +} +extern "C" { + pub fn g_utf8_strncpy(dest: *mut gchar, src: *const gchar, n: gsize) -> *mut gchar; +} +extern "C" { + pub fn g_utf8_truncate_middle(string: *const gchar, truncate_length: gsize) -> *mut gchar; +} +extern "C" { + pub fn g_utf8_strchr(p: *const gchar, len: gssize, c: gunichar) -> *mut gchar; +} +extern "C" { + pub fn g_utf8_strrchr(p: *const gchar, len: gssize, c: gunichar) -> *mut gchar; +} +extern "C" { + pub fn g_utf8_strreverse(str_: *const gchar, len: gssize) -> *mut gchar; +} +extern "C" { + pub fn g_utf8_to_utf16( + str_: *const gchar, + len: glong, + items_read: *mut glong, + items_written: *mut glong, + error: *mut *mut GError, + ) -> *mut gunichar2; +} +extern "C" { + pub fn g_utf8_to_ucs4( + str_: *const gchar, + len: glong, + items_read: *mut glong, + items_written: *mut glong, + error: *mut *mut GError, + ) -> *mut gunichar; +} +extern "C" { + pub fn g_utf8_to_ucs4_fast( + str_: *const gchar, + len: glong, + items_written: *mut glong, + ) -> *mut gunichar; +} +extern "C" { + pub fn g_utf16_to_ucs4( + str_: *const gunichar2, + len: glong, + items_read: *mut glong, + items_written: *mut glong, + error: *mut *mut GError, + ) -> *mut gunichar; +} +extern "C" { + pub fn g_utf16_to_utf8( + str_: *const gunichar2, + len: glong, + items_read: *mut glong, + items_written: *mut glong, + error: *mut *mut GError, + ) -> *mut gchar; +} +extern "C" { + pub fn g_ucs4_to_utf16( + str_: *const gunichar, + len: glong, + items_read: *mut glong, + items_written: *mut glong, + error: *mut *mut GError, + ) -> *mut gunichar2; +} +extern "C" { + pub fn g_ucs4_to_utf8( + str_: *const gunichar, + len: glong, + items_read: *mut glong, + items_written: *mut glong, + error: *mut *mut GError, + ) -> *mut gchar; +} +extern "C" { + pub fn g_unichar_to_utf8(c: gunichar, outbuf: *mut gchar) -> gint; +} +extern "C" { + pub fn g_utf8_validate(str_: *const gchar, max_len: gssize, end: *mut *const gchar) + -> gboolean; +} +extern "C" { + pub fn g_utf8_validate_len( + str_: *const gchar, + max_len: gsize, + end: *mut *const gchar, + ) -> gboolean; +} +extern "C" { + pub fn g_utf8_strup(str_: *const gchar, len: gssize) -> *mut gchar; +} +extern "C" { + pub fn g_utf8_strdown(str_: *const gchar, len: gssize) -> *mut gchar; +} +extern "C" { + pub fn g_utf8_casefold(str_: *const gchar, len: gssize) -> *mut gchar; +} +pub const GNormalizeMode_G_NORMALIZE_DEFAULT: GNormalizeMode = 0; +pub const GNormalizeMode_G_NORMALIZE_NFD: GNormalizeMode = 0; +pub const GNormalizeMode_G_NORMALIZE_DEFAULT_COMPOSE: GNormalizeMode = 1; +pub const GNormalizeMode_G_NORMALIZE_NFC: GNormalizeMode = 1; +pub const GNormalizeMode_G_NORMALIZE_ALL: GNormalizeMode = 2; +pub const GNormalizeMode_G_NORMALIZE_NFKD: GNormalizeMode = 2; +pub const GNormalizeMode_G_NORMALIZE_ALL_COMPOSE: GNormalizeMode = 3; +pub const GNormalizeMode_G_NORMALIZE_NFKC: GNormalizeMode = 3; +pub type GNormalizeMode = ::std::os::raw::c_uint; +extern "C" { + pub fn g_utf8_normalize(str_: *const gchar, len: gssize, mode: GNormalizeMode) -> *mut gchar; +} +extern "C" { + pub fn g_utf8_collate(str1: *const gchar, str2: *const gchar) -> gint; +} +extern "C" { + pub fn g_utf8_collate_key(str_: *const gchar, len: gssize) -> *mut gchar; +} +extern "C" { + pub fn g_utf8_collate_key_for_filename(str_: *const gchar, len: gssize) -> *mut gchar; +} +extern "C" { + pub fn g_utf8_make_valid(str_: *const gchar, len: gssize) -> *mut gchar; +} +pub const GAsciiType_G_ASCII_ALNUM: GAsciiType = 1; +pub const GAsciiType_G_ASCII_ALPHA: GAsciiType = 2; +pub const GAsciiType_G_ASCII_CNTRL: GAsciiType = 4; +pub const GAsciiType_G_ASCII_DIGIT: GAsciiType = 8; +pub const GAsciiType_G_ASCII_GRAPH: GAsciiType = 16; +pub const GAsciiType_G_ASCII_LOWER: GAsciiType = 32; +pub const GAsciiType_G_ASCII_PRINT: GAsciiType = 64; +pub const GAsciiType_G_ASCII_PUNCT: GAsciiType = 128; +pub const GAsciiType_G_ASCII_SPACE: GAsciiType = 256; +pub const GAsciiType_G_ASCII_UPPER: GAsciiType = 512; +pub const GAsciiType_G_ASCII_XDIGIT: GAsciiType = 1024; +pub type GAsciiType = ::std::os::raw::c_uint; +extern "C" { + pub static g_ascii_table: *const guint16; +} +extern "C" { + pub fn g_ascii_tolower(c: gchar) -> gchar; +} +extern "C" { + pub fn g_ascii_toupper(c: gchar) -> gchar; +} +extern "C" { + pub fn g_ascii_digit_value(c: gchar) -> gint; +} +extern "C" { + pub fn g_ascii_xdigit_value(c: gchar) -> gint; +} +extern "C" { + pub fn g_strdelimit( + string: *mut gchar, + delimiters: *const gchar, + new_delimiter: gchar, + ) -> *mut gchar; +} +extern "C" { + pub fn g_strcanon( + string: *mut gchar, + valid_chars: *const gchar, + substitutor: gchar, + ) -> *mut gchar; +} +extern "C" { + pub fn g_strerror(errnum: gint) -> *const gchar; +} +extern "C" { + pub fn g_strsignal(signum: gint) -> *const gchar; +} +extern "C" { + pub fn g_strreverse(string: *mut gchar) -> *mut gchar; +} +extern "C" { + pub fn g_strlcpy(dest: *mut gchar, src: *const gchar, dest_size: gsize) -> gsize; +} +extern "C" { + pub fn g_strlcat(dest: *mut gchar, src: *const gchar, dest_size: gsize) -> gsize; +} +extern "C" { + pub fn g_strstr_len( + haystack: *const gchar, + haystack_len: gssize, + needle: *const gchar, + ) -> *mut gchar; +} +extern "C" { + pub fn g_strrstr(haystack: *const gchar, needle: *const gchar) -> *mut gchar; +} +extern "C" { + pub fn g_strrstr_len( + haystack: *const gchar, + haystack_len: gssize, + needle: *const gchar, + ) -> *mut gchar; +} +extern "C" { + pub fn g_str_has_suffix(str_: *const gchar, suffix: *const gchar) -> gboolean; +} +extern "C" { + pub fn g_str_has_prefix(str_: *const gchar, prefix: *const gchar) -> gboolean; +} +extern "C" { + pub fn g_strtod(nptr: *const gchar, endptr: *mut *mut gchar) -> gdouble; +} +extern "C" { + pub fn g_ascii_strtod(nptr: *const gchar, endptr: *mut *mut gchar) -> gdouble; +} +extern "C" { + pub fn g_ascii_strtoull(nptr: *const gchar, endptr: *mut *mut gchar, base: guint) -> guint64; +} +extern "C" { + pub fn g_ascii_strtoll(nptr: *const gchar, endptr: *mut *mut gchar, base: guint) -> gint64; +} +extern "C" { + pub fn g_ascii_dtostr(buffer: *mut gchar, buf_len: gint, d: gdouble) -> *mut gchar; +} +extern "C" { + pub fn g_ascii_formatd( + buffer: *mut gchar, + buf_len: gint, + format: *const gchar, + d: gdouble, + ) -> *mut gchar; +} +extern "C" { + pub fn g_strchug(string: *mut gchar) -> *mut gchar; +} +extern "C" { + pub fn g_strchomp(string: *mut gchar) -> *mut gchar; +} +extern "C" { + pub fn g_ascii_strcasecmp(s1: *const gchar, s2: *const gchar) -> gint; +} +extern "C" { + pub fn g_ascii_strncasecmp(s1: *const gchar, s2: *const gchar, n: gsize) -> gint; +} +extern "C" { + pub fn g_ascii_strdown(str_: *const gchar, len: gssize) -> *mut gchar; +} +extern "C" { + pub fn g_ascii_strup(str_: *const gchar, len: gssize) -> *mut gchar; +} +extern "C" { + pub fn g_str_is_ascii(str_: *const gchar) -> gboolean; +} +extern "C" { + pub fn g_strcasecmp(s1: *const gchar, s2: *const gchar) -> gint; +} +extern "C" { + pub fn g_strncasecmp(s1: *const gchar, s2: *const gchar, n: guint) -> gint; +} +extern "C" { + pub fn g_strdown(string: *mut gchar) -> *mut gchar; +} +extern "C" { + pub fn g_strup(string: *mut gchar) -> *mut gchar; +} +extern "C" { + pub fn g_strdup(str_: *const gchar) -> *mut gchar; +} +extern "C" { + pub fn g_strdup_printf(format: *const gchar, ...) -> *mut gchar; +} +extern "C" { + pub fn g_strdup_vprintf(format: *const gchar, args: va_list) -> *mut gchar; +} +extern "C" { + pub fn g_strndup(str_: *const gchar, n: gsize) -> *mut gchar; +} +extern "C" { + pub fn g_strnfill(length: gsize, fill_char: gchar) -> *mut gchar; +} +extern "C" { + pub fn g_strconcat(string1: *const gchar, ...) -> *mut gchar; +} +extern "C" { + pub fn g_strjoin(separator: *const gchar, ...) -> *mut gchar; +} +extern "C" { + pub fn g_strcompress(source: *const gchar) -> *mut gchar; +} +extern "C" { + pub fn g_strescape(source: *const gchar, exceptions: *const gchar) -> *mut gchar; +} +extern "C" { + pub fn g_memdup(mem: gconstpointer, byte_size: guint) -> gpointer; +} +extern "C" { + pub fn g_memdup2(mem: gconstpointer, byte_size: gsize) -> gpointer; +} +pub type GStrv = *mut *mut gchar; +extern "C" { + pub fn g_strsplit( + string: *const gchar, + delimiter: *const gchar, + max_tokens: gint, + ) -> *mut *mut gchar; +} +extern "C" { + pub fn g_strsplit_set( + string: *const gchar, + delimiters: *const gchar, + max_tokens: gint, + ) -> *mut *mut gchar; +} +extern "C" { + pub fn g_strjoinv(separator: *const gchar, str_array: *mut *mut gchar) -> *mut gchar; +} +extern "C" { + pub fn g_strfreev(str_array: *mut *mut gchar); +} +extern "C" { + pub fn g_strdupv(str_array: *mut *mut gchar) -> *mut *mut gchar; +} +extern "C" { + pub fn g_strv_length(str_array: *mut *mut gchar) -> guint; +} +extern "C" { + pub fn g_stpcpy(dest: *mut gchar, src: *const ::std::os::raw::c_char) -> *mut gchar; +} +extern "C" { + pub fn g_str_to_ascii(str_: *const gchar, from_locale: *const gchar) -> *mut gchar; +} +extern "C" { + pub fn g_str_tokenize_and_fold( + string: *const gchar, + translit_locale: *const gchar, + ascii_alternates: *mut *mut *mut gchar, + ) -> *mut *mut gchar; +} +extern "C" { + pub fn g_str_match_string( + search_term: *const gchar, + potential_hit: *const gchar, + accept_alternates: gboolean, + ) -> gboolean; +} +extern "C" { + pub fn g_strv_contains(strv: *const *const gchar, str_: *const gchar) -> gboolean; +} +extern "C" { + pub fn g_strv_equal(strv1: *const *const gchar, strv2: *const *const gchar) -> gboolean; +} +pub const GNumberParserError_G_NUMBER_PARSER_ERROR_INVALID: GNumberParserError = 0; +pub const GNumberParserError_G_NUMBER_PARSER_ERROR_OUT_OF_BOUNDS: GNumberParserError = 1; +pub type GNumberParserError = ::std::os::raw::c_uint; +extern "C" { + pub fn g_number_parser_error_quark() -> GQuark; +} +extern "C" { + pub fn g_ascii_string_to_signed( + str_: *const gchar, + base: guint, + min: gint64, + max: gint64, + out_num: *mut gint64, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_ascii_string_to_unsigned( + str_: *const gchar, + base: guint, + min: guint64, + max: guint64, + out_num: *mut guint64, + error: *mut *mut GError, + ) -> gboolean; +} +pub type GString = _GString; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GString { + pub str_: *mut gchar, + pub len: gsize, + pub allocated_len: gsize, +} +#[test] +fn bindgen_test_layout__GString() { + const UNINIT: ::std::mem::MaybeUninit<_GString> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GString>(), + 24usize, + concat!("Size of: ", stringify!(_GString)) + ); + assert_eq!( + ::std::mem::align_of::<_GString>(), + 8usize, + concat!("Alignment of ", stringify!(_GString)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).str_) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GString), + "::", + stringify!(str_) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GString), + "::", + stringify!(len) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).allocated_len) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_GString), + "::", + stringify!(allocated_len) + ) + ); +} +extern "C" { + pub fn g_string_new(init: *const gchar) -> *mut GString; +} +extern "C" { + pub fn g_string_new_take(init: *mut gchar) -> *mut GString; +} +extern "C" { + pub fn g_string_new_len(init: *const gchar, len: gssize) -> *mut GString; +} +extern "C" { + pub fn g_string_sized_new(dfl_size: gsize) -> *mut GString; +} +extern "C" { + pub fn g_string_free(string: *mut GString, free_segment: gboolean) -> *mut gchar; +} +extern "C" { + pub fn g_string_free_and_steal(string: *mut GString) -> *mut gchar; +} +extern "C" { + pub fn g_string_free_to_bytes(string: *mut GString) -> *mut GBytes; +} +extern "C" { + pub fn g_string_equal(v: *const GString, v2: *const GString) -> gboolean; +} +extern "C" { + pub fn g_string_hash(str_: *const GString) -> guint; +} +extern "C" { + pub fn g_string_assign(string: *mut GString, rval: *const gchar) -> *mut GString; +} +extern "C" { + pub fn g_string_truncate(string: *mut GString, len: gsize) -> *mut GString; +} +extern "C" { + pub fn g_string_set_size(string: *mut GString, len: gsize) -> *mut GString; +} +extern "C" { + pub fn g_string_insert_len( + string: *mut GString, + pos: gssize, + val: *const gchar, + len: gssize, + ) -> *mut GString; +} +extern "C" { + pub fn g_string_append(string: *mut GString, val: *const gchar) -> *mut GString; +} +extern "C" { + pub fn g_string_append_len( + string: *mut GString, + val: *const gchar, + len: gssize, + ) -> *mut GString; +} +extern "C" { + pub fn g_string_append_c(string: *mut GString, c: gchar) -> *mut GString; +} +extern "C" { + pub fn g_string_append_unichar(string: *mut GString, wc: gunichar) -> *mut GString; +} +extern "C" { + pub fn g_string_prepend(string: *mut GString, val: *const gchar) -> *mut GString; +} +extern "C" { + pub fn g_string_prepend_c(string: *mut GString, c: gchar) -> *mut GString; +} +extern "C" { + pub fn g_string_prepend_unichar(string: *mut GString, wc: gunichar) -> *mut GString; +} +extern "C" { + pub fn g_string_prepend_len( + string: *mut GString, + val: *const gchar, + len: gssize, + ) -> *mut GString; +} +extern "C" { + pub fn g_string_insert(string: *mut GString, pos: gssize, val: *const gchar) -> *mut GString; +} +extern "C" { + pub fn g_string_insert_c(string: *mut GString, pos: gssize, c: gchar) -> *mut GString; +} +extern "C" { + pub fn g_string_insert_unichar(string: *mut GString, pos: gssize, wc: gunichar) + -> *mut GString; +} +extern "C" { + pub fn g_string_overwrite(string: *mut GString, pos: gsize, val: *const gchar) -> *mut GString; +} +extern "C" { + pub fn g_string_overwrite_len( + string: *mut GString, + pos: gsize, + val: *const gchar, + len: gssize, + ) -> *mut GString; +} +extern "C" { + pub fn g_string_erase(string: *mut GString, pos: gssize, len: gssize) -> *mut GString; +} +extern "C" { + pub fn g_string_replace( + string: *mut GString, + find: *const gchar, + replace: *const gchar, + limit: guint, + ) -> guint; +} +extern "C" { + pub fn g_string_ascii_down(string: *mut GString) -> *mut GString; +} +extern "C" { + pub fn g_string_ascii_up(string: *mut GString) -> *mut GString; +} +extern "C" { + pub fn g_string_vprintf(string: *mut GString, format: *const gchar, args: va_list); +} +extern "C" { + pub fn g_string_printf(string: *mut GString, format: *const gchar, ...); +} +extern "C" { + pub fn g_string_append_vprintf(string: *mut GString, format: *const gchar, args: va_list); +} +extern "C" { + pub fn g_string_append_printf(string: *mut GString, format: *const gchar, ...); +} +extern "C" { + pub fn g_string_append_uri_escaped( + string: *mut GString, + unescaped: *const gchar, + reserved_chars_allowed: *const gchar, + allow_utf8: gboolean, + ) -> *mut GString; +} +extern "C" { + pub fn g_string_down(string: *mut GString) -> *mut GString; +} +extern "C" { + pub fn g_string_up(string: *mut GString) -> *mut GString; +} +pub type GIOChannel = _GIOChannel; +pub type GIOFuncs = _GIOFuncs; +pub const GIOError_G_IO_ERROR_NONE: GIOError = 0; +pub const GIOError_G_IO_ERROR_AGAIN: GIOError = 1; +pub const GIOError_G_IO_ERROR_INVAL: GIOError = 2; +pub const GIOError_G_IO_ERROR_UNKNOWN: GIOError = 3; +pub type GIOError = ::std::os::raw::c_uint; +pub const GIOChannelError_G_IO_CHANNEL_ERROR_FBIG: GIOChannelError = 0; +pub const GIOChannelError_G_IO_CHANNEL_ERROR_INVAL: GIOChannelError = 1; +pub const GIOChannelError_G_IO_CHANNEL_ERROR_IO: GIOChannelError = 2; +pub const GIOChannelError_G_IO_CHANNEL_ERROR_ISDIR: GIOChannelError = 3; +pub const GIOChannelError_G_IO_CHANNEL_ERROR_NOSPC: GIOChannelError = 4; +pub const GIOChannelError_G_IO_CHANNEL_ERROR_NXIO: GIOChannelError = 5; +pub const GIOChannelError_G_IO_CHANNEL_ERROR_OVERFLOW: GIOChannelError = 6; +pub const GIOChannelError_G_IO_CHANNEL_ERROR_PIPE: GIOChannelError = 7; +pub const GIOChannelError_G_IO_CHANNEL_ERROR_FAILED: GIOChannelError = 8; +pub type GIOChannelError = ::std::os::raw::c_uint; +pub const GIOStatus_G_IO_STATUS_ERROR: GIOStatus = 0; +pub const GIOStatus_G_IO_STATUS_NORMAL: GIOStatus = 1; +pub const GIOStatus_G_IO_STATUS_EOF: GIOStatus = 2; +pub const GIOStatus_G_IO_STATUS_AGAIN: GIOStatus = 3; +pub type GIOStatus = ::std::os::raw::c_uint; +pub const GSeekType_G_SEEK_CUR: GSeekType = 0; +pub const GSeekType_G_SEEK_SET: GSeekType = 1; +pub const GSeekType_G_SEEK_END: GSeekType = 2; +pub type GSeekType = ::std::os::raw::c_uint; +pub const GIOFlags_G_IO_FLAG_NONE: GIOFlags = 0; +pub const GIOFlags_G_IO_FLAG_APPEND: GIOFlags = 1; +pub const GIOFlags_G_IO_FLAG_NONBLOCK: GIOFlags = 2; +pub const GIOFlags_G_IO_FLAG_IS_READABLE: GIOFlags = 4; +pub const GIOFlags_G_IO_FLAG_IS_WRITABLE: GIOFlags = 8; +pub const GIOFlags_G_IO_FLAG_IS_WRITEABLE: GIOFlags = 8; +pub const GIOFlags_G_IO_FLAG_IS_SEEKABLE: GIOFlags = 16; +pub const GIOFlags_G_IO_FLAG_MASK: GIOFlags = 31; +pub const GIOFlags_G_IO_FLAG_GET_MASK: GIOFlags = 31; +pub const GIOFlags_G_IO_FLAG_SET_MASK: GIOFlags = 3; +pub type GIOFlags = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GIOChannel { + pub ref_count: gint, + pub funcs: *mut GIOFuncs, + pub encoding: *mut gchar, + pub read_cd: GIConv, + pub write_cd: GIConv, + pub line_term: *mut gchar, + pub line_term_len: guint, + pub buf_size: gsize, + pub read_buf: *mut GString, + pub encoded_read_buf: *mut GString, + pub write_buf: *mut GString, + pub partial_write_buf: [gchar; 6usize], + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub reserved1: gpointer, + pub reserved2: gpointer, +} +#[test] +fn bindgen_test_layout__GIOChannel() { + const UNINIT: ::std::mem::MaybeUninit<_GIOChannel> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GIOChannel>(), + 112usize, + concat!("Size of: ", stringify!(_GIOChannel)) + ); + assert_eq!( + ::std::mem::align_of::<_GIOChannel>(), + 8usize, + concat!("Alignment of ", stringify!(_GIOChannel)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ref_count) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GIOChannel), + "::", + stringify!(ref_count) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).funcs) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GIOChannel), + "::", + stringify!(funcs) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).encoding) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_GIOChannel), + "::", + stringify!(encoding) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).read_cd) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_GIOChannel), + "::", + stringify!(read_cd) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).write_cd) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_GIOChannel), + "::", + stringify!(write_cd) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).line_term) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(_GIOChannel), + "::", + stringify!(line_term) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).line_term_len) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(_GIOChannel), + "::", + stringify!(line_term_len) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).buf_size) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(_GIOChannel), + "::", + stringify!(buf_size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).read_buf) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(_GIOChannel), + "::", + stringify!(read_buf) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).encoded_read_buf) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(_GIOChannel), + "::", + stringify!(encoded_read_buf) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).write_buf) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(_GIOChannel), + "::", + stringify!(write_buf) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).partial_write_buf) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(_GIOChannel), + "::", + stringify!(partial_write_buf) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(_GIOChannel), + "::", + stringify!(reserved1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(_GIOChannel), + "::", + stringify!(reserved2) + ) + ); +} +impl _GIOChannel { + #[inline] + pub fn use_buffer(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_use_buffer(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn do_encode(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_do_encode(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub fn close_on_unref(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_close_on_unref(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub fn is_readable(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } + } + #[inline] + pub fn set_is_readable(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub fn is_writeable(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } + } + #[inline] + pub fn set_is_writeable(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub fn is_seekable(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } + } + #[inline] + pub fn set_is_seekable(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + use_buffer: guint, + do_encode: guint, + close_on_unref: guint, + is_readable: guint, + is_writeable: guint, + is_seekable: guint, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let use_buffer: u32 = unsafe { ::std::mem::transmute(use_buffer) }; + use_buffer as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let do_encode: u32 = unsafe { ::std::mem::transmute(do_encode) }; + do_encode as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let close_on_unref: u32 = unsafe { ::std::mem::transmute(close_on_unref) }; + close_on_unref as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let is_readable: u32 = unsafe { ::std::mem::transmute(is_readable) }; + is_readable as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let is_writeable: u32 = unsafe { ::std::mem::transmute(is_writeable) }; + is_writeable as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let is_seekable: u32 = unsafe { ::std::mem::transmute(is_seekable) }; + is_seekable as u64 + }); + __bindgen_bitfield_unit + } +} +pub type GIOFunc = ::std::option::Option< + unsafe extern "C" fn( + source: *mut GIOChannel, + condition: GIOCondition, + data: gpointer, + ) -> gboolean, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GIOFuncs { + pub io_read: ::std::option::Option< + unsafe extern "C" fn( + channel: *mut GIOChannel, + buf: *mut gchar, + count: gsize, + bytes_read: *mut gsize, + err: *mut *mut GError, + ) -> GIOStatus, + >, + pub io_write: ::std::option::Option< + unsafe extern "C" fn( + channel: *mut GIOChannel, + buf: *const gchar, + count: gsize, + bytes_written: *mut gsize, + err: *mut *mut GError, + ) -> GIOStatus, + >, + pub io_seek: ::std::option::Option< + unsafe extern "C" fn( + channel: *mut GIOChannel, + offset: gint64, + type_: GSeekType, + err: *mut *mut GError, + ) -> GIOStatus, + >, + pub io_close: ::std::option::Option< + unsafe extern "C" fn(channel: *mut GIOChannel, err: *mut *mut GError) -> GIOStatus, + >, + pub io_create_watch: ::std::option::Option< + unsafe extern "C" fn(channel: *mut GIOChannel, condition: GIOCondition) -> *mut GSource, + >, + pub io_free: ::std::option::Option, + pub io_set_flags: ::std::option::Option< + unsafe extern "C" fn( + channel: *mut GIOChannel, + flags: GIOFlags, + err: *mut *mut GError, + ) -> GIOStatus, + >, + pub io_get_flags: + ::std::option::Option GIOFlags>, +} +#[test] +fn bindgen_test_layout__GIOFuncs() { + const UNINIT: ::std::mem::MaybeUninit<_GIOFuncs> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GIOFuncs>(), + 64usize, + concat!("Size of: ", stringify!(_GIOFuncs)) + ); + assert_eq!( + ::std::mem::align_of::<_GIOFuncs>(), + 8usize, + concat!("Alignment of ", stringify!(_GIOFuncs)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).io_read) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GIOFuncs), + "::", + stringify!(io_read) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).io_write) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GIOFuncs), + "::", + stringify!(io_write) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).io_seek) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_GIOFuncs), + "::", + stringify!(io_seek) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).io_close) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_GIOFuncs), + "::", + stringify!(io_close) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).io_create_watch) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_GIOFuncs), + "::", + stringify!(io_create_watch) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).io_free) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(_GIOFuncs), + "::", + stringify!(io_free) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).io_set_flags) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(_GIOFuncs), + "::", + stringify!(io_set_flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).io_get_flags) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(_GIOFuncs), + "::", + stringify!(io_get_flags) + ) + ); +} +extern "C" { + pub fn g_io_channel_init(channel: *mut GIOChannel); +} +extern "C" { + pub fn g_io_channel_ref(channel: *mut GIOChannel) -> *mut GIOChannel; +} +extern "C" { + pub fn g_io_channel_unref(channel: *mut GIOChannel); +} +extern "C" { + pub fn g_io_channel_read( + channel: *mut GIOChannel, + buf: *mut gchar, + count: gsize, + bytes_read: *mut gsize, + ) -> GIOError; +} +extern "C" { + pub fn g_io_channel_write( + channel: *mut GIOChannel, + buf: *const gchar, + count: gsize, + bytes_written: *mut gsize, + ) -> GIOError; +} +extern "C" { + pub fn g_io_channel_seek( + channel: *mut GIOChannel, + offset: gint64, + type_: GSeekType, + ) -> GIOError; +} +extern "C" { + pub fn g_io_channel_close(channel: *mut GIOChannel); +} +extern "C" { + pub fn g_io_channel_shutdown( + channel: *mut GIOChannel, + flush: gboolean, + err: *mut *mut GError, + ) -> GIOStatus; +} +extern "C" { + pub fn g_io_add_watch_full( + channel: *mut GIOChannel, + priority: gint, + condition: GIOCondition, + func: GIOFunc, + user_data: gpointer, + notify: GDestroyNotify, + ) -> guint; +} +extern "C" { + pub fn g_io_create_watch(channel: *mut GIOChannel, condition: GIOCondition) -> *mut GSource; +} +extern "C" { + pub fn g_io_add_watch( + channel: *mut GIOChannel, + condition: GIOCondition, + func: GIOFunc, + user_data: gpointer, + ) -> guint; +} +extern "C" { + pub fn g_io_channel_set_buffer_size(channel: *mut GIOChannel, size: gsize); +} +extern "C" { + pub fn g_io_channel_get_buffer_size(channel: *mut GIOChannel) -> gsize; +} +extern "C" { + pub fn g_io_channel_get_buffer_condition(channel: *mut GIOChannel) -> GIOCondition; +} +extern "C" { + pub fn g_io_channel_set_flags( + channel: *mut GIOChannel, + flags: GIOFlags, + error: *mut *mut GError, + ) -> GIOStatus; +} +extern "C" { + pub fn g_io_channel_get_flags(channel: *mut GIOChannel) -> GIOFlags; +} +extern "C" { + pub fn g_io_channel_set_line_term( + channel: *mut GIOChannel, + line_term: *const gchar, + length: gint, + ); +} +extern "C" { + pub fn g_io_channel_get_line_term(channel: *mut GIOChannel, length: *mut gint) -> *const gchar; +} +extern "C" { + pub fn g_io_channel_set_buffered(channel: *mut GIOChannel, buffered: gboolean); +} +extern "C" { + pub fn g_io_channel_get_buffered(channel: *mut GIOChannel) -> gboolean; +} +extern "C" { + pub fn g_io_channel_set_encoding( + channel: *mut GIOChannel, + encoding: *const gchar, + error: *mut *mut GError, + ) -> GIOStatus; +} +extern "C" { + pub fn g_io_channel_get_encoding(channel: *mut GIOChannel) -> *const gchar; +} +extern "C" { + pub fn g_io_channel_set_close_on_unref(channel: *mut GIOChannel, do_close: gboolean); +} +extern "C" { + pub fn g_io_channel_get_close_on_unref(channel: *mut GIOChannel) -> gboolean; +} +extern "C" { + pub fn g_io_channel_flush(channel: *mut GIOChannel, error: *mut *mut GError) -> GIOStatus; +} +extern "C" { + pub fn g_io_channel_read_line( + channel: *mut GIOChannel, + str_return: *mut *mut gchar, + length: *mut gsize, + terminator_pos: *mut gsize, + error: *mut *mut GError, + ) -> GIOStatus; +} +extern "C" { + pub fn g_io_channel_read_line_string( + channel: *mut GIOChannel, + buffer: *mut GString, + terminator_pos: *mut gsize, + error: *mut *mut GError, + ) -> GIOStatus; +} +extern "C" { + pub fn g_io_channel_read_to_end( + channel: *mut GIOChannel, + str_return: *mut *mut gchar, + length: *mut gsize, + error: *mut *mut GError, + ) -> GIOStatus; +} +extern "C" { + pub fn g_io_channel_read_chars( + channel: *mut GIOChannel, + buf: *mut gchar, + count: gsize, + bytes_read: *mut gsize, + error: *mut *mut GError, + ) -> GIOStatus; +} +extern "C" { + pub fn g_io_channel_read_unichar( + channel: *mut GIOChannel, + thechar: *mut gunichar, + error: *mut *mut GError, + ) -> GIOStatus; +} +extern "C" { + pub fn g_io_channel_write_chars( + channel: *mut GIOChannel, + buf: *const gchar, + count: gssize, + bytes_written: *mut gsize, + error: *mut *mut GError, + ) -> GIOStatus; +} +extern "C" { + pub fn g_io_channel_write_unichar( + channel: *mut GIOChannel, + thechar: gunichar, + error: *mut *mut GError, + ) -> GIOStatus; +} +extern "C" { + pub fn g_io_channel_seek_position( + channel: *mut GIOChannel, + offset: gint64, + type_: GSeekType, + error: *mut *mut GError, + ) -> GIOStatus; +} +extern "C" { + pub fn g_io_channel_new_file( + filename: *const gchar, + mode: *const gchar, + error: *mut *mut GError, + ) -> *mut GIOChannel; +} +extern "C" { + pub fn g_io_channel_error_quark() -> GQuark; +} +extern "C" { + pub fn g_io_channel_error_from_errno(en: gint) -> GIOChannelError; +} +extern "C" { + pub fn g_io_channel_unix_new(fd: ::std::os::raw::c_int) -> *mut GIOChannel; +} +extern "C" { + pub fn g_io_channel_unix_get_fd(channel: *mut GIOChannel) -> gint; +} +extern "C" { + pub static mut g_io_watch_funcs: GSourceFuncs; +} +pub const GKeyFileError_G_KEY_FILE_ERROR_UNKNOWN_ENCODING: GKeyFileError = 0; +pub const GKeyFileError_G_KEY_FILE_ERROR_PARSE: GKeyFileError = 1; +pub const GKeyFileError_G_KEY_FILE_ERROR_NOT_FOUND: GKeyFileError = 2; +pub const GKeyFileError_G_KEY_FILE_ERROR_KEY_NOT_FOUND: GKeyFileError = 3; +pub const GKeyFileError_G_KEY_FILE_ERROR_GROUP_NOT_FOUND: GKeyFileError = 4; +pub const GKeyFileError_G_KEY_FILE_ERROR_INVALID_VALUE: GKeyFileError = 5; +pub type GKeyFileError = ::std::os::raw::c_uint; +extern "C" { + pub fn g_key_file_error_quark() -> GQuark; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GKeyFile { + _unused: [u8; 0], +} +pub type GKeyFile = _GKeyFile; +pub const GKeyFileFlags_G_KEY_FILE_NONE: GKeyFileFlags = 0; +pub const GKeyFileFlags_G_KEY_FILE_KEEP_COMMENTS: GKeyFileFlags = 1; +pub const GKeyFileFlags_G_KEY_FILE_KEEP_TRANSLATIONS: GKeyFileFlags = 2; +pub type GKeyFileFlags = ::std::os::raw::c_uint; +extern "C" { + pub fn g_key_file_new() -> *mut GKeyFile; +} +extern "C" { + pub fn g_key_file_ref(key_file: *mut GKeyFile) -> *mut GKeyFile; +} +extern "C" { + pub fn g_key_file_unref(key_file: *mut GKeyFile); +} +extern "C" { + pub fn g_key_file_free(key_file: *mut GKeyFile); +} +extern "C" { + pub fn g_key_file_set_list_separator(key_file: *mut GKeyFile, separator: gchar); +} +extern "C" { + pub fn g_key_file_load_from_file( + key_file: *mut GKeyFile, + file: *const gchar, + flags: GKeyFileFlags, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_key_file_load_from_data( + key_file: *mut GKeyFile, + data: *const gchar, + length: gsize, + flags: GKeyFileFlags, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_key_file_load_from_bytes( + key_file: *mut GKeyFile, + bytes: *mut GBytes, + flags: GKeyFileFlags, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_key_file_load_from_dirs( + key_file: *mut GKeyFile, + file: *const gchar, + search_dirs: *mut *const gchar, + full_path: *mut *mut gchar, + flags: GKeyFileFlags, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_key_file_load_from_data_dirs( + key_file: *mut GKeyFile, + file: *const gchar, + full_path: *mut *mut gchar, + flags: GKeyFileFlags, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_key_file_to_data( + key_file: *mut GKeyFile, + length: *mut gsize, + error: *mut *mut GError, + ) -> *mut gchar; +} +extern "C" { + pub fn g_key_file_save_to_file( + key_file: *mut GKeyFile, + filename: *const gchar, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_key_file_get_start_group(key_file: *mut GKeyFile) -> *mut gchar; +} +extern "C" { + pub fn g_key_file_get_groups(key_file: *mut GKeyFile, length: *mut gsize) -> *mut *mut gchar; +} +extern "C" { + pub fn g_key_file_get_keys( + key_file: *mut GKeyFile, + group_name: *const gchar, + length: *mut gsize, + error: *mut *mut GError, + ) -> *mut *mut gchar; +} +extern "C" { + pub fn g_key_file_has_group(key_file: *mut GKeyFile, group_name: *const gchar) -> gboolean; +} +extern "C" { + pub fn g_key_file_has_key( + key_file: *mut GKeyFile, + group_name: *const gchar, + key: *const gchar, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_key_file_get_value( + key_file: *mut GKeyFile, + group_name: *const gchar, + key: *const gchar, + error: *mut *mut GError, + ) -> *mut gchar; +} +extern "C" { + pub fn g_key_file_set_value( + key_file: *mut GKeyFile, + group_name: *const gchar, + key: *const gchar, + value: *const gchar, + ); +} +extern "C" { + pub fn g_key_file_get_string( + key_file: *mut GKeyFile, + group_name: *const gchar, + key: *const gchar, + error: *mut *mut GError, + ) -> *mut gchar; +} +extern "C" { + pub fn g_key_file_set_string( + key_file: *mut GKeyFile, + group_name: *const gchar, + key: *const gchar, + string: *const gchar, + ); +} +extern "C" { + pub fn g_key_file_get_locale_string( + key_file: *mut GKeyFile, + group_name: *const gchar, + key: *const gchar, + locale: *const gchar, + error: *mut *mut GError, + ) -> *mut gchar; +} +extern "C" { + pub fn g_key_file_get_locale_for_key( + key_file: *mut GKeyFile, + group_name: *const gchar, + key: *const gchar, + locale: *const gchar, + ) -> *mut gchar; +} +extern "C" { + pub fn g_key_file_set_locale_string( + key_file: *mut GKeyFile, + group_name: *const gchar, + key: *const gchar, + locale: *const gchar, + string: *const gchar, + ); +} +extern "C" { + pub fn g_key_file_get_boolean( + key_file: *mut GKeyFile, + group_name: *const gchar, + key: *const gchar, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_key_file_set_boolean( + key_file: *mut GKeyFile, + group_name: *const gchar, + key: *const gchar, + value: gboolean, + ); +} +extern "C" { + pub fn g_key_file_get_integer( + key_file: *mut GKeyFile, + group_name: *const gchar, + key: *const gchar, + error: *mut *mut GError, + ) -> gint; +} +extern "C" { + pub fn g_key_file_set_integer( + key_file: *mut GKeyFile, + group_name: *const gchar, + key: *const gchar, + value: gint, + ); +} +extern "C" { + pub fn g_key_file_get_int64( + key_file: *mut GKeyFile, + group_name: *const gchar, + key: *const gchar, + error: *mut *mut GError, + ) -> gint64; +} +extern "C" { + pub fn g_key_file_set_int64( + key_file: *mut GKeyFile, + group_name: *const gchar, + key: *const gchar, + value: gint64, + ); +} +extern "C" { + pub fn g_key_file_get_uint64( + key_file: *mut GKeyFile, + group_name: *const gchar, + key: *const gchar, + error: *mut *mut GError, + ) -> guint64; +} +extern "C" { + pub fn g_key_file_set_uint64( + key_file: *mut GKeyFile, + group_name: *const gchar, + key: *const gchar, + value: guint64, + ); +} +extern "C" { + pub fn g_key_file_get_double( + key_file: *mut GKeyFile, + group_name: *const gchar, + key: *const gchar, + error: *mut *mut GError, + ) -> gdouble; +} +extern "C" { + pub fn g_key_file_set_double( + key_file: *mut GKeyFile, + group_name: *const gchar, + key: *const gchar, + value: gdouble, + ); +} +extern "C" { + pub fn g_key_file_get_string_list( + key_file: *mut GKeyFile, + group_name: *const gchar, + key: *const gchar, + length: *mut gsize, + error: *mut *mut GError, + ) -> *mut *mut gchar; +} +extern "C" { + pub fn g_key_file_set_string_list( + key_file: *mut GKeyFile, + group_name: *const gchar, + key: *const gchar, + list: *const *const gchar, + length: gsize, + ); +} +extern "C" { + pub fn g_key_file_get_locale_string_list( + key_file: *mut GKeyFile, + group_name: *const gchar, + key: *const gchar, + locale: *const gchar, + length: *mut gsize, + error: *mut *mut GError, + ) -> *mut *mut gchar; +} +extern "C" { + pub fn g_key_file_set_locale_string_list( + key_file: *mut GKeyFile, + group_name: *const gchar, + key: *const gchar, + locale: *const gchar, + list: *const *const gchar, + length: gsize, + ); +} +extern "C" { + pub fn g_key_file_get_boolean_list( + key_file: *mut GKeyFile, + group_name: *const gchar, + key: *const gchar, + length: *mut gsize, + error: *mut *mut GError, + ) -> *mut gboolean; +} +extern "C" { + pub fn g_key_file_set_boolean_list( + key_file: *mut GKeyFile, + group_name: *const gchar, + key: *const gchar, + list: *mut gboolean, + length: gsize, + ); +} +extern "C" { + pub fn g_key_file_get_integer_list( + key_file: *mut GKeyFile, + group_name: *const gchar, + key: *const gchar, + length: *mut gsize, + error: *mut *mut GError, + ) -> *mut gint; +} +extern "C" { + pub fn g_key_file_set_double_list( + key_file: *mut GKeyFile, + group_name: *const gchar, + key: *const gchar, + list: *mut gdouble, + length: gsize, + ); +} +extern "C" { + pub fn g_key_file_get_double_list( + key_file: *mut GKeyFile, + group_name: *const gchar, + key: *const gchar, + length: *mut gsize, + error: *mut *mut GError, + ) -> *mut gdouble; +} +extern "C" { + pub fn g_key_file_set_integer_list( + key_file: *mut GKeyFile, + group_name: *const gchar, + key: *const gchar, + list: *mut gint, + length: gsize, + ); +} +extern "C" { + pub fn g_key_file_set_comment( + key_file: *mut GKeyFile, + group_name: *const gchar, + key: *const gchar, + comment: *const gchar, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_key_file_get_comment( + key_file: *mut GKeyFile, + group_name: *const gchar, + key: *const gchar, + error: *mut *mut GError, + ) -> *mut gchar; +} +extern "C" { + pub fn g_key_file_remove_comment( + key_file: *mut GKeyFile, + group_name: *const gchar, + key: *const gchar, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_key_file_remove_key( + key_file: *mut GKeyFile, + group_name: *const gchar, + key: *const gchar, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_key_file_remove_group( + key_file: *mut GKeyFile, + group_name: *const gchar, + error: *mut *mut GError, + ) -> gboolean; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GMappedFile { + _unused: [u8; 0], +} +pub type GMappedFile = _GMappedFile; +extern "C" { + pub fn g_mapped_file_new( + filename: *const gchar, + writable: gboolean, + error: *mut *mut GError, + ) -> *mut GMappedFile; +} +extern "C" { + pub fn g_mapped_file_new_from_fd( + fd: gint, + writable: gboolean, + error: *mut *mut GError, + ) -> *mut GMappedFile; +} +extern "C" { + pub fn g_mapped_file_get_length(file: *mut GMappedFile) -> gsize; +} +extern "C" { + pub fn g_mapped_file_get_contents(file: *mut GMappedFile) -> *mut gchar; +} +extern "C" { + pub fn g_mapped_file_get_bytes(file: *mut GMappedFile) -> *mut GBytes; +} +extern "C" { + pub fn g_mapped_file_ref(file: *mut GMappedFile) -> *mut GMappedFile; +} +extern "C" { + pub fn g_mapped_file_unref(file: *mut GMappedFile); +} +extern "C" { + pub fn g_mapped_file_free(file: *mut GMappedFile); +} +pub const GMarkupError_G_MARKUP_ERROR_BAD_UTF8: GMarkupError = 0; +pub const GMarkupError_G_MARKUP_ERROR_EMPTY: GMarkupError = 1; +pub const GMarkupError_G_MARKUP_ERROR_PARSE: GMarkupError = 2; +pub const GMarkupError_G_MARKUP_ERROR_UNKNOWN_ELEMENT: GMarkupError = 3; +pub const GMarkupError_G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE: GMarkupError = 4; +pub const GMarkupError_G_MARKUP_ERROR_INVALID_CONTENT: GMarkupError = 5; +pub const GMarkupError_G_MARKUP_ERROR_MISSING_ATTRIBUTE: GMarkupError = 6; +pub type GMarkupError = ::std::os::raw::c_uint; +extern "C" { + pub fn g_markup_error_quark() -> GQuark; +} +pub const GMarkupParseFlags_G_MARKUP_DEFAULT_FLAGS: GMarkupParseFlags = 0; +pub const GMarkupParseFlags_G_MARKUP_DO_NOT_USE_THIS_UNSUPPORTED_FLAG: GMarkupParseFlags = 1; +pub const GMarkupParseFlags_G_MARKUP_TREAT_CDATA_AS_TEXT: GMarkupParseFlags = 2; +pub const GMarkupParseFlags_G_MARKUP_PREFIX_ERROR_POSITION: GMarkupParseFlags = 4; +pub const GMarkupParseFlags_G_MARKUP_IGNORE_QUALIFIED: GMarkupParseFlags = 8; +pub type GMarkupParseFlags = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GMarkupParseContext { + _unused: [u8; 0], +} +pub type GMarkupParseContext = _GMarkupParseContext; +pub type GMarkupParser = _GMarkupParser; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GMarkupParser { + pub start_element: ::std::option::Option< + unsafe extern "C" fn( + context: *mut GMarkupParseContext, + element_name: *const gchar, + attribute_names: *mut *const gchar, + attribute_values: *mut *const gchar, + user_data: gpointer, + error: *mut *mut GError, + ), + >, + pub end_element: ::std::option::Option< + unsafe extern "C" fn( + context: *mut GMarkupParseContext, + element_name: *const gchar, + user_data: gpointer, + error: *mut *mut GError, + ), + >, + pub text: ::std::option::Option< + unsafe extern "C" fn( + context: *mut GMarkupParseContext, + text: *const gchar, + text_len: gsize, + user_data: gpointer, + error: *mut *mut GError, + ), + >, + pub passthrough: ::std::option::Option< + unsafe extern "C" fn( + context: *mut GMarkupParseContext, + passthrough_text: *const gchar, + text_len: gsize, + user_data: gpointer, + error: *mut *mut GError, + ), + >, + pub error: ::std::option::Option< + unsafe extern "C" fn( + context: *mut GMarkupParseContext, + error: *mut GError, + user_data: gpointer, + ), + >, +} +#[test] +fn bindgen_test_layout__GMarkupParser() { + const UNINIT: ::std::mem::MaybeUninit<_GMarkupParser> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GMarkupParser>(), + 40usize, + concat!("Size of: ", stringify!(_GMarkupParser)) + ); + assert_eq!( + ::std::mem::align_of::<_GMarkupParser>(), + 8usize, + concat!("Alignment of ", stringify!(_GMarkupParser)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).start_element) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GMarkupParser), + "::", + stringify!(start_element) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).end_element) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GMarkupParser), + "::", + stringify!(end_element) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_GMarkupParser), + "::", + stringify!(text) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).passthrough) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_GMarkupParser), + "::", + stringify!(passthrough) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).error) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_GMarkupParser), + "::", + stringify!(error) + ) + ); +} +extern "C" { + pub fn g_markup_parse_context_new( + parser: *const GMarkupParser, + flags: GMarkupParseFlags, + user_data: gpointer, + user_data_dnotify: GDestroyNotify, + ) -> *mut GMarkupParseContext; +} +extern "C" { + pub fn g_markup_parse_context_ref( + context: *mut GMarkupParseContext, + ) -> *mut GMarkupParseContext; +} +extern "C" { + pub fn g_markup_parse_context_unref(context: *mut GMarkupParseContext); +} +extern "C" { + pub fn g_markup_parse_context_free(context: *mut GMarkupParseContext); +} +extern "C" { + pub fn g_markup_parse_context_parse( + context: *mut GMarkupParseContext, + text: *const gchar, + text_len: gssize, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_markup_parse_context_push( + context: *mut GMarkupParseContext, + parser: *const GMarkupParser, + user_data: gpointer, + ); +} +extern "C" { + pub fn g_markup_parse_context_pop(context: *mut GMarkupParseContext) -> gpointer; +} +extern "C" { + pub fn g_markup_parse_context_end_parse( + context: *mut GMarkupParseContext, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_markup_parse_context_get_element(context: *mut GMarkupParseContext) -> *const gchar; +} +extern "C" { + pub fn g_markup_parse_context_get_element_stack( + context: *mut GMarkupParseContext, + ) -> *const GSList; +} +extern "C" { + pub fn g_markup_parse_context_get_position( + context: *mut GMarkupParseContext, + line_number: *mut gint, + char_number: *mut gint, + ); +} +extern "C" { + pub fn g_markup_parse_context_get_user_data(context: *mut GMarkupParseContext) -> gpointer; +} +extern "C" { + pub fn g_markup_escape_text(text: *const gchar, length: gssize) -> *mut gchar; +} +extern "C" { + pub fn g_markup_printf_escaped(format: *const ::std::os::raw::c_char, ...) -> *mut gchar; +} +extern "C" { + pub fn g_markup_vprintf_escaped( + format: *const ::std::os::raw::c_char, + args: va_list, + ) -> *mut gchar; +} +pub const GMarkupCollectType_G_MARKUP_COLLECT_INVALID: GMarkupCollectType = 0; +pub const GMarkupCollectType_G_MARKUP_COLLECT_STRING: GMarkupCollectType = 1; +pub const GMarkupCollectType_G_MARKUP_COLLECT_STRDUP: GMarkupCollectType = 2; +pub const GMarkupCollectType_G_MARKUP_COLLECT_BOOLEAN: GMarkupCollectType = 3; +pub const GMarkupCollectType_G_MARKUP_COLLECT_TRISTATE: GMarkupCollectType = 4; +pub const GMarkupCollectType_G_MARKUP_COLLECT_OPTIONAL: GMarkupCollectType = 65536; +pub type GMarkupCollectType = ::std::os::raw::c_uint; +extern "C" { + pub fn g_markup_collect_attributes( + element_name: *const gchar, + attribute_names: *mut *const gchar, + attribute_values: *mut *const gchar, + error: *mut *mut GError, + first_type: GMarkupCollectType, + first_attr: *const gchar, + ... + ) -> gboolean; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GVariantType { + _unused: [u8; 0], +} +pub type GVariantType = _GVariantType; +extern "C" { + pub fn g_variant_type_string_is_valid(type_string: *const gchar) -> gboolean; +} +extern "C" { + pub fn g_variant_type_string_scan( + string: *const gchar, + limit: *const gchar, + endptr: *mut *const gchar, + ) -> gboolean; +} +extern "C" { + pub fn g_variant_type_free(type_: *mut GVariantType); +} +extern "C" { + pub fn g_variant_type_copy(type_: *const GVariantType) -> *mut GVariantType; +} +extern "C" { + pub fn g_variant_type_new(type_string: *const gchar) -> *mut GVariantType; +} +extern "C" { + pub fn g_variant_type_get_string_length(type_: *const GVariantType) -> gsize; +} +extern "C" { + pub fn g_variant_type_peek_string(type_: *const GVariantType) -> *const gchar; +} +extern "C" { + pub fn g_variant_type_dup_string(type_: *const GVariantType) -> *mut gchar; +} +extern "C" { + pub fn g_variant_type_is_definite(type_: *const GVariantType) -> gboolean; +} +extern "C" { + pub fn g_variant_type_is_container(type_: *const GVariantType) -> gboolean; +} +extern "C" { + pub fn g_variant_type_is_basic(type_: *const GVariantType) -> gboolean; +} +extern "C" { + pub fn g_variant_type_is_maybe(type_: *const GVariantType) -> gboolean; +} +extern "C" { + pub fn g_variant_type_is_array(type_: *const GVariantType) -> gboolean; +} +extern "C" { + pub fn g_variant_type_is_tuple(type_: *const GVariantType) -> gboolean; +} +extern "C" { + pub fn g_variant_type_is_dict_entry(type_: *const GVariantType) -> gboolean; +} +extern "C" { + pub fn g_variant_type_is_variant(type_: *const GVariantType) -> gboolean; +} +extern "C" { + pub fn g_variant_type_hash(type_: gconstpointer) -> guint; +} +extern "C" { + pub fn g_variant_type_equal(type1: gconstpointer, type2: gconstpointer) -> gboolean; +} +extern "C" { + pub fn g_variant_type_is_subtype_of( + type_: *const GVariantType, + supertype: *const GVariantType, + ) -> gboolean; +} +extern "C" { + pub fn g_variant_type_element(type_: *const GVariantType) -> *const GVariantType; +} +extern "C" { + pub fn g_variant_type_first(type_: *const GVariantType) -> *const GVariantType; +} +extern "C" { + pub fn g_variant_type_next(type_: *const GVariantType) -> *const GVariantType; +} +extern "C" { + pub fn g_variant_type_n_items(type_: *const GVariantType) -> gsize; +} +extern "C" { + pub fn g_variant_type_key(type_: *const GVariantType) -> *const GVariantType; +} +extern "C" { + pub fn g_variant_type_value(type_: *const GVariantType) -> *const GVariantType; +} +extern "C" { + pub fn g_variant_type_new_array(element: *const GVariantType) -> *mut GVariantType; +} +extern "C" { + pub fn g_variant_type_new_maybe(element: *const GVariantType) -> *mut GVariantType; +} +extern "C" { + pub fn g_variant_type_new_tuple( + items: *const *const GVariantType, + length: gint, + ) -> *mut GVariantType; +} +extern "C" { + pub fn g_variant_type_new_dict_entry( + key: *const GVariantType, + value: *const GVariantType, + ) -> *mut GVariantType; +} +extern "C" { + pub fn g_variant_type_checked_(type_string: *const gchar) -> *const GVariantType; +} +extern "C" { + pub fn g_variant_type_string_get_depth_(type_string: *const gchar) -> gsize; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GVariant { + _unused: [u8; 0], +} +pub type GVariant = _GVariant; +pub const GVariantClass_G_VARIANT_CLASS_BOOLEAN: GVariantClass = 98; +pub const GVariantClass_G_VARIANT_CLASS_BYTE: GVariantClass = 121; +pub const GVariantClass_G_VARIANT_CLASS_INT16: GVariantClass = 110; +pub const GVariantClass_G_VARIANT_CLASS_UINT16: GVariantClass = 113; +pub const GVariantClass_G_VARIANT_CLASS_INT32: GVariantClass = 105; +pub const GVariantClass_G_VARIANT_CLASS_UINT32: GVariantClass = 117; +pub const GVariantClass_G_VARIANT_CLASS_INT64: GVariantClass = 120; +pub const GVariantClass_G_VARIANT_CLASS_UINT64: GVariantClass = 116; +pub const GVariantClass_G_VARIANT_CLASS_HANDLE: GVariantClass = 104; +pub const GVariantClass_G_VARIANT_CLASS_DOUBLE: GVariantClass = 100; +pub const GVariantClass_G_VARIANT_CLASS_STRING: GVariantClass = 115; +pub const GVariantClass_G_VARIANT_CLASS_OBJECT_PATH: GVariantClass = 111; +pub const GVariantClass_G_VARIANT_CLASS_SIGNATURE: GVariantClass = 103; +pub const GVariantClass_G_VARIANT_CLASS_VARIANT: GVariantClass = 118; +pub const GVariantClass_G_VARIANT_CLASS_MAYBE: GVariantClass = 109; +pub const GVariantClass_G_VARIANT_CLASS_ARRAY: GVariantClass = 97; +pub const GVariantClass_G_VARIANT_CLASS_TUPLE: GVariantClass = 40; +pub const GVariantClass_G_VARIANT_CLASS_DICT_ENTRY: GVariantClass = 123; +pub type GVariantClass = ::std::os::raw::c_uint; +extern "C" { + pub fn g_variant_unref(value: *mut GVariant); +} +extern "C" { + pub fn g_variant_ref(value: *mut GVariant) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_ref_sink(value: *mut GVariant) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_is_floating(value: *mut GVariant) -> gboolean; +} +extern "C" { + pub fn g_variant_take_ref(value: *mut GVariant) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_get_type(value: *mut GVariant) -> *const GVariantType; +} +extern "C" { + pub fn g_variant_get_type_string(value: *mut GVariant) -> *const gchar; +} +extern "C" { + pub fn g_variant_is_of_type(value: *mut GVariant, type_: *const GVariantType) -> gboolean; +} +extern "C" { + pub fn g_variant_is_container(value: *mut GVariant) -> gboolean; +} +extern "C" { + pub fn g_variant_classify(value: *mut GVariant) -> GVariantClass; +} +extern "C" { + pub fn g_variant_new_boolean(value: gboolean) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_new_byte(value: guint8) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_new_int16(value: gint16) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_new_uint16(value: guint16) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_new_int32(value: gint32) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_new_uint32(value: guint32) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_new_int64(value: gint64) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_new_uint64(value: guint64) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_new_handle(value: gint32) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_new_double(value: gdouble) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_new_string(string: *const gchar) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_new_take_string(string: *mut gchar) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_new_printf(format_string: *const gchar, ...) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_new_object_path(object_path: *const gchar) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_is_object_path(string: *const gchar) -> gboolean; +} +extern "C" { + pub fn g_variant_new_signature(signature: *const gchar) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_is_signature(string: *const gchar) -> gboolean; +} +extern "C" { + pub fn g_variant_new_variant(value: *mut GVariant) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_new_strv(strv: *const *const gchar, length: gssize) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_new_objv(strv: *const *const gchar, length: gssize) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_new_bytestring(string: *const gchar) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_new_bytestring_array( + strv: *const *const gchar, + length: gssize, + ) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_new_fixed_array( + element_type: *const GVariantType, + elements: gconstpointer, + n_elements: gsize, + element_size: gsize, + ) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_get_boolean(value: *mut GVariant) -> gboolean; +} +extern "C" { + pub fn g_variant_get_byte(value: *mut GVariant) -> guint8; +} +extern "C" { + pub fn g_variant_get_int16(value: *mut GVariant) -> gint16; +} +extern "C" { + pub fn g_variant_get_uint16(value: *mut GVariant) -> guint16; +} +extern "C" { + pub fn g_variant_get_int32(value: *mut GVariant) -> gint32; +} +extern "C" { + pub fn g_variant_get_uint32(value: *mut GVariant) -> guint32; +} +extern "C" { + pub fn g_variant_get_int64(value: *mut GVariant) -> gint64; +} +extern "C" { + pub fn g_variant_get_uint64(value: *mut GVariant) -> guint64; +} +extern "C" { + pub fn g_variant_get_handle(value: *mut GVariant) -> gint32; +} +extern "C" { + pub fn g_variant_get_double(value: *mut GVariant) -> gdouble; +} +extern "C" { + pub fn g_variant_get_variant(value: *mut GVariant) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_get_string(value: *mut GVariant, length: *mut gsize) -> *const gchar; +} +extern "C" { + pub fn g_variant_dup_string(value: *mut GVariant, length: *mut gsize) -> *mut gchar; +} +extern "C" { + pub fn g_variant_get_strv(value: *mut GVariant, length: *mut gsize) -> *mut *const gchar; +} +extern "C" { + pub fn g_variant_dup_strv(value: *mut GVariant, length: *mut gsize) -> *mut *mut gchar; +} +extern "C" { + pub fn g_variant_get_objv(value: *mut GVariant, length: *mut gsize) -> *mut *const gchar; +} +extern "C" { + pub fn g_variant_dup_objv(value: *mut GVariant, length: *mut gsize) -> *mut *mut gchar; +} +extern "C" { + pub fn g_variant_get_bytestring(value: *mut GVariant) -> *const gchar; +} +extern "C" { + pub fn g_variant_dup_bytestring(value: *mut GVariant, length: *mut gsize) -> *mut gchar; +} +extern "C" { + pub fn g_variant_get_bytestring_array( + value: *mut GVariant, + length: *mut gsize, + ) -> *mut *const gchar; +} +extern "C" { + pub fn g_variant_dup_bytestring_array( + value: *mut GVariant, + length: *mut gsize, + ) -> *mut *mut gchar; +} +extern "C" { + pub fn g_variant_new_maybe( + child_type: *const GVariantType, + child: *mut GVariant, + ) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_new_array( + child_type: *const GVariantType, + children: *const *mut GVariant, + n_children: gsize, + ) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_new_tuple(children: *const *mut GVariant, n_children: gsize) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_new_dict_entry(key: *mut GVariant, value: *mut GVariant) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_get_maybe(value: *mut GVariant) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_n_children(value: *mut GVariant) -> gsize; +} +extern "C" { + pub fn g_variant_get_child( + value: *mut GVariant, + index_: gsize, + format_string: *const gchar, + ... + ); +} +extern "C" { + pub fn g_variant_get_child_value(value: *mut GVariant, index_: gsize) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_lookup( + dictionary: *mut GVariant, + key: *const gchar, + format_string: *const gchar, + ... + ) -> gboolean; +} +extern "C" { + pub fn g_variant_lookup_value( + dictionary: *mut GVariant, + key: *const gchar, + expected_type: *const GVariantType, + ) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_get_fixed_array( + value: *mut GVariant, + n_elements: *mut gsize, + element_size: gsize, + ) -> gconstpointer; +} +extern "C" { + pub fn g_variant_get_size(value: *mut GVariant) -> gsize; +} +extern "C" { + pub fn g_variant_get_data(value: *mut GVariant) -> gconstpointer; +} +extern "C" { + pub fn g_variant_get_data_as_bytes(value: *mut GVariant) -> *mut GBytes; +} +extern "C" { + pub fn g_variant_store(value: *mut GVariant, data: gpointer); +} +extern "C" { + pub fn g_variant_print(value: *mut GVariant, type_annotate: gboolean) -> *mut gchar; +} +extern "C" { + pub fn g_variant_print_string( + value: *mut GVariant, + string: *mut GString, + type_annotate: gboolean, + ) -> *mut GString; +} +extern "C" { + pub fn g_variant_hash(value: gconstpointer) -> guint; +} +extern "C" { + pub fn g_variant_equal(one: gconstpointer, two: gconstpointer) -> gboolean; +} +extern "C" { + pub fn g_variant_get_normal_form(value: *mut GVariant) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_is_normal_form(value: *mut GVariant) -> gboolean; +} +extern "C" { + pub fn g_variant_byteswap(value: *mut GVariant) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_new_from_bytes( + type_: *const GVariantType, + bytes: *mut GBytes, + trusted: gboolean, + ) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_new_from_data( + type_: *const GVariantType, + data: gconstpointer, + size: gsize, + trusted: gboolean, + notify: GDestroyNotify, + user_data: gpointer, + ) -> *mut GVariant; +} +pub type GVariantIter = _GVariantIter; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GVariantIter { + pub x: [guintptr; 16usize], +} +#[test] +fn bindgen_test_layout__GVariantIter() { + const UNINIT: ::std::mem::MaybeUninit<_GVariantIter> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GVariantIter>(), + 128usize, + concat!("Size of: ", stringify!(_GVariantIter)) + ); + assert_eq!( + ::std::mem::align_of::<_GVariantIter>(), + 8usize, + concat!("Alignment of ", stringify!(_GVariantIter)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).x) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GVariantIter), + "::", + stringify!(x) + ) + ); +} +extern "C" { + pub fn g_variant_iter_new(value: *mut GVariant) -> *mut GVariantIter; +} +extern "C" { + pub fn g_variant_iter_init(iter: *mut GVariantIter, value: *mut GVariant) -> gsize; +} +extern "C" { + pub fn g_variant_iter_copy(iter: *mut GVariantIter) -> *mut GVariantIter; +} +extern "C" { + pub fn g_variant_iter_n_children(iter: *mut GVariantIter) -> gsize; +} +extern "C" { + pub fn g_variant_iter_free(iter: *mut GVariantIter); +} +extern "C" { + pub fn g_variant_iter_next_value(iter: *mut GVariantIter) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_iter_next( + iter: *mut GVariantIter, + format_string: *const gchar, + ... + ) -> gboolean; +} +extern "C" { + pub fn g_variant_iter_loop( + iter: *mut GVariantIter, + format_string: *const gchar, + ... + ) -> gboolean; +} +pub type GVariantBuilder = _GVariantBuilder; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _GVariantBuilder { + pub u: _GVariantBuilder__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union _GVariantBuilder__bindgen_ty_1 { + pub s: _GVariantBuilder__bindgen_ty_1__bindgen_ty_1, + pub x: [guintptr; 16usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GVariantBuilder__bindgen_ty_1__bindgen_ty_1 { + pub partial_magic: gsize, + pub type_: *const GVariantType, + pub y: [guintptr; 14usize], +} +#[test] +fn bindgen_test_layout__GVariantBuilder__bindgen_ty_1__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit<_GVariantBuilder__bindgen_ty_1__bindgen_ty_1> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GVariantBuilder__bindgen_ty_1__bindgen_ty_1>(), + 128usize, + concat!( + "Size of: ", + stringify!(_GVariantBuilder__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + ::std::mem::align_of::<_GVariantBuilder__bindgen_ty_1__bindgen_ty_1>(), + 8usize, + concat!( + "Alignment of ", + stringify!(_GVariantBuilder__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).partial_magic) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GVariantBuilder__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(partial_magic) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GVariantBuilder__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).y) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_GVariantBuilder__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(y) + ) + ); +} +#[test] +fn bindgen_test_layout__GVariantBuilder__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit<_GVariantBuilder__bindgen_ty_1> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GVariantBuilder__bindgen_ty_1>(), + 128usize, + concat!("Size of: ", stringify!(_GVariantBuilder__bindgen_ty_1)) + ); + assert_eq!( + ::std::mem::align_of::<_GVariantBuilder__bindgen_ty_1>(), + 8usize, + concat!("Alignment of ", stringify!(_GVariantBuilder__bindgen_ty_1)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GVariantBuilder__bindgen_ty_1), + "::", + stringify!(s) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).x) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GVariantBuilder__bindgen_ty_1), + "::", + stringify!(x) + ) + ); +} +#[test] +fn bindgen_test_layout__GVariantBuilder() { + const UNINIT: ::std::mem::MaybeUninit<_GVariantBuilder> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GVariantBuilder>(), + 128usize, + concat!("Size of: ", stringify!(_GVariantBuilder)) + ); + assert_eq!( + ::std::mem::align_of::<_GVariantBuilder>(), + 8usize, + concat!("Alignment of ", stringify!(_GVariantBuilder)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GVariantBuilder), + "::", + stringify!(u) + ) + ); +} +pub const GVariantParseError_G_VARIANT_PARSE_ERROR_FAILED: GVariantParseError = 0; +pub const GVariantParseError_G_VARIANT_PARSE_ERROR_BASIC_TYPE_EXPECTED: GVariantParseError = 1; +pub const GVariantParseError_G_VARIANT_PARSE_ERROR_CANNOT_INFER_TYPE: GVariantParseError = 2; +pub const GVariantParseError_G_VARIANT_PARSE_ERROR_DEFINITE_TYPE_EXPECTED: GVariantParseError = 3; +pub const GVariantParseError_G_VARIANT_PARSE_ERROR_INPUT_NOT_AT_END: GVariantParseError = 4; +pub const GVariantParseError_G_VARIANT_PARSE_ERROR_INVALID_CHARACTER: GVariantParseError = 5; +pub const GVariantParseError_G_VARIANT_PARSE_ERROR_INVALID_FORMAT_STRING: GVariantParseError = 6; +pub const GVariantParseError_G_VARIANT_PARSE_ERROR_INVALID_OBJECT_PATH: GVariantParseError = 7; +pub const GVariantParseError_G_VARIANT_PARSE_ERROR_INVALID_SIGNATURE: GVariantParseError = 8; +pub const GVariantParseError_G_VARIANT_PARSE_ERROR_INVALID_TYPE_STRING: GVariantParseError = 9; +pub const GVariantParseError_G_VARIANT_PARSE_ERROR_NO_COMMON_TYPE: GVariantParseError = 10; +pub const GVariantParseError_G_VARIANT_PARSE_ERROR_NUMBER_OUT_OF_RANGE: GVariantParseError = 11; +pub const GVariantParseError_G_VARIANT_PARSE_ERROR_NUMBER_TOO_BIG: GVariantParseError = 12; +pub const GVariantParseError_G_VARIANT_PARSE_ERROR_TYPE_ERROR: GVariantParseError = 13; +pub const GVariantParseError_G_VARIANT_PARSE_ERROR_UNEXPECTED_TOKEN: GVariantParseError = 14; +pub const GVariantParseError_G_VARIANT_PARSE_ERROR_UNKNOWN_KEYWORD: GVariantParseError = 15; +pub const GVariantParseError_G_VARIANT_PARSE_ERROR_UNTERMINATED_STRING_CONSTANT: + GVariantParseError = 16; +pub const GVariantParseError_G_VARIANT_PARSE_ERROR_VALUE_EXPECTED: GVariantParseError = 17; +pub const GVariantParseError_G_VARIANT_PARSE_ERROR_RECURSION: GVariantParseError = 18; +pub type GVariantParseError = ::std::os::raw::c_uint; +extern "C" { + pub fn g_variant_parser_get_error_quark() -> GQuark; +} +extern "C" { + pub fn g_variant_parse_error_quark() -> GQuark; +} +extern "C" { + pub fn g_variant_builder_new(type_: *const GVariantType) -> *mut GVariantBuilder; +} +extern "C" { + pub fn g_variant_builder_unref(builder: *mut GVariantBuilder); +} +extern "C" { + pub fn g_variant_builder_ref(builder: *mut GVariantBuilder) -> *mut GVariantBuilder; +} +extern "C" { + pub fn g_variant_builder_init(builder: *mut GVariantBuilder, type_: *const GVariantType); +} +extern "C" { + pub fn g_variant_builder_end(builder: *mut GVariantBuilder) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_builder_clear(builder: *mut GVariantBuilder); +} +extern "C" { + pub fn g_variant_builder_open(builder: *mut GVariantBuilder, type_: *const GVariantType); +} +extern "C" { + pub fn g_variant_builder_close(builder: *mut GVariantBuilder); +} +extern "C" { + pub fn g_variant_builder_add_value(builder: *mut GVariantBuilder, value: *mut GVariant); +} +extern "C" { + pub fn g_variant_builder_add(builder: *mut GVariantBuilder, format_string: *const gchar, ...); +} +extern "C" { + pub fn g_variant_builder_add_parsed(builder: *mut GVariantBuilder, format: *const gchar, ...); +} +extern "C" { + pub fn g_variant_new(format_string: *const gchar, ...) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_get(value: *mut GVariant, format_string: *const gchar, ...); +} +extern "C" { + pub fn g_variant_new_va( + format_string: *const gchar, + endptr: *mut *const gchar, + app: *mut va_list, + ) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_get_va( + value: *mut GVariant, + format_string: *const gchar, + endptr: *mut *const gchar, + app: *mut va_list, + ); +} +extern "C" { + pub fn g_variant_check_format_string( + value: *mut GVariant, + format_string: *const gchar, + copy_only: gboolean, + ) -> gboolean; +} +extern "C" { + pub fn g_variant_parse( + type_: *const GVariantType, + text: *const gchar, + limit: *const gchar, + endptr: *mut *const gchar, + error: *mut *mut GError, + ) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_new_parsed(format: *const gchar, ...) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_new_parsed_va(format: *const gchar, app: *mut va_list) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_parse_error_print_context( + error: *mut GError, + source_str: *const gchar, + ) -> *mut gchar; +} +extern "C" { + pub fn g_variant_compare(one: gconstpointer, two: gconstpointer) -> gint; +} +pub type GVariantDict = _GVariantDict; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _GVariantDict { + pub u: _GVariantDict__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union _GVariantDict__bindgen_ty_1 { + pub s: _GVariantDict__bindgen_ty_1__bindgen_ty_1, + pub x: [guintptr; 16usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GVariantDict__bindgen_ty_1__bindgen_ty_1 { + pub asv: *mut GVariant, + pub partial_magic: gsize, + pub y: [guintptr; 14usize], +} +#[test] +fn bindgen_test_layout__GVariantDict__bindgen_ty_1__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit<_GVariantDict__bindgen_ty_1__bindgen_ty_1> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GVariantDict__bindgen_ty_1__bindgen_ty_1>(), + 128usize, + concat!( + "Size of: ", + stringify!(_GVariantDict__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + ::std::mem::align_of::<_GVariantDict__bindgen_ty_1__bindgen_ty_1>(), + 8usize, + concat!( + "Alignment of ", + stringify!(_GVariantDict__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).asv) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GVariantDict__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(asv) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).partial_magic) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GVariantDict__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(partial_magic) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).y) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_GVariantDict__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(y) + ) + ); +} +#[test] +fn bindgen_test_layout__GVariantDict__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit<_GVariantDict__bindgen_ty_1> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GVariantDict__bindgen_ty_1>(), + 128usize, + concat!("Size of: ", stringify!(_GVariantDict__bindgen_ty_1)) + ); + assert_eq!( + ::std::mem::align_of::<_GVariantDict__bindgen_ty_1>(), + 8usize, + concat!("Alignment of ", stringify!(_GVariantDict__bindgen_ty_1)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GVariantDict__bindgen_ty_1), + "::", + stringify!(s) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).x) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GVariantDict__bindgen_ty_1), + "::", + stringify!(x) + ) + ); +} +#[test] +fn bindgen_test_layout__GVariantDict() { + const UNINIT: ::std::mem::MaybeUninit<_GVariantDict> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GVariantDict>(), + 128usize, + concat!("Size of: ", stringify!(_GVariantDict)) + ); + assert_eq!( + ::std::mem::align_of::<_GVariantDict>(), + 8usize, + concat!("Alignment of ", stringify!(_GVariantDict)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GVariantDict), + "::", + stringify!(u) + ) + ); +} +extern "C" { + pub fn g_variant_dict_new(from_asv: *mut GVariant) -> *mut GVariantDict; +} +extern "C" { + pub fn g_variant_dict_init(dict: *mut GVariantDict, from_asv: *mut GVariant); +} +extern "C" { + pub fn g_variant_dict_lookup( + dict: *mut GVariantDict, + key: *const gchar, + format_string: *const gchar, + ... + ) -> gboolean; +} +extern "C" { + pub fn g_variant_dict_lookup_value( + dict: *mut GVariantDict, + key: *const gchar, + expected_type: *const GVariantType, + ) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_dict_contains(dict: *mut GVariantDict, key: *const gchar) -> gboolean; +} +extern "C" { + pub fn g_variant_dict_insert( + dict: *mut GVariantDict, + key: *const gchar, + format_string: *const gchar, + ... + ); +} +extern "C" { + pub fn g_variant_dict_insert_value( + dict: *mut GVariantDict, + key: *const gchar, + value: *mut GVariant, + ); +} +extern "C" { + pub fn g_variant_dict_remove(dict: *mut GVariantDict, key: *const gchar) -> gboolean; +} +extern "C" { + pub fn g_variant_dict_clear(dict: *mut GVariantDict); +} +extern "C" { + pub fn g_variant_dict_end(dict: *mut GVariantDict) -> *mut GVariant; +} +extern "C" { + pub fn g_variant_dict_ref(dict: *mut GVariantDict) -> *mut GVariantDict; +} +extern "C" { + pub fn g_variant_dict_unref(dict: *mut GVariantDict); +} +extern "C" { + pub fn g_printf_string_upper_bound(format: *const gchar, args: va_list) -> gsize; +} +pub const GLogLevelFlags_G_LOG_FLAG_RECURSION: GLogLevelFlags = 1; +pub const GLogLevelFlags_G_LOG_FLAG_FATAL: GLogLevelFlags = 2; +pub const GLogLevelFlags_G_LOG_LEVEL_ERROR: GLogLevelFlags = 4; +pub const GLogLevelFlags_G_LOG_LEVEL_CRITICAL: GLogLevelFlags = 8; +pub const GLogLevelFlags_G_LOG_LEVEL_WARNING: GLogLevelFlags = 16; +pub const GLogLevelFlags_G_LOG_LEVEL_MESSAGE: GLogLevelFlags = 32; +pub const GLogLevelFlags_G_LOG_LEVEL_INFO: GLogLevelFlags = 64; +pub const GLogLevelFlags_G_LOG_LEVEL_DEBUG: GLogLevelFlags = 128; +pub const GLogLevelFlags_G_LOG_LEVEL_MASK: GLogLevelFlags = -4; +pub type GLogLevelFlags = ::std::os::raw::c_int; +pub type GLogFunc = ::std::option::Option< + unsafe extern "C" fn( + log_domain: *const gchar, + log_level: GLogLevelFlags, + message: *const gchar, + user_data: gpointer, + ), +>; +extern "C" { + pub fn g_log_set_handler( + log_domain: *const gchar, + log_levels: GLogLevelFlags, + log_func: GLogFunc, + user_data: gpointer, + ) -> guint; +} +extern "C" { + pub fn g_log_set_handler_full( + log_domain: *const gchar, + log_levels: GLogLevelFlags, + log_func: GLogFunc, + user_data: gpointer, + destroy: GDestroyNotify, + ) -> guint; +} +extern "C" { + pub fn g_log_remove_handler(log_domain: *const gchar, handler_id: guint); +} +extern "C" { + pub fn g_log_default_handler( + log_domain: *const gchar, + log_level: GLogLevelFlags, + message: *const gchar, + unused_data: gpointer, + ); +} +extern "C" { + pub fn g_log_set_default_handler(log_func: GLogFunc, user_data: gpointer) -> GLogFunc; +} +extern "C" { + pub fn g_log(log_domain: *const gchar, log_level: GLogLevelFlags, format: *const gchar, ...); +} +extern "C" { + pub fn g_logv( + log_domain: *const gchar, + log_level: GLogLevelFlags, + format: *const gchar, + args: va_list, + ); +} +extern "C" { + pub fn g_log_set_fatal_mask( + log_domain: *const gchar, + fatal_mask: GLogLevelFlags, + ) -> GLogLevelFlags; +} +extern "C" { + pub fn g_log_set_always_fatal(fatal_mask: GLogLevelFlags) -> GLogLevelFlags; +} +pub const GLogWriterOutput_G_LOG_WRITER_HANDLED: GLogWriterOutput = 1; +pub const GLogWriterOutput_G_LOG_WRITER_UNHANDLED: GLogWriterOutput = 0; +pub type GLogWriterOutput = ::std::os::raw::c_uint; +pub type GLogField = _GLogField; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GLogField { + pub key: *const gchar, + pub value: gconstpointer, + pub length: gssize, +} +#[test] +fn bindgen_test_layout__GLogField() { + const UNINIT: ::std::mem::MaybeUninit<_GLogField> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GLogField>(), + 24usize, + concat!("Size of: ", stringify!(_GLogField)) + ); + assert_eq!( + ::std::mem::align_of::<_GLogField>(), + 8usize, + concat!("Alignment of ", stringify!(_GLogField)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GLogField), + "::", + stringify!(key) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GLogField), + "::", + stringify!(value) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_GLogField), + "::", + stringify!(length) + ) + ); +} +pub type GLogWriterFunc = ::std::option::Option< + unsafe extern "C" fn( + log_level: GLogLevelFlags, + fields: *const GLogField, + n_fields: gsize, + user_data: gpointer, + ) -> GLogWriterOutput, +>; +extern "C" { + pub fn g_log_structured(log_domain: *const gchar, log_level: GLogLevelFlags, ...); +} +extern "C" { + pub fn g_log_structured_array( + log_level: GLogLevelFlags, + fields: *const GLogField, + n_fields: gsize, + ); +} +extern "C" { + pub fn g_log_variant( + log_domain: *const gchar, + log_level: GLogLevelFlags, + fields: *mut GVariant, + ); +} +extern "C" { + pub fn g_log_set_writer_func( + func: GLogWriterFunc, + user_data: gpointer, + user_data_free: GDestroyNotify, + ); +} +extern "C" { + pub fn g_log_writer_supports_color(output_fd: gint) -> gboolean; +} +extern "C" { + pub fn g_log_writer_is_journald(output_fd: gint) -> gboolean; +} +extern "C" { + pub fn g_log_writer_format_fields( + log_level: GLogLevelFlags, + fields: *const GLogField, + n_fields: gsize, + use_color: gboolean, + ) -> *mut gchar; +} +extern "C" { + pub fn g_log_writer_syslog( + log_level: GLogLevelFlags, + fields: *const GLogField, + n_fields: gsize, + user_data: gpointer, + ) -> GLogWriterOutput; +} +extern "C" { + pub fn g_log_writer_journald( + log_level: GLogLevelFlags, + fields: *const GLogField, + n_fields: gsize, + user_data: gpointer, + ) -> GLogWriterOutput; +} +extern "C" { + pub fn g_log_writer_standard_streams( + log_level: GLogLevelFlags, + fields: *const GLogField, + n_fields: gsize, + user_data: gpointer, + ) -> GLogWriterOutput; +} +extern "C" { + pub fn g_log_writer_default( + log_level: GLogLevelFlags, + fields: *const GLogField, + n_fields: gsize, + user_data: gpointer, + ) -> GLogWriterOutput; +} +extern "C" { + pub fn g_log_writer_default_set_use_stderr(use_stderr: gboolean); +} +extern "C" { + pub fn g_log_writer_default_would_drop( + log_level: GLogLevelFlags, + log_domain: *const ::std::os::raw::c_char, + ) -> gboolean; +} +extern "C" { + pub fn g_log_writer_default_set_debug_domains(domains: *const *const gchar); +} +extern "C" { + pub fn g_log_get_debug_enabled() -> gboolean; +} +extern "C" { + pub fn g_log_set_debug_enabled(enabled: gboolean); +} +extern "C" { + pub fn _g_log_fallback_handler( + log_domain: *const gchar, + log_level: GLogLevelFlags, + message: *const gchar, + unused_data: gpointer, + ); +} +extern "C" { + pub fn g_return_if_fail_warning( + log_domain: *const ::std::os::raw::c_char, + pretty_function: *const ::std::os::raw::c_char, + expression: *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn g_warn_message( + domain: *const ::std::os::raw::c_char, + file: *const ::std::os::raw::c_char, + line: ::std::os::raw::c_int, + func: *const ::std::os::raw::c_char, + warnexpr: *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn g_assert_warning( + log_domain: *const ::std::os::raw::c_char, + file: *const ::std::os::raw::c_char, + line: ::std::os::raw::c_int, + pretty_function: *const ::std::os::raw::c_char, + expression: *const ::std::os::raw::c_char, + ) -> !; +} +extern "C" { + pub fn g_log_structured_standard( + log_domain: *const gchar, + log_level: GLogLevelFlags, + file: *const gchar, + line: *const gchar, + func: *const gchar, + message_format: *const gchar, + ... + ); +} +pub type GPrintFunc = ::std::option::Option; +extern "C" { + pub fn g_print(format: *const gchar, ...); +} +extern "C" { + pub fn g_set_print_handler(func: GPrintFunc) -> GPrintFunc; +} +extern "C" { + pub fn g_printerr(format: *const gchar, ...); +} +extern "C" { + pub fn g_set_printerr_handler(func: GPrintFunc) -> GPrintFunc; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GOptionContext { + _unused: [u8; 0], +} +pub type GOptionContext = _GOptionContext; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GOptionGroup { + _unused: [u8; 0], +} +pub type GOptionGroup = _GOptionGroup; +pub type GOptionEntry = _GOptionEntry; +pub const GOptionFlags_G_OPTION_FLAG_NONE: GOptionFlags = 0; +pub const GOptionFlags_G_OPTION_FLAG_HIDDEN: GOptionFlags = 1; +pub const GOptionFlags_G_OPTION_FLAG_IN_MAIN: GOptionFlags = 2; +pub const GOptionFlags_G_OPTION_FLAG_REVERSE: GOptionFlags = 4; +pub const GOptionFlags_G_OPTION_FLAG_NO_ARG: GOptionFlags = 8; +pub const GOptionFlags_G_OPTION_FLAG_FILENAME: GOptionFlags = 16; +pub const GOptionFlags_G_OPTION_FLAG_OPTIONAL_ARG: GOptionFlags = 32; +pub const GOptionFlags_G_OPTION_FLAG_NOALIAS: GOptionFlags = 64; +pub type GOptionFlags = ::std::os::raw::c_uint; +pub const GOptionArg_G_OPTION_ARG_NONE: GOptionArg = 0; +pub const GOptionArg_G_OPTION_ARG_STRING: GOptionArg = 1; +pub const GOptionArg_G_OPTION_ARG_INT: GOptionArg = 2; +pub const GOptionArg_G_OPTION_ARG_CALLBACK: GOptionArg = 3; +pub const GOptionArg_G_OPTION_ARG_FILENAME: GOptionArg = 4; +pub const GOptionArg_G_OPTION_ARG_STRING_ARRAY: GOptionArg = 5; +pub const GOptionArg_G_OPTION_ARG_FILENAME_ARRAY: GOptionArg = 6; +pub const GOptionArg_G_OPTION_ARG_DOUBLE: GOptionArg = 7; +pub const GOptionArg_G_OPTION_ARG_INT64: GOptionArg = 8; +pub type GOptionArg = ::std::os::raw::c_uint; +pub type GOptionArgFunc = ::std::option::Option< + unsafe extern "C" fn( + option_name: *const gchar, + value: *const gchar, + data: gpointer, + error: *mut *mut GError, + ) -> gboolean, +>; +pub type GOptionParseFunc = ::std::option::Option< + unsafe extern "C" fn( + context: *mut GOptionContext, + group: *mut GOptionGroup, + data: gpointer, + error: *mut *mut GError, + ) -> gboolean, +>; +pub type GOptionErrorFunc = ::std::option::Option< + unsafe extern "C" fn( + context: *mut GOptionContext, + group: *mut GOptionGroup, + data: gpointer, + error: *mut *mut GError, + ), +>; +pub const GOptionError_G_OPTION_ERROR_UNKNOWN_OPTION: GOptionError = 0; +pub const GOptionError_G_OPTION_ERROR_BAD_VALUE: GOptionError = 1; +pub const GOptionError_G_OPTION_ERROR_FAILED: GOptionError = 2; +pub type GOptionError = ::std::os::raw::c_uint; +extern "C" { + pub fn g_option_error_quark() -> GQuark; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GOptionEntry { + pub long_name: *const gchar, + pub short_name: gchar, + pub flags: gint, + pub arg: GOptionArg, + pub arg_data: gpointer, + pub description: *const gchar, + pub arg_description: *const gchar, +} +#[test] +fn bindgen_test_layout__GOptionEntry() { + const UNINIT: ::std::mem::MaybeUninit<_GOptionEntry> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GOptionEntry>(), + 48usize, + concat!("Size of: ", stringify!(_GOptionEntry)) + ); + assert_eq!( + ::std::mem::align_of::<_GOptionEntry>(), + 8usize, + concat!("Alignment of ", stringify!(_GOptionEntry)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).long_name) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GOptionEntry), + "::", + stringify!(long_name) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).short_name) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GOptionEntry), + "::", + stringify!(short_name) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(_GOptionEntry), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).arg) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_GOptionEntry), + "::", + stringify!(arg) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).arg_data) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_GOptionEntry), + "::", + stringify!(arg_data) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_GOptionEntry), + "::", + stringify!(description) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).arg_description) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(_GOptionEntry), + "::", + stringify!(arg_description) + ) + ); +} +extern "C" { + pub fn g_option_context_new(parameter_string: *const gchar) -> *mut GOptionContext; +} +extern "C" { + pub fn g_option_context_set_summary(context: *mut GOptionContext, summary: *const gchar); +} +extern "C" { + pub fn g_option_context_get_summary(context: *mut GOptionContext) -> *const gchar; +} +extern "C" { + pub fn g_option_context_set_description( + context: *mut GOptionContext, + description: *const gchar, + ); +} +extern "C" { + pub fn g_option_context_get_description(context: *mut GOptionContext) -> *const gchar; +} +extern "C" { + pub fn g_option_context_free(context: *mut GOptionContext); +} +extern "C" { + pub fn g_option_context_set_help_enabled(context: *mut GOptionContext, help_enabled: gboolean); +} +extern "C" { + pub fn g_option_context_get_help_enabled(context: *mut GOptionContext) -> gboolean; +} +extern "C" { + pub fn g_option_context_set_ignore_unknown_options( + context: *mut GOptionContext, + ignore_unknown: gboolean, + ); +} +extern "C" { + pub fn g_option_context_get_ignore_unknown_options(context: *mut GOptionContext) -> gboolean; +} +extern "C" { + pub fn g_option_context_set_strict_posix(context: *mut GOptionContext, strict_posix: gboolean); +} +extern "C" { + pub fn g_option_context_get_strict_posix(context: *mut GOptionContext) -> gboolean; +} +extern "C" { + pub fn g_option_context_add_main_entries( + context: *mut GOptionContext, + entries: *const GOptionEntry, + translation_domain: *const gchar, + ); +} +extern "C" { + pub fn g_option_context_parse( + context: *mut GOptionContext, + argc: *mut gint, + argv: *mut *mut *mut gchar, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_option_context_parse_strv( + context: *mut GOptionContext, + arguments: *mut *mut *mut gchar, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_option_context_set_translate_func( + context: *mut GOptionContext, + func: GTranslateFunc, + data: gpointer, + destroy_notify: GDestroyNotify, + ); +} +extern "C" { + pub fn g_option_context_set_translation_domain( + context: *mut GOptionContext, + domain: *const gchar, + ); +} +extern "C" { + pub fn g_option_context_add_group(context: *mut GOptionContext, group: *mut GOptionGroup); +} +extern "C" { + pub fn g_option_context_set_main_group(context: *mut GOptionContext, group: *mut GOptionGroup); +} +extern "C" { + pub fn g_option_context_get_main_group(context: *mut GOptionContext) -> *mut GOptionGroup; +} +extern "C" { + pub fn g_option_context_get_help( + context: *mut GOptionContext, + main_help: gboolean, + group: *mut GOptionGroup, + ) -> *mut gchar; +} +extern "C" { + pub fn g_option_group_new( + name: *const gchar, + description: *const gchar, + help_description: *const gchar, + user_data: gpointer, + destroy: GDestroyNotify, + ) -> *mut GOptionGroup; +} +extern "C" { + pub fn g_option_group_set_parse_hooks( + group: *mut GOptionGroup, + pre_parse_func: GOptionParseFunc, + post_parse_func: GOptionParseFunc, + ); +} +extern "C" { + pub fn g_option_group_set_error_hook(group: *mut GOptionGroup, error_func: GOptionErrorFunc); +} +extern "C" { + pub fn g_option_group_free(group: *mut GOptionGroup); +} +extern "C" { + pub fn g_option_group_ref(group: *mut GOptionGroup) -> *mut GOptionGroup; +} +extern "C" { + pub fn g_option_group_unref(group: *mut GOptionGroup); +} +extern "C" { + pub fn g_option_group_add_entries(group: *mut GOptionGroup, entries: *const GOptionEntry); +} +extern "C" { + pub fn g_option_group_set_translate_func( + group: *mut GOptionGroup, + func: GTranslateFunc, + data: gpointer, + destroy_notify: GDestroyNotify, + ); +} +extern "C" { + pub fn g_option_group_set_translation_domain(group: *mut GOptionGroup, domain: *const gchar); +} +pub type GPathBuf = _GPathBuf; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GPathBuf { + pub dummy: [gpointer; 8usize], +} +#[test] +fn bindgen_test_layout__GPathBuf() { + const UNINIT: ::std::mem::MaybeUninit<_GPathBuf> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GPathBuf>(), + 64usize, + concat!("Size of: ", stringify!(_GPathBuf)) + ); + assert_eq!( + ::std::mem::align_of::<_GPathBuf>(), + 8usize, + concat!("Alignment of ", stringify!(_GPathBuf)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GPathBuf), + "::", + stringify!(dummy) + ) + ); +} +extern "C" { + pub fn g_path_buf_new() -> *mut GPathBuf; +} +extern "C" { + pub fn g_path_buf_new_from_path(path: *const ::std::os::raw::c_char) -> *mut GPathBuf; +} +extern "C" { + pub fn g_path_buf_init(buf: *mut GPathBuf) -> *mut GPathBuf; +} +extern "C" { + pub fn g_path_buf_init_from_path( + buf: *mut GPathBuf, + path: *const ::std::os::raw::c_char, + ) -> *mut GPathBuf; +} +extern "C" { + pub fn g_path_buf_clear(buf: *mut GPathBuf); +} +extern "C" { + pub fn g_path_buf_clear_to_path(buf: *mut GPathBuf) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn g_path_buf_free(buf: *mut GPathBuf); +} +extern "C" { + pub fn g_path_buf_free_to_path(buf: *mut GPathBuf) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn g_path_buf_copy(buf: *mut GPathBuf) -> *mut GPathBuf; +} +extern "C" { + pub fn g_path_buf_push( + buf: *mut GPathBuf, + path: *const ::std::os::raw::c_char, + ) -> *mut GPathBuf; +} +extern "C" { + pub fn g_path_buf_pop(buf: *mut GPathBuf) -> gboolean; +} +extern "C" { + pub fn g_path_buf_set_filename( + buf: *mut GPathBuf, + file_name: *const ::std::os::raw::c_char, + ) -> gboolean; +} +extern "C" { + pub fn g_path_buf_set_extension( + buf: *mut GPathBuf, + extension: *const ::std::os::raw::c_char, + ) -> gboolean; +} +extern "C" { + pub fn g_path_buf_to_path(buf: *mut GPathBuf) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn g_path_buf_equal(v1: gconstpointer, v2: gconstpointer) -> gboolean; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GPatternSpec { + _unused: [u8; 0], +} +pub type GPatternSpec = _GPatternSpec; +extern "C" { + pub fn g_pattern_spec_new(pattern: *const gchar) -> *mut GPatternSpec; +} +extern "C" { + pub fn g_pattern_spec_free(pspec: *mut GPatternSpec); +} +extern "C" { + pub fn g_pattern_spec_copy(pspec: *mut GPatternSpec) -> *mut GPatternSpec; +} +extern "C" { + pub fn g_pattern_spec_equal(pspec1: *mut GPatternSpec, pspec2: *mut GPatternSpec) -> gboolean; +} +extern "C" { + pub fn g_pattern_spec_match( + pspec: *mut GPatternSpec, + string_length: gsize, + string: *const gchar, + string_reversed: *const gchar, + ) -> gboolean; +} +extern "C" { + pub fn g_pattern_spec_match_string(pspec: *mut GPatternSpec, string: *const gchar) -> gboolean; +} +extern "C" { + pub fn g_pattern_match( + pspec: *mut GPatternSpec, + string_length: guint, + string: *const gchar, + string_reversed: *const gchar, + ) -> gboolean; +} +extern "C" { + pub fn g_pattern_match_string(pspec: *mut GPatternSpec, string: *const gchar) -> gboolean; +} +extern "C" { + pub fn g_pattern_match_simple(pattern: *const gchar, string: *const gchar) -> gboolean; +} +extern "C" { + pub fn g_spaced_primes_closest(num: guint) -> guint; +} +extern "C" { + pub fn g_qsort_with_data( + pbase: gconstpointer, + total_elems: gint, + size: gsize, + compare_func: GCompareDataFunc, + user_data: gpointer, + ); +} +extern "C" { + pub fn g_sort_array( + array: *const ::std::os::raw::c_void, + n_elements: usize, + element_size: usize, + compare_func: GCompareDataFunc, + user_data: *mut ::std::os::raw::c_void, + ); +} +pub type GQueue = _GQueue; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GQueue { + pub head: *mut GList, + pub tail: *mut GList, + pub length: guint, +} +#[test] +fn bindgen_test_layout__GQueue() { + const UNINIT: ::std::mem::MaybeUninit<_GQueue> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GQueue>(), + 24usize, + concat!("Size of: ", stringify!(_GQueue)) + ); + assert_eq!( + ::std::mem::align_of::<_GQueue>(), + 8usize, + concat!("Alignment of ", stringify!(_GQueue)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).head) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GQueue), + "::", + stringify!(head) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tail) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GQueue), + "::", + stringify!(tail) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_GQueue), + "::", + stringify!(length) + ) + ); +} +extern "C" { + pub fn g_queue_new() -> *mut GQueue; +} +extern "C" { + pub fn g_queue_free(queue: *mut GQueue); +} +extern "C" { + pub fn g_queue_free_full(queue: *mut GQueue, free_func: GDestroyNotify); +} +extern "C" { + pub fn g_queue_init(queue: *mut GQueue); +} +extern "C" { + pub fn g_queue_clear(queue: *mut GQueue); +} +extern "C" { + pub fn g_queue_is_empty(queue: *mut GQueue) -> gboolean; +} +extern "C" { + pub fn g_queue_clear_full(queue: *mut GQueue, free_func: GDestroyNotify); +} +extern "C" { + pub fn g_queue_get_length(queue: *mut GQueue) -> guint; +} +extern "C" { + pub fn g_queue_reverse(queue: *mut GQueue); +} +extern "C" { + pub fn g_queue_copy(queue: *mut GQueue) -> *mut GQueue; +} +extern "C" { + pub fn g_queue_foreach(queue: *mut GQueue, func: GFunc, user_data: gpointer); +} +extern "C" { + pub fn g_queue_find(queue: *mut GQueue, data: gconstpointer) -> *mut GList; +} +extern "C" { + pub fn g_queue_find_custom( + queue: *mut GQueue, + data: gconstpointer, + func: GCompareFunc, + ) -> *mut GList; +} +extern "C" { + pub fn g_queue_sort(queue: *mut GQueue, compare_func: GCompareDataFunc, user_data: gpointer); +} +extern "C" { + pub fn g_queue_push_head(queue: *mut GQueue, data: gpointer); +} +extern "C" { + pub fn g_queue_push_tail(queue: *mut GQueue, data: gpointer); +} +extern "C" { + pub fn g_queue_push_nth(queue: *mut GQueue, data: gpointer, n: gint); +} +extern "C" { + pub fn g_queue_pop_head(queue: *mut GQueue) -> gpointer; +} +extern "C" { + pub fn g_queue_pop_tail(queue: *mut GQueue) -> gpointer; +} +extern "C" { + pub fn g_queue_pop_nth(queue: *mut GQueue, n: guint) -> gpointer; +} +extern "C" { + pub fn g_queue_peek_head(queue: *mut GQueue) -> gpointer; +} +extern "C" { + pub fn g_queue_peek_tail(queue: *mut GQueue) -> gpointer; +} +extern "C" { + pub fn g_queue_peek_nth(queue: *mut GQueue, n: guint) -> gpointer; +} +extern "C" { + pub fn g_queue_index(queue: *mut GQueue, data: gconstpointer) -> gint; +} +extern "C" { + pub fn g_queue_remove(queue: *mut GQueue, data: gconstpointer) -> gboolean; +} +extern "C" { + pub fn g_queue_remove_all(queue: *mut GQueue, data: gconstpointer) -> guint; +} +extern "C" { + pub fn g_queue_insert_before(queue: *mut GQueue, sibling: *mut GList, data: gpointer); +} +extern "C" { + pub fn g_queue_insert_before_link(queue: *mut GQueue, sibling: *mut GList, link_: *mut GList); +} +extern "C" { + pub fn g_queue_insert_after(queue: *mut GQueue, sibling: *mut GList, data: gpointer); +} +extern "C" { + pub fn g_queue_insert_after_link(queue: *mut GQueue, sibling: *mut GList, link_: *mut GList); +} +extern "C" { + pub fn g_queue_insert_sorted( + queue: *mut GQueue, + data: gpointer, + func: GCompareDataFunc, + user_data: gpointer, + ); +} +extern "C" { + pub fn g_queue_push_head_link(queue: *mut GQueue, link_: *mut GList); +} +extern "C" { + pub fn g_queue_push_tail_link(queue: *mut GQueue, link_: *mut GList); +} +extern "C" { + pub fn g_queue_push_nth_link(queue: *mut GQueue, n: gint, link_: *mut GList); +} +extern "C" { + pub fn g_queue_pop_head_link(queue: *mut GQueue) -> *mut GList; +} +extern "C" { + pub fn g_queue_pop_tail_link(queue: *mut GQueue) -> *mut GList; +} +extern "C" { + pub fn g_queue_pop_nth_link(queue: *mut GQueue, n: guint) -> *mut GList; +} +extern "C" { + pub fn g_queue_peek_head_link(queue: *mut GQueue) -> *mut GList; +} +extern "C" { + pub fn g_queue_peek_tail_link(queue: *mut GQueue) -> *mut GList; +} +extern "C" { + pub fn g_queue_peek_nth_link(queue: *mut GQueue, n: guint) -> *mut GList; +} +extern "C" { + pub fn g_queue_link_index(queue: *mut GQueue, link_: *mut GList) -> gint; +} +extern "C" { + pub fn g_queue_unlink(queue: *mut GQueue, link_: *mut GList); +} +extern "C" { + pub fn g_queue_delete_link(queue: *mut GQueue, link_: *mut GList); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GRand { + _unused: [u8; 0], +} +pub type GRand = _GRand; +extern "C" { + pub fn g_rand_new_with_seed(seed: guint32) -> *mut GRand; +} +extern "C" { + pub fn g_rand_new_with_seed_array(seed: *const guint32, seed_length: guint) -> *mut GRand; +} +extern "C" { + pub fn g_rand_new() -> *mut GRand; +} +extern "C" { + pub fn g_rand_free(rand_: *mut GRand); +} +extern "C" { + pub fn g_rand_copy(rand_: *mut GRand) -> *mut GRand; +} +extern "C" { + pub fn g_rand_set_seed(rand_: *mut GRand, seed: guint32); +} +extern "C" { + pub fn g_rand_set_seed_array(rand_: *mut GRand, seed: *const guint32, seed_length: guint); +} +extern "C" { + pub fn g_rand_int(rand_: *mut GRand) -> guint32; +} +extern "C" { + pub fn g_rand_int_range(rand_: *mut GRand, begin: gint32, end: gint32) -> gint32; +} +extern "C" { + pub fn g_rand_double(rand_: *mut GRand) -> gdouble; +} +extern "C" { + pub fn g_rand_double_range(rand_: *mut GRand, begin: gdouble, end: gdouble) -> gdouble; +} +extern "C" { + pub fn g_random_set_seed(seed: guint32); +} +extern "C" { + pub fn g_random_int() -> guint32; +} +extern "C" { + pub fn g_random_int_range(begin: gint32, end: gint32) -> gint32; +} +extern "C" { + pub fn g_random_double() -> gdouble; +} +extern "C" { + pub fn g_random_double_range(begin: gdouble, end: gdouble) -> gdouble; +} +extern "C" { + pub fn g_rc_box_alloc(block_size: gsize) -> gpointer; +} +extern "C" { + pub fn g_rc_box_alloc0(block_size: gsize) -> gpointer; +} +extern "C" { + pub fn g_rc_box_dup(block_size: gsize, mem_block: gconstpointer) -> gpointer; +} +extern "C" { + pub fn g_rc_box_acquire(mem_block: gpointer) -> gpointer; +} +extern "C" { + pub fn g_rc_box_release(mem_block: gpointer); +} +extern "C" { + pub fn g_rc_box_release_full(mem_block: gpointer, clear_func: GDestroyNotify); +} +extern "C" { + pub fn g_rc_box_get_size(mem_block: gpointer) -> gsize; +} +extern "C" { + pub fn g_atomic_rc_box_alloc(block_size: gsize) -> gpointer; +} +extern "C" { + pub fn g_atomic_rc_box_alloc0(block_size: gsize) -> gpointer; +} +extern "C" { + pub fn g_atomic_rc_box_dup(block_size: gsize, mem_block: gconstpointer) -> gpointer; +} +extern "C" { + pub fn g_atomic_rc_box_acquire(mem_block: gpointer) -> gpointer; +} +extern "C" { + pub fn g_atomic_rc_box_release(mem_block: gpointer); +} +extern "C" { + pub fn g_atomic_rc_box_release_full(mem_block: gpointer, clear_func: GDestroyNotify); +} +extern "C" { + pub fn g_atomic_rc_box_get_size(mem_block: gpointer) -> gsize; +} +extern "C" { + pub fn g_ref_count_init(rc: *mut grefcount); +} +extern "C" { + pub fn g_ref_count_inc(rc: *mut grefcount); +} +extern "C" { + pub fn g_ref_count_dec(rc: *mut grefcount) -> gboolean; +} +extern "C" { + pub fn g_ref_count_compare(rc: *mut grefcount, val: gint) -> gboolean; +} +extern "C" { + pub fn g_atomic_ref_count_init(arc: *mut gatomicrefcount); +} +extern "C" { + pub fn g_atomic_ref_count_inc(arc: *mut gatomicrefcount); +} +extern "C" { + pub fn g_atomic_ref_count_dec(arc: *mut gatomicrefcount) -> gboolean; +} +extern "C" { + pub fn g_atomic_ref_count_compare(arc: *mut gatomicrefcount, val: gint) -> gboolean; +} +extern "C" { + pub fn g_ref_string_new(str_: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn g_ref_string_new_len( + str_: *const ::std::os::raw::c_char, + len: gssize, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn g_ref_string_new_intern( + str_: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn g_ref_string_acquire(str_: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn g_ref_string_release(str_: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn g_ref_string_length(str_: *mut ::std::os::raw::c_char) -> gsize; +} +pub type GRefString = ::std::os::raw::c_char; +pub const GRegexError_G_REGEX_ERROR_COMPILE: GRegexError = 0; +pub const GRegexError_G_REGEX_ERROR_OPTIMIZE: GRegexError = 1; +pub const GRegexError_G_REGEX_ERROR_REPLACE: GRegexError = 2; +pub const GRegexError_G_REGEX_ERROR_MATCH: GRegexError = 3; +pub const GRegexError_G_REGEX_ERROR_INTERNAL: GRegexError = 4; +pub const GRegexError_G_REGEX_ERROR_STRAY_BACKSLASH: GRegexError = 101; +pub const GRegexError_G_REGEX_ERROR_MISSING_CONTROL_CHAR: GRegexError = 102; +pub const GRegexError_G_REGEX_ERROR_UNRECOGNIZED_ESCAPE: GRegexError = 103; +pub const GRegexError_G_REGEX_ERROR_QUANTIFIERS_OUT_OF_ORDER: GRegexError = 104; +pub const GRegexError_G_REGEX_ERROR_QUANTIFIER_TOO_BIG: GRegexError = 105; +pub const GRegexError_G_REGEX_ERROR_UNTERMINATED_CHARACTER_CLASS: GRegexError = 106; +pub const GRegexError_G_REGEX_ERROR_INVALID_ESCAPE_IN_CHARACTER_CLASS: GRegexError = 107; +pub const GRegexError_G_REGEX_ERROR_RANGE_OUT_OF_ORDER: GRegexError = 108; +pub const GRegexError_G_REGEX_ERROR_NOTHING_TO_REPEAT: GRegexError = 109; +pub const GRegexError_G_REGEX_ERROR_UNRECOGNIZED_CHARACTER: GRegexError = 112; +pub const GRegexError_G_REGEX_ERROR_POSIX_NAMED_CLASS_OUTSIDE_CLASS: GRegexError = 113; +pub const GRegexError_G_REGEX_ERROR_UNMATCHED_PARENTHESIS: GRegexError = 114; +pub const GRegexError_G_REGEX_ERROR_INEXISTENT_SUBPATTERN_REFERENCE: GRegexError = 115; +pub const GRegexError_G_REGEX_ERROR_UNTERMINATED_COMMENT: GRegexError = 118; +pub const GRegexError_G_REGEX_ERROR_EXPRESSION_TOO_LARGE: GRegexError = 120; +pub const GRegexError_G_REGEX_ERROR_MEMORY_ERROR: GRegexError = 121; +pub const GRegexError_G_REGEX_ERROR_VARIABLE_LENGTH_LOOKBEHIND: GRegexError = 125; +pub const GRegexError_G_REGEX_ERROR_MALFORMED_CONDITION: GRegexError = 126; +pub const GRegexError_G_REGEX_ERROR_TOO_MANY_CONDITIONAL_BRANCHES: GRegexError = 127; +pub const GRegexError_G_REGEX_ERROR_ASSERTION_EXPECTED: GRegexError = 128; +pub const GRegexError_G_REGEX_ERROR_UNKNOWN_POSIX_CLASS_NAME: GRegexError = 130; +pub const GRegexError_G_REGEX_ERROR_POSIX_COLLATING_ELEMENTS_NOT_SUPPORTED: GRegexError = 131; +pub const GRegexError_G_REGEX_ERROR_HEX_CODE_TOO_LARGE: GRegexError = 134; +pub const GRegexError_G_REGEX_ERROR_INVALID_CONDITION: GRegexError = 135; +pub const GRegexError_G_REGEX_ERROR_SINGLE_BYTE_MATCH_IN_LOOKBEHIND: GRegexError = 136; +pub const GRegexError_G_REGEX_ERROR_INFINITE_LOOP: GRegexError = 140; +pub const GRegexError_G_REGEX_ERROR_MISSING_SUBPATTERN_NAME_TERMINATOR: GRegexError = 142; +pub const GRegexError_G_REGEX_ERROR_DUPLICATE_SUBPATTERN_NAME: GRegexError = 143; +pub const GRegexError_G_REGEX_ERROR_MALFORMED_PROPERTY: GRegexError = 146; +pub const GRegexError_G_REGEX_ERROR_UNKNOWN_PROPERTY: GRegexError = 147; +pub const GRegexError_G_REGEX_ERROR_SUBPATTERN_NAME_TOO_LONG: GRegexError = 148; +pub const GRegexError_G_REGEX_ERROR_TOO_MANY_SUBPATTERNS: GRegexError = 149; +pub const GRegexError_G_REGEX_ERROR_INVALID_OCTAL_VALUE: GRegexError = 151; +pub const GRegexError_G_REGEX_ERROR_TOO_MANY_BRANCHES_IN_DEFINE: GRegexError = 154; +pub const GRegexError_G_REGEX_ERROR_DEFINE_REPETION: GRegexError = 155; +pub const GRegexError_G_REGEX_ERROR_INCONSISTENT_NEWLINE_OPTIONS: GRegexError = 156; +pub const GRegexError_G_REGEX_ERROR_MISSING_BACK_REFERENCE: GRegexError = 157; +pub const GRegexError_G_REGEX_ERROR_INVALID_RELATIVE_REFERENCE: GRegexError = 158; +pub const GRegexError_G_REGEX_ERROR_BACKTRACKING_CONTROL_VERB_ARGUMENT_FORBIDDEN: GRegexError = 159; +pub const GRegexError_G_REGEX_ERROR_UNKNOWN_BACKTRACKING_CONTROL_VERB: GRegexError = 160; +pub const GRegexError_G_REGEX_ERROR_NUMBER_TOO_BIG: GRegexError = 161; +pub const GRegexError_G_REGEX_ERROR_MISSING_SUBPATTERN_NAME: GRegexError = 162; +pub const GRegexError_G_REGEX_ERROR_MISSING_DIGIT: GRegexError = 163; +pub const GRegexError_G_REGEX_ERROR_INVALID_DATA_CHARACTER: GRegexError = 164; +pub const GRegexError_G_REGEX_ERROR_EXTRA_SUBPATTERN_NAME: GRegexError = 165; +pub const GRegexError_G_REGEX_ERROR_BACKTRACKING_CONTROL_VERB_ARGUMENT_REQUIRED: GRegexError = 166; +pub const GRegexError_G_REGEX_ERROR_INVALID_CONTROL_CHAR: GRegexError = 168; +pub const GRegexError_G_REGEX_ERROR_MISSING_NAME: GRegexError = 169; +pub const GRegexError_G_REGEX_ERROR_NOT_SUPPORTED_IN_CLASS: GRegexError = 171; +pub const GRegexError_G_REGEX_ERROR_TOO_MANY_FORWARD_REFERENCES: GRegexError = 172; +pub const GRegexError_G_REGEX_ERROR_NAME_TOO_LONG: GRegexError = 175; +pub const GRegexError_G_REGEX_ERROR_CHARACTER_VALUE_TOO_LARGE: GRegexError = 176; +pub type GRegexError = ::std::os::raw::c_uint; +extern "C" { + pub fn g_regex_error_quark() -> GQuark; +} +pub const GRegexCompileFlags_G_REGEX_DEFAULT: GRegexCompileFlags = 0; +pub const GRegexCompileFlags_G_REGEX_CASELESS: GRegexCompileFlags = 1; +pub const GRegexCompileFlags_G_REGEX_MULTILINE: GRegexCompileFlags = 2; +pub const GRegexCompileFlags_G_REGEX_DOTALL: GRegexCompileFlags = 4; +pub const GRegexCompileFlags_G_REGEX_EXTENDED: GRegexCompileFlags = 8; +pub const GRegexCompileFlags_G_REGEX_ANCHORED: GRegexCompileFlags = 16; +pub const GRegexCompileFlags_G_REGEX_DOLLAR_ENDONLY: GRegexCompileFlags = 32; +pub const GRegexCompileFlags_G_REGEX_UNGREEDY: GRegexCompileFlags = 512; +pub const GRegexCompileFlags_G_REGEX_RAW: GRegexCompileFlags = 2048; +pub const GRegexCompileFlags_G_REGEX_NO_AUTO_CAPTURE: GRegexCompileFlags = 4096; +pub const GRegexCompileFlags_G_REGEX_OPTIMIZE: GRegexCompileFlags = 8192; +pub const GRegexCompileFlags_G_REGEX_FIRSTLINE: GRegexCompileFlags = 262144; +pub const GRegexCompileFlags_G_REGEX_DUPNAMES: GRegexCompileFlags = 524288; +pub const GRegexCompileFlags_G_REGEX_NEWLINE_CR: GRegexCompileFlags = 1048576; +pub const GRegexCompileFlags_G_REGEX_NEWLINE_LF: GRegexCompileFlags = 2097152; +pub const GRegexCompileFlags_G_REGEX_NEWLINE_CRLF: GRegexCompileFlags = 3145728; +pub const GRegexCompileFlags_G_REGEX_NEWLINE_ANYCRLF: GRegexCompileFlags = 5242880; +pub const GRegexCompileFlags_G_REGEX_BSR_ANYCRLF: GRegexCompileFlags = 8388608; +pub const GRegexCompileFlags_G_REGEX_JAVASCRIPT_COMPAT: GRegexCompileFlags = 33554432; +pub type GRegexCompileFlags = ::std::os::raw::c_uint; +pub const GRegexMatchFlags_G_REGEX_MATCH_DEFAULT: GRegexMatchFlags = 0; +pub const GRegexMatchFlags_G_REGEX_MATCH_ANCHORED: GRegexMatchFlags = 16; +pub const GRegexMatchFlags_G_REGEX_MATCH_NOTBOL: GRegexMatchFlags = 128; +pub const GRegexMatchFlags_G_REGEX_MATCH_NOTEOL: GRegexMatchFlags = 256; +pub const GRegexMatchFlags_G_REGEX_MATCH_NOTEMPTY: GRegexMatchFlags = 1024; +pub const GRegexMatchFlags_G_REGEX_MATCH_PARTIAL: GRegexMatchFlags = 32768; +pub const GRegexMatchFlags_G_REGEX_MATCH_NEWLINE_CR: GRegexMatchFlags = 1048576; +pub const GRegexMatchFlags_G_REGEX_MATCH_NEWLINE_LF: GRegexMatchFlags = 2097152; +pub const GRegexMatchFlags_G_REGEX_MATCH_NEWLINE_CRLF: GRegexMatchFlags = 3145728; +pub const GRegexMatchFlags_G_REGEX_MATCH_NEWLINE_ANY: GRegexMatchFlags = 4194304; +pub const GRegexMatchFlags_G_REGEX_MATCH_NEWLINE_ANYCRLF: GRegexMatchFlags = 5242880; +pub const GRegexMatchFlags_G_REGEX_MATCH_BSR_ANYCRLF: GRegexMatchFlags = 8388608; +pub const GRegexMatchFlags_G_REGEX_MATCH_BSR_ANY: GRegexMatchFlags = 16777216; +pub const GRegexMatchFlags_G_REGEX_MATCH_PARTIAL_SOFT: GRegexMatchFlags = 32768; +pub const GRegexMatchFlags_G_REGEX_MATCH_PARTIAL_HARD: GRegexMatchFlags = 134217728; +pub const GRegexMatchFlags_G_REGEX_MATCH_NOTEMPTY_ATSTART: GRegexMatchFlags = 268435456; +pub type GRegexMatchFlags = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GRegex { + _unused: [u8; 0], +} +pub type GRegex = _GRegex; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GMatchInfo { + _unused: [u8; 0], +} +pub type GMatchInfo = _GMatchInfo; +pub type GRegexEvalCallback = ::std::option::Option< + unsafe extern "C" fn( + match_info: *const GMatchInfo, + result: *mut GString, + user_data: gpointer, + ) -> gboolean, +>; +extern "C" { + pub fn g_regex_new( + pattern: *const gchar, + compile_options: GRegexCompileFlags, + match_options: GRegexMatchFlags, + error: *mut *mut GError, + ) -> *mut GRegex; +} +extern "C" { + pub fn g_regex_ref(regex: *mut GRegex) -> *mut GRegex; +} +extern "C" { + pub fn g_regex_unref(regex: *mut GRegex); +} +extern "C" { + pub fn g_regex_get_pattern(regex: *const GRegex) -> *const gchar; +} +extern "C" { + pub fn g_regex_get_max_backref(regex: *const GRegex) -> gint; +} +extern "C" { + pub fn g_regex_get_capture_count(regex: *const GRegex) -> gint; +} +extern "C" { + pub fn g_regex_get_has_cr_or_lf(regex: *const GRegex) -> gboolean; +} +extern "C" { + pub fn g_regex_get_max_lookbehind(regex: *const GRegex) -> gint; +} +extern "C" { + pub fn g_regex_get_string_number(regex: *const GRegex, name: *const gchar) -> gint; +} +extern "C" { + pub fn g_regex_escape_string(string: *const gchar, length: gint) -> *mut gchar; +} +extern "C" { + pub fn g_regex_escape_nul(string: *const gchar, length: gint) -> *mut gchar; +} +extern "C" { + pub fn g_regex_get_compile_flags(regex: *const GRegex) -> GRegexCompileFlags; +} +extern "C" { + pub fn g_regex_get_match_flags(regex: *const GRegex) -> GRegexMatchFlags; +} +extern "C" { + pub fn g_regex_match_simple( + pattern: *const gchar, + string: *const gchar, + compile_options: GRegexCompileFlags, + match_options: GRegexMatchFlags, + ) -> gboolean; +} +extern "C" { + pub fn g_regex_match( + regex: *const GRegex, + string: *const gchar, + match_options: GRegexMatchFlags, + match_info: *mut *mut GMatchInfo, + ) -> gboolean; +} +extern "C" { + pub fn g_regex_match_full( + regex: *const GRegex, + string: *const gchar, + string_len: gssize, + start_position: gint, + match_options: GRegexMatchFlags, + match_info: *mut *mut GMatchInfo, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_regex_match_all( + regex: *const GRegex, + string: *const gchar, + match_options: GRegexMatchFlags, + match_info: *mut *mut GMatchInfo, + ) -> gboolean; +} +extern "C" { + pub fn g_regex_match_all_full( + regex: *const GRegex, + string: *const gchar, + string_len: gssize, + start_position: gint, + match_options: GRegexMatchFlags, + match_info: *mut *mut GMatchInfo, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_regex_split_simple( + pattern: *const gchar, + string: *const gchar, + compile_options: GRegexCompileFlags, + match_options: GRegexMatchFlags, + ) -> *mut *mut gchar; +} +extern "C" { + pub fn g_regex_split( + regex: *const GRegex, + string: *const gchar, + match_options: GRegexMatchFlags, + ) -> *mut *mut gchar; +} +extern "C" { + pub fn g_regex_split_full( + regex: *const GRegex, + string: *const gchar, + string_len: gssize, + start_position: gint, + match_options: GRegexMatchFlags, + max_tokens: gint, + error: *mut *mut GError, + ) -> *mut *mut gchar; +} +extern "C" { + pub fn g_regex_replace( + regex: *const GRegex, + string: *const gchar, + string_len: gssize, + start_position: gint, + replacement: *const gchar, + match_options: GRegexMatchFlags, + error: *mut *mut GError, + ) -> *mut gchar; +} +extern "C" { + pub fn g_regex_replace_literal( + regex: *const GRegex, + string: *const gchar, + string_len: gssize, + start_position: gint, + replacement: *const gchar, + match_options: GRegexMatchFlags, + error: *mut *mut GError, + ) -> *mut gchar; +} +extern "C" { + pub fn g_regex_replace_eval( + regex: *const GRegex, + string: *const gchar, + string_len: gssize, + start_position: gint, + match_options: GRegexMatchFlags, + eval: GRegexEvalCallback, + user_data: gpointer, + error: *mut *mut GError, + ) -> *mut gchar; +} +extern "C" { + pub fn g_regex_check_replacement( + replacement: *const gchar, + has_references: *mut gboolean, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_match_info_get_regex(match_info: *const GMatchInfo) -> *mut GRegex; +} +extern "C" { + pub fn g_match_info_get_string(match_info: *const GMatchInfo) -> *const gchar; +} +extern "C" { + pub fn g_match_info_ref(match_info: *mut GMatchInfo) -> *mut GMatchInfo; +} +extern "C" { + pub fn g_match_info_unref(match_info: *mut GMatchInfo); +} +extern "C" { + pub fn g_match_info_free(match_info: *mut GMatchInfo); +} +extern "C" { + pub fn g_match_info_next(match_info: *mut GMatchInfo, error: *mut *mut GError) -> gboolean; +} +extern "C" { + pub fn g_match_info_matches(match_info: *const GMatchInfo) -> gboolean; +} +extern "C" { + pub fn g_match_info_get_match_count(match_info: *const GMatchInfo) -> gint; +} +extern "C" { + pub fn g_match_info_is_partial_match(match_info: *const GMatchInfo) -> gboolean; +} +extern "C" { + pub fn g_match_info_expand_references( + match_info: *const GMatchInfo, + string_to_expand: *const gchar, + error: *mut *mut GError, + ) -> *mut gchar; +} +extern "C" { + pub fn g_match_info_fetch(match_info: *const GMatchInfo, match_num: gint) -> *mut gchar; +} +extern "C" { + pub fn g_match_info_fetch_pos( + match_info: *const GMatchInfo, + match_num: gint, + start_pos: *mut gint, + end_pos: *mut gint, + ) -> gboolean; +} +extern "C" { + pub fn g_match_info_fetch_named( + match_info: *const GMatchInfo, + name: *const gchar, + ) -> *mut gchar; +} +extern "C" { + pub fn g_match_info_fetch_named_pos( + match_info: *const GMatchInfo, + name: *const gchar, + start_pos: *mut gint, + end_pos: *mut gint, + ) -> gboolean; +} +extern "C" { + pub fn g_match_info_fetch_all(match_info: *const GMatchInfo) -> *mut *mut gchar; +} +pub type GScanner = _GScanner; +pub type GScannerConfig = _GScannerConfig; +pub type GTokenValue = _GTokenValue; +pub type GScannerMsgFunc = ::std::option::Option< + unsafe extern "C" fn(scanner: *mut GScanner, message: *mut gchar, error: gboolean), +>; +pub const GErrorType_G_ERR_UNKNOWN: GErrorType = 0; +pub const GErrorType_G_ERR_UNEXP_EOF: GErrorType = 1; +pub const GErrorType_G_ERR_UNEXP_EOF_IN_STRING: GErrorType = 2; +pub const GErrorType_G_ERR_UNEXP_EOF_IN_COMMENT: GErrorType = 3; +pub const GErrorType_G_ERR_NON_DIGIT_IN_CONST: GErrorType = 4; +pub const GErrorType_G_ERR_DIGIT_RADIX: GErrorType = 5; +pub const GErrorType_G_ERR_FLOAT_RADIX: GErrorType = 6; +pub const GErrorType_G_ERR_FLOAT_MALFORMED: GErrorType = 7; +pub type GErrorType = ::std::os::raw::c_uint; +pub const GTokenType_G_TOKEN_EOF: GTokenType = 0; +pub const GTokenType_G_TOKEN_LEFT_PAREN: GTokenType = 40; +pub const GTokenType_G_TOKEN_RIGHT_PAREN: GTokenType = 41; +pub const GTokenType_G_TOKEN_LEFT_CURLY: GTokenType = 123; +pub const GTokenType_G_TOKEN_RIGHT_CURLY: GTokenType = 125; +pub const GTokenType_G_TOKEN_LEFT_BRACE: GTokenType = 91; +pub const GTokenType_G_TOKEN_RIGHT_BRACE: GTokenType = 93; +pub const GTokenType_G_TOKEN_EQUAL_SIGN: GTokenType = 61; +pub const GTokenType_G_TOKEN_COMMA: GTokenType = 44; +pub const GTokenType_G_TOKEN_NONE: GTokenType = 256; +pub const GTokenType_G_TOKEN_ERROR: GTokenType = 257; +pub const GTokenType_G_TOKEN_CHAR: GTokenType = 258; +pub const GTokenType_G_TOKEN_BINARY: GTokenType = 259; +pub const GTokenType_G_TOKEN_OCTAL: GTokenType = 260; +pub const GTokenType_G_TOKEN_INT: GTokenType = 261; +pub const GTokenType_G_TOKEN_HEX: GTokenType = 262; +pub const GTokenType_G_TOKEN_FLOAT: GTokenType = 263; +pub const GTokenType_G_TOKEN_STRING: GTokenType = 264; +pub const GTokenType_G_TOKEN_SYMBOL: GTokenType = 265; +pub const GTokenType_G_TOKEN_IDENTIFIER: GTokenType = 266; +pub const GTokenType_G_TOKEN_IDENTIFIER_NULL: GTokenType = 267; +pub const GTokenType_G_TOKEN_COMMENT_SINGLE: GTokenType = 268; +pub const GTokenType_G_TOKEN_COMMENT_MULTI: GTokenType = 269; +pub const GTokenType_G_TOKEN_LAST: GTokenType = 270; +pub type GTokenType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Copy, Clone)] +pub union _GTokenValue { + pub v_symbol: gpointer, + pub v_identifier: *mut gchar, + pub v_binary: gulong, + pub v_octal: gulong, + pub v_int: gulong, + pub v_int64: guint64, + pub v_float: gdouble, + pub v_hex: gulong, + pub v_string: *mut gchar, + pub v_comment: *mut gchar, + pub v_char: guchar, + pub v_error: guint, +} +#[test] +fn bindgen_test_layout__GTokenValue() { + const UNINIT: ::std::mem::MaybeUninit<_GTokenValue> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GTokenValue>(), + 8usize, + concat!("Size of: ", stringify!(_GTokenValue)) + ); + assert_eq!( + ::std::mem::align_of::<_GTokenValue>(), + 8usize, + concat!("Alignment of ", stringify!(_GTokenValue)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).v_symbol) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GTokenValue), + "::", + stringify!(v_symbol) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).v_identifier) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GTokenValue), + "::", + stringify!(v_identifier) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).v_binary) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GTokenValue), + "::", + stringify!(v_binary) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).v_octal) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GTokenValue), + "::", + stringify!(v_octal) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).v_int) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GTokenValue), + "::", + stringify!(v_int) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).v_int64) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GTokenValue), + "::", + stringify!(v_int64) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).v_float) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GTokenValue), + "::", + stringify!(v_float) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).v_hex) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GTokenValue), + "::", + stringify!(v_hex) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).v_string) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GTokenValue), + "::", + stringify!(v_string) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).v_comment) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GTokenValue), + "::", + stringify!(v_comment) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).v_char) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GTokenValue), + "::", + stringify!(v_char) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).v_error) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GTokenValue), + "::", + stringify!(v_error) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GScannerConfig { + pub cset_skip_characters: *mut gchar, + pub cset_identifier_first: *mut gchar, + pub cset_identifier_nth: *mut gchar, + pub cpair_comment_single: *mut gchar, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>, + pub padding_dummy: guint, +} +#[test] +fn bindgen_test_layout__GScannerConfig() { + const UNINIT: ::std::mem::MaybeUninit<_GScannerConfig> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GScannerConfig>(), + 40usize, + concat!("Size of: ", stringify!(_GScannerConfig)) + ); + assert_eq!( + ::std::mem::align_of::<_GScannerConfig>(), + 8usize, + concat!("Alignment of ", stringify!(_GScannerConfig)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).cset_skip_characters) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GScannerConfig), + "::", + stringify!(cset_skip_characters) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).cset_identifier_first) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GScannerConfig), + "::", + stringify!(cset_identifier_first) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).cset_identifier_nth) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_GScannerConfig), + "::", + stringify!(cset_identifier_nth) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).cpair_comment_single) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_GScannerConfig), + "::", + stringify!(cpair_comment_single) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).padding_dummy) as usize - ptr as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(_GScannerConfig), + "::", + stringify!(padding_dummy) + ) + ); +} +impl _GScannerConfig { + #[inline] + pub fn case_sensitive(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_case_sensitive(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn skip_comment_multi(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_skip_comment_multi(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub fn skip_comment_single(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_skip_comment_single(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub fn scan_comment_multi(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } + } + #[inline] + pub fn set_scan_comment_multi(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub fn scan_identifier(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } + } + #[inline] + pub fn set_scan_identifier(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub fn scan_identifier_1char(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } + } + #[inline] + pub fn set_scan_identifier_1char(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub fn scan_identifier_NULL(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } + } + #[inline] + pub fn set_scan_identifier_NULL(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub fn scan_symbols(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } + } + #[inline] + pub fn set_scan_symbols(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub fn scan_binary(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) } + } + #[inline] + pub fn set_scan_binary(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(8usize, 1u8, val as u64) + } + } + #[inline] + pub fn scan_octal(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) } + } + #[inline] + pub fn set_scan_octal(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(9usize, 1u8, val as u64) + } + } + #[inline] + pub fn scan_float(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) } + } + #[inline] + pub fn set_scan_float(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(10usize, 1u8, val as u64) + } + } + #[inline] + pub fn scan_hex(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) } + } + #[inline] + pub fn set_scan_hex(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(11usize, 1u8, val as u64) + } + } + #[inline] + pub fn scan_hex_dollar(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u32) } + } + #[inline] + pub fn set_scan_hex_dollar(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(12usize, 1u8, val as u64) + } + } + #[inline] + pub fn scan_string_sq(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u32) } + } + #[inline] + pub fn set_scan_string_sq(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(13usize, 1u8, val as u64) + } + } + #[inline] + pub fn scan_string_dq(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u32) } + } + #[inline] + pub fn set_scan_string_dq(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(14usize, 1u8, val as u64) + } + } + #[inline] + pub fn numbers_2_int(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u32) } + } + #[inline] + pub fn set_numbers_2_int(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(15usize, 1u8, val as u64) + } + } + #[inline] + pub fn int_2_float(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u32) } + } + #[inline] + pub fn set_int_2_float(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(16usize, 1u8, val as u64) + } + } + #[inline] + pub fn identifier_2_string(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u32) } + } + #[inline] + pub fn set_identifier_2_string(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(17usize, 1u8, val as u64) + } + } + #[inline] + pub fn char_2_token(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u32) } + } + #[inline] + pub fn set_char_2_token(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(18usize, 1u8, val as u64) + } + } + #[inline] + pub fn symbol_2_token(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(19usize, 1u8) as u32) } + } + #[inline] + pub fn set_symbol_2_token(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(19usize, 1u8, val as u64) + } + } + #[inline] + pub fn scope_0_fallback(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(20usize, 1u8) as u32) } + } + #[inline] + pub fn set_scope_0_fallback(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(20usize, 1u8, val as u64) + } + } + #[inline] + pub fn store_int64(&self) -> guint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u32) } + } + #[inline] + pub fn set_store_int64(&mut self, val: guint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(21usize, 1u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + case_sensitive: guint, + skip_comment_multi: guint, + skip_comment_single: guint, + scan_comment_multi: guint, + scan_identifier: guint, + scan_identifier_1char: guint, + scan_identifier_NULL: guint, + scan_symbols: guint, + scan_binary: guint, + scan_octal: guint, + scan_float: guint, + scan_hex: guint, + scan_hex_dollar: guint, + scan_string_sq: guint, + scan_string_dq: guint, + numbers_2_int: guint, + int_2_float: guint, + identifier_2_string: guint, + char_2_token: guint, + symbol_2_token: guint, + scope_0_fallback: guint, + store_int64: guint, + ) -> __BindgenBitfieldUnit<[u8; 3usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let case_sensitive: u32 = unsafe { ::std::mem::transmute(case_sensitive) }; + case_sensitive as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let skip_comment_multi: u32 = unsafe { ::std::mem::transmute(skip_comment_multi) }; + skip_comment_multi as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let skip_comment_single: u32 = unsafe { ::std::mem::transmute(skip_comment_single) }; + skip_comment_single as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let scan_comment_multi: u32 = unsafe { ::std::mem::transmute(scan_comment_multi) }; + scan_comment_multi as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let scan_identifier: u32 = unsafe { ::std::mem::transmute(scan_identifier) }; + scan_identifier as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let scan_identifier_1char: u32 = + unsafe { ::std::mem::transmute(scan_identifier_1char) }; + scan_identifier_1char as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let scan_identifier_NULL: u32 = unsafe { ::std::mem::transmute(scan_identifier_NULL) }; + scan_identifier_NULL as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let scan_symbols: u32 = unsafe { ::std::mem::transmute(scan_symbols) }; + scan_symbols as u64 + }); + __bindgen_bitfield_unit.set(8usize, 1u8, { + let scan_binary: u32 = unsafe { ::std::mem::transmute(scan_binary) }; + scan_binary as u64 + }); + __bindgen_bitfield_unit.set(9usize, 1u8, { + let scan_octal: u32 = unsafe { ::std::mem::transmute(scan_octal) }; + scan_octal as u64 + }); + __bindgen_bitfield_unit.set(10usize, 1u8, { + let scan_float: u32 = unsafe { ::std::mem::transmute(scan_float) }; + scan_float as u64 + }); + __bindgen_bitfield_unit.set(11usize, 1u8, { + let scan_hex: u32 = unsafe { ::std::mem::transmute(scan_hex) }; + scan_hex as u64 + }); + __bindgen_bitfield_unit.set(12usize, 1u8, { + let scan_hex_dollar: u32 = unsafe { ::std::mem::transmute(scan_hex_dollar) }; + scan_hex_dollar as u64 + }); + __bindgen_bitfield_unit.set(13usize, 1u8, { + let scan_string_sq: u32 = unsafe { ::std::mem::transmute(scan_string_sq) }; + scan_string_sq as u64 + }); + __bindgen_bitfield_unit.set(14usize, 1u8, { + let scan_string_dq: u32 = unsafe { ::std::mem::transmute(scan_string_dq) }; + scan_string_dq as u64 + }); + __bindgen_bitfield_unit.set(15usize, 1u8, { + let numbers_2_int: u32 = unsafe { ::std::mem::transmute(numbers_2_int) }; + numbers_2_int as u64 + }); + __bindgen_bitfield_unit.set(16usize, 1u8, { + let int_2_float: u32 = unsafe { ::std::mem::transmute(int_2_float) }; + int_2_float as u64 + }); + __bindgen_bitfield_unit.set(17usize, 1u8, { + let identifier_2_string: u32 = unsafe { ::std::mem::transmute(identifier_2_string) }; + identifier_2_string as u64 + }); + __bindgen_bitfield_unit.set(18usize, 1u8, { + let char_2_token: u32 = unsafe { ::std::mem::transmute(char_2_token) }; + char_2_token as u64 + }); + __bindgen_bitfield_unit.set(19usize, 1u8, { + let symbol_2_token: u32 = unsafe { ::std::mem::transmute(symbol_2_token) }; + symbol_2_token as u64 + }); + __bindgen_bitfield_unit.set(20usize, 1u8, { + let scope_0_fallback: u32 = unsafe { ::std::mem::transmute(scope_0_fallback) }; + scope_0_fallback as u64 + }); + __bindgen_bitfield_unit.set(21usize, 1u8, { + let store_int64: u32 = unsafe { ::std::mem::transmute(store_int64) }; + store_int64 as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _GScanner { + pub user_data: gpointer, + pub max_parse_errors: guint, + pub parse_errors: guint, + pub input_name: *const gchar, + pub qdata: *mut GData, + pub config: *mut GScannerConfig, + pub token: GTokenType, + pub value: GTokenValue, + pub line: guint, + pub position: guint, + pub next_token: GTokenType, + pub next_value: GTokenValue, + pub next_line: guint, + pub next_position: guint, + pub symbol_table: *mut GHashTable, + pub input_fd: gint, + pub text: *const gchar, + pub text_end: *const gchar, + pub buffer: *mut gchar, + pub scope_id: guint, + pub msg_handler: GScannerMsgFunc, +} +#[test] +fn bindgen_test_layout__GScanner() { + const UNINIT: ::std::mem::MaybeUninit<_GScanner> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GScanner>(), + 144usize, + concat!("Size of: ", stringify!(_GScanner)) + ); + assert_eq!( + ::std::mem::align_of::<_GScanner>(), + 8usize, + concat!("Alignment of ", stringify!(_GScanner)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).user_data) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GScanner), + "::", + stringify!(user_data) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).max_parse_errors) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GScanner), + "::", + stringify!(max_parse_errors) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).parse_errors) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(_GScanner), + "::", + stringify!(parse_errors) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).input_name) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_GScanner), + "::", + stringify!(input_name) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).qdata) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_GScanner), + "::", + stringify!(qdata) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).config) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_GScanner), + "::", + stringify!(config) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).token) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(_GScanner), + "::", + stringify!(token) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(_GScanner), + "::", + stringify!(value) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).line) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(_GScanner), + "::", + stringify!(line) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).position) as usize - ptr as usize }, + 60usize, + concat!( + "Offset of field: ", + stringify!(_GScanner), + "::", + stringify!(position) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).next_token) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(_GScanner), + "::", + stringify!(next_token) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).next_value) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(_GScanner), + "::", + stringify!(next_value) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).next_line) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(_GScanner), + "::", + stringify!(next_line) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).next_position) as usize - ptr as usize }, + 84usize, + concat!( + "Offset of field: ", + stringify!(_GScanner), + "::", + stringify!(next_position) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).symbol_table) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(_GScanner), + "::", + stringify!(symbol_table) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).input_fd) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(_GScanner), + "::", + stringify!(input_fd) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(_GScanner), + "::", + stringify!(text) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).text_end) as usize - ptr as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(_GScanner), + "::", + stringify!(text_end) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).buffer) as usize - ptr as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(_GScanner), + "::", + stringify!(buffer) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).scope_id) as usize - ptr as usize }, + 128usize, + concat!( + "Offset of field: ", + stringify!(_GScanner), + "::", + stringify!(scope_id) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).msg_handler) as usize - ptr as usize }, + 136usize, + concat!( + "Offset of field: ", + stringify!(_GScanner), + "::", + stringify!(msg_handler) + ) + ); +} +extern "C" { + pub fn g_scanner_new(config_templ: *const GScannerConfig) -> *mut GScanner; +} +extern "C" { + pub fn g_scanner_destroy(scanner: *mut GScanner); +} +extern "C" { + pub fn g_scanner_input_file(scanner: *mut GScanner, input_fd: gint); +} +extern "C" { + pub fn g_scanner_sync_file_offset(scanner: *mut GScanner); +} +extern "C" { + pub fn g_scanner_input_text(scanner: *mut GScanner, text: *const gchar, text_len: guint); +} +extern "C" { + pub fn g_scanner_get_next_token(scanner: *mut GScanner) -> GTokenType; +} +extern "C" { + pub fn g_scanner_peek_next_token(scanner: *mut GScanner) -> GTokenType; +} +extern "C" { + pub fn g_scanner_cur_token(scanner: *mut GScanner) -> GTokenType; +} +extern "C" { + pub fn g_scanner_cur_value(scanner: *mut GScanner) -> GTokenValue; +} +extern "C" { + pub fn g_scanner_cur_line(scanner: *mut GScanner) -> guint; +} +extern "C" { + pub fn g_scanner_cur_position(scanner: *mut GScanner) -> guint; +} +extern "C" { + pub fn g_scanner_eof(scanner: *mut GScanner) -> gboolean; +} +extern "C" { + pub fn g_scanner_set_scope(scanner: *mut GScanner, scope_id: guint) -> guint; +} +extern "C" { + pub fn g_scanner_scope_add_symbol( + scanner: *mut GScanner, + scope_id: guint, + symbol: *const gchar, + value: gpointer, + ); +} +extern "C" { + pub fn g_scanner_scope_remove_symbol( + scanner: *mut GScanner, + scope_id: guint, + symbol: *const gchar, + ); +} +extern "C" { + pub fn g_scanner_scope_lookup_symbol( + scanner: *mut GScanner, + scope_id: guint, + symbol: *const gchar, + ) -> gpointer; +} +extern "C" { + pub fn g_scanner_scope_foreach_symbol( + scanner: *mut GScanner, + scope_id: guint, + func: GHFunc, + user_data: gpointer, + ); +} +extern "C" { + pub fn g_scanner_lookup_symbol(scanner: *mut GScanner, symbol: *const gchar) -> gpointer; +} +extern "C" { + pub fn g_scanner_unexp_token( + scanner: *mut GScanner, + expected_token: GTokenType, + identifier_spec: *const gchar, + symbol_spec: *const gchar, + symbol_name: *const gchar, + message: *const gchar, + is_error: gint, + ); +} +extern "C" { + pub fn g_scanner_error(scanner: *mut GScanner, format: *const gchar, ...); +} +extern "C" { + pub fn g_scanner_warn(scanner: *mut GScanner, format: *const gchar, ...); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GSequence { + _unused: [u8; 0], +} +pub type GSequence = _GSequence; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GSequenceNode { + _unused: [u8; 0], +} +pub type GSequenceIter = _GSequenceNode; +pub type GSequenceIterCompareFunc = ::std::option::Option< + unsafe extern "C" fn(a: *mut GSequenceIter, b: *mut GSequenceIter, data: gpointer) -> gint, +>; +extern "C" { + pub fn g_sequence_new(data_destroy: GDestroyNotify) -> *mut GSequence; +} +extern "C" { + pub fn g_sequence_free(seq: *mut GSequence); +} +extern "C" { + pub fn g_sequence_get_length(seq: *mut GSequence) -> gint; +} +extern "C" { + pub fn g_sequence_foreach(seq: *mut GSequence, func: GFunc, user_data: gpointer); +} +extern "C" { + pub fn g_sequence_foreach_range( + begin: *mut GSequenceIter, + end: *mut GSequenceIter, + func: GFunc, + user_data: gpointer, + ); +} +extern "C" { + pub fn g_sequence_sort(seq: *mut GSequence, cmp_func: GCompareDataFunc, cmp_data: gpointer); +} +extern "C" { + pub fn g_sequence_sort_iter( + seq: *mut GSequence, + cmp_func: GSequenceIterCompareFunc, + cmp_data: gpointer, + ); +} +extern "C" { + pub fn g_sequence_is_empty(seq: *mut GSequence) -> gboolean; +} +extern "C" { + pub fn g_sequence_get_begin_iter(seq: *mut GSequence) -> *mut GSequenceIter; +} +extern "C" { + pub fn g_sequence_get_end_iter(seq: *mut GSequence) -> *mut GSequenceIter; +} +extern "C" { + pub fn g_sequence_get_iter_at_pos(seq: *mut GSequence, pos: gint) -> *mut GSequenceIter; +} +extern "C" { + pub fn g_sequence_append(seq: *mut GSequence, data: gpointer) -> *mut GSequenceIter; +} +extern "C" { + pub fn g_sequence_prepend(seq: *mut GSequence, data: gpointer) -> *mut GSequenceIter; +} +extern "C" { + pub fn g_sequence_insert_before(iter: *mut GSequenceIter, data: gpointer) + -> *mut GSequenceIter; +} +extern "C" { + pub fn g_sequence_move(src: *mut GSequenceIter, dest: *mut GSequenceIter); +} +extern "C" { + pub fn g_sequence_swap(a: *mut GSequenceIter, b: *mut GSequenceIter); +} +extern "C" { + pub fn g_sequence_insert_sorted( + seq: *mut GSequence, + data: gpointer, + cmp_func: GCompareDataFunc, + cmp_data: gpointer, + ) -> *mut GSequenceIter; +} +extern "C" { + pub fn g_sequence_insert_sorted_iter( + seq: *mut GSequence, + data: gpointer, + iter_cmp: GSequenceIterCompareFunc, + cmp_data: gpointer, + ) -> *mut GSequenceIter; +} +extern "C" { + pub fn g_sequence_sort_changed( + iter: *mut GSequenceIter, + cmp_func: GCompareDataFunc, + cmp_data: gpointer, + ); +} +extern "C" { + pub fn g_sequence_sort_changed_iter( + iter: *mut GSequenceIter, + iter_cmp: GSequenceIterCompareFunc, + cmp_data: gpointer, + ); +} +extern "C" { + pub fn g_sequence_remove(iter: *mut GSequenceIter); +} +extern "C" { + pub fn g_sequence_remove_range(begin: *mut GSequenceIter, end: *mut GSequenceIter); +} +extern "C" { + pub fn g_sequence_move_range( + dest: *mut GSequenceIter, + begin: *mut GSequenceIter, + end: *mut GSequenceIter, + ); +} +extern "C" { + pub fn g_sequence_search( + seq: *mut GSequence, + data: gpointer, + cmp_func: GCompareDataFunc, + cmp_data: gpointer, + ) -> *mut GSequenceIter; +} +extern "C" { + pub fn g_sequence_search_iter( + seq: *mut GSequence, + data: gpointer, + iter_cmp: GSequenceIterCompareFunc, + cmp_data: gpointer, + ) -> *mut GSequenceIter; +} +extern "C" { + pub fn g_sequence_lookup( + seq: *mut GSequence, + data: gpointer, + cmp_func: GCompareDataFunc, + cmp_data: gpointer, + ) -> *mut GSequenceIter; +} +extern "C" { + pub fn g_sequence_lookup_iter( + seq: *mut GSequence, + data: gpointer, + iter_cmp: GSequenceIterCompareFunc, + cmp_data: gpointer, + ) -> *mut GSequenceIter; +} +extern "C" { + pub fn g_sequence_get(iter: *mut GSequenceIter) -> gpointer; +} +extern "C" { + pub fn g_sequence_set(iter: *mut GSequenceIter, data: gpointer); +} +extern "C" { + pub fn g_sequence_iter_is_begin(iter: *mut GSequenceIter) -> gboolean; +} +extern "C" { + pub fn g_sequence_iter_is_end(iter: *mut GSequenceIter) -> gboolean; +} +extern "C" { + pub fn g_sequence_iter_next(iter: *mut GSequenceIter) -> *mut GSequenceIter; +} +extern "C" { + pub fn g_sequence_iter_prev(iter: *mut GSequenceIter) -> *mut GSequenceIter; +} +extern "C" { + pub fn g_sequence_iter_get_position(iter: *mut GSequenceIter) -> gint; +} +extern "C" { + pub fn g_sequence_iter_move(iter: *mut GSequenceIter, delta: gint) -> *mut GSequenceIter; +} +extern "C" { + pub fn g_sequence_iter_get_sequence(iter: *mut GSequenceIter) -> *mut GSequence; +} +extern "C" { + pub fn g_sequence_iter_compare(a: *mut GSequenceIter, b: *mut GSequenceIter) -> gint; +} +extern "C" { + pub fn g_sequence_range_get_midpoint( + begin: *mut GSequenceIter, + end: *mut GSequenceIter, + ) -> *mut GSequenceIter; +} +pub const GShellError_G_SHELL_ERROR_BAD_QUOTING: GShellError = 0; +pub const GShellError_G_SHELL_ERROR_EMPTY_STRING: GShellError = 1; +pub const GShellError_G_SHELL_ERROR_FAILED: GShellError = 2; +pub type GShellError = ::std::os::raw::c_uint; +extern "C" { + pub fn g_shell_error_quark() -> GQuark; +} +extern "C" { + pub fn g_shell_quote(unquoted_string: *const gchar) -> *mut gchar; +} +extern "C" { + pub fn g_shell_unquote(quoted_string: *const gchar, error: *mut *mut GError) -> *mut gchar; +} +extern "C" { + pub fn g_shell_parse_argv( + command_line: *const gchar, + argcp: *mut gint, + argvp: *mut *mut *mut gchar, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_slice_alloc(block_size: gsize) -> gpointer; +} +extern "C" { + pub fn g_slice_alloc0(block_size: gsize) -> gpointer; +} +extern "C" { + pub fn g_slice_copy(block_size: gsize, mem_block: gconstpointer) -> gpointer; +} +extern "C" { + pub fn g_slice_free1(block_size: gsize, mem_block: gpointer); +} +extern "C" { + pub fn g_slice_free_chain_with_offset( + block_size: gsize, + mem_chain: gpointer, + next_offset: gsize, + ); +} +pub const GSliceConfig_G_SLICE_CONFIG_ALWAYS_MALLOC: GSliceConfig = 1; +pub const GSliceConfig_G_SLICE_CONFIG_BYPASS_MAGAZINES: GSliceConfig = 2; +pub const GSliceConfig_G_SLICE_CONFIG_WORKING_SET_MSECS: GSliceConfig = 3; +pub const GSliceConfig_G_SLICE_CONFIG_COLOR_INCREMENT: GSliceConfig = 4; +pub const GSliceConfig_G_SLICE_CONFIG_CHUNK_SIZES: GSliceConfig = 5; +pub const GSliceConfig_G_SLICE_CONFIG_CONTENTION_COUNTER: GSliceConfig = 6; +pub type GSliceConfig = ::std::os::raw::c_uint; +extern "C" { + pub fn g_slice_set_config(ckey: GSliceConfig, value: gint64); +} +extern "C" { + pub fn g_slice_get_config(ckey: GSliceConfig) -> gint64; +} +extern "C" { + pub fn g_slice_get_config_state( + ckey: GSliceConfig, + address: gint64, + n_values: *mut guint, + ) -> *mut gint64; +} +pub const GSpawnError_G_SPAWN_ERROR_FORK: GSpawnError = 0; +pub const GSpawnError_G_SPAWN_ERROR_READ: GSpawnError = 1; +pub const GSpawnError_G_SPAWN_ERROR_CHDIR: GSpawnError = 2; +pub const GSpawnError_G_SPAWN_ERROR_ACCES: GSpawnError = 3; +pub const GSpawnError_G_SPAWN_ERROR_PERM: GSpawnError = 4; +pub const GSpawnError_G_SPAWN_ERROR_TOO_BIG: GSpawnError = 5; +pub const GSpawnError_G_SPAWN_ERROR_2BIG: GSpawnError = 5; +pub const GSpawnError_G_SPAWN_ERROR_NOEXEC: GSpawnError = 6; +pub const GSpawnError_G_SPAWN_ERROR_NAMETOOLONG: GSpawnError = 7; +pub const GSpawnError_G_SPAWN_ERROR_NOENT: GSpawnError = 8; +pub const GSpawnError_G_SPAWN_ERROR_NOMEM: GSpawnError = 9; +pub const GSpawnError_G_SPAWN_ERROR_NOTDIR: GSpawnError = 10; +pub const GSpawnError_G_SPAWN_ERROR_LOOP: GSpawnError = 11; +pub const GSpawnError_G_SPAWN_ERROR_TXTBUSY: GSpawnError = 12; +pub const GSpawnError_G_SPAWN_ERROR_IO: GSpawnError = 13; +pub const GSpawnError_G_SPAWN_ERROR_NFILE: GSpawnError = 14; +pub const GSpawnError_G_SPAWN_ERROR_MFILE: GSpawnError = 15; +pub const GSpawnError_G_SPAWN_ERROR_INVAL: GSpawnError = 16; +pub const GSpawnError_G_SPAWN_ERROR_ISDIR: GSpawnError = 17; +pub const GSpawnError_G_SPAWN_ERROR_LIBBAD: GSpawnError = 18; +pub const GSpawnError_G_SPAWN_ERROR_FAILED: GSpawnError = 19; +pub type GSpawnError = ::std::os::raw::c_uint; +pub type GSpawnChildSetupFunc = ::std::option::Option; +pub const GSpawnFlags_G_SPAWN_DEFAULT: GSpawnFlags = 0; +pub const GSpawnFlags_G_SPAWN_LEAVE_DESCRIPTORS_OPEN: GSpawnFlags = 1; +pub const GSpawnFlags_G_SPAWN_DO_NOT_REAP_CHILD: GSpawnFlags = 2; +pub const GSpawnFlags_G_SPAWN_SEARCH_PATH: GSpawnFlags = 4; +pub const GSpawnFlags_G_SPAWN_STDOUT_TO_DEV_NULL: GSpawnFlags = 8; +pub const GSpawnFlags_G_SPAWN_STDERR_TO_DEV_NULL: GSpawnFlags = 16; +pub const GSpawnFlags_G_SPAWN_CHILD_INHERITS_STDIN: GSpawnFlags = 32; +pub const GSpawnFlags_G_SPAWN_FILE_AND_ARGV_ZERO: GSpawnFlags = 64; +pub const GSpawnFlags_G_SPAWN_SEARCH_PATH_FROM_ENVP: GSpawnFlags = 128; +pub const GSpawnFlags_G_SPAWN_CLOEXEC_PIPES: GSpawnFlags = 256; +pub const GSpawnFlags_G_SPAWN_CHILD_INHERITS_STDOUT: GSpawnFlags = 512; +pub const GSpawnFlags_G_SPAWN_CHILD_INHERITS_STDERR: GSpawnFlags = 1024; +pub const GSpawnFlags_G_SPAWN_STDIN_FROM_DEV_NULL: GSpawnFlags = 2048; +pub type GSpawnFlags = ::std::os::raw::c_uint; +extern "C" { + pub fn g_spawn_error_quark() -> GQuark; +} +extern "C" { + pub fn g_spawn_exit_error_quark() -> GQuark; +} +extern "C" { + pub fn g_spawn_async( + working_directory: *const gchar, + argv: *mut *mut gchar, + envp: *mut *mut gchar, + flags: GSpawnFlags, + child_setup: GSpawnChildSetupFunc, + user_data: gpointer, + child_pid: *mut GPid, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_spawn_async_with_pipes( + working_directory: *const gchar, + argv: *mut *mut gchar, + envp: *mut *mut gchar, + flags: GSpawnFlags, + child_setup: GSpawnChildSetupFunc, + user_data: gpointer, + child_pid: *mut GPid, + standard_input: *mut gint, + standard_output: *mut gint, + standard_error: *mut gint, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_spawn_async_with_pipes_and_fds( + working_directory: *const gchar, + argv: *const *const gchar, + envp: *const *const gchar, + flags: GSpawnFlags, + child_setup: GSpawnChildSetupFunc, + user_data: gpointer, + stdin_fd: gint, + stdout_fd: gint, + stderr_fd: gint, + source_fds: *const gint, + target_fds: *const gint, + n_fds: gsize, + child_pid_out: *mut GPid, + stdin_pipe_out: *mut gint, + stdout_pipe_out: *mut gint, + stderr_pipe_out: *mut gint, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_spawn_async_with_fds( + working_directory: *const gchar, + argv: *mut *mut gchar, + envp: *mut *mut gchar, + flags: GSpawnFlags, + child_setup: GSpawnChildSetupFunc, + user_data: gpointer, + child_pid: *mut GPid, + stdin_fd: gint, + stdout_fd: gint, + stderr_fd: gint, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_spawn_sync( + working_directory: *const gchar, + argv: *mut *mut gchar, + envp: *mut *mut gchar, + flags: GSpawnFlags, + child_setup: GSpawnChildSetupFunc, + user_data: gpointer, + standard_output: *mut *mut gchar, + standard_error: *mut *mut gchar, + wait_status: *mut gint, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_spawn_command_line_sync( + command_line: *const gchar, + standard_output: *mut *mut gchar, + standard_error: *mut *mut gchar, + wait_status: *mut gint, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_spawn_command_line_async( + command_line: *const gchar, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_spawn_check_wait_status(wait_status: gint, error: *mut *mut GError) -> gboolean; +} +extern "C" { + pub fn g_spawn_check_exit_status(wait_status: gint, error: *mut *mut GError) -> gboolean; +} +extern "C" { + pub fn g_spawn_close_pid(pid: GPid); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GStringChunk { + _unused: [u8; 0], +} +pub type GStringChunk = _GStringChunk; +extern "C" { + pub fn g_string_chunk_new(size: gsize) -> *mut GStringChunk; +} +extern "C" { + pub fn g_string_chunk_free(chunk: *mut GStringChunk); +} +extern "C" { + pub fn g_string_chunk_clear(chunk: *mut GStringChunk); +} +extern "C" { + pub fn g_string_chunk_insert(chunk: *mut GStringChunk, string: *const gchar) -> *mut gchar; +} +extern "C" { + pub fn g_string_chunk_insert_len( + chunk: *mut GStringChunk, + string: *const gchar, + len: gssize, + ) -> *mut gchar; +} +extern "C" { + pub fn g_string_chunk_insert_const( + chunk: *mut GStringChunk, + string: *const gchar, + ) -> *mut gchar; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GStrvBuilder { + _unused: [u8; 0], +} +pub type GStrvBuilder = _GStrvBuilder; +extern "C" { + pub fn g_strv_builder_new() -> *mut GStrvBuilder; +} +extern "C" { + pub fn g_strv_builder_unref(builder: *mut GStrvBuilder); +} +extern "C" { + pub fn g_strv_builder_unref_to_strv(builder: *mut GStrvBuilder) -> GStrv; +} +extern "C" { + pub fn g_strv_builder_ref(builder: *mut GStrvBuilder) -> *mut GStrvBuilder; +} +extern "C" { + pub fn g_strv_builder_add(builder: *mut GStrvBuilder, value: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn g_strv_builder_addv( + builder: *mut GStrvBuilder, + value: *mut *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn g_strv_builder_add_many(builder: *mut GStrvBuilder, ...); +} +extern "C" { + pub fn g_strv_builder_take(builder: *mut GStrvBuilder, value: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn g_strv_builder_end(builder: *mut GStrvBuilder) -> GStrv; +} +extern "C" { + pub fn __error() -> *mut ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct GTestCase { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct GTestSuite { + _unused: [u8; 0], +} +pub type GTestFunc = ::std::option::Option; +pub type GTestDataFunc = ::std::option::Option; +pub type GTestFixtureFunc = + ::std::option::Option; +extern "C" { + pub fn g_strcmp0( + str1: *const ::std::os::raw::c_char, + str2: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn g_test_minimized_result( + minimized_quantity: f64, + format: *const ::std::os::raw::c_char, + ... + ); +} +extern "C" { + pub fn g_test_maximized_result( + maximized_quantity: f64, + format: *const ::std::os::raw::c_char, + ... + ); +} +extern "C" { + pub fn g_test_init( + argc: *mut ::std::os::raw::c_int, + argv: *mut *mut *mut ::std::os::raw::c_char, + ... + ); +} +extern "C" { + pub fn g_test_subprocess() -> gboolean; +} +extern "C" { + pub fn g_test_run() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn g_test_add_func(testpath: *const ::std::os::raw::c_char, test_func: GTestFunc); +} +extern "C" { + pub fn g_test_add_data_func( + testpath: *const ::std::os::raw::c_char, + test_data: gconstpointer, + test_func: GTestDataFunc, + ); +} +extern "C" { + pub fn g_test_add_data_func_full( + testpath: *const ::std::os::raw::c_char, + test_data: gpointer, + test_func: GTestDataFunc, + data_free_func: GDestroyNotify, + ); +} +extern "C" { + pub fn g_test_get_path() -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn g_test_fail(); +} +extern "C" { + pub fn g_test_fail_printf(format: *const ::std::os::raw::c_char, ...); +} +extern "C" { + pub fn g_test_incomplete(msg: *const gchar); +} +extern "C" { + pub fn g_test_incomplete_printf(format: *const ::std::os::raw::c_char, ...); +} +extern "C" { + pub fn g_test_skip(msg: *const gchar); +} +extern "C" { + pub fn g_test_skip_printf(format: *const ::std::os::raw::c_char, ...); +} +extern "C" { + pub fn g_test_failed() -> gboolean; +} +extern "C" { + pub fn g_test_set_nonfatal_assertions(); +} +extern "C" { + pub fn g_test_disable_crash_reporting(); +} +extern "C" { + pub fn g_test_message(format: *const ::std::os::raw::c_char, ...); +} +extern "C" { + pub fn g_test_bug_base(uri_pattern: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn g_test_bug(bug_uri_snippet: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn g_test_summary(summary: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn g_test_timer_start(); +} +extern "C" { + pub fn g_test_timer_elapsed() -> f64; +} +extern "C" { + pub fn g_test_timer_last() -> f64; +} +extern "C" { + pub fn g_test_queue_free(gfree_pointer: gpointer); +} +extern "C" { + pub fn g_test_queue_destroy(destroy_func: GDestroyNotify, destroy_data: gpointer); +} +pub const GTestTrapFlags_G_TEST_TRAP_DEFAULT: GTestTrapFlags = 0; +pub const GTestTrapFlags_G_TEST_TRAP_SILENCE_STDOUT: GTestTrapFlags = 128; +pub const GTestTrapFlags_G_TEST_TRAP_SILENCE_STDERR: GTestTrapFlags = 256; +pub const GTestTrapFlags_G_TEST_TRAP_INHERIT_STDIN: GTestTrapFlags = 512; +pub type GTestTrapFlags = ::std::os::raw::c_uint; +extern "C" { + pub fn g_test_trap_fork(usec_timeout: guint64, test_trap_flags: GTestTrapFlags) -> gboolean; +} +pub const GTestSubprocessFlags_G_TEST_SUBPROCESS_DEFAULT: GTestSubprocessFlags = 0; +pub const GTestSubprocessFlags_G_TEST_SUBPROCESS_INHERIT_STDIN: GTestSubprocessFlags = 1; +pub const GTestSubprocessFlags_G_TEST_SUBPROCESS_INHERIT_STDOUT: GTestSubprocessFlags = 2; +pub const GTestSubprocessFlags_G_TEST_SUBPROCESS_INHERIT_STDERR: GTestSubprocessFlags = 4; +pub type GTestSubprocessFlags = ::std::os::raw::c_uint; +extern "C" { + pub fn g_test_trap_subprocess( + test_path: *const ::std::os::raw::c_char, + usec_timeout: guint64, + test_flags: GTestSubprocessFlags, + ); +} +extern "C" { + pub fn g_test_trap_subprocess_with_envp( + test_path: *const ::std::os::raw::c_char, + envp: *const *const ::std::os::raw::c_char, + usec_timeout: guint64, + test_flags: GTestSubprocessFlags, + ); +} +extern "C" { + pub fn g_test_trap_has_passed() -> gboolean; +} +extern "C" { + pub fn g_test_trap_reached_timeout() -> gboolean; +} +extern "C" { + pub fn g_test_rand_int() -> gint32; +} +extern "C" { + pub fn g_test_rand_int_range(begin: gint32, end: gint32) -> gint32; +} +extern "C" { + pub fn g_test_rand_double() -> f64; +} +extern "C" { + pub fn g_test_rand_double_range(range_start: f64, range_end: f64) -> f64; +} +extern "C" { + pub fn g_test_create_case( + test_name: *const ::std::os::raw::c_char, + data_size: gsize, + test_data: gconstpointer, + data_setup: GTestFixtureFunc, + data_test: GTestFixtureFunc, + data_teardown: GTestFixtureFunc, + ) -> *mut GTestCase; +} +extern "C" { + pub fn g_test_create_suite(suite_name: *const ::std::os::raw::c_char) -> *mut GTestSuite; +} +extern "C" { + pub fn g_test_get_root() -> *mut GTestSuite; +} +extern "C" { + pub fn g_test_suite_add(suite: *mut GTestSuite, test_case: *mut GTestCase); +} +extern "C" { + pub fn g_test_suite_add_suite(suite: *mut GTestSuite, nestedsuite: *mut GTestSuite); +} +extern "C" { + pub fn g_test_run_suite(suite: *mut GTestSuite) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn g_test_case_free(test_case: *mut GTestCase); +} +extern "C" { + pub fn g_test_suite_free(suite: *mut GTestSuite); +} +extern "C" { + pub fn g_test_trap_assertions( + domain: *const ::std::os::raw::c_char, + file: *const ::std::os::raw::c_char, + line: ::std::os::raw::c_int, + func: *const ::std::os::raw::c_char, + assertion_flags: guint64, + pattern: *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn g_assertion_message( + domain: *const ::std::os::raw::c_char, + file: *const ::std::os::raw::c_char, + line: ::std::os::raw::c_int, + func: *const ::std::os::raw::c_char, + message: *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn g_assertion_message_expr( + domain: *const ::std::os::raw::c_char, + file: *const ::std::os::raw::c_char, + line: ::std::os::raw::c_int, + func: *const ::std::os::raw::c_char, + expr: *const ::std::os::raw::c_char, + ) -> !; +} +extern "C" { + pub fn g_assertion_message_cmpstr( + domain: *const ::std::os::raw::c_char, + file: *const ::std::os::raw::c_char, + line: ::std::os::raw::c_int, + func: *const ::std::os::raw::c_char, + expr: *const ::std::os::raw::c_char, + arg1: *const ::std::os::raw::c_char, + cmp: *const ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn g_assertion_message_cmpstrv( + domain: *const ::std::os::raw::c_char, + file: *const ::std::os::raw::c_char, + line: ::std::os::raw::c_int, + func: *const ::std::os::raw::c_char, + expr: *const ::std::os::raw::c_char, + arg1: *const *const ::std::os::raw::c_char, + arg2: *const *const ::std::os::raw::c_char, + first_wrong_idx: gsize, + ); +} +extern "C" { + pub fn g_assertion_message_cmpint( + domain: *const ::std::os::raw::c_char, + file: *const ::std::os::raw::c_char, + line: ::std::os::raw::c_int, + func: *const ::std::os::raw::c_char, + expr: *const ::std::os::raw::c_char, + arg1: guint64, + cmp: *const ::std::os::raw::c_char, + arg2: guint64, + numtype: ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn g_assertion_message_cmpnum( + domain: *const ::std::os::raw::c_char, + file: *const ::std::os::raw::c_char, + line: ::std::os::raw::c_int, + func: *const ::std::os::raw::c_char, + expr: *const ::std::os::raw::c_char, + arg1: f64, + cmp: *const ::std::os::raw::c_char, + arg2: f64, + numtype: ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn g_assertion_message_error( + domain: *const ::std::os::raw::c_char, + file: *const ::std::os::raw::c_char, + line: ::std::os::raw::c_int, + func: *const ::std::os::raw::c_char, + expr: *const ::std::os::raw::c_char, + error: *const GError, + error_domain: GQuark, + error_code: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn g_test_add_vtable( + testpath: *const ::std::os::raw::c_char, + data_size: gsize, + test_data: gconstpointer, + data_setup: GTestFixtureFunc, + data_test: GTestFixtureFunc, + data_teardown: GTestFixtureFunc, + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct GTestConfig { + pub test_initialized: gboolean, + pub test_quick: gboolean, + pub test_perf: gboolean, + pub test_verbose: gboolean, + pub test_quiet: gboolean, + pub test_undefined: gboolean, +} +#[test] +fn bindgen_test_layout_GTestConfig() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(GTestConfig)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(GTestConfig)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).test_initialized) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(GTestConfig), + "::", + stringify!(test_initialized) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).test_quick) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(GTestConfig), + "::", + stringify!(test_quick) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).test_perf) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(GTestConfig), + "::", + stringify!(test_perf) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).test_verbose) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(GTestConfig), + "::", + stringify!(test_verbose) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).test_quiet) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(GTestConfig), + "::", + stringify!(test_quiet) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).test_undefined) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(GTestConfig), + "::", + stringify!(test_undefined) + ) + ); +} +extern "C" { + pub static g_test_config_vars: *const GTestConfig; +} +pub const GTestResult_G_TEST_RUN_SUCCESS: GTestResult = 0; +pub const GTestResult_G_TEST_RUN_SKIPPED: GTestResult = 1; +pub const GTestResult_G_TEST_RUN_FAILURE: GTestResult = 2; +pub const GTestResult_G_TEST_RUN_INCOMPLETE: GTestResult = 3; +pub type GTestResult = ::std::os::raw::c_uint; +pub const GTestLogType_G_TEST_LOG_NONE: GTestLogType = 0; +pub const GTestLogType_G_TEST_LOG_ERROR: GTestLogType = 1; +pub const GTestLogType_G_TEST_LOG_START_BINARY: GTestLogType = 2; +pub const GTestLogType_G_TEST_LOG_LIST_CASE: GTestLogType = 3; +pub const GTestLogType_G_TEST_LOG_SKIP_CASE: GTestLogType = 4; +pub const GTestLogType_G_TEST_LOG_START_CASE: GTestLogType = 5; +pub const GTestLogType_G_TEST_LOG_STOP_CASE: GTestLogType = 6; +pub const GTestLogType_G_TEST_LOG_MIN_RESULT: GTestLogType = 7; +pub const GTestLogType_G_TEST_LOG_MAX_RESULT: GTestLogType = 8; +pub const GTestLogType_G_TEST_LOG_MESSAGE: GTestLogType = 9; +pub const GTestLogType_G_TEST_LOG_START_SUITE: GTestLogType = 10; +pub const GTestLogType_G_TEST_LOG_STOP_SUITE: GTestLogType = 11; +pub type GTestLogType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct GTestLogMsg { + pub log_type: GTestLogType, + pub n_strings: guint, + pub strings: *mut *mut gchar, + pub n_nums: guint, + pub nums: *mut f64, +} +#[test] +fn bindgen_test_layout_GTestLogMsg() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(GTestLogMsg)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(GTestLogMsg)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).log_type) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(GTestLogMsg), + "::", + stringify!(log_type) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).n_strings) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(GTestLogMsg), + "::", + stringify!(n_strings) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).strings) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(GTestLogMsg), + "::", + stringify!(strings) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).n_nums) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(GTestLogMsg), + "::", + stringify!(n_nums) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).nums) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(GTestLogMsg), + "::", + stringify!(nums) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct GTestLogBuffer { + pub data: *mut GString, + pub msgs: *mut GSList, +} +#[test] +fn bindgen_test_layout_GTestLogBuffer() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(GTestLogBuffer)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(GTestLogBuffer)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(GTestLogBuffer), + "::", + stringify!(data) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).msgs) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(GTestLogBuffer), + "::", + stringify!(msgs) + ) + ); +} +extern "C" { + pub fn g_test_log_type_name(log_type: GTestLogType) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn g_test_log_buffer_new() -> *mut GTestLogBuffer; +} +extern "C" { + pub fn g_test_log_buffer_free(tbuffer: *mut GTestLogBuffer); +} +extern "C" { + pub fn g_test_log_buffer_push( + tbuffer: *mut GTestLogBuffer, + n_bytes: guint, + bytes: *const guint8, + ); +} +extern "C" { + pub fn g_test_log_buffer_pop(tbuffer: *mut GTestLogBuffer) -> *mut GTestLogMsg; +} +extern "C" { + pub fn g_test_log_msg_free(tmsg: *mut GTestLogMsg); +} +pub type GTestLogFatalFunc = ::std::option::Option< + unsafe extern "C" fn( + log_domain: *const gchar, + log_level: GLogLevelFlags, + message: *const gchar, + user_data: gpointer, + ) -> gboolean, +>; +extern "C" { + pub fn g_test_log_set_fatal_handler(log_func: GTestLogFatalFunc, user_data: gpointer); +} +extern "C" { + pub fn g_test_expect_message( + log_domain: *const gchar, + log_level: GLogLevelFlags, + pattern: *const gchar, + ); +} +extern "C" { + pub fn g_test_assert_expected_messages_internal( + domain: *const ::std::os::raw::c_char, + file: *const ::std::os::raw::c_char, + line: ::std::os::raw::c_int, + func: *const ::std::os::raw::c_char, + ); +} +pub const GTestFileType_G_TEST_DIST: GTestFileType = 0; +pub const GTestFileType_G_TEST_BUILT: GTestFileType = 1; +pub type GTestFileType = ::std::os::raw::c_uint; +extern "C" { + pub fn g_test_build_filename( + file_type: GTestFileType, + first_path: *const gchar, + ... + ) -> *mut gchar; +} +extern "C" { + pub fn g_test_get_dir(file_type: GTestFileType) -> *const gchar; +} +extern "C" { + pub fn g_test_get_filename( + file_type: GTestFileType, + first_path: *const gchar, + ... + ) -> *const gchar; +} +pub type GThreadPool = _GThreadPool; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GThreadPool { + pub func: GFunc, + pub user_data: gpointer, + pub exclusive: gboolean, +} +#[test] +fn bindgen_test_layout__GThreadPool() { + const UNINIT: ::std::mem::MaybeUninit<_GThreadPool> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GThreadPool>(), + 24usize, + concat!("Size of: ", stringify!(_GThreadPool)) + ); + assert_eq!( + ::std::mem::align_of::<_GThreadPool>(), + 8usize, + concat!("Alignment of ", stringify!(_GThreadPool)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GThreadPool), + "::", + stringify!(func) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).user_data) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GThreadPool), + "::", + stringify!(user_data) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).exclusive) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_GThreadPool), + "::", + stringify!(exclusive) + ) + ); +} +extern "C" { + pub fn g_thread_pool_new( + func: GFunc, + user_data: gpointer, + max_threads: gint, + exclusive: gboolean, + error: *mut *mut GError, + ) -> *mut GThreadPool; +} +extern "C" { + pub fn g_thread_pool_new_full( + func: GFunc, + user_data: gpointer, + item_free_func: GDestroyNotify, + max_threads: gint, + exclusive: gboolean, + error: *mut *mut GError, + ) -> *mut GThreadPool; +} +extern "C" { + pub fn g_thread_pool_free(pool: *mut GThreadPool, immediate: gboolean, wait_: gboolean); +} +extern "C" { + pub fn g_thread_pool_push( + pool: *mut GThreadPool, + data: gpointer, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_thread_pool_unprocessed(pool: *mut GThreadPool) -> guint; +} +extern "C" { + pub fn g_thread_pool_set_sort_function( + pool: *mut GThreadPool, + func: GCompareDataFunc, + user_data: gpointer, + ); +} +extern "C" { + pub fn g_thread_pool_move_to_front(pool: *mut GThreadPool, data: gpointer) -> gboolean; +} +extern "C" { + pub fn g_thread_pool_set_max_threads( + pool: *mut GThreadPool, + max_threads: gint, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_thread_pool_get_max_threads(pool: *mut GThreadPool) -> gint; +} +extern "C" { + pub fn g_thread_pool_get_num_threads(pool: *mut GThreadPool) -> guint; +} +extern "C" { + pub fn g_thread_pool_set_max_unused_threads(max_threads: gint); +} +extern "C" { + pub fn g_thread_pool_get_max_unused_threads() -> gint; +} +extern "C" { + pub fn g_thread_pool_get_num_unused_threads() -> guint; +} +extern "C" { + pub fn g_thread_pool_stop_unused_threads(); +} +extern "C" { + pub fn g_thread_pool_set_max_idle_time(interval: guint); +} +extern "C" { + pub fn g_thread_pool_get_max_idle_time() -> guint; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GTimer { + _unused: [u8; 0], +} +pub type GTimer = _GTimer; +extern "C" { + pub fn g_timer_new() -> *mut GTimer; +} +extern "C" { + pub fn g_timer_destroy(timer: *mut GTimer); +} +extern "C" { + pub fn g_timer_start(timer: *mut GTimer); +} +extern "C" { + pub fn g_timer_stop(timer: *mut GTimer); +} +extern "C" { + pub fn g_timer_reset(timer: *mut GTimer); +} +extern "C" { + pub fn g_timer_continue(timer: *mut GTimer); +} +extern "C" { + pub fn g_timer_elapsed(timer: *mut GTimer, microseconds: *mut gulong) -> gdouble; +} +extern "C" { + pub fn g_timer_is_active(timer: *mut GTimer) -> gboolean; +} +extern "C" { + pub fn g_usleep(microseconds: gulong); +} +extern "C" { + pub fn g_time_val_add(time_: *mut GTimeVal, microseconds: glong); +} +extern "C" { + pub fn g_time_val_from_iso8601(iso_date: *const gchar, time_: *mut GTimeVal) -> gboolean; +} +extern "C" { + pub fn g_time_val_to_iso8601(time_: *mut GTimeVal) -> *mut gchar; +} +pub type GTrashStack = _GTrashStack; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GTrashStack { + pub next: *mut GTrashStack, +} +#[test] +fn bindgen_test_layout__GTrashStack() { + const UNINIT: ::std::mem::MaybeUninit<_GTrashStack> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GTrashStack>(), + 8usize, + concat!("Size of: ", stringify!(_GTrashStack)) + ); + assert_eq!( + ::std::mem::align_of::<_GTrashStack>(), + 8usize, + concat!("Alignment of ", stringify!(_GTrashStack)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GTrashStack), + "::", + stringify!(next) + ) + ); +} +extern "C" { + pub fn g_trash_stack_push(stack_p: *mut *mut GTrashStack, data_p: gpointer); +} +extern "C" { + pub fn g_trash_stack_pop(stack_p: *mut *mut GTrashStack) -> gpointer; +} +extern "C" { + pub fn g_trash_stack_peek(stack_p: *mut *mut GTrashStack) -> gpointer; +} +extern "C" { + pub fn g_trash_stack_height(stack_p: *mut *mut GTrashStack) -> guint; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GTree { + _unused: [u8; 0], +} +pub type GTree = _GTree; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GTreeNode { + _unused: [u8; 0], +} +pub type GTreeNode = _GTreeNode; +pub type GTraverseFunc = ::std::option::Option< + unsafe extern "C" fn(key: gpointer, value: gpointer, data: gpointer) -> gboolean, +>; +pub type GTraverseNodeFunc = + ::std::option::Option gboolean>; +extern "C" { + pub fn g_tree_new(key_compare_func: GCompareFunc) -> *mut GTree; +} +extern "C" { + pub fn g_tree_new_with_data( + key_compare_func: GCompareDataFunc, + key_compare_data: gpointer, + ) -> *mut GTree; +} +extern "C" { + pub fn g_tree_new_full( + key_compare_func: GCompareDataFunc, + key_compare_data: gpointer, + key_destroy_func: GDestroyNotify, + value_destroy_func: GDestroyNotify, + ) -> *mut GTree; +} +extern "C" { + pub fn g_tree_node_first(tree: *mut GTree) -> *mut GTreeNode; +} +extern "C" { + pub fn g_tree_node_last(tree: *mut GTree) -> *mut GTreeNode; +} +extern "C" { + pub fn g_tree_node_previous(node: *mut GTreeNode) -> *mut GTreeNode; +} +extern "C" { + pub fn g_tree_node_next(node: *mut GTreeNode) -> *mut GTreeNode; +} +extern "C" { + pub fn g_tree_ref(tree: *mut GTree) -> *mut GTree; +} +extern "C" { + pub fn g_tree_unref(tree: *mut GTree); +} +extern "C" { + pub fn g_tree_destroy(tree: *mut GTree); +} +extern "C" { + pub fn g_tree_insert_node(tree: *mut GTree, key: gpointer, value: gpointer) -> *mut GTreeNode; +} +extern "C" { + pub fn g_tree_insert(tree: *mut GTree, key: gpointer, value: gpointer); +} +extern "C" { + pub fn g_tree_replace_node(tree: *mut GTree, key: gpointer, value: gpointer) -> *mut GTreeNode; +} +extern "C" { + pub fn g_tree_replace(tree: *mut GTree, key: gpointer, value: gpointer); +} +extern "C" { + pub fn g_tree_remove(tree: *mut GTree, key: gconstpointer) -> gboolean; +} +extern "C" { + pub fn g_tree_remove_all(tree: *mut GTree); +} +extern "C" { + pub fn g_tree_steal(tree: *mut GTree, key: gconstpointer) -> gboolean; +} +extern "C" { + pub fn g_tree_node_key(node: *mut GTreeNode) -> gpointer; +} +extern "C" { + pub fn g_tree_node_value(node: *mut GTreeNode) -> gpointer; +} +extern "C" { + pub fn g_tree_lookup_node(tree: *mut GTree, key: gconstpointer) -> *mut GTreeNode; +} +extern "C" { + pub fn g_tree_lookup(tree: *mut GTree, key: gconstpointer) -> gpointer; +} +extern "C" { + pub fn g_tree_lookup_extended( + tree: *mut GTree, + lookup_key: gconstpointer, + orig_key: *mut gpointer, + value: *mut gpointer, + ) -> gboolean; +} +extern "C" { + pub fn g_tree_foreach(tree: *mut GTree, func: GTraverseFunc, user_data: gpointer); +} +extern "C" { + pub fn g_tree_foreach_node(tree: *mut GTree, func: GTraverseNodeFunc, user_data: gpointer); +} +extern "C" { + pub fn g_tree_traverse( + tree: *mut GTree, + traverse_func: GTraverseFunc, + traverse_type: GTraverseType, + user_data: gpointer, + ); +} +extern "C" { + pub fn g_tree_search_node( + tree: *mut GTree, + search_func: GCompareFunc, + user_data: gconstpointer, + ) -> *mut GTreeNode; +} +extern "C" { + pub fn g_tree_search( + tree: *mut GTree, + search_func: GCompareFunc, + user_data: gconstpointer, + ) -> gpointer; +} +extern "C" { + pub fn g_tree_lower_bound(tree: *mut GTree, key: gconstpointer) -> *mut GTreeNode; +} +extern "C" { + pub fn g_tree_upper_bound(tree: *mut GTree, key: gconstpointer) -> *mut GTreeNode; +} +extern "C" { + pub fn g_tree_height(tree: *mut GTree) -> gint; +} +extern "C" { + pub fn g_tree_nnodes(tree: *mut GTree) -> gint; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GUri { + _unused: [u8; 0], +} +pub type GUri = _GUri; +extern "C" { + pub fn g_uri_ref(uri: *mut GUri) -> *mut GUri; +} +extern "C" { + pub fn g_uri_unref(uri: *mut GUri); +} +pub const GUriFlags_G_URI_FLAGS_NONE: GUriFlags = 0; +pub const GUriFlags_G_URI_FLAGS_PARSE_RELAXED: GUriFlags = 1; +pub const GUriFlags_G_URI_FLAGS_HAS_PASSWORD: GUriFlags = 2; +pub const GUriFlags_G_URI_FLAGS_HAS_AUTH_PARAMS: GUriFlags = 4; +pub const GUriFlags_G_URI_FLAGS_ENCODED: GUriFlags = 8; +pub const GUriFlags_G_URI_FLAGS_NON_DNS: GUriFlags = 16; +pub const GUriFlags_G_URI_FLAGS_ENCODED_QUERY: GUriFlags = 32; +pub const GUriFlags_G_URI_FLAGS_ENCODED_PATH: GUriFlags = 64; +pub const GUriFlags_G_URI_FLAGS_ENCODED_FRAGMENT: GUriFlags = 128; +pub const GUriFlags_G_URI_FLAGS_SCHEME_NORMALIZE: GUriFlags = 256; +pub type GUriFlags = ::std::os::raw::c_uint; +extern "C" { + pub fn g_uri_split( + uri_ref: *const gchar, + flags: GUriFlags, + scheme: *mut *mut gchar, + userinfo: *mut *mut gchar, + host: *mut *mut gchar, + port: *mut gint, + path: *mut *mut gchar, + query: *mut *mut gchar, + fragment: *mut *mut gchar, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_uri_split_with_user( + uri_ref: *const gchar, + flags: GUriFlags, + scheme: *mut *mut gchar, + user: *mut *mut gchar, + password: *mut *mut gchar, + auth_params: *mut *mut gchar, + host: *mut *mut gchar, + port: *mut gint, + path: *mut *mut gchar, + query: *mut *mut gchar, + fragment: *mut *mut gchar, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_uri_split_network( + uri_string: *const gchar, + flags: GUriFlags, + scheme: *mut *mut gchar, + host: *mut *mut gchar, + port: *mut gint, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_uri_is_valid( + uri_string: *const gchar, + flags: GUriFlags, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_uri_join( + flags: GUriFlags, + scheme: *const gchar, + userinfo: *const gchar, + host: *const gchar, + port: gint, + path: *const gchar, + query: *const gchar, + fragment: *const gchar, + ) -> *mut gchar; +} +extern "C" { + pub fn g_uri_join_with_user( + flags: GUriFlags, + scheme: *const gchar, + user: *const gchar, + password: *const gchar, + auth_params: *const gchar, + host: *const gchar, + port: gint, + path: *const gchar, + query: *const gchar, + fragment: *const gchar, + ) -> *mut gchar; +} +extern "C" { + pub fn g_uri_parse( + uri_string: *const gchar, + flags: GUriFlags, + error: *mut *mut GError, + ) -> *mut GUri; +} +extern "C" { + pub fn g_uri_parse_relative( + base_uri: *mut GUri, + uri_ref: *const gchar, + flags: GUriFlags, + error: *mut *mut GError, + ) -> *mut GUri; +} +extern "C" { + pub fn g_uri_resolve_relative( + base_uri_string: *const gchar, + uri_ref: *const gchar, + flags: GUriFlags, + error: *mut *mut GError, + ) -> *mut gchar; +} +extern "C" { + pub fn g_uri_build( + flags: GUriFlags, + scheme: *const gchar, + userinfo: *const gchar, + host: *const gchar, + port: gint, + path: *const gchar, + query: *const gchar, + fragment: *const gchar, + ) -> *mut GUri; +} +extern "C" { + pub fn g_uri_build_with_user( + flags: GUriFlags, + scheme: *const gchar, + user: *const gchar, + password: *const gchar, + auth_params: *const gchar, + host: *const gchar, + port: gint, + path: *const gchar, + query: *const gchar, + fragment: *const gchar, + ) -> *mut GUri; +} +pub const GUriHideFlags_G_URI_HIDE_NONE: GUriHideFlags = 0; +pub const GUriHideFlags_G_URI_HIDE_USERINFO: GUriHideFlags = 1; +pub const GUriHideFlags_G_URI_HIDE_PASSWORD: GUriHideFlags = 2; +pub const GUriHideFlags_G_URI_HIDE_AUTH_PARAMS: GUriHideFlags = 4; +pub const GUriHideFlags_G_URI_HIDE_QUERY: GUriHideFlags = 8; +pub const GUriHideFlags_G_URI_HIDE_FRAGMENT: GUriHideFlags = 16; +pub type GUriHideFlags = ::std::os::raw::c_uint; +extern "C" { + pub fn g_uri_to_string(uri: *mut GUri) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn g_uri_to_string_partial( + uri: *mut GUri, + flags: GUriHideFlags, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn g_uri_get_scheme(uri: *mut GUri) -> *const gchar; +} +extern "C" { + pub fn g_uri_get_userinfo(uri: *mut GUri) -> *const gchar; +} +extern "C" { + pub fn g_uri_get_user(uri: *mut GUri) -> *const gchar; +} +extern "C" { + pub fn g_uri_get_password(uri: *mut GUri) -> *const gchar; +} +extern "C" { + pub fn g_uri_get_auth_params(uri: *mut GUri) -> *const gchar; +} +extern "C" { + pub fn g_uri_get_host(uri: *mut GUri) -> *const gchar; +} +extern "C" { + pub fn g_uri_get_port(uri: *mut GUri) -> gint; +} +extern "C" { + pub fn g_uri_get_path(uri: *mut GUri) -> *const gchar; +} +extern "C" { + pub fn g_uri_get_query(uri: *mut GUri) -> *const gchar; +} +extern "C" { + pub fn g_uri_get_fragment(uri: *mut GUri) -> *const gchar; +} +extern "C" { + pub fn g_uri_get_flags(uri: *mut GUri) -> GUriFlags; +} +pub const GUriParamsFlags_G_URI_PARAMS_NONE: GUriParamsFlags = 0; +pub const GUriParamsFlags_G_URI_PARAMS_CASE_INSENSITIVE: GUriParamsFlags = 1; +pub const GUriParamsFlags_G_URI_PARAMS_WWW_FORM: GUriParamsFlags = 2; +pub const GUriParamsFlags_G_URI_PARAMS_PARSE_RELAXED: GUriParamsFlags = 4; +pub type GUriParamsFlags = ::std::os::raw::c_uint; +extern "C" { + pub fn g_uri_parse_params( + params: *const gchar, + length: gssize, + separators: *const gchar, + flags: GUriParamsFlags, + error: *mut *mut GError, + ) -> *mut GHashTable; +} +pub type GUriParamsIter = _GUriParamsIter; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GUriParamsIter { + pub dummy0: gint, + pub dummy1: gpointer, + pub dummy2: gpointer, + pub dummy3: [guint8; 256usize], +} +#[test] +fn bindgen_test_layout__GUriParamsIter() { + const UNINIT: ::std::mem::MaybeUninit<_GUriParamsIter> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GUriParamsIter>(), + 280usize, + concat!("Size of: ", stringify!(_GUriParamsIter)) + ); + assert_eq!( + ::std::mem::align_of::<_GUriParamsIter>(), + 8usize, + concat!("Alignment of ", stringify!(_GUriParamsIter)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dummy0) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GUriParamsIter), + "::", + stringify!(dummy0) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dummy1) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GUriParamsIter), + "::", + stringify!(dummy1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dummy2) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_GUriParamsIter), + "::", + stringify!(dummy2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dummy3) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_GUriParamsIter), + "::", + stringify!(dummy3) + ) + ); +} +extern "C" { + pub fn g_uri_params_iter_init( + iter: *mut GUriParamsIter, + params: *const gchar, + length: gssize, + separators: *const gchar, + flags: GUriParamsFlags, + ); +} +extern "C" { + pub fn g_uri_params_iter_next( + iter: *mut GUriParamsIter, + attribute: *mut *mut gchar, + value: *mut *mut gchar, + error: *mut *mut GError, + ) -> gboolean; +} +extern "C" { + pub fn g_uri_error_quark() -> GQuark; +} +pub const GUriError_G_URI_ERROR_FAILED: GUriError = 0; +pub const GUriError_G_URI_ERROR_BAD_SCHEME: GUriError = 1; +pub const GUriError_G_URI_ERROR_BAD_USER: GUriError = 2; +pub const GUriError_G_URI_ERROR_BAD_PASSWORD: GUriError = 3; +pub const GUriError_G_URI_ERROR_BAD_AUTH_PARAMS: GUriError = 4; +pub const GUriError_G_URI_ERROR_BAD_HOST: GUriError = 5; +pub const GUriError_G_URI_ERROR_BAD_PORT: GUriError = 6; +pub const GUriError_G_URI_ERROR_BAD_PATH: GUriError = 7; +pub const GUriError_G_URI_ERROR_BAD_QUERY: GUriError = 8; +pub const GUriError_G_URI_ERROR_BAD_FRAGMENT: GUriError = 9; +pub type GUriError = ::std::os::raw::c_uint; +extern "C" { + pub fn g_uri_unescape_string( + escaped_string: *const ::std::os::raw::c_char, + illegal_characters: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn g_uri_unescape_segment( + escaped_string: *const ::std::os::raw::c_char, + escaped_string_end: *const ::std::os::raw::c_char, + illegal_characters: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn g_uri_parse_scheme(uri: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn g_uri_peek_scheme(uri: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn g_uri_escape_string( + unescaped: *const ::std::os::raw::c_char, + reserved_chars_allowed: *const ::std::os::raw::c_char, + allow_utf8: gboolean, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn g_uri_unescape_bytes( + escaped_string: *const ::std::os::raw::c_char, + length: gssize, + illegal_characters: *const ::std::os::raw::c_char, + error: *mut *mut GError, + ) -> *mut GBytes; +} +extern "C" { + pub fn g_uri_escape_bytes( + unescaped: *const guint8, + length: gsize, + reserved_chars_allowed: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn g_uuid_string_is_valid(str_: *const gchar) -> gboolean; +} +extern "C" { + pub fn g_uuid_string_random() -> *mut gchar; +} +extern "C" { + pub static glib_major_version: guint; +} +extern "C" { + pub static glib_minor_version: guint; +} +extern "C" { + pub static glib_micro_version: guint; +} +extern "C" { + pub static glib_interface_age: guint; +} +extern "C" { + pub static glib_binary_age: guint; +} +extern "C" { + pub fn glib_check_version( + required_major: guint, + required_minor: guint, + required_micro: guint, + ) -> *const gchar; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GAllocator { + _unused: [u8; 0], +} +pub type GAllocator = _GAllocator; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GMemChunk { + _unused: [u8; 0], +} +pub type GMemChunk = _GMemChunk; +extern "C" { + pub fn g_mem_chunk_new( + name: *const gchar, + atom_size: gint, + area_size: gsize, + type_: gint, + ) -> *mut GMemChunk; +} +extern "C" { + pub fn g_mem_chunk_destroy(mem_chunk: *mut GMemChunk); +} +extern "C" { + pub fn g_mem_chunk_alloc(mem_chunk: *mut GMemChunk) -> gpointer; +} +extern "C" { + pub fn g_mem_chunk_alloc0(mem_chunk: *mut GMemChunk) -> gpointer; +} +extern "C" { + pub fn g_mem_chunk_free(mem_chunk: *mut GMemChunk, mem: gpointer); +} +extern "C" { + pub fn g_mem_chunk_clean(mem_chunk: *mut GMemChunk); +} +extern "C" { + pub fn g_mem_chunk_reset(mem_chunk: *mut GMemChunk); +} +extern "C" { + pub fn g_mem_chunk_print(mem_chunk: *mut GMemChunk); +} +extern "C" { + pub fn g_mem_chunk_info(); +} +extern "C" { + pub fn g_blow_chunks(); +} +extern "C" { + pub fn g_allocator_new(name: *const gchar, n_preallocs: guint) -> *mut GAllocator; +} +extern "C" { + pub fn g_allocator_free(allocator: *mut GAllocator); +} +extern "C" { + pub fn g_list_push_allocator(allocator: *mut GAllocator); +} +extern "C" { + pub fn g_list_pop_allocator(); +} +extern "C" { + pub fn g_slist_push_allocator(allocator: *mut GAllocator); +} +extern "C" { + pub fn g_slist_pop_allocator(); +} +extern "C" { + pub fn g_node_push_allocator(allocator: *mut GAllocator); +} +extern "C" { + pub fn g_node_pop_allocator(); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GCache { + _unused: [u8; 0], +} +pub type GCache = _GCache; +pub type GCacheNewFunc = ::std::option::Option gpointer>; +pub type GCacheDupFunc = ::std::option::Option gpointer>; +pub type GCacheDestroyFunc = ::std::option::Option; +extern "C" { + pub fn g_cache_new( + value_new_func: GCacheNewFunc, + value_destroy_func: GCacheDestroyFunc, + key_dup_func: GCacheDupFunc, + key_destroy_func: GCacheDestroyFunc, + hash_key_func: GHashFunc, + hash_value_func: GHashFunc, + key_equal_func: GEqualFunc, + ) -> *mut GCache; +} +extern "C" { + pub fn g_cache_destroy(cache: *mut GCache); +} +extern "C" { + pub fn g_cache_insert(cache: *mut GCache, key: gpointer) -> gpointer; +} +extern "C" { + pub fn g_cache_remove(cache: *mut GCache, value: gconstpointer); +} +extern "C" { + pub fn g_cache_key_foreach(cache: *mut GCache, func: GHFunc, user_data: gpointer); +} +extern "C" { + pub fn g_cache_value_foreach(cache: *mut GCache, func: GHFunc, user_data: gpointer); +} +pub type GCompletion = _GCompletion; +pub type GCompletionFunc = + ::std::option::Option *mut gchar>; +pub type GCompletionStrncmpFunc = ::std::option::Option< + unsafe extern "C" fn(s1: *const gchar, s2: *const gchar, n: gsize) -> gint, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GCompletion { + pub items: *mut GList, + pub func: GCompletionFunc, + pub prefix: *mut gchar, + pub cache: *mut GList, + pub strncmp_func: GCompletionStrncmpFunc, +} +#[test] +fn bindgen_test_layout__GCompletion() { + const UNINIT: ::std::mem::MaybeUninit<_GCompletion> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GCompletion>(), + 40usize, + concat!("Size of: ", stringify!(_GCompletion)) + ); + assert_eq!( + ::std::mem::align_of::<_GCompletion>(), + 8usize, + concat!("Alignment of ", stringify!(_GCompletion)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).items) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GCompletion), + "::", + stringify!(items) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GCompletion), + "::", + stringify!(func) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).prefix) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_GCompletion), + "::", + stringify!(prefix) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).cache) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_GCompletion), + "::", + stringify!(cache) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).strncmp_func) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_GCompletion), + "::", + stringify!(strncmp_func) + ) + ); +} +extern "C" { + pub fn g_completion_new(func: GCompletionFunc) -> *mut GCompletion; +} +extern "C" { + pub fn g_completion_add_items(cmp: *mut GCompletion, items: *mut GList); +} +extern "C" { + pub fn g_completion_remove_items(cmp: *mut GCompletion, items: *mut GList); +} +extern "C" { + pub fn g_completion_clear_items(cmp: *mut GCompletion); +} +extern "C" { + pub fn g_completion_complete( + cmp: *mut GCompletion, + prefix: *const gchar, + new_prefix: *mut *mut gchar, + ) -> *mut GList; +} +extern "C" { + pub fn g_completion_complete_utf8( + cmp: *mut GCompletion, + prefix: *const gchar, + new_prefix: *mut *mut gchar, + ) -> *mut GList; +} +extern "C" { + pub fn g_completion_set_compare(cmp: *mut GCompletion, strncmp_func: GCompletionStrncmpFunc); +} +extern "C" { + pub fn g_completion_free(cmp: *mut GCompletion); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GRelation { + _unused: [u8; 0], +} +pub type GRelation = _GRelation; +pub type GTuples = _GTuples; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GTuples { + pub len: guint, +} +#[test] +fn bindgen_test_layout__GTuples() { + const UNINIT: ::std::mem::MaybeUninit<_GTuples> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GTuples>(), + 4usize, + concat!("Size of: ", stringify!(_GTuples)) + ); + assert_eq!( + ::std::mem::align_of::<_GTuples>(), + 4usize, + concat!("Alignment of ", stringify!(_GTuples)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GTuples), + "::", + stringify!(len) + ) + ); +} +extern "C" { + pub fn g_relation_new(fields: gint) -> *mut GRelation; +} +extern "C" { + pub fn g_relation_destroy(relation: *mut GRelation); +} +extern "C" { + pub fn g_relation_index( + relation: *mut GRelation, + field: gint, + hash_func: GHashFunc, + key_equal_func: GEqualFunc, + ); +} +extern "C" { + pub fn g_relation_insert(relation: *mut GRelation, ...); +} +extern "C" { + pub fn g_relation_delete(relation: *mut GRelation, key: gconstpointer, field: gint) -> gint; +} +extern "C" { + pub fn g_relation_select( + relation: *mut GRelation, + key: gconstpointer, + field: gint, + ) -> *mut GTuples; +} +extern "C" { + pub fn g_relation_count(relation: *mut GRelation, key: gconstpointer, field: gint) -> gint; +} +extern "C" { + pub fn g_relation_exists(relation: *mut GRelation, ...) -> gboolean; +} +extern "C" { + pub fn g_relation_print(relation: *mut GRelation); +} +extern "C" { + pub fn g_tuples_destroy(tuples: *mut GTuples); +} +extern "C" { + pub fn g_tuples_index(tuples: *mut GTuples, index_: gint, field: gint) -> gpointer; +} +pub const GThreadPriority_G_THREAD_PRIORITY_LOW: GThreadPriority = 0; +pub const GThreadPriority_G_THREAD_PRIORITY_NORMAL: GThreadPriority = 1; +pub const GThreadPriority_G_THREAD_PRIORITY_HIGH: GThreadPriority = 2; +pub const GThreadPriority_G_THREAD_PRIORITY_URGENT: GThreadPriority = 3; +pub type GThreadPriority = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GThread { + pub func: GThreadFunc, + pub data: gpointer, + pub joinable: gboolean, + pub priority: GThreadPriority, +} +#[test] +fn bindgen_test_layout__GThread() { + const UNINIT: ::std::mem::MaybeUninit<_GThread> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GThread>(), + 24usize, + concat!("Size of: ", stringify!(_GThread)) + ); + assert_eq!( + ::std::mem::align_of::<_GThread>(), + 8usize, + concat!("Alignment of ", stringify!(_GThread)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GThread), + "::", + stringify!(func) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GThread), + "::", + stringify!(data) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).joinable) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_GThread), + "::", + stringify!(joinable) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).priority) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(_GThread), + "::", + stringify!(priority) + ) + ); +} +pub type GThreadFunctions = _GThreadFunctions; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GThreadFunctions { + pub mutex_new: ::std::option::Option *mut GMutex>, + pub mutex_lock: ::std::option::Option, + pub mutex_trylock: ::std::option::Option gboolean>, + pub mutex_unlock: ::std::option::Option, + pub mutex_free: ::std::option::Option, + pub cond_new: ::std::option::Option *mut GCond>, + pub cond_signal: ::std::option::Option, + pub cond_broadcast: ::std::option::Option, + pub cond_wait: + ::std::option::Option, + pub cond_timed_wait: ::std::option::Option< + unsafe extern "C" fn( + cond: *mut GCond, + mutex: *mut GMutex, + end_time: *mut GTimeVal, + ) -> gboolean, + >, + pub cond_free: ::std::option::Option, + pub private_new: + ::std::option::Option *mut GPrivate>, + pub private_get: + ::std::option::Option gpointer>, + pub private_set: + ::std::option::Option, + pub thread_create: ::std::option::Option< + unsafe extern "C" fn( + func: GThreadFunc, + data: gpointer, + stack_size: gulong, + joinable: gboolean, + bound: gboolean, + priority: GThreadPriority, + thread: gpointer, + error: *mut *mut GError, + ), + >, + pub thread_yield: ::std::option::Option, + pub thread_join: ::std::option::Option, + pub thread_exit: ::std::option::Option, + pub thread_set_priority: + ::std::option::Option, + pub thread_self: ::std::option::Option, + pub thread_equal: ::std::option::Option< + unsafe extern "C" fn(thread1: gpointer, thread2: gpointer) -> gboolean, + >, +} +#[test] +fn bindgen_test_layout__GThreadFunctions() { + const UNINIT: ::std::mem::MaybeUninit<_GThreadFunctions> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GThreadFunctions>(), + 168usize, + concat!("Size of: ", stringify!(_GThreadFunctions)) + ); + assert_eq!( + ::std::mem::align_of::<_GThreadFunctions>(), + 8usize, + concat!("Alignment of ", stringify!(_GThreadFunctions)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).mutex_new) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GThreadFunctions), + "::", + stringify!(mutex_new) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).mutex_lock) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_GThreadFunctions), + "::", + stringify!(mutex_lock) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).mutex_trylock) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_GThreadFunctions), + "::", + stringify!(mutex_trylock) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).mutex_unlock) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_GThreadFunctions), + "::", + stringify!(mutex_unlock) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).mutex_free) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_GThreadFunctions), + "::", + stringify!(mutex_free) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).cond_new) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(_GThreadFunctions), + "::", + stringify!(cond_new) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).cond_signal) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(_GThreadFunctions), + "::", + stringify!(cond_signal) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).cond_broadcast) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(_GThreadFunctions), + "::", + stringify!(cond_broadcast) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).cond_wait) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(_GThreadFunctions), + "::", + stringify!(cond_wait) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).cond_timed_wait) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(_GThreadFunctions), + "::", + stringify!(cond_timed_wait) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).cond_free) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(_GThreadFunctions), + "::", + stringify!(cond_free) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).private_new) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(_GThreadFunctions), + "::", + stringify!(private_new) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).private_get) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(_GThreadFunctions), + "::", + stringify!(private_get) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).private_set) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(_GThreadFunctions), + "::", + stringify!(private_set) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).thread_create) as usize - ptr as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(_GThreadFunctions), + "::", + stringify!(thread_create) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).thread_yield) as usize - ptr as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(_GThreadFunctions), + "::", + stringify!(thread_yield) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).thread_join) as usize - ptr as usize }, + 128usize, + concat!( + "Offset of field: ", + stringify!(_GThreadFunctions), + "::", + stringify!(thread_join) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).thread_exit) as usize - ptr as usize }, + 136usize, + concat!( + "Offset of field: ", + stringify!(_GThreadFunctions), + "::", + stringify!(thread_exit) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).thread_set_priority) as usize - ptr as usize }, + 144usize, + concat!( + "Offset of field: ", + stringify!(_GThreadFunctions), + "::", + stringify!(thread_set_priority) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).thread_self) as usize - ptr as usize }, + 152usize, + concat!( + "Offset of field: ", + stringify!(_GThreadFunctions), + "::", + stringify!(thread_self) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).thread_equal) as usize - ptr as usize }, + 160usize, + concat!( + "Offset of field: ", + stringify!(_GThreadFunctions), + "::", + stringify!(thread_equal) + ) + ); +} +extern "C" { + pub static mut g_thread_functions_for_glib_use: GThreadFunctions; +} +extern "C" { + pub static mut g_thread_use_default_impl: gboolean; +} +extern "C" { + pub static mut g_thread_gettime: ::std::option::Option guint64>; +} +extern "C" { + pub fn g_thread_create( + func: GThreadFunc, + data: gpointer, + joinable: gboolean, + error: *mut *mut GError, + ) -> *mut GThread; +} +extern "C" { + pub fn g_thread_create_full( + func: GThreadFunc, + data: gpointer, + stack_size: gulong, + joinable: gboolean, + bound: gboolean, + priority: GThreadPriority, + error: *mut *mut GError, + ) -> *mut GThread; +} +extern "C" { + pub fn g_thread_set_priority(thread: *mut GThread, priority: GThreadPriority); +} +extern "C" { + pub fn g_thread_foreach(thread_func: GFunc, user_data: gpointer); +} +pub type u_char = ::std::os::raw::c_uchar; +pub type u_short = ::std::os::raw::c_ushort; +pub type u_int = ::std::os::raw::c_uint; +pub type u_long = ::std::os::raw::c_ulong; +pub type ushort = ::std::os::raw::c_ushort; +pub type uint = ::std::os::raw::c_uint; +pub type u_quad_t = u_int64_t; +pub type quad_t = i64; +pub type qaddr_t = *mut quad_t; +pub type caddr_t = *mut ::std::os::raw::c_char; +pub type daddr_t = i32; +pub type fixpt_t = u_int32_t; +pub type blkcnt_t = __darwin_blkcnt_t; +pub type blksize_t = __darwin_blksize_t; +pub type gid_t = __darwin_gid_t; +pub type in_addr_t = __uint32_t; +pub type in_port_t = __uint16_t; +pub type ino64_t = __darwin_ino64_t; +pub type key_t = __int32_t; +pub type nlink_t = __uint16_t; +pub type off_t = __darwin_off_t; +pub type segsz_t = i32; +pub type swblk_t = i32; +pub type useconds_t = __darwin_useconds_t; +pub type suseconds_t = __darwin_suseconds_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fd_set { + pub fds_bits: [__int32_t; 32usize], +} +#[test] +fn bindgen_test_layout_fd_set() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 128usize, + concat!("Size of: ", stringify!(fd_set)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(fd_set)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).fds_bits) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(fd_set), + "::", + stringify!(fds_bits) + ) + ); +} +extern "C" { + pub fn __darwin_check_fd_set_overflow( + arg1: ::std::os::raw::c_int, + arg2: *const ::std::os::raw::c_void, + arg3: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +pub type fd_mask = __int32_t; +pub type pthread_cond_t = __darwin_pthread_cond_t; +pub type pthread_condattr_t = __darwin_pthread_condattr_t; +pub type pthread_mutex_t = __darwin_pthread_mutex_t; +pub type pthread_mutexattr_t = __darwin_pthread_mutexattr_t; +pub type pthread_once_t = __darwin_pthread_once_t; +pub type pthread_rwlock_t = __darwin_pthread_rwlock_t; +pub type pthread_rwlockattr_t = __darwin_pthread_rwlockattr_t; +pub type pthread_key_t = __darwin_pthread_key_t; +pub type fsblkcnt_t = __darwin_fsblkcnt_t; +pub type fsfilcnt_t = __darwin_fsfilcnt_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sched_param { + pub sched_priority: ::std::os::raw::c_int, + pub __opaque: [::std::os::raw::c_char; 4usize], +} +#[test] +fn bindgen_test_layout_sched_param() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(sched_param)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(sched_param)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sched_priority) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sched_param), + "::", + stringify!(sched_priority) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__opaque) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(sched_param), + "::", + stringify!(__opaque) + ) + ); +} +extern "C" { + pub fn sched_yield() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sched_get_priority_min(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sched_get_priority_max(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +pub const QOS_CLASS_USER_INTERACTIVE: _bindgen_ty_1 = 33; +pub const QOS_CLASS_USER_INITIATED: _bindgen_ty_1 = 25; +pub const QOS_CLASS_DEFAULT: _bindgen_ty_1 = 21; +pub const QOS_CLASS_UTILITY: _bindgen_ty_1 = 17; +pub const QOS_CLASS_BACKGROUND: _bindgen_ty_1 = 9; +pub const QOS_CLASS_UNSPECIFIED: _bindgen_ty_1 = 0; +pub type _bindgen_ty_1 = ::std::os::raw::c_uint; +pub type qos_class_t = ::std::os::raw::c_uint; +extern "C" { + pub fn qos_class_self() -> qos_class_t; +} +extern "C" { + pub fn qos_class_main() -> qos_class_t; +} +extern "C" { + pub fn pthread_attr_set_qos_class_np( + __attr: *mut pthread_attr_t, + __qos_class: qos_class_t, + __relative_priority: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_attr_get_qos_class_np( + __attr: *mut pthread_attr_t, + __qos_class: *mut qos_class_t, + __relative_priority: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_set_qos_class_self_np( + __qos_class: qos_class_t, + __relative_priority: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_get_qos_class_np( + __pthread: pthread_t, + __qos_class: *mut qos_class_t, + __relative_priority: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pthread_override_s { + _unused: [u8; 0], +} +pub type pthread_override_t = *mut pthread_override_s; +extern "C" { + pub fn pthread_override_qos_class_start_np( + __pthread: pthread_t, + __qos_class: qos_class_t, + __relative_priority: ::std::os::raw::c_int, + ) -> pthread_override_t; +} +extern "C" { + pub fn pthread_override_qos_class_end_np( + __override: pthread_override_t, + ) -> ::std::os::raw::c_int; +} +pub type mach_port_t = __darwin_mach_port_t; +extern "C" { + pub fn pthread_atfork( + arg1: ::std::option::Option, + arg2: ::std::option::Option, + arg3: ::std::option::Option, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_attr_destroy(arg1: *mut pthread_attr_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_attr_getdetachstate( + arg1: *const pthread_attr_t, + arg2: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_attr_getguardsize( + arg1: *const pthread_attr_t, + arg2: *mut usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_attr_getinheritsched( + arg1: *const pthread_attr_t, + arg2: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_attr_getschedparam( + arg1: *const pthread_attr_t, + arg2: *mut sched_param, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_attr_getschedpolicy( + arg1: *const pthread_attr_t, + arg2: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_attr_getscope( + arg1: *const pthread_attr_t, + arg2: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_attr_getstack( + arg1: *const pthread_attr_t, + arg2: *mut *mut ::std::os::raw::c_void, + arg3: *mut usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_attr_getstackaddr( + arg1: *const pthread_attr_t, + arg2: *mut *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_attr_getstacksize( + arg1: *const pthread_attr_t, + arg2: *mut usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_attr_init(arg1: *mut pthread_attr_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_attr_setdetachstate( + arg1: *mut pthread_attr_t, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_attr_setguardsize( + arg1: *mut pthread_attr_t, + arg2: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_attr_setinheritsched( + arg1: *mut pthread_attr_t, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_attr_setschedparam( + arg1: *mut pthread_attr_t, + arg2: *const sched_param, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_attr_setschedpolicy( + arg1: *mut pthread_attr_t, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_attr_setscope( + arg1: *mut pthread_attr_t, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_attr_setstack( + arg1: *mut pthread_attr_t, + arg2: *mut ::std::os::raw::c_void, + arg3: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_attr_setstackaddr( + arg1: *mut pthread_attr_t, + arg2: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_attr_setstacksize( + arg1: *mut pthread_attr_t, + arg2: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_cancel(arg1: pthread_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_cond_broadcast(arg1: *mut pthread_cond_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_cond_destroy(arg1: *mut pthread_cond_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_cond_init( + arg1: *mut pthread_cond_t, + arg2: *const pthread_condattr_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_cond_signal(arg1: *mut pthread_cond_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_cond_timedwait( + arg1: *mut pthread_cond_t, + arg2: *mut pthread_mutex_t, + arg3: *const timespec, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_cond_wait( + arg1: *mut pthread_cond_t, + arg2: *mut pthread_mutex_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_condattr_destroy(arg1: *mut pthread_condattr_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_condattr_init(arg1: *mut pthread_condattr_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_condattr_getpshared( + arg1: *const pthread_condattr_t, + arg2: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_condattr_setpshared( + arg1: *mut pthread_condattr_t, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_create( + arg1: *mut pthread_t, + arg2: *const pthread_attr_t, + arg3: ::std::option::Option< + unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void, + >, + arg4: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_detach(arg1: pthread_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_equal(arg1: pthread_t, arg2: pthread_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_exit(arg1: *mut ::std::os::raw::c_void) -> !; +} +extern "C" { + pub fn pthread_getconcurrency() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_getschedparam( + arg1: pthread_t, + arg2: *mut ::std::os::raw::c_int, + arg3: *mut sched_param, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_getspecific(arg1: pthread_key_t) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn pthread_join( + arg1: pthread_t, + arg2: *mut *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_key_create( + arg1: *mut pthread_key_t, + arg2: ::std::option::Option, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_key_delete(arg1: pthread_key_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_mutex_destroy(arg1: *mut pthread_mutex_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_mutex_getprioceiling( + arg1: *const pthread_mutex_t, + arg2: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_mutex_init( + arg1: *mut pthread_mutex_t, + arg2: *const pthread_mutexattr_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_mutex_lock(arg1: *mut pthread_mutex_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_mutex_setprioceiling( + arg1: *mut pthread_mutex_t, + arg2: ::std::os::raw::c_int, + arg3: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_mutex_trylock(arg1: *mut pthread_mutex_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_mutex_unlock(arg1: *mut pthread_mutex_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_mutexattr_destroy(arg1: *mut pthread_mutexattr_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_mutexattr_getprioceiling( + arg1: *const pthread_mutexattr_t, + arg2: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_mutexattr_getprotocol( + arg1: *const pthread_mutexattr_t, + arg2: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_mutexattr_getpshared( + arg1: *const pthread_mutexattr_t, + arg2: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_mutexattr_gettype( + arg1: *const pthread_mutexattr_t, + arg2: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_mutexattr_getpolicy_np( + arg1: *const pthread_mutexattr_t, + arg2: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_mutexattr_init(arg1: *mut pthread_mutexattr_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_mutexattr_setprioceiling( + arg1: *mut pthread_mutexattr_t, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_mutexattr_setprotocol( + arg1: *mut pthread_mutexattr_t, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_mutexattr_setpshared( + arg1: *mut pthread_mutexattr_t, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_mutexattr_settype( + arg1: *mut pthread_mutexattr_t, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_mutexattr_setpolicy_np( + arg1: *mut pthread_mutexattr_t, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_once( + arg1: *mut pthread_once_t, + arg2: ::std::option::Option, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_rwlock_destroy(arg1: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_rwlock_init( + arg1: *mut pthread_rwlock_t, + arg2: *const pthread_rwlockattr_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_rwlock_rdlock(arg1: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_rwlock_tryrdlock(arg1: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_rwlock_trywrlock(arg1: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_rwlock_wrlock(arg1: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_rwlock_unlock(arg1: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_rwlockattr_destroy(arg1: *mut pthread_rwlockattr_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_rwlockattr_getpshared( + arg1: *const pthread_rwlockattr_t, + arg2: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_rwlockattr_init(arg1: *mut pthread_rwlockattr_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_rwlockattr_setpshared( + arg1: *mut pthread_rwlockattr_t, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_self() -> pthread_t; +} +extern "C" { + pub fn pthread_setcancelstate( + arg1: ::std::os::raw::c_int, + arg2: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_setcanceltype( + arg1: ::std::os::raw::c_int, + arg2: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_setconcurrency(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_setschedparam( + arg1: pthread_t, + arg2: ::std::os::raw::c_int, + arg3: *const sched_param, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_setspecific( + arg1: pthread_key_t, + arg2: *const ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_testcancel(); +} +extern "C" { + pub fn pthread_is_threaded_np() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_threadid_np(arg1: pthread_t, arg2: *mut __uint64_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_getname_np( + arg1: pthread_t, + arg2: *mut ::std::os::raw::c_char, + arg3: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_setname_np(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_main_np() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_mach_thread_np(arg1: pthread_t) -> mach_port_t; +} +extern "C" { + pub fn pthread_get_stacksize_np(arg1: pthread_t) -> usize; +} +extern "C" { + pub fn pthread_get_stackaddr_np(arg1: pthread_t) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn pthread_cond_signal_thread_np( + arg1: *mut pthread_cond_t, + arg2: pthread_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_cond_timedwait_relative_np( + arg1: *mut pthread_cond_t, + arg2: *mut pthread_mutex_t, + arg3: *const timespec, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_create_suspended_np( + arg1: *mut pthread_t, + arg2: *const pthread_attr_t, + arg3: ::std::option::Option< + unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void, + >, + arg4: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_from_mach_thread_np(arg1: mach_port_t) -> pthread_t; +} +extern "C" { + pub fn pthread_yield_np(); +} +extern "C" { + pub fn pthread_jit_write_protect_np(enabled: ::std::os::raw::c_int); +} +extern "C" { + pub fn pthread_jit_write_protect_supported_np() -> ::std::os::raw::c_int; +} +pub type pthread_jit_write_callback_t = ::std::option::Option< + unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int, +>; +extern "C" { + pub fn pthread_jit_write_with_callback_np( + callback: pthread_jit_write_callback_t, + ctx: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pthread_jit_write_freeze_callbacks_np(); +} +extern "C" { + pub fn pthread_cpu_number_np(cpu_number_out: *mut usize) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct GStaticMutex { + pub mutex: *mut GMutex, + pub unused: pthread_mutex_t, +} +#[test] +fn bindgen_test_layout_GStaticMutex() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 72usize, + concat!("Size of: ", stringify!(GStaticMutex)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(GStaticMutex)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).mutex) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(GStaticMutex), + "::", + stringify!(mutex) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).unused) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(GStaticMutex), + "::", + stringify!(unused) + ) + ); +} +extern "C" { + pub fn g_static_mutex_init(mutex: *mut GStaticMutex); +} +extern "C" { + pub fn g_static_mutex_free(mutex: *mut GStaticMutex); +} +extern "C" { + pub fn g_static_mutex_get_mutex_impl(mutex: *mut GStaticMutex) -> *mut GMutex; +} +pub type GStaticRecMutex = _GStaticRecMutex; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _GStaticRecMutex { + pub mutex: GStaticMutex, + pub depth: guint, + pub unused: _GStaticRecMutex__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union _GStaticRecMutex__bindgen_ty_1 { + pub owner: pthread_t, + pub dummy: gdouble, +} +#[test] +fn bindgen_test_layout__GStaticRecMutex__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit<_GStaticRecMutex__bindgen_ty_1> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GStaticRecMutex__bindgen_ty_1>(), + 8usize, + concat!("Size of: ", stringify!(_GStaticRecMutex__bindgen_ty_1)) + ); + assert_eq!( + ::std::mem::align_of::<_GStaticRecMutex__bindgen_ty_1>(), + 8usize, + concat!("Alignment of ", stringify!(_GStaticRecMutex__bindgen_ty_1)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).owner) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GStaticRecMutex__bindgen_ty_1), + "::", + stringify!(owner) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GStaticRecMutex__bindgen_ty_1), + "::", + stringify!(dummy) + ) + ); +} +#[test] +fn bindgen_test_layout__GStaticRecMutex() { + const UNINIT: ::std::mem::MaybeUninit<_GStaticRecMutex> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GStaticRecMutex>(), + 88usize, + concat!("Size of: ", stringify!(_GStaticRecMutex)) + ); + assert_eq!( + ::std::mem::align_of::<_GStaticRecMutex>(), + 8usize, + concat!("Alignment of ", stringify!(_GStaticRecMutex)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).mutex) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GStaticRecMutex), + "::", + stringify!(mutex) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).depth) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(_GStaticRecMutex), + "::", + stringify!(depth) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).unused) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(_GStaticRecMutex), + "::", + stringify!(unused) + ) + ); +} +extern "C" { + pub fn g_static_rec_mutex_init(mutex: *mut GStaticRecMutex); +} +extern "C" { + pub fn g_static_rec_mutex_lock(mutex: *mut GStaticRecMutex); +} +extern "C" { + pub fn g_static_rec_mutex_trylock(mutex: *mut GStaticRecMutex) -> gboolean; +} +extern "C" { + pub fn g_static_rec_mutex_unlock(mutex: *mut GStaticRecMutex); +} +extern "C" { + pub fn g_static_rec_mutex_lock_full(mutex: *mut GStaticRecMutex, depth: guint); +} +extern "C" { + pub fn g_static_rec_mutex_unlock_full(mutex: *mut GStaticRecMutex) -> guint; +} +extern "C" { + pub fn g_static_rec_mutex_free(mutex: *mut GStaticRecMutex); +} +pub type GStaticRWLock = _GStaticRWLock; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GStaticRWLock { + pub mutex: GStaticMutex, + pub read_cond: *mut GCond, + pub write_cond: *mut GCond, + pub read_counter: guint, + pub have_writer: gboolean, + pub want_to_read: guint, + pub want_to_write: guint, +} +#[test] +fn bindgen_test_layout__GStaticRWLock() { + const UNINIT: ::std::mem::MaybeUninit<_GStaticRWLock> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GStaticRWLock>(), + 104usize, + concat!("Size of: ", stringify!(_GStaticRWLock)) + ); + assert_eq!( + ::std::mem::align_of::<_GStaticRWLock>(), + 8usize, + concat!("Alignment of ", stringify!(_GStaticRWLock)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).mutex) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GStaticRWLock), + "::", + stringify!(mutex) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).read_cond) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(_GStaticRWLock), + "::", + stringify!(read_cond) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).write_cond) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(_GStaticRWLock), + "::", + stringify!(write_cond) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).read_counter) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(_GStaticRWLock), + "::", + stringify!(read_counter) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).have_writer) as usize - ptr as usize }, + 92usize, + concat!( + "Offset of field: ", + stringify!(_GStaticRWLock), + "::", + stringify!(have_writer) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).want_to_read) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(_GStaticRWLock), + "::", + stringify!(want_to_read) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).want_to_write) as usize - ptr as usize }, + 100usize, + concat!( + "Offset of field: ", + stringify!(_GStaticRWLock), + "::", + stringify!(want_to_write) + ) + ); +} +extern "C" { + pub fn g_static_rw_lock_init(lock: *mut GStaticRWLock); +} +extern "C" { + pub fn g_static_rw_lock_reader_lock(lock: *mut GStaticRWLock); +} +extern "C" { + pub fn g_static_rw_lock_reader_trylock(lock: *mut GStaticRWLock) -> gboolean; +} +extern "C" { + pub fn g_static_rw_lock_reader_unlock(lock: *mut GStaticRWLock); +} +extern "C" { + pub fn g_static_rw_lock_writer_lock(lock: *mut GStaticRWLock); +} +extern "C" { + pub fn g_static_rw_lock_writer_trylock(lock: *mut GStaticRWLock) -> gboolean; +} +extern "C" { + pub fn g_static_rw_lock_writer_unlock(lock: *mut GStaticRWLock); +} +extern "C" { + pub fn g_static_rw_lock_free(lock: *mut GStaticRWLock); +} +extern "C" { + pub fn g_private_new(notify: GDestroyNotify) -> *mut GPrivate; +} +pub type GStaticPrivate = _GStaticPrivate; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _GStaticPrivate { + pub index: guint, +} +#[test] +fn bindgen_test_layout__GStaticPrivate() { + const UNINIT: ::std::mem::MaybeUninit<_GStaticPrivate> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_GStaticPrivate>(), + 4usize, + concat!("Size of: ", stringify!(_GStaticPrivate)) + ); + assert_eq!( + ::std::mem::align_of::<_GStaticPrivate>(), + 4usize, + concat!("Alignment of ", stringify!(_GStaticPrivate)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).index) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_GStaticPrivate), + "::", + stringify!(index) + ) + ); +} +extern "C" { + pub fn g_static_private_init(private_key: *mut GStaticPrivate); +} +extern "C" { + pub fn g_static_private_get(private_key: *mut GStaticPrivate) -> gpointer; +} +extern "C" { + pub fn g_static_private_set( + private_key: *mut GStaticPrivate, + data: gpointer, + notify: GDestroyNotify, + ); +} +extern "C" { + pub fn g_static_private_free(private_key: *mut GStaticPrivate); +} +extern "C" { + pub fn g_once_init_enter_impl(location: *mut gsize) -> gboolean; +} +extern "C" { + pub fn g_thread_init(vtable: gpointer); +} +extern "C" { + pub fn g_thread_init_with_errorcheck_mutexes(vtable: gpointer); +} +extern "C" { + pub fn g_thread_get_initialized() -> gboolean; +} +extern "C" { + pub static mut g_threads_got_initialized: gboolean; +} +extern "C" { + pub fn g_mutex_new() -> *mut GMutex; +} +extern "C" { + pub fn g_mutex_free(mutex: *mut GMutex); +} +extern "C" { + pub fn g_cond_new() -> *mut GCond; +} +extern "C" { + pub fn g_cond_free(cond: *mut GCond); +} +extern "C" { + pub fn g_cond_timed_wait( + cond: *mut GCond, + mutex: *mut GMutex, + abs_time: *mut GTimeVal, + ) -> gboolean; +} +pub type GAsyncQueue_autoptr = *mut GAsyncQueue; +pub type GAsyncQueue_listautoptr = *mut GList; +pub type GAsyncQueue_slistautoptr = *mut GSList; +pub type GAsyncQueue_queueautoptr = *mut GQueue; +pub type GBookmarkFile_autoptr = *mut GBookmarkFile; +pub type GBookmarkFile_listautoptr = *mut GList; +pub type GBookmarkFile_slistautoptr = *mut GSList; +pub type GBookmarkFile_queueautoptr = *mut GQueue; +pub type GBytes_autoptr = *mut GBytes; +pub type GBytes_listautoptr = *mut GList; +pub type GBytes_slistautoptr = *mut GSList; +pub type GBytes_queueautoptr = *mut GQueue; +pub type GChecksum_autoptr = *mut GChecksum; +pub type GChecksum_listautoptr = *mut GList; +pub type GChecksum_slistautoptr = *mut GSList; +pub type GChecksum_queueautoptr = *mut GQueue; +pub type GDateTime_autoptr = *mut GDateTime; +pub type GDateTime_listautoptr = *mut GList; +pub type GDateTime_slistautoptr = *mut GSList; +pub type GDateTime_queueautoptr = *mut GQueue; +pub type GDate_autoptr = *mut GDate; +pub type GDate_listautoptr = *mut GList; +pub type GDate_slistautoptr = *mut GSList; +pub type GDate_queueautoptr = *mut GQueue; +pub type GDir_autoptr = *mut GDir; +pub type GDir_listautoptr = *mut GList; +pub type GDir_slistautoptr = *mut GSList; +pub type GDir_queueautoptr = *mut GQueue; +pub type GError_autoptr = *mut GError; +pub type GError_listautoptr = *mut GList; +pub type GError_slistautoptr = *mut GSList; +pub type GError_queueautoptr = *mut GQueue; +pub type GHashTable_autoptr = *mut GHashTable; +pub type GHashTable_listautoptr = *mut GList; +pub type GHashTable_slistautoptr = *mut GSList; +pub type GHashTable_queueautoptr = *mut GQueue; +pub type GHmac_autoptr = *mut GHmac; +pub type GHmac_listautoptr = *mut GList; +pub type GHmac_slistautoptr = *mut GSList; +pub type GHmac_queueautoptr = *mut GQueue; +pub type GIOChannel_autoptr = *mut GIOChannel; +pub type GIOChannel_listautoptr = *mut GList; +pub type GIOChannel_slistautoptr = *mut GSList; +pub type GIOChannel_queueautoptr = *mut GQueue; +pub type GKeyFile_autoptr = *mut GKeyFile; +pub type GKeyFile_listautoptr = *mut GList; +pub type GKeyFile_slistautoptr = *mut GSList; +pub type GKeyFile_queueautoptr = *mut GQueue; +pub type GList_autoptr = *mut GList; +pub type GList_listautoptr = *mut GList; +pub type GList_slistautoptr = *mut GSList; +pub type GList_queueautoptr = *mut GQueue; +pub type GArray_autoptr = *mut GArray; +pub type GArray_listautoptr = *mut GList; +pub type GArray_slistautoptr = *mut GSList; +pub type GArray_queueautoptr = *mut GQueue; +pub type GPtrArray_autoptr = *mut GPtrArray; +pub type GPtrArray_listautoptr = *mut GList; +pub type GPtrArray_slistautoptr = *mut GSList; +pub type GPtrArray_queueautoptr = *mut GQueue; +pub type GByteArray_autoptr = *mut GByteArray; +pub type GByteArray_listautoptr = *mut GList; +pub type GByteArray_slistautoptr = *mut GSList; +pub type GByteArray_queueautoptr = *mut GQueue; +pub type GMainContext_autoptr = *mut GMainContext; +pub type GMainContext_listautoptr = *mut GList; +pub type GMainContext_slistautoptr = *mut GSList; +pub type GMainContext_queueautoptr = *mut GQueue; +pub type GMainContextPusher_autoptr = *mut GMainContextPusher; +pub type GMainContextPusher_listautoptr = *mut GList; +pub type GMainContextPusher_slistautoptr = *mut GSList; +pub type GMainContextPusher_queueautoptr = *mut GQueue; +pub type GMainLoop_autoptr = *mut GMainLoop; +pub type GMainLoop_listautoptr = *mut GList; +pub type GMainLoop_slistautoptr = *mut GSList; +pub type GMainLoop_queueautoptr = *mut GQueue; +pub type GSource_autoptr = *mut GSource; +pub type GSource_listautoptr = *mut GList; +pub type GSource_slistautoptr = *mut GSList; +pub type GSource_queueautoptr = *mut GQueue; +pub type GMappedFile_autoptr = *mut GMappedFile; +pub type GMappedFile_listautoptr = *mut GList; +pub type GMappedFile_slistautoptr = *mut GSList; +pub type GMappedFile_queueautoptr = *mut GQueue; +pub type GMarkupParseContext_autoptr = *mut GMarkupParseContext; +pub type GMarkupParseContext_listautoptr = *mut GList; +pub type GMarkupParseContext_slistautoptr = *mut GSList; +pub type GMarkupParseContext_queueautoptr = *mut GQueue; +pub type GNode_autoptr = *mut GNode; +pub type GNode_listautoptr = *mut GList; +pub type GNode_slistautoptr = *mut GSList; +pub type GNode_queueautoptr = *mut GQueue; +pub type GOptionContext_autoptr = *mut GOptionContext; +pub type GOptionContext_listautoptr = *mut GList; +pub type GOptionContext_slistautoptr = *mut GSList; +pub type GOptionContext_queueautoptr = *mut GQueue; +pub type GOptionGroup_autoptr = *mut GOptionGroup; +pub type GOptionGroup_listautoptr = *mut GList; +pub type GOptionGroup_slistautoptr = *mut GSList; +pub type GOptionGroup_queueautoptr = *mut GQueue; +pub type GPatternSpec_autoptr = *mut GPatternSpec; +pub type GPatternSpec_listautoptr = *mut GList; +pub type GPatternSpec_slistautoptr = *mut GSList; +pub type GPatternSpec_queueautoptr = *mut GQueue; +pub type GQueue_autoptr = *mut GQueue; +pub type GQueue_listautoptr = *mut GList; +pub type GQueue_slistautoptr = *mut GSList; +pub type GQueue_queueautoptr = *mut GQueue; +pub type GRand_autoptr = *mut GRand; +pub type GRand_listautoptr = *mut GList; +pub type GRand_slistautoptr = *mut GSList; +pub type GRand_queueautoptr = *mut GQueue; +pub type GRegex_autoptr = *mut GRegex; +pub type GRegex_listautoptr = *mut GList; +pub type GRegex_slistautoptr = *mut GSList; +pub type GRegex_queueautoptr = *mut GQueue; +pub type GMatchInfo_autoptr = *mut GMatchInfo; +pub type GMatchInfo_listautoptr = *mut GList; +pub type GMatchInfo_slistautoptr = *mut GSList; +pub type GMatchInfo_queueautoptr = *mut GQueue; +pub type GScanner_autoptr = *mut GScanner; +pub type GScanner_listautoptr = *mut GList; +pub type GScanner_slistautoptr = *mut GSList; +pub type GScanner_queueautoptr = *mut GQueue; +pub type GSequence_autoptr = *mut GSequence; +pub type GSequence_listautoptr = *mut GList; +pub type GSequence_slistautoptr = *mut GSList; +pub type GSequence_queueautoptr = *mut GQueue; +pub type GSList_autoptr = *mut GSList; +pub type GSList_listautoptr = *mut GList; +pub type GSList_slistautoptr = *mut GSList; +pub type GSList_queueautoptr = *mut GQueue; +pub type GString_autoptr = *mut GString; +pub type GString_listautoptr = *mut GList; +pub type GString_slistautoptr = *mut GSList; +pub type GString_queueautoptr = *mut GQueue; +pub type GStringChunk_autoptr = *mut GStringChunk; +pub type GStringChunk_listautoptr = *mut GList; +pub type GStringChunk_slistautoptr = *mut GSList; +pub type GStringChunk_queueautoptr = *mut GQueue; +pub type GStrvBuilder_autoptr = *mut GStrvBuilder; +pub type GStrvBuilder_listautoptr = *mut GList; +pub type GStrvBuilder_slistautoptr = *mut GSList; +pub type GStrvBuilder_queueautoptr = *mut GQueue; +pub type GThread_autoptr = *mut GThread; +pub type GThread_listautoptr = *mut GList; +pub type GThread_slistautoptr = *mut GSList; +pub type GThread_queueautoptr = *mut GQueue; +pub type GMutexLocker_autoptr = *mut GMutexLocker; +pub type GMutexLocker_listautoptr = *mut GList; +pub type GMutexLocker_slistautoptr = *mut GSList; +pub type GMutexLocker_queueautoptr = *mut GQueue; +pub type GRecMutexLocker_autoptr = *mut GRecMutexLocker; +pub type GRecMutexLocker_listautoptr = *mut GList; +pub type GRecMutexLocker_slistautoptr = *mut GSList; +pub type GRecMutexLocker_queueautoptr = *mut GQueue; +pub type GRWLockWriterLocker_autoptr = *mut GRWLockWriterLocker; +pub type GRWLockWriterLocker_listautoptr = *mut GList; +pub type GRWLockWriterLocker_slistautoptr = *mut GSList; +pub type GRWLockWriterLocker_queueautoptr = *mut GQueue; +pub type GRWLockReaderLocker_autoptr = *mut GRWLockReaderLocker; +pub type GRWLockReaderLocker_listautoptr = *mut GList; +pub type GRWLockReaderLocker_slistautoptr = *mut GSList; +pub type GRWLockReaderLocker_queueautoptr = *mut GQueue; +pub type GTimer_autoptr = *mut GTimer; +pub type GTimer_listautoptr = *mut GList; +pub type GTimer_slistautoptr = *mut GSList; +pub type GTimer_queueautoptr = *mut GQueue; +pub type GTimeZone_autoptr = *mut GTimeZone; +pub type GTimeZone_listautoptr = *mut GList; +pub type GTimeZone_slistautoptr = *mut GSList; +pub type GTimeZone_queueautoptr = *mut GQueue; +pub type GTree_autoptr = *mut GTree; +pub type GTree_listautoptr = *mut GList; +pub type GTree_slistautoptr = *mut GSList; +pub type GTree_queueautoptr = *mut GQueue; +pub type GVariant_autoptr = *mut GVariant; +pub type GVariant_listautoptr = *mut GList; +pub type GVariant_slistautoptr = *mut GSList; +pub type GVariant_queueautoptr = *mut GQueue; +pub type GVariantBuilder_autoptr = *mut GVariantBuilder; +pub type GVariantBuilder_listautoptr = *mut GList; +pub type GVariantBuilder_slistautoptr = *mut GSList; +pub type GVariantBuilder_queueautoptr = *mut GQueue; +pub type GVariantIter_autoptr = *mut GVariantIter; +pub type GVariantIter_listautoptr = *mut GList; +pub type GVariantIter_slistautoptr = *mut GSList; +pub type GVariantIter_queueautoptr = *mut GQueue; +pub type GVariantDict_autoptr = *mut GVariantDict; +pub type GVariantDict_listautoptr = *mut GList; +pub type GVariantDict_slistautoptr = *mut GSList; +pub type GVariantDict_queueautoptr = *mut GQueue; +pub type GVariantType_autoptr = *mut GVariantType; +pub type GVariantType_listautoptr = *mut GList; +pub type GVariantType_slistautoptr = *mut GSList; +pub type GVariantType_queueautoptr = *mut GQueue; +pub type GRefString_autoptr = *mut GRefString; +pub type GRefString_listautoptr = *mut GList; +pub type GRefString_slistautoptr = *mut GSList; +pub type GRefString_queueautoptr = *mut GQueue; +pub type GUri_autoptr = *mut GUri; +pub type GUri_listautoptr = *mut GList; +pub type GUri_slistautoptr = *mut GSList; +pub type GUri_queueautoptr = *mut GQueue; +pub type GPathBuf_autoptr = *mut GPathBuf; +pub type GPathBuf_listautoptr = *mut GList; +pub type GPathBuf_slistautoptr = *mut GSList; +pub type GPathBuf_queueautoptr = *mut GQueue; +extern "C" { + pub fn renameat( + arg1: ::std::os::raw::c_int, + arg2: *const ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + arg4: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn renamex_np( + arg1: *const ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + arg3: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn renameatx_np( + arg1: ::std::os::raw::c_int, + arg2: *const ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + arg4: *const ::std::os::raw::c_char, + arg5: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +pub type fpos_t = __darwin_off_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __sbuf { + pub _base: *mut ::std::os::raw::c_uchar, + pub _size: ::std::os::raw::c_int, +} +#[test] +fn bindgen_test_layout___sbuf() { + const UNINIT: ::std::mem::MaybeUninit<__sbuf> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<__sbuf>(), + 16usize, + concat!("Size of: ", stringify!(__sbuf)) + ); + assert_eq!( + ::std::mem::align_of::<__sbuf>(), + 8usize, + concat!("Alignment of ", stringify!(__sbuf)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._base) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__sbuf), + "::", + stringify!(_base) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._size) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(__sbuf), + "::", + stringify!(_size) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __sFILEX { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __sFILE { + pub _p: *mut ::std::os::raw::c_uchar, + pub _r: ::std::os::raw::c_int, + pub _w: ::std::os::raw::c_int, + pub _flags: ::std::os::raw::c_short, + pub _file: ::std::os::raw::c_short, + pub _bf: __sbuf, + pub _lbfsize: ::std::os::raw::c_int, + pub _cookie: *mut ::std::os::raw::c_void, + pub _close: ::std::option::Option< + unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int, + >, + pub _read: ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut ::std::os::raw::c_void, + arg2: *mut ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int, + >, + pub _seek: ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut ::std::os::raw::c_void, + arg2: fpos_t, + arg3: ::std::os::raw::c_int, + ) -> fpos_t, + >, + pub _write: ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut ::std::os::raw::c_void, + arg2: *const ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int, + >, + pub _ub: __sbuf, + pub _extra: *mut __sFILEX, + pub _ur: ::std::os::raw::c_int, + pub _ubuf: [::std::os::raw::c_uchar; 3usize], + pub _nbuf: [::std::os::raw::c_uchar; 1usize], + pub _lb: __sbuf, + pub _blksize: ::std::os::raw::c_int, + pub _offset: fpos_t, +} +#[test] +fn bindgen_test_layout___sFILE() { + const UNINIT: ::std::mem::MaybeUninit<__sFILE> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<__sFILE>(), + 152usize, + concat!("Size of: ", stringify!(__sFILE)) + ); + assert_eq!( + ::std::mem::align_of::<__sFILE>(), + 8usize, + concat!("Alignment of ", stringify!(__sFILE)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._p) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__sFILE), + "::", + stringify!(_p) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._r) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(__sFILE), + "::", + stringify!(_r) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._w) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(__sFILE), + "::", + stringify!(_w) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._flags) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(__sFILE), + "::", + stringify!(_flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._file) as usize - ptr as usize }, + 18usize, + concat!( + "Offset of field: ", + stringify!(__sFILE), + "::", + stringify!(_file) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._bf) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(__sFILE), + "::", + stringify!(_bf) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._lbfsize) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(__sFILE), + "::", + stringify!(_lbfsize) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._cookie) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(__sFILE), + "::", + stringify!(_cookie) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._close) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(__sFILE), + "::", + stringify!(_close) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._read) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(__sFILE), + "::", + stringify!(_read) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._seek) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(__sFILE), + "::", + stringify!(_seek) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._write) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(__sFILE), + "::", + stringify!(_write) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._ub) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(__sFILE), + "::", + stringify!(_ub) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._extra) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(__sFILE), + "::", + stringify!(_extra) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._ur) as usize - ptr as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(__sFILE), + "::", + stringify!(_ur) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._ubuf) as usize - ptr as usize }, + 116usize, + concat!( + "Offset of field: ", + stringify!(__sFILE), + "::", + stringify!(_ubuf) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._nbuf) as usize - ptr as usize }, + 119usize, + concat!( + "Offset of field: ", + stringify!(__sFILE), + "::", + stringify!(_nbuf) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._lb) as usize - ptr as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(__sFILE), + "::", + stringify!(_lb) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._blksize) as usize - ptr as usize }, + 136usize, + concat!( + "Offset of field: ", + stringify!(__sFILE), + "::", + stringify!(_blksize) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._offset) as usize - ptr as usize }, + 144usize, + concat!( + "Offset of field: ", + stringify!(__sFILE), + "::", + stringify!(_offset) + ) + ); +} +pub type FILE = __sFILE; +extern "C" { + pub static mut __stdinp: *mut FILE; +} +extern "C" { + pub static mut __stdoutp: *mut FILE; +} +extern "C" { + pub static mut __stderrp: *mut FILE; +} +extern "C" { + pub fn clearerr(arg1: *mut FILE); +} +extern "C" { + pub fn fclose(arg1: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn feof(arg1: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ferror(arg1: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fflush(arg1: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fgetc(arg1: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fgetpos(arg1: *mut FILE, arg2: *mut fpos_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fgets( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: *mut FILE, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn fopen( + __filename: *const ::std::os::raw::c_char, + __mode: *const ::std::os::raw::c_char, + ) -> *mut FILE; +} +extern "C" { + pub fn fprintf( + arg1: *mut FILE, + arg2: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fputc(arg1: ::std::os::raw::c_int, arg2: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fputs(arg1: *const ::std::os::raw::c_char, arg2: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fread( + __ptr: *mut ::std::os::raw::c_void, + __size: ::std::os::raw::c_ulong, + __nitems: ::std::os::raw::c_ulong, + __stream: *mut FILE, + ) -> ::std::os::raw::c_ulong; +} +extern "C" { + pub fn freopen( + arg1: *const ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + arg3: *mut FILE, + ) -> *mut FILE; +} +extern "C" { + pub fn fscanf( + arg1: *mut FILE, + arg2: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fseek( + arg1: *mut FILE, + arg2: ::std::os::raw::c_long, + arg3: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fsetpos(arg1: *mut FILE, arg2: *const fpos_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ftell(arg1: *mut FILE) -> ::std::os::raw::c_long; +} +extern "C" { + pub fn fwrite( + __ptr: *const ::std::os::raw::c_void, + __size: ::std::os::raw::c_ulong, + __nitems: ::std::os::raw::c_ulong, + __stream: *mut FILE, + ) -> ::std::os::raw::c_ulong; +} +extern "C" { + pub fn getc(arg1: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn getchar() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn gets(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn perror(arg1: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn printf(arg1: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn putc(arg1: ::std::os::raw::c_int, arg2: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn putchar(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn puts(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn remove(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn rename( + __old: *const ::std::os::raw::c_char, + __new: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn rewind(arg1: *mut FILE); +} +extern "C" { + pub fn scanf(arg1: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn setbuf(arg1: *mut FILE, arg2: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn setvbuf( + arg1: *mut FILE, + arg2: *mut ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + arg4: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sprintf( + arg1: *mut ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sscanf( + arg1: *const ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tmpfile() -> *mut FILE; +} +extern "C" { + pub fn tmpnam(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn ungetc(arg1: ::std::os::raw::c_int, arg2: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn vfprintf( + arg1: *mut FILE, + arg2: *const ::std::os::raw::c_char, + arg3: __builtin_va_list, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn vprintf( + arg1: *const ::std::os::raw::c_char, + arg2: __builtin_va_list, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn vsprintf( + arg1: *mut ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + arg3: __builtin_va_list, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ctermid(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn fdopen(arg1: ::std::os::raw::c_int, arg2: *const ::std::os::raw::c_char) -> *mut FILE; +} +extern "C" { + pub fn fileno(arg1: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn pclose(arg1: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn popen( + arg1: *const ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + ) -> *mut FILE; +} +extern "C" { + pub fn __srget(arg1: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn __svfscanf( + arg1: *mut FILE, + arg2: *const ::std::os::raw::c_char, + arg3: va_list, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn __swbuf(arg1: ::std::os::raw::c_int, arg2: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn flockfile(arg1: *mut FILE); +} +extern "C" { + pub fn ftrylockfile(arg1: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn funlockfile(arg1: *mut FILE); +} +extern "C" { + pub fn getc_unlocked(arg1: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn getchar_unlocked() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn putc_unlocked(arg1: ::std::os::raw::c_int, arg2: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn putchar_unlocked(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn getw(arg1: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn putw(arg1: ::std::os::raw::c_int, arg2: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tempnam( + __dir: *const ::std::os::raw::c_char, + __prefix: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn fseeko( + __stream: *mut FILE, + __offset: off_t, + __whence: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ftello(__stream: *mut FILE) -> off_t; +} +extern "C" { + pub fn snprintf( + __str: *mut ::std::os::raw::c_char, + __size: ::std::os::raw::c_ulong, + __format: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn vfscanf( + __stream: *mut FILE, + __format: *const ::std::os::raw::c_char, + arg1: __builtin_va_list, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn vscanf( + __format: *const ::std::os::raw::c_char, + arg1: __builtin_va_list, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn vsnprintf( + __str: *mut ::std::os::raw::c_char, + __size: ::std::os::raw::c_ulong, + __format: *const ::std::os::raw::c_char, + arg1: __builtin_va_list, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn vsscanf( + __str: *const ::std::os::raw::c_char, + __format: *const ::std::os::raw::c_char, + arg1: __builtin_va_list, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn dprintf( + arg1: ::std::os::raw::c_int, + arg2: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn vdprintf( + arg1: ::std::os::raw::c_int, + arg2: *const ::std::os::raw::c_char, + arg3: va_list, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn getdelim( + __linep: *mut *mut ::std::os::raw::c_char, + __linecapp: *mut usize, + __delimiter: ::std::os::raw::c_int, + __stream: *mut FILE, + ) -> isize; +} +extern "C" { + pub fn getline( + __linep: *mut *mut ::std::os::raw::c_char, + __linecapp: *mut usize, + __stream: *mut FILE, + ) -> isize; +} +extern "C" { + pub fn fmemopen( + __buf: *mut ::std::os::raw::c_void, + __size: usize, + __mode: *const ::std::os::raw::c_char, + ) -> *mut FILE; +} +extern "C" { + pub fn open_memstream( + __bufp: *mut *mut ::std::os::raw::c_char, + __sizep: *mut usize, + ) -> *mut FILE; +} +extern "C" { + pub static sys_nerr: ::std::os::raw::c_int; +} +extern "C" { + pub static sys_errlist: [*const ::std::os::raw::c_char; 0usize]; +} +extern "C" { + pub fn asprintf( + arg1: *mut *mut ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ctermid_r(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn fgetln(arg1: *mut FILE, arg2: *mut usize) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn fmtcheck( + arg1: *const ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn fpurge(arg1: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn setbuffer( + arg1: *mut FILE, + arg2: *mut ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn setlinebuf(arg1: *mut FILE) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn vasprintf( + arg1: *mut *mut ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + arg3: va_list, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn funopen( + arg1: *const ::std::os::raw::c_void, + arg2: ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut ::std::os::raw::c_void, + arg2: *mut ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int, + >, + arg3: ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut ::std::os::raw::c_void, + arg2: *const ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int, + >, + arg4: ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut ::std::os::raw::c_void, + arg2: fpos_t, + arg3: ::std::os::raw::c_int, + ) -> fpos_t, + >, + arg5: ::std::option::Option< + unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int, + >, + ) -> *mut FILE; +} +extern "C" { + pub fn __sprintf_chk( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: usize, + arg4: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn __snprintf_chk( + arg1: *mut ::std::os::raw::c_char, + arg2: usize, + arg3: ::std::os::raw::c_int, + arg4: usize, + arg5: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn __vsprintf_chk( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: usize, + arg4: *const ::std::os::raw::c_char, + arg5: va_list, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn __vsnprintf_chk( + arg1: *mut ::std::os::raw::c_char, + arg2: usize, + arg3: ::std::os::raw::c_int, + arg4: usize, + arg5: *const ::std::os::raw::c_char, + arg6: va_list, + ) -> ::std::os::raw::c_int; +} +pub const ws_log_level_LOG_LEVEL_NONE: ws_log_level = 0; +pub const ws_log_level_LOG_LEVEL_NOISY: ws_log_level = 1; +pub const ws_log_level_LOG_LEVEL_DEBUG: ws_log_level = 2; +pub const ws_log_level_LOG_LEVEL_INFO: ws_log_level = 3; +pub const ws_log_level_LOG_LEVEL_MESSAGE: ws_log_level = 4; +pub const ws_log_level_LOG_LEVEL_WARNING: ws_log_level = 5; +pub const ws_log_level_LOG_LEVEL_CRITICAL: ws_log_level = 6; +pub const ws_log_level_LOG_LEVEL_ERROR: ws_log_level = 7; +pub const ws_log_level_LOG_LEVEL_ECHO: ws_log_level = 8; +pub const ws_log_level__LOG_LEVEL_LAST: ws_log_level = 9; +pub type ws_log_level = ::std::os::raw::c_uint; +pub const ws_log_console_open_pref_LOG_CONSOLE_OPEN_NEVER: ws_log_console_open_pref = 0; +pub const ws_log_console_open_pref_LOG_CONSOLE_OPEN_AUTO: ws_log_console_open_pref = 1; +pub const ws_log_console_open_pref_LOG_CONSOLE_OPEN_ALWAYS: ws_log_console_open_pref = 2; +pub type ws_log_console_open_pref = ::std::os::raw::c_uint; +extern "C" { + pub static mut ws_log_console_open: ws_log_console_open_pref; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ws_log_manifest_t { + pub tstamp_secs: tm, + pub nanosecs: ::std::os::raw::c_long, + pub pid: intmax_t, +} +#[test] +fn bindgen_test_layout_ws_log_manifest_t() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 72usize, + concat!("Size of: ", stringify!(ws_log_manifest_t)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ws_log_manifest_t)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tstamp_secs) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ws_log_manifest_t), + "::", + stringify!(tstamp_secs) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).nanosecs) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(ws_log_manifest_t), + "::", + stringify!(nanosecs) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pid) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(ws_log_manifest_t), + "::", + stringify!(pid) + ) + ); +} +pub type ws_log_writer_cb = ::std::option::Option< + unsafe extern "C" fn( + domain: *const ::std::os::raw::c_char, + level: ws_log_level, + file: *const ::std::os::raw::c_char, + line: ::std::os::raw::c_long, + func: *const ::std::os::raw::c_char, + fatal_msg: *const ::std::os::raw::c_char, + mft: *mut ws_log_manifest_t, + user_format: *const ::std::os::raw::c_char, + user_ap: va_list, + user_data: *mut ::std::os::raw::c_void, + ), +>; +pub type ws_log_writer_free_data_cb = + ::std::option::Option; +extern "C" { + pub fn ws_log_file_writer( + fp: *mut FILE, + domain: *const ::std::os::raw::c_char, + level: ws_log_level, + file: *const ::std::os::raw::c_char, + line: ::std::os::raw::c_long, + func: *const ::std::os::raw::c_char, + mft: *mut ws_log_manifest_t, + user_format: *const ::std::os::raw::c_char, + user_ap: va_list, + ); +} +extern "C" { + pub fn ws_log_console_writer( + domain: *const ::std::os::raw::c_char, + level: ws_log_level, + file: *const ::std::os::raw::c_char, + line: ::std::os::raw::c_long, + func: *const ::std::os::raw::c_char, + mft: *mut ws_log_manifest_t, + user_format: *const ::std::os::raw::c_char, + user_ap: va_list, + ); +} +extern "C" { + pub fn ws_log_console_writer_set_use_stdout(use_stdout: bool); +} +extern "C" { + pub fn ws_log_level_to_string(level: ws_log_level) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn ws_log_msg_is_active(domain: *const ::std::os::raw::c_char, level: ws_log_level) + -> bool; +} +extern "C" { + pub fn ws_log_get_level() -> ws_log_level; +} +extern "C" { + pub fn ws_log_set_level(level: ws_log_level) -> ws_log_level; +} +extern "C" { + pub fn ws_log_set_level_str(str_level: *const ::std::os::raw::c_char) -> ws_log_level; +} +extern "C" { + pub fn ws_log_set_domain_filter(domain_filter: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn ws_log_set_fatal_domain_filter(domain_filter: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn ws_log_set_debug_filter(str_filter: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn ws_log_set_noisy_filter(str_filter: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn ws_log_set_fatal_level(level: ws_log_level) -> ws_log_level; +} +extern "C" { + pub fn ws_log_set_fatal_level_str(str_level: *const ::std::os::raw::c_char) -> ws_log_level; +} +extern "C" { + pub fn ws_log_set_writer(writer: ws_log_writer_cb); +} +extern "C" { + pub fn ws_log_set_writer_with_data( + writer: ws_log_writer_cb, + user_data: *mut ::std::os::raw::c_void, + free_user_data: ws_log_writer_free_data_cb, + ); +} +extern "C" { + pub fn ws_log_parse_args( + argc_ptr: *mut ::std::os::raw::c_int, + argv: *mut *mut ::std::os::raw::c_char, + vcmdarg_err: ::std::option::Option< + unsafe extern "C" fn(arg1: *const ::std::os::raw::c_char, ap: va_list), + >, + exit_failure: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ws_log_init( + progname: *const ::std::os::raw::c_char, + vcmdarg_err: ::std::option::Option< + unsafe extern "C" fn(arg1: *const ::std::os::raw::c_char, ap: va_list), + >, + ); +} +extern "C" { + pub fn ws_log_init_with_writer( + progname: *const ::std::os::raw::c_char, + writer: ws_log_writer_cb, + vcmdarg_err: ::std::option::Option< + unsafe extern "C" fn(arg1: *const ::std::os::raw::c_char, ap: va_list), + >, + ); +} +extern "C" { + pub fn ws_log_init_with_writer_and_data( + progname: *const ::std::os::raw::c_char, + writer: ws_log_writer_cb, + user_data: *mut ::std::os::raw::c_void, + free_user_data: ws_log_writer_free_data_cb, + vcmdarg_err: ::std::option::Option< + unsafe extern "C" fn(arg1: *const ::std::os::raw::c_char, ap: va_list), + >, + ); +} +extern "C" { + pub fn ws_log( + domain: *const ::std::os::raw::c_char, + level: ws_log_level, + format: *const ::std::os::raw::c_char, + ... + ); +} +extern "C" { + pub fn ws_logv( + domain: *const ::std::os::raw::c_char, + level: ws_log_level, + format: *const ::std::os::raw::c_char, + ap: va_list, + ); +} +extern "C" { + pub fn ws_log_full( + domain: *const ::std::os::raw::c_char, + level: ws_log_level, + file: *const ::std::os::raw::c_char, + line: ::std::os::raw::c_long, + func: *const ::std::os::raw::c_char, + format: *const ::std::os::raw::c_char, + ... + ); +} +extern "C" { + pub fn ws_logv_full( + domain: *const ::std::os::raw::c_char, + level: ws_log_level, + file: *const ::std::os::raw::c_char, + line: ::std::os::raw::c_long, + func: *const ::std::os::raw::c_char, + format: *const ::std::os::raw::c_char, + ap: va_list, + ); +} +extern "C" { + pub fn ws_log_fatal_full( + domain: *const ::std::os::raw::c_char, + level: ws_log_level, + file: *const ::std::os::raw::c_char, + line: ::std::os::raw::c_long, + func: *const ::std::os::raw::c_char, + format: *const ::std::os::raw::c_char, + ... + ); +} +extern "C" { + pub fn ws_log_utf8_full( + domain: *const ::std::os::raw::c_char, + level: ws_log_level, + file: *const ::std::os::raw::c_char, + line: ::std::os::raw::c_long, + func: *const ::std::os::raw::c_char, + string: *const ::std::os::raw::c_char, + length: isize, + endptr: *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn ws_log_buffer_full( + domain: *const ::std::os::raw::c_char, + level: ws_log_level, + file: *const ::std::os::raw::c_char, + line: ::std::os::raw::c_long, + func: *const ::std::os::raw::c_char, + buffer: *const u8, + size: usize, + max_bytes_len: usize, + msg: *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn ws_log_write_always_full( + domain: *const ::std::os::raw::c_char, + level: ws_log_level, + file: *const ::std::os::raw::c_char, + line: ::std::os::raw::c_long, + func: *const ::std::os::raw::c_char, + format: *const ::std::os::raw::c_char, + ... + ); +} +extern "C" { + pub fn ws_log_add_custom_file(fp: *mut FILE); +} +extern "C" { + pub fn ws_log_print_usage(fp: *mut FILE); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _wmem_allocator_t { + _unused: [u8; 0], +} +pub type wmem_allocator_t = _wmem_allocator_t; +pub const _wmem_allocator_type_t_WMEM_ALLOCATOR_SIMPLE: _wmem_allocator_type_t = 0; +pub const _wmem_allocator_type_t_WMEM_ALLOCATOR_BLOCK: _wmem_allocator_type_t = 1; +pub const _wmem_allocator_type_t_WMEM_ALLOCATOR_STRICT: _wmem_allocator_type_t = 2; +pub const _wmem_allocator_type_t_WMEM_ALLOCATOR_BLOCK_FAST: _wmem_allocator_type_t = 3; +pub type _wmem_allocator_type_t = ::std::os::raw::c_uint; +pub use self::_wmem_allocator_type_t as wmem_allocator_type_t; +extern "C" { + pub fn wmem_alloc(allocator: *mut wmem_allocator_t, size: usize) + -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn wmem_alloc0( + allocator: *mut wmem_allocator_t, + size: usize, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn wmem_free(allocator: *mut wmem_allocator_t, ptr: *mut ::std::os::raw::c_void); +} +extern "C" { + pub fn wmem_realloc( + allocator: *mut wmem_allocator_t, + ptr: *mut ::std::os::raw::c_void, + size: usize, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn wmem_free_all(allocator: *mut wmem_allocator_t); +} +extern "C" { + pub fn wmem_gc(allocator: *mut wmem_allocator_t); +} +extern "C" { + pub fn wmem_destroy_allocator(allocator: *mut wmem_allocator_t); +} +extern "C" { + pub fn wmem_allocator_new(type_: wmem_allocator_type_t) -> *mut wmem_allocator_t; +} +extern "C" { + pub fn wmem_init(); +} +extern "C" { + pub fn wmem_cleanup(); +} +extern "C" { + pub fn wmem_enter_scope(allocator: *mut wmem_allocator_t); +} +extern "C" { + pub fn wmem_leave_scope(allocator: *mut wmem_allocator_t); +} +extern "C" { + pub fn wmem_in_scope(allocator: *mut wmem_allocator_t) -> bool; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _wmem_array_t { + _unused: [u8; 0], +} +pub type wmem_array_t = _wmem_array_t; +extern "C" { + pub fn wmem_array_sized_new( + allocator: *mut wmem_allocator_t, + elem_size: usize, + alloc_count: ::std::os::raw::c_uint, + ) -> *mut wmem_array_t; +} +extern "C" { + pub fn wmem_array_new(allocator: *mut wmem_allocator_t, elem_size: usize) -> *mut wmem_array_t; +} +extern "C" { + pub fn wmem_array_grow(array: *mut wmem_array_t, to_add: ::std::os::raw::c_uint); +} +extern "C" { + pub fn wmem_array_set_null_terminator(array: *mut wmem_array_t); +} +extern "C" { + pub fn wmem_array_bzero(array: *mut wmem_array_t); +} +extern "C" { + pub fn wmem_array_append( + array: *mut wmem_array_t, + in_: *const ::std::os::raw::c_void, + count: ::std::os::raw::c_uint, + ); +} +extern "C" { + pub fn wmem_array_index( + array: *mut wmem_array_t, + array_index: ::std::os::raw::c_uint, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn wmem_array_try_index( + array: *mut wmem_array_t, + array_index: ::std::os::raw::c_uint, + val: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wmem_array_sort( + array: *mut wmem_array_t, + compar: ::std::option::Option< + unsafe extern "C" fn( + arg1: *const ::std::os::raw::c_void, + arg2: *const ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int, + >, + ); +} +extern "C" { + pub fn wmem_array_get_raw(array: *mut wmem_array_t) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn wmem_array_get_count(array: *mut wmem_array_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn wmem_array_finalize(array: *mut wmem_array_t) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn wmem_destroy_array(array: *mut wmem_array_t); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _wmem_list_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _wmem_list_frame_t { + _unused: [u8; 0], +} +pub type wmem_list_t = _wmem_list_t; +pub type wmem_list_frame_t = _wmem_list_frame_t; +extern "C" { + pub fn wmem_list_count(list: *const wmem_list_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn wmem_list_head(list: *const wmem_list_t) -> *mut wmem_list_frame_t; +} +extern "C" { + pub fn wmem_list_tail(list: *const wmem_list_t) -> *mut wmem_list_frame_t; +} +extern "C" { + pub fn wmem_list_frame_next(frame: *const wmem_list_frame_t) -> *mut wmem_list_frame_t; +} +extern "C" { + pub fn wmem_list_frame_prev(frame: *const wmem_list_frame_t) -> *mut wmem_list_frame_t; +} +extern "C" { + pub fn wmem_list_frame_data(frame: *const wmem_list_frame_t) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn wmem_list_remove(list: *mut wmem_list_t, data: *mut ::std::os::raw::c_void); +} +extern "C" { + pub fn wmem_list_remove_frame(list: *mut wmem_list_t, frame: *mut wmem_list_frame_t); +} +extern "C" { + pub fn wmem_list_find( + list: *mut wmem_list_t, + data: *const ::std::os::raw::c_void, + ) -> *mut wmem_list_frame_t; +} +extern "C" { + pub fn wmem_list_find_custom( + list: *mut wmem_list_t, + data: *const ::std::os::raw::c_void, + func: GCompareFunc, + ) -> *mut wmem_list_frame_t; +} +extern "C" { + pub fn wmem_list_prepend(list: *mut wmem_list_t, data: *mut ::std::os::raw::c_void); +} +extern "C" { + pub fn wmem_list_append(list: *mut wmem_list_t, data: *mut ::std::os::raw::c_void); +} +extern "C" { + pub fn wmem_list_insert_sorted( + list: *mut wmem_list_t, + data: *mut ::std::os::raw::c_void, + func: GCompareFunc, + ); +} +extern "C" { + pub fn wmem_list_append_sorted( + list: *mut wmem_list_t, + data: *mut ::std::os::raw::c_void, + func: GCompareFunc, + ); +} +extern "C" { + pub fn wmem_list_new(allocator: *mut wmem_allocator_t) -> *mut wmem_list_t; +} +extern "C" { + pub fn wmem_list_foreach( + list: *mut wmem_list_t, + foreach_func: GFunc, + user_data: *mut ::std::os::raw::c_void, + ); +} +extern "C" { + pub fn wmem_destroy_list(list: *mut wmem_list_t); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _wmem_map_t { + _unused: [u8; 0], +} +pub type wmem_map_t = _wmem_map_t; +extern "C" { + pub fn wmem_map_new( + allocator: *mut wmem_allocator_t, + hash_func: GHashFunc, + eql_func: GEqualFunc, + ) -> *mut wmem_map_t; +} +extern "C" { + pub fn wmem_map_new_autoreset( + metadata_scope: *mut wmem_allocator_t, + data_scope: *mut wmem_allocator_t, + hash_func: GHashFunc, + eql_func: GEqualFunc, + ) -> *mut wmem_map_t; +} +extern "C" { + pub fn wmem_map_insert( + map: *mut wmem_map_t, + key: *const ::std::os::raw::c_void, + value: *mut ::std::os::raw::c_void, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn wmem_map_contains(map: *mut wmem_map_t, key: *const ::std::os::raw::c_void) -> bool; +} +extern "C" { + pub fn wmem_map_lookup( + map: *mut wmem_map_t, + key: *const ::std::os::raw::c_void, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn wmem_map_lookup_extended( + map: *mut wmem_map_t, + key: *const ::std::os::raw::c_void, + orig_key: *mut *const ::std::os::raw::c_void, + value: *mut *mut ::std::os::raw::c_void, + ) -> bool; +} +extern "C" { + pub fn wmem_map_remove( + map: *mut wmem_map_t, + key: *const ::std::os::raw::c_void, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn wmem_map_steal(map: *mut wmem_map_t, key: *const ::std::os::raw::c_void) -> bool; +} +extern "C" { + pub fn wmem_map_get_keys( + list_allocator: *mut wmem_allocator_t, + map: *mut wmem_map_t, + ) -> *mut wmem_list_t; +} +extern "C" { + pub fn wmem_map_foreach( + map: *mut wmem_map_t, + foreach_func: GHFunc, + user_data: *mut ::std::os::raw::c_void, + ); +} +extern "C" { + pub fn wmem_map_foreach_remove( + map: *mut wmem_map_t, + foreach_func: GHRFunc, + user_data: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn wmem_map_size(map: *mut wmem_map_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn wmem_strong_hash(buf: *const u8, len: usize) -> u32; +} +extern "C" { + pub fn wmem_str_hash(key: *const ::std::os::raw::c_void) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn wmem_int64_hash(key: *const ::std::os::raw::c_void) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn wmem_double_hash(key: *const ::std::os::raw::c_void) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn wmem_memdup( + allocator: *mut wmem_allocator_t, + source: *const ::std::os::raw::c_void, + size: usize, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn wmem_compare_int( + a: *const ::std::os::raw::c_void, + b: *const ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wmem_compare_uint( + a: *const ::std::os::raw::c_void, + b: *const ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _wmem_multimap_t { + _unused: [u8; 0], +} +pub type wmem_multimap_t = _wmem_multimap_t; +extern "C" { + pub fn wmem_multimap_new( + allocator: *mut wmem_allocator_t, + hash_func: GHashFunc, + eql_func: GEqualFunc, + ) -> *mut wmem_multimap_t; +} +extern "C" { + pub fn wmem_multimap_new_autoreset( + metadata_scope: *mut wmem_allocator_t, + data_scope: *mut wmem_allocator_t, + hash_func: GHashFunc, + eql_func: GEqualFunc, + ) -> *mut wmem_multimap_t; +} +extern "C" { + pub fn wmem_multimap_get_keys( + list_allocator: *mut wmem_allocator_t, + map: *mut wmem_multimap_t, + ) -> *mut wmem_list_t; +} +extern "C" { + pub fn wmem_multimap_size(map: *mut wmem_multimap_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn wmem_multimap_count( + map: *mut wmem_multimap_t, + key: *const ::std::os::raw::c_void, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn wmem_multimap_insert32( + map: *mut wmem_multimap_t, + key: *const ::std::os::raw::c_void, + frame_num: u32, + value: *mut ::std::os::raw::c_void, + ) -> bool; +} +extern "C" { + pub fn wmem_multimap_lookup32( + map: *mut wmem_multimap_t, + key: *const ::std::os::raw::c_void, + frame_num: u32, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn wmem_multimap_lookup32_le( + map: *mut wmem_multimap_t, + key: *const ::std::os::raw::c_void, + frame_num: u32, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn wmem_multimap_remove32( + map: *mut wmem_multimap_t, + key: *const ::std::os::raw::c_void, + frame_num: u32, + ) -> *mut ::std::os::raw::c_void; +} +pub type wmem_queue_t = wmem_list_t; +pub type wmem_stack_t = wmem_list_t; +extern "C" { + pub fn wmem_stack_peek(stack: *const wmem_stack_t) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn wmem_stack_pop(stack: *mut wmem_stack_t) -> *mut ::std::os::raw::c_void; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _wmem_strbuf_t { + pub allocator: *mut wmem_allocator_t, + pub str_: *mut ::std::os::raw::c_char, + pub len: usize, + pub alloc_size: usize, +} +#[test] +fn bindgen_test_layout__wmem_strbuf_t() { + const UNINIT: ::std::mem::MaybeUninit<_wmem_strbuf_t> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_wmem_strbuf_t>(), + 32usize, + concat!("Size of: ", stringify!(_wmem_strbuf_t)) + ); + assert_eq!( + ::std::mem::align_of::<_wmem_strbuf_t>(), + 8usize, + concat!("Alignment of ", stringify!(_wmem_strbuf_t)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).allocator) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_wmem_strbuf_t), + "::", + stringify!(allocator) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).str_) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_wmem_strbuf_t), + "::", + stringify!(str_) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_wmem_strbuf_t), + "::", + stringify!(len) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).alloc_size) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_wmem_strbuf_t), + "::", + stringify!(alloc_size) + ) + ); +} +pub type wmem_strbuf_t = _wmem_strbuf_t; +extern "C" { + pub fn wmem_strbuf_new_sized( + allocator: *mut wmem_allocator_t, + alloc_size: usize, + ) -> *mut wmem_strbuf_t; +} +extern "C" { + pub fn wmem_strbuf_new( + allocator: *mut wmem_allocator_t, + str_: *const ::std::os::raw::c_char, + ) -> *mut wmem_strbuf_t; +} +extern "C" { + pub fn wmem_strbuf_new_len( + allocator: *mut wmem_allocator_t, + str_: *const ::std::os::raw::c_char, + len: usize, + ) -> *mut wmem_strbuf_t; +} +extern "C" { + pub fn wmem_strbuf_dup( + allocator: *mut wmem_allocator_t, + strbuf: *const wmem_strbuf_t, + ) -> *mut wmem_strbuf_t; +} +extern "C" { + pub fn wmem_strbuf_append(strbuf: *mut wmem_strbuf_t, str_: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn wmem_strbuf_append_len( + strbuf: *mut wmem_strbuf_t, + str_: *const ::std::os::raw::c_char, + append_len: usize, + ); +} +extern "C" { + pub fn wmem_strbuf_append_printf( + strbuf: *mut wmem_strbuf_t, + format: *const ::std::os::raw::c_char, + ... + ); +} +extern "C" { + pub fn wmem_strbuf_append_vprintf( + strbuf: *mut wmem_strbuf_t, + fmt: *const ::std::os::raw::c_char, + ap: va_list, + ); +} +extern "C" { + pub fn wmem_strbuf_append_c(strbuf: *mut wmem_strbuf_t, c: ::std::os::raw::c_char); +} +extern "C" { + pub fn wmem_strbuf_append_c_count( + strbuf: *mut wmem_strbuf_t, + c: ::std::os::raw::c_char, + count: usize, + ); +} +extern "C" { + pub fn wmem_strbuf_append_unichar(strbuf: *mut wmem_strbuf_t, c: gunichar); +} +extern "C" { + pub fn wmem_strbuf_append_unichar_validated(strbuf: *mut wmem_strbuf_t, c: gunichar); +} +extern "C" { + pub fn wmem_strbuf_append_hex(strbuf: *mut wmem_strbuf_t, arg1: u8); +} +extern "C" { + pub fn wmem_strbuf_append_hex_unichar(strbuf: *mut wmem_strbuf_t, arg1: gunichar) -> usize; +} +extern "C" { + pub fn wmem_strbuf_truncate(strbuf: *mut wmem_strbuf_t, len: usize); +} +extern "C" { + pub fn wmem_strbuf_get_str(strbuf: *const wmem_strbuf_t) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn wmem_strbuf_get_len(strbuf: *const wmem_strbuf_t) -> usize; +} +extern "C" { + pub fn wmem_strbuf_strcmp( + sb1: *const wmem_strbuf_t, + sb2: *const wmem_strbuf_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wmem_strbuf_strstr( + haystack: *const wmem_strbuf_t, + needle: *const wmem_strbuf_t, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn wmem_strbuf_finalize(strbuf: *mut wmem_strbuf_t) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn wmem_strbuf_destroy(strbuf: *mut wmem_strbuf_t); +} +extern "C" { + pub fn wmem_strbuf_utf8_validate( + strbuf: *mut wmem_strbuf_t, + endptr: *mut *const ::std::os::raw::c_char, + ) -> bool; +} +extern "C" { + pub fn wmem_strbuf_utf8_make_valid(strbuf: *mut wmem_strbuf_t); +} +extern "C" { + pub fn wmem_strdup( + allocator: *mut wmem_allocator_t, + src: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn wmem_strndup( + allocator: *mut wmem_allocator_t, + src: *const ::std::os::raw::c_char, + len: usize, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn wmem_strdup_printf( + allocator: *mut wmem_allocator_t, + fmt: *const ::std::os::raw::c_char, + ... + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn wmem_strdup_vprintf( + allocator: *mut wmem_allocator_t, + fmt: *const ::std::os::raw::c_char, + ap: va_list, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn ws_memmem( + haystack: *const ::std::os::raw::c_void, + haystack_len: usize, + needle: *const ::std::os::raw::c_void, + needle_len: usize, + ) -> *const u8; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _wmem_tree_t { + _unused: [u8; 0], +} +pub type wmem_tree_t = _wmem_tree_t; +extern "C" { + pub fn wmem_tree_new(allocator: *mut wmem_allocator_t) -> *mut wmem_tree_t; +} +extern "C" { + pub fn wmem_tree_new_autoreset( + metadata_scope: *mut wmem_allocator_t, + data_scope: *mut wmem_allocator_t, + ) -> *mut wmem_tree_t; +} +extern "C" { + pub fn wmem_tree_destroy(tree: *mut wmem_tree_t, free_keys: bool, free_values: bool); +} +extern "C" { + pub fn wmem_tree_is_empty(tree: *mut wmem_tree_t) -> bool; +} +extern "C" { + pub fn wmem_tree_count(tree: *mut wmem_tree_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn wmem_tree_insert32(tree: *mut wmem_tree_t, key: u32, data: *mut ::std::os::raw::c_void); +} +extern "C" { + pub fn wmem_tree_contains32(tree: *mut wmem_tree_t, key: u32) -> bool; +} +extern "C" { + pub fn wmem_tree_lookup32(tree: *mut wmem_tree_t, key: u32) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn wmem_tree_lookup32_le(tree: *mut wmem_tree_t, key: u32) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn wmem_tree_remove32(tree: *mut wmem_tree_t, key: u32) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn wmem_tree_insert_string( + tree: *mut wmem_tree_t, + key: *const ::std::os::raw::c_char, + data: *mut ::std::os::raw::c_void, + flags: u32, + ); +} +extern "C" { + pub fn wmem_tree_lookup_string( + tree: *mut wmem_tree_t, + key: *const ::std::os::raw::c_char, + flags: u32, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn wmem_tree_remove_string( + tree: *mut wmem_tree_t, + key: *const ::std::os::raw::c_char, + flags: u32, + ) -> *mut ::std::os::raw::c_void; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _wmem_tree_key_t { + pub length: u32, + pub key: *mut u32, +} +#[test] +fn bindgen_test_layout__wmem_tree_key_t() { + const UNINIT: ::std::mem::MaybeUninit<_wmem_tree_key_t> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_wmem_tree_key_t>(), + 16usize, + concat!("Size of: ", stringify!(_wmem_tree_key_t)) + ); + assert_eq!( + ::std::mem::align_of::<_wmem_tree_key_t>(), + 8usize, + concat!("Alignment of ", stringify!(_wmem_tree_key_t)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_wmem_tree_key_t), + "::", + stringify!(length) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_wmem_tree_key_t), + "::", + stringify!(key) + ) + ); +} +pub type wmem_tree_key_t = _wmem_tree_key_t; +extern "C" { + pub fn wmem_tree_insert32_array( + tree: *mut wmem_tree_t, + key: *mut wmem_tree_key_t, + data: *mut ::std::os::raw::c_void, + ); +} +extern "C" { + pub fn wmem_tree_lookup32_array( + tree: *mut wmem_tree_t, + key: *mut wmem_tree_key_t, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn wmem_tree_lookup32_array_le( + tree: *mut wmem_tree_t, + key: *mut wmem_tree_key_t, + ) -> *mut ::std::os::raw::c_void; +} +pub type wmem_foreach_func = ::std::option::Option< + unsafe extern "C" fn( + key: *const ::std::os::raw::c_void, + value: *mut ::std::os::raw::c_void, + userdata: *mut ::std::os::raw::c_void, + ) -> bool, +>; +pub type wmem_printer_func = + ::std::option::Option; +extern "C" { + pub fn wmem_tree_foreach( + tree: *mut wmem_tree_t, + callback: wmem_foreach_func, + user_data: *mut ::std::os::raw::c_void, + ) -> bool; +} +extern "C" { + pub fn wmem_print_tree( + tree: *mut wmem_tree_t, + key_printer: wmem_printer_func, + data_printer: wmem_printer_func, + ); +} +pub type wmem_itree_t = _wmem_tree_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _wmem_range_t { + pub low: u64, + pub high: u64, + pub max_edge: u64, +} +#[test] +fn bindgen_test_layout__wmem_range_t() { + const UNINIT: ::std::mem::MaybeUninit<_wmem_range_t> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_wmem_range_t>(), + 24usize, + concat!("Size of: ", stringify!(_wmem_range_t)) + ); + assert_eq!( + ::std::mem::align_of::<_wmem_range_t>(), + 8usize, + concat!("Alignment of ", stringify!(_wmem_range_t)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).low) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_wmem_range_t), + "::", + stringify!(low) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).high) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_wmem_range_t), + "::", + stringify!(high) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).max_edge) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_wmem_range_t), + "::", + stringify!(max_edge) + ) + ); +} +extern "C" { + pub fn wmem_itree_new(allocator: *mut wmem_allocator_t) -> *mut wmem_itree_t; +} +extern "C" { + pub fn wmem_itree_is_empty(tree: *mut wmem_itree_t) -> bool; +} +extern "C" { + pub fn wmem_itree_insert( + tree: *mut wmem_itree_t, + low: u64, + high: u64, + data: *mut ::std::os::raw::c_void, + ); +} +extern "C" { + pub fn wmem_itree_find_intervals( + tree: *mut wmem_itree_t, + allocator: *mut wmem_allocator_t, + low: u64, + high: u64, + ) -> *mut wmem_list_t; +} +extern "C" { + pub fn wmem_print_itree(tree: *mut wmem_itree_t); +} +pub const _wmem_cb_event_t_WMEM_CB_FREE_EVENT: _wmem_cb_event_t = 0; +pub const _wmem_cb_event_t_WMEM_CB_DESTROY_EVENT: _wmem_cb_event_t = 1; +pub type _wmem_cb_event_t = ::std::os::raw::c_uint; +pub use self::_wmem_cb_event_t as wmem_cb_event_t; +pub type wmem_user_cb_t = ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut wmem_allocator_t, + arg2: wmem_cb_event_t, + arg3: *mut ::std::os::raw::c_void, + ) -> bool, +>; +extern "C" { + pub fn wmem_register_callback( + allocator: *mut wmem_allocator_t, + callback: wmem_user_cb_t, + user_data: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn wmem_unregister_callback(allocator: *mut wmem_allocator_t, id: ::std::os::raw::c_uint); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Buffer { + pub data: *mut u8, + pub allocated: usize, + pub start: usize, + pub first_free: usize, +} +#[test] +fn bindgen_test_layout_Buffer() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(Buffer)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(Buffer)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Buffer), + "::", + stringify!(data) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).allocated) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(Buffer), + "::", + stringify!(allocated) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(Buffer), + "::", + stringify!(start) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).first_free) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(Buffer), + "::", + stringify!(first_free) + ) + ); +} +extern "C" { + pub fn ws_buffer_init(buffer: *mut Buffer, space: usize); +} +extern "C" { + pub fn ws_buffer_free(buffer: *mut Buffer); +} +extern "C" { + pub fn ws_buffer_assure_space(buffer: *mut Buffer, space: usize); +} +extern "C" { + pub fn ws_buffer_append(buffer: *mut Buffer, from: *mut u8, bytes: usize); +} +extern "C" { + pub fn ws_buffer_remove_start(buffer: *mut Buffer, bytes: usize); +} +extern "C" { + pub fn ws_buffer_cleanup(); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nstime_t { + pub secs: time_t, + pub nsecs: ::std::os::raw::c_int, +} +#[test] +fn bindgen_test_layout_nstime_t() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(nstime_t)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(nstime_t)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).secs) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(nstime_t), + "::", + stringify!(secs) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).nsecs) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(nstime_t), + "::", + stringify!(nsecs) + ) + ); +} +extern "C" { + pub fn nstime_set_zero(nstime: *mut nstime_t); +} +extern "C" { + pub fn nstime_is_zero(nstime: *const nstime_t) -> bool; +} +extern "C" { + pub fn nstime_set_unset(nstime: *mut nstime_t); +} +extern "C" { + pub fn nstime_is_unset(nstime: *const nstime_t) -> bool; +} +extern "C" { + pub fn nstime_copy(a: *mut nstime_t, b: *const nstime_t); +} +extern "C" { + pub fn nstime_delta(delta: *mut nstime_t, b: *const nstime_t, a: *const nstime_t); +} +extern "C" { + pub fn nstime_sum(sum: *mut nstime_t, a: *const nstime_t, b: *const nstime_t); +} +extern "C" { + pub fn nstime_cmp(a: *const nstime_t, b: *const nstime_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn nstime_hash(nstime: *const nstime_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn nstime_to_msec(nstime: *const nstime_t) -> f64; +} +extern "C" { + pub fn nstime_to_sec(nstime: *const nstime_t) -> f64; +} +extern "C" { + pub fn filetime_to_nstime(nstime: *mut nstime_t, filetime: u64) -> bool; +} +extern "C" { + pub fn filetime_ns_to_nstime(nstime: *mut nstime_t, nsfiletime: u64) -> bool; +} +extern "C" { + pub fn filetime_1sec_to_nstime(nstime: *mut nstime_t, filetime: u64) -> bool; +} +pub const iso8601_fmt_e_ISO8601_DATETIME: iso8601_fmt_e = 0; +pub const iso8601_fmt_e_ISO8601_DATETIME_BASIC: iso8601_fmt_e = 1; +pub const iso8601_fmt_e_ISO8601_DATETIME_AUTO: iso8601_fmt_e = 2; +pub type iso8601_fmt_e = ::std::os::raw::c_uint; +extern "C" { + pub fn iso8601_to_nstime( + nstime: *mut nstime_t, + ptr: *const ::std::os::raw::c_char, + format: iso8601_fmt_e, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn unix_epoch_to_nstime( + nstime: *mut nstime_t, + ptr: *const ::std::os::raw::c_char, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn nstime_to_iso8601( + buf: *mut ::std::os::raw::c_char, + buf_size: usize, + nstime: *const nstime_t, + ) -> usize; +} +extern "C" { + pub fn nstime_to_unix( + buf: *mut ::std::os::raw::c_char, + buf_size: usize, + nstime: *const nstime_t, + ); +} +pub const ws_tsprec_e_WS_TSPREC_SEC: ws_tsprec_e = 0; +pub const ws_tsprec_e_WS_TSPREC_100_MSEC: ws_tsprec_e = 1; +pub const ws_tsprec_e_WS_TSPREC_10_MSEC: ws_tsprec_e = 2; +pub const ws_tsprec_e_WS_TSPREC_MSEC: ws_tsprec_e = 3; +pub const ws_tsprec_e_WS_TSPREC_100_USEC: ws_tsprec_e = 4; +pub const ws_tsprec_e_WS_TSPREC_10_USEC: ws_tsprec_e = 5; +pub const ws_tsprec_e_WS_TSPREC_USEC: ws_tsprec_e = 6; +pub const ws_tsprec_e_WS_TSPREC_100_NSEC: ws_tsprec_e = 7; +pub const ws_tsprec_e_WS_TSPREC_10_NSEC: ws_tsprec_e = 8; +pub const ws_tsprec_e_WS_TSPREC_NSEC: ws_tsprec_e = 9; +pub type ws_tsprec_e = ::std::os::raw::c_uint; +pub type ws_in4_addr = u32; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct e_in6_addr { + pub bytes: [u8; 16usize], +} +#[test] +fn bindgen_test_layout_e_in6_addr() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(e_in6_addr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(e_in6_addr)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).bytes) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(e_in6_addr), + "::", + stringify!(bytes) + ) + ); +} +pub type ws_in6_addr = e_in6_addr; +extern "C" { + pub fn ws_inet_ntop4( + src: *const ::std::os::raw::c_void, + dst: *mut ::std::os::raw::c_char, + dst_size: usize, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn ws_inet_ntop6( + src: *const ::std::os::raw::c_void, + dst: *mut ::std::os::raw::c_char, + dst_size: usize, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn ws_inet_pton4(src: *const ::std::os::raw::c_char, dst: *mut ws_in4_addr) -> bool; +} +extern "C" { + pub fn ws_inet_pton6(src: *const ::std::os::raw::c_char, dst: *mut ws_in6_addr) -> bool; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wtap_block { + _unused: [u8; 0], +} +pub type wtap_block_t = *mut wtap_block; +pub const wtap_block_type_t_WTAP_BLOCK_SECTION: wtap_block_type_t = 0; +pub const wtap_block_type_t_WTAP_BLOCK_IF_ID_AND_INFO: wtap_block_type_t = 1; +pub const wtap_block_type_t_WTAP_BLOCK_NAME_RESOLUTION: wtap_block_type_t = 2; +pub const wtap_block_type_t_WTAP_BLOCK_IF_STATISTICS: wtap_block_type_t = 3; +pub const wtap_block_type_t_WTAP_BLOCK_DECRYPTION_SECRETS: wtap_block_type_t = 4; +pub const wtap_block_type_t_WTAP_BLOCK_PACKET: wtap_block_type_t = 5; +pub const wtap_block_type_t_WTAP_BLOCK_FT_SPECIFIC_REPORT: wtap_block_type_t = 6; +pub const wtap_block_type_t_WTAP_BLOCK_FT_SPECIFIC_EVENT: wtap_block_type_t = 7; +pub const wtap_block_type_t_WTAP_BLOCK_SYSDIG_EVENT: wtap_block_type_t = 8; +pub const wtap_block_type_t_WTAP_BLOCK_META_EVENT: wtap_block_type_t = 9; +pub const wtap_block_type_t_WTAP_BLOCK_SYSTEMD_JOURNAL_EXPORT: wtap_block_type_t = 10; +pub const wtap_block_type_t_WTAP_BLOCK_CUSTOM: wtap_block_type_t = 11; +pub const wtap_block_type_t_MAX_WTAP_BLOCK_TYPE_VALUE: wtap_block_type_t = 12; +pub type wtap_block_type_t = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wtapng_section_mandatory_s { + pub section_length: u64, +} +#[test] +fn bindgen_test_layout_wtapng_section_mandatory_s() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(wtapng_section_mandatory_s)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(wtapng_section_mandatory_s)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).section_length) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtapng_section_mandatory_s), + "::", + stringify!(section_length) + ) + ); +} +pub type wtapng_section_mandatory_t = wtapng_section_mandatory_s; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wtapng_iface_descriptions_s { + pub interface_data: *mut GArray, +} +#[test] +fn bindgen_test_layout_wtapng_iface_descriptions_s() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(wtapng_iface_descriptions_s)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(wtapng_iface_descriptions_s)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).interface_data) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtapng_iface_descriptions_s), + "::", + stringify!(interface_data) + ) + ); +} +pub type wtapng_iface_descriptions_t = wtapng_iface_descriptions_s; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wtapng_if_descr_mandatory_s { + pub wtap_encap: ::std::os::raw::c_int, + pub time_units_per_second: u64, + pub tsprecision: ::std::os::raw::c_int, + pub snap_len: u32, + pub num_stat_entries: u8, + pub interface_statistics: *mut GArray, +} +#[test] +fn bindgen_test_layout_wtapng_if_descr_mandatory_s() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(wtapng_if_descr_mandatory_s)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(wtapng_if_descr_mandatory_s)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).wtap_encap) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtapng_if_descr_mandatory_s), + "::", + stringify!(wtap_encap) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).time_units_per_second) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(wtapng_if_descr_mandatory_s), + "::", + stringify!(time_units_per_second) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tsprecision) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(wtapng_if_descr_mandatory_s), + "::", + stringify!(tsprecision) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).snap_len) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(wtapng_if_descr_mandatory_s), + "::", + stringify!(snap_len) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).num_stat_entries) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(wtapng_if_descr_mandatory_s), + "::", + stringify!(num_stat_entries) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).interface_statistics) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(wtapng_if_descr_mandatory_s), + "::", + stringify!(interface_statistics) + ) + ); +} +pub type wtapng_if_descr_mandatory_t = wtapng_if_descr_mandatory_s; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wtapng_nrb_mandatory_s { + pub ipv4_addr_list: *mut GList, + pub ipv6_addr_list: *mut GList, +} +#[test] +fn bindgen_test_layout_wtapng_nrb_mandatory_s() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(wtapng_nrb_mandatory_s)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(wtapng_nrb_mandatory_s)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ipv4_addr_list) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtapng_nrb_mandatory_s), + "::", + stringify!(ipv4_addr_list) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ipv6_addr_list) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(wtapng_nrb_mandatory_s), + "::", + stringify!(ipv6_addr_list) + ) + ); +} +pub type wtapng_nrb_mandatory_t = wtapng_nrb_mandatory_s; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wtapng_if_stats_mandatory_s { + pub interface_id: u32, + pub ts_high: u32, + pub ts_low: u32, +} +#[test] +fn bindgen_test_layout_wtapng_if_stats_mandatory_s() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 12usize, + concat!("Size of: ", stringify!(wtapng_if_stats_mandatory_s)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(wtapng_if_stats_mandatory_s)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).interface_id) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtapng_if_stats_mandatory_s), + "::", + stringify!(interface_id) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ts_high) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(wtapng_if_stats_mandatory_s), + "::", + stringify!(ts_high) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ts_low) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(wtapng_if_stats_mandatory_s), + "::", + stringify!(ts_low) + ) + ); +} +pub type wtapng_if_stats_mandatory_t = wtapng_if_stats_mandatory_s; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wtapng_dsb_mandatory_s { + pub secrets_type: u32, + pub secrets_len: u32, + pub secrets_data: *mut u8, +} +#[test] +fn bindgen_test_layout_wtapng_dsb_mandatory_s() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(wtapng_dsb_mandatory_s)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(wtapng_dsb_mandatory_s)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).secrets_type) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtapng_dsb_mandatory_s), + "::", + stringify!(secrets_type) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).secrets_len) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(wtapng_dsb_mandatory_s), + "::", + stringify!(secrets_len) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).secrets_data) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(wtapng_dsb_mandatory_s), + "::", + stringify!(secrets_data) + ) + ); +} +pub type wtapng_dsb_mandatory_t = wtapng_dsb_mandatory_s; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wtapng_meta_event_mandatory_s { + pub mev_block_type: u32, + pub mev_data_len: ::std::os::raw::c_uint, + pub mev_data: *mut u8, +} +#[test] +fn bindgen_test_layout_wtapng_meta_event_mandatory_s() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(wtapng_meta_event_mandatory_s)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(wtapng_meta_event_mandatory_s)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).mev_block_type) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtapng_meta_event_mandatory_s), + "::", + stringify!(mev_block_type) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).mev_data_len) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(wtapng_meta_event_mandatory_s), + "::", + stringify!(mev_data_len) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).mev_data) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(wtapng_meta_event_mandatory_s), + "::", + stringify!(mev_data) + ) + ); +} +pub type wtapng_meta_event_mandatory_t = wtapng_meta_event_mandatory_s; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wtapng_ft_specific_mandatory_s { + pub record_type: ::std::os::raw::c_uint, +} +#[test] +fn bindgen_test_layout_wtapng_ft_specific_mandatory_s() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(wtapng_ft_specific_mandatory_s)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(wtapng_ft_specific_mandatory_s)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).record_type) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtapng_ft_specific_mandatory_s), + "::", + stringify!(record_type) + ) + ); +} +pub type wtapng_ft_specific_mandatory_t = wtapng_ft_specific_mandatory_s; +pub const wtap_opttype_e_WTAP_OPTTYPE_UINT8: wtap_opttype_e = 0; +pub const wtap_opttype_e_WTAP_OPTTYPE_UINT32: wtap_opttype_e = 1; +pub const wtap_opttype_e_WTAP_OPTTYPE_UINT64: wtap_opttype_e = 2; +pub const wtap_opttype_e_WTAP_OPTTYPE_STRING: wtap_opttype_e = 3; +pub const wtap_opttype_e_WTAP_OPTTYPE_BYTES: wtap_opttype_e = 4; +pub const wtap_opttype_e_WTAP_OPTTYPE_IPv4: wtap_opttype_e = 5; +pub const wtap_opttype_e_WTAP_OPTTYPE_IPv6: wtap_opttype_e = 6; +pub const wtap_opttype_e_WTAP_OPTTYPE_CUSTOM: wtap_opttype_e = 7; +pub const wtap_opttype_e_WTAP_OPTTYPE_IF_FILTER: wtap_opttype_e = 8; +pub const wtap_opttype_e_WTAP_OPTTYPE_PACKET_VERDICT: wtap_opttype_e = 9; +pub const wtap_opttype_e_WTAP_OPTTYPE_PACKET_HASH: wtap_opttype_e = 10; +pub const wtap_opttype_e_WTAP_OPTTYPE_INT8: wtap_opttype_e = 11; +pub const wtap_opttype_e_WTAP_OPTTYPE_INT32: wtap_opttype_e = 12; +pub const wtap_opttype_e_WTAP_OPTTYPE_INT64: wtap_opttype_e = 13; +pub type wtap_opttype_e = ::std::os::raw::c_uint; +pub const wtap_opttype_return_val_WTAP_OPTTYPE_SUCCESS: wtap_opttype_return_val = 0; +pub const wtap_opttype_return_val_WTAP_OPTTYPE_NO_SUCH_OPTION: wtap_opttype_return_val = -1; +pub const wtap_opttype_return_val_WTAP_OPTTYPE_NOT_FOUND: wtap_opttype_return_val = -2; +pub const wtap_opttype_return_val_WTAP_OPTTYPE_TYPE_MISMATCH: wtap_opttype_return_val = -3; +pub const wtap_opttype_return_val_WTAP_OPTTYPE_NUMBER_MISMATCH: wtap_opttype_return_val = -4; +pub const wtap_opttype_return_val_WTAP_OPTTYPE_ALREADY_EXISTS: wtap_opttype_return_val = -5; +pub const wtap_opttype_return_val_WTAP_OPTTYPE_BAD_BLOCK: wtap_opttype_return_val = -6; +pub type wtap_opttype_return_val = ::std::os::raw::c_int; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct custom_opt_s { + pub pen: u32, + pub data: custom_opt_s__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union custom_opt_s__bindgen_ty_1 { + pub generic_data: custom_opt_s__bindgen_ty_1_generic_custom_opt_data, + pub nflx_data: custom_opt_s__bindgen_ty_1_nflx_custom_opt_data, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct custom_opt_s__bindgen_ty_1_generic_custom_opt_data { + pub custom_data_len: usize, + pub custom_data: *mut ::std::os::raw::c_char, +} +#[test] +fn bindgen_test_layout_custom_opt_s__bindgen_ty_1_generic_custom_opt_data() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!( + "Size of: ", + stringify!(custom_opt_s__bindgen_ty_1_generic_custom_opt_data) + ) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(custom_opt_s__bindgen_ty_1_generic_custom_opt_data) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).custom_data_len) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(custom_opt_s__bindgen_ty_1_generic_custom_opt_data), + "::", + stringify!(custom_data_len) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).custom_data) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(custom_opt_s__bindgen_ty_1_generic_custom_opt_data), + "::", + stringify!(custom_data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct custom_opt_s__bindgen_ty_1_nflx_custom_opt_data { + pub type_: u32, + pub custom_data_len: usize, + pub custom_data: *mut ::std::os::raw::c_char, + pub use_little_endian: bool, +} +#[test] +fn bindgen_test_layout_custom_opt_s__bindgen_ty_1_nflx_custom_opt_data() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 32usize, + concat!( + "Size of: ", + stringify!(custom_opt_s__bindgen_ty_1_nflx_custom_opt_data) + ) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(custom_opt_s__bindgen_ty_1_nflx_custom_opt_data) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(custom_opt_s__bindgen_ty_1_nflx_custom_opt_data), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).custom_data_len) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(custom_opt_s__bindgen_ty_1_nflx_custom_opt_data), + "::", + stringify!(custom_data_len) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).custom_data) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(custom_opt_s__bindgen_ty_1_nflx_custom_opt_data), + "::", + stringify!(custom_data) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).use_little_endian) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(custom_opt_s__bindgen_ty_1_nflx_custom_opt_data), + "::", + stringify!(use_little_endian) + ) + ); +} +#[test] +fn bindgen_test_layout_custom_opt_s__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(custom_opt_s__bindgen_ty_1)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(custom_opt_s__bindgen_ty_1)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).generic_data) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(custom_opt_s__bindgen_ty_1), + "::", + stringify!(generic_data) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).nflx_data) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(custom_opt_s__bindgen_ty_1), + "::", + stringify!(nflx_data) + ) + ); +} +#[test] +fn bindgen_test_layout_custom_opt_s() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(custom_opt_s)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(custom_opt_s)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pen) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(custom_opt_s), + "::", + stringify!(pen) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(custom_opt_s), + "::", + stringify!(data) + ) + ); +} +pub type custom_opt_t = custom_opt_s; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nflx_custom_opt_s { + pub nflx_use_little_endian: bool, + pub nflx_type: u32, + pub nflx_custom_data_len: usize, + pub nflx_custom_data: *mut ::std::os::raw::c_char, +} +#[test] +fn bindgen_test_layout_nflx_custom_opt_s() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(nflx_custom_opt_s)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(nflx_custom_opt_s)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).nflx_use_little_endian) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(nflx_custom_opt_s), + "::", + stringify!(nflx_use_little_endian) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).nflx_type) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(nflx_custom_opt_s), + "::", + stringify!(nflx_type) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).nflx_custom_data_len) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(nflx_custom_opt_s), + "::", + stringify!(nflx_custom_data_len) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).nflx_custom_data) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(nflx_custom_opt_s), + "::", + stringify!(nflx_custom_data) + ) + ); +} +pub type nflx_custom_opt_t = nflx_custom_opt_s; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wtap_bpf_insn_s { + pub code: u16, + pub jt: u8, + pub jf: u8, + pub k: u32, +} +#[test] +fn bindgen_test_layout_wtap_bpf_insn_s() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(wtap_bpf_insn_s)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(wtap_bpf_insn_s)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).code) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_bpf_insn_s), + "::", + stringify!(code) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).jt) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(wtap_bpf_insn_s), + "::", + stringify!(jt) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).jf) as usize - ptr as usize }, + 3usize, + concat!( + "Offset of field: ", + stringify!(wtap_bpf_insn_s), + "::", + stringify!(jf) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).k) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(wtap_bpf_insn_s), + "::", + stringify!(k) + ) + ); +} +pub type wtap_bpf_insn_t = wtap_bpf_insn_s; +pub const if_filter_type_e_if_filter_pcap: if_filter_type_e = 0; +pub const if_filter_type_e_if_filter_bpf: if_filter_type_e = 1; +pub type if_filter_type_e = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct if_filter_opt_s { + pub type_: if_filter_type_e, + pub data: if_filter_opt_s__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union if_filter_opt_s__bindgen_ty_1 { + pub filter_str: *mut ::std::os::raw::c_char, + pub bpf_prog: if_filter_opt_s__bindgen_ty_1_wtap_bpf_insns, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct if_filter_opt_s__bindgen_ty_1_wtap_bpf_insns { + pub bpf_prog_len: ::std::os::raw::c_uint, + pub bpf_prog: *mut wtap_bpf_insn_t, +} +#[test] +fn bindgen_test_layout_if_filter_opt_s__bindgen_ty_1_wtap_bpf_insns() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!( + "Size of: ", + stringify!(if_filter_opt_s__bindgen_ty_1_wtap_bpf_insns) + ) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(if_filter_opt_s__bindgen_ty_1_wtap_bpf_insns) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).bpf_prog_len) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(if_filter_opt_s__bindgen_ty_1_wtap_bpf_insns), + "::", + stringify!(bpf_prog_len) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).bpf_prog) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(if_filter_opt_s__bindgen_ty_1_wtap_bpf_insns), + "::", + stringify!(bpf_prog) + ) + ); +} +#[test] +fn bindgen_test_layout_if_filter_opt_s__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(if_filter_opt_s__bindgen_ty_1)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(if_filter_opt_s__bindgen_ty_1)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).filter_str) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(if_filter_opt_s__bindgen_ty_1), + "::", + stringify!(filter_str) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).bpf_prog) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(if_filter_opt_s__bindgen_ty_1), + "::", + stringify!(bpf_prog) + ) + ); +} +#[test] +fn bindgen_test_layout_if_filter_opt_s() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(if_filter_opt_s)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(if_filter_opt_s)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(if_filter_opt_s), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(if_filter_opt_s), + "::", + stringify!(data) + ) + ); +} +pub type if_filter_opt_t = if_filter_opt_s; +pub const packet_verdict_type_e_packet_verdict_hardware: packet_verdict_type_e = 0; +pub const packet_verdict_type_e_packet_verdict_linux_ebpf_tc: packet_verdict_type_e = 1; +pub const packet_verdict_type_e_packet_verdict_linux_ebpf_xdp: packet_verdict_type_e = 2; +pub type packet_verdict_type_e = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct packet_verdict_opt_s { + pub type_: packet_verdict_type_e, + pub data: packet_verdict_opt_s__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union packet_verdict_opt_s__bindgen_ty_1 { + pub verdict_bytes: *mut GByteArray, + pub verdict_linux_ebpf_tc: u64, + pub verdict_linux_ebpf_xdp: u64, +} +#[test] +fn bindgen_test_layout_packet_verdict_opt_s__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(packet_verdict_opt_s__bindgen_ty_1)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(packet_verdict_opt_s__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).verdict_bytes) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(packet_verdict_opt_s__bindgen_ty_1), + "::", + stringify!(verdict_bytes) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).verdict_linux_ebpf_tc) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(packet_verdict_opt_s__bindgen_ty_1), + "::", + stringify!(verdict_linux_ebpf_tc) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).verdict_linux_ebpf_xdp) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(packet_verdict_opt_s__bindgen_ty_1), + "::", + stringify!(verdict_linux_ebpf_xdp) + ) + ); +} +#[test] +fn bindgen_test_layout_packet_verdict_opt_s() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(packet_verdict_opt_s)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(packet_verdict_opt_s)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(packet_verdict_opt_s), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(packet_verdict_opt_s), + "::", + stringify!(data) + ) + ); +} +pub type packet_verdict_opt_t = packet_verdict_opt_s; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct packet_hash_opt_s { + pub type_: u8, + pub hash_bytes: *mut GByteArray, +} +#[test] +fn bindgen_test_layout_packet_hash_opt_s() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(packet_hash_opt_s)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(packet_hash_opt_s)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(packet_hash_opt_s), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).hash_bytes) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(packet_hash_opt_s), + "::", + stringify!(hash_bytes) + ) + ); +} +pub type packet_hash_opt_t = packet_hash_opt_s; +#[repr(C)] +#[derive(Copy, Clone)] +pub union wtap_optval_t { + pub uint8val: u8, + pub uint32val: u32, + pub uint64val: u64, + pub int8val: i8, + pub int32val: i32, + pub int64val: i64, + pub ipv4val: ws_in4_addr, + pub ipv6val: ws_in6_addr, + pub stringval: *mut ::std::os::raw::c_char, + pub byteval: *mut GBytes, + pub custom_opt: custom_opt_t, + pub if_filterval: if_filter_opt_t, + pub packet_verdictval: packet_verdict_opt_t, + pub packet_hash: packet_hash_opt_t, +} +#[test] +fn bindgen_test_layout_wtap_optval_t() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(wtap_optval_t)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(wtap_optval_t)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).uint8val) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_optval_t), + "::", + stringify!(uint8val) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).uint32val) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_optval_t), + "::", + stringify!(uint32val) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).uint64val) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_optval_t), + "::", + stringify!(uint64val) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).int8val) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_optval_t), + "::", + stringify!(int8val) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).int32val) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_optval_t), + "::", + stringify!(int32val) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).int64val) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_optval_t), + "::", + stringify!(int64val) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ipv4val) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_optval_t), + "::", + stringify!(ipv4val) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ipv6val) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_optval_t), + "::", + stringify!(ipv6val) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).stringval) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_optval_t), + "::", + stringify!(stringval) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).byteval) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_optval_t), + "::", + stringify!(byteval) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).custom_opt) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_optval_t), + "::", + stringify!(custom_opt) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).if_filterval) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_optval_t), + "::", + stringify!(if_filterval) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).packet_verdictval) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_optval_t), + "::", + stringify!(packet_verdictval) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).packet_hash) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_optval_t), + "::", + stringify!(packet_hash) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct wtap_option_t { + pub option_id: ::std::os::raw::c_uint, + pub value: wtap_optval_t, +} +#[test] +fn bindgen_test_layout_wtap_option_t() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(wtap_option_t)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(wtap_option_t)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).option_id) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_option_t), + "::", + stringify!(option_id) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(wtap_option_t), + "::", + stringify!(value) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nflx_dumpinfo { + pub tlh_version: u32, + pub tlh_type: u32, + pub tlh_length: u64, + pub tlh_ie_fport: u16, + pub tlh_ie_lport: u16, + pub tlh_ie_faddr_addr32: [u32; 4usize], + pub tlh_ie_laddr_addr32: [u32; 4usize], + pub tlh_ie_zoneid: u32, + pub tlh_offset_tv_sec: u64, + pub tlh_offset_tv_usec: u64, + pub tlh_id: [::std::os::raw::c_char; 64usize], + pub tlh_reason: [::std::os::raw::c_char; 32usize], + pub tlh_tag: [::std::os::raw::c_char; 32usize], + pub tlh_af: u8, + pub _pad: [u8; 7usize], +} +#[test] +fn bindgen_test_layout_nflx_dumpinfo() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 208usize, + concat!("Size of: ", stringify!(nflx_dumpinfo)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(nflx_dumpinfo)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlh_version) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(nflx_dumpinfo), + "::", + stringify!(tlh_version) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlh_type) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(nflx_dumpinfo), + "::", + stringify!(tlh_type) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlh_length) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(nflx_dumpinfo), + "::", + stringify!(tlh_length) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlh_ie_fport) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(nflx_dumpinfo), + "::", + stringify!(tlh_ie_fport) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlh_ie_lport) as usize - ptr as usize }, + 18usize, + concat!( + "Offset of field: ", + stringify!(nflx_dumpinfo), + "::", + stringify!(tlh_ie_lport) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlh_ie_faddr_addr32) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(nflx_dumpinfo), + "::", + stringify!(tlh_ie_faddr_addr32) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlh_ie_laddr_addr32) as usize - ptr as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(nflx_dumpinfo), + "::", + stringify!(tlh_ie_laddr_addr32) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlh_ie_zoneid) as usize - ptr as usize }, + 52usize, + concat!( + "Offset of field: ", + stringify!(nflx_dumpinfo), + "::", + stringify!(tlh_ie_zoneid) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlh_offset_tv_sec) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(nflx_dumpinfo), + "::", + stringify!(tlh_offset_tv_sec) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlh_offset_tv_usec) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(nflx_dumpinfo), + "::", + stringify!(tlh_offset_tv_usec) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlh_id) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(nflx_dumpinfo), + "::", + stringify!(tlh_id) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlh_reason) as usize - ptr as usize }, + 136usize, + concat!( + "Offset of field: ", + stringify!(nflx_dumpinfo), + "::", + stringify!(tlh_reason) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlh_tag) as usize - ptr as usize }, + 168usize, + concat!( + "Offset of field: ", + stringify!(nflx_dumpinfo), + "::", + stringify!(tlh_tag) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlh_af) as usize - ptr as usize }, + 200usize, + concat!( + "Offset of field: ", + stringify!(nflx_dumpinfo), + "::", + stringify!(tlh_af) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._pad) as usize - ptr as usize }, + 201usize, + concat!( + "Offset of field: ", + stringify!(nflx_dumpinfo), + "::", + stringify!(_pad) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nflx_tcpinfo { + pub tlb_tv_sec: u64, + pub tlb_tv_usec: u64, + pub tlb_ticks: u32, + pub tlb_sn: u32, + pub tlb_stackid: u8, + pub tlb_eventid: u8, + pub tlb_eventflags: u16, + pub tlb_errno: i32, + pub tlb_rxbuf_tls_sb_acc: u32, + pub tlb_rxbuf_tls_sb_ccc: u32, + pub tlb_rxbuf_tls_sb_spare: u32, + pub tlb_txbuf_tls_sb_acc: u32, + pub tlb_txbuf_tls_sb_ccc: u32, + pub tlb_txbuf_tls_sb_spare: u32, + pub tlb_state: i32, + pub tlb_starttime: u32, + pub tlb_iss: u32, + pub tlb_flags: u32, + pub tlb_snd_una: u32, + pub tlb_snd_max: u32, + pub tlb_snd_cwnd: u32, + pub tlb_snd_nxt: u32, + pub tlb_snd_recover: u32, + pub tlb_snd_wnd: u32, + pub tlb_snd_ssthresh: u32, + pub tlb_srtt: u32, + pub tlb_rttvar: u32, + pub tlb_rcv_up: u32, + pub tlb_rcv_adv: u32, + pub tlb_flags2: u32, + pub tlb_rcv_nxt: u32, + pub tlb_rcv_wnd: u32, + pub tlb_dupacks: u32, + pub tlb_segqlen: i32, + pub tlb_snd_numholes: i32, + pub tlb_flex1: u32, + pub tlb_flex2: u32, + pub tlb_fbyte_in: u32, + pub tlb_fbyte_out: u32, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub _pad: [u8; 3usize], + pub tlb_stackinfo_bbr_cur_del_rate: u64, + pub tlb_stackinfo_bbr_delRate: u64, + pub tlb_stackinfo_bbr_rttProp: u64, + pub tlb_stackinfo_bbr_bw_inuse: u64, + pub tlb_stackinfo_bbr_inflight: u32, + pub tlb_stackinfo_bbr_applimited: u32, + pub tlb_stackinfo_bbr_delivered: u32, + pub tlb_stackinfo_bbr_timeStamp: u32, + pub tlb_stackinfo_bbr_epoch: u32, + pub tlb_stackinfo_bbr_lt_epoch: u32, + pub tlb_stackinfo_bbr_pkts_out: u32, + pub tlb_stackinfo_bbr_flex1: u32, + pub tlb_stackinfo_bbr_flex2: u32, + pub tlb_stackinfo_bbr_flex3: u32, + pub tlb_stackinfo_bbr_flex4: u32, + pub tlb_stackinfo_bbr_flex5: u32, + pub tlb_stackinfo_bbr_flex6: u32, + pub tlb_stackinfo_bbr_lost: u32, + pub tlb_stackinfo_bbr_pacing_gain: u16, + pub tlb_stackinfo_bbr_cwnd_gain: u16, + pub tlb_stackinfo_bbr_flex7: u16, + pub tlb_stackinfo_bbr_bbr_state: u8, + pub tlb_stackinfo_bbr_bbr_substate: u8, + pub tlb_stackinfo_bbr_inhpts: u8, + pub tlb_stackinfo_bbr_ininput: u8, + pub tlb_stackinfo_bbr_use_lt_bw: u8, + pub tlb_stackinfo_bbr_flex8: u8, + pub tlb_stackinfo_bbr_pkt_epoch: u32, + pub tlb_len: u32, +} +#[test] +fn bindgen_test_layout_nflx_tcpinfo() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 272usize, + concat!("Size of: ", stringify!(nflx_tcpinfo)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(nflx_tcpinfo)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_tv_sec) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_tv_sec) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_tv_usec) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_tv_usec) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_ticks) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_ticks) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_sn) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_sn) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_stackid) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_stackid) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_eventid) as usize - ptr as usize }, + 25usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_eventid) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_eventflags) as usize - ptr as usize }, + 26usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_eventflags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_errno) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_errno) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_rxbuf_tls_sb_acc) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_rxbuf_tls_sb_acc) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_rxbuf_tls_sb_ccc) as usize - ptr as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_rxbuf_tls_sb_ccc) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_rxbuf_tls_sb_spare) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_rxbuf_tls_sb_spare) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_txbuf_tls_sb_acc) as usize - ptr as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_txbuf_tls_sb_acc) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_txbuf_tls_sb_ccc) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_txbuf_tls_sb_ccc) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_txbuf_tls_sb_spare) as usize - ptr as usize }, + 52usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_txbuf_tls_sb_spare) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_state) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_state) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_starttime) as usize - ptr as usize }, + 60usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_starttime) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_iss) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_iss) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_flags) as usize - ptr as usize }, + 68usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_snd_una) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_snd_una) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_snd_max) as usize - ptr as usize }, + 76usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_snd_max) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_snd_cwnd) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_snd_cwnd) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_snd_nxt) as usize - ptr as usize }, + 84usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_snd_nxt) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_snd_recover) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_snd_recover) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_snd_wnd) as usize - ptr as usize }, + 92usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_snd_wnd) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_snd_ssthresh) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_snd_ssthresh) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_srtt) as usize - ptr as usize }, + 100usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_srtt) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_rttvar) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_rttvar) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_rcv_up) as usize - ptr as usize }, + 108usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_rcv_up) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_rcv_adv) as usize - ptr as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_rcv_adv) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_flags2) as usize - ptr as usize }, + 116usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_flags2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_rcv_nxt) as usize - ptr as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_rcv_nxt) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_rcv_wnd) as usize - ptr as usize }, + 124usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_rcv_wnd) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_dupacks) as usize - ptr as usize }, + 128usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_dupacks) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_segqlen) as usize - ptr as usize }, + 132usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_segqlen) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_snd_numholes) as usize - ptr as usize }, + 136usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_snd_numholes) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_flex1) as usize - ptr as usize }, + 140usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_flex1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_flex2) as usize - ptr as usize }, + 144usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_flex2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_fbyte_in) as usize - ptr as usize }, + 148usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_fbyte_in) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_fbyte_out) as usize - ptr as usize }, + 152usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_fbyte_out) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._pad) as usize - ptr as usize }, + 157usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(_pad) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).tlb_stackinfo_bbr_cur_del_rate) as usize - ptr as usize + }, + 160usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_stackinfo_bbr_cur_del_rate) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_stackinfo_bbr_delRate) as usize - ptr as usize }, + 168usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_stackinfo_bbr_delRate) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_stackinfo_bbr_rttProp) as usize - ptr as usize }, + 176usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_stackinfo_bbr_rttProp) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_stackinfo_bbr_bw_inuse) as usize - ptr as usize }, + 184usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_stackinfo_bbr_bw_inuse) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_stackinfo_bbr_inflight) as usize - ptr as usize }, + 192usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_stackinfo_bbr_inflight) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).tlb_stackinfo_bbr_applimited) as usize - ptr as usize + }, + 196usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_stackinfo_bbr_applimited) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_stackinfo_bbr_delivered) as usize - ptr as usize }, + 200usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_stackinfo_bbr_delivered) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_stackinfo_bbr_timeStamp) as usize - ptr as usize }, + 204usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_stackinfo_bbr_timeStamp) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_stackinfo_bbr_epoch) as usize - ptr as usize }, + 208usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_stackinfo_bbr_epoch) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_stackinfo_bbr_lt_epoch) as usize - ptr as usize }, + 212usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_stackinfo_bbr_lt_epoch) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_stackinfo_bbr_pkts_out) as usize - ptr as usize }, + 216usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_stackinfo_bbr_pkts_out) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_stackinfo_bbr_flex1) as usize - ptr as usize }, + 220usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_stackinfo_bbr_flex1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_stackinfo_bbr_flex2) as usize - ptr as usize }, + 224usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_stackinfo_bbr_flex2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_stackinfo_bbr_flex3) as usize - ptr as usize }, + 228usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_stackinfo_bbr_flex3) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_stackinfo_bbr_flex4) as usize - ptr as usize }, + 232usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_stackinfo_bbr_flex4) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_stackinfo_bbr_flex5) as usize - ptr as usize }, + 236usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_stackinfo_bbr_flex5) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_stackinfo_bbr_flex6) as usize - ptr as usize }, + 240usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_stackinfo_bbr_flex6) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_stackinfo_bbr_lost) as usize - ptr as usize }, + 244usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_stackinfo_bbr_lost) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).tlb_stackinfo_bbr_pacing_gain) as usize - ptr as usize + }, + 248usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_stackinfo_bbr_pacing_gain) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_stackinfo_bbr_cwnd_gain) as usize - ptr as usize }, + 250usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_stackinfo_bbr_cwnd_gain) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_stackinfo_bbr_flex7) as usize - ptr as usize }, + 252usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_stackinfo_bbr_flex7) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_stackinfo_bbr_bbr_state) as usize - ptr as usize }, + 254usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_stackinfo_bbr_bbr_state) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).tlb_stackinfo_bbr_bbr_substate) as usize - ptr as usize + }, + 255usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_stackinfo_bbr_bbr_substate) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_stackinfo_bbr_inhpts) as usize - ptr as usize }, + 256usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_stackinfo_bbr_inhpts) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_stackinfo_bbr_ininput) as usize - ptr as usize }, + 257usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_stackinfo_bbr_ininput) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_stackinfo_bbr_use_lt_bw) as usize - ptr as usize }, + 258usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_stackinfo_bbr_use_lt_bw) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_stackinfo_bbr_flex8) as usize - ptr as usize }, + 259usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_stackinfo_bbr_flex8) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_stackinfo_bbr_pkt_epoch) as usize - ptr as usize }, + 260usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_stackinfo_bbr_pkt_epoch) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tlb_len) as usize - ptr as usize }, + 264usize, + concat!( + "Offset of field: ", + stringify!(nflx_tcpinfo), + "::", + stringify!(tlb_len) + ) + ); +} +impl nflx_tcpinfo { + #[inline] + pub fn tlb_snd_scale(&self) -> u8 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } + } + #[inline] + pub fn set_tlb_snd_scale(&mut self, val: u8) { + unsafe { + let val: u8 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 4u8, val as u64) + } + } + #[inline] + pub fn tlb_rcv_scale(&self) -> u8 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } + } + #[inline] + pub fn set_tlb_rcv_scale(&mut self, val: u8) { + unsafe { + let val: u8 = ::std::mem::transmute(val); + self._bitfield_1.set(4usize, 4u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + tlb_snd_scale: u8, + tlb_rcv_scale: u8, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 4u8, { + let tlb_snd_scale: u8 = unsafe { ::std::mem::transmute(tlb_snd_scale) }; + tlb_snd_scale as u64 + }); + __bindgen_bitfield_unit.set(4usize, 4u8, { + let tlb_rcv_scale: u8 = unsafe { ::std::mem::transmute(tlb_rcv_scale) }; + tlb_rcv_scale as u64 + }); + __bindgen_bitfield_unit + } +} +pub type wtap_block_create_func = ::std::option::Option; +pub type wtap_mand_free_func = ::std::option::Option; +pub type wtap_mand_copy_func = + ::std::option::Option; +extern "C" { + pub fn wtap_opttypes_initialize(); +} +extern "C" { + pub fn wtap_block_create(block_type: wtap_block_type_t) -> wtap_block_t; +} +extern "C" { + pub fn wtap_block_ref(block: wtap_block_t) -> wtap_block_t; +} +extern "C" { + pub fn wtap_block_unref(block: wtap_block_t); +} +extern "C" { + pub fn wtap_block_array_free(block_array: *mut GArray); +} +extern "C" { + pub fn wtap_block_array_unref(block_array: *mut GArray); +} +extern "C" { + pub fn wtap_block_array_ref(block_array: *mut GArray); +} +extern "C" { + pub fn wtap_block_get_type(block: wtap_block_t) -> wtap_block_type_t; +} +extern "C" { + pub fn wtap_block_get_mandatory_data(block: wtap_block_t) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn wtap_block_count_option( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn wtap_block_add_uint8_option( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: u8, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_set_uint8_option_value( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: u8, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_get_uint8_option_value( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: *mut u8, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_add_uint32_option( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: u32, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_set_uint32_option_value( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: u32, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_get_uint32_option_value( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: *mut u32, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_add_uint64_option( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: u64, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_set_uint64_option_value( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: u64, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_get_uint64_option_value( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: *mut u64, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_add_int8_option( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: i8, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_set_int8_option_value( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: i8, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_get_int8_option_value( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: *mut i8, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_add_int32_option( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: i32, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_set_int32_option_value( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: i32, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_get_int32_option_value( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: *mut i32, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_add_int64_option( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: i64, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_set_int64_option_value( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: i64, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_get_int64_option_value( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: *mut i64, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_add_ipv4_option( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: u32, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_set_ipv4_option_value( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: u32, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_get_ipv4_option_value( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: *mut u32, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_add_ipv6_option( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: *mut ws_in6_addr, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_set_ipv6_option_value( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: *mut ws_in6_addr, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_get_ipv6_option_value( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: *mut ws_in6_addr, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_add_string_option( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: *const ::std::os::raw::c_char, + value_length: usize, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_add_string_option_owned( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: *mut ::std::os::raw::c_char, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_add_string_option_format( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + format: *const ::std::os::raw::c_char, + ... + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_set_string_option_value( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: *const ::std::os::raw::c_char, + value_length: usize, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_set_nth_string_option_value( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + idx: ::std::os::raw::c_uint, + value: *const ::std::os::raw::c_char, + value_length: usize, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_set_string_option_value_format( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + format: *const ::std::os::raw::c_char, + ... + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_set_nth_string_option_value_format( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + idx: ::std::os::raw::c_uint, + format: *const ::std::os::raw::c_char, + ... + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_get_string_option_value( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: *mut *mut ::std::os::raw::c_char, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_get_nth_string_option_value( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + idx: ::std::os::raw::c_uint, + value: *mut *mut ::std::os::raw::c_char, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_add_bytes_option( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: *const u8, + value_length: usize, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_add_bytes_option_borrow( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: *mut GBytes, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_set_bytes_option_value( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: *const u8, + value_length: usize, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_set_nth_bytes_option_value( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + idx: ::std::os::raw::c_uint, + value: *mut GBytes, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_get_bytes_option_value( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: *mut *mut GBytes, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_get_nth_bytes_option_value( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + idx: ::std::os::raw::c_uint, + value: *mut *mut GBytes, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_add_nflx_custom_option( + block: wtap_block_t, + nflx_type: u32, + nflx_custom_data: *const ::std::os::raw::c_char, + nflx_custom_data_len: usize, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_get_nflx_custom_option( + block: wtap_block_t, + nflx_type: u32, + nflx_custom_data: *mut ::std::os::raw::c_char, + nflx_custom_data_len: usize, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_add_custom_option( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + pen: u32, + custom_data: *const ::std::os::raw::c_char, + custom_data_len: usize, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_add_if_filter_option( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: *mut if_filter_opt_t, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_set_if_filter_option_value( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: *mut if_filter_opt_t, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_get_if_filter_option_value( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: *mut if_filter_opt_t, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_add_packet_verdict_option( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: *mut packet_verdict_opt_t, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_set_nth_packet_verdict_option_value( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + idx: ::std::os::raw::c_uint, + value: *mut packet_verdict_opt_t, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_get_nth_packet_verdict_option_value( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + idx: ::std::os::raw::c_uint, + value: *mut packet_verdict_opt_t, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_packet_verdict_free(verdict: *mut packet_verdict_opt_t); +} +extern "C" { + pub fn wtap_block_add_packet_hash_option( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + value: *mut packet_hash_opt_t, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_packet_hash_free(hash: *mut packet_hash_opt_t); +} +extern "C" { + pub fn wtap_block_remove_option( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_remove_nth_option_instance( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + idx: ::std::os::raw::c_uint, + ) -> wtap_opttype_return_val; +} +extern "C" { + pub fn wtap_block_copy(dest_block: wtap_block_t, src_block: wtap_block_t); +} +extern "C" { + pub fn wtap_block_make_copy(block: wtap_block_t) -> wtap_block_t; +} +pub type wtap_block_foreach_func = ::std::option::Option< + unsafe extern "C" fn( + block: wtap_block_t, + option_id: ::std::os::raw::c_uint, + option_type: wtap_opttype_e, + option: *mut wtap_optval_t, + user_data: *mut ::std::os::raw::c_void, + ) -> bool, +>; +extern "C" { + pub fn wtap_block_foreach_option( + block: wtap_block_t, + func: wtap_block_foreach_func, + user_data: *mut ::std::os::raw::c_void, + ) -> bool; +} +extern "C" { + pub fn wtap_opttypes_cleanup(); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct eth_phdr { + pub fcs_len: ::std::os::raw::c_int, +} +#[test] +fn bindgen_test_layout_eth_phdr() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(eth_phdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(eth_phdr)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).fcs_len) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(eth_phdr), + "::", + stringify!(fcs_len) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dte_dce_phdr { + pub flags: u8, +} +#[test] +fn bindgen_test_layout_dte_dce_phdr() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 1usize, + concat!("Size of: ", stringify!(dte_dce_phdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(dte_dce_phdr)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(dte_dce_phdr), + "::", + stringify!(flags) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct isdn_phdr { + pub uton: bool, + pub channel: u8, +} +#[test] +fn bindgen_test_layout_isdn_phdr() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 2usize, + concat!("Size of: ", stringify!(isdn_phdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(isdn_phdr)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).uton) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(isdn_phdr), + "::", + stringify!(uton) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).channel) as usize - ptr as usize }, + 1usize, + concat!( + "Offset of field: ", + stringify!(isdn_phdr), + "::", + stringify!(channel) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct atm_phdr { + pub flags: u32, + pub aal: u8, + pub type_: u8, + pub subtype: u8, + pub vpi: u16, + pub vci: u16, + pub aal2_cid: u8, + pub channel: u16, + pub cells: u16, + pub aal5t_u2u: u16, + pub aal5t_len: u16, + pub aal5t_chksum: u32, +} +#[test] +fn bindgen_test_layout_atm_phdr() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 28usize, + concat!("Size of: ", stringify!(atm_phdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(atm_phdr)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(atm_phdr), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).aal) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(atm_phdr), + "::", + stringify!(aal) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, + 5usize, + concat!( + "Offset of field: ", + stringify!(atm_phdr), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).subtype) as usize - ptr as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(atm_phdr), + "::", + stringify!(subtype) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).vpi) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(atm_phdr), + "::", + stringify!(vpi) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).vci) as usize - ptr as usize }, + 10usize, + concat!( + "Offset of field: ", + stringify!(atm_phdr), + "::", + stringify!(vci) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).aal2_cid) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(atm_phdr), + "::", + stringify!(aal2_cid) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).channel) as usize - ptr as usize }, + 14usize, + concat!( + "Offset of field: ", + stringify!(atm_phdr), + "::", + stringify!(channel) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).cells) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(atm_phdr), + "::", + stringify!(cells) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).aal5t_u2u) as usize - ptr as usize }, + 18usize, + concat!( + "Offset of field: ", + stringify!(atm_phdr), + "::", + stringify!(aal5t_u2u) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).aal5t_len) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(atm_phdr), + "::", + stringify!(aal5t_len) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).aal5t_chksum) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(atm_phdr), + "::", + stringify!(aal5t_chksum) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ascend_phdr { + pub type_: u16, + pub user: [::std::os::raw::c_char; 64usize], + pub sess: u32, + pub call_num: [::std::os::raw::c_char; 64usize], + pub chunk: u32, + pub task: u32, +} +#[test] +fn bindgen_test_layout_ascend_phdr() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 144usize, + concat!("Size of: ", stringify!(ascend_phdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(ascend_phdr)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ascend_phdr), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).user) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(ascend_phdr), + "::", + stringify!(user) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sess) as usize - ptr as usize }, + 68usize, + concat!( + "Offset of field: ", + stringify!(ascend_phdr), + "::", + stringify!(sess) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).call_num) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(ascend_phdr), + "::", + stringify!(call_num) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).chunk) as usize - ptr as usize }, + 136usize, + concat!( + "Offset of field: ", + stringify!(ascend_phdr), + "::", + stringify!(chunk) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).task) as usize - ptr as usize }, + 140usize, + concat!( + "Offset of field: ", + stringify!(ascend_phdr), + "::", + stringify!(task) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct p2p_phdr { + pub sent: bool, +} +#[test] +fn bindgen_test_layout_p2p_phdr() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 1usize, + concat!("Size of: ", stringify!(p2p_phdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(p2p_phdr)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sent) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(p2p_phdr), + "::", + stringify!(sent) + ) + ); +} +#[repr(C)] +#[repr(align(4))] +#[derive(Debug, Copy, Clone)] +pub struct ieee_802_11_fhss { + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub hop_set: u8, + pub hop_pattern: u8, + pub hop_index: u8, +} +#[test] +fn bindgen_test_layout_ieee_802_11_fhss() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(ieee_802_11_fhss)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(ieee_802_11_fhss)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).hop_set) as usize - ptr as usize }, + 1usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11_fhss), + "::", + stringify!(hop_set) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).hop_pattern) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11_fhss), + "::", + stringify!(hop_pattern) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).hop_index) as usize - ptr as usize }, + 3usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11_fhss), + "::", + stringify!(hop_index) + ) + ); +} +impl ieee_802_11_fhss { + #[inline] + pub fn has_hop_set(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_hop_set(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_hop_pattern(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_hop_pattern(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_hop_index(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_hop_index(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + has_hop_set: ::std::os::raw::c_uint, + has_hop_pattern: ::std::os::raw::c_uint, + has_hop_index: ::std::os::raw::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let has_hop_set: u32 = unsafe { ::std::mem::transmute(has_hop_set) }; + has_hop_set as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let has_hop_pattern: u32 = unsafe { ::std::mem::transmute(has_hop_pattern) }; + has_hop_pattern as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let has_hop_index: u32 = unsafe { ::std::mem::transmute(has_hop_index) }; + has_hop_index as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[repr(align(4))] +#[derive(Debug, Copy, Clone)] +pub struct ieee_802_11b { + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub short_preamble: bool, +} +#[test] +fn bindgen_test_layout_ieee_802_11b() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(ieee_802_11b)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(ieee_802_11b)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).short_preamble) as usize - ptr as usize }, + 1usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11b), + "::", + stringify!(short_preamble) + ) + ); +} +impl ieee_802_11b { + #[inline] + pub fn has_short_preamble(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_short_preamble(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + has_short_preamble: ::std::os::raw::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let has_short_preamble: u32 = unsafe { ::std::mem::transmute(has_short_preamble) }; + has_short_preamble as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[repr(align(4))] +#[derive(Debug, Copy, Clone)] +pub struct ieee_802_11a { + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: [u8; 3usize], +} +#[test] +fn bindgen_test_layout_ieee_802_11a() { + assert_eq!( + ::std::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(ieee_802_11a)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(ieee_802_11a)) + ); +} +impl ieee_802_11a { + #[inline] + pub fn has_channel_type(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_channel_type(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_turbo_type(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_turbo_type(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub fn channel_type(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 2u8) as u32) } + } + #[inline] + pub fn set_channel_type(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(2usize, 2u8, val as u64) + } + } + #[inline] + pub fn turbo_type(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 2u8) as u32) } + } + #[inline] + pub fn set_turbo_type(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(4usize, 2u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + has_channel_type: ::std::os::raw::c_uint, + has_turbo_type: ::std::os::raw::c_uint, + channel_type: ::std::os::raw::c_uint, + turbo_type: ::std::os::raw::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let has_channel_type: u32 = unsafe { ::std::mem::transmute(has_channel_type) }; + has_channel_type as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let has_turbo_type: u32 = unsafe { ::std::mem::transmute(has_turbo_type) }; + has_turbo_type as u64 + }); + __bindgen_bitfield_unit.set(2usize, 2u8, { + let channel_type: u32 = unsafe { ::std::mem::transmute(channel_type) }; + channel_type as u64 + }); + __bindgen_bitfield_unit.set(4usize, 2u8, { + let turbo_type: u32 = unsafe { ::std::mem::transmute(turbo_type) }; + turbo_type as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee_802_11g { + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub mode: u32, +} +#[test] +fn bindgen_test_layout_ieee_802_11g() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(ieee_802_11g)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(ieee_802_11g)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11g), + "::", + stringify!(mode) + ) + ); +} +impl ieee_802_11g { + #[inline] + pub fn has_mode(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_mode(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1(has_mode: ::std::os::raw::c_uint) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let has_mode: u32 = unsafe { ::std::mem::transmute(has_mode) }; + has_mode as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee_802_11n { + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub mcs_index: u16, + pub bandwidth: ::std::os::raw::c_uint, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 1usize]>, + pub ness: ::std::os::raw::c_uint, +} +#[test] +fn bindgen_test_layout_ieee_802_11n() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ieee_802_11n)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(ieee_802_11n)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).mcs_index) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11n), + "::", + stringify!(mcs_index) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).bandwidth) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11n), + "::", + stringify!(bandwidth) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ness) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11n), + "::", + stringify!(ness) + ) + ); +} +impl ieee_802_11n { + #[inline] + pub fn has_mcs_index(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_mcs_index(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_bandwidth(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_bandwidth(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_short_gi(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_short_gi(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_greenfield(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_greenfield(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_fec(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_fec(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_stbc_streams(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_stbc_streams(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_ness(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_ness(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + has_mcs_index: ::std::os::raw::c_uint, + has_bandwidth: ::std::os::raw::c_uint, + has_short_gi: ::std::os::raw::c_uint, + has_greenfield: ::std::os::raw::c_uint, + has_fec: ::std::os::raw::c_uint, + has_stbc_streams: ::std::os::raw::c_uint, + has_ness: ::std::os::raw::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let has_mcs_index: u32 = unsafe { ::std::mem::transmute(has_mcs_index) }; + has_mcs_index as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let has_bandwidth: u32 = unsafe { ::std::mem::transmute(has_bandwidth) }; + has_bandwidth as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let has_short_gi: u32 = unsafe { ::std::mem::transmute(has_short_gi) }; + has_short_gi as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let has_greenfield: u32 = unsafe { ::std::mem::transmute(has_greenfield) }; + has_greenfield as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let has_fec: u32 = unsafe { ::std::mem::transmute(has_fec) }; + has_fec as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let has_stbc_streams: u32 = unsafe { ::std::mem::transmute(has_stbc_streams) }; + has_stbc_streams as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let has_ness: u32 = unsafe { ::std::mem::transmute(has_ness) }; + has_ness as u64 + }); + __bindgen_bitfield_unit + } + #[inline] + pub fn short_gi(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_2.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_short_gi(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_2.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn greenfield(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_2.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_greenfield(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_2.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub fn fec(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_2.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_fec(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_2.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub fn stbc_streams(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_2.get(3usize, 2u8) as u32) } + } + #[inline] + pub fn set_stbc_streams(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_2.set(3usize, 2u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_2( + short_gi: ::std::os::raw::c_uint, + greenfield: ::std::os::raw::c_uint, + fec: ::std::os::raw::c_uint, + stbc_streams: ::std::os::raw::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let short_gi: u32 = unsafe { ::std::mem::transmute(short_gi) }; + short_gi as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let greenfield: u32 = unsafe { ::std::mem::transmute(greenfield) }; + greenfield as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let fec: u32 = unsafe { ::std::mem::transmute(fec) }; + fec as u64 + }); + __bindgen_bitfield_unit.set(3usize, 2u8, { + let stbc_streams: u32 = unsafe { ::std::mem::transmute(stbc_streams) }; + stbc_streams as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[repr(align(4))] +#[derive(Debug, Copy, Clone)] +pub struct ieee_802_11ac { + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, + pub bandwidth: u8, + pub mcs: [u8; 4usize], + pub nss: [u8; 4usize], + pub fec: u8, + pub group_id: u8, + pub partial_aid: u16, +} +#[test] +fn bindgen_test_layout_ieee_802_11ac() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ieee_802_11ac)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(ieee_802_11ac)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).bandwidth) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11ac), + "::", + stringify!(bandwidth) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).mcs) as usize - ptr as usize }, + 3usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11ac), + "::", + stringify!(mcs) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).nss) as usize - ptr as usize }, + 7usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11ac), + "::", + stringify!(nss) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).fec) as usize - ptr as usize }, + 11usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11ac), + "::", + stringify!(fec) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).group_id) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11ac), + "::", + stringify!(group_id) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).partial_aid) as usize - ptr as usize }, + 14usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11ac), + "::", + stringify!(partial_aid) + ) + ); +} +impl ieee_802_11ac { + #[inline] + pub fn has_stbc(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_stbc(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_txop_ps_not_allowed(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_txop_ps_not_allowed(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_short_gi(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_short_gi(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_short_gi_nsym_disambig(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_short_gi_nsym_disambig(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_ldpc_extra_ofdm_symbol(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_ldpc_extra_ofdm_symbol(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_beamformed(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_beamformed(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_bandwidth(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_bandwidth(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_fec(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_fec(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_group_id(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_group_id(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(8usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_partial_aid(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_partial_aid(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(9usize, 1u8, val as u64) + } + } + #[inline] + pub fn stbc(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) } + } + #[inline] + pub fn set_stbc(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(10usize, 1u8, val as u64) + } + } + #[inline] + pub fn txop_ps_not_allowed(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) } + } + #[inline] + pub fn set_txop_ps_not_allowed(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(11usize, 1u8, val as u64) + } + } + #[inline] + pub fn short_gi(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u32) } + } + #[inline] + pub fn set_short_gi(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(12usize, 1u8, val as u64) + } + } + #[inline] + pub fn short_gi_nsym_disambig(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u32) } + } + #[inline] + pub fn set_short_gi_nsym_disambig(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(13usize, 1u8, val as u64) + } + } + #[inline] + pub fn ldpc_extra_ofdm_symbol(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u32) } + } + #[inline] + pub fn set_ldpc_extra_ofdm_symbol(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(14usize, 1u8, val as u64) + } + } + #[inline] + pub fn beamformed(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u32) } + } + #[inline] + pub fn set_beamformed(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(15usize, 1u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + has_stbc: ::std::os::raw::c_uint, + has_txop_ps_not_allowed: ::std::os::raw::c_uint, + has_short_gi: ::std::os::raw::c_uint, + has_short_gi_nsym_disambig: ::std::os::raw::c_uint, + has_ldpc_extra_ofdm_symbol: ::std::os::raw::c_uint, + has_beamformed: ::std::os::raw::c_uint, + has_bandwidth: ::std::os::raw::c_uint, + has_fec: ::std::os::raw::c_uint, + has_group_id: ::std::os::raw::c_uint, + has_partial_aid: ::std::os::raw::c_uint, + stbc: ::std::os::raw::c_uint, + txop_ps_not_allowed: ::std::os::raw::c_uint, + short_gi: ::std::os::raw::c_uint, + short_gi_nsym_disambig: ::std::os::raw::c_uint, + ldpc_extra_ofdm_symbol: ::std::os::raw::c_uint, + beamformed: ::std::os::raw::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 2usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let has_stbc: u32 = unsafe { ::std::mem::transmute(has_stbc) }; + has_stbc as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let has_txop_ps_not_allowed: u32 = + unsafe { ::std::mem::transmute(has_txop_ps_not_allowed) }; + has_txop_ps_not_allowed as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let has_short_gi: u32 = unsafe { ::std::mem::transmute(has_short_gi) }; + has_short_gi as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let has_short_gi_nsym_disambig: u32 = + unsafe { ::std::mem::transmute(has_short_gi_nsym_disambig) }; + has_short_gi_nsym_disambig as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let has_ldpc_extra_ofdm_symbol: u32 = + unsafe { ::std::mem::transmute(has_ldpc_extra_ofdm_symbol) }; + has_ldpc_extra_ofdm_symbol as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let has_beamformed: u32 = unsafe { ::std::mem::transmute(has_beamformed) }; + has_beamformed as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let has_bandwidth: u32 = unsafe { ::std::mem::transmute(has_bandwidth) }; + has_bandwidth as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let has_fec: u32 = unsafe { ::std::mem::transmute(has_fec) }; + has_fec as u64 + }); + __bindgen_bitfield_unit.set(8usize, 1u8, { + let has_group_id: u32 = unsafe { ::std::mem::transmute(has_group_id) }; + has_group_id as u64 + }); + __bindgen_bitfield_unit.set(9usize, 1u8, { + let has_partial_aid: u32 = unsafe { ::std::mem::transmute(has_partial_aid) }; + has_partial_aid as u64 + }); + __bindgen_bitfield_unit.set(10usize, 1u8, { + let stbc: u32 = unsafe { ::std::mem::transmute(stbc) }; + stbc as u64 + }); + __bindgen_bitfield_unit.set(11usize, 1u8, { + let txop_ps_not_allowed: u32 = unsafe { ::std::mem::transmute(txop_ps_not_allowed) }; + txop_ps_not_allowed as u64 + }); + __bindgen_bitfield_unit.set(12usize, 1u8, { + let short_gi: u32 = unsafe { ::std::mem::transmute(short_gi) }; + short_gi as u64 + }); + __bindgen_bitfield_unit.set(13usize, 1u8, { + let short_gi_nsym_disambig: u32 = + unsafe { ::std::mem::transmute(short_gi_nsym_disambig) }; + short_gi_nsym_disambig as u64 + }); + __bindgen_bitfield_unit.set(14usize, 1u8, { + let ldpc_extra_ofdm_symbol: u32 = + unsafe { ::std::mem::transmute(ldpc_extra_ofdm_symbol) }; + ldpc_extra_ofdm_symbol as u64 + }); + __bindgen_bitfield_unit.set(15usize, 1u8, { + let beamformed: u32 = unsafe { ::std::mem::transmute(beamformed) }; + beamformed as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[repr(align(4))] +#[derive(Debug, Copy, Clone)] +pub struct ieee_802_11ad { + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub mcs: u8, +} +#[test] +fn bindgen_test_layout_ieee_802_11ad() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(ieee_802_11ad)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(ieee_802_11ad)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).mcs) as usize - ptr as usize }, + 1usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11ad), + "::", + stringify!(mcs) + ) + ); +} +impl ieee_802_11ad { + #[inline] + pub fn has_mcs_index(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_mcs_index(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + has_mcs_index: ::std::os::raw::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let has_mcs_index: u32 = unsafe { ::std::mem::transmute(has_mcs_index) }; + has_mcs_index as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[repr(align(4))] +#[derive(Debug, Copy, Clone)] +pub struct ieee_802_11ax { + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>, + pub __bindgen_padding_0: u8, +} +#[test] +fn bindgen_test_layout_ieee_802_11ax() { + assert_eq!( + ::std::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(ieee_802_11ax)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(ieee_802_11ax)) + ); +} +impl ieee_802_11ax { + #[inline] + pub fn has_mcs_index(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_mcs_index(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_bwru(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_bwru(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_gi(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_gi(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub fn nsts(&self) -> u8 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 4u8) as u8) } + } + #[inline] + pub fn set_nsts(&mut self, val: u8) { + unsafe { + let val: u8 = ::std::mem::transmute(val); + self._bitfield_1.set(3usize, 4u8, val as u64) + } + } + #[inline] + pub fn mcs(&self) -> u8 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) } + } + #[inline] + pub fn set_mcs(&mut self, val: u8) { + unsafe { + let val: u8 = ::std::mem::transmute(val); + self._bitfield_1.set(8usize, 4u8, val as u64) + } + } + #[inline] + pub fn bwru(&self) -> u8 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) } + } + #[inline] + pub fn set_bwru(&mut self, val: u8) { + unsafe { + let val: u8 = ::std::mem::transmute(val); + self._bitfield_1.set(12usize, 4u8, val as u64) + } + } + #[inline] + pub fn gi(&self) -> u8 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 2u8) as u8) } + } + #[inline] + pub fn set_gi(&mut self, val: u8) { + unsafe { + let val: u8 = ::std::mem::transmute(val); + self._bitfield_1.set(16usize, 2u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + has_mcs_index: ::std::os::raw::c_uint, + has_bwru: ::std::os::raw::c_uint, + has_gi: ::std::os::raw::c_uint, + nsts: u8, + mcs: u8, + bwru: u8, + gi: u8, + ) -> __BindgenBitfieldUnit<[u8; 3usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let has_mcs_index: u32 = unsafe { ::std::mem::transmute(has_mcs_index) }; + has_mcs_index as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let has_bwru: u32 = unsafe { ::std::mem::transmute(has_bwru) }; + has_bwru as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let has_gi: u32 = unsafe { ::std::mem::transmute(has_gi) }; + has_gi as u64 + }); + __bindgen_bitfield_unit.set(3usize, 4u8, { + let nsts: u8 = unsafe { ::std::mem::transmute(nsts) }; + nsts as u64 + }); + __bindgen_bitfield_unit.set(8usize, 4u8, { + let mcs: u8 = unsafe { ::std::mem::transmute(mcs) }; + mcs as u64 + }); + __bindgen_bitfield_unit.set(12usize, 4u8, { + let bwru: u8 = unsafe { ::std::mem::transmute(bwru) }; + bwru as u64 + }); + __bindgen_bitfield_unit.set(16usize, 2u8, { + let gi: u8 = unsafe { ::std::mem::transmute(gi) }; + gi as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[repr(align(4))] +#[derive(Debug, Copy, Clone)] +pub struct ieee_802_11be_user_info { + pub _bitfield_align_1: [u16; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +#[test] +fn bindgen_test_layout_ieee_802_11be_user_info() { + assert_eq!( + ::std::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(ieee_802_11be_user_info)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(ieee_802_11be_user_info)) + ); +} +impl ieee_802_11be_user_info { + #[inline] + pub fn sta_id_known(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_sta_id_known(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn mcs_known(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_mcs_known(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub fn coding_known(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_coding_known(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub fn rsv_known(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } + } + #[inline] + pub fn set_rsv_known(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub fn nsts_known(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } + } + #[inline] + pub fn set_nsts_known(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub fn bf_known(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } + } + #[inline] + pub fn set_bf_known(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub fn spatial_config_known(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } + } + #[inline] + pub fn set_spatial_config_known(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub fn data_for_this_user(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } + } + #[inline] + pub fn set_data_for_this_user(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub fn sta_id(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 11u8) as u32) } + } + #[inline] + pub fn set_sta_id(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(8usize, 11u8, val as u64) + } + } + #[inline] + pub fn ldpc_coding(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(19usize, 1u8) as u32) } + } + #[inline] + pub fn set_ldpc_coding(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(19usize, 1u8, val as u64) + } + } + #[inline] + pub fn mcs(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(20usize, 4u8) as u32) } + } + #[inline] + pub fn set_mcs(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(20usize, 4u8, val as u64) + } + } + #[inline] + pub fn nsts(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(24usize, 4u8) as u32) } + } + #[inline] + pub fn set_nsts(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(24usize, 4u8, val as u64) + } + } + #[inline] + pub fn rsv(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(28usize, 1u8) as u32) } + } + #[inline] + pub fn set_rsv(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(28usize, 1u8, val as u64) + } + } + #[inline] + pub fn beamform(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(29usize, 1u8) as u32) } + } + #[inline] + pub fn set_beamform(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(29usize, 1u8, val as u64) + } + } + #[inline] + pub fn rsv2(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(30usize, 2u8) as u32) } + } + #[inline] + pub fn set_rsv2(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(30usize, 2u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + sta_id_known: ::std::os::raw::c_uint, + mcs_known: ::std::os::raw::c_uint, + coding_known: ::std::os::raw::c_uint, + rsv_known: ::std::os::raw::c_uint, + nsts_known: ::std::os::raw::c_uint, + bf_known: ::std::os::raw::c_uint, + spatial_config_known: ::std::os::raw::c_uint, + data_for_this_user: ::std::os::raw::c_uint, + sta_id: ::std::os::raw::c_uint, + ldpc_coding: ::std::os::raw::c_uint, + mcs: ::std::os::raw::c_uint, + nsts: ::std::os::raw::c_uint, + rsv: ::std::os::raw::c_uint, + beamform: ::std::os::raw::c_uint, + rsv2: ::std::os::raw::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let sta_id_known: u32 = unsafe { ::std::mem::transmute(sta_id_known) }; + sta_id_known as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let mcs_known: u32 = unsafe { ::std::mem::transmute(mcs_known) }; + mcs_known as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let coding_known: u32 = unsafe { ::std::mem::transmute(coding_known) }; + coding_known as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let rsv_known: u32 = unsafe { ::std::mem::transmute(rsv_known) }; + rsv_known as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let nsts_known: u32 = unsafe { ::std::mem::transmute(nsts_known) }; + nsts_known as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let bf_known: u32 = unsafe { ::std::mem::transmute(bf_known) }; + bf_known as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let spatial_config_known: u32 = unsafe { ::std::mem::transmute(spatial_config_known) }; + spatial_config_known as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let data_for_this_user: u32 = unsafe { ::std::mem::transmute(data_for_this_user) }; + data_for_this_user as u64 + }); + __bindgen_bitfield_unit.set(8usize, 11u8, { + let sta_id: u32 = unsafe { ::std::mem::transmute(sta_id) }; + sta_id as u64 + }); + __bindgen_bitfield_unit.set(19usize, 1u8, { + let ldpc_coding: u32 = unsafe { ::std::mem::transmute(ldpc_coding) }; + ldpc_coding as u64 + }); + __bindgen_bitfield_unit.set(20usize, 4u8, { + let mcs: u32 = unsafe { ::std::mem::transmute(mcs) }; + mcs as u64 + }); + __bindgen_bitfield_unit.set(24usize, 4u8, { + let nsts: u32 = unsafe { ::std::mem::transmute(nsts) }; + nsts as u64 + }); + __bindgen_bitfield_unit.set(28usize, 1u8, { + let rsv: u32 = unsafe { ::std::mem::transmute(rsv) }; + rsv as u64 + }); + __bindgen_bitfield_unit.set(29usize, 1u8, { + let beamform: u32 = unsafe { ::std::mem::transmute(beamform) }; + beamform as u64 + }); + __bindgen_bitfield_unit.set(30usize, 2u8, { + let rsv2: u32 = unsafe { ::std::mem::transmute(rsv2) }; + rsv2 as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee_802_11be { + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub bandwidth: u8, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 1usize]>, + pub num_users: u8, + pub user: [ieee_802_11be_user_info; 4usize], +} +#[test] +fn bindgen_test_layout_ieee_802_11be() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 20usize, + concat!("Size of: ", stringify!(ieee_802_11be)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(ieee_802_11be)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).bandwidth) as usize - ptr as usize }, + 1usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11be), + "::", + stringify!(bandwidth) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).num_users) as usize - ptr as usize }, + 3usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11be), + "::", + stringify!(num_users) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).user) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11be), + "::", + stringify!(user) + ) + ); +} +impl ieee_802_11be { + #[inline] + pub fn has_ru_mru_size(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_ru_mru_size(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_gi(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_gi(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_bandwidth(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_bandwidth(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + has_ru_mru_size: ::std::os::raw::c_uint, + has_gi: ::std::os::raw::c_uint, + has_bandwidth: ::std::os::raw::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let has_ru_mru_size: u32 = unsafe { ::std::mem::transmute(has_ru_mru_size) }; + has_ru_mru_size as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let has_gi: u32 = unsafe { ::std::mem::transmute(has_gi) }; + has_gi as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let has_bandwidth: u32 = unsafe { ::std::mem::transmute(has_bandwidth) }; + has_bandwidth as u64 + }); + __bindgen_bitfield_unit + } + #[inline] + pub fn ru_mru_size(&self) -> u8 { + unsafe { ::std::mem::transmute(self._bitfield_2.get(0usize, 4u8) as u8) } + } + #[inline] + pub fn set_ru_mru_size(&mut self, val: u8) { + unsafe { + let val: u8 = ::std::mem::transmute(val); + self._bitfield_2.set(0usize, 4u8, val as u64) + } + } + #[inline] + pub fn gi(&self) -> u8 { + unsafe { ::std::mem::transmute(self._bitfield_2.get(4usize, 2u8) as u8) } + } + #[inline] + pub fn set_gi(&mut self, val: u8) { + unsafe { + let val: u8 = ::std::mem::transmute(val); + self._bitfield_2.set(4usize, 2u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_2(ru_mru_size: u8, gi: u8) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 4u8, { + let ru_mru_size: u8 = unsafe { ::std::mem::transmute(ru_mru_size) }; + ru_mru_size as u64 + }); + __bindgen_bitfield_unit.set(4usize, 2u8, { + let gi: u8 = unsafe { ::std::mem::transmute(gi) }; + gi as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ieee_802_11_phy_info { + pub info_11_fhss: ieee_802_11_fhss, + pub info_11b: ieee_802_11b, + pub info_11a: ieee_802_11a, + pub info_11g: ieee_802_11g, + pub info_11n: ieee_802_11n, + pub info_11ac: ieee_802_11ac, + pub info_11ad: ieee_802_11ad, + pub info_11ax: ieee_802_11ax, + pub info_11be: ieee_802_11be, +} +#[test] +fn bindgen_test_layout_ieee_802_11_phy_info() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 20usize, + concat!("Size of: ", stringify!(ieee_802_11_phy_info)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(ieee_802_11_phy_info)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).info_11_fhss) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11_phy_info), + "::", + stringify!(info_11_fhss) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).info_11b) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11_phy_info), + "::", + stringify!(info_11b) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).info_11a) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11_phy_info), + "::", + stringify!(info_11a) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).info_11g) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11_phy_info), + "::", + stringify!(info_11g) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).info_11n) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11_phy_info), + "::", + stringify!(info_11n) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).info_11ac) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11_phy_info), + "::", + stringify!(info_11ac) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).info_11ad) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11_phy_info), + "::", + stringify!(info_11ad) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).info_11ax) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11_phy_info), + "::", + stringify!(info_11ax) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).info_11be) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11_phy_info), + "::", + stringify!(info_11be) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ieee_802_11_phdr { + pub fcs_len: ::std::os::raw::c_int, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub phy: ::std::os::raw::c_uint, + pub phy_info: ieee_802_11_phy_info, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 2usize]>, + pub channel: u16, + pub frequency: u32, + pub data_rate: u16, + pub signal_percent: u8, + pub noise_percent: u8, + pub signal_dbm: i8, + pub noise_dbm: i8, + pub signal_db: u8, + pub noise_db: u8, + pub tsf_timestamp: u64, + pub aggregate_flags: u32, + pub aggregate_id: u32, + pub zero_length_psdu_type: u8, +} +#[test] +fn bindgen_test_layout_ieee_802_11_phdr() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 72usize, + concat!("Size of: ", stringify!(ieee_802_11_phdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ieee_802_11_phdr)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).fcs_len) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11_phdr), + "::", + stringify!(fcs_len) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).phy) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11_phdr), + "::", + stringify!(phy) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).phy_info) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11_phdr), + "::", + stringify!(phy_info) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).channel) as usize - ptr as usize }, + 34usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11_phdr), + "::", + stringify!(channel) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).frequency) as usize - ptr as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11_phdr), + "::", + stringify!(frequency) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).data_rate) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11_phdr), + "::", + stringify!(data_rate) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).signal_percent) as usize - ptr as usize }, + 42usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11_phdr), + "::", + stringify!(signal_percent) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).noise_percent) as usize - ptr as usize }, + 43usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11_phdr), + "::", + stringify!(noise_percent) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).signal_dbm) as usize - ptr as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11_phdr), + "::", + stringify!(signal_dbm) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).noise_dbm) as usize - ptr as usize }, + 45usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11_phdr), + "::", + stringify!(noise_dbm) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).signal_db) as usize - ptr as usize }, + 46usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11_phdr), + "::", + stringify!(signal_db) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).noise_db) as usize - ptr as usize }, + 47usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11_phdr), + "::", + stringify!(noise_db) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tsf_timestamp) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11_phdr), + "::", + stringify!(tsf_timestamp) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).aggregate_flags) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11_phdr), + "::", + stringify!(aggregate_flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).aggregate_id) as usize - ptr as usize }, + 60usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11_phdr), + "::", + stringify!(aggregate_id) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).zero_length_psdu_type) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(ieee_802_11_phdr), + "::", + stringify!(zero_length_psdu_type) + ) + ); +} +impl ieee_802_11_phdr { + #[inline] + pub fn decrypted(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_decrypted(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn datapad(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_datapad(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub fn no_a_msdus(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_no_a_msdus(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + decrypted: ::std::os::raw::c_uint, + datapad: ::std::os::raw::c_uint, + no_a_msdus: ::std::os::raw::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let decrypted: u32 = unsafe { ::std::mem::transmute(decrypted) }; + decrypted as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let datapad: u32 = unsafe { ::std::mem::transmute(datapad) }; + datapad as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let no_a_msdus: u32 = unsafe { ::std::mem::transmute(no_a_msdus) }; + no_a_msdus as u64 + }); + __bindgen_bitfield_unit + } + #[inline] + pub fn has_channel(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_2.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_channel(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_2.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_frequency(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_2.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_frequency(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_2.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_data_rate(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_2.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_data_rate(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_2.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_signal_percent(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_2.get(3usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_signal_percent(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_2.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_noise_percent(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_2.get(4usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_noise_percent(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_2.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_signal_dbm(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_2.get(5usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_signal_dbm(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_2.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_noise_dbm(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_2.get(6usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_noise_dbm(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_2.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_signal_db(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_2.get(7usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_signal_db(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_2.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_noise_db(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_2.get(8usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_noise_db(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_2.set(8usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_tsf_timestamp(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_2.get(9usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_tsf_timestamp(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_2.set(9usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_aggregate_info(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_2.get(10usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_aggregate_info(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_2.set(10usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_zero_length_psdu_type(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_2.get(11usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_zero_length_psdu_type(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_2.set(11usize, 1u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_2( + has_channel: ::std::os::raw::c_uint, + has_frequency: ::std::os::raw::c_uint, + has_data_rate: ::std::os::raw::c_uint, + has_signal_percent: ::std::os::raw::c_uint, + has_noise_percent: ::std::os::raw::c_uint, + has_signal_dbm: ::std::os::raw::c_uint, + has_noise_dbm: ::std::os::raw::c_uint, + has_signal_db: ::std::os::raw::c_uint, + has_noise_db: ::std::os::raw::c_uint, + has_tsf_timestamp: ::std::os::raw::c_uint, + has_aggregate_info: ::std::os::raw::c_uint, + has_zero_length_psdu_type: ::std::os::raw::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 2usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let has_channel: u32 = unsafe { ::std::mem::transmute(has_channel) }; + has_channel as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let has_frequency: u32 = unsafe { ::std::mem::transmute(has_frequency) }; + has_frequency as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let has_data_rate: u32 = unsafe { ::std::mem::transmute(has_data_rate) }; + has_data_rate as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let has_signal_percent: u32 = unsafe { ::std::mem::transmute(has_signal_percent) }; + has_signal_percent as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let has_noise_percent: u32 = unsafe { ::std::mem::transmute(has_noise_percent) }; + has_noise_percent as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let has_signal_dbm: u32 = unsafe { ::std::mem::transmute(has_signal_dbm) }; + has_signal_dbm as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let has_noise_dbm: u32 = unsafe { ::std::mem::transmute(has_noise_dbm) }; + has_noise_dbm as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let has_signal_db: u32 = unsafe { ::std::mem::transmute(has_signal_db) }; + has_signal_db as u64 + }); + __bindgen_bitfield_unit.set(8usize, 1u8, { + let has_noise_db: u32 = unsafe { ::std::mem::transmute(has_noise_db) }; + has_noise_db as u64 + }); + __bindgen_bitfield_unit.set(9usize, 1u8, { + let has_tsf_timestamp: u32 = unsafe { ::std::mem::transmute(has_tsf_timestamp) }; + has_tsf_timestamp as u64 + }); + __bindgen_bitfield_unit.set(10usize, 1u8, { + let has_aggregate_info: u32 = unsafe { ::std::mem::transmute(has_aggregate_info) }; + has_aggregate_info as u64 + }); + __bindgen_bitfield_unit.set(11usize, 1u8, { + let has_zero_length_psdu_type: u32 = + unsafe { ::std::mem::transmute(has_zero_length_psdu_type) }; + has_zero_length_psdu_type as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cosine_phdr { + pub encap: u8, + pub direction: u8, + pub if_name: [::std::os::raw::c_char; 128usize], + pub pro: u16, + pub off: u16, + pub pri: u16, + pub rm: u16, + pub err: u16, +} +#[test] +fn bindgen_test_layout_cosine_phdr() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 140usize, + concat!("Size of: ", stringify!(cosine_phdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 2usize, + concat!("Alignment of ", stringify!(cosine_phdr)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).encap) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(cosine_phdr), + "::", + stringify!(encap) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).direction) as usize - ptr as usize }, + 1usize, + concat!( + "Offset of field: ", + stringify!(cosine_phdr), + "::", + stringify!(direction) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).if_name) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(cosine_phdr), + "::", + stringify!(if_name) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pro) as usize - ptr as usize }, + 130usize, + concat!( + "Offset of field: ", + stringify!(cosine_phdr), + "::", + stringify!(pro) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).off) as usize - ptr as usize }, + 132usize, + concat!( + "Offset of field: ", + stringify!(cosine_phdr), + "::", + stringify!(off) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pri) as usize - ptr as usize }, + 134usize, + concat!( + "Offset of field: ", + stringify!(cosine_phdr), + "::", + stringify!(pri) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).rm) as usize - ptr as usize }, + 136usize, + concat!( + "Offset of field: ", + stringify!(cosine_phdr), + "::", + stringify!(rm) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).err) as usize - ptr as usize }, + 138usize, + concat!( + "Offset of field: ", + stringify!(cosine_phdr), + "::", + stringify!(err) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct irda_phdr { + pub pkttype: u16, +} +#[test] +fn bindgen_test_layout_irda_phdr() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 2usize, + concat!("Size of: ", stringify!(irda_phdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 2usize, + concat!("Alignment of ", stringify!(irda_phdr)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pkttype) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(irda_phdr), + "::", + stringify!(pkttype) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nettl_phdr { + pub subsys: u16, + pub devid: u32, + pub kind: u32, + pub pid: i32, + pub uid: u32, +} +#[test] +fn bindgen_test_layout_nettl_phdr() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 20usize, + concat!("Size of: ", stringify!(nettl_phdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(nettl_phdr)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).subsys) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(nettl_phdr), + "::", + stringify!(subsys) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).devid) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(nettl_phdr), + "::", + stringify!(devid) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(nettl_phdr), + "::", + stringify!(kind) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pid) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(nettl_phdr), + "::", + stringify!(pid) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).uid) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(nettl_phdr), + "::", + stringify!(uid) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mtp2_phdr { + pub sent: u8, + pub annex_a_used: u8, + pub link_number: u16, +} +#[test] +fn bindgen_test_layout_mtp2_phdr() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(mtp2_phdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 2usize, + concat!("Alignment of ", stringify!(mtp2_phdr)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sent) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(mtp2_phdr), + "::", + stringify!(sent) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).annex_a_used) as usize - ptr as usize }, + 1usize, + concat!( + "Offset of field: ", + stringify!(mtp2_phdr), + "::", + stringify!(annex_a_used) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).link_number) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(mtp2_phdr), + "::", + stringify!(link_number) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union k12_input_info_t { + pub atm: k12_input_info_t__bindgen_ty_1, + pub ds0mask: u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct k12_input_info_t__bindgen_ty_1 { + pub vp: u16, + pub vc: u16, + pub cid: u16, +} +#[test] +fn bindgen_test_layout_k12_input_info_t__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 6usize, + concat!("Size of: ", stringify!(k12_input_info_t__bindgen_ty_1)) + ); + assert_eq!( + ::std::mem::align_of::(), + 2usize, + concat!("Alignment of ", stringify!(k12_input_info_t__bindgen_ty_1)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).vp) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(k12_input_info_t__bindgen_ty_1), + "::", + stringify!(vp) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).vc) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(k12_input_info_t__bindgen_ty_1), + "::", + stringify!(vc) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).cid) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(k12_input_info_t__bindgen_ty_1), + "::", + stringify!(cid) + ) + ); +} +#[test] +fn bindgen_test_layout_k12_input_info_t() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(k12_input_info_t)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(k12_input_info_t)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).atm) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(k12_input_info_t), + "::", + stringify!(atm) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ds0mask) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(k12_input_info_t), + "::", + stringify!(ds0mask) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct k12_phdr { + pub input: u32, + pub input_name: *const ::std::os::raw::c_char, + pub stack_file: *const ::std::os::raw::c_char, + pub input_type: u32, + pub input_info: k12_input_info_t, + pub extra_info: *mut u8, + pub extra_length: u32, + pub stuff: *mut ::std::os::raw::c_void, +} +#[test] +fn bindgen_test_layout_k12_phdr() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 64usize, + concat!("Size of: ", stringify!(k12_phdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(k12_phdr)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(k12_phdr), + "::", + stringify!(input) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).input_name) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(k12_phdr), + "::", + stringify!(input_name) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).stack_file) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(k12_phdr), + "::", + stringify!(stack_file) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).input_type) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(k12_phdr), + "::", + stringify!(input_type) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).input_info) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(k12_phdr), + "::", + stringify!(input_info) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).extra_info) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(k12_phdr), + "::", + stringify!(extra_info) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).extra_length) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(k12_phdr), + "::", + stringify!(extra_length) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).stuff) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(k12_phdr), + "::", + stringify!(stuff) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct lapd_phdr { + pub pkttype: u16, + pub we_network: u8, +} +#[test] +fn bindgen_test_layout_lapd_phdr() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(lapd_phdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 2usize, + concat!("Alignment of ", stringify!(lapd_phdr)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pkttype) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(lapd_phdr), + "::", + stringify!(pkttype) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).we_network) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(lapd_phdr), + "::", + stringify!(we_network) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wtap { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct catapult_dct2000_phdr { + pub inner_pseudo_header: catapult_dct2000_phdr__bindgen_ty_1, + pub seek_off: i64, + pub wth: *mut wtap, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union catapult_dct2000_phdr__bindgen_ty_1 { + pub isdn: isdn_phdr, + pub atm: atm_phdr, + pub p2p: p2p_phdr, +} +#[test] +fn bindgen_test_layout_catapult_dct2000_phdr__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 28usize, + concat!("Size of: ", stringify!(catapult_dct2000_phdr__bindgen_ty_1)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!( + "Alignment of ", + stringify!(catapult_dct2000_phdr__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).isdn) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(catapult_dct2000_phdr__bindgen_ty_1), + "::", + stringify!(isdn) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).atm) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(catapult_dct2000_phdr__bindgen_ty_1), + "::", + stringify!(atm) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).p2p) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(catapult_dct2000_phdr__bindgen_ty_1), + "::", + stringify!(p2p) + ) + ); +} +#[test] +fn bindgen_test_layout_catapult_dct2000_phdr() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(catapult_dct2000_phdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(catapult_dct2000_phdr)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).inner_pseudo_header) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(catapult_dct2000_phdr), + "::", + stringify!(inner_pseudo_header) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).seek_off) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(catapult_dct2000_phdr), + "::", + stringify!(seek_off) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).wth) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(catapult_dct2000_phdr), + "::", + stringify!(wth) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct erf_phdr { + pub ts: u64, + pub type_: u8, + pub flags: u8, + pub rlen: u16, + pub lctr: u16, + pub wlen: u16, +} +#[test] +fn bindgen_test_layout_erf_phdr() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(erf_phdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(erf_phdr)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ts) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(erf_phdr), + "::", + stringify!(ts) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(erf_phdr), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 9usize, + concat!( + "Offset of field: ", + stringify!(erf_phdr), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).rlen) as usize - ptr as usize }, + 10usize, + concat!( + "Offset of field: ", + stringify!(erf_phdr), + "::", + stringify!(rlen) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).lctr) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(erf_phdr), + "::", + stringify!(lctr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).wlen) as usize - ptr as usize }, + 14usize, + concat!( + "Offset of field: ", + stringify!(erf_phdr), + "::", + stringify!(wlen) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct erf_ehdr { + pub ehdr: u64, +} +#[test] +fn bindgen_test_layout_erf_ehdr() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(erf_ehdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(erf_ehdr)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ehdr) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(erf_ehdr), + "::", + stringify!(ehdr) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wtap_erf_eth_hdr { + pub offset: u8, + pub pad: u8, +} +#[test] +fn bindgen_test_layout_wtap_erf_eth_hdr() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 2usize, + concat!("Size of: ", stringify!(wtap_erf_eth_hdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(wtap_erf_eth_hdr)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_erf_eth_hdr), + "::", + stringify!(offset) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pad) as usize - ptr as usize }, + 1usize, + concat!( + "Offset of field: ", + stringify!(wtap_erf_eth_hdr), + "::", + stringify!(pad) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct erf_mc_phdr { + pub phdr: erf_phdr, + pub ehdr_list: [erf_ehdr; 16usize], + pub subhdr: erf_mc_phdr__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union erf_mc_phdr__bindgen_ty_1 { + pub eth_hdr: wtap_erf_eth_hdr, + pub mc_hdr: u32, + pub aal2_hdr: u32, +} +#[test] +fn bindgen_test_layout_erf_mc_phdr__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(erf_mc_phdr__bindgen_ty_1)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(erf_mc_phdr__bindgen_ty_1)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).eth_hdr) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(erf_mc_phdr__bindgen_ty_1), + "::", + stringify!(eth_hdr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).mc_hdr) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(erf_mc_phdr__bindgen_ty_1), + "::", + stringify!(mc_hdr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).aal2_hdr) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(erf_mc_phdr__bindgen_ty_1), + "::", + stringify!(aal2_hdr) + ) + ); +} +#[test] +fn bindgen_test_layout_erf_mc_phdr() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 152usize, + concat!("Size of: ", stringify!(erf_mc_phdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(erf_mc_phdr)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).phdr) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(erf_mc_phdr), + "::", + stringify!(phdr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ehdr_list) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(erf_mc_phdr), + "::", + stringify!(ehdr_list) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).subhdr) as usize - ptr as usize }, + 144usize, + concat!( + "Offset of field: ", + stringify!(erf_mc_phdr), + "::", + stringify!(subhdr) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sita_phdr { + pub sita_flags: u8, + pub sita_signals: u8, + pub sita_errors1: u8, + pub sita_errors2: u8, + pub sita_proto: u8, +} +#[test] +fn bindgen_test_layout_sita_phdr() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 5usize, + concat!("Size of: ", stringify!(sita_phdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(sita_phdr)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sita_flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sita_phdr), + "::", + stringify!(sita_flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sita_signals) as usize - ptr as usize }, + 1usize, + concat!( + "Offset of field: ", + stringify!(sita_phdr), + "::", + stringify!(sita_signals) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sita_errors1) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(sita_phdr), + "::", + stringify!(sita_errors1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sita_errors2) as usize - ptr as usize }, + 3usize, + concat!( + "Offset of field: ", + stringify!(sita_phdr), + "::", + stringify!(sita_errors2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sita_proto) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(sita_phdr), + "::", + stringify!(sita_proto) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bthci_phdr { + pub sent: bool, + pub channel: u32, +} +#[test] +fn bindgen_test_layout_bthci_phdr() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(bthci_phdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(bthci_phdr)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sent) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(bthci_phdr), + "::", + stringify!(sent) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).channel) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(bthci_phdr), + "::", + stringify!(channel) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct btmon_phdr { + pub adapter_id: u16, + pub opcode: u16, +} +#[test] +fn bindgen_test_layout_btmon_phdr() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(btmon_phdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 2usize, + concat!("Alignment of ", stringify!(btmon_phdr)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).adapter_id) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(btmon_phdr), + "::", + stringify!(adapter_id) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).opcode) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(btmon_phdr), + "::", + stringify!(opcode) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct l1event_phdr { + pub uton: bool, +} +#[test] +fn bindgen_test_layout_l1event_phdr() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 1usize, + concat!("Size of: ", stringify!(l1event_phdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(l1event_phdr)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).uton) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(l1event_phdr), + "::", + stringify!(uton) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct i2c_phdr { + pub is_event: u8, + pub bus: u8, + pub flags: u32, +} +#[test] +fn bindgen_test_layout_i2c_phdr() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(i2c_phdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(i2c_phdr)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).is_event) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(i2c_phdr), + "::", + stringify!(is_event) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).bus) as usize - ptr as usize }, + 1usize, + concat!( + "Offset of field: ", + stringify!(i2c_phdr), + "::", + stringify!(bus) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(i2c_phdr), + "::", + stringify!(flags) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct gsm_um_phdr { + pub uplink: bool, + pub channel: u8, + pub bsic: u8, + pub arfcn: u16, + pub tdma_frame: u32, + pub error: u8, + pub timeshift: u16, +} +#[test] +fn bindgen_test_layout_gsm_um_phdr() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(gsm_um_phdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(gsm_um_phdr)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).uplink) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(gsm_um_phdr), + "::", + stringify!(uplink) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).channel) as usize - ptr as usize }, + 1usize, + concat!( + "Offset of field: ", + stringify!(gsm_um_phdr), + "::", + stringify!(channel) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).bsic) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(gsm_um_phdr), + "::", + stringify!(bsic) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).arfcn) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(gsm_um_phdr), + "::", + stringify!(arfcn) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tdma_frame) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(gsm_um_phdr), + "::", + stringify!(tdma_frame) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).error) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(gsm_um_phdr), + "::", + stringify!(error) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).timeshift) as usize - ptr as usize }, + 14usize, + concat!( + "Offset of field: ", + stringify!(gsm_um_phdr), + "::", + stringify!(timeshift) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nstr_phdr { + pub rec_offset: i64, + pub rec_len: i32, + pub nicno_offset: u8, + pub nicno_len: u8, + pub dir_offset: u8, + pub dir_len: u8, + pub eth_offset: u16, + pub pcb_offset: u8, + pub l_pcb_offset: u8, + pub rec_type: u8, + pub vlantag_offset: u8, + pub coreid_offset: u8, + pub srcnodeid_offset: u8, + pub destnodeid_offset: u8, + pub clflags_offset: u8, + pub src_vmname_len_offset: u8, + pub dst_vmname_len_offset: u8, + pub ns_activity_offset: u8, + pub data_offset: u8, +} +#[test] +fn bindgen_test_layout_nstr_phdr() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(nstr_phdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(nstr_phdr)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).rec_offset) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(nstr_phdr), + "::", + stringify!(rec_offset) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).rec_len) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(nstr_phdr), + "::", + stringify!(rec_len) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).nicno_offset) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(nstr_phdr), + "::", + stringify!(nicno_offset) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).nicno_len) as usize - ptr as usize }, + 13usize, + concat!( + "Offset of field: ", + stringify!(nstr_phdr), + "::", + stringify!(nicno_len) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dir_offset) as usize - ptr as usize }, + 14usize, + concat!( + "Offset of field: ", + stringify!(nstr_phdr), + "::", + stringify!(dir_offset) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dir_len) as usize - ptr as usize }, + 15usize, + concat!( + "Offset of field: ", + stringify!(nstr_phdr), + "::", + stringify!(dir_len) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).eth_offset) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(nstr_phdr), + "::", + stringify!(eth_offset) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pcb_offset) as usize - ptr as usize }, + 18usize, + concat!( + "Offset of field: ", + stringify!(nstr_phdr), + "::", + stringify!(pcb_offset) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).l_pcb_offset) as usize - ptr as usize }, + 19usize, + concat!( + "Offset of field: ", + stringify!(nstr_phdr), + "::", + stringify!(l_pcb_offset) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).rec_type) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(nstr_phdr), + "::", + stringify!(rec_type) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).vlantag_offset) as usize - ptr as usize }, + 21usize, + concat!( + "Offset of field: ", + stringify!(nstr_phdr), + "::", + stringify!(vlantag_offset) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).coreid_offset) as usize - ptr as usize }, + 22usize, + concat!( + "Offset of field: ", + stringify!(nstr_phdr), + "::", + stringify!(coreid_offset) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).srcnodeid_offset) as usize - ptr as usize }, + 23usize, + concat!( + "Offset of field: ", + stringify!(nstr_phdr), + "::", + stringify!(srcnodeid_offset) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).destnodeid_offset) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(nstr_phdr), + "::", + stringify!(destnodeid_offset) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).clflags_offset) as usize - ptr as usize }, + 25usize, + concat!( + "Offset of field: ", + stringify!(nstr_phdr), + "::", + stringify!(clflags_offset) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).src_vmname_len_offset) as usize - ptr as usize }, + 26usize, + concat!( + "Offset of field: ", + stringify!(nstr_phdr), + "::", + stringify!(src_vmname_len_offset) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dst_vmname_len_offset) as usize - ptr as usize }, + 27usize, + concat!( + "Offset of field: ", + stringify!(nstr_phdr), + "::", + stringify!(dst_vmname_len_offset) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ns_activity_offset) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(nstr_phdr), + "::", + stringify!(ns_activity_offset) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).data_offset) as usize - ptr as usize }, + 29usize, + concat!( + "Offset of field: ", + stringify!(nstr_phdr), + "::", + stringify!(data_offset) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nokia_phdr { + pub eth: eth_phdr, + pub stuff: [u8; 4usize], +} +#[test] +fn bindgen_test_layout_nokia_phdr() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(nokia_phdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(nokia_phdr)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).eth) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(nokia_phdr), + "::", + stringify!(eth) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).stuff) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(nokia_phdr), + "::", + stringify!(stuff) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct llcp_phdr { + pub adapter: u8, + pub flags: u8, +} +#[test] +fn bindgen_test_layout_llcp_phdr() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 2usize, + concat!("Size of: ", stringify!(llcp_phdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(llcp_phdr)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).adapter) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(llcp_phdr), + "::", + stringify!(adapter) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 1usize, + concat!( + "Offset of field: ", + stringify!(llcp_phdr), + "::", + stringify!(flags) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct logcat_phdr { + pub version: ::std::os::raw::c_int, +} +#[test] +fn bindgen_test_layout_logcat_phdr() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(logcat_phdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(logcat_phdr)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(logcat_phdr), + "::", + stringify!(version) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct netmon_phdr { + pub title: *mut u8, + pub descLength: u32, + pub description: *mut u8, + pub sub_encap: ::std::os::raw::c_uint, + pub subheader: netmon_phdr_sub_wtap_pseudo_header, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union netmon_phdr_sub_wtap_pseudo_header { + pub eth: eth_phdr, + pub atm: atm_phdr, + pub ieee_802_11: ieee_802_11_phdr, +} +#[test] +fn bindgen_test_layout_netmon_phdr_sub_wtap_pseudo_header() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 72usize, + concat!("Size of: ", stringify!(netmon_phdr_sub_wtap_pseudo_header)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(netmon_phdr_sub_wtap_pseudo_header) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).eth) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(netmon_phdr_sub_wtap_pseudo_header), + "::", + stringify!(eth) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).atm) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(netmon_phdr_sub_wtap_pseudo_header), + "::", + stringify!(atm) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ieee_802_11) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(netmon_phdr_sub_wtap_pseudo_header), + "::", + stringify!(ieee_802_11) + ) + ); +} +#[test] +fn bindgen_test_layout_netmon_phdr() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 104usize, + concat!("Size of: ", stringify!(netmon_phdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(netmon_phdr)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).title) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(netmon_phdr), + "::", + stringify!(title) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).descLength) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(netmon_phdr), + "::", + stringify!(descLength) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(netmon_phdr), + "::", + stringify!(description) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sub_encap) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(netmon_phdr), + "::", + stringify!(sub_encap) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).subheader) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(netmon_phdr), + "::", + stringify!(subheader) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ber_phdr { + pub pathname: *const ::std::os::raw::c_char, +} +#[test] +fn bindgen_test_layout_ber_phdr() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(ber_phdr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ber_phdr)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pathname) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ber_phdr), + "::", + stringify!(pathname) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union wtap_pseudo_header { + pub eth: eth_phdr, + pub dte_dce: dte_dce_phdr, + pub isdn: isdn_phdr, + pub atm: atm_phdr, + pub ascend: ascend_phdr, + pub p2p: p2p_phdr, + pub ieee_802_11: ieee_802_11_phdr, + pub cosine: cosine_phdr, + pub irda: irda_phdr, + pub nettl: nettl_phdr, + pub mtp2: mtp2_phdr, + pub k12: k12_phdr, + pub lapd: lapd_phdr, + pub dct2000: catapult_dct2000_phdr, + pub erf: erf_mc_phdr, + pub sita: sita_phdr, + pub bthci: bthci_phdr, + pub btmon: btmon_phdr, + pub l1event: l1event_phdr, + pub i2c: i2c_phdr, + pub gsm_um: gsm_um_phdr, + pub nstr: nstr_phdr, + pub nokia: nokia_phdr, + pub llcp: llcp_phdr, + pub logcat: logcat_phdr, + pub netmon: netmon_phdr, + pub ber: ber_phdr, +} +#[test] +fn bindgen_test_layout_wtap_pseudo_header() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 152usize, + concat!("Size of: ", stringify!(wtap_pseudo_header)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(wtap_pseudo_header)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).eth) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_pseudo_header), + "::", + stringify!(eth) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dte_dce) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_pseudo_header), + "::", + stringify!(dte_dce) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).isdn) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_pseudo_header), + "::", + stringify!(isdn) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).atm) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_pseudo_header), + "::", + stringify!(atm) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ascend) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_pseudo_header), + "::", + stringify!(ascend) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).p2p) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_pseudo_header), + "::", + stringify!(p2p) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ieee_802_11) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_pseudo_header), + "::", + stringify!(ieee_802_11) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).cosine) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_pseudo_header), + "::", + stringify!(cosine) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).irda) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_pseudo_header), + "::", + stringify!(irda) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).nettl) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_pseudo_header), + "::", + stringify!(nettl) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).mtp2) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_pseudo_header), + "::", + stringify!(mtp2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).k12) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_pseudo_header), + "::", + stringify!(k12) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).lapd) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_pseudo_header), + "::", + stringify!(lapd) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dct2000) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_pseudo_header), + "::", + stringify!(dct2000) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).erf) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_pseudo_header), + "::", + stringify!(erf) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sita) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_pseudo_header), + "::", + stringify!(sita) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).bthci) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_pseudo_header), + "::", + stringify!(bthci) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).btmon) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_pseudo_header), + "::", + stringify!(btmon) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).l1event) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_pseudo_header), + "::", + stringify!(l1event) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).i2c) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_pseudo_header), + "::", + stringify!(i2c) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gsm_um) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_pseudo_header), + "::", + stringify!(gsm_um) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).nstr) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_pseudo_header), + "::", + stringify!(nstr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).nokia) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_pseudo_header), + "::", + stringify!(nokia) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).llcp) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_pseudo_header), + "::", + stringify!(llcp) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).logcat) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_pseudo_header), + "::", + stringify!(logcat) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).netmon) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_pseudo_header), + "::", + stringify!(netmon) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ber) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_pseudo_header), + "::", + stringify!(ber) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct wtap_packet_header { + pub caplen: u32, + pub len: u32, + pub pkt_encap: ::std::os::raw::c_int, + pub interface_id: u32, + pub pseudo_header: wtap_pseudo_header, +} +#[test] +fn bindgen_test_layout_wtap_packet_header() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 168usize, + concat!("Size of: ", stringify!(wtap_packet_header)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(wtap_packet_header)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).caplen) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_packet_header), + "::", + stringify!(caplen) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(wtap_packet_header), + "::", + stringify!(len) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pkt_encap) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(wtap_packet_header), + "::", + stringify!(pkt_encap) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).interface_id) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(wtap_packet_header), + "::", + stringify!(interface_id) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pseudo_header) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(wtap_packet_header), + "::", + stringify!(pseudo_header) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wtap_ft_specific_header { + pub record_type: ::std::os::raw::c_uint, + pub record_len: u32, +} +#[test] +fn bindgen_test_layout_wtap_ft_specific_header() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(wtap_ft_specific_header)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(wtap_ft_specific_header)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).record_type) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_ft_specific_header), + "::", + stringify!(record_type) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).record_len) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(wtap_ft_specific_header), + "::", + stringify!(record_len) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wtap_syscall_header { + pub pathname: *const ::std::os::raw::c_char, + pub record_type: ::std::os::raw::c_uint, + pub byte_order: ::std::os::raw::c_int, + pub timestamp: u64, + pub thread_id: u64, + pub event_len: u32, + pub event_filelen: u32, + pub event_type: u16, + pub nparams: u32, + pub cpu_id: u16, +} +#[test] +fn bindgen_test_layout_wtap_syscall_header() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(wtap_syscall_header)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(wtap_syscall_header)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pathname) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_syscall_header), + "::", + stringify!(pathname) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).record_type) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(wtap_syscall_header), + "::", + stringify!(record_type) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).byte_order) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(wtap_syscall_header), + "::", + stringify!(byte_order) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).timestamp) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(wtap_syscall_header), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).thread_id) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(wtap_syscall_header), + "::", + stringify!(thread_id) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).event_len) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(wtap_syscall_header), + "::", + stringify!(event_len) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).event_filelen) as usize - ptr as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(wtap_syscall_header), + "::", + stringify!(event_filelen) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).event_type) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(wtap_syscall_header), + "::", + stringify!(event_type) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).nparams) as usize - ptr as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(wtap_syscall_header), + "::", + stringify!(nparams) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).cpu_id) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(wtap_syscall_header), + "::", + stringify!(cpu_id) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wtap_systemd_journal_export_header { + pub record_len: u32, +} +#[test] +fn bindgen_test_layout_wtap_systemd_journal_export_header() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(wtap_systemd_journal_export_header)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!( + "Alignment of ", + stringify!(wtap_systemd_journal_export_header) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).record_len) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_systemd_journal_export_header), + "::", + stringify!(record_len) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct wtap_custom_block_header { + pub length: u32, + pub pen: u32, + pub copy_allowed: bool, + pub custom_data_header: wtap_custom_block_header__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union wtap_custom_block_header__bindgen_ty_1 { + pub nflx_custom_data_header: wtap_custom_block_header__bindgen_ty_1_nflx, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wtap_custom_block_header__bindgen_ty_1_nflx { + pub type_: u32, + pub skipped: u32, +} +#[test] +fn bindgen_test_layout_wtap_custom_block_header__bindgen_ty_1_nflx() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!( + "Size of: ", + stringify!(wtap_custom_block_header__bindgen_ty_1_nflx) + ) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!( + "Alignment of ", + stringify!(wtap_custom_block_header__bindgen_ty_1_nflx) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_custom_block_header__bindgen_ty_1_nflx), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).skipped) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(wtap_custom_block_header__bindgen_ty_1_nflx), + "::", + stringify!(skipped) + ) + ); +} +#[test] +fn bindgen_test_layout_wtap_custom_block_header__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!( + "Size of: ", + stringify!(wtap_custom_block_header__bindgen_ty_1) + ) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!( + "Alignment of ", + stringify!(wtap_custom_block_header__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).nflx_custom_data_header) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_custom_block_header__bindgen_ty_1), + "::", + stringify!(nflx_custom_data_header) + ) + ); +} +#[test] +fn bindgen_test_layout_wtap_custom_block_header() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 20usize, + concat!("Size of: ", stringify!(wtap_custom_block_header)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(wtap_custom_block_header)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_custom_block_header), + "::", + stringify!(length) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pen) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(wtap_custom_block_header), + "::", + stringify!(pen) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).copy_allowed) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(wtap_custom_block_header), + "::", + stringify!(copy_allowed) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).custom_data_header) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(wtap_custom_block_header), + "::", + stringify!(custom_data_header) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct wtap_rec { + pub rec_type: ::std::os::raw::c_uint, + pub presence_flags: u32, + pub section_number: ::std::os::raw::c_uint, + pub ts: nstime_t, + pub tsprec: ::std::os::raw::c_int, + pub ts_rel_cap: nstime_t, + pub ts_rel_cap_valid: bool, + pub rec_header: wtap_rec__bindgen_ty_1, + pub block: wtap_block_t, + pub block_was_modified: bool, + pub options_buf: Buffer, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union wtap_rec__bindgen_ty_1 { + pub packet_header: wtap_packet_header, + pub ft_specific_header: wtap_ft_specific_header, + pub syscall_header: wtap_syscall_header, + pub systemd_journal_export_header: wtap_systemd_journal_export_header, + pub custom_block_header: wtap_custom_block_header, +} +#[test] +fn bindgen_test_layout_wtap_rec__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 168usize, + concat!("Size of: ", stringify!(wtap_rec__bindgen_ty_1)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(wtap_rec__bindgen_ty_1)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).packet_header) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_rec__bindgen_ty_1), + "::", + stringify!(packet_header) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ft_specific_header) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_rec__bindgen_ty_1), + "::", + stringify!(ft_specific_header) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).syscall_header) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_rec__bindgen_ty_1), + "::", + stringify!(syscall_header) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).systemd_journal_export_header) as usize - ptr as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_rec__bindgen_ty_1), + "::", + stringify!(systemd_journal_export_header) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).custom_block_header) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_rec__bindgen_ty_1), + "::", + stringify!(custom_block_header) + ) + ); +} +#[test] +fn bindgen_test_layout_wtap_rec() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 280usize, + concat!("Size of: ", stringify!(wtap_rec)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(wtap_rec)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).rec_type) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_rec), + "::", + stringify!(rec_type) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).presence_flags) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(wtap_rec), + "::", + stringify!(presence_flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).section_number) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(wtap_rec), + "::", + stringify!(section_number) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ts) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(wtap_rec), + "::", + stringify!(ts) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tsprec) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(wtap_rec), + "::", + stringify!(tsprec) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ts_rel_cap) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(wtap_rec), + "::", + stringify!(ts_rel_cap) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ts_rel_cap_valid) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(wtap_rec), + "::", + stringify!(ts_rel_cap_valid) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).rec_header) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(wtap_rec), + "::", + stringify!(rec_header) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).block) as usize - ptr as usize }, + 232usize, + concat!( + "Offset of field: ", + stringify!(wtap_rec), + "::", + stringify!(block) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).block_was_modified) as usize - ptr as usize }, + 240usize, + concat!( + "Offset of field: ", + stringify!(wtap_rec), + "::", + stringify!(block_was_modified) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).options_buf) as usize - ptr as usize }, + 248usize, + concat!( + "Offset of field: ", + stringify!(wtap_rec), + "::", + stringify!(options_buf) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct hashipv4 { + pub addr: ::std::os::raw::c_uint, + pub flags: u8, + pub ip: [::std::os::raw::c_char; 16usize], + pub name: [::std::os::raw::c_char; 64usize], + pub cidr_addr: [::std::os::raw::c_char; 19usize], +} +#[test] +fn bindgen_test_layout_hashipv4() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 104usize, + concat!("Size of: ", stringify!(hashipv4)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(hashipv4)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(hashipv4), + "::", + stringify!(addr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(hashipv4), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ip) as usize - ptr as usize }, + 5usize, + concat!( + "Offset of field: ", + stringify!(hashipv4), + "::", + stringify!(ip) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, + 21usize, + concat!( + "Offset of field: ", + stringify!(hashipv4), + "::", + stringify!(name) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).cidr_addr) as usize - ptr as usize }, + 85usize, + concat!( + "Offset of field: ", + stringify!(hashipv4), + "::", + stringify!(cidr_addr) + ) + ); +} +pub type hashipv4_t = hashipv4; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct hashipv6 { + pub addr: [u8; 16usize], + pub flags: u8, + pub ip6: [::std::os::raw::c_char; 46usize], + pub name: [::std::os::raw::c_char; 64usize], +} +#[test] +fn bindgen_test_layout_hashipv6() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 127usize, + concat!("Size of: ", stringify!(hashipv6)) + ); + assert_eq!( + ::std::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(hashipv6)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(hashipv6), + "::", + stringify!(addr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(hashipv6), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ip6) as usize - ptr as usize }, + 17usize, + concat!( + "Offset of field: ", + stringify!(hashipv6), + "::", + stringify!(ip6) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, + 63usize, + concat!( + "Offset of field: ", + stringify!(hashipv6), + "::", + stringify!(name) + ) + ); +} +pub type hashipv6_t = hashipv6; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct addrinfo_lists { + pub ipv4_addr_list: *mut GList, + pub ipv6_addr_list: *mut GList, +} +#[test] +fn bindgen_test_layout_addrinfo_lists() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(addrinfo_lists)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(addrinfo_lists)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ipv4_addr_list) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(addrinfo_lists), + "::", + stringify!(ipv4_addr_list) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ipv6_addr_list) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(addrinfo_lists), + "::", + stringify!(ipv6_addr_list) + ) + ); +} +pub type addrinfo_lists_t = addrinfo_lists; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wtap_dump_params { + pub encap: ::std::os::raw::c_int, + pub snaplen: ::std::os::raw::c_int, + pub tsprec: ::std::os::raw::c_int, + pub shb_hdrs: *mut GArray, + pub shb_iface_to_global: *const GArray, + pub idb_inf: *mut wtapng_iface_descriptions_t, + pub nrbs_growing: *const GArray, + pub dsbs_initial: *mut GArray, + pub dsbs_growing: *const GArray, + pub mevs_growing: *const GArray, + pub dont_copy_idbs: bool, +} +#[test] +fn bindgen_test_layout_wtap_dump_params() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 80usize, + concat!("Size of: ", stringify!(wtap_dump_params)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(wtap_dump_params)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).encap) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_dump_params), + "::", + stringify!(encap) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).snaplen) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(wtap_dump_params), + "::", + stringify!(snaplen) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tsprec) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(wtap_dump_params), + "::", + stringify!(tsprec) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).shb_hdrs) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(wtap_dump_params), + "::", + stringify!(shb_hdrs) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).shb_iface_to_global) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(wtap_dump_params), + "::", + stringify!(shb_iface_to_global) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).idb_inf) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(wtap_dump_params), + "::", + stringify!(idb_inf) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).nrbs_growing) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(wtap_dump_params), + "::", + stringify!(nrbs_growing) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dsbs_initial) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(wtap_dump_params), + "::", + stringify!(dsbs_initial) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dsbs_growing) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(wtap_dump_params), + "::", + stringify!(dsbs_growing) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).mevs_growing) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(wtap_dump_params), + "::", + stringify!(mevs_growing) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dont_copy_idbs) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(wtap_dump_params), + "::", + stringify!(dont_copy_idbs) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wtap_dumper { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wtap_reader { + _unused: [u8; 0], +} +pub type FILE_T = *mut wtap_reader; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wtap_wslua_file_info { + pub wslua_can_write_encap: ::std::option::Option< + unsafe extern "C" fn( + arg1: ::std::os::raw::c_int, + arg2: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int, + >, + pub wslua_data: *mut ::std::os::raw::c_void, +} +#[test] +fn bindgen_test_layout_wtap_wslua_file_info() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(wtap_wslua_file_info)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(wtap_wslua_file_info)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).wslua_can_write_encap) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_wslua_file_info), + "::", + stringify!(wslua_can_write_encap) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).wslua_data) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(wtap_wslua_file_info), + "::", + stringify!(wslua_data) + ) + ); +} +pub type wtap_wslua_file_info_t = wtap_wslua_file_info; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_extension_info { + pub name: *const ::std::os::raw::c_char, + pub is_capture_file: bool, + pub extensions: *const ::std::os::raw::c_char, +} +#[test] +fn bindgen_test_layout_file_extension_info() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(file_extension_info)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(file_extension_info)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(file_extension_info), + "::", + stringify!(name) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).is_capture_file) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(file_extension_info), + "::", + stringify!(is_capture_file) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).extensions) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(file_extension_info), + "::", + stringify!(extensions) + ) + ); +} +pub const wtap_open_return_val_WTAP_OPEN_NOT_MINE: wtap_open_return_val = 0; +pub const wtap_open_return_val_WTAP_OPEN_MINE: wtap_open_return_val = 1; +pub const wtap_open_return_val_WTAP_OPEN_ERROR: wtap_open_return_val = -1; +pub type wtap_open_return_val = ::std::os::raw::c_int; +pub type wtap_open_routine_t = ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut wtap, + arg2: *mut ::std::os::raw::c_int, + arg3: *mut *mut ::std::os::raw::c_char, + ) -> wtap_open_return_val, +>; +pub const wtap_open_type_OPEN_INFO_MAGIC: wtap_open_type = 0; +pub const wtap_open_type_OPEN_INFO_HEURISTIC: wtap_open_type = 1; +pub type wtap_open_type = ::std::os::raw::c_uint; +extern "C" { + pub fn init_open_routines(); +} +extern "C" { + pub fn cleanup_open_routines(); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct open_info { + pub name: *const ::std::os::raw::c_char, + pub type_: wtap_open_type, + pub open_routine: wtap_open_routine_t, + pub extensions: *const ::std::os::raw::c_char, + pub extensions_set: *mut *mut ::std::os::raw::c_char, + pub wslua_data: *mut ::std::os::raw::c_void, +} +#[test] +fn bindgen_test_layout_open_info() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(open_info)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(open_info)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(open_info), + "::", + stringify!(name) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(open_info), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).open_routine) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(open_info), + "::", + stringify!(open_routine) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).extensions) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(open_info), + "::", + stringify!(extensions) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).extensions_set) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(open_info), + "::", + stringify!(extensions_set) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).wslua_data) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(open_info), + "::", + stringify!(wslua_data) + ) + ); +} +extern "C" { + pub static mut open_routines: *mut open_info; +} +pub const option_support_t_OPTION_NOT_SUPPORTED: option_support_t = 0; +pub const option_support_t_ONE_OPTION_SUPPORTED: option_support_t = 1; +pub const option_support_t_MULTIPLE_OPTIONS_SUPPORTED: option_support_t = 2; +pub type option_support_t = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct supported_option_type { + pub opt: ::std::os::raw::c_uint, + pub support: option_support_t, +} +#[test] +fn bindgen_test_layout_supported_option_type() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(supported_option_type)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(supported_option_type)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).opt) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(supported_option_type), + "::", + stringify!(opt) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).support) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(supported_option_type), + "::", + stringify!(support) + ) + ); +} +pub const block_support_t_BLOCK_NOT_SUPPORTED: block_support_t = 0; +pub const block_support_t_ONE_BLOCK_SUPPORTED: block_support_t = 1; +pub const block_support_t_MULTIPLE_BLOCKS_SUPPORTED: block_support_t = 2; +pub type block_support_t = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct supported_block_type { + pub type_: wtap_block_type_t, + pub support: block_support_t, + pub num_supported_options: usize, + pub supported_options: *const supported_option_type, +} +#[test] +fn bindgen_test_layout_supported_block_type() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(supported_block_type)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(supported_block_type)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(supported_block_type), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).support) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(supported_block_type), + "::", + stringify!(support) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).num_supported_options) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(supported_block_type), + "::", + stringify!(num_supported_options) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).supported_options) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(supported_block_type), + "::", + stringify!(supported_options) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_type_subtype_info { + pub description: *const ::std::os::raw::c_char, + pub name: *const ::std::os::raw::c_char, + pub default_file_extension: *const ::std::os::raw::c_char, + pub additional_file_extensions: *const ::std::os::raw::c_char, + pub writing_must_seek: bool, + pub num_supported_blocks: usize, + pub supported_blocks: *const supported_block_type, + pub can_write_encap: ::std::option::Option< + unsafe extern "C" fn(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int, + >, + pub dump_open: ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut wtap_dumper, + arg2: *mut ::std::os::raw::c_int, + arg3: *mut *mut ::std::os::raw::c_char, + ) -> bool, + >, + pub wslua_info: *mut wtap_wslua_file_info_t, +} +#[test] +fn bindgen_test_layout_file_type_subtype_info() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 80usize, + concat!("Size of: ", stringify!(file_type_subtype_info)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(file_type_subtype_info)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(file_type_subtype_info), + "::", + stringify!(description) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(file_type_subtype_info), + "::", + stringify!(name) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).default_file_extension) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(file_type_subtype_info), + "::", + stringify!(default_file_extension) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).additional_file_extensions) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(file_type_subtype_info), + "::", + stringify!(additional_file_extensions) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).writing_must_seek) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(file_type_subtype_info), + "::", + stringify!(writing_must_seek) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).num_supported_blocks) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(file_type_subtype_info), + "::", + stringify!(num_supported_blocks) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).supported_blocks) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(file_type_subtype_info), + "::", + stringify!(supported_blocks) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).can_write_encap) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(file_type_subtype_info), + "::", + stringify!(can_write_encap) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dump_open) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(file_type_subtype_info), + "::", + stringify!(dump_open) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).wslua_info) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(file_type_subtype_info), + "::", + stringify!(wslua_info) + ) + ); +} +extern "C" { + pub fn wtap_init(load_wiretap_plugins: bool); +} +extern "C" { + pub fn wtap_open_offline( + filename: *const ::std::os::raw::c_char, + type_: ::std::os::raw::c_uint, + err: *mut ::std::os::raw::c_int, + err_info: *mut *mut ::std::os::raw::c_char, + do_random: bool, + ) -> *mut wtap; +} +extern "C" { + pub fn wtap_cleareof(wth: *mut wtap); +} +pub type wtap_new_ipv4_callback_t = ::std::option::Option< + unsafe extern "C" fn( + addr: ::std::os::raw::c_uint, + name: *const ::std::os::raw::c_char, + static_entry: bool, + ), +>; +extern "C" { + pub fn wtap_set_cb_new_ipv4(wth: *mut wtap, add_new_ipv4: wtap_new_ipv4_callback_t); +} +pub type wtap_new_ipv6_callback_t = ::std::option::Option< + unsafe extern "C" fn( + addrp: *const ::std::os::raw::c_void, + name: *const ::std::os::raw::c_char, + static_entry: bool, + ), +>; +extern "C" { + pub fn wtap_set_cb_new_ipv6(wth: *mut wtap, add_new_ipv6: wtap_new_ipv6_callback_t); +} +pub type wtap_new_secrets_callback_t = ::std::option::Option< + unsafe extern "C" fn( + secrets_type: u32, + secrets: *const ::std::os::raw::c_void, + size: ::std::os::raw::c_uint, + ), +>; +extern "C" { + pub fn wtap_set_cb_new_secrets(wth: *mut wtap, add_new_secrets: wtap_new_secrets_callback_t); +} +extern "C" { + pub fn wtap_read( + wth: *mut wtap, + rec: *mut wtap_rec, + buf: *mut Buffer, + err: *mut ::std::os::raw::c_int, + err_info: *mut *mut ::std::os::raw::c_char, + offset: *mut i64, + ) -> bool; +} +extern "C" { + pub fn wtap_seek_read( + wth: *mut wtap, + seek_off: i64, + rec: *mut wtap_rec, + buf: *mut Buffer, + err: *mut ::std::os::raw::c_int, + err_info: *mut *mut ::std::os::raw::c_char, + ) -> bool; +} +extern "C" { + pub fn wtap_rec_init(rec: *mut wtap_rec); +} +extern "C" { + pub fn wtap_rec_reset(rec: *mut wtap_rec); +} +extern "C" { + pub fn wtap_rec_cleanup(rec: *mut wtap_rec); +} +pub const wtap_compression_type_WTAP_UNCOMPRESSED: wtap_compression_type = 0; +pub const wtap_compression_type_WTAP_GZIP_COMPRESSED: wtap_compression_type = 1; +pub const wtap_compression_type_WTAP_ZSTD_COMPRESSED: wtap_compression_type = 2; +pub const wtap_compression_type_WTAP_LZ4_COMPRESSED: wtap_compression_type = 3; +pub const wtap_compression_type_WTAP_UNKNOWN_COMPRESSION: wtap_compression_type = 4; +pub type wtap_compression_type = ::std::os::raw::c_uint; +extern "C" { + pub fn wtap_get_compression_type(wth: *mut wtap) -> wtap_compression_type; +} +extern "C" { + pub fn wtap_name_to_compression_type( + name: *const ::std::os::raw::c_char, + ) -> wtap_compression_type; +} +extern "C" { + pub fn wtap_extension_to_compression_type( + ext: *const ::std::os::raw::c_char, + ) -> wtap_compression_type; +} +extern "C" { + pub fn wtap_compression_type_description( + compression_type: wtap_compression_type, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn wtap_compression_type_extension( + compression_type: wtap_compression_type, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn wtap_get_all_compression_type_extensions_list() -> *mut GSList; +} +extern "C" { + pub fn wtap_get_all_output_compression_type_names_list() -> *mut GSList; +} +extern "C" { + pub fn wtap_can_write_compression_type(compression_type: wtap_compression_type) -> bool; +} +extern "C" { + pub fn wtap_read_so_far(wth: *mut wtap) -> i64; +} +extern "C" { + pub fn wtap_file_size(wth: *mut wtap, err: *mut ::std::os::raw::c_int) -> i64; +} +extern "C" { + pub fn wtap_snapshot_length(wth: *mut wtap) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn wtap_file_type_subtype(wth: *mut wtap) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wtap_file_encap(wth: *mut wtap) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wtap_file_tsprec(wth: *mut wtap) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wtap_file_get_num_shbs(wth: *mut wtap) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn wtap_file_get_shb(wth: *mut wtap, shb_num: ::std::os::raw::c_uint) -> wtap_block_t; +} +extern "C" { + pub fn wtap_write_shb_comment(wth: *mut wtap, comment: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn wtap_file_get_shb_global_interface_id( + wth: *mut wtap, + shb_num: ::std::os::raw::c_uint, + interface_id: u32, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn wtap_file_get_idb_info(wth: *mut wtap) -> *mut wtapng_iface_descriptions_t; +} +extern "C" { + pub fn wtap_get_next_interface_description(wth: *mut wtap) -> wtap_block_t; +} +extern "C" { + pub fn wtap_free_idb_info(idb_info: *mut wtapng_iface_descriptions_t); +} +extern "C" { + pub fn wtap_get_debug_if_descr( + if_descr: wtap_block_t, + indent: ::std::os::raw::c_int, + line_end: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn wtap_file_get_nrb(wth: *mut wtap) -> wtap_block_t; +} +extern "C" { + pub fn wtap_file_get_num_dsbs(wth: *mut wtap) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn wtap_file_get_dsb(wth: *mut wtap, dsb_num: ::std::os::raw::c_uint) -> wtap_block_t; +} +extern "C" { + pub fn wtap_file_add_decryption_secrets(wth: *mut wtap, dsb: wtap_block_t); +} +extern "C" { + pub fn wtap_file_discard_decryption_secrets(wth: *mut wtap) -> bool; +} +extern "C" { + pub fn wtap_fdclose(wth: *mut wtap); +} +extern "C" { + pub fn wtap_fdreopen( + wth: *mut wtap, + filename: *const ::std::os::raw::c_char, + err: *mut ::std::os::raw::c_int, + ) -> bool; +} +extern "C" { + pub fn wtap_sequential_close(wth: *mut wtap); +} +extern "C" { + pub fn wtap_close(wth: *mut wtap); +} +extern "C" { + pub fn wtap_dump_can_open(filetype: ::std::os::raw::c_int) -> bool; +} +extern "C" { + pub fn wtap_dump_required_file_encap_type(file_encaps: *const GArray) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wtap_dump_can_write_encap( + file_type_subtype: ::std::os::raw::c_int, + encap: ::std::os::raw::c_int, + ) -> bool; +} +extern "C" { + pub fn wtap_dump_can_compress(file_type_subtype: ::std::os::raw::c_int) -> bool; +} +extern "C" { + pub fn wtap_dump_params_init(params: *mut wtap_dump_params, wth: *mut wtap); +} +extern "C" { + pub fn wtap_dump_params_init_no_idbs(params: *mut wtap_dump_params, wth: *mut wtap); +} +extern "C" { + pub fn wtap_dump_params_discard_name_resolution(params: *mut wtap_dump_params); +} +extern "C" { + pub fn wtap_dump_params_discard_decryption_secrets(params: *mut wtap_dump_params); +} +extern "C" { + pub fn wtap_dump_params_cleanup(params: *mut wtap_dump_params); +} +extern "C" { + pub fn wtap_dump_open( + filename: *const ::std::os::raw::c_char, + file_type_subtype: ::std::os::raw::c_int, + compression_type: wtap_compression_type, + params: *const wtap_dump_params, + err: *mut ::std::os::raw::c_int, + err_info: *mut *mut ::std::os::raw::c_char, + ) -> *mut wtap_dumper; +} +extern "C" { + pub fn wtap_dump_open_tempfile( + tmpdir: *const ::std::os::raw::c_char, + filenamep: *mut *mut ::std::os::raw::c_char, + pfx: *const ::std::os::raw::c_char, + file_type_subtype: ::std::os::raw::c_int, + compression_type: wtap_compression_type, + params: *const wtap_dump_params, + err: *mut ::std::os::raw::c_int, + err_info: *mut *mut ::std::os::raw::c_char, + ) -> *mut wtap_dumper; +} +extern "C" { + pub fn wtap_dump_fdopen( + fd: ::std::os::raw::c_int, + file_type_subtype: ::std::os::raw::c_int, + compression_type: wtap_compression_type, + params: *const wtap_dump_params, + err: *mut ::std::os::raw::c_int, + err_info: *mut *mut ::std::os::raw::c_char, + ) -> *mut wtap_dumper; +} +extern "C" { + pub fn wtap_dump_open_stdout( + file_type_subtype: ::std::os::raw::c_int, + compression_type: wtap_compression_type, + params: *const wtap_dump_params, + err: *mut ::std::os::raw::c_int, + err_info: *mut *mut ::std::os::raw::c_char, + ) -> *mut wtap_dumper; +} +extern "C" { + pub fn wtap_dump_add_idb( + wdh: *mut wtap_dumper, + idb: wtap_block_t, + err: *mut ::std::os::raw::c_int, + err_info: *mut *mut ::std::os::raw::c_char, + ) -> bool; +} +extern "C" { + pub fn wtap_dump( + arg1: *mut wtap_dumper, + arg2: *const wtap_rec, + arg3: *const u8, + err: *mut ::std::os::raw::c_int, + err_info: *mut *mut ::std::os::raw::c_char, + ) -> bool; +} +extern "C" { + pub fn wtap_dump_flush(arg1: *mut wtap_dumper, arg2: *mut ::std::os::raw::c_int) -> bool; +} +extern "C" { + pub fn wtap_dump_file_type_subtype(wdh: *mut wtap_dumper) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wtap_get_bytes_dumped(arg1: *mut wtap_dumper) -> i64; +} +extern "C" { + pub fn wtap_set_bytes_dumped(wdh: *mut wtap_dumper, bytes_dumped: i64); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct addrinfo { + _unused: [u8; 0], +} +extern "C" { + pub fn wtap_addrinfo_list_empty(addrinfo_lists: *mut addrinfo_lists_t) -> bool; +} +extern "C" { + pub fn wtap_dump_set_addrinfo_list( + wdh: *mut wtap_dumper, + addrinfo_lists: *mut addrinfo_lists_t, + ) -> bool; +} +extern "C" { + pub fn wtap_dump_discard_name_resolution(wdh: *mut wtap_dumper); +} +extern "C" { + pub fn wtap_dump_discard_decryption_secrets(wdh: *mut wtap_dumper); +} +extern "C" { + pub fn wtap_dump_close( + wdh: *mut wtap_dumper, + needs_reload: *mut bool, + err: *mut ::std::os::raw::c_int, + err_info: *mut *mut ::std::os::raw::c_char, + ) -> bool; +} +extern "C" { + pub fn wtap_dump_can_write(file_encaps: *const GArray, required_comment_types: u32) -> bool; +} +extern "C" { + pub fn wtap_buffer_append_epdu_tag( + buf: *mut Buffer, + epdu_tag: u16, + data: *const u8, + data_len: u16, + ); +} +extern "C" { + pub fn wtap_buffer_append_epdu_uint(buf: *mut Buffer, epdu_tag: u16, val: u32); +} +extern "C" { + pub fn wtap_buffer_append_epdu_string( + buf: *mut Buffer, + epdu_tag: u16, + val: *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn wtap_buffer_append_epdu_end(buf: *mut Buffer) -> ::std::os::raw::c_int; +} +pub const ft_sort_order_FT_SORT_BY_NAME: ft_sort_order = 0; +pub const ft_sort_order_FT_SORT_BY_DESCRIPTION: ft_sort_order = 1; +pub type ft_sort_order = ::std::os::raw::c_uint; +extern "C" { + pub fn wtap_get_savable_file_types_subtypes_for_file( + file_type_subtype: ::std::os::raw::c_int, + file_encaps: *const GArray, + required_comment_types: u32, + sort_order: ft_sort_order, + ) -> *mut GArray; +} +extern "C" { + pub fn wtap_get_writable_file_types_subtypes(sort_order: ft_sort_order) -> *mut GArray; +} +extern "C" { + pub fn wtap_file_type_subtype_description( + file_type_subtype: ::std::os::raw::c_int, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn wtap_file_type_subtype_name( + file_type_subtype: ::std::os::raw::c_int, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn wtap_name_to_file_type_subtype( + name: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wtap_pcap_file_type_subtype() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wtap_pcap_nsec_file_type_subtype() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wtap_pcapng_file_type_subtype() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wtap_file_type_subtype_supports_block( + file_type_subtype: ::std::os::raw::c_int, + type_: wtap_block_type_t, + ) -> block_support_t; +} +extern "C" { + pub fn wtap_file_type_subtype_supports_option( + file_type_subtype: ::std::os::raw::c_int, + type_: wtap_block_type_t, + opttype: ::std::os::raw::c_uint, + ) -> option_support_t; +} +extern "C" { + pub fn wtap_get_all_capture_file_extensions_list() -> *mut GSList; +} +extern "C" { + pub fn wtap_get_all_file_extensions_list() -> *mut GSList; +} +extern "C" { + pub fn wtap_free_extensions_list(extensions: *mut GSList); +} +extern "C" { + pub fn wtap_default_file_extension( + file_type_subtype: ::std::os::raw::c_int, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn wtap_get_file_extensions_list( + file_type_subtype: ::std::os::raw::c_int, + include_compressed: bool, + ) -> *mut GSList; +} +extern "C" { + pub fn wtap_encap_name(encap: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn wtap_encap_description(encap: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn wtap_name_to_encap(short_name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wtap_tsprec_string(tsprec: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn wtap_strerror(err: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn wtap_get_num_file_type_extensions() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wtap_get_num_encap_types() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wtap_get_file_extension_type_name( + extension_type: ::std::os::raw::c_int, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn wtap_get_file_extension_type_extensions( + extension_type: ::std::os::raw::c_uint, + ) -> *mut GSList; +} +extern "C" { + pub fn wtap_register_file_type_extension(ei: *const file_extension_info); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wtap_plugin { + pub register_wtap_module: ::std::option::Option, +} +#[test] +fn bindgen_test_layout_wtap_plugin() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(wtap_plugin)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(wtap_plugin)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).register_wtap_module) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(wtap_plugin), + "::", + stringify!(register_wtap_module) + ) + ); +} +extern "C" { + pub fn wtap_register_plugin(plug: *const wtap_plugin); +} +extern "C" { + pub fn wtap_plugins_supported() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wtap_register_open_info(oi: *mut open_info, first_routine: bool); +} +extern "C" { + pub fn wtap_has_open_info(name: *const ::std::os::raw::c_char) -> bool; +} +extern "C" { + pub fn wtap_uses_lua_filehandler(wth: *const wtap) -> bool; +} +extern "C" { + pub fn wtap_deregister_open_info(name: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn open_info_name_to_type(name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn wtap_register_file_type_subtype( + fi: *const file_type_subtype_info, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wtap_deregister_file_type_subtype(file_type_subtype: ::std::os::raw::c_int); +} +extern "C" { + pub fn wtap_register_encap_type( + description: *const ::std::os::raw::c_char, + name: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn wtap_cleanup(); +} +pub type plugin_register_func = ::std::option::Option; +pub type plugin_describe_func = ::std::option::Option u32>; +pub type plugins_t = ::std::os::raw::c_void; +pub const plugin_type_e_WS_PLUGIN_EPAN: plugin_type_e = 0; +pub const plugin_type_e_WS_PLUGIN_WIRETAP: plugin_type_e = 1; +pub const plugin_type_e_WS_PLUGIN_CODEC: plugin_type_e = 2; +pub type plugin_type_e = ::std::os::raw::c_uint; +extern "C" { + pub fn plugins_init(type_: plugin_type_e) -> *mut plugins_t; +} +pub type plugin_description_callback = ::std::option::Option< + unsafe extern "C" fn( + name: *const ::std::os::raw::c_char, + version: *const ::std::os::raw::c_char, + flags: u32, + filename: *const ::std::os::raw::c_char, + user_data: *mut ::std::os::raw::c_void, + ), +>; +extern "C" { + pub fn plugins_get_descriptions( + callback: plugin_description_callback, + user_data: *mut ::std::os::raw::c_void, + ); +} +extern "C" { + pub fn plugins_dump_all(); +} +extern "C" { + pub fn plugins_get_count() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn plugins_cleanup(plugins: *mut plugins_t); +} +extern "C" { + pub fn plugins_supported() -> bool; +} +extern "C" { + pub fn wmem_epan_scope() -> *mut wmem_allocator_t; +} +extern "C" { + pub fn wmem_packet_scope() -> *mut wmem_allocator_t; +} +extern "C" { + pub fn wmem_file_scope() -> *mut wmem_allocator_t; +} +extern "C" { + pub fn wmem_init_scopes(); +} +extern "C" { + pub fn wmem_cleanup_scopes(); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _e_guid_t { + pub data1: u32, + pub data2: u16, + pub data3: u16, + pub data4: [u8; 8usize], +} +#[test] +fn bindgen_test_layout__e_guid_t() { + const UNINIT: ::std::mem::MaybeUninit<_e_guid_t> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_e_guid_t>(), + 16usize, + concat!("Size of: ", stringify!(_e_guid_t)) + ); + assert_eq!( + ::std::mem::align_of::<_e_guid_t>(), + 4usize, + concat!("Alignment of ", stringify!(_e_guid_t)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).data1) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_e_guid_t), + "::", + stringify!(data1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).data2) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_e_guid_t), + "::", + stringify!(data2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).data3) as usize - ptr as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(_e_guid_t), + "::", + stringify!(data3) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).data4) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_e_guid_t), + "::", + stringify!(data4) + ) + ); +} +pub type e_guid_t = _e_guid_t; +extern "C" { + pub fn guids_init(); +} +extern "C" { + pub fn guids_add_guid(guid: *const e_guid_t, name: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn guids_delete_guid(guid: *const e_guid_t); +} +extern "C" { + pub fn guids_get_guid_name( + guid: *const e_guid_t, + scope: *mut wmem_allocator_t, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn guids_resolve_guid_to_str( + guid: *const e_guid_t, + scope: *mut wmem_allocator_t, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn guid_cmp(g1: *const e_guid_t, g2: *const e_guid_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn guid_hash(guid: *const e_guid_t) -> ::std::os::raw::c_uint; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ws_mempbrk_pattern { + pub patt: [::std::os::raw::c_char; 256usize], +} +#[test] +fn bindgen_test_layout_ws_mempbrk_pattern() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 256usize, + concat!("Size of: ", stringify!(ws_mempbrk_pattern)) + ); + assert_eq!( + ::std::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(ws_mempbrk_pattern)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).patt) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ws_mempbrk_pattern), + "::", + stringify!(patt) + ) + ); +} +extern "C" { + pub fn ws_mempbrk_compile( + pattern: *mut ws_mempbrk_pattern, + needles: *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn ws_mempbrk_exec( + haystack: *const u8, + haystacklen: usize, + pattern: *const ws_mempbrk_pattern, + found_needle: *mut ::std::os::raw::c_uchar, + ) -> *const u8; +} +extern "C" { + pub fn ws_memrpbrk_exec( + haystack: *const u8, + haystacklen: usize, + pattern: *const ws_mempbrk_pattern, + found_needle: *mut ::std::os::raw::c_uchar, + ) -> *const u8; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tvbuff { + _unused: [u8; 0], +} +pub type tvbuff_t = tvbuff; +pub type tvbuff_free_cb_t = + ::std::option::Option; +extern "C" { + pub fn tvb_new_octet_aligned( + tvb: *mut tvbuff_t, + bit_offset: u32, + no_of_bits: i32, + ) -> *mut tvbuff_t; +} +extern "C" { + pub fn tvb_new_octet_right_aligned( + tvb: *mut tvbuff_t, + bit_offset: u32, + no_of_bits: i32, + ) -> *mut tvbuff_t; +} +extern "C" { + pub fn tvb_new_chain(parent: *mut tvbuff_t, backing: *mut tvbuff_t) -> *mut tvbuff_t; +} +extern "C" { + pub fn tvb_clone(tvb: *mut tvbuff_t) -> *mut tvbuff_t; +} +extern "C" { + pub fn tvb_clone_offset_len( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_uint, + len: ::std::os::raw::c_uint, + ) -> *mut tvbuff_t; +} +extern "C" { + pub fn tvb_free(tvb: *mut tvbuff_t); +} +extern "C" { + pub fn tvb_free_chain(tvb: *mut tvbuff_t); +} +extern "C" { + pub fn tvb_set_free_cb(tvb: *mut tvbuff_t, func: tvbuff_free_cb_t); +} +extern "C" { + pub fn tvb_set_child_real_data_tvbuff(parent: *mut tvbuff_t, child: *mut tvbuff_t); +} +extern "C" { + pub fn tvb_new_child_real_data( + parent: *mut tvbuff_t, + data: *const u8, + length: ::std::os::raw::c_uint, + reported_length: ::std::os::raw::c_int, + ) -> *mut tvbuff_t; +} +extern "C" { + pub fn tvb_new_real_data( + data: *const u8, + length: ::std::os::raw::c_uint, + reported_length: ::std::os::raw::c_int, + ) -> *mut tvbuff_t; +} +extern "C" { + pub fn tvb_new_subset_length_caplen( + backing: *mut tvbuff_t, + backing_offset: ::std::os::raw::c_int, + backing_length: ::std::os::raw::c_int, + reported_length: ::std::os::raw::c_int, + ) -> *mut tvbuff_t; +} +extern "C" { + pub fn tvb_new_subset_length( + backing: *mut tvbuff_t, + backing_offset: ::std::os::raw::c_int, + reported_length: ::std::os::raw::c_int, + ) -> *mut tvbuff_t; +} +extern "C" { + pub fn tvb_new_subset_remaining( + backing: *mut tvbuff_t, + backing_offset: ::std::os::raw::c_int, + ) -> *mut tvbuff_t; +} +extern "C" { + pub fn tvb_composite_append(tvb: *mut tvbuff_t, member: *mut tvbuff_t); +} +extern "C" { + pub fn tvb_composite_prepend(tvb: *mut tvbuff_t, member: *mut tvbuff_t); +} +extern "C" { + pub fn tvb_new_composite() -> *mut tvbuff_t; +} +extern "C" { + pub fn tvb_composite_finalize(tvb: *mut tvbuff_t); +} +extern "C" { + pub fn tvb_captured_length(tvb: *const tvbuff_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn tvb_captured_length_remaining( + tvb: *const tvbuff_t, + offset: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tvb_ensure_captured_length_remaining( + tvb: *const tvbuff_t, + offset: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn tvb_bytes_exist( + tvb: *const tvbuff_t, + offset: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + ) -> bool; +} +extern "C" { + pub fn tvb_ensure_bytes_exist64( + tvb: *const tvbuff_t, + offset: ::std::os::raw::c_int, + length: u64, + ); +} +extern "C" { + pub fn tvb_ensure_bytes_exist( + tvb: *const tvbuff_t, + offset: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn tvb_offset_exists(tvb: *const tvbuff_t, offset: ::std::os::raw::c_int) -> bool; +} +extern "C" { + pub fn tvb_reported_length(tvb: *const tvbuff_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn tvb_reported_length_remaining( + tvb: *const tvbuff_t, + offset: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tvb_ensure_reported_length_remaining( + tvb: *const tvbuff_t, + offset: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn tvb_set_reported_length(tvb: *mut tvbuff_t, arg1: ::std::os::raw::c_uint); +} +extern "C" { + pub fn tvb_fix_reported_length(tvb: *mut tvbuff_t); +} +extern "C" { + pub fn tvb_offset_from_real_beginning(tvb: *const tvbuff_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn tvb_raw_offset(tvb: *mut tvbuff_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tvb_set_fragment(tvb: *mut tvbuff_t); +} +extern "C" { + pub fn tvb_get_ds_tvb(tvb: *mut tvbuff_t) -> *mut tvbuff; +} +extern "C" { + pub fn tvb_get_uint8(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> u8; +} +extern "C" { + pub fn tvb_get_int8(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> i8; +} +extern "C" { + pub fn tvb_get_ntohs(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> u16; +} +extern "C" { + pub fn tvb_get_ntohis(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> i16; +} +extern "C" { + pub fn tvb_get_ntoh24(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> u32; +} +extern "C" { + pub fn tvb_get_ntohi24(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> i32; +} +extern "C" { + pub fn tvb_get_ntohl(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> u32; +} +extern "C" { + pub fn tvb_get_ntohil(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> i32; +} +extern "C" { + pub fn tvb_get_ntoh40(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> u64; +} +extern "C" { + pub fn tvb_get_ntohi40(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> i64; +} +extern "C" { + pub fn tvb_get_ntoh48(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> u64; +} +extern "C" { + pub fn tvb_get_ntohi48(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> i64; +} +extern "C" { + pub fn tvb_get_ntoh56(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> u64; +} +extern "C" { + pub fn tvb_get_ntohi56(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> i64; +} +extern "C" { + pub fn tvb_get_ntoh64(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> u64; +} +extern "C" { + pub fn tvb_get_ntohi64(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> i64; +} +extern "C" { + pub fn tvb_get_ntohieee_float(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> f32; +} +extern "C" { + pub fn tvb_get_ntohieee_double(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> f64; +} +extern "C" { + pub fn tvb_get_letohs(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> u16; +} +extern "C" { + pub fn tvb_get_letohis(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> i16; +} +extern "C" { + pub fn tvb_get_letoh24(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> u32; +} +extern "C" { + pub fn tvb_get_letohi24(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> i32; +} +extern "C" { + pub fn tvb_get_letohl(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> u32; +} +extern "C" { + pub fn tvb_get_letohil(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> i32; +} +extern "C" { + pub fn tvb_get_letoh40(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> u64; +} +extern "C" { + pub fn tvb_get_letohi40(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> i64; +} +extern "C" { + pub fn tvb_get_letoh48(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> u64; +} +extern "C" { + pub fn tvb_get_letohi48(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> i64; +} +extern "C" { + pub fn tvb_get_letoh56(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> u64; +} +extern "C" { + pub fn tvb_get_letohi56(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> i64; +} +extern "C" { + pub fn tvb_get_letoh64(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> u64; +} +extern "C" { + pub fn tvb_get_letohi64(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> i64; +} +extern "C" { + pub fn tvb_get_letohieee_float(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> f32; +} +extern "C" { + pub fn tvb_get_letohieee_double(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> f64; +} +extern "C" { + pub fn tvb_get_uint16( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + ) -> u16; +} +extern "C" { + pub fn tvb_get_int16( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + ) -> i16; +} +extern "C" { + pub fn tvb_get_uint24( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + ) -> u32; +} +extern "C" { + pub fn tvb_get_int24( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + ) -> i32; +} +extern "C" { + pub fn tvb_get_uint32( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + ) -> u32; +} +extern "C" { + pub fn tvb_get_int32( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + ) -> i32; +} +extern "C" { + pub fn tvb_get_uint40( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + ) -> u64; +} +extern "C" { + pub fn tvb_get_int40( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + ) -> i64; +} +extern "C" { + pub fn tvb_get_uint48( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + ) -> u64; +} +extern "C" { + pub fn tvb_get_int48( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + ) -> i64; +} +extern "C" { + pub fn tvb_get_uint56( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + ) -> u64; +} +extern "C" { + pub fn tvb_get_int56( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + ) -> i64; +} +extern "C" { + pub fn tvb_get_uint64( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + ) -> u64; +} +extern "C" { + pub fn tvb_get_int64( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + ) -> i64; +} +extern "C" { + pub fn tvb_get_ieee_float( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + ) -> f32; +} +extern "C" { + pub fn tvb_get_ieee_double( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + ) -> f64; +} +extern "C" { + pub fn tvb_get_string_time( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + ns: *mut nstime_t, + endoff: *mut ::std::os::raw::c_int, + ) -> *mut nstime_t; +} +extern "C" { + pub fn tvb_get_string_bytes( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + bytes: *mut GByteArray, + endoff: *mut ::std::os::raw::c_int, + ) -> *mut GByteArray; +} +extern "C" { + pub fn tvb_get_ipv4(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) -> u32; +} +extern "C" { + pub fn tvb_get_ipv6(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int, addr: *mut ws_in6_addr); +} +extern "C" { + pub fn tvb_get_ipv4_addr_with_prefix_len( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + addr: *mut ws_in4_addr, + prefix_len: u32, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tvb_get_ipv6_addr_with_prefix_len( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + addr: *mut ws_in6_addr, + prefix_len: u32, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tvb_get_ntohguid(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int, guid: *mut e_guid_t); +} +extern "C" { + pub fn tvb_get_letohguid( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + guid: *mut e_guid_t, + ); +} +extern "C" { + pub fn tvb_get_guid( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + guid: *mut e_guid_t, + encoding: ::std::os::raw::c_uint, + ); +} +extern "C" { + pub fn tvb_get_bits_array( + scope: *mut wmem_allocator_t, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + length: usize, + data_length: *mut usize, + encoding: ::std::os::raw::c_uint, + ) -> *mut u8; +} +extern "C" { + pub fn tvb_get_bits8( + tvb: *mut tvbuff_t, + bit_offset: ::std::os::raw::c_uint, + no_of_bits: ::std::os::raw::c_int, + ) -> u8; +} +extern "C" { + pub fn tvb_get_bits16( + tvb: *mut tvbuff_t, + bit_offset: ::std::os::raw::c_uint, + no_of_bits: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + ) -> u16; +} +extern "C" { + pub fn tvb_get_bits32( + tvb: *mut tvbuff_t, + bit_offset: ::std::os::raw::c_uint, + no_of_bits: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + ) -> u32; +} +extern "C" { + pub fn tvb_get_bits64( + tvb: *mut tvbuff_t, + bit_offset: ::std::os::raw::c_uint, + no_of_bits: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + ) -> u64; +} +extern "C" { + pub fn tvb_get_bits( + tvb: *mut tvbuff_t, + bit_offset: ::std::os::raw::c_uint, + no_of_bits: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + ) -> u32; +} +extern "C" { + pub fn tvb_memcpy( + tvb: *mut tvbuff_t, + target: *mut ::std::os::raw::c_void, + offset: ::std::os::raw::c_int, + length: usize, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn tvb_memdup( + scope: *mut wmem_allocator_t, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + length: usize, + ) -> *mut ::std::os::raw::c_void; +} +extern "C" { + pub fn tvb_get_ptr( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + ) -> *const u8; +} +extern "C" { + pub fn tvb_find_uint8( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + maxlength: ::std::os::raw::c_int, + needle: u8, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tvb_find_uint16( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + maxlength: ::std::os::raw::c_int, + needle: u16, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tvb_ws_mempbrk_pattern_uint8( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + maxlength: ::std::os::raw::c_int, + pattern: *const ws_mempbrk_pattern, + found_needle: *mut ::std::os::raw::c_uchar, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tvb_strsize(tvb: *mut tvbuff_t, offset: ::std::os::raw::c_int) + -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn tvb_unicode_strsize( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn tvb_strnlen( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + maxlength: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tvb_format_text( + scope: *mut wmem_allocator_t, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + size: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn tvb_format_text_wsp( + allocator: *mut wmem_allocator_t, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + size: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn tvb_format_stringzpad( + scope: *mut wmem_allocator_t, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + size: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn tvb_format_stringzpad_wsp( + allocator: *mut wmem_allocator_t, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + size: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn tvb_get_string_enc( + scope: *mut wmem_allocator_t, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + ) -> *mut u8; +} +extern "C" { + pub fn tvb_get_ts_23_038_7bits_string_packed( + scope: *mut wmem_allocator_t, + tvb: *mut tvbuff_t, + bit_offset: ::std::os::raw::c_int, + no_of_chars: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn tvb_get_ts_23_038_7bits_string_unpacked( + scope: *mut wmem_allocator_t, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn tvb_get_etsi_ts_102_221_annex_a_string( + scope: *mut wmem_allocator_t, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn tvb_get_ascii_7bits_string( + scope: *mut wmem_allocator_t, + tvb: *mut tvbuff_t, + bit_offset: ::std::os::raw::c_int, + no_of_chars: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn tvb_get_stringzpad( + scope: *mut wmem_allocator_t, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + ) -> *mut u8; +} +extern "C" { + pub fn tvb_get_stringz_enc( + scope: *mut wmem_allocator_t, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + lengthp: *mut ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + ) -> *mut u8; +} +extern "C" { + pub fn tvb_get_const_stringz( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + lengthp: *mut ::std::os::raw::c_int, + ) -> *const u8; +} +extern "C" { + pub fn tvb_get_raw_bytes_as_stringz( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + bufsize: ::std::os::raw::c_uint, + buffer: *mut u8, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tvb_get_raw_bytes_as_string( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + buffer: *mut ::std::os::raw::c_char, + bufsize: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tvb_ascii_isprint( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + ) -> bool; +} +extern "C" { + pub fn tvb_utf_8_isprint( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + ) -> bool; +} +extern "C" { + pub fn tvb_ascii_isdigit( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + ) -> bool; +} +extern "C" { + pub fn tvb_find_line_end( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + len: ::std::os::raw::c_int, + next_offset: *mut ::std::os::raw::c_int, + desegment: bool, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tvb_find_line_end_unquoted( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + len: ::std::os::raw::c_int, + next_offset: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tvb_skip_wsp( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + maxlength: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tvb_skip_wsp_return( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tvb_skip_uint8( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + maxlength: ::std::os::raw::c_int, + ch: u8, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tvb_get_token_len( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + len: ::std::os::raw::c_int, + next_offset: *mut ::std::os::raw::c_int, + desegment: bool, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tvb_strneql( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + str_: *const ::std::os::raw::c_char, + size: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tvb_strncaseeql( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + str_: *const ::std::os::raw::c_char, + size: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tvb_memeql( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + str_: *const u8, + size: usize, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tvb_bytes_to_str_punct( + scope: *mut wmem_allocator_t, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + len: ::std::os::raw::c_int, + punct: ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn tvb_bytes_to_str( + allocator: *mut wmem_allocator_t, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + len: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dgt_set_t { + pub out: [::std::os::raw::c_uchar; 16usize], +} +#[test] +fn bindgen_test_layout_dgt_set_t() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(dgt_set_t)) + ); + assert_eq!( + ::std::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(dgt_set_t)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).out) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(dgt_set_t), + "::", + stringify!(out) + ) + ); +} +extern "C" { + pub fn tvb_bcd_dig_to_str( + scope: *mut wmem_allocator_t, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + len: ::std::os::raw::c_int, + dgt: *const dgt_set_t, + skip_first: bool, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn tvb_bcd_dig_to_str_be( + scope: *mut wmem_allocator_t, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + len: ::std::os::raw::c_int, + dgt: *const dgt_set_t, + skip_first: bool, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn tvb_get_bcd_string( + scope: *mut wmem_allocator_t, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + len: ::std::os::raw::c_int, + dgt: *const dgt_set_t, + skip_first: bool, + odd: bool, + bigendian: bool, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn tvb_find_tvb( + haystack_tvb: *mut tvbuff_t, + needle_tvb: *mut tvbuff_t, + haystack_offset: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn tvb_uncompress( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + comprlen: ::std::os::raw::c_int, + ) -> *mut tvbuff_t; +} +extern "C" { + pub fn tvb_uncompress_zlib( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + comprlen: ::std::os::raw::c_int, + ) -> *mut tvbuff_t; +} +extern "C" { + pub fn tvb_child_uncompress( + parent: *mut tvbuff_t, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + comprlen: ::std::os::raw::c_int, + ) -> *mut tvbuff_t; +} +extern "C" { + pub fn tvb_child_uncompress_zlib( + parent: *mut tvbuff_t, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + comprlen: ::std::os::raw::c_int, + ) -> *mut tvbuff_t; +} +extern "C" { + pub fn tvb_uncompress_brotli( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + comprlen: ::std::os::raw::c_int, + ) -> *mut tvbuff_t; +} +extern "C" { + pub fn tvb_child_uncompress_brotli( + parent: *mut tvbuff_t, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + comprlen: ::std::os::raw::c_int, + ) -> *mut tvbuff_t; +} +extern "C" { + pub fn tvb_uncompress_snappy( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + comprlen: ::std::os::raw::c_int, + ) -> *mut tvbuff_t; +} +extern "C" { + pub fn tvb_child_uncompress_snappy( + parent: *mut tvbuff_t, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + comprlen: ::std::os::raw::c_int, + ) -> *mut tvbuff_t; +} +extern "C" { + pub fn tvb_uncompress_lz77( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + comprlen: ::std::os::raw::c_int, + ) -> *mut tvbuff_t; +} +extern "C" { + pub fn tvb_child_uncompress_lz77( + parent: *mut tvbuff_t, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + comprlen: ::std::os::raw::c_int, + ) -> *mut tvbuff_t; +} +extern "C" { + pub fn tvb_uncompress_lz77huff( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + comprlen: ::std::os::raw::c_int, + ) -> *mut tvbuff_t; +} +extern "C" { + pub fn tvb_child_uncompress_lz77huff( + parent: *mut tvbuff_t, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + comprlen: ::std::os::raw::c_int, + ) -> *mut tvbuff_t; +} +extern "C" { + pub fn tvb_uncompress_lznt1( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + comprlen: ::std::os::raw::c_int, + ) -> *mut tvbuff_t; +} +extern "C" { + pub fn tvb_child_uncompress_lznt1( + parent: *mut tvbuff_t, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + comprlen: ::std::os::raw::c_int, + ) -> *mut tvbuff_t; +} +extern "C" { + pub fn tvb_uncompress_zstd( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + comprlen: ::std::os::raw::c_int, + ) -> *mut tvbuff_t; +} +extern "C" { + pub fn tvb_child_uncompress_zstd( + parent: *mut tvbuff_t, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + comprlen: ::std::os::raw::c_int, + ) -> *mut tvbuff_t; +} +extern "C" { + pub fn base64_to_tvb( + parent: *mut tvbuff_t, + base64: *const ::std::os::raw::c_char, + ) -> *mut tvbuff_t; +} +extern "C" { + pub fn base64_tvb_to_new_tvb( + parent: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + ) -> *mut tvbuff_t; +} +extern "C" { + pub fn base64uri_tvb_to_new_tvb( + parent: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + ) -> *mut tvbuff_t; +} +extern "C" { + pub fn tvb_get_hpack_huffman_strbuf( + scope: *mut wmem_allocator_t, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + len: ::std::os::raw::c_int, + ) -> *mut wmem_strbuf_t; +} +extern "C" { + pub fn tvb_child_uncompress_hpack_huff( + parent: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + ) -> *mut tvbuff_t; +} +extern "C" { + pub fn tvb_get_varint( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_uint, + maxlen: ::std::os::raw::c_uint, + value: *mut u64, + encoding: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_uint; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _value_string { + pub value: u32, + pub strptr: *const ::std::os::raw::c_char, +} +#[test] +fn bindgen_test_layout__value_string() { + const UNINIT: ::std::mem::MaybeUninit<_value_string> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_value_string>(), + 16usize, + concat!("Size of: ", stringify!(_value_string)) + ); + assert_eq!( + ::std::mem::align_of::<_value_string>(), + 8usize, + concat!("Alignment of ", stringify!(_value_string)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_value_string), + "::", + stringify!(value) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).strptr) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_value_string), + "::", + stringify!(strptr) + ) + ); +} +pub type value_string = _value_string; +extern "C" { + pub fn val_to_str( + val: u32, + vs: *const value_string, + fmt: *const ::std::os::raw::c_char, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn val_to_str_wmem( + scope: *mut wmem_allocator_t, + val: u32, + vs: *const value_string, + fmt: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn val_to_str_const( + val: u32, + vs: *const value_string, + unknown_str: *const ::std::os::raw::c_char, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn try_val_to_str(val: u32, vs: *const value_string) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn try_val_to_str_idx( + val: u32, + vs: *const value_string, + idx: *mut ::std::os::raw::c_int, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn char_val_to_str( + val: ::std::os::raw::c_char, + vs: *const value_string, + msg: *const ::std::os::raw::c_char, + ) -> *const ::std::os::raw::c_char; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _val64_string { + pub value: u64, + pub strptr: *const ::std::os::raw::c_char, +} +#[test] +fn bindgen_test_layout__val64_string() { + const UNINIT: ::std::mem::MaybeUninit<_val64_string> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_val64_string>(), + 16usize, + concat!("Size of: ", stringify!(_val64_string)) + ); + assert_eq!( + ::std::mem::align_of::<_val64_string>(), + 8usize, + concat!("Alignment of ", stringify!(_val64_string)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_val64_string), + "::", + stringify!(value) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).strptr) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_val64_string), + "::", + stringify!(strptr) + ) + ); +} +pub type val64_string = _val64_string; +extern "C" { + pub fn val64_to_str( + val: u64, + vs: *const val64_string, + fmt: *const ::std::os::raw::c_char, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn val64_to_str_const( + val: u64, + vs: *const val64_string, + unknown_str: *const ::std::os::raw::c_char, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn try_val64_to_str(val: u64, vs: *const val64_string) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn try_val64_to_str_idx( + val: u64, + vs: *const val64_string, + idx: *mut ::std::os::raw::c_int, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn str_to_val( + val: *const ::std::os::raw::c_char, + vs: *const value_string, + err_val: u32, + ) -> u32; +} +extern "C" { + pub fn str_to_val_idx( + val: *const ::std::os::raw::c_char, + vs: *const value_string, + ) -> ::std::os::raw::c_int; +} +pub type value_string_ext = _value_string_ext; +pub type _value_string_match2_t = ::std::option::Option< + unsafe extern "C" fn(arg1: u32, arg2: *mut value_string_ext) -> *const value_string, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _value_string_ext { + pub _vs_match2: _value_string_match2_t, + pub _vs_first_value: u32, + pub _vs_num_entries: ::std::os::raw::c_uint, + pub _vs_p: *const value_string, + pub _vs_name: *const ::std::os::raw::c_char, +} +#[test] +fn bindgen_test_layout__value_string_ext() { + const UNINIT: ::std::mem::MaybeUninit<_value_string_ext> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_value_string_ext>(), + 32usize, + concat!("Size of: ", stringify!(_value_string_ext)) + ); + assert_eq!( + ::std::mem::align_of::<_value_string_ext>(), + 8usize, + concat!("Alignment of ", stringify!(_value_string_ext)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._vs_match2) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_value_string_ext), + "::", + stringify!(_vs_match2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._vs_first_value) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_value_string_ext), + "::", + stringify!(_vs_first_value) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._vs_num_entries) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(_value_string_ext), + "::", + stringify!(_vs_num_entries) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._vs_p) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_value_string_ext), + "::", + stringify!(_vs_p) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._vs_name) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_value_string_ext), + "::", + stringify!(_vs_name) + ) + ); +} +extern "C" { + pub fn _try_val_to_str_ext_init(val: u32, vse: *mut value_string_ext) -> *const value_string; +} +extern "C" { + pub fn value_string_ext_new( + vs: *const value_string, + vs_tot_num_entries: ::std::os::raw::c_uint, + vs_name: *const ::std::os::raw::c_char, + ) -> *mut value_string_ext; +} +extern "C" { + pub fn value_string_ext_free(vse: *mut value_string_ext); +} +extern "C" { + pub fn val_to_str_ext( + val: u32, + vse: *mut value_string_ext, + fmt: *const ::std::os::raw::c_char, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn val_to_str_ext_wmem( + scope: *mut wmem_allocator_t, + val: u32, + vse: *mut value_string_ext, + fmt: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn val_to_str_ext_const( + val: u32, + vs: *mut value_string_ext, + unknown_str: *const ::std::os::raw::c_char, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn try_val_to_str_ext( + val: u32, + vse: *mut value_string_ext, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn try_val_to_str_idx_ext( + val: u32, + vse: *mut value_string_ext, + idx: *mut ::std::os::raw::c_int, + ) -> *const ::std::os::raw::c_char; +} +pub type val64_string_ext = _val64_string_ext; +pub type _val64_string_match2_t = ::std::option::Option< + unsafe extern "C" fn(arg1: u64, arg2: *mut val64_string_ext) -> *const val64_string, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _val64_string_ext { + pub _vs_match2: _val64_string_match2_t, + pub _vs_first_value: u64, + pub _vs_num_entries: ::std::os::raw::c_uint, + pub _vs_p: *const val64_string, + pub _vs_name: *const ::std::os::raw::c_char, +} +#[test] +fn bindgen_test_layout__val64_string_ext() { + const UNINIT: ::std::mem::MaybeUninit<_val64_string_ext> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_val64_string_ext>(), + 40usize, + concat!("Size of: ", stringify!(_val64_string_ext)) + ); + assert_eq!( + ::std::mem::align_of::<_val64_string_ext>(), + 8usize, + concat!("Alignment of ", stringify!(_val64_string_ext)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._vs_match2) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_val64_string_ext), + "::", + stringify!(_vs_match2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._vs_first_value) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_val64_string_ext), + "::", + stringify!(_vs_first_value) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._vs_num_entries) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_val64_string_ext), + "::", + stringify!(_vs_num_entries) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._vs_p) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_val64_string_ext), + "::", + stringify!(_vs_p) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr)._vs_name) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_val64_string_ext), + "::", + stringify!(_vs_name) + ) + ); +} +extern "C" { + pub fn _try_val64_to_str_ext_init(val: u64, vse: *mut val64_string_ext) -> *const val64_string; +} +extern "C" { + pub fn val64_string_ext_new( + vs: *const val64_string, + vs_tot_num_entries: ::std::os::raw::c_uint, + vs_name: *const ::std::os::raw::c_char, + ) -> *mut val64_string_ext; +} +extern "C" { + pub fn val64_string_ext_free(vse: *mut val64_string_ext); +} +extern "C" { + pub fn val64_to_str_ext( + val: u64, + vse: *mut val64_string_ext, + fmt: *const ::std::os::raw::c_char, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn val64_to_str_ext_wmem( + scope: *mut wmem_allocator_t, + val: u64, + vse: *mut val64_string_ext, + fmt: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn val64_to_str_ext_const( + val: u64, + vs: *mut val64_string_ext, + unknown_str: *const ::std::os::raw::c_char, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn try_val64_to_str_ext( + val: u64, + vse: *mut val64_string_ext, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn try_val64_to_str_idx_ext( + val: u64, + vse: *mut val64_string_ext, + idx: *mut ::std::os::raw::c_int, + ) -> *const ::std::os::raw::c_char; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _string_string { + pub value: *const ::std::os::raw::c_char, + pub strptr: *const ::std::os::raw::c_char, +} +#[test] +fn bindgen_test_layout__string_string() { + const UNINIT: ::std::mem::MaybeUninit<_string_string> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_string_string>(), + 16usize, + concat!("Size of: ", stringify!(_string_string)) + ); + assert_eq!( + ::std::mem::align_of::<_string_string>(), + 8usize, + concat!("Alignment of ", stringify!(_string_string)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_string_string), + "::", + stringify!(value) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).strptr) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_string_string), + "::", + stringify!(strptr) + ) + ); +} +pub type string_string = _string_string; +extern "C" { + pub fn str_to_str( + val: *const ::std::os::raw::c_char, + vs: *const string_string, + fmt: *const ::std::os::raw::c_char, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn try_str_to_str( + val: *const ::std::os::raw::c_char, + vs: *const string_string, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn try_str_to_str_idx( + val: *const ::std::os::raw::c_char, + vs: *const string_string, + idx: *mut ::std::os::raw::c_int, + ) -> *const ::std::os::raw::c_char; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _range_string { + pub value_min: u64, + pub value_max: u64, + pub strptr: *const ::std::os::raw::c_char, +} +#[test] +fn bindgen_test_layout__range_string() { + const UNINIT: ::std::mem::MaybeUninit<_range_string> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_range_string>(), + 24usize, + concat!("Size of: ", stringify!(_range_string)) + ); + assert_eq!( + ::std::mem::align_of::<_range_string>(), + 8usize, + concat!("Alignment of ", stringify!(_range_string)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).value_min) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_range_string), + "::", + stringify!(value_min) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).value_max) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_range_string), + "::", + stringify!(value_max) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).strptr) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_range_string), + "::", + stringify!(strptr) + ) + ); +} +pub type range_string = _range_string; +extern "C" { + pub fn rval_to_str( + val: u32, + rs: *const range_string, + fmt: *const ::std::os::raw::c_char, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn rval_to_str_const( + val: u32, + rs: *const range_string, + unknown_str: *const ::std::os::raw::c_char, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn try_rval_to_str(val: u32, rs: *const range_string) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn try_rval_to_str_idx( + val: u32, + rs: *const range_string, + idx: *mut ::std::os::raw::c_int, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn try_rval64_to_str(val: u64, rs: *const range_string) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn try_rval64_to_str_idx( + val: u64, + rs: *const range_string, + idx: *mut ::std::os::raw::c_int, + ) -> *const ::std::os::raw::c_char; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _bytes_string { + pub value: *const u8, + pub value_length: usize, + pub strptr: *const ::std::os::raw::c_char, +} +#[test] +fn bindgen_test_layout__bytes_string() { + const UNINIT: ::std::mem::MaybeUninit<_bytes_string> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_bytes_string>(), + 24usize, + concat!("Size of: ", stringify!(_bytes_string)) + ); + assert_eq!( + ::std::mem::align_of::<_bytes_string>(), + 8usize, + concat!("Alignment of ", stringify!(_bytes_string)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_bytes_string), + "::", + stringify!(value) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).value_length) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_bytes_string), + "::", + stringify!(value_length) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).strptr) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_bytes_string), + "::", + stringify!(strptr) + ) + ); +} +pub type bytes_string = _bytes_string; +extern "C" { + pub fn bytesval_to_str( + val: *const u8, + val_len: usize, + bs: *const bytes_string, + fmt: *const ::std::os::raw::c_char, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn try_bytesval_to_str( + val: *const u8, + val_len: usize, + bs: *const bytes_string, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn bytesprefix_to_str( + haystack: *const u8, + haystack_len: usize, + bs: *const bytes_string, + fmt: *const ::std::os::raw::c_char, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn try_bytesprefix_to_str( + haystack: *const u8, + haystack_len: usize, + bs: *const bytes_string, + ) -> *const ::std::os::raw::c_char; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct true_false_string { + pub true_string: *const ::std::os::raw::c_char, + pub false_string: *const ::std::os::raw::c_char, +} +#[test] +fn bindgen_test_layout_true_false_string() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(true_false_string)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(true_false_string)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).true_string) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(true_false_string), + "::", + stringify!(true_string) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).false_string) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(true_false_string), + "::", + stringify!(false_string) + ) + ); +} +extern "C" { + pub fn tfs_get_string( + value: bool, + tfs: *const true_false_string, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub static tfs_yes_no: true_false_string; +} +extern "C" { + pub static tfs_no_yes: true_false_string; +} +extern "C" { + pub static tfs_set_notset: true_false_string; +} +extern "C" { + pub static tfs_enabled_disabled: true_false_string; +} +extern "C" { + pub static tfs_disabled_enabled: true_false_string; +} +extern "C" { + pub static tfs_ok_error: true_false_string; +} +extern "C" { + pub static tfs_error_ok: true_false_string; +} +extern "C" { + pub static tfs_success_fail: true_false_string; +} +extern "C" { + pub static tfs_fail_success: true_false_string; +} +extern "C" { + pub static tfs_on_off: true_false_string; +} +extern "C" { + pub static tfs_off_on: true_false_string; +} +extern "C" { + pub static tfs_ack_nack: true_false_string; +} +extern "C" { + pub static tfs_odd_even: true_false_string; +} +extern "C" { + pub static tfs_allow_block: true_false_string; +} +extern "C" { + pub static tfs_restricted_not_restricted: true_false_string; +} +extern "C" { + pub static tfs_not_restricted_restricted: true_false_string; +} +extern "C" { + pub static tfs_accept_reject: true_false_string; +} +extern "C" { + pub static tfs_more_nomore: true_false_string; +} +extern "C" { + pub static tfs_present_absent: true_false_string; +} +extern "C" { + pub static tfs_present_not_present: true_false_string; +} +extern "C" { + pub static tfs_active_inactive: true_false_string; +} +extern "C" { + pub static tfs_activated_deactivated: true_false_string; +} +extern "C" { + pub static tfs_found_not_found: true_false_string; +} +extern "C" { + pub static tfs_command_response: true_false_string; +} +extern "C" { + pub static tfs_response_command: true_false_string; +} +extern "C" { + pub static tfs_capable_not_capable: true_false_string; +} +extern "C" { + pub static tfs_supported_not_supported: true_false_string; +} +extern "C" { + pub static tfs_not_supported_supported: true_false_string; +} +extern "C" { + pub static tfs_used_notused: true_false_string; +} +extern "C" { + pub static tfs_high_low: true_false_string; +} +extern "C" { + pub static tfs_high_normal: true_false_string; +} +extern "C" { + pub static tfs_low_normal: true_false_string; +} +extern "C" { + pub static tfs_pressed_not_pressed: true_false_string; +} +extern "C" { + pub static tfs_implemented_not_implemented: true_false_string; +} +extern "C" { + pub static tfs_requested_not_requested: true_false_string; +} +extern "C" { + pub static tfs_reliable_not_reliable: true_false_string; +} +extern "C" { + pub static tfs_allowed_not_allowed: true_false_string; +} +extern "C" { + pub static tfs_not_allowed_allowed: true_false_string; +} +extern "C" { + pub static tfs_accepted_not_accepted: true_false_string; +} +extern "C" { + pub static tfs_detected_not_detected: true_false_string; +} +extern "C" { + pub static tfs_available_not_available: true_false_string; +} +extern "C" { + pub static tfs_shared_independent: true_false_string; +} +extern "C" { + pub static tfs_valid_invalid: true_false_string; +} +extern "C" { + pub static tfs_invalid_valid: true_false_string; +} +extern "C" { + pub static tfs_group_unique_name: true_false_string; +} +extern "C" { + pub static tfs_inuse_not_inuse: true_false_string; +} +extern "C" { + pub static tfs_critical_not_critical: true_false_string; +} +extern "C" { + pub static tfs_complete_incomplete: true_false_string; +} +extern "C" { + pub static tfs_valid_not_valid: true_false_string; +} +extern "C" { + pub static tfs_do_not_clear_clear: true_false_string; +} +extern "C" { + pub static tfs_confirmed_unconfirmed: true_false_string; +} +extern "C" { + pub static tfs_enforced_not_enforced: true_false_string; +} +extern "C" { + pub static tfs_possible_not_possible: true_false_string; +} +extern "C" { + pub static tfs_required_not_required: true_false_string; +} +extern "C" { + pub static tfs_registered_not_registered: true_false_string; +} +extern "C" { + pub static tfs_provisioned_not_provisioned: true_false_string; +} +extern "C" { + pub static tfs_included_not_included: true_false_string; +} +extern "C" { + pub static tfs_allocated_by_receiver_sender: true_false_string; +} +extern "C" { + pub static tfs_asynchronous_synchronous: true_false_string; +} +extern "C" { + pub static tfs_protocol_sensative_bit_transparent: true_false_string; +} +extern "C" { + pub static tfs_full_half: true_false_string; +} +extern "C" { + pub static tfs_acknowledged_not_acknowledged: true_false_string; +} +extern "C" { + pub static tfs_segmentation_no_segmentation: true_false_string; +} +extern "C" { + pub static tfs_response_request: true_false_string; +} +extern "C" { + pub static tfs_defined_not_defined: true_false_string; +} +extern "C" { + pub static tfs_constructed_primitive: true_false_string; +} +extern "C" { + pub static tfs_client_server: true_false_string; +} +extern "C" { + pub static tfs_server_client: true_false_string; +} +extern "C" { + pub static tfs_preferred_no_preference: true_false_string; +} +extern "C" { + pub static tfs_encrypt_do_not_encrypt: true_false_string; +} +extern "C" { + pub static tfs_down_up: true_false_string; +} +extern "C" { + pub static tfs_up_down: true_false_string; +} +extern "C" { + pub static tfs_uplink_downlink: true_false_string; +} +extern "C" { + pub static tfs_s2c_c2s: true_false_string; +} +extern "C" { + pub static tfs_open_closed: true_false_string; +} +extern "C" { + pub static tfs_external_internal: true_false_string; +} +extern "C" { + pub static tfs_changed_not_changed: true_false_string; +} +extern "C" { + pub static tfs_needed_not_needed: true_false_string; +} +extern "C" { + pub static tfs_selected_not_selected: true_false_string; +} +extern "C" { + pub static tfs_add_drop: true_false_string; +} +extern "C" { + pub static tfs_no_extension_extension: true_false_string; +} +extern "C" { + pub static tfs_user_provider: true_false_string; +} +extern "C" { + pub static tfs_applicable_not_applicable: true_false_string; +} +extern "C" { + pub static tfs_current_not_yet: true_false_string; +} +extern "C" { + pub static tfs_should_be_traced_should_not_be_traced: true_false_string; +} +extern "C" { + pub static tfs_activate_do_not_activate: true_false_string; +} +extern "C" { + pub static tfs_data_pdu_control_pdu: true_false_string; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct epan_session { + _unused: [u8; 0], +} +pub const packet_char_enc_PACKET_CHAR_ENC_CHAR_ASCII: packet_char_enc = 0; +pub const packet_char_enc_PACKET_CHAR_ENC_CHAR_EBCDIC: packet_char_enc = 1; +pub type packet_char_enc = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _color_filter { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _frame_data { + pub num: u32, + pub pkt_len: u32, + pub cap_len: u32, + pub cum_bytes: u32, + pub file_off: i64, + pub pfd: *mut GSList, + pub dependent_frames: *mut GHashTable, + pub color_filter: *const _color_filter, + pub tcp_snd_manual_analysis: u8, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, + pub abs_ts: nstime_t, + pub shift_offset: nstime_t, + pub frame_ref_num: u32, + pub prev_dis_num: u32, +} +#[test] +fn bindgen_test_layout__frame_data() { + const UNINIT: ::std::mem::MaybeUninit<_frame_data> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_frame_data>(), + 96usize, + concat!("Size of: ", stringify!(_frame_data)) + ); + assert_eq!( + ::std::mem::align_of::<_frame_data>(), + 8usize, + concat!("Alignment of ", stringify!(_frame_data)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_frame_data), + "::", + stringify!(num) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pkt_len) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_frame_data), + "::", + stringify!(pkt_len) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).cap_len) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_frame_data), + "::", + stringify!(cap_len) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).cum_bytes) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(_frame_data), + "::", + stringify!(cum_bytes) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).file_off) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_frame_data), + "::", + stringify!(file_off) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pfd) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_frame_data), + "::", + stringify!(pfd) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dependent_frames) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_frame_data), + "::", + stringify!(dependent_frames) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).color_filter) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(_frame_data), + "::", + stringify!(color_filter) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tcp_snd_manual_analysis) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(_frame_data), + "::", + stringify!(tcp_snd_manual_analysis) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).abs_ts) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(_frame_data), + "::", + stringify!(abs_ts) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).shift_offset) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(_frame_data), + "::", + stringify!(shift_offset) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).frame_ref_num) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(_frame_data), + "::", + stringify!(frame_ref_num) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).prev_dis_num) as usize - ptr as usize }, + 92usize, + concat!( + "Offset of field: ", + stringify!(_frame_data), + "::", + stringify!(prev_dis_num) + ) + ); +} +impl _frame_data { + #[inline] + pub fn passed_dfilter(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_passed_dfilter(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn dependent_of_displayed(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_dependent_of_displayed(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub fn encoding(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_encoding(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub fn visited(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } + } + #[inline] + pub fn set_visited(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub fn marked(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } + } + #[inline] + pub fn set_marked(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub fn ref_time(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } + } + #[inline] + pub fn set_ref_time(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub fn ignored(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } + } + #[inline] + pub fn set_ignored(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_ts(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_ts(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub fn has_modified_block(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_modified_block(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(8usize, 1u8, val as u64) + } + } + #[inline] + pub fn need_colorize(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) } + } + #[inline] + pub fn set_need_colorize(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(9usize, 1u8, val as u64) + } + } + #[inline] + pub fn tsprec(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 4u8) as u32) } + } + #[inline] + pub fn set_tsprec(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(10usize, 4u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + passed_dfilter: ::std::os::raw::c_uint, + dependent_of_displayed: ::std::os::raw::c_uint, + encoding: ::std::os::raw::c_uint, + visited: ::std::os::raw::c_uint, + marked: ::std::os::raw::c_uint, + ref_time: ::std::os::raw::c_uint, + ignored: ::std::os::raw::c_uint, + has_ts: ::std::os::raw::c_uint, + has_modified_block: ::std::os::raw::c_uint, + need_colorize: ::std::os::raw::c_uint, + tsprec: ::std::os::raw::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 2usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let passed_dfilter: u32 = unsafe { ::std::mem::transmute(passed_dfilter) }; + passed_dfilter as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let dependent_of_displayed: u32 = + unsafe { ::std::mem::transmute(dependent_of_displayed) }; + dependent_of_displayed as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let encoding: u32 = unsafe { ::std::mem::transmute(encoding) }; + encoding as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let visited: u32 = unsafe { ::std::mem::transmute(visited) }; + visited as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let marked: u32 = unsafe { ::std::mem::transmute(marked) }; + marked as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let ref_time: u32 = unsafe { ::std::mem::transmute(ref_time) }; + ref_time as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let ignored: u32 = unsafe { ::std::mem::transmute(ignored) }; + ignored as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let has_ts: u32 = unsafe { ::std::mem::transmute(has_ts) }; + has_ts as u64 + }); + __bindgen_bitfield_unit.set(8usize, 1u8, { + let has_modified_block: u32 = unsafe { ::std::mem::transmute(has_modified_block) }; + has_modified_block as u64 + }); + __bindgen_bitfield_unit.set(9usize, 1u8, { + let need_colorize: u32 = unsafe { ::std::mem::transmute(need_colorize) }; + need_colorize as u64 + }); + __bindgen_bitfield_unit.set(10usize, 4u8, { + let tsprec: u32 = unsafe { ::std::mem::transmute(tsprec) }; + tsprec as u64 + }); + __bindgen_bitfield_unit + } +} +pub type frame_data = _frame_data; +extern "C" { + pub fn frame_data_compare( + epan: *const epan_session, + fdata1: *const frame_data, + fdata2: *const frame_data, + field: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn frame_data_reset(fdata: *mut frame_data); +} +extern "C" { + pub fn frame_data_destroy(fdata: *mut frame_data); +} +extern "C" { + pub fn frame_data_init( + fdata: *mut frame_data, + num: u32, + rec: *const wtap_rec, + offset: i64, + cum_bytes: u32, + ); +} +extern "C" { + pub fn frame_delta_abs_time( + epan: *const epan_session, + fdata: *const frame_data, + prev_num: u32, + delta: *mut nstime_t, + ); +} +extern "C" { + pub fn frame_data_set_before_dissect( + fdata: *mut frame_data, + elapsed_time: *mut nstime_t, + frame_ref: *mut *const frame_data, + prev_dis: *const frame_data, + ); +} +extern "C" { + pub fn frame_data_set_after_dissect(fdata: *mut frame_data, cum_bytes: *mut u32); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ipv4_addr_and_mask { + pub addr: u32, + pub nmask: u32, +} +#[test] +fn bindgen_test_layout_ipv4_addr_and_mask() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(ipv4_addr_and_mask)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(ipv4_addr_and_mask)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ipv4_addr_and_mask), + "::", + stringify!(addr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).nmask) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ipv4_addr_and_mask), + "::", + stringify!(nmask) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_addr_and_prefix { + pub addr: ws_in6_addr, + pub prefix: u32, +} +#[test] +fn bindgen_test_layout_ipv6_addr_and_prefix() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 20usize, + concat!("Size of: ", stringify!(ipv6_addr_and_prefix)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(ipv6_addr_and_prefix)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ipv6_addr_and_prefix), + "::", + stringify!(addr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).prefix) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(ipv6_addr_and_prefix), + "::", + stringify!(prefix) + ) + ); +} +extern "C" { + pub fn ws_ipv4_get_subnet_mask(mask_length: u32) -> u32; +} +extern "C" { + pub fn ws_ipv4_addr_and_mask_init( + dst: *mut ipv4_addr_and_mask, + src_addr: ws_in4_addr, + src_bits: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ws_ipv4_addr_and_mask_contains( + ipv4: *const ipv4_addr_and_mask, + addr: *const ws_in4_addr, + ) -> bool; +} +extern "C" { + pub fn ws_ipv6_addr_and_prefix_contains( + ipv6: *const ipv6_addr_and_prefix, + addr: *const ws_in6_addr, + ) -> bool; +} +pub const address_type_AT_NONE: address_type = 0; +pub const address_type_AT_ETHER: address_type = 1; +pub const address_type_AT_IPv4: address_type = 2; +pub const address_type_AT_IPv6: address_type = 3; +pub const address_type_AT_IPX: address_type = 4; +pub const address_type_AT_FC: address_type = 5; +pub const address_type_AT_FCWWN: address_type = 6; +pub const address_type_AT_STRINGZ: address_type = 7; +pub const address_type_AT_EUI64: address_type = 8; +pub const address_type_AT_IB: address_type = 9; +pub const address_type_AT_AX25: address_type = 10; +pub const address_type_AT_VINES: address_type = 11; +pub const address_type_AT_NUMERIC: address_type = 12; +pub const address_type_AT_MCTP: address_type = 13; +pub const address_type_AT_END_OF_LIST: address_type = 14; +pub type address_type = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _address { + pub type_: ::std::os::raw::c_int, + pub len: ::std::os::raw::c_int, + pub data: *const ::std::os::raw::c_void, + pub priv_: *mut ::std::os::raw::c_void, +} +#[test] +fn bindgen_test_layout__address() { + const UNINIT: ::std::mem::MaybeUninit<_address> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_address>(), + 24usize, + concat!("Size of: ", stringify!(_address)) + ); + assert_eq!( + ::std::mem::align_of::<_address>(), + 8usize, + concat!("Alignment of ", stringify!(_address)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_address), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_address), + "::", + stringify!(len) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_address), + "::", + stringify!(data) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).priv_) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_address), + "::", + stringify!(priv_) + ) + ); +} +pub type address = _address; +extern "C" { + pub fn address_to_bytes( + addr: *const address, + buf: *mut u8, + buf_len: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_uint; +} +pub const port_type_PT_NONE: port_type = 0; +pub const port_type_PT_SCTP: port_type = 1; +pub const port_type_PT_TCP: port_type = 2; +pub const port_type_PT_UDP: port_type = 3; +pub const port_type_PT_DCCP: port_type = 4; +pub const port_type_PT_IPX: port_type = 5; +pub const port_type_PT_DDP: port_type = 6; +pub const port_type_PT_IDP: port_type = 7; +pub const port_type_PT_USB: port_type = 8; +pub const port_type_PT_I2C: port_type = 9; +pub const port_type_PT_IBQP: port_type = 10; +pub const port_type_PT_BLUETOOTH: port_type = 11; +pub const port_type_PT_IWARP_MPA: port_type = 12; +pub const port_type_PT_MCTP: port_type = 13; +pub type port_type = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct conversation_element { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _packet_info { + pub current_proto: *const ::std::os::raw::c_char, + pub cinfo: *mut epan_column_info, + pub presence_flags: u32, + pub num: u32, + pub abs_ts: nstime_t, + pub rel_ts: nstime_t, + pub rel_cap_ts: nstime_t, + pub rel_cap_ts_present: bool, + pub fd: *mut frame_data, + pub pseudo_header: *mut wtap_pseudo_header, + pub rec: *mut wtap_rec, + pub data_src: *mut GSList, + pub dl_src: address, + pub dl_dst: address, + pub net_src: address, + pub net_dst: address, + pub src: address, + pub dst: address, + pub vlan_id: u32, + pub noreassembly_reason: *const ::std::os::raw::c_char, + pub fragmented: bool, + pub flags: _packet_info__bindgen_ty_1, + pub ptype: port_type, + pub srcport: u32, + pub destport: u32, + pub match_uint: u32, + pub match_string: *const ::std::os::raw::c_char, + pub use_conv_addr_port_endpoints: bool, + pub conv_addr_port_endpoints: *mut conversation_addr_port_endpoints, + pub conv_elements: *mut conversation_element, + pub can_desegment: u16, + pub saved_can_desegment: u16, + pub desegment_offset: ::std::os::raw::c_int, + pub desegment_len: u32, + pub want_pdu_tracking: u16, + pub bytes_until_next_pdu: u32, + pub p2p_dir: ::std::os::raw::c_int, + pub private_table: *mut GHashTable, + pub layers: *mut wmem_list_t, + pub proto_layers: *mut wmem_map_t, + pub curr_layer_num: u8, + pub curr_proto_layer_num: u8, + pub link_number: u16, + pub clnp_srcref: u16, + pub clnp_dstref: u16, + pub link_dir: ::std::os::raw::c_int, + pub src_win_scale: i16, + pub dst_win_scale: i16, + pub proto_data: *mut GSList, + pub frame_end_routines: *mut GSList, + pub pool: *mut wmem_allocator_t, + pub epan: *mut epan_session, + pub heur_list_name: *const ::std::os::raw::c_char, + pub dissection_depth: ::std::os::raw::c_int, + pub stream_id: u32, +} +#[repr(C)] +#[repr(align(4))] +#[derive(Debug, Copy, Clone)] +pub struct _packet_info__bindgen_ty_1 { + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: [u8; 3usize], +} +#[test] +fn bindgen_test_layout__packet_info__bindgen_ty_1() { + assert_eq!( + ::std::mem::size_of::<_packet_info__bindgen_ty_1>(), + 4usize, + concat!("Size of: ", stringify!(_packet_info__bindgen_ty_1)) + ); + assert_eq!( + ::std::mem::align_of::<_packet_info__bindgen_ty_1>(), + 4usize, + concat!("Alignment of ", stringify!(_packet_info__bindgen_ty_1)) + ); +} +impl _packet_info__bindgen_ty_1 { + #[inline] + pub fn in_error_pkt(&self) -> u32 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_in_error_pkt(&mut self, val: u32) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn in_gre_pkt(&self) -> u32 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_in_gre_pkt(&mut self, val: u32) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + in_error_pkt: u32, + in_gre_pkt: u32, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let in_error_pkt: u32 = unsafe { ::std::mem::transmute(in_error_pkt) }; + in_error_pkt as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let in_gre_pkt: u32 = unsafe { ::std::mem::transmute(in_gre_pkt) }; + in_gre_pkt as u64 + }); + __bindgen_bitfield_unit + } +} +#[test] +fn bindgen_test_layout__packet_info() { + const UNINIT: ::std::mem::MaybeUninit<_packet_info> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_packet_info>(), + 440usize, + concat!("Size of: ", stringify!(_packet_info)) + ); + assert_eq!( + ::std::mem::align_of::<_packet_info>(), + 8usize, + concat!("Alignment of ", stringify!(_packet_info)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).current_proto) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(current_proto) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).cinfo) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(cinfo) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).presence_flags) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(presence_flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(num) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).abs_ts) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(abs_ts) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).rel_ts) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(rel_ts) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).rel_cap_ts) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(rel_cap_ts) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).rel_cap_ts_present) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(rel_cap_ts_present) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).fd) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(fd) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pseudo_header) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(pseudo_header) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).rec) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(rec) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).data_src) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(data_src) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dl_src) as usize - ptr as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(dl_src) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dl_dst) as usize - ptr as usize }, + 136usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(dl_dst) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).net_src) as usize - ptr as usize }, + 160usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(net_src) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).net_dst) as usize - ptr as usize }, + 184usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(net_dst) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).src) as usize - ptr as usize }, + 208usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(src) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dst) as usize - ptr as usize }, + 232usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(dst) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).vlan_id) as usize - ptr as usize }, + 256usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(vlan_id) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).noreassembly_reason) as usize - ptr as usize }, + 264usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(noreassembly_reason) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).fragmented) as usize - ptr as usize }, + 272usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(fragmented) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 276usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ptype) as usize - ptr as usize }, + 280usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(ptype) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).srcport) as usize - ptr as usize }, + 284usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(srcport) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).destport) as usize - ptr as usize }, + 288usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(destport) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).match_uint) as usize - ptr as usize }, + 292usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(match_uint) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).match_string) as usize - ptr as usize }, + 296usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(match_string) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).use_conv_addr_port_endpoints) as usize - ptr as usize + }, + 304usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(use_conv_addr_port_endpoints) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).conv_addr_port_endpoints) as usize - ptr as usize }, + 312usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(conv_addr_port_endpoints) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).conv_elements) as usize - ptr as usize }, + 320usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(conv_elements) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).can_desegment) as usize - ptr as usize }, + 328usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(can_desegment) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).saved_can_desegment) as usize - ptr as usize }, + 330usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(saved_can_desegment) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).desegment_offset) as usize - ptr as usize }, + 332usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(desegment_offset) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).desegment_len) as usize - ptr as usize }, + 336usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(desegment_len) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).want_pdu_tracking) as usize - ptr as usize }, + 340usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(want_pdu_tracking) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).bytes_until_next_pdu) as usize - ptr as usize }, + 344usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(bytes_until_next_pdu) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).p2p_dir) as usize - ptr as usize }, + 348usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(p2p_dir) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).private_table) as usize - ptr as usize }, + 352usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(private_table) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).layers) as usize - ptr as usize }, + 360usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(layers) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).proto_layers) as usize - ptr as usize }, + 368usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(proto_layers) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).curr_layer_num) as usize - ptr as usize }, + 376usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(curr_layer_num) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).curr_proto_layer_num) as usize - ptr as usize }, + 377usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(curr_proto_layer_num) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).link_number) as usize - ptr as usize }, + 378usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(link_number) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).clnp_srcref) as usize - ptr as usize }, + 380usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(clnp_srcref) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).clnp_dstref) as usize - ptr as usize }, + 382usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(clnp_dstref) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).link_dir) as usize - ptr as usize }, + 384usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(link_dir) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).src_win_scale) as usize - ptr as usize }, + 388usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(src_win_scale) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dst_win_scale) as usize - ptr as usize }, + 390usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(dst_win_scale) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).proto_data) as usize - ptr as usize }, + 392usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(proto_data) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).frame_end_routines) as usize - ptr as usize }, + 400usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(frame_end_routines) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pool) as usize - ptr as usize }, + 408usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(pool) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).epan) as usize - ptr as usize }, + 416usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(epan) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).heur_list_name) as usize - ptr as usize }, + 424usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(heur_list_name) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dissection_depth) as usize - ptr as usize }, + 432usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(dissection_depth) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).stream_id) as usize - ptr as usize }, + 436usize, + concat!( + "Offset of field: ", + stringify!(_packet_info), + "::", + stringify!(stream_id) + ) + ); +} +pub type packet_info = _packet_info; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _ws_regex { + _unused: [u8; 0], +} +pub type ws_regex_t = _ws_regex; +extern "C" { + pub fn ws_regex_compile( + patt: *const ::std::os::raw::c_char, + errmsg: *mut *mut ::std::os::raw::c_char, + ) -> *mut ws_regex_t; +} +extern "C" { + pub fn ws_regex_compile_ex( + patt: *const ::std::os::raw::c_char, + size: isize, + errmsg: *mut *mut ::std::os::raw::c_char, + flags: ::std::os::raw::c_uint, + ) -> *mut ws_regex_t; +} +extern "C" { + pub fn ws_regex_matches(re: *const ws_regex_t, subj: *const ::std::os::raw::c_char) -> bool; +} +extern "C" { + pub fn ws_regex_matches_length( + re: *const ws_regex_t, + subj: *const ::std::os::raw::c_char, + subj_length: isize, + ) -> bool; +} +extern "C" { + pub fn ws_regex_matches_pos( + re: *const ws_regex_t, + subj: *const ::std::os::raw::c_char, + subj_length: isize, + subj_offset: usize, + pos_vect: *mut usize, + ) -> bool; +} +extern "C" { + pub fn ws_regex_free(re: *mut ws_regex_t); +} +extern "C" { + pub fn ws_regex_pattern(re: *const ws_regex_t) -> *const ::std::os::raw::c_char; +} +pub const ftenum_FT_NONE: ftenum = 0; +pub const ftenum_FT_PROTOCOL: ftenum = 1; +pub const ftenum_FT_BOOLEAN: ftenum = 2; +pub const ftenum_FT_CHAR: ftenum = 3; +pub const ftenum_FT_UINT8: ftenum = 4; +pub const ftenum_FT_UINT16: ftenum = 5; +pub const ftenum_FT_UINT24: ftenum = 6; +pub const ftenum_FT_UINT32: ftenum = 7; +pub const ftenum_FT_UINT40: ftenum = 8; +pub const ftenum_FT_UINT48: ftenum = 9; +pub const ftenum_FT_UINT56: ftenum = 10; +pub const ftenum_FT_UINT64: ftenum = 11; +pub const ftenum_FT_INT8: ftenum = 12; +pub const ftenum_FT_INT16: ftenum = 13; +pub const ftenum_FT_INT24: ftenum = 14; +pub const ftenum_FT_INT32: ftenum = 15; +pub const ftenum_FT_INT40: ftenum = 16; +pub const ftenum_FT_INT48: ftenum = 17; +pub const ftenum_FT_INT56: ftenum = 18; +pub const ftenum_FT_INT64: ftenum = 19; +pub const ftenum_FT_IEEE_11073_SFLOAT: ftenum = 20; +pub const ftenum_FT_IEEE_11073_FLOAT: ftenum = 21; +pub const ftenum_FT_FLOAT: ftenum = 22; +pub const ftenum_FT_DOUBLE: ftenum = 23; +pub const ftenum_FT_ABSOLUTE_TIME: ftenum = 24; +pub const ftenum_FT_RELATIVE_TIME: ftenum = 25; +pub const ftenum_FT_STRING: ftenum = 26; +pub const ftenum_FT_STRINGZ: ftenum = 27; +pub const ftenum_FT_UINT_STRING: ftenum = 28; +pub const ftenum_FT_ETHER: ftenum = 29; +pub const ftenum_FT_BYTES: ftenum = 30; +pub const ftenum_FT_UINT_BYTES: ftenum = 31; +pub const ftenum_FT_IPv4: ftenum = 32; +pub const ftenum_FT_IPv6: ftenum = 33; +pub const ftenum_FT_IPXNET: ftenum = 34; +pub const ftenum_FT_FRAMENUM: ftenum = 35; +pub const ftenum_FT_GUID: ftenum = 36; +pub const ftenum_FT_OID: ftenum = 37; +pub const ftenum_FT_EUI64: ftenum = 38; +pub const ftenum_FT_AX25: ftenum = 39; +pub const ftenum_FT_VINES: ftenum = 40; +pub const ftenum_FT_REL_OID: ftenum = 41; +pub const ftenum_FT_SYSTEM_ID: ftenum = 42; +pub const ftenum_FT_STRINGZPAD: ftenum = 43; +pub const ftenum_FT_FCWWN: ftenum = 44; +pub const ftenum_FT_STRINGZTRUNC: ftenum = 45; +pub const ftenum_FT_NUM_TYPES: ftenum = 46; +pub const ftenum_FT_SCALAR: ftenum = 47; +pub type ftenum = ::std::os::raw::c_uint; +pub use self::ftenum as ftenum_t; +pub const ft_framenum_type_FT_FRAMENUM_NONE: ft_framenum_type = 0; +pub const ft_framenum_type_FT_FRAMENUM_REQUEST: ft_framenum_type = 1; +pub const ft_framenum_type_FT_FRAMENUM_RESPONSE: ft_framenum_type = 2; +pub const ft_framenum_type_FT_FRAMENUM_ACK: ft_framenum_type = 3; +pub const ft_framenum_type_FT_FRAMENUM_DUP_ACK: ft_framenum_type = 4; +pub const ft_framenum_type_FT_FRAMENUM_RETRANS_PREV: ft_framenum_type = 5; +pub const ft_framenum_type_FT_FRAMENUM_RETRANS_NEXT: ft_framenum_type = 6; +pub const ft_framenum_type_FT_FRAMENUM_NUM_TYPES: ft_framenum_type = 7; +pub type ft_framenum_type = ::std::os::raw::c_uint; +pub use self::ft_framenum_type as ft_framenum_type_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _ftype_t { + _unused: [u8; 0], +} +pub type ftype_t = _ftype_t; +pub const ft_result_FT_OK: ft_result = 0; +pub const ft_result_FT_OVERFLOW: ft_result = 1; +pub const ft_result_FT_BADARG: ft_result = 2; +pub const ft_result_FT_ERROR: ft_result = 3; +pub type ft_result = ::std::os::raw::c_uint; +pub type ft_bool_t = bool; +pub const ftrepr_FTREPR_DISPLAY: ftrepr = 0; +pub const ftrepr_FTREPR_DFILTER: ftrepr = 1; +pub const ftrepr_FTREPR_JSON: ftrepr = 2; +pub type ftrepr = ::std::os::raw::c_uint; +pub use self::ftrepr as ftrepr_t; +extern "C" { + pub fn ftypes_initialize(); +} +extern "C" { + pub fn ftypes_register_pseudofields(); +} +extern "C" { + pub fn ftype_similar_types(ftype_a: ftenum, ftype_b: ftenum) -> bool; +} +extern "C" { + pub fn ftype_name(ftype: ftenum_t) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn ftype_pretty_name(ftype: ftenum_t) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn ftype_wire_size(ftype: ftenum_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ftype_can_length(ftype: ftenum) -> bool; +} +extern "C" { + pub fn ftype_can_slice(ftype: ftenum) -> bool; +} +extern "C" { + pub fn ftype_can_eq(ftype: ftenum) -> bool; +} +extern "C" { + pub fn ftype_can_cmp(ftype: ftenum) -> bool; +} +extern "C" { + pub fn ftype_can_bitwise_and(ftype: ftenum) -> bool; +} +extern "C" { + pub fn ftype_can_unary_minus(ftype: ftenum) -> bool; +} +extern "C" { + pub fn ftype_can_add(ftype: ftenum) -> bool; +} +extern "C" { + pub fn ftype_can_subtract(ftype: ftenum) -> bool; +} +extern "C" { + pub fn ftype_can_multiply(ftype: ftenum) -> bool; +} +extern "C" { + pub fn ftype_can_divide(ftype: ftenum) -> bool; +} +extern "C" { + pub fn ftype_can_modulo(ftype: ftenum) -> bool; +} +extern "C" { + pub fn ftype_can_contains(ftype: ftenum) -> bool; +} +extern "C" { + pub fn ftype_can_matches(ftype: ftenum) -> bool; +} +extern "C" { + pub fn ftype_can_is_zero(ftype: ftenum) -> bool; +} +extern "C" { + pub fn ftype_can_is_negative(ftype: ftenum) -> bool; +} +extern "C" { + pub fn ftype_can_val_to_sinteger(ftype: ftenum) -> bool; +} +extern "C" { + pub fn ftype_can_val_to_uinteger(ftype: ftenum) -> bool; +} +extern "C" { + pub fn ftype_can_val_to_sinteger64(ftype: ftenum) -> bool; +} +extern "C" { + pub fn ftype_can_val_to_uinteger64(ftype: ftenum) -> bool; +} +pub const drange_node_end_t_DRANGE_NODE_END_T_UNINITIALIZED: drange_node_end_t = 0; +pub const drange_node_end_t_DRANGE_NODE_END_T_LENGTH: drange_node_end_t = 1; +pub const drange_node_end_t_DRANGE_NODE_END_T_OFFSET: drange_node_end_t = 2; +pub const drange_node_end_t_DRANGE_NODE_END_T_TO_THE_END: drange_node_end_t = 3; +pub type drange_node_end_t = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _drange_node { + pub start_offset: ::std::os::raw::c_int, + pub length: ::std::os::raw::c_int, + pub end_offset: ::std::os::raw::c_int, + pub ending: drange_node_end_t, +} +#[test] +fn bindgen_test_layout__drange_node() { + const UNINIT: ::std::mem::MaybeUninit<_drange_node> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_drange_node>(), + 16usize, + concat!("Size of: ", stringify!(_drange_node)) + ); + assert_eq!( + ::std::mem::align_of::<_drange_node>(), + 4usize, + concat!("Alignment of ", stringify!(_drange_node)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).start_offset) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_drange_node), + "::", + stringify!(start_offset) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_drange_node), + "::", + stringify!(length) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).end_offset) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_drange_node), + "::", + stringify!(end_offset) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ending) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(_drange_node), + "::", + stringify!(ending) + ) + ); +} +pub type drange_node = _drange_node; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _drange { + pub range_list: *mut GSList, + pub has_total_length: bool, + pub total_length: ::std::os::raw::c_int, + pub min_start_offset: ::std::os::raw::c_int, + pub max_start_offset: ::std::os::raw::c_int, +} +#[test] +fn bindgen_test_layout__drange() { + const UNINIT: ::std::mem::MaybeUninit<_drange> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_drange>(), + 24usize, + concat!("Size of: ", stringify!(_drange)) + ); + assert_eq!( + ::std::mem::align_of::<_drange>(), + 8usize, + concat!("Alignment of ", stringify!(_drange)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).range_list) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_drange), + "::", + stringify!(range_list) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).has_total_length) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_drange), + "::", + stringify!(has_total_length) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).total_length) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(_drange), + "::", + stringify!(total_length) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).min_start_offset) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_drange), + "::", + stringify!(min_start_offset) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).max_start_offset) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(_drange), + "::", + stringify!(max_start_offset) + ) + ); +} +pub type drange_t = _drange; +extern "C" { + pub fn drange_node_new() -> *mut drange_node; +} +extern "C" { + pub fn drange_node_from_str( + range_str: *const ::std::os::raw::c_char, + err_ptr: *mut *mut ::std::os::raw::c_char, + ) -> *mut drange_node; +} +extern "C" { + pub fn drange_node_free(drnode: *mut drange_node); +} +extern "C" { + pub fn drange_node_free_list(list: *mut GSList); +} +extern "C" { + pub fn drange_node_get_start_offset(drnode: *mut drange_node) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn drange_node_get_length(drnode: *mut drange_node) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn drange_node_get_end_offset(drnode: *mut drange_node) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn drange_node_get_ending(drnode: *mut drange_node) -> drange_node_end_t; +} +extern "C" { + pub fn drange_node_set_start_offset(drnode: *mut drange_node, offset: ::std::os::raw::c_int); +} +extern "C" { + pub fn drange_node_set_length(drnode: *mut drange_node, length: ::std::os::raw::c_int); +} +extern "C" { + pub fn drange_node_set_end_offset(drnode: *mut drange_node, offset: ::std::os::raw::c_int); +} +extern "C" { + pub fn drange_node_set_to_the_end(drnode: *mut drange_node); +} +extern "C" { + pub fn drange_new(drnode: *mut drange_node) -> *mut drange_t; +} +extern "C" { + pub fn drange_new_from_list(list: *mut GSList) -> *mut drange_t; +} +extern "C" { + pub fn drange_dup(org: *mut drange_t) -> *mut drange_t; +} +extern "C" { + pub fn drange_free(dr: *mut drange_t); +} +extern "C" { + pub fn drange_has_total_length(dr: *mut drange_t) -> bool; +} +extern "C" { + pub fn drange_get_total_length(dr: *mut drange_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn drange_get_min_start_offset(dr: *mut drange_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn drange_get_max_start_offset(dr: *mut drange_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn drange_append_drange_node(dr: *mut drange_t, drnode: *mut drange_node); +} +extern "C" { + pub fn drange_prepend_drange_node(dr: *mut drange_t, drnode: *mut drange_node); +} +extern "C" { + pub fn drange_foreach_drange_node( + dr: *mut drange_t, + func: GFunc, + funcdata: *mut ::std::os::raw::c_void, + ); +} +extern "C" { + pub fn drange_node_tostr(rn: *const drange_node) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn drange_tostr(dr: *const drange_t) -> *mut ::std::os::raw::c_char; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _protocol_value_t { + pub tvb: *mut tvbuff_t, + pub length: ::std::os::raw::c_int, + pub proto_string: *mut ::std::os::raw::c_char, + pub tvb_is_private: bool, +} +#[test] +fn bindgen_test_layout__protocol_value_t() { + const UNINIT: ::std::mem::MaybeUninit<_protocol_value_t> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_protocol_value_t>(), + 32usize, + concat!("Size of: ", stringify!(_protocol_value_t)) + ); + assert_eq!( + ::std::mem::align_of::<_protocol_value_t>(), + 8usize, + concat!("Alignment of ", stringify!(_protocol_value_t)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tvb) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_protocol_value_t), + "::", + stringify!(tvb) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_protocol_value_t), + "::", + stringify!(length) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).proto_string) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_protocol_value_t), + "::", + stringify!(proto_string) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tvb_is_private) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_protocol_value_t), + "::", + stringify!(tvb_is_private) + ) + ); +} +pub type protocol_value_t = _protocol_value_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _fvalue_t { + _unused: [u8; 0], +} +pub type fvalue_t = _fvalue_t; +extern "C" { + pub fn fvalue_new(ftype: ftenum_t) -> *mut fvalue_t; +} +extern "C" { + pub fn fvalue_dup(fv: *const fvalue_t) -> *mut fvalue_t; +} +extern "C" { + pub fn fvalue_init(fv: *mut fvalue_t, ftype: ftenum_t); +} +extern "C" { + pub fn fvalue_cleanup(fv: *mut fvalue_t); +} +extern "C" { + pub fn fvalue_free(fv: *mut fvalue_t); +} +extern "C" { + pub fn fvalue_from_literal( + ftype: ftenum_t, + s: *const ::std::os::raw::c_char, + allow_partial_value: bool, + err_msg: *mut *mut ::std::os::raw::c_char, + ) -> *mut fvalue_t; +} +extern "C" { + pub fn fvalue_from_string( + ftype: ftenum_t, + s: *const ::std::os::raw::c_char, + len: usize, + err_msg: *mut *mut ::std::os::raw::c_char, + ) -> *mut fvalue_t; +} +extern "C" { + pub fn fvalue_from_charconst( + ftype: ftenum_t, + number: ::std::os::raw::c_ulong, + err_msg: *mut *mut ::std::os::raw::c_char, + ) -> *mut fvalue_t; +} +extern "C" { + pub fn fvalue_from_sinteger64( + ftype: ftenum_t, + s: *const ::std::os::raw::c_char, + number: i64, + err_msg: *mut *mut ::std::os::raw::c_char, + ) -> *mut fvalue_t; +} +extern "C" { + pub fn fvalue_from_uinteger64( + ftype: ftenum_t, + s: *const ::std::os::raw::c_char, + number: u64, + err_msg: *mut *mut ::std::os::raw::c_char, + ) -> *mut fvalue_t; +} +extern "C" { + pub fn fvalue_from_floating( + ftype: ftenum_t, + s: *const ::std::os::raw::c_char, + number: f64, + err_msg: *mut *mut ::std::os::raw::c_char, + ) -> *mut fvalue_t; +} +extern "C" { + pub fn fvalue_to_string_repr( + scope: *mut wmem_allocator_t, + fv: *const fvalue_t, + rtype: ftrepr_t, + field_display: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn fvalue_to_uinteger(fv: *const fvalue_t, repr: *mut u32) -> ft_result; +} +extern "C" { + pub fn fvalue_to_sinteger(fv: *const fvalue_t, repr: *mut i32) -> ft_result; +} +extern "C" { + pub fn fvalue_to_uinteger64(fv: *const fvalue_t, repr: *mut u64) -> ft_result; +} +extern "C" { + pub fn fvalue_to_sinteger64(fv: *const fvalue_t, repr: *mut i64) -> ft_result; +} +extern "C" { + pub fn fvalue_to_double(fv: *const fvalue_t, repr: *mut f64) -> ft_result; +} +extern "C" { + pub fn fvalue_type_ftenum(fv: *const fvalue_t) -> ftenum_t; +} +extern "C" { + pub fn fvalue_type_name(fv: *const fvalue_t) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn fvalue_set_bytes(fv: *mut fvalue_t, value: *mut GBytes); +} +extern "C" { + pub fn fvalue_set_byte_array(fv: *mut fvalue_t, value: *mut GByteArray); +} +extern "C" { + pub fn fvalue_set_bytes_data( + fv: *mut fvalue_t, + data: *const ::std::os::raw::c_void, + size: usize, + ); +} +extern "C" { + pub fn fvalue_set_fcwwn(fv: *mut fvalue_t, value: *const u8); +} +extern "C" { + pub fn fvalue_set_ax25(fv: *mut fvalue_t, value: *const u8); +} +extern "C" { + pub fn fvalue_set_vines(fv: *mut fvalue_t, value: *const u8); +} +extern "C" { + pub fn fvalue_set_ether(fv: *mut fvalue_t, value: *const u8); +} +extern "C" { + pub fn fvalue_set_guid(fv: *mut fvalue_t, value: *const e_guid_t); +} +extern "C" { + pub fn fvalue_set_time(fv: *mut fvalue_t, value: *const nstime_t); +} +extern "C" { + pub fn fvalue_set_string(fv: *mut fvalue_t, value: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn fvalue_set_strbuf(fv: *mut fvalue_t, value: *mut wmem_strbuf_t); +} +extern "C" { + pub fn fvalue_set_protocol( + fv: *mut fvalue_t, + value: *mut tvbuff_t, + name: *const ::std::os::raw::c_char, + length: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn fvalue_set_uinteger(fv: *mut fvalue_t, value: u32); +} +extern "C" { + pub fn fvalue_set_sinteger(fv: *mut fvalue_t, value: i32); +} +extern "C" { + pub fn fvalue_set_uinteger64(fv: *mut fvalue_t, value: u64); +} +extern "C" { + pub fn fvalue_set_sinteger64(fv: *mut fvalue_t, value: i64); +} +extern "C" { + pub fn fvalue_set_floating(fv: *mut fvalue_t, value: f64); +} +extern "C" { + pub fn fvalue_set_ipv4(fv: *mut fvalue_t, value: *const ipv4_addr_and_mask); +} +extern "C" { + pub fn fvalue_set_ipv6(fv: *mut fvalue_t, value: *const ipv6_addr_and_prefix); +} +extern "C" { + pub fn fvalue_get_bytes(fv: *mut fvalue_t) -> *mut GBytes; +} +extern "C" { + pub fn fvalue_get_bytes_size(fv: *mut fvalue_t) -> usize; +} +extern "C" { + pub fn fvalue_get_bytes_data(fv: *mut fvalue_t) -> *const ::std::os::raw::c_void; +} +extern "C" { + pub fn fvalue_get_guid(fv: *mut fvalue_t) -> *const e_guid_t; +} +extern "C" { + pub fn fvalue_get_time(fv: *mut fvalue_t) -> *const nstime_t; +} +extern "C" { + pub fn fvalue_get_string(fv: *mut fvalue_t) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn fvalue_get_strbuf(fv: *mut fvalue_t) -> *const wmem_strbuf_t; +} +extern "C" { + pub fn fvalue_get_protocol(fv: *mut fvalue_t) -> *mut tvbuff_t; +} +extern "C" { + pub fn fvalue_get_uinteger(fv: *mut fvalue_t) -> u32; +} +extern "C" { + pub fn fvalue_get_sinteger(fv: *mut fvalue_t) -> i32; +} +extern "C" { + pub fn fvalue_get_uinteger64(fv: *mut fvalue_t) -> u64; +} +extern "C" { + pub fn fvalue_get_sinteger64(fv: *mut fvalue_t) -> i64; +} +extern "C" { + pub fn fvalue_get_floating(fv: *mut fvalue_t) -> f64; +} +extern "C" { + pub fn fvalue_get_ipv4(fv: *mut fvalue_t) -> *const ipv4_addr_and_mask; +} +extern "C" { + pub fn fvalue_get_ipv6(fv: *mut fvalue_t) -> *const ipv6_addr_and_prefix; +} +extern "C" { + pub fn fvalue_eq(a: *const fvalue_t, b: *const fvalue_t) -> ft_bool_t; +} +extern "C" { + pub fn fvalue_ne(a: *const fvalue_t, b: *const fvalue_t) -> ft_bool_t; +} +extern "C" { + pub fn fvalue_gt(a: *const fvalue_t, b: *const fvalue_t) -> ft_bool_t; +} +extern "C" { + pub fn fvalue_ge(a: *const fvalue_t, b: *const fvalue_t) -> ft_bool_t; +} +extern "C" { + pub fn fvalue_lt(a: *const fvalue_t, b: *const fvalue_t) -> ft_bool_t; +} +extern "C" { + pub fn fvalue_le(a: *const fvalue_t, b: *const fvalue_t) -> ft_bool_t; +} +extern "C" { + pub fn fvalue_contains(a: *const fvalue_t, b: *const fvalue_t) -> ft_bool_t; +} +extern "C" { + pub fn fvalue_matches(a: *const fvalue_t, re: *const ws_regex_t) -> ft_bool_t; +} +extern "C" { + pub fn fvalue_is_zero(a: *const fvalue_t) -> bool; +} +extern "C" { + pub fn fvalue_is_negative(a: *const fvalue_t) -> bool; +} +extern "C" { + pub fn fvalue_length2(fv: *mut fvalue_t) -> usize; +} +extern "C" { + pub fn fvalue_slice(fv: *mut fvalue_t, dr: *mut drange_t) -> *mut fvalue_t; +} +extern "C" { + pub fn fvalue_bitwise_and( + a: *const fvalue_t, + b: *const fvalue_t, + err_msg: *mut *mut ::std::os::raw::c_char, + ) -> *mut fvalue_t; +} +extern "C" { + pub fn fvalue_unary_minus( + fv: *const fvalue_t, + err_msg: *mut *mut ::std::os::raw::c_char, + ) -> *mut fvalue_t; +} +extern "C" { + pub fn fvalue_add( + a: *const fvalue_t, + b: *const fvalue_t, + err_msg: *mut *mut ::std::os::raw::c_char, + ) -> *mut fvalue_t; +} +extern "C" { + pub fn fvalue_subtract( + a: *const fvalue_t, + b: *const fvalue_t, + err_msg: *mut *mut ::std::os::raw::c_char, + ) -> *mut fvalue_t; +} +extern "C" { + pub fn fvalue_multiply( + a: *const fvalue_t, + b: *const fvalue_t, + err_msg: *mut *mut ::std::os::raw::c_char, + ) -> *mut fvalue_t; +} +extern "C" { + pub fn fvalue_divide( + a: *const fvalue_t, + b: *const fvalue_t, + err_msg: *mut *mut ::std::os::raw::c_char, + ) -> *mut fvalue_t; +} +extern "C" { + pub fn fvalue_modulo( + a: *const fvalue_t, + b: *const fvalue_t, + err_msg: *mut *mut ::std::os::raw::c_char, + ) -> *mut fvalue_t; +} +extern "C" { + pub fn fvalue_hash(fv: *const fvalue_t) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn fvalue_equal(a: *const fvalue_t, b: *const fvalue_t) -> bool; +} +pub const register_action_e_RA_NONE: register_action_e = 0; +pub const register_action_e_RA_DISSECTORS: register_action_e = 1; +pub const register_action_e_RA_LISTENERS: register_action_e = 2; +pub const register_action_e_RA_EXTCAP: register_action_e = 3; +pub const register_action_e_RA_REGISTER: register_action_e = 4; +pub const register_action_e_RA_PLUGIN_REGISTER: register_action_e = 5; +pub const register_action_e_RA_HANDOFF: register_action_e = 6; +pub const register_action_e_RA_PLUGIN_HANDOFF: register_action_e = 7; +pub const register_action_e_RA_LUA_PLUGINS: register_action_e = 8; +pub const register_action_e_RA_LUA_DEREGISTER: register_action_e = 9; +pub const register_action_e_RA_PREFERENCES: register_action_e = 10; +pub const register_action_e_RA_INTERFACES: register_action_e = 11; +pub const register_action_e_RA_PREFERENCES_APPLY: register_action_e = 12; +pub type register_action_e = ::std::os::raw::c_uint; +pub type register_cb = ::std::option::Option< + unsafe extern "C" fn( + action: register_action_e, + message: *const ::std::os::raw::c_char, + client_data: *mut ::std::os::raw::c_void, + ), +>; +extern "C" { + pub static mut hf_text_only: ::std::os::raw::c_int; +} +pub type custom_fmt_func_t = + ::std::option::Option; +pub type custom_fmt_func_64_t = + ::std::option::Option; +pub type custom_fmt_func_double_t = + ::std::option::Option; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _protocol { + _unused: [u8; 0], +} +pub type protocol_t = _protocol; +extern "C" { + pub fn proto_report_dissector_bug(format: *const ::std::os::raw::c_char, ...); +} +pub const field_display_e_BASE_NONE: field_display_e = 0; +pub const field_display_e_BASE_DEC: field_display_e = 1; +pub const field_display_e_BASE_HEX: field_display_e = 2; +pub const field_display_e_BASE_OCT: field_display_e = 3; +pub const field_display_e_BASE_DEC_HEX: field_display_e = 4; +pub const field_display_e_BASE_HEX_DEC: field_display_e = 5; +pub const field_display_e_BASE_CUSTOM: field_display_e = 6; +pub const field_display_e_BASE_EXP: field_display_e = 7; +pub const field_display_e_SEP_DOT: field_display_e = 8; +pub const field_display_e_SEP_DASH: field_display_e = 9; +pub const field_display_e_SEP_COLON: field_display_e = 10; +pub const field_display_e_SEP_SPACE: field_display_e = 11; +pub const field_display_e_BASE_NETMASK: field_display_e = 12; +pub const field_display_e_BASE_PT_UDP: field_display_e = 13; +pub const field_display_e_BASE_PT_TCP: field_display_e = 14; +pub const field_display_e_BASE_PT_DCCP: field_display_e = 15; +pub const field_display_e_BASE_PT_SCTP: field_display_e = 16; +pub const field_display_e_BASE_OUI: field_display_e = 17; +pub const field_display_e_ABSOLUTE_TIME_LOCAL: field_display_e = 18; +pub const field_display_e_ABSOLUTE_TIME_UTC: field_display_e = 19; +pub const field_display_e_ABSOLUTE_TIME_DOY_UTC: field_display_e = 20; +pub const field_display_e_ABSOLUTE_TIME_NTP_UTC: field_display_e = 21; +pub const field_display_e_ABSOLUTE_TIME_UNIX: field_display_e = 22; +pub const field_display_e_BASE_STR_WSP: field_display_e = 23; +pub type field_display_e = ::std::os::raw::c_uint; +pub const hf_ref_type_HF_REF_TYPE_NONE: hf_ref_type = 0; +pub const hf_ref_type_HF_REF_TYPE_INDIRECT: hf_ref_type = 1; +pub const hf_ref_type_HF_REF_TYPE_DIRECT: hf_ref_type = 2; +pub const hf_ref_type_HF_REF_TYPE_PRINT: hf_ref_type = 3; +pub type hf_ref_type = ::std::os::raw::c_uint; +pub type header_field_info = _header_field_info; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _header_field_info { + pub name: *const ::std::os::raw::c_char, + pub abbrev: *const ::std::os::raw::c_char, + pub type_: ftenum, + pub display: ::std::os::raw::c_int, + pub strings: *const ::std::os::raw::c_void, + pub bitmask: u64, + pub blurb: *const ::std::os::raw::c_char, + pub id: ::std::os::raw::c_int, + pub parent: ::std::os::raw::c_int, + pub ref_type: hf_ref_type, + pub same_name_prev_id: ::std::os::raw::c_int, + pub same_name_next: *mut header_field_info, +} +#[test] +fn bindgen_test_layout__header_field_info() { + const UNINIT: ::std::mem::MaybeUninit<_header_field_info> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_header_field_info>(), + 72usize, + concat!("Size of: ", stringify!(_header_field_info)) + ); + assert_eq!( + ::std::mem::align_of::<_header_field_info>(), + 8usize, + concat!("Alignment of ", stringify!(_header_field_info)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_header_field_info), + "::", + stringify!(name) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).abbrev) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_header_field_info), + "::", + stringify!(abbrev) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_header_field_info), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).display) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(_header_field_info), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).strings) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_header_field_info), + "::", + stringify!(strings) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).bitmask) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_header_field_info), + "::", + stringify!(bitmask) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).blurb) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(_header_field_info), + "::", + stringify!(blurb) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(_header_field_info), + "::", + stringify!(id) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).parent) as usize - ptr as usize }, + 52usize, + concat!( + "Offset of field: ", + stringify!(_header_field_info), + "::", + stringify!(parent) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ref_type) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(_header_field_info), + "::", + stringify!(ref_type) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).same_name_prev_id) as usize - ptr as usize }, + 60usize, + concat!( + "Offset of field: ", + stringify!(_header_field_info), + "::", + stringify!(same_name_prev_id) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).same_name_next) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(_header_field_info), + "::", + stringify!(same_name_next) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct hf_register_info { + pub p_id: *mut ::std::os::raw::c_int, + pub hfinfo: header_field_info, +} +#[test] +fn bindgen_test_layout_hf_register_info() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 80usize, + concat!("Size of: ", stringify!(hf_register_info)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(hf_register_info)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).p_id) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(hf_register_info), + "::", + stringify!(p_id) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).hfinfo) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(hf_register_info), + "::", + stringify!(hfinfo) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _item_label_t { + pub representation: [::std::os::raw::c_char; 240usize], +} +#[test] +fn bindgen_test_layout__item_label_t() { + const UNINIT: ::std::mem::MaybeUninit<_item_label_t> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_item_label_t>(), + 240usize, + concat!("Size of: ", stringify!(_item_label_t)) + ); + assert_eq!( + ::std::mem::align_of::<_item_label_t>(), + 1usize, + concat!("Alignment of ", stringify!(_item_label_t)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).representation) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_item_label_t), + "::", + stringify!(representation) + ) + ); +} +pub type item_label_t = _item_label_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct field_info { + pub hfinfo: *const header_field_info, + pub start: ::std::os::raw::c_int, + pub length: ::std::os::raw::c_int, + pub appendix_start: ::std::os::raw::c_int, + pub appendix_length: ::std::os::raw::c_int, + pub tree_type: ::std::os::raw::c_int, + pub flags: u32, + pub rep: *mut item_label_t, + pub ds_tvb: *mut tvbuff_t, + pub value: *mut fvalue_t, + pub total_layer_num: ::std::os::raw::c_int, + pub proto_layer_num: ::std::os::raw::c_int, +} +#[test] +fn bindgen_test_layout_field_info() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 64usize, + concat!("Size of: ", stringify!(field_info)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(field_info)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).hfinfo) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(field_info), + "::", + stringify!(hfinfo) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(field_info), + "::", + stringify!(start) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(field_info), + "::", + stringify!(length) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).appendix_start) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(field_info), + "::", + stringify!(appendix_start) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).appendix_length) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(field_info), + "::", + stringify!(appendix_length) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tree_type) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(field_info), + "::", + stringify!(tree_type) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(field_info), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).rep) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(field_info), + "::", + stringify!(rep) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ds_tvb) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(field_info), + "::", + stringify!(ds_tvb) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(field_info), + "::", + stringify!(value) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).total_layer_num) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(field_info), + "::", + stringify!(total_layer_num) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).proto_layer_num) as usize - ptr as usize }, + 60usize, + concat!( + "Offset of field: ", + stringify!(field_info), + "::", + stringify!(proto_layer_num) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crumb_spec_t { + pub crumb_bit_offset: ::std::os::raw::c_uint, + pub crumb_bit_length: u8, +} +#[test] +fn bindgen_test_layout_crumb_spec_t() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(crumb_spec_t)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(crumb_spec_t)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).crumb_bit_offset) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(crumb_spec_t), + "::", + stringify!(crumb_bit_offset) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).crumb_bit_length) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(crumb_spec_t), + "::", + stringify!(crumb_bit_length) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tree_data_t { + pub interesting_hfids: *mut GHashTable, + pub visible: bool, + pub fake_protocols: bool, + pub count: ::std::os::raw::c_uint, + pub pinfo: *mut _packet_info, +} +#[test] +fn bindgen_test_layout_tree_data_t() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(tree_data_t)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(tree_data_t)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).interesting_hfids) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(tree_data_t), + "::", + stringify!(interesting_hfids) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).visible) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(tree_data_t), + "::", + stringify!(visible) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).fake_protocols) as usize - ptr as usize }, + 9usize, + concat!( + "Offset of field: ", + stringify!(tree_data_t), + "::", + stringify!(fake_protocols) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).count) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(tree_data_t), + "::", + stringify!(count) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pinfo) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(tree_data_t), + "::", + stringify!(pinfo) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _proto_node { + pub first_child: *mut _proto_node, + pub last_child: *mut _proto_node, + pub next: *mut _proto_node, + pub parent: *mut _proto_node, + pub finfo: *mut field_info, + pub tree_data: *mut tree_data_t, +} +#[test] +fn bindgen_test_layout__proto_node() { + const UNINIT: ::std::mem::MaybeUninit<_proto_node> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_proto_node>(), + 48usize, + concat!("Size of: ", stringify!(_proto_node)) + ); + assert_eq!( + ::std::mem::align_of::<_proto_node>(), + 8usize, + concat!("Alignment of ", stringify!(_proto_node)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).first_child) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_proto_node), + "::", + stringify!(first_child) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).last_child) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_proto_node), + "::", + stringify!(last_child) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_proto_node), + "::", + stringify!(next) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).parent) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_proto_node), + "::", + stringify!(parent) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).finfo) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_proto_node), + "::", + stringify!(finfo) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tree_data) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(_proto_node), + "::", + stringify!(tree_data) + ) + ); +} +pub type proto_node = _proto_node; +pub type proto_tree = proto_node; +pub type proto_item = proto_node; +pub type proto_tree_foreach_func = ::std::option::Option< + unsafe extern "C" fn(arg1: *mut proto_node, arg2: *mut ::std::os::raw::c_void), +>; +pub type proto_tree_traverse_func = ::std::option::Option< + unsafe extern "C" fn(arg1: *mut proto_node, arg2: *mut ::std::os::raw::c_void) -> bool, +>; +extern "C" { + pub fn proto_tree_children_foreach( + tree: *mut proto_tree, + func: proto_tree_foreach_func, + data: *mut ::std::os::raw::c_void, + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct proto_plugin { + pub register_protoinfo: ::std::option::Option, + pub register_handoff: ::std::option::Option, +} +#[test] +fn bindgen_test_layout_proto_plugin() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(proto_plugin)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(proto_plugin)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).register_protoinfo) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(proto_plugin), + "::", + stringify!(register_protoinfo) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).register_handoff) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(proto_plugin), + "::", + stringify!(register_handoff) + ) + ); +} +extern "C" { + pub fn proto_register_plugin(plugin: *const proto_plugin); +} +extern "C" { + pub fn proto_init( + register_all_plugin_protocols_list: *mut GSList, + register_all_plugin_handoffs_list: *mut GSList, + cb: register_cb, + client_data: *mut ::std::os::raw::c_void, + ); +} +extern "C" { + pub fn proto_cleanup(); +} +extern "C" { + pub fn proto_field_is_referenced( + tree: *mut proto_tree, + proto_id: ::std::os::raw::c_int, + ) -> bool; +} +extern "C" { + pub fn proto_item_add_subtree( + pi: *mut proto_item, + idx: ::std::os::raw::c_int, + ) -> *mut proto_tree; +} +extern "C" { + pub fn proto_item_get_subtree(pi: *mut proto_item) -> *mut proto_tree; +} +extern "C" { + pub fn proto_item_get_parent(pi: *const proto_item) -> *mut proto_item; +} +extern "C" { + pub fn proto_item_get_parent_nth( + pi: *mut proto_item, + gen: ::std::os::raw::c_int, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_item_set_text(pi: *mut proto_item, format: *const ::std::os::raw::c_char, ...); +} +extern "C" { + pub fn proto_item_append_text(pi: *mut proto_item, format: *const ::std::os::raw::c_char, ...); +} +extern "C" { + pub fn proto_item_prepend_text(pi: *mut proto_item, format: *const ::std::os::raw::c_char, ...); +} +extern "C" { + pub fn proto_item_set_len(pi: *mut proto_item, length: ::std::os::raw::c_int); +} +extern "C" { + pub fn proto_item_set_end(pi: *mut proto_item, tvb: *mut tvbuff_t, end: ::std::os::raw::c_int); +} +extern "C" { + pub fn proto_item_get_len(pi: *const proto_item) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn proto_item_set_bits_offset_len( + ti: *mut proto_item, + bits_offset: ::std::os::raw::c_int, + bits_len: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn proto_item_get_display_repr( + scope: *mut wmem_allocator_t, + pi: *mut proto_item, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn proto_tree_create_root(pinfo: *mut _packet_info) -> *mut proto_tree; +} +extern "C" { + pub fn proto_tree_reset(tree: *mut proto_tree); +} +extern "C" { + pub fn proto_tree_free(tree: *mut proto_tree); +} +extern "C" { + pub fn proto_tree_set_visible(tree: *mut proto_tree, visible: bool) -> bool; +} +extern "C" { + pub fn proto_tree_set_fake_protocols(tree: *mut proto_tree, fake_protocols: bool); +} +extern "C" { + pub fn proto_tree_prime_with_hfid(tree: *mut proto_tree, hfid: ::std::os::raw::c_int); +} +extern "C" { + pub fn proto_tree_prime_with_hfid_print(tree: *mut proto_tree, hfid: ::std::os::raw::c_int); +} +extern "C" { + pub fn proto_tree_get_parent(tree: *mut proto_tree) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_get_parent_tree(tree: *mut proto_tree) -> *mut proto_tree; +} +extern "C" { + pub fn proto_tree_get_root(tree: *mut proto_tree) -> *mut proto_tree; +} +extern "C" { + pub fn proto_tree_move_item( + tree: *mut proto_tree, + fixed_item: *mut proto_item, + item_to_move: *mut proto_item, + ); +} +extern "C" { + pub fn proto_tree_set_appendix( + tree: *mut proto_tree, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn proto_tree_add_item_new( + tree: *mut proto_tree, + hfinfo: *mut header_field_info, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_item( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_item_new_ret_length( + tree: *mut proto_tree, + hfinfo: *mut header_field_info, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + lenretval: *mut ::std::os::raw::c_int, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_item_ret_length( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + lenretval: *mut ::std::os::raw::c_int, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_item_ret_int( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + retval: *mut i32, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_item_ret_int64( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + retval: *mut i64, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_item_ret_uint( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + retval: *mut u32, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_item_ret_uint64( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + retval: *mut u64, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_item_ret_varint( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + retval: *mut u64, + lenretval: *mut ::std::os::raw::c_int, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_item_ret_boolean( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + retval: *mut bool, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_item_ret_ipv4( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + retval: *mut ws_in4_addr, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_item_ret_ipv6( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + retval: *mut ws_in6_addr, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_item_ret_ether( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + retval: *mut u8, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_item_ret_float( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + retval: *mut f32, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_item_ret_double( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + retval: *mut f64, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_item_ret_string_and_length( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + scope: *mut wmem_allocator_t, + retval: *mut *const u8, + lenretval: *mut ::std::os::raw::c_int, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_item_ret_string( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + scope: *mut wmem_allocator_t, + retval: *mut *const u8, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_item_ret_display_string_and_length( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + scope: *mut wmem_allocator_t, + retval: *mut *mut ::std::os::raw::c_char, + lenretval: *mut ::std::os::raw::c_int, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_item_ret_display_string( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + scope: *mut wmem_allocator_t, + retval: *mut *mut ::std::os::raw::c_char, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_item_ret_time_string( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + scope: *mut wmem_allocator_t, + retval: *mut *mut ::std::os::raw::c_char, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_text_internal( + tree: *mut proto_tree, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_text_valist_internal( + tree: *mut proto_tree, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + format: *const ::std::os::raw::c_char, + ap: va_list, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_subtree( + tree: *mut proto_tree, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + idx: ::std::os::raw::c_int, + tree_item: *mut *mut proto_item, + text: *const ::std::os::raw::c_char, + ) -> *mut proto_tree; +} +extern "C" { + pub fn proto_tree_add_subtree_format( + tree: *mut proto_tree, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + idx: ::std::os::raw::c_int, + tree_item: *mut *mut proto_item, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_tree; +} +extern "C" { + pub fn proto_tree_add_format_text( + tree: *mut proto_tree, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_format_wsp_text( + tree: *mut proto_tree, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_none_format( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_protocol_format( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_bytes( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + start_ptr: *const u8, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_bytes_with_length( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + start_ptr: *const u8, + ptr_length: ::std::os::raw::c_int, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_bytes_item( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + retval: *mut GByteArray, + endoff: *mut ::std::os::raw::c_int, + err: *mut ::std::os::raw::c_int, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_bytes_format_value( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + start_ptr: *const u8, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_bytes_format( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + start_ptr: *const u8, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_time( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value_ptr: *const nstime_t, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_time_item( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + retval: *mut nstime_t, + endoff: *mut ::std::os::raw::c_int, + err: *mut ::std::os::raw::c_int, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_time_format_value( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value_ptr: *mut nstime_t, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_time_format( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value_ptr: *mut nstime_t, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_ipxnet( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: u32, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_ipxnet_format_value( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: u32, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_ipxnet_format( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: u32, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_ipv4( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: ws_in4_addr, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_ipv4_format_value( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: ws_in4_addr, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_ipv4_format( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: ws_in4_addr, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_ipv6( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value_ptr: *const ws_in6_addr, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_ipv6_format_value( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value_ptr: *const ws_in6_addr, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_ipv6_format( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value_ptr: *const ws_in6_addr, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_ether( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: *const u8, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_ether_format_value( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: *const u8, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_ether_format( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: *const u8, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_guid( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value_ptr: *const e_guid_t, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_guid_format_value( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value_ptr: *const e_guid_t, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_guid_format( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value_ptr: *const e_guid_t, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_oid( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value_ptr: *const u8, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_oid_format_value( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value_ptr: *const u8, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_oid_format( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value_ptr: *const u8, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_string( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: *const ::std::os::raw::c_char, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_string_format_value( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: *const ::std::os::raw::c_char, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_string_format( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: *const ::std::os::raw::c_char, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_boolean( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: u64, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_boolean_format_value( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: u64, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_boolean_format( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: u64, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_float( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: f32, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_float_format_value( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: f32, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_float_format( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: f32, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_double( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: f64, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_double_format_value( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: f64, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_double_format( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: f64, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_uint( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: u32, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_uint_format_value( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: u32, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_uint_format( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: u32, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_uint64( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: u64, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_uint64_format_value( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: u64, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_uint64_format( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: u64, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_int( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: i32, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_int_format_value( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: i32, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_int_format( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: i32, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_int64( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: i64, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_int64_format_value( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: i64, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_int64_format( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: i64, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_eui64( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: u64, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_eui64_format_value( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: u64, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_eui64_format( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + value: u64, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _mac_hf_list_t { + pub hf_addr: *mut ::std::os::raw::c_int, + pub hf_addr_resolved: *mut ::std::os::raw::c_int, + pub hf_oui: *mut ::std::os::raw::c_int, + pub hf_oui_resolved: *mut ::std::os::raw::c_int, + pub hf_lg: *mut ::std::os::raw::c_int, + pub hf_ig: *mut ::std::os::raw::c_int, +} +#[test] +fn bindgen_test_layout__mac_hf_list_t() { + const UNINIT: ::std::mem::MaybeUninit<_mac_hf_list_t> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_mac_hf_list_t>(), + 48usize, + concat!("Size of: ", stringify!(_mac_hf_list_t)) + ); + assert_eq!( + ::std::mem::align_of::<_mac_hf_list_t>(), + 8usize, + concat!("Alignment of ", stringify!(_mac_hf_list_t)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).hf_addr) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_mac_hf_list_t), + "::", + stringify!(hf_addr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).hf_addr_resolved) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_mac_hf_list_t), + "::", + stringify!(hf_addr_resolved) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).hf_oui) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_mac_hf_list_t), + "::", + stringify!(hf_oui) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).hf_oui_resolved) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_mac_hf_list_t), + "::", + stringify!(hf_oui_resolved) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).hf_lg) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_mac_hf_list_t), + "::", + stringify!(hf_lg) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).hf_ig) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(_mac_hf_list_t), + "::", + stringify!(hf_ig) + ) + ); +} +pub type mac_hf_list_t = _mac_hf_list_t; +extern "C" { + pub fn proto_tree_add_mac48_detail( + list_specific: *const mac_hf_list_t, + list_generic: *const mac_hf_list_t, + idx: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + tree: *mut proto_tree, + offset: ::std::os::raw::c_int, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_debug_text( + tree: *mut proto_tree, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_item_fill_label(finfo: *const field_info, label_str: *mut ::std::os::raw::c_char); +} +extern "C" { + pub fn proto_item_fill_display_label( + fi: *const field_info, + display_label_str: *mut ::std::os::raw::c_char, + label_str_size: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn proto_register_protocol( + name: *const ::std::os::raw::c_char, + short_name: *const ::std::os::raw::c_char, + filter_name: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn proto_register_protocol_in_name_only( + name: *const ::std::os::raw::c_char, + short_name: *const ::std::os::raw::c_char, + filter_name: *const ::std::os::raw::c_char, + parent_proto: ::std::os::raw::c_int, + field_type: ftenum, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn proto_deregister_protocol(short_name: *const ::std::os::raw::c_char) -> bool; +} +extern "C" { + pub fn proto_register_alias( + proto_id: ::std::os::raw::c_int, + alias_name: *const ::std::os::raw::c_char, + ); +} +pub type prefix_initializer_t = + ::std::option::Option; +extern "C" { + pub fn proto_register_prefix( + prefix: *const ::std::os::raw::c_char, + initializer: prefix_initializer_t, + ); +} +extern "C" { + pub fn proto_initialize_all_prefixes(); +} +extern "C" { + pub fn proto_register_field_array( + parent: ::std::os::raw::c_int, + hf: *mut hf_register_info, + num_records: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn proto_deregister_field(parent: ::std::os::raw::c_int, hf_id: ::std::os::raw::c_int); +} +extern "C" { + pub fn proto_add_deregistered_data(data: *mut ::std::os::raw::c_void); +} +extern "C" { + pub fn proto_add_deregistered_slice(block_size: usize, mem_block: *mut ::std::os::raw::c_void); +} +extern "C" { + pub fn proto_free_field_strings( + field_type: ftenum_t, + field_display: ::std::os::raw::c_uint, + field_strings: *const ::std::os::raw::c_void, + ); +} +extern "C" { + pub fn proto_free_deregistered_fields(); +} +extern "C" { + pub fn proto_register_subtree_array( + indices: *const *mut ::std::os::raw::c_int, + num_indices: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn proto_registrar_get_name(n: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn proto_registrar_get_abbrev(n: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn proto_registrar_get_nth(hfindex: ::std::os::raw::c_uint) -> *mut header_field_info; +} +extern "C" { + pub fn proto_registrar_get_byname( + field_name: *const ::std::os::raw::c_char, + ) -> *mut header_field_info; +} +extern "C" { + pub fn proto_registrar_get_byalias( + alias_name: *const ::std::os::raw::c_char, + ) -> *mut header_field_info; +} +extern "C" { + pub fn proto_registrar_get_id_byname( + field_name: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn proto_registrar_get_ftype(n: ::std::os::raw::c_int) -> ftenum; +} +extern "C" { + pub fn proto_registrar_get_parent(n: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn proto_registrar_is_protocol(n: ::std::os::raw::c_int) -> bool; +} +extern "C" { + pub fn proto_registrar_get_length(n: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn proto_get_first_protocol( + cookie: *mut *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn proto_get_data_protocol(cookie: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn proto_get_next_protocol( + cookie: *mut *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn proto_get_first_protocol_field( + proto_id: ::std::os::raw::c_int, + cookie: *mut *mut ::std::os::raw::c_void, + ) -> *mut header_field_info; +} +extern "C" { + pub fn proto_get_next_protocol_field( + proto_id: ::std::os::raw::c_int, + cookie: *mut *mut ::std::os::raw::c_void, + ) -> *mut header_field_info; +} +extern "C" { + pub fn proto_name_already_registered(name: *const ::std::os::raw::c_char) -> bool; +} +extern "C" { + pub fn proto_get_id_by_filter_name( + filter_name: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn proto_get_id_by_short_name( + short_name: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn proto_can_toggle_protocol(proto_id: ::std::os::raw::c_int) -> bool; +} +extern "C" { + pub fn find_protocol_by_id(proto_id: ::std::os::raw::c_int) -> *mut protocol_t; +} +extern "C" { + pub fn proto_get_protocol_name( + proto_id: ::std::os::raw::c_int, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn proto_get_id(protocol: *const protocol_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn proto_get_protocol_short_name( + protocol: *const protocol_t, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn proto_get_protocol_long_name( + protocol: *const protocol_t, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn proto_is_protocol_enabled(protocol: *const protocol_t) -> bool; +} +extern "C" { + pub fn proto_is_protocol_enabled_by_default(protocol: *const protocol_t) -> bool; +} +extern "C" { + pub fn proto_is_pino(protocol: *const protocol_t) -> bool; +} +extern "C" { + pub fn proto_get_protocol_filter_name( + proto_id: ::std::os::raw::c_int, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn proto_add_heuristic_dissector( + protocol: *mut protocol_t, + short_name: *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn proto_heuristic_dissector_foreach( + protocol: *const protocol_t, + func: GFunc, + user_data: *mut ::std::os::raw::c_void, + ); +} +extern "C" { + pub fn proto_get_frame_protocols( + layers: *const wmem_list_t, + is_ip: *mut bool, + is_tcp: *mut bool, + is_udp: *mut bool, + is_sctp: *mut bool, + is_tls: *mut bool, + is_rtp: *mut bool, + is_lte_rlc: *mut bool, + ); +} +extern "C" { + pub fn proto_is_frame_protocol( + layers: *const wmem_list_t, + proto_name: *const ::std::os::raw::c_char, + ) -> bool; +} +extern "C" { + pub fn proto_list_layers(pinfo: *const packet_info) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn proto_disable_by_default(proto_id: ::std::os::raw::c_int); +} +extern "C" { + pub fn proto_set_decoding(proto_id: ::std::os::raw::c_int, enabled: bool); +} +extern "C" { + pub fn proto_disable_all(); +} +extern "C" { + pub fn proto_reenable_all(); +} +extern "C" { + pub fn proto_set_cant_toggle(proto_id: ::std::os::raw::c_int); +} +extern "C" { + pub fn proto_check_for_protocol_or_field( + tree: *const proto_tree, + id: ::std::os::raw::c_int, + ) -> bool; +} +extern "C" { + pub fn proto_get_finfo_ptr_array( + tree: *const proto_tree, + hfindex: ::std::os::raw::c_int, + ) -> *mut GPtrArray; +} +extern "C" { + pub fn proto_tracking_interesting_fields(tree: *const proto_tree) -> bool; +} +extern "C" { + pub fn proto_find_finfo( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + ) -> *mut GPtrArray; +} +extern "C" { + pub fn proto_find_first_finfo( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + ) -> *mut GPtrArray; +} +extern "C" { + pub fn proto_all_finfos(tree: *mut proto_tree) -> *mut GPtrArray; +} +extern "C" { + pub fn proto_registrar_dump_protocols(); +} +extern "C" { + pub fn proto_registrar_dump_values(); +} +extern "C" { + pub fn proto_registrar_dump_elastic(filter: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn proto_registrar_dump_fieldcount() -> bool; +} +extern "C" { + pub fn proto_registrar_dump_fields(); +} +extern "C" { + pub fn proto_registrar_dump_field_completions(prefix: *mut ::std::os::raw::c_char) -> bool; +} +extern "C" { + pub fn proto_registrar_dump_ftypes(); +} +extern "C" { + pub fn proto_field_display_to_string( + field_display: ::std::os::raw::c_int, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub static mut num_tree_types: ::std::os::raw::c_int; +} +extern "C" { + pub fn tree_expanded(tree_type: ::std::os::raw::c_int) -> bool; +} +extern "C" { + pub fn tree_expanded_set(tree_type: ::std::os::raw::c_int, value: bool); +} +extern "C" { + pub fn hfinfo_bitshift(hfinfo: *const header_field_info) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct epan_dissect { + _unused: [u8; 0], +} +extern "C" { + pub fn proto_can_match_selected(finfo: *const field_info, edt: *mut epan_dissect) -> bool; +} +extern "C" { + pub fn proto_construct_match_selected_string( + finfo: *const field_info, + edt: *mut epan_dissect, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn proto_find_field_from_offset( + tree: *mut proto_tree, + offset: ::std::os::raw::c_uint, + tvb: *mut tvbuff_t, + ) -> *mut field_info; +} +extern "C" { + pub fn proto_find_undecoded_data( + tree: *mut proto_tree, + length: ::std::os::raw::c_uint, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn proto_tree_add_bitmask( + tree: *mut proto_tree, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_uint, + hf_hdr: ::std::os::raw::c_int, + ett: ::std::os::raw::c_int, + fields: *const *mut ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_bitmask_ret_uint64( + tree: *mut proto_tree, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_uint, + hf_hdr: ::std::os::raw::c_int, + ett: ::std::os::raw::c_int, + fields: *const *mut ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + retval: *mut u64, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_bitmask_with_flags( + tree: *mut proto_tree, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_uint, + hf_hdr: ::std::os::raw::c_int, + ett: ::std::os::raw::c_int, + fields: *const *mut ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + flags: ::std::os::raw::c_int, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_bitmask_with_flags_ret_uint64( + tree: *mut proto_tree, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_uint, + hf_hdr: ::std::os::raw::c_int, + ett: ::std::os::raw::c_int, + fields: *const *mut ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + flags: ::std::os::raw::c_int, + retval: *mut u64, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_bitmask_value( + tree: *mut proto_tree, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_uint, + hf_hdr: ::std::os::raw::c_int, + ett: ::std::os::raw::c_int, + fields: *const *mut ::std::os::raw::c_int, + value: u64, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_bitmask_value_with_flags( + tree: *mut proto_tree, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_uint, + hf_hdr: ::std::os::raw::c_int, + ett: ::std::os::raw::c_int, + fields: *const *mut ::std::os::raw::c_int, + value: u64, + flags: ::std::os::raw::c_int, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_bitmask_list( + tree: *mut proto_tree, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_uint, + len: ::std::os::raw::c_int, + fields: *const *mut ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + ); +} +extern "C" { + pub fn proto_tree_add_bitmask_list_ret_uint64( + tree: *mut proto_tree, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_uint, + len: ::std::os::raw::c_int, + fields: *const *mut ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + retval: *mut u64, + ); +} +extern "C" { + pub fn proto_tree_add_bitmask_list_value( + tree: *mut proto_tree, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_uint, + len: ::std::os::raw::c_int, + fields: *const *mut ::std::os::raw::c_int, + value: u64, + ); +} +extern "C" { + pub fn proto_tree_add_bitmask_len( + tree: *mut proto_tree, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_uint, + len: ::std::os::raw::c_uint, + hf_hdr: ::std::os::raw::c_int, + ett: ::std::os::raw::c_int, + fields: *const *mut ::std::os::raw::c_int, + exp: *mut expert_field, + encoding: ::std::os::raw::c_uint, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_bitmask_text( + tree: *mut proto_tree, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_uint, + len: ::std::os::raw::c_uint, + name: *const ::std::os::raw::c_char, + fallback: *const ::std::os::raw::c_char, + ett: ::std::os::raw::c_int, + fields: *const *mut ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + flags: ::std::os::raw::c_int, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_bits_item( + tree: *mut proto_tree, + hf_index: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + bit_offset: ::std::os::raw::c_uint, + no_of_bits: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_uint, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_split_bits_item_ret_val( + tree: *mut proto_tree, + hf_index: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + bit_offset: ::std::os::raw::c_uint, + crumb_spec: *const crumb_spec_t, + return_value: *mut u64, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_split_bits_crumb( + tree: *mut proto_tree, + hf_index: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + bit_offset: ::std::os::raw::c_uint, + crumb_spec: *const crumb_spec_t, + crumb_index: u16, + ); +} +extern "C" { + pub fn proto_tree_add_bits_ret_val( + tree: *mut proto_tree, + hf_index: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + bit_offset: ::std::os::raw::c_uint, + no_of_bits: ::std::os::raw::c_int, + return_value: *mut u64, + encoding: ::std::os::raw::c_uint, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_uint_bits_format_value( + tree: *mut proto_tree, + hf_index: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + bit_offset: ::std::os::raw::c_uint, + no_of_bits: ::std::os::raw::c_int, + value: u32, + encoding: ::std::os::raw::c_uint, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_uint64_bits_format_value( + tree: *mut proto_tree, + hf_index: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + bit_offset: ::std::os::raw::c_uint, + no_of_bits: ::std::os::raw::c_int, + value: u64, + encoding: ::std::os::raw::c_uint, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_boolean_bits_format_value( + tree: *mut proto_tree, + hf_index: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + bit_offset: ::std::os::raw::c_uint, + no_of_bits: ::std::os::raw::c_int, + value: u64, + encoding: ::std::os::raw::c_uint, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_int_bits_format_value( + tree: *mut proto_tree, + hf_index: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + bit_offset: ::std::os::raw::c_uint, + no_of_bits: ::std::os::raw::c_int, + value: i32, + encoding: ::std::os::raw::c_uint, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_int64_bits_format_value( + tree: *mut proto_tree, + hf_index: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + bit_offset: ::std::os::raw::c_uint, + no_of_bits: ::std::os::raw::c_int, + value: i64, + encoding: ::std::os::raw::c_uint, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_float_bits_format_value( + tree: *mut proto_tree, + hf_index: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + bit_offset: ::std::os::raw::c_uint, + no_of_bits: ::std::os::raw::c_int, + value: f32, + encoding: ::std::os::raw::c_uint, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_ts_23_038_7bits_packed_item( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + bit_offset: ::std::os::raw::c_uint, + no_of_chars: ::std::os::raw::c_int, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_ascii_7bits_item( + tree: *mut proto_tree, + hfindex: ::std::os::raw::c_int, + tvb: *mut tvbuff_t, + bit_offset: ::std::os::raw::c_uint, + no_of_chars: ::std::os::raw::c_int, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_checksum( + tree: *mut proto_tree, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_uint, + hf_checksum: ::std::os::raw::c_int, + hf_checksum_status: ::std::os::raw::c_int, + bad_checksum_expert: *mut expert_field, + pinfo: *mut packet_info, + computed_checksum: u32, + encoding: ::std::os::raw::c_uint, + flags: ::std::os::raw::c_uint, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_checksum_bytes( + tree: *mut proto_tree, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_uint, + hf_checksum: ::std::os::raw::c_int, + hf_checksum_status: ::std::os::raw::c_int, + bad_checksum_expert: *mut expert_field, + pinfo: *mut packet_info, + computed_checksum: *const u8, + checksum_len: usize, + flags: ::std::os::raw::c_uint, + ) -> *mut proto_item; +} +pub const proto_checksum_enum_e_PROTO_CHECKSUM_E_BAD: proto_checksum_enum_e = 0; +pub const proto_checksum_enum_e_PROTO_CHECKSUM_E_GOOD: proto_checksum_enum_e = 1; +pub const proto_checksum_enum_e_PROTO_CHECKSUM_E_UNVERIFIED: proto_checksum_enum_e = 2; +pub const proto_checksum_enum_e_PROTO_CHECKSUM_E_NOT_PRESENT: proto_checksum_enum_e = 3; +pub const proto_checksum_enum_e_PROTO_CHECKSUM_E_ILLEGAL: proto_checksum_enum_e = 4; +pub type proto_checksum_enum_e = ::std::os::raw::c_uint; +extern "C" { + pub static proto_checksum_vals: [value_string; 0usize]; +} +extern "C" { + pub fn proto_check_field_name( + field_name: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_uchar; +} +extern "C" { + pub fn proto_check_field_name_lower( + field_name: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_uchar; +} +extern "C" { + pub fn proto_custom_set( + tree: *mut proto_tree, + field_id: *mut GSList, + occurrence: ::std::os::raw::c_int, + result: *mut ::std::os::raw::c_char, + expr: *mut ::std::os::raw::c_char, + size: ::std::os::raw::c_int, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn proto_custom_get_filter( + edt: *mut epan_dissect, + field_id: *mut GSList, + occurrence: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn hfinfo_char_value_format_display( + display: ::std::os::raw::c_int, + buf: *mut ::std::os::raw::c_char, + value: u32, + ) -> *const ::std::os::raw::c_char; +} +pub type feature_list = *mut *mut GList; +pub type gather_feature_func = ::std::option::Option; +extern "C" { + pub fn with_feature(l: feature_list, fmt: *const ::std::os::raw::c_char, ...); +} +extern "C" { + pub fn without_feature(l: feature_list, fmt: *const ::std::os::raw::c_char, ...); +} +extern "C" { + pub fn sort_features(l: feature_list); +} +extern "C" { + pub fn free_features(l: feature_list); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct enum_val_t { + pub name: *const ::std::os::raw::c_char, + pub description: *const ::std::os::raw::c_char, + pub value: ::std::os::raw::c_int, +} +#[test] +fn bindgen_test_layout_enum_val_t() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(enum_val_t)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(enum_val_t)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(enum_val_t), + "::", + stringify!(name) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(enum_val_t), + "::", + stringify!(description) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(enum_val_t), + "::", + stringify!(value) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct range_admin_tag { + pub low: u32, + pub high: u32, +} +#[test] +fn bindgen_test_layout_range_admin_tag() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(range_admin_tag)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(range_admin_tag)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).low) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(range_admin_tag), + "::", + stringify!(low) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).high) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(range_admin_tag), + "::", + stringify!(high) + ) + ); +} +pub type range_admin_t = range_admin_tag; +#[repr(C)] +#[derive(Debug)] +pub struct epan_range { + pub nranges: ::std::os::raw::c_uint, + pub ranges: __IncompleteArrayField, +} +#[test] +fn bindgen_test_layout_epan_range() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(epan_range)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(epan_range)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).nranges) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(epan_range), + "::", + stringify!(nranges) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ranges) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(epan_range), + "::", + stringify!(ranges) + ) + ); +} +pub type range_t = epan_range; +pub const convert_ret_t_CVT_NO_ERROR: convert_ret_t = 0; +pub const convert_ret_t_CVT_SYNTAX_ERROR: convert_ret_t = 1; +pub const convert_ret_t_CVT_NUMBER_TOO_BIG: convert_ret_t = 2; +pub type convert_ret_t = ::std::os::raw::c_uint; +extern "C" { + pub fn range_empty(scope: *mut wmem_allocator_t) -> *mut range_t; +} +extern "C" { + pub fn range_convert_str( + scope: *mut wmem_allocator_t, + range: *mut *mut range_t, + es: *const ::std::os::raw::c_char, + max_value: u32, + ) -> convert_ret_t; +} +extern "C" { + pub fn range_convert_str_work( + scope: *mut wmem_allocator_t, + range: *mut *mut range_t, + es: *const ::std::os::raw::c_char, + max_value: u32, + err_on_max: bool, + ) -> convert_ret_t; +} +extern "C" { + pub fn value_is_in_range(range: *const range_t, val: u32) -> bool; +} +extern "C" { + pub fn range_add_value( + scope: *mut wmem_allocator_t, + range: *mut *mut range_t, + val: u32, + ) -> bool; +} +extern "C" { + pub fn range_remove_value( + scope: *mut wmem_allocator_t, + range: *mut *mut range_t, + val: u32, + ) -> bool; +} +extern "C" { + pub fn ranges_are_equal(a: *const range_t, b: *const range_t) -> bool; +} +extern "C" { + pub fn range_foreach( + range: *mut range_t, + callback: ::std::option::Option< + unsafe extern "C" fn(val: u32, ptr: *mut ::std::os::raw::c_void), + >, + ptr: *mut ::std::os::raw::c_void, + ); +} +extern "C" { + pub fn range_convert_range( + scope: *mut wmem_allocator_t, + range: *const range_t, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn range_copy(scope: *mut wmem_allocator_t, src: *const range_t) -> *mut range_t; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct color_t { + pub red: u16, + pub green: u16, + pub blue: u16, +} +#[test] +fn bindgen_test_layout_color_t() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 6usize, + concat!("Size of: ", stringify!(color_t)) + ); + assert_eq!( + ::std::mem::align_of::(), + 2usize, + concat!("Alignment of ", stringify!(color_t)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).red) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(color_t), + "::", + stringify!(red) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).green) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(color_t), + "::", + stringify!(green) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).blue) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(color_t), + "::", + stringify!(blue) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct epan_uat { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _e_addr_resolve { + _unused: [u8; 0], +} +extern "C" { + pub fn string_to_name_resolve( + string: *const ::std::os::raw::c_char, + name_resolve: *mut _e_addr_resolve, + ) -> ::std::os::raw::c_char; +} +pub const layout_type_e_layout_unused: layout_type_e = 0; +pub const layout_type_e_layout_type_5: layout_type_e = 1; +pub const layout_type_e_layout_type_2: layout_type_e = 2; +pub const layout_type_e_layout_type_1: layout_type_e = 3; +pub const layout_type_e_layout_type_4: layout_type_e = 4; +pub const layout_type_e_layout_type_3: layout_type_e = 5; +pub const layout_type_e_layout_type_6: layout_type_e = 6; +pub const layout_type_e_layout_type_max: layout_type_e = 7; +pub type layout_type_e = ::std::os::raw::c_uint; +pub const layout_pane_content_e_layout_pane_content_none: layout_pane_content_e = 0; +pub const layout_pane_content_e_layout_pane_content_plist: layout_pane_content_e = 1; +pub const layout_pane_content_e_layout_pane_content_pdetails: layout_pane_content_e = 2; +pub const layout_pane_content_e_layout_pane_content_pbytes: layout_pane_content_e = 3; +pub const layout_pane_content_e_layout_pane_content_pdiagram: layout_pane_content_e = 4; +pub type layout_pane_content_e = ::std::os::raw::c_uint; +pub const version_info_e_version_welcome_only: version_info_e = 0; +pub const version_info_e_version_title_only: version_info_e = 1; +pub const version_info_e_version_both: version_info_e = 2; +pub const version_info_e_version_neither: version_info_e = 3; +pub type version_info_e = ::std::os::raw::c_uint; +pub const splitter_layout_e_layout_vertical: splitter_layout_e = 0; +pub const splitter_layout_e_layout_horizontal: splitter_layout_e = 1; +pub type splitter_layout_e = ::std::os::raw::c_uint; +pub const pref_source_t_pref_default: pref_source_t = 0; +pub const pref_source_t_pref_stashed: pref_source_t = 1; +pub const pref_source_t_pref_current: pref_source_t = 2; +pub type pref_source_t = ::std::os::raw::c_uint; +pub const elide_mode_e_ELIDE_LEFT: elide_mode_e = 0; +pub const elide_mode_e_ELIDE_RIGHT: elide_mode_e = 1; +pub const elide_mode_e_ELIDE_MIDDLE: elide_mode_e = 2; +pub const elide_mode_e_ELIDE_NONE: elide_mode_e = 3; +pub type elide_mode_e = ::std::os::raw::c_uint; +pub const software_update_channel_e_UPDATE_CHANNEL_DEVELOPMENT: software_update_channel_e = 0; +pub const software_update_channel_e_UPDATE_CHANNEL_STABLE: software_update_channel_e = 1; +pub type software_update_channel_e = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _e_prefs { + pub col_list: *mut GList, + pub num_cols: ::std::os::raw::c_int, + pub st_client_fg: color_t, + pub st_client_bg: color_t, + pub st_server_fg: color_t, + pub st_server_bg: color_t, + pub gui_text_valid: color_t, + pub gui_text_invalid: color_t, + pub gui_text_deprecated: color_t, + pub restore_filter_after_following_stream: bool, + pub gui_toolbar_main_style: ::std::os::raw::c_int, + pub gui_font_name: *mut ::std::os::raw::c_char, + pub gui_active_fg: color_t, + pub gui_active_bg: color_t, + pub gui_active_style: ::std::os::raw::c_int, + pub gui_inactive_fg: color_t, + pub gui_inactive_bg: color_t, + pub gui_inactive_style: ::std::os::raw::c_int, + pub gui_marked_fg: color_t, + pub gui_marked_bg: color_t, + pub gui_ignored_fg: color_t, + pub gui_ignored_bg: color_t, + pub gui_colorized_fg: *mut ::std::os::raw::c_char, + pub gui_colorized_bg: *mut ::std::os::raw::c_char, + pub gui_geometry_save_position: bool, + pub gui_geometry_save_size: bool, + pub gui_geometry_save_maximized: bool, + pub gui_recent_df_entries_max: ::std::os::raw::c_uint, + pub gui_recent_files_count_max: ::std::os::raw::c_uint, + pub gui_fileopen_style: ::std::os::raw::c_uint, + pub gui_fileopen_dir: *mut ::std::os::raw::c_char, + pub gui_fileopen_preview: ::std::os::raw::c_uint, + pub gui_tlskeylog_command: *mut ::std::os::raw::c_char, + pub gui_ask_unsaved: bool, + pub gui_autocomplete_filter: bool, + pub gui_find_wrap: bool, + pub gui_window_title: *mut ::std::os::raw::c_char, + pub gui_prepend_window_title: *mut ::std::os::raw::c_char, + pub gui_start_title: *mut ::std::os::raw::c_char, + pub gui_version_placement: version_info_e, + pub gui_max_export_objects: ::std::os::raw::c_uint, + pub gui_max_tree_items: ::std::os::raw::c_uint, + pub gui_max_tree_depth: ::std::os::raw::c_uint, + pub gui_welcome_page_show_recent: bool, + pub gui_layout_type: layout_type_e, + pub gui_layout_content_1: layout_pane_content_e, + pub gui_layout_content_2: layout_pane_content_e, + pub gui_layout_content_3: layout_pane_content_e, + pub gui_packet_dialog_layout: splitter_layout_e, + pub gui_interfaces_hide_types: *mut ::std::os::raw::c_char, + pub gui_interfaces_show_hidden: bool, + pub gui_interfaces_remote_display: bool, + pub gui_io_graph_automatic_update: bool, + pub gui_io_graph_enable_legend: bool, + pub gui_packet_details_show_byteview: bool, + pub capture_device: *mut ::std::os::raw::c_char, + pub capture_devices_linktypes: *mut ::std::os::raw::c_char, + pub capture_devices_descr: *mut ::std::os::raw::c_char, + pub capture_devices_hide: *mut ::std::os::raw::c_char, + pub capture_devices_monitor_mode: *mut ::std::os::raw::c_char, + pub capture_devices_buffersize: *mut ::std::os::raw::c_char, + pub capture_devices_snaplen: *mut ::std::os::raw::c_char, + pub capture_devices_pmode: *mut ::std::os::raw::c_char, + pub capture_devices_filter: *mut ::std::os::raw::c_char, + pub capture_prom_mode: bool, + pub capture_monitor_mode: bool, + pub capture_pcap_ng: bool, + pub capture_real_time: bool, + pub capture_update_interval: ::std::os::raw::c_uint, + pub capture_no_interface_load: bool, + pub capture_no_extcap: bool, + pub capture_show_info: bool, + pub capture_columns: *mut GList, + pub tap_update_interval: ::std::os::raw::c_uint, + pub display_hidden_proto_items: bool, + pub display_byte_fields_with_spaces: bool, + pub enable_incomplete_dissectors_check: bool, + pub incomplete_dissectors_check_debug: bool, + pub strict_conversation_tracking_heuristics: bool, + pub conversation_deinterlacing_key: ::std::os::raw::c_int, + pub ignore_dup_frames: bool, + pub ignore_dup_frames_cache_entries: ::std::os::raw::c_uint, + pub filter_expressions_old: bool, + pub cols_hide_new: bool, + pub gui_update_enabled: bool, + pub gui_update_channel: software_update_channel_e, + pub gui_update_interval: ::std::os::raw::c_int, + pub gui_debounce_timer: ::std::os::raw::c_int, + pub saved_at_version: *mut ::std::os::raw::c_char, + pub unknown_prefs: bool, + pub gui_packet_list_separator: bool, + pub gui_packet_header_column_definition: bool, + pub gui_packet_list_hover_style: bool, + pub gui_show_selected_packet: bool, + pub gui_show_file_load_time: bool, + pub gui_packet_list_elide_mode: elide_mode_e, + pub gui_packet_list_show_related: bool, + pub gui_packet_list_show_minimap: bool, + pub gui_packet_list_sortable: bool, + pub gui_packet_list_cached_rows_max: ::std::os::raw::c_uint, + pub gui_decimal_places1: ::std::os::raw::c_int, + pub gui_decimal_places2: ::std::os::raw::c_int, + pub gui_decimal_places3: ::std::os::raw::c_int, + pub gui_rtp_player_use_disk1: bool, + pub gui_rtp_player_use_disk2: bool, + pub flow_graph_max_export_items: ::std::os::raw::c_uint, + pub st_enable_burstinfo: bool, + pub st_burst_showcount: bool, + pub st_burst_resolution: ::std::os::raw::c_int, + pub st_burst_windowlen: ::std::os::raw::c_int, + pub st_sort_casesensitve: bool, + pub st_sort_rng_fixorder: bool, + pub st_sort_rng_nameonly: bool, + pub st_sort_defcolflag: ::std::os::raw::c_int, + pub st_sort_defdescending: bool, + pub st_sort_showfullname: bool, + pub extcap_save_on_start: bool, +} +#[test] +fn bindgen_test_layout__e_prefs() { + const UNINIT: ::std::mem::MaybeUninit<_e_prefs> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_e_prefs>(), + 480usize, + concat!("Size of: ", stringify!(_e_prefs)) + ); + assert_eq!( + ::std::mem::align_of::<_e_prefs>(), + 8usize, + concat!("Alignment of ", stringify!(_e_prefs)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).col_list) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(col_list) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).num_cols) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(num_cols) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).st_client_fg) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(st_client_fg) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).st_client_bg) as usize - ptr as usize }, + 18usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(st_client_bg) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).st_server_fg) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(st_server_fg) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).st_server_bg) as usize - ptr as usize }, + 30usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(st_server_bg) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_text_valid) as usize - ptr as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_text_valid) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_text_invalid) as usize - ptr as usize }, + 42usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_text_invalid) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_text_deprecated) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_text_deprecated) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).restore_filter_after_following_stream) as usize + - ptr as usize + }, + 54usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(restore_filter_after_following_stream) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_toolbar_main_style) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_toolbar_main_style) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_font_name) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_font_name) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_active_fg) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_active_fg) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_active_bg) as usize - ptr as usize }, + 78usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_active_bg) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_active_style) as usize - ptr as usize }, + 84usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_active_style) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_inactive_fg) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_inactive_fg) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_inactive_bg) as usize - ptr as usize }, + 94usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_inactive_bg) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_inactive_style) as usize - ptr as usize }, + 100usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_inactive_style) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_marked_fg) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_marked_fg) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_marked_bg) as usize - ptr as usize }, + 110usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_marked_bg) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_ignored_fg) as usize - ptr as usize }, + 116usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_ignored_fg) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_ignored_bg) as usize - ptr as usize }, + 122usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_ignored_bg) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_colorized_fg) as usize - ptr as usize }, + 128usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_colorized_fg) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_colorized_bg) as usize - ptr as usize }, + 136usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_colorized_bg) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_geometry_save_position) as usize - ptr as usize }, + 144usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_geometry_save_position) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_geometry_save_size) as usize - ptr as usize }, + 145usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_geometry_save_size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_geometry_save_maximized) as usize - ptr as usize }, + 146usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_geometry_save_maximized) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_recent_df_entries_max) as usize - ptr as usize }, + 148usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_recent_df_entries_max) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_recent_files_count_max) as usize - ptr as usize }, + 152usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_recent_files_count_max) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_fileopen_style) as usize - ptr as usize }, + 156usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_fileopen_style) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_fileopen_dir) as usize - ptr as usize }, + 160usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_fileopen_dir) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_fileopen_preview) as usize - ptr as usize }, + 168usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_fileopen_preview) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_tlskeylog_command) as usize - ptr as usize }, + 176usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_tlskeylog_command) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_ask_unsaved) as usize - ptr as usize }, + 184usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_ask_unsaved) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_autocomplete_filter) as usize - ptr as usize }, + 185usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_autocomplete_filter) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_find_wrap) as usize - ptr as usize }, + 186usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_find_wrap) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_window_title) as usize - ptr as usize }, + 192usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_window_title) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_prepend_window_title) as usize - ptr as usize }, + 200usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_prepend_window_title) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_start_title) as usize - ptr as usize }, + 208usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_start_title) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_version_placement) as usize - ptr as usize }, + 216usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_version_placement) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_max_export_objects) as usize - ptr as usize }, + 220usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_max_export_objects) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_max_tree_items) as usize - ptr as usize }, + 224usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_max_tree_items) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_max_tree_depth) as usize - ptr as usize }, + 228usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_max_tree_depth) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).gui_welcome_page_show_recent) as usize - ptr as usize + }, + 232usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_welcome_page_show_recent) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_layout_type) as usize - ptr as usize }, + 236usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_layout_type) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_layout_content_1) as usize - ptr as usize }, + 240usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_layout_content_1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_layout_content_2) as usize - ptr as usize }, + 244usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_layout_content_2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_layout_content_3) as usize - ptr as usize }, + 248usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_layout_content_3) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_packet_dialog_layout) as usize - ptr as usize }, + 252usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_packet_dialog_layout) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_interfaces_hide_types) as usize - ptr as usize }, + 256usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_interfaces_hide_types) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_interfaces_show_hidden) as usize - ptr as usize }, + 264usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_interfaces_show_hidden) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).gui_interfaces_remote_display) as usize - ptr as usize + }, + 265usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_interfaces_remote_display) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).gui_io_graph_automatic_update) as usize - ptr as usize + }, + 266usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_io_graph_automatic_update) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_io_graph_enable_legend) as usize - ptr as usize }, + 267usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_io_graph_enable_legend) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).gui_packet_details_show_byteview) as usize - ptr as usize + }, + 268usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_packet_details_show_byteview) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).capture_device) as usize - ptr as usize }, + 272usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(capture_device) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).capture_devices_linktypes) as usize - ptr as usize }, + 280usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(capture_devices_linktypes) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).capture_devices_descr) as usize - ptr as usize }, + 288usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(capture_devices_descr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).capture_devices_hide) as usize - ptr as usize }, + 296usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(capture_devices_hide) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).capture_devices_monitor_mode) as usize - ptr as usize + }, + 304usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(capture_devices_monitor_mode) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).capture_devices_buffersize) as usize - ptr as usize }, + 312usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(capture_devices_buffersize) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).capture_devices_snaplen) as usize - ptr as usize }, + 320usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(capture_devices_snaplen) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).capture_devices_pmode) as usize - ptr as usize }, + 328usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(capture_devices_pmode) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).capture_devices_filter) as usize - ptr as usize }, + 336usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(capture_devices_filter) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).capture_prom_mode) as usize - ptr as usize }, + 344usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(capture_prom_mode) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).capture_monitor_mode) as usize - ptr as usize }, + 345usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(capture_monitor_mode) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).capture_pcap_ng) as usize - ptr as usize }, + 346usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(capture_pcap_ng) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).capture_real_time) as usize - ptr as usize }, + 347usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(capture_real_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).capture_update_interval) as usize - ptr as usize }, + 348usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(capture_update_interval) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).capture_no_interface_load) as usize - ptr as usize }, + 352usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(capture_no_interface_load) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).capture_no_extcap) as usize - ptr as usize }, + 353usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(capture_no_extcap) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).capture_show_info) as usize - ptr as usize }, + 354usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(capture_show_info) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).capture_columns) as usize - ptr as usize }, + 360usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(capture_columns) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tap_update_interval) as usize - ptr as usize }, + 368usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(tap_update_interval) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).display_hidden_proto_items) as usize - ptr as usize }, + 372usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(display_hidden_proto_items) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).display_byte_fields_with_spaces) as usize - ptr as usize + }, + 373usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(display_byte_fields_with_spaces) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).enable_incomplete_dissectors_check) as usize - ptr as usize + }, + 374usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(enable_incomplete_dissectors_check) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).incomplete_dissectors_check_debug) as usize - ptr as usize + }, + 375usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(incomplete_dissectors_check_debug) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).strict_conversation_tracking_heuristics) as usize + - ptr as usize + }, + 376usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(strict_conversation_tracking_heuristics) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).conversation_deinterlacing_key) as usize - ptr as usize + }, + 380usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(conversation_deinterlacing_key) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ignore_dup_frames) as usize - ptr as usize }, + 384usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(ignore_dup_frames) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).ignore_dup_frames_cache_entries) as usize - ptr as usize + }, + 388usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(ignore_dup_frames_cache_entries) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).filter_expressions_old) as usize - ptr as usize }, + 392usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(filter_expressions_old) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).cols_hide_new) as usize - ptr as usize }, + 393usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(cols_hide_new) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_update_enabled) as usize - ptr as usize }, + 394usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_update_enabled) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_update_channel) as usize - ptr as usize }, + 396usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_update_channel) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_update_interval) as usize - ptr as usize }, + 400usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_update_interval) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_debounce_timer) as usize - ptr as usize }, + 404usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_debounce_timer) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).saved_at_version) as usize - ptr as usize }, + 408usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(saved_at_version) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).unknown_prefs) as usize - ptr as usize }, + 416usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(unknown_prefs) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_packet_list_separator) as usize - ptr as usize }, + 417usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_packet_list_separator) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).gui_packet_header_column_definition) as usize - ptr as usize + }, + 418usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_packet_header_column_definition) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_packet_list_hover_style) as usize - ptr as usize }, + 419usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_packet_list_hover_style) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_show_selected_packet) as usize - ptr as usize }, + 420usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_show_selected_packet) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_show_file_load_time) as usize - ptr as usize }, + 421usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_show_file_load_time) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_packet_list_elide_mode) as usize - ptr as usize }, + 424usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_packet_list_elide_mode) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).gui_packet_list_show_related) as usize - ptr as usize + }, + 428usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_packet_list_show_related) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).gui_packet_list_show_minimap) as usize - ptr as usize + }, + 429usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_packet_list_show_minimap) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_packet_list_sortable) as usize - ptr as usize }, + 430usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_packet_list_sortable) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).gui_packet_list_cached_rows_max) as usize - ptr as usize + }, + 432usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_packet_list_cached_rows_max) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_decimal_places1) as usize - ptr as usize }, + 436usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_decimal_places1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_decimal_places2) as usize - ptr as usize }, + 440usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_decimal_places2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_decimal_places3) as usize - ptr as usize }, + 444usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_decimal_places3) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_rtp_player_use_disk1) as usize - ptr as usize }, + 448usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_rtp_player_use_disk1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gui_rtp_player_use_disk2) as usize - ptr as usize }, + 449usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(gui_rtp_player_use_disk2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).flow_graph_max_export_items) as usize - ptr as usize }, + 452usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(flow_graph_max_export_items) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).st_enable_burstinfo) as usize - ptr as usize }, + 456usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(st_enable_burstinfo) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).st_burst_showcount) as usize - ptr as usize }, + 457usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(st_burst_showcount) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).st_burst_resolution) as usize - ptr as usize }, + 460usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(st_burst_resolution) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).st_burst_windowlen) as usize - ptr as usize }, + 464usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(st_burst_windowlen) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).st_sort_casesensitve) as usize - ptr as usize }, + 468usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(st_sort_casesensitve) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).st_sort_rng_fixorder) as usize - ptr as usize }, + 469usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(st_sort_rng_fixorder) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).st_sort_rng_nameonly) as usize - ptr as usize }, + 470usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(st_sort_rng_nameonly) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).st_sort_defcolflag) as usize - ptr as usize }, + 472usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(st_sort_defcolflag) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).st_sort_defdescending) as usize - ptr as usize }, + 476usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(st_sort_defdescending) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).st_sort_showfullname) as usize - ptr as usize }, + 477usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(st_sort_showfullname) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).extcap_save_on_start) as usize - ptr as usize }, + 478usize, + concat!( + "Offset of field: ", + stringify!(_e_prefs), + "::", + stringify!(extcap_save_on_start) + ) + ); +} +pub type e_prefs = _e_prefs; +extern "C" { + pub static mut prefs: e_prefs; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pref_module { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pref_custom_cbs { + _unused: [u8; 0], +} +pub type module_t = pref_module; +extern "C" { + pub fn prefs_init(); +} +extern "C" { + pub fn prefs_reset(); +} +extern "C" { + pub fn prefs_cleanup(); +} +extern "C" { + pub fn prefs_set_gui_theme_is_dark(is_dark: bool); +} +extern "C" { + pub fn prefs_register_protocol( + id: ::std::os::raw::c_int, + apply_cb: ::std::option::Option, + ) -> *mut module_t; +} +extern "C" { + pub fn prefs_register_module_alias(name: *const ::std::os::raw::c_char, module: *mut module_t); +} +extern "C" { + pub fn prefs_deregister_protocol(id: ::std::os::raw::c_int); +} +extern "C" { + pub fn prefs_register_stat( + name: *const ::std::os::raw::c_char, + title: *const ::std::os::raw::c_char, + description: *const ::std::os::raw::c_char, + apply_cb: ::std::option::Option, + ) -> *mut module_t; +} +extern "C" { + pub fn prefs_register_codec( + name: *const ::std::os::raw::c_char, + title: *const ::std::os::raw::c_char, + description: *const ::std::os::raw::c_char, + apply_cb: ::std::option::Option, + ) -> *mut module_t; +} +extern "C" { + pub fn prefs_register_protocol_subtree( + subtree: *const ::std::os::raw::c_char, + id: ::std::os::raw::c_int, + apply_cb: ::std::option::Option, + ) -> *mut module_t; +} +extern "C" { + pub fn prefs_register_protocol_obsolete(id: ::std::os::raw::c_int) -> *mut module_t; +} +pub type module_cb = ::std::option::Option< + unsafe extern "C" fn( + module: *mut module_t, + user_data: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_uint, +>; +extern "C" { + pub fn prefs_module_has_submodules(module: *mut module_t) -> bool; +} +extern "C" { + pub fn prefs_modules_foreach( + callback: module_cb, + user_data: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn prefs_modules_foreach_submodules( + module: *mut module_t, + callback: module_cb, + user_data: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn prefs_apply_all(); +} +extern "C" { + pub fn prefs_apply(module: *mut module_t); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct preference { + _unused: [u8; 0], +} +pub type pref_t = preference; +extern "C" { + pub fn prefs_is_registered_protocol(name: *const ::std::os::raw::c_char) -> bool; +} +extern "C" { + pub fn prefs_get_title_by_name( + name: *const ::std::os::raw::c_char, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn prefs_find_module(name: *const ::std::os::raw::c_char) -> *mut module_t; +} +extern "C" { + pub fn prefs_find_preference( + module: *mut module_t, + pref: *const ::std::os::raw::c_char, + ) -> *mut pref_t; +} +extern "C" { + pub fn prefs_register_uint_preference( + module: *mut module_t, + name: *const ::std::os::raw::c_char, + title: *const ::std::os::raw::c_char, + description: *const ::std::os::raw::c_char, + base: ::std::os::raw::c_uint, + var: *mut ::std::os::raw::c_uint, + ); +} +extern "C" { + pub fn prefs_register_bool_preference( + module: *mut module_t, + name: *const ::std::os::raw::c_char, + title: *const ::std::os::raw::c_char, + description: *const ::std::os::raw::c_char, + var: *mut bool, + ); +} +extern "C" { + pub fn prefs_register_enum_preference( + module: *mut module_t, + name: *const ::std::os::raw::c_char, + title: *const ::std::os::raw::c_char, + description: *const ::std::os::raw::c_char, + var: *mut ::std::os::raw::c_int, + enumvals: *const enum_val_t, + radio_buttons: bool, + ); +} +extern "C" { + pub fn prefs_register_string_preference( + module: *mut module_t, + name: *const ::std::os::raw::c_char, + title: *const ::std::os::raw::c_char, + description: *const ::std::os::raw::c_char, + var: *mut *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn prefs_register_filename_preference( + module: *mut module_t, + name: *const ::std::os::raw::c_char, + title: *const ::std::os::raw::c_char, + description: *const ::std::os::raw::c_char, + var: *mut *const ::std::os::raw::c_char, + for_writing: bool, + ); +} +extern "C" { + pub fn prefs_register_directory_preference( + module: *mut module_t, + name: *const ::std::os::raw::c_char, + title: *const ::std::os::raw::c_char, + description: *const ::std::os::raw::c_char, + var: *mut *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn prefs_register_range_preference( + module: *mut module_t, + name: *const ::std::os::raw::c_char, + title: *const ::std::os::raw::c_char, + description: *const ::std::os::raw::c_char, + var: *mut *mut range_t, + max_value: u32, + ); +} +extern "C" { + pub fn prefs_register_static_text_preference( + module: *mut module_t, + name: *const ::std::os::raw::c_char, + title: *const ::std::os::raw::c_char, + description: *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn prefs_register_uat_preference( + module: *mut module_t, + name: *const ::std::os::raw::c_char, + title: *const ::std::os::raw::c_char, + description: *const ::std::os::raw::c_char, + uat: *mut epan_uat, + ); +} +extern "C" { + pub fn prefs_register_uat_preference_qt( + module: *mut module_t, + name: *const ::std::os::raw::c_char, + title: *const ::std::os::raw::c_char, + description: *const ::std::os::raw::c_char, + uat: *mut epan_uat, + ); +} +extern "C" { + pub fn prefs_register_color_preference( + module: *mut module_t, + name: *const ::std::os::raw::c_char, + title: *const ::std::os::raw::c_char, + description: *const ::std::os::raw::c_char, + color: *mut color_t, + ); +} +extern "C" { + pub fn prefs_register_custom_preference( + module: *mut module_t, + name: *const ::std::os::raw::c_char, + title: *const ::std::os::raw::c_char, + description: *const ::std::os::raw::c_char, + custom_cbs: *mut pref_custom_cbs, + custom_data: *mut *mut ::std::os::raw::c_void, + ); +} +extern "C" { + pub fn prefs_register_decode_as_range_preference( + module: *mut module_t, + name: *const ::std::os::raw::c_char, + title: *const ::std::os::raw::c_char, + description: *const ::std::os::raw::c_char, + var: *mut *mut range_t, + max_value: u32, + dissector_table: *const ::std::os::raw::c_char, + dissector_description: *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn prefs_register_password_preference( + module: *mut module_t, + name: *const ::std::os::raw::c_char, + title: *const ::std::os::raw::c_char, + description: *const ::std::os::raw::c_char, + var: *mut *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn prefs_register_dissector_preference( + module: *mut module_t, + name: *const ::std::os::raw::c_char, + title: *const ::std::os::raw::c_char, + description: *const ::std::os::raw::c_char, + var: *mut *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn prefs_register_obsolete_preference( + module: *mut module_t, + name: *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn prefs_register_custom_preference_TCP_Analysis( + module: *mut module_t, + name: *const ::std::os::raw::c_char, + title: *const ::std::os::raw::c_char, + description: *const ::std::os::raw::c_char, + var: *mut ::std::os::raw::c_int, + enumvals: *const enum_val_t, + radio_buttons: bool, + ); +} +extern "C" { + pub fn prefs_set_preference_effect_fields( + module: *mut module_t, + name: *const ::std::os::raw::c_char, + ); +} +pub type pref_cb = ::std::option::Option< + unsafe extern "C" fn( + pref: *mut pref_t, + user_data: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_uint, +>; +extern "C" { + pub fn prefs_pref_foreach( + module: *mut module_t, + callback: pref_cb, + user_data: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn prefs_get_string_list(str_: *const ::std::os::raw::c_char) -> *mut GList; +} +extern "C" { + pub fn prefs_clear_string_list(sl: *mut GList); +} +extern "C" { + pub fn prefs_pref_type_name(pref: *mut pref_t) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn prefs_pref_type_description(pref: *mut pref_t) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn prefs_pref_to_str( + pref: *mut pref_t, + source: pref_source_t, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn read_prefs() -> *mut e_prefs; +} +extern "C" { + pub fn write_prefs(pf_path_return: *mut *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +pub const prefs_set_pref_e_PREFS_SET_OK: prefs_set_pref_e = 0; +pub const prefs_set_pref_e_PREFS_SET_SYNTAX_ERR: prefs_set_pref_e = 1; +pub const prefs_set_pref_e_PREFS_SET_NO_SUCH_PREF: prefs_set_pref_e = 2; +pub const prefs_set_pref_e_PREFS_SET_OBSOLETE: prefs_set_pref_e = 3; +pub type prefs_set_pref_e = ::std::os::raw::c_uint; +extern "C" { + pub fn prefs_set_pref( + prefarg: *mut ::std::os::raw::c_char, + errmsg: *mut *mut ::std::os::raw::c_char, + ) -> prefs_set_pref_e; +} +extern "C" { + pub fn prefs_get_preference_obsolete(pref: *mut pref_t) -> bool; +} +extern "C" { + pub fn prefs_set_preference_obsolete(pref: *mut pref_t) -> prefs_set_pref_e; +} +extern "C" { + pub fn prefs_get_uint_value( + module_name: *const ::std::os::raw::c_char, + pref_name: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_uint; +} +extern "C" { + pub fn prefs_get_range_value( + module_name: *const ::std::os::raw::c_char, + pref_name: *const ::std::os::raw::c_char, + ) -> *mut range_t; +} +extern "C" { + pub fn prefs_is_capture_device_hidden(name: *const ::std::os::raw::c_char) -> bool; +} +extern "C" { + pub fn prefs_capture_device_monitor_mode(name: *const ::std::os::raw::c_char) -> bool; +} +extern "C" { + pub fn prefs_capture_options_dialog_column_is_visible( + column: *const ::std::os::raw::c_char, + ) -> bool; +} +extern "C" { + pub fn prefs_has_layout_pane_content(layout_pane_content: layout_pane_content_e) -> bool; +} +extern "C" { + pub static mut wireshark_abort_on_dissector_bug: bool; +} +extern "C" { + pub static mut wireshark_abort_on_too_many_items: bool; +} +pub type epan_dissect_t = epan_dissect; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct epan_dfilter { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct epan_column_info { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct packet_provider_data { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct packet_provider_funcs { + pub get_frame_ts: ::std::option::Option< + unsafe extern "C" fn(prov: *mut packet_provider_data, frame_num: u32) -> *const nstime_t, + >, + pub get_interface_name: ::std::option::Option< + unsafe extern "C" fn( + prov: *mut packet_provider_data, + interface_id: u32, + section_number: ::std::os::raw::c_uint, + ) -> *const ::std::os::raw::c_char, + >, + pub get_interface_description: ::std::option::Option< + unsafe extern "C" fn( + prov: *mut packet_provider_data, + interface_id: u32, + section_number: ::std::os::raw::c_uint, + ) -> *const ::std::os::raw::c_char, + >, + pub get_modified_block: ::std::option::Option< + unsafe extern "C" fn( + prov: *mut packet_provider_data, + fd: *const frame_data, + ) -> wtap_block_t, + >, +} +#[test] +fn bindgen_test_layout_packet_provider_funcs() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(packet_provider_funcs)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(packet_provider_funcs)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).get_frame_ts) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(packet_provider_funcs), + "::", + stringify!(get_frame_ts) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).get_interface_name) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(packet_provider_funcs), + "::", + stringify!(get_interface_name) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).get_interface_description) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(packet_provider_funcs), + "::", + stringify!(get_interface_description) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).get_modified_block) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(packet_provider_funcs), + "::", + stringify!(get_modified_block) + ) + ); +} +extern "C" { + pub fn epan_init( + cb: register_cb, + client_data: *mut ::std::os::raw::c_void, + load_plugins: bool, + ) -> bool; +} +extern "C" { + pub fn epan_load_settings() -> *mut e_prefs; +} +extern "C" { + pub fn epan_cleanup(); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct epan_plugin { + pub init: ::std::option::Option, + pub post_init: ::std::option::Option, + pub dissect_init: ::std::option::Option, + pub dissect_cleanup: ::std::option::Option, + pub cleanup: ::std::option::Option, + pub register_all_protocols: ::std::option::Option< + unsafe extern "C" fn(arg1: register_cb, arg2: *mut ::std::os::raw::c_void), + >, + pub register_all_handoffs: ::std::option::Option< + unsafe extern "C" fn(arg1: register_cb, arg2: *mut ::std::os::raw::c_void), + >, + pub register_all_tap_listeners: ::std::option::Option, +} +#[test] +fn bindgen_test_layout_epan_plugin() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 64usize, + concat!("Size of: ", stringify!(epan_plugin)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(epan_plugin)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(epan_plugin), + "::", + stringify!(init) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).post_init) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(epan_plugin), + "::", + stringify!(post_init) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dissect_init) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(epan_plugin), + "::", + stringify!(dissect_init) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dissect_cleanup) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(epan_plugin), + "::", + stringify!(dissect_cleanup) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).cleanup) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(epan_plugin), + "::", + stringify!(cleanup) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).register_all_protocols) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(epan_plugin), + "::", + stringify!(register_all_protocols) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).register_all_handoffs) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(epan_plugin), + "::", + stringify!(register_all_handoffs) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).register_all_tap_listeners) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(epan_plugin), + "::", + stringify!(register_all_tap_listeners) + ) + ); +} +extern "C" { + pub fn epan_register_plugin(plugin: *const epan_plugin); +} +extern "C" { + pub fn epan_plugins_supported() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn epan_conversation_init(); +} +pub type epan_t = epan_session; +extern "C" { + pub fn epan_new( + prov: *mut packet_provider_data, + funcs: *const packet_provider_funcs, + ) -> *mut epan_t; +} +extern "C" { + pub fn epan_get_modified_block(session: *const epan_t, fd: *const frame_data) -> wtap_block_t; +} +extern "C" { + pub fn epan_get_interface_name( + session: *const epan_t, + interface_id: u32, + section_number: ::std::os::raw::c_uint, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn epan_get_interface_description( + session: *const epan_t, + interface_id: u32, + section_number: ::std::os::raw::c_uint, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn epan_get_frame_ts(session: *const epan_t, frame_num: u32) -> *const nstime_t; +} +extern "C" { + pub fn epan_free(session: *mut epan_t); +} +extern "C" { + pub fn epan_get_version() -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn epan_get_version_number( + major: *mut ::std::os::raw::c_int, + minor: *mut ::std::os::raw::c_int, + micro: *mut ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn epan_set_always_visible(force: bool); +} +extern "C" { + pub fn epan_dissect_init( + edt: *mut epan_dissect_t, + session: *mut epan_t, + create_proto_tree: bool, + proto_tree_visible: bool, + ); +} +extern "C" { + pub fn epan_dissect_new( + session: *mut epan_t, + create_proto_tree: bool, + proto_tree_visible: bool, + ) -> *mut epan_dissect_t; +} +extern "C" { + pub fn epan_dissect_reset(edt: *mut epan_dissect_t); +} +extern "C" { + pub fn epan_dissect_fake_protocols(edt: *mut epan_dissect_t, fake_protocols: bool); +} +extern "C" { + pub fn epan_dissect_run( + edt: *mut epan_dissect_t, + file_type_subtype: ::std::os::raw::c_int, + rec: *mut wtap_rec, + tvb: *mut tvbuff_t, + fd: *mut frame_data, + cinfo: *mut epan_column_info, + ); +} +extern "C" { + pub fn epan_dissect_run_with_taps( + edt: *mut epan_dissect_t, + file_type_subtype: ::std::os::raw::c_int, + rec: *mut wtap_rec, + tvb: *mut tvbuff_t, + fd: *mut frame_data, + cinfo: *mut epan_column_info, + ); +} +extern "C" { + pub fn epan_dissect_file_run( + edt: *mut epan_dissect_t, + rec: *mut wtap_rec, + tvb: *mut tvbuff_t, + fd: *mut frame_data, + cinfo: *mut epan_column_info, + ); +} +extern "C" { + pub fn epan_dissect_file_run_with_taps( + edt: *mut epan_dissect_t, + rec: *mut wtap_rec, + tvb: *mut tvbuff_t, + fd: *mut frame_data, + cinfo: *mut epan_column_info, + ); +} +extern "C" { + pub fn epan_dissect_prime_with_dfilter(edt: *mut epan_dissect_t, dfcode: *const epan_dfilter); +} +extern "C" { + pub fn epan_dissect_prime_with_hfid(edt: *mut epan_dissect_t, hfid: ::std::os::raw::c_int); +} +extern "C" { + pub fn epan_dissect_prime_with_hfid_array(edt: *mut epan_dissect_t, hfids: *mut GArray); +} +extern "C" { + pub fn epan_dissect_fill_in_columns( + edt: *mut epan_dissect_t, + fill_col_exprs: bool, + fill_fd_colums: bool, + ); +} +extern "C" { + pub fn epan_dissect_packet_contains_field( + edt: *mut epan_dissect_t, + field_name: *const ::std::os::raw::c_char, + ) -> bool; +} +extern "C" { + pub fn epan_dissect_cleanup(edt: *mut epan_dissect_t); +} +extern "C" { + pub fn epan_dissect_free(edt: *mut epan_dissect_t); +} +extern "C" { + pub fn epan_custom_set( + edt: *mut epan_dissect_t, + ids: *mut GSList, + occurrence: ::std::os::raw::c_int, + result: *mut ::std::os::raw::c_char, + expr: *mut ::std::os::raw::c_char, + size: ::std::os::raw::c_int, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn epan_gather_compile_info(l: feature_list); +} +extern "C" { + pub fn epan_gather_runtime_info(l: feature_list); +} +pub type column_info = epan_column_info; +pub const COL_ABS_YMD_TIME: _bindgen_ty_2 = 0; +pub const COL_ABS_YDOY_TIME: _bindgen_ty_2 = 1; +pub const COL_ABS_TIME: _bindgen_ty_2 = 2; +pub const COL_CUMULATIVE_BYTES: _bindgen_ty_2 = 3; +pub const COL_CUSTOM: _bindgen_ty_2 = 4; +pub const COL_DELTA_TIME: _bindgen_ty_2 = 5; +pub const COL_DELTA_TIME_DIS: _bindgen_ty_2 = 6; +pub const COL_RES_DST: _bindgen_ty_2 = 7; +pub const COL_UNRES_DST: _bindgen_ty_2 = 8; +pub const COL_RES_DST_PORT: _bindgen_ty_2 = 9; +pub const COL_UNRES_DST_PORT: _bindgen_ty_2 = 10; +pub const COL_DEF_DST: _bindgen_ty_2 = 11; +pub const COL_DEF_DST_PORT: _bindgen_ty_2 = 12; +pub const COL_EXPERT: _bindgen_ty_2 = 13; +pub const COL_IF_DIR: _bindgen_ty_2 = 14; +pub const COL_FREQ_CHAN: _bindgen_ty_2 = 15; +pub const COL_DEF_DL_DST: _bindgen_ty_2 = 16; +pub const COL_DEF_DL_SRC: _bindgen_ty_2 = 17; +pub const COL_RES_DL_DST: _bindgen_ty_2 = 18; +pub const COL_UNRES_DL_DST: _bindgen_ty_2 = 19; +pub const COL_RES_DL_SRC: _bindgen_ty_2 = 20; +pub const COL_UNRES_DL_SRC: _bindgen_ty_2 = 21; +pub const COL_RSSI: _bindgen_ty_2 = 22; +pub const COL_TX_RATE: _bindgen_ty_2 = 23; +pub const COL_DSCP_VALUE: _bindgen_ty_2 = 24; +pub const COL_INFO: _bindgen_ty_2 = 25; +pub const COL_RES_NET_DST: _bindgen_ty_2 = 26; +pub const COL_UNRES_NET_DST: _bindgen_ty_2 = 27; +pub const COL_RES_NET_SRC: _bindgen_ty_2 = 28; +pub const COL_UNRES_NET_SRC: _bindgen_ty_2 = 29; +pub const COL_DEF_NET_DST: _bindgen_ty_2 = 30; +pub const COL_DEF_NET_SRC: _bindgen_ty_2 = 31; +pub const COL_NUMBER: _bindgen_ty_2 = 32; +pub const COL_PACKET_LENGTH: _bindgen_ty_2 = 33; +pub const COL_PROTOCOL: _bindgen_ty_2 = 34; +pub const COL_REL_TIME: _bindgen_ty_2 = 35; +pub const COL_DEF_SRC: _bindgen_ty_2 = 36; +pub const COL_DEF_SRC_PORT: _bindgen_ty_2 = 37; +pub const COL_RES_SRC: _bindgen_ty_2 = 38; +pub const COL_UNRES_SRC: _bindgen_ty_2 = 39; +pub const COL_RES_SRC_PORT: _bindgen_ty_2 = 40; +pub const COL_UNRES_SRC_PORT: _bindgen_ty_2 = 41; +pub const COL_UTC_YMD_TIME: _bindgen_ty_2 = 42; +pub const COL_UTC_YDOY_TIME: _bindgen_ty_2 = 43; +pub const COL_UTC_TIME: _bindgen_ty_2 = 44; +pub const COL_CLS_TIME: _bindgen_ty_2 = 45; +pub const NUM_COL_FMTS: _bindgen_ty_2 = 46; +pub type _bindgen_ty_2 = ::std::os::raw::c_uint; +extern "C" { + pub fn col_get_writable(cinfo: *mut column_info, col: ::std::os::raw::c_int) -> bool; +} +extern "C" { + pub fn col_set_writable(cinfo: *mut column_info, col: ::std::os::raw::c_int, writable: bool); +} +extern "C" { + pub fn col_set_fence(cinfo: *mut column_info, col: ::std::os::raw::c_int); +} +extern "C" { + pub fn col_clear_fence(cinfo: *mut column_info, col: ::std::os::raw::c_int); +} +extern "C" { + pub fn col_get_text( + cinfo: *mut column_info, + col: ::std::os::raw::c_int, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn col_clear(cinfo: *mut column_info, col: ::std::os::raw::c_int); +} +extern "C" { + pub fn col_set_str( + cinfo: *mut column_info, + col: ::std::os::raw::c_int, + str_: *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn col_add_str( + cinfo: *mut column_info, + col: ::std::os::raw::c_int, + str_: *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn col_add_lstr( + cinfo: *mut column_info, + el: ::std::os::raw::c_int, + str_: *const ::std::os::raw::c_char, + ... + ); +} +extern "C" { + pub fn col_add_fstr( + cinfo: *mut column_info, + col: ::std::os::raw::c_int, + format: *const ::std::os::raw::c_char, + ... + ); +} +extern "C" { + pub fn col_append_str( + cinfo: *mut column_info, + col: ::std::os::raw::c_int, + str_: *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn col_append_str_uint( + cinfo: *mut column_info, + col: ::std::os::raw::c_int, + abbrev: *const ::std::os::raw::c_char, + val: u32, + sep: *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn col_append_ports( + cinfo: *mut column_info, + col: ::std::os::raw::c_int, + typ: port_type, + src: u16, + dst: u16, + ); +} +extern "C" { + pub fn col_append_frame_number( + pinfo: *mut packet_info, + col: ::std::os::raw::c_int, + fmt_str: *const ::std::os::raw::c_char, + frame_num: ::std::os::raw::c_uint, + ); +} +extern "C" { + pub fn col_append_lstr( + cinfo: *mut column_info, + el: ::std::os::raw::c_int, + str_: *const ::std::os::raw::c_char, + ... + ); +} +extern "C" { + pub fn col_append_fstr( + cinfo: *mut column_info, + col: ::std::os::raw::c_int, + format: *const ::std::os::raw::c_char, + ... + ); +} +extern "C" { + pub fn col_prepend_fstr( + cinfo: *mut column_info, + col: ::std::os::raw::c_int, + format: *const ::std::os::raw::c_char, + ... + ); +} +extern "C" { + pub fn col_prepend_fence_fstr( + cinfo: *mut column_info, + col: ::std::os::raw::c_int, + format: *const ::std::os::raw::c_char, + ... + ); +} +extern "C" { + pub fn col_append_sep_str( + cinfo: *mut column_info, + col: ::std::os::raw::c_int, + sep: *const ::std::os::raw::c_char, + str_: *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn col_append_sep_fstr( + cinfo: *mut column_info, + col: ::std::os::raw::c_int, + sep: *const ::std::os::raw::c_char, + format: *const ::std::os::raw::c_char, + ... + ); +} +extern "C" { + pub fn col_set_time( + cinfo: *mut column_info, + col: ::std::os::raw::c_int, + ts: *const nstime_t, + fieldname: *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn set_fd_time( + epan: *const epan_session, + fd: *mut frame_data, + buf: *mut ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn packet_init(); +} +extern "C" { + pub fn packet_cache_proto_handles(); +} +extern "C" { + pub fn packet_cleanup(); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dissector_handle { + _unused: [u8; 0], +} +pub type dissector_handle_t = *mut dissector_handle; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dissector_table { + _unused: [u8; 0], +} +pub type dissector_table_t = *mut dissector_table; +pub type dissector_t = ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut tvbuff_t, + arg2: *mut packet_info, + arg3: *mut proto_tree, + arg4: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int, +>; +pub type dissector_cb_t = ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut tvbuff_t, + arg2: *mut packet_info, + arg3: *mut proto_tree, + arg4: *mut ::std::os::raw::c_void, + arg5: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int, +>; +pub type heur_dissector_t = ::std::option::Option< + unsafe extern "C" fn( + tvb: *mut tvbuff_t, + pinfo: *mut packet_info, + tree: *mut proto_tree, + arg1: *mut ::std::os::raw::c_void, + ) -> bool, +>; +pub const heuristic_enable_e_HEURISTIC_DISABLE: heuristic_enable_e = 0; +pub const heuristic_enable_e_HEURISTIC_ENABLE: heuristic_enable_e = 1; +pub type heuristic_enable_e = ::std::os::raw::c_uint; +pub type DATFunc = ::std::option::Option< + unsafe extern "C" fn( + table_name: *const ::std::os::raw::c_char, + selector_type: ftenum_t, + key: *mut ::std::os::raw::c_void, + value: *mut ::std::os::raw::c_void, + user_data: *mut ::std::os::raw::c_void, + ), +>; +pub type DATFunc_handle = ::std::option::Option< + unsafe extern "C" fn( + table_name: *const ::std::os::raw::c_char, + value: *mut ::std::os::raw::c_void, + user_data: *mut ::std::os::raw::c_void, + ), +>; +pub type DATFunc_table = ::std::option::Option< + unsafe extern "C" fn( + table_name: *const ::std::os::raw::c_char, + ui_name: *const ::std::os::raw::c_char, + user_data: *mut ::std::os::raw::c_void, + ), +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dtbl_entry { + _unused: [u8; 0], +} +pub type dtbl_entry_t = dtbl_entry; +extern "C" { + pub fn dtbl_entry_get_handle(dtbl_entry: *mut dtbl_entry_t) -> dissector_handle_t; +} +extern "C" { + pub fn dtbl_entry_get_initial_handle(entry: *mut dtbl_entry_t) -> dissector_handle_t; +} +extern "C" { + pub fn dissector_table_foreach_changed( + table_name: *const ::std::os::raw::c_char, + func: DATFunc, + user_data: *mut ::std::os::raw::c_void, + ); +} +extern "C" { + pub fn dissector_table_foreach( + table_name: *const ::std::os::raw::c_char, + func: DATFunc, + user_data: *mut ::std::os::raw::c_void, + ); +} +extern "C" { + pub fn dissector_all_tables_foreach_changed( + func: DATFunc, + user_data: *mut ::std::os::raw::c_void, + ); +} +extern "C" { + pub fn dissector_table_foreach_handle( + table_name: *const ::std::os::raw::c_char, + func: DATFunc_handle, + user_data: *mut ::std::os::raw::c_void, + ); +} +extern "C" { + pub fn dissector_all_tables_foreach_table( + func: DATFunc_table, + user_data: *mut ::std::os::raw::c_void, + compare_key_func: GCompareFunc, + ); +} +extern "C" { + pub fn register_dissector_table( + name: *const ::std::os::raw::c_char, + ui_name: *const ::std::os::raw::c_char, + proto: ::std::os::raw::c_int, + type_: ftenum_t, + param: ::std::os::raw::c_int, + ) -> dissector_table_t; +} +extern "C" { + pub fn register_custom_dissector_table( + name: *const ::std::os::raw::c_char, + ui_name: *const ::std::os::raw::c_char, + proto: ::std::os::raw::c_int, + hash_func: GHashFunc, + key_equal_func: GEqualFunc, + key_destroy_func: GDestroyNotify, + ) -> dissector_table_t; +} +extern "C" { + pub fn register_dissector_table_alias( + dissector_table: dissector_table_t, + alias_name: *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn deregister_dissector_table(name: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn find_dissector_table(name: *const ::std::os::raw::c_char) -> dissector_table_t; +} +extern "C" { + pub fn get_dissector_table_ui_name( + name: *const ::std::os::raw::c_char, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn get_dissector_table_selector_type(name: *const ::std::os::raw::c_char) -> ftenum_t; +} +extern "C" { + pub fn get_dissector_table_param(name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn dissector_dump_dissector_tables(); +} +extern "C" { + pub fn dissector_add_uint( + name: *const ::std::os::raw::c_char, + pattern: u32, + handle: dissector_handle_t, + ); +} +extern "C" { + pub fn dissector_add_uint_with_preference( + name: *const ::std::os::raw::c_char, + pattern: u32, + handle: dissector_handle_t, + ); +} +extern "C" { + pub fn dissector_add_uint_range( + abbrev: *const ::std::os::raw::c_char, + range: *mut epan_range, + handle: dissector_handle_t, + ); +} +extern "C" { + pub fn dissector_add_uint_range_with_preference( + abbrev: *const ::std::os::raw::c_char, + range_str: *const ::std::os::raw::c_char, + handle: dissector_handle_t, + ); +} +extern "C" { + pub fn dissector_delete_uint( + name: *const ::std::os::raw::c_char, + pattern: u32, + handle: dissector_handle_t, + ); +} +extern "C" { + pub fn dissector_delete_uint_range( + abbrev: *const ::std::os::raw::c_char, + range: *mut epan_range, + handle: dissector_handle_t, + ); +} +extern "C" { + pub fn dissector_delete_all(name: *const ::std::os::raw::c_char, handle: dissector_handle_t); +} +extern "C" { + pub fn dissector_change_uint( + abbrev: *const ::std::os::raw::c_char, + pattern: u32, + handle: dissector_handle_t, + ); +} +extern "C" { + pub fn dissector_reset_uint(name: *const ::std::os::raw::c_char, pattern: u32); +} +extern "C" { + pub fn dissector_is_uint_changed(sub_dissectors: dissector_table_t, uint_val: u32) -> bool; +} +extern "C" { + pub fn dissector_try_uint( + sub_dissectors: dissector_table_t, + uint_val: u32, + tvb: *mut tvbuff_t, + pinfo: *mut packet_info, + tree: *mut proto_tree, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn dissector_try_uint_new( + sub_dissectors: dissector_table_t, + uint_val: u32, + tvb: *mut tvbuff_t, + pinfo: *mut packet_info, + tree: *mut proto_tree, + add_proto_name: bool, + data: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn dissector_get_uint_handle( + sub_dissectors: dissector_table_t, + uint_val: u32, + ) -> dissector_handle_t; +} +extern "C" { + pub fn dissector_get_default_uint_handle( + name: *const ::std::os::raw::c_char, + uint_val: u32, + ) -> dissector_handle_t; +} +extern "C" { + pub fn dissector_add_string( + name: *const ::std::os::raw::c_char, + pattern: *const ::std::os::raw::c_char, + handle: dissector_handle_t, + ); +} +extern "C" { + pub fn dissector_delete_string( + name: *const ::std::os::raw::c_char, + pattern: *const ::std::os::raw::c_char, + handle: dissector_handle_t, + ); +} +extern "C" { + pub fn dissector_change_string( + name: *const ::std::os::raw::c_char, + pattern: *const ::std::os::raw::c_char, + handle: dissector_handle_t, + ); +} +extern "C" { + pub fn dissector_reset_string( + name: *const ::std::os::raw::c_char, + pattern: *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn dissector_is_string_changed( + subdissectors: dissector_table_t, + string: *const ::std::os::raw::c_char, + ) -> bool; +} +extern "C" { + pub fn dissector_try_string( + sub_dissectors: dissector_table_t, + string: *const ::std::os::raw::c_char, + tvb: *mut tvbuff_t, + pinfo: *mut packet_info, + tree: *mut proto_tree, + data: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn dissector_try_string_new( + sub_dissectors: dissector_table_t, + string: *const ::std::os::raw::c_char, + tvb: *mut tvbuff_t, + pinfo: *mut packet_info, + tree: *mut proto_tree, + add_proto_name: bool, + data: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn dissector_get_string_handle( + sub_dissectors: dissector_table_t, + string: *const ::std::os::raw::c_char, + ) -> dissector_handle_t; +} +extern "C" { + pub fn dissector_get_default_string_handle( + name: *const ::std::os::raw::c_char, + string: *const ::std::os::raw::c_char, + ) -> dissector_handle_t; +} +extern "C" { + pub fn dissector_add_custom_table_handle( + name: *const ::std::os::raw::c_char, + pattern: *mut ::std::os::raw::c_void, + handle: dissector_handle_t, + ); +} +extern "C" { + pub fn dissector_get_custom_table_handle( + sub_dissectors: dissector_table_t, + key: *mut ::std::os::raw::c_void, + ) -> dissector_handle_t; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _guid_key { + pub guid: e_guid_t, + pub ver: u16, +} +#[test] +fn bindgen_test_layout__guid_key() { + const UNINIT: ::std::mem::MaybeUninit<_guid_key> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_guid_key>(), + 20usize, + concat!("Size of: ", stringify!(_guid_key)) + ); + assert_eq!( + ::std::mem::align_of::<_guid_key>(), + 4usize, + concat!("Alignment of ", stringify!(_guid_key)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).guid) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_guid_key), + "::", + stringify!(guid) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ver) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_guid_key), + "::", + stringify!(ver) + ) + ); +} +pub type guid_key = _guid_key; +extern "C" { + pub fn dissector_add_guid( + name: *const ::std::os::raw::c_char, + guid_val: *mut guid_key, + handle: dissector_handle_t, + ); +} +extern "C" { + pub fn dissector_try_guid( + sub_dissectors: dissector_table_t, + guid_val: *mut guid_key, + tvb: *mut tvbuff_t, + pinfo: *mut packet_info, + tree: *mut proto_tree, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn dissector_try_guid_new( + sub_dissectors: dissector_table_t, + guid_val: *mut guid_key, + tvb: *mut tvbuff_t, + pinfo: *mut packet_info, + tree: *mut proto_tree, + add_proto_name: bool, + data: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn dissector_delete_guid( + name: *const ::std::os::raw::c_char, + guid_val: *mut guid_key, + handle: dissector_handle_t, + ); +} +extern "C" { + pub fn dissector_get_guid_handle( + sub_dissectors: dissector_table_t, + guid_val: *mut guid_key, + ) -> dissector_handle_t; +} +extern "C" { + pub fn dissector_try_payload( + sub_dissectors: dissector_table_t, + tvb: *mut tvbuff_t, + pinfo: *mut packet_info, + tree: *mut proto_tree, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn dissector_try_payload_new( + sub_dissectors: dissector_table_t, + tvb: *mut tvbuff_t, + pinfo: *mut packet_info, + tree: *mut proto_tree, + add_proto_name: bool, + data: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn dissector_change_payload( + abbrev: *const ::std::os::raw::c_char, + handle: dissector_handle_t, + ); +} +extern "C" { + pub fn dissector_reset_payload(name: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn dissector_get_payload_handle(dissector_table: dissector_table_t) -> dissector_handle_t; +} +extern "C" { + pub fn dissector_add_for_decode_as( + name: *const ::std::os::raw::c_char, + handle: dissector_handle_t, + ); +} +extern "C" { + pub fn dissector_add_for_decode_as_with_preference( + name: *const ::std::os::raw::c_char, + handle: dissector_handle_t, + ); +} +extern "C" { + pub fn dissector_table_get_dissector_handles(dissector_table: dissector_table_t) + -> *mut GSList; +} +extern "C" { + pub fn dissector_table_get_dissector_handle( + dissector_table: dissector_table_t, + description: *const ::std::os::raw::c_char, + ) -> dissector_handle_t; +} +extern "C" { + pub fn dissector_table_get_type(dissector_table: dissector_table_t) -> ftenum_t; +} +extern "C" { + pub fn dissector_table_allow_decode_as(dissector_table: dissector_table_t); +} +extern "C" { + pub fn dissector_table_supports_decode_as(dissector_table: dissector_table_t) -> bool; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct heur_dissector_list { + _unused: [u8; 0], +} +pub type heur_dissector_list_t = *mut heur_dissector_list; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct heur_dtbl_entry { + pub dissector: heur_dissector_t, + pub protocol: *mut protocol_t, + pub list_name: *mut ::std::os::raw::c_char, + pub display_name: *const ::std::os::raw::c_char, + pub short_name: *mut ::std::os::raw::c_char, + pub enabled: bool, + pub enabled_by_default: bool, +} +#[test] +fn bindgen_test_layout_heur_dtbl_entry() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(heur_dtbl_entry)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(heur_dtbl_entry)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dissector) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(heur_dtbl_entry), + "::", + stringify!(dissector) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).protocol) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(heur_dtbl_entry), + "::", + stringify!(protocol) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).list_name) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(heur_dtbl_entry), + "::", + stringify!(list_name) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).display_name) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(heur_dtbl_entry), + "::", + stringify!(display_name) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).short_name) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(heur_dtbl_entry), + "::", + stringify!(short_name) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(heur_dtbl_entry), + "::", + stringify!(enabled) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).enabled_by_default) as usize - ptr as usize }, + 41usize, + concat!( + "Offset of field: ", + stringify!(heur_dtbl_entry), + "::", + stringify!(enabled_by_default) + ) + ); +} +pub type heur_dtbl_entry_t = heur_dtbl_entry; +extern "C" { + pub fn register_heur_dissector_list_with_description( + name: *const ::std::os::raw::c_char, + ui_name: *const ::std::os::raw::c_char, + proto: ::std::os::raw::c_int, + ) -> heur_dissector_list_t; +} +extern "C" { + pub fn heur_dissector_list_get_description( + list: heur_dissector_list_t, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn register_heur_dissector_list( + name: *const ::std::os::raw::c_char, + proto: ::std::os::raw::c_int, + ) -> heur_dissector_list_t; +} +extern "C" { + pub fn deregister_heur_dissector_list(name: *const ::std::os::raw::c_char); +} +pub type DATFunc_heur = ::std::option::Option< + unsafe extern "C" fn( + table_name: *const ::std::os::raw::c_char, + entry: *mut heur_dtbl_entry, + user_data: *mut ::std::os::raw::c_void, + ), +>; +pub type DATFunc_heur_table = ::std::option::Option< + unsafe extern "C" fn( + table_name: *const ::std::os::raw::c_char, + table: *mut heur_dissector_list, + user_data: *mut ::std::os::raw::c_void, + ), +>; +extern "C" { + pub fn heur_dissector_table_foreach( + table_name: *const ::std::os::raw::c_char, + func: DATFunc_heur, + user_data: *mut ::std::os::raw::c_void, + ); +} +extern "C" { + pub fn dissector_all_heur_tables_foreach_table( + func: DATFunc_heur_table, + user_data: *mut ::std::os::raw::c_void, + compare_key_func: GCompareFunc, + ); +} +extern "C" { + pub fn has_heur_dissector_list(name: *const ::std::os::raw::c_char) -> bool; +} +extern "C" { + pub fn dissector_try_heuristic( + sub_dissectors: heur_dissector_list_t, + tvb: *mut tvbuff_t, + pinfo: *mut packet_info, + tree: *mut proto_tree, + hdtbl_entry: *mut *mut heur_dtbl_entry_t, + data: *mut ::std::os::raw::c_void, + ) -> bool; +} +extern "C" { + pub fn find_heur_dissector_list(name: *const ::std::os::raw::c_char) -> heur_dissector_list_t; +} +extern "C" { + pub fn find_heur_dissector_by_unique_short_name( + short_name: *const ::std::os::raw::c_char, + ) -> *mut heur_dtbl_entry_t; +} +extern "C" { + pub fn heur_dissector_add( + name: *const ::std::os::raw::c_char, + dissector: heur_dissector_t, + display_name: *const ::std::os::raw::c_char, + internal_name: *const ::std::os::raw::c_char, + proto: ::std::os::raw::c_int, + enable: heuristic_enable_e, + ); +} +extern "C" { + pub fn heur_dissector_delete( + name: *const ::std::os::raw::c_char, + dissector: heur_dissector_t, + proto: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn register_dissector( + name: *const ::std::os::raw::c_char, + dissector: dissector_t, + proto: ::std::os::raw::c_int, + ) -> dissector_handle_t; +} +extern "C" { + pub fn register_dissector_with_description( + name: *const ::std::os::raw::c_char, + description: *const ::std::os::raw::c_char, + dissector: dissector_t, + proto: ::std::os::raw::c_int, + ) -> dissector_handle_t; +} +extern "C" { + pub fn register_dissector_with_data( + name: *const ::std::os::raw::c_char, + dissector: dissector_cb_t, + proto: ::std::os::raw::c_int, + cb_data: *mut ::std::os::raw::c_void, + ) -> dissector_handle_t; +} +extern "C" { + pub fn deregister_dissector(name: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn dissector_handle_get_protocol_long_name( + handle: dissector_handle_t, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn dissector_handle_get_protocol_short_name( + handle: dissector_handle_t, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn dissector_handle_get_short_name( + handle: dissector_handle_t, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn dissector_handle_get_description( + handle: dissector_handle_t, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn dissector_handle_get_protocol_index(handle: dissector_handle_t) + -> ::std::os::raw::c_int; +} +extern "C" { + pub fn get_dissector_names() -> *mut GList; +} +extern "C" { + pub fn find_dissector(name: *const ::std::os::raw::c_char) -> dissector_handle_t; +} +extern "C" { + pub fn find_dissector_add_dependency( + name: *const ::std::os::raw::c_char, + parent_proto: ::std::os::raw::c_int, + ) -> dissector_handle_t; +} +extern "C" { + pub fn dissector_handle_get_dissector_name( + handle: dissector_handle_t, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn dissector_handle_get_pref_suffix( + handle: dissector_handle_t, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn create_dissector_handle( + dissector: dissector_t, + proto: ::std::os::raw::c_int, + ) -> dissector_handle_t; +} +extern "C" { + pub fn create_dissector_handle_with_name( + dissector: dissector_t, + proto: ::std::os::raw::c_int, + name: *const ::std::os::raw::c_char, + ) -> dissector_handle_t; +} +extern "C" { + pub fn create_dissector_handle_with_name_and_description( + dissector: dissector_t, + proto: ::std::os::raw::c_int, + name: *const ::std::os::raw::c_char, + description: *const ::std::os::raw::c_char, + ) -> dissector_handle_t; +} +extern "C" { + pub fn create_dissector_handle_with_data( + dissector: dissector_cb_t, + proto: ::std::os::raw::c_int, + cb_data: *mut ::std::os::raw::c_void, + ) -> dissector_handle_t; +} +extern "C" { + pub fn dissector_dump_dissectors(); +} +extern "C" { + pub fn call_dissector_with_data( + handle: dissector_handle_t, + tvb: *mut tvbuff_t, + pinfo: *mut packet_info, + tree: *mut proto_tree, + data: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn call_dissector( + handle: dissector_handle_t, + tvb: *mut tvbuff_t, + pinfo: *mut packet_info, + tree: *mut proto_tree, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn call_data_dissector( + tvb: *mut tvbuff_t, + pinfo: *mut packet_info, + tree: *mut proto_tree, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn call_dissector_only( + handle: dissector_handle_t, + tvb: *mut tvbuff_t, + pinfo: *mut packet_info, + tree: *mut proto_tree, + data: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn call_heur_dissector_direct( + heur_dtbl_entry: *mut heur_dtbl_entry_t, + tvb: *mut tvbuff_t, + pinfo: *mut packet_info, + tree: *mut proto_tree, + data: *mut ::std::os::raw::c_void, + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct depend_dissector_list { + _unused: [u8; 0], +} +pub type depend_dissector_list_t = *mut depend_dissector_list; +extern "C" { + pub fn register_depend_dissector( + parent: *const ::std::os::raw::c_char, + dependent: *const ::std::os::raw::c_char, + ) -> bool; +} +extern "C" { + pub fn deregister_depend_dissector( + parent: *const ::std::os::raw::c_char, + dependent: *const ::std::os::raw::c_char, + ) -> bool; +} +extern "C" { + pub fn find_depend_dissector_list( + name: *const ::std::os::raw::c_char, + ) -> depend_dissector_list_t; +} +extern "C" { + pub fn dissect_init(); +} +extern "C" { + pub fn dissect_cleanup(); +} +extern "C" { + pub fn set_actual_length(tvb: *mut tvbuff_t, specified_len: ::std::os::raw::c_uint); +} +extern "C" { + pub fn register_init_routine(func: ::std::option::Option); +} +extern "C" { + pub fn register_cleanup_routine(func: ::std::option::Option); +} +extern "C" { + pub fn register_shutdown_routine(func: ::std::option::Option); +} +extern "C" { + pub fn init_dissection(); +} +extern "C" { + pub fn cleanup_dissection(); +} +extern "C" { + pub fn register_postseq_cleanup_routine(func: ::std::option::Option); +} +extern "C" { + pub fn postseq_cleanup_all_protocols(); +} +extern "C" { + pub fn register_final_registration_routine(func: ::std::option::Option); +} +extern "C" { + pub fn final_registration_all_protocols(); +} +extern "C" { + pub fn add_new_data_source( + pinfo: *mut packet_info, + tvb: *mut tvbuff_t, + name: *const ::std::os::raw::c_char, + ); +} +extern "C" { + pub fn remove_last_data_source(pinfo: *mut packet_info); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct data_source { + _unused: [u8; 0], +} +extern "C" { + pub fn get_data_source_name(src: *const data_source) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub fn get_data_source_tvb(src: *const data_source) -> *mut tvbuff_t; +} +extern "C" { + pub fn get_data_source_tvb_by_name( + pinfo: *mut packet_info, + name: *const ::std::os::raw::c_char, + ) -> *mut tvbuff_t; +} +extern "C" { + pub fn free_data_sources(pinfo: *mut packet_info); +} +extern "C" { + pub fn mark_frame_as_depended_upon(fd: *mut frame_data, frame_num: u32); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct frame_data_s { + pub file_type_subtype: ::std::os::raw::c_int, + pub pkt_block: wtap_block_t, + pub color_edt: *mut epan_dissect, +} +#[test] +fn bindgen_test_layout_frame_data_s() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(frame_data_s)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(frame_data_s)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).file_type_subtype) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(frame_data_s), + "::", + stringify!(file_type_subtype) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pkt_block) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(frame_data_s), + "::", + stringify!(pkt_block) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).color_edt) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(frame_data_s), + "::", + stringify!(color_edt) + ) + ); +} +pub type frame_data_t = frame_data_s; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_data_s { + pub pkt_block: wtap_block_t, + pub color_edt: *mut epan_dissect, +} +#[test] +fn bindgen_test_layout_file_data_s() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(file_data_s)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(file_data_s)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pkt_block) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(file_data_s), + "::", + stringify!(pkt_block) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).color_edt) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(file_data_s), + "::", + stringify!(color_edt) + ) + ); +} +pub type file_data_t = file_data_s; +extern "C" { + pub fn dissect_record( + edt: *mut epan_dissect, + file_type_subtype: ::std::os::raw::c_int, + rec: *mut wtap_rec, + tvb: *mut tvbuff_t, + fd: *mut frame_data, + cinfo: *mut column_info, + ); +} +extern "C" { + pub fn dissect_file( + edt: *mut epan_dissect, + rec: *mut wtap_rec, + tvb: *mut tvbuff_t, + fd: *mut frame_data, + cinfo: *mut column_info, + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethertype_data_s { + pub etype: u16, + pub payload_offset: ::std::os::raw::c_int, + pub fh_tree: *mut proto_tree, + pub trailer_id: ::std::os::raw::c_int, + pub fcs_len: ::std::os::raw::c_int, +} +#[test] +fn bindgen_test_layout_ethertype_data_s() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(ethertype_data_s)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ethertype_data_s)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).etype) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ethertype_data_s), + "::", + stringify!(etype) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).payload_offset) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ethertype_data_s), + "::", + stringify!(payload_offset) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).fh_tree) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ethertype_data_s), + "::", + stringify!(fh_tree) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).trailer_id) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(ethertype_data_s), + "::", + stringify!(trailer_id) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).fcs_len) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(ethertype_data_s), + "::", + stringify!(fcs_len) + ) + ); +} +pub type ethertype_data_t = ethertype_data_s; +extern "C" { + pub fn dissector_dump_decodes(); +} +extern "C" { + pub fn dissector_dump_heur_decodes(); +} +extern "C" { + pub fn register_postdissector(handle: dissector_handle_t); +} +extern "C" { + pub fn set_postdissector_wanted_hfids(handle: dissector_handle_t, wanted_hfids: *mut GArray); +} +extern "C" { + pub fn deregister_postdissector(handle: dissector_handle_t); +} +extern "C" { + pub fn have_postdissector() -> bool; +} +extern "C" { + pub fn call_all_postdissectors( + tvb: *mut tvbuff_t, + pinfo: *mut packet_info, + tree: *mut proto_tree, + ); +} +extern "C" { + pub fn postdissectors_want_hfids() -> bool; +} +extern "C" { + pub fn prime_epan_dissect_with_postdissector_wanted_hfids(edt: *mut epan_dissect_t); +} +extern "C" { + pub fn increment_dissection_depth(pinfo: *mut packet_info); +} +extern "C" { + pub fn decrement_dissection_depth(pinfo: *mut packet_info); +} +pub type build_label_func = ::std::option::Option< + unsafe extern "C" fn(pinfo: *mut packet_info, result: *mut ::std::os::raw::c_char), +>; +pub type build_valid_func = ::std::option::Option< + unsafe extern "C" fn(pinfo: *mut packet_info) -> *mut ::std::os::raw::c_void, +>; +pub type decode_as_add_to_list_func = ::std::option::Option< + unsafe extern "C" fn( + table_name: *const ::std::os::raw::c_char, + proto_name: *const ::std::os::raw::c_char, + value: *mut ::std::os::raw::c_void, + user_data: *mut ::std::os::raw::c_void, + ), +>; +pub type decode_as_populate_list_func = ::std::option::Option< + unsafe extern "C" fn( + table_name: *const ::std::os::raw::c_char, + add_to_list: decode_as_add_to_list_func, + ui_element: *mut ::std::os::raw::c_void, + ), +>; +pub type decode_as_free_func = + ::std::option::Option; +pub type decode_as_reset_func = ::std::option::Option< + unsafe extern "C" fn( + name: *const ::std::os::raw::c_char, + pattern: *const ::std::os::raw::c_void, + ) -> bool, +>; +pub type decode_as_change_func = ::std::option::Option< + unsafe extern "C" fn( + name: *const ::std::os::raw::c_char, + pattern: *const ::std::os::raw::c_void, + handle: *const ::std::os::raw::c_void, + list_name: *const ::std::os::raw::c_char, + ) -> bool, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct decode_as_value_s { + pub label_func: build_label_func, + pub num_values: ::std::os::raw::c_uint, + pub build_values: *mut build_valid_func, +} +#[test] +fn bindgen_test_layout_decode_as_value_s() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(decode_as_value_s)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(decode_as_value_s)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).label_func) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(decode_as_value_s), + "::", + stringify!(label_func) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).num_values) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(decode_as_value_s), + "::", + stringify!(num_values) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).build_values) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(decode_as_value_s), + "::", + stringify!(build_values) + ) + ); +} +pub type decode_as_value_t = decode_as_value_s; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct decode_as_s { + pub name: *const ::std::os::raw::c_char, + pub table_name: *const ::std::os::raw::c_char, + pub num_items: ::std::os::raw::c_uint, + pub default_index_value: ::std::os::raw::c_uint, + pub values: *mut decode_as_value_t, + pub pre_value_str: *const ::std::os::raw::c_char, + pub post_value_str: *const ::std::os::raw::c_char, + pub populate_list: decode_as_populate_list_func, + pub reset_value: decode_as_reset_func, + pub change_value: decode_as_change_func, + pub free_func: decode_as_free_func, +} +#[test] +fn bindgen_test_layout_decode_as_s() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 80usize, + concat!("Size of: ", stringify!(decode_as_s)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(decode_as_s)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(decode_as_s), + "::", + stringify!(name) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).table_name) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(decode_as_s), + "::", + stringify!(table_name) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).num_items) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(decode_as_s), + "::", + stringify!(num_items) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).default_index_value) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(decode_as_s), + "::", + stringify!(default_index_value) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).values) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(decode_as_s), + "::", + stringify!(values) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pre_value_str) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(decode_as_s), + "::", + stringify!(pre_value_str) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).post_value_str) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(decode_as_s), + "::", + stringify!(post_value_str) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).populate_list) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(decode_as_s), + "::", + stringify!(populate_list) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).reset_value) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(decode_as_s), + "::", + stringify!(reset_value) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).change_value) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(decode_as_s), + "::", + stringify!(change_value) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).free_func) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(decode_as_s), + "::", + stringify!(free_func) + ) + ); +} +pub type decode_as_t = decode_as_s; +extern "C" { + pub fn register_decode_as(reg: *mut decode_as_t); +} +extern "C" { + pub fn register_decode_as_next_proto( + proto: ::std::os::raw::c_int, + table_name: *const ::std::os::raw::c_char, + ui_name: *const ::std::os::raw::c_char, + label_func: build_label_func, + ) -> *mut dissector_table; +} +extern "C" { + pub fn decode_as_default_populate_list( + table_name: *const ::std::os::raw::c_char, + add_to_list: decode_as_add_to_list_func, + ui_element: *mut ::std::os::raw::c_void, + ); +} +extern "C" { + pub fn decode_as_default_reset( + name: *const ::std::os::raw::c_char, + pattern: *const ::std::os::raw::c_void, + ) -> bool; +} +extern "C" { + pub fn decode_as_default_change( + name: *const ::std::os::raw::c_char, + pattern: *const ::std::os::raw::c_void, + handle: *const ::std::os::raw::c_void, + list_name: *const ::std::os::raw::c_char, + ) -> bool; +} +extern "C" { + pub static mut decode_as_list: *mut GList; +} +extern "C" { + pub fn load_decode_as_entries(); +} +extern "C" { + pub fn save_decode_as_entries(err: *mut *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn decode_clear_all(); +} +extern "C" { + pub fn decode_cleanup(); +} +extern "C" { + pub fn decode_build_reset_list( + table_name: *const ::std::os::raw::c_char, + selector_type: ftenum_t, + key: *mut ::std::os::raw::c_void, + value: *mut ::std::os::raw::c_void, + user_data: *mut ::std::os::raw::c_void, + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct expert_info_s { + pub packet_num: u32, + pub group: ::std::os::raw::c_int, + pub severity: ::std::os::raw::c_int, + pub hf_index: ::std::os::raw::c_int, + pub protocol: *const ::std::os::raw::c_char, + pub summary: *mut ::std::os::raw::c_char, + pub pitem: *mut proto_item, +} +#[test] +fn bindgen_test_layout_expert_info_s() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(expert_info_s)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(expert_info_s)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).packet_num) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(expert_info_s), + "::", + stringify!(packet_num) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).group) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(expert_info_s), + "::", + stringify!(group) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).severity) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(expert_info_s), + "::", + stringify!(severity) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).hf_index) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(expert_info_s), + "::", + stringify!(hf_index) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).protocol) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(expert_info_s), + "::", + stringify!(protocol) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).summary) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(expert_info_s), + "::", + stringify!(summary) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pitem) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(expert_info_s), + "::", + stringify!(pitem) + ) + ); +} +pub type expert_info_t = expert_info_s; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct expert_field { + pub ei: ::std::os::raw::c_int, + pub hf: ::std::os::raw::c_int, +} +#[test] +fn bindgen_test_layout_expert_field() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(expert_field)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(expert_field)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ei) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(expert_field), + "::", + stringify!(ei) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).hf) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(expert_field), + "::", + stringify!(hf) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct expert_field_info { + pub name: *const ::std::os::raw::c_char, + pub group: ::std::os::raw::c_int, + pub severity: ::std::os::raw::c_int, + pub summary: *const ::std::os::raw::c_char, + pub id: ::std::os::raw::c_int, + pub protocol: *const ::std::os::raw::c_char, + pub orig_severity: ::std::os::raw::c_int, + pub hf_info: hf_register_info, +} +#[test] +fn bindgen_test_layout_expert_field_info() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 128usize, + concat!("Size of: ", stringify!(expert_field_info)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(expert_field_info)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(expert_field_info), + "::", + stringify!(name) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).group) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(expert_field_info), + "::", + stringify!(group) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).severity) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(expert_field_info), + "::", + stringify!(severity) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).summary) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(expert_field_info), + "::", + stringify!(summary) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(expert_field_info), + "::", + stringify!(id) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).protocol) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(expert_field_info), + "::", + stringify!(protocol) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).orig_severity) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(expert_field_info), + "::", + stringify!(orig_severity) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).hf_info) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(expert_field_info), + "::", + stringify!(hf_info) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ei_register_info { + pub ids: *mut expert_field, + pub eiinfo: expert_field_info, +} +#[test] +fn bindgen_test_layout_ei_register_info() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 136usize, + concat!("Size of: ", stringify!(ei_register_info)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ei_register_info)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ids) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ei_register_info), + "::", + stringify!(ids) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).eiinfo) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ei_register_info), + "::", + stringify!(eiinfo) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct expert_module { + _unused: [u8; 0], +} +pub type expert_module_t = expert_module; +extern "C" { + pub static mut proto_expert: ::std::os::raw::c_int; +} +extern "C" { + pub fn expert_init(); +} +extern "C" { + pub fn expert_packet_init(); +} +extern "C" { + pub fn expert_cleanup(); +} +extern "C" { + pub fn expert_packet_cleanup(); +} +extern "C" { + pub fn expert_get_highest_severity() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn expert_update_comment_count(count: u64); +} +extern "C" { + pub fn expert_add_info( + pinfo: *mut packet_info, + pi: *mut proto_item, + eiindex: *mut expert_field, + ) -> *mut proto_item; +} +extern "C" { + pub fn expert_add_info_format( + pinfo: *mut packet_info, + pi: *mut proto_item, + eiindex: *mut expert_field, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_expert( + tree: *mut proto_tree, + pinfo: *mut packet_info, + eiindex: *mut expert_field, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + ) -> *mut proto_item; +} +extern "C" { + pub fn proto_tree_add_expert_format( + tree: *mut proto_tree, + pinfo: *mut packet_info, + eiindex: *mut expert_field, + tvb: *mut tvbuff_t, + start: ::std::os::raw::c_int, + length: ::std::os::raw::c_int, + format: *const ::std::os::raw::c_char, + ... + ) -> *mut proto_item; +} +extern "C" { + pub fn expert_register_protocol(id: ::std::os::raw::c_int) -> *mut expert_module_t; +} +extern "C" { + pub fn expert_deregister_expertinfo(abbrev: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn expert_deregister_protocol(module: *mut expert_module_t); +} +extern "C" { + pub fn expert_free_deregistered_expertinfos(); +} +extern "C" { + pub fn expert_get_summary(eiindex: *mut expert_field) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn expert_register_field_array( + module: *mut expert_module_t, + ei: *mut ei_register_info, + num_records: ::std::os::raw::c_int, + ); +} +extern "C" { + pub static expert_group_vals: [value_string; 0usize]; +} +extern "C" { + pub static expert_severity_vals: [value_string; 0usize]; +} +extern "C" { + pub static expert_checksum_vals: [value_string; 0usize]; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _fragment_item { + pub next: *mut _fragment_item, + pub frame: u32, + pub offset: u32, + pub len: u32, + pub flags: u32, + pub tvb_data: *mut tvbuff_t, +} +#[test] +fn bindgen_test_layout__fragment_item() { + const UNINIT: ::std::mem::MaybeUninit<_fragment_item> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_fragment_item>(), + 32usize, + concat!("Size of: ", stringify!(_fragment_item)) + ); + assert_eq!( + ::std::mem::align_of::<_fragment_item>(), + 8usize, + concat!("Alignment of ", stringify!(_fragment_item)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_fragment_item), + "::", + stringify!(next) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).frame) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_fragment_item), + "::", + stringify!(frame) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(_fragment_item), + "::", + stringify!(offset) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_fragment_item), + "::", + stringify!(len) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(_fragment_item), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tvb_data) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_fragment_item), + "::", + stringify!(tvb_data) + ) + ); +} +pub type fragment_item = _fragment_item; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _fragment_head { + pub next: *mut _fragment_item, + pub first_gap: *mut _fragment_item, + pub ref_count: ::std::os::raw::c_uint, + pub contiguous_len: u32, + pub frame: u32, + pub len: u32, + pub fragment_nr_offset: u32, + pub datalen: u32, + pub reassembled_in: u32, + pub reas_in_layer_num: u8, + pub flags: u32, + pub tvb_data: *mut tvbuff_t, + pub error: *const ::std::os::raw::c_char, +} +#[test] +fn bindgen_test_layout__fragment_head() { + const UNINIT: ::std::mem::MaybeUninit<_fragment_head> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_fragment_head>(), + 72usize, + concat!("Size of: ", stringify!(_fragment_head)) + ); + assert_eq!( + ::std::mem::align_of::<_fragment_head>(), + 8usize, + concat!("Alignment of ", stringify!(_fragment_head)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_fragment_head), + "::", + stringify!(next) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).first_gap) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_fragment_head), + "::", + stringify!(first_gap) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ref_count) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_fragment_head), + "::", + stringify!(ref_count) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).contiguous_len) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(_fragment_head), + "::", + stringify!(contiguous_len) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).frame) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_fragment_head), + "::", + stringify!(frame) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(_fragment_head), + "::", + stringify!(len) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).fragment_nr_offset) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_fragment_head), + "::", + stringify!(fragment_nr_offset) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).datalen) as usize - ptr as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(_fragment_head), + "::", + stringify!(datalen) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).reassembled_in) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(_fragment_head), + "::", + stringify!(reassembled_in) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).reas_in_layer_num) as usize - ptr as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(_fragment_head), + "::", + stringify!(reas_in_layer_num) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(_fragment_head), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tvb_data) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(_fragment_head), + "::", + stringify!(tvb_data) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).error) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(_fragment_head), + "::", + stringify!(error) + ) + ); +} +pub type fragment_head = _fragment_head; +pub type fragment_temporary_key = ::std::option::Option< + unsafe extern "C" fn( + pinfo: *const packet_info, + id: u32, + data: *const ::std::os::raw::c_void, + ) -> *mut ::std::os::raw::c_void, +>; +pub type fragment_persistent_key = ::std::option::Option< + unsafe extern "C" fn( + pinfo: *const packet_info, + id: u32, + data: *const ::std::os::raw::c_void, + ) -> *mut ::std::os::raw::c_void, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct reassembly_table { + pub fragment_table: *mut GHashTable, + pub reassembled_table: *mut GHashTable, + pub temporary_key_func: fragment_temporary_key, + pub persistent_key_func: fragment_persistent_key, + pub free_temporary_key_func: GDestroyNotify, +} +#[test] +fn bindgen_test_layout_reassembly_table() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(reassembly_table)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(reassembly_table)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).fragment_table) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(reassembly_table), + "::", + stringify!(fragment_table) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).reassembled_table) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(reassembly_table), + "::", + stringify!(reassembled_table) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).temporary_key_func) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(reassembly_table), + "::", + stringify!(temporary_key_func) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).persistent_key_func) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(reassembly_table), + "::", + stringify!(persistent_key_func) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).free_temporary_key_func) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(reassembly_table), + "::", + stringify!(free_temporary_key_func) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct reassembly_table_functions { + pub hash_func: GHashFunc, + pub equal_func: GEqualFunc, + pub temporary_key_func: fragment_temporary_key, + pub persistent_key_func: fragment_persistent_key, + pub free_temporary_key_func: GDestroyNotify, + pub free_persistent_key_func: GDestroyNotify, +} +#[test] +fn bindgen_test_layout_reassembly_table_functions() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(reassembly_table_functions)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(reassembly_table_functions)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).hash_func) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(reassembly_table_functions), + "::", + stringify!(hash_func) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).equal_func) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(reassembly_table_functions), + "::", + stringify!(equal_func) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).temporary_key_func) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(reassembly_table_functions), + "::", + stringify!(temporary_key_func) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).persistent_key_func) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(reassembly_table_functions), + "::", + stringify!(persistent_key_func) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).free_temporary_key_func) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(reassembly_table_functions), + "::", + stringify!(free_temporary_key_func) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).free_persistent_key_func) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(reassembly_table_functions), + "::", + stringify!(free_persistent_key_func) + ) + ); +} +extern "C" { + pub static addresses_reassembly_table_functions: reassembly_table_functions; +} +extern "C" { + pub static addresses_ports_reassembly_table_functions: reassembly_table_functions; +} +extern "C" { + pub fn reassembly_table_register( + table: *mut reassembly_table, + funcs: *const reassembly_table_functions, + ); +} +extern "C" { + pub fn reassembly_table_init( + table: *mut reassembly_table, + funcs: *const reassembly_table_functions, + ); +} +extern "C" { + pub fn reassembly_table_destroy(table: *mut reassembly_table); +} +extern "C" { + pub fn fragment_add( + table: *mut reassembly_table, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + pinfo: *const packet_info, + id: u32, + data: *const ::std::os::raw::c_void, + frag_offset: u32, + frag_data_len: u32, + more_frags: bool, + ) -> *mut fragment_head; +} +extern "C" { + pub fn fragment_add_multiple_ok( + table: *mut reassembly_table, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + pinfo: *const packet_info, + id: u32, + data: *const ::std::os::raw::c_void, + frag_offset: u32, + frag_data_len: u32, + more_frags: bool, + ) -> *mut fragment_head; +} +extern "C" { + pub fn fragment_add_out_of_order( + table: *mut reassembly_table, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + pinfo: *const packet_info, + id: u32, + data: *const ::std::os::raw::c_void, + frag_offset: u32, + frag_data_len: u32, + more_frags: bool, + frag_frame: u32, + ) -> *mut fragment_head; +} +extern "C" { + pub fn fragment_add_check( + table: *mut reassembly_table, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + pinfo: *const packet_info, + id: u32, + data: *const ::std::os::raw::c_void, + frag_offset: u32, + frag_data_len: u32, + more_frags: bool, + ) -> *mut fragment_head; +} +extern "C" { + pub fn fragment_add_check_with_fallback( + table: *mut reassembly_table, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + pinfo: *const packet_info, + id: u32, + data: *const ::std::os::raw::c_void, + frag_offset: u32, + frag_data_len: u32, + more_frags: bool, + fallback_frame: u32, + ) -> *mut fragment_head; +} +extern "C" { + pub fn fragment_add_seq( + table: *mut reassembly_table, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + pinfo: *const packet_info, + id: u32, + data: *const ::std::os::raw::c_void, + frag_number: u32, + frag_data_len: u32, + more_frags: bool, + flags: u32, + ) -> *mut fragment_head; +} +extern "C" { + pub fn fragment_add_seq_check( + table: *mut reassembly_table, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + pinfo: *const packet_info, + id: u32, + data: *const ::std::os::raw::c_void, + frag_number: u32, + frag_data_len: u32, + more_frags: bool, + ) -> *mut fragment_head; +} +extern "C" { + pub fn fragment_add_seq_802_11( + table: *mut reassembly_table, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + pinfo: *const packet_info, + id: u32, + data: *const ::std::os::raw::c_void, + frag_number: u32, + frag_data_len: u32, + more_frags: bool, + ) -> *mut fragment_head; +} +extern "C" { + pub fn fragment_add_seq_next( + table: *mut reassembly_table, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + pinfo: *const packet_info, + id: u32, + data: *const ::std::os::raw::c_void, + frag_data_len: u32, + more_frags: bool, + ) -> *mut fragment_head; +} +extern "C" { + pub fn fragment_add_seq_single( + table: *mut reassembly_table, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + pinfo: *const packet_info, + id: u32, + data: *const ::std::os::raw::c_void, + frag_data_len: u32, + first: bool, + last: bool, + max_frags: u32, + ) -> *mut fragment_head; +} +extern "C" { + pub fn fragment_add_seq_single_aging( + table: *mut reassembly_table, + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + pinfo: *const packet_info, + id: u32, + data: *const ::std::os::raw::c_void, + frag_data_len: u32, + first: bool, + last: bool, + max_frags: u32, + max_age: u32, + ) -> *mut fragment_head; +} +extern "C" { + pub fn fragment_start_seq_check( + table: *mut reassembly_table, + pinfo: *const packet_info, + id: u32, + data: *const ::std::os::raw::c_void, + tot_len: u32, + ); +} +extern "C" { + pub fn fragment_end_seq_next( + table: *mut reassembly_table, + pinfo: *const packet_info, + id: u32, + data: *const ::std::os::raw::c_void, + ) -> *mut fragment_head; +} +extern "C" { + pub fn fragment_add_seq_offset( + table: *mut reassembly_table, + pinfo: *const packet_info, + id: u32, + data: *const ::std::os::raw::c_void, + fragment_offset: u32, + ); +} +extern "C" { + pub fn fragment_set_tot_len( + table: *mut reassembly_table, + pinfo: *const packet_info, + id: u32, + data: *const ::std::os::raw::c_void, + tot_len: u32, + ); +} +extern "C" { + pub fn fragment_reset_tot_len( + table: *mut reassembly_table, + pinfo: *const packet_info, + id: u32, + data: *const ::std::os::raw::c_void, + tot_len: u32, + ); +} +extern "C" { + pub fn fragment_truncate( + table: *mut reassembly_table, + pinfo: *const packet_info, + id: u32, + data: *const ::std::os::raw::c_void, + tot_len: u32, + ); +} +extern "C" { + pub fn fragment_get_tot_len( + table: *mut reassembly_table, + pinfo: *const packet_info, + id: u32, + data: *const ::std::os::raw::c_void, + ) -> u32; +} +extern "C" { + pub fn fragment_set_partial_reassembly( + table: *mut reassembly_table, + pinfo: *const packet_info, + id: u32, + data: *const ::std::os::raw::c_void, + ); +} +extern "C" { + pub fn fragment_get( + table: *mut reassembly_table, + pinfo: *const packet_info, + id: u32, + data: *const ::std::os::raw::c_void, + ) -> *mut fragment_head; +} +extern "C" { + pub fn fragment_get_reassembled_id( + table: *mut reassembly_table, + pinfo: *const packet_info, + id: u32, + ) -> *mut fragment_head; +} +extern "C" { + pub fn fragment_delete( + table: *mut reassembly_table, + pinfo: *const packet_info, + id: u32, + data: *const ::std::os::raw::c_void, + ) -> *mut tvbuff_t; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _fragment_items { + pub ett_fragment: *mut ::std::os::raw::c_int, + pub ett_fragments: *mut ::std::os::raw::c_int, + pub hf_fragments: *mut ::std::os::raw::c_int, + pub hf_fragment: *mut ::std::os::raw::c_int, + pub hf_fragment_overlap: *mut ::std::os::raw::c_int, + pub hf_fragment_overlap_conflict: *mut ::std::os::raw::c_int, + pub hf_fragment_multiple_tails: *mut ::std::os::raw::c_int, + pub hf_fragment_too_long_fragment: *mut ::std::os::raw::c_int, + pub hf_fragment_error: *mut ::std::os::raw::c_int, + pub hf_fragment_count: *mut ::std::os::raw::c_int, + pub hf_reassembled_in: *mut ::std::os::raw::c_int, + pub hf_reassembled_length: *mut ::std::os::raw::c_int, + pub hf_reassembled_data: *mut ::std::os::raw::c_int, + pub tag: *const ::std::os::raw::c_char, +} +#[test] +fn bindgen_test_layout__fragment_items() { + const UNINIT: ::std::mem::MaybeUninit<_fragment_items> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_fragment_items>(), + 112usize, + concat!("Size of: ", stringify!(_fragment_items)) + ); + assert_eq!( + ::std::mem::align_of::<_fragment_items>(), + 8usize, + concat!("Alignment of ", stringify!(_fragment_items)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ett_fragment) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_fragment_items), + "::", + stringify!(ett_fragment) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ett_fragments) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_fragment_items), + "::", + stringify!(ett_fragments) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).hf_fragments) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_fragment_items), + "::", + stringify!(hf_fragments) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).hf_fragment) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_fragment_items), + "::", + stringify!(hf_fragment) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).hf_fragment_overlap) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_fragment_items), + "::", + stringify!(hf_fragment_overlap) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).hf_fragment_overlap_conflict) as usize - ptr as usize + }, + 40usize, + concat!( + "Offset of field: ", + stringify!(_fragment_items), + "::", + stringify!(hf_fragment_overlap_conflict) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).hf_fragment_multiple_tails) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(_fragment_items), + "::", + stringify!(hf_fragment_multiple_tails) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).hf_fragment_too_long_fragment) as usize - ptr as usize + }, + 56usize, + concat!( + "Offset of field: ", + stringify!(_fragment_items), + "::", + stringify!(hf_fragment_too_long_fragment) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).hf_fragment_error) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(_fragment_items), + "::", + stringify!(hf_fragment_error) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).hf_fragment_count) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(_fragment_items), + "::", + stringify!(hf_fragment_count) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).hf_reassembled_in) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(_fragment_items), + "::", + stringify!(hf_reassembled_in) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).hf_reassembled_length) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(_fragment_items), + "::", + stringify!(hf_reassembled_length) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).hf_reassembled_data) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(_fragment_items), + "::", + stringify!(hf_reassembled_data) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(_fragment_items), + "::", + stringify!(tag) + ) + ); +} +pub type fragment_items = _fragment_items; +extern "C" { + pub fn process_reassembled_data( + tvb: *mut tvbuff_t, + offset: ::std::os::raw::c_int, + pinfo: *mut packet_info, + name: *const ::std::os::raw::c_char, + fd_head: *mut fragment_head, + fit: *const fragment_items, + update_col_infop: *mut bool, + tree: *mut proto_tree, + ) -> *mut tvbuff_t; +} +extern "C" { + pub fn show_fragment_tree( + ipfd_head: *mut fragment_head, + fit: *const fragment_items, + tree: *mut proto_tree, + pinfo: *mut packet_info, + tvb: *mut tvbuff_t, + fi: *mut *mut proto_item, + ) -> bool; +} +extern "C" { + pub fn show_fragment_seq_tree( + ipfd_head: *mut fragment_head, + fit: *const fragment_items, + tree: *mut proto_tree, + pinfo: *mut packet_info, + tvb: *mut tvbuff_t, + fi: *mut *mut proto_item, + ) -> bool; +} +extern "C" { + pub fn reassembly_tables_init(); +} +extern "C" { + pub fn reassembly_table_cleanup(); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct streaming_reassembly_info_t { + _unused: [u8; 0], +} +extern "C" { + pub fn streaming_reassembly_info_new() -> *mut streaming_reassembly_info_t; +} +extern "C" { + pub fn reassemble_streaming_data_and_call_subdissector( + tvb: *mut tvbuff_t, + pinfo: *mut packet_info, + offset: ::std::os::raw::c_uint, + length: ::std::os::raw::c_int, + segment_tree: *mut proto_tree, + reassembled_tree: *mut proto_tree, + streaming_reassembly_table: reassembly_table, + reassembly_info: *mut streaming_reassembly_info_t, + cur_frame_num: u64, + subdissector_handle: dissector_handle_t, + subdissector_tree: *mut proto_tree, + subdissector_data: *mut ::std::os::raw::c_void, + label: *const ::std::os::raw::c_char, + frag_hf_items: *const fragment_items, + hf_segment_data: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn additional_bytes_expected_to_complete_reassembly( + reassembly_info: *mut streaming_reassembly_info_t, + ) -> ::std::os::raw::c_int; +} +pub type __builtin_va_list = *mut ::std::os::raw::c_char; +pub type __uint128_t = u128; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct conversation_addr_port_endpoints { + pub _address: u8, +} diff --git a/epan-sys/build.rs b/epan-sys/build.rs index 24667a4..6612541 100644 --- a/epan-sys/build.rs +++ b/epan-sys/build.rs @@ -1,60 +1,724 @@ #[cfg(feature = "bindgen")] extern crate bindgen; +use cargo_metadata::MetadataCommand; use std::env; -use std::path::PathBuf; +use std::path::{Path, PathBuf}; +#[cfg(any(feature = "source-build", feature = "bindgen"))] use std::process::Command; +#[derive(Debug)] +struct WiresharkConfig { + lib_dir: PathBuf, + include_dir: PathBuf, + version: String, + lib_name: String, // libwireshark vs libwireshark.18 + major_version: Option, + #[allow(dead_code)] // Reserved for future version checking + minor_version: Option, +} + +#[derive(Debug, Default)] +struct MetadataConfig { + verbose_build: bool, + generate_soname: bool, + fix_rpaths: bool, + wireshark_lib_dir: Option, + wireshark_include_dir: Option, + fix_app_bundle_rpaths: bool, + preferred_version: Option, +} + +#[allow(dead_code)] // Error types reserved for future enhanced error handling +#[derive(Debug)] +enum BuildError { + LibraryNotFound, + IncompatibleVersion { found: String, required: String }, + UnsupportedPlatform(String), + MissingDevelopmentHeaders, + ConfigurationError(String), + SmokeTestFailed(String), + MetadataError(String), +} + fn main() { // If we are in docs.rs, there is no need to actually link. if std::env::var("DOCS_RS").is_ok() { return; } - let bindings_path = PathBuf::from(env::var("CARGO_MANIFEST_DIR").unwrap()).join("bindings.rs"); + // Load metadata configuration + let metadata_config = load_metadata_config().unwrap_or_else(|e| { + if env::var("CARGO_FEATURE_VERBOSE").is_ok() { + println!("cargo:warning=Failed to load metadata config: {:?}", e); + } + MetadataConfig::default() + }); - // Generate fresh bindings when this crate is used for the first time - if !bindings_path.exists() || cfg!(feature = "bindgen") { - generate_bindings(); + if metadata_config.verbose_build { + println!("cargo:warning=Using metadata config: {:?}", metadata_config); } - // By turning this features on, users will be able to regenerate their binding.rs + // Regenerate version-specific bindings when the bindgen feature is enabled. + // In normal builds the committed bindings_44.rs / bindings_46.rs are used directly. #[cfg(feature = "bindgen")] generate_bindings(); - link_wireshark(); + let config = find_wireshark_config(&metadata_config).unwrap_or_else(|e| handle_build_error(e)); + + configure_linking(&config, &metadata_config); + configure_soname_if_cdylib(&metadata_config); } -fn link_wireshark() { - if pkg_config::probe_library("wireshark").is_ok() { - // pkg-config will handle everything for us - return; +fn load_metadata_config() -> Result { + let metadata = MetadataCommand::new() + .exec() + .map_err(|e| BuildError::MetadataError(format!("Failed to get cargo metadata: {}", e)))?; + + let package = metadata + .root_package() + .ok_or_else(|| BuildError::MetadataError("No root package found".to_string()))?; + + let mut config = MetadataConfig::default(); + + if let Some(wsdf_metadata) = package.metadata.get("wsdf") { + if let Some(verbose) = wsdf_metadata.get("verbose_build") { + config.verbose_build = verbose.as_bool().unwrap_or(false); + } + if let Some(soname) = wsdf_metadata.get("generate_soname") { + config.generate_soname = soname.as_bool().unwrap_or(false); + } + if let Some(rpaths) = wsdf_metadata.get("fix_rpaths") { + config.fix_rpaths = rpaths.as_bool().unwrap_or(false); + } + if let Some(lib_dir) = wsdf_metadata.get("wireshark_lib_dir") { + if let Some(path_str) = lib_dir.as_str() { + config.wireshark_lib_dir = Some(PathBuf::from(path_str)); + } + } + if let Some(inc_dir) = wsdf_metadata.get("wireshark_include_dir") { + if let Some(path_str) = inc_dir.as_str() { + config.wireshark_include_dir = Some(PathBuf::from(path_str)); + } + } + if let Some(fix_app) = wsdf_metadata.get("fix_app_bundle_rpaths") { + config.fix_app_bundle_rpaths = fix_app.as_bool().unwrap_or(false); + } + if let Some(version) = wsdf_metadata.get("preferred_version") { + config.preferred_version = version.as_str().map(String::from); + } + + // Check for target-specific configuration + let target = env::var("TARGET").unwrap_or_else(|_| "unknown".to_string()); + if let Some(target_config) = wsdf_metadata.get(format!("target.{}", target)) { + if let Some(lib_dir) = target_config.get("wireshark_lib_dir") { + if let Some(path_str) = lib_dir.as_str() { + config.wireshark_lib_dir = Some(PathBuf::from(path_str)); + } + } + if let Some(version) = target_config.get("preferred_version") { + config.preferred_version = version.as_str().map(String::from); + } + } + } + + Ok(config) +} + +fn find_wireshark_config(metadata_config: &MetadataConfig) -> Result { + let result = try_metadata_config(metadata_config) + .or_else(|_| try_environment_config()) + .or_else(|_| try_pkg_config()) + .or_else(|_| try_platform_detection(metadata_config)) + .or_else(|_| try_smoke_test()); + + // Source build clones ~200 MB and takes several minutes. Opt-in only. + #[cfg(feature = "source-build")] + let result = result.or_else(|_| fallback_source_build()); + + result +} + +fn try_metadata_config(metadata_config: &MetadataConfig) -> Result { + if let (Some(lib_dir), Some(inc_dir)) = ( + &metadata_config.wireshark_lib_dir, + &metadata_config.wireshark_include_dir, + ) { + if let Some(mut config) = probe_wireshark_installation(lib_dir, inc_dir) { + // Apply preferred version if specified + if let Some(preferred_version) = &metadata_config.preferred_version { + config.version = preferred_version.clone(); + config.lib_name = format!("wireshark.{}", preferred_version); + if let Ok(version) = preferred_version.parse::() { + config.major_version = Some(version); + } + } + return Ok(config); + } + } else if let Some(lib_dir) = &metadata_config.wireshark_lib_dir { + // Try to infer include dir from lib dir + let possible_inc_dirs = vec![ + lib_dir.parent().unwrap_or(lib_dir).join("include"), + lib_dir + .parent() + .unwrap_or(lib_dir) + .join("include/wireshark"), + PathBuf::from("/usr/include/wireshark"), + PathBuf::from("/usr/local/include/wireshark"), + ]; + + for inc_dir in possible_inc_dirs { + if let Some(mut config) = probe_wireshark_installation(lib_dir, &inc_dir) { + if let Some(preferred_version) = &metadata_config.preferred_version { + config.version = preferred_version.clone(); + config.lib_name = format!("wireshark.{}", preferred_version); + if let Ok(version) = preferred_version.parse::() { + config.major_version = Some(version); + } + } + return Ok(config); + } + } + } + + Err(BuildError::LibraryNotFound) +} + +fn try_environment_config() -> Result { + if let (Ok(lib_dir), Ok(include_dir)) = ( + env::var("WIRESHARK_LIB_DIR"), + env::var("WIRESHARK_INCLUDE_DIR"), + ) { + let lib_path = PathBuf::from(&lib_dir); + let inc_path = PathBuf::from(&include_dir); + + if let Some(config) = probe_wireshark_installation(&lib_path, &inc_path) { + return Ok(config); + } + } + + Err(BuildError::LibraryNotFound) +} + +fn try_pkg_config() -> Result { + if let Ok(lib) = pkg_config::probe_library("wireshark") { + let lib_dir = lib + .link_paths + .first() + .ok_or(BuildError::ConfigurationError( + "No lib paths from pkg-config".to_string(), + ))?; + let include_dir = lib + .include_paths + .first() + .ok_or(BuildError::ConfigurationError( + "No include paths from pkg-config".to_string(), + ))?; + + println!( + "cargo:warning=Found Wireshark via pkg-config at {}", + lib_dir.display() + ); + return Ok(WiresharkConfig { + lib_dir: lib_dir.clone(), + include_dir: include_dir.clone(), + version: "unknown".to_string(), + lib_name: "wireshark".to_string(), + major_version: None, + minor_version: None, + }); } - println!("cargo:rustc-link-lib=dylib=wireshark"); + Err(BuildError::LibraryNotFound) +} + +fn try_platform_detection(metadata_config: &MetadataConfig) -> Result { + match std::env::consts::OS { + "macos" => detect_macos_wireshark(metadata_config), + "linux" => detect_linux_wireshark(metadata_config), + "windows" => detect_windows_wireshark(metadata_config), + os => Err(BuildError::UnsupportedPlatform(os.to_string())), + } +} + +fn try_smoke_test() -> Result { + // Compile src/smoke.c against standard include paths using the cc crate. + // try_compile produces an object file only — no linking, no binary execution. + // This makes it safe for cross-compilation and avoids needing libwireshark + // in the linker search path at this stage. + let compiled = cc::Build::new() + .file("src/smoke.c") + .try_compile("smoke_wireshark") + .is_ok(); - if let Ok(libws_dir) = env::var("WIRESHARK_LIB_DIR") { - println!("cargo:rustc-link-search=native={}", libws_dir); + if compiled { + infer_from_system_paths() } else { - // We'll have to pull wireshark in and build it... - println!("cargo:warning=libwireshark was not found, will be built from source"); + Err(BuildError::SmokeTestFailed( + "Wireshark headers not found in standard include paths".to_string(), + )) + } +} + +fn infer_from_system_paths() -> Result { + let system_lib_paths = vec!["/usr/lib", "/usr/local/lib", "/opt/local/lib"]; + + let system_inc_paths = vec!["/usr/include", "/usr/local/include", "/opt/local/include"]; + + for lib_path in system_lib_paths { + for inc_path in &system_inc_paths { + let lib_dir = PathBuf::from(lib_path); + let inc_dir = PathBuf::from(inc_path); + + if let Some(config) = probe_wireshark_installation(&lib_dir, &inc_dir) { + return Ok(config); + } + } + } + + Err(BuildError::LibraryNotFound) +} + +fn detect_macos_wireshark( + _metadata_config: &MetadataConfig, +) -> Result { + let search_configs = vec![ + ( + "/Applications/Wireshark.app/Contents/Frameworks", + "/Applications/Wireshark.app/Contents/Resources/include", + ), + ("/opt/homebrew/lib", "/opt/homebrew/include"), + ("/usr/local/lib", "/usr/local/include"), + ("/opt/local/lib", "/opt/local/include"), + ]; - clone_wireshark_or_die(); - let dst = build_wireshark(); + for (lib_path, inc_path) in search_configs { + let lib_dir = PathBuf::from(lib_path); + let inc_dir = PathBuf::from(inc_path); - let mut dylib_dir = dst; - dylib_dir.push("lib"); + if let Some(config) = probe_wireshark_installation(&lib_dir, &inc_dir) { + println!( + "cargo:warning=Found Wireshark {} at {} (lib: {})", + config.version, + config.lib_dir.display(), + config.lib_name + ); + return Ok(config); + } + } + + Err(BuildError::LibraryNotFound) +} + +fn detect_linux_wireshark( + _metadata_config: &MetadataConfig, +) -> Result { + // TODO: Potentially look into CSP standard/ pkg-config standards & paramaterise + let arch = std::env::consts::ARCH; + let search_configs = vec![ + ( + format!("/usr/lib/{}-linux-gnu", arch), + "/usr/include".to_string(), + ), + ("/usr/lib64".to_string(), "/usr/include".to_string()), + ("/usr/lib".to_string(), "/usr/include".to_string()), + ( + "/usr/local/lib".to_string(), + "/usr/local/include".to_string(), + ), + ]; + + for (lib_path, inc_path) in search_configs { + let lib_dir = PathBuf::from(&lib_path); + let inc_dir = PathBuf::from(&inc_path); + + if let Some(config) = probe_wireshark_installation(&lib_dir, &inc_dir) { + println!( + "cargo:warning=Found Wireshark {} at {} (lib: {})", + config.version, + config.lib_dir.display(), + config.lib_name + ); + return Ok(config); + } + } + + Err(BuildError::LibraryNotFound) +} + +fn detect_windows_wireshark( + _metadata_config: &MetadataConfig, +) -> Result { + // TODO: Should test this in CI, currently just going off what Google says + let search_configs = vec![( + "C:\\Program Files\\Wireshark", + "C:\\Program Files\\Wireshark\\include", + )]; + for (lib_path, inc_path) in search_configs { + let lib_dir = PathBuf::from(lib_path); + let inc_dir = PathBuf::from(inc_path); + + if let Some(config) = probe_wireshark_installation(&lib_dir, &inc_dir) { + println!( + "cargo:warning=Found Wireshark {} at {} (lib: {})", + config.version, + config.lib_dir.display(), + config.lib_name + ); + return Ok(config); + } + } + + Err(BuildError::LibraryNotFound) +} + +fn probe_wireshark_installation(lib_dir: &PathBuf, inc_dir: &Path) -> Option { + if let Some(versioned) = find_versioned_library(lib_dir) { + return Some(versioned); + } + + let extensions = match std::env::consts::OS { + "macos" => vec!["dylib"], + "windows" => vec!["lib", "dll"], + _ => vec!["so"], + }; + + for ext in extensions { + let lib_file = lib_dir.join(format!("libwireshark.{}", ext)); + if lib_file.exists() { + return Some(WiresharkConfig { + lib_dir: lib_dir.clone(), + include_dir: inc_dir.to_path_buf(), + version: "unknown".to_string(), + lib_name: "wireshark".to_string(), + major_version: None, + minor_version: None, + }); + } + } + + None +} + +fn find_versioned_library(lib_dir: &PathBuf) -> Option { + // Look for versioned libraries like libwireshark.18.dylib + if let Ok(entries) = std::fs::read_dir(lib_dir) { + for entry in entries.flatten() { + let filename = entry.file_name(); + let name = filename.to_string_lossy(); + + // Match patterns like libwireshark.18.dylib or libwireshark.so.18 + if name.starts_with("libwireshark.") + && (name.contains(".dylib") || name.contains(".so")) + { + // Extract version number + if let Some(version) = extract_version_from_filename(&name) { + let lib_name = if name.contains(".dylib") { + format!("wireshark.{}", version) + } else { + "wireshark".to_string() // Linux uses soname differently + }; + + let major_version = version.parse::().ok(); + let minor_version = None; // Could be enhanced to parse minor versions + + return Some(WiresharkConfig { + lib_dir: lib_dir.clone(), + include_dir: lib_dir.clone(), // May need adjustment + version: version.clone(), + lib_name, + major_version, + minor_version, + }); + } + } + } + } + None +} + +fn extract_version_from_filename(filename: &str) -> Option { + // Extract version from libwireshark.18.dylib or similar + if let Some(after_wireshark) = filename.strip_prefix("libwireshark.") { + if let Some(before_ext) = after_wireshark.split('.').next() { + if before_ext.chars().all(|c| c.is_ascii_digit()) { + return Some(before_ext.to_string()); + } + } + } + None +} + +#[cfg(feature = "source-build")] +fn fallback_source_build() -> Result { + println!("cargo:warning=libwireshark was not found, will be built from source"); + + clone_wireshark_or_die(); + let dst = build_wireshark(); + + let lib_dir = dst.join("lib"); + let include_dir = dst.join("include").join("wireshark"); + + Ok(WiresharkConfig { + lib_dir, + include_dir, + version: "source".to_string(), + lib_name: "wireshark".to_string(), + major_version: None, + minor_version: None, + }) +} + +fn configure_linking(config: &WiresharkConfig, metadata_config: &MetadataConfig) { + if metadata_config.verbose_build { + println!( + "cargo:warning=Linking with Wireshark library: {}", + config.lib_name + ); println!( - "cargo:rustc-link-search=native={}", - dylib_dir.to_string_lossy() + "cargo:warning=Library directory: {}", + config.lib_dir.display() ); + println!( + "cargo:warning=Include directory: {}", + config.include_dir.display() + ); + println!("cargo:warning=Version: {}", config.version); + } + + println!("cargo:rustc-link-lib=dylib={}", config.lib_name); + println!( + "cargo:rustc-link-search=native={}", + config.lib_dir.display() + ); + + // Discover wsutil/wiretap by scanning the library directory for versioned + // filenames (e.g. libwsutil.16.dylib on macOS). Simpler than Mach-O parsing + // and works on all platforms. + let deps = scan_wireshark_dependencies(&config.lib_dir); + if deps.is_empty() { + fallback_dependency_linking(config); + } else { + for dep in &deps { + println!("cargo:warning=Linking dependency: {}", dep); + println!("cargo:rustc-link-lib=dylib={}", dep); + } + } + + // For macOS, set rpath + if std::env::consts::OS == "macos" && metadata_config.fix_rpaths { + println!( + "cargo:rustc-link-arg=-Wl,-rpath,{}", + config.lib_dir.display() + ); + if metadata_config.verbose_build { + println!( + "cargo:warning=Added rpath for macOS: {}", + config.lib_dir.display() + ); + } + } else if std::env::consts::OS == "macos" + && config.lib_dir.to_string_lossy().contains("Wireshark.app") + { + // Default behavior for Wireshark.app bundles + println!( + "cargo:rustc-link-arg=-Wl,-rpath,{}", + config.lib_dir.display() + ); + } + + // Emit version cfg flags so dependent crates (and epan-sys/lib.rs itself) can + // select the right bindings file. The flags are additive: a 4.6 build emits + // both wireshark4 and wireshark46. Pattern mirrors openssl-sys. + emit_version_cfg(&config.include_dir); + + // Set metadata for potential post-build processing + println!("cargo:rustc-env=WSDF_WIRESHARK_VERSION={}", config.version); + println!("cargo:rustc-env=WSDF_LIB_DIR={}", config.lib_dir.display()); +} + +fn emit_version_cfg(include_dir: &Path) { + // Tell rustc these are valid cfg names so it doesn't warn downstream. + println!("cargo::rustc-check-cfg=cfg(wireshark4)"); + println!("cargo::rustc-check-cfg=cfg(wireshark44)"); + println!("cargo::rustc-check-cfg=cfg(wireshark46)"); + + let (major, minor) = read_ws_version(include_dir).unwrap_or((4, 4)); + + // wireshark4 — true for any 4.x build + println!("cargo:rustc-cfg=wireshark{}", major); + // wireshark44 / wireshark46 — exact minor match used for bindings selection + println!("cargo:rustc-cfg=wireshark{}{}", major, minor); + + println!( + "cargo:warning=Wireshark version cfg: wireshark{} + wireshark{}{}", + major, major, minor + ); +} + +fn read_ws_version(include_dir: &Path) -> Option<(u32, u32)> { + // ws_version.h may live directly in include_dir or in a wireshark/ subdirectory. + let candidates = [ + include_dir.join("ws_version.h"), + include_dir.join("wireshark/ws_version.h"), + ]; + let content = candidates + .iter() + .find_map(|p| std::fs::read_to_string(p).ok())?; + + let mut major: Option = None; + let mut minor: Option = None; + for line in content.lines() { + if major.is_none() { + if let Some(rest) = line.strip_prefix("#define WIRESHARK_VERSION_MAJOR ") { + major = rest.trim().parse().ok(); + } + } + if minor.is_none() { + if let Some(rest) = line.strip_prefix("#define WIRESHARK_VERSION_MINOR ") { + minor = rest.trim().parse().ok(); + } + } + if major.is_some() && minor.is_some() { + break; + } + } + Some((major?, minor?)) +} + +fn scan_wireshark_dependencies(lib_dir: &PathBuf) -> Vec { + ["wsutil", "wiretap"] + .iter() + .filter_map(|base| find_dep_lib_name(lib_dir, base)) + .collect() +} + +fn find_dep_lib_name(lib_dir: &PathBuf, base: &str) -> Option { + let prefix = format!("lib{}.", base); + let entries = std::fs::read_dir(lib_dir).ok()?; + for entry in entries.flatten() { + let filename = entry.file_name(); + let name = filename.to_string_lossy(); + if !name.starts_with(&prefix) { + continue; + } + // macOS: libwsutil.16.dylib → "wsutil.16" + if let Some(inner) = name + .strip_prefix(&prefix) + .and_then(|s| s.strip_suffix(".dylib")) + { + if inner.chars().all(|c| c.is_ascii_digit()) { + return Some(format!("{}.{}", base, inner)); + } + } + // Linux: libwsutil.so or libwsutil.so.N → "wsutil" + if name.contains(".so") { + return Some(base.to_string()); + } + } + None +} + +fn fallback_dependency_linking(config: &WiresharkConfig) { + if config.lib_dir.to_string_lossy().contains("Wireshark.app") { + // Known versions for Wireshark.app bundle + println!("cargo:rustc-link-lib=dylib=wsutil.16"); + println!("cargo:rustc-link-lib=dylib=wiretap.15"); + } else { + // Generic names for system installations + println!("cargo:rustc-link-lib=dylib=wsutil"); + println!("cargo:rustc-link-lib=dylib=wiretap"); + } +} + +fn configure_soname_if_cdylib(metadata_config: &MetadataConfig) { + // epan-sys's build script cannot detect whether the downstream plugin crate + // is a cdylib — Cargo does not expose the consumer's crate type to a + // dependency's build script. Soname generation is therefore opt-in: set + // `generate_soname = true` in `[package.metadata.wsdf]` of the plugin's + // own Cargo.toml to enable it. + if !metadata_config.generate_soname { + return; + } + let version = env::var("CARGO_PKG_VERSION").unwrap_or_default(); + if let Ok(semver_version) = semver::Version::parse(&version) { + generate_soname_args(&semver_version); + if metadata_config.verbose_build { + println!("cargo:warning=Generated soname for version {}", version); + } + } +} + +fn generate_soname_args(version: &semver::Version) { + let pkg_name = env::var("CARGO_PKG_NAME").unwrap_or_default(); + + match std::env::consts::OS { + "linux" | "freebsd" | "dragonfly" | "netbsd" => { + if version.major >= 1 { + println!( + "cargo:rustc-cdylib-link-arg=-Wl,-soname,lib{}.so.{}", + pkg_name, version.major + ); + } else { + println!("cargo:rustc-cdylib-link-arg=-Wl,-soname,lib{}.so", pkg_name); + } + } + "macos" | "ios" => { + println!( + "cargo:rustc-cdylib-link-arg=-Wl,-install_name,@rpath/lib{}.dylib", + pkg_name + ); + } + _ => {} + } +} + +fn handle_build_error(error: BuildError) -> ! { + match error { + BuildError::LibraryNotFound => { + eprintln!("ERROR: Wireshark library not found"); + eprintln!("SOLUTIONS:"); + print_platform_specific_install_instructions(); + eprintln!("MANUAL CONFIGURATION:"); + eprintln!(" export WIRESHARK_LIB_DIR=/path/to/wireshark/lib"); + eprintln!(" export WIRESHARK_INCLUDE_DIR=/path/to/wireshark/include"); + } + BuildError::UnsupportedPlatform(platform) => { + eprintln!("ERROR: Unsupported platform: {}", platform); + eprintln!("SUPPORTED: macOS, Linux, Windows"); + eprintln!("WORKAROUND: Set manual library paths via environment variables"); + } + _ => eprintln!("BUILD ERROR: {:?}", error), + } + + std::process::exit(1); +} + +// TODO: Research on common platform specific help messages +fn print_platform_specific_install_instructions() { + match std::env::consts::OS { + "macos" => { + eprintln!(" macOS:"); + eprintln!(" brew install wireshark"); + eprintln!(" # OR download from https://www.wireshark.org/download.html"); + } + "linux" => { + eprintln!(" Ubuntu/Debian:"); + eprintln!(" sudo apt install wireshark-dev"); + eprintln!(" Fedora/RHEL:"); + eprintln!(" sudo dnf install wireshark-devel"); + eprintln!(" Arch:"); + eprintln!(" sudo pacman -S wireshark-cli"); + } + _ => {} } } #[cfg(not(feature = "bindgen"))] +#[allow(dead_code)] fn generate_bindings() { - panic!("Initial build requires --features bindgen. Please run: cargo build --features bindgen"); + panic!("Regenerating bindings requires --features bindgen: cargo build --features bindgen"); } #[cfg(feature = "bindgen")] @@ -93,12 +757,25 @@ fn generate_bindings() { .generate() .expect("should be able to generate bindings from wrapper.h"); + // Detect the version from the generated bindings to name the output file. + // Fall back to "44" if the constants aren't findable (safe default). + let bindings_str = bindings.to_string(); + let minor = bindings_str + .lines() + .find(|l| l.contains("WIRESHARK_VERSION_MINOR")) + .and_then(|l| l.split('=').nth(1)) + .and_then(|s| s.trim().trim_end_matches(';').parse::().ok()) + .unwrap_or(4); + let filename = format!("bindings_4{}.rs", minor); + let out_path = PathBuf::from(env::var("CARGO_MANIFEST_DIR").unwrap()); bindings - .write_to_file(out_path.join("bindings.rs")) - .expect("generated bindings should be written to file"); + .write_to_file(out_path.join(&filename)) + .unwrap_or_else(|e| panic!("failed to write {}: {}", filename, e)); + println!("cargo:warning=Wrote {}", filename); } +#[cfg(any(feature = "source-build", feature = "bindgen"))] fn clone_wireshark_or_die() { Command::new("git") .args(["submodule", "update", "--init", "--recursive", "wireshark"]) @@ -106,6 +783,7 @@ fn clone_wireshark_or_die() { .expect("wireshark should be obtained as a git submodule"); } +#[cfg(any(feature = "source-build", feature = "bindgen"))] fn build_wireshark() -> PathBuf { let result = std::panic::catch_unwind(|| { let dst = cmake::Config::new("wireshark") diff --git a/epan-sys/post_build.rs b/epan-sys/post_build.rs new file mode 100644 index 0000000..bfd7d50 --- /dev/null +++ b/epan-sys/post_build.rs @@ -0,0 +1,423 @@ +#!/usr/bin/env cargo + +//! Post-build processing script for wsdf plugins +//! +//! This script handles platform-specific post-build tasks like: +//! - macOS: Fix rpath references for Wireshark.app bundles +//! - Linux: Verify soname is set correctly +//! - All platforms: Plugin directory installation +//! +//! Usage: cargo run --bin post_build -- [options] + +use std::env; +use std::fs; +use std::path::{Path, PathBuf}; +use std::process::Command; + +const WIRESHARK_APP_FRAMEWORKS: &str = "/Applications/Wireshark.app/Contents/Frameworks"; + +#[derive(Debug)] +struct PostBuildConfig { + plugin_path: PathBuf, + verbose: bool, + install_plugin: bool, + fix_rpaths: bool, + target_dir: Option, + wireshark_version: Option, +} + +fn main() { + let args: Vec = env::args().collect(); + + if args.len() < 2 { + eprintln!( + "Usage: {} [--verbose] [--install] [--no-rpath-fix] [--target-dir ]", + args[0] + ); + std::process::exit(1); + } + + let mut config = PostBuildConfig { + plugin_path: PathBuf::from(&args[1]), + verbose: false, + install_plugin: false, + fix_rpaths: true, + target_dir: None, + wireshark_version: None, + }; + + // Parse additional arguments + for (i, arg) in args.iter().enumerate().skip(2) { + match arg.as_str() { + "--verbose" => config.verbose = true, + "--install" => config.install_plugin = true, + "--no-rpath-fix" => config.fix_rpaths = false, + "--target-dir" if i + 1 < args.len() => { + config.target_dir = Some(PathBuf::from(&args[i + 1])); + } + "--wireshark-version" if i + 1 < args.len() => { + config.wireshark_version = Some(args[i + 1].clone()); + } + _ => {} + } + } + + if config.verbose { + println!("Post-build config: {:?}", config); + } + + if let Err(e) = process_plugin(&config) { + eprintln!("Post-build processing failed: {:?}", e); + std::process::exit(1); + } +} + +fn process_plugin(config: &PostBuildConfig) -> Result<(), Box> { + if !config.plugin_path.exists() { + return Err(format!("Plugin file not found: {}", config.plugin_path.display()).into()); + } + + let final_path = match std::env::consts::OS { + "macos" => process_macos_plugin(config)?, + "linux" => { + process_linux_plugin(config)?; + config.plugin_path.clone() + } + "windows" => { + process_windows_plugin(config)?; + config.plugin_path.clone() + } + os => { + if config.verbose { + println!("No platform-specific processing for: {}", os); + } + config.plugin_path.clone() + } + }; + + if config.install_plugin { + install_plugin(config, &final_path)?; + } + + Ok(()) +} + +fn process_macos_plugin(config: &PostBuildConfig) -> Result> { + if !config.fix_rpaths { + return Ok(config.plugin_path.clone()); + } + + if config.verbose { + println!("Processing macOS plugin: {}", config.plugin_path.display()); + } + + // Check current library dependencies + let output = Command::new("otool") + .arg("-L") + .arg(&config.plugin_path) + .output()?; + + if !output.status.success() { + return Err("Failed to run otool".into()); + } + + let deps_output = String::from_utf8_lossy(&output.stdout); + if config.verbose { + println!("Current dependencies:\n{}", deps_output); + } + + // Look for Wireshark dependencies that need rpath fixing + let deps: Vec<&str> = deps_output + .lines() + .filter_map(|line| { + let trimmed = line.trim(); + if trimmed.contains("libwireshark") + || trimmed.contains("libwsutil") + || trimmed.contains("libwiretap") + { + Some(trimmed.split_whitespace().next().unwrap_or("")) + } else { + None + } + }) + .collect(); + + // Get reference paths from system Wireshark + let tshark_output = Command::new("otool") + .arg("-L") + .arg("/Applications/Wireshark.app/Contents/MacOS/tshark") + .output(); + + if let Ok(tshark_result) = tshark_output { + let tshark_deps = String::from_utf8_lossy(&tshark_result.stdout); + + for dep in deps { + if dep.is_empty() { + continue; + } + + let lib_name = Path::new(dep) + .file_name() + .and_then(|s| s.to_str()) + .unwrap_or(""); + + // Find corresponding @rpath reference in tshark + if let Some(rpath_ref) = tshark_deps + .lines() + .find(|line| line.contains(&format!("@rpath/{}", lib_name))) + .and_then(|line| line.split_whitespace().next()) + { + // Skip if already in the correct @rpath form — install_name_tool + // still writes the binary even for a no-op change, which fails + // when there is no headerpad space. + if dep == rpath_ref { + if config.verbose { + println!("Already correct: {}", dep); + } + continue; + } + + if config.verbose { + println!("Fixing {} -> {}", dep, rpath_ref); + } + + let status = Command::new("install_name_tool") + .arg("-change") + .arg(dep) + .arg(rpath_ref) + .arg(&config.plugin_path) + .status()?; + + if !status.success() { + eprintln!("Warning: Failed to fix rpath for {}", dep); + } + } + } + } + + // Add an LC_RPATH entry so the dynamic linker can resolve @rpath references. + // Without this, the -change steps above embed @rpath/... references that + // can never be resolved (the plugin has no rpath of its own). + let rpath = WIRESHARK_APP_FRAMEWORKS; + let rpath_status = Command::new("install_name_tool") + .args(["-add_rpath", rpath]) + .arg(&config.plugin_path) + .status()?; + // -add_rpath exits non-zero if the rpath already exists; treat as warning. + if !rpath_status.success() && config.verbose { + println!("Note: rpath {} may already be present", rpath); + } + + // Re-sign after install_name_tool modifications. On Apple Silicon with the + // hardened runtime any modification to a Mach-O binary invalidates its + // signature and causes dlopen to silently reject the plugin. + // Ad-hoc signing (-) requires only the system codesign binary. + let sign_status = Command::new("codesign") + .args(["--force", "--sign", "-"]) + .arg(&config.plugin_path) + .status()?; + if !sign_status.success() { + return Err("codesign failed — plugin signature is invalid".into()); + } + if config.verbose { + println!("Re-signed plugin after install_name_tool modifications"); + } + + // If plugin is .dylib, rename to .so for Wireshark compatibility + if config.plugin_path.extension().and_then(|s| s.to_str()) == Some("dylib") { + let mut new_path = config.plugin_path.clone(); + new_path.set_extension("so"); + + fs::rename(&config.plugin_path, &new_path)?; + + if config.verbose { + println!( + "Renamed {} to {}", + config.plugin_path.display(), + new_path.display() + ); + } + return Ok(new_path); + } + + Ok(config.plugin_path.clone()) +} + +fn process_linux_plugin(config: &PostBuildConfig) -> Result<(), Box> { + if config.verbose { + println!("Processing Linux plugin: {}", config.plugin_path.display()); + } + + // Check if soname is set correctly + let output = Command::new("readelf") + .arg("-d") + .arg(&config.plugin_path) + .output()?; + + if output.status.success() { + let elf_info = String::from_utf8_lossy(&output.stdout); + if config.verbose { + println!("ELF dynamic section:\n{}", elf_info); + } + + if !elf_info.contains("SONAME") && config.verbose { + println!("Warning: No SONAME found in plugin"); + } + } + + Ok(()) +} + +fn process_windows_plugin(config: &PostBuildConfig) -> Result<(), Box> { + if config.verbose { + println!( + "Processing Windows plugin: {}", + config.plugin_path.display() + ); + } + + // TODO: Implement Windows-specific post-processing + // - DLL search path configuration + // - Registry-based Wireshark detection + + Ok(()) +} + +fn detect_wireshark_version() -> Option { + let output = Command::new("tshark").arg("--version").output().ok()?; + let text = String::from_utf8_lossy(&output.stdout); + for line in text.lines() { + if let Some(rest) = line.strip_prefix("TShark (Wireshark) ") { + let ver = rest.split_whitespace().next()?; + let mut parts = ver.splitn(3, '.'); + let major = parts.next()?; + let minor = parts.next()?; + return Some(format!("{}.{}", major, minor)); + } + } + None +} + +// On macOS, Wireshark uses hyphens in the version directory name to prevent +// Apple's codesign machinery from treating it as a bundle (Wireshark CMakeLists.txt:1684). +// On Linux and Windows, dots are used. +fn plugin_path_id(version: &str) -> String { + #[cfg(target_os = "macos")] + return version.replace('.', "-"); + #[cfg(not(target_os = "macos"))] + return version.to_string(); +} + +fn install_plugin(config: &PostBuildConfig, path: &Path) -> Result<(), Box> { + let version = config + .wireshark_version + .clone() + .or_else(detect_wireshark_version) + .unwrap_or_else(|| "4.4".to_string()); + let plugin_dir = get_wireshark_plugin_dir(&version)?; + + if !plugin_dir.exists() { + fs::create_dir_all(&plugin_dir)?; + if config.verbose { + println!("Created plugin directory: {}", plugin_dir.display()); + } + } + + let plugin_name = path.file_name().ok_or("Invalid plugin path")?; + + let target_path = plugin_dir.join(plugin_name); + + fs::copy(path, &target_path)?; + + if config.verbose { + println!( + "Installed plugin: {} -> {}", + path.display(), + target_path.display() + ); + } + + Ok(()) +} + +fn get_wireshark_plugin_dir(version: &str) -> Result> { + let path_id = plugin_path_id(version); + + // Windows personal plugin dir: %APPDATA%\Wireshark\plugins\{path_id}\epan + // All other platforms: $HOME/.local/lib/wireshark/plugins/{path_id}/epan + // Source: wsutil/filesystem.c init_plugin_pers_dir() + #[cfg(target_os = "windows")] + { + let appdata = env::var("APPDATA")?; + return Ok(PathBuf::from(appdata) + .join("Wireshark") + .join("plugins") + .join(&path_id) + .join("epan")); + } + + #[cfg(not(target_os = "windows"))] + { + let home = env::var("HOME")?; + Ok(PathBuf::from(home) + .join(".local/lib/wireshark/plugins") + .join(&path_id) + .join("epan")) + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_plugin_dir_detection() { + let path = get_wireshark_plugin_dir("4.4").unwrap(); + assert!(path.to_string_lossy().contains("wireshark")); + assert!(path.ends_with("epan")); + #[cfg(target_os = "macos")] + assert!( + path.to_string_lossy().contains("4-4"), + "macOS must use hyphens, got: {}", + path.display() + ); + #[cfg(not(any(target_os = "macos", target_os = "windows")))] + assert!( + path.to_string_lossy().contains("4.4"), + "Linux must use dots, got: {}", + path.display() + ); + } + + #[test] + fn test_process_plugin_missing_file_errors() { + let config = PostBuildConfig { + plugin_path: PathBuf::from("/nonexistent/plugin.so"), + verbose: false, + install_plugin: false, + fix_rpaths: false, + target_dir: None, + wireshark_version: None, + }; + let result = process_plugin(&config); + assert!(result.is_err()); + let msg = result.unwrap_err().to_string(); + assert!( + msg.contains("Plugin file not found"), + "unexpected error: {}", + msg + ); + } + + /// Canary for the Wireshark.app frameworks rpath injected on macOS. + /// If the constant changes, this test fails and forces deliberate sign-off + /// rather than a silent load failure on Apple Silicon. + #[test] + #[cfg(target_os = "macos")] + fn test_macos_rpath_constant() { + assert_eq!( + WIRESHARK_APP_FRAMEWORKS, "/Applications/Wireshark.app/Contents/Frameworks", + "rpath constant changed — verify the new path before approving" + ); + } +} diff --git a/epan-sys/src/lib.rs b/epan-sys/src/lib.rs index 82e146d..ae54876 100644 --- a/epan-sys/src/lib.rs +++ b/epan-sys/src/lib.rs @@ -7,4 +7,7 @@ #![allow(improper_ctypes)] #![allow(clippy::all)] -include!(concat!(env!("CARGO_MANIFEST_DIR"), "/bindings.rs")); +#[cfg(wireshark44)] +include!(concat!(env!("CARGO_MANIFEST_DIR"), "/bindings_44.rs")); +#[cfg(wireshark46)] +include!(concat!(env!("CARGO_MANIFEST_DIR"), "/bindings_46.rs")); diff --git a/epan-sys/src/smoke.c b/epan-sys/src/smoke.c new file mode 100644 index 0000000..d82e41e --- /dev/null +++ b/epan-sys/src/smoke.c @@ -0,0 +1,14 @@ +#include + +/* + * Compile-only smoke test for Wireshark header availability. + * + * Referencing epan_get_version verifies: + * 1. is findable in the standard include path + * 2. epan_get_version is declared (catches mismatched/stale header versions) + * + * This translation unit is compiled to an object file by cc::Build::try_compile + * and never linked or executed — safe for cross-compilation targets. + */ +typedef const char *(*epan_version_fn_t)(void); +static epan_version_fn_t _smoke_check = epan_get_version; diff --git a/epan-sys/wireshark b/epan-sys/wireshark index 575b2bf..2e231b8 160000 --- a/epan-sys/wireshark +++ b/epan-sys/wireshark @@ -1 +1 @@ -Subproject commit 575b2bf4746e29e35a99e50fbec0de9fcaa1155a +Subproject commit 2e231b8d9926750a68f69a0ed5f80af3cacfe9c3 diff --git a/tests/integration_test.rs b/tests/integration_test.rs new file mode 100644 index 0000000..1f9b4b2 --- /dev/null +++ b/tests/integration_test.rs @@ -0,0 +1,401 @@ +use std::fs; +use std::path::PathBuf; +use std::process::Command; + +// ── shared helpers ──────────────────────────────────────────────────────────── + +fn workspace_root() -> PathBuf { + PathBuf::from(env!("CARGO_MANIFEST_DIR")) + .parent() + .expect("CARGO_MANIFEST_DIR has no parent") + .to_path_buf() +} + +/// Build the builder example and install it via post_build so tshark can find it. +/// Idempotent — safe to call from multiple tests. +fn ensure_builder_plugin_installed() { + let root = workspace_root(); + + let build = Command::new("cargo") + .args(["build", "--example", "builder"]) + .status() + .expect("failed to run cargo build"); + assert!(build.success(), "cargo build --example builder failed"); + + // post_build handles platform-specific processing (.dylib→.so rename, rpath, codesign) + // and copies the result into the personal Wireshark plugin directory. + let post_build_bin = root.join("target/debug/post_build"); + + // Find the raw built artifact before post_build renames it. + let raw_plugin = [ + root.join("target/debug/examples/libbuilder.dylib"), + root.join("target/debug/examples/libbuilder.so"), + root.join("target/debug/examples/builder.dll"), + ] + .into_iter() + .find(|p| p.exists()) + .expect("plugin artifact not found after build"); + + let status = Command::new(&post_build_bin) + .args([raw_plugin.to_str().unwrap(), "--install"]) + .status() + .unwrap_or_else(|_| panic!("failed to run {}", post_build_bin.display())); + assert!(status.success(), "post_build --install failed"); +} + +/// Returns the running tshark's major.minor as (u32, u32), or None if tshark is absent. +fn tshark_version() -> Option<(u32, u32)> { + let out = Command::new("tshark").arg("--version").output().ok()?; + let text = String::from_utf8_lossy(&out.stdout); + // "TShark (Wireshark) 4.4.1 ..." + let ver = text.lines().next()?.split_whitespace().nth(2)?; + let mut parts = ver.splitn(3, '.'); + let major: u32 = parts.next()?.parse().ok()?; + let minor: u32 = parts.next()?.parse().ok()?; + Some((major, minor)) +} + +/// Wrap `payload_bytes` in an Ethernet+IP frame (proto=17, no UDP header) using +/// text2pcap, then dissect with tshark and return the `wsdf_example` JSON layer. +/// +/// The builder example registers on `ip.proto == 17`, so it receives the raw IP +/// payload — our bytes — directly, with no UDP header in between. +fn dissect_bytes(payload_bytes: &[u8]) -> serde_json::Value { + let tmp = std::env::temp_dir(); + let hex_file = tmp.join("wsdf_test_input.txt"); + let pcap_file = tmp.join("wsdf_test.pcap"); + + let hex_line = format!( + "000000 {}\n", + payload_bytes + .iter() + .map(|b| format!("{b:02x}")) + .collect::>() + .join(" ") + ); + std::fs::write(&hex_file, &hex_line).expect("failed to write hex file"); + + let t2p = Command::new("text2pcap") + .args([ + "-i", + "17", + hex_file.to_str().unwrap(), + pcap_file.to_str().unwrap(), + ]) + .status() + .expect("text2pcap not found — install Wireshark"); + assert!(t2p.success(), "text2pcap failed"); + + let mut tshark = Command::new("tshark"); + tshark.args([ + "-r", + pcap_file.to_str().unwrap(), + "-T", + "json", + "-J", + "wsdf_example", + ]); + #[cfg(target_os = "macos")] + tshark.env( + "DYLD_LIBRARY_PATH", + "/Applications/Wireshark.app/Contents/Frameworks", + ); + + let out = tshark + .output() + .expect("tshark not found — install Wireshark"); + assert!( + out.status.success(), + "tshark failed: {}", + String::from_utf8_lossy(&out.stderr) + ); + + let packets: serde_json::Value = serde_json::from_str(&String::from_utf8_lossy(&out.stdout)) + .expect("tshark output is not valid JSON"); + + packets[0]["_source"]["layers"]["wsdf_example"].clone() +} + +/// Integration tests for wsdf plugin generation and tshark compatibility +/// These tests build example plugins and verify they can be loaded by Wireshark/tshark + +#[test] +fn test_plugin_builds_successfully() { + // Build the example plugin + let output = Command::new("cargo") + .args(["build", "--example", "builder"]) + .output() + .expect("Failed to run cargo build"); + + assert!( + output.status.success(), + "Plugin build failed: {}", + String::from_utf8_lossy(&output.stderr) + ); + + // Check that the plugin file was created + // Determine the workspace root (integration tests run from wsdf/ subdirectory) + let workspace_root = PathBuf::from(env!("CARGO_MANIFEST_DIR")) + .parent() + .expect("Failed to get workspace root") + .to_path_buf(); + + let plugin_paths = [ + workspace_root.join("target/debug/examples/libbuilder.so"), + workspace_root.join("target/debug/examples/libbuilder.dylib"), + workspace_root.join("target/debug/examples/builder.dll"), + ]; + + let plugin_exists = plugin_paths.iter().any(|path| path.exists()); + + assert!( + plugin_exists, + "No plugin file found in expected locations: {:?}", + plugin_paths + ); +} + +#[test] +fn test_plugin_file_properties() { + // First ensure the plugin is built + test_plugin_builds_successfully(); + + // Find the built plugin + let workspace_root = PathBuf::from(env!("CARGO_MANIFEST_DIR")) + .parent() + .expect("Failed to get workspace root") + .to_path_buf(); + + let plugin_paths = [ + workspace_root.join("target/debug/examples/libbuilder.so"), + workspace_root.join("target/debug/examples/libbuilder.dylib"), + ]; + + let plugin_path = plugin_paths + .iter() + .find(|path| path.exists()) + .expect("No plugin file found") + .to_str() + .expect("Invalid path"); + + // Check file properties using system tools + match std::env::consts::OS { + "macos" => { + // Use otool to check library dependencies on macOS + let output = Command::new("otool") + .args(["-L", plugin_path]) + .output() + .expect("Failed to run otool"); + + assert!( + output.status.success(), + "otool failed: {}", + String::from_utf8_lossy(&output.stderr) + ); + + let deps = String::from_utf8_lossy(&output.stdout); + // Should have references to Wireshark libraries + assert!( + deps.contains("libwireshark") || deps.contains("wireshark"), + "Plugin doesn't link to Wireshark libraries" + ); + } + "linux" => { + // Use ldd to check shared library dependencies on Linux + let output = Command::new("ldd") + .arg(plugin_path) + .output() + .expect("Failed to run ldd"); + + if output.status.success() { + let deps = String::from_utf8_lossy(&output.stdout); + // Should have references to Wireshark libraries + assert!( + deps.contains("libwireshark") || deps.contains("wireshark"), + "Plugin doesn't link to Wireshark libraries" + ); + } + // Note: ldd might fail if libraries aren't found, which is OK for this test + } + _ => { + // For other platforms, just check the file exists and is not is_empty + // TODO: Improve this in future + let metadata = fs::metadata(plugin_path).expect("Failed to get file metadata"); + assert!(metadata.len() > 0, "Plugin file is empty"); + } + } +} + +#[test] +fn test_tshark_plugin_listing() { + // This test checks if tshark can list plugins without crashing + // It doesn't require our plugin to be properly loaded since it's just an example + + let output = Command::new("tshark").args(["-G", "plugins"]).output(); + + match output { + Ok(result) => { + if result.status.success() { + let plugins_output = String::from_utf8_lossy(&result.stdout); + // Just verify tshark can list plugins without error + // Our plugin may not appear here since it's a basic example + assert!( + plugins_output.contains("plugins") || !plugins_output.is_empty(), + "tshark -G plugins produced no output" + ); + } else { + // tshark might not be available or configured, which is OK + eprintln!( + "tshark not available or failed: {}", + String::from_utf8_lossy(&result.stderr) + ); + } + } + Err(_) => { + // tshark not available, skip this test + eprintln!("tshark not available, skipping plugin listing test"); + } + } +} + +#[test] +fn test_build_system_environment() { + // Test that our build system correctly sets up the environment + + // Check that Wireshark libraries can be found + let output = Command::new("pkg-config") + .args(["--exists", "wireshark"]) + .output(); + + if let Ok(result) = output { + if result.status.success() { + // pkg-config found wireshark, verify version info + let version_output = Command::new("pkg-config") + .args(["--modversion", "wireshark"]) + .output() + .expect("Failed to get Wireshark version"); + + if version_output.status.success() { + let version = String::from_utf8_lossy(&version_output.stdout); + assert!(!version.trim().is_empty(), "Wireshark version is empty"); + eprintln!("Found Wireshark version: {}", version.trim()); + } + } else { + eprintln!("pkg-config wireshark not found, build system should handle this"); + } + } +} + +#[test] +fn test_cargo_metadata_support() { + // Test that our metadata configuration system works + let output = Command::new("cargo") + .args(["metadata", "--format-version", "1"]) + .output() + .expect("Failed to run cargo metadata"); + + assert!( + output.status.success(), + "cargo metadata failed: {}", + String::from_utf8_lossy(&output.stderr) + ); + + let metadata = String::from_utf8_lossy(&output.stdout); + // Verify our workspace structure is correct + assert!( + metadata.contains("epan-sys"), + "epan-sys not found in metadata" + ); + assert!(metadata.contains("wsdf"), "wsdf not found in metadata"); +} + +#[cfg(target_os = "macos")] +#[test] +fn test_macos_plugin_postprocessing() { + use std::fs::copy; + + // Build plugin first + test_plugin_builds_successfully(); + + let workspace_root = PathBuf::from(env!("CARGO_MANIFEST_DIR")) + .parent() + .expect("Failed to get workspace root") + .to_path_buf(); + + let plugin_path = workspace_root.join("target/debug/examples/libbuilder.dylib"); + if !plugin_path.exists() { + eprintln!("Plugin not found, skipping macOS post-processing test"); + return; + } + + // Create a temporary copy for testing post-processing + let temp_plugin = workspace_root.join("target/debug/examples/test_libbuilder.dylib"); + copy(&plugin_path, &temp_plugin).expect("Failed to copy plugin for testing"); + + // Test the post-processing script functionality + // Note: We don't run the actual post-processing script here to avoid modifying build artifacts + + // Check initial state + let output = Command::new("otool") + .args(["-L", temp_plugin.to_str().unwrap()]) + .output() + .expect("Failed to run otool"); + + assert!(output.status.success(), "otool failed"); + + let deps = String::from_utf8_lossy(&output.stdout); + + // Verify we can detect Wireshark dependencies + let has_wireshark_deps = deps.lines().any(|line| { + line.contains("libwireshark") || line.contains("libwsutil") || line.contains("libwiretap") + }); + + if has_wireshark_deps { + eprintln!("Found Wireshark dependencies in plugin (good)"); + } else { + eprintln!("No Wireshark dependencies found (may be expected for basic example)"); + } + + // Clean up + let _ = fs::remove_file(&temp_plugin); +} + +/// Dissect an uncompressed builder packet and assert every field decodes correctly. +/// +/// Packet layout (10 bytes, ip.proto=17 payload): +/// [0] field1 = 0x01 → decimal "1" +/// [1..2] field2 = 0x0002 → hex "0x0002" +/// [3] comp_flag = 0x00 (MSB=0 → uncompressed path) +/// [4..5] orig_size = 0x000a = 10 +/// [6..9] raw_data = 11 22 33 44 +/// +/// Requires tshark 4.4.x — the plugin_want_major/minor baked into the plugin by +/// bindings.rs must match the running tshark exactly. The test is skipped (not +/// failed) when the installed tshark is a different version. +#[test] +fn test_dissection_uncompressed_packet() { + match tshark_version() { + Some((4, 4)) => {} + Some((maj, min)) => { + eprintln!( + "skipping dissection test: requires tshark 4.4, found {}.{}", + maj, min + ); + return; + } + None => { + eprintln!("skipping dissection test: tshark not found"); + return; + } + } + + ensure_builder_plugin_installed(); + + let wsdf = dissect_bytes(&[0x01, 0x00, 0x02, 0x00, 0x00, 0x0a, 0x11, 0x22, 0x33, 0x44]); + + assert_eq!(wsdf["wsdf.header_field"]["wsdf.field1"], "1"); + assert_eq!(wsdf["wsdf.header_field"]["wsdf.field2"], "0x0002"); + assert_eq!(wsdf["wsdf.payload_field"]["wsdf.comp_flag"], "0x00"); + assert_eq!(wsdf["wsdf.payload_field"]["wsdf.orig_size"], "10"); + assert_eq!(wsdf["wsdf.raw"], "11:22:33:44"); +} diff --git a/wsdf/Cargo.toml b/wsdf/Cargo.toml index 617bf0e..cef21c2 100644 --- a/wsdf/Cargo.toml +++ b/wsdf/Cargo.toml @@ -2,6 +2,7 @@ name = "wsdf" version = "0.1.3" edition = "2021" +rust-version = "1.85" autotests = false license = "MIT OR Apache-2.0" description = "Proc-macro based Wireshark Dissector Framework" @@ -17,14 +18,15 @@ categories = ["network-programming"] [dev-dependencies] trybuild = { version = "1.0", features = ["diff"] } macrotest = "1" +serde_json = "1" [dependencies] epan-sys = { path = "../epan-sys", version = "0.2.0" } thiserror = "1.0" -# [[test]] -# name = "unit" -# path = "tests/unit/mod.rs" +[[test]] +name = "integration_test" +path = "../tests/integration_test.rs" # [[example]] # name = "udp" diff --git a/wsdf/build.rs b/wsdf/build.rs new file mode 100644 index 0000000..54893da --- /dev/null +++ b/wsdf/build.rs @@ -0,0 +1,49 @@ +use std::env; +use std::path::PathBuf; + +fn main() { + // Only propagate rpath for macOS where Wireshark.app bundles need it + if std::env::consts::OS == "macos" { + // Try to get the Wireshark library directory from epan-sys metadata + // or use default locations + if let Ok(wireshark_lib_dir) = env::var("WIRESHARK_LIB_DIR") { + add_rpath(&wireshark_lib_dir); + } else if let Ok(ws_lib_dir) = env::var("WSDF_LIB_DIR") { + add_rpath(&ws_lib_dir); + } else { + // Default locations for Wireshark on macOS + let default_locations = vec![ + "/Applications/Wireshark.app/Contents/Frameworks", + "/opt/homebrew/lib", + "/usr/local/lib", + ]; + + for location in default_locations { + let path = PathBuf::from(location); + if path.exists() + && (path.join("libwireshark.dylib").exists() + || path + .read_dir() + .ok() + .and_then(|entries| { + entries.filter_map(Result::ok).find(|e| { + e.file_name().to_string_lossy().starts_with("libwireshark.") + }) + }) + .is_some()) + { + add_rpath(location); + break; + } + } + } + } +} + +fn add_rpath(path: &str) { + println!("cargo:rustc-link-arg=-Wl,-rpath,{}", path); + println!( + "cargo:warning=Added rpath for Wireshark libraries: {}", + path + ); +} diff --git a/wsdf/src/lib.rs b/wsdf/src/lib.rs index 05ed05e..b874f7b 100644 --- a/wsdf/src/lib.rs +++ b/wsdf/src/lib.rs @@ -16,8 +16,12 @@ //! //! ## Quick Start Guide //! -//! ```rust -//! use wsdf::{plugin, ProtocolBuilder, Dissector, FieldBuilder, FieldType, Encoding}; +//! ```rust,no_run +//! use wsdf::wireshark::{ +//! ProtocolBuilder, Dissector, FieldBuilder, FieldType, Encoding, +//! Protocol, RegistrationError, ExpertGroup, ExpertSeverity, Plugin +//! }; +//! use wsdf::plugin; //! //! // Define your protocol fields //! fn build_protocol() -> Result { @@ -38,9 +42,9 @@ //! ExpertSeverity::Error, //! "Malformed packet" //! ) -//! .dissector(Dissector::new(|tree| { +//! .dissector(Dissector::new(|tree, tvb| { //! // Dissection logic here -//! 0 +//! Ok(0) //! })) //! .build() //! } @@ -55,7 +59,7 @@ //! //! WSDF uses a layered architecture: //! -//! ``` +//! ```text //! +-------------------+ //! | User Code | //! +-------------------+ @@ -79,4 +83,3 @@ pub use epan_sys; pub mod wireshark; - diff --git a/wsdf/src/wireshark/dissector.rs b/wsdf/src/wireshark/dissector.rs index 505c836..df9e65c 100644 --- a/wsdf/src/wireshark/dissector.rs +++ b/wsdf/src/wireshark/dissector.rs @@ -9,7 +9,8 @@ use std::ffi::{c_char, c_int}; /// /// # Example /// -/// ```rust +/// ```rust,no_run +/// use wsdf::wireshark::Dissector; /// let dissector = Dissector::new(|tree, tvb| { /// // Create ranges for data access. Analogous to Lua API tvb(offset, length) /// // Reference: wslua_tvb.c Tvb_range() @@ -28,8 +29,10 @@ use std::ffi::{c_char, c_int}; /// Ok(tvb.reported_length()) // Return consumed bytes /// }); /// ``` +type DissectorFn = Box Result>>; + pub struct Dissector { - inner: Box Result>>, + inner: DissectorFn, } impl Dissector { @@ -58,12 +61,7 @@ impl Dissector { let tree_result = Tree::new(protocol, pinfo, proto_tree, tvb, 0); match tree_result { - Ok((mut tree, tvb_wrapper)) => { - match (self.inner)(&mut tree, tvb_wrapper) { - Ok(consumed) => consumed, - Err(_) => 0, // Error in dissection - } - } + Ok((mut tree, tvb_wrapper)) => (self.inner)(&mut tree, tvb_wrapper).unwrap_or_default(), Err(_) => 0, // Error creating tree } } @@ -166,6 +164,9 @@ impl Tvb { } /// Create child TVB with new data + /// + /// # Safety + /// `data` must be valid for `length` bytes and outlive the returned `Tvb`. pub unsafe fn new_child_real_data( &self, data: *const u8, @@ -186,7 +187,10 @@ impl Tvb { } } - /// Get raw pointer to data (unsafe) + /// Get raw pointer to data at `offset` for `length` bytes. + /// + /// # Safety + /// `offset` and `length` must be within the bounds of this TVB. pub unsafe fn get_ptr(&self, offset: i32, length: i32) -> *const u8 { epan_sys::tvb_get_ptr(self.ptr, offset, length) } @@ -345,7 +349,8 @@ impl PacketInfo { pub fn new(ptr: *mut epan_sys::_packet_info) -> Self { Self { ptr } } - // This raw pointer is managed by the block allocator of wmem + /// # Safety + /// Caller must ensure `self.ptr` points to a live `packet_info` with a valid `pool`. pub unsafe fn alloc_string(&self, s: &str) -> *const c_char { let c_str = std::ffi::CString::new(s).expect("msg"); unsafe { @@ -355,6 +360,8 @@ impl PacketInfo { ptr } } + /// # Safety + /// Caller must ensure `self.ptr` points to a live `packet_info` with a valid `pool`. pub unsafe fn alloc_bytes(&self, bytes: &[u8]) -> *mut u8 { unsafe { let ptr = epan_sys::wmem_alloc((*self.ptr).pool, bytes.len()) as *mut u8; @@ -374,6 +381,8 @@ impl PacketInfo { epan_sys::col_clear((*self.ptr).cinfo, col as i32); } } + /// # Safety + /// `self.ptr` and `tvb` must be valid for the duration of the call. pub unsafe fn add_data_source(&self, tvb: &Tvb, name: &str) { let name = self.alloc_string(name); epan_sys::add_new_data_source(self.ptr, tvb.as_ptr(), name); diff --git a/wsdf/src/wireshark/plugin.rs b/wsdf/src/wireshark/plugin.rs index 0ed305b..378be96 100644 --- a/wsdf/src/wireshark/plugin.rs +++ b/wsdf/src/wireshark/plugin.rs @@ -10,7 +10,7 @@ pub struct Plugin { } thread_local! { - static PLUGIN: RefCell> = RefCell::new(None); + static PLUGIN: RefCell> = const { RefCell::new(None) }; } impl Plugin { @@ -132,10 +132,21 @@ macro_rules! plugin { } // Plugin metadata + const fn make_version_array() -> [std::ffi::c_char; 32] { + let bytes = env!("CARGO_PKG_VERSION").as_bytes(); + let mut chars = [0i8; 32]; + let mut i = 0; + while i < bytes.len() && i < 31 { + chars[i] = bytes[i] as std::ffi::c_char; + i += 1; + } + chars + } + #[no_mangle] #[used] #[allow(non_upper_case_globals)] - static plugin_version: [std::ffi::c_char; 6] = [48, 46, 48, 46, 49, 0]; + static plugin_version: [std::ffi::c_char; 32] = make_version_array(); #[no_mangle] #[used] diff --git a/wsdf/src/wireshark/types.rs b/wsdf/src/wireshark/types.rs index 25822cd..179abde 100644 --- a/wsdf/src/wireshark/types.rs +++ b/wsdf/src/wireshark/types.rs @@ -3,14 +3,12 @@ use std::ffi::c_char; pub fn to_c_str(s: &str) -> *const c_char { // +1 for null terminator let size = s.len() + 1; - let c_str = unsafe { + unsafe { let ptr = epan_sys::wmem_alloc(epan_sys::wmem_epan_scope(), size) as *mut c_char; ptr.copy_from(s.as_ptr() as *const c_char, s.len()); *ptr.add(s.len()) = 0; ptr - }; - - c_str + } } pub enum DissectorDecodeFrom { @@ -551,4 +549,3 @@ pub enum ExpertError { #[error("Failed to add expert info")] AddFailed, } -