From f44d960f914837fa30b2609ff7414995df2426fd Mon Sep 17 00:00:00 2001 From: yangliuwillow Date: Sun, 23 Mar 2025 21:10:10 -0400 Subject: [PATCH] Rust equivalent of test.c implemented. Basic Cache, Reader, Request struct implemented. --- .gitignore | 3 + CMakeLists.txt | 11 + data/trace.csv | 0 libcachesim-rs/Cargo.lock | 327 + libcachesim-rs/Cargo.toml | 27 + libcachesim-rs/README.md | 92 + libcachesim-rs/bindings/bindings.rs | 11399 +++++++++++++++++ libcachesim-rs/bindings/libwrap_static_fns.a | Bin 0 -> 15872 bytes libcachesim-rs/bindings/wrap_static_fns.c | 35 + libcachesim-rs/bindings/wrap_static_fns.o | Bin 0 -> 14608 bytes libcachesim-rs/build.rs | 248 + libcachesim-rs/src/lib.rs | 9 + libcachesim-rs/src/main.rs | 65 + libcachesim-rs/src/wrapper.rs | 345 + test.c | 4 +- 15 files changed, 12564 insertions(+), 1 deletion(-) create mode 100644 data/trace.csv create mode 100644 libcachesim-rs/Cargo.lock create mode 100644 libcachesim-rs/Cargo.toml create mode 100644 libcachesim-rs/README.md create mode 100644 libcachesim-rs/bindings/bindings.rs create mode 100644 libcachesim-rs/bindings/libwrap_static_fns.a create mode 100644 libcachesim-rs/bindings/wrap_static_fns.c create mode 100644 libcachesim-rs/bindings/wrap_static_fns.o create mode 100644 libcachesim-rs/build.rs create mode 100644 libcachesim-rs/src/lib.rs create mode 100644 libcachesim-rs/src/main.rs create mode 100644 libcachesim-rs/src/wrapper.rs diff --git a/.gitignore b/.gitignore index fa640cbc..aa3f297f 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,6 @@ result/ sftp-config.json # Clangd cache *.cache/ +libcachesim-rs/target/ +zstd-1.5.0/ +zstd-1.5.0.tar.gz \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 2eba5b37..8bebd9f3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -57,6 +57,10 @@ elseif(${CMAKE_BUILD_TYPE} MATCHES "Debug") if(LOG_LEVEL STREQUAL "NONE") set(LOG_LEVEL DEBUG) endif() +# elseif($(CMAKE_BUILD_TYPE) MATCHES "Rust") +# if(LOG_LEVEL STREQUAL "NONE") +# set(LOG_LEVEL INFO) +# endif() else() set(LOG_LEVEL INFO) endif() @@ -180,6 +184,13 @@ if(NOT ${CMAKE_BUILD_TYPE} MATCHES "Debug") endif() endif() +# # Check if the build type is Rust, if so, we turn on -fkeep-inline-functions +# if (${CMAKE_BUILD_TYPE} MATCHES "Rust") +# message(STATUS "Turn on -fkeep-inline-functions for bindgen to handle inline functions") +# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fkeep-inline-functions") +# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fkeep-inline-functions") +# endif() + find_package(Threads) # find_package(Boost REQUIRED) diff --git a/data/trace.csv b/data/trace.csv new file mode 100644 index 00000000..e69de29b diff --git a/libcachesim-rs/Cargo.lock b/libcachesim-rs/Cargo.lock new file mode 100644 index 00000000..4955fe4d --- /dev/null +++ b/libcachesim-rs/Cargo.lock @@ -0,0 +1,327 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "annotate-snippets" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "710e8eae58854cdc1790fcb56cca04d712a17be849eeb81da2a724bf4bae2bc4" +dependencies = [ + "anstyle", + "unicode-width", +] + +[[package]] +name = "anstyle" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" + +[[package]] +name = "bindgen" +version = "0.71.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f58bf3d7db68cfbac37cfc485a8d711e87e064c3d0fe0435b92f7a407f9d6b3" +dependencies = [ + "annotate-snippets", + "bitflags", + "cexpr", + "clang-sys", + "itertools", + "log", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", + "syn", +] + +[[package]] +name = "bitflags" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" + +[[package]] +name = "cc" +version = "1.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fcb57c740ae1daf453ae85f16e37396f672b039e00d9d866e07ddb24e328e3a" +dependencies = [ + "shlex", +] + +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "clang-sys" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" +dependencies = [ + "glob", + "libc", + "libloading", +] + +[[package]] +name = "either" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" + +[[package]] +name = "glob" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "libc" +version = "0.2.171" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" + +[[package]] +name = "libcachesim-rs" +version = "0.1.0" +dependencies = [ + "bindgen", + "cc", + "libc", + "pkg-config", +] + +[[package]] +name = "libloading" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" +dependencies = [ + "cfg-if", + "windows-targets", +] + +[[package]] +name = "log" +version = "0.4.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + +[[package]] +name = "prettyplease" +version = "0.2.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5316f57387668042f561aae71480de936257848f9c43ce528e311d89a07cadeb" +dependencies = [ + "proc-macro2", + "syn", +] + +[[package]] +name = "proc-macro2" +version = "1.0.94" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "regex" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" + +[[package]] +name = "rustc-hash" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "syn" +version = "2.0.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "unicode-ident" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" + +[[package]] +name = "unicode-width" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" diff --git a/libcachesim-rs/Cargo.toml b/libcachesim-rs/Cargo.toml new file mode 100644 index 00000000..fc08c75c --- /dev/null +++ b/libcachesim-rs/Cargo.toml @@ -0,0 +1,27 @@ + +[package] +name = "libcachesim-rs" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +libc = "0.2" # For C types +bindgen = { version = "0.71.1", features = ["experimental"] } + +[lib] +name = "libcachesim_rs" +path = "src/lib.rs" + +[build] +rustflags = [] + +[build-dependencies] +cc = "1.0" # For compiling the C library +bindgen = { version = "0.71.1", features = ["experimental"] } +pkg-config = "0.3" + +[[bin]] +name = "main" +path = "src/main.rs" \ No newline at end of file diff --git a/libcachesim-rs/README.md b/libcachesim-rs/README.md new file mode 100644 index 00000000..48aa4709 --- /dev/null +++ b/libcachesim-rs/README.md @@ -0,0 +1,92 @@ +# Rust Bindings +We generate Rust bindings using `bindgen` (https://rust-lang.github.io/rust-bindgen/). +## Generate Bindings +In the `libcachesim-rs` directory, if we run cargo build, the `build.rs` script will generate the bindings directory and all the files inside this directory. Then we can include the `bindings.rs` to our `lib.rs` and write safe Rust wrappers in wrapper.rs. For now, I have `pub struct Cache`, `pub struct Reader`, and `pub struct Request` with all corresponding methods. With these, I write a Rust equivalent `test.c` file in `main.rs`. + + +## How to handle inline functions (In Command Line)? (Tentative Incomplete) Use `build.rs` intead +```bash +bindgen --experimental --wrap-static-fns \ + --wrap-static-fns-path bindings/wrap_static_fns \ + ../libCacheSim/include/libCacheSim.h \ + -o bindings/bindings.rs \ + --blocklist-item "_Tp" \ + --blocklist-item "std::.*" \ + --blocklist-file ".*/glib-2.0/glib/.*" \ + --blocklist-file ".*zstdReader.*" \ + -- \ + -I../libCacheSim/include \ + $(pkg-config --cflags glib-2.0) +``` +This creates a `wrap_static_fns.c`. For now, we manually change the `#include "../libCacheSim/include/libCacheSim.h"` to `#include "libCacheSim.h"`. I have yet to figure out a way to make `bindgen` write relative path of the header file to the `wrap_static_fns.c` when `wrap_static_fns` is used. + +Now, we compile `wrap_static_fns.c` into an object file, then bundle it into a static library — while ensuring it includes the right header file. + +Step 1: Compile `wrap_static_fns.c` +Run this command to compile `wrap_static_fns.c` into an object file (`.o`): +```Bash +clang -O -c \ + -o bindings/wrap_static_fns.o \ + bindings/wrap_static_fns.c \ + -include ../libCacheSim/include/libCacheSim.h \ + -I/../libCacheSim/include \ + $(pkg-config --cflags glib-2.0) +``` +where +- `-O`: Optimizes the build. +- `-c`: Compiles without linking (produces .o file). +- `-o ...wrap_static_fns.o`: Output object file path. +- `-include ...libCacheSim.h`: Forces inclusion of the header. +- `-I...`: Adds include path for libCacheSim. +- `$(pkg-config --cflags glib-2.0)`: Ensures GLib headers are accessible. + +Step 2: Create a static library (`.a`) +Now bundle the object file into a static library: +```Bash +ar rcs bindings/libwrap_static_fns.a \ + bindings/wrap_static_fns.o +``` +where +- `ar`: Archive utility to create static libraries. +- `r`: Replaces existing object files in the archive. +- `c`: Creates the archive if it doesn’t exist. +- `s`: Adds an index (helps the linker find symbols faster). + + + + + +# Testing `test.c` +If we see `no LC_RPATH's found`, we first doule check the library is installed +```Bash +brew install zstd +``` +And verify the library exists: +```Bash +ls /opt/homebrew/lib/libzstd*.dylib +``` + +Next, we can set RPATH during compilation. +```Bash +gcc test.c $(pkg-config --cflags --libs libCacheSim glib-2.0) -lzstd -o test.out -Wl,-rpath,/opt/homebrew/lib +``` +If we see error `... was built for newer 'macOS' version (15.1) than being linked (15.0)`, we can add `MACOSX_DEPLOYMENT_TARGET=15.1` to the Bash command. + +Now, we verify RPATH is set correctly, where we check the final binary with: +```Bash +otool -l test.out | grep -A2 RPATH +``` +You should see: +``` + cmd LC_RPATH + path /opt/homebrew/lib (offset 12) +``` + + + + + + + + + diff --git a/libcachesim-rs/bindings/bindings.rs b/libcachesim-rs/bindings/bindings.rs new file mode 100644 index 00000000..33d63042 --- /dev/null +++ b/libcachesim-rs/bindings/bindings.rs @@ -0,0 +1,11399 @@ +/* automatically generated by rust-bindgen 0.71.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] + fn extract_bit(byte: u8, index: usize) -> bool { + 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 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]; + Self::extract_bit(byte, index) + } + #[inline] + pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool { + debug_assert!(index / 8 < core::mem::size_of::()); + let byte_index = index / 8; + let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize); + Self::extract_bit(byte, index) + } + #[inline] + fn change_bit(byte: u8, index: usize, val: bool) -> u8 { + 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 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]; + *byte = Self::change_bit(*byte, index, val); + } + #[inline] + pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) { + debug_assert!(index / 8 < core::mem::size_of::()); + let byte_index = index / 8; + let byte = + (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize); + *byte = Self::change_bit(*byte, index, val); + } + #[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 { + debug_assert!(bit_width <= 64); + debug_assert!(bit_offset / 8 < core::mem::size_of::()); + debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::()); + let mut val = 0; + for i in 0..(bit_width as usize) { + if Self::raw_get_bit(this, 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); + } + } + #[inline] + pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) { + debug_assert!(bit_width <= 64); + debug_assert!(bit_offset / 8 < core::mem::size_of::()); + debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::()); + 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::raw_set_bit(this, index + bit_offset, val_bit_is_set); + } + } +} +#[derive(PartialEq, Copy, Clone, Hash, Debug, Default)] +#[repr(transparent)] +pub struct __BindgenFloat16(pub u16); +pub const HEAP_ALLOCATOR_G_NEW: u32 = 2576; +pub const HEAP_ALLOCATOR_G_SLICE_NEW: u32 = 2592; +pub const HEAP_ALLOCATOR_MALLOC: u32 = 2608; +pub const HEAP_ALLOCATOR_ALIGNED_MALLOC: u32 = 2624; +pub const MURMUR3: u32 = 2832; +pub const XXHASH: u32 = 2848; +pub const XXHASH3: u32 = 2849; +pub const WYHASH: u32 = 2864; +pub const IDENTITY: u32 = 1; +pub const CHAINED_HASHTABLE: u32 = 193; +pub const CUCKOO_HASHTABLE: u32 = 194; +pub const MEM_ALIGN_SIZE: u32 = 128; +pub const NORMAL: &[u8; 5] = b"\x1B[0m\0"; +pub const RED: &[u8; 6] = b"\x1B[31m\0"; +pub const GREEN: &[u8; 6] = b"\x1B[32m\0"; +pub const YELLOW: &[u8; 6] = b"\x1B[33m\0"; +pub const BLUE: &[u8; 6] = b"\x1B[34m\0"; +pub const MAGENTA: &[u8; 6] = b"\x1B[35m\0"; +pub const CYAN: &[u8; 6] = b"\x1B[36m\0"; +pub const VVVERBOSE_LEVEL: u32 = 3; +pub const VVERBOSE_LEVEL: u32 = 4; +pub const VERBOSE_LEVEL: u32 = 5; +pub const DEBUG_LEVEL: u32 = 6; +pub const INFO_LEVEL: u32 = 7; +pub const WARN_LEVEL: u32 = 8; +pub const SEVERE_LEVEL: u32 = 9; +pub const KiB: u32 = 1024; +pub const MiB: u32 = 1048576; +pub const GiB: u32 = 1073741824; +pub const TiB: u64 = 1099511627776; +pub const KB: u32 = 1000; +pub const MB: u32 = 1000000; +pub const GB: u32 = 1000000000; +pub const TB: u64 = 1000000000000; +pub const HEAP_ALLOCATOR: u32 = 2608; +pub const HASH_TYPE: u32 = 2849; +pub const HASH_POWER_DEFAULT: u32 = 23; +pub const CHAINED_HASHTABLE_EXPAND_THRESHOLD: u32 = 2; +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 USE_CLANG_TYPES: u32 = 0; +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 USE_CLANG_STDDEF: 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 __MAC_15_0: u32 = 150000; +pub const __MAC_15_1: u32 = 150100; +pub const __MAC_15_2: u32 = 150200; +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 __IPHONE_18_0: u32 = 180000; +pub const __IPHONE_18_1: u32 = 180100; +pub const __IPHONE_18_2: u32 = 180200; +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 __WATCHOS_11_0: u32 = 110000; +pub const __WATCHOS_11_1: u32 = 110100; +pub const __WATCHOS_11_2: u32 = 110200; +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 __TVOS_18_0: u32 = 180000; +pub const __TVOS_18_1: u32 = 180100; +pub const __TVOS_18_2: u32 = 180200; +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 __BRIDGEOS_9_0: u32 = 90000; +pub const __BRIDGEOS_9_1: u32 = 90100; +pub const __BRIDGEOS_9_2: u32 = 90200; +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 __DRIVERKIT_24_0: u32 = 240000; +pub const __DRIVERKIT_24_1: u32 = 240100; +pub const __DRIVERKIT_24_2: u32 = 240200; +pub const __VISIONOS_1_0: u32 = 10000; +pub const __VISIONOS_1_1: u32 = 10100; +pub const __VISIONOS_1_2: u32 = 10200; +pub const __VISIONOS_2_0: u32 = 20000; +pub const __VISIONOS_2_1: u32 = 20100; +pub const __VISIONOS_2_2: u32 = 20200; +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_VERSION_15_0: u32 = 150000; +pub const MAC_OS_VERSION_15_1: u32 = 150100; +pub const MAC_OS_VERSION_15_2: u32 = 150200; +pub const __MAC_OS_X_VERSION_MAX_ALLOWED: u32 = 150200; +pub const __ENABLE_LEGACY_MAC_AVAILABILITY: u32 = 1; +pub const PROT_NONE: u32 = 0; +pub const PROT_READ: u32 = 1; +pub const PROT_WRITE: u32 = 2; +pub const PROT_EXEC: u32 = 4; +pub const MAP_SHARED: u32 = 1; +pub const MAP_PRIVATE: u32 = 2; +pub const MAP_COPY: u32 = 2; +pub const MAP_FIXED: u32 = 16; +pub const MAP_RENAME: u32 = 32; +pub const MAP_NORESERVE: u32 = 64; +pub const MAP_RESERVED0080: u32 = 128; +pub const MAP_NOEXTEND: u32 = 256; +pub const MAP_HASSEMAPHORE: u32 = 512; +pub const MAP_NOCACHE: u32 = 1024; +pub const MAP_JIT: u32 = 2048; +pub const MAP_FILE: u32 = 0; +pub const MAP_ANON: u32 = 4096; +pub const MAP_ANONYMOUS: u32 = 4096; +pub const MAP_RESILIENT_CODESIGN: u32 = 8192; +pub const MAP_RESILIENT_MEDIA: u32 = 16384; +pub const MAP_32BIT: u32 = 32768; +pub const MAP_TRANSLATED_ALLOW_EXECUTE: u32 = 131072; +pub const MAP_UNIX03: u32 = 262144; +pub const MAP_TPRO: u32 = 524288; +pub const MCL_CURRENT: u32 = 1; +pub const MCL_FUTURE: u32 = 2; +pub const MS_ASYNC: u32 = 1; +pub const MS_INVALIDATE: u32 = 2; +pub const MS_SYNC: u32 = 16; +pub const MS_KILLPAGES: u32 = 4; +pub const MS_DEACTIVATE: u32 = 8; +pub const POSIX_MADV_NORMAL: u32 = 0; +pub const POSIX_MADV_RANDOM: u32 = 1; +pub const POSIX_MADV_SEQUENTIAL: u32 = 2; +pub const POSIX_MADV_WILLNEED: u32 = 3; +pub const POSIX_MADV_DONTNEED: u32 = 4; +pub const MADV_NORMAL: u32 = 0; +pub const MADV_RANDOM: u32 = 1; +pub const MADV_SEQUENTIAL: u32 = 2; +pub const MADV_WILLNEED: u32 = 3; +pub const MADV_DONTNEED: u32 = 4; +pub const MADV_FREE: u32 = 5; +pub const MADV_ZERO_WIRED_PAGES: u32 = 6; +pub const MADV_FREE_REUSABLE: u32 = 7; +pub const MADV_FREE_REUSE: u32 = 8; +pub const MADV_CAN_REUSE: u32 = 9; +pub const MADV_PAGEOUT: u32 = 10; +pub const MADV_ZERO: u32 = 11; +pub const MINCORE_INCORE: u32 = 1; +pub const MINCORE_REFERENCED: u32 = 2; +pub const MINCORE_MODIFIED: u32 = 4; +pub const MINCORE_REFERENCED_OTHER: u32 = 8; +pub const MINCORE_MODIFIED_OTHER: u32 = 16; +pub const MINCORE_PAGED_OUT: u32 = 32; +pub const MINCORE_COPIED: u32 = 64; +pub const MINCORE_ANONYMOUS: u32 = 128; +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 FP_NAN: u32 = 1; +pub const FP_INFINITE: u32 = 2; +pub const FP_ZERO: u32 = 3; +pub const FP_NORMAL: u32 = 4; +pub const FP_SUBNORMAL: u32 = 5; +pub const FP_SUPERNORMAL: u32 = 6; +pub const FP_FAST_FMA: u32 = 1; +pub const FP_FAST_FMAF: u32 = 1; +pub const FP_FAST_FMAL: u32 = 1; +pub const FP_ILOGB0: i32 = -2147483648; +pub const FP_ILOGBNAN: i32 = -2147483648; +pub const MATH_ERRNO: u32 = 1; +pub const MATH_ERREXCEPT: u32 = 2; +pub const M_E: f64 = 2.718281828459045; +pub const M_LOG2E: f64 = 1.4426950408889634; +pub const M_LOG10E: f64 = 0.4342944819032518; +pub const M_LN2: f64 = 0.6931471805599453; +pub const M_LN10: f64 = 2.302585092994046; +pub const M_PI: f64 = 3.141592653589793; +pub const M_PI_2: f64 = 1.5707963267948966; +pub const M_PI_4: f64 = 0.7853981633974483; +pub const M_1_PI: f64 = 0.3183098861837907; +pub const M_2_PI: f64 = 0.6366197723675814; +pub const M_2_SQRTPI: f64 = 1.1283791670955126; +pub const M_SQRT2: f64 = 1.4142135623730951; +pub const M_SQRT1_2: f64 = 0.7071067811865476; +pub const FP_SNAN: u32 = 1; +pub const FP_QNAN: u32 = 1; +pub const DOMAIN: u32 = 1; +pub const SING: u32 = 2; +pub const OVERFLOW: u32 = 3; +pub const UNDERFLOW: u32 = 4; +pub const TLOSS: u32 = 5; +pub const PLOSS: u32 = 6; +pub const __DARWIN_WCHAR_MIN: i32 = -2147483648; +pub const _FORTIFY_SOURCE: u32 = 2; +pub const _USE_FORTIFY_LEVEL: u32 = 2; +pub const __HAS_FIXED_CHK_PROTOTYPES: u32 = 1; +pub const __bool_true_false_are_defined: u32 = 1; +pub const true_: u32 = 1; +pub const false_: u32 = 0; +pub const USE_CLANG_STDARG: u32 = 0; +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 _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 TIME_UTC: u32 = 1; +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 __DARWIN_FD_SETSIZE: u32 = 1024; +pub const __DARWIN_NBBY: u32 = 8; +pub const ITIMER_REAL: u32 = 0; +pub const ITIMER_VIRTUAL: u32 = 1; +pub const ITIMER_PROF: u32 = 2; +pub const FD_SETSIZE: u32 = 1024; +pub const DST_NONE: u32 = 0; +pub const DST_USA: u32 = 1; +pub const DST_AUST: u32 = 2; +pub const DST_WET: u32 = 3; +pub const DST_MET: u32 = 4; +pub const DST_EET: u32 = 5; +pub const DST_CAN: u32 = 6; +pub const _POSIX_VERSION: u32 = 200112; +pub const _POSIX2_VERSION: u32 = 200112; +pub const _POSIX_THREAD_KEYS_MAX: u32 = 128; +pub const F_OK: u32 = 0; +pub const X_OK: u32 = 1; +pub const W_OK: u32 = 2; +pub const R_OK: u32 = 4; +pub const _READ_OK: u32 = 512; +pub const _WRITE_OK: u32 = 1024; +pub const _EXECUTE_OK: u32 = 2048; +pub const _DELETE_OK: u32 = 4096; +pub const _APPEND_OK: u32 = 8192; +pub const _RMFILE_OK: u32 = 16384; +pub const _RATTR_OK: u32 = 32768; +pub const _WATTR_OK: u32 = 65536; +pub const _REXT_OK: u32 = 131072; +pub const _WEXT_OK: u32 = 262144; +pub const _RPERM_OK: u32 = 524288; +pub const _WPERM_OK: u32 = 1048576; +pub const _CHOWN_OK: u32 = 2097152; +pub const _ACCESS_EXTENDED_MASK: u32 = 4193792; +pub const L_SET: u32 = 0; +pub const L_INCR: u32 = 1; +pub const L_XTND: u32 = 2; +pub const ACCESSX_MAX_DESCRIPTORS: u32 = 100; +pub const ACCESSX_MAX_TABLESIZE: u32 = 16384; +pub const _PC_LINK_MAX: u32 = 1; +pub const _PC_MAX_CANON: u32 = 2; +pub const _PC_MAX_INPUT: u32 = 3; +pub const _PC_NAME_MAX: u32 = 4; +pub const _PC_PATH_MAX: u32 = 5; +pub const _PC_PIPE_BUF: u32 = 6; +pub const _PC_CHOWN_RESTRICTED: u32 = 7; +pub const _PC_NO_TRUNC: u32 = 8; +pub const _PC_VDISABLE: u32 = 9; +pub const _PC_NAME_CHARS_MAX: u32 = 10; +pub const _PC_CASE_SENSITIVE: u32 = 11; +pub const _PC_CASE_PRESERVING: u32 = 12; +pub const _PC_EXTENDED_SECURITY_NP: u32 = 13; +pub const _PC_AUTH_OPAQUE_NP: u32 = 14; +pub const _PC_2_SYMLINKS: u32 = 15; +pub const _PC_ALLOC_SIZE_MIN: u32 = 16; +pub const _PC_ASYNC_IO: u32 = 17; +pub const _PC_FILESIZEBITS: u32 = 18; +pub const _PC_PRIO_IO: u32 = 19; +pub const _PC_REC_INCR_XFER_SIZE: u32 = 20; +pub const _PC_REC_MAX_XFER_SIZE: u32 = 21; +pub const _PC_REC_MIN_XFER_SIZE: u32 = 22; +pub const _PC_REC_XFER_ALIGN: u32 = 23; +pub const _PC_SYMLINK_MAX: u32 = 24; +pub const _PC_SYNC_IO: u32 = 25; +pub const _PC_XATTR_SIZE_BITS: u32 = 26; +pub const _PC_MIN_HOLE_SIZE: u32 = 27; +pub const _CS_PATH: u32 = 1; +pub const STDIN_FILENO: u32 = 0; +pub const STDOUT_FILENO: u32 = 1; +pub const STDERR_FILENO: u32 = 2; +pub const _XOPEN_VERSION: u32 = 600; +pub const _XOPEN_XCU_VERSION: u32 = 4; +pub const _POSIX_ADVISORY_INFO: i32 = -1; +pub const _POSIX_ASYNCHRONOUS_IO: i32 = -1; +pub const _POSIX_BARRIERS: i32 = -1; +pub const _POSIX_CHOWN_RESTRICTED: u32 = 200112; +pub const _POSIX_CLOCK_SELECTION: i32 = -1; +pub const _POSIX_CPUTIME: i32 = -1; +pub const _POSIX_FSYNC: u32 = 200112; +pub const _POSIX_IPV6: u32 = 200112; +pub const _POSIX_JOB_CONTROL: u32 = 200112; +pub const _POSIX_MAPPED_FILES: u32 = 200112; +pub const _POSIX_MEMLOCK: i32 = -1; +pub const _POSIX_MEMLOCK_RANGE: i32 = -1; +pub const _POSIX_MEMORY_PROTECTION: u32 = 200112; +pub const _POSIX_MESSAGE_PASSING: i32 = -1; +pub const _POSIX_MONOTONIC_CLOCK: i32 = -1; +pub const _POSIX_NO_TRUNC: u32 = 200112; +pub const _POSIX_PRIORITIZED_IO: i32 = -1; +pub const _POSIX_PRIORITY_SCHEDULING: i32 = -1; +pub const _POSIX_RAW_SOCKETS: i32 = -1; +pub const _POSIX_READER_WRITER_LOCKS: u32 = 200112; +pub const _POSIX_REALTIME_SIGNALS: i32 = -1; +pub const _POSIX_REGEXP: u32 = 200112; +pub const _POSIX_SAVED_IDS: u32 = 200112; +pub const _POSIX_SEMAPHORES: i32 = -1; +pub const _POSIX_SHARED_MEMORY_OBJECTS: i32 = -1; +pub const _POSIX_SHELL: u32 = 200112; +pub const _POSIX_SPAWN: u32 = 200112; +pub const _POSIX_SPIN_LOCKS: i32 = -1; +pub const _POSIX_SPORADIC_SERVER: i32 = -1; +pub const _POSIX_SYNCHRONIZED_IO: i32 = -1; +pub const _POSIX_THREAD_ATTR_STACKADDR: u32 = 200112; +pub const _POSIX_THREAD_ATTR_STACKSIZE: u32 = 200112; +pub const _POSIX_THREAD_CPUTIME: i32 = -1; +pub const _POSIX_THREAD_PRIO_INHERIT: i32 = -1; +pub const _POSIX_THREAD_PRIO_PROTECT: i32 = -1; +pub const _POSIX_THREAD_PRIORITY_SCHEDULING: i32 = -1; +pub const _POSIX_THREAD_PROCESS_SHARED: u32 = 200112; +pub const _POSIX_THREAD_SAFE_FUNCTIONS: u32 = 200112; +pub const _POSIX_THREAD_SPORADIC_SERVER: i32 = -1; +pub const _POSIX_THREADS: u32 = 200112; +pub const _POSIX_TIMEOUTS: i32 = -1; +pub const _POSIX_TIMERS: i32 = -1; +pub const _POSIX_TRACE: i32 = -1; +pub const _POSIX_TRACE_EVENT_FILTER: i32 = -1; +pub const _POSIX_TRACE_INHERIT: i32 = -1; +pub const _POSIX_TRACE_LOG: i32 = -1; +pub const _POSIX_TYPED_MEMORY_OBJECTS: i32 = -1; +pub const _POSIX2_C_BIND: u32 = 200112; +pub const _POSIX2_C_DEV: u32 = 200112; +pub const _POSIX2_CHAR_TERM: u32 = 200112; +pub const _POSIX2_FORT_DEV: i32 = -1; +pub const _POSIX2_FORT_RUN: u32 = 200112; +pub const _POSIX2_LOCALEDEF: u32 = 200112; +pub const _POSIX2_PBS: i32 = -1; +pub const _POSIX2_PBS_ACCOUNTING: i32 = -1; +pub const _POSIX2_PBS_CHECKPOINT: i32 = -1; +pub const _POSIX2_PBS_LOCATE: i32 = -1; +pub const _POSIX2_PBS_MESSAGE: i32 = -1; +pub const _POSIX2_PBS_TRACK: i32 = -1; +pub const _POSIX2_SW_DEV: u32 = 200112; +pub const _POSIX2_UPE: u32 = 200112; +pub const __ILP32_OFF32: i32 = -1; +pub const __ILP32_OFFBIG: i32 = -1; +pub const __LP64_OFF64: u32 = 1; +pub const __LPBIG_OFFBIG: u32 = 1; +pub const _POSIX_V6_ILP32_OFF32: i32 = -1; +pub const _POSIX_V6_ILP32_OFFBIG: i32 = -1; +pub const _POSIX_V6_LP64_OFF64: u32 = 1; +pub const _POSIX_V6_LPBIG_OFFBIG: u32 = 1; +pub const _POSIX_V7_ILP32_OFF32: i32 = -1; +pub const _POSIX_V7_ILP32_OFFBIG: i32 = -1; +pub const _POSIX_V7_LP64_OFF64: u32 = 1; +pub const _POSIX_V7_LPBIG_OFFBIG: u32 = 1; +pub const _V6_ILP32_OFF32: i32 = -1; +pub const _V6_ILP32_OFFBIG: i32 = -1; +pub const _V6_LP64_OFF64: u32 = 1; +pub const _V6_LPBIG_OFFBIG: u32 = 1; +pub const _XBS5_ILP32_OFF32: i32 = -1; +pub const _XBS5_ILP32_OFFBIG: i32 = -1; +pub const _XBS5_LP64_OFF64: u32 = 1; +pub const _XBS5_LPBIG_OFFBIG: u32 = 1; +pub const _XOPEN_CRYPT: u32 = 1; +pub const _XOPEN_ENH_I18N: u32 = 1; +pub const _XOPEN_LEGACY: i32 = -1; +pub const _XOPEN_REALTIME: i32 = -1; +pub const _XOPEN_REALTIME_THREADS: i32 = -1; +pub const _XOPEN_SHM: u32 = 1; +pub const _XOPEN_STREAMS: i32 = -1; +pub const _XOPEN_UNIX: u32 = 1; +pub const _SC_ARG_MAX: u32 = 1; +pub const _SC_CHILD_MAX: u32 = 2; +pub const _SC_CLK_TCK: u32 = 3; +pub const _SC_NGROUPS_MAX: u32 = 4; +pub const _SC_OPEN_MAX: u32 = 5; +pub const _SC_JOB_CONTROL: u32 = 6; +pub const _SC_SAVED_IDS: u32 = 7; +pub const _SC_VERSION: u32 = 8; +pub const _SC_BC_BASE_MAX: u32 = 9; +pub const _SC_BC_DIM_MAX: u32 = 10; +pub const _SC_BC_SCALE_MAX: u32 = 11; +pub const _SC_BC_STRING_MAX: u32 = 12; +pub const _SC_COLL_WEIGHTS_MAX: u32 = 13; +pub const _SC_EXPR_NEST_MAX: u32 = 14; +pub const _SC_LINE_MAX: u32 = 15; +pub const _SC_RE_DUP_MAX: u32 = 16; +pub const _SC_2_VERSION: u32 = 17; +pub const _SC_2_C_BIND: u32 = 18; +pub const _SC_2_C_DEV: u32 = 19; +pub const _SC_2_CHAR_TERM: u32 = 20; +pub const _SC_2_FORT_DEV: u32 = 21; +pub const _SC_2_FORT_RUN: u32 = 22; +pub const _SC_2_LOCALEDEF: u32 = 23; +pub const _SC_2_SW_DEV: u32 = 24; +pub const _SC_2_UPE: u32 = 25; +pub const _SC_STREAM_MAX: u32 = 26; +pub const _SC_TZNAME_MAX: u32 = 27; +pub const _SC_ASYNCHRONOUS_IO: u32 = 28; +pub const _SC_PAGESIZE: u32 = 29; +pub const _SC_MEMLOCK: u32 = 30; +pub const _SC_MEMLOCK_RANGE: u32 = 31; +pub const _SC_MEMORY_PROTECTION: u32 = 32; +pub const _SC_MESSAGE_PASSING: u32 = 33; +pub const _SC_PRIORITIZED_IO: u32 = 34; +pub const _SC_PRIORITY_SCHEDULING: u32 = 35; +pub const _SC_REALTIME_SIGNALS: u32 = 36; +pub const _SC_SEMAPHORES: u32 = 37; +pub const _SC_FSYNC: u32 = 38; +pub const _SC_SHARED_MEMORY_OBJECTS: u32 = 39; +pub const _SC_SYNCHRONIZED_IO: u32 = 40; +pub const _SC_TIMERS: u32 = 41; +pub const _SC_AIO_LISTIO_MAX: u32 = 42; +pub const _SC_AIO_MAX: u32 = 43; +pub const _SC_AIO_PRIO_DELTA_MAX: u32 = 44; +pub const _SC_DELAYTIMER_MAX: u32 = 45; +pub const _SC_MQ_OPEN_MAX: u32 = 46; +pub const _SC_MAPPED_FILES: u32 = 47; +pub const _SC_RTSIG_MAX: u32 = 48; +pub const _SC_SEM_NSEMS_MAX: u32 = 49; +pub const _SC_SEM_VALUE_MAX: u32 = 50; +pub const _SC_SIGQUEUE_MAX: u32 = 51; +pub const _SC_TIMER_MAX: u32 = 52; +pub const _SC_NPROCESSORS_CONF: u32 = 57; +pub const _SC_NPROCESSORS_ONLN: u32 = 58; +pub const _SC_2_PBS: u32 = 59; +pub const _SC_2_PBS_ACCOUNTING: u32 = 60; +pub const _SC_2_PBS_CHECKPOINT: u32 = 61; +pub const _SC_2_PBS_LOCATE: u32 = 62; +pub const _SC_2_PBS_MESSAGE: u32 = 63; +pub const _SC_2_PBS_TRACK: u32 = 64; +pub const _SC_ADVISORY_INFO: u32 = 65; +pub const _SC_BARRIERS: u32 = 66; +pub const _SC_CLOCK_SELECTION: u32 = 67; +pub const _SC_CPUTIME: u32 = 68; +pub const _SC_FILE_LOCKING: u32 = 69; +pub const _SC_GETGR_R_SIZE_MAX: u32 = 70; +pub const _SC_GETPW_R_SIZE_MAX: u32 = 71; +pub const _SC_HOST_NAME_MAX: u32 = 72; +pub const _SC_LOGIN_NAME_MAX: u32 = 73; +pub const _SC_MONOTONIC_CLOCK: u32 = 74; +pub const _SC_MQ_PRIO_MAX: u32 = 75; +pub const _SC_READER_WRITER_LOCKS: u32 = 76; +pub const _SC_REGEXP: u32 = 77; +pub const _SC_SHELL: u32 = 78; +pub const _SC_SPAWN: u32 = 79; +pub const _SC_SPIN_LOCKS: u32 = 80; +pub const _SC_SPORADIC_SERVER: u32 = 81; +pub const _SC_THREAD_ATTR_STACKADDR: u32 = 82; +pub const _SC_THREAD_ATTR_STACKSIZE: u32 = 83; +pub const _SC_THREAD_CPUTIME: u32 = 84; +pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: u32 = 85; +pub const _SC_THREAD_KEYS_MAX: u32 = 86; +pub const _SC_THREAD_PRIO_INHERIT: u32 = 87; +pub const _SC_THREAD_PRIO_PROTECT: u32 = 88; +pub const _SC_THREAD_PRIORITY_SCHEDULING: u32 = 89; +pub const _SC_THREAD_PROCESS_SHARED: u32 = 90; +pub const _SC_THREAD_SAFE_FUNCTIONS: u32 = 91; +pub const _SC_THREAD_SPORADIC_SERVER: u32 = 92; +pub const _SC_THREAD_STACK_MIN: u32 = 93; +pub const _SC_THREAD_THREADS_MAX: u32 = 94; +pub const _SC_TIMEOUTS: u32 = 95; +pub const _SC_THREADS: u32 = 96; +pub const _SC_TRACE: u32 = 97; +pub const _SC_TRACE_EVENT_FILTER: u32 = 98; +pub const _SC_TRACE_INHERIT: u32 = 99; +pub const _SC_TRACE_LOG: u32 = 100; +pub const _SC_TTY_NAME_MAX: u32 = 101; +pub const _SC_TYPED_MEMORY_OBJECTS: u32 = 102; +pub const _SC_V6_ILP32_OFF32: u32 = 103; +pub const _SC_V6_ILP32_OFFBIG: u32 = 104; +pub const _SC_V6_LP64_OFF64: u32 = 105; +pub const _SC_V6_LPBIG_OFFBIG: u32 = 106; +pub const _SC_IPV6: u32 = 118; +pub const _SC_RAW_SOCKETS: u32 = 119; +pub const _SC_SYMLOOP_MAX: u32 = 120; +pub const _SC_ATEXIT_MAX: u32 = 107; +pub const _SC_IOV_MAX: u32 = 56; +pub const _SC_PAGE_SIZE: u32 = 29; +pub const _SC_XOPEN_CRYPT: u32 = 108; +pub const _SC_XOPEN_ENH_I18N: u32 = 109; +pub const _SC_XOPEN_LEGACY: u32 = 110; +pub const _SC_XOPEN_REALTIME: u32 = 111; +pub const _SC_XOPEN_REALTIME_THREADS: u32 = 112; +pub const _SC_XOPEN_SHM: u32 = 113; +pub const _SC_XOPEN_STREAMS: u32 = 114; +pub const _SC_XOPEN_UNIX: u32 = 115; +pub const _SC_XOPEN_VERSION: u32 = 116; +pub const _SC_XOPEN_XCU_VERSION: u32 = 121; +pub const _SC_XBS5_ILP32_OFF32: u32 = 122; +pub const _SC_XBS5_ILP32_OFFBIG: u32 = 123; +pub const _SC_XBS5_LP64_OFF64: u32 = 124; +pub const _SC_XBS5_LPBIG_OFFBIG: u32 = 125; +pub const _SC_SS_REPL_MAX: u32 = 126; +pub const _SC_TRACE_EVENT_NAME_MAX: u32 = 127; +pub const _SC_TRACE_NAME_MAX: u32 = 128; +pub const _SC_TRACE_SYS_MAX: u32 = 129; +pub const _SC_TRACE_USER_EVENT_MAX: u32 = 130; +pub const _SC_PASS_MAX: u32 = 131; +pub const _SC_PHYS_PAGES: u32 = 200; +pub const _CS_POSIX_V6_ILP32_OFF32_CFLAGS: u32 = 2; +pub const _CS_POSIX_V6_ILP32_OFF32_LDFLAGS: u32 = 3; +pub const _CS_POSIX_V6_ILP32_OFF32_LIBS: u32 = 4; +pub const _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS: u32 = 5; +pub const _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS: u32 = 6; +pub const _CS_POSIX_V6_ILP32_OFFBIG_LIBS: u32 = 7; +pub const _CS_POSIX_V6_LP64_OFF64_CFLAGS: u32 = 8; +pub const _CS_POSIX_V6_LP64_OFF64_LDFLAGS: u32 = 9; +pub const _CS_POSIX_V6_LP64_OFF64_LIBS: u32 = 10; +pub const _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS: u32 = 11; +pub const _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS: u32 = 12; +pub const _CS_POSIX_V6_LPBIG_OFFBIG_LIBS: u32 = 13; +pub const _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS: u32 = 14; +pub const _CS_XBS5_ILP32_OFF32_CFLAGS: u32 = 20; +pub const _CS_XBS5_ILP32_OFF32_LDFLAGS: u32 = 21; +pub const _CS_XBS5_ILP32_OFF32_LIBS: u32 = 22; +pub const _CS_XBS5_ILP32_OFF32_LINTFLAGS: u32 = 23; +pub const _CS_XBS5_ILP32_OFFBIG_CFLAGS: u32 = 24; +pub const _CS_XBS5_ILP32_OFFBIG_LDFLAGS: u32 = 25; +pub const _CS_XBS5_ILP32_OFFBIG_LIBS: u32 = 26; +pub const _CS_XBS5_ILP32_OFFBIG_LINTFLAGS: u32 = 27; +pub const _CS_XBS5_LP64_OFF64_CFLAGS: u32 = 28; +pub const _CS_XBS5_LP64_OFF64_LDFLAGS: u32 = 29; +pub const _CS_XBS5_LP64_OFF64_LIBS: u32 = 30; +pub const _CS_XBS5_LP64_OFF64_LINTFLAGS: u32 = 31; +pub const _CS_XBS5_LPBIG_OFFBIG_CFLAGS: u32 = 32; +pub const _CS_XBS5_LPBIG_OFFBIG_LDFLAGS: u32 = 33; +pub const _CS_XBS5_LPBIG_OFFBIG_LIBS: u32 = 34; +pub const _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS: u32 = 35; +pub const _CS_DARWIN_USER_DIR: u32 = 65536; +pub const _CS_DARWIN_USER_TEMP_DIR: u32 = 65537; +pub const _CS_DARWIN_USER_CACHE_DIR: u32 = 65538; +pub const F_ULOCK: u32 = 0; +pub const F_LOCK: u32 = 1; +pub const F_TLOCK: u32 = 2; +pub const F_TEST: u32 = 3; +pub const SYNC_VOLUME_FULLSYNC: u32 = 1; +pub const SYNC_VOLUME_WAIT: u32 = 2; +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 LITTLE_ENDIAN: u32 = 1234; +pub const BIG_ENDIAN: u32 = 4321; +pub const PDP_ENDIAN: u32 = 3412; +pub const __DARWIN_BYTE_ORDER: u32 = 1234; +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 N_MAX_FEATURES: u32 = 16; +pub const CACHE_NAME_LEN: u32 = 64; +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 EVICTION_AGE_ARRAY_SZE: u32 = 320; +pub const EVICTION_AGE_LOG_BASE: f64 = 1.08; +pub const CACHE_NAME_ARRAY_LEN: u32 = 64; +pub const CACHE_STAT_NAME_ARRAY_LEN: u32 = 640; +pub const CACHE_INIT_PARAMS_LEN: u32 = 256; +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 O_RDONLY: u32 = 0; +pub const O_WRONLY: u32 = 1; +pub const O_RDWR: u32 = 2; +pub const O_ACCMODE: u32 = 3; +pub const FREAD: u32 = 1; +pub const FWRITE: u32 = 2; +pub const O_NONBLOCK: u32 = 4; +pub const O_APPEND: u32 = 8; +pub const O_SYNC: u32 = 128; +pub const O_SHLOCK: u32 = 16; +pub const O_EXLOCK: u32 = 32; +pub const O_ASYNC: u32 = 64; +pub const O_FSYNC: u32 = 128; +pub const O_NOFOLLOW: u32 = 256; +pub const O_CREAT: u32 = 512; +pub const O_TRUNC: u32 = 1024; +pub const O_EXCL: u32 = 2048; +pub const O_EVTONLY: u32 = 32768; +pub const O_NOCTTY: u32 = 131072; +pub const O_DIRECTORY: u32 = 1048576; +pub const O_SYMLINK: u32 = 2097152; +pub const O_DSYNC: u32 = 4194304; +pub const O_CLOEXEC: u32 = 16777216; +pub const O_NOFOLLOW_ANY: u32 = 536870912; +pub const O_EXEC: u32 = 1073741824; +pub const O_SEARCH: u32 = 1074790400; +pub const AT_FDCWD: i32 = -2; +pub const AT_EACCESS: u32 = 16; +pub const AT_SYMLINK_NOFOLLOW: u32 = 32; +pub const AT_SYMLINK_FOLLOW: u32 = 64; +pub const AT_REMOVEDIR: u32 = 128; +pub const AT_REALDEV: u32 = 512; +pub const AT_FDONLY: u32 = 1024; +pub const AT_SYMLINK_NOFOLLOW_ANY: u32 = 2048; +pub const O_DP_GETRAWENCRYPTED: u32 = 1; +pub const O_DP_GETRAWUNENCRYPTED: u32 = 2; +pub const O_DP_AUTHENTICATE: u32 = 4; +pub const AUTH_OPEN_NOAUTHFD: i32 = -1; +pub const FAPPEND: u32 = 8; +pub const FASYNC: u32 = 64; +pub const FFSYNC: u32 = 128; +pub const FFDSYNC: u32 = 4194304; +pub const FNONBLOCK: u32 = 4; +pub const FNDELAY: u32 = 4; +pub const O_NDELAY: u32 = 4; +pub const CPF_OVERWRITE: u32 = 1; +pub const CPF_IGNORE_MODE: u32 = 2; +pub const CPF_MASK: u32 = 3; +pub const F_DUPFD: u32 = 0; +pub const F_GETFD: u32 = 1; +pub const F_SETFD: u32 = 2; +pub const F_GETFL: u32 = 3; +pub const F_SETFL: u32 = 4; +pub const F_GETOWN: u32 = 5; +pub const F_SETOWN: u32 = 6; +pub const F_GETLK: u32 = 7; +pub const F_SETLK: u32 = 8; +pub const F_SETLKW: u32 = 9; +pub const F_SETLKWTIMEOUT: u32 = 10; +pub const F_FLUSH_DATA: u32 = 40; +pub const F_CHKCLEAN: u32 = 41; +pub const F_PREALLOCATE: u32 = 42; +pub const F_SETSIZE: u32 = 43; +pub const F_RDADVISE: u32 = 44; +pub const F_RDAHEAD: u32 = 45; +pub const F_NOCACHE: u32 = 48; +pub const F_LOG2PHYS: u32 = 49; +pub const F_GETPATH: u32 = 50; +pub const F_FULLFSYNC: u32 = 51; +pub const F_PATHPKG_CHECK: u32 = 52; +pub const F_FREEZE_FS: u32 = 53; +pub const F_THAW_FS: u32 = 54; +pub const F_GLOBAL_NOCACHE: u32 = 55; +pub const F_ADDSIGS: u32 = 59; +pub const F_ADDFILESIGS: u32 = 61; +pub const F_NODIRECT: u32 = 62; +pub const F_GETPROTECTIONCLASS: u32 = 63; +pub const F_SETPROTECTIONCLASS: u32 = 64; +pub const F_LOG2PHYS_EXT: u32 = 65; +pub const F_GETLKPID: u32 = 66; +pub const F_SETBACKINGSTORE: u32 = 70; +pub const F_GETPATH_MTMINFO: u32 = 71; +pub const F_GETCODEDIR: u32 = 72; +pub const F_SETNOSIGPIPE: u32 = 73; +pub const F_GETNOSIGPIPE: u32 = 74; +pub const F_TRANSCODEKEY: u32 = 75; +pub const F_SINGLE_WRITER: u32 = 76; +pub const F_GETPROTECTIONLEVEL: u32 = 77; +pub const F_FINDSIGS: u32 = 78; +pub const F_ADDFILESIGS_FOR_DYLD_SIM: u32 = 83; +pub const F_BARRIERFSYNC: u32 = 85; +pub const F_OFD_SETLK: u32 = 90; +pub const F_OFD_SETLKW: u32 = 91; +pub const F_OFD_GETLK: u32 = 92; +pub const F_OFD_SETLKWTIMEOUT: u32 = 93; +pub const F_ADDFILESIGS_RETURN: u32 = 97; +pub const F_CHECK_LV: u32 = 98; +pub const F_PUNCHHOLE: u32 = 99; +pub const F_TRIM_ACTIVE_FILE: u32 = 100; +pub const F_SPECULATIVE_READ: u32 = 101; +pub const F_GETPATH_NOFIRMLINK: u32 = 102; +pub const F_ADDFILESIGS_INFO: u32 = 103; +pub const F_ADDFILESUPPL: u32 = 104; +pub const F_GETSIGSINFO: u32 = 105; +pub const F_SETLEASE: u32 = 106; +pub const F_GETLEASE: u32 = 107; +pub const F_TRANSFEREXTENTS: u32 = 110; +pub const F_ATTRIBUTION_TAG: u32 = 111; +pub const F_ADDSIGS_MAIN_BINARY: u32 = 113; +pub const FCNTL_FS_SPECIFIC_BASE: u32 = 65536; +pub const F_DUPFD_CLOEXEC: u32 = 67; +pub const FD_CLOEXEC: u32 = 1; +pub const F_RDLCK: u32 = 1; +pub const F_UNLCK: u32 = 2; +pub const F_WRLCK: u32 = 3; +pub const S_IFMT: u32 = 61440; +pub const S_IFIFO: u32 = 4096; +pub const S_IFCHR: u32 = 8192; +pub const S_IFDIR: u32 = 16384; +pub const S_IFBLK: u32 = 24576; +pub const S_IFREG: u32 = 32768; +pub const S_IFLNK: u32 = 40960; +pub const S_IFSOCK: u32 = 49152; +pub const S_IFWHT: u32 = 57344; +pub const S_IRWXU: u32 = 448; +pub const S_IRUSR: u32 = 256; +pub const S_IWUSR: u32 = 128; +pub const S_IXUSR: u32 = 64; +pub const S_IRWXG: u32 = 56; +pub const S_IRGRP: u32 = 32; +pub const S_IWGRP: u32 = 16; +pub const S_IXGRP: u32 = 8; +pub const S_IRWXO: u32 = 7; +pub const S_IROTH: u32 = 4; +pub const S_IWOTH: u32 = 2; +pub const S_IXOTH: u32 = 1; +pub const S_ISUID: u32 = 2048; +pub const S_ISGID: u32 = 1024; +pub const S_ISVTX: u32 = 512; +pub const S_ISTXT: u32 = 512; +pub const S_IREAD: u32 = 256; +pub const S_IWRITE: u32 = 128; +pub const S_IEXEC: u32 = 64; +pub const F_ALLOCATECONTIG: u32 = 2; +pub const F_ALLOCATEALL: u32 = 4; +pub const F_ALLOCATEPERSIST: u32 = 8; +pub const F_PEOFPOSMODE: u32 = 3; +pub const F_VOLPOSMODE: u32 = 4; +pub const USER_FSIGNATURES_CDHASH_LEN: u32 = 20; +pub const GETSIGSINFO_PLATFORM_BINARY: u32 = 1; +pub const LOCK_SH: u32 = 1; +pub const LOCK_EX: u32 = 2; +pub const LOCK_NB: u32 = 4; +pub const LOCK_UN: u32 = 8; +pub const ATTRIBUTION_NAME_MAX: u32 = 255; +pub const F_CREATE_TAG: u32 = 1; +pub const F_DELETE_TAG: u32 = 2; +pub const F_QUERY_TAG: u32 = 4; +pub const O_POPUP: u32 = 2147483648; +pub const O_ALERT: u32 = 536870912; +pub const __DARWIN_CLK_TCK: u32 = 100; +pub const USE_CLANG_LIMITS: u32 = 0; +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_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 = 84; +pub const GLIB_MICRO_VERSION: u32 = 0; +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 __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 NBBY: u32 = 8; +pub const ACCESSPERMS: u32 = 511; +pub const ALLPERMS: u32 = 4095; +pub const DEFFILEMODE: u32 = 438; +pub const S_BLKSIZE: u32 = 512; +pub const UF_SETTABLE: u32 = 65535; +pub const UF_NODUMP: u32 = 1; +pub const UF_IMMUTABLE: u32 = 2; +pub const UF_APPEND: u32 = 4; +pub const UF_OPAQUE: u32 = 8; +pub const UF_COMPRESSED: u32 = 32; +pub const UF_TRACKED: u32 = 64; +pub const UF_DATAVAULT: u32 = 128; +pub const UF_HIDDEN: u32 = 32768; +pub const SF_SUPPORTED: u32 = 10420224; +pub const SF_SETTABLE: u32 = 1073676288; +pub const SF_SYNTHETIC: u32 = 3221225472; +pub const SF_ARCHIVED: u32 = 65536; +pub const SF_IMMUTABLE: u32 = 131072; +pub const SF_APPEND: u32 = 262144; +pub const SF_RESTRICTED: u32 = 524288; +pub const SF_NOUNLINK: u32 = 1048576; +pub const SF_FIRMLINK: u32 = 8388608; +pub const SF_DATALESS: u32 = 1073741824; +pub const EF_MAY_SHARE_BLOCKS: u32 = 1; +pub const EF_NO_XATTRS: u32 = 2; +pub const EF_IS_SYNC_ROOT: u32 = 4; +pub const EF_IS_PURGEABLE: u32 = 8; +pub const EF_IS_SPARSE: u32 = 16; +pub const EF_IS_SYNTHETIC: u32 = 32; +pub const EF_SHARES_ALL_BLOCKS: u32 = 64; +pub const UTIME_NOW: i32 = -1; +pub const UTIME_OMIT: i32 = -2; +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, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of __mbstate_t"][::std::mem::size_of::<__mbstate_t>() - 128usize]; + ["Alignment of __mbstate_t"][::std::mem::align_of::<__mbstate_t>() - 8usize]; + ["Offset of field: __mbstate_t::__mbstate8"] + [::std::mem::offset_of!(__mbstate_t, __mbstate8) - 0usize]; + ["Offset of field: __mbstate_t::_mbstateL"] + [::std::mem::offset_of!(__mbstate_t, _mbstateL) - 0usize]; +}; +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, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of __darwin_pthread_handler_rec"] + [::std::mem::size_of::<__darwin_pthread_handler_rec>() - 24usize]; + ["Alignment of __darwin_pthread_handler_rec"] + [::std::mem::align_of::<__darwin_pthread_handler_rec>() - 8usize]; + ["Offset of field: __darwin_pthread_handler_rec::__routine"] + [::std::mem::offset_of!(__darwin_pthread_handler_rec, __routine) - 0usize]; + ["Offset of field: __darwin_pthread_handler_rec::__arg"] + [::std::mem::offset_of!(__darwin_pthread_handler_rec, __arg) - 8usize]; + ["Offset of field: __darwin_pthread_handler_rec::__next"] + [::std::mem::offset_of!(__darwin_pthread_handler_rec, __next) - 16usize]; +}; +#[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], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of _opaque_pthread_attr_t"][::std::mem::size_of::<_opaque_pthread_attr_t>() - 64usize]; + ["Alignment of _opaque_pthread_attr_t"] + [::std::mem::align_of::<_opaque_pthread_attr_t>() - 8usize]; + ["Offset of field: _opaque_pthread_attr_t::__sig"] + [::std::mem::offset_of!(_opaque_pthread_attr_t, __sig) - 0usize]; + ["Offset of field: _opaque_pthread_attr_t::__opaque"] + [::std::mem::offset_of!(_opaque_pthread_attr_t, __opaque) - 8usize]; +}; +#[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], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of _opaque_pthread_cond_t"][::std::mem::size_of::<_opaque_pthread_cond_t>() - 48usize]; + ["Alignment of _opaque_pthread_cond_t"] + [::std::mem::align_of::<_opaque_pthread_cond_t>() - 8usize]; + ["Offset of field: _opaque_pthread_cond_t::__sig"] + [::std::mem::offset_of!(_opaque_pthread_cond_t, __sig) - 0usize]; + ["Offset of field: _opaque_pthread_cond_t::__opaque"] + [::std::mem::offset_of!(_opaque_pthread_cond_t, __opaque) - 8usize]; +}; +#[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], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of _opaque_pthread_condattr_t"] + [::std::mem::size_of::<_opaque_pthread_condattr_t>() - 16usize]; + ["Alignment of _opaque_pthread_condattr_t"] + [::std::mem::align_of::<_opaque_pthread_condattr_t>() - 8usize]; + ["Offset of field: _opaque_pthread_condattr_t::__sig"] + [::std::mem::offset_of!(_opaque_pthread_condattr_t, __sig) - 0usize]; + ["Offset of field: _opaque_pthread_condattr_t::__opaque"] + [::std::mem::offset_of!(_opaque_pthread_condattr_t, __opaque) - 8usize]; +}; +#[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], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of _opaque_pthread_mutex_t"][::std::mem::size_of::<_opaque_pthread_mutex_t>() - 64usize]; + ["Alignment of _opaque_pthread_mutex_t"] + [::std::mem::align_of::<_opaque_pthread_mutex_t>() - 8usize]; + ["Offset of field: _opaque_pthread_mutex_t::__sig"] + [::std::mem::offset_of!(_opaque_pthread_mutex_t, __sig) - 0usize]; + ["Offset of field: _opaque_pthread_mutex_t::__opaque"] + [::std::mem::offset_of!(_opaque_pthread_mutex_t, __opaque) - 8usize]; +}; +#[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], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of _opaque_pthread_mutexattr_t"] + [::std::mem::size_of::<_opaque_pthread_mutexattr_t>() - 16usize]; + ["Alignment of _opaque_pthread_mutexattr_t"] + [::std::mem::align_of::<_opaque_pthread_mutexattr_t>() - 8usize]; + ["Offset of field: _opaque_pthread_mutexattr_t::__sig"] + [::std::mem::offset_of!(_opaque_pthread_mutexattr_t, __sig) - 0usize]; + ["Offset of field: _opaque_pthread_mutexattr_t::__opaque"] + [::std::mem::offset_of!(_opaque_pthread_mutexattr_t, __opaque) - 8usize]; +}; +#[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], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of _opaque_pthread_once_t"][::std::mem::size_of::<_opaque_pthread_once_t>() - 16usize]; + ["Alignment of _opaque_pthread_once_t"] + [::std::mem::align_of::<_opaque_pthread_once_t>() - 8usize]; + ["Offset of field: _opaque_pthread_once_t::__sig"] + [::std::mem::offset_of!(_opaque_pthread_once_t, __sig) - 0usize]; + ["Offset of field: _opaque_pthread_once_t::__opaque"] + [::std::mem::offset_of!(_opaque_pthread_once_t, __opaque) - 8usize]; +}; +#[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], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of _opaque_pthread_rwlock_t"] + [::std::mem::size_of::<_opaque_pthread_rwlock_t>() - 200usize]; + ["Alignment of _opaque_pthread_rwlock_t"] + [::std::mem::align_of::<_opaque_pthread_rwlock_t>() - 8usize]; + ["Offset of field: _opaque_pthread_rwlock_t::__sig"] + [::std::mem::offset_of!(_opaque_pthread_rwlock_t, __sig) - 0usize]; + ["Offset of field: _opaque_pthread_rwlock_t::__opaque"] + [::std::mem::offset_of!(_opaque_pthread_rwlock_t, __opaque) - 8usize]; +}; +#[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], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of _opaque_pthread_rwlockattr_t"] + [::std::mem::size_of::<_opaque_pthread_rwlockattr_t>() - 24usize]; + ["Alignment of _opaque_pthread_rwlockattr_t"] + [::std::mem::align_of::<_opaque_pthread_rwlockattr_t>() - 8usize]; + ["Offset of field: _opaque_pthread_rwlockattr_t::__sig"] + [::std::mem::offset_of!(_opaque_pthread_rwlockattr_t, __sig) - 0usize]; + ["Offset of field: _opaque_pthread_rwlockattr_t::__opaque"] + [::std::mem::offset_of!(_opaque_pthread_rwlockattr_t, __opaque) - 8usize]; +}; +#[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], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of _opaque_pthread_t"][::std::mem::size_of::<_opaque_pthread_t>() - 8192usize]; + ["Alignment of _opaque_pthread_t"][::std::mem::align_of::<_opaque_pthread_t>() - 8usize]; + ["Offset of field: _opaque_pthread_t::__sig"] + [::std::mem::offset_of!(_opaque_pthread_t, __sig) - 0usize]; + ["Offset of field: _opaque_pthread_t::__cleanup_stack"] + [::std::mem::offset_of!(_opaque_pthread_t, __cleanup_stack) - 8usize]; + ["Offset of field: _opaque_pthread_t::__opaque"] + [::std::mem::offset_of!(_opaque_pthread_t, __opaque) - 16usize]; +}; +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 mode_t = __darwin_mode_t; +pub type off_t = __darwin_off_t; +unsafe extern "C" { + pub fn mlockall(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn munlockall() -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn mlock(arg1: *const ::std::os::raw::c_void, arg2: usize) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn mmap( + arg1: *mut ::std::os::raw::c_void, + arg2: usize, + arg3: ::std::os::raw::c_int, + arg4: ::std::os::raw::c_int, + arg5: ::std::os::raw::c_int, + arg6: off_t, + ) -> *mut ::std::os::raw::c_void; +} +unsafe extern "C" { + pub fn mprotect( + arg1: *mut ::std::os::raw::c_void, + arg2: usize, + arg3: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn msync( + arg1: *mut ::std::os::raw::c_void, + arg2: usize, + arg3: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn munlock(arg1: *const ::std::os::raw::c_void, arg2: usize) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn munmap(arg1: *mut ::std::os::raw::c_void, arg2: usize) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn shm_open( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ... + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn shm_unlink(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn posix_madvise( + arg1: *mut ::std::os::raw::c_void, + arg2: usize, + arg3: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn madvise( + arg1: *mut ::std::os::raw::c_void, + arg2: usize, + arg3: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn mincore( + arg1: *const ::std::os::raw::c_void, + arg2: usize, + arg3: *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn minherit( + arg1: *mut ::std::os::raw::c_void, + arg2: usize, + arg3: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +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 intmax_t = ::std::os::raw::c_long; +pub type uintmax_t = ::std::os::raw::c_ulong; +pub type obj_id_t = u64; +pub type float_t = f32; +pub type double_t = f64; +unsafe extern "C" { + pub fn __math_errhandling() -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn __fpclassifyf(arg1: f32) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn __fpclassifyd(arg1: f64) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn __fpclassifyl(arg1: f64) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn acosf(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn acos(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn acosl(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn asinf(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn asin(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn asinl(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn atanf(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn atan(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn atanl(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn atan2f(arg1: f32, arg2: f32) -> f32; +} +unsafe extern "C" { + pub fn atan2(arg1: f64, arg2: f64) -> f64; +} +unsafe extern "C" { + pub fn atan2l(arg1: f64, arg2: f64) -> f64; +} +unsafe extern "C" { + pub fn cosf(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn cos(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn cosl(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn sinf(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn sin(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn sinl(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn tanf(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn tan(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn tanl(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn acoshf(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn acosh(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn acoshl(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn asinhf(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn asinh(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn asinhl(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn atanhf(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn atanh(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn atanhl(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn coshf(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn cosh(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn coshl(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn sinhf(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn sinh(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn sinhl(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn tanhf(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn tanh(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn tanhl(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn expf(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn exp(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn expl(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn exp2f(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn exp2(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn exp2l(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn expm1f(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn expm1(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn expm1l(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn logf(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn log(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn logl(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn log10f(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn log10(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn log10l(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn log2f(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn log2(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn log2l(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn log1pf(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn log1p(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn log1pl(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn logbf(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn logb(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn logbl(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn modff(arg1: f32, arg2: *mut f32) -> f32; +} +unsafe extern "C" { + pub fn modf(arg1: f64, arg2: *mut f64) -> f64; +} +unsafe extern "C" { + pub fn modfl(arg1: f64, arg2: *mut f64) -> f64; +} +unsafe extern "C" { + pub fn ldexpf(arg1: f32, arg2: ::std::os::raw::c_int) -> f32; +} +unsafe extern "C" { + pub fn ldexp(arg1: f64, arg2: ::std::os::raw::c_int) -> f64; +} +unsafe extern "C" { + pub fn ldexpl(arg1: f64, arg2: ::std::os::raw::c_int) -> f64; +} +unsafe extern "C" { + pub fn frexpf(arg1: f32, arg2: *mut ::std::os::raw::c_int) -> f32; +} +unsafe extern "C" { + pub fn frexp(arg1: f64, arg2: *mut ::std::os::raw::c_int) -> f64; +} +unsafe extern "C" { + pub fn frexpl(arg1: f64, arg2: *mut ::std::os::raw::c_int) -> f64; +} +unsafe extern "C" { + pub fn ilogbf(arg1: f32) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn ilogb(arg1: f64) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn ilogbl(arg1: f64) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn scalbnf(arg1: f32, arg2: ::std::os::raw::c_int) -> f32; +} +unsafe extern "C" { + pub fn scalbn(arg1: f64, arg2: ::std::os::raw::c_int) -> f64; +} +unsafe extern "C" { + pub fn scalbnl(arg1: f64, arg2: ::std::os::raw::c_int) -> f64; +} +unsafe extern "C" { + pub fn scalblnf(arg1: f32, arg2: ::std::os::raw::c_long) -> f32; +} +unsafe extern "C" { + pub fn scalbln(arg1: f64, arg2: ::std::os::raw::c_long) -> f64; +} +unsafe extern "C" { + pub fn scalblnl(arg1: f64, arg2: ::std::os::raw::c_long) -> f64; +} +unsafe extern "C" { + pub fn fabsf(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn fabs(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn fabsl(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn cbrtf(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn cbrt(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn cbrtl(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn hypotf(arg1: f32, arg2: f32) -> f32; +} +unsafe extern "C" { + pub fn hypot(arg1: f64, arg2: f64) -> f64; +} +unsafe extern "C" { + pub fn hypotl(arg1: f64, arg2: f64) -> f64; +} +unsafe extern "C" { + pub fn powf(arg1: f32, arg2: f32) -> f32; +} +unsafe extern "C" { + pub fn pow(arg1: f64, arg2: f64) -> f64; +} +unsafe extern "C" { + pub fn powl(arg1: f64, arg2: f64) -> f64; +} +unsafe extern "C" { + pub fn sqrtf(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn sqrt(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn sqrtl(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn erff(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn erf(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn erfl(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn erfcf(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn erfc(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn erfcl(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn lgammaf(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn lgamma(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn lgammal(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn tgammaf(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn tgamma(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn tgammal(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn ceilf(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn ceil(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn ceill(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn floorf(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn floor(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn floorl(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn nearbyintf(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn nearbyint(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn nearbyintl(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn rintf(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn rint(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn rintl(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn lrintf(arg1: f32) -> ::std::os::raw::c_long; +} +unsafe extern "C" { + pub fn lrint(arg1: f64) -> ::std::os::raw::c_long; +} +unsafe extern "C" { + pub fn lrintl(arg1: f64) -> ::std::os::raw::c_long; +} +unsafe extern "C" { + pub fn roundf(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn round(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn roundl(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn lroundf(arg1: f32) -> ::std::os::raw::c_long; +} +unsafe extern "C" { + pub fn lround(arg1: f64) -> ::std::os::raw::c_long; +} +unsafe extern "C" { + pub fn lroundl(arg1: f64) -> ::std::os::raw::c_long; +} +unsafe extern "C" { + pub fn llrintf(arg1: f32) -> ::std::os::raw::c_longlong; +} +unsafe extern "C" { + pub fn llrint(arg1: f64) -> ::std::os::raw::c_longlong; +} +unsafe extern "C" { + pub fn llrintl(arg1: f64) -> ::std::os::raw::c_longlong; +} +unsafe extern "C" { + pub fn llroundf(arg1: f32) -> ::std::os::raw::c_longlong; +} +unsafe extern "C" { + pub fn llround(arg1: f64) -> ::std::os::raw::c_longlong; +} +unsafe extern "C" { + pub fn llroundl(arg1: f64) -> ::std::os::raw::c_longlong; +} +unsafe extern "C" { + pub fn truncf(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn trunc(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn truncl(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn fmodf(arg1: f32, arg2: f32) -> f32; +} +unsafe extern "C" { + pub fn fmod(arg1: f64, arg2: f64) -> f64; +} +unsafe extern "C" { + pub fn fmodl(arg1: f64, arg2: f64) -> f64; +} +unsafe extern "C" { + pub fn remainderf(arg1: f32, arg2: f32) -> f32; +} +unsafe extern "C" { + pub fn remainder(arg1: f64, arg2: f64) -> f64; +} +unsafe extern "C" { + pub fn remainderl(arg1: f64, arg2: f64) -> f64; +} +unsafe extern "C" { + pub fn remquof(arg1: f32, arg2: f32, arg3: *mut ::std::os::raw::c_int) -> f32; +} +unsafe extern "C" { + pub fn remquo(arg1: f64, arg2: f64, arg3: *mut ::std::os::raw::c_int) -> f64; +} +unsafe extern "C" { + pub fn remquol(arg1: f64, arg2: f64, arg3: *mut ::std::os::raw::c_int) -> f64; +} +unsafe extern "C" { + pub fn copysignf(arg1: f32, arg2: f32) -> f32; +} +unsafe extern "C" { + pub fn copysign(arg1: f64, arg2: f64) -> f64; +} +unsafe extern "C" { + pub fn copysignl(arg1: f64, arg2: f64) -> f64; +} +unsafe extern "C" { + pub fn nanf(arg1: *const ::std::os::raw::c_char) -> f32; +} +unsafe extern "C" { + pub fn nan(arg1: *const ::std::os::raw::c_char) -> f64; +} +unsafe extern "C" { + pub fn nanl(arg1: *const ::std::os::raw::c_char) -> f64; +} +unsafe extern "C" { + pub fn nextafterf(arg1: f32, arg2: f32) -> f32; +} +unsafe extern "C" { + pub fn nextafter(arg1: f64, arg2: f64) -> f64; +} +unsafe extern "C" { + pub fn nextafterl(arg1: f64, arg2: f64) -> f64; +} +unsafe extern "C" { + pub fn nexttoward(arg1: f64, arg2: f64) -> f64; +} +unsafe extern "C" { + pub fn nexttowardf(arg1: f32, arg2: f64) -> f32; +} +unsafe extern "C" { + pub fn nexttowardl(arg1: f64, arg2: f64) -> f64; +} +unsafe extern "C" { + pub fn fdimf(arg1: f32, arg2: f32) -> f32; +} +unsafe extern "C" { + pub fn fdim(arg1: f64, arg2: f64) -> f64; +} +unsafe extern "C" { + pub fn fdiml(arg1: f64, arg2: f64) -> f64; +} +unsafe extern "C" { + pub fn fmaxf(arg1: f32, arg2: f32) -> f32; +} +unsafe extern "C" { + pub fn fmax(arg1: f64, arg2: f64) -> f64; +} +unsafe extern "C" { + pub fn fmaxl(arg1: f64, arg2: f64) -> f64; +} +unsafe extern "C" { + pub fn fminf(arg1: f32, arg2: f32) -> f32; +} +unsafe extern "C" { + pub fn fmin(arg1: f64, arg2: f64) -> f64; +} +unsafe extern "C" { + pub fn fminl(arg1: f64, arg2: f64) -> f64; +} +unsafe extern "C" { + pub fn fmaf(arg1: f32, arg2: f32, arg3: f32) -> f32; +} +unsafe extern "C" { + pub fn fma(arg1: f64, arg2: f64, arg3: f64) -> f64; +} +unsafe extern "C" { + pub fn fmal(arg1: f64, arg2: f64, arg3: f64) -> f64; +} +unsafe extern "C" { + pub fn __exp10f(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn __exp10(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn __cospif(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn __cospi(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn __sinpif(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn __sinpi(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn __tanpif(arg1: f32) -> f32; +} +unsafe extern "C" { + pub fn __tanpi(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn __fabsf16(arg1: __BindgenFloat16) -> __BindgenFloat16; +} +unsafe extern "C" { + pub fn __hypotf16(arg1: __BindgenFloat16, arg2: __BindgenFloat16) -> __BindgenFloat16; +} +unsafe extern "C" { + pub fn __sqrtf16(arg1: __BindgenFloat16) -> __BindgenFloat16; +} +unsafe extern "C" { + pub fn __ceilf16(arg1: __BindgenFloat16) -> __BindgenFloat16; +} +unsafe extern "C" { + pub fn __floorf16(arg1: __BindgenFloat16) -> __BindgenFloat16; +} +unsafe extern "C" { + pub fn __rintf16(arg1: __BindgenFloat16) -> __BindgenFloat16; +} +unsafe extern "C" { + pub fn __roundf16(arg1: __BindgenFloat16) -> __BindgenFloat16; +} +unsafe extern "C" { + pub fn __truncf16(arg1: __BindgenFloat16) -> __BindgenFloat16; +} +unsafe extern "C" { + pub fn __copysignf16(arg1: __BindgenFloat16, arg2: __BindgenFloat16) -> __BindgenFloat16; +} +unsafe extern "C" { + pub fn __nextafterf16(arg1: __BindgenFloat16, arg2: __BindgenFloat16) -> __BindgenFloat16; +} +unsafe extern "C" { + pub fn __fmaxf16(arg1: __BindgenFloat16, arg2: __BindgenFloat16) -> __BindgenFloat16; +} +unsafe extern "C" { + pub fn __fminf16(arg1: __BindgenFloat16, arg2: __BindgenFloat16) -> __BindgenFloat16; +} +unsafe extern "C" { + pub fn __fmaf16( + arg1: __BindgenFloat16, + arg2: __BindgenFloat16, + arg3: __BindgenFloat16, + ) -> __BindgenFloat16; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __float2 { + pub __sinval: f32, + pub __cosval: f32, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of __float2"][::std::mem::size_of::<__float2>() - 8usize]; + ["Alignment of __float2"][::std::mem::align_of::<__float2>() - 4usize]; + ["Offset of field: __float2::__sinval"][::std::mem::offset_of!(__float2, __sinval) - 0usize]; + ["Offset of field: __float2::__cosval"][::std::mem::offset_of!(__float2, __cosval) - 4usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __double2 { + pub __sinval: f64, + pub __cosval: f64, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of __double2"][::std::mem::size_of::<__double2>() - 16usize]; + ["Alignment of __double2"][::std::mem::align_of::<__double2>() - 8usize]; + ["Offset of field: __double2::__sinval"][::std::mem::offset_of!(__double2, __sinval) - 0usize]; + ["Offset of field: __double2::__cosval"][::std::mem::offset_of!(__double2, __cosval) - 8usize]; +}; +unsafe extern "C" { + pub fn __sincosf_stret(arg1: f32) -> __float2; +} +unsafe extern "C" { + pub fn __sincos_stret(arg1: f64) -> __double2; +} +unsafe extern "C" { + pub fn __sincospif_stret(arg1: f32) -> __float2; +} +unsafe extern "C" { + pub fn __sincospi_stret(arg1: f64) -> __double2; +} +unsafe extern "C" { + pub fn j0(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn j1(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; +} +unsafe extern "C" { + pub fn y0(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn y1(arg1: f64) -> f64; +} +unsafe extern "C" { + pub fn yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; +} +unsafe extern "C" { + pub fn scalb(arg1: f64, arg2: f64) -> f64; +} +unsafe extern "C" { + pub static mut signgam: ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct exception { + pub type_: ::std::os::raw::c_int, + pub name: *mut ::std::os::raw::c_char, + pub arg1: f64, + pub arg2: f64, + pub retval: f64, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of exception"][::std::mem::size_of::() - 40usize]; + ["Alignment of exception"][::std::mem::align_of::() - 8usize]; + ["Offset of field: exception::type_"][::std::mem::offset_of!(exception, type_) - 0usize]; + ["Offset of field: exception::name"][::std::mem::offset_of!(exception, name) - 8usize]; + ["Offset of field: exception::arg1"][::std::mem::offset_of!(exception, arg1) - 16usize]; + ["Offset of field: exception::arg2"][::std::mem::offset_of!(exception, arg2) - 24usize]; + ["Offset of field: exception::retval"][::std::mem::offset_of!(exception, retval) - 32usize]; +}; +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; +unsafe 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; +} +unsafe 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; +} +unsafe 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; +} +unsafe 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; +} +unsafe 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; +} +unsafe 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; +} +unsafe extern "C" { + pub fn strchr( + __s: *const ::std::os::raw::c_char, + __c: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +unsafe extern "C" { + pub fn strcmp( + __s1: *const ::std::os::raw::c_char, + __s2: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn strcoll( + __s1: *const ::std::os::raw::c_char, + __s2: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +unsafe 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; +} +unsafe extern "C" { + pub fn strcspn( + __s: *const ::std::os::raw::c_char, + __charset: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_ulong; +} +unsafe extern "C" { + pub fn strerror(__errnum: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; +} +unsafe extern "C" { + pub fn strlen(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_ulong; +} +unsafe 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; +} +unsafe 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; +} +unsafe 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; +} +unsafe 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; +} +unsafe extern "C" { + pub fn strrchr( + __s: *const ::std::os::raw::c_char, + __c: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +unsafe extern "C" { + pub fn strspn( + __s: *const ::std::os::raw::c_char, + __charset: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_ulong; +} +unsafe 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; +} +unsafe 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; +} +unsafe 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; +} +unsafe 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; +} +unsafe 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; +} +unsafe extern "C" { + pub fn strdup(__s1: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +unsafe 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; +} +unsafe 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; +} +unsafe 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; +} +unsafe extern "C" { + pub fn strndup( + __s1: *const ::std::os::raw::c_char, + __n: ::std::os::raw::c_ulong, + ) -> *mut ::std::os::raw::c_char; +} +unsafe extern "C" { + pub fn strnlen(__s1: *const ::std::os::raw::c_char, __n: usize) -> usize; +} +unsafe extern "C" { + pub fn strsignal(__sig: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; +} +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 rsize_t = __darwin_size_t; +pub type errno_t = ::std::os::raw::c_int; +unsafe 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; +} +unsafe 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; +} +unsafe extern "C" { + pub fn memset_pattern4( + __b: *mut ::std::os::raw::c_void, + __pattern4: *const ::std::os::raw::c_void, + __len: usize, + ); +} +unsafe extern "C" { + pub fn memset_pattern8( + __b: *mut ::std::os::raw::c_void, + __pattern8: *const ::std::os::raw::c_void, + __len: usize, + ); +} +unsafe extern "C" { + pub fn memset_pattern16( + __b: *mut ::std::os::raw::c_void, + __pattern16: *const ::std::os::raw::c_void, + __len: usize, + ); +} +unsafe 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; +} +unsafe 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; +} +unsafe 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; +} +unsafe 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; +} +unsafe extern "C" { + pub fn strmode(__mode: ::std::os::raw::c_int, __bp: *mut ::std::os::raw::c_char); +} +unsafe 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; +} +unsafe extern "C" { + pub fn swab( + arg1: *const ::std::os::raw::c_void, + arg2: *mut ::std::os::raw::c_void, + arg3: isize, + ); +} +unsafe 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; +} +unsafe 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; +} +unsafe 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; +} +unsafe extern "C" { + pub fn bcopy( + arg1: *const ::std::os::raw::c_void, + arg2: *mut ::std::os::raw::c_void, + arg3: usize, + ); +} +unsafe extern "C" { + pub fn bzero(arg1: *mut ::std::os::raw::c_void, arg2: ::std::os::raw::c_ulong); +} +unsafe extern "C" { + pub fn index( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +unsafe extern "C" { + pub fn rindex( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +unsafe extern "C" { + pub fn ffs(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn strcasecmp( + arg1: *const ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +unsafe 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; +} +unsafe extern "C" { + pub fn ffsl(arg1: ::std::os::raw::c_long) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn ffsll(arg1: ::std::os::raw::c_longlong) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn fls(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn flsl(arg1: ::std::os::raw::c_long) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn flsll(arg1: ::std::os::raw::c_longlong) -> ::std::os::raw::c_int; +} +pub type va_list = __darwin_va_list; +unsafe 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; +} +unsafe 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; +} +unsafe 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; +} +unsafe extern "C" { + pub fn printf(arg1: *const ::std::os::raw::c_char, ...) -> ::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, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of __sbuf"][::std::mem::size_of::<__sbuf>() - 16usize]; + ["Alignment of __sbuf"][::std::mem::align_of::<__sbuf>() - 8usize]; + ["Offset of field: __sbuf::_base"][::std::mem::offset_of!(__sbuf, _base) - 0usize]; + ["Offset of field: __sbuf::_size"][::std::mem::offset_of!(__sbuf, _size) - 8usize]; +}; +#[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, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of __sFILE"][::std::mem::size_of::<__sFILE>() - 152usize]; + ["Alignment of __sFILE"][::std::mem::align_of::<__sFILE>() - 8usize]; + ["Offset of field: __sFILE::_p"][::std::mem::offset_of!(__sFILE, _p) - 0usize]; + ["Offset of field: __sFILE::_r"][::std::mem::offset_of!(__sFILE, _r) - 8usize]; + ["Offset of field: __sFILE::_w"][::std::mem::offset_of!(__sFILE, _w) - 12usize]; + ["Offset of field: __sFILE::_flags"][::std::mem::offset_of!(__sFILE, _flags) - 16usize]; + ["Offset of field: __sFILE::_file"][::std::mem::offset_of!(__sFILE, _file) - 18usize]; + ["Offset of field: __sFILE::_bf"][::std::mem::offset_of!(__sFILE, _bf) - 24usize]; + ["Offset of field: __sFILE::_lbfsize"][::std::mem::offset_of!(__sFILE, _lbfsize) - 40usize]; + ["Offset of field: __sFILE::_cookie"][::std::mem::offset_of!(__sFILE, _cookie) - 48usize]; + ["Offset of field: __sFILE::_close"][::std::mem::offset_of!(__sFILE, _close) - 56usize]; + ["Offset of field: __sFILE::_read"][::std::mem::offset_of!(__sFILE, _read) - 64usize]; + ["Offset of field: __sFILE::_seek"][::std::mem::offset_of!(__sFILE, _seek) - 72usize]; + ["Offset of field: __sFILE::_write"][::std::mem::offset_of!(__sFILE, _write) - 80usize]; + ["Offset of field: __sFILE::_ub"][::std::mem::offset_of!(__sFILE, _ub) - 88usize]; + ["Offset of field: __sFILE::_extra"][::std::mem::offset_of!(__sFILE, _extra) - 104usize]; + ["Offset of field: __sFILE::_ur"][::std::mem::offset_of!(__sFILE, _ur) - 112usize]; + ["Offset of field: __sFILE::_ubuf"][::std::mem::offset_of!(__sFILE, _ubuf) - 116usize]; + ["Offset of field: __sFILE::_nbuf"][::std::mem::offset_of!(__sFILE, _nbuf) - 119usize]; + ["Offset of field: __sFILE::_lb"][::std::mem::offset_of!(__sFILE, _lb) - 120usize]; + ["Offset of field: __sFILE::_blksize"][::std::mem::offset_of!(__sFILE, _blksize) - 136usize]; + ["Offset of field: __sFILE::_offset"][::std::mem::offset_of!(__sFILE, _offset) - 144usize]; +}; +pub type FILE = __sFILE; +unsafe extern "C" { + pub static mut __stdinp: *mut FILE; +} +unsafe extern "C" { + pub static mut __stdoutp: *mut FILE; +} +unsafe extern "C" { + pub static mut __stderrp: *mut FILE; +} +unsafe extern "C" { + pub fn clearerr(arg1: *mut FILE); +} +unsafe extern "C" { + pub fn fclose(arg1: *mut FILE) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn feof(arg1: *mut FILE) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn ferror(arg1: *mut FILE) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn fflush(arg1: *mut FILE) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn fgetc(arg1: *mut FILE) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn fgetpos(arg1: *mut FILE, arg2: *mut fpos_t) -> ::std::os::raw::c_int; +} +unsafe 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; +} +unsafe extern "C" { + pub fn fopen( + __filename: *const ::std::os::raw::c_char, + __mode: *const ::std::os::raw::c_char, + ) -> *mut FILE; +} +unsafe extern "C" { + pub fn fprintf( + arg1: *mut FILE, + arg2: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn fputc(arg1: ::std::os::raw::c_int, arg2: *mut FILE) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn fputs(arg1: *const ::std::os::raw::c_char, arg2: *mut FILE) -> ::std::os::raw::c_int; +} +unsafe 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; +} +unsafe extern "C" { + pub fn freopen( + arg1: *const ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + arg3: *mut FILE, + ) -> *mut FILE; +} +unsafe extern "C" { + pub fn fscanf( + arg1: *mut FILE, + arg2: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +unsafe 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; +} +unsafe extern "C" { + pub fn fsetpos(arg1: *mut FILE, arg2: *const fpos_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn ftell(arg1: *mut FILE) -> ::std::os::raw::c_long; +} +unsafe 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; +} +unsafe extern "C" { + pub fn getc(arg1: *mut FILE) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn getchar() -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn gets(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +unsafe extern "C" { + pub fn perror(arg1: *const ::std::os::raw::c_char); +} +unsafe extern "C" { + pub fn putc(arg1: ::std::os::raw::c_int, arg2: *mut FILE) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn putchar(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn puts(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn remove(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn rename( + __old: *const ::std::os::raw::c_char, + __new: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn rewind(arg1: *mut FILE); +} +unsafe extern "C" { + pub fn scanf(arg1: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn setbuf(arg1: *mut FILE, arg2: *mut ::std::os::raw::c_char); +} +unsafe 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; +} +unsafe extern "C" { + pub fn sprintf( + arg1: *mut ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn sscanf( + arg1: *const ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn tmpfile() -> *mut FILE; +} +unsafe extern "C" { + pub fn tmpnam(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +unsafe extern "C" { + pub fn ungetc(arg1: ::std::os::raw::c_int, arg2: *mut FILE) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn vfprintf( + arg1: *mut FILE, + arg2: *const ::std::os::raw::c_char, + arg3: __builtin_va_list, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn vprintf( + arg1: *const ::std::os::raw::c_char, + arg2: __builtin_va_list, + ) -> ::std::os::raw::c_int; +} +unsafe 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; +} +unsafe extern "C" { + pub fn ctermid(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +unsafe extern "C" { + pub fn fdopen(arg1: ::std::os::raw::c_int, arg2: *const ::std::os::raw::c_char) -> *mut FILE; +} +unsafe extern "C" { + pub fn fileno(arg1: *mut FILE) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pclose(arg1: *mut FILE) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn popen( + arg1: *const ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + ) -> *mut FILE; +} +unsafe extern "C" { + pub fn __srget(arg1: *mut FILE) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn __svfscanf( + arg1: *mut FILE, + arg2: *const ::std::os::raw::c_char, + arg3: va_list, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn __swbuf(arg1: ::std::os::raw::c_int, arg2: *mut FILE) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn flockfile(arg1: *mut FILE); +} +unsafe extern "C" { + pub fn ftrylockfile(arg1: *mut FILE) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn funlockfile(arg1: *mut FILE); +} +unsafe extern "C" { + pub fn getc_unlocked(arg1: *mut FILE) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn getchar_unlocked() -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn putc_unlocked(arg1: ::std::os::raw::c_int, arg2: *mut FILE) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn putchar_unlocked(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn getw(arg1: *mut FILE) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn putw(arg1: ::std::os::raw::c_int, arg2: *mut FILE) -> ::std::os::raw::c_int; +} +unsafe 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; +} +unsafe extern "C" { + pub fn fseeko( + __stream: *mut FILE, + __offset: off_t, + __whence: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn ftello(__stream: *mut FILE) -> off_t; +} +unsafe 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; +} +unsafe extern "C" { + pub fn vfscanf( + __stream: *mut FILE, + __format: *const ::std::os::raw::c_char, + arg1: __builtin_va_list, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn vscanf( + __format: *const ::std::os::raw::c_char, + arg1: __builtin_va_list, + ) -> ::std::os::raw::c_int; +} +unsafe 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; +} +unsafe 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; +} +unsafe extern "C" { + pub fn dprintf( + arg1: ::std::os::raw::c_int, + arg2: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +unsafe 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; +} +unsafe 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; +} +unsafe extern "C" { + pub fn getline( + __linep: *mut *mut ::std::os::raw::c_char, + __linecapp: *mut usize, + __stream: *mut FILE, + ) -> isize; +} +unsafe extern "C" { + pub fn fmemopen( + __buf: *mut ::std::os::raw::c_void, + __size: usize, + __mode: *const ::std::os::raw::c_char, + ) -> *mut FILE; +} +unsafe extern "C" { + pub fn open_memstream( + __bufp: *mut *mut ::std::os::raw::c_char, + __sizep: *mut usize, + ) -> *mut FILE; +} +unsafe extern "C" { + pub static sys_nerr: ::std::os::raw::c_int; +} +unsafe extern "C" { + pub static sys_errlist: [*const ::std::os::raw::c_char; 0usize]; +} +unsafe 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; +} +unsafe extern "C" { + pub fn ctermid_r(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +unsafe extern "C" { + pub fn fgetln(arg1: *mut FILE, arg2: *mut usize) -> *mut ::std::os::raw::c_char; +} +unsafe 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; +} +unsafe extern "C" { + pub fn fpurge(arg1: *mut FILE) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn setbuffer( + arg1: *mut FILE, + arg2: *mut ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + ); +} +unsafe extern "C" { + pub fn setlinebuf(arg1: *mut FILE) -> ::std::os::raw::c_int; +} +unsafe 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; +} +unsafe 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; +} +unsafe 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; +} +unsafe 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; +} +unsafe 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; +} +unsafe 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 my_bool_my_false: my_bool = 0; +pub const my_bool_my_true: my_bool = 1; +pub const my_bool_my_unknown: my_bool = 2; +pub type my_bool = ::std::os::raw::c_uint; +unsafe extern "C" { + pub static mut my_bool_str: [*const ::std::os::raw::c_char; 3usize]; +} +pub const trace_format_e_BINARY_TRACE_FORMAT: trace_format_e = 0; +pub const trace_format_e_TXT_TRACE_FORMAT: trace_format_e = 1; +pub const trace_format_e_INVALID_TRACE_FORMAT: trace_format_e = 2; +pub type trace_format_e = ::std::os::raw::c_uint; +pub const trace_type_e_CSV_TRACE: trace_type_e = 0; +pub const trace_type_e_BIN_TRACE: trace_type_e = 1; +pub const trace_type_e_PLAIN_TXT_TRACE: trace_type_e = 2; +pub const trace_type_e_ORACLE_GENERAL_TRACE: trace_type_e = 3; +pub const trace_type_e_LCS_TRACE: trace_type_e = 4; +pub const trace_type_e_VSCSI_TRACE: trace_type_e = 5; +pub const trace_type_e_TWR_TRACE: trace_type_e = 6; +pub const trace_type_e_TWRNS_TRACE: trace_type_e = 7; +pub const trace_type_e_ORACLE_SIM_TWR_TRACE: trace_type_e = 8; +pub const trace_type_e_ORACLE_SYS_TWR_TRACE: trace_type_e = 9; +pub const trace_type_e_ORACLE_SIM_TWRNS_TRACE: trace_type_e = 10; +pub const trace_type_e_ORACLE_SYS_TWRNS_TRACE: trace_type_e = 11; +pub const trace_type_e_VALPIN_TRACE: trace_type_e = 12; +pub const trace_type_e_UNKNOWN_TRACE: trace_type_e = 13; +pub type trace_type_e = ::std::os::raw::c_uchar; +unsafe extern "C" { + pub static mut g_trace_type_name: [*mut ::std::os::raw::c_char; 15usize]; +} +pub const req_op_e_OP_NOP: req_op_e = 0; +pub const req_op_e_OP_GET: req_op_e = 1; +pub const req_op_e_OP_GETS: req_op_e = 2; +pub const req_op_e_OP_SET: req_op_e = 3; +pub const req_op_e_OP_ADD: req_op_e = 4; +pub const req_op_e_OP_CAS: req_op_e = 5; +pub const req_op_e_OP_REPLACE: req_op_e = 6; +pub const req_op_e_OP_APPEND: req_op_e = 7; +pub const req_op_e_OP_PREPEND: req_op_e = 8; +pub const req_op_e_OP_DELETE: req_op_e = 9; +pub const req_op_e_OP_INCR: req_op_e = 10; +pub const req_op_e_OP_DECR: req_op_e = 11; +pub const req_op_e_OP_READ: req_op_e = 12; +pub const req_op_e_OP_WRITE: req_op_e = 13; +pub const req_op_e_OP_UPDATE: req_op_e = 14; +pub const req_op_e_OP_INVALID: req_op_e = 255; +pub type req_op_e = ::std::os::raw::c_uint; +unsafe extern "C" { + pub static mut req_op_str: [*mut ::std::os::raw::c_char; 257usize]; +} +pub const rstatus_ERR: rstatus = 0; +pub const rstatus_OK: rstatus = 1; +pub const rstatus_MY_EOF: rstatus = 2; +pub type rstatus = ::std::os::raw::c_uint; +unsafe extern "C" { + pub static mut rstatus_str: [*mut ::std::os::raw::c_char; 3usize]; +} +#[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], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of sched_param"][::std::mem::size_of::() - 8usize]; + ["Alignment of sched_param"][::std::mem::align_of::() - 4usize]; + ["Offset of field: sched_param::sched_priority"] + [::std::mem::offset_of!(sched_param, sched_priority) - 0usize]; + ["Offset of field: sched_param::__opaque"] + [::std::mem::offset_of!(sched_param, __opaque) - 4usize]; +}; +unsafe extern "C" { + pub fn sched_yield() -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn sched_get_priority_min(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn sched_get_priority_max(arg1: ::std::os::raw::c_int) -> ::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, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of timespec"][::std::mem::size_of::() - 16usize]; + ["Alignment of timespec"][::std::mem::align_of::() - 8usize]; + ["Offset of field: timespec::tv_sec"][::std::mem::offset_of!(timespec, tv_sec) - 0usize]; + ["Offset of field: timespec::tv_nsec"][::std::mem::offset_of!(timespec, tv_nsec) - 8usize]; +}; +#[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, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of tm"][::std::mem::size_of::() - 56usize]; + ["Alignment of tm"][::std::mem::align_of::() - 8usize]; + ["Offset of field: tm::tm_sec"][::std::mem::offset_of!(tm, tm_sec) - 0usize]; + ["Offset of field: tm::tm_min"][::std::mem::offset_of!(tm, tm_min) - 4usize]; + ["Offset of field: tm::tm_hour"][::std::mem::offset_of!(tm, tm_hour) - 8usize]; + ["Offset of field: tm::tm_mday"][::std::mem::offset_of!(tm, tm_mday) - 12usize]; + ["Offset of field: tm::tm_mon"][::std::mem::offset_of!(tm, tm_mon) - 16usize]; + ["Offset of field: tm::tm_year"][::std::mem::offset_of!(tm, tm_year) - 20usize]; + ["Offset of field: tm::tm_wday"][::std::mem::offset_of!(tm, tm_wday) - 24usize]; + ["Offset of field: tm::tm_yday"][::std::mem::offset_of!(tm, tm_yday) - 28usize]; + ["Offset of field: tm::tm_isdst"][::std::mem::offset_of!(tm, tm_isdst) - 32usize]; + ["Offset of field: tm::tm_gmtoff"][::std::mem::offset_of!(tm, tm_gmtoff) - 40usize]; + ["Offset of field: tm::tm_zone"][::std::mem::offset_of!(tm, tm_zone) - 48usize]; +}; +unsafe extern "C" { + pub static mut tzname: [*mut ::std::os::raw::c_char; 0usize]; +} +unsafe extern "C" { + pub static mut getdate_err: ::std::os::raw::c_int; +} +unsafe extern "C" { + pub static mut timezone: ::std::os::raw::c_long; +} +unsafe extern "C" { + pub static mut daylight: ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn asctime(arg1: *const tm) -> *mut ::std::os::raw::c_char; +} +unsafe extern "C" { + pub fn clock() -> clock_t; +} +unsafe extern "C" { + pub fn ctime(arg1: *const time_t) -> *mut ::std::os::raw::c_char; +} +unsafe extern "C" { + pub fn difftime(arg1: time_t, arg2: time_t) -> f64; +} +unsafe extern "C" { + pub fn getdate(arg1: *const ::std::os::raw::c_char) -> *mut tm; +} +unsafe extern "C" { + pub fn gmtime(arg1: *const time_t) -> *mut tm; +} +unsafe extern "C" { + pub fn localtime(arg1: *const time_t) -> *mut tm; +} +unsafe extern "C" { + pub fn mktime(arg1: *mut tm) -> time_t; +} +unsafe 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; +} +unsafe 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; +} +unsafe extern "C" { + pub fn time(arg1: *mut time_t) -> time_t; +} +unsafe extern "C" { + pub fn tzset(); +} +unsafe extern "C" { + pub fn asctime_r( + arg1: *const tm, + arg2: *mut ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +unsafe extern "C" { + pub fn ctime_r( + arg1: *const time_t, + arg2: *mut ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +unsafe extern "C" { + pub fn gmtime_r(arg1: *const time_t, arg2: *mut tm) -> *mut tm; +} +unsafe extern "C" { + pub fn localtime_r(arg1: *const time_t, arg2: *mut tm) -> *mut tm; +} +unsafe extern "C" { + pub fn posix2time(arg1: time_t) -> time_t; +} +unsafe extern "C" { + pub fn tzsetwall(); +} +unsafe extern "C" { + pub fn time2posix(arg1: time_t) -> time_t; +} +unsafe extern "C" { + pub fn timelocal(arg1: *mut tm) -> time_t; +} +unsafe extern "C" { + pub fn timegm(arg1: *mut tm) -> time_t; +} +unsafe 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; +unsafe extern "C" { + pub fn clock_getres(__clock_id: clockid_t, __res: *mut timespec) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn clock_gettime(__clock_id: clockid_t, __tp: *mut timespec) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn clock_gettime_nsec_np(__clock_id: clockid_t) -> __uint64_t; +} +unsafe extern "C" { + pub fn clock_settime(__clock_id: clockid_t, __tp: *const timespec) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn timespec_get(ts: *mut timespec, base: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +pub type pthread_attr_t = __darwin_pthread_attr_t; +pub type pthread_cond_t = __darwin_pthread_cond_t; +pub type pthread_condattr_t = __darwin_pthread_condattr_t; +pub type pthread_key_t = __darwin_pthread_key_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_t = __darwin_pthread_t; +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; +unsafe extern "C" { + pub fn qos_class_self() -> qos_class_t; +} +unsafe extern "C" { + pub fn qos_class_main() -> qos_class_t; +} +unsafe 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; +} +unsafe 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; +} +unsafe 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; +} +unsafe 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; +unsafe 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; +} +unsafe 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; +pub type sigset_t = __darwin_sigset_t; +unsafe extern "C" { + pub fn pthread_atfork( + arg1: ::std::option::Option, + arg2: ::std::option::Option, + arg3: ::std::option::Option, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_attr_destroy(arg1: *mut pthread_attr_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_attr_getdetachstate( + arg1: *const pthread_attr_t, + arg2: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_attr_getguardsize( + arg1: *const pthread_attr_t, + arg2: *mut usize, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_attr_getinheritsched( + arg1: *const pthread_attr_t, + arg2: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_attr_getschedparam( + arg1: *const pthread_attr_t, + arg2: *mut sched_param, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_attr_getschedpolicy( + arg1: *const pthread_attr_t, + arg2: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_attr_getscope( + arg1: *const pthread_attr_t, + arg2: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe 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; +} +unsafe 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; +} +unsafe extern "C" { + pub fn pthread_attr_getstacksize( + arg1: *const pthread_attr_t, + arg2: *mut usize, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_attr_init(arg1: *mut pthread_attr_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_attr_setdetachstate( + arg1: *mut pthread_attr_t, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_attr_setguardsize( + arg1: *mut pthread_attr_t, + arg2: usize, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_attr_setinheritsched( + arg1: *mut pthread_attr_t, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_attr_setschedparam( + arg1: *mut pthread_attr_t, + arg2: *const sched_param, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_attr_setschedpolicy( + arg1: *mut pthread_attr_t, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_attr_setscope( + arg1: *mut pthread_attr_t, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe 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; +} +unsafe extern "C" { + pub fn pthread_attr_setstackaddr( + arg1: *mut pthread_attr_t, + arg2: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_attr_setstacksize( + arg1: *mut pthread_attr_t, + arg2: usize, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_cancel(arg1: pthread_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_cond_broadcast(arg1: *mut pthread_cond_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_cond_destroy(arg1: *mut pthread_cond_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_cond_init( + arg1: *mut pthread_cond_t, + arg2: *const pthread_condattr_t, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_cond_signal(arg1: *mut pthread_cond_t) -> ::std::os::raw::c_int; +} +unsafe 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; +} +unsafe extern "C" { + pub fn pthread_cond_wait( + arg1: *mut pthread_cond_t, + arg2: *mut pthread_mutex_t, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_condattr_destroy(arg1: *mut pthread_condattr_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_condattr_init(arg1: *mut pthread_condattr_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_condattr_getpshared( + arg1: *const pthread_condattr_t, + arg2: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_condattr_setpshared( + arg1: *mut pthread_condattr_t, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe 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; +} +unsafe extern "C" { + pub fn pthread_detach(arg1: pthread_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_equal(arg1: pthread_t, arg2: pthread_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_exit(arg1: *mut ::std::os::raw::c_void) -> !; +} +unsafe extern "C" { + pub fn pthread_getconcurrency() -> ::std::os::raw::c_int; +} +unsafe 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; +} +unsafe extern "C" { + pub fn pthread_getspecific(arg1: pthread_key_t) -> *mut ::std::os::raw::c_void; +} +unsafe extern "C" { + pub fn pthread_join( + arg1: pthread_t, + arg2: *mut *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_key_create( + arg1: *mut pthread_key_t, + arg2: ::std::option::Option, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_key_delete(arg1: pthread_key_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_mutex_destroy(arg1: *mut pthread_mutex_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_mutex_getprioceiling( + arg1: *const pthread_mutex_t, + arg2: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_mutex_init( + arg1: *mut pthread_mutex_t, + arg2: *const pthread_mutexattr_t, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_mutex_lock(arg1: *mut pthread_mutex_t) -> ::std::os::raw::c_int; +} +unsafe 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; +} +unsafe extern "C" { + pub fn pthread_mutex_trylock(arg1: *mut pthread_mutex_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_mutex_unlock(arg1: *mut pthread_mutex_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_mutexattr_destroy(arg1: *mut pthread_mutexattr_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_mutexattr_getprioceiling( + arg1: *const pthread_mutexattr_t, + arg2: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_mutexattr_getprotocol( + arg1: *const pthread_mutexattr_t, + arg2: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_mutexattr_getpshared( + arg1: *const pthread_mutexattr_t, + arg2: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_mutexattr_gettype( + arg1: *const pthread_mutexattr_t, + arg2: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe 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; +} +unsafe extern "C" { + pub fn pthread_mutexattr_init(arg1: *mut pthread_mutexattr_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_mutexattr_setprioceiling( + arg1: *mut pthread_mutexattr_t, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_mutexattr_setprotocol( + arg1: *mut pthread_mutexattr_t, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_mutexattr_setpshared( + arg1: *mut pthread_mutexattr_t, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_mutexattr_settype( + arg1: *mut pthread_mutexattr_t, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_mutexattr_setpolicy_np( + arg1: *mut pthread_mutexattr_t, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_once( + arg1: *mut pthread_once_t, + arg2: ::std::option::Option, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_rwlock_destroy(arg1: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_rwlock_init( + arg1: *mut pthread_rwlock_t, + arg2: *const pthread_rwlockattr_t, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_rwlock_rdlock(arg1: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_rwlock_tryrdlock(arg1: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_rwlock_trywrlock(arg1: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_rwlock_wrlock(arg1: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_rwlock_unlock(arg1: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_rwlockattr_destroy(arg1: *mut pthread_rwlockattr_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_rwlockattr_getpshared( + arg1: *const pthread_rwlockattr_t, + arg2: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_rwlockattr_init(arg1: *mut pthread_rwlockattr_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_rwlockattr_setpshared( + arg1: *mut pthread_rwlockattr_t, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_self() -> pthread_t; +} +unsafe extern "C" { + pub fn pthread_setcancelstate( + arg1: ::std::os::raw::c_int, + arg2: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_setcanceltype( + arg1: ::std::os::raw::c_int, + arg2: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_setconcurrency(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_setschedparam( + arg1: pthread_t, + arg2: ::std::os::raw::c_int, + arg3: *const sched_param, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_setspecific( + arg1: pthread_key_t, + arg2: *const ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_testcancel(); +} +unsafe extern "C" { + pub fn pthread_is_threaded_np() -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_threadid_np(arg1: pthread_t, arg2: *mut __uint64_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_getname_np( + arg1: pthread_t, + arg2: *mut ::std::os::raw::c_char, + arg3: usize, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_setname_np(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_main_np() -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_mach_thread_np(arg1: pthread_t) -> mach_port_t; +} +unsafe extern "C" { + pub fn pthread_get_stacksize_np(arg1: pthread_t) -> usize; +} +unsafe extern "C" { + pub fn pthread_get_stackaddr_np(arg1: pthread_t) -> *mut ::std::os::raw::c_void; +} +unsafe extern "C" { + pub fn pthread_cond_signal_thread_np( + arg1: *mut pthread_cond_t, + arg2: pthread_t, + ) -> ::std::os::raw::c_int; +} +unsafe 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; +} +unsafe 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; +} +unsafe extern "C" { + pub fn pthread_kill(arg1: pthread_t, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_from_mach_thread_np(arg1: mach_port_t) -> pthread_t; +} +unsafe 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; +} +unsafe extern "C" { + pub fn pthread_yield_np(); +} +unsafe extern "C" { + pub fn pthread_jit_write_protect_np(enabled: ::std::os::raw::c_int); +} +unsafe 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, +>; +unsafe 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; +} +unsafe extern "C" { + pub fn pthread_jit_write_freeze_callbacks_np(); +} +unsafe 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 fd_set { + pub fds_bits: [__int32_t; 32usize], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of fd_set"][::std::mem::size_of::() - 128usize]; + ["Alignment of fd_set"][::std::mem::align_of::() - 4usize]; + ["Offset of field: fd_set::fds_bits"][::std::mem::offset_of!(fd_set, fds_bits) - 0usize]; +}; +unsafe 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; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timeval { + pub tv_sec: __darwin_time_t, + pub tv_usec: __darwin_suseconds_t, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of timeval"][::std::mem::size_of::() - 16usize]; + ["Alignment of timeval"][::std::mem::align_of::() - 8usize]; + ["Offset of field: timeval::tv_sec"][::std::mem::offset_of!(timeval, tv_sec) - 0usize]; + ["Offset of field: timeval::tv_usec"][::std::mem::offset_of!(timeval, tv_usec) - 8usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timeval64 { + pub tv_sec: __int64_t, + pub tv_usec: __int64_t, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of timeval64"][::std::mem::size_of::() - 16usize]; + ["Alignment of timeval64"][::std::mem::align_of::() - 8usize]; + ["Offset of field: timeval64::tv_sec"][::std::mem::offset_of!(timeval64, tv_sec) - 0usize]; + ["Offset of field: timeval64::tv_usec"][::std::mem::offset_of!(timeval64, tv_usec) - 8usize]; +}; +pub type suseconds_t = __darwin_suseconds_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct itimerval { + pub it_interval: timeval, + pub it_value: timeval, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of itimerval"][::std::mem::size_of::() - 32usize]; + ["Alignment of itimerval"][::std::mem::align_of::() - 8usize]; + ["Offset of field: itimerval::it_interval"] + [::std::mem::offset_of!(itimerval, it_interval) - 0usize]; + ["Offset of field: itimerval::it_value"][::std::mem::offset_of!(itimerval, it_value) - 16usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timezone { + pub tz_minuteswest: ::std::os::raw::c_int, + pub tz_dsttime: ::std::os::raw::c_int, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of timezone"][::std::mem::size_of::() - 8usize]; + ["Alignment of timezone"][::std::mem::align_of::() - 4usize]; + ["Offset of field: timezone::tz_minuteswest"] + [::std::mem::offset_of!(timezone, tz_minuteswest) - 0usize]; + ["Offset of field: timezone::tz_dsttime"] + [::std::mem::offset_of!(timezone, tz_dsttime) - 4usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct clockinfo { + pub hz: ::std::os::raw::c_int, + pub tick: ::std::os::raw::c_int, + pub tickadj: ::std::os::raw::c_int, + pub stathz: ::std::os::raw::c_int, + pub profhz: ::std::os::raw::c_int, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of clockinfo"][::std::mem::size_of::() - 20usize]; + ["Alignment of clockinfo"][::std::mem::align_of::() - 4usize]; + ["Offset of field: clockinfo::hz"][::std::mem::offset_of!(clockinfo, hz) - 0usize]; + ["Offset of field: clockinfo::tick"][::std::mem::offset_of!(clockinfo, tick) - 4usize]; + ["Offset of field: clockinfo::tickadj"][::std::mem::offset_of!(clockinfo, tickadj) - 8usize]; + ["Offset of field: clockinfo::stathz"][::std::mem::offset_of!(clockinfo, stathz) - 12usize]; + ["Offset of field: clockinfo::profhz"][::std::mem::offset_of!(clockinfo, profhz) - 16usize]; +}; +unsafe extern "C" { + pub fn adjtime(arg1: *const timeval, arg2: *mut timeval) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn futimes(arg1: ::std::os::raw::c_int, arg2: *const timeval) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn lutimes( + arg1: *const ::std::os::raw::c_char, + arg2: *const timeval, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn settimeofday(arg1: *const timeval, arg2: *const timezone) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn getitimer(arg1: ::std::os::raw::c_int, arg2: *mut itimerval) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn gettimeofday( + arg1: *mut timeval, + arg2: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn select( + arg1: ::std::os::raw::c_int, + arg2: *mut fd_set, + arg3: *mut fd_set, + arg4: *mut fd_set, + arg5: *mut timeval, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn setitimer( + arg1: ::std::os::raw::c_int, + arg2: *const itimerval, + arg3: *mut itimerval, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn utimes( + arg1: *const ::std::os::raw::c_char, + arg2: *const timeval, + ) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct accessx_descriptor { + pub ad_name_offset: ::std::os::raw::c_uint, + pub ad_flags: ::std::os::raw::c_int, + pub ad_pad: [::std::os::raw::c_int; 2usize], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of accessx_descriptor"][::std::mem::size_of::() - 16usize]; + ["Alignment of accessx_descriptor"][::std::mem::align_of::() - 4usize]; + ["Offset of field: accessx_descriptor::ad_name_offset"] + [::std::mem::offset_of!(accessx_descriptor, ad_name_offset) - 0usize]; + ["Offset of field: accessx_descriptor::ad_flags"] + [::std::mem::offset_of!(accessx_descriptor, ad_flags) - 4usize]; + ["Offset of field: accessx_descriptor::ad_pad"] + [::std::mem::offset_of!(accessx_descriptor, ad_pad) - 8usize]; +}; +unsafe extern "C" { + pub fn getattrlistbulk( + arg1: ::std::os::raw::c_int, + arg2: *mut ::std::os::raw::c_void, + arg3: *mut ::std::os::raw::c_void, + arg4: usize, + arg5: u64, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn getattrlistat( + arg1: ::std::os::raw::c_int, + arg2: *const ::std::os::raw::c_char, + arg3: *mut ::std::os::raw::c_void, + arg4: *mut ::std::os::raw::c_void, + arg5: usize, + arg6: ::std::os::raw::c_ulong, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn setattrlistat( + arg1: ::std::os::raw::c_int, + arg2: *const ::std::os::raw::c_char, + arg3: *mut ::std::os::raw::c_void, + arg4: *mut ::std::os::raw::c_void, + arg5: usize, + arg6: u32, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn freadlink( + arg1: ::std::os::raw::c_int, + arg2: *mut ::std::os::raw::c_char, + arg3: usize, + ) -> isize; +} +pub type uid_t = __darwin_uid_t; +pub type gid_t = __darwin_gid_t; +unsafe extern "C" { + pub fn faccessat( + arg1: ::std::os::raw::c_int, + arg2: *const ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + arg4: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn fchownat( + arg1: ::std::os::raw::c_int, + arg2: *const ::std::os::raw::c_char, + arg3: uid_t, + arg4: gid_t, + arg5: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn linkat( + 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_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn readlinkat( + arg1: ::std::os::raw::c_int, + arg2: *const ::std::os::raw::c_char, + arg3: *mut ::std::os::raw::c_char, + arg4: usize, + ) -> isize; +} +unsafe extern "C" { + pub fn symlinkat( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn unlinkat( + arg1: ::std::os::raw::c_int, + arg2: *const ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +pub type pid_t = __darwin_pid_t; +pub type useconds_t = __darwin_useconds_t; +unsafe extern "C" { + pub fn _exit(arg1: ::std::os::raw::c_int) -> !; +} +unsafe extern "C" { + pub fn access( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn alarm(arg1: ::std::os::raw::c_uint) -> ::std::os::raw::c_uint; +} +unsafe extern "C" { + pub fn chdir(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn chown( + arg1: *const ::std::os::raw::c_char, + arg2: uid_t, + arg3: gid_t, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn close(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn dup(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn dup2(arg1: ::std::os::raw::c_int, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn execl( + __path: *const ::std::os::raw::c_char, + __arg0: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn execle( + __path: *const ::std::os::raw::c_char, + __arg0: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn execlp( + __file: *const ::std::os::raw::c_char, + __arg0: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn execv( + __path: *const ::std::os::raw::c_char, + __argv: *const *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn execve( + __file: *const ::std::os::raw::c_char, + __argv: *const *mut ::std::os::raw::c_char, + __envp: *const *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn execvp( + __file: *const ::std::os::raw::c_char, + __argv: *const *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn fork() -> pid_t; +} +unsafe extern "C" { + pub fn fpathconf( + arg1: ::std::os::raw::c_int, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_long; +} +unsafe extern "C" { + pub fn getcwd(arg1: *mut ::std::os::raw::c_char, arg2: usize) -> *mut ::std::os::raw::c_char; +} +unsafe extern "C" { + pub fn getegid() -> gid_t; +} +unsafe extern "C" { + pub fn geteuid() -> uid_t; +} +unsafe extern "C" { + pub fn getgid() -> gid_t; +} +unsafe extern "C" { + pub fn getgroups(arg1: ::std::os::raw::c_int, arg2: *mut gid_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn getlogin() -> *mut ::std::os::raw::c_char; +} +unsafe extern "C" { + pub fn getpgrp() -> pid_t; +} +unsafe extern "C" { + pub fn getpid() -> pid_t; +} +unsafe extern "C" { + pub fn getppid() -> pid_t; +} +unsafe extern "C" { + pub fn getuid() -> uid_t; +} +unsafe extern "C" { + pub fn isatty(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn link( + arg1: *const ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn lseek(arg1: ::std::os::raw::c_int, arg2: off_t, arg3: ::std::os::raw::c_int) -> off_t; +} +unsafe extern "C" { + pub fn pathconf( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_long; +} +unsafe extern "C" { + pub fn pause() -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pipe(arg1: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn read( + arg1: ::std::os::raw::c_int, + arg2: *mut ::std::os::raw::c_void, + arg3: usize, + ) -> isize; +} +unsafe extern "C" { + pub fn rmdir(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn setgid(arg1: gid_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn setpgid(arg1: pid_t, arg2: pid_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn setsid() -> pid_t; +} +unsafe extern "C" { + pub fn setuid(arg1: uid_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn sleep(arg1: ::std::os::raw::c_uint) -> ::std::os::raw::c_uint; +} +unsafe extern "C" { + pub fn sysconf(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_long; +} +unsafe extern "C" { + pub fn tcgetpgrp(arg1: ::std::os::raw::c_int) -> pid_t; +} +unsafe extern "C" { + pub fn tcsetpgrp(arg1: ::std::os::raw::c_int, arg2: pid_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn ttyname(arg1: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; +} +unsafe extern "C" { + pub fn ttyname_r( + arg1: ::std::os::raw::c_int, + arg2: *mut ::std::os::raw::c_char, + arg3: usize, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn unlink(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn write( + __fd: ::std::os::raw::c_int, + __buf: *const ::std::os::raw::c_void, + __nbyte: usize, + ) -> isize; +} +unsafe extern "C" { + pub fn confstr( + arg1: ::std::os::raw::c_int, + arg2: *mut ::std::os::raw::c_char, + arg3: usize, + ) -> usize; +} +unsafe extern "C" { + pub fn getopt( + arg1: ::std::os::raw::c_int, + arg2: *const *mut ::std::os::raw::c_char, + arg3: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub static mut optarg: *mut ::std::os::raw::c_char; +} +unsafe extern "C" { + pub static mut optind: ::std::os::raw::c_int; +} +unsafe extern "C" { + pub static mut opterr: ::std::os::raw::c_int; +} +unsafe extern "C" { + pub static mut optopt: ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn brk(arg1: *const ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void; +} +unsafe extern "C" { + pub fn chroot(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn crypt( + arg1: *const ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +unsafe extern "C" { + pub fn encrypt(arg1: *mut ::std::os::raw::c_char, arg2: ::std::os::raw::c_int); +} +unsafe extern "C" { + pub fn fchdir(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn gethostid() -> ::std::os::raw::c_long; +} +unsafe extern "C" { + pub fn getpgid(arg1: pid_t) -> pid_t; +} +unsafe extern "C" { + pub fn getsid(arg1: pid_t) -> pid_t; +} +unsafe extern "C" { + pub fn getdtablesize() -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn getpagesize() -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn getpass(arg1: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +unsafe extern "C" { + pub fn getwd(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +unsafe extern "C" { + pub fn lchown( + arg1: *const ::std::os::raw::c_char, + arg2: uid_t, + arg3: gid_t, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn lockf( + arg1: ::std::os::raw::c_int, + arg2: ::std::os::raw::c_int, + arg3: off_t, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn nice(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pread( + __fd: ::std::os::raw::c_int, + __buf: *mut ::std::os::raw::c_void, + __nbyte: usize, + __offset: off_t, + ) -> isize; +} +unsafe extern "C" { + pub fn pwrite( + __fd: ::std::os::raw::c_int, + __buf: *const ::std::os::raw::c_void, + __nbyte: usize, + __offset: off_t, + ) -> isize; +} +unsafe extern "C" { + pub fn sbrk(arg1: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_void; +} +unsafe extern "C" { + pub fn setpgrp() -> pid_t; +} +unsafe extern "C" { + pub fn setregid(arg1: gid_t, arg2: gid_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn setreuid(arg1: uid_t, arg2: uid_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn sync(); +} +unsafe extern "C" { + pub fn truncate(arg1: *const ::std::os::raw::c_char, arg2: off_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn ualarm(arg1: useconds_t, arg2: useconds_t) -> useconds_t; +} +unsafe extern "C" { + pub fn usleep(arg1: useconds_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn vfork() -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn fsync(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn ftruncate(arg1: ::std::os::raw::c_int, arg2: off_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn getlogin_r(arg1: *mut ::std::os::raw::c_char, arg2: usize) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn fchown(arg1: ::std::os::raw::c_int, arg2: uid_t, arg3: gid_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn gethostname(arg1: *mut ::std::os::raw::c_char, arg2: usize) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn readlink( + arg1: *const ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_char, + arg3: usize, + ) -> isize; +} +unsafe extern "C" { + pub fn setegid(arg1: gid_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn seteuid(arg1: uid_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn symlink( + arg1: *const ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pselect( + arg1: ::std::os::raw::c_int, + arg2: *mut fd_set, + arg3: *mut fd_set, + arg4: *mut fd_set, + arg5: *const timespec, + arg6: *const sigset_t, + ) -> ::std::os::raw::c_int; +} +pub type dev_t = __darwin_dev_t; +pub type uuid_t = __darwin_uuid_t; +unsafe extern "C" { + pub fn _Exit(arg1: ::std::os::raw::c_int) -> !; +} +unsafe extern "C" { + pub fn accessx_np( + arg1: *const accessx_descriptor, + arg2: usize, + arg3: *mut ::std::os::raw::c_int, + arg4: uid_t, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn acct(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn add_profil( + arg1: *mut ::std::os::raw::c_char, + arg2: usize, + arg3: ::std::os::raw::c_ulong, + arg4: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn endusershell(); +} +unsafe extern "C" { + pub fn execvP( + __file: *const ::std::os::raw::c_char, + __searchpath: *const ::std::os::raw::c_char, + __argv: *const *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn fflagstostr(arg1: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_char; +} +unsafe extern "C" { + pub fn getdomainname( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn getgrouplist( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: *mut ::std::os::raw::c_int, + arg4: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn gethostuuid( + arg1: *mut ::std::os::raw::c_uchar, + arg2: *const timespec, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn getmode(arg1: *const ::std::os::raw::c_void, arg2: mode_t) -> mode_t; +} +unsafe extern "C" { + pub fn getpeereid( + arg1: ::std::os::raw::c_int, + arg2: *mut uid_t, + arg3: *mut gid_t, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn getsgroups_np( + arg1: *mut ::std::os::raw::c_int, + arg2: *mut ::std::os::raw::c_uchar, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn getusershell() -> *mut ::std::os::raw::c_char; +} +unsafe extern "C" { + pub fn getwgroups_np( + arg1: *mut ::std::os::raw::c_int, + arg2: *mut ::std::os::raw::c_uchar, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn initgroups( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn issetugid() -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn mkdtemp(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +unsafe extern "C" { + pub fn mknod( + arg1: *const ::std::os::raw::c_char, + arg2: mode_t, + arg3: dev_t, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn mkpath_np(path: *const ::std::os::raw::c_char, omode: mode_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn mkpathat_np( + dfd: ::std::os::raw::c_int, + path: *const ::std::os::raw::c_char, + omode: mode_t, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn mkstemp(arg1: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn mkstemps( + arg1: *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn mktemp(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +unsafe extern "C" { + pub fn mkostemp( + path: *mut ::std::os::raw::c_char, + oflags: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn mkostemps( + path: *mut ::std::os::raw::c_char, + slen: ::std::os::raw::c_int, + oflags: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn mkstemp_dprotected_np( + path: *mut ::std::os::raw::c_char, + dpclass: ::std::os::raw::c_int, + dpflags: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn mkdtempat_np( + dfd: ::std::os::raw::c_int, + path: *mut ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +unsafe extern "C" { + pub fn mkstempsat_np( + dfd: ::std::os::raw::c_int, + path: *mut ::std::os::raw::c_char, + slen: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn mkostempsat_np( + dfd: ::std::os::raw::c_int, + path: *mut ::std::os::raw::c_char, + slen: ::std::os::raw::c_int, + oflags: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn nfssvc( + arg1: ::std::os::raw::c_int, + arg2: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn profil( + arg1: *mut ::std::os::raw::c_char, + arg2: usize, + arg3: ::std::os::raw::c_ulong, + arg4: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_setugid_np(arg1: uid_t, arg2: gid_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn pthread_getugid_np(arg1: *mut uid_t, arg2: *mut gid_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn reboot(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn revoke(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn rcmd( + arg1: *mut *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: *const ::std::os::raw::c_char, + arg4: *const ::std::os::raw::c_char, + arg5: *const ::std::os::raw::c_char, + arg6: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn rcmd_af( + arg1: *mut *mut ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: *const ::std::os::raw::c_char, + arg4: *const ::std::os::raw::c_char, + arg5: *const ::std::os::raw::c_char, + arg6: *mut ::std::os::raw::c_int, + arg7: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn rresvport(arg1: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn rresvport_af( + arg1: *mut ::std::os::raw::c_int, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn iruserok( + arg1: ::std::os::raw::c_ulong, + arg2: ::std::os::raw::c_int, + arg3: *const ::std::os::raw::c_char, + arg4: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn iruserok_sa( + arg1: *const ::std::os::raw::c_void, + arg2: ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + arg4: *const ::std::os::raw::c_char, + arg5: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn ruserok( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: *const ::std::os::raw::c_char, + arg4: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn setdomainname( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn setgroups(arg1: ::std::os::raw::c_int, arg2: *const gid_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn sethostid(arg1: ::std::os::raw::c_long); +} +unsafe extern "C" { + pub fn sethostname( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn setkey(arg1: *const ::std::os::raw::c_char); +} +unsafe extern "C" { + pub fn setlogin(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn setmode(arg1: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_void; +} +unsafe extern "C" { + pub fn setrgid(arg1: gid_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn setruid(arg1: uid_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn setsgroups_np( + arg1: ::std::os::raw::c_int, + arg2: *const ::std::os::raw::c_uchar, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn setusershell(); +} +unsafe extern "C" { + pub fn setwgroups_np( + arg1: ::std::os::raw::c_int, + arg2: *const ::std::os::raw::c_uchar, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn strtofflags( + arg1: *mut *mut ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_ulong, + arg3: *mut ::std::os::raw::c_ulong, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn swapon(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn ttyslot() -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn undelete(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn unwhiteout(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn valloc(arg1: usize) -> *mut ::std::os::raw::c_void; +} +unsafe extern "C" { + pub fn syscall(arg1: ::std::os::raw::c_int, ...) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub static mut suboptarg: *mut ::std::os::raw::c_char; +} +unsafe 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; +} +unsafe extern "C" { + pub fn fgetattrlist( + arg1: ::std::os::raw::c_int, + arg2: *mut ::std::os::raw::c_void, + arg3: *mut ::std::os::raw::c_void, + arg4: usize, + arg5: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn fsetattrlist( + arg1: ::std::os::raw::c_int, + arg2: *mut ::std::os::raw::c_void, + arg3: *mut ::std::os::raw::c_void, + arg4: usize, + arg5: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn getattrlist( + arg1: *const ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_void, + arg3: *mut ::std::os::raw::c_void, + arg4: usize, + arg5: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn setattrlist( + arg1: *const ::std::os::raw::c_char, + arg2: *mut ::std::os::raw::c_void, + arg3: *mut ::std::os::raw::c_void, + arg4: usize, + arg5: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn exchangedata( + 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; +} +unsafe extern "C" { + pub fn getdirentriesattr( + arg1: ::std::os::raw::c_int, + arg2: *mut ::std::os::raw::c_void, + arg3: *mut ::std::os::raw::c_void, + arg4: usize, + arg5: *mut ::std::os::raw::c_uint, + arg6: *mut ::std::os::raw::c_uint, + arg7: *mut ::std::os::raw::c_uint, + arg8: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fssearchblock { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct searchstate { + _unused: [u8; 0], +} +unsafe extern "C" { + pub fn searchfs( + arg1: *const ::std::os::raw::c_char, + arg2: *mut fssearchblock, + arg3: *mut ::std::os::raw::c_ulong, + arg4: ::std::os::raw::c_uint, + arg5: ::std::os::raw::c_uint, + arg6: *mut searchstate, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn fsctl( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_ulong, + arg3: *mut ::std::os::raw::c_void, + arg4: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn ffsctl( + arg1: ::std::os::raw::c_int, + arg2: ::std::os::raw::c_ulong, + arg3: *mut ::std::os::raw::c_void, + arg4: ::std::os::raw::c_uint, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn fsync_volume_np( + arg1: ::std::os::raw::c_int, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn sync_volume_np( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub static mut optreset: ::std::os::raw::c_int; +} +unsafe extern "C" { + #[link_name = "log_header__extern"] + pub fn log_header( + level: ::std::os::raw::c_int, + file: *const ::std::os::raw::c_char, + line: ::std::os::raw::c_int, + ); +} +unsafe extern "C" { + pub fn print_stack_trace(); +} +unsafe extern "C" { + pub static mut log_mtx: pthread_mutex_t; +} +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 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, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of __darwin_arm_exception_state"] + [::std::mem::size_of::<__darwin_arm_exception_state>() - 12usize]; + ["Alignment of __darwin_arm_exception_state"] + [::std::mem::align_of::<__darwin_arm_exception_state>() - 4usize]; + ["Offset of field: __darwin_arm_exception_state::__exception"] + [::std::mem::offset_of!(__darwin_arm_exception_state, __exception) - 0usize]; + ["Offset of field: __darwin_arm_exception_state::__fsr"] + [::std::mem::offset_of!(__darwin_arm_exception_state, __fsr) - 4usize]; + ["Offset of field: __darwin_arm_exception_state::__far"] + [::std::mem::offset_of!(__darwin_arm_exception_state, __far) - 8usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __darwin_arm_exception_state64 { + pub __far: __uint64_t, + pub __esr: __uint32_t, + pub __exception: __uint32_t, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of __darwin_arm_exception_state64"] + [::std::mem::size_of::<__darwin_arm_exception_state64>() - 16usize]; + ["Alignment of __darwin_arm_exception_state64"] + [::std::mem::align_of::<__darwin_arm_exception_state64>() - 8usize]; + ["Offset of field: __darwin_arm_exception_state64::__far"] + [::std::mem::offset_of!(__darwin_arm_exception_state64, __far) - 0usize]; + ["Offset of field: __darwin_arm_exception_state64::__esr"] + [::std::mem::offset_of!(__darwin_arm_exception_state64, __esr) - 8usize]; + ["Offset of field: __darwin_arm_exception_state64::__exception"] + [::std::mem::offset_of!(__darwin_arm_exception_state64, __exception) - 12usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __darwin_arm_exception_state64_v2 { + pub __far: __uint64_t, + pub __esr: __uint64_t, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of __darwin_arm_exception_state64_v2"] + [::std::mem::size_of::<__darwin_arm_exception_state64_v2>() - 16usize]; + ["Alignment of __darwin_arm_exception_state64_v2"] + [::std::mem::align_of::<__darwin_arm_exception_state64_v2>() - 8usize]; + ["Offset of field: __darwin_arm_exception_state64_v2::__far"] + [::std::mem::offset_of!(__darwin_arm_exception_state64_v2, __far) - 0usize]; + ["Offset of field: __darwin_arm_exception_state64_v2::__esr"] + [::std::mem::offset_of!(__darwin_arm_exception_state64_v2, __esr) - 8usize]; +}; +#[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, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of __darwin_arm_thread_state"] + [::std::mem::size_of::<__darwin_arm_thread_state>() - 68usize]; + ["Alignment of __darwin_arm_thread_state"] + [::std::mem::align_of::<__darwin_arm_thread_state>() - 4usize]; + ["Offset of field: __darwin_arm_thread_state::__r"] + [::std::mem::offset_of!(__darwin_arm_thread_state, __r) - 0usize]; + ["Offset of field: __darwin_arm_thread_state::__sp"] + [::std::mem::offset_of!(__darwin_arm_thread_state, __sp) - 52usize]; + ["Offset of field: __darwin_arm_thread_state::__lr"] + [::std::mem::offset_of!(__darwin_arm_thread_state, __lr) - 56usize]; + ["Offset of field: __darwin_arm_thread_state::__pc"] + [::std::mem::offset_of!(__darwin_arm_thread_state, __pc) - 60usize]; + ["Offset of field: __darwin_arm_thread_state::__cpsr"] + [::std::mem::offset_of!(__darwin_arm_thread_state, __cpsr) - 64usize]; +}; +#[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, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of __darwin_arm_thread_state64"] + [::std::mem::size_of::<__darwin_arm_thread_state64>() - 272usize]; + ["Alignment of __darwin_arm_thread_state64"] + [::std::mem::align_of::<__darwin_arm_thread_state64>() - 8usize]; + ["Offset of field: __darwin_arm_thread_state64::__x"] + [::std::mem::offset_of!(__darwin_arm_thread_state64, __x) - 0usize]; + ["Offset of field: __darwin_arm_thread_state64::__fp"] + [::std::mem::offset_of!(__darwin_arm_thread_state64, __fp) - 232usize]; + ["Offset of field: __darwin_arm_thread_state64::__lr"] + [::std::mem::offset_of!(__darwin_arm_thread_state64, __lr) - 240usize]; + ["Offset of field: __darwin_arm_thread_state64::__sp"] + [::std::mem::offset_of!(__darwin_arm_thread_state64, __sp) - 248usize]; + ["Offset of field: __darwin_arm_thread_state64::__pc"] + [::std::mem::offset_of!(__darwin_arm_thread_state64, __pc) - 256usize]; + ["Offset of field: __darwin_arm_thread_state64::__cpsr"] + [::std::mem::offset_of!(__darwin_arm_thread_state64, __cpsr) - 264usize]; + ["Offset of field: __darwin_arm_thread_state64::__pad"] + [::std::mem::offset_of!(__darwin_arm_thread_state64, __pad) - 268usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __darwin_arm_vfp_state { + pub __r: [__uint32_t; 64usize], + pub __fpscr: __uint32_t, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of __darwin_arm_vfp_state"][::std::mem::size_of::<__darwin_arm_vfp_state>() - 260usize]; + ["Alignment of __darwin_arm_vfp_state"] + [::std::mem::align_of::<__darwin_arm_vfp_state>() - 4usize]; + ["Offset of field: __darwin_arm_vfp_state::__r"] + [::std::mem::offset_of!(__darwin_arm_vfp_state, __r) - 0usize]; + ["Offset of field: __darwin_arm_vfp_state::__fpscr"] + [::std::mem::offset_of!(__darwin_arm_vfp_state, __fpscr) - 256usize]; +}; +#[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, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of __darwin_arm_neon_state64"] + [::std::mem::size_of::<__darwin_arm_neon_state64>() - 528usize]; + ["Alignment of __darwin_arm_neon_state64"] + [::std::mem::align_of::<__darwin_arm_neon_state64>() - 16usize]; + ["Offset of field: __darwin_arm_neon_state64::__v"] + [::std::mem::offset_of!(__darwin_arm_neon_state64, __v) - 0usize]; + ["Offset of field: __darwin_arm_neon_state64::__fpsr"] + [::std::mem::offset_of!(__darwin_arm_neon_state64, __fpsr) - 512usize]; + ["Offset of field: __darwin_arm_neon_state64::__fpcr"] + [::std::mem::offset_of!(__darwin_arm_neon_state64, __fpcr) - 516usize]; +}; +#[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, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of __darwin_arm_neon_state"] + [::std::mem::size_of::<__darwin_arm_neon_state>() - 272usize]; + ["Alignment of __darwin_arm_neon_state"] + [::std::mem::align_of::<__darwin_arm_neon_state>() - 16usize]; + ["Offset of field: __darwin_arm_neon_state::__v"] + [::std::mem::offset_of!(__darwin_arm_neon_state, __v) - 0usize]; + ["Offset of field: __darwin_arm_neon_state::__fpsr"] + [::std::mem::offset_of!(__darwin_arm_neon_state, __fpsr) - 256usize]; + ["Offset of field: __darwin_arm_neon_state::__fpcr"] + [::std::mem::offset_of!(__darwin_arm_neon_state, __fpcr) - 260usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __arm_pagein_state { + pub __pagein_error: ::std::os::raw::c_int, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of __arm_pagein_state"][::std::mem::size_of::<__arm_pagein_state>() - 4usize]; + ["Alignment of __arm_pagein_state"][::std::mem::align_of::<__arm_pagein_state>() - 4usize]; + ["Offset of field: __arm_pagein_state::__pagein_error"] + [::std::mem::offset_of!(__arm_pagein_state, __pagein_error) - 0usize]; +}; +#[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], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of __arm_legacy_debug_state"] + [::std::mem::size_of::<__arm_legacy_debug_state>() - 256usize]; + ["Alignment of __arm_legacy_debug_state"] + [::std::mem::align_of::<__arm_legacy_debug_state>() - 4usize]; + ["Offset of field: __arm_legacy_debug_state::__bvr"] + [::std::mem::offset_of!(__arm_legacy_debug_state, __bvr) - 0usize]; + ["Offset of field: __arm_legacy_debug_state::__bcr"] + [::std::mem::offset_of!(__arm_legacy_debug_state, __bcr) - 64usize]; + ["Offset of field: __arm_legacy_debug_state::__wvr"] + [::std::mem::offset_of!(__arm_legacy_debug_state, __wvr) - 128usize]; + ["Offset of field: __arm_legacy_debug_state::__wcr"] + [::std::mem::offset_of!(__arm_legacy_debug_state, __wcr) - 192usize]; +}; +#[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, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of __darwin_arm_debug_state32"] + [::std::mem::size_of::<__darwin_arm_debug_state32>() - 264usize]; + ["Alignment of __darwin_arm_debug_state32"] + [::std::mem::align_of::<__darwin_arm_debug_state32>() - 8usize]; + ["Offset of field: __darwin_arm_debug_state32::__bvr"] + [::std::mem::offset_of!(__darwin_arm_debug_state32, __bvr) - 0usize]; + ["Offset of field: __darwin_arm_debug_state32::__bcr"] + [::std::mem::offset_of!(__darwin_arm_debug_state32, __bcr) - 64usize]; + ["Offset of field: __darwin_arm_debug_state32::__wvr"] + [::std::mem::offset_of!(__darwin_arm_debug_state32, __wvr) - 128usize]; + ["Offset of field: __darwin_arm_debug_state32::__wcr"] + [::std::mem::offset_of!(__darwin_arm_debug_state32, __wcr) - 192usize]; + ["Offset of field: __darwin_arm_debug_state32::__mdscr_el1"] + [::std::mem::offset_of!(__darwin_arm_debug_state32, __mdscr_el1) - 256usize]; +}; +#[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, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of __darwin_arm_debug_state64"] + [::std::mem::size_of::<__darwin_arm_debug_state64>() - 520usize]; + ["Alignment of __darwin_arm_debug_state64"] + [::std::mem::align_of::<__darwin_arm_debug_state64>() - 8usize]; + ["Offset of field: __darwin_arm_debug_state64::__bvr"] + [::std::mem::offset_of!(__darwin_arm_debug_state64, __bvr) - 0usize]; + ["Offset of field: __darwin_arm_debug_state64::__bcr"] + [::std::mem::offset_of!(__darwin_arm_debug_state64, __bcr) - 128usize]; + ["Offset of field: __darwin_arm_debug_state64::__wvr"] + [::std::mem::offset_of!(__darwin_arm_debug_state64, __wvr) - 256usize]; + ["Offset of field: __darwin_arm_debug_state64::__wcr"] + [::std::mem::offset_of!(__darwin_arm_debug_state64, __wcr) - 384usize]; + ["Offset of field: __darwin_arm_debug_state64::__mdscr_el1"] + [::std::mem::offset_of!(__darwin_arm_debug_state64, __mdscr_el1) - 512usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __darwin_arm_cpmu_state64 { + pub __ctrs: [__uint64_t; 16usize], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of __darwin_arm_cpmu_state64"] + [::std::mem::size_of::<__darwin_arm_cpmu_state64>() - 128usize]; + ["Alignment of __darwin_arm_cpmu_state64"] + [::std::mem::align_of::<__darwin_arm_cpmu_state64>() - 8usize]; + ["Offset of field: __darwin_arm_cpmu_state64::__ctrs"] + [::std::mem::offset_of!(__darwin_arm_cpmu_state64, __ctrs) - 0usize]; +}; +#[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, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of __darwin_mcontext32"][::std::mem::size_of::<__darwin_mcontext32>() - 340usize]; + ["Alignment of __darwin_mcontext32"][::std::mem::align_of::<__darwin_mcontext32>() - 4usize]; + ["Offset of field: __darwin_mcontext32::__es"] + [::std::mem::offset_of!(__darwin_mcontext32, __es) - 0usize]; + ["Offset of field: __darwin_mcontext32::__ss"] + [::std::mem::offset_of!(__darwin_mcontext32, __ss) - 12usize]; + ["Offset of field: __darwin_mcontext32::__fs"] + [::std::mem::offset_of!(__darwin_mcontext32, __fs) - 80usize]; +}; +#[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, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of __darwin_mcontext64"][::std::mem::size_of::<__darwin_mcontext64>() - 816usize]; + ["Alignment of __darwin_mcontext64"][::std::mem::align_of::<__darwin_mcontext64>() - 16usize]; + ["Offset of field: __darwin_mcontext64::__es"] + [::std::mem::offset_of!(__darwin_mcontext64, __es) - 0usize]; + ["Offset of field: __darwin_mcontext64::__ss"] + [::std::mem::offset_of!(__darwin_mcontext64, __ss) - 16usize]; + ["Offset of field: __darwin_mcontext64::__ns"] + [::std::mem::offset_of!(__darwin_mcontext64, __ns) - 288usize]; +}; +pub type mcontext_t = *mut __darwin_mcontext64; +#[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, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of __darwin_sigaltstack"][::std::mem::size_of::<__darwin_sigaltstack>() - 24usize]; + ["Alignment of __darwin_sigaltstack"][::std::mem::align_of::<__darwin_sigaltstack>() - 8usize]; + ["Offset of field: __darwin_sigaltstack::ss_sp"] + [::std::mem::offset_of!(__darwin_sigaltstack, ss_sp) - 0usize]; + ["Offset of field: __darwin_sigaltstack::ss_size"] + [::std::mem::offset_of!(__darwin_sigaltstack, ss_size) - 8usize]; + ["Offset of field: __darwin_sigaltstack::ss_flags"] + [::std::mem::offset_of!(__darwin_sigaltstack, ss_flags) - 16usize]; +}; +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, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of __darwin_ucontext"][::std::mem::size_of::<__darwin_ucontext>() - 56usize]; + ["Alignment of __darwin_ucontext"][::std::mem::align_of::<__darwin_ucontext>() - 8usize]; + ["Offset of field: __darwin_ucontext::uc_onstack"] + [::std::mem::offset_of!(__darwin_ucontext, uc_onstack) - 0usize]; + ["Offset of field: __darwin_ucontext::uc_sigmask"] + [::std::mem::offset_of!(__darwin_ucontext, uc_sigmask) - 4usize]; + ["Offset of field: __darwin_ucontext::uc_stack"] + [::std::mem::offset_of!(__darwin_ucontext, uc_stack) - 8usize]; + ["Offset of field: __darwin_ucontext::uc_link"] + [::std::mem::offset_of!(__darwin_ucontext, uc_link) - 32usize]; + ["Offset of field: __darwin_ucontext::uc_mcsize"] + [::std::mem::offset_of!(__darwin_ucontext, uc_mcsize) - 40usize]; + ["Offset of field: __darwin_ucontext::uc_mcontext"] + [::std::mem::offset_of!(__darwin_ucontext, uc_mcontext) - 48usize]; +}; +pub type ucontext_t = __darwin_ucontext; +#[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, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of sigval"][::std::mem::size_of::() - 8usize]; + ["Alignment of sigval"][::std::mem::align_of::() - 8usize]; + ["Offset of field: sigval::sival_int"][::std::mem::offset_of!(sigval, sival_int) - 0usize]; + ["Offset of field: sigval::sival_ptr"][::std::mem::offset_of!(sigval, sival_ptr) - 0usize]; +}; +#[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, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of sigevent"][::std::mem::size_of::() - 32usize]; + ["Alignment of sigevent"][::std::mem::align_of::() - 8usize]; + ["Offset of field: sigevent::sigev_notify"] + [::std::mem::offset_of!(sigevent, sigev_notify) - 0usize]; + ["Offset of field: sigevent::sigev_signo"] + [::std::mem::offset_of!(sigevent, sigev_signo) - 4usize]; + ["Offset of field: sigevent::sigev_value"] + [::std::mem::offset_of!(sigevent, sigev_value) - 8usize]; + ["Offset of field: sigevent::sigev_notify_function"] + [::std::mem::offset_of!(sigevent, sigev_notify_function) - 16usize]; + ["Offset of field: sigevent::sigev_notify_attributes"] + [::std::mem::offset_of!(sigevent, sigev_notify_attributes) - 24usize]; +}; +#[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], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of __siginfo"][::std::mem::size_of::<__siginfo>() - 104usize]; + ["Alignment of __siginfo"][::std::mem::align_of::<__siginfo>() - 8usize]; + ["Offset of field: __siginfo::si_signo"][::std::mem::offset_of!(__siginfo, si_signo) - 0usize]; + ["Offset of field: __siginfo::si_errno"][::std::mem::offset_of!(__siginfo, si_errno) - 4usize]; + ["Offset of field: __siginfo::si_code"][::std::mem::offset_of!(__siginfo, si_code) - 8usize]; + ["Offset of field: __siginfo::si_pid"][::std::mem::offset_of!(__siginfo, si_pid) - 12usize]; + ["Offset of field: __siginfo::si_uid"][::std::mem::offset_of!(__siginfo, si_uid) - 16usize]; + ["Offset of field: __siginfo::si_status"] + [::std::mem::offset_of!(__siginfo, si_status) - 20usize]; + ["Offset of field: __siginfo::si_addr"][::std::mem::offset_of!(__siginfo, si_addr) - 24usize]; + ["Offset of field: __siginfo::si_value"][::std::mem::offset_of!(__siginfo, si_value) - 32usize]; + ["Offset of field: __siginfo::si_band"][::std::mem::offset_of!(__siginfo, si_band) - 40usize]; + ["Offset of field: __siginfo::__pad"][::std::mem::offset_of!(__siginfo, __pad) - 48usize]; +}; +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, + ), + >, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of __sigaction_u"][::std::mem::size_of::<__sigaction_u>() - 8usize]; + ["Alignment of __sigaction_u"][::std::mem::align_of::<__sigaction_u>() - 8usize]; + ["Offset of field: __sigaction_u::__sa_handler"] + [::std::mem::offset_of!(__sigaction_u, __sa_handler) - 0usize]; + ["Offset of field: __sigaction_u::__sa_sigaction"] + [::std::mem::offset_of!(__sigaction_u, __sa_sigaction) - 0usize]; +}; +#[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, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of __sigaction"][::std::mem::size_of::<__sigaction>() - 24usize]; + ["Alignment of __sigaction"][::std::mem::align_of::<__sigaction>() - 8usize]; + ["Offset of field: __sigaction::__sigaction_u"] + [::std::mem::offset_of!(__sigaction, __sigaction_u) - 0usize]; + ["Offset of field: __sigaction::sa_tramp"] + [::std::mem::offset_of!(__sigaction, sa_tramp) - 8usize]; + ["Offset of field: __sigaction::sa_mask"] + [::std::mem::offset_of!(__sigaction, sa_mask) - 16usize]; + ["Offset of field: __sigaction::sa_flags"] + [::std::mem::offset_of!(__sigaction, sa_flags) - 20usize]; +}; +#[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, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of sigaction"][::std::mem::size_of::() - 16usize]; + ["Alignment of sigaction"][::std::mem::align_of::() - 8usize]; + ["Offset of field: sigaction::__sigaction_u"] + [::std::mem::offset_of!(sigaction, __sigaction_u) - 0usize]; + ["Offset of field: sigaction::sa_mask"][::std::mem::offset_of!(sigaction, sa_mask) - 8usize]; + ["Offset of field: sigaction::sa_flags"][::std::mem::offset_of!(sigaction, sa_flags) - 12usize]; +}; +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, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of sigvec"][::std::mem::size_of::() - 16usize]; + ["Alignment of sigvec"][::std::mem::align_of::() - 8usize]; + ["Offset of field: sigvec::sv_handler"][::std::mem::offset_of!(sigvec, sv_handler) - 0usize]; + ["Offset of field: sigvec::sv_mask"][::std::mem::offset_of!(sigvec, sv_mask) - 8usize]; + ["Offset of field: sigvec::sv_flags"][::std::mem::offset_of!(sigvec, sv_flags) - 12usize]; +}; +#[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, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of sigstack"][::std::mem::size_of::() - 16usize]; + ["Alignment of sigstack"][::std::mem::align_of::() - 8usize]; + ["Offset of field: sigstack::ss_sp"][::std::mem::offset_of!(sigstack, ss_sp) - 0usize]; + ["Offset of field: sigstack::ss_onstack"] + [::std::mem::offset_of!(sigstack, ss_onstack) - 8usize]; +}; +unsafe 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, + ), + >; +} +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, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of rusage"][::std::mem::size_of::() - 144usize]; + ["Alignment of rusage"][::std::mem::align_of::() - 8usize]; + ["Offset of field: rusage::ru_utime"][::std::mem::offset_of!(rusage, ru_utime) - 0usize]; + ["Offset of field: rusage::ru_stime"][::std::mem::offset_of!(rusage, ru_stime) - 16usize]; + ["Offset of field: rusage::ru_maxrss"][::std::mem::offset_of!(rusage, ru_maxrss) - 32usize]; + ["Offset of field: rusage::ru_ixrss"][::std::mem::offset_of!(rusage, ru_ixrss) - 40usize]; + ["Offset of field: rusage::ru_idrss"][::std::mem::offset_of!(rusage, ru_idrss) - 48usize]; + ["Offset of field: rusage::ru_isrss"][::std::mem::offset_of!(rusage, ru_isrss) - 56usize]; + ["Offset of field: rusage::ru_minflt"][::std::mem::offset_of!(rusage, ru_minflt) - 64usize]; + ["Offset of field: rusage::ru_majflt"][::std::mem::offset_of!(rusage, ru_majflt) - 72usize]; + ["Offset of field: rusage::ru_nswap"][::std::mem::offset_of!(rusage, ru_nswap) - 80usize]; + ["Offset of field: rusage::ru_inblock"][::std::mem::offset_of!(rusage, ru_inblock) - 88usize]; + ["Offset of field: rusage::ru_oublock"][::std::mem::offset_of!(rusage, ru_oublock) - 96usize]; + ["Offset of field: rusage::ru_msgsnd"][::std::mem::offset_of!(rusage, ru_msgsnd) - 104usize]; + ["Offset of field: rusage::ru_msgrcv"][::std::mem::offset_of!(rusage, ru_msgrcv) - 112usize]; + ["Offset of field: rusage::ru_nsignals"] + [::std::mem::offset_of!(rusage, ru_nsignals) - 120usize]; + ["Offset of field: rusage::ru_nvcsw"][::std::mem::offset_of!(rusage, ru_nvcsw) - 128usize]; + ["Offset of field: rusage::ru_nivcsw"][::std::mem::offset_of!(rusage, ru_nivcsw) - 136usize]; +}; +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, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of rusage_info_v0"][::std::mem::size_of::() - 96usize]; + ["Alignment of rusage_info_v0"][::std::mem::align_of::() - 8usize]; + ["Offset of field: rusage_info_v0::ri_uuid"] + [::std::mem::offset_of!(rusage_info_v0, ri_uuid) - 0usize]; + ["Offset of field: rusage_info_v0::ri_user_time"] + [::std::mem::offset_of!(rusage_info_v0, ri_user_time) - 16usize]; + ["Offset of field: rusage_info_v0::ri_system_time"] + [::std::mem::offset_of!(rusage_info_v0, ri_system_time) - 24usize]; + ["Offset of field: rusage_info_v0::ri_pkg_idle_wkups"] + [::std::mem::offset_of!(rusage_info_v0, ri_pkg_idle_wkups) - 32usize]; + ["Offset of field: rusage_info_v0::ri_interrupt_wkups"] + [::std::mem::offset_of!(rusage_info_v0, ri_interrupt_wkups) - 40usize]; + ["Offset of field: rusage_info_v0::ri_pageins"] + [::std::mem::offset_of!(rusage_info_v0, ri_pageins) - 48usize]; + ["Offset of field: rusage_info_v0::ri_wired_size"] + [::std::mem::offset_of!(rusage_info_v0, ri_wired_size) - 56usize]; + ["Offset of field: rusage_info_v0::ri_resident_size"] + [::std::mem::offset_of!(rusage_info_v0, ri_resident_size) - 64usize]; + ["Offset of field: rusage_info_v0::ri_phys_footprint"] + [::std::mem::offset_of!(rusage_info_v0, ri_phys_footprint) - 72usize]; + ["Offset of field: rusage_info_v0::ri_proc_start_abstime"] + [::std::mem::offset_of!(rusage_info_v0, ri_proc_start_abstime) - 80usize]; + ["Offset of field: rusage_info_v0::ri_proc_exit_abstime"] + [::std::mem::offset_of!(rusage_info_v0, ri_proc_exit_abstime) - 88usize]; +}; +#[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, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of rusage_info_v1"][::std::mem::size_of::() - 144usize]; + ["Alignment of rusage_info_v1"][::std::mem::align_of::() - 8usize]; + ["Offset of field: rusage_info_v1::ri_uuid"] + [::std::mem::offset_of!(rusage_info_v1, ri_uuid) - 0usize]; + ["Offset of field: rusage_info_v1::ri_user_time"] + [::std::mem::offset_of!(rusage_info_v1, ri_user_time) - 16usize]; + ["Offset of field: rusage_info_v1::ri_system_time"] + [::std::mem::offset_of!(rusage_info_v1, ri_system_time) - 24usize]; + ["Offset of field: rusage_info_v1::ri_pkg_idle_wkups"] + [::std::mem::offset_of!(rusage_info_v1, ri_pkg_idle_wkups) - 32usize]; + ["Offset of field: rusage_info_v1::ri_interrupt_wkups"] + [::std::mem::offset_of!(rusage_info_v1, ri_interrupt_wkups) - 40usize]; + ["Offset of field: rusage_info_v1::ri_pageins"] + [::std::mem::offset_of!(rusage_info_v1, ri_pageins) - 48usize]; + ["Offset of field: rusage_info_v1::ri_wired_size"] + [::std::mem::offset_of!(rusage_info_v1, ri_wired_size) - 56usize]; + ["Offset of field: rusage_info_v1::ri_resident_size"] + [::std::mem::offset_of!(rusage_info_v1, ri_resident_size) - 64usize]; + ["Offset of field: rusage_info_v1::ri_phys_footprint"] + [::std::mem::offset_of!(rusage_info_v1, ri_phys_footprint) - 72usize]; + ["Offset of field: rusage_info_v1::ri_proc_start_abstime"] + [::std::mem::offset_of!(rusage_info_v1, ri_proc_start_abstime) - 80usize]; + ["Offset of field: rusage_info_v1::ri_proc_exit_abstime"] + [::std::mem::offset_of!(rusage_info_v1, ri_proc_exit_abstime) - 88usize]; + ["Offset of field: rusage_info_v1::ri_child_user_time"] + [::std::mem::offset_of!(rusage_info_v1, ri_child_user_time) - 96usize]; + ["Offset of field: rusage_info_v1::ri_child_system_time"] + [::std::mem::offset_of!(rusage_info_v1, ri_child_system_time) - 104usize]; + ["Offset of field: rusage_info_v1::ri_child_pkg_idle_wkups"] + [::std::mem::offset_of!(rusage_info_v1, ri_child_pkg_idle_wkups) - 112usize]; + ["Offset of field: rusage_info_v1::ri_child_interrupt_wkups"] + [::std::mem::offset_of!(rusage_info_v1, ri_child_interrupt_wkups) - 120usize]; + ["Offset of field: rusage_info_v1::ri_child_pageins"] + [::std::mem::offset_of!(rusage_info_v1, ri_child_pageins) - 128usize]; + ["Offset of field: rusage_info_v1::ri_child_elapsed_abstime"] + [::std::mem::offset_of!(rusage_info_v1, ri_child_elapsed_abstime) - 136usize]; +}; +#[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, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of rusage_info_v2"][::std::mem::size_of::() - 160usize]; + ["Alignment of rusage_info_v2"][::std::mem::align_of::() - 8usize]; + ["Offset of field: rusage_info_v2::ri_uuid"] + [::std::mem::offset_of!(rusage_info_v2, ri_uuid) - 0usize]; + ["Offset of field: rusage_info_v2::ri_user_time"] + [::std::mem::offset_of!(rusage_info_v2, ri_user_time) - 16usize]; + ["Offset of field: rusage_info_v2::ri_system_time"] + [::std::mem::offset_of!(rusage_info_v2, ri_system_time) - 24usize]; + ["Offset of field: rusage_info_v2::ri_pkg_idle_wkups"] + [::std::mem::offset_of!(rusage_info_v2, ri_pkg_idle_wkups) - 32usize]; + ["Offset of field: rusage_info_v2::ri_interrupt_wkups"] + [::std::mem::offset_of!(rusage_info_v2, ri_interrupt_wkups) - 40usize]; + ["Offset of field: rusage_info_v2::ri_pageins"] + [::std::mem::offset_of!(rusage_info_v2, ri_pageins) - 48usize]; + ["Offset of field: rusage_info_v2::ri_wired_size"] + [::std::mem::offset_of!(rusage_info_v2, ri_wired_size) - 56usize]; + ["Offset of field: rusage_info_v2::ri_resident_size"] + [::std::mem::offset_of!(rusage_info_v2, ri_resident_size) - 64usize]; + ["Offset of field: rusage_info_v2::ri_phys_footprint"] + [::std::mem::offset_of!(rusage_info_v2, ri_phys_footprint) - 72usize]; + ["Offset of field: rusage_info_v2::ri_proc_start_abstime"] + [::std::mem::offset_of!(rusage_info_v2, ri_proc_start_abstime) - 80usize]; + ["Offset of field: rusage_info_v2::ri_proc_exit_abstime"] + [::std::mem::offset_of!(rusage_info_v2, ri_proc_exit_abstime) - 88usize]; + ["Offset of field: rusage_info_v2::ri_child_user_time"] + [::std::mem::offset_of!(rusage_info_v2, ri_child_user_time) - 96usize]; + ["Offset of field: rusage_info_v2::ri_child_system_time"] + [::std::mem::offset_of!(rusage_info_v2, ri_child_system_time) - 104usize]; + ["Offset of field: rusage_info_v2::ri_child_pkg_idle_wkups"] + [::std::mem::offset_of!(rusage_info_v2, ri_child_pkg_idle_wkups) - 112usize]; + ["Offset of field: rusage_info_v2::ri_child_interrupt_wkups"] + [::std::mem::offset_of!(rusage_info_v2, ri_child_interrupt_wkups) - 120usize]; + ["Offset of field: rusage_info_v2::ri_child_pageins"] + [::std::mem::offset_of!(rusage_info_v2, ri_child_pageins) - 128usize]; + ["Offset of field: rusage_info_v2::ri_child_elapsed_abstime"] + [::std::mem::offset_of!(rusage_info_v2, ri_child_elapsed_abstime) - 136usize]; + ["Offset of field: rusage_info_v2::ri_diskio_bytesread"] + [::std::mem::offset_of!(rusage_info_v2, ri_diskio_bytesread) - 144usize]; + ["Offset of field: rusage_info_v2::ri_diskio_byteswritten"] + [::std::mem::offset_of!(rusage_info_v2, ri_diskio_byteswritten) - 152usize]; +}; +#[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, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of rusage_info_v3"][::std::mem::size_of::() - 232usize]; + ["Alignment of rusage_info_v3"][::std::mem::align_of::() - 8usize]; + ["Offset of field: rusage_info_v3::ri_uuid"] + [::std::mem::offset_of!(rusage_info_v3, ri_uuid) - 0usize]; + ["Offset of field: rusage_info_v3::ri_user_time"] + [::std::mem::offset_of!(rusage_info_v3, ri_user_time) - 16usize]; + ["Offset of field: rusage_info_v3::ri_system_time"] + [::std::mem::offset_of!(rusage_info_v3, ri_system_time) - 24usize]; + ["Offset of field: rusage_info_v3::ri_pkg_idle_wkups"] + [::std::mem::offset_of!(rusage_info_v3, ri_pkg_idle_wkups) - 32usize]; + ["Offset of field: rusage_info_v3::ri_interrupt_wkups"] + [::std::mem::offset_of!(rusage_info_v3, ri_interrupt_wkups) - 40usize]; + ["Offset of field: rusage_info_v3::ri_pageins"] + [::std::mem::offset_of!(rusage_info_v3, ri_pageins) - 48usize]; + ["Offset of field: rusage_info_v3::ri_wired_size"] + [::std::mem::offset_of!(rusage_info_v3, ri_wired_size) - 56usize]; + ["Offset of field: rusage_info_v3::ri_resident_size"] + [::std::mem::offset_of!(rusage_info_v3, ri_resident_size) - 64usize]; + ["Offset of field: rusage_info_v3::ri_phys_footprint"] + [::std::mem::offset_of!(rusage_info_v3, ri_phys_footprint) - 72usize]; + ["Offset of field: rusage_info_v3::ri_proc_start_abstime"] + [::std::mem::offset_of!(rusage_info_v3, ri_proc_start_abstime) - 80usize]; + ["Offset of field: rusage_info_v3::ri_proc_exit_abstime"] + [::std::mem::offset_of!(rusage_info_v3, ri_proc_exit_abstime) - 88usize]; + ["Offset of field: rusage_info_v3::ri_child_user_time"] + [::std::mem::offset_of!(rusage_info_v3, ri_child_user_time) - 96usize]; + ["Offset of field: rusage_info_v3::ri_child_system_time"] + [::std::mem::offset_of!(rusage_info_v3, ri_child_system_time) - 104usize]; + ["Offset of field: rusage_info_v3::ri_child_pkg_idle_wkups"] + [::std::mem::offset_of!(rusage_info_v3, ri_child_pkg_idle_wkups) - 112usize]; + ["Offset of field: rusage_info_v3::ri_child_interrupt_wkups"] + [::std::mem::offset_of!(rusage_info_v3, ri_child_interrupt_wkups) - 120usize]; + ["Offset of field: rusage_info_v3::ri_child_pageins"] + [::std::mem::offset_of!(rusage_info_v3, ri_child_pageins) - 128usize]; + ["Offset of field: rusage_info_v3::ri_child_elapsed_abstime"] + [::std::mem::offset_of!(rusage_info_v3, ri_child_elapsed_abstime) - 136usize]; + ["Offset of field: rusage_info_v3::ri_diskio_bytesread"] + [::std::mem::offset_of!(rusage_info_v3, ri_diskio_bytesread) - 144usize]; + ["Offset of field: rusage_info_v3::ri_diskio_byteswritten"] + [::std::mem::offset_of!(rusage_info_v3, ri_diskio_byteswritten) - 152usize]; + ["Offset of field: rusage_info_v3::ri_cpu_time_qos_default"] + [::std::mem::offset_of!(rusage_info_v3, ri_cpu_time_qos_default) - 160usize]; + ["Offset of field: rusage_info_v3::ri_cpu_time_qos_maintenance"] + [::std::mem::offset_of!(rusage_info_v3, ri_cpu_time_qos_maintenance) - 168usize]; + ["Offset of field: rusage_info_v3::ri_cpu_time_qos_background"] + [::std::mem::offset_of!(rusage_info_v3, ri_cpu_time_qos_background) - 176usize]; + ["Offset of field: rusage_info_v3::ri_cpu_time_qos_utility"] + [::std::mem::offset_of!(rusage_info_v3, ri_cpu_time_qos_utility) - 184usize]; + ["Offset of field: rusage_info_v3::ri_cpu_time_qos_legacy"] + [::std::mem::offset_of!(rusage_info_v3, ri_cpu_time_qos_legacy) - 192usize]; + ["Offset of field: rusage_info_v3::ri_cpu_time_qos_user_initiated"] + [::std::mem::offset_of!(rusage_info_v3, ri_cpu_time_qos_user_initiated) - 200usize]; + ["Offset of field: rusage_info_v3::ri_cpu_time_qos_user_interactive"] + [::std::mem::offset_of!(rusage_info_v3, ri_cpu_time_qos_user_interactive) - 208usize]; + ["Offset of field: rusage_info_v3::ri_billed_system_time"] + [::std::mem::offset_of!(rusage_info_v3, ri_billed_system_time) - 216usize]; + ["Offset of field: rusage_info_v3::ri_serviced_system_time"] + [::std::mem::offset_of!(rusage_info_v3, ri_serviced_system_time) - 224usize]; +}; +#[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, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of rusage_info_v4"][::std::mem::size_of::() - 296usize]; + ["Alignment of rusage_info_v4"][::std::mem::align_of::() - 8usize]; + ["Offset of field: rusage_info_v4::ri_uuid"] + [::std::mem::offset_of!(rusage_info_v4, ri_uuid) - 0usize]; + ["Offset of field: rusage_info_v4::ri_user_time"] + [::std::mem::offset_of!(rusage_info_v4, ri_user_time) - 16usize]; + ["Offset of field: rusage_info_v4::ri_system_time"] + [::std::mem::offset_of!(rusage_info_v4, ri_system_time) - 24usize]; + ["Offset of field: rusage_info_v4::ri_pkg_idle_wkups"] + [::std::mem::offset_of!(rusage_info_v4, ri_pkg_idle_wkups) - 32usize]; + ["Offset of field: rusage_info_v4::ri_interrupt_wkups"] + [::std::mem::offset_of!(rusage_info_v4, ri_interrupt_wkups) - 40usize]; + ["Offset of field: rusage_info_v4::ri_pageins"] + [::std::mem::offset_of!(rusage_info_v4, ri_pageins) - 48usize]; + ["Offset of field: rusage_info_v4::ri_wired_size"] + [::std::mem::offset_of!(rusage_info_v4, ri_wired_size) - 56usize]; + ["Offset of field: rusage_info_v4::ri_resident_size"] + [::std::mem::offset_of!(rusage_info_v4, ri_resident_size) - 64usize]; + ["Offset of field: rusage_info_v4::ri_phys_footprint"] + [::std::mem::offset_of!(rusage_info_v4, ri_phys_footprint) - 72usize]; + ["Offset of field: rusage_info_v4::ri_proc_start_abstime"] + [::std::mem::offset_of!(rusage_info_v4, ri_proc_start_abstime) - 80usize]; + ["Offset of field: rusage_info_v4::ri_proc_exit_abstime"] + [::std::mem::offset_of!(rusage_info_v4, ri_proc_exit_abstime) - 88usize]; + ["Offset of field: rusage_info_v4::ri_child_user_time"] + [::std::mem::offset_of!(rusage_info_v4, ri_child_user_time) - 96usize]; + ["Offset of field: rusage_info_v4::ri_child_system_time"] + [::std::mem::offset_of!(rusage_info_v4, ri_child_system_time) - 104usize]; + ["Offset of field: rusage_info_v4::ri_child_pkg_idle_wkups"] + [::std::mem::offset_of!(rusage_info_v4, ri_child_pkg_idle_wkups) - 112usize]; + ["Offset of field: rusage_info_v4::ri_child_interrupt_wkups"] + [::std::mem::offset_of!(rusage_info_v4, ri_child_interrupt_wkups) - 120usize]; + ["Offset of field: rusage_info_v4::ri_child_pageins"] + [::std::mem::offset_of!(rusage_info_v4, ri_child_pageins) - 128usize]; + ["Offset of field: rusage_info_v4::ri_child_elapsed_abstime"] + [::std::mem::offset_of!(rusage_info_v4, ri_child_elapsed_abstime) - 136usize]; + ["Offset of field: rusage_info_v4::ri_diskio_bytesread"] + [::std::mem::offset_of!(rusage_info_v4, ri_diskio_bytesread) - 144usize]; + ["Offset of field: rusage_info_v4::ri_diskio_byteswritten"] + [::std::mem::offset_of!(rusage_info_v4, ri_diskio_byteswritten) - 152usize]; + ["Offset of field: rusage_info_v4::ri_cpu_time_qos_default"] + [::std::mem::offset_of!(rusage_info_v4, ri_cpu_time_qos_default) - 160usize]; + ["Offset of field: rusage_info_v4::ri_cpu_time_qos_maintenance"] + [::std::mem::offset_of!(rusage_info_v4, ri_cpu_time_qos_maintenance) - 168usize]; + ["Offset of field: rusage_info_v4::ri_cpu_time_qos_background"] + [::std::mem::offset_of!(rusage_info_v4, ri_cpu_time_qos_background) - 176usize]; + ["Offset of field: rusage_info_v4::ri_cpu_time_qos_utility"] + [::std::mem::offset_of!(rusage_info_v4, ri_cpu_time_qos_utility) - 184usize]; + ["Offset of field: rusage_info_v4::ri_cpu_time_qos_legacy"] + [::std::mem::offset_of!(rusage_info_v4, ri_cpu_time_qos_legacy) - 192usize]; + ["Offset of field: rusage_info_v4::ri_cpu_time_qos_user_initiated"] + [::std::mem::offset_of!(rusage_info_v4, ri_cpu_time_qos_user_initiated) - 200usize]; + ["Offset of field: rusage_info_v4::ri_cpu_time_qos_user_interactive"] + [::std::mem::offset_of!(rusage_info_v4, ri_cpu_time_qos_user_interactive) - 208usize]; + ["Offset of field: rusage_info_v4::ri_billed_system_time"] + [::std::mem::offset_of!(rusage_info_v4, ri_billed_system_time) - 216usize]; + ["Offset of field: rusage_info_v4::ri_serviced_system_time"] + [::std::mem::offset_of!(rusage_info_v4, ri_serviced_system_time) - 224usize]; + ["Offset of field: rusage_info_v4::ri_logical_writes"] + [::std::mem::offset_of!(rusage_info_v4, ri_logical_writes) - 232usize]; + ["Offset of field: rusage_info_v4::ri_lifetime_max_phys_footprint"] + [::std::mem::offset_of!(rusage_info_v4, ri_lifetime_max_phys_footprint) - 240usize]; + ["Offset of field: rusage_info_v4::ri_instructions"] + [::std::mem::offset_of!(rusage_info_v4, ri_instructions) - 248usize]; + ["Offset of field: rusage_info_v4::ri_cycles"] + [::std::mem::offset_of!(rusage_info_v4, ri_cycles) - 256usize]; + ["Offset of field: rusage_info_v4::ri_billed_energy"] + [::std::mem::offset_of!(rusage_info_v4, ri_billed_energy) - 264usize]; + ["Offset of field: rusage_info_v4::ri_serviced_energy"] + [::std::mem::offset_of!(rusage_info_v4, ri_serviced_energy) - 272usize]; + ["Offset of field: rusage_info_v4::ri_interval_max_phys_footprint"] + [::std::mem::offset_of!(rusage_info_v4, ri_interval_max_phys_footprint) - 280usize]; + ["Offset of field: rusage_info_v4::ri_runnable_time"] + [::std::mem::offset_of!(rusage_info_v4, ri_runnable_time) - 288usize]; +}; +#[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, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of rusage_info_v5"][::std::mem::size_of::() - 304usize]; + ["Alignment of rusage_info_v5"][::std::mem::align_of::() - 8usize]; + ["Offset of field: rusage_info_v5::ri_uuid"] + [::std::mem::offset_of!(rusage_info_v5, ri_uuid) - 0usize]; + ["Offset of field: rusage_info_v5::ri_user_time"] + [::std::mem::offset_of!(rusage_info_v5, ri_user_time) - 16usize]; + ["Offset of field: rusage_info_v5::ri_system_time"] + [::std::mem::offset_of!(rusage_info_v5, ri_system_time) - 24usize]; + ["Offset of field: rusage_info_v5::ri_pkg_idle_wkups"] + [::std::mem::offset_of!(rusage_info_v5, ri_pkg_idle_wkups) - 32usize]; + ["Offset of field: rusage_info_v5::ri_interrupt_wkups"] + [::std::mem::offset_of!(rusage_info_v5, ri_interrupt_wkups) - 40usize]; + ["Offset of field: rusage_info_v5::ri_pageins"] + [::std::mem::offset_of!(rusage_info_v5, ri_pageins) - 48usize]; + ["Offset of field: rusage_info_v5::ri_wired_size"] + [::std::mem::offset_of!(rusage_info_v5, ri_wired_size) - 56usize]; + ["Offset of field: rusage_info_v5::ri_resident_size"] + [::std::mem::offset_of!(rusage_info_v5, ri_resident_size) - 64usize]; + ["Offset of field: rusage_info_v5::ri_phys_footprint"] + [::std::mem::offset_of!(rusage_info_v5, ri_phys_footprint) - 72usize]; + ["Offset of field: rusage_info_v5::ri_proc_start_abstime"] + [::std::mem::offset_of!(rusage_info_v5, ri_proc_start_abstime) - 80usize]; + ["Offset of field: rusage_info_v5::ri_proc_exit_abstime"] + [::std::mem::offset_of!(rusage_info_v5, ri_proc_exit_abstime) - 88usize]; + ["Offset of field: rusage_info_v5::ri_child_user_time"] + [::std::mem::offset_of!(rusage_info_v5, ri_child_user_time) - 96usize]; + ["Offset of field: rusage_info_v5::ri_child_system_time"] + [::std::mem::offset_of!(rusage_info_v5, ri_child_system_time) - 104usize]; + ["Offset of field: rusage_info_v5::ri_child_pkg_idle_wkups"] + [::std::mem::offset_of!(rusage_info_v5, ri_child_pkg_idle_wkups) - 112usize]; + ["Offset of field: rusage_info_v5::ri_child_interrupt_wkups"] + [::std::mem::offset_of!(rusage_info_v5, ri_child_interrupt_wkups) - 120usize]; + ["Offset of field: rusage_info_v5::ri_child_pageins"] + [::std::mem::offset_of!(rusage_info_v5, ri_child_pageins) - 128usize]; + ["Offset of field: rusage_info_v5::ri_child_elapsed_abstime"] + [::std::mem::offset_of!(rusage_info_v5, ri_child_elapsed_abstime) - 136usize]; + ["Offset of field: rusage_info_v5::ri_diskio_bytesread"] + [::std::mem::offset_of!(rusage_info_v5, ri_diskio_bytesread) - 144usize]; + ["Offset of field: rusage_info_v5::ri_diskio_byteswritten"] + [::std::mem::offset_of!(rusage_info_v5, ri_diskio_byteswritten) - 152usize]; + ["Offset of field: rusage_info_v5::ri_cpu_time_qos_default"] + [::std::mem::offset_of!(rusage_info_v5, ri_cpu_time_qos_default) - 160usize]; + ["Offset of field: rusage_info_v5::ri_cpu_time_qos_maintenance"] + [::std::mem::offset_of!(rusage_info_v5, ri_cpu_time_qos_maintenance) - 168usize]; + ["Offset of field: rusage_info_v5::ri_cpu_time_qos_background"] + [::std::mem::offset_of!(rusage_info_v5, ri_cpu_time_qos_background) - 176usize]; + ["Offset of field: rusage_info_v5::ri_cpu_time_qos_utility"] + [::std::mem::offset_of!(rusage_info_v5, ri_cpu_time_qos_utility) - 184usize]; + ["Offset of field: rusage_info_v5::ri_cpu_time_qos_legacy"] + [::std::mem::offset_of!(rusage_info_v5, ri_cpu_time_qos_legacy) - 192usize]; + ["Offset of field: rusage_info_v5::ri_cpu_time_qos_user_initiated"] + [::std::mem::offset_of!(rusage_info_v5, ri_cpu_time_qos_user_initiated) - 200usize]; + ["Offset of field: rusage_info_v5::ri_cpu_time_qos_user_interactive"] + [::std::mem::offset_of!(rusage_info_v5, ri_cpu_time_qos_user_interactive) - 208usize]; + ["Offset of field: rusage_info_v5::ri_billed_system_time"] + [::std::mem::offset_of!(rusage_info_v5, ri_billed_system_time) - 216usize]; + ["Offset of field: rusage_info_v5::ri_serviced_system_time"] + [::std::mem::offset_of!(rusage_info_v5, ri_serviced_system_time) - 224usize]; + ["Offset of field: rusage_info_v5::ri_logical_writes"] + [::std::mem::offset_of!(rusage_info_v5, ri_logical_writes) - 232usize]; + ["Offset of field: rusage_info_v5::ri_lifetime_max_phys_footprint"] + [::std::mem::offset_of!(rusage_info_v5, ri_lifetime_max_phys_footprint) - 240usize]; + ["Offset of field: rusage_info_v5::ri_instructions"] + [::std::mem::offset_of!(rusage_info_v5, ri_instructions) - 248usize]; + ["Offset of field: rusage_info_v5::ri_cycles"] + [::std::mem::offset_of!(rusage_info_v5, ri_cycles) - 256usize]; + ["Offset of field: rusage_info_v5::ri_billed_energy"] + [::std::mem::offset_of!(rusage_info_v5, ri_billed_energy) - 264usize]; + ["Offset of field: rusage_info_v5::ri_serviced_energy"] + [::std::mem::offset_of!(rusage_info_v5, ri_serviced_energy) - 272usize]; + ["Offset of field: rusage_info_v5::ri_interval_max_phys_footprint"] + [::std::mem::offset_of!(rusage_info_v5, ri_interval_max_phys_footprint) - 280usize]; + ["Offset of field: rusage_info_v5::ri_runnable_time"] + [::std::mem::offset_of!(rusage_info_v5, ri_runnable_time) - 288usize]; + ["Offset of field: rusage_info_v5::ri_flags"] + [::std::mem::offset_of!(rusage_info_v5, ri_flags) - 296usize]; +}; +#[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_neural_footprint: u64, + pub ri_lifetime_max_neural_footprint: u64, + pub ri_interval_max_neural_footprint: u64, + pub ri_reserved: [u64; 9usize], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of rusage_info_v6"][::std::mem::size_of::() - 464usize]; + ["Alignment of rusage_info_v6"][::std::mem::align_of::() - 8usize]; + ["Offset of field: rusage_info_v6::ri_uuid"] + [::std::mem::offset_of!(rusage_info_v6, ri_uuid) - 0usize]; + ["Offset of field: rusage_info_v6::ri_user_time"] + [::std::mem::offset_of!(rusage_info_v6, ri_user_time) - 16usize]; + ["Offset of field: rusage_info_v6::ri_system_time"] + [::std::mem::offset_of!(rusage_info_v6, ri_system_time) - 24usize]; + ["Offset of field: rusage_info_v6::ri_pkg_idle_wkups"] + [::std::mem::offset_of!(rusage_info_v6, ri_pkg_idle_wkups) - 32usize]; + ["Offset of field: rusage_info_v6::ri_interrupt_wkups"] + [::std::mem::offset_of!(rusage_info_v6, ri_interrupt_wkups) - 40usize]; + ["Offset of field: rusage_info_v6::ri_pageins"] + [::std::mem::offset_of!(rusage_info_v6, ri_pageins) - 48usize]; + ["Offset of field: rusage_info_v6::ri_wired_size"] + [::std::mem::offset_of!(rusage_info_v6, ri_wired_size) - 56usize]; + ["Offset of field: rusage_info_v6::ri_resident_size"] + [::std::mem::offset_of!(rusage_info_v6, ri_resident_size) - 64usize]; + ["Offset of field: rusage_info_v6::ri_phys_footprint"] + [::std::mem::offset_of!(rusage_info_v6, ri_phys_footprint) - 72usize]; + ["Offset of field: rusage_info_v6::ri_proc_start_abstime"] + [::std::mem::offset_of!(rusage_info_v6, ri_proc_start_abstime) - 80usize]; + ["Offset of field: rusage_info_v6::ri_proc_exit_abstime"] + [::std::mem::offset_of!(rusage_info_v6, ri_proc_exit_abstime) - 88usize]; + ["Offset of field: rusage_info_v6::ri_child_user_time"] + [::std::mem::offset_of!(rusage_info_v6, ri_child_user_time) - 96usize]; + ["Offset of field: rusage_info_v6::ri_child_system_time"] + [::std::mem::offset_of!(rusage_info_v6, ri_child_system_time) - 104usize]; + ["Offset of field: rusage_info_v6::ri_child_pkg_idle_wkups"] + [::std::mem::offset_of!(rusage_info_v6, ri_child_pkg_idle_wkups) - 112usize]; + ["Offset of field: rusage_info_v6::ri_child_interrupt_wkups"] + [::std::mem::offset_of!(rusage_info_v6, ri_child_interrupt_wkups) - 120usize]; + ["Offset of field: rusage_info_v6::ri_child_pageins"] + [::std::mem::offset_of!(rusage_info_v6, ri_child_pageins) - 128usize]; + ["Offset of field: rusage_info_v6::ri_child_elapsed_abstime"] + [::std::mem::offset_of!(rusage_info_v6, ri_child_elapsed_abstime) - 136usize]; + ["Offset of field: rusage_info_v6::ri_diskio_bytesread"] + [::std::mem::offset_of!(rusage_info_v6, ri_diskio_bytesread) - 144usize]; + ["Offset of field: rusage_info_v6::ri_diskio_byteswritten"] + [::std::mem::offset_of!(rusage_info_v6, ri_diskio_byteswritten) - 152usize]; + ["Offset of field: rusage_info_v6::ri_cpu_time_qos_default"] + [::std::mem::offset_of!(rusage_info_v6, ri_cpu_time_qos_default) - 160usize]; + ["Offset of field: rusage_info_v6::ri_cpu_time_qos_maintenance"] + [::std::mem::offset_of!(rusage_info_v6, ri_cpu_time_qos_maintenance) - 168usize]; + ["Offset of field: rusage_info_v6::ri_cpu_time_qos_background"] + [::std::mem::offset_of!(rusage_info_v6, ri_cpu_time_qos_background) - 176usize]; + ["Offset of field: rusage_info_v6::ri_cpu_time_qos_utility"] + [::std::mem::offset_of!(rusage_info_v6, ri_cpu_time_qos_utility) - 184usize]; + ["Offset of field: rusage_info_v6::ri_cpu_time_qos_legacy"] + [::std::mem::offset_of!(rusage_info_v6, ri_cpu_time_qos_legacy) - 192usize]; + ["Offset of field: rusage_info_v6::ri_cpu_time_qos_user_initiated"] + [::std::mem::offset_of!(rusage_info_v6, ri_cpu_time_qos_user_initiated) - 200usize]; + ["Offset of field: rusage_info_v6::ri_cpu_time_qos_user_interactive"] + [::std::mem::offset_of!(rusage_info_v6, ri_cpu_time_qos_user_interactive) - 208usize]; + ["Offset of field: rusage_info_v6::ri_billed_system_time"] + [::std::mem::offset_of!(rusage_info_v6, ri_billed_system_time) - 216usize]; + ["Offset of field: rusage_info_v6::ri_serviced_system_time"] + [::std::mem::offset_of!(rusage_info_v6, ri_serviced_system_time) - 224usize]; + ["Offset of field: rusage_info_v6::ri_logical_writes"] + [::std::mem::offset_of!(rusage_info_v6, ri_logical_writes) - 232usize]; + ["Offset of field: rusage_info_v6::ri_lifetime_max_phys_footprint"] + [::std::mem::offset_of!(rusage_info_v6, ri_lifetime_max_phys_footprint) - 240usize]; + ["Offset of field: rusage_info_v6::ri_instructions"] + [::std::mem::offset_of!(rusage_info_v6, ri_instructions) - 248usize]; + ["Offset of field: rusage_info_v6::ri_cycles"] + [::std::mem::offset_of!(rusage_info_v6, ri_cycles) - 256usize]; + ["Offset of field: rusage_info_v6::ri_billed_energy"] + [::std::mem::offset_of!(rusage_info_v6, ri_billed_energy) - 264usize]; + ["Offset of field: rusage_info_v6::ri_serviced_energy"] + [::std::mem::offset_of!(rusage_info_v6, ri_serviced_energy) - 272usize]; + ["Offset of field: rusage_info_v6::ri_interval_max_phys_footprint"] + [::std::mem::offset_of!(rusage_info_v6, ri_interval_max_phys_footprint) - 280usize]; + ["Offset of field: rusage_info_v6::ri_runnable_time"] + [::std::mem::offset_of!(rusage_info_v6, ri_runnable_time) - 288usize]; + ["Offset of field: rusage_info_v6::ri_flags"] + [::std::mem::offset_of!(rusage_info_v6, ri_flags) - 296usize]; + ["Offset of field: rusage_info_v6::ri_user_ptime"] + [::std::mem::offset_of!(rusage_info_v6, ri_user_ptime) - 304usize]; + ["Offset of field: rusage_info_v6::ri_system_ptime"] + [::std::mem::offset_of!(rusage_info_v6, ri_system_ptime) - 312usize]; + ["Offset of field: rusage_info_v6::ri_pinstructions"] + [::std::mem::offset_of!(rusage_info_v6, ri_pinstructions) - 320usize]; + ["Offset of field: rusage_info_v6::ri_pcycles"] + [::std::mem::offset_of!(rusage_info_v6, ri_pcycles) - 328usize]; + ["Offset of field: rusage_info_v6::ri_energy_nj"] + [::std::mem::offset_of!(rusage_info_v6, ri_energy_nj) - 336usize]; + ["Offset of field: rusage_info_v6::ri_penergy_nj"] + [::std::mem::offset_of!(rusage_info_v6, ri_penergy_nj) - 344usize]; + ["Offset of field: rusage_info_v6::ri_secure_time_in_system"] + [::std::mem::offset_of!(rusage_info_v6, ri_secure_time_in_system) - 352usize]; + ["Offset of field: rusage_info_v6::ri_secure_ptime_in_system"] + [::std::mem::offset_of!(rusage_info_v6, ri_secure_ptime_in_system) - 360usize]; + ["Offset of field: rusage_info_v6::ri_neural_footprint"] + [::std::mem::offset_of!(rusage_info_v6, ri_neural_footprint) - 368usize]; + ["Offset of field: rusage_info_v6::ri_lifetime_max_neural_footprint"] + [::std::mem::offset_of!(rusage_info_v6, ri_lifetime_max_neural_footprint) - 376usize]; + ["Offset of field: rusage_info_v6::ri_interval_max_neural_footprint"] + [::std::mem::offset_of!(rusage_info_v6, ri_interval_max_neural_footprint) - 384usize]; + ["Offset of field: rusage_info_v6::ri_reserved"] + [::std::mem::offset_of!(rusage_info_v6, ri_reserved) - 392usize]; +}; +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, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of rlimit"][::std::mem::size_of::() - 16usize]; + ["Alignment of rlimit"][::std::mem::align_of::() - 8usize]; + ["Offset of field: rlimit::rlim_cur"][::std::mem::offset_of!(rlimit, rlim_cur) - 0usize]; + ["Offset of field: rlimit::rlim_max"][::std::mem::offset_of!(rlimit, rlim_max) - 8usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct proc_rlimit_control_wakeupmon { + pub wm_flags: u32, + pub wm_rate: i32, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of proc_rlimit_control_wakeupmon"] + [::std::mem::size_of::() - 8usize]; + ["Alignment of proc_rlimit_control_wakeupmon"] + [::std::mem::align_of::() - 4usize]; + ["Offset of field: proc_rlimit_control_wakeupmon::wm_flags"] + [::std::mem::offset_of!(proc_rlimit_control_wakeupmon, wm_flags) - 0usize]; + ["Offset of field: proc_rlimit_control_wakeupmon::wm_rate"] + [::std::mem::offset_of!(proc_rlimit_control_wakeupmon, wm_rate) - 4usize]; +}; +unsafe extern "C" { + pub fn getpriority(arg1: ::std::os::raw::c_int, arg2: id_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn getiopolicy_np( + arg1: ::std::os::raw::c_int, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn getrlimit(arg1: ::std::os::raw::c_int, arg2: *mut rlimit) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn getrusage(arg1: ::std::os::raw::c_int, arg2: *mut rusage) -> ::std::os::raw::c_int; +} +unsafe 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; +} +unsafe 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; +} +unsafe extern "C" { + pub fn setrlimit(arg1: ::std::os::raw::c_int, arg2: *const rlimit) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + #[link_name = "_OSSwapInt16__extern"] + pub fn _OSSwapInt16(_data: __uint16_t) -> __uint16_t; +} +unsafe extern "C" { + #[link_name = "_OSSwapInt32__extern"] + pub fn _OSSwapInt32(_data: __uint32_t) -> __uint32_t; +} +unsafe extern "C" { + #[link_name = "_OSSwapInt64__extern"] + pub fn _OSSwapInt64(_data: __uint64_t) -> __uint64_t; +} +#[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]>, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of wait__bindgen_ty_1"][::std::mem::size_of::() - 4usize]; + ["Alignment of wait__bindgen_ty_1"][::std::mem::align_of::() - 4usize]; +}; +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 unsafe fn w_Termsig_raw(this: *const Self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::std::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 7u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_w_Termsig_raw(this: *mut Self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::std::ptr::addr_of_mut!((*this)._bitfield_1), + 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 unsafe fn w_Coredump_raw(this: *const Self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::std::ptr::addr_of!((*this)._bitfield_1), + 7usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_w_Coredump_raw(this: *mut Self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::std::ptr::addr_of_mut!((*this)._bitfield_1), + 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 unsafe fn w_Retcode_raw(this: *const Self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::std::ptr::addr_of!((*this)._bitfield_1), + 8usize, + 8u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_w_Retcode_raw(this: *mut Self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::std::ptr::addr_of_mut!((*this)._bitfield_1), + 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 unsafe fn w_Filler_raw(this: *const Self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::std::ptr::addr_of!((*this)._bitfield_1), + 16usize, + 16u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_w_Filler_raw(this: *mut Self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::std::ptr::addr_of_mut!((*this)._bitfield_1), + 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]>, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of wait__bindgen_ty_2"][::std::mem::size_of::() - 4usize]; + ["Alignment of wait__bindgen_ty_2"][::std::mem::align_of::() - 4usize]; +}; +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 unsafe fn w_Stopval_raw(this: *const Self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::std::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 8u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_w_Stopval_raw(this: *mut Self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::std::ptr::addr_of_mut!((*this)._bitfield_1), + 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 unsafe fn w_Stopsig_raw(this: *const Self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::std::ptr::addr_of!((*this)._bitfield_1), + 8usize, + 8u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_w_Stopsig_raw(this: *mut Self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::std::ptr::addr_of_mut!((*this)._bitfield_1), + 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 unsafe fn w_Filler_raw(this: *const Self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::std::ptr::addr_of!((*this)._bitfield_1), + 16usize, + 16u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_w_Filler_raw(this: *mut Self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::std::ptr::addr_of_mut!((*this)._bitfield_1), + 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 + } +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of wait"][::std::mem::size_of::() - 4usize]; + ["Alignment of wait"][::std::mem::align_of::() - 4usize]; + ["Offset of field: wait::w_status"][::std::mem::offset_of!(wait, w_status) - 0usize]; + ["Offset of field: wait::w_T"][::std::mem::offset_of!(wait, w_T) - 0usize]; + ["Offset of field: wait::w_S"][::std::mem::offset_of!(wait, w_S) - 0usize]; +}; +unsafe extern "C" { + pub fn wait(arg1: *mut ::std::os::raw::c_int) -> pid_t; +} +unsafe extern "C" { + pub fn waitpid( + arg1: pid_t, + arg2: *mut ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + ) -> pid_t; +} +unsafe 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; +} +unsafe extern "C" { + pub fn wait3( + arg1: *mut ::std::os::raw::c_int, + arg2: ::std::os::raw::c_int, + arg3: *mut rusage, + ) -> pid_t; +} +unsafe 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; +} +unsafe extern "C" { + pub fn 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; +pub type wchar_t = __darwin_wchar_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, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of div_t"][::std::mem::size_of::() - 8usize]; + ["Alignment of div_t"][::std::mem::align_of::() - 4usize]; + ["Offset of field: div_t::quot"][::std::mem::offset_of!(div_t, quot) - 0usize]; + ["Offset of field: div_t::rem"][::std::mem::offset_of!(div_t, rem) - 4usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ldiv_t { + pub quot: ::std::os::raw::c_long, + pub rem: ::std::os::raw::c_long, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of ldiv_t"][::std::mem::size_of::() - 16usize]; + ["Alignment of ldiv_t"][::std::mem::align_of::() - 8usize]; + ["Offset of field: ldiv_t::quot"][::std::mem::offset_of!(ldiv_t, quot) - 0usize]; + ["Offset of field: ldiv_t::rem"][::std::mem::offset_of!(ldiv_t, rem) - 8usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct lldiv_t { + pub quot: ::std::os::raw::c_longlong, + pub rem: ::std::os::raw::c_longlong, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of lldiv_t"][::std::mem::size_of::() - 16usize]; + ["Alignment of lldiv_t"][::std::mem::align_of::() - 8usize]; + ["Offset of field: lldiv_t::quot"][::std::mem::offset_of!(lldiv_t, quot) - 0usize]; + ["Offset of field: lldiv_t::rem"][::std::mem::offset_of!(lldiv_t, rem) - 8usize]; +}; +unsafe extern "C" { + pub static mut __mb_cur_max: ::std::os::raw::c_int; +} +pub type malloc_type_id_t = ::std::os::raw::c_ulonglong; +unsafe extern "C" { + pub fn malloc_type_malloc( + size: usize, + type_id: malloc_type_id_t, + ) -> *mut ::std::os::raw::c_void; +} +unsafe extern "C" { + pub fn malloc_type_calloc( + count: usize, + size: usize, + type_id: malloc_type_id_t, + ) -> *mut ::std::os::raw::c_void; +} +unsafe extern "C" { + pub fn malloc_type_free(ptr: *mut ::std::os::raw::c_void, type_id: malloc_type_id_t); +} +unsafe 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; +} +unsafe extern "C" { + pub fn malloc_type_valloc( + size: usize, + type_id: malloc_type_id_t, + ) -> *mut ::std::os::raw::c_void; +} +unsafe extern "C" { + pub fn malloc_type_aligned_alloc( + alignment: usize, + size: usize, + type_id: malloc_type_id_t, + ) -> *mut ::std::os::raw::c_void; +} +unsafe 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; +unsafe 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; +} +unsafe 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; +} +unsafe 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, + ); +} +unsafe 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; +} +unsafe 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; +} +unsafe 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; +} +unsafe extern "C" { + pub fn malloc(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void; +} +unsafe extern "C" { + pub fn calloc( + __count: ::std::os::raw::c_ulong, + __size: ::std::os::raw::c_ulong, + ) -> *mut ::std::os::raw::c_void; +} +unsafe extern "C" { + pub fn free(arg1: *mut ::std::os::raw::c_void); +} +unsafe extern "C" { + pub fn realloc( + __ptr: *mut ::std::os::raw::c_void, + __size: ::std::os::raw::c_ulong, + ) -> *mut ::std::os::raw::c_void; +} +unsafe extern "C" { + pub fn reallocf( + __ptr: *mut ::std::os::raw::c_void, + __size: usize, + ) -> *mut ::std::os::raw::c_void; +} +unsafe extern "C" { + pub fn aligned_alloc( + __alignment: ::std::os::raw::c_ulong, + __size: ::std::os::raw::c_ulong, + ) -> *mut ::std::os::raw::c_void; +} +unsafe extern "C" { + pub fn posix_memalign( + __memptr: *mut *mut ::std::os::raw::c_void, + __alignment: usize, + __size: usize, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn abort() -> !; +} +unsafe extern "C" { + pub fn abs(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn atexit(arg1: ::std::option::Option) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn at_quick_exit( + arg1: ::std::option::Option, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn atof(arg1: *const ::std::os::raw::c_char) -> f64; +} +unsafe extern "C" { + pub fn atoi(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn atol(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long; +} +unsafe extern "C" { + pub fn atoll(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_longlong; +} +unsafe 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; +} +unsafe extern "C" { + pub fn div(arg1: ::std::os::raw::c_int, arg2: ::std::os::raw::c_int) -> div_t; +} +unsafe extern "C" { + pub fn exit(arg1: ::std::os::raw::c_int) -> !; +} +unsafe extern "C" { + pub fn getenv(arg1: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +unsafe extern "C" { + pub fn labs(arg1: ::std::os::raw::c_long) -> ::std::os::raw::c_long; +} +unsafe extern "C" { + pub fn ldiv(arg1: ::std::os::raw::c_long, arg2: ::std::os::raw::c_long) -> ldiv_t; +} +unsafe extern "C" { + pub fn llabs(arg1: ::std::os::raw::c_longlong) -> ::std::os::raw::c_longlong; +} +unsafe extern "C" { + pub fn lldiv(arg1: ::std::os::raw::c_longlong, arg2: ::std::os::raw::c_longlong) -> lldiv_t; +} +unsafe extern "C" { + pub fn mblen(__s: *const ::std::os::raw::c_char, __n: usize) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn mbstowcs(arg1: *mut wchar_t, arg2: *const ::std::os::raw::c_char, arg3: usize) -> usize; +} +unsafe extern "C" { + pub fn mbtowc( + arg1: *mut wchar_t, + arg2: *const ::std::os::raw::c_char, + arg3: usize, + ) -> ::std::os::raw::c_int; +} +unsafe 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, + >, + ); +} +unsafe extern "C" { + pub fn quick_exit(arg1: ::std::os::raw::c_int) -> !; +} +unsafe extern "C" { + pub fn rand() -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn srand(arg1: ::std::os::raw::c_uint); +} +unsafe extern "C" { + pub fn strtod( + arg1: *const ::std::os::raw::c_char, + arg2: *mut *mut ::std::os::raw::c_char, + ) -> f64; +} +unsafe extern "C" { + pub fn strtof( + arg1: *const ::std::os::raw::c_char, + arg2: *mut *mut ::std::os::raw::c_char, + ) -> f32; +} +unsafe 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; +} +unsafe extern "C" { + pub fn strtold( + arg1: *const ::std::os::raw::c_char, + arg2: *mut *mut ::std::os::raw::c_char, + ) -> f64; +} +unsafe 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; +} +unsafe 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; +} +unsafe 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; +} +unsafe extern "C" { + pub fn system(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn wcstombs(arg1: *mut ::std::os::raw::c_char, arg2: *const wchar_t, arg3: usize) -> usize; +} +unsafe extern "C" { + pub fn wctomb(arg1: *mut ::std::os::raw::c_char, arg2: wchar_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn a64l(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long; +} +unsafe extern "C" { + pub fn drand48() -> f64; +} +unsafe 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; +} +unsafe extern "C" { + pub fn erand48(arg1: *mut ::std::os::raw::c_ushort) -> f64; +} +unsafe 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; +} +unsafe 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; +} +unsafe extern "C" { + pub fn grantpt(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe 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; +} +unsafe extern "C" { + pub fn jrand48(arg1: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long; +} +unsafe extern "C" { + pub fn l64a(arg1: ::std::os::raw::c_long) -> *mut ::std::os::raw::c_char; +} +unsafe extern "C" { + pub fn lcong48(arg1: *mut ::std::os::raw::c_ushort); +} +unsafe extern "C" { + pub fn lrand48() -> ::std::os::raw::c_long; +} +unsafe extern "C" { + pub fn mrand48() -> ::std::os::raw::c_long; +} +unsafe extern "C" { + pub fn nrand48(arg1: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long; +} +unsafe extern "C" { + pub fn posix_openpt(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn ptsname(arg1: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; +} +unsafe 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; +} +unsafe extern "C" { + pub fn putenv(arg1: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn random() -> ::std::os::raw::c_long; +} +unsafe extern "C" { + pub fn rand_r(arg1: *mut ::std::os::raw::c_uint) -> ::std::os::raw::c_int; +} +unsafe 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; +} +unsafe extern "C" { + pub fn seed48(arg1: *mut ::std::os::raw::c_ushort) -> *mut ::std::os::raw::c_ushort; +} +unsafe 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; +} +unsafe extern "C" { + pub fn setstate(arg1: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +unsafe extern "C" { + pub fn srand48(arg1: ::std::os::raw::c_long); +} +unsafe extern "C" { + pub fn srandom(arg1: ::std::os::raw::c_uint); +} +unsafe extern "C" { + pub fn unlockpt(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn unsetenv(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn arc4random() -> u32; +} +unsafe extern "C" { + pub fn arc4random_addrandom(arg1: *mut ::std::os::raw::c_uchar, arg2: ::std::os::raw::c_int); +} +unsafe extern "C" { + pub fn arc4random_buf(__buf: *mut ::std::os::raw::c_void, __nbytes: usize); +} +unsafe extern "C" { + pub fn arc4random_stir(); +} +unsafe extern "C" { + pub fn arc4random_uniform(__upper_bound: u32) -> u32; +} +unsafe extern "C" { + pub fn atexit_b(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int; +} +unsafe 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; +} +unsafe 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; +} +unsafe extern "C" { + pub fn cgetclose() -> ::std::os::raw::c_int; +} +unsafe 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; +} +unsafe 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; +} +unsafe extern "C" { + pub fn cgetmatch( + arg1: *const ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +unsafe 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; +} +unsafe 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; +} +unsafe extern "C" { + pub fn cgetset(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +unsafe 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; +} +unsafe 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; +} +unsafe extern "C" { + pub fn daemon( + arg1: ::std::os::raw::c_int, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn devname(arg1: dev_t, arg2: mode_t) -> *mut ::std::os::raw::c_char; +} +unsafe 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; +} +unsafe 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; +} +unsafe extern "C" { + pub fn getloadavg(arg1: *mut f64, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn getprogname() -> *const ::std::os::raw::c_char; +} +unsafe extern "C" { + pub fn setprogname(arg1: *const ::std::os::raw::c_char); +} +unsafe 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; +} +unsafe 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; +} +unsafe 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; +} +unsafe 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; +} +unsafe 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, + >, + ); +} +unsafe extern "C" { + pub fn psort_b( + __base: *mut ::std::os::raw::c_void, + __nel: usize, + __width: usize, + __compar: *mut ::std::os::raw::c_void, + ); +} +unsafe 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, + >, + ); +} +unsafe extern "C" { + pub fn qsort_b( + __base: *mut ::std::os::raw::c_void, + __nel: usize, + __width: usize, + __compar: *mut ::std::os::raw::c_void, + ); +} +unsafe 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, + >, + ); +} +unsafe 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; +} +unsafe extern "C" { + pub fn rpmatch(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +unsafe 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; +} +unsafe extern "C" { + pub fn sranddev(); +} +unsafe extern "C" { + pub fn srandomdev(); +} +unsafe 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; +} +unsafe 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; +} +unsafe 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; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct request { + pub clock_time: i64, + pub hv: u64, + pub obj_id: obj_id_t, + pub obj_size: i64, + pub ttl: i32, + pub op: req_op_e, + pub tenant_id: i32, + pub n_req: u64, + pub next_access_vtime: i64, + pub __bindgen_anon_1: request__bindgen_ty_1, + pub ns: i32, + pub eviction_algo_data: *mut ::std::os::raw::c_void, + pub vtime_since_last_access: i64, + pub rtime_since_last_access: i64, + pub prev_size: i64, + pub create_rtime: i32, + pub compulsory_miss: bool, + pub overwrite: bool, + pub first_seen_in_window: bool, + pub valid: bool, + pub n_features: i32, + pub features: [i32; 16usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct request__bindgen_ty_1 { + pub _bitfield_align_1: [u64; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of request__bindgen_ty_1"][::std::mem::size_of::() - 8usize]; + ["Alignment of request__bindgen_ty_1"] + [::std::mem::align_of::() - 8usize]; +}; +impl request__bindgen_ty_1 { + #[inline] + pub fn key_size(&self) -> u64 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 16u8) as u64) } + } + #[inline] + pub fn set_key_size(&mut self, val: u64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 16u8, val as u64) + } + } + #[inline] + pub unsafe fn key_size_raw(this: *const Self) -> u64 { + unsafe { + ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::std::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 16u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_key_size_raw(this: *mut Self, val: u64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::std::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 16u8, + val as u64, + ) + } + } + #[inline] + pub fn val_size(&self) -> u64 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 48u8) as u64) } + } + #[inline] + pub fn set_val_size(&mut self, val: u64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(16usize, 48u8, val as u64) + } + } + #[inline] + pub unsafe fn val_size_raw(this: *const Self) -> u64 { + unsafe { + ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::std::ptr::addr_of!((*this)._bitfield_1), + 16usize, + 48u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_val_size_raw(this: *mut Self, val: u64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::std::ptr::addr_of_mut!((*this)._bitfield_1), + 16usize, + 48u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(key_size: u64, val_size: u64) -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 16u8, { + let key_size: u64 = unsafe { ::std::mem::transmute(key_size) }; + key_size as u64 + }); + __bindgen_bitfield_unit.set(16usize, 48u8, { + let val_size: u64 = unsafe { ::std::mem::transmute(val_size) }; + val_size as u64 + }); + __bindgen_bitfield_unit + } +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of request"][::std::mem::size_of::() - 192usize]; + ["Alignment of request"][::std::mem::align_of::() - 8usize]; + ["Offset of field: request::clock_time"][::std::mem::offset_of!(request, clock_time) - 0usize]; + ["Offset of field: request::hv"][::std::mem::offset_of!(request, hv) - 8usize]; + ["Offset of field: request::obj_id"][::std::mem::offset_of!(request, obj_id) - 16usize]; + ["Offset of field: request::obj_size"][::std::mem::offset_of!(request, obj_size) - 24usize]; + ["Offset of field: request::ttl"][::std::mem::offset_of!(request, ttl) - 32usize]; + ["Offset of field: request::op"][::std::mem::offset_of!(request, op) - 36usize]; + ["Offset of field: request::tenant_id"][::std::mem::offset_of!(request, tenant_id) - 40usize]; + ["Offset of field: request::n_req"][::std::mem::offset_of!(request, n_req) - 48usize]; + ["Offset of field: request::next_access_vtime"] + [::std::mem::offset_of!(request, next_access_vtime) - 56usize]; + ["Offset of field: request::ns"][::std::mem::offset_of!(request, ns) - 72usize]; + ["Offset of field: request::eviction_algo_data"] + [::std::mem::offset_of!(request, eviction_algo_data) - 80usize]; + ["Offset of field: request::vtime_since_last_access"] + [::std::mem::offset_of!(request, vtime_since_last_access) - 88usize]; + ["Offset of field: request::rtime_since_last_access"] + [::std::mem::offset_of!(request, rtime_since_last_access) - 96usize]; + ["Offset of field: request::prev_size"][::std::mem::offset_of!(request, prev_size) - 104usize]; + ["Offset of field: request::create_rtime"] + [::std::mem::offset_of!(request, create_rtime) - 112usize]; + ["Offset of field: request::compulsory_miss"] + [::std::mem::offset_of!(request, compulsory_miss) - 116usize]; + ["Offset of field: request::overwrite"][::std::mem::offset_of!(request, overwrite) - 117usize]; + ["Offset of field: request::first_seen_in_window"] + [::std::mem::offset_of!(request, first_seen_in_window) - 118usize]; + ["Offset of field: request::valid"][::std::mem::offset_of!(request, valid) - 119usize]; + ["Offset of field: request::n_features"] + [::std::mem::offset_of!(request, n_features) - 120usize]; + ["Offset of field: request::features"][::std::mem::offset_of!(request, features) - 124usize]; +}; +pub type request_t = request; +unsafe extern "C" { + #[doc = " allocate a new request_t struct and fill in necessary field\n @return"] + #[link_name = "new_request__extern"] + pub fn new_request() -> *mut request_t; +} +unsafe extern "C" { + #[doc = " copy the req_src to req_dest\n @param req_dest\n @param req_src"] + #[link_name = "copy_request__extern"] + pub fn copy_request(req_dest: *mut request_t, req_src: *const request_t); +} +unsafe extern "C" { + #[doc = " clone the given request\n @param req\n @return"] + #[link_name = "clone_request__extern"] + pub fn clone_request(req: *const request_t) -> *mut request_t; +} +unsafe extern "C" { + #[doc = " free the memory used by req\n @param req"] + #[link_name = "free_request__extern"] + pub fn free_request(req: *mut request_t); +} +unsafe extern "C" { + #[link_name = "print_request__extern"] + pub fn print_request(req: *const request_t); +} +pub type admissioner_create_func_ptr = ::std::option::Option< + unsafe extern "C" fn(arg1: *const ::std::os::raw::c_char) -> *mut admissioner, +>; +pub type admissioner_clone_func_ptr = + ::std::option::Option *mut admissioner>; +pub type admissioner_update_func_ptr = ::std::option::Option< + unsafe extern "C" fn(arg1: *mut admissioner, arg2: *const request_t, cache_size: u64), +>; +pub type cache_admit_func_ptr = ::std::option::Option< + unsafe extern "C" fn(arg1: *mut admissioner, arg2: *const request_t) -> bool, +>; +pub type admissioner_free_func_ptr = + ::std::option::Option; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct admissioner { + pub admit: cache_admit_func_ptr, + pub params: *mut ::std::os::raw::c_void, + pub clone: admissioner_clone_func_ptr, + pub free: admissioner_free_func_ptr, + pub update: admissioner_update_func_ptr, + pub init_params: *mut ::std::os::raw::c_void, + pub admissioner_name: [::std::os::raw::c_char; 64usize], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of admissioner"][::std::mem::size_of::() - 112usize]; + ["Alignment of admissioner"][::std::mem::align_of::() - 8usize]; + ["Offset of field: admissioner::admit"][::std::mem::offset_of!(admissioner, admit) - 0usize]; + ["Offset of field: admissioner::params"][::std::mem::offset_of!(admissioner, params) - 8usize]; + ["Offset of field: admissioner::clone"][::std::mem::offset_of!(admissioner, clone) - 16usize]; + ["Offset of field: admissioner::free"][::std::mem::offset_of!(admissioner, free) - 24usize]; + ["Offset of field: admissioner::update"][::std::mem::offset_of!(admissioner, update) - 32usize]; + ["Offset of field: admissioner::init_params"] + [::std::mem::offset_of!(admissioner, init_params) - 40usize]; + ["Offset of field: admissioner::admissioner_name"] + [::std::mem::offset_of!(admissioner, admissioner_name) - 48usize]; +}; +pub type admissioner_t = admissioner; +unsafe extern "C" { + pub fn create_bloomfilter_admissioner( + init_params: *const ::std::os::raw::c_char, + ) -> *mut admissioner_t; +} +unsafe extern "C" { + pub fn create_prob_admissioner( + init_params: *const ::std::os::raw::c_char, + ) -> *mut admissioner_t; +} +unsafe extern "C" { + pub fn create_size_admissioner( + init_params: *const ::std::os::raw::c_char, + ) -> *mut admissioner_t; +} +unsafe extern "C" { + pub fn create_size_probabilistic_admissioner( + init_params: *const ::std::os::raw::c_char, + ) -> *mut admissioner_t; +} +unsafe extern "C" { + pub fn create_adaptsize_admissioner( + init_params: *const ::std::os::raw::c_char, + ) -> *mut admissioner_t; +} +unsafe extern "C" { + #[link_name = "create_admissioner__extern"] + pub fn create_admissioner( + admission_algo: *const ::std::os::raw::c_char, + admission_params: *const ::std::os::raw::c_char, + ) -> *mut admissioner_t; +} +unsafe extern "C" { + pub fn __assert_rtn( + arg1: *const ::std::os::raw::c_char, + arg2: *const ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + arg4: *const ::std::os::raw::c_char, + ) -> !; +} +unsafe 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, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of imaxdiv_t"][::std::mem::size_of::() - 16usize]; + ["Alignment of imaxdiv_t"][::std::mem::align_of::() - 8usize]; + ["Offset of field: imaxdiv_t::quot"][::std::mem::offset_of!(imaxdiv_t, quot) - 0usize]; + ["Offset of field: imaxdiv_t::rem"][::std::mem::offset_of!(imaxdiv_t, rem) - 8usize]; +}; +unsafe extern "C" { + pub fn imaxdiv(__numer: intmax_t, __denom: intmax_t) -> imaxdiv_t; +} +unsafe 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; +} +unsafe 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; +} +unsafe extern "C" { + pub fn wcstoimax( + __nptr: *const wchar_t, + __endptr: *mut *mut wchar_t, + __base: ::std::os::raw::c_int, + ) -> intmax_t; +} +unsafe extern "C" { + pub fn wcstoumax( + __nptr: *const wchar_t, + __endptr: *mut *mut wchar_t, + __base: ::std::os::raw::c_int, + ) -> uintmax_t; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct LFU_obj_metadata_t { + pub freq: i64, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of LFU_obj_metadata_t"][::std::mem::size_of::() - 8usize]; + ["Alignment of LFU_obj_metadata_t"][::std::mem::align_of::() - 8usize]; + ["Offset of field: LFU_obj_metadata_t::freq"] + [::std::mem::offset_of!(LFU_obj_metadata_t, freq) - 0usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Clock_obj_metadata_t { + pub freq: ::std::os::raw::c_int, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of Clock_obj_metadata_t"][::std::mem::size_of::() - 4usize]; + ["Alignment of Clock_obj_metadata_t"][::std::mem::align_of::() - 4usize]; + ["Offset of field: Clock_obj_metadata_t::freq"] + [::std::mem::offset_of!(Clock_obj_metadata_t, freq) - 0usize]; +}; +pub const clockpro_status_e_CLOCKPRO_TEST: clockpro_status_e = 0; +pub const clockpro_status_e_CLOCKPRO_COLD: clockpro_status_e = 1; +pub const clockpro_status_e_CLOCKPRO_HOT: clockpro_status_e = 2; +pub type clockpro_status_e = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ClockPro_obj_metadata_t { + pub status: clockpro_status_e, + pub referenced: bool, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of ClockPro_obj_metadata_t"][::std::mem::size_of::() - 8usize]; + ["Alignment of ClockPro_obj_metadata_t"] + [::std::mem::align_of::() - 4usize]; + ["Offset of field: ClockPro_obj_metadata_t::status"] + [::std::mem::offset_of!(ClockPro_obj_metadata_t, status) - 0usize]; + ["Offset of field: ClockPro_obj_metadata_t::referenced"] + [::std::mem::offset_of!(ClockPro_obj_metadata_t, referenced) - 4usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Size_obj_metadata_t { + pub pq_node: *mut ::std::os::raw::c_void, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of Size_obj_metadata_t"][::std::mem::size_of::() - 8usize]; + ["Alignment of Size_obj_metadata_t"][::std::mem::align_of::() - 8usize]; + ["Offset of field: Size_obj_metadata_t::pq_node"] + [::std::mem::offset_of!(Size_obj_metadata_t, pq_node) - 0usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ARC_obj_metadata_t { + pub lru_id: ::std::os::raw::c_int, + pub ghost: bool, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of ARC_obj_metadata_t"][::std::mem::size_of::() - 8usize]; + ["Alignment of ARC_obj_metadata_t"][::std::mem::align_of::() - 4usize]; + ["Offset of field: ARC_obj_metadata_t::lru_id"] + [::std::mem::offset_of!(ARC_obj_metadata_t, lru_id) - 0usize]; + ["Offset of field: ARC_obj_metadata_t::ghost"] + [::std::mem::offset_of!(ARC_obj_metadata_t, ghost) - 4usize]; +}; +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct LeCaR_obj_metadata_t { + pub lfu_next: *mut ::std::os::raw::c_void, + pub lfu_prev: *mut ::std::os::raw::c_void, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, + pub evict_expert: i8, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of LeCaR_obj_metadata_t"][::std::mem::size_of::() - 25usize]; + ["Alignment of LeCaR_obj_metadata_t"][::std::mem::align_of::() - 1usize]; + ["Offset of field: LeCaR_obj_metadata_t::lfu_next"] + [::std::mem::offset_of!(LeCaR_obj_metadata_t, lfu_next) - 0usize]; + ["Offset of field: LeCaR_obj_metadata_t::lfu_prev"] + [::std::mem::offset_of!(LeCaR_obj_metadata_t, lfu_prev) - 8usize]; + ["Offset of field: LeCaR_obj_metadata_t::evict_expert"] + [::std::mem::offset_of!(LeCaR_obj_metadata_t, evict_expert) - 24usize]; +}; +impl LeCaR_obj_metadata_t { + #[inline] + pub fn eviction_vtime(&self) -> i64 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 40u8) as u64) } + } + #[inline] + pub fn set_eviction_vtime(&mut self, val: i64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 40u8, val as u64) + } + } + #[inline] + pub unsafe fn eviction_vtime_raw(this: *const Self) -> i64 { + unsafe { + ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::std::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 40u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_eviction_vtime_raw(this: *mut Self, val: i64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::std::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 40u8, + val as u64, + ) + } + } + #[inline] + pub fn freq(&self) -> i64 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(40usize, 23u8) as u64) } + } + #[inline] + pub fn set_freq(&mut self, val: i64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(40usize, 23u8, val as u64) + } + } + #[inline] + pub unsafe fn freq_raw(this: *const Self) -> i64 { + unsafe { + ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::std::ptr::addr_of!((*this)._bitfield_1), + 40usize, + 23u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_freq_raw(this: *mut Self, val: i64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::std::ptr::addr_of_mut!((*this)._bitfield_1), + 40usize, + 23u8, + val as u64, + ) + } + } + #[inline] + pub fn is_ghost(&self) -> i64 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(63usize, 1u8) as u64) } + } + #[inline] + pub fn set_is_ghost(&mut self, val: i64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(63usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn is_ghost_raw(this: *const Self) -> i64 { + unsafe { + ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::std::ptr::addr_of!((*this)._bitfield_1), + 63usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_is_ghost_raw(this: *mut Self, val: i64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::std::ptr::addr_of_mut!((*this)._bitfield_1), + 63usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + eviction_vtime: i64, + freq: i64, + is_ghost: i64, + ) -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 40u8, { + let eviction_vtime: u64 = unsafe { ::std::mem::transmute(eviction_vtime) }; + eviction_vtime as u64 + }); + __bindgen_bitfield_unit.set(40usize, 23u8, { + let freq: u64 = unsafe { ::std::mem::transmute(freq) }; + freq as u64 + }); + __bindgen_bitfield_unit.set(63usize, 1u8, { + let is_ghost: u64 = unsafe { ::std::mem::transmute(is_ghost) }; + is_ghost as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Cacheus_obj_metadata_t { + pub last_access_vtime: i64, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of Cacheus_obj_metadata_t"][::std::mem::size_of::() - 8usize]; + ["Alignment of Cacheus_obj_metadata_t"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: Cacheus_obj_metadata_t::last_access_vtime"] + [::std::mem::offset_of!(Cacheus_obj_metadata_t, last_access_vtime) - 0usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SR_LRU_obj_metadata_t { + pub demoted: bool, + pub new_obj: bool, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of SR_LRU_obj_metadata_t"][::std::mem::size_of::() - 2usize]; + ["Alignment of SR_LRU_obj_metadata_t"] + [::std::mem::align_of::() - 1usize]; + ["Offset of field: SR_LRU_obj_metadata_t::demoted"] + [::std::mem::offset_of!(SR_LRU_obj_metadata_t, demoted) - 0usize]; + ["Offset of field: SR_LRU_obj_metadata_t::new_obj"] + [::std::mem::offset_of!(SR_LRU_obj_metadata_t, new_obj) - 1usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CR_LFU_obj_metadata_t { + pub last_access_vtime: i64, + pub freq: i64, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CR_LFU_obj_metadata_t"][::std::mem::size_of::() - 16usize]; + ["Alignment of CR_LFU_obj_metadata_t"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: CR_LFU_obj_metadata_t::last_access_vtime"] + [::std::mem::offset_of!(CR_LFU_obj_metadata_t, last_access_vtime) - 0usize]; + ["Offset of field: CR_LFU_obj_metadata_t::freq"] + [::std::mem::offset_of!(CR_LFU_obj_metadata_t, freq) - 8usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Hyperbolic_obj_metadata_t { + pub _bitfield_align_1: [u64; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, + pub pq_node: *mut ::std::os::raw::c_void, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of Hyperbolic_obj_metadata_t"] + [::std::mem::size_of::() - 16usize]; + ["Alignment of Hyperbolic_obj_metadata_t"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: Hyperbolic_obj_metadata_t::pq_node"] + [::std::mem::offset_of!(Hyperbolic_obj_metadata_t, pq_node) - 8usize]; +}; +impl Hyperbolic_obj_metadata_t { + #[inline] + pub fn vtime_enter_cache(&self) -> i64 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 40u8) as u64) } + } + #[inline] + pub fn set_vtime_enter_cache(&mut self, val: i64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 40u8, val as u64) + } + } + #[inline] + pub unsafe fn vtime_enter_cache_raw(this: *const Self) -> i64 { + unsafe { + ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::std::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 40u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_vtime_enter_cache_raw(this: *mut Self, val: i64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::std::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 40u8, + val as u64, + ) + } + } + #[inline] + pub fn freq(&self) -> i64 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(40usize, 24u8) as u64) } + } + #[inline] + pub fn set_freq(&mut self, val: i64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(40usize, 24u8, val as u64) + } + } + #[inline] + pub unsafe fn freq_raw(this: *const Self) -> i64 { + unsafe { + ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::std::ptr::addr_of!((*this)._bitfield_1), + 40usize, + 24u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_freq_raw(this: *mut Self, val: i64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::std::ptr::addr_of_mut!((*this)._bitfield_1), + 40usize, + 24u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + vtime_enter_cache: i64, + freq: i64, + ) -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 40u8, { + let vtime_enter_cache: u64 = unsafe { ::std::mem::transmute(vtime_enter_cache) }; + vtime_enter_cache as u64 + }); + __bindgen_bitfield_unit.set(40usize, 24u8, { + let freq: u64 = unsafe { ::std::mem::transmute(freq) }; + freq as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Belady_obj_metadata { + pub pq_node: *mut ::std::os::raw::c_void, + pub next_access_vtime: i64, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of Belady_obj_metadata"][::std::mem::size_of::() - 16usize]; + ["Alignment of Belady_obj_metadata"][::std::mem::align_of::() - 8usize]; + ["Offset of field: Belady_obj_metadata::pq_node"] + [::std::mem::offset_of!(Belady_obj_metadata, pq_node) - 0usize]; + ["Offset of field: Belady_obj_metadata::next_access_vtime"] + [::std::mem::offset_of!(Belady_obj_metadata, next_access_vtime) - 8usize]; +}; +pub type Belady_obj_metadata_t = Belady_obj_metadata; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct LIRS_obj_metadata_t { + pub is_LIR: bool, + pub in_cache: bool, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of LIRS_obj_metadata_t"][::std::mem::size_of::() - 2usize]; + ["Alignment of LIRS_obj_metadata_t"][::std::mem::align_of::() - 1usize]; + ["Offset of field: LIRS_obj_metadata_t::is_LIR"] + [::std::mem::offset_of!(LIRS_obj_metadata_t, is_LIR) - 0usize]; + ["Offset of field: LIRS_obj_metadata_t::in_cache"] + [::std::mem::offset_of!(LIRS_obj_metadata_t, in_cache) - 1usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct FIFOMerge_obj_metadata { + pub freq: i32, + pub last_access_vtime: i32, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of FIFOMerge_obj_metadata"][::std::mem::size_of::() - 8usize]; + ["Alignment of FIFOMerge_obj_metadata"] + [::std::mem::align_of::() - 4usize]; + ["Offset of field: FIFOMerge_obj_metadata::freq"] + [::std::mem::offset_of!(FIFOMerge_obj_metadata, freq) - 0usize]; + ["Offset of field: FIFOMerge_obj_metadata::last_access_vtime"] + [::std::mem::offset_of!(FIFOMerge_obj_metadata, last_access_vtime) - 4usize]; +}; +pub type FIFO_Merge_obj_metadata_t = FIFOMerge_obj_metadata; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct FIFO_Reinsertion_obj_metadata_t { + pub freq: i32, + pub last_access_vtime: i32, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of FIFO_Reinsertion_obj_metadata_t"] + [::std::mem::size_of::() - 8usize]; + ["Alignment of FIFO_Reinsertion_obj_metadata_t"] + [::std::mem::align_of::() - 4usize]; + ["Offset of field: FIFO_Reinsertion_obj_metadata_t::freq"] + [::std::mem::offset_of!(FIFO_Reinsertion_obj_metadata_t, freq) - 0usize]; + ["Offset of field: FIFO_Reinsertion_obj_metadata_t::last_access_vtime"] + [::std::mem::offset_of!(FIFO_Reinsertion_obj_metadata_t, last_access_vtime) - 4usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct GLCache_obj_metadata_t { + pub segment: *mut ::std::os::raw::c_void, + pub freq: i32, + pub last_access_rtime: i32, + pub last_access_vtime: i32, + pub idx_in_segment: i16, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: u8, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of GLCache_obj_metadata_t"][::std::mem::size_of::() - 24usize]; + ["Alignment of GLCache_obj_metadata_t"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: GLCache_obj_metadata_t::segment"] + [::std::mem::offset_of!(GLCache_obj_metadata_t, segment) - 0usize]; + ["Offset of field: GLCache_obj_metadata_t::freq"] + [::std::mem::offset_of!(GLCache_obj_metadata_t, freq) - 8usize]; + ["Offset of field: GLCache_obj_metadata_t::last_access_rtime"] + [::std::mem::offset_of!(GLCache_obj_metadata_t, last_access_rtime) - 12usize]; + ["Offset of field: GLCache_obj_metadata_t::last_access_vtime"] + [::std::mem::offset_of!(GLCache_obj_metadata_t, last_access_vtime) - 16usize]; + ["Offset of field: GLCache_obj_metadata_t::idx_in_segment"] + [::std::mem::offset_of!(GLCache_obj_metadata_t, idx_in_segment) - 20usize]; +}; +impl GLCache_obj_metadata_t { + #[inline] + pub fn active(&self) -> i16 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u16) } + } + #[inline] + pub fn set_active(&mut self, val: i16) { + unsafe { + let val: u16 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn active_raw(this: *const Self) -> i16 { + unsafe { + ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::std::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 2u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_active_raw(this: *mut Self, val: i16) { + unsafe { + let val: u16 = ::std::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::std::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn in_cache(&self) -> i16 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 2u8) as u16) } + } + #[inline] + pub fn set_in_cache(&mut self, val: i16) { + unsafe { + let val: u16 = ::std::mem::transmute(val); + self._bitfield_1.set(2usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn in_cache_raw(this: *const Self) -> i16 { + unsafe { + ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::std::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 2u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_in_cache_raw(this: *mut Self, val: i16) { + unsafe { + let val: u16 = ::std::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::std::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn seen_after_snapshot(&self) -> i16 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 2u8) as u16) } + } + #[inline] + pub fn set_seen_after_snapshot(&mut self, val: i16) { + unsafe { + let val: u16 = ::std::mem::transmute(val); + self._bitfield_1.set(4usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn seen_after_snapshot_raw(this: *const Self) -> i16 { + unsafe { + ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::std::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 2u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_seen_after_snapshot_raw(this: *mut Self, val: i16) { + unsafe { + let val: u16 = ::std::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::std::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + active: i16, + in_cache: i16, + seen_after_snapshot: i16, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 2u8, { + let active: u16 = unsafe { ::std::mem::transmute(active) }; + active as u64 + }); + __bindgen_bitfield_unit.set(2usize, 2u8, { + let in_cache: u16 = unsafe { ::std::mem::transmute(in_cache) }; + in_cache as u64 + }); + __bindgen_bitfield_unit.set(4usize, 2u8, { + let seen_after_snapshot: u16 = unsafe { ::std::mem::transmute(seen_after_snapshot) }; + seen_after_snapshot as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SLRU_obj_metadata_t { + pub lru_id: ::std::os::raw::c_int, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of SLRU_obj_metadata_t"][::std::mem::size_of::() - 4usize]; + ["Alignment of SLRU_obj_metadata_t"][::std::mem::align_of::() - 4usize]; + ["Offset of field: SLRU_obj_metadata_t::lru_id"] + [::std::mem::offset_of!(SLRU_obj_metadata_t, lru_id) - 0usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Random_obj_metadata_t { + pub last_access_vtime: i64, + pub insertion_time: i64, + pub oracle_idx: i32, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of Random_obj_metadata_t"][::std::mem::size_of::() - 24usize]; + ["Alignment of Random_obj_metadata_t"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: Random_obj_metadata_t::last_access_vtime"] + [::std::mem::offset_of!(Random_obj_metadata_t, last_access_vtime) - 0usize]; + ["Offset of field: Random_obj_metadata_t::insertion_time"] + [::std::mem::offset_of!(Random_obj_metadata_t, insertion_time) - 8usize]; + ["Offset of field: Random_obj_metadata_t::oracle_idx"] + [::std::mem::offset_of!(Random_obj_metadata_t, oracle_idx) - 16usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SFIFO_obj_metadata_t { + pub last_access_vtime: i64, + pub freq: i32, + pub fifo_id: i8, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of SFIFO_obj_metadata_t"][::std::mem::size_of::() - 16usize]; + ["Alignment of SFIFO_obj_metadata_t"][::std::mem::align_of::() - 8usize]; + ["Offset of field: SFIFO_obj_metadata_t::last_access_vtime"] + [::std::mem::offset_of!(SFIFO_obj_metadata_t, last_access_vtime) - 0usize]; + ["Offset of field: SFIFO_obj_metadata_t::freq"] + [::std::mem::offset_of!(SFIFO_obj_metadata_t, freq) - 8usize]; + ["Offset of field: SFIFO_obj_metadata_t::fifo_id"] + [::std::mem::offset_of!(SFIFO_obj_metadata_t, fifo_id) - 12usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct QDLP_obj_metadata_t { + pub freq: i32, + pub last_access_time: i32, + pub cache_id: i32, + pub visited: bool, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of QDLP_obj_metadata_t"][::std::mem::size_of::() - 16usize]; + ["Alignment of QDLP_obj_metadata_t"][::std::mem::align_of::() - 4usize]; + ["Offset of field: QDLP_obj_metadata_t::freq"] + [::std::mem::offset_of!(QDLP_obj_metadata_t, freq) - 0usize]; + ["Offset of field: QDLP_obj_metadata_t::last_access_time"] + [::std::mem::offset_of!(QDLP_obj_metadata_t, last_access_time) - 4usize]; + ["Offset of field: QDLP_obj_metadata_t::cache_id"] + [::std::mem::offset_of!(QDLP_obj_metadata_t, cache_id) - 8usize]; + ["Offset of field: QDLP_obj_metadata_t::visited"] + [::std::mem::offset_of!(QDLP_obj_metadata_t, visited) - 12usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct S3FIFO_obj_metadata_t { + pub insertion_time: i64, + pub freq: i64, + pub main_insert_freq: i32, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of S3FIFO_obj_metadata_t"][::std::mem::size_of::() - 24usize]; + ["Alignment of S3FIFO_obj_metadata_t"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: S3FIFO_obj_metadata_t::insertion_time"] + [::std::mem::offset_of!(S3FIFO_obj_metadata_t, insertion_time) - 0usize]; + ["Offset of field: S3FIFO_obj_metadata_t::freq"] + [::std::mem::offset_of!(S3FIFO_obj_metadata_t, freq) - 8usize]; + ["Offset of field: S3FIFO_obj_metadata_t::main_insert_freq"] + [::std::mem::offset_of!(S3FIFO_obj_metadata_t, main_insert_freq) - 16usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CAR_obj_metadata_t { + pub lru_id: ::std::os::raw::c_int, + pub reference: bool, + pub ghost: bool, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of CAR_obj_metadata_t"][::std::mem::size_of::() - 8usize]; + ["Alignment of CAR_obj_metadata_t"][::std::mem::align_of::() - 4usize]; + ["Offset of field: CAR_obj_metadata_t::lru_id"] + [::std::mem::offset_of!(CAR_obj_metadata_t, lru_id) - 0usize]; + ["Offset of field: CAR_obj_metadata_t::reference"] + [::std::mem::offset_of!(CAR_obj_metadata_t, reference) - 4usize]; + ["Offset of field: CAR_obj_metadata_t::ghost"] + [::std::mem::offset_of!(CAR_obj_metadata_t, ghost) - 5usize]; +}; +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct Sieve_obj_params_t { + pub freq: i32, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of Sieve_obj_params_t"][::std::mem::size_of::() - 4usize]; + ["Alignment of Sieve_obj_params_t"][::std::mem::align_of::() - 1usize]; + ["Offset of field: Sieve_obj_params_t::freq"] + [::std::mem::offset_of!(Sieve_obj_params_t, freq) - 0usize]; +}; +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct misc_metadata_t { + pub next_access_vtime: i64, + pub freq: i32, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of misc_metadata_t"][::std::mem::size_of::() - 12usize]; + ["Alignment of misc_metadata_t"][::std::mem::align_of::() - 1usize]; + ["Offset of field: misc_metadata_t::next_access_vtime"] + [::std::mem::offset_of!(misc_metadata_t, next_access_vtime) - 0usize]; + ["Offset of field: misc_metadata_t::freq"] + [::std::mem::offset_of!(misc_metadata_t, freq) - 8usize]; +}; +#[repr(C, packed)] +#[derive(Copy, Clone)] +pub struct cache_obj { + pub hash_next: *mut cache_obj, + pub obj_id: obj_id_t, + pub obj_size: u64, + pub queue: cache_obj__bindgen_ty_1, + pub misc: misc_metadata_t, + pub __bindgen_anon_1: cache_obj__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cache_obj__bindgen_ty_1 { + pub prev: *mut cache_obj, + pub next: *mut cache_obj, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of cache_obj__bindgen_ty_1"][::std::mem::size_of::() - 16usize]; + ["Alignment of cache_obj__bindgen_ty_1"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: cache_obj__bindgen_ty_1::prev"] + [::std::mem::offset_of!(cache_obj__bindgen_ty_1, prev) - 0usize]; + ["Offset of field: cache_obj__bindgen_ty_1::next"] + [::std::mem::offset_of!(cache_obj__bindgen_ty_1, next) - 8usize]; +}; +#[repr(C)] +#[derive(Copy, Clone)] +pub union cache_obj__bindgen_ty_2 { + pub lfu: LFU_obj_metadata_t, + pub clock: Clock_obj_metadata_t, + pub clockpro: ClockPro_obj_metadata_t, + pub Size: Size_obj_metadata_t, + pub ARC: ARC_obj_metadata_t, + pub LeCaR: LeCaR_obj_metadata_t, + pub Cacheus: Cacheus_obj_metadata_t, + pub SR_LRU: SR_LRU_obj_metadata_t, + pub CR_LFU: CR_LFU_obj_metadata_t, + pub hyperbolic: Hyperbolic_obj_metadata_t, + pub Random: Random_obj_metadata_t, + pub Belady: Belady_obj_metadata_t, + pub FIFO_Merge: FIFO_Merge_obj_metadata_t, + pub FIFO_Reinsertion: FIFO_Reinsertion_obj_metadata_t, + pub SFIFO: SFIFO_obj_metadata_t, + pub SLRU: SLRU_obj_metadata_t, + pub QDLP: QDLP_obj_metadata_t, + pub LIRS: LIRS_obj_metadata_t, + pub S3FIFO: S3FIFO_obj_metadata_t, + pub sieve: Sieve_obj_params_t, + pub CAR: CAR_obj_metadata_t, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of cache_obj__bindgen_ty_2"][::std::mem::size_of::() - 32usize]; + ["Alignment of cache_obj__bindgen_ty_2"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: cache_obj__bindgen_ty_2::lfu"] + [::std::mem::offset_of!(cache_obj__bindgen_ty_2, lfu) - 0usize]; + ["Offset of field: cache_obj__bindgen_ty_2::clock"] + [::std::mem::offset_of!(cache_obj__bindgen_ty_2, clock) - 0usize]; + ["Offset of field: cache_obj__bindgen_ty_2::clockpro"] + [::std::mem::offset_of!(cache_obj__bindgen_ty_2, clockpro) - 0usize]; + ["Offset of field: cache_obj__bindgen_ty_2::Size"] + [::std::mem::offset_of!(cache_obj__bindgen_ty_2, Size) - 0usize]; + ["Offset of field: cache_obj__bindgen_ty_2::ARC"] + [::std::mem::offset_of!(cache_obj__bindgen_ty_2, ARC) - 0usize]; + ["Offset of field: cache_obj__bindgen_ty_2::LeCaR"] + [::std::mem::offset_of!(cache_obj__bindgen_ty_2, LeCaR) - 0usize]; + ["Offset of field: cache_obj__bindgen_ty_2::Cacheus"] + [::std::mem::offset_of!(cache_obj__bindgen_ty_2, Cacheus) - 0usize]; + ["Offset of field: cache_obj__bindgen_ty_2::SR_LRU"] + [::std::mem::offset_of!(cache_obj__bindgen_ty_2, SR_LRU) - 0usize]; + ["Offset of field: cache_obj__bindgen_ty_2::CR_LFU"] + [::std::mem::offset_of!(cache_obj__bindgen_ty_2, CR_LFU) - 0usize]; + ["Offset of field: cache_obj__bindgen_ty_2::hyperbolic"] + [::std::mem::offset_of!(cache_obj__bindgen_ty_2, hyperbolic) - 0usize]; + ["Offset of field: cache_obj__bindgen_ty_2::Random"] + [::std::mem::offset_of!(cache_obj__bindgen_ty_2, Random) - 0usize]; + ["Offset of field: cache_obj__bindgen_ty_2::Belady"] + [::std::mem::offset_of!(cache_obj__bindgen_ty_2, Belady) - 0usize]; + ["Offset of field: cache_obj__bindgen_ty_2::FIFO_Merge"] + [::std::mem::offset_of!(cache_obj__bindgen_ty_2, FIFO_Merge) - 0usize]; + ["Offset of field: cache_obj__bindgen_ty_2::FIFO_Reinsertion"] + [::std::mem::offset_of!(cache_obj__bindgen_ty_2, FIFO_Reinsertion) - 0usize]; + ["Offset of field: cache_obj__bindgen_ty_2::SFIFO"] + [::std::mem::offset_of!(cache_obj__bindgen_ty_2, SFIFO) - 0usize]; + ["Offset of field: cache_obj__bindgen_ty_2::SLRU"] + [::std::mem::offset_of!(cache_obj__bindgen_ty_2, SLRU) - 0usize]; + ["Offset of field: cache_obj__bindgen_ty_2::QDLP"] + [::std::mem::offset_of!(cache_obj__bindgen_ty_2, QDLP) - 0usize]; + ["Offset of field: cache_obj__bindgen_ty_2::LIRS"] + [::std::mem::offset_of!(cache_obj__bindgen_ty_2, LIRS) - 0usize]; + ["Offset of field: cache_obj__bindgen_ty_2::S3FIFO"] + [::std::mem::offset_of!(cache_obj__bindgen_ty_2, S3FIFO) - 0usize]; + ["Offset of field: cache_obj__bindgen_ty_2::sieve"] + [::std::mem::offset_of!(cache_obj__bindgen_ty_2, sieve) - 0usize]; + ["Offset of field: cache_obj__bindgen_ty_2::CAR"] + [::std::mem::offset_of!(cache_obj__bindgen_ty_2, CAR) - 0usize]; +}; +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of cache_obj"][::std::mem::size_of::() - 84usize]; + ["Alignment of cache_obj"][::std::mem::align_of::() - 1usize]; + ["Offset of field: cache_obj::hash_next"] + [::std::mem::offset_of!(cache_obj, hash_next) - 0usize]; + ["Offset of field: cache_obj::obj_id"][::std::mem::offset_of!(cache_obj, obj_id) - 8usize]; + ["Offset of field: cache_obj::obj_size"][::std::mem::offset_of!(cache_obj, obj_size) - 16usize]; + ["Offset of field: cache_obj::queue"][::std::mem::offset_of!(cache_obj, queue) - 24usize]; + ["Offset of field: cache_obj::misc"][::std::mem::offset_of!(cache_obj, misc) - 40usize]; +}; +pub type cache_obj_t = cache_obj; +unsafe extern "C" { + #[doc = " copy the cache_obj to req_dest\n @param req_dest\n @param cache_obj"] + pub fn copy_cache_obj_to_request(req_dest: *mut request, cache_obj: *const cache_obj_t); +} +unsafe extern "C" { + #[doc = " copy the data from request into cache_obj\n @param cache_obj\n @param req"] + pub fn copy_request_to_cache_obj(cache_obj: *mut cache_obj_t, req: *const request); +} +unsafe extern "C" { + #[doc = " create a cache_obj from request\n @param req\n @return"] + pub fn create_cache_obj_from_request(req: *const request) -> *mut cache_obj_t; +} +unsafe extern "C" { + #[doc = " the cache_obj has built-in a doubly list, in the case the list is used as\n a singly list (list_prev is not used, next is used)\n so this function finds the list_prev element in the list\n\n NOTE: this is an expensive op\n @param head\n @param cache_obj\n @return"] + #[link_name = "prev_obj_in_slist__extern"] + pub fn prev_obj_in_slist( + head: *mut cache_obj_t, + cache_obj: *mut cache_obj_t, + ) -> *mut cache_obj_t; +} +unsafe extern "C" { + #[doc = " remove the object from the LRU queue (a built-in doubly linked list)\n\n @param head\n @param tail\n @param cache_obj"] + pub fn remove_obj_from_list( + head: *mut *mut cache_obj_t, + tail: *mut *mut cache_obj_t, + cache_obj: *mut cache_obj_t, + ); +} +unsafe extern "C" { + #[doc = " move an object to the tail of the LRU queue (a doubly linked list)\n @param head\n @param tail\n @param cache_obj"] + pub fn move_obj_to_tail( + head: *mut *mut cache_obj_t, + tail: *mut *mut cache_obj_t, + cache_obj: *mut cache_obj_t, + ); +} +unsafe extern "C" { + #[doc = " move an object to the head of the LRU queue (a doubly linked list)\n @param head\n @param tail\n @param cache_obj"] + pub fn move_obj_to_head( + head: *mut *mut cache_obj_t, + tail: *mut *mut cache_obj_t, + cache_obj: *mut cache_obj_t, + ); +} +unsafe extern "C" { + #[doc = " prepend the object to the head of the doubly linked list\n the object should not be in the list, otherwise, use move_obj_to_head\n @param head\n @param tail\n @param cache_obj"] + pub fn prepend_obj_to_head( + head: *mut *mut cache_obj_t, + tail: *mut *mut cache_obj_t, + cache_obj: *mut cache_obj_t, + ); +} +unsafe extern "C" { + #[doc = " append the object to the tail of the doubly linked list\n the object should not be in the list, otherwise, use move_obj_to_tail\n @param head\n @param tail\n @param cache_obj"] + pub fn append_obj_to_tail( + head: *mut *mut cache_obj_t, + tail: *mut *mut cache_obj_t, + cache_obj: *mut cache_obj_t, + ); +} +unsafe extern "C" { + #[doc = " free cache_obj, this is only used when the cache_obj is explicitly\n malloced\n @param cache_obj"] + #[link_name = "free_cache_obj__extern"] + pub fn free_cache_obj(cache_obj: *mut cache_obj_t); +} +pub type cache_t = cache; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct prefetcher { + _unused: [u8; 0], +} +pub type prefetcher_t = prefetcher; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct common_cache_params_t { + pub cache_size: u64, + pub default_ttl: u64, + pub hashpower: i32, + pub consider_obj_metadata: bool, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of common_cache_params_t"][::std::mem::size_of::() - 24usize]; + ["Alignment of common_cache_params_t"] + [::std::mem::align_of::() - 8usize]; + ["Offset of field: common_cache_params_t::cache_size"] + [::std::mem::offset_of!(common_cache_params_t, cache_size) - 0usize]; + ["Offset of field: common_cache_params_t::default_ttl"] + [::std::mem::offset_of!(common_cache_params_t, default_ttl) - 8usize]; + ["Offset of field: common_cache_params_t::hashpower"] + [::std::mem::offset_of!(common_cache_params_t, hashpower) - 16usize]; + ["Offset of field: common_cache_params_t::consider_obj_metadata"] + [::std::mem::offset_of!(common_cache_params_t, consider_obj_metadata) - 20usize]; +}; +pub type cache_init_func_ptr = ::std::option::Option< + unsafe extern "C" fn( + arg1: common_cache_params_t, + arg2: *const ::std::os::raw::c_char, + ) -> *mut cache_t, +>; +pub type cache_free_func_ptr = ::std::option::Option; +pub type cache_get_func_ptr = + ::std::option::Option bool>; +pub type cache_find_func_ptr = ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut cache_t, + arg2: *const request_t, + arg3: bool, + ) -> *mut cache_obj_t, +>; +pub type cache_can_insert_func_ptr = + ::std::option::Option bool>; +pub type cache_insert_func_ptr = ::std::option::Option< + unsafe extern "C" fn(arg1: *mut cache_t, arg2: *const request_t) -> *mut cache_obj_t, +>; +pub type cache_need_eviction_func_ptr = + ::std::option::Option bool>; +pub type cache_evict_func_ptr = + ::std::option::Option; +pub type cache_to_evict_func_ptr = ::std::option::Option< + unsafe extern "C" fn(arg1: *mut cache_t, arg2: *const request_t) -> *mut cache_obj_t, +>; +pub type cache_remove_func_ptr = + ::std::option::Option bool>; +pub type cache_remove_obj_func_ptr = + ::std::option::Option; +pub type cache_get_occupied_byte_func_ptr = + ::std::option::Option i64>; +pub type cache_get_n_obj_func_ptr = + ::std::option::Option i64>; +pub type cache_print_cache_func_ptr = + ::std::option::Option; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cache_stat_t { + pub n_warmup_req: i64, + pub n_req: i64, + pub n_req_byte: i64, + pub n_miss: i64, + pub n_miss_byte: i64, + pub n_obj: i64, + pub occupied_byte: i64, + pub cache_size: i64, + pub sampler_ratio: f32, + pub curr_rtime: i64, + pub expired_obj_cnt: i64, + pub expired_bytes: i64, + pub cache_name: [::std::os::raw::c_char; 640usize], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of cache_stat_t"][::std::mem::size_of::() - 736usize]; + ["Alignment of cache_stat_t"][::std::mem::align_of::() - 8usize]; + ["Offset of field: cache_stat_t::n_warmup_req"] + [::std::mem::offset_of!(cache_stat_t, n_warmup_req) - 0usize]; + ["Offset of field: cache_stat_t::n_req"][::std::mem::offset_of!(cache_stat_t, n_req) - 8usize]; + ["Offset of field: cache_stat_t::n_req_byte"] + [::std::mem::offset_of!(cache_stat_t, n_req_byte) - 16usize]; + ["Offset of field: cache_stat_t::n_miss"] + [::std::mem::offset_of!(cache_stat_t, n_miss) - 24usize]; + ["Offset of field: cache_stat_t::n_miss_byte"] + [::std::mem::offset_of!(cache_stat_t, n_miss_byte) - 32usize]; + ["Offset of field: cache_stat_t::n_obj"][::std::mem::offset_of!(cache_stat_t, n_obj) - 40usize]; + ["Offset of field: cache_stat_t::occupied_byte"] + [::std::mem::offset_of!(cache_stat_t, occupied_byte) - 48usize]; + ["Offset of field: cache_stat_t::cache_size"] + [::std::mem::offset_of!(cache_stat_t, cache_size) - 56usize]; + ["Offset of field: cache_stat_t::sampler_ratio"] + [::std::mem::offset_of!(cache_stat_t, sampler_ratio) - 64usize]; + ["Offset of field: cache_stat_t::curr_rtime"] + [::std::mem::offset_of!(cache_stat_t, curr_rtime) - 72usize]; + ["Offset of field: cache_stat_t::expired_obj_cnt"] + [::std::mem::offset_of!(cache_stat_t, expired_obj_cnt) - 80usize]; + ["Offset of field: cache_stat_t::expired_bytes"] + [::std::mem::offset_of!(cache_stat_t, expired_bytes) - 88usize]; + ["Offset of field: cache_stat_t::cache_name"] + [::std::mem::offset_of!(cache_stat_t, cache_name) - 96usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct hashtable { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cache { + pub hashtable: *mut hashtable, + pub cache_init: cache_init_func_ptr, + pub cache_free: cache_free_func_ptr, + pub get: cache_get_func_ptr, + pub find: cache_find_func_ptr, + pub can_insert: cache_can_insert_func_ptr, + pub insert: cache_insert_func_ptr, + pub need_eviction: cache_need_eviction_func_ptr, + pub evict: cache_evict_func_ptr, + pub remove: cache_remove_func_ptr, + pub to_evict: cache_to_evict_func_ptr, + pub get_occupied_byte: cache_get_occupied_byte_func_ptr, + pub get_n_obj: cache_get_n_obj_func_ptr, + pub print_cache: cache_print_cache_func_ptr, + pub admissioner: *mut admissioner_t, + pub prefetcher: *mut prefetcher_t, + pub eviction_params: *mut ::std::os::raw::c_void, + pub n_req: i64, + #[doc = " private fields"] + pub n_obj: i64, + pub occupied_byte: i64, + #[doc = " end of private fields"] + pub to_evict_candidate: *mut cache_obj_t, + pub to_evict_candidate_gen_vtime: i64, + pub cache_size: i64, + pub default_ttl: i64, + pub obj_md_size: i32, + pub cache_name: [::std::os::raw::c_char; 64usize], + pub init_params: [::std::os::raw::c_char; 256usize], + pub last_request_metadata: *mut ::std::os::raw::c_void, + pub future_stack_dist: *mut i32, + pub future_stack_dist_array_size: i64, + pub log_eviction_age_cnt: [i64; 320usize], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of cache"][::std::mem::size_of::() - 3104usize]; + ["Alignment of cache"][::std::mem::align_of::() - 8usize]; + ["Offset of field: cache::hashtable"][::std::mem::offset_of!(cache, hashtable) - 0usize]; + ["Offset of field: cache::cache_init"][::std::mem::offset_of!(cache, cache_init) - 8usize]; + ["Offset of field: cache::cache_free"][::std::mem::offset_of!(cache, cache_free) - 16usize]; + ["Offset of field: cache::get"][::std::mem::offset_of!(cache, get) - 24usize]; + ["Offset of field: cache::find"][::std::mem::offset_of!(cache, find) - 32usize]; + ["Offset of field: cache::can_insert"][::std::mem::offset_of!(cache, can_insert) - 40usize]; + ["Offset of field: cache::insert"][::std::mem::offset_of!(cache, insert) - 48usize]; + ["Offset of field: cache::need_eviction"] + [::std::mem::offset_of!(cache, need_eviction) - 56usize]; + ["Offset of field: cache::evict"][::std::mem::offset_of!(cache, evict) - 64usize]; + ["Offset of field: cache::remove"][::std::mem::offset_of!(cache, remove) - 72usize]; + ["Offset of field: cache::to_evict"][::std::mem::offset_of!(cache, to_evict) - 80usize]; + ["Offset of field: cache::get_occupied_byte"] + [::std::mem::offset_of!(cache, get_occupied_byte) - 88usize]; + ["Offset of field: cache::get_n_obj"][::std::mem::offset_of!(cache, get_n_obj) - 96usize]; + ["Offset of field: cache::print_cache"][::std::mem::offset_of!(cache, print_cache) - 104usize]; + ["Offset of field: cache::admissioner"][::std::mem::offset_of!(cache, admissioner) - 112usize]; + ["Offset of field: cache::prefetcher"][::std::mem::offset_of!(cache, prefetcher) - 120usize]; + ["Offset of field: cache::eviction_params"] + [::std::mem::offset_of!(cache, eviction_params) - 128usize]; + ["Offset of field: cache::n_req"][::std::mem::offset_of!(cache, n_req) - 136usize]; + ["Offset of field: cache::n_obj"][::std::mem::offset_of!(cache, n_obj) - 144usize]; + ["Offset of field: cache::occupied_byte"] + [::std::mem::offset_of!(cache, occupied_byte) - 152usize]; + ["Offset of field: cache::to_evict_candidate"] + [::std::mem::offset_of!(cache, to_evict_candidate) - 160usize]; + ["Offset of field: cache::to_evict_candidate_gen_vtime"] + [::std::mem::offset_of!(cache, to_evict_candidate_gen_vtime) - 168usize]; + ["Offset of field: cache::cache_size"][::std::mem::offset_of!(cache, cache_size) - 176usize]; + ["Offset of field: cache::default_ttl"][::std::mem::offset_of!(cache, default_ttl) - 184usize]; + ["Offset of field: cache::obj_md_size"][::std::mem::offset_of!(cache, obj_md_size) - 192usize]; + ["Offset of field: cache::cache_name"][::std::mem::offset_of!(cache, cache_name) - 196usize]; + ["Offset of field: cache::init_params"][::std::mem::offset_of!(cache, init_params) - 260usize]; + ["Offset of field: cache::last_request_metadata"] + [::std::mem::offset_of!(cache, last_request_metadata) - 520usize]; + ["Offset of field: cache::future_stack_dist"] + [::std::mem::offset_of!(cache, future_stack_dist) - 528usize]; + ["Offset of field: cache::future_stack_dist_array_size"] + [::std::mem::offset_of!(cache, future_stack_dist_array_size) - 536usize]; + ["Offset of field: cache::log_eviction_age_cnt"] + [::std::mem::offset_of!(cache, log_eviction_age_cnt) - 544usize]; +}; +unsafe extern "C" { + #[link_name = "default_common_cache_params__extern"] + pub fn default_common_cache_params() -> common_cache_params_t; +} +unsafe extern "C" { + #[doc = " initialize the cache struct, must be called in all cache_init functions\n @param cache_name\n @param params\n @return"] + pub fn cache_struct_init( + cache_name: *const ::std::os::raw::c_char, + params: common_cache_params_t, + init_params: *const ::std::os::raw::c_void, + ) -> *mut cache_t; +} +unsafe extern "C" { + #[doc = " free the cache struct, must be called in all cache_free functions\n @param cache"] + pub fn cache_struct_free(cache: *mut cache_t); +} +unsafe extern "C" { + #[doc = " @brief create a new cache with the same size and parameters\n\n @param old_cache\n @return cache_t*"] + pub fn clone_cache(old_cache: *const cache_t) -> *mut cache_t; +} +unsafe extern "C" { + #[doc = " create a cache with new size\n @param old_cache\n @param new_size\n @return"] + pub fn create_cache_with_new_size(old_cache: *const cache_t, new_size: u64) -> *mut cache_t; +} +unsafe extern "C" { + #[doc = " a function that finds object from the cache, it is used by\n all eviction algorithms that directly use the hashtable\n\n @param cache\n @param req\n @param update_cache\n @return"] + pub fn cache_find_base( + cache: *mut cache_t, + req: *const request_t, + update_cache: bool, + ) -> *mut cache_obj_t; +} +unsafe extern "C" { + #[doc = " a common cache get function\n @param cache\n @param req\n @return"] + pub fn cache_get_base(cache: *mut cache_t, req: *const request_t) -> bool; +} +unsafe extern "C" { + #[doc = " @brief check whether the object can be inserted into the cache\n\n @param cache\n @param req\n @return true\n @return false"] + pub fn cache_can_insert_default(cache: *mut cache_t, req: *const request_t) -> bool; +} +unsafe extern "C" { + #[doc = " this function is called by all caches to\n insert an object into the cache, update the hash table and cache metadata\n @param cache\n @param req\n @return"] + pub fn cache_insert_base(cache: *mut cache_t, req: *const request_t) -> *mut cache_obj_t; +} +unsafe extern "C" { + #[doc = " @brief this function is called by all eviction algorithms that\n need to remove an object from the cache, it updates the cache metadata,\n because it frees the object struct, it needs to be called at the end of\n the eviction function.\n\n @param cache the cache\n @param obj the object to be removed"] + pub fn cache_remove_obj_base( + cache: *mut cache_t, + obj: *mut cache_obj_t, + remove_from_hashtable: bool, + ); +} +unsafe extern "C" { + #[doc = " @brief this function is called by all eviction algorithms in the eviction\n function, it updates the cache metadata. Because it frees the object struct,\n it needs to be called at the end of the eviction function.\n\n @param cache the cache\n @param obj the object to be removed"] + pub fn cache_evict_base( + cache: *mut cache_t, + obj: *mut cache_obj_t, + remove_from_hashtable: bool, + ); +} +unsafe extern "C" { + #[doc = " @brief get the number of bytes occupied, this is the default\n for most algorithms, but some algorithms may have different implementation\n for example, SLRU and SFIFO\n\n @param cache"] + #[link_name = "cache_get_occupied_byte_default__extern"] + pub fn cache_get_occupied_byte_default(cache: *const cache_t) -> i64; +} +unsafe extern "C" { + #[doc = " @brief get the number of objects in the cache, this is the default\n for most algorithms, but some algorithms may have different implementation\n for example, SLRU and SFIFO\n\n @param cache"] + #[link_name = "cache_get_n_obj_default__extern"] + pub fn cache_get_n_obj_default(cache: *const cache_t) -> i64; +} +unsafe extern "C" { + #[link_name = "cache_get_reference_time__extern"] + pub fn cache_get_reference_time(cache: *const cache_t) -> i64; +} +unsafe extern "C" { + #[link_name = "cache_get_logical_time__extern"] + pub fn cache_get_logical_time(cache: *const cache_t) -> i64; +} +unsafe extern "C" { + #[link_name = "cache_get_virtual_time__extern"] + pub fn cache_get_virtual_time(cache: *const cache_t) -> i64; +} +unsafe extern "C" { + #[doc = " @brief print cache stat\n\n @param cache"] + #[link_name = "print_cache_stat__extern"] + pub fn print_cache_stat(cache: *const cache_t); +} +unsafe extern "C" { + #[doc = " @brief record eviction age in wall clock time\n\n @param cache\n @param age"] + #[link_name = "record_log2_eviction_age__extern"] + pub fn record_log2_eviction_age(cache: *mut cache_t, age: ::std::os::raw::c_ulonglong); +} +unsafe extern "C" { + #[link_name = "record_eviction_age__extern"] + pub fn record_eviction_age(cache: *mut cache_t, obj: *mut cache_obj_t, age: i64); +} +unsafe extern "C" { + #[doc = " @brief print the recorded eviction age\n\n @param cache"] + pub fn print_eviction_age(cache: *const cache_t); +} +unsafe extern "C" { + #[doc = " @brief dump the eviction age to the file\n\n @param cache\n @param ofilepath\n @return whether the dump is successful"] + pub fn dump_eviction_age( + cache: *const cache_t, + ofilepath: *const ::std::os::raw::c_char, + ) -> bool; +} +unsafe extern "C" { + #[doc = " @brief dump the ages of the cached objects via forcing evictions\n\n @param cache\n @param req used to provide the current time\n @param ofilepath\n @return whether the dump is successful"] + pub fn dump_cached_obj_age( + cache: *mut cache_t, + req: *const request_t, + ofilepath: *const ::std::os::raw::c_char, + ) -> bool; +} +unsafe extern "C" { + #[link_name = "generate_cache_name__extern"] + pub fn generate_cache_name(cache: *mut cache_t, str_dest: *mut ::std::os::raw::c_char); +} +unsafe extern "C" { + pub fn __error() -> *mut ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flock { + pub l_start: off_t, + pub l_len: off_t, + pub l_pid: pid_t, + pub l_type: ::std::os::raw::c_short, + pub l_whence: ::std::os::raw::c_short, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of flock"][::std::mem::size_of::() - 24usize]; + ["Alignment of flock"][::std::mem::align_of::() - 8usize]; + ["Offset of field: flock::l_start"][::std::mem::offset_of!(flock, l_start) - 0usize]; + ["Offset of field: flock::l_len"][::std::mem::offset_of!(flock, l_len) - 8usize]; + ["Offset of field: flock::l_pid"][::std::mem::offset_of!(flock, l_pid) - 16usize]; + ["Offset of field: flock::l_type"][::std::mem::offset_of!(flock, l_type) - 20usize]; + ["Offset of field: flock::l_whence"][::std::mem::offset_of!(flock, l_whence) - 22usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flocktimeout { + pub fl: flock, + pub timeout: timespec, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of flocktimeout"][::std::mem::size_of::() - 40usize]; + ["Alignment of flocktimeout"][::std::mem::align_of::() - 8usize]; + ["Offset of field: flocktimeout::fl"][::std::mem::offset_of!(flocktimeout, fl) - 0usize]; + ["Offset of field: flocktimeout::timeout"] + [::std::mem::offset_of!(flocktimeout, timeout) - 24usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct radvisory { + pub ra_offset: off_t, + pub ra_count: ::std::os::raw::c_int, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of radvisory"][::std::mem::size_of::() - 16usize]; + ["Alignment of radvisory"][::std::mem::align_of::() - 8usize]; + ["Offset of field: radvisory::ra_offset"] + [::std::mem::offset_of!(radvisory, ra_offset) - 0usize]; + ["Offset of field: radvisory::ra_count"][::std::mem::offset_of!(radvisory, ra_count) - 8usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fsignatures { + pub fs_file_start: off_t, + pub fs_blob_start: *mut ::std::os::raw::c_void, + pub fs_blob_size: usize, + pub fs_fsignatures_size: usize, + pub fs_cdhash: [::std::os::raw::c_char; 20usize], + pub fs_hash_type: ::std::os::raw::c_int, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of fsignatures"][::std::mem::size_of::() - 56usize]; + ["Alignment of fsignatures"][::std::mem::align_of::() - 8usize]; + ["Offset of field: fsignatures::fs_file_start"] + [::std::mem::offset_of!(fsignatures, fs_file_start) - 0usize]; + ["Offset of field: fsignatures::fs_blob_start"] + [::std::mem::offset_of!(fsignatures, fs_blob_start) - 8usize]; + ["Offset of field: fsignatures::fs_blob_size"] + [::std::mem::offset_of!(fsignatures, fs_blob_size) - 16usize]; + ["Offset of field: fsignatures::fs_fsignatures_size"] + [::std::mem::offset_of!(fsignatures, fs_fsignatures_size) - 24usize]; + ["Offset of field: fsignatures::fs_cdhash"] + [::std::mem::offset_of!(fsignatures, fs_cdhash) - 32usize]; + ["Offset of field: fsignatures::fs_hash_type"] + [::std::mem::offset_of!(fsignatures, fs_hash_type) - 52usize]; +}; +pub type fsignatures_t = fsignatures; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fsupplement { + pub fs_file_start: off_t, + pub fs_blob_start: off_t, + pub fs_blob_size: usize, + pub fs_orig_fd: ::std::os::raw::c_int, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of fsupplement"][::std::mem::size_of::() - 32usize]; + ["Alignment of fsupplement"][::std::mem::align_of::() - 8usize]; + ["Offset of field: fsupplement::fs_file_start"] + [::std::mem::offset_of!(fsupplement, fs_file_start) - 0usize]; + ["Offset of field: fsupplement::fs_blob_start"] + [::std::mem::offset_of!(fsupplement, fs_blob_start) - 8usize]; + ["Offset of field: fsupplement::fs_blob_size"] + [::std::mem::offset_of!(fsupplement, fs_blob_size) - 16usize]; + ["Offset of field: fsupplement::fs_orig_fd"] + [::std::mem::offset_of!(fsupplement, fs_orig_fd) - 24usize]; +}; +pub type fsupplement_t = fsupplement; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fchecklv { + pub lv_file_start: off_t, + pub lv_error_message_size: usize, + pub lv_error_message: *mut ::std::os::raw::c_void, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of fchecklv"][::std::mem::size_of::() - 24usize]; + ["Alignment of fchecklv"][::std::mem::align_of::() - 8usize]; + ["Offset of field: fchecklv::lv_file_start"] + [::std::mem::offset_of!(fchecklv, lv_file_start) - 0usize]; + ["Offset of field: fchecklv::lv_error_message_size"] + [::std::mem::offset_of!(fchecklv, lv_error_message_size) - 8usize]; + ["Offset of field: fchecklv::lv_error_message"] + [::std::mem::offset_of!(fchecklv, lv_error_message) - 16usize]; +}; +pub type fchecklv_t = fchecklv; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fgetsigsinfo { + pub fg_file_start: off_t, + pub fg_info_request: ::std::os::raw::c_int, + pub fg_sig_is_platform: ::std::os::raw::c_int, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of fgetsigsinfo"][::std::mem::size_of::() - 16usize]; + ["Alignment of fgetsigsinfo"][::std::mem::align_of::() - 8usize]; + ["Offset of field: fgetsigsinfo::fg_file_start"] + [::std::mem::offset_of!(fgetsigsinfo, fg_file_start) - 0usize]; + ["Offset of field: fgetsigsinfo::fg_info_request"] + [::std::mem::offset_of!(fgetsigsinfo, fg_info_request) - 8usize]; + ["Offset of field: fgetsigsinfo::fg_sig_is_platform"] + [::std::mem::offset_of!(fgetsigsinfo, fg_sig_is_platform) - 12usize]; +}; +pub type fgetsigsinfo_t = fgetsigsinfo; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fstore { + pub fst_flags: ::std::os::raw::c_uint, + pub fst_posmode: ::std::os::raw::c_int, + pub fst_offset: off_t, + pub fst_length: off_t, + pub fst_bytesalloc: off_t, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of fstore"][::std::mem::size_of::() - 32usize]; + ["Alignment of fstore"][::std::mem::align_of::() - 8usize]; + ["Offset of field: fstore::fst_flags"][::std::mem::offset_of!(fstore, fst_flags) - 0usize]; + ["Offset of field: fstore::fst_posmode"][::std::mem::offset_of!(fstore, fst_posmode) - 4usize]; + ["Offset of field: fstore::fst_offset"][::std::mem::offset_of!(fstore, fst_offset) - 8usize]; + ["Offset of field: fstore::fst_length"][::std::mem::offset_of!(fstore, fst_length) - 16usize]; + ["Offset of field: fstore::fst_bytesalloc"] + [::std::mem::offset_of!(fstore, fst_bytesalloc) - 24usize]; +}; +pub type fstore_t = fstore; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fpunchhole { + pub fp_flags: ::std::os::raw::c_uint, + pub reserved: ::std::os::raw::c_uint, + pub fp_offset: off_t, + pub fp_length: off_t, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of fpunchhole"][::std::mem::size_of::() - 24usize]; + ["Alignment of fpunchhole"][::std::mem::align_of::() - 8usize]; + ["Offset of field: fpunchhole::fp_flags"] + [::std::mem::offset_of!(fpunchhole, fp_flags) - 0usize]; + ["Offset of field: fpunchhole::reserved"] + [::std::mem::offset_of!(fpunchhole, reserved) - 4usize]; + ["Offset of field: fpunchhole::fp_offset"] + [::std::mem::offset_of!(fpunchhole, fp_offset) - 8usize]; + ["Offset of field: fpunchhole::fp_length"] + [::std::mem::offset_of!(fpunchhole, fp_length) - 16usize]; +}; +pub type fpunchhole_t = fpunchhole; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ftrimactivefile { + pub fta_offset: off_t, + pub fta_length: off_t, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of ftrimactivefile"][::std::mem::size_of::() - 16usize]; + ["Alignment of ftrimactivefile"][::std::mem::align_of::() - 8usize]; + ["Offset of field: ftrimactivefile::fta_offset"] + [::std::mem::offset_of!(ftrimactivefile, fta_offset) - 0usize]; + ["Offset of field: ftrimactivefile::fta_length"] + [::std::mem::offset_of!(ftrimactivefile, fta_length) - 8usize]; +}; +pub type ftrimactivefile_t = ftrimactivefile; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fspecread { + pub fsr_flags: ::std::os::raw::c_uint, + pub reserved: ::std::os::raw::c_uint, + pub fsr_offset: off_t, + pub fsr_length: off_t, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of fspecread"][::std::mem::size_of::() - 24usize]; + ["Alignment of fspecread"][::std::mem::align_of::() - 8usize]; + ["Offset of field: fspecread::fsr_flags"] + [::std::mem::offset_of!(fspecread, fsr_flags) - 0usize]; + ["Offset of field: fspecread::reserved"][::std::mem::offset_of!(fspecread, reserved) - 4usize]; + ["Offset of field: fspecread::fsr_offset"] + [::std::mem::offset_of!(fspecread, fsr_offset) - 8usize]; + ["Offset of field: fspecread::fsr_length"] + [::std::mem::offset_of!(fspecread, fsr_length) - 16usize]; +}; +pub type fspecread_t = fspecread; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fattributiontag { + pub ft_flags: ::std::os::raw::c_uint, + pub ft_hash: ::std::os::raw::c_ulonglong, + pub ft_attribution_name: [::std::os::raw::c_char; 255usize], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of fattributiontag"][::std::mem::size_of::() - 272usize]; + ["Alignment of fattributiontag"][::std::mem::align_of::() - 8usize]; + ["Offset of field: fattributiontag::ft_flags"] + [::std::mem::offset_of!(fattributiontag, ft_flags) - 0usize]; + ["Offset of field: fattributiontag::ft_hash"] + [::std::mem::offset_of!(fattributiontag, ft_hash) - 8usize]; + ["Offset of field: fattributiontag::ft_attribution_name"] + [::std::mem::offset_of!(fattributiontag, ft_attribution_name) - 16usize]; +}; +pub type fattributiontag_t = fattributiontag; +#[repr(C, packed(4))] +#[derive(Debug, Copy, Clone)] +pub struct log2phys { + pub l2p_flags: ::std::os::raw::c_uint, + pub l2p_contigbytes: off_t, + pub l2p_devoffset: off_t, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of log2phys"][::std::mem::size_of::() - 20usize]; + ["Alignment of log2phys"][::std::mem::align_of::() - 4usize]; + ["Offset of field: log2phys::l2p_flags"][::std::mem::offset_of!(log2phys, l2p_flags) - 0usize]; + ["Offset of field: log2phys::l2p_contigbytes"] + [::std::mem::offset_of!(log2phys, l2p_contigbytes) - 4usize]; + ["Offset of field: log2phys::l2p_devoffset"] + [::std::mem::offset_of!(log2phys, l2p_devoffset) - 12usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _filesec { + _unused: [u8; 0], +} +pub type filesec_t = *mut _filesec; +pub const filesec_property_t_FILESEC_OWNER: filesec_property_t = 1; +pub const filesec_property_t_FILESEC_GROUP: filesec_property_t = 2; +pub const filesec_property_t_FILESEC_UUID: filesec_property_t = 3; +pub const filesec_property_t_FILESEC_MODE: filesec_property_t = 4; +pub const filesec_property_t_FILESEC_ACL: filesec_property_t = 5; +pub const filesec_property_t_FILESEC_GRPUUID: filesec_property_t = 6; +pub const filesec_property_t_FILESEC_ACL_RAW: filesec_property_t = 100; +pub const filesec_property_t_FILESEC_ACL_ALLOCSIZE: filesec_property_t = 101; +pub type filesec_property_t = ::std::os::raw::c_uint; +unsafe extern "C" { + pub fn open( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + ... + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn openat( + arg1: ::std::os::raw::c_int, + arg2: *const ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + ... + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn creat(arg1: *const ::std::os::raw::c_char, arg2: mode_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn fcntl( + arg1: ::std::os::raw::c_int, + arg2: ::std::os::raw::c_int, + ... + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn openx_np( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: filesec_t, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn open_dprotected_np( + arg1: *const ::std::os::raw::c_char, + arg2: ::std::os::raw::c_int, + arg3: ::std::os::raw::c_int, + arg4: ::std::os::raw::c_int, + ... + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn openat_dprotected_np( + arg1: ::std::os::raw::c_int, + arg2: *const ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + arg4: ::std::os::raw::c_int, + arg5: ::std::os::raw::c_int, + ... + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn openat_authenticated_np( + arg1: ::std::os::raw::c_int, + arg2: *const ::std::os::raw::c_char, + arg3: ::std::os::raw::c_int, + arg4: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn flock(arg1: ::std::os::raw::c_int, arg2: ::std::os::raw::c_int) + -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn filesec_init() -> filesec_t; +} +unsafe extern "C" { + pub fn filesec_dup(arg1: filesec_t) -> filesec_t; +} +unsafe extern "C" { + pub fn filesec_free(arg1: filesec_t); +} +unsafe extern "C" { + pub fn filesec_get_property( + arg1: filesec_t, + arg2: filesec_property_t, + arg3: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn filesec_query_property( + arg1: filesec_t, + arg2: filesec_property_t, + arg3: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn filesec_set_property( + arg1: filesec_t, + arg2: filesec_property_t, + arg3: *const ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn filesec_unset_property( + arg1: filesec_t, + arg2: filesec_property_t, + ) -> ::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 __gnuc_va_list = __builtin_va_list; +unsafe extern "C" { + pub static sys_signame: [*const ::std::os::raw::c_char; 32usize]; +} +unsafe extern "C" { + pub static sys_siglist: [*const ::std::os::raw::c_char; 32usize]; +} +unsafe extern "C" { + pub fn raise(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe 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, + ), + >; +} +unsafe extern "C" { + pub fn kill(arg1: pid_t, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn killpg(arg1: pid_t, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn sigaction( + arg1: ::std::os::raw::c_int, + arg2: *const sigaction, + arg3: *mut sigaction, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn sigaddset(arg1: *mut sigset_t, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn sigaltstack(arg1: *const stack_t, arg2: *mut stack_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn sigdelset(arg1: *mut sigset_t, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn sigemptyset(arg1: *mut sigset_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn sigfillset(arg1: *mut sigset_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn sighold(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn sigignore(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn siginterrupt( + arg1: ::std::os::raw::c_int, + arg2: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn sigismember(arg1: *const sigset_t, arg2: ::std::os::raw::c_int) + -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn sigpause(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn sigpending(arg1: *mut sigset_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn sigprocmask( + arg1: ::std::os::raw::c_int, + arg2: *const sigset_t, + arg3: *mut sigset_t, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn sigrelse(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe 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, + ), + >; +} +unsafe extern "C" { + pub fn sigsuspend(arg1: *const sigset_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn sigwait( + arg1: *const sigset_t, + arg2: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn psignal(arg1: ::std::os::raw::c_int, arg2: *const ::std::os::raw::c_char); +} +unsafe extern "C" { + pub fn sigblock(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn sigsetmask(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn sigvec( + arg1: ::std::os::raw::c_int, + arg2: *mut sigvec, + arg3: *mut sigvec, + ) -> ::std::os::raw::c_int; +} +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], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of dirent"][::std::mem::size_of::() - 1048usize]; + ["Alignment of dirent"][::std::mem::align_of::() - 8usize]; + ["Offset of field: dirent::d_ino"][::std::mem::offset_of!(dirent, d_ino) - 0usize]; + ["Offset of field: dirent::d_seekoff"][::std::mem::offset_of!(dirent, d_seekoff) - 8usize]; + ["Offset of field: dirent::d_reclen"][::std::mem::offset_of!(dirent, d_reclen) - 16usize]; + ["Offset of field: dirent::d_namlen"][::std::mem::offset_of!(dirent, d_namlen) - 18usize]; + ["Offset of field: dirent::d_type"][::std::mem::offset_of!(dirent, d_type) - 20usize]; + ["Offset of field: dirent::d_name"][::std::mem::offset_of!(dirent, d_name) - 21usize]; +}; +#[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, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of DIR"][::std::mem::size_of::() - 136usize]; + ["Alignment of DIR"][::std::mem::align_of::() - 8usize]; + ["Offset of field: DIR::__dd_fd"][::std::mem::offset_of!(DIR, __dd_fd) - 0usize]; + ["Offset of field: DIR::__dd_loc"][::std::mem::offset_of!(DIR, __dd_loc) - 8usize]; + ["Offset of field: DIR::__dd_size"][::std::mem::offset_of!(DIR, __dd_size) - 16usize]; + ["Offset of field: DIR::__dd_buf"][::std::mem::offset_of!(DIR, __dd_buf) - 24usize]; + ["Offset of field: DIR::__dd_len"][::std::mem::offset_of!(DIR, __dd_len) - 32usize]; + ["Offset of field: DIR::__dd_seek"][::std::mem::offset_of!(DIR, __dd_seek) - 40usize]; + ["Offset of field: DIR::__padding"][::std::mem::offset_of!(DIR, __padding) - 48usize]; + ["Offset of field: DIR::__dd_flags"][::std::mem::offset_of!(DIR, __dd_flags) - 56usize]; + ["Offset of field: DIR::__dd_lock"][::std::mem::offset_of!(DIR, __dd_lock) - 64usize]; + ["Offset of field: DIR::__dd_td"][::std::mem::offset_of!(DIR, __dd_td) - 128usize]; +}; +unsafe extern "C" { + pub fn closedir(arg1: *mut DIR) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn opendir(arg1: *const ::std::os::raw::c_char) -> *mut DIR; +} +unsafe extern "C" { + pub fn readdir(arg1: *mut DIR) -> *mut dirent; +} +unsafe extern "C" { + pub fn readdir_r( + arg1: *mut DIR, + arg2: *mut dirent, + arg3: *mut *mut dirent, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn rewinddir(arg1: *mut DIR); +} +unsafe extern "C" { + pub fn seekdir(arg1: *mut DIR, arg2: ::std::os::raw::c_long); +} +unsafe extern "C" { + pub fn telldir(arg1: *mut DIR) -> ::std::os::raw::c_long; +} +unsafe extern "C" { + pub fn fdopendir(arg1: ::std::os::raw::c_int) -> *mut DIR; +} +unsafe extern "C" { + pub fn alphasort(arg1: *mut *const dirent, arg2: *mut *const dirent) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn dirfd(dirp: *mut DIR) -> ::std::os::raw::c_int; +} +unsafe 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; +} +unsafe 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; +} +unsafe 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; +} +unsafe extern "C" { + pub fn __opendir2(arg1: *const ::std::os::raw::c_char, arg2: ::std::os::raw::c_int) + -> *mut DIR; +} +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 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 segsz_t = i32; +pub type swblk_t = i32; +pub type fd_mask = __int32_t; +pub type fsblkcnt_t = __darwin_fsblkcnt_t; +pub type fsfilcnt_t = __darwin_fsfilcnt_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ostat { + pub st_dev: __uint16_t, + pub st_ino: ino_t, + pub st_mode: mode_t, + pub st_nlink: nlink_t, + pub st_uid: __uint16_t, + pub st_gid: __uint16_t, + pub st_rdev: __uint16_t, + pub st_size: __int32_t, + pub st_atimespec: timespec, + pub st_mtimespec: timespec, + pub st_ctimespec: timespec, + pub st_blksize: __int32_t, + pub st_blocks: __int32_t, + pub st_flags: __uint32_t, + pub st_gen: __uint32_t, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of ostat"][::std::mem::size_of::() - 96usize]; + ["Alignment of ostat"][::std::mem::align_of::() - 8usize]; + ["Offset of field: ostat::st_dev"][::std::mem::offset_of!(ostat, st_dev) - 0usize]; + ["Offset of field: ostat::st_ino"][::std::mem::offset_of!(ostat, st_ino) - 8usize]; + ["Offset of field: ostat::st_mode"][::std::mem::offset_of!(ostat, st_mode) - 16usize]; + ["Offset of field: ostat::st_nlink"][::std::mem::offset_of!(ostat, st_nlink) - 18usize]; + ["Offset of field: ostat::st_uid"][::std::mem::offset_of!(ostat, st_uid) - 20usize]; + ["Offset of field: ostat::st_gid"][::std::mem::offset_of!(ostat, st_gid) - 22usize]; + ["Offset of field: ostat::st_rdev"][::std::mem::offset_of!(ostat, st_rdev) - 24usize]; + ["Offset of field: ostat::st_size"][::std::mem::offset_of!(ostat, st_size) - 28usize]; + ["Offset of field: ostat::st_atimespec"][::std::mem::offset_of!(ostat, st_atimespec) - 32usize]; + ["Offset of field: ostat::st_mtimespec"][::std::mem::offset_of!(ostat, st_mtimespec) - 48usize]; + ["Offset of field: ostat::st_ctimespec"][::std::mem::offset_of!(ostat, st_ctimespec) - 64usize]; + ["Offset of field: ostat::st_blksize"][::std::mem::offset_of!(ostat, st_blksize) - 80usize]; + ["Offset of field: ostat::st_blocks"][::std::mem::offset_of!(ostat, st_blocks) - 84usize]; + ["Offset of field: ostat::st_flags"][::std::mem::offset_of!(ostat, st_flags) - 88usize]; + ["Offset of field: ostat::st_gen"][::std::mem::offset_of!(ostat, st_gen) - 92usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct stat { + pub st_dev: dev_t, + pub st_mode: mode_t, + pub st_nlink: nlink_t, + pub st_ino: __darwin_ino64_t, + pub st_uid: uid_t, + pub st_gid: gid_t, + pub st_rdev: dev_t, + pub st_atimespec: timespec, + pub st_mtimespec: timespec, + pub st_ctimespec: timespec, + pub st_birthtimespec: timespec, + pub st_size: off_t, + pub st_blocks: blkcnt_t, + pub st_blksize: blksize_t, + pub st_flags: __uint32_t, + pub st_gen: __uint32_t, + pub st_lspare: __int32_t, + pub st_qspare: [__int64_t; 2usize], +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of stat"][::std::mem::size_of::() - 144usize]; + ["Alignment of stat"][::std::mem::align_of::() - 8usize]; + ["Offset of field: stat::st_dev"][::std::mem::offset_of!(stat, st_dev) - 0usize]; + ["Offset of field: stat::st_mode"][::std::mem::offset_of!(stat, st_mode) - 4usize]; + ["Offset of field: stat::st_nlink"][::std::mem::offset_of!(stat, st_nlink) - 6usize]; + ["Offset of field: stat::st_ino"][::std::mem::offset_of!(stat, st_ino) - 8usize]; + ["Offset of field: stat::st_uid"][::std::mem::offset_of!(stat, st_uid) - 16usize]; + ["Offset of field: stat::st_gid"][::std::mem::offset_of!(stat, st_gid) - 20usize]; + ["Offset of field: stat::st_rdev"][::std::mem::offset_of!(stat, st_rdev) - 24usize]; + ["Offset of field: stat::st_atimespec"][::std::mem::offset_of!(stat, st_atimespec) - 32usize]; + ["Offset of field: stat::st_mtimespec"][::std::mem::offset_of!(stat, st_mtimespec) - 48usize]; + ["Offset of field: stat::st_ctimespec"][::std::mem::offset_of!(stat, st_ctimespec) - 64usize]; + ["Offset of field: stat::st_birthtimespec"] + [::std::mem::offset_of!(stat, st_birthtimespec) - 80usize]; + ["Offset of field: stat::st_size"][::std::mem::offset_of!(stat, st_size) - 96usize]; + ["Offset of field: stat::st_blocks"][::std::mem::offset_of!(stat, st_blocks) - 104usize]; + ["Offset of field: stat::st_blksize"][::std::mem::offset_of!(stat, st_blksize) - 112usize]; + ["Offset of field: stat::st_flags"][::std::mem::offset_of!(stat, st_flags) - 116usize]; + ["Offset of field: stat::st_gen"][::std::mem::offset_of!(stat, st_gen) - 120usize]; + ["Offset of field: stat::st_lspare"][::std::mem::offset_of!(stat, st_lspare) - 124usize]; + ["Offset of field: stat::st_qspare"][::std::mem::offset_of!(stat, st_qspare) - 128usize]; +}; +unsafe extern "C" { + pub fn chmod(arg1: *const ::std::os::raw::c_char, arg2: mode_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn fchmod(arg1: ::std::os::raw::c_int, arg2: mode_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn fstat(arg1: ::std::os::raw::c_int, arg2: *mut stat) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn lstat(arg1: *const ::std::os::raw::c_char, arg2: *mut stat) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn mkdir(arg1: *const ::std::os::raw::c_char, arg2: mode_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn mkfifo(arg1: *const ::std::os::raw::c_char, arg2: mode_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn stat(arg1: *const ::std::os::raw::c_char, arg2: *mut stat) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn umask(arg1: mode_t) -> mode_t; +} +unsafe extern "C" { + pub fn fchmodat( + arg1: ::std::os::raw::c_int, + arg2: *const ::std::os::raw::c_char, + arg3: mode_t, + arg4: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn fstatat( + arg1: ::std::os::raw::c_int, + arg2: *const ::std::os::raw::c_char, + arg3: *mut stat, + arg4: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn mkdirat( + arg1: ::std::os::raw::c_int, + arg2: *const ::std::os::raw::c_char, + arg3: mode_t, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn mkfifoat( + arg1: ::std::os::raw::c_int, + arg2: *const ::std::os::raw::c_char, + arg3: mode_t, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn mknodat( + arg1: ::std::os::raw::c_int, + arg2: *const ::std::os::raw::c_char, + arg3: mode_t, + arg4: dev_t, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn futimens(__fd: ::std::os::raw::c_int, __times: *const timespec) + -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn utimensat( + __fd: ::std::os::raw::c_int, + __path: *const ::std::os::raw::c_char, + __times: *const timespec, + __flag: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn chflags(arg1: *const ::std::os::raw::c_char, arg2: __uint32_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn chmodx_np(arg1: *const ::std::os::raw::c_char, arg2: filesec_t) + -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn fchflags(arg1: ::std::os::raw::c_int, arg2: __uint32_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn fchmodx_np(arg1: ::std::os::raw::c_int, arg2: filesec_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn fstatx_np( + arg1: ::std::os::raw::c_int, + arg2: *mut stat, + arg3: filesec_t, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn lchflags(arg1: *const ::std::os::raw::c_char, arg2: __uint32_t) + -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn lchmod(arg1: *const ::std::os::raw::c_char, arg2: mode_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn lstatx_np( + arg1: *const ::std::os::raw::c_char, + arg2: *mut stat, + arg3: filesec_t, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn mkdirx_np(arg1: *const ::std::os::raw::c_char, arg2: filesec_t) + -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn mkfifox_np( + arg1: *const ::std::os::raw::c_char, + arg2: filesec_t, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn statx_np( + arg1: *const ::std::os::raw::c_char, + arg2: *mut stat, + arg3: filesec_t, + ) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn umaskx_np(arg1: filesec_t) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iovec { + pub iov_base: *mut ::std::os::raw::c_void, + pub iov_len: usize, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of iovec"][::std::mem::size_of::() - 16usize]; + ["Alignment of iovec"][::std::mem::align_of::() - 8usize]; + ["Offset of field: iovec::iov_base"][::std::mem::offset_of!(iovec, iov_base) - 0usize]; + ["Offset of field: iovec::iov_len"][::std::mem::offset_of!(iovec, iov_len) - 8usize]; +}; +pub const uio_rw_UIO_READ: uio_rw = 0; +pub const uio_rw_UIO_WRITE: uio_rw = 1; +pub type uio_rw = ::std::os::raw::c_uint; +unsafe extern "C" { + pub fn readv( + arg1: ::std::os::raw::c_int, + arg2: *const iovec, + arg3: ::std::os::raw::c_int, + ) -> isize; +} +unsafe extern "C" { + pub fn writev( + arg1: ::std::os::raw::c_int, + arg2: *const iovec, + arg3: ::std::os::raw::c_int, + ) -> isize; +} +unsafe extern "C" { + pub fn preadv( + arg1: ::std::os::raw::c_int, + arg2: *const iovec, + arg3: ::std::os::raw::c_int, + arg4: off_t, + ) -> isize; +} +unsafe extern "C" { + pub fn pwritev( + arg1: ::std::os::raw::c_int, + arg2: *const iovec, + arg3: ::std::os::raw::c_int, + arg4: off_t, + ) -> isize; +} +pub type trace_sampling_func = + ::std::option::Option bool>; +pub type clone_sampler_func = + ::std::option::Option *mut sampler>; +pub type free_sampler_func = ::std::option::Option; +pub const sampler_type_SPATIAL_SAMPLER: sampler_type = 0; +pub const sampler_type_TEMPORAL_SAMPLER: sampler_type = 1; +pub const sampler_type_SHARDS_SAMPLER: sampler_type = 2; +pub const sampler_type_INVALID_SAMPLER: sampler_type = 3; +pub type sampler_type = ::std::os::raw::c_uint; +unsafe extern "C" { + pub static mut sampling_type_str: [*const ::std::os::raw::c_char; 4usize]; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sampler { + pub sample: trace_sampling_func, + pub sampling_ratio_inv: ::std::os::raw::c_int, + pub sampling_ratio: f64, + pub other_params: *mut ::std::os::raw::c_void, + pub clone: clone_sampler_func, + pub free: free_sampler_func, + pub type_: sampler_type, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of sampler"][::std::mem::size_of::() - 56usize]; + ["Alignment of sampler"][::std::mem::align_of::() - 8usize]; + ["Offset of field: sampler::sample"][::std::mem::offset_of!(sampler, sample) - 0usize]; + ["Offset of field: sampler::sampling_ratio_inv"] + [::std::mem::offset_of!(sampler, sampling_ratio_inv) - 8usize]; + ["Offset of field: sampler::sampling_ratio"] + [::std::mem::offset_of!(sampler, sampling_ratio) - 16usize]; + ["Offset of field: sampler::other_params"] + [::std::mem::offset_of!(sampler, other_params) - 24usize]; + ["Offset of field: sampler::clone"][::std::mem::offset_of!(sampler, clone) - 32usize]; + ["Offset of field: sampler::free"][::std::mem::offset_of!(sampler, free) - 40usize]; + ["Offset of field: sampler::type_"][::std::mem::offset_of!(sampler, type_) - 48usize]; +}; +pub type sampler_t = sampler; +unsafe extern "C" { + pub fn create_spatial_sampler(sampling_ratio: f64) -> *mut sampler_t; +} +unsafe extern "C" { + pub fn create_temporal_sampler(sampling_ratio: f64) -> *mut sampler_t; +} +unsafe extern "C" { + #[link_name = "print_sampler__extern"] + pub fn print_sampler(sampler: *mut sampler_t); +} +unsafe extern "C" { + pub fn create_SHARDS_sampler(sampling_ratio: f64) -> *mut sampler_t; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct reader_init_param_t { + pub ignore_obj_size: bool, + pub ignore_size_zero_req: bool, + pub obj_id_is_num: bool, + pub obj_id_is_num_set: bool, + pub cap_at_n_req: i64, + pub time_field: i32, + pub obj_id_field: i32, + pub obj_size_field: i32, + pub op_field: i32, + pub ttl_field: i32, + pub cnt_field: i32, + pub tenant_field: i32, + pub next_access_vtime_field: i32, + pub n_feature_fields: i32, + pub feature_fields: [i32; 16usize], + pub block_size: i32, + pub has_header: bool, + pub has_header_set: bool, + pub delimiter: ::std::os::raw::c_char, + pub trace_start_offset: isize, + pub binary_fmt_str: *mut ::std::os::raw::c_char, + pub sampler: *mut sampler_t, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of reader_init_param_t"][::std::mem::size_of::() - 152usize]; + ["Alignment of reader_init_param_t"][::std::mem::align_of::() - 8usize]; + ["Offset of field: reader_init_param_t::ignore_obj_size"] + [::std::mem::offset_of!(reader_init_param_t, ignore_obj_size) - 0usize]; + ["Offset of field: reader_init_param_t::ignore_size_zero_req"] + [::std::mem::offset_of!(reader_init_param_t, ignore_size_zero_req) - 1usize]; + ["Offset of field: reader_init_param_t::obj_id_is_num"] + [::std::mem::offset_of!(reader_init_param_t, obj_id_is_num) - 2usize]; + ["Offset of field: reader_init_param_t::obj_id_is_num_set"] + [::std::mem::offset_of!(reader_init_param_t, obj_id_is_num_set) - 3usize]; + ["Offset of field: reader_init_param_t::cap_at_n_req"] + [::std::mem::offset_of!(reader_init_param_t, cap_at_n_req) - 8usize]; + ["Offset of field: reader_init_param_t::time_field"] + [::std::mem::offset_of!(reader_init_param_t, time_field) - 16usize]; + ["Offset of field: reader_init_param_t::obj_id_field"] + [::std::mem::offset_of!(reader_init_param_t, obj_id_field) - 20usize]; + ["Offset of field: reader_init_param_t::obj_size_field"] + [::std::mem::offset_of!(reader_init_param_t, obj_size_field) - 24usize]; + ["Offset of field: reader_init_param_t::op_field"] + [::std::mem::offset_of!(reader_init_param_t, op_field) - 28usize]; + ["Offset of field: reader_init_param_t::ttl_field"] + [::std::mem::offset_of!(reader_init_param_t, ttl_field) - 32usize]; + ["Offset of field: reader_init_param_t::cnt_field"] + [::std::mem::offset_of!(reader_init_param_t, cnt_field) - 36usize]; + ["Offset of field: reader_init_param_t::tenant_field"] + [::std::mem::offset_of!(reader_init_param_t, tenant_field) - 40usize]; + ["Offset of field: reader_init_param_t::next_access_vtime_field"] + [::std::mem::offset_of!(reader_init_param_t, next_access_vtime_field) - 44usize]; + ["Offset of field: reader_init_param_t::n_feature_fields"] + [::std::mem::offset_of!(reader_init_param_t, n_feature_fields) - 48usize]; + ["Offset of field: reader_init_param_t::feature_fields"] + [::std::mem::offset_of!(reader_init_param_t, feature_fields) - 52usize]; + ["Offset of field: reader_init_param_t::block_size"] + [::std::mem::offset_of!(reader_init_param_t, block_size) - 116usize]; + ["Offset of field: reader_init_param_t::has_header"] + [::std::mem::offset_of!(reader_init_param_t, has_header) - 120usize]; + ["Offset of field: reader_init_param_t::has_header_set"] + [::std::mem::offset_of!(reader_init_param_t, has_header_set) - 121usize]; + ["Offset of field: reader_init_param_t::delimiter"] + [::std::mem::offset_of!(reader_init_param_t, delimiter) - 122usize]; + ["Offset of field: reader_init_param_t::trace_start_offset"] + [::std::mem::offset_of!(reader_init_param_t, trace_start_offset) - 128usize]; + ["Offset of field: reader_init_param_t::binary_fmt_str"] + [::std::mem::offset_of!(reader_init_param_t, binary_fmt_str) - 136usize]; + ["Offset of field: reader_init_param_t::sampler"] + [::std::mem::offset_of!(reader_init_param_t, sampler) - 144usize]; +}; +pub const read_direction_READ_FORWARD: read_direction = 0; +pub const read_direction_READ_BACKWARD: read_direction = 1; +pub type read_direction = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct zstd_reader { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct reader { + #[doc = " common fields"] + pub n_read_req: u64, + pub n_total_req: u64, + pub trace_path: *mut ::std::os::raw::c_char, + pub file_size: usize, + pub init_params: reader_init_param_t, + pub reader_params: *mut ::std::os::raw::c_void, + pub trace_type: trace_type_e, + pub trace_format: trace_format_e, + pub ver: ::std::os::raw::c_int, + pub cloned: bool, + pub cap_at_n_req: i64, + pub trace_start_offset: ::std::os::raw::c_int, + #[doc = " used by binary trace"] + pub mapped_file: *mut ::std::os::raw::c_char, + pub mmap_offset: usize, + pub zstd_reader_p: *mut zstd_reader, + pub is_zstd_file: bool, + pub item_size: usize, + #[doc = " used by txt trace"] + pub file: *mut FILE, + pub line_buf: *mut ::std::os::raw::c_char, + pub line_buf_size: usize, + pub csv_delimiter: ::std::os::raw::c_char, + pub csv_has_header: bool, + pub obj_id_is_num: bool, + pub obj_id_is_num_set: bool, + pub ignore_size_zero_req: bool, + pub ignore_obj_size: bool, + pub block_size: i32, + pub n_req_left: ::std::os::raw::c_int, + pub last_req_clock_time: i64, + pub lcs_ver: i64, + pub sampler: *mut sampler_t, + pub read_direction: read_direction, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of reader"][::std::mem::size_of::() - 336usize]; + ["Alignment of reader"][::std::mem::align_of::() - 8usize]; + ["Offset of field: reader::n_read_req"][::std::mem::offset_of!(reader, n_read_req) - 0usize]; + ["Offset of field: reader::n_total_req"][::std::mem::offset_of!(reader, n_total_req) - 8usize]; + ["Offset of field: reader::trace_path"][::std::mem::offset_of!(reader, trace_path) - 16usize]; + ["Offset of field: reader::file_size"][::std::mem::offset_of!(reader, file_size) - 24usize]; + ["Offset of field: reader::init_params"][::std::mem::offset_of!(reader, init_params) - 32usize]; + ["Offset of field: reader::reader_params"] + [::std::mem::offset_of!(reader, reader_params) - 184usize]; + ["Offset of field: reader::trace_type"][::std::mem::offset_of!(reader, trace_type) - 192usize]; + ["Offset of field: reader::trace_format"] + [::std::mem::offset_of!(reader, trace_format) - 196usize]; + ["Offset of field: reader::ver"][::std::mem::offset_of!(reader, ver) - 200usize]; + ["Offset of field: reader::cloned"][::std::mem::offset_of!(reader, cloned) - 204usize]; + ["Offset of field: reader::cap_at_n_req"] + [::std::mem::offset_of!(reader, cap_at_n_req) - 208usize]; + ["Offset of field: reader::trace_start_offset"] + [::std::mem::offset_of!(reader, trace_start_offset) - 216usize]; + ["Offset of field: reader::mapped_file"] + [::std::mem::offset_of!(reader, mapped_file) - 224usize]; + ["Offset of field: reader::mmap_offset"] + [::std::mem::offset_of!(reader, mmap_offset) - 232usize]; + ["Offset of field: reader::zstd_reader_p"] + [::std::mem::offset_of!(reader, zstd_reader_p) - 240usize]; + ["Offset of field: reader::is_zstd_file"] + [::std::mem::offset_of!(reader, is_zstd_file) - 248usize]; + ["Offset of field: reader::item_size"][::std::mem::offset_of!(reader, item_size) - 256usize]; + ["Offset of field: reader::file"][::std::mem::offset_of!(reader, file) - 264usize]; + ["Offset of field: reader::line_buf"][::std::mem::offset_of!(reader, line_buf) - 272usize]; + ["Offset of field: reader::line_buf_size"] + [::std::mem::offset_of!(reader, line_buf_size) - 280usize]; + ["Offset of field: reader::csv_delimiter"] + [::std::mem::offset_of!(reader, csv_delimiter) - 288usize]; + ["Offset of field: reader::csv_has_header"] + [::std::mem::offset_of!(reader, csv_has_header) - 289usize]; + ["Offset of field: reader::obj_id_is_num"] + [::std::mem::offset_of!(reader, obj_id_is_num) - 290usize]; + ["Offset of field: reader::obj_id_is_num_set"] + [::std::mem::offset_of!(reader, obj_id_is_num_set) - 291usize]; + ["Offset of field: reader::ignore_size_zero_req"] + [::std::mem::offset_of!(reader, ignore_size_zero_req) - 292usize]; + ["Offset of field: reader::ignore_obj_size"] + [::std::mem::offset_of!(reader, ignore_obj_size) - 293usize]; + ["Offset of field: reader::block_size"][::std::mem::offset_of!(reader, block_size) - 296usize]; + ["Offset of field: reader::n_req_left"][::std::mem::offset_of!(reader, n_req_left) - 300usize]; + ["Offset of field: reader::last_req_clock_time"] + [::std::mem::offset_of!(reader, last_req_clock_time) - 304usize]; + ["Offset of field: reader::lcs_ver"][::std::mem::offset_of!(reader, lcs_ver) - 312usize]; + ["Offset of field: reader::sampler"][::std::mem::offset_of!(reader, sampler) - 320usize]; + ["Offset of field: reader::read_direction"] + [::std::mem::offset_of!(reader, read_direction) - 328usize]; +}; +pub type reader_t = reader; +unsafe extern "C" { + #[link_name = "set_default_reader_init_params__extern"] + pub fn set_default_reader_init_params(params: *mut reader_init_param_t); +} +unsafe extern "C" { + #[link_name = "default_reader_init_params__extern"] + pub fn default_reader_init_params() -> reader_init_param_t; +} +unsafe extern "C" { + #[doc = " setup a reader for reading trace\n @param trace_path path to the trace\n @param trace_type CSV_TRACE, PLAIN_TXT_TRACE, BIN_TRACE, VSCSI_TRACE,\n TWR_BIN_TRACE, see libCacheSim/enum.h for more\n @param obj_id_type OBJ_ID_NUM, OBJ_ID_STR,\n used by CSV_TRACE and PLAIN_TXT_TRACE, whether the obj_id in the trace is a\n number or not, if it is not a number then we will map it to uint64_t\n @param reader_init_param some initialization parameters used by csv and\n binary traces these include time_field, obj_id_field, obj_size_field,\n op_field, ttl_field, has_header, delimiter, binary_fmt_str\n\n @return a pointer to reader_t struct, the returned reader needs to be\n explicitly closed by calling close_reader or close_trace"] + pub fn setup_reader( + trace_path: *const ::std::os::raw::c_char, + trace_type: trace_type_e, + reader_init_param: *const reader_init_param_t, + ) -> *mut reader_t; +} +unsafe extern "C" { + #[link_name = "open_trace__extern"] + pub fn open_trace( + path: *const ::std::os::raw::c_char, + type_: trace_type_e, + reader_init_param: *const reader_init_param_t, + ) -> *mut reader_t; +} +unsafe extern "C" { + #[doc = " get the number of requests from the trace\n @param reader\n @return"] + pub fn get_num_of_req(reader: *mut reader_t) -> u64; +} +unsafe extern "C" { + #[doc = " get the trace type\n @param reader\n @return"] + #[link_name = "get_trace_type__extern"] + pub fn get_trace_type(reader: *const reader_t) -> trace_type_e; +} +unsafe extern "C" { + #[doc = " whether the object id is numeric (only applies to txt and csv traces)\n @param reader\n @return"] + #[link_name = "obj_id_is_num__extern"] + pub fn obj_id_is_num(reader: *const reader_t) -> bool; +} +unsafe extern "C" { + #[doc = " read one request from reader/trace, stored the info in pre-allocated req\n @param reader\n @param req\n return 0 on success and 1 if reach end of trace"] + pub fn read_one_req(reader: *mut reader_t, req: *mut request_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + #[doc = " read one request from reader/trace, stored the info in pre-allocated req\n @param reader\n @param req\n return 0 on success and 1 if reach end of trace"] + #[link_name = "read_trace__extern"] + pub fn read_trace(reader: *mut reader_t, req: *mut request_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + #[doc = " reset reader, so we can read from the beginning\n @param reader"] + pub fn reset_reader(reader: *mut reader_t); +} +unsafe extern "C" { + #[doc = " close reader and release resources\n @param reader\n @return"] + pub fn close_reader(reader: *mut reader_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + #[link_name = "close_trace__extern"] + pub fn close_trace(reader: *mut reader_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + #[doc = " clone a reader, mostly used in multithreading\n @param reader\n @return"] + pub fn clone_reader(reader: *const reader_t) -> *mut reader_t; +} +unsafe extern "C" { + pub fn read_first_req(reader: *mut reader_t, req: *mut request_t); +} +unsafe extern "C" { + pub fn read_last_req(reader: *mut reader_t, req: *mut request_t); +} +unsafe extern "C" { + pub fn skip_n_req(reader: *mut reader_t, N: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn read_one_req_above(reader: *mut reader_t, c: *mut request_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn go_back_one_req(reader: *mut reader_t) -> ::std::os::raw::c_int; +} +unsafe extern "C" { + pub fn reader_set_read_pos(reader: *mut reader_t, pos: f64); +} +unsafe extern "C" { + #[link_name = "print_reader__extern"] + pub fn print_reader(reader: *mut reader_t); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct FIFO_params_t { + pub q_head: *mut cache_obj_t, + pub q_tail: *mut cache_obj_t, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of FIFO_params_t"][::std::mem::size_of::() - 16usize]; + ["Alignment of FIFO_params_t"][::std::mem::align_of::() - 8usize]; + ["Offset of field: FIFO_params_t::q_head"] + [::std::mem::offset_of!(FIFO_params_t, q_head) - 0usize]; + ["Offset of field: FIFO_params_t::q_tail"] + [::std::mem::offset_of!(FIFO_params_t, q_tail) - 8usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct LRU_params_t { + pub q_head: *mut cache_obj_t, + pub q_tail: *mut cache_obj_t, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of LRU_params_t"][::std::mem::size_of::() - 16usize]; + ["Alignment of LRU_params_t"][::std::mem::align_of::() - 8usize]; + ["Offset of field: LRU_params_t::q_head"] + [::std::mem::offset_of!(LRU_params_t, q_head) - 0usize]; + ["Offset of field: LRU_params_t::q_tail"] + [::std::mem::offset_of!(LRU_params_t, q_tail) - 8usize]; +}; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct freq_node { + pub freq: i64, + pub first_obj: *mut cache_obj_t, + pub last_obj: *mut cache_obj_t, + pub n_obj: u32, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of freq_node"][::std::mem::size_of::() - 32usize]; + ["Alignment of freq_node"][::std::mem::align_of::() - 8usize]; + ["Offset of field: freq_node::freq"][::std::mem::offset_of!(freq_node, freq) - 0usize]; + ["Offset of field: freq_node::first_obj"] + [::std::mem::offset_of!(freq_node, first_obj) - 8usize]; + ["Offset of field: freq_node::last_obj"][::std::mem::offset_of!(freq_node, last_obj) - 16usize]; + ["Offset of field: freq_node::n_obj"][::std::mem::offset_of!(freq_node, n_obj) - 24usize]; +}; +pub type freq_node_t = freq_node; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Clock_params_t { + pub q_head: *mut cache_obj_t, + pub q_tail: *mut cache_obj_t, + pub n_bit_counter: i32, + pub max_freq: i32, + pub init_freq: i32, + pub n_obj_rewritten: i64, + pub n_byte_rewritten: i64, +} +#[allow(clippy::unnecessary_operation, clippy::identity_op)] +const _: () = { + ["Size of Clock_params_t"][::std::mem::size_of::() - 48usize]; + ["Alignment of Clock_params_t"][::std::mem::align_of::() - 8usize]; + ["Offset of field: Clock_params_t::q_head"] + [::std::mem::offset_of!(Clock_params_t, q_head) - 0usize]; + ["Offset of field: Clock_params_t::q_tail"] + [::std::mem::offset_of!(Clock_params_t, q_tail) - 8usize]; + ["Offset of field: Clock_params_t::n_bit_counter"] + [::std::mem::offset_of!(Clock_params_t, n_bit_counter) - 16usize]; + ["Offset of field: Clock_params_t::max_freq"] + [::std::mem::offset_of!(Clock_params_t, max_freq) - 20usize]; + ["Offset of field: Clock_params_t::init_freq"] + [::std::mem::offset_of!(Clock_params_t, init_freq) - 24usize]; + ["Offset of field: Clock_params_t::n_obj_rewritten"] + [::std::mem::offset_of!(Clock_params_t, n_obj_rewritten) - 32usize]; + ["Offset of field: Clock_params_t::n_byte_rewritten"] + [::std::mem::offset_of!(Clock_params_t, n_byte_rewritten) - 40usize]; +}; +unsafe extern "C" { + pub fn ARC_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn ARCv0_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn Belady_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn BeladySize_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn Cacheus_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn Clock_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn ClockPro_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn CR_LFU_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn FIFO_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn GDSF_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn Hyperbolic_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn LeCaR_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn LeCaRv0_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn LFU_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn LFUCpp_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn LFUDA_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn LHD_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn LRU_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn LRUv0_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn MRU_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn Random_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn RandomTwo_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn SLRU_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn SLRUv0_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn SR_LRU_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn TwoQ_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn LIRS_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn Size_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn WTinyLFU_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn FIFO_Merge_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn FIFO_Reinsertion_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn flashProb_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn LRU_Prob_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn SFIFOv0_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn SFIFO_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn nop_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn QDLP_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn S3LRU_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn S3FIFO_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn S3FIFOv0_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn S3FIFOd_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn Sieve_Belady_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn LRU_Belady_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn FIFO_Belady_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn Sieve_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn RandomLRU_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn CAR_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + pub fn ThreeLCache_init( + ccache_params: common_cache_params_t, + cache_specific_params: *const ::std::os::raw::c_char, + ) -> *mut cache_t; +} +unsafe extern "C" { + #[doc = " create a cache handler, using the cache replacement algorithm is baked into\n libCacheSim\n @param cache_alg_name name of the cache replacement algorithm (case sensitive)\n @param cc_params general parameters that are used to initialize cache, such\n as cache_size, obj_id_type, support_ttl\n @param params a cache eviction algorithm specific params\n @return cache handler"] + pub fn create_cache( + cache_alg_name: *const ::std::os::raw::c_char, + cc_params: common_cache_params_t, + cache_specific_params: *mut ::std::os::raw::c_void, + ) -> *mut cache_t; +} +unsafe extern "C" { + #[doc = " create a cache handler, using the cache replacement algorithm is baked into\n libCacheSim\n @param cache_alg_name name of the cache replacement algorithm (case sensitive)\n @param cc_params general parameters that are used to initialize cache, such\n as cache_size, obj_id_type, support_ttl\n @param params a cache eviction algorithm specific params\n @return cache handler"] + pub fn create_cache_internal( + cache_alg_name: *const ::std::os::raw::c_char, + cc_params: common_cache_params_t, + cache_specific_params: *mut ::std::os::raw::c_void, + ) -> *mut cache_t; +} +unsafe extern "C" { + #[doc = " create a cache handler, using an external cache replacement algorithm, for\n now we assume the external cache replacement algorithm is compiled into a\n shared library and stored in the working directory and the name is .so\n where alg is the name of the cache replacement algorithm passed to this\n function\n @param cache_alg_name name of the cache replacement algorithm (case sensitive)\n @param cc_params general parameters that are used to initialize cache, such\n as cache_size, obj_id_type, support_ttl\n @param params a cache eviction algorithm specific params\n @return cache handler"] + pub fn create_cache_external( + cache_alg_name: *const ::std::os::raw::c_char, + cc_params: common_cache_params_t, + cache_specific_params: *mut ::std::os::raw::c_void, + ) -> *mut cache_t; +} +pub const dist_type_e_DIST_SINCE_LAST_ACCESS: dist_type_e = 0; +pub const dist_type_e_DIST_SINCE_FIRST_ACCESS: dist_type_e = 1; +pub const dist_type_e_STACK_DIST: dist_type_e = 2; +pub const dist_type_e_FUTURE_STACK_DIST: dist_type_e = 3; +pub type dist_type_e = ::std::os::raw::c_uint; +unsafe extern "C" { + pub static mut g_dist_type_name: [*mut ::std::os::raw::c_char; 4usize]; +} +unsafe extern "C" { + #[doc = " get the stack distance (number of uniq objects) since last access or till\n next request,\n\n @param reader\n @param dist_type STACK_DIST or FUTURE_STACK_DIST\n\n @return an array of int32_t with size of n_req"] + pub fn get_stack_dist( + reader: *mut reader_t, + dist_type: dist_type_e, + array_size: *mut i64, + ) -> *mut i32; +} +unsafe extern "C" { + #[doc = " get the distance (the num of requests) since last/first access\n\n @param reader\n @param dist_type DIST_SINCE_LAST_ACCESS or DIST_SINCE_FIRST_ACCESS\n\n @return an array of int32_t with size of n_req"] + pub fn get_access_dist( + reader: *mut reader_t, + dist_type: dist_type_e, + array_size: *mut i64, + ) -> *mut i32; +} +unsafe extern "C" { + #[doc = " save the distance array to file to avoid future computation\n\n @param reader the reader for data\n @param dist_array distance array to save into file\n @param path the output file path\n @param dist_type distance type\n @return"] + pub fn save_dist( + reader: *mut reader_t, + dist_array: *const i32, + array_size: i64, + ofilepath: *const ::std::os::raw::c_char, + dist_type: dist_type_e, + ); +} +unsafe extern "C" { + #[doc = " save the distance array to file to avoid future computation,\n this function is similar to save_dist, but it uses the text format"] + pub fn save_dist_txt( + reader: *mut reader_t, + dist_array: *const i32, + array_size: i64, + ofilepath: *const ::std::os::raw::c_char, + dist_type: dist_type_e, + ); +} +unsafe extern "C" { + #[doc = " this function is used for loading distance from the input file\n\n @param reader the reader for data\n @param dist_type type of distance\n @return distance array in int32_t array"] + pub fn load_dist( + reader: *mut reader_t, + ifilepath: *const ::std::os::raw::c_char, + array_size: *mut i64, + ) -> *mut i32; +} +unsafe extern "C" { + pub fn save_dist_as_cnt_txt( + reader: *mut reader_t, + dist_array: *const i32, + array_size: i64, + ofilepath: *const ::std::os::raw::c_char, + dist_type: dist_type_e, + ); +} +unsafe extern "C" { + pub fn get_lru_obj_miss_ratio(reader: *mut reader_t, size: gint64) -> *mut f64; +} +unsafe extern "C" { + pub fn get_lru_obj_miss_ratio_curve(reader: *mut reader_t, size: gint64) -> *mut f64; +} +unsafe extern "C" { + pub fn _get_lru_miss_cnt(reader: *mut reader_t, size: gint64) -> *mut guint64; +} +unsafe extern "C" { + #[doc = " this function performs num_of_sizes simulations each at one cache size,\n it returns an array of cache_stat_t*, each element is the result of one\n simulation the returned cache_stat_t should be freed by the user\n\n this also supports warmup using\n a different trace by setting warmup_reader pointing to the trace\n or\n fraction of the requests from the reader\n or\n warmup_sec of requests from the reader\n\n @param reader\n @param cache\n @param num_of_sizes\n @param cache_sizes\n @param warmup_reader\n @param warmup_frac\n @param num_of_threads\n @return"] + pub fn simulate_at_multi_sizes( + reader: *mut reader_t, + cache: *const cache_t, + num_of_sizes: ::std::os::raw::c_int, + cache_sizes: *const u64, + warmup_reader: *mut reader_t, + warmup_frac: f64, + warmup_sec: ::std::os::raw::c_int, + num_of_threads: ::std::os::raw::c_int, + use_random_seed: bool, + ) -> *mut cache_stat_t; +} +unsafe extern "C" { + #[doc = " this function performs cache_size/step_size simulations to obtain miss ratio,\n the size of simulations are step_size, step_size*2 ... step_size*n,\n it returns an array of cache_stat_t*, each element of the array is the\n result of one simulation\n the returned cache_stat_t should be freed by the user\n\n this also supports warmup using\n a different trace by setting warmup_reader pointing to the trace\n or\n fraction of the requests in the given trace reader by setting warmup_frac\n\n @param reader_in\n @param cache_in\n @param step_size\n @param warmup_frac\n @param num_of_threads\n @return an array of cache_stat_t, each corresponds to one simulation"] + pub fn simulate_at_multi_sizes_with_step_size( + reader_in: *mut reader_t, + cache_in: *const cache_t, + step_size: u64, + warmup_reader: *mut reader_t, + warmup_frac: f64, + warmup_sec: ::std::os::raw::c_int, + num_of_threads: ::std::os::raw::c_int, + use_random_seed: bool, + ) -> *mut cache_stat_t; +} +unsafe extern "C" { + #[doc = " this function performs num_of_caches simulations with the caches,\n it returns a cache_stat_t\n the returned cache_stat_t should be freed by the user\n *\n @param reader\n @param caches\n @param num_of_caches\n @param warmup_reader\n @param warmup_frac\n @param num_of_threads\n @return"] + pub fn simulate_with_multi_caches( + reader: *mut reader_t, + caches: *mut *mut cache_t, + num_of_caches: ::std::os::raw::c_int, + warmup_reader: *mut reader_t, + warmup_frac: f64, + warmup_sec: ::std::os::raw::c_int, + num_of_threads: ::std::os::raw::c_int, + free_cache_when_finish: bool, + use_random_seed: bool, + ) -> *mut cache_stat_t; +} +pub type __builtin_va_list = *mut ::std::os::raw::c_char; +pub type __uint128_t = u128; diff --git a/libcachesim-rs/bindings/libwrap_static_fns.a b/libcachesim-rs/bindings/libwrap_static_fns.a new file mode 100644 index 0000000000000000000000000000000000000000..7ad2afda781862c86a0bb552f3b988c9b89dd97c GIT binary patch literal 15872 zcmeHOeQ;dWb-(*z?Mf)JY#A_#!3$U*gDteuTK>Q{O+0Z(RW+}40;40SDQ z?s-qEUCGWg|MU;P(R;u1bL{@T(Q>Wz;-($xH*W8?ak*5)RGW0Wp94qAn{iE$C* zD#i}ReT+vL|C#YW7-yKIpD#1kFnSoDWc*9ULB`XJS;kSuQnU1TJL57&593zGy^Jq1 zevk3TjK5<1oN=y2`gH?Ub^XSTJG}9=(Uh}ZRRcRyfkZS{T30)jwB9u#^?7~4fVwr1 zQp2&WA)hy_rb3axRQjkI>-dK14|ICF!l|hYVm@D2JQVP&9lKJ2s~IK&oqI+O; z*Y;2%)m0cvI2H}4iNKRxfn;t3;aC!`5?(koa^Q=_cTHiM2zU{j*B=QblOcFZOq9@D z=8Hulv8XB&6Za;(kz}C}{P4yEEFOsFXDprwY}dLt6jhVqP;Q3f ziBL4f0VY%4oZL$dXTu0Zm*#bp6eqorcsMulR60MHM8FqI_|?GnkS~RPQoUPqTF*)( zp>`UJB=V;B=T*9j<|Ce9v}s14k6iWB%tx;JI;e28m+VM*<0>U1KtEK~7mFq*9IEPMf4U!vfsS4@@@fbCB~utXTiGbz z-%O6{9&XT!dH%ThMiqteH8r$07;533Dd~Q@#F1G-V44&g76@_2gqcB+zewEcOQ~Ja z9igaSRXy5sMK{RaEGajhFLVUIEd8}t8vZ7QSPPrEIAzx&7_$th8nSYn@w?yyN-9Kl zXYLl_1>i`H5Ni$`t@m~z`kX?{ISn1+?Zw&mx+UFmhe)@8K5#E|)0MmP zDmvT})0VsOD!Q_(=rE3_^+~a2Uln~Ok^VW+=Wlk8ov#pM*?ppq_}^H>5%gp4Dzxv5 zk40Y=C$*DwzeL-!mN`d0m?3$)75Vv@$b6BLqpan|BV_vvnWqEUNxBM6H?Z%CQJH)9 z*h2Kr119^&9|+MpzGp4^at-=)b!Jq3FoQns8?vbHl0RV``kF@D8B2%WBYu3(KW4@) zh<&b%Nt_cg*bic~;xyy5;I!hLF<6DZvY$0ApZ}D|%y*bF;JLxfJECV$fk-1-=nH{8-K4o4_}Np8?)FNM$aq{}INY3FA*-{D~uaEbT>2 znoWCAGjPUWd(kS*M|)8t&;s5K6u<_cX>fc`1KR(F76;le=gMgs<2K~O4mrm6o|4Qs za&ifEv^ z9ShISOt+kWZR+trV@IoV(s+<#g<|Z%`RqLnndk3vpTu<8yC3)E^Sic&Bne&J9vQ7H^HD8!M zc3{p#9~?;waa_#8JPO&~D_2^x7CY*e_m7qv)L$$HT1wo9T0XkJKT*6;WS%vrTZ(6i zlk*=H%eDL1;~vv+4P(>Pc*R2ZfE9f-1ASG5d%%_%KW)eR+TRr%0+#rAYdmC63_144Xy-qQ1uz104E@vMfig)>B7@hp?phRI_^9C_L# zj=M$2%jCN!@mD_|+1&q`eaE|>1wa4y&rGJRFN?X}+w3BEoBf;azrb8O$Bwx;ST@nm@FzW&pux6NoP#r(=m?yxQau)D{Lg?p@|+&%Uo>de~2IL!lkAIkn)g?m>>e>DH6F;}NC_op$3r|DUc zR_tg;mFQ2v|4HQg+jcAF{flB(51wWA^QPsH&9@5;Ym- z`9?F^kKZsDcXrt5ze}oi1xJhRXnV>%c0;ytxo{6DrLIRaW$EtaGrOCXm&4Dj-lpZI z15L}#2i;?qGwzdOQNzjX4YtguwxY~$8)sxbx!;<(FrS|9Pp|ywZ!nL(Ffsl)j~M@J zGKfLT-xZ4qW6gwqLVxVB;9ir@Gz8y!0Q0Io*XeVg!<24$gMSa;_e$>%VAGEi&q3pN z6ZO%nkm-GvJ6Dq}>2<$E>vN87uh(UPe;`en&Kxa&!b7LA?2wh|0*~O8?@@#~qcesM%4uEV-g`vCHoe zRjH6)sodSQaD_uu-&b9IUpUm!NJ|tOLy`MJQD3;rADATL_vz}O0Ojz7eX(uYs)D03 z+_lIN@&k!ThIR))`WHE3aYtoxkz>0zOiF(V0si~QUNs6mk|B{F7%cub|gX&cE$a8pNCGXLv(~=u}EhqjI|j_ zFJ>m5h;_hWti#(8qWA5PPf(cJWkZ3OB#6ozPiaQKS8|MXj)w5o7*b^L4le}AgVrm_ zu6R6_NCl9Kf;9l-0Lfq9@eP!w1qa9NibF0`U}b^2PGfS@%Zorcq9`p($mDBlNRs5& zb4P2dM+)Lt6QJdaNFaq~ro5``Geo7W0<6GbtxUE#s0}G*C;(ngSiyt?YbhZ#E!>Gt z*H#)Fon29%qcXk-qXR2GI$I)=ahQ6;A{B_B{UDM-Z^EAx6ALaYw4ow-7zcBCy!t0n zYOJ#pqXlw|tVjea0){{veo1wAGUZp%;Q?ub@e$D)26i{bC2J5|IE1yWj;>B9a=2Vu zUvfJZHNqjZKahZ#4=sWy=uPrkkgQ_Tl8+RHwnk%#faXix9Z1BeLndjc45eENwGLCm zflh8%*o(y=6j6~tpS-3`sKY>-e;{}ZftNqs^6y)0>k9-$PJKgW7j6qG;DlBcF= zzn=@*p`XfsnEx-u@fFnH&-&@=Kg@c^H0>K^{dDz;pQim!U;&JdZk$u)FU$HW&8jfJ))MW1i;FMAZV}QP-5EwAjZk!9w1`&bW2pyz-J)e349v%DT!?!AlkmT33xZ`-4c~^$lG1u zvl11`a~JHWKYD=F@6Q5DfmGfOtc1N)qJp(ku>ky8iOQS6Ct)`LOrZY5659>|pM$&? zcqi=lOH|^(KZE=U#&RH)E0x$bfN{SUdJj;GA9x4KyCo_#uY42wL%`dCL7)TJ4%`LY z0Nf3919t*zfIEN=;C5gs@OhvWi2oaVghXZ3D&-e}_yoXnL85YwRH9-9(s-j0kN@v^F5~6^D(8S$d-dRdt%S;( zK(ZSK&W3zQqH+TGr;s0G{Qz(l^oJ!Xy}&<*z6Ur5@@|RBQ$XCSi^ITj$b%ALv z4ZuGEHUX(#HxNV4vr?ks0^-k8BT=aW(*3bOVw(f_49d|rV00hMk=SMjQl6|5+vvGS z|m4@+!21*CY611S&3Bq{?y%0oZv4+1F<2P7)pK*~c3NbU9m zsom`ol`TMO_ZlFzdnJ(SSq8+H5gwOBWf2hnr}tDzROSJ{1b(hWr5soazEq+@lLWq% z@La~c22?Hq(R9y6iOM-3rZ!JjqH+d^sloG(L}dg>c^{UjoB~q$6B3o9K-{XH0f|aK z5Vxl1kVK^yNaL;>h+E5(mZ)G(q#@^tOH_hD^6QtVc!1~%&l-u!N+9*`GKpBJ-~IqH1HANP9S`i#eok4gTRM??ZCCbEx9TY$@f8-QqA z*&5(dpc_~Zr1mZW)&O0=DqtPZ0jvei1v-J{K-iR_T5%r`AgX~5BpG=rqGS_hkz~Rl z#(u^$V>_dp(ZMJfv*;A9JYzp&nz5bH&FEkhj9C=c$}{#erWxBA-HZ-K!I(w6Ko$)# z_A{m#+Zo-A4n}}h&Td||(rQ^ywa8{(%sMW(S;(L`Bc#m zuE&aw7un5+iw1B#P;{`!YUwWODcTRssQog0^c3$eM&!l)xE?D$j_Yvo2(D*}&*FNa z_#&?9lI{}JQ#xE~wd^nJEjv(VwH%%~F!Sh4#51!O*Y5J3a+~?=%q-}k*~7CD+pKf5 zkcEm<6=++<(F(iyV8tQO-4#8cFU=l>&1l7CNG?`f!u5Q`g$hcw_#aFPW#}mVxEnO_ z7>3$m!ayyTM#Ev(8#!4>A8G)_;fjH@LpPW_}0r-)DXs z+2`b=mi0ekJ?0=$hUB^NFrecLj^`8IAM=%%u)cW`Ut|7U=!2|Z&-K^iVMxd0%)ig^+{S!4m%kl0)L%~Kf5q`MGXFC3>zH?N z{rY%xa=iDj|L?HAn)!9i*D`Nmekt=OIG+2Nk1+oL^Ht0@GXDw3^Dy(@XTC)*&-~Yz zznkOpGXDbC-^qLv^V^sovO}up@pLbGo_lllfKf&ccVt>+Fh!?rMzApAV)(^40 zh2z)PB|6zY%=NEedwpHz9p>NS@<-WTU-$Y4U5{}?2faU0zDC%7nB&#gX+B_HU)O2n z^7=Xp{hr64aXbxwxjcQxoy#}m*?$!!bM?36=?~=T>GyQ5{bzan_w)Fl=J7wui|?0t z{DQoAFXid!F_c^X zy)7>u@|EjvTOKd4!66a##ditXAw(O4Vx4|3INE;_N$nJ2RaNQp3T)0Q{B%V1cHpxT zp?x_JqrDOd_@hrU@Kuni?PnoTSgn?tR04a%VB*84G}sQ4^Vv-9ejP(^dr6VzL6Cd343m7TWiNAhbP4IybQ$hgyr>EWA$%8#K^t6iCFiRN{l8fG+}C zRlUh%0N;-!QrNFmkh+PDI#X|BnsTepG@EX;k6x$`CU2UWdNY#zv zj=#)nP0`--O7Zlvc)+rVXPS(@m=iR4fEl4e3Y-Tp30+r+m+ z6ZR8Hon~9x@4W?Yx{Y&J-9z>VZl#)PtC$@9vaLo2wSk`}yVm~1+?|LMwv%=((jF^( zbmR+eQ#-w(Fz%LAP^&7^h0RacxI^D0N4d5pNhic!I00U#?S2 z49aCtbp};yP)>s~i27xQ6N7RYRGmT98k9lQFExr9l*^#%464?koCakO_4S4mgK`;E ztwA{rYJyl|6g4Q9LDd;ltwA{r3PdUrcj*r54Qh!&xeTh#plS`uX;2{Gs?Km_P)iKT zWl(hnRclaAg8~6pwT3H$T4GQxgQ_#AT7z;L6bQI-8mM-Gt()5#fhg*E&_8_K>cwH>f2BQ8z=Pc#*i*mr~oK+d@&ls(R`SBZTbjlDVxCgWr+yTFQ)g zW13hAx0yKQ(4sMB*`S5cmEeruk9hzi6(Ya$4+!xRaA1)T4QTT%kk{d)<4Hbe1LHUe z{};#fYkSS_4XL)wHyiDlD{CE@kzLNrNUgd1-!0~&S1hKZsJ6>tau3tlyLZ-*qewh? z8+0F<-NUo*5YG;nM3WPIu1R#ifNsnS1(!bVyyZo=Y4(SG@R8+3_eF~sM%TLT5u&?7 zi0NlxLwmb$cE4pwH{L7KjgSw{gKeU6_g%+^TVld;Gp=JRzK#v^c*2;}*6eGd+a%Jz zCi&v+?%|82VmP~3bQAy7B93AlyH=uq-+m#wvpA`rWcvVp&swG*{bZ8l4lDBWj>vqQ zlcTI<#!>S9jm*=*>=;|AX6xPi%#h5zdw4F!=TVd6i%*1T8riiPW7&W)U6mP9AIo5j zyZbEahZIj(`@W~i4#uLskBE=#`uog?1#O=x+av}>4F1P4TXC9kT5wu%PC8zWv2t86 zEt|btWM;ce8So!FW{Kh1C1QAF*IT_5&t-KVzqhF7xVZ@Bt>U=Lx)Qt=9C55>@H+5% z@JZm-<5cF#+BY%(OqhQH^G_Vr+tOmI(|lTN^}tETTWl+}7%jG1pat9w6u=sw>G;U5 z8ub5dtsUsY^lN8nj@ywB2lSZVyC!EwkdrH@BY%FEV$71-_{bdVbG;9`@#Zq+H2Z1J zJeZAna3|)$*>UEedF>v^oeTS?q#G~3KK^{5xuexNWixCdja--{Ga)^(%#_Biso z8u@L&d|Q=4zK!`dc1%rJQ^Zky9iZ5FSXJws?g`ShSPOOTadbVFLO;xdf_PbTq0T*y zuE#7EXDy{i_4$LgO#i=g*(d$}nk`IUxUgno434ISI4P!L9ffYswQEgTivxAb`$x+S z>UWCX#>wu(jh{c#lW@)znf>N;qjRb_J^M+qOuLUg?qLlZ80*HzYZkf(tQez77%Lm@ z0efcTtVz4iW|UaEZ`*|VJs;z3dh|mYqiv75hl7>0PGRh!3;v;dIP|vr^u^cBnQ!-+ zGT;10WY9)!?*0enBDHs9*DAz*40Y6F9@J$}r#27DOZq-?I?|2hCdU(x3h~uNOXtgu zBFBr)sWroMCy8$7RFl?+v2#TnecmKax<%_N6uUF==f57<*z>hx+lOBVzxlVXO{UGS zh?(BI9U^$Q<2m=AVXd9+z*-zE9vfF5OUlu;y|(wh*?2qJI1~N91M7?p{g-oc>^gAQ z5UqbbdzIrodsiICxZt$owBekD(~8rA(~Q$}e8y7u@Kb2(t8a_$p0lR+%;+n%`PJLp z!+S8s^h_|jq^@(CrF;K0Yxn2S{S3Ze%rj*!J|Hssvx4$%S|@#b_cj--?{8`A`_t&d zCggb|)^?k5uU$JU-W%Cv#@Z&j^|i{m$bH(eBQzu&?h&VO4^J*}4}XR_vvx5;>wrFn za{N}}-W4()t^aAP)oHB#X{_OCdKRP=2l`PidJ>3#8u|XQ!-{qPve?myXPM)oX&H3W z94XAttB%ZUw~%v_V(me!J&3gjvGyRADXq*!EX?KYvu_p4oQUO|gjipR9s3c>`I(7y z)12*yHG)_*91G(tM6I0roplm59oG3;Gy0Er7|c5deDwE{@*Tk;rvrUYxrcAb)-Dt7 zKBcJo$xLy&W7(9Bx@9GZGqtO3ndxBNGV>w#u;sk_w3uIWI(v&f^OfC}`CaX#%$JW? zGnZ!5^Zof1pZ^us(U(T&Kj#tizafJ*X!*NlF=4KmFisecT^8JH@|lLlcOAsKs;_nW z+UGK*8{g*l0lcqt{Tx0$IPn}b-kWHQUV}~_v)r|se95lIC0So{bbq}r3*!6mUh>a( z@w5KE;u*6ZtSC!57O5MP1?8=FNEZcO`?d_ORa-jip?z0aq}P2uv1b zkp*S`1!YgW%9>EKt88gI=8~17mcFz_aavWNKkhKyvxQzStHu6^aC0W#RVuu8)fBnoX-iw1#7`NLwhJ3M8bwfJromH@!Yzdps2I=cuA84ULxkC>4{UKhWlF52svB zO&+O;2NGJ%eR_+WlSw2p!9#Jpq+8W#>l18Qq~ z8w@!t*VmWas$$-S(0}T0nGZdJD(FqBG&GuyCO8eBUkxSIXnTZf-5iZ20$MC}XCM)y z0U2YVGL&wq)CNoq2imw}VQ(@;MN}lvCvPt}hA}d=>o=%PjWxCPV&&>JEUoj@ki4mh z`C8aL_3EnnHT8`(9#(p4*R!-?eeL?yEH`az9F^AS9voo(>hG$f4!ZJbcp0U1rSvQa zAbkz>h8oX0qt#EXd1B4ljd~xjpx!)gX5eN9Zf4+S25x5HW(IC%;Qw<5_~!|HVihWOU4Q^V;B^mO2FeL4!tU%i3d$|WW$U&QuxGJZk*&#=8(+6(IMVoek5Xi7o( zLAJA@p!`MF?4F?ielF;MeZ2T#{#}aOS5SWs+b6332-{r~^sk@o6XoyR4eamVz<%Kd z_Q4z2FR^_$+CSd>3EE`G$|vYw7u#E4A1}X`*`9?R-z*C9`z|V_!y}=adEk$L?*exL2Y`PBJOji}r=C+1 zl@mbBp#{f)bD{5*s2m0+g$N&#*nAL(d9t7rh&FpVBr0j(KIpdtpND@+VzUQ`zAvZ) zJ^+8WL}d_pyB|C&QK3Ay!;i+J6G-E}A6NvW@(y4b{H+odd^;6$z%NKt&H26O?p0*inz0j!|dpzoKcoMHV*;GNK)kf`*sz6Xe($~}iADhFAA0C)%Vof4Ha>vse3 zd$?!2M5P5t`Cba7yj4qVo)7#H^mBkT-(~@6zLfxJz74YDlNb?^y`2>1l9qmUN;a^&a*LbcxLl zAmzy_v6-HWG=Gi&_mV#&y$4WU@teNp-!HNG43OG$5=ePCAyMfCQXYEPeh5f;I4Du+ z08$=OKQ_kM}W86cHEB~dvB z#I5S-m8kRpacg=GOH{gmH19fqxV1cKi3-+4nsT1FL?sBMxPFO>2Z*8YG)Pod0BL-e zN^C9%(m2kM*bJbqF6eRyu@))n1g-(5f!_sg2O?&19QXt<2z(sa0$dH;1Z)7V1Fix# z03QRof%U+pz&hX}U@fp5xDx0BD!`e*8ej>~4RiqU`(E*Ow2SQ2PxPTU2z&(C0$dK< z1Y8DO2SneB8-Nc3-M}S4>hEIUB49PJ99RW(0V{zsffc|KAbg5Zt#}9s5DS4WBpG?J zQL+iMNHSp`V-I7Rv4zpi=wcL%SqzF+p0S59&Dg@|W^^$M#w-eJQZblcQ zV9cUl5N&;oJ&b9_7DhLtixHrebC{Q|uv+Gn&$pW!Ja%(DWjFhSc5~X)VX~WhO~-IO zZ0fhDbpETv!+2@-#4Ad^{Odtwwo`Tu0TFyJ`DMQxeM2m=2N)#nva>SmVV2C z<($QCK4CeD>p{yQT(jmuSWY@lInFpx#?giAReKuOtbNdKH}~25aXn)1#kIrUiR(q% zC7a!R#@2`H3EN4V!+gZni|aw#A)D3GVe7OVfMv*W6)`%U2b^fRvj^7`&Xc(II|pz* z@4SHPCFf;a(~~ z4Q-n`I2BnaJyVLll^!c~m=Bd6hTKuw3Hi#jA@~fHUWMjz=@ncrmR>5QREz(@qEL*1 z(vJrq6UQ{v4ihG7G3JE6PwqJRV~%|XixC}uoW%8gZ=2Y@lkMlQ$dG*r^V``zkNF<9 zuV8Ls-pG6f^Ht1Sxx7m+kHw1O`|=KB7E`8MWn zFyBJ{Ir*q$`mOEzF0xzBu#0WWJTTkNI=VKOmkn9~W`FyE*^=!v6O&f0_A1%%?N= zYELR5-r@FdVSbQ#JM*>7_c3>J|6XSPEZ2X8`TfjKF#nkA`&;Jp_co3HFPYaf|Csq? z=9iiO1J`fo`|kzjcQdbNK2Nt(dFXQY#ZJNccLgUMVdReZRpuL*Td@Yv5kT9>u78)H z_fg{dcaEv>Bi@fX=-9{p`ge|c=7VfM%jNa&M7MK&`rp-i*sgzPdX?k*;YY`A=0`Z* zCg$`WMaK-TuZQg)aXfmzrsH+C>)$aJFh9lRKj(PTTZo@G0T`qr&{q^r&f2Z3qZ|I=EpD4cr?BCDr)xXnx!d(BZ)5PWV?=18_ zkAKGTJmTeY+Q*&CYx4a603~zncjVa*=Gp0eI@kZ}JpM)=|5YA;Gp~IgCp530;9*UJ4 zZ%ZB*Dz@)OeeoSa#l{%gRugOUd%>``M~$Smi?FJyw7o)A7Zz?EQN69$RwA^W1F<-T zLOj}%fn7n`_6kiERu@W3Dv|I7;o`$qniRG|jBcAzjeRTFLZjP_tuW(SX*0vbhB2FN z#&si)u?B4OXpf^Ww9x{M2*;8EgHbx<77XgG*RNuq33VI)K?8k6fka$OB{mcVd=bd1 z>P;pC*guj;MTJ_BI#tDg>j)%Z^2OpiC=%^)8r4Pv+X|I&{6`CIo5omQZPQDkcUvN$ zH8IbbcKgs+tJ+Q-Y&X$1>5SGa_x_MWj5qqItvfJU1&*>c(j8l6avG0B8tyWk*liR_ zsc~<@8%d5}l&_V#wzhD4 zGN`Rqxc#Eqd}tGDn=Tm05tD&1ndL4%tZ^6$%CmOswn+&Km$5rcr98tQcapr(^>%J< z$38NlM!aFfz#2&l+`=WxbZN06RU1;3Aypbug&`TjlBGrvL#j5UDnqI?Btuy8uu;^I zstu{ikSYzS!jKGM$r2-oAypevr6E-q(x|Z5C~8R6hE!!pm4;MdNDxwyc(op2i6JdE zq-sN|GNejFsxTx72vuc-GNi?ZRBcFAhE!=t6@~->p(>3~hP2p_stu{ikSYzS!jK>! zRD}`BkQN(KwINj*Ql%kPj7ryeo-Fjm!v2L7InPkuABwG)d>`vB)Sg8m{CLyq3Kht6 V*pL<*Qnevf8B(PoRnR9s@!z8V0CE5T literal 0 HcmV?d00001 diff --git a/libcachesim-rs/build.rs b/libcachesim-rs/build.rs new file mode 100644 index 00000000..bbdae36a --- /dev/null +++ b/libcachesim-rs/build.rs @@ -0,0 +1,248 @@ +use std::env; +use std::path::{Path, PathBuf}; +use std::process::Command; + +fn main() { + // Specify the header file + let manifest_dir = env::var("CARGO_MANIFEST_DIR").unwrap(); + let header = PathBuf::from(&manifest_dir) + .join("..") + .join("libCacheSim/include/libCacheSim.h"); + let lib_path = PathBuf::from(&manifest_dir) + .join("..") + .join("libCacheSim/_build/liblibCacheSim.a"); + // This is the path to the object file generated by bindgen for inline functions. + let binding_dir = PathBuf::from(&manifest_dir).join("bindings"); + let rust_src_dir = PathBuf::from(&manifest_dir) + .join("src"); + let obj_path = binding_dir.join("wrap_static_fns.o"); + let source_path = binding_dir.join("wrap_static_fns.c"); + let lib_obj_path = binding_dir.join("libwrap_static_fns.a"); + + // Get GLib include paths using pkg-config + let glib_cflags = Command::new("pkg-config") + .args(&["--cflags", "glib-2.0"]) + .output() + .expect("Failed to run pkg-config") + .stdout; + + let glib_cflags = String::from_utf8_lossy(&glib_cflags); + let include_paths: Vec<&str> = glib_cflags + .split_whitespace() + .filter(|s| s.starts_with("-I")) + .map(|s| s.trim_start_matches("-I")) + .take(2) + .collect(); + println!("GLib include paths: {:?}", include_paths); + + // Generate bindings + // let bindings = bindgen::Builder::default() + // .header(header.to_str().unwrap()) + // .clang_arg("-xc++") // Treat the header as C++ + // .clang_arg("-std=c++14") // Specify the C++ standard + // // Add GLib include paths + // .clang_arg(format!("-I{}", include_paths[0]))// Add GLib include paths + // .clang_arg(format!("-I{}", include_paths[1])) + // // Block problematic templates + // .blocklist_item("_Tp") // Skip unknown template types + // .blocklist_item("std::.*") // Skip all std:: types (optional) + // // Bindgen output options + // .wrap_static_fns(true) + // // .generate_inline_functions(true) // supports inline C++ functions too + // .disable_name_namespacing() // keeps names simple + // .layout_tests(false) // faster compilation, skips layout tests + // .generate() + // .expect("Unable to generate bindings"); + + // // // Generate bindings + // let bindings = bindgen::Builder::default() + // .header(header.to_str().unwrap()) + // .parse_callbacks(Box::new(bindgen::CargoCallbacks::new())) + // .clang_arg("-xc++") + // .clang_arg("-std=c++14") // Specify the C++ standard + // .clang_arg(format!("-I{}", include_paths[0]))// Add GLib include paths + // .clang_arg(format!("-I{}", include_paths[1])) + // // .clang_arg(format!("-I{}", "/opt/homebrew/Cellar/zstd/1.5.7")) + // .blocklist_item("_Tp") // Skip unknown template types + // .blocklist_item("std::.*") // Skip all std:: types (optional) + // // .blocklist_file(".*/glib-2.0/.*") + // // .blocklist_file(".*/CommandLineTools/.*") + // // .blocklist_file(".*zstdReader.*") + // // .wrap_static_fns(true) + // // .wrap_static_fns_suffix("__extern") + // // .wrap_static_fns_path(rust_src_dir.join("wrap_static_fns.c"))// Bindgen output options + // .disable_name_namespacing() + // .layout_tests(false) + // .use_core() // Use core types + // .ctypes_prefix("libc") // Explicitly link to libc types like FILE + // // .clang_args(&["-x", "c++", "-std=c++14", &format!("-I{}", include_paths[0]), &format!("-I{}", include_paths[1]), &format!("-I{}", "/opt/homebrew/Cellar/zstd/1.5.7")]) + // .generate() + // .expect("Unable to generate bindings"); + + + // wrap_static_fns does not generate wrap_static_fns.c when xc++ flag is on, see issue + // on bindgen https://github.com/rust-lang/rust-bindgen/issues/3157 + // Now, what we do is that: + // 1) we comment out .clang_arg(&["-x", "c++", "-std=c++14"]) and .blocklist_file(".*/glib-2.0/((?!include/glibconfig\\.h).)*$") + + // Generate bindings + let bindings = bindgen::Builder::default() + .header(header.to_str().unwrap()) + .parse_callbacks(Box::new(bindgen::CargoCallbacks::new())) + .blocklist_file(".*/glib-2.0/glib/.*") + // .blocklist_file(".*/CommandLineTools/.*") + .blocklist_file(".*zstdReader.*") + .blocklist_item("_Tp") // Skip unknown template types + .blocklist_item("std::.*") // Skip all std:: types (optional) + .wrap_static_fns(true) + .wrap_static_fns_suffix("__extern") + .wrap_static_fns_path(binding_dir.join("wrap_static_fns.c"))// Bindgen output options + .clang_args(&[ + // "-x", + // "c++", + // "-std=c++14", + &format!("-I{}", include_paths[0]), + &format!("-I{}", include_paths[1]), + &format!("-I{}", "/opt/homebrew/Cellar/zstd/1.5.7") + ]) + .generate() + .expect("Unable to generate bindings"); + + + // Compile the generated wrappers into an object file. + let clang_output = std::process::Command::new("clang") + .arg("-O") + .arg("-c") + .arg("-o") + .arg(&obj_path) + .arg(source_path) + .arg("-include") + .arg(header) + .arg(format!("-I{}", include_paths[0])) + .arg(format!("-I{}", include_paths[1])) + .arg(format!("-I{}", "/opt/homebrew/Cellar/zstd/1.5.7")) + .output() + .unwrap(); + + if !clang_output.status.success() { + panic!( + "Could not compile object file:\n{}", + String::from_utf8_lossy(&clang_output.stderr) + ); + } + + // Turn the object file into a static library + let lib_output = Command::new("ar") + .arg("rcs") + .arg(lib_obj_path) + .arg(obj_path) + .output() + .unwrap(); + if !lib_output.status.success() { + panic!( + "Could not emit library file:\n{}", + String::from_utf8_lossy(&lib_output.stderr) + ); + } + + // Tell cargo to statically link against the `libwrap_static_fns` static library. + println!("cargo:rustc-link-search={}", binding_dir.to_str().unwrap()); + println!("cargo:rustc-link-lib=static=wrap_static_fns"); + + println!("cargo:rustc-link-search=../_build"); + println!("cargo:rustc-link-lib=static=libCacheSim"); + + // Link ZSTD and GLib dynamically + println!("cargo:rustc-link-lib=zstd"); + // Add GLib and Gettext library paths + println!("cargo:rustc-link-search=native=/opt/homebrew/Cellar/glib/2.84.0/lib"); + println!("cargo:rustc-link-search=native=/opt/homebrew/opt/gettext/lib"); + // Link GLib and intl from Gettext + println!("cargo:rustc-link-lib=glib-2.0"); + println!("cargo:rustc-link-lib=intl"); + + println!("cargo:rustc-link-arg=-mmacosx-version-min=15.1"); + + // Write the bindings to the $libcachesim-rs/src/bindings.rs file + bindings + .write_to_file(binding_dir.join("bindings.rs")) + .expect("Couldn't write bindings!"); +} + + +// use std::env; +// use std::path::PathBuf; + +// fn main() { +// // Link to the C++ standard library +// // println!("cargo:rustc-link-search=/opt/homebrew/opt/gcc/lib/gcc/current"); +// println!("cargo:rustc-link-arg=-mmacosx-version-min=15.1"); +// println!("cargo:rustc-link-lib=zstd"); +// println!("cargo:rustc-link-lib=glib-2.0"); +// println!("cargo:rustc-link-lib=c++"); + +// println!("cargo:rustc-link-search=../_build"); +// println!("cargo:rustc-link-lib=static=libCacheSim"); + +// println!("cargo:rustc-link-search=/Users/yangliu/Desktop/Research/libCacheSim/libcachesim-rs/src"); +// println!("cargo:rustc-link-lib=static=wrap_static_fns"); + + +// // Specify the header file +// let manifest_dir = env::var("CARGO_MANIFEST_DIR").unwrap(); +// let header = PathBuf::from(&manifest_dir) +// .join("..") +// .join("libCacheSim/include/libCacheSim.h"); + +// // Get GLib include paths +// let glib_include_path = "/opt/homebrew/Cellar/glib/2.84.0/include/glib-2.0"; +// let glib_config_include = "/opt/homebrew/Cellar/glib/2.84.0/lib/glib-2.0/include"; + + +// // Generate bindings +// let bindings = bindgen::Builder::default() +// .header(header.to_str().unwrap()) +// .parse_callbacks(Box::new(bindgen::CargoCallbacks::new())) +// // Bindgen output options +// .wrap_static_fns_path("/Users/yangliu/Desktop/Research/libCacheSim/libcachesim-rs/src/wrap_static_fns") +// .wrap_static_fns(true) +// .clang_arg("-xc++") // Treat the header as C++ +// .clang_arg("-std=c++14") // Specify the C++ standard +// // Add GLib include paths +// .clang_arg(format!("-I{}", glib_include_path)) +// .clang_arg(format!("-I{}", glib_config_include)) +// // Block problematic templates +// .blocklist_item("_Tp") // Skip unknown template types +// .blocklist_item("std::.*") // Skip all std:: types (optional) +// .blocklist_item(".*zstdReader.*") +// // .generate_inline_functions(true) // supports inline C++ functions too +// // .disable_name_namespacing() // keeps names simple +// .generate() +// .expect("Unable to generate bindings"); + +// // This is the path to the object file. +// let obj_path = "/Users/yangliu/Desktop/Research/libCacheSim/libcachesim-rs/src/libwrap_static_fns.o"; +// // This is the path to the static library file. +// let lib_path = "/Users/yangliu/Desktop/Research/libCacheSim/_build/liblibCacheSim.a"; + +// // Compile the generated wrappers into an object file. +// let clang_output = std::process::Command::new("clang") +// .arg("-O") +// .arg("-c") +// .arg("-o") +// .arg(&obj_path) +// .arg(std::env::temp_dir().unwrap().join("bindgen").join("/Users/yangliu/Desktop/Research/libCacheSim/libcachesim-rs/src/libwrap_static_fns.c")) +// .arg("-include") +// .arg(input) +// .output() +// .unwrap(); + +// // Write the bindings to the $libcachesim-rs/src/bindings.rs file +// let bindings_path = PathBuf::from(&manifest_dir) +// .join("src") +// .join("bindings.rs"); +// bindings +// .write_to_file(bindings_path) +// .expect("Couldn't write bindings!"); +// } + diff --git a/libcachesim-rs/src/lib.rs b/libcachesim-rs/src/lib.rs new file mode 100644 index 00000000..9dceaa61 --- /dev/null +++ b/libcachesim-rs/src/lib.rs @@ -0,0 +1,9 @@ +#![allow(non_upper_case_globals)] +#![allow(non_camel_case_types)] +#![allow(non_snake_case)] + + +pub mod bindings { + include!("../bindings/bindings.rs"); // These bindings are generated by bindgen +} +pub mod wrapper; diff --git a/libcachesim-rs/src/main.rs b/libcachesim-rs/src/main.rs new file mode 100644 index 00000000..324a6930 --- /dev/null +++ b/libcachesim-rs/src/main.rs @@ -0,0 +1,65 @@ +use libcachesim_rs::bindings::*; +use libcachesim_rs::wrapper::*; + +fn main() { + // Open the trace file + println!("main test file"); + + let mut init_params_csv = Reader::default_reader_init_params(); + init_params_csv.delimiter = ',' as i8; // b',' as std::os::raw::c_char, + init_params_csv.time_field = 2; + init_params_csv.obj_id_field = 6; + init_params_csv.obj_size_field = 4; + init_params_csv.has_header = false; + + let mut reader = match Reader::open_trace("../data/trace.csv", trace_type_e_CSV_TRACE, &init_params_csv) { + Some(r) => r, + None => { + eprintln!("Failed to open trace."); + return; + } + }; + + // Create a request container + let req = match Request::new_request() { + Some(r) => r, + None => { + eprintln!("Failed to create request."); + return; + } + }; + + // Define cache parameters and create the cache + let cache_params = common_cache_params_t { + cache_size: 1024 * 1024, + ..Default::default() + }; + let cache = match Cache::LRU_init(cache_params, "") { + Some(c) => c, + None => { + eprintln!("Failed to initialize cache."); + return; + } + }; + + // Counters + let mut n_req = 0; + let mut n_miss = 0; + + // Loop through the trace + while reader.read_one_req(&req) == 0 { + if !cache.get(&req) { + n_miss += 1; + } + n_req += 1; + } + + // Print the miss ratio + if n_req > 0 { + println!("miss ratio: {:.4}", n_miss as f64 / n_req as f64); + } else { + println!("No requests were processed."); + } + + // Clean up happens automatically due to Drop implementations +} diff --git a/libcachesim-rs/src/wrapper.rs b/libcachesim-rs/src/wrapper.rs new file mode 100644 index 00000000..5ff61d0a --- /dev/null +++ b/libcachesim-rs/src/wrapper.rs @@ -0,0 +1,345 @@ +use crate::bindings::*; +use std::ffi::CString; +use std::ptr; + + +pub struct Cache { + cache_ptr: *mut cache_t, +} + +impl Cache { + /// Initializes a new LRU cache. + pub fn LRU_init(params: common_cache_params_t, specific_params: &str) -> Option { + let c_params = CString::new(specific_params).expect("CString conversion failed"); + let cache_ptr = unsafe { LRU_init(params, c_params.as_ptr()) }; + + if cache_ptr.is_null() { + None + } else { + Some(Self { cache_ptr }) + } + } + + /// Frees the cache. + pub fn free(&mut self) { + if !self.cache_ptr.is_null() { + unsafe { + let cache_ref = *self.cache_ptr; + // Ensure the function pointer is valid, then call it + if !cache_ref.cache_free.is_none() { + (cache_ref.cache_free.unwrap())(self.cache_ptr); + self.cache_ptr = std::ptr::null_mut(); // Invalidate the pointer after freeing + } else { + eprintln!("cache_free function pointer is null!"); + } + }; + } + } + + /// Checks if a request hits the cache. + pub fn get(&self, req: &Request) -> bool { + if self.cache_ptr.is_null() { + return false; + } + unsafe { + let cache_ref = *self.cache_ptr; + // Ensure the function pointer is valid, then call it + if !cache_ref.get.is_none() { + (cache_ref.get.unwrap())(self.cache_ptr, req.as_raw()) + } else { + eprintln!("get function pointer is null!"); + false + } + } + } + + /// Finds an object in the cache, optionally updating it. + pub fn find(&self, req: &Request, update_cache: bool) -> Option<*mut cache_obj_t> { + if self.cache_ptr.is_null() { + return None; + } + let obj_ptr = unsafe { + let cache_ref = *self.cache_ptr; + // Ensure the function pointer is valid, then call it + if !cache_ref.find.is_none() { + (cache_ref.find.unwrap())(self.cache_ptr, req.as_raw(), update_cache) + } else { + eprintln!("find function pointer is null!"); + ptr::null_mut() + } + }; + if obj_ptr.is_null() { + None + } else { + Some(obj_ptr) + } + } + + /// Inserts a new object into the cache. + pub fn insert(&mut self, req: &Request) -> Option<*mut cache_obj_t> { + if self.cache_ptr.is_null() { + return None; + } + let obj_ptr = unsafe { + let cache_ref = *self.cache_ptr; + // Ensure the function pointer is valid, then call it + if !cache_ref.insert.is_none() { + (cache_ref.insert.unwrap())(self.cache_ptr, req.as_raw()) + } else { + eprintln!("insert function pointer is null!"); + ptr::null_mut() + } + }; + if obj_ptr.is_null() { + None + } else { + Some(obj_ptr) + } + } + + /// Determines which object to evict. + pub fn to_evict(&self, req: &Request) -> Option<*mut cache_obj_t> { + if self.cache_ptr.is_null() { + return None; + } + let obj_ptr = unsafe { + let cache_ref = *self.cache_ptr; + // Ensure the function pointer is valid, then call it + if !cache_ref.to_evict.is_none() { + (cache_ref.to_evict.unwrap())(self.cache_ptr, req.as_raw()) + } else { + eprintln!("to_evict function pointer is null!"); + ptr::null_mut() + } + }; + if obj_ptr.is_null() { + None + } else { + Some(obj_ptr) + } + } + + /// Evicts an object from the cache. + pub fn evict(&mut self, req: &Request) { + if !self.cache_ptr.is_null() { + unsafe { + let cache_ref = *self.cache_ptr; + // Ensure the function pointer is valid, then call it + if !cache_ref.evict.is_none() { + (cache_ref.evict.unwrap())(self.cache_ptr, req.as_raw()) + } else { + eprintln!("evict function pointer is null!"); + } + }; + } + } + + /// Removes an object from the cache by its ID. + pub fn remove(&mut self, obj_id: obj_id_t) -> bool { + if self.cache_ptr.is_null() { + return false; + } + unsafe { + let cache_ref = *self.cache_ptr; + // Ensure the function pointer is valid, then call it + if !cache_ref.remove.is_none() { + (cache_ref.remove.unwrap())(self.cache_ptr, obj_id) + } else { + eprintln!("remove function pointer is null!"); + false + } + } + } + + pub fn print_cache(&self) { + if !self.cache_ptr.is_null() { + unsafe { + let cache_ref = *self.cache_ptr; + // Ensure the function pointer is valid, then call it + if !cache_ref.print_cache.is_none() { + (cache_ref.print_cache.unwrap())(self.cache_ptr); + } else { + eprintln!("print_cache function pointer is null!"); + } + }; + } + } +} + +// Ensure the cache gets freed properly when dropped. +impl Drop for Cache { + fn drop(&mut self) { + self.free(); + } +} + + +pub struct Reader { + reader_ptr: *mut reader_t, +} + + +impl Reader { + fn from_raw(ptr: *mut reader_t) -> Option { + if ptr.is_null() { + None + } else { + Some(Self { reader_ptr: ptr }) + } + } + + pub fn set_default_reader_init_params(params: &mut reader_init_param_t) { + unsafe { set_default_reader_init_params(params) }; + } + + pub fn default_reader_init_params() -> reader_init_param_t { + unsafe { default_reader_init_params() } + } + + pub fn setup_reader(trace_path: &str, trace_type: trace_type_e, init_params: &reader_init_param_t) -> Option { + let path = CString::new(trace_path).unwrap(); + let ptr = unsafe { setup_reader(path.as_ptr(), trace_type, init_params) }; + Self::from_raw(ptr) + } + + pub fn open_trace(trace_path: &str, trace_type: trace_type_e, init_params: &reader_init_param_t) -> Option { + let path = CString::new(trace_path).unwrap(); + let ptr = unsafe { open_trace(path.as_ptr(), trace_type, init_params) }; + Self::from_raw(ptr) + } + + pub fn get_num_of_req(&self) -> u64 { + if self.reader_ptr.is_null() { + return 0; + } + unsafe { get_num_of_req(self.reader_ptr) } + } + + pub fn get_trace_type(&self) -> trace_type_e { + unsafe { get_trace_type(self.reader_ptr) } + } + + pub fn obj_id_is_num(&self) -> bool { + unsafe { obj_id_is_num(self.reader_ptr) } + } + + pub fn read_one_req(&mut self, req: &Request) -> i32 { + unsafe { read_one_req(self.reader_ptr, req.as_raw()) } + } + + pub fn read_trace(&mut self, req: &Request) -> i32 { + unsafe { read_trace(self.reader_ptr, req.as_raw())} + } + + pub fn reset_reader(&mut self) { + unsafe { reset_reader(self.reader_ptr) }; + } + + pub fn close_reader(&mut self) -> bool { + let result = unsafe { close_reader(self.reader_ptr) }; + self.reader_ptr = ptr::null_mut(); + result == 0 + } + + pub fn close_trace(&mut self) -> i32 { + unsafe { close_trace(self.reader_ptr) } + } + + pub fn clone_reader(&self) -> Option { + let ptr = unsafe { clone_reader(self.reader_ptr) }; + Self::from_raw(ptr) + } + + pub fn read_first_req(&mut self, req: &Request) { + unsafe { read_first_req(self.reader_ptr, req.as_raw()) }; + } + + pub fn read_last_req(&mut self, req: &Request) { + unsafe { read_last_req(self.reader_ptr, req.as_raw()) }; + } + + pub fn skip_n_req(&mut self, n: i32) -> i32 { + unsafe { skip_n_req(self.reader_ptr, n) } + } + + pub fn read_one_req_above(&mut self, req: &Request) -> i32 { + unsafe { read_one_req_above(self.reader_ptr, req.as_raw()) } + } + + pub fn go_back_one_req(&mut self) -> i32 { + unsafe { go_back_one_req(self.reader_ptr) } + } + + pub fn reader_set_read_pos(&mut self, pos: f64) { + unsafe { reader_set_read_pos(self.reader_ptr, pos) }; + } + + pub fn print_reader(&self) { + unsafe { print_reader(self.reader_ptr) }; + } +} + +impl Drop for Reader { + fn drop(&mut self) { + self.close_reader(); + } +} + +pub struct Request(*mut request_t); + +impl Request { + /// Creates a new request + pub fn new_request() -> Option { + let req = unsafe { new_request() }; + if req.is_null() { + None + } else { + Some(Self(req)) + } + } + + pub fn as_raw(&self) -> *mut request_t { + self.0 + } + + /// Copies data from another request + pub fn copy_request(&mut self, source: &Request) { + unsafe { copy_request(self.0, source.0) }; + } + + /// Clones the current request + pub fn clone_request(&self) -> Option { + let req_clone = unsafe { clone_request(self.0) }; + if req_clone.is_null() { + None + } else { + Some(Self(req_clone)) + } + } + + /// Prints the request + pub fn print_request(&self) { + unsafe { print_request(self.0) }; + } +} + +impl Drop for Request { + /// Frees memory when Request is dropped + fn drop(&mut self) { + if !self.0.is_null() { + unsafe { free_request(self.0) }; + } + } +} + +impl Default for common_cache_params_t { + fn default() -> Self { + Self { + cache_size: 0, + default_ttl: 0, + hashpower: 0, + consider_obj_metadata: false, + } + } +} + diff --git a/test.c b/test.c index 991ba8ee..d8fe9ddc 100644 --- a/test.c +++ b/test.c @@ -6,7 +6,9 @@ int main(int argc, char *argv[]) { /* open trace, see quickstart.md for opening csv and binary trace */ - reader_t *reader = open_trace("../data/trace.vscsi", VSCSI_TRACE, NULL); + reader_init_param_t init_params_csv = + {.delimiter=',', .time_field=2, .obj_id_field=6, .obj_size_field=4, .has_header=FALSE}; + reader_t *reader = open_trace("../data/trace.csv", CSV_TRACE, &init_params_csv); /* create a container for reading from trace */ request_t *req = new_request();