diff --git a/.github/workflows/cicd.yml b/.github/workflows/cicd.yml index 081cc5f3..cc7ada6a 100644 --- a/.github/workflows/cicd.yml +++ b/.github/workflows/cicd.yml @@ -10,7 +10,6 @@ jobs: runs-on: ubuntu-latest outputs: run_nix_vm: ${{ steps.files.outputs.run_nix_vm }} - run_c_checks: ${{ steps.files.outputs.run_c_checks }} run_rust_checks: ${{ steps.files.outputs.run_rust_checks }} run_mdbook_check: ${{ steps.files.outputs.run_mdbook_check }} steps: @@ -29,31 +28,25 @@ jobs: const needsVMTest = !isDraft && files.some(file => file.endsWith('.rs') || - file.endsWith('.c') || file.includes('.nix') || file.includes('flake.lock') || file.includes('Cargo.toml') || file.includes('Cargo.lock') ); - const needsCFormatCheck = files.some(file => - file.endsWith('.c') - ); - const needsMdBookCheck = files.some(file => file.startsWith('docs/') ); const needsRustQuality = files.some(file => - file.endsWith('.rs') + file.endsWith('.rs') || + file.includes('Cargo.toml') || + file.includes('Cargo.lock') ); if (needsVMTest) { core.setOutput('run_nix_vm', 'true'); } - if (needsCFormatCheck) { - core.setOutput('run_c_checks', 'true'); - } if (needsRustQuality) { core.setOutput('run_rust_checks', 'true'); } @@ -74,13 +67,23 @@ jobs: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Install system dependencies run: sudo apt-get update && sudo apt-get install -y clang libbpf-dev libudev-dev pkg-config gcc-multilib - - uses: dtolnay/rust-toolchain@eac0f66a48bc4b70a10b9acd4c4e930f835d95ff # 1.95.0 + - name: Install Nightly Rust (for aya-ebpf) + uses: dtolnay/rust-toolchain@nightly + with: + components: rust-src + - name: Install Stable Rust + uses: dtolnay/rust-toolchain@eac0f66a48bc4b70a10b9acd4c4e930f835d95ff # 1.95.0 with: components: clippy - - uses: auguwu/clippy-action@9817d076b82df0194935be9db6154c56ac07b317 # 1.5.0 + - name: Install bpf-linker + uses: taiki-e/install-action@67729d5c413db75907f0ad1e39bb04b9c868ff60 # v2.85.7 + with: + tool: bpf-linker + - name: Clippy Workspace + uses: auguwu/clippy-action@9817d076b82df0194935be9db6154c56ac07b317 # 1.5.0 with: token: ${{ secrets.GITHUB_TOKEN }} - check-args: --locked --all-targets --all-features + check-args: --all-targets --all-features args: -D warnings rust-test: name: Rust Test @@ -93,9 +96,18 @@ jobs: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Install system dependencies run: sudo apt-get update && sudo apt-get install -y clang libbpf-dev libudev-dev pkg-config gcc-multilib - - uses: dtolnay/rust-toolchain@eac0f66a48bc4b70a10b9acd4c4e930f835d95ff + - name: Install Nightly Rust (for aya-ebpf) + uses: dtolnay/rust-toolchain@nightly + with: + components: rust-src + - name: Install Stable Rust + uses: dtolnay/rust-toolchain@eac0f66a48bc4b70a10b9acd4c4e930f835d95ff # 1.95.0 + - name: Install bpf-linker + uses: taiki-e/install-action@67729d5c413db75907f0ad1e39bb04b9c868ff60 # v2.85.7 + with: + tool: bpf-linker - name: Test code - run: cargo test --all + run: cargo test rust-format: name: Rust Format runs-on: ubuntu-latest @@ -115,19 +127,9 @@ jobs: uses: reviewdog/action-suggester@2558ba17e65a9039e73764a73009fc05fef28a46 # v1.24.3 with: tool_name: rustfmt - c-format: - name: C Format - runs-on: ubuntu-latest - needs: [prepare] - if: needs.prepare.outputs.run_c_checks == 'true' - steps: - - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - - name: Install clang-format - run: sudo apt-get update && sudo apt-get install -y clang-format - - run: clang-format --dry-run --Werror -i ./crates/cardwire-ebpf/src/c/* vm-test: runs-on: ubuntu-latest - needs: [prepare, rust-lint, rust-format, c-format] + needs: [prepare, rust-lint, rust-test, rust-format] if: ${{ !failure() && !cancelled() && needs.prepare.outputs.run_nix_vm == 'true' }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 474f10ca..c743b6f1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -30,7 +30,18 @@ jobs: sudo ln -s /usr/include/aarch64-linux-gnu/asm /usr/include/asm - - uses: dtolnay/rust-toolchain@eac0f66a48bc4b70a10b9acd4c4e930f835d95ff # 1.95.0 + - name: Install Nightly Rust (for aya-ebpf) + uses: dtolnay/rust-toolchain@nightly + with: + components: rust-src + + - name: Install Stable Rust + uses: dtolnay/rust-toolchain@eac0f66a48bc4b70a10b9acd4c4e930f835d95ff # 1.95.0 + + - name: Install bpf-linker + uses: taiki-e/install-action@67729d5c413db75907f0ad1e39bb04b9c868ff60 # v2.85.7 + with: + tool: bpf-linker - name: Build cardwire run: | cargo install cargo-deb diff --git a/Cargo.lock b/Cargo.lock index 584d3c1a..c9c69dc7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -47,7 +47,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f2a1bb052857d5dd49572219344a7332b31b76405648eabac5bc68978251bcd" dependencies = [ "android-properties", - "bitflags 2.11.0", + "bitflags 2.13.1", "cc", "jni", "libc", @@ -259,14 +259,14 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] name = "async-signal" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43c070bbf59cd3570b6b2dd54cd772527c7c3620fce8be898406dd3ed6adc64c" +checksum = "52b5aaafa020cf5053a01f2a60e8ff5dccf550f0f77ec54a4e47285ac2bab485" dependencies = [ "async-io", "async-lock", @@ -288,13 +288,13 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.89" +version = "0.1.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" +checksum = "ae36dc4177970ef04fde5178d3e2429882def40e57a451f919c098f72baa6cec" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 3.0.3", ] [[package]] @@ -305,9 +305,9 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" [[package]] name = "aya" @@ -317,7 +317,7 @@ checksum = "66e644424fada9fff4fdc63848db1732fb69b626e8328202ef55c03df1f4d939" dependencies = [ "assert_matches", "aya-obj", - "bitflags 2.11.0", + "bitflags 2.13.1", "hashbrown 0.17.1", "libc", "log", @@ -327,6 +327,116 @@ dependencies = [ "thiserror 2.0.19", ] +[[package]] +name = "aya-build" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "609b414caa508f04d2dbbc9481ad6869f43ab9ab1dc9abd237fca27c0818f663" +dependencies = [ + "anyhow", + "cargo_metadata", + "rustc_version", + "which", +] + +[[package]] +name = "aya-ebpf" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eace5970943931fea46a8cbdca208a8f6a9e0413d85a5a6c4e168f0b909570bc" +dependencies = [ + "aya-build", + "aya-ebpf-bindings", + "aya-ebpf-cty", + "aya-ebpf-macros", + "rustversion", +] + +[[package]] +name = "aya-ebpf-bindings" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf1f19286ebbda6673099b68d049034838f08e4939cef66c998a8d3e62825d76" +dependencies = [ + "aya-build", + "aya-ebpf-cty", +] + +[[package]] +name = "aya-ebpf-cty" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0884264bc8a51a49fed03df8feada3a21d703cf501dae33c28bdba5d2313ef33" +dependencies = [ + "aya-build", +] + +[[package]] +name = "aya-ebpf-macros" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23e3a7f86e914df106dd00f9d757bc93f7d5c93380c51eead23d8d2ccd15a87a" +dependencies = [ + "proc-macro2", + "proc-macro2-diagnostics", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "aya-log" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "476912cd6322ecf481a48f9db82207406a472563875eef014e927800522aac5c" +dependencies = [ + "aya", + "aya-log-common", + "log", + "thiserror 2.0.19", +] + +[[package]] +name = "aya-log-common" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d14c56374a63b20cb1d76108bf9ff2a75e137d47f57f32f2841ef74153b2186a" +dependencies = [ + "num_enum", +] + +[[package]] +name = "aya-log-ebpf" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d6b48fdc4454a2474f89970d6c6fdd1f9a9da5190d3c824d9341c6666831316" +dependencies = [ + "aya-ebpf", + "aya-log-common", + "aya-log-ebpf-macros", +] + +[[package]] +name = "aya-log-ebpf-macros" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13a22cc8e903fb5241357d2f48f26afc3fb9dcb7febe54405e94707cf73e5918" +dependencies = [ + "aya-log-common", + "aya-log-parser", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "aya-log-parser" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f52d032162a42a191cd9b4ac35a212848c08b9335d2c9a92eaef8f281792757a" +dependencies = [ + "aya-log-common", +] + [[package]] name = "aya-obj" version = "0.3.0" @@ -362,9 +472,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.11.0" +version = "2.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" +checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da" [[package]] name = "block" @@ -405,26 +515,26 @@ dependencies = [ [[package]] name = "bstr" -version = "1.12.1" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63044e1ae8e69f3b5a92c736ca6269b8d12fa7efe39bf34ddb06d102cf0e2cab" +checksum = "1f7dc094d718f2e1c1559ad110e27eeaae14a5465d3d56dd6dbd793079fbd530" dependencies = [ "memchr", "regex-automata", - "serde", + "serde_core", ] [[package]] name = "bumpalo" -version = "3.20.2" +version = "3.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" [[package]] name = "bytemuck" -version = "1.25.1" +version = "1.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6aedf8ae72766347502cf3cb4f41cf5e9cc37d28bee90f1fdaaae15f9cf9424" +checksum = "95832e849adfb21180ccb6826a99da14e5d266ae5c2e668e1602cf234f153797" dependencies = [ "bytemuck_derive", ] @@ -437,14 +547,14 @@ checksum = "f65693059b6b9c588b9f62fed1cedbf0a8b805631457ea162d68f0de186f3de5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] name = "bytes" -version = "1.11.1" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" +checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" [[package]] name = "calloop" @@ -452,7 +562,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "log", "polling", "rustix 0.38.44", @@ -466,7 +576,7 @@ version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dbf9978365bac10f54d1d4b04f7ce4427e51f71d61f2fe15e3fed5166474df7" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "polling", "rustix 1.1.4", "slab", @@ -497,6 +607,15 @@ dependencies = [ "wayland-client", ] +[[package]] +name = "camino" +version = "1.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb1307f12aa967b5a58416e87b3653360e0fd614a016b6e970db08fecbb1b80d" +dependencies = [ + "serde_core", +] + [[package]] name = "cardwire-cli" version = "0.11.1" @@ -516,7 +635,8 @@ version = "0.11.1" dependencies = [ "anyhow", "aya", - "cardwire-ebpf", + "aya-log", + "cardwire-ebpf-userspace", "env_logger", "freedesktop-desktop-entry", "log", @@ -535,8 +655,26 @@ dependencies = [ name = "cardwire-ebpf" version = "0.11.1" dependencies = [ + "aya-ebpf", + "aya-log-ebpf", + "which", +] + +[[package]] +name = "cardwire-ebpf-userspace" +version = "0.11.1" +dependencies = [ + "anyhow", "aya", + "aya-build", + "aya-log", + "cardwire-ebpf", + "cargo_metadata", + "clap", + "env_logger", + "log", "thiserror 2.0.19", + "tokio", ] [[package]] @@ -558,11 +696,35 @@ dependencies = [ "zbus", ] +[[package]] +name = "cargo-platform" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0061da739915fae12ea00e16397555ed4371a6bb285431aab930f61b0aa4ba" +dependencies = [ + "serde", + "serde_core", +] + +[[package]] +name = "cargo_metadata" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef987d17b0a113becdd19d3d0022d04d7ef41f9efe4f3fb63ac44ba61df3ade9" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror 2.0.19", +] + [[package]] name = "cc" -version = "1.2.63" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "556e016178bb5662a08681bbe0f00f8e17631781a4dfc8c45e466e4b185ec27f" +checksum = "5add81bb678e6cb321aff7fa0dc7689ad82b112dbc032cea19f91d6b8e3582b9" dependencies = [ "find-msvc-tools", "jobserver", @@ -597,9 +759,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.6.4" +version = "4.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91e0c145792ef73a6ad36d27c75ac09f1832222a3c209689d90f534685ee5b7" +checksum = "301b56658598e48f3648647ac6fc887be7e7108eddfa4e9b63fcf3ec58c0cadf" dependencies = [ "clap_builder", "clap_derive", @@ -607,9 +769,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.6.2" +version = "4.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f09628afdcc538b57f3c6341e9c8e9970f18e4a481690a64974d7023bd33548b" +checksum = "94a65403d1a1bd28f7dc68eb8506e8874808ee5eecb59298de588e2e1407a078" dependencies = [ "anstream", "anstyle", @@ -619,9 +781,9 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.6.7" +version = "4.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db8b397918185f0161ff3d6fcaa9e4bfc09b8367caf6e1d4a2848e5477ed027b" +checksum = "b1f84a88507dbd05c695f2cb5e8558e747179134005e9893882dec964190ed89" dependencies = [ "clap", ] @@ -765,7 +927,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "core-foundation 0.10.1", "libc", ] @@ -785,7 +947,7 @@ version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "173852283a9a57a3cbe365d86e74dc428a09c50421477d5ad6fe9d9509e37737" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "fontdb", "harfrust", "linebender_resource_handle", @@ -814,9 +976,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.21" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" +checksum = "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17" [[package]] name = "crunchy" @@ -843,6 +1005,37 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f27ae1dd37df86211c42e150270f82743308803d90a6f6e6651cd730d5e1732f" +[[package]] +name = "defmt" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2953bfe4f93bbd20cc71198842756f77d161884c99ebbabc41d80231ded88d1" +dependencies = [ + "bitflags 1.3.2", + "defmt-macros", +] + +[[package]] +name = "defmt-macros" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bad9c72e7ca2137e0dc3813245a0d282fd6daad32fd800af018306a9169b5fe8" +dependencies = [ + "defmt-parser", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "defmt-parser" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10d60334b3b2e7c9d91ef8150abfb6fa4c1c39ebbcf4a81c2e346aad939fee3e" +dependencies = [ + "thiserror 2.0.19", +] + [[package]] name = "dispatch" version = "0.2.0" @@ -855,7 +1048,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "objc2 0.6.4", ] @@ -913,7 +1106,7 @@ checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -982,11 +1175,10 @@ dependencies = [ [[package]] name = "event-listener" -version = "5.4.1" +version = "5.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" +checksum = "5a23add41df1562121a9393cb065eab5146a1242410f23a644851e90cfd669d2" dependencies = [ - "concurrent-queue", "parking", "pin-project-lite", ] @@ -1003,9 +1195,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a043dc74da1e37d6afe657061213aa6f425f855399a11d3463c6ecccc4dfda1f" +checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223" [[package]] name = "find-msvc-tools" @@ -1042,9 +1234,9 @@ dependencies = [ [[package]] name = "font-types" -version = "0.12.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad67eced03f5504d9cbd3a879b5958b5c54d4e5fd794361c6eb21b05fb703411" +checksum = "0a7299a780854a6d391be2ae1c8521c9368471b559dbfd6a8dbd9f407eaff100" dependencies = [ "bytemuck", ] @@ -1084,13 +1276,13 @@ dependencies = [ [[package]] name = "foreign-types-macros" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" +checksum = "ea5190182e6915eb873ddbc16e23b711b6eb1f9c00a0d0a3a91b5f6228475225" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 3.0.3", ] [[package]] @@ -1116,9 +1308,9 @@ dependencies = [ [[package]] name = "futures" -version = "0.3.32" +version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d" +checksum = "a88cf1f829d945f548cf8fec32c61b1f202b6d93b45848602fc02af4b12ad218" dependencies = [ "futures-channel", "futures-core", @@ -1131,9 +1323,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.32" +version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" +checksum = "262590f4fe6afeb0bc83be1daa64e52657fe185690a958af7f3ad0e92085c5ae" dependencies = [ "futures-core", "futures-sink", @@ -1141,15 +1333,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.32" +version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" +checksum = "2cd50c473c80f6d7c3670a752354b8e569b1a7cbfdc0419ec88e5edad85e0dc7" [[package]] name = "futures-executor" -version = "0.3.32" +version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" +checksum = "6754879cc9f2c66f88c6e5c35344bb0bdb0708b0352b1201815667c7eabc7458" dependencies = [ "futures-core", "futures-task", @@ -1158,9 +1350,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.32" +version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" +checksum = "4577ecaa3c4f96589d473f679a71b596316f6641bc350038b962a5daf0085d7a" [[package]] name = "futures-lite" @@ -1177,13 +1369,13 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.32" +version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" +checksum = "2d6d3cde68c518367be28956066ddfef33813991b77a55005a69dae04bf3b10b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -1200,9 +1392,9 @@ checksum = "b231ed28831efb4a61a08580c4bc233ec56bc009f4cd8f52da2c3cb97df0c109" [[package]] name = "futures-util" -version = "0.3.32" +version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" +checksum = "a77a90a256fce34da66415271e30f94ee91c57b04b8a2c042d9cf3220179deaa" dependencies = [ "futures-channel", "futures-core", @@ -1229,15 +1421,13 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" +checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" dependencies = [ "cfg-if", "libc", "r-efi 6.0.0", - "wasip2", - "wasip3", ] [[package]] @@ -1304,7 +1494,7 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "45cf04b2726f02df5508c6de726acdc90cdf97ac771a9a0ffd8ba10a6e696bf9" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "gpu-alloc-types", ] @@ -1314,7 +1504,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2bbed164dd10ed526c2e4fe3e721ca4a71c61730e5aafac6844b417b3227058" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", ] [[package]] @@ -1335,7 +1525,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b89c83349105e3732062a895becfc71a8f921bb71ecbbdd8ff99263e3b53a0ca" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "gpu-descriptor-types", "hashbrown 0.15.5", ] @@ -1346,7 +1536,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdf242682df893b86f33a73828fb09ca4b2d3bb6cc95249707fc684d27484b91" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", ] [[package]] @@ -1377,7 +1567,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92c020db12c71d8a12a3fe7607873cade3a01a6287e29d540c8723276221b9d8" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "bytemuck", "core_maths", "read-fonts 0.35.0", @@ -1504,7 +1694,7 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ab1937d699403e7e69252ae743a902bcee9f4ab2052cc4c9a46fcf34729d85" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "bytes", "glam", "lilt", @@ -1546,7 +1736,7 @@ checksum = "7ef5125e110cb19cd1910a28298661c98c5d9ab02eef43594968352940e8752e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", "ttf-parser", ] @@ -1571,7 +1761,7 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "234ca1c2cec4155055f68fa5fad1b5242c496ac8238d80a259bca382fb44a102" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "bytemuck", "cosmic-text", "half", @@ -1644,7 +1834,7 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff144a999b0ca0f8a10257934500060240825c42e950ec0ebee9c8ae30561c13" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "bytemuck", "cryoglyph", "futures", @@ -1692,12 +1882,6 @@ dependencies = [ "winit", ] -[[package]] -name = "id-arena" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" - [[package]] name = "indexmap" version = "2.14.0" @@ -1706,8 +1890,6 @@ checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "equivalent", "hashbrown 0.17.1", - "serde", - "serde_core", ] [[package]] @@ -1735,10 +1917,12 @@ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "jiff" -version = "0.2.23" +version = "0.2.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a3546dc96b6d42c5f24902af9e2538e82e39ad350b0c766eb3fbf2d8f3d8359" +checksum = "668b7183bd07af9a4885f5c35b0cc5c83c4607a913c16b7e17291832910d2dcc" dependencies = [ + "defmt", + "jiff-core", "jiff-static", "log", "portable-atomic", @@ -1746,15 +1930,25 @@ dependencies = [ "serde_core", ] +[[package]] +name = "jiff-core" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7feca88439efe53da3754500c1851dedf3cb36c524dd5cf8225cc0794de95d09" +dependencies = [ + "defmt", +] + [[package]] name = "jiff-static" -version = "0.2.23" +version = "0.2.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a8c8b344124222efd714b73bb41f8b5120b27a7cc1c75593a6ff768d9d05aa4" +checksum = "3a69dcb3a21cfb32ce1cd056169337ca284af0766dd766e7878819b251a49204" dependencies = [ + "jiff-core", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -1784,7 +1978,7 @@ dependencies = [ "quote", "rustc_version", "simd_cesu8", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -1812,7 +2006,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" dependencies = [ "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -1821,19 +2015,18 @@ version = "0.1.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c00acbd29eabad4a2392fa0e921c874934dbbf4194312ad20f04a0ed67a3cb3" dependencies = [ - "getrandom 0.4.2", + "getrandom 0.4.3", "libc", ] [[package]] name = "js-sys" -version = "0.3.94" +version = "0.3.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e04e2ef80ce82e13552136fabeef8a5ed1f985a96805761cbb9a2c34e7664d9" +checksum = "53b44bfcdb3f8d5837a46dae1ca9660a837176eee74a28b229bc626816589102" dependencies = [ "cfg-if", "futures-util", - "once_cell", "wasm-bindgen", ] @@ -1883,17 +2076,11 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" -[[package]] -name = "leb128fmt" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" - [[package]] name = "libc" -version = "0.2.184" +version = "0.2.189" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48f5d2a454e16a5ea0f4ced81bd44e4cfc7bd3a507b61887c99fd3538b28e4af" +checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" [[package]] name = "libloading" @@ -1917,10 +2104,10 @@ version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c943259e342f1e06ff2da7a83eabdfe7f92ce10262688dbf1895ff0b3e6e4652" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "libc", "plain", - "redox_syscall 0.9.0", + "redox_syscall 0.9.1", ] [[package]] @@ -1935,9 +2122,9 @@ dependencies = [ [[package]] name = "lilt" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f67562e5eff6b20553fa9be1c503356768420994e28f67e3eafe6f41910e57ad" +checksum = "337d4c256f7d9f2dbd633891d48ace853efa5b1554122d9220b172ad9c03c3a9" dependencies = [ "web-time", ] @@ -2063,9 +2250,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.8.0" +version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" [[package]] name = "memmap2" @@ -2091,7 +2278,7 @@ version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "00c15a6f673ff72ddcc22394663290f870fb224c1bfce55734a75c414150e605" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "block", "core-graphics-types 0.2.0", "foreign-types", @@ -2102,9 +2289,9 @@ dependencies = [ [[package]] name = "mio" -version = "1.2.0" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" +checksum = "30d65c71f1ce40ab09135ce117d742b9f8a19ff91a41a8b57ed50bc2de59c427" dependencies = [ "libc", "wasi", @@ -2144,7 +2331,7 @@ checksum = "066cf25f0e8b11ee0df221219010f213ad429855f57c494f995590c861a9a7d8" dependencies = [ "arrayvec", "bit-set", - "bitflags 2.11.0", + "bitflags 2.13.1", "cfg-if", "cfg_aliases", "codespan-reporting", @@ -2168,7 +2355,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "jni-sys 0.3.1", "log", "ndk-sys", @@ -2231,7 +2418,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -2285,7 +2472,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "block2 0.5.1", "libc", "objc2 0.5.2", @@ -2301,7 +2488,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "block2 0.6.2", "libc", "objc2 0.6.4", @@ -2322,7 +2509,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "block2 0.5.1", "objc2 0.5.2", "objc2-core-location", @@ -2335,7 +2522,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73ad74d880bb43877038da939b7427bba67e9dd42004a18b809ba7d87cee241c" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "objc2 0.6.4", "objc2-foundation 0.3.2", ] @@ -2357,7 +2544,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", @@ -2369,7 +2556,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b402a653efbb5e82ce4df10683b6b28027616a2715e90009947d50b8dd298fa" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "objc2 0.6.4", "objc2-foundation 0.3.2", ] @@ -2380,7 +2567,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "dispatch2", "objc2 0.6.4", ] @@ -2391,7 +2578,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "dispatch2", "objc2 0.6.4", "objc2-core-foundation", @@ -2438,7 +2625,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0cde0dfb48d25d2b4862161a4d5fcc0e3c24367869ad306b0c9ec0073bfed92d" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "objc2 0.6.4", "objc2-core-foundation", "objc2-core-graphics", @@ -2450,7 +2637,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d425caf1df73233f29fd8a5c3e5edbc30d2d4307870f802d18f00d83dc5141a6" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "objc2 0.6.4", "objc2-core-foundation", "objc2-core-graphics", @@ -2469,7 +2656,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "block2 0.5.1", "dispatch", "libc", @@ -2482,7 +2669,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "block2 0.6.2", "libc", "objc2 0.6.4", @@ -2495,7 +2682,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "objc2 0.6.4", "objc2-core-foundation", ] @@ -2518,7 +2705,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", @@ -2530,7 +2717,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", @@ -2543,7 +2730,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "objc2 0.6.4", "objc2-core-foundation", "objc2-foundation 0.3.2", @@ -2565,7 +2752,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "block2 0.5.1", "objc2 0.5.2", "objc2-cloud-kit 0.2.2", @@ -2597,7 +2784,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "block2 0.5.1", "objc2 0.5.2", "objc2-core-location", @@ -2733,7 +2920,7 @@ checksum = "c96395f0a926bc13b1c17622aaddda1ecb55d49c8f1bf9777e4d877800a43f8b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -2787,15 +2974,15 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.13.1" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" +checksum = "3d20d5497ef88037a52ff98267d066e7f11fcc5e99bbfbd58a42336193aacec3" [[package]] name = "portable-atomic-util" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "091397be61a01d4be58e7841595bd4bfedb15f1cd54977d79b8271e94ed799a3" +checksum = "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618" dependencies = [ "portable-atomic", ] @@ -2806,16 +2993,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa" -[[package]] -name = "prettyplease" -version = "0.2.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" -dependencies = [ - "proc-macro2", - "syn 2.0.117", -] - [[package]] name = "proc-macro-crate" version = "3.5.0" @@ -2827,13 +3004,25 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.106" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" dependencies = [ "unicode-ident", ] +[[package]] +name = "proc-macro2-diagnostics" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", + "version_check", +] + [[package]] name = "profiling" version = "1.0.18" @@ -2842,18 +3031,18 @@ checksum = "3d595e54a326bc53c1c197b32d295e14b169e3cfeaa8dc82b529f947fba6bcf5" [[package]] name = "quick-xml" -version = "0.39.4" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdcc8dd4e2f670d309a5f0e83fe36dfdc05af317008fea29144da1a2ac858e5e" +checksum = "e660451e55124f798a69a5af3f49ccfbefbd41910eefd25caf2393e1f3473ec1" dependencies = [ "memchr", ] [[package]] name = "quote" -version = "1.0.45" +version = "1.0.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" dependencies = [ "proc-macro2", ] @@ -2906,7 +3095,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "046a7d674daf459825b32f5062056d6882db0d2f5a479fbd76ccfc870ac18709" dependencies = [ "bytemuck", - "font-types 0.12.1", + "font-types 0.12.2", "once_cell", ] @@ -2925,23 +3114,23 @@ version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", ] [[package]] name = "redox_syscall" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5102a6aaa05aa011a238e178e6bca86d2cb56fc9f586d37cb80f5bca6e07759" +checksum = "07507be7b4a5f9f26eeb41eeaebb1f5a7ff29dfb29739facc21d35bf8b11c21e" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", ] [[package]] name = "regex" -version = "1.12.3" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" +checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" dependencies = [ "aho-corasick", "memchr", @@ -2951,9 +3140,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.14" +version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" +checksum = "8fcfdb36bda0c880c5931cdc7a2bcdc8ba4556847b9d912bca70bc94708711ad" dependencies = [ "aho-corasick", "memchr", @@ -2962,9 +3151,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.10" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" [[package]] name = "renderdoc-sys" @@ -3005,11 +3194,11 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "errno", "libc", "linux-raw-sys 0.4.15", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -3018,7 +3207,7 @@ version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "errno", "libc", "linux-raw-sys 0.12.1", @@ -3027,9 +3216,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.22" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" +checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" [[package]] name = "same-file" @@ -3076,6 +3265,10 @@ name = "semver" version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" +dependencies = [ + "serde", + "serde_core", +] [[package]] name = "serde" @@ -3122,13 +3315,13 @@ dependencies = [ [[package]] name = "serde_repr" -version = "0.1.20" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" +checksum = "8d3b1629de253c70a0508c3899572da79ca359fdab27c7920ff00406df418906" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 3.0.3", ] [[package]] @@ -3209,9 +3402,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.15.1" +version = "1.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" +checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90" [[package]] name = "smithay-client-toolkit" @@ -3219,7 +3412,7 @@ version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "calloop 0.13.0", "calloop-wayland-source 0.3.0", "cursor-icon", @@ -3244,7 +3437,7 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0512da38f5e2b31201a93524adb8d3136276fa4fe4aafab4e1f727a82b534cc0" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "calloop 0.14.4", "calloop-wayland-source 0.4.1", "cursor-icon", @@ -3287,9 +3480,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.6.3" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" +checksum = "c3d1e2c7f27f8d4cb10542a02c49005dbd6e93095799d6f3be745fae9f8fedd4" dependencies = [ "libc", "windows-sys 0.61.2", @@ -3329,7 +3522,7 @@ version = "0.3.0+sdk-1.3.268.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", ] [[package]] @@ -3368,7 +3561,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -3390,9 +3583,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.117" +version = "2.0.119" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" dependencies = [ "proc-macro2", "quote", @@ -3432,7 +3625,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [ "fastrand", - "getrandom 0.4.2", + "getrandom 0.4.3", "once_cell", "rustix 1.1.4", "windows-sys 0.61.2", @@ -3473,7 +3666,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -3547,13 +3740,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.7.0" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" +checksum = "78773a2a397f451582ce068015985c33193cf6dea8b74d2a639fe457b2f07b0e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 3.0.3", ] [[package]] @@ -3569,9 +3762,9 @@ dependencies = [ [[package]] name = "toml" -version = "1.1.3+spec-1.1.0" +version = "1.1.4+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53c96ecdfa941c8fc4fcaed14f99ada8ebed502eef533015095a07e3301d4c3c" +checksum = "3aace63f4bbcdfc2c965b059de67119c89c4017a70d633be6c104910f67056f5" dependencies = [ "indexmap", "serde_core", @@ -3593,9 +3786,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.25.10+spec-1.1.0" +version = "0.25.13+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a82418ca169e235e6c399a84e395ab6debeb3bc90edc959bf0f48647c6a32d1b" +checksum = "6975367e4d2ef766d86af01ffad14b622fecc8d4357a998fbc4deb6e9bacaf9b" dependencies = [ "indexmap", "toml_datetime", @@ -3605,9 +3798,9 @@ dependencies = [ [[package]] name = "toml_parser" -version = "1.1.2+spec-1.1.0" +version = "1.1.3+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" +checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56" dependencies = [ "winnow", ] @@ -3638,7 +3831,7 @@ checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -3724,12 +3917,6 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" -[[package]] -name = "unicode-xid" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" - [[package]] name = "utf8parse" version = "0.2.2" @@ -3738,9 +3925,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.23.0" +version = "1.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ac8b6f42ead25368cf5b098aeb3dc8a1a2c05a3eee8a9a1a68c640edbfc79d9" +checksum = "bf3923a6f5c4c6382e0b653c4117f48d631ea17f38ed86e2a828e6f7412f5239" dependencies = [ "js-sys", "serde_core", @@ -3771,27 +3958,18 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasip2" -version = "1.0.2+wasi-0.2.9" +version = "1.0.4+wasi-0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" -dependencies = [ - "wit-bindgen", -] - -[[package]] -name = "wasip3" -version = "0.4.0+wasi-0.3.0-rc-2026-01-06" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" +checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" dependencies = [ "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.117" +version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0551fc1bb415591e3372d0bc4780db7e587d84e2a7e79da121051c5c4b89d0b0" +checksum = "4b067c0c11094aef6b7a801c1e34a26affafdf3d051dba08456b868789aaf9a4" dependencies = [ "cfg-if", "once_cell", @@ -3802,9 +3980,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.67" +version = "0.4.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03623de6905b7206edd0a75f69f747f134b7f0a2323392d664448bf2d3c5d87e" +checksum = "c62df1340f32221cb9c54d6a27b030e3dba64361d4a95bed55f9aacb44da291d" dependencies = [ "js-sys", "wasm-bindgen", @@ -3812,9 +3990,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.117" +version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fbdf9a35adf44786aecd5ff89b4563a90325f9da0923236f6104e603c7e86be" +checksum = "167ce5e579f6bcf889c4f7175a8a5a585de84e8ff93976ce393efa5f2837aab1" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3822,60 +4000,26 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.117" +version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dca9693ef2bab6d4e6707234500350d8dad079eb508dca05530c85dc3a529ff2" +checksum = "f3997c7839262f4ef12cf90b818d6340c18e80f263f1a94bf157d0ec4420380e" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.117" +version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39129a682a6d2d841b6c429d0c51e5cb0ed1a03829d8b3d1e69a011e62cb3d3b" +checksum = "dc1b4cb0cc549fcf58d7dfc081778139b3d283a081644e833e84682ad71cea24" dependencies = [ "unicode-ident", ] -[[package]] -name = "wasm-encoder" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" -dependencies = [ - "leb128fmt", - "wasmparser", -] - -[[package]] -name = "wasm-metadata" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" -dependencies = [ - "anyhow", - "indexmap", - "wasm-encoder", - "wasmparser", -] - -[[package]] -name = "wasmparser" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" -dependencies = [ - "bitflags 2.11.0", - "hashbrown 0.15.5", - "indexmap", - "semver", -] - [[package]] name = "wasmtimer" version = "0.4.3" @@ -3892,9 +4036,9 @@ dependencies = [ [[package]] name = "wayland-backend" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2857dd20b54e916ec7253b3d6b4d5c4d7d4ca2c33c2e11c6c76a99bd8744755d" +checksum = "016ccf01d1c58b6f8999612813e17c9b2390f7d70671428869913310f83f54b8" dependencies = [ "cc", "downcast-rs", @@ -3906,11 +4050,11 @@ dependencies = [ [[package]] name = "wayland-client" -version = "0.31.14" +version = "0.31.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c7c96bb74690c3189b5c9cb4ca1627062bb23693a4fad9d8c3de958260144" +checksum = "e3c36a0f861ad76d0901f2800b46321410d9f73f2ea88aac0650d86c32688073" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "rustix 1.1.4", "wayland-backend", "wayland-scanner", @@ -3922,7 +4066,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "cursor-icon", "wayland-backend", ] @@ -3944,7 +4088,7 @@ version = "0.32.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23d0c813de3daa2ed6520af85a3bd49b0e722a3078506899aa9686fea58dc4b6" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "wayland-backend", "wayland-client", "wayland-scanner", @@ -3956,7 +4100,7 @@ version = "20250721.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40a1f863128dcaaec790d7b4b396cc9b9a7a079e878e18c47e6c2d2c5a8dcbb1" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "wayland-backend", "wayland-client", "wayland-protocols", @@ -3969,7 +4113,7 @@ version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e9567599ef23e09b8dad6e429e5738d4509dfc46b3b21f32841a304d16b29c8" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "wayland-backend", "wayland-client", "wayland-protocols", @@ -3982,7 +4126,7 @@ version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b6d8cf1eb2c1c31ed1f5643c88a6e53538129d4af80030c8cabd1f9fa884d91" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "wayland-backend", "wayland-client", "wayland-protocols", @@ -3995,7 +4139,7 @@ version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb04e52f7836d7c7976c78ca0250d61e33873c34156a2a1fc9474828ec268234" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "wayland-backend", "wayland-client", "wayland-protocols", @@ -4004,9 +4148,9 @@ dependencies = [ [[package]] name = "wayland-scanner" -version = "0.31.10" +version = "0.31.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c324a910fd86ebdc364a3e61ec1f11737d3b1d6c273c0239ee8ff4bc0d24b4a" +checksum = "338e30461b3a2b67d70eb30a6d89f8e0c93a833e07d2ae89085cd070c4a00ac0" dependencies = [ "proc-macro2", "quick-xml", @@ -4027,9 +4171,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.94" +version = "0.3.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd70027e39b12f0849461e08ffc50b9cd7688d942c1c8e3c7b22273236b4dd0a" +checksum = "8622dcb61c0bcc9fffa6938bed81210af2da9a7e4a1a834b2e37a59b6dfb6141" dependencies = [ "js-sys", "wasm-bindgen", @@ -4052,7 +4196,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfe68bac7cde125de7a731c3400723cadaaf1703795ad3f4805f187459cd7a77" dependencies = [ "arrayvec", - "bitflags 2.11.0", + "bitflags 2.13.1", "cfg-if", "cfg_aliases", "document-features", @@ -4083,7 +4227,7 @@ dependencies = [ "arrayvec", "bit-set", "bit-vec", - "bitflags 2.11.0", + "bitflags 2.13.1", "bytemuck", "cfg_aliases", "document-features", @@ -4143,7 +4287,7 @@ dependencies = [ "arrayvec", "ash", "bit-set", - "bitflags 2.11.0", + "bitflags 2.13.1", "block", "bytemuck", "cfg-if", @@ -4188,7 +4332,7 @@ version = "27.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "afdcf84c395990db737f2dd91628706cb31e86d72e53482320d368e52b5da5eb" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "bytemuck", "js-sys", "log", @@ -4196,6 +4340,15 @@ dependencies = [ "web-sys", ] +[[package]] +name = "which" +version = "8.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f3ef584124b911bcc3875c2f1472e80f24361ceb789bd1c62b3e9a3df9ff43c" +dependencies = [ + "libc", +] + [[package]] name = "winapi" version = "0.3.9" @@ -4316,7 +4469,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -4327,7 +4480,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -4338,7 +4491,7 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -4349,7 +4502,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] @@ -4423,6 +4576,15 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + [[package]] name = "windows-sys" version = "0.61.2" @@ -4571,7 +4733,7 @@ dependencies = [ "ahash", "android-activity", "atomic-waker", - "bitflags 2.11.0", + "bitflags 2.13.1", "block2 0.5.1", "calloop 0.13.0", "cfg_aliases", @@ -4612,106 +4774,24 @@ dependencies = [ [[package]] name = "winnow" -version = "1.0.1" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09dac053f1cd375980747450bfc7250c264eaae0583872e845c0c7cd578872b5" +checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" dependencies = [ "memchr", ] [[package]] name = "wit-bindgen" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" -dependencies = [ - "wit-bindgen-rust-macro", -] - -[[package]] -name = "wit-bindgen-core" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" -dependencies = [ - "anyhow", - "heck", - "wit-parser", -] - -[[package]] -name = "wit-bindgen-rust" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" -dependencies = [ - "anyhow", - "heck", - "indexmap", - "prettyplease", - "syn 2.0.117", - "wasm-metadata", - "wit-bindgen-core", - "wit-component", -] - -[[package]] -name = "wit-bindgen-rust-macro" -version = "0.51.0" +version = "0.57.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" -dependencies = [ - "anyhow", - "prettyplease", - "proc-macro2", - "quote", - "syn 2.0.117", - "wit-bindgen-core", - "wit-bindgen-rust", -] - -[[package]] -name = "wit-component" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" -dependencies = [ - "anyhow", - "bitflags 2.11.0", - "indexmap", - "log", - "serde", - "serde_derive", - "serde_json", - "wasm-encoder", - "wasm-metadata", - "wasmparser", - "wit-parser", -] - -[[package]] -name = "wit-parser" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" -dependencies = [ - "anyhow", - "id-arena", - "indexmap", - "log", - "semver", - "serde", - "serde_derive", - "serde_json", - "unicode-xid", - "wasmparser", -] +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" [[package]] name = "xcursor" -version = "0.3.10" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec9e4a500ca8864c5b47b8b482a73d62e4237670e5b5f1d6b9e3cae50f28f2b" +checksum = "163b33ed8786455e2fa5d72f554057ce3f3182425434f756cd39c99839d88e23" [[package]] name = "xdg" @@ -4725,7 +4805,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.13.1", "dlib", "log", "once_cell", @@ -4795,7 +4875,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", "zbus_names", "zvariant", "zvariant_utils", @@ -4820,29 +4900,29 @@ checksum = "6df3dc4292935e51816d896edcd52aa30bc297907c26167fec31e2b0c6a32524" [[package]] name = "zerocopy" -version = "0.8.54" +version = "0.8.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7cbbc0a705a0fd05cc3676525980d2bf5a9bc4adac6d6475209a7887cf59d19" +checksum = "b5a105cd7b140f6eeec8acff2ea38135d3cab283ada58540f629fe51e46696eb" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.54" +version = "0.8.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e817b7b52d0c7358d3246da9d69935ebb18116b2b102b4230dac079b4862f5" +checksum = "0fe976fb70c78cd64cccfe3a6fc142244e8a77b70959b30faf9d0ac37ee228eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", ] [[package]] name = "zmij" -version = "1.0.21" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" [[package]] name = "zvariant" @@ -4867,7 +4947,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.119", "zvariant_utils", ] @@ -4880,6 +4960,6 @@ dependencies = [ "proc-macro2", "quote", "serde", - "syn 2.0.117", + "syn 2.0.119", "winnow", ] diff --git a/Cargo.toml b/Cargo.toml index 367eda8a..e138b7e6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,6 +4,14 @@ members = [ "crates/cardwire-daemon", "crates/cardwire-cli", "crates/cardwire-ebpf", + "crates/cardwire-ebpf-userspace", + "crates/cardwire-gui", +] + +default-members = [ + "crates/cardwire-daemon", + "crates/cardwire-cli", + "crates/cardwire-ebpf-userspace", "crates/cardwire-gui", ] @@ -26,7 +34,17 @@ clap_complete = "4.6.5" anyhow = "1.0.102" env_logger = "0.11" toml = "1.0.3" + +# EBPF aya = "0.14.0" +aya-build = "0.2.0" +aya-log = "0.3.0" +aya-ebpf = "0.2.1" +aya-log-ebpf = "0.2.0" +which = "8.0.5" +cargo_metadata = "0.23.1" + + serde_json = "1.0.150" tokio-stream = "0.1.18" xdg = "3.0.0" diff --git a/crates/cardwire-daemon/Cargo.toml b/crates/cardwire-daemon/Cargo.toml index c0e0e8be..cd1084e5 100644 --- a/crates/cardwire-daemon/Cargo.toml +++ b/crates/cardwire-daemon/Cargo.toml @@ -9,7 +9,7 @@ license.workspace = true description = "Daemon for cardwire GPU management" [dependencies] -cardwire-ebpf = { path = "../cardwire-ebpf" } +cardwire-ebpf-userspace = { path = "../cardwire-ebpf-userspace" } tokio.workspace = true zbus.workspace = true serde.workspace = true @@ -24,6 +24,8 @@ aya.workspace = true xdg.workspace = true freedesktop-desktop-entry.workspace = true udev.workspace = true +aya-log.workspace = true + [[bin]] name = "cardwired" diff --git a/crates/cardwire-daemon/src/analyzer/dynamic_analysis.rs b/crates/cardwire-daemon/src/analyzer/dynamic_analysis.rs index 4fc3c8b3..1ff25027 100644 --- a/crates/cardwire-daemon/src/analyzer/dynamic_analysis.rs +++ b/crates/cardwire-daemon/src/analyzer/dynamic_analysis.rs @@ -92,28 +92,25 @@ pub fn check_for_flatpak_run(cmdline: &str, xdg_list: &HashMap) -> false } -pub fn check_env(env_var: &str, environ: &[u8]) -> Option { - let env_var = format!("{}=", env_var); - let env_var_len = env_var.len(); +pub fn check_env(env_var: &str, environ: &[u8]) -> Option { + let prefix = format!("{}=", env_var); + let prefix_bytes = prefix.as_bytes(); for var in environ.split(|&b| b == 0) { - if var.starts_with(env_var.as_bytes()) { - if var.get(env_var_len) == Some(&b'1') { - return Some(true); // CARDWIRE_FORCE_DGPU=1 - } else { - return Some(false); // CARDWIRE_FORCE_DGPU=0 - } + if let Some(value_bytes) = var.strip_prefix(prefix_bytes) { + let value_str = std::str::from_utf8(value_bytes).ok()?; + return value_str.parse::().ok(); } } - // Not present + None } pub fn check_gpu_env(environ: &[u8]) -> bool { if let Some(val) = check_env("DRI_PRIME", environ) { - return val; + return val == 1; } else if let Some(val) = check_env("__NV_PRIME_RENDER_OFFLOAD", environ) { - return val; + return val == 1; } // Not present false @@ -312,19 +309,19 @@ mod tests { #[test] fn test_check_env_returns_true_for_allow_1() { let environ = b"HOME=/home\0CARDWIRE_ALLOW=1\0DISPLAY=:0"; - assert_eq!(check_env("CARDWIRE_ALLOW", environ), Some(true)); + assert_eq!(check_env("CARDWIRE_ALLOW", environ), Some(1)); } #[test] fn test_check_env_returns_true_for_allow_1_dgpu() { let environ = b"HOME=/home\0CARDWIRE_FORCE_DGPU=1\0DISPLAY=:0"; - assert_eq!(check_env("CARDWIRE_FORCE_DGPU", environ), Some(true)); + assert_eq!(check_env("CARDWIRE_FORCE_DGPU", environ), Some(1)); } #[test] fn test_check_env_returns_false_for_allow_0() { let environ = b"HOME=/home\0CARDWIRE_ALLOW=0\0DISPLAY=:0"; - assert_eq!(check_env("CARDWIRE_ALLOW", environ), Some(false)); + assert_eq!(check_env("CARDWIRE_ALLOW", environ), Some(0)); } #[test] @@ -339,10 +336,10 @@ mod tests { } #[test] - fn test_check_env_returns_false_for_unexpected_value() { + fn test_check_env_returns_none_for_unexpected_value() { // "CARDWIRE_ALLOW=x" — value at index 15 is 'x', not '1' let environ = b"CARDWIRE_ALLOW=x"; - assert_eq!(check_env("CARDWIRE_ALLOW", environ), Some(false)); + assert_eq!(check_env("CARDWIRE_ALLOW", environ), None); } /* diff --git a/crates/cardwire-daemon/src/analyzer/models.rs b/crates/cardwire-daemon/src/analyzer/models.rs index 32d8811f..be35e433 100644 --- a/crates/cardwire-daemon/src/analyzer/models.rs +++ b/crates/cardwire-daemon/src/analyzer/models.rs @@ -1,6 +1,7 @@ use aya::maps::{HashMap as AyaHashMap, RingBuf}; -use cardwire_ebpf::EbpfBlocker; -use log::{debug, info, warn}; +use aya_log::EbpfLogger; +use cardwire_ebpf_userspace::EbpfBlocker; +use log::{Log, debug, error, info, warn}; use std::{collections::HashMap, fs, path::PathBuf, ptr, sync::Arc}; use tokio::{ io::{Interest, unix::AsyncFd}, sync::{Mutex, RwLock}, task, time::Instant @@ -23,11 +24,16 @@ pub struct CloseEvent { pub pid: u32, } +#[derive(Debug, Copy, Clone)] +enum PidType { + Allowed, + Forced, +} + #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ReportEvent { pub pid: u32, - pub comm: [u8; 16], } #[derive(Clone)] @@ -35,7 +41,9 @@ pub struct CardwireAnalyzer { exec_ring: Arc>>>, close_ring: Arc>>>, report_ring: Arc>>>, - pid_map: Arc>>, + pid_map: Arc>>, + forced_map: Arc>>, + ebpf_logger: Arc>>>, xdg_list: Arc>>, #[allow(dead_code)] xdg_folders: Vec, @@ -48,6 +56,8 @@ impl CardwireAnalyzer { let close_ring = blocker.get_close_ring()?; let report_ring = blocker.get_report_ring()?; let pid_map = blocker.get_pid_map()?; + let forced_map = blocker.get_forced_pid_map()?; + let ebpf_logger = blocker.get_ebpf_logger()?; let exec_ring = AsyncFd::new(exec_ring)?; let close_ring = AsyncFd::new(close_ring)?; @@ -56,8 +66,12 @@ impl CardwireAnalyzer { // Now Rwlock -> Arc let exec_ring = Arc::new(Mutex::new(exec_ring)); let pid_map = Arc::new(RwLock::new(pid_map)); + let forced_map = Arc::new(RwLock::new(forced_map)); let close_ring = Arc::new(Mutex::new(close_ring)); let report_ring = Arc::new(Mutex::new(report_ring)); + let ebpf_logger: Arc>>> = + Arc::new(Mutex::new(ebpf_logger)); + let xdg_result = static_analysis::get_fdo_apps().await?; let xdg_list = Arc::new(RwLock::new(xdg_result.0)); let xdg_folders: Vec = xdg_result.1; @@ -66,6 +80,8 @@ impl CardwireAnalyzer { close_ring, report_ring, pid_map, + forced_map, + ebpf_logger, xdg_list, xdg_folders, }) @@ -75,6 +91,7 @@ impl CardwireAnalyzer { let exec_arc = self.exec_ring.clone(); let close_arc = self.close_ring.clone(); let report_arc = self.report_ring.clone(); + let logger_arc = self.ebpf_logger.clone(); // Lock the buffers once let mut exec_ring = exec_arc.lock().await; let mut close_ring = close_arc.lock().await; @@ -84,6 +101,23 @@ impl CardwireAnalyzer { let mut previous_reported_pid = 0; let shared_self = Arc::new(self); + + // spawn the logger in it's own thread + task::spawn(async move { + let mut ebpf_logger = logger_arc.lock().await; + loop { + let mut guard = match ebpf_logger.readable_mut().await { + Ok(guard) => guard, + Err(err) => { + error!("failed to get logger guard: {}", err); + return; + } + }; + guard.get_inner_mut().flush(); + guard.clear_ready(); + } + }); + loop { tokio::select! { Ok(mut guard) = exec_ring.ready_mut(Interest::READABLE) => { @@ -132,7 +166,7 @@ impl CardwireAnalyzer { task::spawn(async move { if let Some(app_id) = get_app_id_wayland(event.pid).await { // use dGPU term instead of GPU, smart mode is only avaible on hybrid setups - info!("{}[{}] tried to access the dGPU (blocked by cardwire)", &app_id, event.pid); + info!("{}[{}] tried to access the dGPU (blocked by cardwire)", app_id, event.pid); } }); } @@ -158,18 +192,25 @@ impl CardwireAnalyzer { && result.0 { match result.1 { - 0 => info!("FORCE: pid: {} process: {} ", event.pid, &real_app_name), - 1 => info!( - "ALLOW: pid: {} process: {} in {}us", - event.pid, - &real_app_name, - time.elapsed().as_micros() - ), - _ => {} - } - let mut pid_map = self.pid_map.write().await; - if let Err(e) = pid_map.insert(event.pid, result.1, 0) { - warn!("Failed to insert into eBPF map: {}", e); + PidType::Forced => { + info!("FORCE: pid: {} process: {} ", event.pid, real_app_name); + let mut forced_map = self.forced_map.write().await; + if let Err(e) = forced_map.insert(event.pid, result.2, 0) { + warn!("Failed to insert into eBPF map: {}", e); + } + } + PidType::Allowed => { + info!( + "ALLOW: pid: {} process: {} in {}us", + event.pid, + real_app_name, + time.elapsed().as_micros() + ); + let mut pid_map = self.pid_map.write().await; + if let Err(e) = pid_map.insert(event.pid, result.1 as u32, 0) { + warn!("Failed to insert into eBPF map: {}", e); + } + } } } } @@ -178,24 +219,30 @@ impl CardwireAnalyzer { if pid_map.remove(&event.pid).is_ok() { debug!("REMOVE: pid: {}", event.pid); } + let mut forced_map = self.forced_map.write().await; + if forced_map.remove(&event.pid).is_ok() { + debug!("REMOVE FORCED: pid: {}", event.pid); + } } /// Default app are blocked, try to find if it's a game or a gpu intensive app, the u8 is the /// gpu id - async fn evaluate_app(&self, pid: u32, comm: &str) -> Option<(bool, u8)> { + async fn evaluate_app(&self, pid: u32, comm: &str) -> Option<(bool, PidType, u32)> { let path = format!("/proc/{}/environ", pid); let environ = match fs::read(path) { Ok(content) => content, Err(_) => return None, }; - // First check CARDWIRE_ALLOW, if None continue + // First check CARDWIRE_ALLOW, if None continue if let Some(allow) = check_env("CARDWIRE_ALLOW", &environ) { - return Some((allow, 1)); + return Some((allow == 1, PidType::Allowed, 0)); } if let Some(value) = check_env("CARDWIRE_FORCE_DGPU", &environ) { - return Some((value, 0)); + return Some((value == 1, PidType::Forced, value)); + } + if let Some(value) = check_env("CARDWIRE_FORCE_GPU", &environ) { + return Some((true, PidType::Forced, value)); } - let switcheroo_support = desktop_supports_switcheroo(&environ); let xdg_list = self.xdg_list.read().await; @@ -212,7 +259,7 @@ impl CardwireAnalyzer { }; result = check_for_flatpak_run(&cmdline, &xdg_list); } - Some((result, 1)) + Some((result, PidType::Allowed, 0)) } #[allow(dead_code)] @@ -413,42 +460,29 @@ mod tests { #[test] fn test_report_event_deserialization_from_valid_bytes() { - // ReportEvent: pid (4 bytes) + comm (16 bytes) = 20 bytes - let mut item: Vec = vec![ + // ReportEvent: pid (4 bytes) + let item: Vec = vec![ 0x39, 0x05, 0x00, 0x00, // pid = 1337 ]; - // comm = "steam\0\0\0\0\0\0\0\0\0\0\0" (16 bytes, null-padded) - item.extend_from_slice(b"steam\0\0\0\0\0\0\0\0\0\0\0"); - assert_eq!(item.len(), 20); + assert_eq!(item.len(), 4); assert!(item.len() >= std::mem::size_of::()); let event = unsafe { ptr::read_unaligned(item.as_ptr() as *const ReportEvent) }; assert_eq!(event.pid, 1337); - // Verify the comm field contains "steam" - let comm_str = std::str::from_utf8(&event.comm) - .unwrap() - .trim_end_matches('\0'); - assert_eq!(comm_str, "steam"); } #[test] fn test_report_event_deserialization_rejects_undersized_buffer() { - // ReportEvent needs 20 bytes, give only 19 - let item: Vec = vec![0u8; 19]; + // ReportEvent needs 4 bytes, give only 3 + let item: Vec = vec![0u8; 3]; assert!(item.len() < std::mem::size_of::()); } #[test] - fn test_report_event_comm_extraction_with_full_length_name() { - // comm is exactly 15 chars + null terminator (16 bytes total) - let mut item: Vec = vec![ + fn test_report_event_deserialization_pid_extraction() { + let item: Vec = vec![ 0x01, 0x00, 0x00, 0x00, // pid = 1 ]; - item.extend_from_slice(b"123456789012345\0"); // 15 chars + null = 16 bytes let event = unsafe { ptr::read_unaligned(item.as_ptr() as *const ReportEvent) }; assert_eq!(event.pid, 1); - let comm_str = std::str::from_utf8(&event.comm) - .unwrap() - .trim_end_matches('\0'); - assert_eq!(comm_str, "123456789012345"); } } diff --git a/crates/cardwire-daemon/src/core/errors.rs b/crates/cardwire-daemon/src/core/errors.rs index 00c1ddae..a217582e 100644 --- a/crates/cardwire-daemon/src/core/errors.rs +++ b/crates/cardwire-daemon/src/core/errors.rs @@ -7,7 +7,7 @@ pub enum Error { Io(#[from] io::Error), #[error("ebpf error: {0}")] - CardwireEbpfError(#[from] cardwire_ebpf::CardwireEbpfError), + CardwireEbpfError(#[from] cardwire_ebpf_userspace::CardwireEbpfError), #[error("parse int error: {0}")] ParseInt(#[from] std::num::ParseIntError), diff --git a/crates/cardwire-daemon/src/interface/config.rs b/crates/cardwire-daemon/src/interface/config.rs index 39a51c13..ab1336ce 100644 --- a/crates/cardwire-daemon/src/interface/config.rs +++ b/crates/cardwire-daemon/src/interface/config.rs @@ -5,7 +5,7 @@ use std::{ }; use crate::{file::CardwireConfig, interface::Modes}; -use cardwire_ebpf::{EbpfBlocker, EbpfSettings}; +use cardwire_ebpf_userspace::{EbpfBlocker, EbpfSettings}; use log::warn; use tokio::sync::RwLock; use zbus::{fdo, interface}; diff --git a/crates/cardwire-daemon/src/interface/debug.rs b/crates/cardwire-daemon/src/interface/debug.rs index df0bfb9a..4ce4837c 100644 --- a/crates/cardwire-daemon/src/interface/debug.rs +++ b/crates/cardwire-daemon/src/interface/debug.rs @@ -3,7 +3,7 @@ use crate::{ gpu::{self, check_default_drm_class}, pci::{self, DbusPciDevice, PciDevice} }, tasks::watch_power_state }; -use cardwire_ebpf::EbpfBlocker; +use cardwire_ebpf_userspace::EbpfBlocker; use log::{info, warn}; use std::{collections::BTreeMap, sync::Arc}; use tokio::{sync::RwLock, task}; @@ -95,7 +95,7 @@ impl DebugInterface { let mut power_tasks = self.power_tasks.write().await; // get rid of the old gpu api and the old tasks - for (id, _) in gpu_interfaces.iter() { + for id in gpu_interfaces.keys() { let path = format!("/com/github/opengamingcollective/cardwire/Gpu/{}", id); let _ = object_server.remove::(&path).await; // if task is present, abort @@ -111,6 +111,7 @@ impl DebugInterface { gpu::read_gpu(&new_pci_list).map_err(|err| fdo::Error::Failed(err.to_string()))?; for (id, device) in new_gpu_list { let gpu = GpuInterface::build( + id as u32, device, Arc::clone(&self.blocker), Arc::clone(&self.pci_list), @@ -146,7 +147,7 @@ impl DebugInterface { "GPU {} should be blocked, re-applying block on hotplug", gpu.device.name() ); - if let Err(e) = gpu.block_gpu(1).await { + if let Err(e) = gpu.block_gpu(gpu.id).await { warn!( "failed to automatically re-block {}: {}", gpu.device.name(), diff --git a/crates/cardwire-daemon/src/interface/gpu.rs b/crates/cardwire-daemon/src/interface/gpu.rs index 9cf7dbed..dda30943 100644 --- a/crates/cardwire-daemon/src/interface/gpu.rs +++ b/crates/cardwire-daemon/src/interface/gpu.rs @@ -11,7 +11,7 @@ use crate::{ }, pci::PciDevice }, file::{CardwireGpuState, CardwireModeState}, interface::Modes }; -use cardwire_ebpf::EbpfBlocker; +use cardwire_ebpf_userspace::EbpfBlocker; use log::{error, info, warn}; use tokio::sync::RwLock; use zbus::{fdo, interface, object_server::SignalEmitter}; @@ -29,6 +29,7 @@ impl FdoResultExt for Result { // Represent a single gpu #[derive(Clone)] pub struct GpuInterface { + pub id: u32, pub device: GpuDevice, blocker: Arc>, pci_list: Arc>>, @@ -38,6 +39,7 @@ pub struct GpuInterface { impl GpuInterface { pub fn build( + id: u32, device: GpuDevice, blocker: Arc>, pci_list: Arc>>, @@ -45,6 +47,7 @@ impl GpuInterface { mode_state: Arc>, ) -> anyhow::Result { Ok(Self { + id, device, blocker, pci_list, @@ -55,8 +58,8 @@ impl GpuInterface { } impl GpuInterface { - /// block the gpu, 1 = dGPU, 0 = iGPU - pub async fn block_gpu(&mut self, value: u8) -> fdo::Result<()> { + /// block the gpu, value = gpu key + pub async fn block_gpu(&mut self, value: u32) -> fdo::Result<()> { let mut blocker = self.blocker.write().await; let pci_list = self.pci_list.read().await; // First block the card id @@ -190,23 +193,25 @@ impl GpuInterface { pub async fn gpu_blocked(&self) -> fdo::Result { let blocker = self.blocker.read().await; + let gpu_id = self.id; + let card = match card_to_inode(*self.device.card()) { - Ok(inode) => blocker.is_inode_blocked(inode).into_fdo()?, + Ok(inode) => blocker.is_inode_blocked(inode, gpu_id).into_fdo()?, Err(err) => return Err(err).into_fdo(), }; let render = match render_to_inode(*self.device.render()) { - Ok(inode) => blocker.is_inode_blocked(inode).into_fdo()?, + Ok(inode) => blocker.is_inode_blocked(inode, gpu_id).into_fdo()?, Err(err) => return Err(err).into_fdo(), }; let pci = match single_pci_to_inode(self.device.pci.pci_address()) { - Ok(inode) => blocker.is_inode_blocked(inode).into_fdo()?, + Ok(inode) => blocker.is_inode_blocked(inode, gpu_id).into_fdo()?, Err(err) => return Err(err).into_fdo(), }; let nvidia = match self.device.nvidia_minor() { // GPU is nvidia Some(minor) => { if let Ok(inode) = nvidia_to_inode(*minor) { - blocker.is_inode_blocked(inode).into_fdo()? + blocker.is_inode_blocked(inode, gpu_id).into_fdo()? } else { false } @@ -291,7 +296,7 @@ impl GpuInterface { ))); } // Now block - self.block_gpu(1).await?; + self.block_gpu(self.id).await?; info!("Set GPU {} block={}", self.device.name(), block); // save new state to file let mut gpu_state = self.gpu_state.write().await; diff --git a/crates/cardwire-daemon/src/interface/mode.rs b/crates/cardwire-daemon/src/interface/mode.rs index fec164e4..5353bb7d 100644 --- a/crates/cardwire-daemon/src/interface/mode.rs +++ b/crates/cardwire-daemon/src/interface/mode.rs @@ -3,8 +3,8 @@ use crate::{ file::{CardwireGpuState, CardwireModeState}, interface::{GpuInterface, config::ConfigMemory} }; use anyhow::Result; -use aya::maps::HashMap as AyaHashMap; -use cardwire_ebpf::EbpfBlocker; +use aya::maps::Array as AyaArray; +use cardwire_ebpf_userspace::EbpfBlocker; use log::{error, info, warn}; use serde::{Deserialize, Serialize}; use std::{collections::BTreeMap, fmt, process::Stdio, sync::Arc}; @@ -67,7 +67,7 @@ pub struct ModeInterface { gpu_state: Arc>, gpu_list: Arc>>, config: Arc, - mode_map: Arc>>, + mode_map: Arc>>, } impl ModeInterface { @@ -79,7 +79,7 @@ impl ModeInterface { blocker: Arc>, ) -> Result { let mut blocker = blocker.write().await; - let mode_map: aya::maps::HashMap = blocker.get_mode_map()?; + let mode_map: aya::maps::Array = blocker.get_mode_map()?; let mode_map = Arc::new(Mutex::new(mode_map)); Ok(ModeInterface { mode_state, @@ -95,7 +95,7 @@ impl ModeInterface { let mut mode_map = self.mode_map.lock().await; let mode: u32 = Modes::into(mode); mode_map - .insert(0, mode as u8, 0) + .set(0, mode as u8, 0) .map_err(|err| fdo::Error::Failed(err.to_string())) } @@ -169,17 +169,17 @@ impl ModeInterface { return Err(fdo::Error::NotSupported(error_message.to_string())); } // Loop to find the non default gpu and block it, - for gpu in gpu_list.values_mut() { + for (id, gpu) in gpu_list.iter_mut() { if !gpu.device.is_default() { if mode == Modes::Integrated || mode == Modes::Smart { // Here we block the dGPU - gpu.block_gpu(1).await?; + gpu.block_gpu(*id as u32).await?; } else { gpu.unblock_gpu().await?; } - } else if mode == Modes::Smart { + } else if mode == Modes::Smart && gpu.device.is_default() { // push default gpu (iGPU) into the blocked inode map for tracking only - gpu.block_gpu(0).await?; + gpu.block_gpu(*id as u32).await?; } else { // clear gpu.unblock_gpu().await?; @@ -195,7 +195,7 @@ impl ModeInterface { .auto_apply_gpu_state .load(std::sync::atomic::Ordering::Relaxed); let gpu_state = self.gpu_state.read().await; - for (_, gpu) in gpu_list.iter_mut() { + for (id, gpu) in gpu_list.iter_mut() { if gpu_state.gpu_block_state(gpu.device.pci().pci_address()) && config { if gpu.device.is_default() { // For safety, warn and unblock if default @@ -206,7 +206,7 @@ impl ModeInterface { gpu.unblock_gpu().await?; } else { info!("blocking: {} ", gpu.device.pci().pci_address()); - gpu.block_gpu(1).await?; + gpu.block_gpu(*id as u32).await?; } } else { gpu.unblock_gpu().await?; diff --git a/crates/cardwire-daemon/src/interface/switcheroo.rs b/crates/cardwire-daemon/src/interface/switcheroo.rs index d265f4b5..1a0de9bd 100644 --- a/crates/cardwire-daemon/src/interface/switcheroo.rs +++ b/crates/cardwire-daemon/src/interface/switcheroo.rs @@ -37,7 +37,7 @@ impl SwitcherooInterface { pub async fn gpus(&self) -> Vec> { let mut vec: Vec> = Vec::new(); let gpu_list = self.gpu_list.read().await; - for (_, gpu) in gpu_list.iter() { + for gpu in gpu_list.values() { let mut dict = HashMap::new(); // The name (s) diff --git a/crates/cardwire-daemon/src/models.rs b/crates/cardwire-daemon/src/models.rs index bc59e64a..1cf055f6 100644 --- a/crates/cardwire-daemon/src/models.rs +++ b/crates/cardwire-daemon/src/models.rs @@ -7,7 +7,7 @@ use crate::{ }, tasks }; use anyhow::{Context, Result}; -use cardwire_ebpf::{EbpfBlocker, EbpfSettings}; +use cardwire_ebpf_userspace::{EbpfBlocker, EbpfSettings}; use log::error; use std::{collections::BTreeMap, sync::Arc}; use tokio::{sync::RwLock, task}; @@ -64,6 +64,7 @@ impl DaemonManager { for (id, device) in gpu_list { let gpu = GpuInterface::build( + id as u32, device, Arc::clone(&blocker), Arc::clone(&pci_list), @@ -179,13 +180,13 @@ impl DaemonManager { let gpus_list = self.inner.gpu_list.read().await; let mut blocker = self.inner.blocker.write().await; // Only block if the device has a Nvidia gpu - for (_, gpu) in gpus_list.iter() { + for (id, gpu) in gpus_list.iter() { if gpu.device.gpu_vendor() == GpuVendor::Nvidia && let Ok(inodes) = exp_nvidia_inodes() && !inodes.is_empty() { for inode in inodes { - if let Err(err) = blocker.block_exp_inode(inode) { + if let Err(err) = blocker.block_exp_inode(inode, *id as u32) { error!("failed to block nvidia's file {}: {}", inode, err); } } @@ -196,8 +197,15 @@ impl DaemonManager { } async fn whitelist_programs(&self) -> Result<()> { // List of allowed programs - const ALLOWED_PROGRAMS: &[&str] = - &["(udev-worker)", "pacman", "dnf", "apt", "nix", "nix-daemon"]; + const ALLOWED_PROGRAMS: &[&str] = &[ + "(udev-worker)", + "systemd-udevd", + "pacman", + "dnf", + "apt", + "nix", + "nix-daemon", + ]; let mut blocker = self.inner.blocker.write().await; @@ -212,7 +220,7 @@ impl DaemonManager { let mut state = self.inner.gpu_state.write().await; let default: bool = state.is_default_state(); if default { - for (_, gpu) in gpus_list.iter() { + for gpu in gpus_list.values() { state.save_state(&gpu.device, false).await?; } } diff --git a/crates/cardwire-daemon/src/tasks/watch_power_state.rs b/crates/cardwire-daemon/src/tasks/watch_power_state.rs index e7356af0..622fae20 100644 --- a/crates/cardwire-daemon/src/tasks/watch_power_state.rs +++ b/crates/cardwire-daemon/src/tasks/watch_power_state.rs @@ -39,7 +39,7 @@ pub async fn watch_power_state( // Skip if unknown powerstate if new_power_state == PowerState::Unknown { - warn!("power state couldn't be read: {}", &new_power_state_str); + warn!("power state couldn't be read: {}", new_power_state_str); continue; } if power_state != new_power_state { diff --git a/crates/cardwire-ebpf-userspace/Cargo.toml b/crates/cardwire-ebpf-userspace/Cargo.toml new file mode 100644 index 00000000..6c6040be --- /dev/null +++ b/crates/cardwire-ebpf-userspace/Cargo.toml @@ -0,0 +1,24 @@ +[package] +name = "cardwire-ebpf-userspace" +version.workspace = true +authors.workspace = true +repository.workspace = true +edition.workspace = true +rust-version.workspace = true +license.workspace = true + +[dependencies] +thiserror.workspace = true +aya.workspace = true +tokio.workspace = true +aya-log.workspace = true +log.workspace = true +clap.workspace = true +anyhow.workspace = true +env_logger.workspace = true + +[build-dependencies] +anyhow = { workspace = true } +aya-build = { workspace = true } +cargo_metadata = { workspace = true } +cardwire-ebpf = { path = "../cardwire-ebpf" } \ No newline at end of file diff --git a/crates/cardwire-ebpf-userspace/build.rs b/crates/cardwire-ebpf-userspace/build.rs new file mode 100644 index 00000000..1a09f788 --- /dev/null +++ b/crates/cardwire-ebpf-userspace/build.rs @@ -0,0 +1,27 @@ +use anyhow::{Context as _, anyhow}; +use aya_build::Toolchain; + +fn main() -> anyhow::Result<()> { + let cargo_metadata::Metadata { packages, .. } = cargo_metadata::MetadataCommand::new() + .no_deps() + .exec() + .context("MetadataCommand::exec")?; + let ebpf_package = packages + .into_iter() + .find(|cargo_metadata::Package { name, .. }| name.as_str() == "cardwire-ebpf") + .ok_or_else(|| anyhow!("cardwire-ebpf package not found"))?; + let cargo_metadata::Package { + name, + manifest_path, + .. + } = ebpf_package; + let ebpf_package = aya_build::Package { + name: name.as_str(), + root_dir: manifest_path + .parent() + .ok_or_else(|| anyhow!("no parent for {manifest_path}"))? + .as_str(), + ..Default::default() + }; + aya_build::build_ebpf([ebpf_package], Toolchain::default()) +} diff --git a/crates/cardwire-ebpf/src/errors.rs b/crates/cardwire-ebpf-userspace/src/errors.rs similarity index 100% rename from crates/cardwire-ebpf/src/errors.rs rename to crates/cardwire-ebpf-userspace/src/errors.rs diff --git a/crates/cardwire-ebpf-userspace/src/lib.rs b/crates/cardwire-ebpf-userspace/src/lib.rs new file mode 100644 index 00000000..8e7ffe01 --- /dev/null +++ b/crates/cardwire-ebpf-userspace/src/lib.rs @@ -0,0 +1,399 @@ +//! main lib code of cardwire-ebpf +mod errors; + +pub use crate::errors::{CardwireEbpfError, CardwireEbpfResult}; +use aya::{ + Btf, Ebpf, maps::{Array, HashMap, MapError, RingBuf}, programs::{Lsm, TracePoint} +}; +use aya_log::EbpfLogger; +use log::{Log, error, info}; +use tokio::io::{Interest, unix::AsyncFd}; + +pub enum EbpfSettings { + ExperimentalNvidia, +} + +pub struct EbpfBlocker { + ebpf: Ebpf, +} + +impl EbpfBlocker { + pub fn new() -> CardwireEbpfResult { + // quit if bpf is not enabled + if !Self::is_bpf_enabled() { + return Err(CardwireEbpfError::LSMNotEnabled); + } + // load the program from the .o + let mut ebpf = aya::Ebpf::load(aya::include_bytes_aligned!(concat!( + env!("OUT_DIR"), + "/cardwire-ebpf" + ))) + .map_err(|err| CardwireEbpfError::EbpfLoadError(err.to_string()))?; + + let btf = Btf::from_sys_fs().map_err(CardwireEbpfError::aya)?; + + let load_list: [&str; 3] = ["file_open", "inode_permission", "inode_getattr"]; + for entity in load_list { + let program: &mut Lsm = ebpf + .program_mut(entity) + .ok_or_else(|| CardwireEbpfError::missing_lsm(entity))? + .try_into() + .map_err(CardwireEbpfError::aya)?; + program.load(entity, &btf).map_err(CardwireEbpfError::aya)?; + program.attach().map_err(CardwireEbpfError::aya)?; + } + + let exec_program: &mut TracePoint = ebpf + .program_mut("tracepoint_sched_process_exec") + .ok_or_else(|| CardwireEbpfError::missing_lsm("tracepoint_sched_process_exec"))? + .try_into() + .map_err(CardwireEbpfError::aya)?; + exec_program.load().map_err(CardwireEbpfError::aya)?; + exec_program + .attach("sched", "sched_process_exec") + .map_err(CardwireEbpfError::aya)?; + + let close_program: &mut TracePoint = ebpf + .program_mut("tracepoint_sched_process_exit") + .ok_or_else(|| CardwireEbpfError::missing_lsm("tracepoint_sched_process_exit"))? + .try_into() + .map_err(CardwireEbpfError::aya)?; + close_program.load().map_err(CardwireEbpfError::aya)?; + close_program + .attach("sched", "sched_process_exit") + .map_err(CardwireEbpfError::aya)?; + // to hide files + let cardwire_sys_enter_getdents64: &mut TracePoint = ebpf + .program_mut("tracepoint_enter_getdents64") + .ok_or_else(|| CardwireEbpfError::missing_lsm("tracepoint_enter_getdents64"))? + .try_into() + .map_err(CardwireEbpfError::aya)?; + + cardwire_sys_enter_getdents64 + .load() + .map_err(CardwireEbpfError::aya)?; + + cardwire_sys_enter_getdents64 + .attach("syscalls", "sys_enter_getdents64") + .map_err(CardwireEbpfError::aya)?; + // to hide files + let cardwire_sys_exit_getdents64: &mut TracePoint = ebpf + .program_mut("tracepoint_exit_getdents64") + .ok_or_else(|| CardwireEbpfError::missing_lsm("tracepoint_exit_getdents64"))? + .try_into() + .map_err(CardwireEbpfError::aya)?; + + cardwire_sys_exit_getdents64 + .load() + .map_err(CardwireEbpfError::aya)?; + + cardwire_sys_exit_getdents64 + .attach("syscalls", "sys_exit_getdents64") + .map_err(CardwireEbpfError::aya)?; + + Ok(Self { ebpf }) + } + + /// whitelist cardwire's pid to prevent self-locking in ebpf + pub fn whitelist_cardwire_pid(&mut self, pid: u32) -> CardwireEbpfResult<()> { + let mut array_map: Array<_, u32> = Array::try_from( + self.ebpf + .map_mut("CW_DAEMON_PID") + .ok_or_else(|| CardwireEbpfError::missing_map("CW_DAEMON_PID"))?, + ) + .map_err(CardwireEbpfError::aya)?; + info!("inserting: {} into map", pid); + array_map.set(0, pid, 0).map_err(CardwireEbpfError::aya)?; + Ok(()) + } + + /* + Checks if bpf/lsm is enabled in the kernel + */ + fn is_bpf_enabled() -> bool { + match std::fs::read_to_string("/sys/kernel/security/lsm") { + Ok(lsm) => lsm.contains("bpf"), + Err(_) => false, + } + } + + /// Block an inode, value is the associated GPU id + pub fn block_inode(&mut self, inode: u64, value: u32) -> CardwireEbpfResult<()> { + // Also insert hardcoded values for now + let mut inode_map: HashMap<_, u64, u32> = HashMap::try_from( + self.ebpf + .map_mut("CW_BLOCKED_INO") + .ok_or_else(|| CardwireEbpfError::missing_map("CW_BLOCKED_INO"))?, + ) + .map_err(CardwireEbpfError::aya)?; + inode_map + .insert(inode, value, 0) + .map_err(CardwireEbpfError::aya)?; + Ok(()) + } + pub fn unblock_inode(&mut self, inode: u64) -> CardwireEbpfResult<()> { + // Also insert hardcoded values for now + let mut inode_map: HashMap<_, u64, u32> = HashMap::try_from( + self.ebpf + .map_mut("CW_BLOCKED_INO") + .ok_or_else(|| CardwireEbpfError::missing_map("CW_BLOCKED_INO"))?, + ) + .map_err(CardwireEbpfError::aya)?; + match inode_map.get(&inode, 0) { + // Ok = key found, remove + Ok(_) => inode_map.remove(&inode).map_err(CardwireEbpfError::aya), + // key not found, skip + Err(MapError::KeyNotFound) => Ok(()), + Err(err) => Err(CardwireEbpfError::aya(err)), + } + } + + pub fn is_inode_blocked(&self, inode: u64, value: u32) -> CardwireEbpfResult { + // Also insert hardcoded values for now + let inode_map: HashMap<_, u64, u32> = HashMap::try_from( + self.ebpf + .map("CW_BLOCKED_INO") + .ok_or_else(|| CardwireEbpfError::missing_map("CW_BLOCKED_INO"))?, + ) + .map_err(CardwireEbpfError::aya)?; + match inode_map.get(&inode, 0) { + // if value (gpu key associed to inode) = our func value + Ok(map_value) => Ok(value == map_value), + Err(MapError::KeyNotFound) => Ok(false), + Err(err) => Err(CardwireEbpfError::aya(err)), + } + } + + pub fn block_exp_inode(&mut self, inode: u64, value: u32) -> CardwireEbpfResult<()> { + // Also insert hardcoded values for now + let mut inode_map: HashMap<_, u64, u32> = HashMap::try_from( + self.ebpf + .map_mut("CW_EXP_BLK_INO") + .ok_or_else(|| CardwireEbpfError::missing_map("CW_EXP_BLK_INO"))?, + ) + .map_err(CardwireEbpfError::aya)?; + inode_map + .insert(inode, value, 0) + .map_err(CardwireEbpfError::aya)?; + Ok(()) + } + + pub fn set_ebpf_setting(&mut self, setting: EbpfSettings, value: u8) -> CardwireEbpfResult<()> { + let key: u8 = match setting { + EbpfSettings::ExperimentalNvidia => 0, + }; + let mut setting_map: HashMap<_, u8, u8> = HashMap::try_from( + self.ebpf + .map_mut("CW_SETTINGS") + .ok_or_else(|| CardwireEbpfError::missing_map("CW_SETTINGS"))?, + ) + .map_err(CardwireEbpfError::aya)?; + setting_map + .insert(key, value, 0) + .map_err(CardwireEbpfError::aya) + } + + /// Turn a comm string into a 16-byte key with a guaranteed terminating NUL + pub fn comm_to_key(comm: &str) -> [u8; 16] { + let mut key = [0u8; 16]; + let bytes = comm.as_bytes(); + let len = bytes.len().min(15); + key[..len].copy_from_slice(&bytes[..len]); + key + } + + pub fn allow_comm(&mut self, comm: &str) -> CardwireEbpfResult<()> { + let comm = Self::comm_to_key(comm); + let mut allowed_comm_map: HashMap<_, [u8; 16], u8> = HashMap::try_from( + self.ebpf + .map_mut("CW_ALLOWED_COMM") + .ok_or_else(|| CardwireEbpfError::missing_map("CW_ALLOWED_COMM"))?, + ) + .map_err(CardwireEbpfError::aya)?; + allowed_comm_map + .insert(comm, 0, 0) + .map_err(CardwireEbpfError::aya) + } + + /// take the CW_EXEC_EVENTS RingBuf map from the blocker + pub fn get_exec_ring(&mut self) -> CardwireEbpfResult> { + let map_str = "CW_EXEC_EVENTS"; + let map = match self.ebpf.take_map(map_str) { + Some(map) => map, + None => { + error!("error while trying to take map {}", map_str); + return Err(CardwireEbpfError::MissingMap { + name: map_str.to_string(), + }); + } + }; + let ring_buf: RingBuf = match RingBuf::try_from(map) { + Ok(ringbuf) => ringbuf, + Err(err) => { + error!("error while trying to get the exec ring_buf"); + return Err(CardwireEbpfError::aya(err)); + } + }; + Ok(ring_buf) + } + + /// take the CW_CLOSE_EVENTS RingBuf map from the blocker + pub fn get_close_ring(&mut self) -> CardwireEbpfResult> { + let map_str = "CW_CLOSE_EVENTS"; + let map = match self.ebpf.take_map(map_str) { + Some(map) => map, + None => { + error!("error while trying to take map {}", map_str); + return Err(CardwireEbpfError::MissingMap { + name: map_str.to_string(), + }); + } + }; + let ring_buf: RingBuf = match RingBuf::try_from(map) { + Ok(ringbuf) => ringbuf, + Err(err) => { + error!("error while trying to get the close ring_buf"); + return Err(CardwireEbpfError::aya(err)); + } + }; + Ok(ring_buf) + } + + /// take the CW_REPORT_EVENTS RingBuf map from the blocker + pub fn get_report_ring(&mut self) -> CardwireEbpfResult> { + let map_str = "CW_REPORT_EVENTS"; + let map = match self.ebpf.take_map(map_str) { + Some(map) => map, + None => { + error!("error while trying to take map {}", map_str); + return Err(CardwireEbpfError::MissingMap { + name: map_str.to_string(), + }); + } + }; + let ring_buf: RingBuf = match RingBuf::try_from(map) { + Ok(ringbuf) => ringbuf, + Err(err) => { + error!("error while trying to get the report ring_buf"); + return Err(CardwireEbpfError::aya(err)); + } + }; + Ok(ring_buf) + } + + /// take the CW_ALLOWED_PID HashMap map from the blocker + pub fn get_pid_map(&mut self) -> CardwireEbpfResult> { + let map_str = "CW_ALLOWED_PID"; + let map = match self.ebpf.take_map(map_str) { + Some(map) => map, + None => { + error!("error while trying to take map {}", map_str); + return Err(CardwireEbpfError::MissingMap { + name: map_str.to_string(), + }); + } + }; + let map: HashMap = match HashMap::try_from(map) { + Ok(map) => map, + Err(err) => { + error!("error while trying to get the allowed_pid map"); + return Err(CardwireEbpfError::aya(err)); + } + }; + Ok(map) + } + + /// take the CW_FORCED_PID HashMap map from the blocker + pub fn get_forced_pid_map( + &mut self, + ) -> CardwireEbpfResult> { + let map_str = "CW_FORCED_PID"; + let map = match self.ebpf.take_map(map_str) { + Some(map) => map, + None => { + error!("error while trying to take map {}", map_str); + return Err(CardwireEbpfError::MissingMap { + name: map_str.to_string(), + }); + } + }; + let map: HashMap = match HashMap::try_from(map) { + Ok(map) => map, + Err(err) => { + error!("error while trying to get the forced_pid map"); + return Err(CardwireEbpfError::aya(err)); + } + }; + Ok(map) + } + + /// take the CW_MODE Array map from the blocker + pub fn get_mode_map(&mut self) -> CardwireEbpfResult> { + let map_str = "CW_MODE"; + let map = match self.ebpf.take_map(map_str) { + Some(map) => map, + None => { + error!("error while trying to take map {}", map_str); + return Err(CardwireEbpfError::MissingMap { + name: map_str.to_string(), + }); + } + }; + let array: Array = match Array::try_from(map) { + Ok(array) => array, + Err(err) => { + error!("error while trying to get the mode array"); + return Err(CardwireEbpfError::aya(err)); + } + }; + Ok(array) + } + + pub fn get_ebpf_logger( + &mut self, + ) -> Result>, CardwireEbpfError> { + let logger = match EbpfLogger::init(&mut self.ebpf) { + Ok(logger) => logger, + Err(err) => { + error!("failed to initialize eBPF logger"); + return Err(CardwireEbpfError::aya(err)); + } + }; + let async_fd = match AsyncFd::with_interest(logger, Interest::READABLE) { + Ok(fd) => fd, + Err(err) => { + error!("couldn't get the async_fd for ebpf_logger"); + return Err(CardwireEbpfError::aya(err)); + } + }; + Ok(async_fd) + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_comm_to_key_short_string() { + let key = EbpfBlocker::comm_to_key("pacman"); + assert_eq!(&key[..6], b"pacman"); + assert_eq!(&key[6..], &[0u8; 10]); + } + + #[test] + fn test_comm_to_key_exact_15_bytes() { + let name = "123456789012345"; + let key = EbpfBlocker::comm_to_key(name); + assert_eq!(&key[..15], name.as_bytes()); + assert_eq!(key[15], 0); + } + + #[test] + fn test_comm_to_key_truncates_to_15_bytes_reserving_nul() { + let name = "1234567890123456789"; + let key = EbpfBlocker::comm_to_key(name); + assert_eq!(&key[..15], b"123456789012345"); + assert_eq!(key[15], 0); + } +} diff --git a/crates/cardwire-ebpf/Cargo.toml b/crates/cardwire-ebpf/Cargo.toml index 936cf187..b3489235 100644 --- a/crates/cardwire-ebpf/Cargo.toml +++ b/crates/cardwire-ebpf/Cargo.toml @@ -8,5 +8,14 @@ rust-version.workspace = true license.workspace = true [dependencies] -thiserror.workspace = true -aya.workspace = true +aya-ebpf.workspace = true +aya-log-ebpf.workspace = true + +[[bin]] +name = "cardwire-ebpf" +path = "src/main.rs" +test = false +doc = false + +[build-dependencies] +which.workspace = true diff --git a/crates/cardwire-ebpf/build.rs b/crates/cardwire-ebpf/build.rs index eb1bb793..f83c317a 100644 --- a/crates/cardwire-ebpf/build.rs +++ b/crates/cardwire-ebpf/build.rs @@ -1,25 +1,17 @@ -use std::{env, path::PathBuf, process::Command}; +use which::which; +/// Building this crate has an undeclared dependency on the `bpf-linker` binary. This would be +/// better expressed by [artifact-dependencies][bindeps] but issues such as +/// https://github.com/rust-lang/cargo/issues/12385 make their use impractical for the time being. +/// +/// This file implements an imperfect solution: it causes cargo to rebuild the crate whenever the +/// mtime of `which bpf-linker` changes. Note that possibility that a new bpf-linker is added to +/// $PATH ahead of the one used as the cache key still exists. Solving this in the general case +/// would require rebuild-if-changed-env=PATH *and* rebuild-if-changed={every-directory-in-PATH} +/// which would likely mean far too much cache invalidation. +/// +/// [bindeps]: https://doc.rust-lang.org/nightly/cargo/reference/unstable.html?highlight=feature#artifact-dependencies fn main() { - let out_dir = env::var("OUT_DIR").unwrap(); - let out_path = PathBuf::from(out_dir).join("bpf.o"); - let source_path = "src/c/bpf.c"; - let status = Command::new("clang") - .args([ - "-O2", - "-g", - "-target", - "bpf", - "-c", - source_path, - "-o", - out_path.to_str().unwrap(), - ]) - .env("NIX_HARDENING_ENABLE", "") - .status() - .expect("Failed to execute clang"); - - if !status.success() { - panic!("Failed to compile BPF program"); - } + let bpf_linker = which("bpf-linker").unwrap(); + println!("cargo:rerun-if-changed={}", bpf_linker.to_str().unwrap()); } diff --git a/crates/cardwire-ebpf/src/c/bpf.c b/crates/cardwire-ebpf/src/c/bpf.c deleted file mode 100644 index e4a43fee..00000000 --- a/crates/cardwire-ebpf/src/c/bpf.c +++ /dev/null @@ -1,236 +0,0 @@ -/// This file only contain the bpf programs, functions are defined in helpers.c -#include -#include -#include -#include -#include -#include -#include "bpf.h" -#include "helpers.h" - -char __license[] SEC("license") = "GPL"; - -/* - LSM to prevent open on DRM -*/ - -SEC("lsm/file_open") -int BPF_PROG(file_open, struct file *file) -{ - // If hybrid skip - if (is_hybrid()) - return 0; - - struct dentry *d = BPF_CORE_READ(file, f_path.dentry); - return is_blocked_device(d); -} -/* - To prevent flatpak from crashing -*/ -SEC("lsm/inode_permission") -int BPF_PROG(inode_permission, struct inode *inode, int mask) -{ - // If hybrid skip - if (is_hybrid()) - return 0; - - char filename[16] = {}; - const unsigned char *name_ptr = NULL; - /* - I do not understand this part but it works - */ - struct hlist_node *first = BPF_CORE_READ(inode, i_dentry.first); - if (!first) { - return 0; - } - - unsigned long offset; - - // This is for kernel compatibility - if (bpf_core_field_exists(((struct dentry___old *)0)->d_u.d_alias)) { - offset = - bpf_core_field_offset(struct dentry___old, d_u.d_alias); - } else { - offset = bpf_core_field_offset(struct dentry, d_alias); - } - struct dentry *d = (struct dentry *)((void *)first - offset); - // - return is_blocked_device(d); -} -/* - To prevent flatpak from crashing, -*/ -SEC("lsm/inode_getattr") -int BPF_PROG(inode_getattr, const struct path *path) -{ - if (is_hybrid()) - return 0; - struct dentry *d = BPF_CORE_READ(path, dentry); - return is_blocked_device(d); -} - -/* - To analyze the app before it's launch if the mode is smart or enforce, send exec_t to cardwire -*/ -SEC("tracepoint/sched/sched_process_exec") -int trace_exec(void *ctx) -{ - // if mode not smart, skip - if (!is_smart()) - return 0; - - // Init the struct - struct exec_t *rb_data = {}; - rb_data = - bpf_ringbuf_reserve(&cw_exec_events, sizeof(struct exec_t), 0); - // Check if present - if (!rb_data) { - return 0; - } - - // Read PID - rb_data->pid = bpf_get_current_pid_tgid() >> 32; - - bpf_ringbuf_submit(rb_data, 0); - return 0; -} - -SEC("tracepoint/sched/sched_process_exit") -int trace_process_exit(void *ctx) -{ - // if mode not smart, skip - if (!is_smart()) - return 0; - - // we get the pid_tgdi - __u64 pid_tgid = bpf_get_current_pid_tgid(); - // extract the tgid - __u32 tgid = pid_tgid >> 32; - // and the pid - __u32 pid = pid_tgid & 0xFFFFFFFF; - - // Only send close event if the main thread is exiting - if (pid != tgid) - return 0; - - struct close_t *rb_data = {}; - rb_data = bpf_ringbuf_reserve(&cw_close_events, sizeof(struct close_t), - 0); - // if struct error, exit - if (!rb_data) { - return 0; - } - rb_data->pid = tgid; - - bpf_ringbuf_submit(rb_data, 0); - return 0; -} - -SEC("tp/syscalls/sys_enter_getdents64") -int cardwire_sys_enter_getdents64(struct trace_event_raw_sys_enter *ctx) -{ - // If hybrid skip - if (is_hybrid()) - return 0; - - __u32 pid = bpf_get_current_pid_tgid() >> 32; - - struct task_struct *task = (struct task_struct *)bpf_get_current_task(); - __u32 ppid = BPF_CORE_READ(task, real_parent, tgid); - - // if it's cardwire skip it - if (is_cardwire_process(pid)) - return 0; - - // skip if whitelisted - if (is_process_whitelisted()) - return 0; - - // if we in smart mode and the pid is allowed, skip - if (is_smart()) { - if (is_pid_allowed(pid, ppid)) { - __u8 *allow_val = - bpf_map_lookup_elem(&cw_allowed_pid, &pid); - if (!allow_val) { - allow_val = bpf_map_lookup_elem(&cw_allowed_pid, - &ppid); - } - // If force_dgpu is NOT enabled, we can safely skip patching - if (allow_val && *allow_val != 0) { - return 0; - } - } - } - - // Get the memory address of the buffer where the list of entry will be stored - __u64 dirents_buf = ctx->args[1]; - if (!dirents_buf) { - return 0; - } - // Save addr into map - bpf_map_update_elem(&cw_dirent, &pid, &dirents_buf, BPF_ANY); - return 0; -} - -SEC("tp/syscalls/sys_exit_getdents64") -int cardwire_sys_exit_getdents64(struct trace_event_raw_sys_exit *ctx) -{ - // If hybrid skip - if (is_hybrid()) - return 0; - - __u32 pid = bpf_get_current_pid_tgid() >> 32; - - struct task_struct *task = (struct task_struct *)bpf_get_current_task(); - __u32 ppid = BPF_CORE_READ(task, real_parent, tgid); - - // if it's cardwire skip it - if (is_cardwire_process(pid)) - return 0; - // skip if whitelisted - if (is_process_whitelisted()) - return 0; - // if we in smart mode and the pid is allowed, skip - if (is_smart()) { - if (is_pid_allowed(pid, ppid)) { - __u8 *allow_val = - bpf_map_lookup_elem(&cw_allowed_pid, &pid); - if (!allow_val) { - allow_val = bpf_map_lookup_elem(&cw_allowed_pid, - &ppid); - } - // If force_dgpu is NOT enabled, we can safely skip patching - if (allow_val && *allow_val != 0) { - return 0; - } - } - } - - __u64 *dirents_buf_ptr = bpf_map_lookup_elem(&cw_dirent, &pid); - - if (!dirents_buf_ptr) - return 0; - - __u64 dirents_buf = *dirents_buf_ptr; - - // Clean up the map immediately so it doesn't fill up - bpf_map_delete_elem(&cw_dirent, &pid); - - // If getdents64 return 0 bytes - if (ctx->ret <= 0) { - return 0; - } - - struct dirents_data_t dirents_data = { - .bpos = 0, - .dirents_buf = dirents_buf, - .buff_size = ctx->ret, - .d_reclen = 0, - .last_visible_bpos = 0xFFFFFFFF, - }; - - // Run the loop - bpf_loop(10000, patch_dirent_if_found, &dirents_data, 0); - - return 0; -} \ No newline at end of file diff --git a/crates/cardwire-ebpf/src/c/bpf.h b/crates/cardwire-ebpf/src/c/bpf.h deleted file mode 100644 index d1cb077a..00000000 --- a/crates/cardwire-ebpf/src/c/bpf.h +++ /dev/null @@ -1,182 +0,0 @@ - -// Return value used for file blocking -#define ENOENT 2 - -// kernel type definitions - -// For inode -struct hlist_node { - struct hlist_node *next, **pprev; -} __attribute__((preserve_access_index)); - -struct hlist_head { - struct hlist_node *first; -} __attribute__((preserve_access_index)); - -struct inode { - __u64 i_ino; - struct hlist_head i_dentry; -} __attribute__((preserve_access_index)); - -struct dentry___old { - struct inode *d_inode; - union { - struct hlist_node d_alias; - } d_u; -} __attribute__((preserve_access_index)); - -struct dentry { - struct inode *d_inode; - struct hlist_node d_alias; -} __attribute__((preserve_access_index)); - -struct path { - struct dentry *dentry; -} __attribute__((preserve_access_index)); - -struct file { - struct path f_path; -} __attribute__((preserve_access_index)); - -struct dirents_data_t { - __u32 bpos; - __u64 dirents_buf; - long buff_size; - __u16 d_reclen; - __u32 last_visible_bpos; -}; - -struct linux_dirent64 { - __u64 d_ino; - __s64 d_off; - short unsigned int d_reclen; - unsigned char d_type; - char d_name[0]; -} __attribute__((preserve_access_index)); - -struct trace_event_raw_sys_enter { - __u64 unused_common_fields; - long id; - unsigned long args[6]; - char __data[0]; -} __attribute__((preserve_access_index)); - -struct trace_event_raw_sys_exit { - __u64 unused_common_fields; - long id; - long ret; -} __attribute__((preserve_access_index)); - -struct task_struct { - int tgid; - struct task_struct *real_parent; - int exit_code; -} __attribute__((preserve_access_index)); - -// Ring related struct - -struct exec_t { - __u32 pid; -}; - -struct close_t { - __u32 pid; -}; - -struct report_t { - __u32 pid; - char comm[16]; -}; - -// EBPF maps -// This one is to report the events to cardwired smart mode -struct { - __uint(type, BPF_MAP_TYPE_RINGBUF); - __uint(max_entries, 256 * 1024); -} cw_exec_events SEC(".maps"); - -struct { - __uint(type, BPF_MAP_TYPE_RINGBUF); - __uint(max_entries, 256 * 1024); -} cw_close_events SEC(".maps"); - -// This one is to report the app block to cardwire -struct { - __uint(type, BPF_MAP_TYPE_RINGBUF); - __uint(max_entries, 256 * 1024); -} cw_report_events SEC(".maps"); - -// List of blocked comm -// Used for smart mode -struct { - __uint(type, BPF_MAP_TYPE_HASH); - __uint(max_entries, 16384); - __type(key, __u32); - __type(value, __u8); -} cw_allowed_pid SEC(".maps"); - -/* - mode map, mode should be stored in key 0 - possible values: - integrated = 0 - hybrid = 1 - manual = 2 - smart = 3 -*/ -struct { - __uint(type, BPF_MAP_TYPE_HASH); - __uint(max_entries, 1); - __type(key, __u8); - __type(value, __u8); -} cw_mode SEC(".maps"); - -// Used to store the blocked inos -struct { - __uint(type, BPF_MAP_TYPE_HASH); - __uint(max_entries, 2048); - __type(key, __u64); - __type(value, __u8); -} cw_blocked_ino SEC(".maps"); - -// This struct contains the inodes of the blocked experimental nvidia files -struct { - __uint(type, BPF_MAP_TYPE_HASH); - __uint(max_entries, 2048); - __type(key, __u64); - __type(value, __u8); -} cw_exp_blk_ino SEC(".maps"); - -/* - setting map, setting are stored by key - possible values: - exp_nvidia = 0 -*/ -struct { - __uint(type, BPF_MAP_TYPE_HASH); - __uint(max_entries, 64); - __type(key, __u8); - __type(value, __u8); -} cw_settings SEC(".maps"); - -// Struct that contains cardwired's pid -struct { - __uint(type, BPF_MAP_TYPE_HASH); - __uint(max_entries, 1); - __type(key, __u8); - __type(value, __u32); -} cw_daemon_pid SEC(".maps"); - -struct { - __uint(type, BPF_MAP_TYPE_HASH); - __uint(max_entries, 1024); - __type(key, __u32); - __type(value, __u64); -} cw_dirent SEC(".maps"); - -// This one contain whitelist programs comm's -struct { - __uint(type, BPF_MAP_TYPE_HASH); - __uint(max_entries, 2048); - __type(key, char[16]); - __type(value, __u8); -} cw_allowed_comm SEC(".maps"); \ No newline at end of file diff --git a/crates/cardwire-ebpf/src/c/helpers.h b/crates/cardwire-ebpf/src/c/helpers.h deleted file mode 100644 index 64364aa1..00000000 --- a/crates/cardwire-ebpf/src/c/helpers.h +++ /dev/null @@ -1,291 +0,0 @@ - -static __always_inline int is_hybrid() -{ - // get current cardwired mode, key should always be 0 - __u32 key = 0; - __u8 *mode = bpf_map_lookup_elem(&cw_mode, &key); - if (!mode) { - return false; - } - //if mode is hybrid, return true - if (*mode == 1) { - return true; - } - return false; -} - -static __always_inline int is_smart() -{ - // get current cardwired mode, key should always be 0 - __u32 key = 0; - __u8 *mode = bpf_map_lookup_elem(&cw_mode, &key); - if (!mode) { - return false; - } - //if mode is smart, true - if (*mode == 3) { - return true; - } - return false; -} - -static __always_inline int is_cardwire_process(__u32 pid) -{ - // key 0 contain cardwire pid, if pid/ppid = cardwire's pid then allow - __u8 cardwire_key = 0; - __u32 *cardwire_pid = - bpf_map_lookup_elem(&cw_daemon_pid, &cardwire_key); - if (cardwire_pid && *cardwire_pid == pid) { - return true; - } - return false; -} - -/// get if the process is whitelisted using comm name -static __always_inline int is_process_whitelisted() -{ - char comm[16] = {}; - bpf_get_current_comm(comm, sizeof(comm)); - if (bpf_map_lookup_elem(&cw_allowed_comm, &comm)) { - return true; - } - return false; -} - -/// check if the pid is in the allow list, smart mode only -static __always_inline int is_pid_allowed(__u32 pid, __u32 ppid) -{ - return bpf_map_lookup_elem(&cw_allowed_pid, &pid) || - bpf_map_lookup_elem(&cw_allowed_pid, &ppid); -} - -/// check if experimental nvidia blocking is enabled -static __always_inline int is_nvidia_enabled() -{ - __u8 key = 0; - __u8 *value = bpf_map_lookup_elem(&cw_settings, &key); - if (!value) - return false; - return *value; -} - -static __always_inline int is_blocked_device(struct dentry *d) -{ - if (!d) { - return 0; - } - // get pid and ppid - __u32 pid = bpf_get_current_pid_tgid() >> 32; - struct task_struct *task = (struct task_struct *)bpf_get_current_task(); - __u32 ppid = BPF_CORE_READ(task, real_parent, tgid); - - // if it's cardwire skip it - if (is_cardwire_process(pid)) - return 0; - // skip if whitelisted - if (is_process_whitelisted()) - return 0; - - bool blocked = false; - - struct inode *inode = BPF_CORE_READ(d, d_inode); - __u8 *map_val = 0; - // Match card/render/nvidia minor - if (inode) { - __u64 d_ino = BPF_CORE_READ(inode, i_ino); - if (d_ino) { - map_val = bpf_map_lookup_elem(&cw_blocked_ino, &d_ino); - // if inode is in the map, blocked - // we store the value to identify the dGPU/iGPU - if (map_val) { - blocked = true; - goto end; - } - if (is_nvidia_enabled() && - bpf_map_lookup_elem(&cw_exp_blk_ino, &d_ino)) { - blocked = true; - goto end; - } - } - } -end: - - // If not blocked, return 0(allowed) - if (!blocked) { - return 0; - } - // get mode - __u32 key = 0; - __u8 *mode = bpf_map_lookup_elem(&cw_mode, &key); - // if map lookup fails, or we are not blocking, or it's hybrid mode, allow - if (!mode || *mode == 1) { - return 0; - } - - // if is integrated/manual mode, block - if (*mode == 0 || *mode == 2) { - return -ENOENT; - } - - // if smart, check the pid list - if (*mode == 3) { - // Check if the inode is linked to the iGPU - if (map_val && *map_val == 0) { - // Check if the PID is in the map - __u8 *allow_map_value_pid = - bpf_map_lookup_elem(&cw_allowed_pid, &pid); - - // if the isn't in the map, check the ppid - if (!allow_map_value_pid) { - allow_map_value_pid = bpf_map_lookup_elem( - &cw_allowed_pid, &ppid); - } - // IF the inode is linked to a iGPU and the map_key exist - if (allow_map_value_pid) { - // This mean the inode is allowed, but to check if we should force the dGPU or not,value should be at 0 - if (*allow_map_value_pid == 0) { - // We should hide the iGPU - return -ENOENT; - } - } - return 0; - } - - if (!bpf_map_lookup_elem(&cw_allowed_pid, &pid) && - !bpf_map_lookup_elem(&cw_allowed_pid, &ppid)) { - // Neither pid nor ppid is allowed, block and report the event - // Reserve space, return if it fails - struct report_t *rb_report = bpf_ringbuf_reserve( - &cw_report_events, sizeof(struct report_t), 0); - if (!rb_report) { - return -ENOENT; - } - // Store the pid and the comm inside the event - rb_report->pid = pid; - bpf_get_current_comm(rb_report->comm, - sizeof(rb_report->comm)); - bpf_ringbuf_submit(rb_report, 0); - return -ENOENT; - } - } - return 0; -} - -static __always_inline int patch_dirent_if_found(__u32 _, - struct dirents_data_t *data) -{ - // Check if we reached the end of the buffer - if (data->bpos >= data->buff_size) { - return 1; // 1 = stop loop - } - - // Get the current directory entry - struct linux_dirent64 *dirent = - (struct linux_dirent64 *)(data->dirents_buf + data->bpos); - - if (bpf_probe_read(&data->d_reclen, sizeof(data->d_reclen), - &dirent->d_reclen) < 0) { - return 1; // Read error, break loop - } - - __u64 d_inode = 0; - if (bpf_probe_read(&d_inode, sizeof(d_inode), &dirent->d_ino) < 0) { - return 1; // Read error, break loop - } - - if (!d_inode) { - data->bpos += data->d_reclen; - return 0; // Skip and continue - } - - //Read the name of this entry - char dirname[64] = {}; - bpf_probe_read_user_str(dirname, sizeof(dirname), dirent->d_name); - - // Check if this is a file we want to hide - __u8 *map_val = bpf_map_lookup_elem(&cw_blocked_ino, &d_inode); - if (map_val || (is_nvidia_enabled() && - bpf_map_lookup_elem(&cw_exp_blk_ino, &d_inode))) { - if (data->last_visible_bpos != 0xFFFFFFFF) { - struct linux_dirent64 *visible_dirent = - (struct linux_dirent64 - *)(data->dirents_buf + - data->last_visible_bpos); - __u16 visible_reclen; - bpf_probe_read(&visible_reclen, sizeof(visible_reclen), - &visible_dirent->d_reclen); - - __u16 new_reclen = visible_reclen + data->d_reclen; - // check for iGPU - if (is_smart()) { - // Get the process pid and ppid - __u32 pid = bpf_get_current_pid_tgid() >> 32; - struct task_struct *task = - (struct task_struct *) - bpf_get_current_task(); - __u32 ppid = - BPF_CORE_READ(task, real_parent, tgid); - - // Read the map to check if the pid is present - __u8 *allow_map_value = bpf_map_lookup_elem( - &cw_allowed_pid, &pid); - // if pid is not present, try with ppid - if (!allow_map_value) { - allow_map_value = bpf_map_lookup_elem( - &cw_allowed_pid, &ppid); - } - // check if it's an inode linked to the iGPU - if (map_val && *map_val == 0) { - // It's the iGPU - if (allow_map_value) { - // PID exist and value isn't 1 (dGPU) - if (*allow_map_value != 1) { - // force dGPU is active: hide the iGPU - bpf_probe_write_user( - &visible_dirent - ->d_reclen, - &new_reclen, - sizeof(new_reclen)); - goto end; - } else { - // allowed process, no force: show iGPU - goto not_hidden; - } - } else { - goto not_hidden; - } - } else { - // It's the dGPU - if (allow_map_value) { - // Allowed process: must see the dGPU! - goto not_hidden; - } - // Unallowed process: fall through to hide the dGPU - } - } - // Overwrite the visible file's length so it skips over the hidden file - bpf_probe_write_user(&visible_dirent->d_reclen, - &new_reclen, sizeof(new_reclen)); - } -end: - data->bpos += data->d_reclen; - // Reserve space, return if it fails - struct report_t *rb_report = bpf_ringbuf_reserve( - &cw_report_events, sizeof(struct report_t), 0); - if (!rb_report) { - bpf_printk("bpf_ringbuf_reserve failed\n"); - return 0; - } - // Store the pid and the comm inside the event - rb_report->pid = bpf_get_current_pid_tgid() >> 32; - bpf_get_current_comm(rb_report->comm, sizeof(rb_report->comm)); - bpf_ringbuf_submit(rb_report, 0); - return 0; // Continue loop - } - -not_hidden: - // Not a hidden file, update last_visible_bpos and advance - data->last_visible_bpos = data->bpos; - data->bpos += data->d_reclen; - return 0; // Continue loop -} diff --git a/crates/cardwire-ebpf/src/helpers.rs b/crates/cardwire-ebpf/src/helpers.rs new file mode 100644 index 00000000..fa7ad4a6 --- /dev/null +++ b/crates/cardwire-ebpf/src/helpers.rs @@ -0,0 +1,197 @@ +use aya_ebpf::helpers::{ + bpf_get_current_comm, bpf_get_current_pid_tgid, bpf_probe_read_kernel, generated::bpf_get_current_task +}; + +use crate::{ + CardwiredSetting, DAEMON_INDEX, HYBRID, INTEGRATED, MANUAL, MODE_INDEX, SMART, maps::{ + CW_ALLOWED_COMM, CW_ALLOWED_PID, CW_BLOCKED_INO, CW_DAEMON_PID, CW_EXP_BLK_INO, CW_FORCED_PID, CW_MODE, CW_REPORT_EVENTS, CW_SETTINGS, ReportEvent + } +}; + +use crate::vmlinux::task_struct; + +/// Verify if the inode is inside CW_BLOCKED_INO or not +#[inline(always)] +pub unsafe fn is_inode_blocked(inode: u64) -> bool { + let mut blocked: bool = false; + let mut ino_gpu_id: u32 = 0; + + 'inode_check: { + // Check if the inode is in the blocked list + if let Some(v) = unsafe { CW_BLOCKED_INO.get(&inode) } { + blocked = true; + ino_gpu_id = *v; + break 'inode_check; + } + // We didn't match any inode, try with nvidia inodes + if unsafe { is_nvidia_setting_enabled() } + && let Some(v) = unsafe { CW_EXP_BLK_INO.get(&inode) } + { + blocked = true; + ino_gpu_id = *v; + break 'inode_check; + } + } + + 'end: { + if !blocked { + // exit and return success + break 'end; + } + + // Get the current mode used + let mode = match CW_MODE.get(MODE_INDEX) { + Some(mode) => mode, + // If we can't get the mode, just exit the block and return success + None => break 'end, + }; + + // If everything ok, read the pid + let pid: u32 = (bpf_get_current_pid_tgid() >> 32) as u32; + + if *mode == INTEGRATED || *mode == MANUAL { + // if integrated/manual, just report the event and block + report_event(pid); + return true; + } + + // 0 = iGPU + // 1 = dGPU + if *mode == SMART { + let ppid = match get_task_ppid() { + Some(ppid) => ppid, + None => u32::MAX, + }; + + // We need to check if the map contains the pid + // In smart mode, we do not check if the ino_gpu_id matches, it was only made for dual + // gpu(hybrid) laptops + + // First we try with the pid + if unsafe { CW_ALLOWED_PID.get(&pid).is_some() } + || unsafe { CW_ALLOWED_PID.get(&ppid).is_some() } + { + // We got a match, pid is allowed ! + break 'end; + } + + // If we are here, the pid AND the ppid are not in the allowed map, check the FORCED map + let forced_gpu_id = + unsafe { CW_FORCED_PID.get(&pid).or_else(|| CW_FORCED_PID.get(&ppid)) }; + + if let Some(pid_gpu_id) = forced_gpu_id { + // We match the ino_gpu_id with the pid_gpu_id + // If they match, that means the ino is owned by the said GPU id, and we want to + // force the process to use said GPU id + match *pid_gpu_id == ino_gpu_id { + // The process should be allowed to see the inode + true => break 'end, + // Process should only be allowed to see the said GPU id + false => { + // Report the event to the daemon + report_event(pid); + return true; + } + } + } + + // Check if inode gpu id matches 0, the iGPU. + // iGPU should always be 0 + if ino_gpu_id == 0 { + // allow the iGPU + break 'end; + } + + // Report the event to the daemon + report_event(pid); + + // End of smart mode check, block if it didnt get allowed earlier + return true; + } + } + + false +} + +#[inline(always)] +fn report_event(pid: u32) { + if let Some(mut ring_buf) = CW_REPORT_EVENTS.reserve(0) { + let event: ReportEvent = ReportEvent { pid }; + // write to the map + ring_buf.write(event); + // submit + ring_buf.submit(0); + }; +} + +#[inline(always)] +fn get_task_ppid() -> Option { + let task: *const task_struct = unsafe { bpf_get_current_task() as *const task_struct }; + if task.is_null() { + return None; + } + + let real_parent = + match unsafe { bpf_probe_read_kernel(core::ptr::addr_of!((*task).real_parent)) } { + Ok(parent) => parent, + Err(_) => { + return None; + } + }; + + if real_parent.is_null() { + return None; + } + + match unsafe { bpf_probe_read_kernel(core::ptr::addr_of!((*real_parent).tgid)) } { + Ok(ppid) => Some(ppid as u32), + Err(_) => None, + } +} + +/// Verify if the proc is whitelisted, returns false if not +#[inline(always)] +pub fn is_comm_whitelisted() -> bool { + if let Ok(comm) = bpf_get_current_comm() + && unsafe { CW_ALLOWED_COMM.get(&comm).is_some() } + { + return true; + } + false +} + +/// Verify if the proc is cardwired, returns None if the map fails +#[inline(always)] +pub fn is_cardwired() -> Option { + let proc_pid = (bpf_get_current_pid_tgid() >> 32) as u32; + match CW_DAEMON_PID.get(DAEMON_INDEX) { + Some(pid) => Some(proc_pid == *pid), + None => None, + } +} + +/// Verify if the current device mode is hybrid, returns None if the map fails +#[inline(always)] +pub unsafe fn is_hybrid() -> Option { + match CW_MODE.get(MODE_INDEX) { + Some(mode) => Some(*mode == HYBRID), + None => None, + } +} + +/// Verify if the current device mode is smart, returns None if the map fails +#[inline(always)] +pub unsafe fn is_smart() -> Option { + match CW_MODE.get(MODE_INDEX) { + Some(mode) => Some(*mode == SMART), + None => None, + } +} + +#[inline(always)] +pub unsafe fn is_nvidia_setting_enabled() -> bool { + match unsafe { CW_SETTINGS.get(&CardwiredSetting::EXP_NVIDIA) } { + Some(setting) => *setting, + None => false, + } +} diff --git a/crates/cardwire-ebpf/src/lib.rs b/crates/cardwire-ebpf/src/lib.rs index d8073723..3ac3e595 100644 --- a/crates/cardwire-ebpf/src/lib.rs +++ b/crates/cardwire-ebpf/src/lib.rs @@ -1,243 +1,3 @@ -//! main lib code of cardwire-ebpf -mod errors; +#![no_std] -pub use crate::errors::{CardwireEbpfError, CardwireEbpfResult}; -use aya::{ - Btf, Ebpf, maps::{HashMap, MapError, RingBuf}, programs::{Lsm, TracePoint} -}; - -pub enum EbpfSettings { - ExperimentalNvidia, -} - -pub struct EbpfBlocker { - ebpf: Ebpf, -} - -impl EbpfBlocker { - pub fn new() -> CardwireEbpfResult { - // quit if bpf is not enabled - if !Self::is_bpf_enabled() { - return Err(CardwireEbpfError::LSMNotEnabled); - } - // load the program from the .o - let mut ebpf = match Ebpf::load(aya::include_bytes_aligned!(concat!( - env!("OUT_DIR"), - "/bpf.o" - ))) { - Ok(ebpf) => ebpf, - Err(e) => return Err(CardwireEbpfError::EbpfLoadError(e.to_string())), - }; - - let btf = Btf::from_sys_fs().map_err(CardwireEbpfError::aya)?; - - let load_list: [&str; 3] = ["file_open", "inode_permission", "inode_getattr"]; - for entity in load_list { - let program: &mut Lsm = ebpf - .program_mut(entity) - .ok_or_else(|| CardwireEbpfError::missing_lsm(entity))? - .try_into() - .map_err(CardwireEbpfError::aya)?; - program.load(entity, &btf).map_err(CardwireEbpfError::aya)?; - program.attach().map_err(CardwireEbpfError::aya)?; - } - - let exec_program: &mut TracePoint = ebpf - .program_mut("trace_exec") - .ok_or_else(|| CardwireEbpfError::missing_lsm("trace_exec"))? - .try_into() - .map_err(CardwireEbpfError::aya)?; - exec_program.load().map_err(CardwireEbpfError::aya)?; - exec_program - .attach("sched", "sched_process_exec") - .map_err(CardwireEbpfError::aya)?; - - let close_program: &mut TracePoint = ebpf - .program_mut("trace_process_exit") - .ok_or_else(|| CardwireEbpfError::missing_lsm("trace_process_exit"))? - .try_into() - .map_err(CardwireEbpfError::aya)?; - close_program.load().map_err(CardwireEbpfError::aya)?; - close_program - .attach("sched", "sched_process_exit") - .map_err(CardwireEbpfError::aya)?; - // to hide files - let cardwire_sys_enter_getdents64: &mut TracePoint = ebpf - .program_mut("cardwire_sys_enter_getdents64") - .ok_or_else(|| CardwireEbpfError::missing_lsm("cardwire_sys_enter_getdents64"))? - .try_into() - .map_err(CardwireEbpfError::aya)?; - - cardwire_sys_enter_getdents64 - .load() - .map_err(CardwireEbpfError::aya)?; - - cardwire_sys_enter_getdents64 - .attach("syscalls", "sys_enter_getdents64") - .map_err(CardwireEbpfError::aya)?; - // to hide files - let cardwire_sys_exit_getdents64: &mut TracePoint = ebpf - .program_mut("cardwire_sys_exit_getdents64") - .ok_or_else(|| CardwireEbpfError::missing_lsm("cardwire_sys_exit_getdents64"))? - .try_into() - .map_err(CardwireEbpfError::aya)?; - - cardwire_sys_exit_getdents64 - .load() - .map_err(CardwireEbpfError::aya)?; - - cardwire_sys_exit_getdents64 - .attach("syscalls", "sys_exit_getdents64") - .map_err(CardwireEbpfError::aya)?; - - Ok(Self { ebpf }) - } - - /// whitelist cardwire's pid to prevent self-locking in ebpf - pub fn whitelist_cardwire_pid(&mut self, pid: u32) -> CardwireEbpfResult<()> { - let mut inode_map: HashMap<_, u8, u32> = HashMap::try_from( - self.ebpf - .map_mut("cw_daemon_pid") - .ok_or_else(|| CardwireEbpfError::missing_map("cw_daemon_pid"))?, - ) - .map_err(CardwireEbpfError::aya)?; - inode_map - .insert(0, pid, 0) - .map_err(|err| CardwireEbpfError::Aya(err.to_string())) - } - - /* - Checks if bpf/lsm is enabled in the kernel - */ - fn is_bpf_enabled() -> bool { - match std::fs::read_to_string("/sys/kernel/security/lsm") { - Ok(lsm) => lsm.contains("bpf"), - Err(_) => false, - } - } - - /// Block an inode, value should be a either 0(iGPU) or 1 (dGPU) - pub fn block_inode(&mut self, inode: u64, value: u8) -> CardwireEbpfResult<()> { - // Also insert hardcoded values for now - let mut inode_map: HashMap<_, u64, u8> = HashMap::try_from( - self.ebpf - .map_mut("cw_blocked_ino") - .ok_or_else(|| CardwireEbpfError::missing_map("cw_blocked_ino"))?, - ) - .map_err(CardwireEbpfError::aya)?; - inode_map - .insert(inode, value, 0) - .map_err(CardwireEbpfError::aya)?; - Ok(()) - } - pub fn unblock_inode(&mut self, inode: u64) -> CardwireEbpfResult<()> { - // Also insert hardcoded values for now - let mut inode_map: HashMap<_, u64, u8> = HashMap::try_from( - self.ebpf - .map_mut("cw_blocked_ino") - .ok_or_else(|| CardwireEbpfError::missing_map("cw_blocked_ino"))?, - ) - .map_err(CardwireEbpfError::aya)?; - match inode_map.get(&inode, 0) { - // Ok = key found, remove - Ok(_) => inode_map.remove(&inode).map_err(CardwireEbpfError::aya), - // key not found, skip - Err(MapError::KeyNotFound) => Ok(()), - Err(err) => Err(CardwireEbpfError::aya(err)), - } - } - - pub fn is_inode_blocked(&self, inode: u64) -> CardwireEbpfResult { - // Also insert hardcoded values for now - let inode_map: HashMap<_, u64, u8> = HashMap::try_from( - self.ebpf - .map("cw_blocked_ino") - .ok_or_else(|| CardwireEbpfError::missing_map("cw_blocked_ino"))?, - ) - .map_err(CardwireEbpfError::aya)?; - match inode_map.get(&inode, 0) { - // 1 = dGPU, 0 = iGPU, if the inode is in the map it means the dGPU is meant to be - // blocked so true - Ok(value) => Ok(value == 1), - Err(MapError::KeyNotFound) => Ok(false), - Err(err) => Err(CardwireEbpfError::aya(err)), - } - } - - pub fn block_exp_inode(&mut self, inode: u64) -> CardwireEbpfResult<()> { - // Also insert hardcoded values for now - let mut inode_map: HashMap<_, u64, u8> = HashMap::try_from( - self.ebpf - .map_mut("cw_exp_blk_ino") - .ok_or_else(|| CardwireEbpfError::missing_map("cw_exp_blk_ino"))?, - ) - .map_err(CardwireEbpfError::aya)?; - inode_map - .insert(inode, 1, 0) - .map_err(CardwireEbpfError::aya)?; - Ok(()) - } - - pub fn set_ebpf_setting(&mut self, setting: EbpfSettings, value: u8) -> CardwireEbpfResult<()> { - let key: u8 = match setting { - EbpfSettings::ExperimentalNvidia => 0, - }; - let mut setting_map: HashMap<_, u8, u8> = HashMap::try_from( - self.ebpf - .map_mut("cw_settings") - .ok_or_else(|| CardwireEbpfError::missing_map("cw_settings"))?, - ) - .map_err(CardwireEbpfError::aya)?; - setting_map - .insert(key, value, 0) - .map_err(CardwireEbpfError::aya) - } - - pub fn allow_comm(&mut self, comm: &str) -> CardwireEbpfResult<()> { - // turn the comm str into a char[16] - let comm = { - let mut key = [0u8; 16]; - let bytes = comm.as_bytes(); - // leave one byte for terminator - let len = bytes.len().min(15); - key[..len].copy_from_slice(&bytes[..len]); - key[len] = 0; - key - }; - let mut allowed_comm_map: HashMap<_, [u8; 16], u8> = HashMap::try_from( - self.ebpf - .map_mut("cw_allowed_comm") - .ok_or_else(|| CardwireEbpfError::missing_map("cw_allowed_comm"))?, - ) - .map_err(CardwireEbpfError::aya)?; - allowed_comm_map - .insert(comm, 0, 0) - .map_err(CardwireEbpfError::aya) - } - - pub fn get_exec_ring(&mut self) -> CardwireEbpfResult> { - let map = self.ebpf.take_map("cw_exec_events").unwrap(); - let ring_buf: RingBuf = RingBuf::try_from(map).unwrap(); - Ok(ring_buf) - } - pub fn get_close_ring(&mut self) -> CardwireEbpfResult> { - let map = self.ebpf.take_map("cw_close_events").unwrap(); - let ring_buf: RingBuf = RingBuf::try_from(map).unwrap(); - Ok(ring_buf) - } - pub fn get_report_ring(&mut self) -> CardwireEbpfResult> { - let map = self.ebpf.take_map("cw_report_events").unwrap(); - let ring_buf: RingBuf = RingBuf::try_from(map).unwrap(); - Ok(ring_buf) - } - pub fn get_pid_map(&mut self) -> CardwireEbpfResult> { - let map = self.ebpf.take_map("cw_allowed_pid").unwrap(); - let map: HashMap = HashMap::try_from(map).unwrap(); - Ok(map) - } - pub fn get_mode_map(&mut self) -> CardwireEbpfResult> { - let map = self.ebpf.take_map("cw_mode").unwrap(); - let map: HashMap = HashMap::try_from(map).unwrap(); - Ok(map) - } -} +// This file exists to enable the library target. diff --git a/crates/cardwire-ebpf/src/main.rs b/crates/cardwire-ebpf/src/main.rs new file mode 100644 index 00000000..08599448 --- /dev/null +++ b/crates/cardwire-ebpf/src/main.rs @@ -0,0 +1,523 @@ +#![no_std] +#![no_main] + +use aya_ebpf::{ + helpers::{bpf_get_current_pid_tgid, bpf_probe_read_user, bpf_probe_write_user}, macros::{lsm, tracepoint}, programs::{LsmContext, TracePointContext} +}; +use aya_log_ebpf::{error, warn}; + +use crate::{ + helpers::{is_cardwired, is_comm_whitelisted, is_hybrid, is_inode_blocked, is_smart}, maps::{CW_CLOSE_EVENTS, CW_DIRENT, CW_EXEC_EVENTS, CloseEvent, ExecEvent}, vmlinux::{dentry, file, inode, linux_dirent64, path} +}; + +#[allow( + clippy::all, + dead_code, + improper_ctypes_definitions, + non_camel_case_types, + non_snake_case, + non_upper_case_globals, + unnecessary_transmutes, + unsafe_op_in_unsafe_fn, +)] +#[rustfmt::skip] +mod vmlinux; + +mod helpers; + +mod maps; + +struct ReturnCode {} +impl ReturnCode { + // Succes means we didn't block the process + const SUCCESS: Result = Ok(0); + // ENOENT means we blocked the process, it can't see the file + const ENOENT: Result = Ok(-2); +} + +// Used of CW_DAEMON_PID array +const DAEMON_INDEX: u32 = 0; + +struct CardwiredSetting {} +impl CardwiredSetting { + const EXP_NVIDIA: u8 = 0; +} +/* + Modes +*/ +const MODE_INDEX: u32 = 0; +const INTEGRATED: u8 = 0; +const HYBRID: u8 = 1; +const MANUAL: u8 = 2; +const SMART: u8 = 3; + +// About verifications: +// All hooks must call the verifications functions before reading any ptr and doing actions +// This prevent slowing down the kernel without justification +// Eg. If the system is on hybrid, we do not need to check if the GPU should be hidden, just skip +// the event + +// List of current verifications: +// is_cardwired() -> verify if the event was generated by the daemon, if true skip +// is_comm_whitelisted() -> verify if the event was generated by a whitelisted comm, if true skip +// is_hybrid() -> verify if the system is in hybrid, if true skip +// if is_smart() -> verify if the system is in smart, only for sched_process_exec and +// sched_process_exit, if false skip in these hooks + +#[lsm(hook = "file_open")] +pub fn file_open(ctx: LsmContext) -> i32 { + match unsafe { try_file_open(ctx) } { + Ok(ret) => ret, + Err(ret) => ret, + } +} + +unsafe fn try_file_open(ctx: LsmContext) -> Result { + if is_comm_whitelisted() { + return ReturnCode::SUCCESS; + } + + // If it's the daemon, we must exit + match is_cardwired() { + Some(res) => { + if res { + return ReturnCode::SUCCESS; + } + } + None => { + // This error happen if either the array is not available or the index 0 of the array is + // empty + error!( + &ctx, + "EBPF is_cardwired() produced an error in file_open, skipping" + ); + return ReturnCode::SUCCESS; + } + } + + // If the mode is hybrid, we must exit + match unsafe { is_hybrid() } { + Some(res) => { + if res { + return ReturnCode::SUCCESS; + } + } + None => { + // This error happen if either the array is not available or the index 0 of the array is + // empty + error!( + &ctx, + "EBPF is_hybrid() produced an error in file_open, skipping" + ); + return ReturnCode::SUCCESS; + } + } + + let file_ptr: *const file = ctx.arg(0); + if file_ptr.is_null() { + return ReturnCode::SUCCESS; + } + + let d: *mut dentry = unsafe { (*file_ptr).__bindgen_anon_1.f_path.dentry }; + + // if no dentry, exit + if d.is_null() { + return ReturnCode::SUCCESS; + } + + // Get a mutable ptr to the inode + let inode_ptr: *mut inode = unsafe { (*d).d_inode }; + + if inode_ptr.is_null() { + return ReturnCode::SUCCESS; + } + let inode: u64 = unsafe { (*inode_ptr).i_ino }; + + match unsafe { is_inode_blocked(inode) } { + true => ReturnCode::ENOENT, + false => ReturnCode::SUCCESS, + } +} + +#[lsm(hook = "inode_permission")] +pub fn inode_permission(ctx: LsmContext) -> i32 { + match unsafe { try_inode_permission(ctx) } { + Ok(ret) => ret, + Err(ret) => ret, + } +} + +unsafe fn try_inode_permission(ctx: LsmContext) -> Result { + if is_comm_whitelisted() { + return ReturnCode::SUCCESS; + } + + // If it's the daemon, we must exit + match is_cardwired() { + Some(res) => { + if res { + return ReturnCode::SUCCESS; + } + } + None => { + // This error happen if either the array is not available or the index 0 of the array is + // empty + error!( + &ctx, + "EBPF is_cardwired() produced an error in inode_permission, skipping" + ); + return ReturnCode::SUCCESS; + } + } + + // If the mode is hybrid, we must exit + match unsafe { is_hybrid() } { + Some(res) => { + if res { + return ReturnCode::SUCCESS; + } + } + None => { + // This error happen if either the array is not available or the index 0 of the array is + // empty + error!( + &ctx, + "EBPF is_hybrid() produced an error in inode_permission, skipping" + ); + return ReturnCode::SUCCESS; + } + } + + // Get a mutable ptr to the inode, in inode_permission it's the first argument + let inode_ptr: *mut inode = ctx.arg(0); + + if inode_ptr.is_null() { + return ReturnCode::SUCCESS; + } + let inode: u64 = unsafe { (*inode_ptr).i_ino }; + + match unsafe { is_inode_blocked(inode) } { + true => ReturnCode::ENOENT, + false => ReturnCode::SUCCESS, + } +} + +#[lsm(hook = "inode_getattr")] +pub fn inode_getattr(ctx: LsmContext) -> i32 { + match unsafe { try_inode_getattr(ctx) } { + Ok(ret) => ret, + Err(ret) => ret, + } +} + +unsafe fn try_inode_getattr(ctx: LsmContext) -> Result { + if is_comm_whitelisted() { + return ReturnCode::SUCCESS; + } + + // If it's the daemon, we must exit + match is_cardwired() { + Some(res) => { + if res { + return ReturnCode::SUCCESS; + } + } + None => { + // This error happen if either the array is not available or the index 0 of the array is + // empty + error!( + &ctx, + "EBPF is_cardwired() produced an error in inode_getattr, skipping" + ); + return ReturnCode::SUCCESS; + } + } + + // If the mode is hybrid, we must exit + match unsafe { is_hybrid() } { + Some(res) => { + if res { + return ReturnCode::SUCCESS; + } + } + None => { + // This error happen if either the array is not available or the index 0 of the array is + // empty + error!( + &ctx, + "EBPF is_hybrid() produced an error in inode_getattr, skipping" + ); + return ReturnCode::SUCCESS; + } + } + + let path_ptr: *const path = ctx.arg(0); + if path_ptr.is_null() { + return ReturnCode::SUCCESS; + } + + let dentry_ptr: *mut dentry = unsafe { (*path_ptr).dentry }; + + if dentry_ptr.is_null() { + return ReturnCode::SUCCESS; + } + + // Get a mutable ptr to the inode, in inode_permission it's the first argument + let inode_ptr: *mut inode = unsafe { (*dentry_ptr).d_inode }; + + if inode_ptr.is_null() { + return ReturnCode::SUCCESS; + } + let inode: u64 = unsafe { (*inode_ptr).i_ino }; + + match unsafe { is_inode_blocked(inode) } { + true => ReturnCode::ENOENT, + false => ReturnCode::SUCCESS, + } +} + +#[tracepoint] +pub fn tracepoint_enter_getdents64(ctx: TracePointContext) -> u32 { + match unsafe { try_tracepoint_enter_getdents64(ctx) } { + Ok(ret) => ret as u32, + Err(ret) => ret as u32, + } +} + +unsafe fn try_tracepoint_enter_getdents64(ctx: TracePointContext) -> Result { + if is_comm_whitelisted() { + return ReturnCode::SUCCESS; + } + // If it's the daemon, we must exit + match is_cardwired() { + Some(res) => { + if res { + return ReturnCode::SUCCESS; + } + } + None => { + // This error happen if either the array is not available or the index 0 of the array is + // empty + error!( + &ctx, + "EBPF is_cardwired() produced an error in tracepoint_enter_getdents64, skipping" + ); + return ReturnCode::SUCCESS; + } + } + + // If the mode is hybrid, we must exit + match unsafe { is_hybrid() } { + Some(res) => { + if res { + return ReturnCode::SUCCESS; + } + } + None => { + // This error happen if either the array is not available or the index 0 of the array is + // empty + error!( + &ctx, + "EBPF is_hybrid() produced an error in tracepoint_enter_getdents64, skipping" + ); + return ReturnCode::SUCCESS; + } + } + + const DIRP_OFFSET: usize = 24; + + let pid = (bpf_get_current_pid_tgid() >> 32) as u32; + + let dirp_ptr: u64 = unsafe { ctx.read_at(DIRP_OFFSET)? }; + + CW_DIRENT.insert(&pid, &dirp_ptr, 0)?; + + ReturnCode::SUCCESS +} + +#[tracepoint] +pub fn tracepoint_exit_getdents64(ctx: TracePointContext) -> u32 { + match unsafe { try_tracepoint_exit_getdents64(ctx) } { + Ok(ret) => ret as u32, + Err(ret) => ret as u32, + } +} + +unsafe fn try_tracepoint_exit_getdents64(ctx: TracePointContext) -> Result { + let pid = (bpf_get_current_pid_tgid() >> 32) as u32; + let dirent_ptr = match unsafe { CW_DIRENT.get(&pid) } { + Some(ptr) => *ptr as *const linux_dirent64, + None => return ReturnCode::SUCCESS, + }; + + // Remove entry immediately to avoid map leak + let _ = CW_DIRENT.remove(&pid); + + let retval = match unsafe { ctx.read_at::(16) } { + Ok(ret) => ret as u64, + Err(_) => return ReturnCode::SUCCESS, + }; + + if retval == 0 || retval > 32768 { + return ReturnCode::SUCCESS; + } + + // Buffer end = base + bytes written + let base = dirent_ptr as u64; + let end = base.wrapping_add(retval); + + let mut dirent_ptr = dirent_ptr; + let mut prev_ptr: u64 = 0; + let mut prev_reclen: u16 = 0; + for _ in 0..512 { + // Check before reading + if (dirent_ptr as u64).wrapping_add(core::mem::size_of::() as u64) > end { + break; + } + + let dirent = match unsafe { bpf_probe_read_user(dirent_ptr) } { + Ok(dirent) => dirent, + Err(_) => break, + }; + + let reclen = dirent.d_reclen; + + // Malformed + if reclen == 0 || reclen > 512 { + break; + } + + let blocked = unsafe { is_inode_blocked(dirent.d_ino) }; + if blocked { + // We can't hide the first entry + if prev_ptr != 0 { + let new_reclen = prev_reclen.wrapping_add(reclen); + + let reclen_ptr = (prev_ptr.wrapping_add(16)) as *mut u16; + match unsafe { bpf_probe_write_user(reclen_ptr, &new_reclen) } { + Ok(_) => {} + Err(err) => { + error!(&ctx, "failed to write new reclen {}", err); + break; + } + }; + + prev_reclen = new_reclen; + } + } else { + prev_ptr = dirent_ptr as u64; + prev_reclen = reclen; + } + + dirent_ptr = (dirent_ptr as u64).wrapping_add(reclen as u64) as *const linux_dirent64; + } + + ReturnCode::SUCCESS +} + +#[tracepoint] +pub fn tracepoint_sched_process_exec(ctx: TracePointContext) -> u32 { + match unsafe { try_tracepoint_sched_process_exec(ctx) } { + Ok(ret) => ret as u32, + Err(ret) => ret as u32, + } +} + +unsafe fn try_tracepoint_sched_process_exec(ctx: TracePointContext) -> Result { + // If it's the daemon, we must exit + match is_cardwired() { + Some(res) => { + if res { + return ReturnCode::SUCCESS; + } + } + None => { + // This error happen if either the array is not available or the index 0 of the array is + // empty + error!( + &ctx, + "EBPF is_cardwired() produced an error in tracepoint_sched_process_exec, skipping" + ); + return ReturnCode::SUCCESS; + } + } + if is_comm_whitelisted() { + return ReturnCode::SUCCESS; + } + + // Only proceed if we are in smart mode, events are not used when not in smart mode and it would + // slow down the system for no reason + if let Some(res) = unsafe { is_smart() } + && res + { + // Reserve byte in the ring buf for the event, return if fail + let mut ring_buf = match CW_EXEC_EVENTS.reserve(0) { + Some(ring_buf) => ring_buf, + // Reservation fail, warn and leave + None => { + warn!(&ctx, "failed to reserve bytes for ring_buf: CW_EXEC_EVENTS"); + return ReturnCode::SUCCESS; + } + }; + let pid = (bpf_get_current_pid_tgid() >> 32) as u32; + + // We just send the event to userspace + let event: ExecEvent = ExecEvent { pid }; + + // Now submit the event + ring_buf.write(event); + ring_buf.submit(0); + } + + ReturnCode::SUCCESS +} + +#[tracepoint] +pub fn tracepoint_sched_process_exit(ctx: TracePointContext) -> u32 { + match unsafe { try_tracepoint_sched_process_exit(ctx) } { + Ok(ret) => ret as u32, + Err(ret) => ret as u32, + } +} + +unsafe fn try_tracepoint_sched_process_exit(ctx: TracePointContext) -> Result { + // Only proceed if we are in smart mode, events are not used when not in smart mode and it would + // slow down the system for no reason + if let Some(res) = unsafe { is_smart() } + && res + { + let pid_tgid: u64 = bpf_get_current_pid_tgid(); + let tgid = pid_tgid as u32; + let pid = (pid_tgid >> 32) as u32; + + // Only send close event if the main thread is exiting + if pid != tgid { + return ReturnCode::SUCCESS; + } + + let event: CloseEvent = CloseEvent { pid }; + + let mut ring_buf = match CW_CLOSE_EVENTS.reserve(0) { + Some(ring_buf) => ring_buf, + // Reservation fail, warn and leave + None => { + warn!( + &ctx, + "failed to reserve bytes for ring_buf: CW_CLOSE_EVENTS" + ); + return ReturnCode::SUCCESS; + } + }; + + ring_buf.write(event); + ring_buf.submit(0); + } + + ReturnCode::SUCCESS +} + +#[cfg(not(test))] +#[panic_handler] // (3) +fn panic(_info: &core::panic::PanicInfo) -> ! { + loop {} +} diff --git a/crates/cardwire-ebpf/src/maps.rs b/crates/cardwire-ebpf/src/maps.rs new file mode 100644 index 00000000..eca5f5fa --- /dev/null +++ b/crates/cardwire-ebpf/src/maps.rs @@ -0,0 +1,99 @@ +use aya_ebpf::{ + btf_maps::RingBuf, macros::{btf_map, map}, maps::{Array, HashMap} +}; + +/* + A single entry array used to store cardwired pid +*/ +#[map] +pub static CW_DAEMON_PID: Array = Array::::with_max_entries(1, 0); + +/* + A single entry array used to store the current cardwired mode + List of possible values: + 0 - Integrated + 1 - Hybrid + 2 - Manual + 3 - Smart +*/ +#[map] +pub static CW_MODE: Array = Array::::with_max_entries(1, 0); + +/* + Hashmap containing cardwired exp_nvidia setting + 0 - Exp_nvidia_setting +*/ +#[map] +pub static CW_SETTINGS: HashMap = HashMap::::with_max_entries(255, 0); + +/* + Map used to store blocked inodes sent from userspace + Key = Inode + Value = associated GPU +*/ +#[map] +pub static CW_BLOCKED_INO: HashMap = HashMap::::with_max_entries(4096, 0); + +/* + Map used to store blocked inodes from exp_nvidia + Key = Inode + Value = 0, not used because exp files can be shared by multiple devices (nvidiactl) +*/ +#[map] +pub static CW_EXP_BLK_INO: HashMap = HashMap::::with_max_entries(4096, 0); + +/* + Map used to store a list of allowed pid + Key = PID + Value = always 0 +*/ +#[map] +pub static CW_ALLOWED_PID: HashMap = HashMap::::with_max_entries(16384, 0); + +/* + Map used to store a list of forced pid (CARDWIRE_FORCE_GPU) + The value is used to identify a GPU, the process will only be able to see blocked_ino that matchs + If it doesnt match, the process wont be able to see the said ino + Key = PID + Value = GPU id +*/ +#[map] +pub static CW_FORCED_PID: HashMap = HashMap::::with_max_entries(16384, 0); + +/* + Map used to store a list of whitelist comm, some comm needs to have access to the GPUs, preventing that access can cause crash or instability + Eg. udev on pci rescan, pacman on nvidia driver update +*/ +#[map] +pub static CW_ALLOWED_COMM: HashMap<[u8; 16], u8> = + HashMap::<[u8; 16], u8>::with_max_entries(1024, 0); + +#[map] +pub static CW_DIRENT: HashMap = HashMap::::with_max_entries(1024, 0); + +#[repr(align(8))] +#[allow(dead_code)] +pub struct ExecEvent { + pub pid: u32, +} + +#[btf_map] +pub static CW_EXEC_EVENTS: RingBuf = RingBuf::new(); + +#[repr(align(8))] +#[allow(dead_code)] +pub struct CloseEvent { + pub pid: u32, +} + +#[btf_map] +pub static CW_CLOSE_EVENTS: RingBuf = RingBuf::new(); + +#[repr(align(8))] +#[allow(dead_code)] +pub struct ReportEvent { + pub pid: u32, +} + +#[btf_map] +pub static CW_REPORT_EVENTS: RingBuf = RingBuf::new(); diff --git a/crates/cardwire-ebpf/src/vmlinux.rs b/crates/cardwire-ebpf/src/vmlinux.rs new file mode 100644 index 00000000..8fc9ce11 --- /dev/null +++ b/crates/cardwire-ebpf/src/vmlinux.rs @@ -0,0 +1,75364 @@ +/* automatically generated by rust-bindgen 0.72.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 = unsafe { + *(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 = unsafe { + (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize) + }; + unsafe { *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 unsafe { 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 + }; + unsafe { Self::raw_set_bit(this, index + bit_offset, val_bit_is_set) }; + } + } +} +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField(::core::marker::PhantomData, [T; 0]); +impl __IncompleteArrayField { + #[inline] + pub const fn new() -> Self { + __IncompleteArrayField(::core::marker::PhantomData, []) + } + #[inline] + pub fn as_ptr(&self) -> *const T { + self as *const _ as *const T + } + #[inline] + pub fn as_mut_ptr(&mut self) -> *mut T { + self as *mut _ as *mut T + } + #[inline] + pub unsafe fn as_slice(&self, len: usize) -> &[T] { + ::core::slice::from_raw_parts(self.as_ptr(), len) + } + #[inline] + pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { + ::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len) + } +} +impl ::core::fmt::Debug for __IncompleteArrayField { + fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + fmt.write_str("__IncompleteArrayField") + } +} +#[repr(C)] +pub struct __BindgenUnionField(::core::marker::PhantomData); +impl __BindgenUnionField { + #[inline] + pub const fn new() -> Self { + __BindgenUnionField(::core::marker::PhantomData) + } + #[inline] + pub unsafe fn as_ref(&self) -> &T { + ::core::mem::transmute(self) + } + #[inline] + pub unsafe fn as_mut(&mut self) -> &mut T { + ::core::mem::transmute(self) + } +} +impl ::core::default::Default for __BindgenUnionField { + #[inline] + fn default() -> Self { + Self::new() + } +} +impl ::core::clone::Clone for __BindgenUnionField { + #[inline] + fn clone(&self) -> Self { + *self + } +} +impl ::core::marker::Copy for __BindgenUnionField {} +impl ::core::fmt::Debug for __BindgenUnionField { + fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + fmt.write_str("__BindgenUnionField") + } +} +impl ::core::hash::Hash for __BindgenUnionField { + fn hash(&self, _state: &mut H) {} +} +impl ::core::cmp::PartialEq for __BindgenUnionField { + fn eq(&self, _other: &__BindgenUnionField) -> bool { + true + } +} +impl ::core::cmp::Eq for __BindgenUnionField {} +pub mod phy_interface_t { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const PHY_INTERFACE_MODE_NA: Type = 0; + pub const PHY_INTERFACE_MODE_INTERNAL: Type = 1; + pub const PHY_INTERFACE_MODE_MII: Type = 2; + pub const PHY_INTERFACE_MODE_GMII: Type = 3; + pub const PHY_INTERFACE_MODE_SGMII: Type = 4; + pub const PHY_INTERFACE_MODE_TBI: Type = 5; + pub const PHY_INTERFACE_MODE_REVMII: Type = 6; + pub const PHY_INTERFACE_MODE_RMII: Type = 7; + pub const PHY_INTERFACE_MODE_REVRMII: Type = 8; + pub const PHY_INTERFACE_MODE_RGMII: Type = 9; + pub const PHY_INTERFACE_MODE_RGMII_ID: Type = 10; + pub const PHY_INTERFACE_MODE_RGMII_RXID: Type = 11; + pub const PHY_INTERFACE_MODE_RGMII_TXID: Type = 12; + pub const PHY_INTERFACE_MODE_RTBI: Type = 13; + pub const PHY_INTERFACE_MODE_SMII: Type = 14; + pub const PHY_INTERFACE_MODE_XGMII: Type = 15; + pub const PHY_INTERFACE_MODE_XLGMII: Type = 16; + pub const PHY_INTERFACE_MODE_MOCA: Type = 17; + pub const PHY_INTERFACE_MODE_PSGMII: Type = 18; + pub const PHY_INTERFACE_MODE_QSGMII: Type = 19; + pub const PHY_INTERFACE_MODE_TRGMII: Type = 20; + pub const PHY_INTERFACE_MODE_100BASEX: Type = 21; + pub const PHY_INTERFACE_MODE_1000BASEX: Type = 22; + pub const PHY_INTERFACE_MODE_2500BASEX: Type = 23; + pub const PHY_INTERFACE_MODE_5GBASER: Type = 24; + pub const PHY_INTERFACE_MODE_RXAUI: Type = 25; + pub const PHY_INTERFACE_MODE_XAUI: Type = 26; + pub const PHY_INTERFACE_MODE_10GBASER: Type = 27; + pub const PHY_INTERFACE_MODE_25GBASER: Type = 28; + pub const PHY_INTERFACE_MODE_USXGMII: Type = 29; + pub const PHY_INTERFACE_MODE_10GKR: Type = 30; + pub const PHY_INTERFACE_MODE_QUSGMII: Type = 31; + pub const PHY_INTERFACE_MODE_1000BASEKX: Type = 32; + pub const PHY_INTERFACE_MODE_10G_QXGMII: Type = 33; + pub const PHY_INTERFACE_MODE_50GBASER: Type = 34; + pub const PHY_INTERFACE_MODE_LAUI: Type = 35; + pub const PHY_INTERFACE_MODE_100GBASEP: Type = 36; + pub const PHY_INTERFACE_MODE_MIILITE: Type = 37; + pub const PHY_INTERFACE_MODE_MAX: Type = 38; +} +pub mod socket_state { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const SS_FREE: Type = 0; + pub const SS_UNCONNECTED: Type = 1; + pub const SS_CONNECTING: Type = 2; + pub const SS_CONNECTED: Type = 3; + pub const SS_DISCONNECTING: Type = 4; +} +pub mod audit_mode { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const AUDIT_NORMAL: Type = 0; + pub const AUDIT_QUIET_DENIED: Type = 1; + pub const AUDIT_QUIET: Type = 2; + pub const AUDIT_NOQUIET: Type = 3; + pub const AUDIT_ALL: Type = 4; +} +pub mod audit_state { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const AUDIT_STATE_DISABLED: Type = 0; + pub const AUDIT_STATE_BUILD: Type = 1; + pub const AUDIT_STATE_RECORD: Type = 2; +} +pub mod blk_crypto_key_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const BLK_CRYPTO_KEY_TYPE_RAW: Type = 1; + pub const BLK_CRYPTO_KEY_TYPE_HW_WRAPPED: Type = 2; +} +pub mod blk_crypto_mode_num { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const BLK_ENCRYPTION_MODE_INVALID: Type = 0; + pub const BLK_ENCRYPTION_MODE_AES_256_XTS: Type = 1; + pub const BLK_ENCRYPTION_MODE_AES_128_CBC_ESSIV: Type = 2; + pub const BLK_ENCRYPTION_MODE_ADIANTUM: Type = 3; + pub const BLK_ENCRYPTION_MODE_SM4_XTS: Type = 4; + pub const BLK_ENCRYPTION_MODE_MAX: Type = 5; +} +pub mod blk_eh_timer_return { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const BLK_EH_DONE: Type = 0; + pub const BLK_EH_RESET_TIMER: Type = 1; +} +pub mod blk_integrity_checksum { + pub type Type = ::aya_ebpf::cty::c_schar; + pub const BLK_INTEGRITY_CSUM_NONE: Type = 0; + pub const BLK_INTEGRITY_CSUM_IP: Type = 1; + pub const BLK_INTEGRITY_CSUM_CRC: Type = 2; + pub const BLK_INTEGRITY_CSUM_CRC64: Type = 3; +} +pub mod blk_unique_id { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const BLK_UID_T10: Type = 1; + pub const BLK_UID_EUI64: Type = 2; + pub const BLK_UID_NAA: Type = 3; +} +pub mod bpf_access_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const BPF_READ: Type = 1; + pub const BPF_WRITE: Type = 2; +} +pub mod bpf_arg_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const ARG_DONTCARE: Type = 0; + pub const ARG_CONST_MAP_PTR: Type = 1; + pub const ARG_PTR_TO_MAP_KEY: Type = 2; + pub const ARG_PTR_TO_MAP_VALUE: Type = 3; + pub const ARG_PTR_TO_MEM: Type = 4; + pub const ARG_PTR_TO_ARENA: Type = 5; + pub const ARG_CONST_SIZE: Type = 6; + pub const ARG_CONST_SIZE_OR_ZERO: Type = 7; + pub const ARG_PTR_TO_CTX: Type = 8; + pub const ARG_ANYTHING: Type = 9; + pub const ARG_PTR_TO_SPIN_LOCK: Type = 10; + pub const ARG_PTR_TO_SOCK_COMMON: Type = 11; + pub const ARG_PTR_TO_SOCKET: Type = 12; + pub const ARG_PTR_TO_BTF_ID: Type = 13; + pub const ARG_PTR_TO_RINGBUF_MEM: Type = 14; + pub const ARG_CONST_ALLOC_SIZE_OR_ZERO: Type = 15; + pub const ARG_PTR_TO_BTF_ID_SOCK_COMMON: Type = 16; + pub const ARG_PTR_TO_PERCPU_BTF_ID: Type = 17; + pub const ARG_PTR_TO_FUNC: Type = 18; + pub const ARG_PTR_TO_STACK: Type = 19; + pub const ARG_PTR_TO_CONST_STR: Type = 20; + pub const ARG_PTR_TO_TIMER: Type = 21; + pub const ARG_KPTR_XCHG_DEST: Type = 22; + pub const ARG_PTR_TO_DYNPTR: Type = 23; + pub const __BPF_ARG_TYPE_MAX: Type = 24; + pub const ARG_PTR_TO_MAP_VALUE_OR_NULL: Type = 259; + pub const ARG_PTR_TO_MEM_OR_NULL: Type = 260; + pub const ARG_PTR_TO_CTX_OR_NULL: Type = 264; + pub const ARG_PTR_TO_SOCKET_OR_NULL: Type = 268; + pub const ARG_PTR_TO_STACK_OR_NULL: Type = 275; + pub const ARG_PTR_TO_BTF_ID_OR_NULL: Type = 269; + pub const ARG_PTR_TO_UNINIT_MEM: Type = 67141636; + pub const ARG_PTR_TO_FIXED_SIZE_MEM: Type = 262148; + pub const __BPF_ARG_TYPE_LIMIT: Type = 536870911; +} +pub mod bpf_attach_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const BPF_CGROUP_INET_INGRESS: Type = 0; + pub const BPF_CGROUP_INET_EGRESS: Type = 1; + pub const BPF_CGROUP_INET_SOCK_CREATE: Type = 2; + pub const BPF_CGROUP_SOCK_OPS: Type = 3; + pub const BPF_SK_SKB_STREAM_PARSER: Type = 4; + pub const BPF_SK_SKB_STREAM_VERDICT: Type = 5; + pub const BPF_CGROUP_DEVICE: Type = 6; + pub const BPF_SK_MSG_VERDICT: Type = 7; + pub const BPF_CGROUP_INET4_BIND: Type = 8; + pub const BPF_CGROUP_INET6_BIND: Type = 9; + pub const BPF_CGROUP_INET4_CONNECT: Type = 10; + pub const BPF_CGROUP_INET6_CONNECT: Type = 11; + pub const BPF_CGROUP_INET4_POST_BIND: Type = 12; + pub const BPF_CGROUP_INET6_POST_BIND: Type = 13; + pub const BPF_CGROUP_UDP4_SENDMSG: Type = 14; + pub const BPF_CGROUP_UDP6_SENDMSG: Type = 15; + pub const BPF_LIRC_MODE2: Type = 16; + pub const BPF_FLOW_DISSECTOR: Type = 17; + pub const BPF_CGROUP_SYSCTL: Type = 18; + pub const BPF_CGROUP_UDP4_RECVMSG: Type = 19; + pub const BPF_CGROUP_UDP6_RECVMSG: Type = 20; + pub const BPF_CGROUP_GETSOCKOPT: Type = 21; + pub const BPF_CGROUP_SETSOCKOPT: Type = 22; + pub const BPF_TRACE_RAW_TP: Type = 23; + pub const BPF_TRACE_FENTRY: Type = 24; + pub const BPF_TRACE_FEXIT: Type = 25; + pub const BPF_MODIFY_RETURN: Type = 26; + pub const BPF_LSM_MAC: Type = 27; + pub const BPF_TRACE_ITER: Type = 28; + pub const BPF_CGROUP_INET4_GETPEERNAME: Type = 29; + pub const BPF_CGROUP_INET6_GETPEERNAME: Type = 30; + pub const BPF_CGROUP_INET4_GETSOCKNAME: Type = 31; + pub const BPF_CGROUP_INET6_GETSOCKNAME: Type = 32; + pub const BPF_XDP_DEVMAP: Type = 33; + pub const BPF_CGROUP_INET_SOCK_RELEASE: Type = 34; + pub const BPF_XDP_CPUMAP: Type = 35; + pub const BPF_SK_LOOKUP: Type = 36; + pub const BPF_XDP: Type = 37; + pub const BPF_SK_SKB_VERDICT: Type = 38; + pub const BPF_SK_REUSEPORT_SELECT: Type = 39; + pub const BPF_SK_REUSEPORT_SELECT_OR_MIGRATE: Type = 40; + pub const BPF_PERF_EVENT: Type = 41; + pub const BPF_TRACE_KPROBE_MULTI: Type = 42; + pub const BPF_LSM_CGROUP: Type = 43; + pub const BPF_STRUCT_OPS: Type = 44; + pub const BPF_NETFILTER: Type = 45; + pub const BPF_TCX_INGRESS: Type = 46; + pub const BPF_TCX_EGRESS: Type = 47; + pub const BPF_TRACE_UPROBE_MULTI: Type = 48; + pub const BPF_CGROUP_UNIX_CONNECT: Type = 49; + pub const BPF_CGROUP_UNIX_SENDMSG: Type = 50; + pub const BPF_CGROUP_UNIX_RECVMSG: Type = 51; + pub const BPF_CGROUP_UNIX_GETPEERNAME: Type = 52; + pub const BPF_CGROUP_UNIX_GETSOCKNAME: Type = 53; + pub const BPF_NETKIT_PRIMARY: Type = 54; + pub const BPF_NETKIT_PEER: Type = 55; + pub const BPF_TRACE_KPROBE_SESSION: Type = 56; + pub const BPF_TRACE_UPROBE_SESSION: Type = 57; + pub const BPF_TRACE_FSESSION: Type = 58; + pub const __MAX_BPF_ATTACH_TYPE: Type = 59; +} +pub mod bpf_cgroup_iter_order { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const BPF_CGROUP_ITER_ORDER_UNSPEC: Type = 0; + pub const BPF_CGROUP_ITER_SELF_ONLY: Type = 1; + pub const BPF_CGROUP_ITER_DESCENDANTS_PRE: Type = 2; + pub const BPF_CGROUP_ITER_DESCENDANTS_POST: Type = 3; + pub const BPF_CGROUP_ITER_ANCESTORS_UP: Type = 4; + pub const BPF_CGROUP_ITER_CHILDREN: Type = 5; +} +pub mod bpf_dynptr_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const BPF_DYNPTR_TYPE_INVALID: Type = 0; + pub const BPF_DYNPTR_TYPE_LOCAL: Type = 1; + pub const BPF_DYNPTR_TYPE_RINGBUF: Type = 2; + pub const BPF_DYNPTR_TYPE_SKB: Type = 3; + pub const BPF_DYNPTR_TYPE_XDP: Type = 4; + pub const BPF_DYNPTR_TYPE_SKB_META: Type = 5; + pub const BPF_DYNPTR_TYPE_FILE: Type = 6; +} +pub mod bpf_func_id { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const BPF_FUNC_unspec: Type = 0; + pub const BPF_FUNC_map_lookup_elem: Type = 1; + pub const BPF_FUNC_map_update_elem: Type = 2; + pub const BPF_FUNC_map_delete_elem: Type = 3; + pub const BPF_FUNC_probe_read: Type = 4; + pub const BPF_FUNC_ktime_get_ns: Type = 5; + pub const BPF_FUNC_trace_printk: Type = 6; + pub const BPF_FUNC_get_prandom_u32: Type = 7; + pub const BPF_FUNC_get_smp_processor_id: Type = 8; + pub const BPF_FUNC_skb_store_bytes: Type = 9; + pub const BPF_FUNC_l3_csum_replace: Type = 10; + pub const BPF_FUNC_l4_csum_replace: Type = 11; + pub const BPF_FUNC_tail_call: Type = 12; + pub const BPF_FUNC_clone_redirect: Type = 13; + pub const BPF_FUNC_get_current_pid_tgid: Type = 14; + pub const BPF_FUNC_get_current_uid_gid: Type = 15; + pub const BPF_FUNC_get_current_comm: Type = 16; + pub const BPF_FUNC_get_cgroup_classid: Type = 17; + pub const BPF_FUNC_skb_vlan_push: Type = 18; + pub const BPF_FUNC_skb_vlan_pop: Type = 19; + pub const BPF_FUNC_skb_get_tunnel_key: Type = 20; + pub const BPF_FUNC_skb_set_tunnel_key: Type = 21; + pub const BPF_FUNC_perf_event_read: Type = 22; + pub const BPF_FUNC_redirect: Type = 23; + pub const BPF_FUNC_get_route_realm: Type = 24; + pub const BPF_FUNC_perf_event_output: Type = 25; + pub const BPF_FUNC_skb_load_bytes: Type = 26; + pub const BPF_FUNC_get_stackid: Type = 27; + pub const BPF_FUNC_csum_diff: Type = 28; + pub const BPF_FUNC_skb_get_tunnel_opt: Type = 29; + pub const BPF_FUNC_skb_set_tunnel_opt: Type = 30; + pub const BPF_FUNC_skb_change_proto: Type = 31; + pub const BPF_FUNC_skb_change_type: Type = 32; + pub const BPF_FUNC_skb_under_cgroup: Type = 33; + pub const BPF_FUNC_get_hash_recalc: Type = 34; + pub const BPF_FUNC_get_current_task: Type = 35; + pub const BPF_FUNC_probe_write_user: Type = 36; + pub const BPF_FUNC_current_task_under_cgroup: Type = 37; + pub const BPF_FUNC_skb_change_tail: Type = 38; + pub const BPF_FUNC_skb_pull_data: Type = 39; + pub const BPF_FUNC_csum_update: Type = 40; + pub const BPF_FUNC_set_hash_invalid: Type = 41; + pub const BPF_FUNC_get_numa_node_id: Type = 42; + pub const BPF_FUNC_skb_change_head: Type = 43; + pub const BPF_FUNC_xdp_adjust_head: Type = 44; + pub const BPF_FUNC_probe_read_str: Type = 45; + pub const BPF_FUNC_get_socket_cookie: Type = 46; + pub const BPF_FUNC_get_socket_uid: Type = 47; + pub const BPF_FUNC_set_hash: Type = 48; + pub const BPF_FUNC_setsockopt: Type = 49; + pub const BPF_FUNC_skb_adjust_room: Type = 50; + pub const BPF_FUNC_redirect_map: Type = 51; + pub const BPF_FUNC_sk_redirect_map: Type = 52; + pub const BPF_FUNC_sock_map_update: Type = 53; + pub const BPF_FUNC_xdp_adjust_meta: Type = 54; + pub const BPF_FUNC_perf_event_read_value: Type = 55; + pub const BPF_FUNC_perf_prog_read_value: Type = 56; + pub const BPF_FUNC_getsockopt: Type = 57; + pub const BPF_FUNC_override_return: Type = 58; + pub const BPF_FUNC_sock_ops_cb_flags_set: Type = 59; + pub const BPF_FUNC_msg_redirect_map: Type = 60; + pub const BPF_FUNC_msg_apply_bytes: Type = 61; + pub const BPF_FUNC_msg_cork_bytes: Type = 62; + pub const BPF_FUNC_msg_pull_data: Type = 63; + pub const BPF_FUNC_bind: Type = 64; + pub const BPF_FUNC_xdp_adjust_tail: Type = 65; + pub const BPF_FUNC_skb_get_xfrm_state: Type = 66; + pub const BPF_FUNC_get_stack: Type = 67; + pub const BPF_FUNC_skb_load_bytes_relative: Type = 68; + pub const BPF_FUNC_fib_lookup: Type = 69; + pub const BPF_FUNC_sock_hash_update: Type = 70; + pub const BPF_FUNC_msg_redirect_hash: Type = 71; + pub const BPF_FUNC_sk_redirect_hash: Type = 72; + pub const BPF_FUNC_lwt_push_encap: Type = 73; + pub const BPF_FUNC_lwt_seg6_store_bytes: Type = 74; + pub const BPF_FUNC_lwt_seg6_adjust_srh: Type = 75; + pub const BPF_FUNC_lwt_seg6_action: Type = 76; + pub const BPF_FUNC_rc_repeat: Type = 77; + pub const BPF_FUNC_rc_keydown: Type = 78; + pub const BPF_FUNC_skb_cgroup_id: Type = 79; + pub const BPF_FUNC_get_current_cgroup_id: Type = 80; + pub const BPF_FUNC_get_local_storage: Type = 81; + pub const BPF_FUNC_sk_select_reuseport: Type = 82; + pub const BPF_FUNC_skb_ancestor_cgroup_id: Type = 83; + pub const BPF_FUNC_sk_lookup_tcp: Type = 84; + pub const BPF_FUNC_sk_lookup_udp: Type = 85; + pub const BPF_FUNC_sk_release: Type = 86; + pub const BPF_FUNC_map_push_elem: Type = 87; + pub const BPF_FUNC_map_pop_elem: Type = 88; + pub const BPF_FUNC_map_peek_elem: Type = 89; + pub const BPF_FUNC_msg_push_data: Type = 90; + pub const BPF_FUNC_msg_pop_data: Type = 91; + pub const BPF_FUNC_rc_pointer_rel: Type = 92; + pub const BPF_FUNC_spin_lock: Type = 93; + pub const BPF_FUNC_spin_unlock: Type = 94; + pub const BPF_FUNC_sk_fullsock: Type = 95; + pub const BPF_FUNC_tcp_sock: Type = 96; + pub const BPF_FUNC_skb_ecn_set_ce: Type = 97; + pub const BPF_FUNC_get_listener_sock: Type = 98; + pub const BPF_FUNC_skc_lookup_tcp: Type = 99; + pub const BPF_FUNC_tcp_check_syncookie: Type = 100; + pub const BPF_FUNC_sysctl_get_name: Type = 101; + pub const BPF_FUNC_sysctl_get_current_value: Type = 102; + pub const BPF_FUNC_sysctl_get_new_value: Type = 103; + pub const BPF_FUNC_sysctl_set_new_value: Type = 104; + pub const BPF_FUNC_strtol: Type = 105; + pub const BPF_FUNC_strtoul: Type = 106; + pub const BPF_FUNC_sk_storage_get: Type = 107; + pub const BPF_FUNC_sk_storage_delete: Type = 108; + pub const BPF_FUNC_send_signal: Type = 109; + pub const BPF_FUNC_tcp_gen_syncookie: Type = 110; + pub const BPF_FUNC_skb_output: Type = 111; + pub const BPF_FUNC_probe_read_user: Type = 112; + pub const BPF_FUNC_probe_read_kernel: Type = 113; + pub const BPF_FUNC_probe_read_user_str: Type = 114; + pub const BPF_FUNC_probe_read_kernel_str: Type = 115; + pub const BPF_FUNC_tcp_send_ack: Type = 116; + pub const BPF_FUNC_send_signal_thread: Type = 117; + pub const BPF_FUNC_jiffies64: Type = 118; + pub const BPF_FUNC_read_branch_records: Type = 119; + pub const BPF_FUNC_get_ns_current_pid_tgid: Type = 120; + pub const BPF_FUNC_xdp_output: Type = 121; + pub const BPF_FUNC_get_netns_cookie: Type = 122; + pub const BPF_FUNC_get_current_ancestor_cgroup_id: Type = 123; + pub const BPF_FUNC_sk_assign: Type = 124; + pub const BPF_FUNC_ktime_get_boot_ns: Type = 125; + pub const BPF_FUNC_seq_printf: Type = 126; + pub const BPF_FUNC_seq_write: Type = 127; + pub const BPF_FUNC_sk_cgroup_id: Type = 128; + pub const BPF_FUNC_sk_ancestor_cgroup_id: Type = 129; + pub const BPF_FUNC_ringbuf_output: Type = 130; + pub const BPF_FUNC_ringbuf_reserve: Type = 131; + pub const BPF_FUNC_ringbuf_submit: Type = 132; + pub const BPF_FUNC_ringbuf_discard: Type = 133; + pub const BPF_FUNC_ringbuf_query: Type = 134; + pub const BPF_FUNC_csum_level: Type = 135; + pub const BPF_FUNC_skc_to_tcp6_sock: Type = 136; + pub const BPF_FUNC_skc_to_tcp_sock: Type = 137; + pub const BPF_FUNC_skc_to_tcp_timewait_sock: Type = 138; + pub const BPF_FUNC_skc_to_tcp_request_sock: Type = 139; + pub const BPF_FUNC_skc_to_udp6_sock: Type = 140; + pub const BPF_FUNC_get_task_stack: Type = 141; + pub const BPF_FUNC_load_hdr_opt: Type = 142; + pub const BPF_FUNC_store_hdr_opt: Type = 143; + pub const BPF_FUNC_reserve_hdr_opt: Type = 144; + pub const BPF_FUNC_inode_storage_get: Type = 145; + pub const BPF_FUNC_inode_storage_delete: Type = 146; + pub const BPF_FUNC_d_path: Type = 147; + pub const BPF_FUNC_copy_from_user: Type = 148; + pub const BPF_FUNC_snprintf_btf: Type = 149; + pub const BPF_FUNC_seq_printf_btf: Type = 150; + pub const BPF_FUNC_skb_cgroup_classid: Type = 151; + pub const BPF_FUNC_redirect_neigh: Type = 152; + pub const BPF_FUNC_per_cpu_ptr: Type = 153; + pub const BPF_FUNC_this_cpu_ptr: Type = 154; + pub const BPF_FUNC_redirect_peer: Type = 155; + pub const BPF_FUNC_task_storage_get: Type = 156; + pub const BPF_FUNC_task_storage_delete: Type = 157; + pub const BPF_FUNC_get_current_task_btf: Type = 158; + pub const BPF_FUNC_bprm_opts_set: Type = 159; + pub const BPF_FUNC_ktime_get_coarse_ns: Type = 160; + pub const BPF_FUNC_ima_inode_hash: Type = 161; + pub const BPF_FUNC_sock_from_file: Type = 162; + pub const BPF_FUNC_check_mtu: Type = 163; + pub const BPF_FUNC_for_each_map_elem: Type = 164; + pub const BPF_FUNC_snprintf: Type = 165; + pub const BPF_FUNC_sys_bpf: Type = 166; + pub const BPF_FUNC_btf_find_by_name_kind: Type = 167; + pub const BPF_FUNC_sys_close: Type = 168; + pub const BPF_FUNC_timer_init: Type = 169; + pub const BPF_FUNC_timer_set_callback: Type = 170; + pub const BPF_FUNC_timer_start: Type = 171; + pub const BPF_FUNC_timer_cancel: Type = 172; + pub const BPF_FUNC_get_func_ip: Type = 173; + pub const BPF_FUNC_get_attach_cookie: Type = 174; + pub const BPF_FUNC_task_pt_regs: Type = 175; + pub const BPF_FUNC_get_branch_snapshot: Type = 176; + pub const BPF_FUNC_trace_vprintk: Type = 177; + pub const BPF_FUNC_skc_to_unix_sock: Type = 178; + pub const BPF_FUNC_kallsyms_lookup_name: Type = 179; + pub const BPF_FUNC_find_vma: Type = 180; + pub const BPF_FUNC_loop: Type = 181; + pub const BPF_FUNC_strncmp: Type = 182; + pub const BPF_FUNC_get_func_arg: Type = 183; + pub const BPF_FUNC_get_func_ret: Type = 184; + pub const BPF_FUNC_get_func_arg_cnt: Type = 185; + pub const BPF_FUNC_get_retval: Type = 186; + pub const BPF_FUNC_set_retval: Type = 187; + pub const BPF_FUNC_xdp_get_buff_len: Type = 188; + pub const BPF_FUNC_xdp_load_bytes: Type = 189; + pub const BPF_FUNC_xdp_store_bytes: Type = 190; + pub const BPF_FUNC_copy_from_user_task: Type = 191; + pub const BPF_FUNC_skb_set_tstamp: Type = 192; + pub const BPF_FUNC_ima_file_hash: Type = 193; + pub const BPF_FUNC_kptr_xchg: Type = 194; + pub const BPF_FUNC_map_lookup_percpu_elem: Type = 195; + pub const BPF_FUNC_skc_to_mptcp_sock: Type = 196; + pub const BPF_FUNC_dynptr_from_mem: Type = 197; + pub const BPF_FUNC_ringbuf_reserve_dynptr: Type = 198; + pub const BPF_FUNC_ringbuf_submit_dynptr: Type = 199; + pub const BPF_FUNC_ringbuf_discard_dynptr: Type = 200; + pub const BPF_FUNC_dynptr_read: Type = 201; + pub const BPF_FUNC_dynptr_write: Type = 202; + pub const BPF_FUNC_dynptr_data: Type = 203; + pub const BPF_FUNC_tcp_raw_gen_syncookie_ipv4: Type = 204; + pub const BPF_FUNC_tcp_raw_gen_syncookie_ipv6: Type = 205; + pub const BPF_FUNC_tcp_raw_check_syncookie_ipv4: Type = 206; + pub const BPF_FUNC_tcp_raw_check_syncookie_ipv6: Type = 207; + pub const BPF_FUNC_ktime_get_tai_ns: Type = 208; + pub const BPF_FUNC_user_ringbuf_drain: Type = 209; + pub const BPF_FUNC_cgrp_storage_get: Type = 210; + pub const BPF_FUNC_cgrp_storage_delete: Type = 211; + pub const __BPF_FUNC_MAX_ID: Type = 212; +} +pub mod bpf_iter_state { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const BPF_ITER_STATE_INVALID: Type = 0; + pub const BPF_ITER_STATE_ACTIVE: Type = 1; + pub const BPF_ITER_STATE_DRAINED: Type = 2; +} +pub mod bpf_iter_task_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const BPF_TASK_ITER_ALL: Type = 0; + pub const BPF_TASK_ITER_TID: Type = 1; + pub const BPF_TASK_ITER_TGID: Type = 2; +} +pub mod bpf_link_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const BPF_LINK_TYPE_UNSPEC: Type = 0; + pub const BPF_LINK_TYPE_RAW_TRACEPOINT: Type = 1; + pub const BPF_LINK_TYPE_TRACING: Type = 2; + pub const BPF_LINK_TYPE_CGROUP: Type = 3; + pub const BPF_LINK_TYPE_ITER: Type = 4; + pub const BPF_LINK_TYPE_NETNS: Type = 5; + pub const BPF_LINK_TYPE_XDP: Type = 6; + pub const BPF_LINK_TYPE_PERF_EVENT: Type = 7; + pub const BPF_LINK_TYPE_KPROBE_MULTI: Type = 8; + pub const BPF_LINK_TYPE_STRUCT_OPS: Type = 9; + pub const BPF_LINK_TYPE_NETFILTER: Type = 10; + pub const BPF_LINK_TYPE_TCX: Type = 11; + pub const BPF_LINK_TYPE_UPROBE_MULTI: Type = 12; + pub const BPF_LINK_TYPE_NETKIT: Type = 13; + pub const BPF_LINK_TYPE_SOCKMAP: Type = 14; + pub const __MAX_BPF_LINK_TYPE: Type = 15; +} +pub mod bpf_map_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const BPF_MAP_TYPE_UNSPEC: Type = 0; + pub const BPF_MAP_TYPE_HASH: Type = 1; + pub const BPF_MAP_TYPE_ARRAY: Type = 2; + pub const BPF_MAP_TYPE_PROG_ARRAY: Type = 3; + pub const BPF_MAP_TYPE_PERF_EVENT_ARRAY: Type = 4; + pub const BPF_MAP_TYPE_PERCPU_HASH: Type = 5; + pub const BPF_MAP_TYPE_PERCPU_ARRAY: Type = 6; + pub const BPF_MAP_TYPE_STACK_TRACE: Type = 7; + pub const BPF_MAP_TYPE_CGROUP_ARRAY: Type = 8; + pub const BPF_MAP_TYPE_LRU_HASH: Type = 9; + pub const BPF_MAP_TYPE_LRU_PERCPU_HASH: Type = 10; + pub const BPF_MAP_TYPE_LPM_TRIE: Type = 11; + pub const BPF_MAP_TYPE_ARRAY_OF_MAPS: Type = 12; + pub const BPF_MAP_TYPE_HASH_OF_MAPS: Type = 13; + pub const BPF_MAP_TYPE_DEVMAP: Type = 14; + pub const BPF_MAP_TYPE_SOCKMAP: Type = 15; + pub const BPF_MAP_TYPE_CPUMAP: Type = 16; + pub const BPF_MAP_TYPE_XSKMAP: Type = 17; + pub const BPF_MAP_TYPE_SOCKHASH: Type = 18; + pub const BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED: Type = 19; + pub const BPF_MAP_TYPE_CGROUP_STORAGE: Type = 19; + pub const BPF_MAP_TYPE_REUSEPORT_SOCKARRAY: Type = 20; + pub const BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED: Type = 21; + pub const BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE: Type = 21; + pub const BPF_MAP_TYPE_QUEUE: Type = 22; + pub const BPF_MAP_TYPE_STACK: Type = 23; + pub const BPF_MAP_TYPE_SK_STORAGE: Type = 24; + pub const BPF_MAP_TYPE_DEVMAP_HASH: Type = 25; + pub const BPF_MAP_TYPE_STRUCT_OPS: Type = 26; + pub const BPF_MAP_TYPE_RINGBUF: Type = 27; + pub const BPF_MAP_TYPE_INODE_STORAGE: Type = 28; + pub const BPF_MAP_TYPE_TASK_STORAGE: Type = 29; + pub const BPF_MAP_TYPE_BLOOM_FILTER: Type = 30; + pub const BPF_MAP_TYPE_USER_RINGBUF: Type = 31; + pub const BPF_MAP_TYPE_CGRP_STORAGE: Type = 32; + pub const BPF_MAP_TYPE_ARENA: Type = 33; + pub const BPF_MAP_TYPE_INSN_ARRAY: Type = 34; + pub const __MAX_BPF_MAP_TYPE: Type = 35; +} +pub mod bpf_netdev_command { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const XDP_SETUP_PROG: Type = 0; + pub const XDP_SETUP_PROG_HW: Type = 1; + pub const BPF_OFFLOAD_MAP_ALLOC: Type = 2; + pub const BPF_OFFLOAD_MAP_FREE: Type = 3; + pub const XDP_SETUP_XSK_POOL: Type = 4; +} +pub mod bpf_prog_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const BPF_PROG_TYPE_UNSPEC: Type = 0; + pub const BPF_PROG_TYPE_SOCKET_FILTER: Type = 1; + pub const BPF_PROG_TYPE_KPROBE: Type = 2; + pub const BPF_PROG_TYPE_SCHED_CLS: Type = 3; + pub const BPF_PROG_TYPE_SCHED_ACT: Type = 4; + pub const BPF_PROG_TYPE_TRACEPOINT: Type = 5; + pub const BPF_PROG_TYPE_XDP: Type = 6; + pub const BPF_PROG_TYPE_PERF_EVENT: Type = 7; + pub const BPF_PROG_TYPE_CGROUP_SKB: Type = 8; + pub const BPF_PROG_TYPE_CGROUP_SOCK: Type = 9; + pub const BPF_PROG_TYPE_LWT_IN: Type = 10; + pub const BPF_PROG_TYPE_LWT_OUT: Type = 11; + pub const BPF_PROG_TYPE_LWT_XMIT: Type = 12; + pub const BPF_PROG_TYPE_SOCK_OPS: Type = 13; + pub const BPF_PROG_TYPE_SK_SKB: Type = 14; + pub const BPF_PROG_TYPE_CGROUP_DEVICE: Type = 15; + pub const BPF_PROG_TYPE_SK_MSG: Type = 16; + pub const BPF_PROG_TYPE_RAW_TRACEPOINT: Type = 17; + pub const BPF_PROG_TYPE_CGROUP_SOCK_ADDR: Type = 18; + pub const BPF_PROG_TYPE_LWT_SEG6LOCAL: Type = 19; + pub const BPF_PROG_TYPE_LIRC_MODE2: Type = 20; + pub const BPF_PROG_TYPE_SK_REUSEPORT: Type = 21; + pub const BPF_PROG_TYPE_FLOW_DISSECTOR: Type = 22; + pub const BPF_PROG_TYPE_CGROUP_SYSCTL: Type = 23; + pub const BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE: Type = 24; + pub const BPF_PROG_TYPE_CGROUP_SOCKOPT: Type = 25; + pub const BPF_PROG_TYPE_TRACING: Type = 26; + pub const BPF_PROG_TYPE_STRUCT_OPS: Type = 27; + pub const BPF_PROG_TYPE_EXT: Type = 28; + pub const BPF_PROG_TYPE_LSM: Type = 29; + pub const BPF_PROG_TYPE_SK_LOOKUP: Type = 30; + pub const BPF_PROG_TYPE_SYSCALL: Type = 31; + pub const BPF_PROG_TYPE_NETFILTER: Type = 32; + pub const __MAX_BPF_PROG_TYPE: Type = 33; +} +pub mod bpf_reg_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const NOT_INIT: Type = 0; + pub const SCALAR_VALUE: Type = 1; + pub const PTR_TO_CTX: Type = 2; + pub const CONST_PTR_TO_MAP: Type = 3; + pub const PTR_TO_MAP_VALUE: Type = 4; + pub const PTR_TO_MAP_KEY: Type = 5; + pub const PTR_TO_STACK: Type = 6; + pub const PTR_TO_PACKET_META: Type = 7; + pub const PTR_TO_PACKET: Type = 8; + pub const PTR_TO_PACKET_END: Type = 9; + pub const PTR_TO_FLOW_KEYS: Type = 10; + pub const PTR_TO_SOCKET: Type = 11; + pub const PTR_TO_SOCK_COMMON: Type = 12; + pub const PTR_TO_TCP_SOCK: Type = 13; + pub const PTR_TO_TP_BUFFER: Type = 14; + pub const PTR_TO_XDP_SOCK: Type = 15; + pub const PTR_TO_BTF_ID: Type = 16; + pub const PTR_TO_MEM: Type = 17; + pub const PTR_TO_ARENA: Type = 18; + pub const PTR_TO_BUF: Type = 19; + pub const PTR_TO_FUNC: Type = 20; + pub const PTR_TO_INSN: Type = 21; + pub const CONST_PTR_TO_DYNPTR: Type = 22; + pub const __BPF_REG_TYPE_MAX: Type = 23; + pub const PTR_TO_MAP_VALUE_OR_NULL: Type = 260; + pub const PTR_TO_SOCKET_OR_NULL: Type = 267; + pub const PTR_TO_SOCK_COMMON_OR_NULL: Type = 268; + pub const PTR_TO_TCP_SOCK_OR_NULL: Type = 269; + pub const PTR_TO_BTF_ID_OR_NULL: Type = 272; + pub const __BPF_REG_TYPE_LIMIT: Type = 536870911; +} +pub mod bpf_return_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const RET_INTEGER: Type = 0; + pub const RET_VOID: Type = 1; + pub const RET_PTR_TO_MAP_VALUE: Type = 2; + pub const RET_PTR_TO_SOCKET: Type = 3; + pub const RET_PTR_TO_TCP_SOCK: Type = 4; + pub const RET_PTR_TO_SOCK_COMMON: Type = 5; + pub const RET_PTR_TO_MEM: Type = 6; + pub const RET_PTR_TO_MEM_OR_BTF_ID: Type = 7; + pub const RET_PTR_TO_BTF_ID: Type = 8; + pub const __BPF_RET_TYPE_MAX: Type = 9; + pub const RET_PTR_TO_MAP_VALUE_OR_NULL: Type = 258; + pub const RET_PTR_TO_SOCKET_OR_NULL: Type = 259; + pub const RET_PTR_TO_TCP_SOCK_OR_NULL: Type = 260; + pub const RET_PTR_TO_SOCK_COMMON_OR_NULL: Type = 261; + pub const RET_PTR_TO_RINGBUF_MEM_OR_NULL: Type = 1286; + pub const RET_PTR_TO_DYNPTR_MEM_OR_NULL: Type = 262; + pub const RET_PTR_TO_BTF_ID_OR_NULL: Type = 264; + pub const RET_PTR_TO_BTF_ID_TRUSTED: Type = 1048584; + pub const __BPF_RET_TYPE_LIMIT: Type = 536870911; +} +pub mod btf_field_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const BPF_SPIN_LOCK: Type = 1; + pub const BPF_TIMER: Type = 2; + pub const BPF_KPTR_UNREF: Type = 4; + pub const BPF_KPTR_REF: Type = 8; + pub const BPF_KPTR_PERCPU: Type = 16; + pub const BPF_KPTR: Type = 28; + pub const BPF_LIST_HEAD: Type = 32; + pub const BPF_LIST_NODE: Type = 64; + pub const BPF_RB_ROOT: Type = 128; + pub const BPF_RB_NODE: Type = 256; + pub const BPF_GRAPH_NODE: Type = 320; + pub const BPF_GRAPH_ROOT: Type = 160; + pub const BPF_REFCOUNT: Type = 512; + pub const BPF_WORKQUEUE: Type = 1024; + pub const BPF_UPTR: Type = 2048; + pub const BPF_RES_SPIN_LOCK: Type = 4096; + pub const BPF_TASK_WORK: Type = 8192; +} +pub mod cfg80211_signal_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const CFG80211_SIGNAL_TYPE_NONE: Type = 0; + pub const CFG80211_SIGNAL_TYPE_MBM: Type = 1; + pub const CFG80211_SIGNAL_TYPE_UNSPEC: Type = 2; +} +pub mod class_map_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const DD_CLASS_TYPE_DISJOINT_BITS: Type = 0; + pub const DD_CLASS_TYPE_LEVEL_NUM: Type = 1; + pub const DD_CLASS_TYPE_DISJOINT_NAMES: Type = 2; + pub const DD_CLASS_TYPE_LEVEL_NAMES: Type = 3; +} +pub mod d_real_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const D_REAL_DATA: Type = 0; + pub const D_REAL_METADATA: Type = 1; +} +pub mod dax_access_mode { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const DAX_ACCESS: Type = 0; + pub const DAX_RECOVERY_WRITE: Type = 1; +} +pub mod dev_dma_attr { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const DEV_DMA_NOT_SUPPORTED: Type = 0; + pub const DEV_DMA_NON_COHERENT: Type = 1; + pub const DEV_DMA_COHERENT: Type = 2; +} +pub mod dev_pm_qos_req_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const DEV_PM_QOS_RESUME_LATENCY: Type = 1; + pub const DEV_PM_QOS_LATENCY_TOLERANCE: Type = 2; + pub const DEV_PM_QOS_MIN_FREQUENCY: Type = 3; + pub const DEV_PM_QOS_MAX_FREQUENCY: Type = 4; + pub const DEV_PM_QOS_FLAGS: Type = 5; +} +pub mod device_link_state { + pub type Type = ::aya_ebpf::cty::c_int; + pub const DL_STATE_NONE: Type = -1; + pub const DL_STATE_DORMANT: Type = 0; + pub const DL_STATE_AVAILABLE: Type = 1; + pub const DL_STATE_CONSUMER_PROBE: Type = 2; + pub const DL_STATE_ACTIVE: Type = 3; + pub const DL_STATE_SUPPLIER_UNBIND: Type = 4; +} +pub mod device_physical_location_horizontal_position { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const DEVICE_HORI_POS_LEFT: Type = 0; + pub const DEVICE_HORI_POS_CENTER: Type = 1; + pub const DEVICE_HORI_POS_RIGHT: Type = 2; +} +pub mod device_physical_location_panel { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const DEVICE_PANEL_TOP: Type = 0; + pub const DEVICE_PANEL_BOTTOM: Type = 1; + pub const DEVICE_PANEL_LEFT: Type = 2; + pub const DEVICE_PANEL_RIGHT: Type = 3; + pub const DEVICE_PANEL_FRONT: Type = 4; + pub const DEVICE_PANEL_BACK: Type = 5; + pub const DEVICE_PANEL_UNKNOWN: Type = 6; +} +pub mod device_physical_location_vertical_position { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const DEVICE_VERT_POS_UPPER: Type = 0; + pub const DEVICE_VERT_POS_CENTER: Type = 1; + pub const DEVICE_VERT_POS_LOWER: Type = 2; +} +pub mod device_removable { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const DEVICE_REMOVABLE_NOT_SUPPORTED: Type = 0; + pub const DEVICE_REMOVABLE_UNKNOWN: Type = 1; + pub const DEVICE_FIXED: Type = 2; + pub const DEVICE_REMOVABLE: Type = 3; +} +pub mod devlink_dpipe_field_mapping_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE: Type = 0; + pub const DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX: Type = 1; +} +pub mod devlink_eswitch_encap_mode { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const DEVLINK_ESWITCH_ENCAP_MODE_NONE: Type = 0; + pub const DEVLINK_ESWITCH_ENCAP_MODE_BASIC: Type = 1; +} +pub mod devlink_info_version_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const DEVLINK_INFO_VERSION_TYPE_NONE: Type = 0; + pub const DEVLINK_INFO_VERSION_TYPE_COMPONENT: Type = 1; +} +pub mod devlink_linecard_state { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const DEVLINK_LINECARD_STATE_UNSPEC: Type = 0; + pub const DEVLINK_LINECARD_STATE_UNPROVISIONED: Type = 1; + pub const DEVLINK_LINECARD_STATE_UNPROVISIONING: Type = 2; + pub const DEVLINK_LINECARD_STATE_PROVISIONING: Type = 3; + pub const DEVLINK_LINECARD_STATE_PROVISIONING_FAILED: Type = 4; + pub const DEVLINK_LINECARD_STATE_PROVISIONED: Type = 5; + pub const DEVLINK_LINECARD_STATE_ACTIVE: Type = 6; + pub const __DEVLINK_LINECARD_STATE_MAX: Type = 7; + pub const DEVLINK_LINECARD_STATE_MAX: Type = 6; +} +pub mod devlink_param_cmode { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const DEVLINK_PARAM_CMODE_RUNTIME: Type = 0; + pub const DEVLINK_PARAM_CMODE_DRIVERINIT: Type = 1; + pub const DEVLINK_PARAM_CMODE_PERMANENT: Type = 2; + pub const __DEVLINK_PARAM_CMODE_MAX: Type = 3; + pub const DEVLINK_PARAM_CMODE_MAX: Type = 2; +} +pub mod devlink_port_flavour { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const DEVLINK_PORT_FLAVOUR_PHYSICAL: Type = 0; + pub const DEVLINK_PORT_FLAVOUR_CPU: Type = 1; + pub const DEVLINK_PORT_FLAVOUR_DSA: Type = 2; + pub const DEVLINK_PORT_FLAVOUR_PCI_PF: Type = 3; + pub const DEVLINK_PORT_FLAVOUR_PCI_VF: Type = 4; + pub const DEVLINK_PORT_FLAVOUR_VIRTUAL: Type = 5; + pub const DEVLINK_PORT_FLAVOUR_UNUSED: Type = 6; + pub const DEVLINK_PORT_FLAVOUR_PCI_SF: Type = 7; +} +pub mod devlink_port_fn_opstate { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const DEVLINK_PORT_FN_OPSTATE_DETACHED: Type = 0; + pub const DEVLINK_PORT_FN_OPSTATE_ATTACHED: Type = 1; +} +pub mod devlink_port_fn_state { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const DEVLINK_PORT_FN_STATE_INACTIVE: Type = 0; + pub const DEVLINK_PORT_FN_STATE_ACTIVE: Type = 1; +} +pub mod devlink_port_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const DEVLINK_PORT_TYPE_NOTSET: Type = 0; + pub const DEVLINK_PORT_TYPE_AUTO: Type = 1; + pub const DEVLINK_PORT_TYPE_ETH: Type = 2; + pub const DEVLINK_PORT_TYPE_IB: Type = 3; +} +pub mod devlink_rate_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const DEVLINK_RATE_TYPE_LEAF: Type = 0; + pub const DEVLINK_RATE_TYPE_NODE: Type = 1; +} +pub mod devlink_reload_action { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const DEVLINK_RELOAD_ACTION_UNSPEC: Type = 0; + pub const DEVLINK_RELOAD_ACTION_DRIVER_REINIT: Type = 1; + pub const DEVLINK_RELOAD_ACTION_FW_ACTIVATE: Type = 2; + pub const __DEVLINK_RELOAD_ACTION_MAX: Type = 3; + pub const DEVLINK_RELOAD_ACTION_MAX: Type = 2; +} +pub mod devlink_reload_limit { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const DEVLINK_RELOAD_LIMIT_UNSPEC: Type = 0; + pub const DEVLINK_RELOAD_LIMIT_NO_RESET: Type = 1; + pub const __DEVLINK_RELOAD_LIMIT_MAX: Type = 2; + pub const DEVLINK_RELOAD_LIMIT_MAX: Type = 1; +} +pub mod devlink_sb_pool_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const DEVLINK_SB_POOL_TYPE_INGRESS: Type = 0; + pub const DEVLINK_SB_POOL_TYPE_EGRESS: Type = 1; +} +pub mod devlink_sb_threshold_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const DEVLINK_SB_THRESHOLD_TYPE_STATIC: Type = 0; + pub const DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC: Type = 1; +} +pub mod devlink_selftest_status { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const DEVLINK_SELFTEST_STATUS_SKIP: Type = 0; + pub const DEVLINK_SELFTEST_STATUS_PASS: Type = 1; + pub const DEVLINK_SELFTEST_STATUS_FAIL: Type = 2; +} +pub mod devlink_trap_action { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const DEVLINK_TRAP_ACTION_DROP: Type = 0; + pub const DEVLINK_TRAP_ACTION_TRAP: Type = 1; + pub const DEVLINK_TRAP_ACTION_MIRROR: Type = 2; +} +pub mod devlink_trap_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const DEVLINK_TRAP_TYPE_DROP: Type = 0; + pub const DEVLINK_TRAP_TYPE_EXCEPTION: Type = 1; + pub const DEVLINK_TRAP_TYPE_CONTROL: Type = 2; +} +pub mod dl_dev_state { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const DL_DEV_NO_DRIVER: Type = 0; + pub const DL_DEV_PROBING: Type = 1; + pub const DL_DEV_DRIVER_BOUND: Type = 2; + pub const DL_DEV_UNBINDING: Type = 3; +} +pub mod dma_data_direction { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const DMA_BIDIRECTIONAL: Type = 0; + pub const DMA_TO_DEVICE: Type = 1; + pub const DMA_FROM_DEVICE: Type = 2; + pub const DMA_NONE: Type = 3; +} +pub mod dpll_pin_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const DPLL_PIN_TYPE_MUX: Type = 1; + pub const DPLL_PIN_TYPE_EXT: Type = 2; + pub const DPLL_PIN_TYPE_SYNCE_ETH_PORT: Type = 3; + pub const DPLL_PIN_TYPE_INT_OSCILLATOR: Type = 4; + pub const DPLL_PIN_TYPE_GNSS: Type = 5; + pub const __DPLL_PIN_TYPE_MAX: Type = 6; + pub const DPLL_PIN_TYPE_MAX: Type = 5; +} +pub mod dsa_db_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const DSA_DB_PORT: Type = 0; + pub const DSA_DB_LAG: Type = 1; + pub const DSA_DB_BRIDGE: Type = 2; +} +pub mod dsa_tag_protocol { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const DSA_TAG_PROTO_NONE: Type = 0; + pub const DSA_TAG_PROTO_BRCM: Type = 1; + pub const DSA_TAG_PROTO_BRCM_LEGACY: Type = 22; + pub const DSA_TAG_PROTO_BRCM_LEGACY_FCS: Type = 29; + pub const DSA_TAG_PROTO_BRCM_PREPEND: Type = 2; + pub const DSA_TAG_PROTO_DSA: Type = 3; + pub const DSA_TAG_PROTO_EDSA: Type = 4; + pub const DSA_TAG_PROTO_GSWIP: Type = 5; + pub const DSA_TAG_PROTO_KSZ9477: Type = 6; + pub const DSA_TAG_PROTO_KSZ9893: Type = 7; + pub const DSA_TAG_PROTO_LAN9303: Type = 8; + pub const DSA_TAG_PROTO_MTK: Type = 9; + pub const DSA_TAG_PROTO_QCA: Type = 10; + pub const DSA_TAG_PROTO_TRAILER: Type = 11; + pub const DSA_TAG_PROTO_8021Q: Type = 12; + pub const DSA_TAG_PROTO_SJA1105: Type = 13; + pub const DSA_TAG_PROTO_KSZ8795: Type = 14; + pub const DSA_TAG_PROTO_OCELOT: Type = 15; + pub const DSA_TAG_PROTO_AR9331: Type = 16; + pub const DSA_TAG_PROTO_RTL4_A: Type = 17; + pub const DSA_TAG_PROTO_HELLCREEK: Type = 18; + pub const DSA_TAG_PROTO_XRS700X: Type = 19; + pub const DSA_TAG_PROTO_OCELOT_8021Q: Type = 20; + pub const DSA_TAG_PROTO_SEVILLE: Type = 21; + pub const DSA_TAG_PROTO_SJA1110: Type = 23; + pub const DSA_TAG_PROTO_RTL8_4: Type = 24; + pub const DSA_TAG_PROTO_RTL8_4T: Type = 25; + pub const DSA_TAG_PROTO_RZN1_A5PSW: Type = 26; + pub const DSA_TAG_PROTO_LAN937X: Type = 27; + pub const DSA_TAG_PROTO_VSC73XX_8021Q: Type = 28; + pub const DSA_TAG_PROTO_YT921X: Type = 30; + pub const DSA_TAG_PROTO_MXL_GSW1XX: Type = 31; + pub const DSA_TAG_PROTO_MXL862: Type = 32; +} +pub mod elv_merge { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const ELEVATOR_NO_MERGE: Type = 0; + pub const ELEVATOR_FRONT_MERGE: Type = 1; + pub const ELEVATOR_BACK_MERGE: Type = 2; + pub const ELEVATOR_DISCARD_MERGE: Type = 3; +} +pub mod environment_cap { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const ENVIRON_ANY: Type = 0; + pub const ENVIRON_INDOOR: Type = 1; + pub const ENVIRON_OUTDOOR: Type = 2; +} +pub mod ethtool_c33_pse_admin_state { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const ETHTOOL_C33_PSE_ADMIN_STATE_UNKNOWN: Type = 1; + pub const ETHTOOL_C33_PSE_ADMIN_STATE_DISABLED: Type = 2; + pub const ETHTOOL_C33_PSE_ADMIN_STATE_ENABLED: Type = 3; +} +pub mod ethtool_c33_pse_ext_state { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const ETHTOOL_C33_PSE_EXT_STATE_ERROR_CONDITION: Type = 1; + pub const ETHTOOL_C33_PSE_EXT_STATE_MR_MPS_VALID: Type = 2; + pub const ETHTOOL_C33_PSE_EXT_STATE_MR_PSE_ENABLE: Type = 3; + pub const ETHTOOL_C33_PSE_EXT_STATE_OPTION_DETECT_TED: Type = 4; + pub const ETHTOOL_C33_PSE_EXT_STATE_OPTION_VPORT_LIM: Type = 5; + pub const ETHTOOL_C33_PSE_EXT_STATE_OVLD_DETECTED: Type = 6; + pub const ETHTOOL_C33_PSE_EXT_STATE_PD_DLL_POWER_TYPE: Type = 7; + pub const ETHTOOL_C33_PSE_EXT_STATE_POWER_NOT_AVAILABLE: Type = 8; + pub const ETHTOOL_C33_PSE_EXT_STATE_SHORT_DETECTED: Type = 9; +} +pub mod ethtool_c33_pse_ext_substate_error_condition { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_NON_EXISTING_PORT: Type = 1; + pub const ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_UNDEFINED_PORT: Type = 2; + pub const ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_INTERNAL_HW_FAULT: Type = 3; + pub const ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_COMM_ERROR_AFTER_FORCE_ON: Type = 4; + pub const ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_UNKNOWN_PORT_STATUS: Type = 5; + pub const ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_HOST_CRASH_TURN_OFF: Type = 6; + pub const ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_HOST_CRASH_FORCE_SHUTDOWN: Type = 7; + pub const ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_CONFIG_CHANGE: Type = 8; + pub const ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_DETECTED_OVER_TEMP: Type = 9; +} +pub mod ethtool_c33_pse_ext_substate_mr_pse_enable { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const ETHTOOL_C33_PSE_EXT_SUBSTATE_MR_PSE_ENABLE_DISABLE_PIN_ACTIVE: Type = 1; +} +pub mod ethtool_c33_pse_ext_substate_option_detect_ted { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_DETECT_TED_DET_IN_PROCESS: Type = 1; + pub const ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_DETECT_TED_CONNECTION_CHECK_ERROR: Type = 2; +} +pub mod ethtool_c33_pse_ext_substate_option_vport_lim { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_VPORT_LIM_HIGH_VOLTAGE: Type = 1; + pub const ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_VPORT_LIM_LOW_VOLTAGE: Type = 2; + pub const ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_VPORT_LIM_VOLTAGE_INJECTION: Type = 3; +} +pub mod ethtool_c33_pse_ext_substate_ovld_detected { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const ETHTOOL_C33_PSE_EXT_SUBSTATE_OVLD_DETECTED_OVERLOAD: Type = 1; +} +pub mod ethtool_c33_pse_ext_substate_power_not_available { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const ETHTOOL_C33_PSE_EXT_SUBSTATE_POWER_NOT_AVAILABLE_BUDGET_EXCEEDED: Type = 1; + pub const ETHTOOL_C33_PSE_EXT_SUBSTATE_POWER_NOT_AVAILABLE_PORT_PW_LIMIT_EXCEEDS_CONTROLLER_BUDGET : Type = 2 ; + pub const ETHTOOL_C33_PSE_EXT_SUBSTATE_POWER_NOT_AVAILABLE_PD_REQUEST_EXCEEDS_PORT_LIMIT: Type = + 3; + pub const ETHTOOL_C33_PSE_EXT_SUBSTATE_POWER_NOT_AVAILABLE_HW_PW_LIMIT: Type = 4; +} +pub mod ethtool_c33_pse_ext_substate_short_detected { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const ETHTOOL_C33_PSE_EXT_SUBSTATE_SHORT_DETECTED_SHORT_CONDITION: Type = 1; +} +pub mod ethtool_c33_pse_pw_d_status { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const ETHTOOL_C33_PSE_PW_D_STATUS_UNKNOWN: Type = 1; + pub const ETHTOOL_C33_PSE_PW_D_STATUS_DISABLED: Type = 2; + pub const ETHTOOL_C33_PSE_PW_D_STATUS_SEARCHING: Type = 3; + pub const ETHTOOL_C33_PSE_PW_D_STATUS_DELIVERING: Type = 4; + pub const ETHTOOL_C33_PSE_PW_D_STATUS_TEST: Type = 5; + pub const ETHTOOL_C33_PSE_PW_D_STATUS_FAULT: Type = 6; + pub const ETHTOOL_C33_PSE_PW_D_STATUS_OTHERFAULT: Type = 7; +} +pub mod ethtool_link_ext_state { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const ETHTOOL_LINK_EXT_STATE_AUTONEG: Type = 0; + pub const ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE: Type = 1; + pub const ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH: Type = 2; + pub const ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY: Type = 3; + pub const ETHTOOL_LINK_EXT_STATE_NO_CABLE: Type = 4; + pub const ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE: Type = 5; + pub const ETHTOOL_LINK_EXT_STATE_EEPROM_ISSUE: Type = 6; + pub const ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE: Type = 7; + pub const ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED: Type = 8; + pub const ETHTOOL_LINK_EXT_STATE_OVERHEAT: Type = 9; + pub const ETHTOOL_LINK_EXT_STATE_MODULE: Type = 10; + pub const ETHTOOL_LINK_EXT_STATE_OTP_SPEED_VIOLATION: Type = 11; + pub const ETHTOOL_LINK_EXT_STATE_BMC_REQUEST_DOWN: Type = 12; +} +pub mod ethtool_link_ext_substate_autoneg { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED: Type = 1; + pub const ETHTOOL_LINK_EXT_SUBSTATE_AN_ACK_NOT_RECEIVED: Type = 2; + pub const ETHTOOL_LINK_EXT_SUBSTATE_AN_NEXT_PAGE_EXCHANGE_FAILED: Type = 3; + pub const ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED_FORCE_MODE: Type = 4; + pub const ETHTOOL_LINK_EXT_SUBSTATE_AN_FEC_MISMATCH_DURING_OVERRIDE: Type = 5; + pub const ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_HCD: Type = 6; +} +pub mod ethtool_link_ext_substate_bad_signal_integrity { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS: Type = 1; + pub const ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE: Type = 2; + pub const ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_REFERENCE_CLOCK_LOST: Type = 3; + pub const ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_ALOS: Type = 4; +} +pub mod ethtool_link_ext_substate_cable_issue { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE: Type = 1; + pub const ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE: Type = 2; +} +pub mod ethtool_link_ext_substate_link_logical_mismatch { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_BLOCK_LOCK: Type = 1; + pub const ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_AM_LOCK: Type = 2; + pub const ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_GET_ALIGN_STATUS: Type = 3; + pub const ETHTOOL_LINK_EXT_SUBSTATE_LLM_FC_FEC_IS_NOT_LOCKED: Type = 4; + pub const ETHTOOL_LINK_EXT_SUBSTATE_LLM_RS_FEC_IS_NOT_LOCKED: Type = 5; +} +pub mod ethtool_link_ext_substate_link_training { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_FRAME_LOCK_NOT_ACQUIRED: Type = 1; + pub const ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_INHIBIT_TIMEOUT: Type = 2; + pub const ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_PARTNER_DID_NOT_SET_RECEIVER_READY: Type = 3; + pub const ETHTOOL_LINK_EXT_SUBSTATE_LT_REMOTE_FAULT: Type = 4; +} +pub mod ethtool_link_ext_substate_module { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const ETHTOOL_LINK_EXT_SUBSTATE_MODULE_CMIS_NOT_READY: Type = 1; +} +pub mod ethtool_mac_stats_src { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const ETHTOOL_MAC_STATS_SRC_AGGREGATE: Type = 0; + pub const ETHTOOL_MAC_STATS_SRC_EMAC: Type = 1; + pub const ETHTOOL_MAC_STATS_SRC_PMAC: Type = 2; +} +pub mod ethtool_mm_verify_status { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const ETHTOOL_MM_VERIFY_STATUS_UNKNOWN: Type = 0; + pub const ETHTOOL_MM_VERIFY_STATUS_INITIAL: Type = 1; + pub const ETHTOOL_MM_VERIFY_STATUS_VERIFYING: Type = 2; + pub const ETHTOOL_MM_VERIFY_STATUS_SUCCEEDED: Type = 3; + pub const ETHTOOL_MM_VERIFY_STATUS_FAILED: Type = 4; + pub const ETHTOOL_MM_VERIFY_STATUS_DISABLED: Type = 5; +} +pub mod ethtool_module_power_mode { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const ETHTOOL_MODULE_POWER_MODE_LOW: Type = 1; + pub const ETHTOOL_MODULE_POWER_MODE_HIGH: Type = 2; +} +pub mod ethtool_module_power_mode_policy { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const ETHTOOL_MODULE_POWER_MODE_POLICY_HIGH: Type = 1; + pub const ETHTOOL_MODULE_POWER_MODE_POLICY_AUTO: Type = 2; +} +pub mod ethtool_phys_id_state { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const ETHTOOL_ID_INACTIVE: Type = 0; + pub const ETHTOOL_ID_ACTIVE: Type = 1; + pub const ETHTOOL_ID_ON: Type = 2; + pub const ETHTOOL_ID_OFF: Type = 3; +} +pub mod ethtool_podl_pse_admin_state { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const ETHTOOL_PODL_PSE_ADMIN_STATE_UNKNOWN: Type = 1; + pub const ETHTOOL_PODL_PSE_ADMIN_STATE_DISABLED: Type = 2; + pub const ETHTOOL_PODL_PSE_ADMIN_STATE_ENABLED: Type = 3; +} +pub mod ethtool_podl_pse_pw_d_status { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const ETHTOOL_PODL_PSE_PW_D_STATUS_UNKNOWN: Type = 1; + pub const ETHTOOL_PODL_PSE_PW_D_STATUS_DISABLED: Type = 2; + pub const ETHTOOL_PODL_PSE_PW_D_STATUS_SEARCHING: Type = 3; + pub const ETHTOOL_PODL_PSE_PW_D_STATUS_DELIVERING: Type = 4; + pub const ETHTOOL_PODL_PSE_PW_D_STATUS_SLEEP: Type = 5; + pub const ETHTOOL_PODL_PSE_PW_D_STATUS_IDLE: Type = 6; + pub const ETHTOOL_PODL_PSE_PW_D_STATUS_ERROR: Type = 7; +} +pub mod ethtool_pse_types { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const ETHTOOL_PSE_UNKNOWN: Type = 1; + pub const ETHTOOL_PSE_PODL: Type = 2; + pub const ETHTOOL_PSE_C33: Type = 4; +} +pub mod fault_flag { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const FAULT_FLAG_WRITE: Type = 1; + pub const FAULT_FLAG_MKWRITE: Type = 2; + pub const FAULT_FLAG_ALLOW_RETRY: Type = 4; + pub const FAULT_FLAG_RETRY_NOWAIT: Type = 8; + pub const FAULT_FLAG_KILLABLE: Type = 16; + pub const FAULT_FLAG_TRIED: Type = 32; + pub const FAULT_FLAG_USER: Type = 64; + pub const FAULT_FLAG_REMOTE: Type = 128; + pub const FAULT_FLAG_INSTRUCTION: Type = 256; + pub const FAULT_FLAG_INTERRUPTIBLE: Type = 512; + pub const FAULT_FLAG_UNSHARE: Type = 1024; + pub const FAULT_FLAG_ORIG_PTE_VALID: Type = 2048; + pub const FAULT_FLAG_VMA_LOCK: Type = 4096; +} +pub mod filter_pred_fn { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const FILTER_PRED_FN_NOP: Type = 0; + pub const FILTER_PRED_FN_64: Type = 1; + pub const FILTER_PRED_FN_64_CPUMASK: Type = 2; + pub const FILTER_PRED_FN_S64: Type = 3; + pub const FILTER_PRED_FN_U64: Type = 4; + pub const FILTER_PRED_FN_32: Type = 5; + pub const FILTER_PRED_FN_32_CPUMASK: Type = 6; + pub const FILTER_PRED_FN_S32: Type = 7; + pub const FILTER_PRED_FN_U32: Type = 8; + pub const FILTER_PRED_FN_16: Type = 9; + pub const FILTER_PRED_FN_16_CPUMASK: Type = 10; + pub const FILTER_PRED_FN_S16: Type = 11; + pub const FILTER_PRED_FN_U16: Type = 12; + pub const FILTER_PRED_FN_8: Type = 13; + pub const FILTER_PRED_FN_8_CPUMASK: Type = 14; + pub const FILTER_PRED_FN_S8: Type = 15; + pub const FILTER_PRED_FN_U8: Type = 16; + pub const FILTER_PRED_FN_COMM: Type = 17; + pub const FILTER_PRED_FN_STRING: Type = 18; + pub const FILTER_PRED_FN_STRLOC: Type = 19; + pub const FILTER_PRED_FN_STRRELLOC: Type = 20; + pub const FILTER_PRED_FN_PCHAR_USER: Type = 21; + pub const FILTER_PRED_FN_PCHAR: Type = 22; + pub const FILTER_PRED_FN_CPU: Type = 23; + pub const FILTER_PRED_FN_CPU_CPUMASK: Type = 24; + pub const FILTER_PRED_FN_CPUMASK: Type = 25; + pub const FILTER_PRED_FN_CPUMASK_CPU: Type = 26; + pub const FILTER_PRED_FN_FUNCTION: Type = 27; + pub const FILTER_PRED_FN_: Type = 28; + pub const FILTER_PRED_TEST_VISITED: Type = 29; +} +pub mod flow_action_hw_stats { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const FLOW_ACTION_HW_STATS_IMMEDIATE: Type = 1; + pub const FLOW_ACTION_HW_STATS_DELAYED: Type = 2; + pub const FLOW_ACTION_HW_STATS_ANY: Type = 3; + pub const FLOW_ACTION_HW_STATS_DISABLED: Type = 4; + pub const FLOW_ACTION_HW_STATS_DONT_CARE: Type = 7; +} +pub mod flow_action_id { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const FLOW_ACTION_ACCEPT: Type = 0; + pub const FLOW_ACTION_DROP: Type = 1; + pub const FLOW_ACTION_TRAP: Type = 2; + pub const FLOW_ACTION_GOTO: Type = 3; + pub const FLOW_ACTION_REDIRECT: Type = 4; + pub const FLOW_ACTION_MIRRED: Type = 5; + pub const FLOW_ACTION_REDIRECT_INGRESS: Type = 6; + pub const FLOW_ACTION_MIRRED_INGRESS: Type = 7; + pub const FLOW_ACTION_VLAN_PUSH: Type = 8; + pub const FLOW_ACTION_VLAN_POP: Type = 9; + pub const FLOW_ACTION_VLAN_MANGLE: Type = 10; + pub const FLOW_ACTION_TUNNEL_ENCAP: Type = 11; + pub const FLOW_ACTION_TUNNEL_DECAP: Type = 12; + pub const FLOW_ACTION_MANGLE: Type = 13; + pub const FLOW_ACTION_ADD: Type = 14; + pub const FLOW_ACTION_CSUM: Type = 15; + pub const FLOW_ACTION_MARK: Type = 16; + pub const FLOW_ACTION_PTYPE: Type = 17; + pub const FLOW_ACTION_PRIORITY: Type = 18; + pub const FLOW_ACTION_RX_QUEUE_MAPPING: Type = 19; + pub const FLOW_ACTION_WAKE: Type = 20; + pub const FLOW_ACTION_QUEUE: Type = 21; + pub const FLOW_ACTION_SAMPLE: Type = 22; + pub const FLOW_ACTION_POLICE: Type = 23; + pub const FLOW_ACTION_CT: Type = 24; + pub const FLOW_ACTION_CT_METADATA: Type = 25; + pub const FLOW_ACTION_MPLS_PUSH: Type = 26; + pub const FLOW_ACTION_MPLS_POP: Type = 27; + pub const FLOW_ACTION_MPLS_MANGLE: Type = 28; + pub const FLOW_ACTION_GATE: Type = 29; + pub const FLOW_ACTION_PPPOE_PUSH: Type = 30; + pub const FLOW_ACTION_JUMP: Type = 31; + pub const FLOW_ACTION_PIPE: Type = 32; + pub const FLOW_ACTION_VLAN_PUSH_ETH: Type = 33; + pub const FLOW_ACTION_VLAN_POP_ETH: Type = 34; + pub const FLOW_ACTION_CONTINUE: Type = 35; + pub const NUM_FLOW_ACTIONS: Type = 36; +} +pub mod flow_action_mangle_base { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const FLOW_ACT_MANGLE_UNSPEC: Type = 0; + pub const FLOW_ACT_MANGLE_HDR_TYPE_ETH: Type = 1; + pub const FLOW_ACT_MANGLE_HDR_TYPE_IP4: Type = 2; + pub const FLOW_ACT_MANGLE_HDR_TYPE_IP6: Type = 3; + pub const FLOW_ACT_MANGLE_HDR_TYPE_TCP: Type = 4; + pub const FLOW_ACT_MANGLE_HDR_TYPE_UDP: Type = 5; +} +pub mod flow_cls_command { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const FLOW_CLS_REPLACE: Type = 0; + pub const FLOW_CLS_DESTROY: Type = 1; + pub const FLOW_CLS_STATS: Type = 2; + pub const FLOW_CLS_TMPLT_CREATE: Type = 3; + pub const FLOW_CLS_TMPLT_DESTROY: Type = 4; +} +pub mod freeze_holder { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const FREEZE_HOLDER_KERNEL: Type = 1; + pub const FREEZE_HOLDER_USERSPACE: Type = 2; + pub const FREEZE_MAY_NEST: Type = 4; + pub const FREEZE_EXCL: Type = 8; +} +pub mod freq_qos_req_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const FREQ_QOS_MIN: Type = 1; + pub const FREQ_QOS_MAX: Type = 2; +} +pub mod fs_context_phase { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const FS_CONTEXT_CREATE_PARAMS: Type = 0; + pub const FS_CONTEXT_CREATING: Type = 1; + pub const FS_CONTEXT_AWAITING_MOUNT: Type = 2; + pub const FS_CONTEXT_AWAITING_RECONF: Type = 3; + pub const FS_CONTEXT_RECONF_PARAMS: Type = 4; + pub const FS_CONTEXT_RECONFIGURING: Type = 5; + pub const FS_CONTEXT_FAILED: Type = 6; +} +pub mod fs_context_purpose { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const FS_CONTEXT_FOR_MOUNT: Type = 0; + pub const FS_CONTEXT_FOR_SUBMOUNT: Type = 1; + pub const FS_CONTEXT_FOR_RECONFIGURE: Type = 2; +} +pub mod fs_update_time { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const FS_UPD_ATIME: Type = 0; + pub const FS_UPD_CMTIME: Type = 1; +} +pub mod fs_value_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const fs_value_is_undefined: Type = 0; + pub const fs_value_is_flag: Type = 1; + pub const fs_value_is_string: Type = 2; + pub const fs_value_is_blob: Type = 3; + pub const fs_value_is_filename: Type = 4; + pub const fs_value_is_file: Type = 5; +} +pub mod fserror_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const FSERR_BUFFERED_READ: Type = 0; + pub const FSERR_BUFFERED_WRITE: Type = 1; + pub const FSERR_DIRECTIO_READ: Type = 2; + pub const FSERR_DIRECTIO_WRITE: Type = 3; + pub const FSERR_DATA_LOST: Type = 4; + pub const FSERR_METADATA: Type = 5; +} +pub mod fsnotify_group_prio { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const FSNOTIFY_PRIO_NORMAL: Type = 0; + pub const FSNOTIFY_PRIO_CONTENT: Type = 1; + pub const FSNOTIFY_PRIO_PRE_CONTENT: Type = 2; + pub const __FSNOTIFY_PRIO_NUM: Type = 3; +} +pub mod ftrace_ops_cmd { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const FTRACE_OPS_CMD_ENABLE_SHARE_IPMODIFY_SELF: Type = 0; + pub const FTRACE_OPS_CMD_ENABLE_SHARE_IPMODIFY_PEER: Type = 1; + pub const FTRACE_OPS_CMD_DISABLE_SHARE_IPMODIFY_PEER: Type = 2; +} +pub mod handle_to_path_flags { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const HANDLE_CHECK_PERMS: Type = 1; + pub const HANDLE_CHECK_SUBTREE: Type = 2; +} +pub mod hprobe_state { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const HPROBE_LEASED: Type = 0; + pub const HPROBE_STABLE: Type = 1; + pub const HPROBE_GONE: Type = 2; + pub const HPROBE_CONSUMED: Type = 3; +} +pub mod hrtimer_restart { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const HRTIMER_NORESTART: Type = 0; + pub const HRTIMER_RESTART: Type = 1; +} +pub mod hwtstamp_provider_qualifier { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const HWTSTAMP_PROVIDER_QUALIFIER_PRECISE: Type = 0; + pub const HWTSTAMP_PROVIDER_QUALIFIER_APPROX: Type = 1; + pub const HWTSTAMP_PROVIDER_QUALIFIER_CNT: Type = 2; +} +pub mod hwtstamp_source { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const HWTSTAMP_SOURCE_NETDEV: Type = 1; + pub const HWTSTAMP_SOURCE_PHYLIB: Type = 2; +} +pub mod ib_atomic_cap { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IB_ATOMIC_NONE: Type = 0; + pub const IB_ATOMIC_HCA: Type = 1; + pub const IB_ATOMIC_GLOB: Type = 2; +} +pub mod ib_cq_notify_flags { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IB_CQ_SOLICITED: Type = 1; + pub const IB_CQ_NEXT_COMP: Type = 2; + pub const IB_CQ_SOLICITED_MASK: Type = 3; + pub const IB_CQ_REPORT_MISSED_EVENTS: Type = 4; +} +pub mod ib_event_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IB_EVENT_CQ_ERR: Type = 0; + pub const IB_EVENT_QP_FATAL: Type = 1; + pub const IB_EVENT_QP_REQ_ERR: Type = 2; + pub const IB_EVENT_QP_ACCESS_ERR: Type = 3; + pub const IB_EVENT_COMM_EST: Type = 4; + pub const IB_EVENT_SQ_DRAINED: Type = 5; + pub const IB_EVENT_PATH_MIG: Type = 6; + pub const IB_EVENT_PATH_MIG_ERR: Type = 7; + pub const IB_EVENT_DEVICE_FATAL: Type = 8; + pub const IB_EVENT_PORT_ACTIVE: Type = 9; + pub const IB_EVENT_PORT_ERR: Type = 10; + pub const IB_EVENT_LID_CHANGE: Type = 11; + pub const IB_EVENT_PKEY_CHANGE: Type = 12; + pub const IB_EVENT_SM_CHANGE: Type = 13; + pub const IB_EVENT_SRQ_ERR: Type = 14; + pub const IB_EVENT_SRQ_LIMIT_REACHED: Type = 15; + pub const IB_EVENT_QP_LAST_WQE_REACHED: Type = 16; + pub const IB_EVENT_CLIENT_REREGISTER: Type = 17; + pub const IB_EVENT_GID_CHANGE: Type = 18; + pub const IB_EVENT_WQ_FATAL: Type = 19; + pub const IB_EVENT_DEVICE_SPEED_CHANGE: Type = 20; +} +pub mod ib_flow_action_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IB_FLOW_ACTION_UNSPECIFIED: Type = 0; + pub const IB_FLOW_ACTION_ESP: Type = 1; +} +pub mod ib_flow_attr_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IB_FLOW_ATTR_NORMAL: Type = 0; + pub const IB_FLOW_ATTR_ALL_DEFAULT: Type = 1; + pub const IB_FLOW_ATTR_MC_DEFAULT: Type = 2; + pub const IB_FLOW_ATTR_SNIFFER: Type = 3; +} +pub mod ib_flow_spec_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IB_FLOW_SPEC_ETH: Type = 32; + pub const IB_FLOW_SPEC_IB: Type = 34; + pub const IB_FLOW_SPEC_IPV4: Type = 48; + pub const IB_FLOW_SPEC_IPV6: Type = 49; + pub const IB_FLOW_SPEC_ESP: Type = 52; + pub const IB_FLOW_SPEC_TCP: Type = 64; + pub const IB_FLOW_SPEC_UDP: Type = 65; + pub const IB_FLOW_SPEC_VXLAN_TUNNEL: Type = 80; + pub const IB_FLOW_SPEC_GRE: Type = 81; + pub const IB_FLOW_SPEC_MPLS: Type = 96; + pub const IB_FLOW_SPEC_INNER: Type = 256; + pub const IB_FLOW_SPEC_ACTION_TAG: Type = 4096; + pub const IB_FLOW_SPEC_ACTION_DROP: Type = 4097; + pub const IB_FLOW_SPEC_ACTION_HANDLE: Type = 4098; + pub const IB_FLOW_SPEC_ACTION_COUNT: Type = 4099; +} +pub mod ib_gid_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IB_GID_TYPE_IB: Type = 0; + pub const IB_GID_TYPE_ROCE: Type = 1; + pub const IB_GID_TYPE_ROCE_UDP_ENCAP: Type = 2; + pub const IB_GID_TYPE_SIZE: Type = 3; +} +pub mod ib_mig_state { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IB_MIG_MIGRATED: Type = 0; + pub const IB_MIG_REARM: Type = 1; + pub const IB_MIG_ARMED: Type = 2; +} +pub mod ib_mr_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IB_MR_TYPE_MEM_REG: Type = 0; + pub const IB_MR_TYPE_SG_GAPS: Type = 1; + pub const IB_MR_TYPE_DM: Type = 2; + pub const IB_MR_TYPE_USER: Type = 3; + pub const IB_MR_TYPE_DMA: Type = 4; + pub const IB_MR_TYPE_INTEGRITY: Type = 5; +} +pub mod ib_mtu { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IB_MTU_256: Type = 1; + pub const IB_MTU_512: Type = 2; + pub const IB_MTU_1024: Type = 3; + pub const IB_MTU_2048: Type = 4; + pub const IB_MTU_4096: Type = 5; +} +pub mod ib_mw_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IB_MW_TYPE_1: Type = 1; + pub const IB_MW_TYPE_2: Type = 2; +} +pub mod ib_poll_context { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IB_POLL_SOFTIRQ: Type = 0; + pub const IB_POLL_WORKQUEUE: Type = 1; + pub const IB_POLL_UNBOUND_WORKQUEUE: Type = 2; + pub const IB_POLL_LAST_POOL_TYPE: Type = 2; + pub const IB_POLL_DIRECT: Type = 3; +} +pub mod ib_port_state { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IB_PORT_NOP: Type = 0; + pub const IB_PORT_DOWN: Type = 1; + pub const IB_PORT_INIT: Type = 2; + pub const IB_PORT_ARMED: Type = 3; + pub const IB_PORT_ACTIVE: Type = 4; + pub const IB_PORT_ACTIVE_DEFER: Type = 5; +} +pub mod ib_qp_state { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IB_QPS_RESET: Type = 0; + pub const IB_QPS_INIT: Type = 1; + pub const IB_QPS_RTR: Type = 2; + pub const IB_QPS_RTS: Type = 3; + pub const IB_QPS_SQD: Type = 4; + pub const IB_QPS_SQE: Type = 5; + pub const IB_QPS_ERR: Type = 6; +} +pub mod ib_qp_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IB_QPT_SMI: Type = 0; + pub const IB_QPT_GSI: Type = 1; + pub const IB_QPT_RC: Type = 2; + pub const IB_QPT_UC: Type = 3; + pub const IB_QPT_UD: Type = 4; + pub const IB_QPT_RAW_IPV6: Type = 5; + pub const IB_QPT_RAW_ETHERTYPE: Type = 6; + pub const IB_QPT_RAW_PACKET: Type = 8; + pub const IB_QPT_XRC_INI: Type = 9; + pub const IB_QPT_XRC_TGT: Type = 10; + pub const IB_QPT_MAX: Type = 11; + pub const IB_QPT_DRIVER: Type = 255; + pub const IB_QPT_RESERVED1: Type = 4096; + pub const IB_QPT_RESERVED2: Type = 4097; + pub const IB_QPT_RESERVED3: Type = 4098; + pub const IB_QPT_RESERVED4: Type = 4099; + pub const IB_QPT_RESERVED5: Type = 4100; + pub const IB_QPT_RESERVED6: Type = 4101; + pub const IB_QPT_RESERVED7: Type = 4102; + pub const IB_QPT_RESERVED8: Type = 4103; + pub const IB_QPT_RESERVED9: Type = 4104; + pub const IB_QPT_RESERVED10: Type = 4105; +} +pub mod ib_sig_err_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IB_SIG_BAD_GUARD: Type = 0; + pub const IB_SIG_BAD_REFTAG: Type = 1; + pub const IB_SIG_BAD_APPTAG: Type = 2; +} +pub mod ib_sig_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IB_SIGNAL_ALL_WR: Type = 0; + pub const IB_SIGNAL_REQ_WR: Type = 1; +} +pub mod ib_signature_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IB_SIG_TYPE_NONE: Type = 0; + pub const IB_SIG_TYPE_T10_DIF: Type = 1; +} +pub mod ib_srq_attr_mask { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IB_SRQ_MAX_WR: Type = 1; + pub const IB_SRQ_LIMIT: Type = 2; +} +pub mod ib_srq_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IB_SRQT_BASIC: Type = 0; + pub const IB_SRQT_XRC: Type = 1; + pub const IB_SRQT_TM: Type = 2; +} +pub mod ib_t10_dif_bg_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IB_T10DIF_CRC: Type = 0; + pub const IB_T10DIF_CSUM: Type = 1; +} +pub mod ib_uverbs_advise_mr_advice { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH: Type = 0; + pub const IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH_WRITE: Type = 1; + pub const IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH_NO_FAULT: Type = 2; +} +pub mod ib_wc_opcode { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IB_WC_SEND: Type = 0; + pub const IB_WC_RDMA_WRITE: Type = 1; + pub const IB_WC_RDMA_READ: Type = 2; + pub const IB_WC_COMP_SWAP: Type = 3; + pub const IB_WC_FETCH_ADD: Type = 4; + pub const IB_WC_BIND_MW: Type = 5; + pub const IB_WC_LOCAL_INV: Type = 6; + pub const IB_WC_LSO: Type = 7; + pub const IB_WC_ATOMIC_WRITE: Type = 9; + pub const IB_WC_REG_MR: Type = 10; + pub const IB_WC_MASKED_COMP_SWAP: Type = 11; + pub const IB_WC_MASKED_FETCH_ADD: Type = 12; + pub const IB_WC_FLUSH: Type = 8; + pub const IB_WC_RECV: Type = 128; + pub const IB_WC_RECV_RDMA_WITH_IMM: Type = 129; +} +pub mod ib_wc_status { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IB_WC_SUCCESS: Type = 0; + pub const IB_WC_LOC_LEN_ERR: Type = 1; + pub const IB_WC_LOC_QP_OP_ERR: Type = 2; + pub const IB_WC_LOC_EEC_OP_ERR: Type = 3; + pub const IB_WC_LOC_PROT_ERR: Type = 4; + pub const IB_WC_WR_FLUSH_ERR: Type = 5; + pub const IB_WC_MW_BIND_ERR: Type = 6; + pub const IB_WC_BAD_RESP_ERR: Type = 7; + pub const IB_WC_LOC_ACCESS_ERR: Type = 8; + pub const IB_WC_REM_INV_REQ_ERR: Type = 9; + pub const IB_WC_REM_ACCESS_ERR: Type = 10; + pub const IB_WC_REM_OP_ERR: Type = 11; + pub const IB_WC_RETRY_EXC_ERR: Type = 12; + pub const IB_WC_RNR_RETRY_EXC_ERR: Type = 13; + pub const IB_WC_LOC_RDD_VIOL_ERR: Type = 14; + pub const IB_WC_REM_INV_RD_REQ_ERR: Type = 15; + pub const IB_WC_REM_ABORT_ERR: Type = 16; + pub const IB_WC_INV_EECN_ERR: Type = 17; + pub const IB_WC_INV_EEC_STATE_ERR: Type = 18; + pub const IB_WC_FATAL_ERR: Type = 19; + pub const IB_WC_RESP_TIMEOUT_ERR: Type = 20; + pub const IB_WC_GENERAL_ERR: Type = 21; +} +pub mod ib_wq_state { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IB_WQS_RESET: Type = 0; + pub const IB_WQS_RDY: Type = 1; + pub const IB_WQS_ERR: Type = 2; +} +pub mod ib_wq_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IB_WQT_RQ: Type = 0; +} +pub mod ib_wr_opcode { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IB_WR_RDMA_WRITE: Type = 0; + pub const IB_WR_RDMA_WRITE_WITH_IMM: Type = 1; + pub const IB_WR_SEND: Type = 2; + pub const IB_WR_SEND_WITH_IMM: Type = 3; + pub const IB_WR_RDMA_READ: Type = 4; + pub const IB_WR_ATOMIC_CMP_AND_SWP: Type = 5; + pub const IB_WR_ATOMIC_FETCH_AND_ADD: Type = 6; + pub const IB_WR_BIND_MW: Type = 8; + pub const IB_WR_LSO: Type = 10; + pub const IB_WR_SEND_WITH_INV: Type = 9; + pub const IB_WR_RDMA_READ_WITH_INV: Type = 11; + pub const IB_WR_LOCAL_INV: Type = 7; + pub const IB_WR_MASKED_ATOMIC_CMP_AND_SWP: Type = 12; + pub const IB_WR_MASKED_ATOMIC_FETCH_AND_ADD: Type = 13; + pub const IB_WR_FLUSH: Type = 14; + pub const IB_WR_ATOMIC_WRITE: Type = 15; + pub const IB_WR_REG_MR: Type = 32; + pub const IB_WR_REG_MR_INTEGRITY: Type = 33; + pub const IB_WR_RESERVED1: Type = 240; + pub const IB_WR_RESERVED2: Type = 241; + pub const IB_WR_RESERVED3: Type = 242; + pub const IB_WR_RESERVED4: Type = 243; + pub const IB_WR_RESERVED5: Type = 244; + pub const IB_WR_RESERVED6: Type = 245; + pub const IB_WR_RESERVED7: Type = 246; + pub const IB_WR_RESERVED8: Type = 247; + pub const IB_WR_RESERVED9: Type = 248; + pub const IB_WR_RESERVED10: Type = 249; +} +pub mod ieee80211_bss_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IEEE80211_BSS_TYPE_ESS: Type = 0; + pub const IEEE80211_BSS_TYPE_PBSS: Type = 1; + pub const IEEE80211_BSS_TYPE_IBSS: Type = 2; + pub const IEEE80211_BSS_TYPE_MBSS: Type = 3; + pub const IEEE80211_BSS_TYPE_ANY: Type = 4; +} +pub mod ieee80211_edmg_bw_config { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IEEE80211_EDMG_BW_CONFIG_4: Type = 4; + pub const IEEE80211_EDMG_BW_CONFIG_5: Type = 5; + pub const IEEE80211_EDMG_BW_CONFIG_6: Type = 6; + pub const IEEE80211_EDMG_BW_CONFIG_7: Type = 7; + pub const IEEE80211_EDMG_BW_CONFIG_8: Type = 8; + pub const IEEE80211_EDMG_BW_CONFIG_9: Type = 9; + pub const IEEE80211_EDMG_BW_CONFIG_10: Type = 10; + pub const IEEE80211_EDMG_BW_CONFIG_11: Type = 11; + pub const IEEE80211_EDMG_BW_CONFIG_12: Type = 12; + pub const IEEE80211_EDMG_BW_CONFIG_13: Type = 13; + pub const IEEE80211_EDMG_BW_CONFIG_14: Type = 14; + pub const IEEE80211_EDMG_BW_CONFIG_15: Type = 15; +} +pub mod ieee802154_filtering_level { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IEEE802154_FILTERING_NONE: Type = 0; + pub const IEEE802154_FILTERING_1_FCS: Type = 1; + pub const IEEE802154_FILTERING_2_PROMISCUOUS: Type = 2; + pub const IEEE802154_FILTERING_3_SCAN: Type = 3; + pub const IEEE802154_FILTERING_4_FRAME_FIELDS: Type = 4; +} +pub mod inode_state_flags_enum { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const I_NEW: Type = 1; + pub const I_SYNC: Type = 2; + pub const I_LRU_ISOLATING: Type = 4; + pub const I_DIRTY_SYNC: Type = 16; + pub const I_DIRTY_DATASYNC: Type = 32; + pub const I_DIRTY_PAGES: Type = 64; + pub const I_WILL_FREE: Type = 128; + pub const I_FREEING: Type = 256; + pub const I_CLEAR: Type = 512; + pub const I_REFERENCED: Type = 1024; + pub const I_LINKABLE: Type = 2048; + pub const I_DIRTY_TIME: Type = 4096; + pub const I_WB_SWITCH: Type = 8192; + pub const I_OVL_INUSE: Type = 16384; + pub const I_CREATING: Type = 32768; + pub const I_DONTCACHE: Type = 65536; + pub const I_SYNC_QUEUED: Type = 131072; + pub const I_PINNING_NETFS_WB: Type = 262144; +} +pub mod iommu_cap { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IOMMU_CAP_CACHE_COHERENCY: Type = 0; + pub const IOMMU_CAP_NOEXEC: Type = 1; + pub const IOMMU_CAP_PRE_BOOT_PROTECTION: Type = 2; + pub const IOMMU_CAP_ENFORCE_CACHE_COHERENCY: Type = 3; + pub const IOMMU_CAP_DEFERRED_FLUSH: Type = 4; + pub const IOMMU_CAP_DIRTY_TRACKING: Type = 5; + pub const IOMMU_CAP_PCI_ATS_SUPPORTED: Type = 6; +} +pub mod iommu_dma_queue_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IOMMU_DMA_OPTS_PER_CPU_QUEUE: Type = 0; + pub const IOMMU_DMA_OPTS_SINGLE_QUEUE: Type = 1; +} +pub mod iommu_domain_cookie_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IOMMU_COOKIE_NONE: Type = 0; + pub const IOMMU_COOKIE_DMA_IOVA: Type = 1; + pub const IOMMU_COOKIE_DMA_MSI: Type = 2; + pub const IOMMU_COOKIE_FAULT_HANDLER: Type = 3; + pub const IOMMU_COOKIE_SVA: Type = 4; + pub const IOMMU_COOKIE_IOMMUFD: Type = 5; +} +pub mod iommu_hw_info_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IOMMU_HW_INFO_TYPE_NONE: Type = 0; + pub const IOMMU_HW_INFO_TYPE_DEFAULT: Type = 0; + pub const IOMMU_HW_INFO_TYPE_INTEL_VTD: Type = 1; + pub const IOMMU_HW_INFO_TYPE_ARM_SMMUV3: Type = 2; + pub const IOMMU_HW_INFO_TYPE_TEGRA241_CMDQV: Type = 3; + pub const IOMMU_HW_INFO_TYPE_AMD: Type = 4; +} +pub mod iommu_hw_queue_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IOMMU_HW_QUEUE_TYPE_DEFAULT: Type = 0; + pub const IOMMU_HW_QUEUE_TYPE_TEGRA241_CMDQV: Type = 1; +} +pub mod iommu_viommu_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IOMMU_VIOMMU_TYPE_DEFAULT: Type = 0; + pub const IOMMU_VIOMMU_TYPE_ARM_SMMUV3: Type = 1; + pub const IOMMU_VIOMMU_TYPE_TEGRA241_CMDQV: Type = 2; +} +pub mod iommufd_object_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IOMMUFD_OBJ_NONE: Type = 0; + pub const IOMMUFD_OBJ_ANY: Type = 0; + pub const IOMMUFD_OBJ_DEVICE: Type = 1; + pub const IOMMUFD_OBJ_HWPT_PAGING: Type = 2; + pub const IOMMUFD_OBJ_HWPT_NESTED: Type = 3; + pub const IOMMUFD_OBJ_IOAS: Type = 4; + pub const IOMMUFD_OBJ_ACCESS: Type = 5; + pub const IOMMUFD_OBJ_FAULT: Type = 6; + pub const IOMMUFD_OBJ_VIOMMU: Type = 7; + pub const IOMMUFD_OBJ_VDEVICE: Type = 8; + pub const IOMMUFD_OBJ_VEVENTQ: Type = 9; + pub const IOMMUFD_OBJ_HW_QUEUE: Type = 10; + pub const IOMMUFD_OBJ_MAX: Type = 11; +} +pub mod ip_conntrack_dir { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IP_CT_DIR_ORIGINAL: Type = 0; + pub const IP_CT_DIR_REPLY: Type = 1; + pub const IP_CT_DIR_MAX: Type = 2; +} +pub mod irq_alloc_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const X86_IRQ_ALLOC_TYPE_IOAPIC: Type = 1; + pub const X86_IRQ_ALLOC_TYPE_HPET: Type = 2; + pub const X86_IRQ_ALLOC_TYPE_PCI_MSI: Type = 3; + pub const X86_IRQ_ALLOC_TYPE_PCI_MSIX: Type = 4; + pub const X86_IRQ_ALLOC_TYPE_DMAR: Type = 5; + pub const X86_IRQ_ALLOC_TYPE_AMDVI: Type = 6; + pub const X86_IRQ_ALLOC_TYPE_UV: Type = 7; +} +pub mod irq_domain_bus_token { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const DOMAIN_BUS_ANY: Type = 0; + pub const DOMAIN_BUS_WIRED: Type = 1; + pub const DOMAIN_BUS_GENERIC_MSI: Type = 2; + pub const DOMAIN_BUS_PCI_MSI: Type = 3; + pub const DOMAIN_BUS_PLATFORM_MSI: Type = 4; + pub const DOMAIN_BUS_NEXUS: Type = 5; + pub const DOMAIN_BUS_IPI: Type = 6; + pub const DOMAIN_BUS_FSL_MC_MSI: Type = 7; + pub const DOMAIN_BUS_TI_SCI_INTA_MSI: Type = 8; + pub const DOMAIN_BUS_WAKEUP: Type = 9; + pub const DOMAIN_BUS_VMD_MSI: Type = 10; + pub const DOMAIN_BUS_PCI_DEVICE_MSI: Type = 11; + pub const DOMAIN_BUS_PCI_DEVICE_MSIX: Type = 12; + pub const DOMAIN_BUS_DMAR: Type = 13; + pub const DOMAIN_BUS_AMDVI: Type = 14; + pub const DOMAIN_BUS_DEVICE_MSI: Type = 15; + pub const DOMAIN_BUS_WIRED_TO_MSI: Type = 16; +} +pub mod irq_gc_flags { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IRQ_GC_INIT_MASK_CACHE: Type = 1; + pub const IRQ_GC_INIT_NESTED_LOCK: Type = 2; + pub const IRQ_GC_MASK_CACHE_PER_TYPE: Type = 4; + pub const IRQ_GC_NO_MASK: Type = 8; + pub const IRQ_GC_BE_IO: Type = 16; +} +pub mod irqchip_irq_state { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IRQCHIP_STATE_PENDING: Type = 0; + pub const IRQCHIP_STATE_ACTIVE: Type = 1; + pub const IRQCHIP_STATE_MASKED: Type = 2; + pub const IRQCHIP_STATE_LINE_LEVEL: Type = 3; +} +pub mod irqreturn { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IRQ_NONE: Type = 0; + pub const IRQ_HANDLED: Type = 1; + pub const IRQ_WAKE_THREAD: Type = 2; +} +pub use self::irqreturn::Type as irqreturn_t; +pub mod kernel_pkey_operation { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const kernel_pkey_encrypt: Type = 0; + pub const kernel_pkey_decrypt: Type = 1; + pub const kernel_pkey_sign: Type = 2; + pub const kernel_pkey_verify: Type = 3; +} +pub mod kobj_ns_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const KOBJ_NS_TYPE_NONE: Type = 0; + pub const KOBJ_NS_TYPE_NET: Type = 1; + pub const KOBJ_NS_TYPES: Type = 2; +} +pub mod led_brightness { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const LED_OFF: Type = 0; + pub const LED_ON: Type = 1; + pub const LED_HALF: Type = 127; + pub const LED_FULL: Type = 255; +} +pub mod macsec_offload { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const MACSEC_OFFLOAD_OFF: Type = 0; + pub const MACSEC_OFFLOAD_PHY: Type = 1; + pub const MACSEC_OFFLOAD_MAC: Type = 2; + pub const __MACSEC_OFFLOAD_END: Type = 3; + pub const MACSEC_OFFLOAD_MAX: Type = 2; +} +pub mod macsec_validation_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const MACSEC_VALIDATE_DISABLED: Type = 0; + pub const MACSEC_VALIDATE_CHECK: Type = 1; + pub const MACSEC_VALIDATE_STRICT: Type = 2; + pub const __MACSEC_VALIDATE_END: Type = 3; + pub const MACSEC_VALIDATE_MAX: Type = 2; +} +pub mod mctp_phys_binding { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const MCTP_PHYS_BINDING_UNSPEC: Type = 0; + pub const MCTP_PHYS_BINDING_SMBUS: Type = 1; + pub const MCTP_PHYS_BINDING_PCIE_VDM: Type = 2; + pub const MCTP_PHYS_BINDING_USB: Type = 3; + pub const MCTP_PHYS_BINDING_KCS: Type = 4; + pub const MCTP_PHYS_BINDING_SERIAL: Type = 5; + pub const MCTP_PHYS_BINDING_I3C: Type = 6; + pub const MCTP_PHYS_BINDING_MMBI: Type = 7; + pub const MCTP_PHYS_BINDING_PCC: Type = 8; + pub const MCTP_PHYS_BINDING_UCIE: Type = 9; + pub const MCTP_PHYS_BINDING_VENDOR: Type = 255; +} +pub mod memory_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const MEMORY_DEVICE_PRIVATE: Type = 1; + pub const MEMORY_DEVICE_COHERENT: Type = 2; + pub const MEMORY_DEVICE_FS_DAX: Type = 3; + pub const MEMORY_DEVICE_GENERIC: Type = 4; + pub const MEMORY_DEVICE_PCI_P2PDMA: Type = 5; +} +pub mod metadata_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const METADATA_IP_TUNNEL: Type = 0; + pub const METADATA_HW_PORT_MUX: Type = 1; + pub const METADATA_MACSEC: Type = 2; + pub const METADATA_XFRM: Type = 3; +} +pub mod migrate_mode { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const MIGRATE_ASYNC: Type = 0; + pub const MIGRATE_SYNC_LIGHT: Type = 1; + pub const MIGRATE_SYNC: Type = 2; +} +pub mod mmap_action_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const MMAP_NOTHING: Type = 0; + pub const MMAP_REMAP_PFN: Type = 1; + pub const MMAP_IO_REMAP_PFN: Type = 2; + pub const MMAP_SIMPLE_IO_REMAP: Type = 3; + pub const MMAP_MAP_KERNEL_PAGES: Type = 4; +} +pub mod module_state { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const MODULE_STATE_LIVE: Type = 0; + pub const MODULE_STATE_COMING: Type = 1; + pub const MODULE_STATE_GOING: Type = 2; + pub const MODULE_STATE_UNFORMED: Type = 3; +} +pub mod mq_rq_state { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const MQ_RQ_IDLE: Type = 0; + pub const MQ_RQ_IN_FLIGHT: Type = 1; + pub const MQ_RQ_COMPLETE: Type = 2; +} +pub mod net_device_path_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const DEV_PATH_ETHERNET: Type = 0; + pub const DEV_PATH_VLAN: Type = 1; + pub const DEV_PATH_BRIDGE: Type = 2; + pub const DEV_PATH_PPPOE: Type = 3; + pub const DEV_PATH_DSA: Type = 4; + pub const DEV_PATH_MTK_WDMA: Type = 5; + pub const DEV_PATH_TUN: Type = 6; +} +pub mod net_shaper_binding_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const NET_SHAPER_BINDING_TYPE_NETDEV: Type = 0; +} +pub mod net_shaper_metric { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const NET_SHAPER_METRIC_BPS: Type = 0; + pub const NET_SHAPER_METRIC_PPS: Type = 1; +} +pub mod net_shaper_scope { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const NET_SHAPER_SCOPE_UNSPEC: Type = 0; + pub const NET_SHAPER_SCOPE_NETDEV: Type = 1; + pub const NET_SHAPER_SCOPE_QUEUE: Type = 2; + pub const NET_SHAPER_SCOPE_NODE: Type = 3; + pub const __NET_SHAPER_SCOPE_MAX: Type = 4; + pub const NET_SHAPER_SCOPE_MAX: Type = 3; +} +pub mod netdev_lag_hash { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const NETDEV_LAG_HASH_NONE: Type = 0; + pub const NETDEV_LAG_HASH_L2: Type = 1; + pub const NETDEV_LAG_HASH_L34: Type = 2; + pub const NETDEV_LAG_HASH_L23: Type = 3; + pub const NETDEV_LAG_HASH_E23: Type = 4; + pub const NETDEV_LAG_HASH_E34: Type = 5; + pub const NETDEV_LAG_HASH_VLAN_SRCMAC: Type = 6; + pub const NETDEV_LAG_HASH_UNKNOWN: Type = 7; +} +pub mod netdev_lag_tx_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const NETDEV_LAG_TX_TYPE_UNKNOWN: Type = 0; + pub const NETDEV_LAG_TX_TYPE_RANDOM: Type = 1; + pub const NETDEV_LAG_TX_TYPE_BROADCAST: Type = 2; + pub const NETDEV_LAG_TX_TYPE_ROUNDROBIN: Type = 3; + pub const NETDEV_LAG_TX_TYPE_ACTIVEBACKUP: Type = 4; + pub const NETDEV_LAG_TX_TYPE_HASH: Type = 5; +} +pub mod netdev_ml_priv_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const ML_PRIV_NONE: Type = 0; + pub const ML_PRIV_CAN: Type = 1; +} +pub mod netdev_stat_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const NETDEV_PCPU_STAT_NONE: Type = 0; + pub const NETDEV_PCPU_STAT_LSTATS: Type = 1; + pub const NETDEV_PCPU_STAT_TSTATS: Type = 2; + pub const NETDEV_PCPU_STAT_DSTATS: Type = 3; +} +pub mod netdev_tx { + pub type Type = ::aya_ebpf::cty::c_int; + pub const __NETDEV_TX_MIN: Type = -2147483648; + pub const NETDEV_TX_OK: Type = 0; + pub const NETDEV_TX_BUSY: Type = 16; +} +pub use self::netdev_tx::Type as netdev_tx_t; +pub mod nf_log_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const NF_LOG_TYPE_LOG: Type = 0; + pub const NF_LOG_TYPE_ULOG: Type = 1; + pub const NF_LOG_TYPE_MAX: Type = 2; +} +pub mod nfs3_stable_how { + pub type Type = ::aya_ebpf::cty::c_int; + pub const NFS_UNSTABLE: Type = 0; + pub const NFS_DATA_SYNC: Type = 1; + pub const NFS_FILE_SYNC: Type = 2; + pub const NFS_INVALID_STABLE_HOW: Type = -1; +} +pub mod nfs4_change_attr_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const NFS4_CHANGE_TYPE_IS_MONOTONIC_INCR: Type = 0; + pub const NFS4_CHANGE_TYPE_IS_VERSION_COUNTER: Type = 1; + pub const NFS4_CHANGE_TYPE_IS_VERSION_COUNTER_NOPNFS: Type = 2; + pub const NFS4_CHANGE_TYPE_IS_TIME_METADATA: Type = 3; + pub const NFS4_CHANGE_TYPE_IS_UNDEFINED: Type = 4; +} +pub mod nl80211_auth_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const NL80211_AUTHTYPE_OPEN_SYSTEM: Type = 0; + pub const NL80211_AUTHTYPE_SHARED_KEY: Type = 1; + pub const NL80211_AUTHTYPE_FT: Type = 2; + pub const NL80211_AUTHTYPE_NETWORK_EAP: Type = 3; + pub const NL80211_AUTHTYPE_SAE: Type = 4; + pub const NL80211_AUTHTYPE_FILS_SK: Type = 5; + pub const NL80211_AUTHTYPE_FILS_SK_PFS: Type = 6; + pub const NL80211_AUTHTYPE_FILS_PK: Type = 7; + pub const NL80211_AUTHTYPE_EPPKE: Type = 8; + pub const NL80211_AUTHTYPE_IEEE8021X: Type = 9; + pub const __NL80211_AUTHTYPE_NUM: Type = 10; + pub const NL80211_AUTHTYPE_MAX: Type = 9; + pub const NL80211_AUTHTYPE_AUTOMATIC: Type = 10; +} +pub mod nl80211_band { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const NL80211_BAND_2GHZ: Type = 0; + pub const NL80211_BAND_5GHZ: Type = 1; + pub const NL80211_BAND_60GHZ: Type = 2; + pub const NL80211_BAND_6GHZ: Type = 3; + pub const NL80211_BAND_S1GHZ: Type = 4; + pub const NL80211_BAND_LC: Type = 5; + pub const NUM_NL80211_BANDS: Type = 6; +} +pub mod nl80211_bss_select_attr { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const __NL80211_BSS_SELECT_ATTR_INVALID: Type = 0; + pub const NL80211_BSS_SELECT_ATTR_RSSI: Type = 1; + pub const NL80211_BSS_SELECT_ATTR_BAND_PREF: Type = 2; + pub const NL80211_BSS_SELECT_ATTR_RSSI_ADJUST: Type = 3; + pub const __NL80211_BSS_SELECT_ATTR_AFTER_LAST: Type = 4; + pub const NL80211_BSS_SELECT_ATTR_MAX: Type = 3; +} +pub mod nl80211_chan_width { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const NL80211_CHAN_WIDTH_20_NOHT: Type = 0; + pub const NL80211_CHAN_WIDTH_20: Type = 1; + pub const NL80211_CHAN_WIDTH_40: Type = 2; + pub const NL80211_CHAN_WIDTH_80: Type = 3; + pub const NL80211_CHAN_WIDTH_80P80: Type = 4; + pub const NL80211_CHAN_WIDTH_160: Type = 5; + pub const NL80211_CHAN_WIDTH_5: Type = 6; + pub const NL80211_CHAN_WIDTH_10: Type = 7; + pub const NL80211_CHAN_WIDTH_1: Type = 8; + pub const NL80211_CHAN_WIDTH_2: Type = 9; + pub const NL80211_CHAN_WIDTH_4: Type = 10; + pub const NL80211_CHAN_WIDTH_8: Type = 11; + pub const NL80211_CHAN_WIDTH_16: Type = 12; + pub const NL80211_CHAN_WIDTH_320: Type = 13; +} +pub mod nl80211_dfs_regions { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const NL80211_DFS_UNSET: Type = 0; + pub const NL80211_DFS_FCC: Type = 1; + pub const NL80211_DFS_ETSI: Type = 2; + pub const NL80211_DFS_JP: Type = 3; +} +pub mod nl80211_dfs_state { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const NL80211_DFS_USABLE: Type = 0; + pub const NL80211_DFS_UNAVAILABLE: Type = 1; + pub const NL80211_DFS_AVAILABLE: Type = 2; +} +pub mod nl80211_iftype { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const NL80211_IFTYPE_UNSPECIFIED: Type = 0; + pub const NL80211_IFTYPE_ADHOC: Type = 1; + pub const NL80211_IFTYPE_STATION: Type = 2; + pub const NL80211_IFTYPE_AP: Type = 3; + pub const NL80211_IFTYPE_AP_VLAN: Type = 4; + pub const NL80211_IFTYPE_WDS: Type = 5; + pub const NL80211_IFTYPE_MONITOR: Type = 6; + pub const NL80211_IFTYPE_MESH_POINT: Type = 7; + pub const NL80211_IFTYPE_P2P_CLIENT: Type = 8; + pub const NL80211_IFTYPE_P2P_GO: Type = 9; + pub const NL80211_IFTYPE_P2P_DEVICE: Type = 10; + pub const NL80211_IFTYPE_OCB: Type = 11; + pub const NL80211_IFTYPE_NAN: Type = 12; + pub const NL80211_IFTYPE_NAN_DATA: Type = 13; + pub const NUM_NL80211_IFTYPES: Type = 14; + pub const NL80211_IFTYPE_MAX: Type = 13; +} +pub mod nl80211_key_mode { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const NL80211_KEY_RX_TX: Type = 0; + pub const NL80211_KEY_NO_TX: Type = 1; + pub const NL80211_KEY_SET_TX: Type = 2; +} +pub mod nl80211_mfp { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const NL80211_MFP_NO: Type = 0; + pub const NL80211_MFP_REQUIRED: Type = 1; + pub const NL80211_MFP_OPTIONAL: Type = 2; +} +pub mod nl80211_reg_initiator { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const NL80211_REGDOM_SET_BY_CORE: Type = 0; + pub const NL80211_REGDOM_SET_BY_USER: Type = 1; + pub const NL80211_REGDOM_SET_BY_DRIVER: Type = 2; + pub const NL80211_REGDOM_SET_BY_COUNTRY_IE: Type = 3; +} +pub mod nl80211_sae_pwe_mechanism { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const NL80211_SAE_PWE_UNSPECIFIED: Type = 0; + pub const NL80211_SAE_PWE_HUNT_AND_PECK: Type = 1; + pub const NL80211_SAE_PWE_HASH_TO_ELEMENT: Type = 2; + pub const NL80211_SAE_PWE_BOTH: Type = 3; +} +pub mod nl80211_sar_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const NL80211_SAR_TYPE_POWER: Type = 0; + pub const NUM_NL80211_SAR_TYPE: Type = 1; +} +pub mod nl80211_user_reg_hint_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const NL80211_USER_REG_HINT_USER: Type = 0; + pub const NL80211_USER_REG_HINT_CELL_BASE: Type = 1; + pub const NL80211_USER_REG_HINT_INDOOR: Type = 2; +} +pub mod nl802154_cca_modes { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const __NL802154_CCA_INVALID: Type = 0; + pub const NL802154_CCA_ENERGY: Type = 1; + pub const NL802154_CCA_CARRIER: Type = 2; + pub const NL802154_CCA_ENERGY_CARRIER: Type = 3; + pub const NL802154_CCA_ALOHA: Type = 4; + pub const NL802154_CCA_UWB_SHR: Type = 5; + pub const NL802154_CCA_UWB_MULTIPLEXED: Type = 6; + pub const __NL802154_CCA_ATTR_AFTER_LAST: Type = 7; + pub const NL802154_CCA_ATTR_MAX: Type = 6; +} +pub mod nl802154_cca_opts { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const NL802154_CCA_OPT_ENERGY_CARRIER_AND: Type = 0; + pub const NL802154_CCA_OPT_ENERGY_CARRIER_OR: Type = 1; + pub const __NL802154_CCA_OPT_ATTR_AFTER_LAST: Type = 2; + pub const NL802154_CCA_OPT_ATTR_MAX: Type = 1; +} +pub mod nl802154_supported_bool_states { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const NL802154_SUPPORTED_BOOL_FALSE: Type = 0; + pub const NL802154_SUPPORTED_BOOL_TRUE: Type = 1; + pub const __NL802154_SUPPORTED_BOOL_INVALD: Type = 2; + pub const NL802154_SUPPORTED_BOOL_BOTH: Type = 3; + pub const __NL802154_SUPPORTED_BOOL_AFTER_LAST: Type = 4; + pub const NL802154_SUPPORTED_BOOL_MAX: Type = 3; +} +pub mod perf_event_state { + pub type Type = ::aya_ebpf::cty::c_int; + pub const PERF_EVENT_STATE_DEAD: Type = -5; + pub const PERF_EVENT_STATE_REVOKED: Type = -4; + pub const PERF_EVENT_STATE_EXIT: Type = -3; + pub const PERF_EVENT_STATE_ERROR: Type = -2; + pub const PERF_EVENT_STATE_OFF: Type = -1; + pub const PERF_EVENT_STATE_INACTIVE: Type = 0; + pub const PERF_EVENT_STATE_ACTIVE: Type = 1; +} +pub mod phy_mse_channel { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const PHY_MSE_CHANNEL_A: Type = 0; + pub const PHY_MSE_CHANNEL_B: Type = 1; + pub const PHY_MSE_CHANNEL_C: Type = 2; + pub const PHY_MSE_CHANNEL_D: Type = 3; + pub const PHY_MSE_CHANNEL_WORST: Type = 4; + pub const PHY_MSE_CHANNEL_LINK: Type = 5; +} +pub mod phy_state { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const PHY_DOWN: Type = 0; + pub const PHY_READY: Type = 1; + pub const PHY_HALTED: Type = 2; + pub const PHY_ERROR: Type = 3; + pub const PHY_UP: Type = 4; + pub const PHY_RUNNING: Type = 5; + pub const PHY_NOLINK: Type = 6; + pub const PHY_CABLETEST: Type = 7; +} +pub mod phylink_op_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const PHYLINK_NETDEV: Type = 0; + pub const PHYLINK_DEV: Type = 1; +} +pub mod pid_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const PIDTYPE_PID: Type = 0; + pub const PIDTYPE_TGID: Type = 1; + pub const PIDTYPE_PGID: Type = 2; + pub const PIDTYPE_SID: Type = 3; + pub const PIDTYPE_MAX: Type = 4; +} +pub mod pm_qos_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const PM_QOS_UNITIALIZED: Type = 0; + pub const PM_QOS_MAX: Type = 1; + pub const PM_QOS_MIN: Type = 2; +} +pub mod port_pkey_state { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IB_PORT_PKEY_NOT_VALID: Type = 0; + pub const IB_PORT_PKEY_VALID: Type = 1; + pub const IB_PORT_PKEY_LISTED: Type = 2; +} +pub mod pr_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const PR_WRITE_EXCLUSIVE: Type = 1; + pub const PR_EXCLUSIVE_ACCESS: Type = 2; + pub const PR_WRITE_EXCLUSIVE_REG_ONLY: Type = 3; + pub const PR_EXCLUSIVE_ACCESS_REG_ONLY: Type = 4; + pub const PR_WRITE_EXCLUSIVE_ALL_REGS: Type = 5; + pub const PR_EXCLUSIVE_ACCESS_ALL_REGS: Type = 6; +} +pub mod print_line_t { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const TRACE_TYPE_PARTIAL_LINE: Type = 0; + pub const TRACE_TYPE_HANDLED: Type = 1; + pub const TRACE_TYPE_UNHANDLED: Type = 2; + pub const TRACE_TYPE_NO_CONSUME: Type = 3; +} +pub mod priv_stack_mode { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const PRIV_STACK_UNKNOWN: Type = 0; + pub const NO_PRIV_STACK: Type = 1; + pub const PRIV_STACK_ADAPTIVE: Type = 2; +} +pub mod probe_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const PROBE_DEFAULT_STRATEGY: Type = 0; + pub const PROBE_PREFER_ASYNCHRONOUS: Type = 1; + pub const PROBE_FORCE_SYNCHRONOUS: Type = 2; +} +pub mod pse_pi_pairset_pinout { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const ALTERNATIVE_A: Type = 0; + pub const ALTERNATIVE_B: Type = 1; +} +pub mod quota_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const USRQUOTA: Type = 0; + pub const GRPQUOTA: Type = 1; + pub const PRJQUOTA: Type = 2; +} +pub mod rdma_ah_attr_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const RDMA_AH_ATTR_TYPE_UNDEFINED: Type = 0; + pub const RDMA_AH_ATTR_TYPE_IB: Type = 1; + pub const RDMA_AH_ATTR_TYPE_ROCE: Type = 2; + pub const RDMA_AH_ATTR_TYPE_OPA: Type = 3; +} +pub mod rdma_driver_id { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const RDMA_DRIVER_UNKNOWN: Type = 0; + pub const RDMA_DRIVER_MLX5: Type = 1; + pub const RDMA_DRIVER_MLX4: Type = 2; + pub const RDMA_DRIVER_CXGB3: Type = 3; + pub const RDMA_DRIVER_CXGB4: Type = 4; + pub const RDMA_DRIVER_MTHCA: Type = 5; + pub const RDMA_DRIVER_BNXT_RE: Type = 6; + pub const RDMA_DRIVER_OCRDMA: Type = 7; + pub const RDMA_DRIVER_NES: Type = 8; + pub const RDMA_DRIVER_I40IW: Type = 9; + pub const RDMA_DRIVER_IRDMA: Type = 9; + pub const RDMA_DRIVER_VMW_PVRDMA: Type = 10; + pub const RDMA_DRIVER_QEDR: Type = 11; + pub const RDMA_DRIVER_HNS: Type = 12; + pub const RDMA_DRIVER_USNIC: Type = 13; + pub const RDMA_DRIVER_RXE: Type = 14; + pub const RDMA_DRIVER_HFI1: Type = 15; + pub const RDMA_DRIVER_QIB: Type = 16; + pub const RDMA_DRIVER_EFA: Type = 17; + pub const RDMA_DRIVER_SIW: Type = 18; + pub const RDMA_DRIVER_ERDMA: Type = 19; + pub const RDMA_DRIVER_MANA: Type = 20; + pub const RDMA_DRIVER_IONIC: Type = 21; +} +pub mod rdma_link_layer { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IB_LINK_LAYER_UNSPECIFIED: Type = 0; + pub const IB_LINK_LAYER_INFINIBAND: Type = 1; + pub const IB_LINK_LAYER_ETHERNET: Type = 2; +} +pub mod rdma_netdev_t { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const RDMA_NETDEV_IPOIB: Type = 0; +} +pub mod rdma_nl_counter_mask { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const RDMA_COUNTER_MASK_QP_TYPE: Type = 1; + pub const RDMA_COUNTER_MASK_PID: Type = 2; +} +pub mod rdma_nl_counter_mode { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const RDMA_COUNTER_MODE_NONE: Type = 0; + pub const RDMA_COUNTER_MODE_AUTO: Type = 1; + pub const RDMA_COUNTER_MODE_MANUAL: Type = 2; + pub const RDMA_COUNTER_MODE_MAX: Type = 3; +} +pub mod rdma_nl_dev_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const RDMA_DEVICE_TYPE_SMI: Type = 1; +} +pub mod rdma_nl_name_assign_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const RDMA_NAME_ASSIGN_TYPE_UNKNOWN: Type = 0; + pub const RDMA_NAME_ASSIGN_TYPE_USER: Type = 1; +} +pub mod rdma_restrack_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const RDMA_RESTRACK_PD: Type = 0; + pub const RDMA_RESTRACK_CQ: Type = 1; + pub const RDMA_RESTRACK_QP: Type = 2; + pub const RDMA_RESTRACK_CM_ID: Type = 3; + pub const RDMA_RESTRACK_MR: Type = 4; + pub const RDMA_RESTRACK_CTX: Type = 5; + pub const RDMA_RESTRACK_COUNTER: Type = 6; + pub const RDMA_RESTRACK_SRQ: Type = 7; + pub const RDMA_RESTRACK_DMAH: Type = 8; + pub const RDMA_RESTRACK_MAX: Type = 9; +} +pub mod ref_state_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const REF_TYPE_PTR: Type = 2; + pub const REF_TYPE_IRQ: Type = 4; + pub const REF_TYPE_LOCK: Type = 8; + pub const REF_TYPE_RES_LOCK: Type = 16; + pub const REF_TYPE_RES_LOCK_IRQ: Type = 32; + pub const REF_TYPE_LOCK_MASK: Type = 56; +} +pub mod reftype { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const REF_NS: Type = 0; + pub const REF_PROXY: Type = 1; + pub const REF_RAWDATA: Type = 2; +} +pub mod regcache_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const REGCACHE_NONE: Type = 0; + pub const REGCACHE_RBTREE: Type = 1; + pub const REGCACHE_FLAT: Type = 2; + pub const REGCACHE_MAPLE: Type = 3; + pub const REGCACHE_FLAT_S: Type = 4; +} +pub mod regmap_endian { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const REGMAP_ENDIAN_DEFAULT: Type = 0; + pub const REGMAP_ENDIAN_BIG: Type = 1; + pub const REGMAP_ENDIAN_LITTLE: Type = 2; + pub const REGMAP_ENDIAN_NATIVE: Type = 3; +} +pub mod regulator_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const REGULATOR_VOLTAGE: Type = 0; + pub const REGULATOR_CURRENT: Type = 1; +} +pub mod rpm_request { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const RPM_REQ_NONE: Type = 0; + pub const RPM_REQ_IDLE: Type = 1; + pub const RPM_REQ_SUSPEND: Type = 2; + pub const RPM_REQ_AUTOSUSPEND: Type = 3; + pub const RPM_REQ_RESUME: Type = 4; +} +pub mod rpm_status { + pub type Type = ::aya_ebpf::cty::c_int; + pub const RPM_INVALID: Type = -1; + pub const RPM_ACTIVE: Type = 0; + pub const RPM_RESUMING: Type = 1; + pub const RPM_SUSPENDED: Type = 2; + pub const RPM_SUSPENDING: Type = 3; + pub const RPM_BLOCKED: Type = 4; +} +pub mod rq_end_io_ret { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const RQ_END_IO_NONE: Type = 0; + pub const RQ_END_IO_FREE: Type = 1; +} +pub mod rq_qos_id { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const RQ_QOS_WBT: Type = 0; + pub const RQ_QOS_LATENCY: Type = 1; + pub const RQ_QOS_COST: Type = 2; +} +pub mod rw_hint { + pub type Type = ::aya_ebpf::cty::c_schar; + pub const WRITE_LIFE_NOT_SET: Type = 0; + pub const WRITE_LIFE_NONE: Type = 1; + pub const WRITE_LIFE_SHORT: Type = 2; + pub const WRITE_LIFE_MEDIUM: Type = 3; + pub const WRITE_LIFE_LONG: Type = 4; + pub const WRITE_LIFE_EXTREME: Type = 5; + pub const WRITE_LIFE_HINT_NR: Type = 6; +} +pub mod rwsem_waiter_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const RWSEM_WAITING_FOR_WRITE: Type = 0; + pub const RWSEM_WAITING_FOR_READ: Type = 1; +} +pub mod rx_handler_result { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const RX_HANDLER_CONSUMED: Type = 0; + pub const RX_HANDLER_ANOTHER: Type = 1; + pub const RX_HANDLER_EXACT: Type = 2; + pub const RX_HANDLER_PASS: Type = 3; +} +pub use self::rx_handler_result::Type as rx_handler_result_t; +pub mod sctp_conntrack { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const SCTP_CONNTRACK_NONE: Type = 0; + pub const SCTP_CONNTRACK_CLOSED: Type = 1; + pub const SCTP_CONNTRACK_COOKIE_WAIT: Type = 2; + pub const SCTP_CONNTRACK_COOKIE_ECHOED: Type = 3; + pub const SCTP_CONNTRACK_ESTABLISHED: Type = 4; + pub const SCTP_CONNTRACK_SHUTDOWN_SENT: Type = 5; + pub const SCTP_CONNTRACK_SHUTDOWN_RECD: Type = 6; + pub const SCTP_CONNTRACK_SHUTDOWN_ACK_SENT: Type = 7; + pub const SCTP_CONNTRACK_HEARTBEAT_SENT: Type = 8; + pub const SCTP_CONNTRACK_HEARTBEAT_ACKED: Type = 9; + pub const SCTP_CONNTRACK_MAX: Type = 10; +} +pub mod scx_cpu_preempt_reason { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const SCX_CPU_PREEMPT_RT: Type = 0; + pub const SCX_CPU_PREEMPT_DL: Type = 1; + pub const SCX_CPU_PREEMPT_STOP: Type = 2; + pub const SCX_CPU_PREEMPT_UNKNOWN: Type = 3; +} +pub mod scx_exit_kind { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const SCX_EXIT_NONE: Type = 0; + pub const SCX_EXIT_DONE: Type = 1; + pub const SCX_EXIT_UNREG: Type = 64; + pub const SCX_EXIT_UNREG_BPF: Type = 65; + pub const SCX_EXIT_UNREG_KERN: Type = 66; + pub const SCX_EXIT_SYSRQ: Type = 67; + pub const SCX_EXIT_PARENT: Type = 68; + pub const SCX_EXIT_ERROR: Type = 1024; + pub const SCX_EXIT_ERROR_BPF: Type = 1025; + pub const SCX_EXIT_ERROR_STALL: Type = 1026; +} +pub mod sk_rst_reason { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const SK_RST_REASON_NOT_SPECIFIED: Type = 0; + pub const SK_RST_REASON_NO_SOCKET: Type = 1; + pub const SK_RST_REASON_TCP_INVALID_ACK_SEQUENCE: Type = 2; + pub const SK_RST_REASON_TCP_RFC7323_PAWS: Type = 3; + pub const SK_RST_REASON_TCP_TOO_OLD_ACK: Type = 4; + pub const SK_RST_REASON_TCP_ACK_UNSENT_DATA: Type = 5; + pub const SK_RST_REASON_TCP_FLAGS: Type = 6; + pub const SK_RST_REASON_TCP_OLD_ACK: Type = 7; + pub const SK_RST_REASON_TCP_ABORT_ON_DATA: Type = 8; + pub const SK_RST_REASON_TCP_TIMEWAIT_SOCKET: Type = 9; + pub const SK_RST_REASON_INVALID_SYN: Type = 10; + pub const SK_RST_REASON_TCP_ABORT_ON_CLOSE: Type = 11; + pub const SK_RST_REASON_TCP_ABORT_ON_LINGER: Type = 12; + pub const SK_RST_REASON_TCP_ABORT_ON_MEMORY: Type = 13; + pub const SK_RST_REASON_TCP_STATE: Type = 14; + pub const SK_RST_REASON_TCP_KEEPALIVE_TIMEOUT: Type = 15; + pub const SK_RST_REASON_TCP_DISCONNECT_WITH_DATA: Type = 16; + pub const SK_RST_REASON_MPTCP_RST_EUNSPEC: Type = 17; + pub const SK_RST_REASON_MPTCP_RST_EMPTCP: Type = 18; + pub const SK_RST_REASON_MPTCP_RST_ERESOURCE: Type = 19; + pub const SK_RST_REASON_MPTCP_RST_EPROHIBIT: Type = 20; + pub const SK_RST_REASON_MPTCP_RST_EWQ2BIG: Type = 21; + pub const SK_RST_REASON_MPTCP_RST_EBADPERF: Type = 22; + pub const SK_RST_REASON_MPTCP_RST_EMIDDLEBOX: Type = 23; + pub const SK_RST_REASON_ERROR: Type = 24; + pub const SK_RST_REASON_MAX: Type = 25; +} +pub mod svc_auth_status { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const SVC_GARBAGE: Type = 1; + pub const SVC_VALID: Type = 2; + pub const SVC_NEGATIVE: Type = 3; + pub const SVC_OK: Type = 4; + pub const SVC_DROP: Type = 5; + pub const SVC_CLOSE: Type = 6; + pub const SVC_DENIED: Type = 7; + pub const SVC_PENDING: Type = 8; + pub const SVC_COMPLETE: Type = 9; +} +pub mod switchdev_obj_id { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const SWITCHDEV_OBJ_ID_UNDEFINED: Type = 0; + pub const SWITCHDEV_OBJ_ID_PORT_VLAN: Type = 1; + pub const SWITCHDEV_OBJ_ID_PORT_MDB: Type = 2; + pub const SWITCHDEV_OBJ_ID_HOST_MDB: Type = 3; + pub const SWITCHDEV_OBJ_ID_MRP: Type = 4; + pub const SWITCHDEV_OBJ_ID_RING_TEST_MRP: Type = 5; + pub const SWITCHDEV_OBJ_ID_RING_ROLE_MRP: Type = 6; + pub const SWITCHDEV_OBJ_ID_RING_STATE_MRP: Type = 7; + pub const SWITCHDEV_OBJ_ID_IN_TEST_MRP: Type = 8; + pub const SWITCHDEV_OBJ_ID_IN_ROLE_MRP: Type = 9; + pub const SWITCHDEV_OBJ_ID_IN_STATE_MRP: Type = 10; +} +pub mod task_work_notify_mode { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const TWA_NONE: Type = 0; + pub const TWA_RESUME: Type = 1; + pub const TWA_SIGNAL: Type = 2; + pub const TWA_SIGNAL_NO_IPI: Type = 3; + pub const TWA_NMI_CURRENT: Type = 4; +} +pub mod tc_setup_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const TC_QUERY_CAPS: Type = 0; + pub const TC_SETUP_QDISC_MQPRIO: Type = 1; + pub const TC_SETUP_CLSU32: Type = 2; + pub const TC_SETUP_CLSFLOWER: Type = 3; + pub const TC_SETUP_CLSMATCHALL: Type = 4; + pub const TC_SETUP_CLSBPF: Type = 5; + pub const TC_SETUP_BLOCK: Type = 6; + pub const TC_SETUP_QDISC_CBS: Type = 7; + pub const TC_SETUP_QDISC_RED: Type = 8; + pub const TC_SETUP_QDISC_PRIO: Type = 9; + pub const TC_SETUP_QDISC_MQ: Type = 10; + pub const TC_SETUP_QDISC_ETF: Type = 11; + pub const TC_SETUP_ROOT_QDISC: Type = 12; + pub const TC_SETUP_QDISC_GRED: Type = 13; + pub const TC_SETUP_QDISC_TAPRIO: Type = 14; + pub const TC_SETUP_FT: Type = 15; + pub const TC_SETUP_QDISC_ETS: Type = 16; + pub const TC_SETUP_QDISC_TBF: Type = 17; + pub const TC_SETUP_QDISC_FIFO: Type = 18; + pub const TC_SETUP_QDISC_HTB: Type = 19; + pub const TC_SETUP_ACT: Type = 20; +} +pub mod tca_id { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const TCA_ID_UNSPEC: Type = 0; + pub const TCA_ID_POLICE: Type = 1; + pub const TCA_ID_GACT: Type = 5; + pub const TCA_ID_IPT: Type = 6; + pub const TCA_ID_PEDIT: Type = 7; + pub const TCA_ID_MIRRED: Type = 8; + pub const TCA_ID_NAT: Type = 9; + pub const TCA_ID_XT: Type = 10; + pub const TCA_ID_SKBEDIT: Type = 11; + pub const TCA_ID_VLAN: Type = 12; + pub const TCA_ID_BPF: Type = 13; + pub const TCA_ID_CONNMARK: Type = 14; + pub const TCA_ID_SKBMOD: Type = 15; + pub const TCA_ID_CSUM: Type = 16; + pub const TCA_ID_TUNNEL_KEY: Type = 17; + pub const TCA_ID_SIMP: Type = 22; + pub const TCA_ID_IFE: Type = 25; + pub const TCA_ID_SAMPLE: Type = 26; + pub const TCA_ID_CTINFO: Type = 27; + pub const TCA_ID_MPLS: Type = 28; + pub const TCA_ID_CT: Type = 29; + pub const TCA_ID_GATE: Type = 30; + pub const __TCA_ID_MAX: Type = 255; +} +pub mod tcp_ca_event { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const CA_EVENT_TX_START: Type = 0; + pub const CA_EVENT_CWND_RESTART: Type = 1; + pub const CA_EVENT_COMPLETE_CWR: Type = 2; + pub const CA_EVENT_LOSS: Type = 3; + pub const CA_EVENT_ECN_NO_CE: Type = 4; + pub const CA_EVENT_ECN_IS_CE: Type = 5; + pub const CA_EVENT_TLP_RECOVERY: Type = 6; +} +pub mod timespec_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const TT_NONE: Type = 0; + pub const TT_NATIVE: Type = 1; + pub const TT_COMPAT: Type = 2; +} +pub mod tk_offsets { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const TK_OFFS_REAL: Type = 0; + pub const TK_OFFS_BOOT: Type = 1; + pub const TK_OFFS_TAI: Type = 2; + pub const TK_OFFS_MAX: Type = 3; +} +pub mod tls_offload_ctx_dir { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const TLS_OFFLOAD_CTX_DIR_RX: Type = 0; + pub const TLS_OFFLOAD_CTX_DIR_TX: Type = 1; +} +pub mod tph_mem_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const TPH_MEM_TYPE_VM: Type = 0; + pub const TPH_MEM_TYPE_PM: Type = 1; +} +pub mod trace_reg { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const TRACE_REG_REGISTER: Type = 0; + pub const TRACE_REG_UNREGISTER: Type = 1; + pub const TRACE_REG_PERF_REGISTER: Type = 2; + pub const TRACE_REG_PERF_UNREGISTER: Type = 3; + pub const TRACE_REG_PERF_OPEN: Type = 4; + pub const TRACE_REG_PERF_CLOSE: Type = 5; + pub const TRACE_REG_PERF_ADD: Type = 6; + pub const TRACE_REG_PERF_DEL: Type = 7; +} +pub mod tty_driver_subtype { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const SYSTEM_TYPE_TTY: Type = 1; + pub const SYSTEM_TYPE_CONSOLE: Type = 2; + pub const SYSTEM_TYPE_SYSCONS: Type = 3; + pub const SYSTEM_TYPE_SYSPTMX: Type = 4; + pub const PTY_TYPE_MASTER: Type = 1; + pub const PTY_TYPE_SLAVE: Type = 2; + pub const SERIAL_TYPE_NORMAL: Type = 1; +} +pub mod tty_driver_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const TTY_DRIVER_TYPE_SYSTEM: Type = 0; + pub const TTY_DRIVER_TYPE_CONSOLE: Type = 1; + pub const TTY_DRIVER_TYPE_SERIAL: Type = 2; + pub const TTY_DRIVER_TYPE_PTY: Type = 3; + pub const TTY_DRIVER_TYPE_SCC: Type = 4; + pub const TTY_DRIVER_TYPE_SYSCONS: Type = 5; +} +pub mod uprobe_task_state { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const UTASK_RUNNING: Type = 0; + pub const UTASK_SSTEP: Type = 1; + pub const UTASK_SSTEP_ACK: Type = 2; + pub const UTASK_SSTEP_TRAPPED: Type = 3; +} +pub mod vsock_net_mode { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const VSOCK_NET_MODE_GLOBAL: Type = 0; + pub const VSOCK_NET_MODE_LOCAL: Type = 1; +} +pub mod vtime_state { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const VTIME_INACTIVE: Type = 0; + pub const VTIME_IDLE: Type = 1; + pub const VTIME_SYS: Type = 2; + pub const VTIME_USER: Type = 3; + pub const VTIME_GUEST: Type = 4; +} +pub mod watch_notification_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const WATCH_TYPE_META: Type = 0; + pub const WATCH_TYPE_KEY_NOTIFY: Type = 1; + pub const WATCH_TYPE__NR: Type = 2; +} +pub mod wb_reason { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const WB_REASON_BACKGROUND: Type = 0; + pub const WB_REASON_VMSCAN: Type = 1; + pub const WB_REASON_SYNC: Type = 2; + pub const WB_REASON_PERIODIC: Type = 3; + pub const WB_REASON_FS_FREE_SPACE: Type = 4; + pub const WB_REASON_FORKER_THREAD: Type = 5; + pub const WB_REASON_FOREIGN_FLUSH: Type = 6; + pub const WB_REASON_MAX: Type = 7; +} +pub mod wq_affn_scope { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const WQ_AFFN_DFL: Type = 0; + pub const WQ_AFFN_CPU: Type = 1; + pub const WQ_AFFN_SMT: Type = 2; + pub const WQ_AFFN_CACHE: Type = 3; + pub const WQ_AFFN_CACHE_SHARD: Type = 4; + pub const WQ_AFFN_NUMA: Type = 5; + pub const WQ_AFFN_SYSTEM: Type = 6; + pub const WQ_AFFN_NR_TYPES: Type = 7; +} +pub mod writeback_sync_modes { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const WB_SYNC_NONE: Type = 0; + pub const WB_SYNC_ALL: Type = 1; +} +pub mod xdp_mem_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const MEM_TYPE_PAGE_SHARED: Type = 0; + pub const MEM_TYPE_PAGE_ORDER0: Type = 1; + pub const MEM_TYPE_PAGE_POOL: Type = 2; + pub const MEM_TYPE_XSK_BUFF_POOL: Type = 3; + pub const MEM_TYPE_MAX: Type = 4; +} +pub mod xdp_rss_hash_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const XDP_RSS_L3_IPV4: Type = 1; + pub const XDP_RSS_L3_IPV6: Type = 2; + pub const XDP_RSS_L3_DYNHDR: Type = 4; + pub const XDP_RSS_L4: Type = 8; + pub const XDP_RSS_L4_TCP: Type = 16; + pub const XDP_RSS_L4_UDP: Type = 32; + pub const XDP_RSS_L4_SCTP: Type = 64; + pub const XDP_RSS_L4_IPSEC: Type = 128; + pub const XDP_RSS_L4_ICMP: Type = 256; + pub const XDP_RSS_TYPE_NONE: Type = 0; + pub const XDP_RSS_TYPE_L2: Type = 0; + pub const XDP_RSS_TYPE_L3_IPV4: Type = 1; + pub const XDP_RSS_TYPE_L3_IPV6: Type = 2; + pub const XDP_RSS_TYPE_L3_IPV4_OPT: Type = 5; + pub const XDP_RSS_TYPE_L3_IPV6_EX: Type = 6; + pub const XDP_RSS_TYPE_L4_ANY: Type = 8; + pub const XDP_RSS_TYPE_L4_IPV4_TCP: Type = 25; + pub const XDP_RSS_TYPE_L4_IPV4_UDP: Type = 41; + pub const XDP_RSS_TYPE_L4_IPV4_SCTP: Type = 73; + pub const XDP_RSS_TYPE_L4_IPV4_IPSEC: Type = 137; + pub const XDP_RSS_TYPE_L4_IPV4_ICMP: Type = 265; + pub const XDP_RSS_TYPE_L4_IPV6_TCP: Type = 26; + pub const XDP_RSS_TYPE_L4_IPV6_UDP: Type = 42; + pub const XDP_RSS_TYPE_L4_IPV6_SCTP: Type = 74; + pub const XDP_RSS_TYPE_L4_IPV6_IPSEC: Type = 138; + pub const XDP_RSS_TYPE_L4_IPV6_ICMP: Type = 266; + pub const XDP_RSS_TYPE_L4_IPV6_TCP_EX: Type = 30; + pub const XDP_RSS_TYPE_L4_IPV6_UDP_EX: Type = 46; + pub const XDP_RSS_TYPE_L4_IPV6_SCTP_EX: Type = 78; +} +pub mod xfrm_replay_mode { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const XFRM_REPLAY_MODE_LEGACY: Type = 0; + pub const XFRM_REPLAY_MODE_BMP: Type = 1; + pub const XFRM_REPLAY_MODE_ESN: Type = 2; +} +pub mod xprtsec_policies { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const RPC_XPRTSEC_NONE: Type = 0; + pub const RPC_XPRTSEC_TLS_ANON: Type = 1; + pub const RPC_XPRTSEC_TLS_X509: Type = 2; +} +pub mod zone_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const ZONE_DMA: Type = 0; + pub const ZONE_DMA32: Type = 1; + pub const ZONE_NORMAL: Type = 2; + pub const ZONE_MOVABLE: Type = 3; + pub const ZONE_DEVICE: Type = 4; + pub const __MAX_NR_ZONES: Type = 5; +} +pub type bool_ = bool; +pub type __kernel_clockid_t = ::aya_ebpf::cty::c_int; +pub type __kernel_mqd_t = ::aya_ebpf::cty::c_int; +pub type __kernel_pid_t = ::aya_ebpf::cty::c_int; +pub type __kernel_timer_t = ::aya_ebpf::cty::c_int; +pub type __s32 = ::aya_ebpf::cty::c_int; +pub type clockid_t = __kernel_clockid_t; +pub type s32 = __s32; +pub type compat_long_t = s32; +pub type key_serial_t = i32; +pub type mm_id_mapcount_t = ::aya_ebpf::cty::c_int; +pub type mqd_t = __kernel_mqd_t; +pub type old_time32_t = s32; +pub type pid_t = __kernel_pid_t; +pub type suspend_state_t = ::aya_ebpf::cty::c_int; +pub type __kernel_long_t = ::aya_ebpf::cty::c_long; +pub type __kernel_clock_t = __kernel_long_t; +pub type __kernel_off_t = __kernel_long_t; +pub type off_t = __kernel_off_t; +pub type __s64 = ::aya_ebpf::cty::c_longlong; +pub type s64 = __s64; +pub type __kernel_loff_t = ::aya_ebpf::cty::c_longlong; +pub type __kernel_time64_t = ::aya_ebpf::cty::c_longlong; +pub type ktime_t = s64; +pub type loff_t = __kernel_loff_t; +pub type qsize_t = ::aya_ebpf::cty::c_longlong; +pub type time64_t = __s64; +pub type __s16 = ::aya_ebpf::cty::c_short; +pub type s16 = __s16; +pub type __s8 = ::aya_ebpf::cty::c_schar; +pub type s8 = __s8; +pub type __u8 = ::aya_ebpf::cty::c_uchar; +pub type u8_ = __u8; +pub type blk_status_t = u8_; +pub type cc_t = ::aya_ebpf::cty::c_uchar; +pub type dscp_t = u8_; +pub type mctp_eid_t = __u8; +pub type u_int8_t = u8_; +pub type __u32 = ::aya_ebpf::cty::c_uint; +pub type Elf64_Word = __u32; +pub type u32_ = __u32; +pub type __be32 = __u32; +pub type __kernel_dev_t = u32_; +pub type __kernel_gid32_t = ::aya_ebpf::cty::c_uint; +pub type __kernel_uid32_t = ::aya_ebpf::cty::c_uint; +pub type __le32 = __u32; +pub type __poll_t = ::aya_ebpf::cty::c_uint; +pub type __portpair = __u32; +pub type __wsum = __u32; +pub type blk_features_t = ::aya_ebpf::cty::c_uint; +pub type blk_flags_t = ::aya_ebpf::cty::c_uint; +pub type blk_insert_t = ::aya_ebpf::cty::c_uint; +pub type blk_mode_t = ::aya_ebpf::cty::c_uint; +pub type blk_mq_req_flags_t = __u32; +pub type blk_opf_t = __u32; +pub type blk_qc_t = ::aya_ebpf::cty::c_uint; +pub type compat_uptr_t = u32_; +pub type dev_t = __kernel_dev_t; +pub type errseq_t = u32_; +pub type fmode_t = ::aya_ebpf::cty::c_uint; +pub type fop_flags_t = ::aya_ebpf::cty::c_uint; +pub type gfp_t = ::aya_ebpf::cty::c_uint; +pub type gid_t = __kernel_gid32_t; +pub type ioasid_t = ::aya_ebpf::cty::c_uint; +pub type key_perm_t = u32; +pub type mm_id_t = ::aya_ebpf::cty::c_uint; +pub type nlink_t = u32_; +pub type phandle = u32_; +pub type projid_t = __kernel_uid32_t; +pub type req_flags_t = __u32; +pub type rpc_authflavor_t = u32_; +pub type sk_buff_data_t = ::aya_ebpf::cty::c_uint; +pub type slab_flags_t = ::aya_ebpf::cty::c_uint; +pub type speed_t = ::aya_ebpf::cty::c_uint; +pub type ssci_t = u32_; +pub type tcflag_t = ::aya_ebpf::cty::c_uint; +pub type u_int32_t = u32_; +pub type uid_t = __kernel_uid32_t; +pub type vm_fault_t = ::aya_ebpf::cty::c_uint; +pub type xdp_features_t = u32_; +pub type __kernel_ulong_t = ::aya_ebpf::cty::c_ulong; +pub type __kernel_size_t = __kernel_ulong_t; +pub type irq_hw_number_t = ::aya_ebpf::cty::c_ulong; +pub type kernel_ulong_t = ::aya_ebpf::cty::c_ulong; +pub type netmem_ref = ::aya_ebpf::cty::c_ulong; +pub type pgdval_t = ::aya_ebpf::cty::c_ulong; +pub type pgprotval_t = ::aya_ebpf::cty::c_ulong; +pub type pmdval_t = ::aya_ebpf::cty::c_ulong; +pub type pteval_t = ::aya_ebpf::cty::c_ulong; +pub type pudval_t = ::aya_ebpf::cty::c_ulong; +pub type rps_tag_ptr = ::aya_ebpf::cty::c_ulong; +pub type vm_flags_t = ::aya_ebpf::cty::c_ulong; +pub type __u64 = ::aya_ebpf::cty::c_ulonglong; +pub type Elf64_Addr = __u64; +pub type Elf64_Xword = __u64; +pub type u64_ = __u64; +pub type __addrpair = __u64; +pub type __be64 = __u64; +pub type __le64 = __u64; +pub type blkcnt_t = u64_; +pub type dma_addr_t = u64_; +pub type io_req_flags_t = u64_; +pub type netdev_features_t = u64_; +pub type phys_addr_t = u64_; +pub type sci_t = u64_; +pub type sector_t = u64_; +pub type __u16 = ::aya_ebpf::cty::c_ushort; +pub type Elf64_Half = __u16; +pub type u16_ = __u16; +pub type __be16 = __u16; +pub type __kernel_sa_family_t = ::aya_ebpf::cty::c_ushort; +pub type __le16 = __u16; +pub type __sum16 = __u16; +pub type sa_family_t = __kernel_sa_family_t; +pub type u_int16_t = u16_; +pub type umode_t = ::aya_ebpf::cty::c_ushort; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct list_head { + pub next: *mut list_head, + pub prev: *mut list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct atomic_t { + pub counter: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct refcount_struct { + pub refs: atomic_t, +} +pub type refcount_t = refcount_struct; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fsid_t { + pub val: [::aya_ebpf::cty::c_int; 2usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct atomic64_t { + pub counter: s64, +} +pub type atomic_long_t = atomic64_t; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sockptr_t { + pub __bindgen_anon_1: sockptr_t__bindgen_ty_1, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: [u8; 7usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sockptr_t__bindgen_ty_1 { + pub kernel: *mut ::aya_ebpf::cty::c_void, + pub user: *mut ::aya_ebpf::cty::c_void, +} +impl sockptr_t { + #[inline] + pub fn is_kernel(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_is_kernel(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn is_kernel_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_is_kernel_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(is_kernel: bool_) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let is_kernel: u8 = unsafe { ::core::mem::transmute(is_kernel) }; + is_kernel as u64 + }); + __bindgen_bitfield_unit + } +} +pub type bpfptr_t = sockptr_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cisco_proto { + pub interval: ::aya_ebpf::cty::c_uint, + pub timeout: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pin_cookie {} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rq_flags { + pub flags: ::aya_ebpf::cty::c_ulong, + pub cookie: pin_cookie, + pub clock_update_flags: ::aya_ebpf::cty::c_uint, +} +pub type raw_spinlock_t = raw_spinlock; +pub type rwlock_t = rwlock; +pub type spinlock_t = spinlock; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_ref_t { + pub refcnt: atomic64_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fr_proto { + pub t391: ::aya_ebpf::cty::c_uint, + pub t392: ::aya_ebpf::cty::c_uint, + pub n391: ::aya_ebpf::cty::c_uint, + pub n392: ::aya_ebpf::cty::c_uint, + pub n393: ::aya_ebpf::cty::c_uint, + pub lmi: ::aya_ebpf::cty::c_ushort, + pub dce: ::aya_ebpf::cty::c_ushort, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fr_proto_pvc { + pub dlci: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fr_proto_pvc_info { + pub dlci: ::aya_ebpf::cty::c_uint, + pub master: [::aya_ebpf::cty::c_char; 16usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct freeptr_t { + pub v: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kernel_cap_t { + pub val: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kgid_t { + pub val: gid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kuid_t { + pub val: uid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kprojid_t { + pub val: projid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct local_t { + pub a: atomic_long_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct local64_t { + pub a: local_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct memdesc_flags_t { + pub f: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct optimistic_spin_queue { + pub tail: atomic_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct qspinlock { + pub __bindgen_anon_1: qspinlock__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union qspinlock__bindgen_ty_1 { + pub val: atomic_t, + pub __bindgen_anon_1: qspinlock__bindgen_ty_1__bindgen_ty_1, + pub __bindgen_anon_2: qspinlock__bindgen_ty_1__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct qspinlock__bindgen_ty_1__bindgen_ty_1 { + pub locked: u8_, + pub pending: u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct qspinlock__bindgen_ty_1__bindgen_ty_2 { + pub locked_pending: u16_, + pub tail: u16_, +} +pub type arch_spinlock_t = qspinlock; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct raw_spinlock { + pub raw_lock: arch_spinlock_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rw_semaphore { + pub count: atomic_long_t, + pub owner: atomic_long_t, + pub osq: optimistic_spin_queue, + pub wait_lock: raw_spinlock_t, + pub first_waiter: *mut rwsem_waiter, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct mutex { + pub owner: atomic_long_t, + pub wait_lock: raw_spinlock_t, + pub osq: optimistic_spin_queue, + pub first_waiter: *mut mutex_waiter, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct mm_context_t { + pub ctx_id: u64_, + pub tlb_gen: atomic64_t, + pub next_trim_cpumask: ::aya_ebpf::cty::c_ulong, + pub ldt_usr_sem: rw_semaphore, + pub ldt: *mut ldt_struct, + pub flags: ::aya_ebpf::cty::c_ulong, + pub lock: mutex, + pub vdso: *mut ::aya_ebpf::cty::c_void, + pub vdso_image: *const vdso_image, + pub perf_rdpmc_allowed: atomic_t, + pub pkey_allocation_map: u16_, + pub execute_only_pkey: s16, + pub global_asid: u16_, + pub asid_transition: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mm_flags_t { + pub __mm_flags: [::aya_ebpf::cty::c_ulong; 1usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netdevice_tracker {} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netns_tracker {} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs4_verifier { + pub data: [::aya_ebpf::cty::c_char; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct uuid_t { + pub b: [__u8; 16usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct spinlock { + pub __bindgen_anon_1: spinlock__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union spinlock__bindgen_ty_1 { + pub rlock: raw_spinlock, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct nfs_uuid_t { + pub uuid: uuid_t, + pub nfs3_localio_probe_count: ::aya_ebpf::cty::c_uint, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 40usize]>, + pub __bindgen_padding_0: u32, + pub lock: spinlock_t, + pub list: list_head, + pub list_lock: *mut spinlock_t, + pub net: *mut net, + pub dom: *mut auth_domain, + pub files: list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nodemask_t { + pub bits: [::aya_ebpf::cty::c_ulong; 16usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pgd_t { + pub pgd: pgdval_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pmd_t { + pub pmd: pmdval_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct possible_net_t { + pub net: *mut net, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pte_t { + pub pte: pteval_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pud_t { + pub pud: pudval_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct raw_hdlc_proto { + pub encoding: ::aya_ebpf::cty::c_ushort, + pub parity: ::aya_ebpf::cty::c_ushort, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rcuref_t { + pub refcnt: atomic_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct read_descriptor_t { + pub written: usize, + pub count: usize, + pub arg: read_descriptor_t__bindgen_ty_1, + pub error: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union read_descriptor_t__bindgen_ty_1 { + pub buf: *mut ::aya_ebpf::cty::c_char, + pub data: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct seqcount { + pub sequence: ::aya_ebpf::cty::c_uint, +} +pub type seqcount_t = seqcount; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sigset_t { + pub sig: [::aya_ebpf::cty::c_ulong; 1usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct siphash_key_t { + pub key: [u64_; 2usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct wait_queue_head { + pub lock: spinlock_t, + pub head: list_head, +} +pub type wait_queue_head_t = wait_queue_head; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct socket_lock_t { + pub __bindgen_anon_1: socket_lock_t__bindgen_ty_1, + pub wq: wait_queue_head_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union socket_lock_t__bindgen_ty_1 { + pub combined: ::aya_ebpf::cty::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct swp_entry_t { + pub val: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct spis_t { + pub v: [u64_; 2usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sync_serial_settings { + pub clock_rate: ::aya_ebpf::cty::c_uint, + pub clock_type: ::aya_ebpf::cty::c_uint, + pub loopback: ::aya_ebpf::cty::c_ushort, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct te1_settings { + pub clock_rate: ::aya_ebpf::cty::c_uint, + pub clock_type: ::aya_ebpf::cty::c_uint, + pub loopback: ::aya_ebpf::cty::c_ushort, + pub slot_map: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct u64_stats_t { + pub v: local64_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct x25_hdlc_proto { + pub dce: ::aya_ebpf::cty::c_ushort, + pub modulo: ::aya_ebpf::cty::c_uint, + pub window: ::aya_ebpf::cty::c_uint, + pub t1: ::aya_ebpf::cty::c_uint, + pub t2: ::aya_ebpf::cty::c_uint, + pub n2: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct vfsgid_t { + pub val: gid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct vfsuid_t { + pub val: uid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct vma_flags_t { + pub __vma_flags: [::aya_ebpf::cty::c_ulong; 1usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_addr { + pub in6_u: in6_addr__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union in6_addr__bindgen_ty_1 { + pub u6_addr8: [__u8; 16usize], + pub u6_addr16: [__be16; 8usize], + pub u6_addr32: [__be32; 4usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union xfrm_address_t { + pub a4: __be32, + pub a6: [__be32; 4usize], + pub in6: in6_addr, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct hlist_node { + pub next: *mut hlist_node, + pub pprev: *mut *mut hlist_node, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sk_buff_list { + pub next: *mut sk_buff, + pub prev: *mut sk_buff, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sk_buff_head { + pub __bindgen_anon_1: sk_buff_head__bindgen_ty_1, + pub qlen: __u32, + pub lock: spinlock_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sk_buff_head__bindgen_ty_1 { + pub __bindgen_anon_1: sk_buff_head__bindgen_ty_1__bindgen_ty_1, + pub list: sk_buff_list, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sk_buff_head__bindgen_ty_1__bindgen_ty_1 { + pub next: *mut sk_buff, + pub prev: *mut sk_buff, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct qdisc_skb_head { + pub head: *mut sk_buff, + pub tail: *mut sk_buff, + pub qlen: __u32, + pub lock: spinlock_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct u64_stats_sync {} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct gnet_stats_basic_sync { + pub bytes: u64_stats_t, + pub packets: u64_stats_t, + pub syncp: u64_stats_sync, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct gnet_stats_queue { + pub qlen: __u32, + pub backlog: __u32, + pub drops: __u32, + pub requeues: __u32, + pub overlimits: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct llist_head { + pub first: *mut llist_node, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct callback_head { + pub next: *mut callback_head, + pub func: ::core::option::Option, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct lock_class_key {} +#[repr(C)] +pub struct Qdisc { + pub enqueue: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sk_buff, + arg2: *mut Qdisc, + arg3: *mut *mut sk_buff, + ) -> ::aya_ebpf::cty::c_int, + >, + pub dequeue: ::core::option::Option *mut sk_buff>, + pub flags: ::aya_ebpf::cty::c_uint, + pub limit: u32_, + pub ops: *const Qdisc_ops, + pub stab: *mut qdisc_size_table, + pub hash: hlist_node, + pub handle: u32_, + pub parent: u32_, + pub dev_queue: *mut netdev_queue, + pub rate_est: *mut net_rate_estimator, + pub cpu_bstats: *mut gnet_stats_basic_sync, + pub cpu_qstats: *mut gnet_stats_queue, + pub pad: ::aya_ebpf::cty::c_int, + pub refcnt: refcount_t, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, + pub __cacheline_group_begin__Qdisc_read_mostly: __IncompleteArrayField<__u8>, + pub gso_skb: sk_buff_head, + pub next_sched: *mut Qdisc, + pub skb_bad_txq: sk_buff_head, + pub __cacheline_group_end__Qdisc_read_mostly: __IncompleteArrayField<__u8>, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 8usize]>, + pub __cacheline_group_begin__Qdisc_write: __IncompleteArrayField<__u8>, + pub q: qdisc_skb_head, + pub state: ::aya_ebpf::cty::c_ulong, + pub bstats: gnet_stats_basic_sync, + pub running: bool_, + pub qstats: gnet_stats_queue, + pub to_free: *mut sk_buff, + pub __cacheline_group_end__Qdisc_write: __IncompleteArrayField<__u8>, + pub _bitfield_align_3: [u8; 0], + pub _bitfield_3: __BindgenBitfieldUnit<[u8; 48usize]>, + pub defer_count: atomic_long_t, + pub defer_list: llist_head, + pub seqlock: spinlock_t, + pub rcu: callback_head, + pub dev_tracker: netdevice_tracker, + pub root_lock_key: lock_class_key, + pub _bitfield_align_4: [u8; 0], + pub _bitfield_4: __BindgenBitfieldUnit<[u8; 24usize]>, + pub privdata: __IncompleteArrayField<::aya_ebpf::cty::c_long>, +} +impl Qdisc { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + __bindgen_bitfield_unit + } + #[inline] + pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit + } + #[inline] + pub fn new_bitfield_4() -> __BindgenBitfieldUnit<[u8; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Qdisc_class_ops { + pub flags: ::aya_ebpf::cty::c_uint, + pub select_queue: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut Qdisc, arg2: *mut tcmsg) -> *mut netdev_queue, + >, + pub graft: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut Qdisc, + arg2: ::aya_ebpf::cty::c_ulong, + arg3: *mut Qdisc, + arg4: *mut *mut Qdisc, + arg5: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub leaf: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut Qdisc, arg2: ::aya_ebpf::cty::c_ulong) -> *mut Qdisc, + >, + pub qlen_notify: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut Qdisc, arg2: ::aya_ebpf::cty::c_ulong), + >, + pub find: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut Qdisc, arg2: u32_) -> ::aya_ebpf::cty::c_ulong, + >, + pub change: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut Qdisc, + arg2: u32_, + arg3: u32_, + arg4: *mut *mut nlattr, + arg5: *mut ::aya_ebpf::cty::c_ulong, + arg6: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub delete: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut Qdisc, + arg2: ::aya_ebpf::cty::c_ulong, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub walk: + ::core::option::Option, + pub tcf_block: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut Qdisc, + arg2: ::aya_ebpf::cty::c_ulong, + arg3: *mut netlink_ext_ack, + ) -> *mut tcf_block, + >, + pub bind_tcf: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut Qdisc, + arg2: ::aya_ebpf::cty::c_ulong, + arg3: u32_, + ) -> ::aya_ebpf::cty::c_ulong, + >, + pub unbind_tcf: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut Qdisc, arg2: ::aya_ebpf::cty::c_ulong), + >, + pub dump: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut Qdisc, + arg2: ::aya_ebpf::cty::c_ulong, + arg3: *mut sk_buff, + arg4: *mut tcmsg, + ) -> ::aya_ebpf::cty::c_int, + >, + pub dump_stats: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut Qdisc, + arg2: ::aya_ebpf::cty::c_ulong, + arg3: *mut gnet_dump, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Qdisc_ops { + pub next: *mut Qdisc_ops, + pub cl_ops: *const Qdisc_class_ops, + pub id: [::aya_ebpf::cty::c_char; 16usize], + pub priv_size: ::aya_ebpf::cty::c_int, + pub static_flags: ::aya_ebpf::cty::c_uint, + pub enqueue: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sk_buff, + arg2: *mut Qdisc, + arg3: *mut *mut sk_buff, + ) -> ::aya_ebpf::cty::c_int, + >, + pub dequeue: ::core::option::Option *mut sk_buff>, + pub peek: ::core::option::Option *mut sk_buff>, + pub init: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut Qdisc, + arg2: *mut nlattr, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub reset: ::core::option::Option, + pub destroy: ::core::option::Option, + pub change: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut Qdisc, + arg2: *mut nlattr, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub attach: ::core::option::Option, + pub change_tx_queue_len: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut Qdisc, + arg2: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub change_real_num_tx: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut Qdisc, arg2: ::aya_ebpf::cty::c_uint), + >, + pub dump: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut Qdisc, arg2: *mut sk_buff) -> ::aya_ebpf::cty::c_int, + >, + pub dump_stats: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut Qdisc, arg2: *mut gnet_dump) -> ::aya_ebpf::cty::c_int, + >, + pub ingress_block_set: + ::core::option::Option, + pub egress_block_set: + ::core::option::Option, + pub ingress_block_get: ::core::option::Option u32_>, + pub egress_block_get: ::core::option::Option u32_>, + pub owner: *mut module, +} +#[repr(C)] +#[repr(align(8))] +#[derive(Debug, Copy, Clone)] +pub struct fred_cs { + pub _bitfield_align_1: [u16; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>, + pub __bindgen_padding_0: [u8; 5usize], +} +impl fred_cs { + #[inline] + pub fn cs(&self) -> u64_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 16u8) as u64) } + } + #[inline] + pub fn set_cs(&mut self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 16u8, val as u64) + } + } + #[inline] + pub unsafe fn cs_raw(this: *const Self) -> u64_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 16u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_cs_raw(this: *mut Self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 16u8, + val as u64, + ) + } + } + #[inline] + pub fn sl(&self) -> u64_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 2u8) as u64) } + } + #[inline] + pub fn set_sl(&mut self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(16usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn sl_raw(this: *const Self) -> u64_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 16usize, + 2u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_sl_raw(this: *mut Self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 16usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn wfe(&self) -> u64_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u64) } + } + #[inline] + pub fn set_wfe(&mut self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(18usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn wfe_raw(this: *const Self) -> u64_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 18usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_wfe_raw(this: *mut Self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 18usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(cs: u64_, sl: u64_, wfe: u64_) -> __BindgenBitfieldUnit<[u8; 3usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 16u8, { + let cs: u64 = unsafe { ::core::mem::transmute(cs) }; + cs as u64 + }); + __bindgen_bitfield_unit.set(16usize, 2u8, { + let sl: u64 = unsafe { ::core::mem::transmute(sl) }; + sl as u64 + }); + __bindgen_bitfield_unit.set(18usize, 1u8, { + let wfe: u64 = unsafe { ::core::mem::transmute(wfe) }; + wfe as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[repr(align(8))] +#[derive(Debug, Copy, Clone)] +pub struct fred_ss { + pub _bitfield_align_1: [u16; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, +} +impl fred_ss { + #[inline] + pub fn ss(&self) -> u64_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 16u8) as u64) } + } + #[inline] + pub fn set_ss(&mut self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 16u8, val as u64) + } + } + #[inline] + pub unsafe fn ss_raw(this: *const Self) -> u64_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 16u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_ss_raw(this: *mut Self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 16u8, + val as u64, + ) + } + } + #[inline] + pub fn sti(&self) -> u64_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u64) } + } + #[inline] + pub fn set_sti(&mut self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(16usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sti_raw(this: *const Self) -> u64_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 16usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_sti_raw(this: *mut Self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 16usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn swevent(&self) -> u64_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u64) } + } + #[inline] + pub fn set_swevent(&mut self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(17usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn swevent_raw(this: *const Self) -> u64_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 17usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_swevent_raw(this: *mut Self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 17usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn nmi(&self) -> u64_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u64) } + } + #[inline] + pub fn set_nmi(&mut self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(18usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn nmi_raw(this: *const Self) -> u64_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 18usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_nmi_raw(this: *mut Self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 18usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn vector(&self) -> u64_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(32usize, 8u8) as u64) } + } + #[inline] + pub fn set_vector(&mut self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(32usize, 8u8, val as u64) + } + } + #[inline] + pub unsafe fn vector_raw(this: *const Self) -> u64_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 32usize, + 8u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_vector_raw(this: *mut Self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 32usize, + 8u8, + val as u64, + ) + } + } + #[inline] + pub fn type_(&self) -> u64_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(48usize, 4u8) as u64) } + } + #[inline] + pub fn set_type(&mut self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(48usize, 4u8, val as u64) + } + } + #[inline] + pub unsafe fn type__raw(this: *const Self) -> u64_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 48usize, + 4u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_type_raw(this: *mut Self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 48usize, + 4u8, + val as u64, + ) + } + } + #[inline] + pub fn enclave(&self) -> u64_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(56usize, 1u8) as u64) } + } + #[inline] + pub fn set_enclave(&mut self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(56usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn enclave_raw(this: *const Self) -> u64_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 56usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_enclave_raw(this: *mut Self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 56usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn l(&self) -> u64_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(57usize, 1u8) as u64) } + } + #[inline] + pub fn set_l(&mut self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(57usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn l_raw(this: *const Self) -> u64_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 57usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_l_raw(this: *mut Self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 57usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn nested(&self) -> u64_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(58usize, 1u8) as u64) } + } + #[inline] + pub fn set_nested(&mut self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(58usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn nested_raw(this: *const Self) -> u64_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 58usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_nested_raw(this: *mut Self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 58usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn insnlen(&self) -> u64_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(60usize, 4u8) as u64) } + } + #[inline] + pub fn set_insnlen(&mut self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(60usize, 4u8, val as u64) + } + } + #[inline] + pub unsafe fn insnlen_raw(this: *const Self) -> u64_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 60usize, + 4u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_insnlen_raw(this: *mut Self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 60usize, + 4u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + ss: u64_, + sti: u64_, + swevent: u64_, + nmi: u64_, + vector: u64_, + type_: u64_, + enclave: u64_, + l: u64_, + nested: u64_, + insnlen: u64_, + ) -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 16u8, { + let ss: u64 = unsafe { ::core::mem::transmute(ss) }; + ss as u64 + }); + __bindgen_bitfield_unit.set(16usize, 1u8, { + let sti: u64 = unsafe { ::core::mem::transmute(sti) }; + sti as u64 + }); + __bindgen_bitfield_unit.set(17usize, 1u8, { + let swevent: u64 = unsafe { ::core::mem::transmute(swevent) }; + swevent as u64 + }); + __bindgen_bitfield_unit.set(18usize, 1u8, { + let nmi: u64 = unsafe { ::core::mem::transmute(nmi) }; + nmi as u64 + }); + __bindgen_bitfield_unit.set(32usize, 8u8, { + let vector: u64 = unsafe { ::core::mem::transmute(vector) }; + vector as u64 + }); + __bindgen_bitfield_unit.set(48usize, 4u8, { + let type_: u64 = unsafe { ::core::mem::transmute(type_) }; + type_ as u64 + }); + __bindgen_bitfield_unit.set(56usize, 1u8, { + let enclave: u64 = unsafe { ::core::mem::transmute(enclave) }; + enclave as u64 + }); + __bindgen_bitfield_unit.set(57usize, 1u8, { + let l: u64 = unsafe { ::core::mem::transmute(l) }; + l as u64 + }); + __bindgen_bitfield_unit.set(58usize, 1u8, { + let nested: u64 = unsafe { ::core::mem::transmute(nested) }; + nested as u64 + }); + __bindgen_bitfield_unit.set(60usize, 4u8, { + let insnlen: u64 = unsafe { ::core::mem::transmute(insnlen) }; + insnlen as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct pt_regs { + pub r15: ::aya_ebpf::cty::c_ulong, + pub r14: ::aya_ebpf::cty::c_ulong, + pub r13: ::aya_ebpf::cty::c_ulong, + pub r12: ::aya_ebpf::cty::c_ulong, + pub bp: ::aya_ebpf::cty::c_ulong, + pub bx: ::aya_ebpf::cty::c_ulong, + pub r11: ::aya_ebpf::cty::c_ulong, + pub r10: ::aya_ebpf::cty::c_ulong, + pub r9: ::aya_ebpf::cty::c_ulong, + pub r8: ::aya_ebpf::cty::c_ulong, + pub ax: ::aya_ebpf::cty::c_ulong, + pub cx: ::aya_ebpf::cty::c_ulong, + pub dx: ::aya_ebpf::cty::c_ulong, + pub si: ::aya_ebpf::cty::c_ulong, + pub di: ::aya_ebpf::cty::c_ulong, + pub orig_ax: ::aya_ebpf::cty::c_ulong, + pub ip: ::aya_ebpf::cty::c_ulong, + pub __bindgen_anon_1: pt_regs__bindgen_ty_1, + pub flags: ::aya_ebpf::cty::c_ulong, + pub sp: ::aya_ebpf::cty::c_ulong, + pub __bindgen_anon_2: pt_regs__bindgen_ty_2, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pt_regs__bindgen_ty_1 { + pub cs: u16_, + pub csx: u64_, + pub fred_cs: fred_cs, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pt_regs__bindgen_ty_2 { + pub ss: u16_, + pub ssx: u64_, + pub fred_ss: fred_ss, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct llist_node { + pub next: *mut llist_node, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __call_single_node { + pub llist: llist_node, + pub __bindgen_anon_1: __call_single_node__bindgen_ty_1, + pub src: u16_, + pub dst: u16_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union __call_single_node__bindgen_ty_1 { + pub u_flags: ::aya_ebpf::cty::c_uint, + pub a_flags: atomic_t, +} +pub type smp_call_func_t = + ::core::option::Option; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __call_single_data { + pub node: __call_single_node, + pub func: smp_call_func_t, + pub info: *mut ::aya_ebpf::cty::c_void, +} +pub type call_single_data_t = __call_single_data; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_timespec { + pub tv_sec: __kernel_time64_t, + pub tv_nsec: ::aya_ebpf::cty::c_longlong, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __kernel_sockaddr_storage { + pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union __kernel_sockaddr_storage__bindgen_ty_1 { + pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1, + pub __align: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 { + pub ss_family: __kernel_sa_family_t, + pub __data: [::aya_ebpf::cty::c_char; 126usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kfifo { + pub in_: ::aya_ebpf::cty::c_uint, + pub out: ::aya_ebpf::cty::c_uint, + pub mask: ::aya_ebpf::cty::c_uint, + pub esize: ::aya_ebpf::cty::c_uint, + pub data: *mut ::aya_ebpf::cty::c_void, +} +pub type work_func_t = ::core::option::Option; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct work_struct { + pub data: atomic_long_t, + pub entry: list_head, + pub func: work_func_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sigval { + pub sival_int: ::aya_ebpf::cty::c_int, + pub sival_ptr: *mut ::aya_ebpf::cty::c_void, +} +pub type sigval_t = sigval; +#[repr(C)] +#[derive(Copy, Clone)] +pub union __sifields { + pub _kill: __sifields__bindgen_ty_1, + pub _timer: __sifields__bindgen_ty_2, + pub _rt: __sifields__bindgen_ty_3, + pub _sigchld: __sifields__bindgen_ty_4, + pub _sigfault: __sifields__bindgen_ty_5, + pub _sigpoll: __sifields__bindgen_ty_6, + pub _sigsys: __sifields__bindgen_ty_7, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __sifields__bindgen_ty_1 { + pub _pid: __kernel_pid_t, + pub _uid: __kernel_uid32_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __sifields__bindgen_ty_2 { + pub _tid: __kernel_timer_t, + pub _overrun: ::aya_ebpf::cty::c_int, + pub _sigval: sigval_t, + pub _sys_private: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __sifields__bindgen_ty_3 { + pub _pid: __kernel_pid_t, + pub _uid: __kernel_uid32_t, + pub _sigval: sigval_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __sifields__bindgen_ty_4 { + pub _pid: __kernel_pid_t, + pub _uid: __kernel_uid32_t, + pub _status: ::aya_ebpf::cty::c_int, + pub _utime: __kernel_clock_t, + pub _stime: __kernel_clock_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __sifields__bindgen_ty_5 { + pub _addr: *mut ::aya_ebpf::cty::c_void, + pub __bindgen_anon_1: __sifields__bindgen_ty_5__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union __sifields__bindgen_ty_5__bindgen_ty_1 { + pub _trapno: ::aya_ebpf::cty::c_int, + pub _addr_lsb: ::aya_ebpf::cty::c_short, + pub _addr_bnd: __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1, + pub _addr_pkey: __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_2, + pub _perf: __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1 { + pub _dummy_bnd: [::aya_ebpf::cty::c_char; 8usize], + pub _lower: *mut ::aya_ebpf::cty::c_void, + pub _upper: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_2 { + pub _dummy_pkey: [::aya_ebpf::cty::c_char; 8usize], + pub _pkey: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3 { + pub _data: ::aya_ebpf::cty::c_ulong, + pub _type: __u32, + pub _flags: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __sifields__bindgen_ty_6 { + pub _band: ::aya_ebpf::cty::c_long, + pub _fd: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __sifields__bindgen_ty_7 { + pub _call_addr: *mut ::aya_ebpf::cty::c_void, + pub _syscall: ::aya_ebpf::cty::c_int, + pub _arch: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct static_key { + pub enabled: atomic_t, + pub __bindgen_anon_1: static_key__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union static_key__bindgen_ty_1 { + pub type_: ::aya_ebpf::cty::c_ulong, + pub entries: *mut jump_entry, + pub next: *mut static_key_mod, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct static_key_true { + pub key: static_key, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct static_key_false { + pub key: static_key, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _ddebug { + pub modname: *const ::aya_ebpf::cty::c_char, + pub function: *const ::aya_ebpf::cty::c_char, + pub filename: *const ::aya_ebpf::cty::c_char, + pub format: *const ::aya_ebpf::cty::c_char, + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, + pub key: _ddebug__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union _ddebug__bindgen_ty_1 { + pub dd_key_true: static_key_true, + pub dd_key_false: static_key_false, +} +impl _ddebug { + #[inline] + pub fn lineno(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 18u8) as u32) } + } + #[inline] + pub fn set_lineno(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 18u8, val as u64) + } + } + #[inline] + pub unsafe fn lineno_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 18u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_lineno_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 18u8, + val as u64, + ) + } + } + #[inline] + pub fn class_id(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(18usize, 6u8) as u32) } + } + #[inline] + pub fn set_class_id(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(18usize, 6u8, val as u64) + } + } + #[inline] + pub unsafe fn class_id_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 18usize, + 6u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_class_id_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 18usize, + 6u8, + val as u64, + ) + } + } + #[inline] + pub fn flags(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 8u8) as u32) } + } + #[inline] + pub fn set_flags(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(24usize, 8u8, val as u64) + } + } + #[inline] + pub unsafe fn flags_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 24usize, + 8u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_flags_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 24usize, + 8u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + lineno: ::aya_ebpf::cty::c_uint, + class_id: ::aya_ebpf::cty::c_uint, + flags: ::aya_ebpf::cty::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 18u8, { + let lineno: u32 = unsafe { ::core::mem::transmute(lineno) }; + lineno as u64 + }); + __bindgen_bitfield_unit.set(18usize, 6u8, { + let class_id: u32 = unsafe { ::core::mem::transmute(class_id) }; + class_id as u64 + }); + __bindgen_bitfield_unit.set(24usize, 8u8, { + let flags: u32 = unsafe { ::core::mem::transmute(flags) }; + flags as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _ddebug_info { + pub descs: *mut _ddebug, + pub classes: *mut ddebug_class_map, + pub num_descs: ::aya_ebpf::cty::c_uint, + pub num_classes: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timer_list { + pub entry: hlist_node, + pub expires: ::aya_ebpf::cty::c_ulong, + pub function: ::core::option::Option, + pub flags: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct delayed_work { + pub work: work_struct, + pub timer: timer_list, + pub wq: *mut workqueue_struct, + pub cpu: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct aa_attachment { + pub xmatch_str: *const ::aya_ebpf::cty::c_char, + pub xmatch: *mut aa_policydb, + pub xmatch_len: ::aya_ebpf::cty::c_uint, + pub xattr_count: ::aya_ebpf::cty::c_int, + pub xattrs: *mut *mut ::aya_ebpf::cty::c_char, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct aa_caps { + pub allow: kernel_cap_t, + pub audit: kernel_cap_t, + pub denied: kernel_cap_t, + pub quiet: kernel_cap_t, + pub kill: kernel_cap_t, + pub extended: kernel_cap_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kref { + pub refcount: refcount_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct aa_common_ref { + pub count: kref, + pub reftype: reftype::Type, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rhash_head { + pub next: *mut rhash_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct aa_dfa { + pub count: kref, + pub flags: u16_, + pub max_oob: u32_, + pub tables: [*mut table_header; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rb_node { + pub __rb_parent_color: ::aya_ebpf::cty::c_ulong, + pub rb_right: *mut rb_node, + pub rb_left: *mut rb_node, +} +#[repr(C)] +pub struct aa_label { + pub count: aa_common_ref, + pub node: rb_node, + pub rcu: callback_head, + pub proxy: *mut aa_proxy, + pub hname: *mut ::aya_ebpf::cty::c_char, + pub flags: ::aya_ebpf::cty::c_long, + pub secid: u32_, + pub size: ::aya_ebpf::cty::c_int, + pub mediates: u64_, + pub __bindgen_anon_1: aa_label__bindgen_ty_1, +} +#[repr(C)] +pub struct aa_label__bindgen_ty_1 { + pub __bindgen_anon_1: __BindgenUnionField, + pub __bindgen_anon_2: __BindgenUnionField, + pub bindgen_union_field: [u64; 2usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct aa_label__bindgen_ty_1__bindgen_ty_1 { + pub profile: [*mut aa_profile; 2usize], + pub __bindgen_anon_1: aa_label__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug)] +pub struct aa_label__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { + pub __empty_rules: aa_label__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, + pub rules: __IncompleteArrayField<*mut aa_ruleset>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct aa_label__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {} +#[repr(C)] +#[derive(Debug)] +pub struct aa_label__bindgen_ty_1__bindgen_ty_2 { + pub __empty_vec: aa_label__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1, + pub vec: __IncompleteArrayField<*mut aa_profile>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct aa_label__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct qrwlock { + pub __bindgen_anon_1: qrwlock__bindgen_ty_1, + pub wait_lock: arch_spinlock_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union qrwlock__bindgen_ty_1 { + pub cnts: atomic_t, + pub __bindgen_anon_1: qrwlock__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct qrwlock__bindgen_ty_1__bindgen_ty_1 { + pub wlocked: u8_, + pub __lstate: [u8_; 3usize], +} +pub type arch_rwlock_t = qrwlock; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rwlock { + pub raw_lock: arch_rwlock_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rb_root { + pub rb_node: *mut rb_node, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct aa_labelset { + pub lock: rwlock_t, + pub root: rb_root, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct aa_loaddata { + pub count: aa_common_ref, + pub pcount: kref, + pub list: list_head, + pub work: work_struct, + pub dents: [*mut dentry; 6usize], + pub ns: *mut aa_ns, + pub name: *mut ::aya_ebpf::cty::c_char, + pub size: usize, + pub compressed_size: usize, + pub revision: ::aya_ebpf::cty::c_long, + pub abi: ::aya_ebpf::cty::c_int, + pub hash: *mut ::aya_ebpf::cty::c_uchar, + pub data: *mut ::aya_ebpf::cty::c_char, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct aa_policy { + pub name: *const ::aya_ebpf::cty::c_char, + pub hname: *mut ::aya_ebpf::cty::c_char, + pub list: list_head, + pub profiles: list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct aa_ns_acct { + pub max_size: ::aya_ebpf::cty::c_int, + pub max_count: ::aya_ebpf::cty::c_int, + pub size: ::aya_ebpf::cty::c_int, + pub count: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct aa_ns { + pub base: aa_policy, + pub parent: *mut aa_ns, + pub lock: mutex, + pub acct: aa_ns_acct, + pub unconfined: *mut aa_profile, + pub sub_ns: list_head, + pub uniq_null: atomic_t, + pub uniq_id: ::aya_ebpf::cty::c_long, + pub level: ::aya_ebpf::cty::c_int, + pub revision: ::aya_ebpf::cty::c_long, + pub wait: wait_queue_head_t, + pub labels: aa_labelset, + pub rawdata_list: list_head, + pub dents: [*mut dentry; 13usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct aa_perms { + pub allow: u32_, + pub deny: u32_, + pub subtree: u32_, + pub cond: u32_, + pub kill: u32_, + pub complain: u32_, + pub prompt: u32_, + pub audit: u32_, + pub quiet: u32_, + pub hide: u32_, + pub xindex: u32_, + pub tag: u32_, + pub label: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct aa_str_table { + pub size: ::aya_ebpf::cty::c_int, + pub table: *mut aa_str_table_ent, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct aa_tags_struct { + pub sets: aa_tags_struct__bindgen_ty_1, + pub hdrs: aa_tags_struct__bindgen_ty_2, + pub strs: aa_str_table, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct aa_tags_struct__bindgen_ty_1 { + pub size: u32_, + pub table: *mut u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct aa_tags_struct__bindgen_ty_2 { + pub size: u32_, + pub table: *mut aa_tags_header, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct aa_policydb { + pub count: kref, + pub dfa: *mut aa_dfa, + pub __bindgen_anon_1: aa_policydb__bindgen_ty_1, + pub trans: aa_str_table, + pub tags: aa_tags_struct, + pub start: [::aya_ebpf::cty::c_uint; 33usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct aa_policydb__bindgen_ty_1 { + pub perms: *mut aa_perms, + pub size: u32_, +} +#[repr(C)] +pub struct aa_profile { + pub base: aa_policy, + pub parent: *mut aa_profile, + pub ns: *mut aa_ns, + pub rename: *const ::aya_ebpf::cty::c_char, + pub audit: audit_mode::Type, + pub mode: ::aya_ebpf::cty::c_long, + pub path_flags: u32_, + pub signal: ::aya_ebpf::cty::c_int, + pub disconnected: *const ::aya_ebpf::cty::c_char, + pub attach: aa_attachment, + pub rawdata: *mut aa_loaddata, + pub hash: *mut ::aya_ebpf::cty::c_uchar, + pub dirname: *mut ::aya_ebpf::cty::c_char, + pub dents: [*mut dentry; 9usize], + pub data: *mut rhashtable, + pub n_rules: ::aya_ebpf::cty::c_int, + pub label: aa_label, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct aa_proxy { + pub count: aa_common_ref, + pub label: *mut aa_label, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rlimit { + pub rlim_cur: __kernel_ulong_t, + pub rlim_max: __kernel_ulong_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct aa_rlimit { + pub mask: ::aya_ebpf::cty::c_uint, + pub limits: [rlimit; 16usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct aa_ruleset { + pub size: ::aya_ebpf::cty::c_int, + pub policy: *mut aa_policydb, + pub file: *mut aa_policydb, + pub caps: aa_caps, + pub rlimits: aa_rlimit, + pub secmark_count: ::aya_ebpf::cty::c_int, + pub secmark: *mut aa_secmark, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct aa_secmark { + pub audit: u8_, + pub deny: u8_, + pub secid: u32_, + pub label: *mut ::aya_ebpf::cty::c_char, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct aa_str_table_ent { + pub count: ::aya_ebpf::cty::c_int, + pub size: ::aya_ebpf::cty::c_int, + pub strs: *mut ::aya_ebpf::cty::c_char, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct aa_tags_header { + pub mask: u32_, + pub count: u32_, + pub size: u32_, + pub tags: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ack_sample { + pub pkts_acked: u32_, + pub rtt_us: s32, + pub in_flight: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cipher_alg { + pub cia_min_keysize: ::aya_ebpf::cty::c_uint, + pub cia_max_keysize: ::aya_ebpf::cty::c_uint, + pub cia_setkey: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut crypto_tfm, + arg2: *const u8_, + arg3: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub cia_encrypt: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut crypto_tfm, arg2: *mut u8_, arg3: *const u8_), + >, + pub cia_decrypt: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut crypto_tfm, arg2: *mut u8_, arg3: *const u8_), + >, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct crypto_alg { + pub cra_list: list_head, + pub cra_users: list_head, + pub cra_flags: u32_, + pub cra_blocksize: ::aya_ebpf::cty::c_uint, + pub cra_ctxsize: ::aya_ebpf::cty::c_uint, + pub cra_alignmask: ::aya_ebpf::cty::c_uint, + pub cra_reqsize: ::aya_ebpf::cty::c_uint, + pub cra_priority: ::aya_ebpf::cty::c_int, + pub cra_refcnt: refcount_t, + pub cra_name: [::aya_ebpf::cty::c_char; 128usize], + pub cra_driver_name: [::aya_ebpf::cty::c_char; 128usize], + pub cra_type: *const crypto_type, + pub cra_u: crypto_alg__bindgen_ty_1, + pub cra_init: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut crypto_tfm) -> ::aya_ebpf::cty::c_int, + >, + pub cra_exit: ::core::option::Option, + pub cra_destroy: ::core::option::Option, + pub cra_module: *mut module, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union crypto_alg__bindgen_ty_1 { + pub cipher: cipher_alg, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct scatterlist { + pub page_link: ::aya_ebpf::cty::c_ulong, + pub offset: ::aya_ebpf::cty::c_uint, + pub length: ::aya_ebpf::cty::c_uint, + pub dma_address: dma_addr_t, + pub dma_length: ::aya_ebpf::cty::c_uint, + pub dma_flags: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct attribute { + pub name: *const ::aya_ebpf::cty::c_char, + pub mode: umode_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bin_attribute { + pub attr: attribute, + pub size: usize, + pub private: *mut ::aya_ebpf::cty::c_void, + pub f_mapping: ::core::option::Option *mut address_space>, + pub read: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file, + arg2: *mut kobject, + arg3: *const bin_attribute, + arg4: *mut ::aya_ebpf::cty::c_char, + arg5: loff_t, + arg6: usize, + ) -> isize, + >, + pub write: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file, + arg2: *mut kobject, + arg3: *const bin_attribute, + arg4: *mut ::aya_ebpf::cty::c_char, + arg5: loff_t, + arg6: usize, + ) -> isize, + >, + pub llseek: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file, + arg2: *mut kobject, + arg3: *const bin_attribute, + arg4: loff_t, + arg5: ::aya_ebpf::cty::c_int, + ) -> loff_t, + >, + pub mmap: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file, + arg2: *mut kobject, + arg3: *const bin_attribute, + arg4: *mut vm_area_struct, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fwnode_handle { + pub secondary: *mut fwnode_handle, + pub ops: *const fwnode_operations, + pub dev: *mut device, + pub suppliers: list_head, + pub consumers: list_head, + pub flags: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kobject { + pub name: *const ::aya_ebpf::cty::c_char, + pub entry: list_head, + pub parent: *mut kobject, + pub kset: *mut kset, + pub ktype: *const kobj_type, + pub sd: *mut kernfs_node, + pub kref: kref, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: [u8; 3usize], +} +impl kobject { + #[inline] + pub fn state_initialized(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_state_initialized(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn state_initialized_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_state_initialized_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn state_in_sysfs(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_state_in_sysfs(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn state_in_sysfs_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_state_in_sysfs_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn state_add_uevent_sent(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_state_add_uevent_sent(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn state_add_uevent_sent_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_state_add_uevent_sent_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn state_remove_uevent_sent(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } + } + #[inline] + pub fn set_state_remove_uevent_sent(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn state_remove_uevent_sent_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_state_remove_uevent_sent_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn uevent_suppress(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } + } + #[inline] + pub fn set_uevent_suppress(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn uevent_suppress_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_uevent_suppress_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + state_initialized: ::aya_ebpf::cty::c_uint, + state_in_sysfs: ::aya_ebpf::cty::c_uint, + state_add_uevent_sent: ::aya_ebpf::cty::c_uint, + state_remove_uevent_sent: ::aya_ebpf::cty::c_uint, + uevent_suppress: ::aya_ebpf::cty::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let state_initialized: u32 = unsafe { ::core::mem::transmute(state_initialized) }; + state_initialized as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let state_in_sysfs: u32 = unsafe { ::core::mem::transmute(state_in_sysfs) }; + state_in_sysfs as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let state_add_uevent_sent: u32 = + unsafe { ::core::mem::transmute(state_add_uevent_sent) }; + state_add_uevent_sent as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let state_remove_uevent_sent: u32 = + unsafe { ::core::mem::transmute(state_remove_uevent_sent) }; + state_remove_uevent_sent as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let uevent_suppress: u32 = unsafe { ::core::mem::transmute(uevent_suppress) }; + uevent_suppress as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct swait_queue_head { + pub lock: raw_spinlock_t, + pub task_list: list_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct completion { + pub done: ::aya_ebpf::cty::c_uint, + pub wait: swait_queue_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct acpi_device_id { + pub id: [__u8; 16usize], + pub driver_data: kernel_ulong_t, + pub cls: __u32, + pub cls_msk: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dev_links_info { + pub suppliers: list_head, + pub consumers: list_head, + pub defer_sync: list_head, + pub status: dl_dev_state::Type, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pm_message { + pub event: ::aya_ebpf::cty::c_int, +} +pub type pm_message_t = pm_message; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rb_node_linked { + pub node: rb_node, + pub prev: *mut rb_node_linked, + pub next: *mut rb_node_linked, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timerqueue_linked_node { + pub node: rb_node_linked, + pub expires: ktime_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct hrtimer { + pub node: timerqueue_linked_node, + pub base: *mut hrtimer_clock_base, + pub is_queued: bool_, + pub is_rel: bool_, + pub is_soft: bool_, + pub is_hard: bool_, + pub is_lazy: bool_, + pub _softexpires: ktime_t, + pub function: + ::core::option::Option hrtimer_restart::Type>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct dev_pm_info { + pub power_state: pm_message_t, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, + pub driver_flags: u32_, + pub lock: spinlock_t, + pub entry: list_head, + pub completion: completion, + pub wakeup: *mut wakeup_source, + pub work_in_progress: bool_, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 1usize]>, + pub suspend_timer: hrtimer, + pub timer_expires: u64_, + pub work: work_struct, + pub wait_queue: wait_queue_head_t, + pub wakeirq: *mut wake_irq, + pub usage_count: atomic_t, + pub child_count: atomic_t, + pub _bitfield_align_3: [u8; 0], + pub _bitfield_3: __BindgenBitfieldUnit<[u8; 2usize]>, + pub links_count: ::aya_ebpf::cty::c_uint, + pub request: rpm_request::Type, + pub runtime_status: rpm_status::Type, + pub last_status: rpm_status::Type, + pub runtime_error: ::aya_ebpf::cty::c_int, + pub autosuspend_delay: ::aya_ebpf::cty::c_int, + pub last_busy: u64_, + pub active_time: u64_, + pub suspended_time: u64_, + pub accounting_timestamp: u64_, + pub subsys_data: *mut pm_subsys_data, + pub set_latency_tolerance: + ::core::option::Option, + pub qos: *mut dev_pm_qos, + pub _bitfield_align_4: [u8; 0], + pub _bitfield_4: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: [u8; 7usize], +} +impl dev_pm_info { + #[inline] + pub fn can_wakeup(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_can_wakeup(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn can_wakeup_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_can_wakeup_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn async_suspend(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_async_suspend(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn async_suspend_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_async_suspend_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn in_dpm_list(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) } + } + #[inline] + pub fn set_in_dpm_list(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn in_dpm_list_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_in_dpm_list_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn is_prepared(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) } + } + #[inline] + pub fn set_is_prepared(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn is_prepared_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_is_prepared_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn is_suspended(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) } + } + #[inline] + pub fn set_is_suspended(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn is_suspended_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_is_suspended_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn is_noirq_suspended(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) } + } + #[inline] + pub fn set_is_noirq_suspended(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn is_noirq_suspended_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 5usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_is_noirq_suspended_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 5usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn is_late_suspended(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) } + } + #[inline] + pub fn set_is_late_suspended(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn is_late_suspended_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 6usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_is_late_suspended_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 6usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn no_pm(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) } + } + #[inline] + pub fn set_no_pm(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn no_pm_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 7usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_no_pm_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 7usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn early_init(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u8) } + } + #[inline] + pub fn set_early_init(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(8usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn early_init_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 8usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_early_init_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 8usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn direct_complete(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u8) } + } + #[inline] + pub fn set_direct_complete(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(9usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn direct_complete_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 9usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_direct_complete_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 9usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + can_wakeup: bool_, + async_suspend: bool_, + in_dpm_list: bool_, + is_prepared: bool_, + is_suspended: bool_, + is_noirq_suspended: bool_, + is_late_suspended: bool_, + no_pm: bool_, + early_init: bool_, + direct_complete: bool_, + ) -> __BindgenBitfieldUnit<[u8; 2usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let can_wakeup: u8 = unsafe { ::core::mem::transmute(can_wakeup) }; + can_wakeup as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let async_suspend: u8 = unsafe { ::core::mem::transmute(async_suspend) }; + async_suspend as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let in_dpm_list: u8 = unsafe { ::core::mem::transmute(in_dpm_list) }; + in_dpm_list as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let is_prepared: u8 = unsafe { ::core::mem::transmute(is_prepared) }; + is_prepared as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let is_suspended: u8 = unsafe { ::core::mem::transmute(is_suspended) }; + is_suspended as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let is_noirq_suspended: u8 = unsafe { ::core::mem::transmute(is_noirq_suspended) }; + is_noirq_suspended as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let is_late_suspended: u8 = unsafe { ::core::mem::transmute(is_late_suspended) }; + is_late_suspended as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let no_pm: u8 = unsafe { ::core::mem::transmute(no_pm) }; + no_pm as u64 + }); + __bindgen_bitfield_unit.set(8usize, 1u8, { + let early_init: u8 = unsafe { ::core::mem::transmute(early_init) }; + early_init as u64 + }); + __bindgen_bitfield_unit.set(9usize, 1u8, { + let direct_complete: u8 = unsafe { ::core::mem::transmute(direct_complete) }; + direct_complete as u64 + }); + __bindgen_bitfield_unit + } + #[inline] + pub fn wakeup_path(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_2.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_wakeup_path(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn wakeup_path_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_wakeup_path_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn syscore(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_2.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_syscore(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn syscore_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_syscore_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn no_pm_callbacks(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_2.get(2usize, 1u8) as u8) } + } + #[inline] + pub fn set_no_pm_callbacks(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn no_pm_callbacks_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 2usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_no_pm_callbacks_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn smart_suspend(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_2.get(3usize, 1u8) as u8) } + } + #[inline] + pub fn set_smart_suspend(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn smart_suspend_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 3usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_smart_suspend_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn must_resume(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_2.get(4usize, 1u8) as u8) } + } + #[inline] + pub fn set_must_resume(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn must_resume_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 4usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_must_resume_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn may_skip_resume(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_2.get(5usize, 1u8) as u8) } + } + #[inline] + pub fn set_may_skip_resume(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn may_skip_resume_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 5usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_may_skip_resume_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 5usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn out_band_wakeup(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_2.get(6usize, 1u8) as u8) } + } + #[inline] + pub fn set_out_band_wakeup(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn out_band_wakeup_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 6usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_out_band_wakeup_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 6usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn strict_midlayer(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_2.get(7usize, 1u8) as u8) } + } + #[inline] + pub fn set_strict_midlayer(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn strict_midlayer_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 7usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_strict_midlayer_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 7usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_2( + wakeup_path: bool_, + syscore: bool_, + no_pm_callbacks: bool_, + smart_suspend: bool_, + must_resume: bool_, + may_skip_resume: bool_, + out_band_wakeup: bool_, + strict_midlayer: bool_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let wakeup_path: u8 = unsafe { ::core::mem::transmute(wakeup_path) }; + wakeup_path as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let syscore: u8 = unsafe { ::core::mem::transmute(syscore) }; + syscore as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let no_pm_callbacks: u8 = unsafe { ::core::mem::transmute(no_pm_callbacks) }; + no_pm_callbacks as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let smart_suspend: u8 = unsafe { ::core::mem::transmute(smart_suspend) }; + smart_suspend as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let must_resume: u8 = unsafe { ::core::mem::transmute(must_resume) }; + must_resume as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let may_skip_resume: u8 = unsafe { ::core::mem::transmute(may_skip_resume) }; + may_skip_resume as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let out_band_wakeup: u8 = unsafe { ::core::mem::transmute(out_band_wakeup) }; + out_band_wakeup as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let strict_midlayer: u8 = unsafe { ::core::mem::transmute(strict_midlayer) }; + strict_midlayer as u64 + }); + __bindgen_bitfield_unit + } + #[inline] + pub fn disable_depth(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_3.get(0usize, 3u8) as u32) } + } + #[inline] + pub fn set_disable_depth(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_3.set(0usize, 3u8, val as u64) + } + } + #[inline] + pub unsafe fn disable_depth_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 0usize, + 3u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_disable_depth_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 0usize, + 3u8, + val as u64, + ) + } + } + #[inline] + pub fn idle_notification(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_3.get(3usize, 1u8) as u8) } + } + #[inline] + pub fn set_idle_notification(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_3.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn idle_notification_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 3usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_idle_notification_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn request_pending(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_3.get(4usize, 1u8) as u8) } + } + #[inline] + pub fn set_request_pending(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_3.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn request_pending_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 4usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_request_pending_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn deferred_resume(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_3.get(5usize, 1u8) as u8) } + } + #[inline] + pub fn set_deferred_resume(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_3.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn deferred_resume_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 5usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_deferred_resume_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 5usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn needs_force_resume(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_3.get(6usize, 1u8) as u8) } + } + #[inline] + pub fn set_needs_force_resume(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_3.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn needs_force_resume_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 6usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_needs_force_resume_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 6usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn runtime_auto(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_3.get(7usize, 1u8) as u8) } + } + #[inline] + pub fn set_runtime_auto(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_3.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn runtime_auto_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 7usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_runtime_auto_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 7usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn ignore_children(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_3.get(8usize, 1u8) as u8) } + } + #[inline] + pub fn set_ignore_children(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_3.set(8usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn ignore_children_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 8usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_ignore_children_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 8usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn no_callbacks(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_3.get(9usize, 1u8) as u8) } + } + #[inline] + pub fn set_no_callbacks(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_3.set(9usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn no_callbacks_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 9usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_no_callbacks_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 9usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn irq_safe(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_3.get(10usize, 1u8) as u8) } + } + #[inline] + pub fn set_irq_safe(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_3.set(10usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn irq_safe_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 10usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_irq_safe_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 10usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn use_autosuspend(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_3.get(11usize, 1u8) as u8) } + } + #[inline] + pub fn set_use_autosuspend(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_3.set(11usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn use_autosuspend_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 11usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_use_autosuspend_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 11usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn timer_autosuspends(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_3.get(12usize, 1u8) as u8) } + } + #[inline] + pub fn set_timer_autosuspends(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_3.set(12usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn timer_autosuspends_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 12usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_timer_autosuspends_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 12usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn memalloc_noio(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_3.get(13usize, 1u8) as u8) } + } + #[inline] + pub fn set_memalloc_noio(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_3.set(13usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn memalloc_noio_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 13usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_memalloc_noio_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 13usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_3( + disable_depth: ::aya_ebpf::cty::c_uint, + idle_notification: bool_, + request_pending: bool_, + deferred_resume: bool_, + needs_force_resume: bool_, + runtime_auto: bool_, + ignore_children: bool_, + no_callbacks: bool_, + irq_safe: bool_, + use_autosuspend: bool_, + timer_autosuspends: bool_, + memalloc_noio: bool_, + ) -> __BindgenBitfieldUnit<[u8; 2usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 3u8, { + let disable_depth: u32 = unsafe { ::core::mem::transmute(disable_depth) }; + disable_depth as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let idle_notification: u8 = unsafe { ::core::mem::transmute(idle_notification) }; + idle_notification as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let request_pending: u8 = unsafe { ::core::mem::transmute(request_pending) }; + request_pending as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let deferred_resume: u8 = unsafe { ::core::mem::transmute(deferred_resume) }; + deferred_resume as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let needs_force_resume: u8 = unsafe { ::core::mem::transmute(needs_force_resume) }; + needs_force_resume as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let runtime_auto: u8 = unsafe { ::core::mem::transmute(runtime_auto) }; + runtime_auto as u64 + }); + __bindgen_bitfield_unit.set(8usize, 1u8, { + let ignore_children: u8 = unsafe { ::core::mem::transmute(ignore_children) }; + ignore_children as u64 + }); + __bindgen_bitfield_unit.set(9usize, 1u8, { + let no_callbacks: u8 = unsafe { ::core::mem::transmute(no_callbacks) }; + no_callbacks as u64 + }); + __bindgen_bitfield_unit.set(10usize, 1u8, { + let irq_safe: u8 = unsafe { ::core::mem::transmute(irq_safe) }; + irq_safe as u64 + }); + __bindgen_bitfield_unit.set(11usize, 1u8, { + let use_autosuspend: u8 = unsafe { ::core::mem::transmute(use_autosuspend) }; + use_autosuspend as u64 + }); + __bindgen_bitfield_unit.set(12usize, 1u8, { + let timer_autosuspends: u8 = unsafe { ::core::mem::transmute(timer_autosuspends) }; + timer_autosuspends as u64 + }); + __bindgen_bitfield_unit.set(13usize, 1u8, { + let memalloc_noio: u8 = unsafe { ::core::mem::transmute(memalloc_noio) }; + memalloc_noio as u64 + }); + __bindgen_bitfield_unit + } + #[inline] + pub fn detach_power_off(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_4.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_detach_power_off(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_4.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn detach_power_off_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_4), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_detach_power_off_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_4), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_4(detach_power_off: bool_) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let detach_power_off: u8 = unsafe { ::core::mem::transmute(detach_power_off) }; + detach_power_off as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dev_msi_info { + pub domain: *mut irq_domain, + pub data: *mut msi_device_data, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dev_archdata {} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct device { + pub kobj: kobject, + pub parent: *mut device, + pub p: *mut device_private, + pub init_name: *const ::aya_ebpf::cty::c_char, + pub type_: *const device_type, + pub bus: *const bus_type, + pub driver: *mut device_driver, + pub platform_data: *mut ::aya_ebpf::cty::c_void, + pub driver_data: *mut ::aya_ebpf::cty::c_void, + pub driver_override: device__bindgen_ty_1, + pub mutex: mutex, + pub links: dev_links_info, + pub power: dev_pm_info, + pub pm_domain: *mut dev_pm_domain, + pub em_pd: *mut em_perf_domain, + pub pins: *mut dev_pin_info, + pub msi: dev_msi_info, + pub dma_ops: *const dma_map_ops, + pub dma_mask: *mut u64_, + pub coherent_dma_mask: u64_, + pub bus_dma_limit: u64_, + pub dma_range_map: *const bus_dma_region, + pub dma_parms: *mut device_dma_parameters, + pub dma_pools: list_head, + pub dma_mem: *mut dma_coherent_mem, + pub cma_area: *mut cma, + pub dma_io_tlb_mem: *mut io_tlb_mem, + pub archdata: dev_archdata, + pub of_node: *mut device_node, + pub fwnode: *mut fwnode_handle, + pub numa_node: ::aya_ebpf::cty::c_int, + pub devt: dev_t, + pub id: u32_, + pub devres_lock: spinlock_t, + pub devres_head: list_head, + pub class: *const class, + pub groups: *mut *const attribute_group, + pub release: ::core::option::Option, + pub iommu_group: *mut iommu_group, + pub iommu: *mut dev_iommu, + pub physical_location: *mut device_physical_location, + pub removable: device_removable::Type, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub flags: [::aya_ebpf::cty::c_ulong; 1usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct device__bindgen_ty_1 { + pub name: *const ::aya_ebpf::cty::c_char, + pub lock: spinlock_t, +} +impl device { + #[inline] + pub fn offline_disabled(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_offline_disabled(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn offline_disabled_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_offline_disabled_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn offline(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_offline(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn offline_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_offline_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn of_node_reused(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) } + } + #[inline] + pub fn set_of_node_reused(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn of_node_reused_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_of_node_reused_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn state_synced(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) } + } + #[inline] + pub fn set_state_synced(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn state_synced_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_state_synced_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn can_match(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) } + } + #[inline] + pub fn set_can_match(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn can_match_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_can_match_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn dma_skip_sync(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) } + } + #[inline] + pub fn set_dma_skip_sync(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dma_skip_sync_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 5usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_dma_skip_sync_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 5usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn dma_iommu(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) } + } + #[inline] + pub fn set_dma_iommu(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dma_iommu_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 6usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_dma_iommu_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 6usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + offline_disabled: bool_, + offline: bool_, + of_node_reused: bool_, + state_synced: bool_, + can_match: bool_, + dma_skip_sync: bool_, + dma_iommu: bool_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let offline_disabled: u8 = unsafe { ::core::mem::transmute(offline_disabled) }; + offline_disabled as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let offline: u8 = unsafe { ::core::mem::transmute(offline) }; + offline as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let of_node_reused: u8 = unsafe { ::core::mem::transmute(of_node_reused) }; + of_node_reused as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let state_synced: u8 = unsafe { ::core::mem::transmute(state_synced) }; + state_synced as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let can_match: u8 = unsafe { ::core::mem::transmute(can_match) }; + can_match as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let dma_skip_sync: u8 = unsafe { ::core::mem::transmute(dma_skip_sync) }; + dma_skip_sync as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let dma_iommu: u8 = unsafe { ::core::mem::transmute(dma_iommu) }; + dma_iommu as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct xarray { + pub xa_lock: spinlock_t, + pub xa_flags: gfp_t, + pub xa_head: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ida { + pub xa: xarray, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct device_driver { + pub name: *const ::aya_ebpf::cty::c_char, + pub bus: *const bus_type, + pub owner: *mut module, + pub mod_name: *const ::aya_ebpf::cty::c_char, + pub suppress_bind_attrs: bool_, + pub probe_type: probe_type::Type, + pub of_match_table: *const of_device_id, + pub acpi_match_table: *const acpi_device_id, + pub probe: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub sync_state: ::core::option::Option, + pub remove: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub shutdown: ::core::option::Option, + pub suspend: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut device, arg2: pm_message_t) -> ::aya_ebpf::cty::c_int, + >, + pub resume: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub groups: *mut *const attribute_group, + pub dev_groups: *mut *const attribute_group, + pub pm: *const dev_pm_ops, + pub coredump: ::core::option::Option, + pub p: *mut driver_private, + pub p_cb: device_driver__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct device_driver__bindgen_ty_1 { + pub post_unbind_rust: ::core::option::Option, +} +pub type irq_handler_t = ::core::option::Option< + unsafe extern "C" fn( + arg1: ::aya_ebpf::cty::c_int, + arg2: *mut ::aya_ebpf::cty::c_void, + ) -> irqreturn_t, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rcu_work { + pub work: work_struct, + pub rcu: callback_head, + pub wq: *mut workqueue_struct, +} +pub type cpumask_var_t = *mut cpumask; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct plist_node { + pub prio: ::aya_ebpf::cty::c_int, + pub prio_list: list_head, + pub node_list: list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct freq_qos_request { + pub type_: freq_qos_req_type::Type, + pub pnode: plist_node, + pub qos: *mut freq_constraints, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct action_cache { + pub allow_native: [::aya_ebpf::cty::c_ulong; 8usize], + pub allow_compat: [::aya_ebpf::cty::c_ulong; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct action_gate_entry { + pub gate_state: u8_, + pub interval: u32_, + pub ipv: s32, + pub maxoctets: s32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rb_root_cached { + pub rb_root: rb_root, + pub rb_leftmost: *mut rb_node, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct address_space { + pub host: *mut inode, + pub i_pages: xarray, + pub invalidate_lock: rw_semaphore, + pub gfp_mask: gfp_t, + pub i_mmap_writable: atomic_t, + pub nr_thps: atomic_t, + pub i_mmap: rb_root_cached, + pub nrpages: ::aya_ebpf::cty::c_ulong, + pub writeback_index: ::aya_ebpf::cty::c_ulong, + pub a_ops: *const address_space_operations, + pub flags: ::aya_ebpf::cty::c_ulong, + pub wb_err: errseq_t, + pub i_private_lock: spinlock_t, + pub i_mmap_rwsem: rw_semaphore, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct address_space_operations { + pub read_folio: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut file, arg2: *mut folio) -> ::aya_ebpf::cty::c_int, + >, + pub writepages: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut address_space, + arg2: *mut writeback_control, + ) -> ::aya_ebpf::cty::c_int, + >, + pub dirty_folio: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut address_space, arg2: *mut folio) -> bool_, + >, + pub readahead: ::core::option::Option, + pub write_begin: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const kiocb, + arg2: *mut address_space, + arg3: loff_t, + arg4: ::aya_ebpf::cty::c_uint, + arg5: *mut *mut folio, + arg6: *mut *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub write_end: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const kiocb, + arg2: *mut address_space, + arg3: loff_t, + arg4: ::aya_ebpf::cty::c_uint, + arg5: ::aya_ebpf::cty::c_uint, + arg6: *mut folio, + arg7: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub bmap: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut address_space, arg2: sector_t) -> sector_t, + >, + pub invalidate_folio: + ::core::option::Option, + pub release_folio: + ::core::option::Option bool_>, + pub free_folio: ::core::option::Option, + pub direct_IO: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut kiocb, arg2: *mut iov_iter) -> isize, + >, + pub migrate_folio: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut address_space, + arg2: *mut folio, + arg3: *mut folio, + arg4: migrate_mode::Type, + ) -> ::aya_ebpf::cty::c_int, + >, + pub launder_folio: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub is_partially_uptodate: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut folio, arg2: usize, arg3: usize) -> bool_, + >, + pub is_dirty_writeback: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut folio, arg2: *mut bool_, arg3: *mut bool_), + >, + pub error_remove_folio: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut address_space, arg2: *mut folio) -> ::aya_ebpf::cty::c_int, + >, + pub swap_activate: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut swap_info_struct, + arg2: *mut file, + arg3: *mut sector_t, + ) -> ::aya_ebpf::cty::c_int, + >, + pub swap_deactivate: ::core::option::Option, + pub swap_rw: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut kiocb, arg2: *mut iov_iter) -> ::aya_ebpf::cty::c_int, + >, +} +pub type mempool_t = mempool; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct audit_ntp_val { + pub oldval: ::aya_ebpf::cty::c_longlong, + pub newval: ::aya_ebpf::cty::c_longlong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct audit_ntp_data { + pub vals: [audit_ntp_val; 6usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timespec64 { + pub tv_sec: time64_t, + pub tv_nsec: ::aya_ebpf::cty::c_long, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct blocking_notifier_head { + pub rwsem: rw_semaphore, + pub head: *mut notifier_block, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ratelimit_state { + pub lock: raw_spinlock_t, + pub interval: ::aya_ebpf::cty::c_int, + pub burst: ::aya_ebpf::cty::c_int, + pub rs_n_left: atomic_t, + pub missed: atomic_t, + pub flags: ::aya_ebpf::cty::c_uint, + pub begin: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct affinity_context { + pub new_mask: *const cpumask, + pub user_mask: *mut cpumask, + pub flags: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +pub struct crypto_instance { + pub alg: crypto_alg, + pub tmpl: *mut crypto_template, + pub __bindgen_anon_1: crypto_instance__bindgen_ty_1, + pub __ctx: __IncompleteArrayField<*mut ::aya_ebpf::cty::c_void>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union crypto_instance__bindgen_ty_1 { + pub list: hlist_node, + pub spawns: *mut crypto_spawn, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct inode_state_flags { + pub __state: inode_state_flags_enum::Type, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct hlist_head { + pub first: *mut hlist_node, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct inode { + pub i_mode: umode_t, + pub i_opflags: ::aya_ebpf::cty::c_ushort, + pub i_flags: ::aya_ebpf::cty::c_uint, + pub i_acl: *mut posix_acl, + pub i_default_acl: *mut posix_acl, + pub i_uid: kuid_t, + pub i_gid: kgid_t, + pub i_op: *const inode_operations, + pub i_sb: *mut super_block, + pub i_mapping: *mut address_space, + pub i_security: *mut ::aya_ebpf::cty::c_void, + pub i_ino: u64_, + pub __bindgen_anon_1: inode__bindgen_ty_1, + pub i_rdev: dev_t, + pub i_size: loff_t, + pub i_atime_sec: time64_t, + pub i_mtime_sec: time64_t, + pub i_ctime_sec: time64_t, + pub i_atime_nsec: u32_, + pub i_mtime_nsec: u32_, + pub i_ctime_nsec: u32_, + pub i_generation: u32_, + pub i_lock: spinlock_t, + pub i_bytes: ::aya_ebpf::cty::c_ushort, + pub i_blkbits: u8_, + pub i_write_hint: rw_hint::Type, + pub i_blocks: blkcnt_t, + pub i_state: inode_state_flags, + pub i_rwsem: rw_semaphore, + pub dirtied_when: ::aya_ebpf::cty::c_ulong, + pub dirtied_time_when: ::aya_ebpf::cty::c_ulong, + pub i_hash: hlist_node, + pub i_io_list: list_head, + pub i_wb: *mut bdi_writeback, + pub i_wb_frn_winner: ::aya_ebpf::cty::c_int, + pub i_wb_frn_avg_time: u16_, + pub i_wb_frn_history: u16_, + pub i_lru: list_head, + pub i_sb_list: list_head, + pub i_wb_list: list_head, + pub __bindgen_anon_2: inode__bindgen_ty_2, + pub i_version: atomic64_t, + pub i_sequence: atomic64_t, + pub i_count: atomic_t, + pub i_dio_count: atomic_t, + pub i_writecount: atomic_t, + pub i_readcount: atomic_t, + pub __bindgen_anon_3: inode__bindgen_ty_3, + pub i_flctx: *mut file_lock_context, + pub i_data: address_space, + pub __bindgen_anon_4: inode__bindgen_ty_4, + pub __bindgen_anon_5: inode__bindgen_ty_5, + pub i_fsnotify_mask: __u32, + pub i_fsnotify_marks: *mut fsnotify_mark_connector, + pub i_private: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union inode__bindgen_ty_1 { + pub i_nlink: ::aya_ebpf::cty::c_uint, + pub __i_nlink: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union inode__bindgen_ty_2 { + pub i_dentry: hlist_head, + pub i_rcu: callback_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union inode__bindgen_ty_3 { + pub i_fop: *const file_operations, + pub free_inode: ::core::option::Option, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union inode__bindgen_ty_4 { + pub i_devices: list_head, + pub i_linklen: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union inode__bindgen_ty_5 { + pub i_pipe: *mut pipe_inode_info, + pub i_cdev: *mut cdev, + pub i_link: *mut ::aya_ebpf::cty::c_char, + pub i_dir_seq: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kiocb { + pub ki_filp: *mut file, + pub ki_pos: loff_t, + pub ki_complete: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut kiocb, arg2: ::aya_ebpf::cty::c_long), + >, + pub private: *mut ::aya_ebpf::cty::c_void, + pub ki_flags: ::aya_ebpf::cty::c_int, + pub ki_ioprio: u16_, + pub ki_write_stream: u8_, + pub ki_waitq: *mut wait_page_queue, +} +pub type wait_queue_func_t = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut wait_queue_entry, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_int, + arg4: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wait_queue_entry { + pub flags: ::aya_ebpf::cty::c_uint, + pub private: *mut ::aya_ebpf::cty::c_void, + pub func: wait_queue_func_t, + pub entry: list_head, +} +pub type poll_queue_proc = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file, + arg2: *mut wait_queue_head_t, + arg3: *mut poll_table_struct, + ), +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct poll_table_struct { + pub _qproc: poll_queue_proc, + pub _key: __poll_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timerqueue_head { + pub rb_root: rb_root_cached, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct codetag { + pub flags: ::aya_ebpf::cty::c_uint, + pub lineno: ::aya_ebpf::cty::c_uint, + pub modname: *const ::aya_ebpf::cty::c_char, + pub function: *const ::aya_ebpf::cty::c_char, + pub filename: *const ::aya_ebpf::cty::c_char, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct alloc_tag { + pub ct: codetag, + pub counters: *mut alloc_tag_counters, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct alloc_tag_counters { + pub bytes: u64_, + pub calls: u64_, +} +pub type notifier_fn_t = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut notifier_block, + arg2: ::aya_ebpf::cty::c_ulong, + arg3: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct notifier_block { + pub notifier_call: notifier_fn_t, + pub next: *mut notifier_block, + pub priority: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct irq_domain_ops { + pub match_: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut irq_domain, + arg2: *mut device_node, + arg3: irq_domain_bus_token::Type, + ) -> ::aya_ebpf::cty::c_int, + >, + pub select: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut irq_domain, + arg2: *mut irq_fwspec, + arg3: irq_domain_bus_token::Type, + ) -> ::aya_ebpf::cty::c_int, + >, + pub map: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut irq_domain, + arg2: ::aya_ebpf::cty::c_uint, + arg3: irq_hw_number_t, + ) -> ::aya_ebpf::cty::c_int, + >, + pub unmap: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut irq_domain, arg2: ::aya_ebpf::cty::c_uint), + >, + pub xlate: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut irq_domain, + arg2: *mut device_node, + arg3: *const u32_, + arg4: ::aya_ebpf::cty::c_uint, + arg5: *mut ::aya_ebpf::cty::c_ulong, + arg6: *mut ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub alloc: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut irq_domain, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_uint, + arg4: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub free: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut irq_domain, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_uint, + ), + >, + pub activate: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut irq_domain, + arg2: *mut irq_data, + arg3: bool_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub deactivate: + ::core::option::Option, + pub translate: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut irq_domain, + arg2: *mut irq_fwspec, + arg3: *mut ::aya_ebpf::cty::c_ulong, + arg4: *mut ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_fwspec_info: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut irq_fwspec, + arg2: *mut irq_fwspec_info, + ) -> ::aya_ebpf::cty::c_int, + >, +} +pub type irq_flow_handler_t = ::core::option::Option; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct gpio_irq_chip { + pub chip: *mut irq_chip, + pub domain: *mut irq_domain, + pub fwnode: *mut fwnode_handle, + pub parent_domain: *mut irq_domain, + pub child_to_parent_hwirq: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut gpio_chip, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_uint, + arg4: *mut ::aya_ebpf::cty::c_uint, + arg5: *mut ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub populate_parent_alloc_arg: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut gpio_chip, + arg2: *mut gpio_irq_fwspec, + arg3: ::aya_ebpf::cty::c_uint, + arg4: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub child_offset_to_irq: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut gpio_chip, + arg2: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_uint, + >, + pub child_irq_domain_ops: irq_domain_ops, + pub handler: irq_flow_handler_t, + pub default_type: ::aya_ebpf::cty::c_uint, + pub lock_key: *mut lock_class_key, + pub request_key: *mut lock_class_key, + pub parent_handler: irq_flow_handler_t, + pub __bindgen_anon_1: gpio_irq_chip__bindgen_ty_1, + pub num_parents: ::aya_ebpf::cty::c_uint, + pub parents: *mut ::aya_ebpf::cty::c_uint, + pub map: *mut ::aya_ebpf::cty::c_uint, + pub threaded: bool_, + pub per_parent_data: bool_, + pub initialized: bool_, + pub domain_is_allocated_externally: bool_, + pub init_hw: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut gpio_chip) -> ::aya_ebpf::cty::c_int, + >, + pub init_valid_mask: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut gpio_chip, + arg2: *mut ::aya_ebpf::cty::c_ulong, + arg3: ::aya_ebpf::cty::c_uint, + ), + >, + pub valid_mask: *mut ::aya_ebpf::cty::c_ulong, + pub first: ::aya_ebpf::cty::c_uint, + pub irq_enable: ::core::option::Option, + pub irq_disable: ::core::option::Option, + pub irq_unmask: ::core::option::Option, + pub irq_mask: ::core::option::Option, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union gpio_irq_chip__bindgen_ty_1 { + pub parent_handler_data: *mut ::aya_ebpf::cty::c_void, + pub parent_handler_data_array: *mut *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct gpio_chip { + pub label: *const ::aya_ebpf::cty::c_char, + pub gpiodev: *mut gpio_device, + pub parent: *mut device, + pub fwnode: *mut fwnode_handle, + pub owner: *mut module, + pub request: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut gpio_chip, + arg2: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub free: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut gpio_chip, arg2: ::aya_ebpf::cty::c_uint), + >, + pub get_direction: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut gpio_chip, + arg2: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub direction_input: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut gpio_chip, + arg2: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub direction_output: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut gpio_chip, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut gpio_chip, + arg2: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_multiple: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut gpio_chip, + arg2: *mut ::aya_ebpf::cty::c_ulong, + arg3: *mut ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut gpio_chip, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_multiple: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut gpio_chip, + arg2: *mut ::aya_ebpf::cty::c_ulong, + arg3: *mut ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_config: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut gpio_chip, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, + pub to_irq: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut gpio_chip, + arg2: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub dbg_show: + ::core::option::Option, + pub init_valid_mask: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut gpio_chip, + arg2: *mut ::aya_ebpf::cty::c_ulong, + arg3: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub add_pin_ranges: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut gpio_chip) -> ::aya_ebpf::cty::c_int, + >, + pub en_hw_timestamp: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut gpio_chip, + arg2: u32_, + arg3: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, + pub dis_hw_timestamp: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut gpio_chip, + arg2: u32_, + arg3: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, + pub base: ::aya_ebpf::cty::c_int, + pub ngpio: u16_, + pub offset: u16_, + pub names: *const *const ::aya_ebpf::cty::c_char, + pub can_sleep: bool_, + pub irq: gpio_irq_chip, + pub of_gpio_n_cells: ::aya_ebpf::cty::c_uint, + pub of_node_instance_match: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut gpio_chip, arg2: ::aya_ebpf::cty::c_uint) -> bool_, + >, + pub of_xlate: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut gpio_chip, + arg2: *const of_phandle_args, + arg3: *mut u32_, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iommu_device { + pub list: list_head, + pub ops: *const iommu_ops, + pub fwnode: *mut fwnode_handle, + pub dev: *mut device, + pub singleton_group: *mut iommu_group, + pub max_pasids: u32_, + pub ready: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct device_attribute { + pub attr: attribute, + pub show: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut device, + arg2: *mut device_attribute, + arg3: *mut ::aya_ebpf::cty::c_char, + ) -> isize, + >, + pub store: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut device, + arg2: *mut device_attribute, + arg3: *const ::aya_ebpf::cty::c_char, + arg4: usize, + ) -> isize, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iommufd_object { + pub wait_cnt: refcount_t, + pub users: refcount_t, + pub type_: iommufd_object_type::Type, + pub id: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct iommufd_viommu { + pub obj: iommufd_object, + pub ictx: *mut iommufd_ctx, + pub iommu_dev: *mut iommu_device, + pub hwpt: *mut iommufd_hwpt_paging, + pub ops: *const iommufd_viommu_ops, + pub vdevs: xarray, + pub veventqs: list_head, + pub veventqs_rwsem: rw_semaphore, + pub type_: iommu_viommu_type::Type, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct x86_msi_addr_lo { + pub __bindgen_anon_1: x86_msi_addr_lo__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union x86_msi_addr_lo__bindgen_ty_1 { + pub __bindgen_anon_1: x86_msi_addr_lo__bindgen_ty_1__bindgen_ty_1, + pub __bindgen_anon_2: x86_msi_addr_lo__bindgen_ty_1__bindgen_ty_2, +} +#[repr(C)] +#[repr(align(4))] +#[derive(Debug, Copy, Clone)] +pub struct x86_msi_addr_lo__bindgen_ty_1__bindgen_ty_1 { + pub _bitfield_align_1: [u16; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +impl x86_msi_addr_lo__bindgen_ty_1__bindgen_ty_1 { + #[inline] + pub fn reserved_0(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u32) } + } + #[inline] + pub fn set_reserved_0(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn reserved_0_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 2u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_reserved_0_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn dest_mode_logical(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_dest_mode_logical(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dest_mode_logical_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_dest_mode_logical_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn redirect_hint(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } + } + #[inline] + pub fn set_redirect_hint(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn redirect_hint_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_redirect_hint_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn reserved_1(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } + } + #[inline] + pub fn set_reserved_1(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn reserved_1_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_reserved_1_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn virt_destid_8_14(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 7u8) as u32) } + } + #[inline] + pub fn set_virt_destid_8_14(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 7u8, val as u64) + } + } + #[inline] + pub unsafe fn virt_destid_8_14_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 5usize, + 7u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_virt_destid_8_14_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 5usize, + 7u8, + val as u64, + ) + } + } + #[inline] + pub fn destid_0_7(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 8u8) as u32) } + } + #[inline] + pub fn set_destid_0_7(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(12usize, 8u8, val as u64) + } + } + #[inline] + pub unsafe fn destid_0_7_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 12usize, + 8u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_destid_0_7_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 12usize, + 8u8, + val as u64, + ) + } + } + #[inline] + pub fn base_address(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 12u8) as u32) } + } + #[inline] + pub fn set_base_address(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(20usize, 12u8, val as u64) + } + } + #[inline] + pub unsafe fn base_address_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 20usize, + 12u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_base_address_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 20usize, + 12u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + reserved_0: u32_, + dest_mode_logical: u32_, + redirect_hint: u32_, + reserved_1: u32_, + virt_destid_8_14: u32_, + destid_0_7: u32_, + base_address: u32_, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 2u8, { + let reserved_0: u32 = unsafe { ::core::mem::transmute(reserved_0) }; + reserved_0 as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let dest_mode_logical: u32 = unsafe { ::core::mem::transmute(dest_mode_logical) }; + dest_mode_logical as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let redirect_hint: u32 = unsafe { ::core::mem::transmute(redirect_hint) }; + redirect_hint as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let reserved_1: u32 = unsafe { ::core::mem::transmute(reserved_1) }; + reserved_1 as u64 + }); + __bindgen_bitfield_unit.set(5usize, 7u8, { + let virt_destid_8_14: u32 = unsafe { ::core::mem::transmute(virt_destid_8_14) }; + virt_destid_8_14 as u64 + }); + __bindgen_bitfield_unit.set(12usize, 8u8, { + let destid_0_7: u32 = unsafe { ::core::mem::transmute(destid_0_7) }; + destid_0_7 as u64 + }); + __bindgen_bitfield_unit.set(20usize, 12u8, { + let base_address: u32 = unsafe { ::core::mem::transmute(base_address) }; + base_address as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[repr(align(4))] +#[derive(Debug, Copy, Clone)] +pub struct x86_msi_addr_lo__bindgen_ty_1__bindgen_ty_2 { + pub _bitfield_align_1: [u16; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +impl x86_msi_addr_lo__bindgen_ty_1__bindgen_ty_2 { + #[inline] + pub fn dmar_reserved_0(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u32) } + } + #[inline] + pub fn set_dmar_reserved_0(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn dmar_reserved_0_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 2u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_dmar_reserved_0_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn dmar_index_15(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_dmar_index_15(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dmar_index_15_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_dmar_index_15_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn dmar_subhandle_valid(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } + } + #[inline] + pub fn set_dmar_subhandle_valid(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dmar_subhandle_valid_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_dmar_subhandle_valid_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn dmar_format(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } + } + #[inline] + pub fn set_dmar_format(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dmar_format_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_dmar_format_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn dmar_index_0_14(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 15u8) as u32) } + } + #[inline] + pub fn set_dmar_index_0_14(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 15u8, val as u64) + } + } + #[inline] + pub unsafe fn dmar_index_0_14_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 5usize, + 15u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_dmar_index_0_14_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 5usize, + 15u8, + val as u64, + ) + } + } + #[inline] + pub fn dmar_base_address(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 12u8) as u32) } + } + #[inline] + pub fn set_dmar_base_address(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(20usize, 12u8, val as u64) + } + } + #[inline] + pub unsafe fn dmar_base_address_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 20usize, + 12u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_dmar_base_address_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 20usize, + 12u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + dmar_reserved_0: u32_, + dmar_index_15: u32_, + dmar_subhandle_valid: u32_, + dmar_format: u32_, + dmar_index_0_14: u32_, + dmar_base_address: u32_, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 2u8, { + let dmar_reserved_0: u32 = unsafe { ::core::mem::transmute(dmar_reserved_0) }; + dmar_reserved_0 as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let dmar_index_15: u32 = unsafe { ::core::mem::transmute(dmar_index_15) }; + dmar_index_15 as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let dmar_subhandle_valid: u32 = unsafe { ::core::mem::transmute(dmar_subhandle_valid) }; + dmar_subhandle_valid as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let dmar_format: u32 = unsafe { ::core::mem::transmute(dmar_format) }; + dmar_format as u64 + }); + __bindgen_bitfield_unit.set(5usize, 15u8, { + let dmar_index_0_14: u32 = unsafe { ::core::mem::transmute(dmar_index_0_14) }; + dmar_index_0_14 as u64 + }); + __bindgen_bitfield_unit.set(20usize, 12u8, { + let dmar_base_address: u32 = unsafe { ::core::mem::transmute(dmar_base_address) }; + dmar_base_address as u64 + }); + __bindgen_bitfield_unit + } +} +pub type arch_msi_msg_addr_lo_t = x86_msi_addr_lo; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct x86_msi_addr_hi { + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +impl x86_msi_addr_hi { + #[inline] + pub fn reserved(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) } + } + #[inline] + pub fn set_reserved(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 8u8, val as u64) + } + } + #[inline] + pub unsafe fn reserved_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 8u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_reserved_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 8u8, + val as u64, + ) + } + } + #[inline] + pub fn destid_8_31(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 24u8) as u32) } + } + #[inline] + pub fn set_destid_8_31(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(8usize, 24u8, val as u64) + } + } + #[inline] + pub unsafe fn destid_8_31_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 8usize, + 24u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_destid_8_31_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 8usize, + 24u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + reserved: u32_, + destid_8_31: u32_, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 8u8, { + let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; + reserved as u64 + }); + __bindgen_bitfield_unit.set(8usize, 24u8, { + let destid_8_31: u32 = unsafe { ::core::mem::transmute(destid_8_31) }; + destid_8_31 as u64 + }); + __bindgen_bitfield_unit + } +} +pub type arch_msi_msg_addr_hi_t = x86_msi_addr_hi; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct x86_msi_data { + pub __bindgen_anon_1: x86_msi_data__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union x86_msi_data__bindgen_ty_1 { + pub __bindgen_anon_1: x86_msi_data__bindgen_ty_1__bindgen_ty_1, + pub dmar_subhandle: u32_, +} +#[repr(C)] +#[repr(align(4))] +#[derive(Debug, Copy, Clone)] +pub struct x86_msi_data__bindgen_ty_1__bindgen_ty_1 { + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, + pub __bindgen_padding_0: u16, +} +impl x86_msi_data__bindgen_ty_1__bindgen_ty_1 { + #[inline] + pub fn vector(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) } + } + #[inline] + pub fn set_vector(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 8u8, val as u64) + } + } + #[inline] + pub unsafe fn vector_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 8u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_vector_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 8u8, + val as u64, + ) + } + } + #[inline] + pub fn delivery_mode(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 3u8) as u32) } + } + #[inline] + pub fn set_delivery_mode(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(8usize, 3u8, val as u64) + } + } + #[inline] + pub unsafe fn delivery_mode_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 8usize, + 3u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_delivery_mode_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 8usize, + 3u8, + val as u64, + ) + } + } + #[inline] + pub fn dest_mode_logical(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) } + } + #[inline] + pub fn set_dest_mode_logical(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(11usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dest_mode_logical_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 11usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_dest_mode_logical_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 11usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn reserved(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 2u8) as u32) } + } + #[inline] + pub fn set_reserved(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(12usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn reserved_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 12usize, + 2u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_reserved_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 12usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn active_low(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u32) } + } + #[inline] + pub fn set_active_low(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(14usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn active_low_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 14usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_active_low_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 14usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn is_level(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u32) } + } + #[inline] + pub fn set_is_level(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(15usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn is_level_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 15usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_is_level_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 15usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + vector: u32_, + delivery_mode: u32_, + dest_mode_logical: u32_, + reserved: u32_, + active_low: u32_, + is_level: u32_, + ) -> __BindgenBitfieldUnit<[u8; 2usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 8u8, { + let vector: u32 = unsafe { ::core::mem::transmute(vector) }; + vector as u64 + }); + __bindgen_bitfield_unit.set(8usize, 3u8, { + let delivery_mode: u32 = unsafe { ::core::mem::transmute(delivery_mode) }; + delivery_mode as u64 + }); + __bindgen_bitfield_unit.set(11usize, 1u8, { + let dest_mode_logical: u32 = unsafe { ::core::mem::transmute(dest_mode_logical) }; + dest_mode_logical as u64 + }); + __bindgen_bitfield_unit.set(12usize, 2u8, { + let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; + reserved as u64 + }); + __bindgen_bitfield_unit.set(14usize, 1u8, { + let active_low: u32 = unsafe { ::core::mem::transmute(active_low) }; + active_low as u64 + }); + __bindgen_bitfield_unit.set(15usize, 1u8, { + let is_level: u32 = unsafe { ::core::mem::transmute(is_level) }; + is_level as u64 + }); + __bindgen_bitfield_unit + } +} +pub type arch_msi_msg_data_t = x86_msi_data; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct msi_msg { + pub __bindgen_anon_1: msi_msg__bindgen_ty_1, + pub __bindgen_anon_2: msi_msg__bindgen_ty_2, + pub __bindgen_anon_3: msi_msg__bindgen_ty_3, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union msi_msg__bindgen_ty_1 { + pub address_lo: u32_, + pub arch_addr_lo: arch_msi_msg_addr_lo_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union msi_msg__bindgen_ty_2 { + pub address_hi: u32_, + pub arch_addr_hi: arch_msi_msg_addr_hi_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union msi_msg__bindgen_ty_3 { + pub data: u32_, + pub arch_data: arch_msi_msg_data_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct class { + pub name: *const ::aya_ebpf::cty::c_char, + pub class_groups: *const *const attribute_group, + pub dev_groups: *const *const attribute_group, + pub dev_uevent: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const device, + arg2: *mut kobj_uevent_env, + ) -> ::aya_ebpf::cty::c_int, + >, + pub devnode: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const device, + arg2: *mut umode_t, + ) -> *mut ::aya_ebpf::cty::c_char, + >, + pub class_release: ::core::option::Option, + pub dev_release: ::core::option::Option, + pub shutdown_pre: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub ns_type: *const kobj_ns_type_operations, + pub namespace: + ::core::option::Option *const ns_common>, + pub get_ownership: ::core::option::Option< + unsafe extern "C" fn(arg1: *const device, arg2: *mut kuid_t, arg3: *mut kgid_t), + >, + pub pm: *const dev_pm_ops, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct klist { + pub k_lock: spinlock_t, + pub k_list: list_head, + pub get: ::core::option::Option, + pub put: ::core::option::Option, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct anon_vma { + pub root: *mut anon_vma, + pub rwsem: rw_semaphore, + pub refcount: atomic_t, + pub num_children: ::aya_ebpf::cty::c_ulong, + pub num_active_vmas: ::aya_ebpf::cty::c_ulong, + pub parent: *mut anon_vma, + pub rb_root: rb_root_cached, +} +#[repr(C)] +#[derive(Debug)] +pub struct anon_vma_name { + pub kref: kref, + pub name: __IncompleteArrayField<::aya_ebpf::cty::c_char>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct path { + pub mnt: *mut vfsmount, + pub dentry: *mut dentry, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct arch_hw_breakpoint { + pub address: ::aya_ebpf::cty::c_ulong, + pub mask: ::aya_ebpf::cty::c_ulong, + pub len: u8_, + pub type_: u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cpumask { + pub bits: [::aya_ebpf::cty::c_ulong; 128usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct arch_tlbflush_unmap_batch { + pub cpumask: cpumask, + pub unmapped_pages: bool_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct arch_uprobe { + pub __bindgen_anon_1: arch_uprobe__bindgen_ty_1, + pub ops: *const uprobe_xol_ops, + pub __bindgen_anon_2: arch_uprobe__bindgen_ty_2, + pub flags: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union arch_uprobe__bindgen_ty_1 { + pub insn: [u8_; 16usize], + pub ixol: [u8_; 16usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union arch_uprobe__bindgen_ty_2 { + pub branch: arch_uprobe__bindgen_ty_2__bindgen_ty_1, + pub defparam: arch_uprobe__bindgen_ty_2__bindgen_ty_2, + pub push: arch_uprobe__bindgen_ty_2__bindgen_ty_3, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct arch_uprobe__bindgen_ty_2__bindgen_ty_1 { + pub offs: s32, + pub ilen: u8_, + pub opc1: u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct arch_uprobe__bindgen_ty_2__bindgen_ty_2 { + pub fixups: u8_, + pub ilen: u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct arch_uprobe__bindgen_ty_2__bindgen_ty_3 { + pub reg_offset: u8_, + pub ilen: u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct arch_uprobe_task { + pub saved_scratch_register: ::aya_ebpf::cty::c_ulong, + pub saved_trap_nr: ::aya_ebpf::cty::c_uint, + pub saved_tf: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct arg_track { + pub __bindgen_anon_1: arg_track__bindgen_ty_1, + pub frame: s8, + pub off_cnt: s8, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union arg_track__bindgen_ty_1 { + pub off: [s16; 4usize], + pub mask: u16_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sockaddr { + pub sa_family: sa_family_t, + pub sa_data: [::aya_ebpf::cty::c_char; 14usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct array_buffer { + pub tr: *mut trace_array, + pub buffer: *mut trace_buffer, + pub data: *mut trace_array_cpu, + pub time_start: u64_, + pub cpu: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct assoc_array_ptr { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct assoc_array { + pub root: *mut assoc_array_ptr, + pub nr_leaves_on_tree: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_poll { + pub file: *mut file, + pub head: *mut wait_queue_head, + pub events: __poll_t, + pub retries: ::aya_ebpf::cty::c_int, + pub wait: wait_queue_entry, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct async_poll { + pub poll: io_poll, + pub double_poll: *mut io_poll, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct attribute_group { + pub name: *const ::aya_ebpf::cty::c_char, + pub __bindgen_anon_1: attribute_group__bindgen_ty_1, + pub is_bin_visible: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut kobject, + arg2: *const bin_attribute, + arg3: ::aya_ebpf::cty::c_int, + ) -> umode_t, + >, + pub bin_size: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut kobject, + arg2: *const bin_attribute, + arg3: ::aya_ebpf::cty::c_int, + ) -> usize, + >, + pub __bindgen_anon_2: attribute_group__bindgen_ty_2, + pub bin_attrs: *const *const bin_attribute, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union attribute_group__bindgen_ty_1 { + pub is_visible: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut kobject, + arg2: *mut attribute, + arg3: ::aya_ebpf::cty::c_int, + ) -> umode_t, + >, + pub is_visible_const: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut kobject, + arg2: *const attribute, + arg3: ::aya_ebpf::cty::c_int, + ) -> umode_t, + >, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union attribute_group__bindgen_ty_2 { + pub attrs: *mut *mut attribute, + pub attrs_const: *const *const attribute, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct audit_aux_data { + pub next: *mut audit_aux_data, + pub type_: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct audit_cap_data { + pub permitted: kernel_cap_t, + pub inheritable: kernel_cap_t, + pub __bindgen_anon_1: audit_cap_data__bindgen_ty_1, + pub ambient: kernel_cap_t, + pub rootid: kuid_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union audit_cap_data__bindgen_ty_1 { + pub fE: ::aya_ebpf::cty::c_uint, + pub effective: kernel_cap_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct lsm_prop_selinux { + pub secid: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct lsm_prop_smack { + pub skp: *mut smack_known, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct lsm_prop_apparmor { + pub label: *mut aa_label, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct lsm_prop_bpf { + pub secid: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct lsm_prop { + pub selinux: lsm_prop_selinux, + pub smack: lsm_prop_smack, + pub apparmor: lsm_prop_apparmor, + pub bpf: lsm_prop_bpf, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct audit_stamp { + pub ctime: timespec64, + pub serial: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct audit_node { + pub list: list_head, + pub owner: *mut audit_tree, + pub index: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug)] +pub struct audit_chunk { + pub hash: list_head, + pub key: ::aya_ebpf::cty::c_ulong, + pub mark: *mut fsnotify_mark, + pub trees: list_head, + pub count: ::aya_ebpf::cty::c_int, + pub refs: atomic_long_t, + pub head: callback_head, + pub owners: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct audit_names { + pub list: list_head, + pub name: *mut filename, + pub name_len: ::aya_ebpf::cty::c_int, + pub hidden: bool_, + pub ino: u64_, + pub dev: dev_t, + pub mode: umode_t, + pub uid: kuid_t, + pub gid: kgid_t, + pub rdev: dev_t, + pub oprop: lsm_prop, + pub fcap: audit_cap_data, + pub fcap_ver: ::aya_ebpf::cty::c_uint, + pub type_: ::aya_ebpf::cty::c_uchar, + pub should_free: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mq_attr { + pub mq_flags: __kernel_long_t, + pub mq_maxmsg: __kernel_long_t, + pub mq_msgsize: __kernel_long_t, + pub mq_curmsgs: __kernel_long_t, + pub __reserved: [__kernel_long_t; 4usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct open_how { + pub flags: __u64, + pub mode: __u64, + pub resolve: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct audit_proctitle { + pub len: ::aya_ebpf::cty::c_int, + pub value: *mut ::aya_ebpf::cty::c_char, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct audit_context { + pub dummy: ::aya_ebpf::cty::c_int, + pub context: audit_context__bindgen_ty_1::Type, + pub state: audit_state::Type, + pub current_state: audit_state::Type, + pub stamp: audit_stamp, + pub major: ::aya_ebpf::cty::c_int, + pub uring_op: ::aya_ebpf::cty::c_int, + pub argv: [::aya_ebpf::cty::c_ulong; 4usize], + pub return_code: ::aya_ebpf::cty::c_long, + pub prio: u64_, + pub return_valid: ::aya_ebpf::cty::c_int, + pub preallocated_names: [audit_names; 5usize], + pub name_count: ::aya_ebpf::cty::c_int, + pub names_list: list_head, + pub filterkey: *mut ::aya_ebpf::cty::c_char, + pub pwd: path, + pub aux: *mut audit_aux_data, + pub aux_pids: *mut audit_aux_data, + pub sockaddr: *mut __kernel_sockaddr_storage, + pub sockaddr_len: usize, + pub ppid: pid_t, + pub uid: kuid_t, + pub euid: kuid_t, + pub suid: kuid_t, + pub fsuid: kuid_t, + pub gid: kgid_t, + pub egid: kgid_t, + pub sgid: kgid_t, + pub fsgid: kgid_t, + pub personality: ::aya_ebpf::cty::c_ulong, + pub arch: ::aya_ebpf::cty::c_int, + pub target_pid: pid_t, + pub target_auid: kuid_t, + pub target_uid: kuid_t, + pub target_sessionid: ::aya_ebpf::cty::c_uint, + pub target_ref: lsm_prop, + pub target_comm: [::aya_ebpf::cty::c_char; 16usize], + pub trees: *mut audit_tree_refs, + pub first_trees: *mut audit_tree_refs, + pub killed_trees: list_head, + pub tree_count: ::aya_ebpf::cty::c_int, + pub type_: ::aya_ebpf::cty::c_int, + pub __bindgen_anon_1: audit_context__bindgen_ty_2, + pub fds: [::aya_ebpf::cty::c_int; 2usize], + pub proctitle: audit_proctitle, +} +pub mod audit_context__bindgen_ty_1 { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const AUDIT_CTX_UNUSED: Type = 0; + pub const AUDIT_CTX_SYSCALL: Type = 1; + pub const AUDIT_CTX_URING: Type = 2; +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union audit_context__bindgen_ty_2 { + pub socketcall: audit_context__bindgen_ty_2__bindgen_ty_1, + pub ipc: audit_context__bindgen_ty_2__bindgen_ty_2, + pub mq_getsetattr: audit_context__bindgen_ty_2__bindgen_ty_3, + pub mq_notify: audit_context__bindgen_ty_2__bindgen_ty_4, + pub mq_sendrecv: audit_context__bindgen_ty_2__bindgen_ty_5, + pub mq_open: audit_context__bindgen_ty_2__bindgen_ty_6, + pub capset: audit_context__bindgen_ty_2__bindgen_ty_7, + pub mmap: audit_context__bindgen_ty_2__bindgen_ty_8, + pub openat2: open_how, + pub execve: audit_context__bindgen_ty_2__bindgen_ty_9, + pub module: audit_context__bindgen_ty_2__bindgen_ty_10, + pub time: audit_context__bindgen_ty_2__bindgen_ty_11, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct audit_context__bindgen_ty_2__bindgen_ty_1 { + pub nargs: ::aya_ebpf::cty::c_int, + pub args: [::aya_ebpf::cty::c_long; 6usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct audit_context__bindgen_ty_2__bindgen_ty_2 { + pub uid: kuid_t, + pub gid: kgid_t, + pub mode: umode_t, + pub oprop: lsm_prop, + pub has_perm: ::aya_ebpf::cty::c_int, + pub perm_uid: uid_t, + pub perm_gid: gid_t, + pub perm_mode: umode_t, + pub qbytes: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct audit_context__bindgen_ty_2__bindgen_ty_3 { + pub mqdes: mqd_t, + pub mqstat: mq_attr, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct audit_context__bindgen_ty_2__bindgen_ty_4 { + pub mqdes: mqd_t, + pub sigev_signo: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct audit_context__bindgen_ty_2__bindgen_ty_5 { + pub mqdes: mqd_t, + pub msg_len: usize, + pub msg_prio: ::aya_ebpf::cty::c_uint, + pub abs_timeout: timespec64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct audit_context__bindgen_ty_2__bindgen_ty_6 { + pub oflag: ::aya_ebpf::cty::c_int, + pub mode: umode_t, + pub attr: mq_attr, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct audit_context__bindgen_ty_2__bindgen_ty_7 { + pub pid: pid_t, + pub cap: audit_cap_data, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct audit_context__bindgen_ty_2__bindgen_ty_8 { + pub fd: ::aya_ebpf::cty::c_int, + pub flags: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct audit_context__bindgen_ty_2__bindgen_ty_9 { + pub argc: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct audit_context__bindgen_ty_2__bindgen_ty_10 { + pub name: *const ::aya_ebpf::cty::c_char, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct audit_context__bindgen_ty_2__bindgen_ty_11 { + pub ntp_data: audit_ntp_data, + pub tk_injoffset: timespec64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fsnotify_mark { + pub mask: __u32, + pub refcnt: refcount_t, + pub group: *mut fsnotify_group, + pub g_list: list_head, + pub lock: spinlock_t, + pub obj_list: hlist_node, + pub connector: *mut fsnotify_mark_connector, + pub ignore_mask: __u32, + pub flags: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug)] +pub struct audit_tree { + pub count: refcount_t, + pub goner: ::aya_ebpf::cty::c_int, + pub root: *mut audit_chunk, + pub chunks: list_head, + pub rules: list_head, + pub list: list_head, + pub same_root: list_head, + pub head: callback_head, + pub pathname: __IncompleteArrayField<::aya_ebpf::cty::c_char>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct audit_tree_refs { + pub next: *mut audit_tree_refs, + pub c: [*mut audit_chunk; 31usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct auth_cred { + pub cred: *const cred, + pub principal: *const ::aya_ebpf::cty::c_char, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct auth_domain { + pub ref_: kref, + pub hash: hlist_node, + pub name: *mut ::aya_ebpf::cty::c_char, + pub flavour: *mut auth_ops, + pub callback_head: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct auth_ops { + pub name: *mut ::aya_ebpf::cty::c_char, + pub owner: *mut module, + pub flavour: ::aya_ebpf::cty::c_int, + pub accept: + ::core::option::Option svc_auth_status::Type>, + pub release: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub domain_release: ::core::option::Option, + pub set_client: + ::core::option::Option svc_auth_status::Type>, + pub pseudoflavor: + ::core::option::Option rpc_authflavor_t>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct auto_mode_param { + pub qp_type: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct autogroup { + pub kref: kref, + pub tg: *mut task_group, + pub lock: rw_semaphore, + pub id: ::aya_ebpf::cty::c_ulong, + pub nice: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct percpu_counter { + pub lock: raw_spinlock_t, + pub count: s64, + pub list: list_head, + pub counters: *mut s32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fprop_local_percpu { + pub events: percpu_counter, + pub period: ::aya_ebpf::cty::c_uint, + pub lock: raw_spinlock_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct percpu_ref { + pub percpu_count_ptr: ::aya_ebpf::cty::c_ulong, + pub data: *mut percpu_ref_data, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bdi_writeback { + pub bdi: *mut backing_dev_info, + pub state: ::aya_ebpf::cty::c_ulong, + pub last_old_flush: ::aya_ebpf::cty::c_ulong, + pub b_dirty: list_head, + pub b_io: list_head, + pub b_more_io: list_head, + pub b_dirty_time: list_head, + pub list_lock: spinlock_t, + pub writeback_inodes: atomic_t, + pub stat: [percpu_counter; 4usize], + pub bw_time_stamp: ::aya_ebpf::cty::c_ulong, + pub dirtied_stamp: ::aya_ebpf::cty::c_ulong, + pub written_stamp: ::aya_ebpf::cty::c_ulong, + pub write_bandwidth: ::aya_ebpf::cty::c_ulong, + pub avg_write_bandwidth: ::aya_ebpf::cty::c_ulong, + pub dirty_ratelimit: ::aya_ebpf::cty::c_ulong, + pub balanced_dirty_ratelimit: ::aya_ebpf::cty::c_ulong, + pub completions: fprop_local_percpu, + pub dirty_exceeded: ::aya_ebpf::cty::c_int, + pub start_all_reason: wb_reason::Type, + pub work_lock: spinlock_t, + pub work_list: list_head, + pub dwork: delayed_work, + pub bw_dwork: delayed_work, + pub bdi_node: list_head, + pub refcnt: percpu_ref, + pub memcg_completions: fprop_local_percpu, + pub memcg_css: *mut cgroup_subsys_state, + pub blkcg_css: *mut cgroup_subsys_state, + pub memcg_node: list_head, + pub blkcg_node: list_head, + pub b_attached: list_head, + pub offline_node: list_head, + pub switch_work: work_struct, + pub switch_wbs_ctxs: llist_head, + pub __bindgen_anon_1: bdi_writeback__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bdi_writeback__bindgen_ty_1 { + pub release_work: work_struct, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct backing_dev_info { + pub id: u64_, + pub rb_node: rb_node, + pub bdi_list: list_head, + pub ra_pages: ::aya_ebpf::cty::c_ulong, + pub io_pages: ::aya_ebpf::cty::c_ulong, + pub refcnt: kref, + pub capabilities: ::aya_ebpf::cty::c_uint, + pub min_ratio: ::aya_ebpf::cty::c_uint, + pub max_ratio: ::aya_ebpf::cty::c_uint, + pub max_prop_frac: ::aya_ebpf::cty::c_uint, + pub tot_write_bandwidth: atomic_long_t, + pub last_bdp_sleep: ::aya_ebpf::cty::c_ulong, + pub wb: bdi_writeback, + pub wb_list: list_head, + pub cgwb_tree: xarray, + pub cgwb_release_mutex: mutex, + pub wb_switch_rwsem: rw_semaphore, + pub wb_waitq: wait_queue_head_t, + pub dev: *mut device, + pub dev_name: [::aya_ebpf::cty::c_char; 64usize], + pub owner: *mut device, + pub debug_dir: *mut dentry, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_ra_state { + pub start: ::aya_ebpf::cty::c_ulong, + pub size: ::aya_ebpf::cty::c_uint, + pub async_size: ::aya_ebpf::cty::c_uint, + pub ra_pages: ::aya_ebpf::cty::c_uint, + pub order: ::aya_ebpf::cty::c_ushort, + pub mmap_miss: ::aya_ebpf::cty::c_ushort, + pub prev_pos: loff_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct file { + pub f_lock: spinlock_t, + pub f_mode: fmode_t, + pub f_op: *const file_operations, + pub f_mapping: *mut address_space, + pub private_data: *mut ::aya_ebpf::cty::c_void, + pub f_inode: *mut inode, + pub f_flags: ::aya_ebpf::cty::c_uint, + pub f_iocb_flags: ::aya_ebpf::cty::c_uint, + pub f_cred: *const cred, + pub f_owner: *mut fown_struct, + pub __bindgen_anon_1: file__bindgen_ty_1, + pub __bindgen_anon_2: file__bindgen_ty_2, + pub f_pos: loff_t, + pub f_security: *mut ::aya_ebpf::cty::c_void, + pub f_wb_err: errseq_t, + pub f_sb_err: errseq_t, + pub f_ep: *mut hlist_head, + pub __bindgen_anon_3: file__bindgen_ty_3, + pub f_ref: file_ref_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union file__bindgen_ty_1 { + pub f_path: path, + pub __f_path: path, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union file__bindgen_ty_2 { + pub f_pos_lock: mutex, + pub f_pipe: u64_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union file__bindgen_ty_3 { + pub f_task_work: callback_head, + pub f_llist: llist_node, + pub f_ra: file_ra_state, + pub f_freeptr: freeptr_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct backtrack_state { + pub env: *mut bpf_verifier_env, + pub frame: u32_, + pub reg_masks: [u32_; 8usize], + pub stack_masks: [u64_; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct seqcount_spinlock { + pub seqcount: seqcount_t, +} +pub type seqcount_spinlock_t = seqcount_spinlock; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct seqlock { + pub seqcount: seqcount_spinlock_t, + pub lock: spinlock_t, +} +pub type seqlock_t = seqlock; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct badblocks { + pub dev: *mut device, + pub count: ::aya_ebpf::cty::c_int, + pub unacked_exist: ::aya_ebpf::cty::c_int, + pub shift: ::aya_ebpf::cty::c_int, + pub page: *mut u64_, + pub changed: ::aya_ebpf::cty::c_int, + pub lock: seqlock_t, + pub sector: sector_t, + pub size: sector_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct balance_callback { + pub next: *mut balance_callback, + pub func: ::core::option::Option, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct local_lock {} +pub type local_lock_t = local_lock; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct block_device { + pub bd_start_sect: sector_t, + pub bd_nr_sectors: sector_t, + pub bd_disk: *mut gendisk, + pub bd_queue: *mut request_queue, + pub bd_stats: *mut disk_stats, + pub bd_stamp: ::aya_ebpf::cty::c_ulong, + pub __bd_flags: atomic_t, + pub bd_dev: dev_t, + pub bd_mapping: *mut address_space, + pub bd_openers: atomic_t, + pub bd_size_lock: spinlock_t, + pub bd_claiming: *mut ::aya_ebpf::cty::c_void, + pub bd_holder: *mut ::aya_ebpf::cty::c_void, + pub bd_holder_ops: *const blk_holder_ops, + pub bd_holder_lock: mutex, + pub bd_holders: ::aya_ebpf::cty::c_int, + pub bd_holder_dir: *mut kobject, + pub bd_fsfreeze_count: atomic_t, + pub bd_fsfreeze_mutex: mutex, + pub bd_meta_info: *mut partition_meta_info, + pub bd_writers: ::aya_ebpf::cty::c_int, + pub bd_security: *mut ::aya_ebpf::cty::c_void, + pub bd_device: device, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct binfmt_misc { + pub entries: list_head, + pub entries_lock: rwlock_t, + pub enabled: bool_, +} +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct bvec_iter { + pub bi_sector: sector_t, + pub bi_size: ::aya_ebpf::cty::c_uint, + pub bi_idx: ::aya_ebpf::cty::c_uint, + pub bi_bvec_done: ::aya_ebpf::cty::c_uint, +} +pub type bio_end_io_t = ::core::option::Option; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bio { + pub bi_next: *mut bio, + pub bi_bdev: *mut block_device, + pub bi_opf: blk_opf_t, + pub bi_flags: ::aya_ebpf::cty::c_ushort, + pub bi_ioprio: ::aya_ebpf::cty::c_ushort, + pub bi_write_hint: rw_hint::Type, + pub bi_write_stream: u8_, + pub bi_status: blk_status_t, + pub bi_bvec_gap_bit: u8_, + pub __bi_remaining: atomic_t, + pub bi_io_vec: *mut bio_vec, + pub bi_iter: bvec_iter, + pub __bindgen_anon_1: bio__bindgen_ty_1, + pub bi_end_io: bio_end_io_t, + pub bi_private: *mut ::aya_ebpf::cty::c_void, + pub bi_blkg: *mut blkcg_gq, + pub issue_time_ns: u64_, + pub bi_iocost_cost: u64_, + pub bi_crypt_context: *mut bio_crypt_ctx, + pub bi_integrity: *mut bio_integrity_payload, + pub bi_vcnt: ::aya_ebpf::cty::c_ushort, + pub bi_max_vecs: ::aya_ebpf::cty::c_ushort, + pub __bi_cnt: atomic_t, + pub bi_pool: *mut bio_set, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bio__bindgen_ty_1 { + pub bi_cookie: blk_qc_t, + pub __bi_nr_segments: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bio_alloc_cache { + pub free_list: *mut bio, + pub free_list_irq: *mut bio, + pub nr: ::aya_ebpf::cty::c_uint, + pub nr_irq: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bio_crypt_ctx { + pub bc_key: *const blk_crypto_key, + pub bc_dun: [u64_; 4usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bio_integrity_payload { + pub bip_iter: bvec_iter, + pub bip_vcnt: ::aya_ebpf::cty::c_ushort, + pub bip_max_vcnt: ::aya_ebpf::cty::c_ushort, + pub bip_flags: ::aya_ebpf::cty::c_ushort, + pub app_tag: u16_, + pub bip_vec: *mut bio_vec, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bio_vec { + pub bv_page: *mut page, + pub bv_len: ::aya_ebpf::cty::c_uint, + pub bv_offset: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bio_list { + pub head: *mut bio, + pub tail: *mut bio, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iovec { + pub iov_base: *mut ::aya_ebpf::cty::c_void, + pub iov_len: __kernel_size_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct iov_iter { + pub iter_type: u8_, + pub nofault: bool_, + pub data_source: bool_, + pub iov_offset: usize, + pub __bindgen_anon_1: iov_iter__bindgen_ty_1, + pub __bindgen_anon_2: iov_iter__bindgen_ty_2, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union iov_iter__bindgen_ty_1 { + pub __ubuf_iovec: iovec, + pub __bindgen_anon_1: iov_iter__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct iov_iter__bindgen_ty_1__bindgen_ty_1 { + pub __bindgen_anon_1: iov_iter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, + pub count: usize, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union iov_iter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { + pub __iov: *const iovec, + pub kvec: *const kvec, + pub bvec: *const bio_vec, + pub folioq: *const folio_queue, + pub xarray: *mut xarray, + pub ubuf: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union iov_iter__bindgen_ty_2 { + pub nr_segs: ::aya_ebpf::cty::c_ulong, + pub folioq_slot: u8_, + pub xarray_start: loff_t, +} +pub type mempool_alloc_t = ::core::option::Option< + unsafe extern "C" fn( + arg1: gfp_t, + arg2: *mut ::aya_ebpf::cty::c_void, + ) -> *mut ::aya_ebpf::cty::c_void, +>; +pub type mempool_free_t = ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ::aya_ebpf::cty::c_void, arg2: *mut ::aya_ebpf::cty::c_void), +>; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct mempool { + pub lock: spinlock_t, + pub min_nr: ::aya_ebpf::cty::c_int, + pub curr_nr: ::aya_ebpf::cty::c_int, + pub elements: *mut *mut ::aya_ebpf::cty::c_void, + pub pool_data: *mut ::aya_ebpf::cty::c_void, + pub alloc: mempool_alloc_t, + pub free: mempool_free_t, + pub wait: wait_queue_head_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bio_set { + pub bio_slab: *mut kmem_cache, + pub front_pad: ::aya_ebpf::cty::c_uint, + pub cache: *mut bio_alloc_cache, + pub bio_pool: mempool_t, + pub bvec_pool: mempool_t, + pub back_pad: ::aya_ebpf::cty::c_uint, + pub rescue_lock: spinlock_t, + pub rescue_list: bio_list, + pub rescue_work: work_struct, + pub rescue_workqueue: *mut workqueue_struct, + pub cpuhp_dead: hlist_node, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct blk_crypto_config { + pub crypto_mode: blk_crypto_mode_num::Type, + pub data_unit_size: ::aya_ebpf::cty::c_uint, + pub dun_bytes: ::aya_ebpf::cty::c_uint, + pub key_type: blk_crypto_key_type::Type, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct blk_crypto_key { + pub crypto_cfg: blk_crypto_config, + pub data_unit_size_bits: ::aya_ebpf::cty::c_uint, + pub size: ::aya_ebpf::cty::c_uint, + pub bytes: [u8_; 128usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct blk_crypto_keyslot { + pub slot_refs: atomic_t, + pub idle_slot_node: list_head, + pub hash_node: hlist_node, + pub key: *const blk_crypto_key, + pub profile: *mut blk_crypto_profile, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct blk_crypto_ll_ops { + pub keyslot_program: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut blk_crypto_profile, + arg2: *const blk_crypto_key, + arg3: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub keyslot_evict: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut blk_crypto_profile, + arg2: *const blk_crypto_key, + arg3: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub derive_sw_secret: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut blk_crypto_profile, + arg2: *const u8_, + arg3: usize, + arg4: *mut u8_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub import_key: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut blk_crypto_profile, + arg2: *const u8_, + arg3: usize, + arg4: *mut u8_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub generate_key: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut blk_crypto_profile, + arg2: *mut u8_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub prepare_key: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut blk_crypto_profile, + arg2: *const u8_, + arg3: usize, + arg4: *mut u8_, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct blk_crypto_profile { + pub ll_ops: blk_crypto_ll_ops, + pub max_dun_bytes_supported: ::aya_ebpf::cty::c_uint, + pub key_types_supported: ::aya_ebpf::cty::c_uint, + pub modes_supported: [::aya_ebpf::cty::c_uint; 5usize], + pub dev: *mut device, + pub num_slots: ::aya_ebpf::cty::c_uint, + pub lock: rw_semaphore, + pub lockdep_key: lock_class_key, + pub idle_slots_wait_queue: wait_queue_head_t, + pub idle_slots: list_head, + pub idle_slots_lock: spinlock_t, + pub slot_hashtable: *mut hlist_head, + pub log_slot_ht_size: ::aya_ebpf::cty::c_uint, + pub slots: *mut blk_crypto_keyslot, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct blk_flush_queue { + pub mq_flush_lock: spinlock_t, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub rq_status: blk_status_t, + pub flush_pending_since: ::aya_ebpf::cty::c_ulong, + pub flush_queue: [list_head; 2usize], + pub flush_data_in_flight: ::aya_ebpf::cty::c_ulong, + pub flush_rq: *mut request, + pub callback_head: callback_head, +} +impl blk_flush_queue { + #[inline] + pub fn flush_pending_idx(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_flush_pending_idx(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn flush_pending_idx_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_flush_pending_idx_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn flush_running_idx(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_flush_running_idx(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn flush_running_idx_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_flush_running_idx_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + flush_pending_idx: ::aya_ebpf::cty::c_uint, + flush_running_idx: ::aya_ebpf::cty::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let flush_pending_idx: u32 = unsafe { ::core::mem::transmute(flush_pending_idx) }; + flush_pending_idx as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let flush_running_idx: u32 = unsafe { ::core::mem::transmute(flush_running_idx) }; + flush_running_idx as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct blk_holder_ops { + pub mark_dead: + ::core::option::Option, + pub sync: ::core::option::Option, + pub freeze: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut block_device) -> ::aya_ebpf::cty::c_int, + >, + pub thaw: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut block_device) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct blk_independent_access_range { + pub kobj: kobject, + pub sector: sector_t, + pub nr_sectors: sector_t, +} +#[repr(C)] +#[derive(Debug)] +pub struct blk_independent_access_ranges { + pub kobj: kobject, + pub sysfs_registered: bool_, + pub nr_ia_ranges: ::aya_ebpf::cty::c_uint, + pub ia_range: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct blk_integrity { + pub flags: ::aya_ebpf::cty::c_uchar, + pub csum_type: blk_integrity_checksum::Type, + pub metadata_size: ::aya_ebpf::cty::c_uchar, + pub pi_offset: ::aya_ebpf::cty::c_uchar, + pub interval_exp: ::aya_ebpf::cty::c_uchar, + pub tag_size: ::aya_ebpf::cty::c_uchar, + pub pi_tuple_size: ::aya_ebpf::cty::c_uchar, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rq_qos { + pub ops: *const rq_qos_ops, + pub disk: *mut gendisk, + pub id: rq_qos_id::Type, + pub next: *mut rq_qos, + pub debugfs_dir: *mut dentry, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct blk_mq_alloc_data { + pub q: *mut request_queue, + pub flags: blk_mq_req_flags_t, + pub shallow_depth: ::aya_ebpf::cty::c_uint, + pub cmd_flags: blk_opf_t, + pub rq_flags: req_flags_t, + pub nr_tags: ::aya_ebpf::cty::c_uint, + pub cached_rqs: *mut rq_list, + pub ctx: *mut blk_mq_ctx, + pub hctx: *mut blk_mq_hw_ctx, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct blk_mq_ctx { + pub __bindgen_anon_1: blk_mq_ctx__bindgen_ty_1, + pub cpu: ::aya_ebpf::cty::c_uint, + pub index_hw: [::aya_ebpf::cty::c_ushort; 3usize], + pub hctxs: [*mut blk_mq_hw_ctx; 3usize], + pub queue: *mut request_queue, + pub ctxs: *mut blk_mq_ctxs, + pub kobj: kobject, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct blk_mq_ctx__bindgen_ty_1 { + pub lock: spinlock_t, + pub rq_lists: [list_head; 3usize], + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, +} +impl blk_mq_ctx__bindgen_ty_1 { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +impl blk_mq_ctx { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct blk_mq_ctxs { + pub kobj: kobject, + pub queue_ctx: *mut blk_mq_ctx, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct blk_mq_debugfs_attr { + pub name: *const ::aya_ebpf::cty::c_char, + pub mode: umode_t, + pub show: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ::aya_ebpf::cty::c_void, + arg2: *mut seq_file, + ) -> ::aya_ebpf::cty::c_int, + >, + pub write: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ::aya_ebpf::cty::c_void, + arg2: *const ::aya_ebpf::cty::c_char, + arg3: usize, + arg4: *mut loff_t, + ) -> isize, + >, + pub seq_ops: *const seq_operations, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sbitmap { + pub depth: ::aya_ebpf::cty::c_uint, + pub shift: ::aya_ebpf::cty::c_uint, + pub map_nr: ::aya_ebpf::cty::c_uint, + pub round_robin: bool_, + pub map: *mut sbitmap_word, + pub alloc_hint: *mut ::aya_ebpf::cty::c_uint, +} +pub type wait_queue_entry_t = wait_queue_entry; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct blk_mq_hw_ctx { + pub __bindgen_anon_1: blk_mq_hw_ctx__bindgen_ty_1, + pub run_work: delayed_work, + pub cpumask: cpumask_var_t, + pub next_cpu: ::aya_ebpf::cty::c_int, + pub next_cpu_batch: ::aya_ebpf::cty::c_int, + pub flags: ::aya_ebpf::cty::c_ulong, + pub sched_data: *mut ::aya_ebpf::cty::c_void, + pub queue: *mut request_queue, + pub fq: *mut blk_flush_queue, + pub driver_data: *mut ::aya_ebpf::cty::c_void, + pub ctx_map: sbitmap, + pub dispatch_from: *mut blk_mq_ctx, + pub dispatch_busy: ::aya_ebpf::cty::c_uint, + pub type_: ::aya_ebpf::cty::c_ushort, + pub nr_ctx: ::aya_ebpf::cty::c_ushort, + pub ctxs: *mut *mut blk_mq_ctx, + pub dispatch_wait_lock: spinlock_t, + pub dispatch_wait: wait_queue_entry_t, + pub wait_index: atomic_t, + pub tags: *mut blk_mq_tags, + pub sched_tags: *mut blk_mq_tags, + pub numa_node: ::aya_ebpf::cty::c_uint, + pub queue_num: ::aya_ebpf::cty::c_uint, + pub nr_active: atomic_t, + pub cpuhp_online: hlist_node, + pub cpuhp_dead: hlist_node, + pub kobj: kobject, + pub debugfs_dir: *mut dentry, + pub sched_debugfs_dir: *mut dentry, + pub hctx_list: list_head, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 32usize]>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct blk_mq_hw_ctx__bindgen_ty_1 { + pub lock: spinlock_t, + pub dispatch: list_head, + pub state: ::aya_ebpf::cty::c_ulong, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 32usize]>, +} +impl blk_mq_hw_ctx__bindgen_ty_1 { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 32usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 32usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +impl blk_mq_hw_ctx { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 32usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 32usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct blk_mq_ops { + pub queue_rq: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut blk_mq_hw_ctx, + arg2: *const blk_mq_queue_data, + ) -> blk_status_t, + >, + pub commit_rqs: ::core::option::Option, + pub queue_rqs: ::core::option::Option, + pub get_budget: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut request_queue) -> ::aya_ebpf::cty::c_int, + >, + pub put_budget: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut request_queue, arg2: ::aya_ebpf::cty::c_int), + >, + pub set_rq_budget_token: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut request, arg2: ::aya_ebpf::cty::c_int), + >, + pub get_rq_budget_token: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub timeout: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut request) -> blk_eh_timer_return::Type, + >, + pub poll: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut blk_mq_hw_ctx, + arg2: *mut io_comp_batch, + ) -> ::aya_ebpf::cty::c_int, + >, + pub complete: ::core::option::Option, + pub init_hctx: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut blk_mq_hw_ctx, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub exit_hctx: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut blk_mq_hw_ctx, arg2: ::aya_ebpf::cty::c_uint), + >, + pub init_request: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut blk_mq_tag_set, + arg2: *mut request, + arg3: ::aya_ebpf::cty::c_uint, + arg4: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub exit_request: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut blk_mq_tag_set, + arg2: *mut request, + arg3: ::aya_ebpf::cty::c_uint, + ), + >, + pub cleanup_rq: ::core::option::Option, + pub busy: ::core::option::Option bool_>, + pub map_queues: ::core::option::Option, + pub show_rq: + ::core::option::Option, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct blk_mq_queue_data { + pub rq: *mut request, + pub last: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct blk_mq_queue_map { + pub mq_map: *mut ::aya_ebpf::cty::c_uint, + pub nr_queues: ::aya_ebpf::cty::c_uint, + pub queue_offset: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct lockdep_map {} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct srcu_struct { + pub srcu_ctrp: *mut srcu_ctr, + pub sda: *mut srcu_data, + pub srcu_reader_flavor: u8_, + pub dep_map: lockdep_map, + pub srcu_sup: *mut srcu_usage, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct blk_mq_tag_set { + pub ops: *const blk_mq_ops, + pub map: [blk_mq_queue_map; 3usize], + pub nr_maps: ::aya_ebpf::cty::c_uint, + pub nr_hw_queues: ::aya_ebpf::cty::c_uint, + pub queue_depth: ::aya_ebpf::cty::c_uint, + pub reserved_tags: ::aya_ebpf::cty::c_uint, + pub cmd_size: ::aya_ebpf::cty::c_uint, + pub numa_node: ::aya_ebpf::cty::c_int, + pub timeout: ::aya_ebpf::cty::c_uint, + pub flags: ::aya_ebpf::cty::c_uint, + pub driver_data: *mut ::aya_ebpf::cty::c_void, + pub tags: *mut *mut blk_mq_tags, + pub shared_tags: *mut blk_mq_tags, + pub tag_list_lock: mutex, + pub tag_list: list_head, + pub srcu: *mut srcu_struct, + pub tags_srcu: srcu_struct, + pub update_nr_hwq_lock: rw_semaphore, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sbitmap_queue { + pub sb: sbitmap, + pub wake_batch: ::aya_ebpf::cty::c_uint, + pub wake_index: atomic_t, + pub ws: *mut sbq_wait_state, + pub ws_active: atomic_t, + pub min_shallow_depth: ::aya_ebpf::cty::c_uint, + pub completion_cnt: atomic_t, + pub wakeup_cnt: atomic_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct blk_mq_tags { + pub nr_tags: ::aya_ebpf::cty::c_uint, + pub nr_reserved_tags: ::aya_ebpf::cty::c_uint, + pub active_queues: ::aya_ebpf::cty::c_uint, + pub bitmap_tags: sbitmap_queue, + pub breserved_tags: sbitmap_queue, + pub rqs: *mut *mut request, + pub static_rqs: *mut *mut request, + pub page_list: list_head, + pub lock: spinlock_t, + pub callback_head: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rq_list { + pub head: *mut request, + pub tail: *mut request, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct blk_plug { + pub mq_list: rq_list, + pub cached_rqs: rq_list, + pub cur_ktime: u64_, + pub nr_ios: ::aya_ebpf::cty::c_ushort, + pub rq_count: ::aya_ebpf::cty::c_ushort, + pub multiple_queues: bool_, + pub has_elevator: bool_, + pub cb_list: list_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct blk_queue_stats { + pub callbacks: list_head, + pub lock: spinlock_t, + pub accounting: ::aya_ebpf::cty::c_int, +} +pub type report_zones_cb = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut blk_zone, + arg2: ::aya_ebpf::cty::c_uint, + arg3: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct blk_report_zones_args { + pub cb: report_zones_cb, + pub data: *mut ::aya_ebpf::cty::c_void, + pub report_active: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct blk_trace { + pub version: ::aya_ebpf::cty::c_int, + pub trace_state: ::aya_ebpf::cty::c_int, + pub rchan: *mut rchan, + pub sequence: *mut ::aya_ebpf::cty::c_ulong, + pub msg_data: *mut ::aya_ebpf::cty::c_uchar, + pub act_mask: u64_, + pub start_lba: u64_, + pub end_lba: u64_, + pub pid: u32_, + pub dev: u32_, + pub dir: *mut dentry, + pub running_list: list_head, + pub dropped: atomic_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct blk_zone { + pub start: __u64, + pub len: __u64, + pub wp: __u64, + pub type_: __u8, + pub cond: __u8, + pub non_seq: __u8, + pub reset: __u8, + pub resv: [__u8; 4usize], + pub capacity: __u64, + pub reserved: [__u8; 24usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cgroup_subsys_state { + pub cgroup: *mut cgroup, + pub ss: *mut cgroup_subsys, + pub refcnt: percpu_ref, + pub rstat_cpu: *mut css_rstat_cpu, + pub sibling: list_head, + pub children: list_head, + pub id: ::aya_ebpf::cty::c_int, + pub flags: ::aya_ebpf::cty::c_uint, + pub serial_nr: u64_, + pub online_cnt: atomic_t, + pub destroy_work: work_struct, + pub destroy_rwork: rcu_work, + pub parent: *mut cgroup_subsys_state, + pub nr_descendants: ::aya_ebpf::cty::c_int, + pub rstat_flush_next: *mut cgroup_subsys_state, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct blkcg { + pub css: cgroup_subsys_state, + pub lock: spinlock_t, + pub online_pin: refcount_t, + pub congestion_count: atomic_t, + pub blkg_tree: xarray, + pub blkg_hint: *mut blkcg_gq, + pub blkg_list: hlist_head, + pub cpd: [*mut blkcg_policy_data; 6usize], + pub all_blkcgs_node: list_head, + pub lhead: *mut llist_head, + pub fc_app_id: [::aya_ebpf::cty::c_char; 129usize], + pub cgwb_list: list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct blkg_iostat { + pub bytes: [u64_; 3usize], + pub ios: [u64_; 3usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct blkg_iostat_set { + pub sync: u64_stats_sync, + pub blkg: *mut blkcg_gq, + pub lnode: llist_node, + pub lqueued: ::aya_ebpf::cty::c_int, + pub cur: blkg_iostat, + pub last: blkg_iostat, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct blkcg_gq { + pub q: *mut request_queue, + pub q_node: list_head, + pub blkcg_node: hlist_node, + pub blkcg: *mut blkcg, + pub parent: *mut blkcg_gq, + pub refcnt: percpu_ref, + pub online: bool_, + pub iostat_cpu: *mut blkg_iostat_set, + pub iostat: blkg_iostat_set, + pub pd: [*mut blkg_policy_data; 6usize], + pub async_bio_lock: spinlock_t, + pub async_bios: bio_list, + pub __bindgen_anon_1: blkcg_gq__bindgen_ty_1, + pub use_delay: atomic_t, + pub delay_nsec: atomic64_t, + pub delay_start: atomic64_t, + pub last_delay: u64_, + pub last_use: ::aya_ebpf::cty::c_int, + pub callback_head: callback_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union blkcg_gq__bindgen_ty_1 { + pub async_bio_work: work_struct, + pub free_work: work_struct, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct blkcg_policy_data { + pub blkcg: *mut blkcg, + pub plid: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct blkg_policy_data { + pub blkg: *mut blkcg_gq, + pub plid: ::aya_ebpf::cty::c_int, + pub online: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct block_device_operations { + pub submit_bio: ::core::option::Option, + pub poll_bio: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bio, + arg2: *mut io_comp_batch, + arg3: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub open: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut gendisk, arg2: blk_mode_t) -> ::aya_ebpf::cty::c_int, + >, + pub release: ::core::option::Option, + pub ioctl: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut block_device, + arg2: blk_mode_t, + arg3: ::aya_ebpf::cty::c_uint, + arg4: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, + pub compat_ioctl: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut block_device, + arg2: blk_mode_t, + arg3: ::aya_ebpf::cty::c_uint, + arg4: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, + pub check_events: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut gendisk, + arg2: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_uint, + >, + pub unlock_native_capacity: ::core::option::Option, + pub getgeo: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut gendisk, arg2: *mut hd_geometry) -> ::aya_ebpf::cty::c_int, + >, + pub set_read_only: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut block_device, arg2: bool_) -> ::aya_ebpf::cty::c_int, + >, + pub free_disk: ::core::option::Option, + pub swap_slot_free_notify: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut block_device, arg2: ::aya_ebpf::cty::c_ulong), + >, + pub report_zones: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut gendisk, + arg2: sector_t, + arg3: ::aya_ebpf::cty::c_uint, + arg4: *mut blk_report_zones_args, + ) -> ::aya_ebpf::cty::c_int, + >, + pub devnode: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut gendisk, + arg2: *mut umode_t, + ) -> *mut ::aya_ebpf::cty::c_char, + >, + pub get_unique_id: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut gendisk, + arg2: *mut u8_, + arg3: blk_unique_id::Type, + ) -> ::aya_ebpf::cty::c_int, + >, + pub owner: *mut module, + pub pr_ops: *const pr_ops, + pub alternative_gpt_sector: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut gendisk, arg2: *mut sector_t) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bore_bc { + pub __bindgen_anon_1: bore_bc__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bore_bc__bindgen_ty_1 { + pub __bindgen_anon_1: bore_bc__bindgen_ty_1__bindgen_ty_1, + pub value: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bore_bc__bindgen_ty_1__bindgen_ty_1 { + pub _bitfield_align_1: [u64; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, +} +impl bore_bc__bindgen_ty_1__bindgen_ty_1 { + #[inline] + pub fn timestamp(&self) -> u64_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 48u8) as u64) } + } + #[inline] + pub fn set_timestamp(&mut self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 48u8, val as u64) + } + } + #[inline] + pub unsafe fn timestamp_raw(this: *const Self) -> u64_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 48u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_timestamp_raw(this: *mut Self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 48u8, + val as u64, + ) + } + } + #[inline] + pub fn penalty(&self) -> u64_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(48usize, 16u8) as u64) } + } + #[inline] + pub fn set_penalty(&mut self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(48usize, 16u8, val as u64) + } + } + #[inline] + pub unsafe fn penalty_raw(this: *const Self) -> u64_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 48usize, + 16u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_penalty_raw(this: *mut Self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 48usize, + 16u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(timestamp: u64_, penalty: u64_) -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 48u8, { + let timestamp: u64 = unsafe { ::core::mem::transmute(timestamp) }; + timestamp as u64 + }); + __bindgen_bitfield_unit.set(48usize, 16u8, { + let penalty: u64 = unsafe { ::core::mem::transmute(penalty) }; + penalty as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bore_ctx { + pub burst_time: u64_, + pub prev_penalty: u16_, + pub curr_penalty: u16_, + pub __bindgen_anon_1: bore_ctx__bindgen_ty_1, + pub stop_update: bool_, + pub futex_waiting: bool_, + pub subtree: bore_bc, + pub group: bore_bc, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bore_ctx__bindgen_ty_1 { + pub penalty: u16_, + pub __bindgen_anon_1: bore_ctx__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bore_ctx__bindgen_ty_1__bindgen_ty_1 { + pub __: u8_, + pub score: u8_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_map { + pub sha: [u8_; 32usize], + pub excl: u32_, + pub ops: *const bpf_map_ops, + pub inner_map_meta: *mut bpf_map, + pub security: *mut ::aya_ebpf::cty::c_void, + pub map_type: bpf_map_type::Type, + pub key_size: u32_, + pub value_size: u32_, + pub max_entries: u32_, + pub map_extra: u64_, + pub map_flags: u32_, + pub id: u32_, + pub record: *mut btf_record, + pub numa_node: ::aya_ebpf::cty::c_int, + pub btf_key_type_id: u32_, + pub btf_value_type_id: u32_, + pub btf_vmlinux_value_type_id: u32_, + pub btf: *mut btf, + pub objcg: *mut obj_cgroup, + pub name: [::aya_ebpf::cty::c_char; 16usize], + pub freeze_mutex: mutex, + pub refcnt: atomic64_t, + pub usercnt: atomic64_t, + pub __bindgen_anon_1: bpf_map__bindgen_ty_1, + pub writecnt: atomic64_t, + pub owner_lock: spinlock_t, + pub owner: *mut bpf_map_owner, + pub bypass_spec_v1: bool_, + pub frozen: bool_, + pub free_after_mult_rcu_gp: bool_, + pub free_after_rcu_gp: bool_, + pub sleepable_refcnt: atomic64_t, + pub elem_count: *mut s64, + pub cookie: u64_, + pub excl_prog_sha: *mut ::aya_ebpf::cty::c_char, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_map__bindgen_ty_1 { + pub work: work_struct, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct range_tree { + pub it_root: rb_root_cached, + pub range_size_root: rb_root_cached, +} +pub type rqspinlock_t = qspinlock; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rcuwait { + pub task: *mut task_struct, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct irq_work { + pub node: __call_single_node, + pub func: ::core::option::Option, + pub irqwait: rcuwait, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_arena { + pub map: bpf_map, + pub user_vm_start: u64_, + pub user_vm_end: u64_, + pub kern_vm: *mut vm_struct, + pub rt: range_tree, + pub spinlock: rqspinlock_t, + pub vma_list: list_head, + pub lock: mutex, + pub zap_gen: u64_, + pub zap_mutex: mutex, + pub free_irq: irq_work, + pub free_work: work_struct, + pub free_spans: llist_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct btf_func_model { + pub ret_size: u8_, + pub ret_flags: u8_, + pub nr_args: u8_, + pub arg_size: [u8_; 12usize], + pub arg_flags: [u8_; 12usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_attr { + pub __bindgen_anon_1: bpf_attr__bindgen_ty_1, + pub __bindgen_anon_2: bpf_attr__bindgen_ty_2, + pub batch: bpf_attr__bindgen_ty_3, + pub __bindgen_anon_3: bpf_attr__bindgen_ty_4, + pub __bindgen_anon_4: bpf_attr__bindgen_ty_5, + pub __bindgen_anon_5: bpf_attr__bindgen_ty_6, + pub test: bpf_attr__bindgen_ty_7, + pub __bindgen_anon_6: bpf_attr__bindgen_ty_8, + pub info: bpf_attr__bindgen_ty_9, + pub query: bpf_attr__bindgen_ty_10, + pub raw_tracepoint: bpf_attr__bindgen_ty_11, + pub __bindgen_anon_7: bpf_attr__bindgen_ty_12, + pub task_fd_query: bpf_attr__bindgen_ty_13, + pub link_create: bpf_attr__bindgen_ty_14, + pub link_update: bpf_attr__bindgen_ty_15, + pub link_detach: bpf_attr__bindgen_ty_16, + pub enable_stats: bpf_attr__bindgen_ty_17, + pub iter_create: bpf_attr__bindgen_ty_18, + pub prog_bind_map: bpf_attr__bindgen_ty_19, + pub token_create: bpf_attr__bindgen_ty_20, + pub prog_stream_read: bpf_attr__bindgen_ty_21, + pub prog_assoc_struct_ops: bpf_attr__bindgen_ty_22, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_attr__bindgen_ty_1 { + pub map_type: __u32, + pub key_size: __u32, + pub value_size: __u32, + pub max_entries: __u32, + pub map_flags: __u32, + pub inner_map_fd: __u32, + pub numa_node: __u32, + pub map_name: [::aya_ebpf::cty::c_char; 16usize], + pub map_ifindex: __u32, + pub btf_fd: __u32, + pub btf_key_type_id: __u32, + pub btf_value_type_id: __u32, + pub btf_vmlinux_value_type_id: __u32, + pub map_extra: __u64, + pub value_type_btf_obj_fd: __s32, + pub map_token_fd: __s32, + pub excl_prog_hash: __u64, + pub excl_prog_hash_size: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_attr__bindgen_ty_2 { + pub map_fd: __u32, + pub key: __u64, + pub __bindgen_anon_1: bpf_attr__bindgen_ty_2__bindgen_ty_1, + pub flags: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_attr__bindgen_ty_2__bindgen_ty_1 { + pub value: __u64, + pub next_key: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_attr__bindgen_ty_3 { + pub in_batch: __u64, + pub out_batch: __u64, + pub keys: __u64, + pub values: __u64, + pub count: __u32, + pub map_fd: __u32, + pub elem_flags: __u64, + pub flags: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_attr__bindgen_ty_4 { + pub prog_type: __u32, + pub insn_cnt: __u32, + pub insns: __u64, + pub license: __u64, + pub log_level: __u32, + pub log_size: __u32, + pub log_buf: __u64, + pub kern_version: __u32, + pub prog_flags: __u32, + pub prog_name: [::aya_ebpf::cty::c_char; 16usize], + pub prog_ifindex: __u32, + pub expected_attach_type: __u32, + pub prog_btf_fd: __u32, + pub func_info_rec_size: __u32, + pub func_info: __u64, + pub func_info_cnt: __u32, + pub line_info_rec_size: __u32, + pub line_info: __u64, + pub line_info_cnt: __u32, + pub attach_btf_id: __u32, + pub __bindgen_anon_1: bpf_attr__bindgen_ty_4__bindgen_ty_1, + pub core_relo_cnt: __u32, + pub fd_array: __u64, + pub core_relos: __u64, + pub core_relo_rec_size: __u32, + pub log_true_size: __u32, + pub prog_token_fd: __s32, + pub fd_array_cnt: __u32, + pub signature: __u64, + pub signature_size: __u32, + pub keyring_id: __s32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_attr__bindgen_ty_4__bindgen_ty_1 { + pub attach_prog_fd: __u32, + pub attach_btf_obj_fd: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_attr__bindgen_ty_5 { + pub pathname: __u64, + pub bpf_fd: __u32, + pub file_flags: __u32, + pub path_fd: __s32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_attr__bindgen_ty_6 { + pub __bindgen_anon_1: bpf_attr__bindgen_ty_6__bindgen_ty_1, + pub attach_bpf_fd: __u32, + pub attach_type: __u32, + pub attach_flags: __u32, + pub replace_bpf_fd: __u32, + pub __bindgen_anon_2: bpf_attr__bindgen_ty_6__bindgen_ty_2, + pub expected_revision: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_attr__bindgen_ty_6__bindgen_ty_1 { + pub target_fd: __u32, + pub target_ifindex: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_attr__bindgen_ty_6__bindgen_ty_2 { + pub relative_fd: __u32, + pub relative_id: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_attr__bindgen_ty_7 { + pub prog_fd: __u32, + pub retval: __u32, + pub data_size_in: __u32, + pub data_size_out: __u32, + pub data_in: __u64, + pub data_out: __u64, + pub repeat: __u32, + pub duration: __u32, + pub ctx_size_in: __u32, + pub ctx_size_out: __u32, + pub ctx_in: __u64, + pub ctx_out: __u64, + pub flags: __u32, + pub cpu: __u32, + pub batch_size: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_attr__bindgen_ty_8 { + pub __bindgen_anon_1: bpf_attr__bindgen_ty_8__bindgen_ty_1, + pub next_id: __u32, + pub open_flags: __u32, + pub fd_by_id_token_fd: __s32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_attr__bindgen_ty_8__bindgen_ty_1 { + pub start_id: __u32, + pub prog_id: __u32, + pub map_id: __u32, + pub btf_id: __u32, + pub link_id: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_attr__bindgen_ty_9 { + pub bpf_fd: __u32, + pub info_len: __u32, + pub info: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_attr__bindgen_ty_10 { + pub __bindgen_anon_1: bpf_attr__bindgen_ty_10__bindgen_ty_1, + pub attach_type: __u32, + pub query_flags: __u32, + pub attach_flags: __u32, + pub prog_ids: __u64, + pub __bindgen_anon_2: bpf_attr__bindgen_ty_10__bindgen_ty_2, + pub prog_attach_flags: __u64, + pub link_ids: __u64, + pub link_attach_flags: __u64, + pub revision: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_attr__bindgen_ty_10__bindgen_ty_1 { + pub target_fd: __u32, + pub target_ifindex: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_attr__bindgen_ty_10__bindgen_ty_2 { + pub prog_cnt: __u32, + pub count: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_attr__bindgen_ty_11 { + pub name: __u64, + pub prog_fd: __u32, + pub cookie: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_attr__bindgen_ty_12 { + pub btf: __u64, + pub btf_log_buf: __u64, + pub btf_size: __u32, + pub btf_log_size: __u32, + pub btf_log_level: __u32, + pub btf_log_true_size: __u32, + pub btf_flags: __u32, + pub btf_token_fd: __s32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_attr__bindgen_ty_13 { + pub pid: __u32, + pub fd: __u32, + pub flags: __u32, + pub buf_len: __u32, + pub buf: __u64, + pub prog_id: __u32, + pub fd_type: __u32, + pub probe_offset: __u64, + pub probe_addr: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_attr__bindgen_ty_14 { + pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_1, + pub __bindgen_anon_2: bpf_attr__bindgen_ty_14__bindgen_ty_2, + pub attach_type: __u32, + pub flags: __u32, + pub __bindgen_anon_3: bpf_attr__bindgen_ty_14__bindgen_ty_3, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_attr__bindgen_ty_14__bindgen_ty_1 { + pub prog_fd: __u32, + pub map_fd: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_attr__bindgen_ty_14__bindgen_ty_2 { + pub target_fd: __u32, + pub target_ifindex: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_attr__bindgen_ty_14__bindgen_ty_3 { + pub target_btf_id: __u32, + pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_1, + pub perf_event: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_2, + pub kprobe_multi: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_3, + pub tracing: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_4, + pub netfilter: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_5, + pub tcx: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6, + pub uprobe_multi: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_7, + pub netkit: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8, + pub cgroup: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_9, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_1 { + pub iter_info: __u64, + pub iter_info_len: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_2 { + pub bpf_cookie: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_3 { + pub flags: __u32, + pub cnt: __u32, + pub syms: __u64, + pub addrs: __u64, + pub cookies: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_4 { + pub target_btf_id: __u32, + pub cookie: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_5 { + pub pf: __u32, + pub hooknum: __u32, + pub priority: __s32, + pub flags: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6 { + pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6__bindgen_ty_1, + pub expected_revision: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6__bindgen_ty_1 { + pub relative_fd: __u32, + pub relative_id: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_7 { + pub path: __u64, + pub offsets: __u64, + pub ref_ctr_offsets: __u64, + pub cookies: __u64, + pub cnt: __u32, + pub flags: __u32, + pub pid: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8 { + pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8__bindgen_ty_1, + pub expected_revision: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8__bindgen_ty_1 { + pub relative_fd: __u32, + pub relative_id: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_9 { + pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_9__bindgen_ty_1, + pub expected_revision: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_9__bindgen_ty_1 { + pub relative_fd: __u32, + pub relative_id: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_attr__bindgen_ty_15 { + pub link_fd: __u32, + pub __bindgen_anon_1: bpf_attr__bindgen_ty_15__bindgen_ty_1, + pub flags: __u32, + pub __bindgen_anon_2: bpf_attr__bindgen_ty_15__bindgen_ty_2, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_attr__bindgen_ty_15__bindgen_ty_1 { + pub new_prog_fd: __u32, + pub new_map_fd: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_attr__bindgen_ty_15__bindgen_ty_2 { + pub old_prog_fd: __u32, + pub old_map_fd: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_attr__bindgen_ty_16 { + pub link_fd: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_attr__bindgen_ty_17 { + pub type_: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_attr__bindgen_ty_18 { + pub link_fd: __u32, + pub flags: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_attr__bindgen_ty_19 { + pub prog_fd: __u32, + pub map_fd: __u32, + pub flags: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_attr__bindgen_ty_20 { + pub flags: __u32, + pub bpffs_fd: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_attr__bindgen_ty_21 { + pub stream_buf: __u64, + pub stream_buf_len: __u32, + pub stream_id: __u32, + pub prog_fd: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_attr__bindgen_ty_22 { + pub map_fd: __u32, + pub prog_fd: __u32, + pub flags: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_run_ctx {} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_link { + pub refcnt: atomic64_t, + pub id: u32_, + pub type_: bpf_link_type::Type, + pub ops: *const bpf_link_ops, + pub prog: *mut bpf_prog, + pub flags: u32_, + pub attach_type: bpf_attach_type::Type, + pub __bindgen_anon_1: bpf_link__bindgen_ty_1, + pub sleepable: bool_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_link__bindgen_ty_1 { + pub rcu: callback_head, + pub work: work_struct, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_cgroup_storage_key { + pub cgroup_inode_id: __u64, + pub attach_type: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_cgroup_storage { + pub __bindgen_anon_1: bpf_cgroup_storage__bindgen_ty_1, + pub map: *mut bpf_cgroup_storage_map, + pub key: bpf_cgroup_storage_key, + pub list_map: list_head, + pub list_cg: list_head, + pub node: rb_node, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_cgroup_storage__bindgen_ty_1 { + pub buf: *mut bpf_storage_buffer, + pub percpu_buf: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_cgroup_storage_map { + pub map: bpf_map, + pub lock: spinlock_t, + pub root: rb_root, + pub list: list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct gro_list { + pub list: list_head, + pub count: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct gro_node { + pub bitmask: ::aya_ebpf::cty::c_ulong, + pub hash: [gro_list; 8usize], + pub rx_list: list_head, + pub rx_count: u32_, + pub cached_napi_id: u32_, +} +pub type cpumask_t = cpumask; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_ctx_arg_aux { + pub offset: u32_, + pub reg_type: bpf_reg_type::Type, + pub btf: *mut btf, + pub btf_id: u32_, + pub ref_obj_id: u32_, + pub refcounted: bool_, +} +#[repr(C)] +pub struct sk_buff { + pub __bindgen_anon_1: sk_buff__bindgen_ty_1, + pub sk: *mut sock, + pub __bindgen_anon_2: sk_buff__bindgen_ty_2, + pub cb: [::aya_ebpf::cty::c_char; 48usize], + pub __bindgen_anon_3: sk_buff__bindgen_ty_3, + pub _nfct: ::aya_ebpf::cty::c_ulong, + pub len: ::aya_ebpf::cty::c_uint, + pub data_len: ::aya_ebpf::cty::c_uint, + pub mac_len: __u16, + pub hdr_len: __u16, + pub queue_mapping: __u16, + pub __cloned_offset: __IncompleteArrayField<__u8>, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub active_extensions: __u8, + pub __bindgen_anon_4: sk_buff__bindgen_ty_4, + pub tail: sk_buff_data_t, + pub end: sk_buff_data_t, + pub head: *mut ::aya_ebpf::cty::c_uchar, + pub data: *mut ::aya_ebpf::cty::c_uchar, + pub truesize: ::aya_ebpf::cty::c_uint, + pub users: refcount_t, + pub extensions: *mut skb_ext, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sk_buff__bindgen_ty_1 { + pub __bindgen_anon_1: sk_buff__bindgen_ty_1__bindgen_ty_1, + pub rbnode: rb_node, + pub list: list_head, + pub ll_node: llist_node, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sk_buff__bindgen_ty_1__bindgen_ty_1 { + pub next: *mut sk_buff, + pub prev: *mut sk_buff, + pub __bindgen_anon_1: sk_buff__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sk_buff__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { + pub dev: *mut net_device, + pub dev_scratch: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sk_buff__bindgen_ty_2 { + pub tstamp: ktime_t, + pub skb_mstamp_ns: u64_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sk_buff__bindgen_ty_3 { + pub __bindgen_anon_1: sk_buff__bindgen_ty_3__bindgen_ty_1, + pub tcp_tsorted_anchor: list_head, + pub _sk_redir: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sk_buff__bindgen_ty_3__bindgen_ty_1 { + pub _skb_refdst: ::aya_ebpf::cty::c_ulong, + pub destructor: ::core::option::Option, +} +#[repr(C)] +pub struct sk_buff__bindgen_ty_4 { + pub __bindgen_anon_1: __BindgenUnionField, + pub headers: __BindgenUnionField, + pub bindgen_union_field: [u32; 15usize], +} +#[repr(C)] +pub struct sk_buff__bindgen_ty_4__bindgen_ty_1 { + pub __pkt_type_offset: __IncompleteArrayField<__u8>, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __mono_tc_offset: __IncompleteArrayField<__u8>, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 4usize]>, + pub tc_index: __u16, + pub alloc_cpu: u16_, + pub __bindgen_anon_1: sk_buff__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1, + pub priority: __u32, + pub skb_iif: ::aya_ebpf::cty::c_int, + pub hash: __u32, + pub __bindgen_anon_2: sk_buff__bindgen_ty_4__bindgen_ty_1__bindgen_ty_2, + pub __bindgen_anon_3: sk_buff__bindgen_ty_4__bindgen_ty_1__bindgen_ty_3, + pub secmark: __u32, + pub __bindgen_anon_4: sk_buff__bindgen_ty_4__bindgen_ty_1__bindgen_ty_4, + pub __bindgen_anon_5: sk_buff__bindgen_ty_4__bindgen_ty_1__bindgen_ty_5, + pub inner_transport_header: __u16, + pub inner_network_header: __u16, + pub inner_mac_header: __u16, + pub protocol: __be16, + pub transport_header: __u16, + pub network_header: __u16, + pub mac_header: __u16, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sk_buff__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1 { + pub csum: __wsum, + pub __bindgen_anon_1: sk_buff__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sk_buff__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { + pub csum_start: __u16, + pub csum_offset: __u16, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sk_buff__bindgen_ty_4__bindgen_ty_1__bindgen_ty_2 { + pub vlan_all: u32_, + pub __bindgen_anon_1: sk_buff__bindgen_ty_4__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sk_buff__bindgen_ty_4__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 { + pub vlan_proto: __be16, + pub vlan_tci: __u16, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sk_buff__bindgen_ty_4__bindgen_ty_1__bindgen_ty_3 { + pub napi_id: ::aya_ebpf::cty::c_uint, + pub sender_cpu: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sk_buff__bindgen_ty_4__bindgen_ty_1__bindgen_ty_4 { + pub mark: __u32, + pub reserved_tailroom: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sk_buff__bindgen_ty_4__bindgen_ty_1__bindgen_ty_5 { + pub inner_protocol: __be16, + pub inner_ipproto: __u8, +} +impl sk_buff__bindgen_ty_4__bindgen_ty_1 { + #[inline] + pub fn pkt_type(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u8) } + } + #[inline] + pub fn set_pkt_type(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 3u8, val as u64) + } + } + #[inline] + pub unsafe fn pkt_type_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 3u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_pkt_type_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 3u8, + val as u64, + ) + } + } + #[inline] + pub fn ignore_df(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) } + } + #[inline] + pub fn set_ignore_df(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn ignore_df_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_ignore_df_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn dst_pending_confirm(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) } + } + #[inline] + pub fn set_dst_pending_confirm(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dst_pending_confirm_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_dst_pending_confirm_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn ip_summed(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 2u8) as u8) } + } + #[inline] + pub fn set_ip_summed(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn ip_summed_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 5usize, + 2u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_ip_summed_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 5usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn ooo_okay(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) } + } + #[inline] + pub fn set_ooo_okay(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn ooo_okay_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 7usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_ooo_okay_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 7usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + pkt_type: __u8, + ignore_df: __u8, + dst_pending_confirm: __u8, + ip_summed: __u8, + ooo_okay: __u8, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 3u8, { + let pkt_type: u8 = unsafe { ::core::mem::transmute(pkt_type) }; + pkt_type as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let ignore_df: u8 = unsafe { ::core::mem::transmute(ignore_df) }; + ignore_df as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let dst_pending_confirm: u8 = unsafe { ::core::mem::transmute(dst_pending_confirm) }; + dst_pending_confirm as u64 + }); + __bindgen_bitfield_unit.set(5usize, 2u8, { + let ip_summed: u8 = unsafe { ::core::mem::transmute(ip_summed) }; + ip_summed as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let ooo_okay: u8 = unsafe { ::core::mem::transmute(ooo_okay) }; + ooo_okay as u64 + }); + __bindgen_bitfield_unit + } + #[inline] + pub fn tstamp_type(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(0usize, 2u8) as u8) } + } + #[inline] + pub fn set_tstamp_type(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(0usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn tstamp_type_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 0usize, + 2u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_tstamp_type_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 0usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn tc_at_ingress(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(2usize, 1u8) as u8) } + } + #[inline] + pub fn set_tc_at_ingress(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn tc_at_ingress_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 2usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_tc_at_ingress_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn tc_skip_classify(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(3usize, 1u8) as u8) } + } + #[inline] + pub fn set_tc_skip_classify(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn tc_skip_classify_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 3usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_tc_skip_classify_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn remcsum_offload(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(4usize, 1u8) as u8) } + } + #[inline] + pub fn set_remcsum_offload(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn remcsum_offload_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 4usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_remcsum_offload_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn csum_complete_sw(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(5usize, 1u8) as u8) } + } + #[inline] + pub fn set_csum_complete_sw(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn csum_complete_sw_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 5usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_csum_complete_sw_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 5usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn csum_level(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(6usize, 2u8) as u8) } + } + #[inline] + pub fn set_csum_level(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(6usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn csum_level_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 6usize, + 2u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_csum_level_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 6usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn inner_protocol_type(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(8usize, 1u8) as u8) } + } + #[inline] + pub fn set_inner_protocol_type(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(8usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn inner_protocol_type_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 8usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_inner_protocol_type_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 8usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn l4_hash(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(9usize, 1u8) as u8) } + } + #[inline] + pub fn set_l4_hash(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(9usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn l4_hash_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 9usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_l4_hash_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 9usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sw_hash(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(10usize, 1u8) as u8) } + } + #[inline] + pub fn set_sw_hash(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(10usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sw_hash_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 10usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sw_hash_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 10usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn wifi_acked_valid(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(11usize, 1u8) as u8) } + } + #[inline] + pub fn set_wifi_acked_valid(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(11usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn wifi_acked_valid_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 11usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_wifi_acked_valid_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 11usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn wifi_acked(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(12usize, 1u8) as u8) } + } + #[inline] + pub fn set_wifi_acked(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(12usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn wifi_acked_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 12usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_wifi_acked_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 12usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn no_fcs(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(13usize, 1u8) as u8) } + } + #[inline] + pub fn set_no_fcs(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(13usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn no_fcs_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 13usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_no_fcs_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 13usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn encapsulation(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(14usize, 1u8) as u8) } + } + #[inline] + pub fn set_encapsulation(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(14usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn encapsulation_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 14usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_encapsulation_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 14usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn encap_hdr_csum(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(15usize, 1u8) as u8) } + } + #[inline] + pub fn set_encap_hdr_csum(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(15usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn encap_hdr_csum_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 15usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_encap_hdr_csum_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 15usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn csum_valid(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(16usize, 1u8) as u8) } + } + #[inline] + pub fn set_csum_valid(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(16usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn csum_valid_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 16usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_csum_valid_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 16usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn ndisc_nodetype(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(17usize, 2u8) as u8) } + } + #[inline] + pub fn set_ndisc_nodetype(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(17usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn ndisc_nodetype_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 17usize, + 2u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_ndisc_nodetype_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 17usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn ipvs_property(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(19usize, 1u8) as u8) } + } + #[inline] + pub fn set_ipvs_property(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(19usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn ipvs_property_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 19usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_ipvs_property_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 19usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn nf_trace(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(20usize, 1u8) as u8) } + } + #[inline] + pub fn set_nf_trace(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(20usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn nf_trace_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 20usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_nf_trace_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 20usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn offload_fwd_mark(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(21usize, 1u8) as u8) } + } + #[inline] + pub fn set_offload_fwd_mark(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(21usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn offload_fwd_mark_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 21usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_offload_fwd_mark_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 21usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn offload_l3_fwd_mark(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(22usize, 1u8) as u8) } + } + #[inline] + pub fn set_offload_l3_fwd_mark(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(22usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn offload_l3_fwd_mark_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 22usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_offload_l3_fwd_mark_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 22usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn redirected(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(23usize, 1u8) as u8) } + } + #[inline] + pub fn set_redirected(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(23usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn redirected_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 23usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_redirected_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 23usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn from_ingress(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(24usize, 1u8) as u8) } + } + #[inline] + pub fn set_from_ingress(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(24usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn from_ingress_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 24usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_from_ingress_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 24usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn nf_skip_egress(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(25usize, 1u8) as u8) } + } + #[inline] + pub fn set_nf_skip_egress(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(25usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn nf_skip_egress_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 25usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_nf_skip_egress_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 25usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn decrypted(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(26usize, 1u8) as u8) } + } + #[inline] + pub fn set_decrypted(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(26usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn decrypted_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 26usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_decrypted_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 26usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn slow_gro(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(27usize, 1u8) as u8) } + } + #[inline] + pub fn set_slow_gro(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(27usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn slow_gro_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 27usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_slow_gro_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 27usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn csum_not_inet(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(28usize, 1u8) as u8) } + } + #[inline] + pub fn set_csum_not_inet(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(28usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn csum_not_inet_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 28usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_csum_not_inet_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 28usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn unreadable(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(29usize, 1u8) as u8) } + } + #[inline] + pub fn set_unreadable(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(29usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn unreadable_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 29usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_unreadable_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 29usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn tc_depth(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(30usize, 2u8) as u8) } + } + #[inline] + pub fn set_tc_depth(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(30usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn tc_depth_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 30usize, + 2u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_tc_depth_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 30usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_2( + tstamp_type: __u8, + tc_at_ingress: __u8, + tc_skip_classify: __u8, + remcsum_offload: __u8, + csum_complete_sw: __u8, + csum_level: __u8, + inner_protocol_type: __u8, + l4_hash: __u8, + sw_hash: __u8, + wifi_acked_valid: __u8, + wifi_acked: __u8, + no_fcs: __u8, + encapsulation: __u8, + encap_hdr_csum: __u8, + csum_valid: __u8, + ndisc_nodetype: __u8, + ipvs_property: __u8, + nf_trace: __u8, + offload_fwd_mark: __u8, + offload_l3_fwd_mark: __u8, + redirected: __u8, + from_ingress: __u8, + nf_skip_egress: __u8, + decrypted: __u8, + slow_gro: __u8, + csum_not_inet: __u8, + unreadable: __u8, + tc_depth: __u8, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 2u8, { + let tstamp_type: u8 = unsafe { ::core::mem::transmute(tstamp_type) }; + tstamp_type as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let tc_at_ingress: u8 = unsafe { ::core::mem::transmute(tc_at_ingress) }; + tc_at_ingress as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let tc_skip_classify: u8 = unsafe { ::core::mem::transmute(tc_skip_classify) }; + tc_skip_classify as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let remcsum_offload: u8 = unsafe { ::core::mem::transmute(remcsum_offload) }; + remcsum_offload as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let csum_complete_sw: u8 = unsafe { ::core::mem::transmute(csum_complete_sw) }; + csum_complete_sw as u64 + }); + __bindgen_bitfield_unit.set(6usize, 2u8, { + let csum_level: u8 = unsafe { ::core::mem::transmute(csum_level) }; + csum_level as u64 + }); + __bindgen_bitfield_unit.set(8usize, 1u8, { + let inner_protocol_type: u8 = unsafe { ::core::mem::transmute(inner_protocol_type) }; + inner_protocol_type as u64 + }); + __bindgen_bitfield_unit.set(9usize, 1u8, { + let l4_hash: u8 = unsafe { ::core::mem::transmute(l4_hash) }; + l4_hash as u64 + }); + __bindgen_bitfield_unit.set(10usize, 1u8, { + let sw_hash: u8 = unsafe { ::core::mem::transmute(sw_hash) }; + sw_hash as u64 + }); + __bindgen_bitfield_unit.set(11usize, 1u8, { + let wifi_acked_valid: u8 = unsafe { ::core::mem::transmute(wifi_acked_valid) }; + wifi_acked_valid as u64 + }); + __bindgen_bitfield_unit.set(12usize, 1u8, { + let wifi_acked: u8 = unsafe { ::core::mem::transmute(wifi_acked) }; + wifi_acked as u64 + }); + __bindgen_bitfield_unit.set(13usize, 1u8, { + let no_fcs: u8 = unsafe { ::core::mem::transmute(no_fcs) }; + no_fcs as u64 + }); + __bindgen_bitfield_unit.set(14usize, 1u8, { + let encapsulation: u8 = unsafe { ::core::mem::transmute(encapsulation) }; + encapsulation as u64 + }); + __bindgen_bitfield_unit.set(15usize, 1u8, { + let encap_hdr_csum: u8 = unsafe { ::core::mem::transmute(encap_hdr_csum) }; + encap_hdr_csum as u64 + }); + __bindgen_bitfield_unit.set(16usize, 1u8, { + let csum_valid: u8 = unsafe { ::core::mem::transmute(csum_valid) }; + csum_valid as u64 + }); + __bindgen_bitfield_unit.set(17usize, 2u8, { + let ndisc_nodetype: u8 = unsafe { ::core::mem::transmute(ndisc_nodetype) }; + ndisc_nodetype as u64 + }); + __bindgen_bitfield_unit.set(19usize, 1u8, { + let ipvs_property: u8 = unsafe { ::core::mem::transmute(ipvs_property) }; + ipvs_property as u64 + }); + __bindgen_bitfield_unit.set(20usize, 1u8, { + let nf_trace: u8 = unsafe { ::core::mem::transmute(nf_trace) }; + nf_trace as u64 + }); + __bindgen_bitfield_unit.set(21usize, 1u8, { + let offload_fwd_mark: u8 = unsafe { ::core::mem::transmute(offload_fwd_mark) }; + offload_fwd_mark as u64 + }); + __bindgen_bitfield_unit.set(22usize, 1u8, { + let offload_l3_fwd_mark: u8 = unsafe { ::core::mem::transmute(offload_l3_fwd_mark) }; + offload_l3_fwd_mark as u64 + }); + __bindgen_bitfield_unit.set(23usize, 1u8, { + let redirected: u8 = unsafe { ::core::mem::transmute(redirected) }; + redirected as u64 + }); + __bindgen_bitfield_unit.set(24usize, 1u8, { + let from_ingress: u8 = unsafe { ::core::mem::transmute(from_ingress) }; + from_ingress as u64 + }); + __bindgen_bitfield_unit.set(25usize, 1u8, { + let nf_skip_egress: u8 = unsafe { ::core::mem::transmute(nf_skip_egress) }; + nf_skip_egress as u64 + }); + __bindgen_bitfield_unit.set(26usize, 1u8, { + let decrypted: u8 = unsafe { ::core::mem::transmute(decrypted) }; + decrypted as u64 + }); + __bindgen_bitfield_unit.set(27usize, 1u8, { + let slow_gro: u8 = unsafe { ::core::mem::transmute(slow_gro) }; + slow_gro as u64 + }); + __bindgen_bitfield_unit.set(28usize, 1u8, { + let csum_not_inet: u8 = unsafe { ::core::mem::transmute(csum_not_inet) }; + csum_not_inet as u64 + }); + __bindgen_bitfield_unit.set(29usize, 1u8, { + let unreadable: u8 = unsafe { ::core::mem::transmute(unreadable) }; + unreadable as u64 + }); + __bindgen_bitfield_unit.set(30usize, 2u8, { + let tc_depth: u8 = unsafe { ::core::mem::transmute(tc_depth) }; + tc_depth as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +pub struct sk_buff__bindgen_ty_4__bindgen_ty_2 { + pub __pkt_type_offset: __IncompleteArrayField<__u8>, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __mono_tc_offset: __IncompleteArrayField<__u8>, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 4usize]>, + pub tc_index: __u16, + pub alloc_cpu: u16_, + pub __bindgen_anon_1: sk_buff__bindgen_ty_4__bindgen_ty_2__bindgen_ty_1, + pub priority: __u32, + pub skb_iif: ::aya_ebpf::cty::c_int, + pub hash: __u32, + pub __bindgen_anon_2: sk_buff__bindgen_ty_4__bindgen_ty_2__bindgen_ty_2, + pub __bindgen_anon_3: sk_buff__bindgen_ty_4__bindgen_ty_2__bindgen_ty_3, + pub secmark: __u32, + pub __bindgen_anon_4: sk_buff__bindgen_ty_4__bindgen_ty_2__bindgen_ty_4, + pub __bindgen_anon_5: sk_buff__bindgen_ty_4__bindgen_ty_2__bindgen_ty_5, + pub inner_transport_header: __u16, + pub inner_network_header: __u16, + pub inner_mac_header: __u16, + pub protocol: __be16, + pub transport_header: __u16, + pub network_header: __u16, + pub mac_header: __u16, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sk_buff__bindgen_ty_4__bindgen_ty_2__bindgen_ty_1 { + pub csum: __wsum, + pub __bindgen_anon_1: sk_buff__bindgen_ty_4__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sk_buff__bindgen_ty_4__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1 { + pub csum_start: __u16, + pub csum_offset: __u16, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sk_buff__bindgen_ty_4__bindgen_ty_2__bindgen_ty_2 { + pub vlan_all: u32_, + pub __bindgen_anon_1: sk_buff__bindgen_ty_4__bindgen_ty_2__bindgen_ty_2__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sk_buff__bindgen_ty_4__bindgen_ty_2__bindgen_ty_2__bindgen_ty_1 { + pub vlan_proto: __be16, + pub vlan_tci: __u16, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sk_buff__bindgen_ty_4__bindgen_ty_2__bindgen_ty_3 { + pub napi_id: ::aya_ebpf::cty::c_uint, + pub sender_cpu: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sk_buff__bindgen_ty_4__bindgen_ty_2__bindgen_ty_4 { + pub mark: __u32, + pub reserved_tailroom: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sk_buff__bindgen_ty_4__bindgen_ty_2__bindgen_ty_5 { + pub inner_protocol: __be16, + pub inner_ipproto: __u8, +} +impl sk_buff__bindgen_ty_4__bindgen_ty_2 { + #[inline] + pub fn pkt_type(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u8) } + } + #[inline] + pub fn set_pkt_type(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 3u8, val as u64) + } + } + #[inline] + pub unsafe fn pkt_type_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 3u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_pkt_type_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 3u8, + val as u64, + ) + } + } + #[inline] + pub fn ignore_df(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) } + } + #[inline] + pub fn set_ignore_df(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn ignore_df_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_ignore_df_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn dst_pending_confirm(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) } + } + #[inline] + pub fn set_dst_pending_confirm(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dst_pending_confirm_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_dst_pending_confirm_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn ip_summed(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 2u8) as u8) } + } + #[inline] + pub fn set_ip_summed(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn ip_summed_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 5usize, + 2u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_ip_summed_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 5usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn ooo_okay(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) } + } + #[inline] + pub fn set_ooo_okay(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn ooo_okay_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 7usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_ooo_okay_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 7usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + pkt_type: __u8, + ignore_df: __u8, + dst_pending_confirm: __u8, + ip_summed: __u8, + ooo_okay: __u8, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 3u8, { + let pkt_type: u8 = unsafe { ::core::mem::transmute(pkt_type) }; + pkt_type as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let ignore_df: u8 = unsafe { ::core::mem::transmute(ignore_df) }; + ignore_df as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let dst_pending_confirm: u8 = unsafe { ::core::mem::transmute(dst_pending_confirm) }; + dst_pending_confirm as u64 + }); + __bindgen_bitfield_unit.set(5usize, 2u8, { + let ip_summed: u8 = unsafe { ::core::mem::transmute(ip_summed) }; + ip_summed as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let ooo_okay: u8 = unsafe { ::core::mem::transmute(ooo_okay) }; + ooo_okay as u64 + }); + __bindgen_bitfield_unit + } + #[inline] + pub fn tstamp_type(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(0usize, 2u8) as u8) } + } + #[inline] + pub fn set_tstamp_type(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(0usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn tstamp_type_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 0usize, + 2u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_tstamp_type_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 0usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn tc_at_ingress(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(2usize, 1u8) as u8) } + } + #[inline] + pub fn set_tc_at_ingress(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn tc_at_ingress_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 2usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_tc_at_ingress_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn tc_skip_classify(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(3usize, 1u8) as u8) } + } + #[inline] + pub fn set_tc_skip_classify(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn tc_skip_classify_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 3usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_tc_skip_classify_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn remcsum_offload(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(4usize, 1u8) as u8) } + } + #[inline] + pub fn set_remcsum_offload(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn remcsum_offload_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 4usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_remcsum_offload_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn csum_complete_sw(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(5usize, 1u8) as u8) } + } + #[inline] + pub fn set_csum_complete_sw(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn csum_complete_sw_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 5usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_csum_complete_sw_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 5usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn csum_level(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(6usize, 2u8) as u8) } + } + #[inline] + pub fn set_csum_level(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(6usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn csum_level_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 6usize, + 2u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_csum_level_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 6usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn inner_protocol_type(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(8usize, 1u8) as u8) } + } + #[inline] + pub fn set_inner_protocol_type(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(8usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn inner_protocol_type_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 8usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_inner_protocol_type_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 8usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn l4_hash(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(9usize, 1u8) as u8) } + } + #[inline] + pub fn set_l4_hash(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(9usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn l4_hash_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 9usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_l4_hash_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 9usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sw_hash(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(10usize, 1u8) as u8) } + } + #[inline] + pub fn set_sw_hash(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(10usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sw_hash_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 10usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sw_hash_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 10usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn wifi_acked_valid(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(11usize, 1u8) as u8) } + } + #[inline] + pub fn set_wifi_acked_valid(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(11usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn wifi_acked_valid_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 11usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_wifi_acked_valid_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 11usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn wifi_acked(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(12usize, 1u8) as u8) } + } + #[inline] + pub fn set_wifi_acked(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(12usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn wifi_acked_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 12usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_wifi_acked_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 12usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn no_fcs(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(13usize, 1u8) as u8) } + } + #[inline] + pub fn set_no_fcs(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(13usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn no_fcs_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 13usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_no_fcs_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 13usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn encapsulation(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(14usize, 1u8) as u8) } + } + #[inline] + pub fn set_encapsulation(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(14usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn encapsulation_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 14usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_encapsulation_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 14usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn encap_hdr_csum(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(15usize, 1u8) as u8) } + } + #[inline] + pub fn set_encap_hdr_csum(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(15usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn encap_hdr_csum_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 15usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_encap_hdr_csum_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 15usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn csum_valid(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(16usize, 1u8) as u8) } + } + #[inline] + pub fn set_csum_valid(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(16usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn csum_valid_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 16usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_csum_valid_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 16usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn ndisc_nodetype(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(17usize, 2u8) as u8) } + } + #[inline] + pub fn set_ndisc_nodetype(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(17usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn ndisc_nodetype_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 17usize, + 2u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_ndisc_nodetype_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 17usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn ipvs_property(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(19usize, 1u8) as u8) } + } + #[inline] + pub fn set_ipvs_property(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(19usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn ipvs_property_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 19usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_ipvs_property_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 19usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn nf_trace(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(20usize, 1u8) as u8) } + } + #[inline] + pub fn set_nf_trace(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(20usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn nf_trace_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 20usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_nf_trace_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 20usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn offload_fwd_mark(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(21usize, 1u8) as u8) } + } + #[inline] + pub fn set_offload_fwd_mark(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(21usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn offload_fwd_mark_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 21usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_offload_fwd_mark_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 21usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn offload_l3_fwd_mark(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(22usize, 1u8) as u8) } + } + #[inline] + pub fn set_offload_l3_fwd_mark(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(22usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn offload_l3_fwd_mark_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 22usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_offload_l3_fwd_mark_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 22usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn redirected(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(23usize, 1u8) as u8) } + } + #[inline] + pub fn set_redirected(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(23usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn redirected_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 23usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_redirected_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 23usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn from_ingress(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(24usize, 1u8) as u8) } + } + #[inline] + pub fn set_from_ingress(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(24usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn from_ingress_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 24usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_from_ingress_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 24usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn nf_skip_egress(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(25usize, 1u8) as u8) } + } + #[inline] + pub fn set_nf_skip_egress(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(25usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn nf_skip_egress_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 25usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_nf_skip_egress_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 25usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn decrypted(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(26usize, 1u8) as u8) } + } + #[inline] + pub fn set_decrypted(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(26usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn decrypted_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 26usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_decrypted_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 26usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn slow_gro(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(27usize, 1u8) as u8) } + } + #[inline] + pub fn set_slow_gro(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(27usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn slow_gro_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 27usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_slow_gro_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 27usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn csum_not_inet(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(28usize, 1u8) as u8) } + } + #[inline] + pub fn set_csum_not_inet(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(28usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn csum_not_inet_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 28usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_csum_not_inet_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 28usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn unreadable(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(29usize, 1u8) as u8) } + } + #[inline] + pub fn set_unreadable(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(29usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn unreadable_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 29usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_unreadable_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 29usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn tc_depth(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(30usize, 2u8) as u8) } + } + #[inline] + pub fn set_tc_depth(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(30usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn tc_depth_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 30usize, + 2u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_tc_depth_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 30usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_2( + tstamp_type: __u8, + tc_at_ingress: __u8, + tc_skip_classify: __u8, + remcsum_offload: __u8, + csum_complete_sw: __u8, + csum_level: __u8, + inner_protocol_type: __u8, + l4_hash: __u8, + sw_hash: __u8, + wifi_acked_valid: __u8, + wifi_acked: __u8, + no_fcs: __u8, + encapsulation: __u8, + encap_hdr_csum: __u8, + csum_valid: __u8, + ndisc_nodetype: __u8, + ipvs_property: __u8, + nf_trace: __u8, + offload_fwd_mark: __u8, + offload_l3_fwd_mark: __u8, + redirected: __u8, + from_ingress: __u8, + nf_skip_egress: __u8, + decrypted: __u8, + slow_gro: __u8, + csum_not_inet: __u8, + unreadable: __u8, + tc_depth: __u8, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 2u8, { + let tstamp_type: u8 = unsafe { ::core::mem::transmute(tstamp_type) }; + tstamp_type as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let tc_at_ingress: u8 = unsafe { ::core::mem::transmute(tc_at_ingress) }; + tc_at_ingress as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let tc_skip_classify: u8 = unsafe { ::core::mem::transmute(tc_skip_classify) }; + tc_skip_classify as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let remcsum_offload: u8 = unsafe { ::core::mem::transmute(remcsum_offload) }; + remcsum_offload as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let csum_complete_sw: u8 = unsafe { ::core::mem::transmute(csum_complete_sw) }; + csum_complete_sw as u64 + }); + __bindgen_bitfield_unit.set(6usize, 2u8, { + let csum_level: u8 = unsafe { ::core::mem::transmute(csum_level) }; + csum_level as u64 + }); + __bindgen_bitfield_unit.set(8usize, 1u8, { + let inner_protocol_type: u8 = unsafe { ::core::mem::transmute(inner_protocol_type) }; + inner_protocol_type as u64 + }); + __bindgen_bitfield_unit.set(9usize, 1u8, { + let l4_hash: u8 = unsafe { ::core::mem::transmute(l4_hash) }; + l4_hash as u64 + }); + __bindgen_bitfield_unit.set(10usize, 1u8, { + let sw_hash: u8 = unsafe { ::core::mem::transmute(sw_hash) }; + sw_hash as u64 + }); + __bindgen_bitfield_unit.set(11usize, 1u8, { + let wifi_acked_valid: u8 = unsafe { ::core::mem::transmute(wifi_acked_valid) }; + wifi_acked_valid as u64 + }); + __bindgen_bitfield_unit.set(12usize, 1u8, { + let wifi_acked: u8 = unsafe { ::core::mem::transmute(wifi_acked) }; + wifi_acked as u64 + }); + __bindgen_bitfield_unit.set(13usize, 1u8, { + let no_fcs: u8 = unsafe { ::core::mem::transmute(no_fcs) }; + no_fcs as u64 + }); + __bindgen_bitfield_unit.set(14usize, 1u8, { + let encapsulation: u8 = unsafe { ::core::mem::transmute(encapsulation) }; + encapsulation as u64 + }); + __bindgen_bitfield_unit.set(15usize, 1u8, { + let encap_hdr_csum: u8 = unsafe { ::core::mem::transmute(encap_hdr_csum) }; + encap_hdr_csum as u64 + }); + __bindgen_bitfield_unit.set(16usize, 1u8, { + let csum_valid: u8 = unsafe { ::core::mem::transmute(csum_valid) }; + csum_valid as u64 + }); + __bindgen_bitfield_unit.set(17usize, 2u8, { + let ndisc_nodetype: u8 = unsafe { ::core::mem::transmute(ndisc_nodetype) }; + ndisc_nodetype as u64 + }); + __bindgen_bitfield_unit.set(19usize, 1u8, { + let ipvs_property: u8 = unsafe { ::core::mem::transmute(ipvs_property) }; + ipvs_property as u64 + }); + __bindgen_bitfield_unit.set(20usize, 1u8, { + let nf_trace: u8 = unsafe { ::core::mem::transmute(nf_trace) }; + nf_trace as u64 + }); + __bindgen_bitfield_unit.set(21usize, 1u8, { + let offload_fwd_mark: u8 = unsafe { ::core::mem::transmute(offload_fwd_mark) }; + offload_fwd_mark as u64 + }); + __bindgen_bitfield_unit.set(22usize, 1u8, { + let offload_l3_fwd_mark: u8 = unsafe { ::core::mem::transmute(offload_l3_fwd_mark) }; + offload_l3_fwd_mark as u64 + }); + __bindgen_bitfield_unit.set(23usize, 1u8, { + let redirected: u8 = unsafe { ::core::mem::transmute(redirected) }; + redirected as u64 + }); + __bindgen_bitfield_unit.set(24usize, 1u8, { + let from_ingress: u8 = unsafe { ::core::mem::transmute(from_ingress) }; + from_ingress as u64 + }); + __bindgen_bitfield_unit.set(25usize, 1u8, { + let nf_skip_egress: u8 = unsafe { ::core::mem::transmute(nf_skip_egress) }; + nf_skip_egress as u64 + }); + __bindgen_bitfield_unit.set(26usize, 1u8, { + let decrypted: u8 = unsafe { ::core::mem::transmute(decrypted) }; + decrypted as u64 + }); + __bindgen_bitfield_unit.set(27usize, 1u8, { + let slow_gro: u8 = unsafe { ::core::mem::transmute(slow_gro) }; + slow_gro as u64 + }); + __bindgen_bitfield_unit.set(28usize, 1u8, { + let csum_not_inet: u8 = unsafe { ::core::mem::transmute(csum_not_inet) }; + csum_not_inet as u64 + }); + __bindgen_bitfield_unit.set(29usize, 1u8, { + let unreadable: u8 = unsafe { ::core::mem::transmute(unreadable) }; + unreadable as u64 + }); + __bindgen_bitfield_unit.set(30usize, 2u8, { + let tc_depth: u8 = unsafe { ::core::mem::transmute(tc_depth) }; + tc_depth as u64 + }); + __bindgen_bitfield_unit + } +} +impl sk_buff { + #[inline] + pub fn cloned(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_cloned(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn cloned_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_cloned_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn nohdr(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_nohdr(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn nohdr_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_nohdr_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fclone(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 2u8) as u8) } + } + #[inline] + pub fn set_fclone(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn fclone_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 2u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fclone_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn peeked(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) } + } + #[inline] + pub fn set_peeked(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn peeked_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_peeked_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn head_frag(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) } + } + #[inline] + pub fn set_head_frag(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn head_frag_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 5usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_head_frag_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 5usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn pfmemalloc(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) } + } + #[inline] + pub fn set_pfmemalloc(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn pfmemalloc_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 6usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_pfmemalloc_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 6usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn pp_recycle(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) } + } + #[inline] + pub fn set_pp_recycle(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn pp_recycle_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 7usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_pp_recycle_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 7usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + cloned: __u8, + nohdr: __u8, + fclone: __u8, + peeked: __u8, + head_frag: __u8, + pfmemalloc: __u8, + pp_recycle: __u8, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let cloned: u8 = unsafe { ::core::mem::transmute(cloned) }; + cloned as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let nohdr: u8 = unsafe { ::core::mem::transmute(nohdr) }; + nohdr as u64 + }); + __bindgen_bitfield_unit.set(2usize, 2u8, { + let fclone: u8 = unsafe { ::core::mem::transmute(fclone) }; + fclone as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let peeked: u8 = unsafe { ::core::mem::transmute(peeked) }; + peeked as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let head_frag: u8 = unsafe { ::core::mem::transmute(head_frag) }; + head_frag as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let pfmemalloc: u8 = unsafe { ::core::mem::transmute(pfmemalloc) }; + pfmemalloc as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let pp_recycle: u8 = unsafe { ::core::mem::transmute(pp_recycle) }; + pp_recycle as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xdp_md { + pub data: __u32, + pub data_end: __u32, + pub data_meta: __u32, + pub ingress_ifindex: __u32, + pub rx_queue_index: __u32, + pub egress_ifindex: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct xdp_buff { + pub data: *mut ::aya_ebpf::cty::c_void, + pub data_end: *mut ::aya_ebpf::cty::c_void, + pub data_meta: *mut ::aya_ebpf::cty::c_void, + pub data_hard_start: *mut ::aya_ebpf::cty::c_void, + pub rxq: *mut xdp_rxq_info, + pub txq: *mut xdp_txq_info, + pub __bindgen_anon_1: xdp_buff__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union xdp_buff__bindgen_ty_1 { + pub __bindgen_anon_1: xdp_buff__bindgen_ty_1__bindgen_ty_1, + pub frame_sz_flags_init: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xdp_buff__bindgen_ty_1__bindgen_ty_1 { + pub frame_sz: u32_, + pub flags: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct hlist_nulls_node { + pub next: *mut hlist_nulls_node, + pub pprev: *mut *mut hlist_nulls_node, +} +#[repr(C)] +pub struct sock_common { + pub __bindgen_anon_1: sock_common__bindgen_ty_1, + pub __bindgen_anon_2: sock_common__bindgen_ty_2, + pub __bindgen_anon_3: sock_common__bindgen_ty_3, + pub skc_family: ::aya_ebpf::cty::c_ushort, + pub skc_state: ::aya_ebpf::cty::c_uchar, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub skc_bound_dev_if: ::aya_ebpf::cty::c_int, + pub __bindgen_anon_4: sock_common__bindgen_ty_4, + pub skc_prot: *mut proto, + pub skc_net: possible_net_t, + pub skc_v6_daddr: in6_addr, + pub skc_v6_rcv_saddr: in6_addr, + pub skc_cookie: atomic64_t, + pub __bindgen_anon_5: sock_common__bindgen_ty_5, + pub skc_dontcopy_begin: __IncompleteArrayField<::aya_ebpf::cty::c_int>, + pub __bindgen_anon_6: sock_common__bindgen_ty_6, + pub skc_tx_queue_mapping: ::aya_ebpf::cty::c_ushort, + pub skc_rx_queue_mapping: ::aya_ebpf::cty::c_ushort, + pub __bindgen_anon_7: sock_common__bindgen_ty_7, + pub skc_refcnt: refcount_t, + pub skc_dontcopy_end: __IncompleteArrayField<::aya_ebpf::cty::c_int>, + pub __bindgen_anon_8: sock_common__bindgen_ty_8, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sock_common__bindgen_ty_1 { + pub skc_addrpair: __addrpair, + pub __bindgen_anon_1: sock_common__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sock_common__bindgen_ty_1__bindgen_ty_1 { + pub skc_daddr: __be32, + pub skc_rcv_saddr: __be32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sock_common__bindgen_ty_2 { + pub skc_hash: ::aya_ebpf::cty::c_uint, + pub skc_u16hashes: [__u16; 2usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sock_common__bindgen_ty_3 { + pub skc_portpair: __portpair, + pub __bindgen_anon_1: sock_common__bindgen_ty_3__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sock_common__bindgen_ty_3__bindgen_ty_1 { + pub skc_dport: __be16, + pub skc_num: __u16, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sock_common__bindgen_ty_4 { + pub skc_bind_node: hlist_node, + pub skc_portaddr_node: hlist_node, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sock_common__bindgen_ty_5 { + pub skc_flags: ::aya_ebpf::cty::c_ulong, + pub skc_listener: *mut sock, + pub skc_tw_dr: *mut inet_timewait_death_row, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sock_common__bindgen_ty_6 { + pub skc_node: hlist_node, + pub skc_nulls_node: hlist_nulls_node, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sock_common__bindgen_ty_7 { + pub skc_incoming_cpu: ::aya_ebpf::cty::c_int, + pub skc_rcv_wnd: u32_, + pub skc_tw_rcv_nxt: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sock_common__bindgen_ty_8 { + pub skc_rxhash: u32_, + pub skc_window_clamp: u32_, + pub skc_tw_snd_nxt: u32_, +} +impl sock_common { + #[inline] + pub fn skc_reuse(&self) -> ::aya_ebpf::cty::c_uchar { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } + } + #[inline] + pub fn set_skc_reuse(&mut self, val: ::aya_ebpf::cty::c_uchar) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 4u8, val as u64) + } + } + #[inline] + pub unsafe fn skc_reuse_raw(this: *const Self) -> ::aya_ebpf::cty::c_uchar { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 4u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_skc_reuse_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uchar) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 4u8, + val as u64, + ) + } + } + #[inline] + pub fn skc_reuseport(&self) -> ::aya_ebpf::cty::c_uchar { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) } + } + #[inline] + pub fn set_skc_reuseport(&mut self, val: ::aya_ebpf::cty::c_uchar) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn skc_reuseport_raw(this: *const Self) -> ::aya_ebpf::cty::c_uchar { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_skc_reuseport_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uchar) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn skc_ipv6only(&self) -> ::aya_ebpf::cty::c_uchar { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) } + } + #[inline] + pub fn set_skc_ipv6only(&mut self, val: ::aya_ebpf::cty::c_uchar) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn skc_ipv6only_raw(this: *const Self) -> ::aya_ebpf::cty::c_uchar { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 5usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_skc_ipv6only_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uchar) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 5usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn skc_net_refcnt(&self) -> ::aya_ebpf::cty::c_uchar { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) } + } + #[inline] + pub fn set_skc_net_refcnt(&mut self, val: ::aya_ebpf::cty::c_uchar) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn skc_net_refcnt_raw(this: *const Self) -> ::aya_ebpf::cty::c_uchar { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 6usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_skc_net_refcnt_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uchar) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 6usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn skc_bypass_prot_mem(&self) -> ::aya_ebpf::cty::c_uchar { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) } + } + #[inline] + pub fn set_skc_bypass_prot_mem(&mut self, val: ::aya_ebpf::cty::c_uchar) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn skc_bypass_prot_mem_raw(this: *const Self) -> ::aya_ebpf::cty::c_uchar { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 7usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_skc_bypass_prot_mem_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uchar) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 7usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + skc_reuse: ::aya_ebpf::cty::c_uchar, + skc_reuseport: ::aya_ebpf::cty::c_uchar, + skc_ipv6only: ::aya_ebpf::cty::c_uchar, + skc_net_refcnt: ::aya_ebpf::cty::c_uchar, + skc_bypass_prot_mem: ::aya_ebpf::cty::c_uchar, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 4u8, { + let skc_reuse: u8 = unsafe { ::core::mem::transmute(skc_reuse) }; + skc_reuse as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let skc_reuseport: u8 = unsafe { ::core::mem::transmute(skc_reuseport) }; + skc_reuseport as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let skc_ipv6only: u8 = unsafe { ::core::mem::transmute(skc_ipv6only) }; + skc_ipv6only as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let skc_net_refcnt: u8 = unsafe { ::core::mem::transmute(skc_net_refcnt) }; + skc_net_refcnt as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let skc_bypass_prot_mem: u8 = unsafe { ::core::mem::transmute(skc_bypass_prot_mem) }; + skc_bypass_prot_mem as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct page_frag { + pub page: *mut page, + pub offset: __u32, + pub size: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sock_cgroup_data { + pub cgroup: *mut cgroup, + pub classid: u32_, + pub prioidx: u16_, +} +#[repr(C)] +pub struct sock { + pub __sk_common: sock_common, + pub __cacheline_group_begin__sock_write_rx: __IncompleteArrayField<__u8>, + pub sk_drops: atomic_t, + pub sk_peek_off: __s32, + pub sk_error_queue: sk_buff_head, + pub sk_receive_queue: sk_buff_head, + pub sk_backlog: sock__bindgen_ty_1, + pub __cacheline_group_end__sock_write_rx: __IncompleteArrayField<__u8>, + pub __cacheline_group_begin__sock_read_rx: __IncompleteArrayField<__u8>, + pub sk_rx_dst: *mut dst_entry, + pub sk_rx_dst_ifindex: ::aya_ebpf::cty::c_int, + pub sk_rx_dst_cookie: u32_, + pub sk_ll_usec: ::aya_ebpf::cty::c_uint, + pub sk_napi_id: ::aya_ebpf::cty::c_uint, + pub sk_busy_poll_budget: u16_, + pub sk_prefer_busy_poll: u8_, + pub sk_userlocks: u8_, + pub sk_rcvbuf: ::aya_ebpf::cty::c_int, + pub sk_filter: *mut sk_filter, + pub __bindgen_anon_1: sock__bindgen_ty_2, + pub sk_data_ready: ::core::option::Option, + pub sk_rcvtimeo: ::aya_ebpf::cty::c_long, + pub sk_rcvlowat: ::aya_ebpf::cty::c_int, + pub __cacheline_group_end__sock_read_rx: __IncompleteArrayField<__u8>, + pub __cacheline_group_begin__sock_read_rxtx: __IncompleteArrayField<__u8>, + pub sk_err: ::aya_ebpf::cty::c_int, + pub sk_socket: *mut socket, + pub sk_memcg: *mut mem_cgroup, + pub sk_policy: [*mut xfrm_policy; 2usize], + pub psp_assoc: *mut psp_assoc, + pub __cacheline_group_end__sock_read_rxtx: __IncompleteArrayField<__u8>, + pub __cacheline_group_begin__sock_write_rxtx: __IncompleteArrayField<__u8>, + pub sk_lock: socket_lock_t, + pub sk_reserved_mem: u32_, + pub sk_forward_alloc: ::aya_ebpf::cty::c_int, + pub sk_tsflags: u32_, + pub __cacheline_group_end__sock_write_rxtx: __IncompleteArrayField<__u8>, + pub __cacheline_group_begin__sock_write_tx: __IncompleteArrayField<__u8>, + pub sk_write_pending: ::aya_ebpf::cty::c_int, + pub sk_omem_alloc: atomic_t, + pub sk_err_soft: ::aya_ebpf::cty::c_int, + pub sk_wmem_queued: ::aya_ebpf::cty::c_int, + pub sk_wmem_alloc: refcount_t, + pub sk_tsq_flags: ::aya_ebpf::cty::c_ulong, + pub __bindgen_anon_2: sock__bindgen_ty_3, + pub sk_write_queue: sk_buff_head, + pub sk_frag: page_frag, + pub __bindgen_anon_3: sock__bindgen_ty_4, + pub sk_pacing_rate: ::aya_ebpf::cty::c_ulong, + pub sk_zckey: atomic_t, + pub sk_tskey: atomic_t, + pub sk_tx_queue_mapping_jiffies: ::aya_ebpf::cty::c_ulong, + pub __cacheline_group_end__sock_write_tx: __IncompleteArrayField<__u8>, + pub __cacheline_group_begin__sock_read_tx: __IncompleteArrayField<__u8>, + pub sk_dst_pending_confirm: u32_, + pub sk_pacing_status: u32_, + pub sk_max_pacing_rate: ::aya_ebpf::cty::c_ulong, + pub sk_sndtimeo: ::aya_ebpf::cty::c_long, + pub sk_priority: u32_, + pub sk_mark: u32_, + pub sk_uid: kuid_t, + pub sk_protocol: u16_, + pub sk_type: u16_, + pub sk_dst_cache: *mut dst_entry, + pub sk_route_caps: netdev_features_t, + pub sk_validate_xmit_skb: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sock, + arg2: *mut net_device, + arg3: *mut sk_buff, + ) -> *mut sk_buff, + >, + pub sk_gso_type: u16_, + pub sk_gso_max_segs: u16_, + pub sk_gso_max_size: ::aya_ebpf::cty::c_uint, + pub sk_allocation: gfp_t, + pub sk_txhash: u32_, + pub sk_sndbuf: ::aya_ebpf::cty::c_int, + pub sk_pacing_shift: u8_, + pub sk_use_task_frag: bool_, + pub __cacheline_group_end__sock_read_tx: __IncompleteArrayField<__u8>, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub sk_shutdown: u8_, + pub sk_lingertime: ::aya_ebpf::cty::c_ulong, + pub sk_prot_creator: *mut proto, + pub sk_callback_lock: rwlock_t, + pub sk_ack_backlog: u32_, + pub sk_max_ack_backlog: u32_, + pub sk_ino: u64_, + pub sk_peer_lock: spinlock_t, + pub sk_bind_phc: ::aya_ebpf::cty::c_int, + pub sk_peer_pid: *mut pid, + pub sk_peer_cred: *const cred, + pub sk_stamp: ktime_t, + pub sk_disconnects: ::aya_ebpf::cty::c_int, + pub __bindgen_anon_4: sock__bindgen_ty_5, + pub sk_clockid: u8_, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 1usize]>, + pub sk_bpf_cb_flags: u8_, + pub sk_user_data: *mut ::aya_ebpf::cty::c_void, + pub sk_security: *mut ::aya_ebpf::cty::c_void, + pub sk_cgrp_data: sock_cgroup_data, + pub sk_state_change: ::core::option::Option, + pub sk_write_space: ::core::option::Option, + pub sk_error_report: ::core::option::Option, + pub sk_backlog_rcv: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sock, arg2: *mut sk_buff) -> ::aya_ebpf::cty::c_int, + >, + pub sk_destruct: ::core::option::Option, + pub sk_reuseport_cb: *mut sock_reuseport, + pub sk_bpf_storage: *mut bpf_local_storage, + pub sk_drop_counters: *mut numa_drop_counters, + pub __bindgen_anon_5: sock__bindgen_ty_6, + pub ns_tracker: netns_tracker, + pub sk_user_frags: xarray, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sock__bindgen_ty_1 { + pub rmem_alloc: atomic_t, + pub len: ::aya_ebpf::cty::c_int, + pub head: *mut sk_buff, + pub tail: *mut sk_buff, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sock__bindgen_ty_2 { + pub sk_wq: *mut socket_wq, + pub sk_wq_raw: *mut socket_wq, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sock__bindgen_ty_3 { + pub sk_send_head: *mut sk_buff, + pub tcp_rtx_queue: rb_root, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sock__bindgen_ty_4 { + pub sk_timer: timer_list, + pub tcp_retransmit_timer: timer_list, + pub mptcp_retransmit_timer: timer_list, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sock__bindgen_ty_5 { + pub sk_txrehash: u8_, + pub sk_scm_recv_flags: u8_, + pub __bindgen_anon_1: sock__bindgen_ty_5__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sock__bindgen_ty_5__bindgen_ty_1 { + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, +} +impl sock__bindgen_ty_5__bindgen_ty_1 { + #[inline] + pub fn sk_scm_credentials(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_sk_scm_credentials(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sk_scm_credentials_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sk_scm_credentials_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sk_scm_security(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_sk_scm_security(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sk_scm_security_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sk_scm_security_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sk_scm_pidfd(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) } + } + #[inline] + pub fn set_sk_scm_pidfd(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sk_scm_pidfd_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sk_scm_pidfd_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sk_scm_rights(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) } + } + #[inline] + pub fn set_sk_scm_rights(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sk_scm_rights_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sk_scm_rights_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sk_scm_unused(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } + } + #[inline] + pub fn set_sk_scm_unused(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 4u8, val as u64) + } + } + #[inline] + pub unsafe fn sk_scm_unused_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 4u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sk_scm_unused_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 4u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + sk_scm_credentials: u8_, + sk_scm_security: u8_, + sk_scm_pidfd: u8_, + sk_scm_rights: u8_, + sk_scm_unused: u8_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let sk_scm_credentials: u8 = unsafe { ::core::mem::transmute(sk_scm_credentials) }; + sk_scm_credentials as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let sk_scm_security: u8 = unsafe { ::core::mem::transmute(sk_scm_security) }; + sk_scm_security as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let sk_scm_pidfd: u8 = unsafe { ::core::mem::transmute(sk_scm_pidfd) }; + sk_scm_pidfd as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let sk_scm_rights: u8 = unsafe { ::core::mem::transmute(sk_scm_rights) }; + sk_scm_rights as u64 + }); + __bindgen_bitfield_unit.set(4usize, 4u8, { + let sk_scm_unused: u8 = unsafe { ::core::mem::transmute(sk_scm_unused) }; + sk_scm_unused as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sock__bindgen_ty_6 { + pub sk_rcu: callback_head, + pub sk_freeptr: freeptr_t, +} +impl sock { + #[inline] + pub fn sk_gso_disabled(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_sk_gso_disabled(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sk_gso_disabled_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sk_gso_disabled_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sk_kern_sock(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_sk_kern_sock(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sk_kern_sock_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sk_kern_sock_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sk_no_check_tx(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) } + } + #[inline] + pub fn set_sk_no_check_tx(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sk_no_check_tx_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sk_no_check_tx_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sk_no_check_rx(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) } + } + #[inline] + pub fn set_sk_no_check_rx(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sk_no_check_rx_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sk_no_check_rx_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + sk_gso_disabled: u8_, + sk_kern_sock: u8_, + sk_no_check_tx: u8_, + sk_no_check_rx: u8_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let sk_gso_disabled: u8 = unsafe { ::core::mem::transmute(sk_gso_disabled) }; + sk_gso_disabled as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let sk_kern_sock: u8 = unsafe { ::core::mem::transmute(sk_kern_sock) }; + sk_kern_sock as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let sk_no_check_tx: u8 = unsafe { ::core::mem::transmute(sk_no_check_tx) }; + sk_no_check_tx as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let sk_no_check_rx: u8 = unsafe { ::core::mem::transmute(sk_no_check_rx) }; + sk_no_check_rx as u64 + }); + __bindgen_bitfield_unit + } + #[inline] + pub fn sk_txtime_deadline_mode(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_2.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_sk_txtime_deadline_mode(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sk_txtime_deadline_mode_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sk_txtime_deadline_mode_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sk_txtime_report_errors(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_2.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_sk_txtime_report_errors(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sk_txtime_report_errors_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sk_txtime_report_errors_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sk_txtime_unused(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_2.get(2usize, 6u8) as u8) } + } + #[inline] + pub fn set_sk_txtime_unused(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(2usize, 6u8, val as u64) + } + } + #[inline] + pub unsafe fn sk_txtime_unused_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 2usize, + 6u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sk_txtime_unused_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 2usize, + 6u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_2( + sk_txtime_deadline_mode: u8_, + sk_txtime_report_errors: u8_, + sk_txtime_unused: u8_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let sk_txtime_deadline_mode: u8 = + unsafe { ::core::mem::transmute(sk_txtime_deadline_mode) }; + sk_txtime_deadline_mode as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let sk_txtime_report_errors: u8 = + unsafe { ::core::mem::transmute(sk_txtime_report_errors) }; + sk_txtime_report_errors as u64 + }); + __bindgen_bitfield_unit.set(2usize, 6u8, { + let sk_txtime_unused: u8 = unsafe { ::core::mem::transmute(sk_txtime_unused) }; + sk_txtime_unused as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sk_msg_sg { + pub start: u32_, + pub curr: u32_, + pub end: u32_, + pub size: u32_, + pub copybreak: u32_, + pub copy: [::aya_ebpf::cty::c_ulong; 1usize], + pub data: [scatterlist; 19usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sk_msg { + pub sg: sk_msg_sg, + pub data: *mut ::aya_ebpf::cty::c_void, + pub data_end: *mut ::aya_ebpf::cty::c_void, + pub apply_bytes: u32_, + pub cork_bytes: u32_, + pub flags: u32_, + pub skb: *mut sk_buff, + pub sk_redir: *mut sock, + pub sk: *mut sock, + pub list: list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct latch_tree_node { + pub node: [rb_node; 2usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_ksym { + pub start: ::aya_ebpf::cty::c_ulong, + pub end: ::aya_ebpf::cty::c_ulong, + pub name: [::aya_ebpf::cty::c_char; 512usize], + pub lnode: list_head, + pub tnode: latch_tree_node, + pub prog: bool_, + pub fp_start: u32_, + pub fp_end: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_func_info { + pub insn_off: __u32, + pub type_id: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_func_info_aux { + pub linkage: u16_, + pub unreliable: bool_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, +} +impl bpf_func_info_aux { + #[inline] + pub fn called(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_called(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn called_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_called_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn verified(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_verified(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn verified_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_verified_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(called: bool_, verified: bool_) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let called: u8 = unsafe { ::core::mem::transmute(called) }; + called as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let verified: u8 = unsafe { ::core::mem::transmute(verified) }; + verified as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_func_proto { + pub func: ::core::option::Option< + unsafe extern "C" fn(arg1: u64_, arg2: u64_, arg3: u64_, arg4: u64_, arg5: u64_) -> u64_, + >, + pub gpl_only: bool_, + pub pkt_access: bool_, + pub might_sleep: bool_, + pub allow_fastcall: bool_, + pub ret_type: bpf_return_type::Type, + pub __bindgen_anon_1: bpf_func_proto__bindgen_ty_1, + pub __bindgen_anon_2: bpf_func_proto__bindgen_ty_2, + pub ret_btf_id: *mut ::aya_ebpf::cty::c_int, + pub allowed: ::core::option::Option bool_>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_func_proto__bindgen_ty_1 { + pub __bindgen_anon_1: bpf_func_proto__bindgen_ty_1__bindgen_ty_1, + pub arg_type: [bpf_arg_type::Type; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_func_proto__bindgen_ty_1__bindgen_ty_1 { + pub arg1_type: bpf_arg_type::Type, + pub arg2_type: bpf_arg_type::Type, + pub arg3_type: bpf_arg_type::Type, + pub arg4_type: bpf_arg_type::Type, + pub arg5_type: bpf_arg_type::Type, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_func_proto__bindgen_ty_2 { + pub __bindgen_anon_1: bpf_func_proto__bindgen_ty_2__bindgen_ty_1, + pub arg_btf_id: [*mut u32_; 5usize], + pub __bindgen_anon_2: bpf_func_proto__bindgen_ty_2__bindgen_ty_2, + pub arg_size: [usize; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_func_proto__bindgen_ty_2__bindgen_ty_1 { + pub arg1_btf_id: *mut u32_, + pub arg2_btf_id: *mut u32_, + pub arg3_btf_id: *mut u32_, + pub arg4_btf_id: *mut u32_, + pub arg5_btf_id: *mut u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_func_proto__bindgen_ty_2__bindgen_ty_2 { + pub arg1_size: usize, + pub arg2_size: usize, + pub arg3_size: usize, + pub arg4_size: usize, + pub arg5_size: usize, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tnum { + pub value: u64_, + pub mask: u64_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_reg_state { + pub type_: bpf_reg_type::Type, + pub delta: s32, + pub __bindgen_anon_1: bpf_reg_state__bindgen_ty_1, + pub var_off: tnum, + pub smin_value: s64, + pub smax_value: s64, + pub umin_value: u64_, + pub umax_value: u64_, + pub s32_min_value: s32, + pub s32_max_value: s32, + pub u32_min_value: u32_, + pub u32_max_value: u32_, + pub id: u32_, + pub ref_obj_id: u32_, + pub frameno: u32_, + pub subreg_def: s32, + pub precise: bool_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_reg_state__bindgen_ty_1 { + pub range: ::aya_ebpf::cty::c_int, + pub __bindgen_anon_1: bpf_reg_state__bindgen_ty_1__bindgen_ty_1, + pub __bindgen_anon_2: bpf_reg_state__bindgen_ty_1__bindgen_ty_2, + pub __bindgen_anon_3: bpf_reg_state__bindgen_ty_1__bindgen_ty_3, + pub dynptr: bpf_reg_state__bindgen_ty_1__bindgen_ty_4, + pub iter: bpf_reg_state__bindgen_ty_1__bindgen_ty_5, + pub irq: bpf_reg_state__bindgen_ty_1__bindgen_ty_6, + pub raw: bpf_reg_state__bindgen_ty_1__bindgen_ty_7, + pub subprogno: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_reg_state__bindgen_ty_1__bindgen_ty_1 { + pub map_ptr: *mut bpf_map, + pub map_uid: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_reg_state__bindgen_ty_1__bindgen_ty_2 { + pub btf: *mut btf, + pub btf_id: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_reg_state__bindgen_ty_1__bindgen_ty_3 { + pub mem_size: u32_, + pub dynptr_id: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_reg_state__bindgen_ty_1__bindgen_ty_4 { + pub type_: bpf_dynptr_type::Type, + pub first_slot: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_reg_state__bindgen_ty_1__bindgen_ty_5 { + pub btf: *mut btf, + pub btf_id: u32_, + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +impl bpf_reg_state__bindgen_ty_1__bindgen_ty_5 { + #[inline] + pub fn state(&self) -> bpf_iter_state::Type { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u32) } + } + #[inline] + pub fn set_state(&mut self, val: bpf_iter_state::Type) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn state_raw(this: *const Self) -> bpf_iter_state::Type { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 2u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_state_raw(this: *mut Self, val: bpf_iter_state::Type) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn depth(&self) -> ::aya_ebpf::cty::c_int { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) } + } + #[inline] + pub fn set_depth(&mut self, val: ::aya_ebpf::cty::c_int) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 30u8, val as u64) + } + } + #[inline] + pub unsafe fn depth_raw(this: *const Self) -> ::aya_ebpf::cty::c_int { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 30u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_depth_raw(this: *mut Self, val: ::aya_ebpf::cty::c_int) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 30u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + state: bpf_iter_state::Type, + depth: ::aya_ebpf::cty::c_int, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 2u8, { + let state: u32 = unsafe { ::core::mem::transmute(state) }; + state as u64 + }); + __bindgen_bitfield_unit.set(2usize, 30u8, { + let depth: u32 = unsafe { ::core::mem::transmute(depth) }; + depth as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_reg_state__bindgen_ty_1__bindgen_ty_6 { + pub kfunc_class: bpf_reg_state__bindgen_ty_1__bindgen_ty_6__bindgen_ty_1::Type, +} +pub mod bpf_reg_state__bindgen_ty_1__bindgen_ty_6__bindgen_ty_1 { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IRQ_NATIVE_KFUNC: Type = 0; + pub const IRQ_LOCK_KFUNC: Type = 1; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_reg_state__bindgen_ty_1__bindgen_ty_7 { + pub raw1: ::aya_ebpf::cty::c_ulong, + pub raw2: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_retval_range { + pub minval: s32, + pub maxval: s32, + pub return_32bit: bool_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_func_state { + pub regs: [bpf_reg_state; 11usize], + pub callsite: ::aya_ebpf::cty::c_int, + pub frameno: u32_, + pub subprogno: u32_, + pub async_entry_cnt: u32_, + pub callback_ret_range: bpf_retval_range, + pub in_callback_fn: bool_, + pub in_async_callback_fn: bool_, + pub in_exception_callback_fn: bool_, + pub callback_depth: u32_, + pub stack: *mut bpf_stack_state, + pub allocated_stack: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug)] +pub struct bpf_iarray { + pub cnt: ::aya_ebpf::cty::c_int, + pub items: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_id_pair { + pub old: u32_, + pub cur: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_idmap { + pub tmp_id_gen: u32_, + pub cnt: u32_, + pub map: [bpf_id_pair; 600usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_idset { + pub num_ids: u32_, + pub entries: [bpf_idset__bindgen_ty_1; 600usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_idset__bindgen_ty_1 { + pub id: u32_, + pub cnt: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_insn { + pub code: __u8, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub off: __s16, + pub imm: __s32, +} +impl bpf_insn { + #[inline] + pub fn dst_reg(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } + } + #[inline] + pub fn set_dst_reg(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 4u8, val as u64) + } + } + #[inline] + pub unsafe fn dst_reg_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 4u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_dst_reg_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 4u8, + val as u64, + ) + } + } + #[inline] + pub fn src_reg(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } + } + #[inline] + pub fn set_src_reg(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 4u8, val as u64) + } + } + #[inline] + pub unsafe fn src_reg_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 4u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_src_reg_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 4u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(dst_reg: __u8, src_reg: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 4u8, { + let dst_reg: u8 = unsafe { ::core::mem::transmute(dst_reg) }; + dst_reg as u64 + }); + __bindgen_bitfield_unit.set(4usize, 4u8, { + let src_reg: u8 = unsafe { ::core::mem::transmute(src_reg) }; + src_reg as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_insn_access_aux { + pub reg_type: bpf_reg_type::Type, + pub is_ldsx: bool_, + pub __bindgen_anon_1: bpf_insn_access_aux__bindgen_ty_1, + pub log: *mut bpf_verifier_log, + pub is_retval: bool_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_insn_access_aux__bindgen_ty_1 { + pub ctx_field_size: ::aya_ebpf::cty::c_int, + pub __bindgen_anon_1: bpf_insn_access_aux__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_insn_access_aux__bindgen_ty_1__bindgen_ty_1 { + pub btf: *mut btf, + pub btf_id: u32_, + pub ref_obj_id: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_map_ptr_state { + pub map_ptr: *mut bpf_map, + pub poison: bool_, + pub unpriv: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_loop_inline_state { + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub callback_subprogno: u32_, +} +impl bpf_loop_inline_state { + #[inline] + pub fn initialized(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_initialized(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn initialized_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_initialized_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fit_for_inline(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_fit_for_inline(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fit_for_inline_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_fit_for_inline_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + initialized: ::aya_ebpf::cty::c_uint, + fit_for_inline: ::aya_ebpf::cty::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let initialized: u32 = unsafe { ::core::mem::transmute(initialized) }; + initialized as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let fit_for_inline: u32 = unsafe { ::core::mem::transmute(fit_for_inline) }; + fit_for_inline as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_insn_aux_data { + pub __bindgen_anon_1: bpf_insn_aux_data__bindgen_ty_1, + pub __bindgen_anon_2: bpf_insn_aux_data__bindgen_ty_2, + pub jt: *mut bpf_iarray, + pub kptr_struct_meta: *mut btf_struct_meta, + pub map_key_state: u64_, + pub ctx_field_size: ::aya_ebpf::cty::c_int, + pub seen: u32_, + pub nospec: bool_, + pub nospec_result: bool_, + pub zext_dst: bool_, + pub needs_zext: bool_, + pub non_sleepable: bool_, + pub is_iter_next: bool_, + pub call_with_percpu_alloc_ptr: bool_, + pub alu_state: u8_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub orig_idx: ::aya_ebpf::cty::c_uint, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 1usize]>, + pub scc: u32_, + pub live_regs_before: u16_, + pub const_reg_mask: u16_, + pub const_reg_map_mask: u16_, + pub const_reg_subprog_mask: u16_, + pub const_reg_vals: [u32_; 10usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_insn_aux_data__bindgen_ty_1 { + pub ptr_type: bpf_reg_type::Type, + pub map_ptr_state: bpf_map_ptr_state, + pub call_imm: s32, + pub alu_limit: u32_, + pub __bindgen_anon_1: bpf_insn_aux_data__bindgen_ty_1__bindgen_ty_1, + pub btf_var: bpf_insn_aux_data__bindgen_ty_1__bindgen_ty_2, + pub loop_inline_state: bpf_loop_inline_state, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_insn_aux_data__bindgen_ty_1__bindgen_ty_1 { + pub map_index: u32_, + pub map_off: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_insn_aux_data__bindgen_ty_1__bindgen_ty_2 { + pub reg_type: bpf_reg_type::Type, + pub __bindgen_anon_1: bpf_insn_aux_data__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_insn_aux_data__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 { + pub __bindgen_anon_1: bpf_insn_aux_data__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1, + pub mem_size: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_insn_aux_data__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1 { + pub btf: *mut btf, + pub btf_id: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_insn_aux_data__bindgen_ty_2 { + pub obj_new_size: u64_, + pub insert_off: u64_, +} +impl bpf_insn_aux_data { + #[inline] + pub fn fastcall_pattern(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_fastcall_pattern(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fastcall_pattern_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fastcall_pattern_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fastcall_spills_num(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 3u8) as u8) } + } + #[inline] + pub fn set_fastcall_spills_num(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 3u8, val as u64) + } + } + #[inline] + pub unsafe fn fastcall_spills_num_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 3u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fastcall_spills_num_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 3u8, + val as u64, + ) + } + } + #[inline] + pub fn arg_prog(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } + } + #[inline] + pub fn set_arg_prog(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 4u8, val as u64) + } + } + #[inline] + pub unsafe fn arg_prog_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 4u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_arg_prog_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 4u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + fastcall_pattern: u8_, + fastcall_spills_num: u8_, + arg_prog: u8_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let fastcall_pattern: u8 = unsafe { ::core::mem::transmute(fastcall_pattern) }; + fastcall_pattern as u64 + }); + __bindgen_bitfield_unit.set(1usize, 3u8, { + let fastcall_spills_num: u8 = unsafe { ::core::mem::transmute(fastcall_spills_num) }; + fastcall_spills_num as u64 + }); + __bindgen_bitfield_unit.set(4usize, 4u8, { + let arg_prog: u8 = unsafe { ::core::mem::transmute(arg_prog) }; + arg_prog as u64 + }); + __bindgen_bitfield_unit + } + #[inline] + pub fn jmp_point(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_2.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_jmp_point(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_2.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn jmp_point_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_jmp_point_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn prune_point(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_2.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_prune_point(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_2.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn prune_point_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 1usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_prune_point_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn force_checkpoint(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_2.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_force_checkpoint(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_2.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn force_checkpoint_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 2usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_force_checkpoint_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn calls_callback(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_2.get(3usize, 1u8) as u32) } + } + #[inline] + pub fn set_calls_callback(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_2.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn calls_callback_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 3usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_calls_callback_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn indirect_target(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_2.get(4usize, 1u8) as u32) } + } + #[inline] + pub fn set_indirect_target(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_2.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn indirect_target_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 4usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_indirect_target_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_2( + jmp_point: u32_, + prune_point: u32_, + force_checkpoint: u32_, + calls_callback: u32_, + indirect_target: u32_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let jmp_point: u32 = unsafe { ::core::mem::transmute(jmp_point) }; + jmp_point as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let prune_point: u32 = unsafe { ::core::mem::transmute(prune_point) }; + prune_point as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let force_checkpoint: u32 = unsafe { ::core::mem::transmute(force_checkpoint) }; + force_checkpoint as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let calls_callback: u32 = unsafe { ::core::mem::transmute(calls_callback) }; + calls_callback as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let indirect_target: u32 = unsafe { ::core::mem::transmute(indirect_target) }; + indirect_target as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_iter_aux_info { + pub map: *mut bpf_map, + pub cgroup: bpf_iter_aux_info__bindgen_ty_1, + pub task: bpf_iter_aux_info__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_iter_aux_info__bindgen_ty_1 { + pub start: *mut cgroup, + pub order: bpf_cgroup_iter_order::Type, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_iter_aux_info__bindgen_ty_2 { + pub type_: bpf_iter_task_type::Type, + pub pid: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct scx_dsq_list_node { + pub node: list_head, + pub flags: u32_, + pub priv_: u32_, +} +pub type bpf_iter_init_seq_priv_t = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ::aya_ebpf::cty::c_void, + arg2: *mut bpf_iter_aux_info, + ) -> ::aya_ebpf::cty::c_int, +>; +pub type bpf_iter_fini_seq_priv_t = + ::core::option::Option; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_iter_seq_info { + pub seq_ops: *const seq_operations, + pub init_seq_private: bpf_iter_init_seq_priv_t, + pub fini_seq_private: bpf_iter_fini_seq_priv_t, + pub seq_priv_size: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pgprot { + pub pgprot: pgprotval_t, +} +pub type pgprot_t = pgprot; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct vm_userfaultfd_ctx { + pub ctx: *mut userfaultfd_ctx, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct vm_area_struct { + pub __bindgen_anon_1: vm_area_struct__bindgen_ty_1, + pub vm_mm: *mut mm_struct, + pub vm_page_prot: pgprot_t, + pub __bindgen_anon_2: vm_area_struct__bindgen_ty_2, + pub vm_lock_seq: ::aya_ebpf::cty::c_uint, + pub anon_vma_chain: list_head, + pub anon_vma: *mut anon_vma, + pub vm_ops: *const vm_operations_struct, + pub vm_pgoff: ::aya_ebpf::cty::c_ulong, + pub vm_file: *mut file, + pub vm_private_data: *mut ::aya_ebpf::cty::c_void, + pub swap_readahead_info: atomic_long_t, + pub vm_policy: *mut mempolicy, + pub numab_state: *mut vma_numab_state, + pub vm_refcnt: refcount_t, + pub shared: vm_area_struct__bindgen_ty_3, + pub anon_name: *mut anon_vma_name, + pub vm_userfaultfd_ctx: vm_userfaultfd_ctx, + pub pfnmap_track_ctx: *mut pfnmap_track_ctx, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union vm_area_struct__bindgen_ty_1 { + pub __bindgen_anon_1: vm_area_struct__bindgen_ty_1__bindgen_ty_1, + pub vm_freeptr: freeptr_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct vm_area_struct__bindgen_ty_1__bindgen_ty_1 { + pub vm_start: ::aya_ebpf::cty::c_ulong, + pub vm_end: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union vm_area_struct__bindgen_ty_2 { + pub vm_flags: vm_flags_t, + pub flags: vma_flags_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct vm_area_struct__bindgen_ty_3 { + pub rb: rb_node, + pub rb_subtree_last: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_jit_poke_descriptor { + pub tailcall_target: *mut ::aya_ebpf::cty::c_void, + pub tailcall_bypass: *mut ::aya_ebpf::cty::c_void, + pub bypass_addr: *mut ::aya_ebpf::cty::c_void, + pub aux: *mut ::aya_ebpf::cty::c_void, + pub __bindgen_anon_1: bpf_jit_poke_descriptor__bindgen_ty_1, + pub tailcall_target_stable: bool_, + pub adj_off: u8_, + pub reason: u16_, + pub insn_idx: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_jit_poke_descriptor__bindgen_ty_1 { + pub tail_call: bpf_jit_poke_descriptor__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_jit_poke_descriptor__bindgen_ty_1__bindgen_ty_1 { + pub map: *mut bpf_map, + pub key: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_jmp_history_entry { + pub idx: u32_, + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, + pub linked_regs: u64_, +} +impl bpf_jmp_history_entry { + #[inline] + pub fn prev_idx(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 20u8) as u32) } + } + #[inline] + pub fn set_prev_idx(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 20u8, val as u64) + } + } + #[inline] + pub unsafe fn prev_idx_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 20u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_prev_idx_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 20u8, + val as u64, + ) + } + } + #[inline] + pub fn flags(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 12u8) as u32) } + } + #[inline] + pub fn set_flags(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(20usize, 12u8, val as u64) + } + } + #[inline] + pub unsafe fn flags_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 20usize, + 12u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_flags_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 20usize, + 12u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(prev_idx: u32_, flags: u32_) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 20u8, { + let prev_idx: u32 = unsafe { ::core::mem::transmute(prev_idx) }; + prev_idx as u64 + }); + __bindgen_bitfield_unit.set(20usize, 12u8, { + let flags: u32 = unsafe { ::core::mem::transmute(flags) }; + flags as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_kfunc_btf { + pub btf: *mut btf, + pub module: *mut module, + pub offset: u16_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_kfunc_btf_tab { + pub descs: [bpf_kfunc_btf; 256usize], + pub nr_descs: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_kfunc_desc { + pub func_model: btf_func_model, + pub func_id: u32_, + pub imm: s32, + pub offset: u16_, + pub addr: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_kfunc_desc_tab { + pub descs: [bpf_kfunc_desc; 256usize], + pub nr_descs: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_line_info { + pub insn_off: __u32, + pub file_name_off: __u32, + pub line_off: __u32, + pub line_col: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_link_info { + pub type_: __u32, + pub id: __u32, + pub prog_id: __u32, + pub __bindgen_anon_1: bpf_link_info__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_link_info__bindgen_ty_1 { + pub raw_tracepoint: bpf_link_info__bindgen_ty_1__bindgen_ty_1, + pub tracing: bpf_link_info__bindgen_ty_1__bindgen_ty_2, + pub cgroup: bpf_link_info__bindgen_ty_1__bindgen_ty_3, + pub iter: bpf_link_info__bindgen_ty_1__bindgen_ty_4, + pub netns: bpf_link_info__bindgen_ty_1__bindgen_ty_5, + pub xdp: bpf_link_info__bindgen_ty_1__bindgen_ty_6, + pub struct_ops: bpf_link_info__bindgen_ty_1__bindgen_ty_7, + pub netfilter: bpf_link_info__bindgen_ty_1__bindgen_ty_8, + pub kprobe_multi: bpf_link_info__bindgen_ty_1__bindgen_ty_9, + pub uprobe_multi: bpf_link_info__bindgen_ty_1__bindgen_ty_10, + pub perf_event: bpf_link_info__bindgen_ty_1__bindgen_ty_11, + pub tcx: bpf_link_info__bindgen_ty_1__bindgen_ty_12, + pub netkit: bpf_link_info__bindgen_ty_1__bindgen_ty_13, + pub sockmap: bpf_link_info__bindgen_ty_1__bindgen_ty_14, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_1 { + pub tp_name: __u64, + pub tp_name_len: __u32, + pub cookie: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_2 { + pub attach_type: __u32, + pub target_obj_id: __u32, + pub target_btf_id: __u32, + pub cookie: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_3 { + pub cgroup_id: __u64, + pub attach_type: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_4 { + pub target_name: __u64, + pub target_name_len: __u32, + pub __bindgen_anon_1: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1, + pub __bindgen_anon_2: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1 { + pub map: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1 { + pub map_id: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2 { + pub cgroup: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2__bindgen_ty_1, + pub task: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2__bindgen_ty_1 { + pub cgroup_id: __u64, + pub order: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2__bindgen_ty_2 { + pub tid: __u32, + pub pid: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_5 { + pub netns_ino: __u32, + pub attach_type: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_6 { + pub ifindex: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_7 { + pub map_id: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_8 { + pub pf: __u32, + pub hooknum: __u32, + pub priority: __s32, + pub flags: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_9 { + pub addrs: __u64, + pub count: __u32, + pub flags: __u32, + pub missed: __u64, + pub cookies: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_10 { + pub path: __u64, + pub offsets: __u64, + pub ref_ctr_offsets: __u64, + pub cookies: __u64, + pub path_size: __u32, + pub count: __u32, + pub flags: __u32, + pub pid: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11 { + pub type_: __u32, + pub __bindgen_anon_1: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1 { + pub uprobe: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_1, + pub kprobe: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_2, + pub tracepoint: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_3, + pub event: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_4, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_1 { + pub file_name: __u64, + pub name_len: __u32, + pub offset: __u32, + pub cookie: __u64, + pub ref_ctr_offset: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_2 { + pub func_name: __u64, + pub name_len: __u32, + pub offset: __u32, + pub addr: __u64, + pub missed: __u64, + pub cookie: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_3 { + pub tp_name: __u64, + pub name_len: __u32, + pub cookie: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_4 { + pub config: __u64, + pub type_: __u32, + pub cookie: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_12 { + pub ifindex: __u32, + pub attach_type: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_13 { + pub ifindex: __u32, + pub attach_type: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_14 { + pub map_id: __u32, + pub attach_type: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_link_ops { + pub release: ::core::option::Option, + pub dealloc: ::core::option::Option, + pub dealloc_deferred: ::core::option::Option, + pub detach: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub update_prog: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_link, + arg2: *mut bpf_prog, + arg3: *mut bpf_prog, + ) -> ::aya_ebpf::cty::c_int, + >, + pub show_fdinfo: + ::core::option::Option, + pub fill_link_info: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const bpf_link, + arg2: *mut bpf_link_info, + ) -> ::aya_ebpf::cty::c_int, + >, + pub update_map: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_link, + arg2: *mut bpf_map, + arg3: *mut bpf_map, + ) -> ::aya_ebpf::cty::c_int, + >, + pub poll: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut file, arg2: *mut poll_table_struct) -> __poll_t, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct live_stack_query { + pub instances: [*mut func_instance; 8usize], + pub callsites: [u32_; 8usize], + pub curframe: u32_, + pub insn_idx: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_liveness { + pub func_instances: [hlist_head; 256usize], + pub live_stack_query: live_stack_query, + pub subprog_calls: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_local_storage { + pub cache: [*mut bpf_local_storage_data; 16usize], + pub list: hlist_head, + pub owner: *mut ::aya_ebpf::cty::c_void, + pub rcu: callback_head, + pub lock: rqspinlock_t, + pub mem_charge: u64_, + pub owner_refcnt: refcount_t, +} +#[repr(C)] +#[derive(Debug)] +pub struct bpf_local_storage_data { + pub smap: *mut bpf_local_storage_map, + pub data: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_local_storage_map { + pub map: bpf_map, + pub buckets: *mut bpf_local_storage_map_bucket, + pub bucket_log: u32_, + pub elem_size: u16_, + pub cache_idx: u16_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_local_storage_map_bucket { + pub list: hlist_head, + pub lock: rqspinlock_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_map_dev_ops { + pub map_get_next_key: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_offloaded_map, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub map_lookup_elem: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_offloaded_map, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub map_update_elem: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_offloaded_map, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: *mut ::aya_ebpf::cty::c_void, + arg4: u64_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub map_delete_elem: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_offloaded_map, + arg2: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, +} +pub type bpf_callback_t = ::core::option::Option< + unsafe extern "C" fn(arg1: u64_, arg2: u64_, arg3: u64_, arg4: u64_, arg5: u64_) -> u64_, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_map_ops { + pub map_alloc_check: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub map_alloc: + ::core::option::Option *mut bpf_map>, + pub map_release: + ::core::option::Option, + pub map_free: ::core::option::Option, + pub map_get_next_key: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_map, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub map_release_uref: ::core::option::Option, + pub map_lookup_elem_sys_only: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_map, + arg2: *mut ::aya_ebpf::cty::c_void, + ) -> *mut ::aya_ebpf::cty::c_void, + >, + pub map_lookup_batch: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_map, + arg2: *const bpf_attr, + arg3: *mut bpf_attr, + ) -> ::aya_ebpf::cty::c_int, + >, + pub map_lookup_and_delete_elem: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_map, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: *mut ::aya_ebpf::cty::c_void, + arg4: u64_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub map_lookup_and_delete_batch: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_map, + arg2: *const bpf_attr, + arg3: *mut bpf_attr, + ) -> ::aya_ebpf::cty::c_int, + >, + pub map_update_batch: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_map, + arg2: *mut file, + arg3: *const bpf_attr, + arg4: *mut bpf_attr, + ) -> ::aya_ebpf::cty::c_int, + >, + pub map_delete_batch: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_map, + arg2: *const bpf_attr, + arg3: *mut bpf_attr, + ) -> ::aya_ebpf::cty::c_int, + >, + pub map_lookup_elem: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_map, + arg2: *mut ::aya_ebpf::cty::c_void, + ) -> *mut ::aya_ebpf::cty::c_void, + >, + pub map_update_elem: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_map, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: *mut ::aya_ebpf::cty::c_void, + arg4: u64_, + ) -> ::aya_ebpf::cty::c_long, + >, + pub map_delete_elem: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_map, + arg2: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_long, + >, + pub map_push_elem: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_map, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: u64_, + ) -> ::aya_ebpf::cty::c_long, + >, + pub map_pop_elem: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_map, + arg2: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_long, + >, + pub map_peek_elem: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_map, + arg2: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_long, + >, + pub map_lookup_percpu_elem: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_map, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: u32_, + ) -> *mut ::aya_ebpf::cty::c_void, + >, + pub map_get_hash: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_map, + arg2: u32_, + arg3: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub map_fd_get_ptr: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_map, + arg2: *mut file, + arg3: ::aya_ebpf::cty::c_int, + ) -> *mut ::aya_ebpf::cty::c_void, + >, + pub map_fd_put_ptr: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut bpf_map, arg2: *mut ::aya_ebpf::cty::c_void, arg3: bool_), + >, + pub map_gen_lookup: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut bpf_map, arg2: *mut bpf_insn) -> ::aya_ebpf::cty::c_int, + >, + pub map_fd_sys_lookup_elem: + ::core::option::Option u32_>, + pub map_seq_show_elem: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_map, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: *mut seq_file, + ), + >, + pub map_check_btf: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_map, + arg2: *const btf, + arg3: *const btf_type, + arg4: *const btf_type, + ) -> ::aya_ebpf::cty::c_int, + >, + pub map_poke_track: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut bpf_map, arg2: *mut bpf_prog_aux) -> ::aya_ebpf::cty::c_int, + >, + pub map_poke_untrack: + ::core::option::Option, + pub map_poke_run: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_map, + arg2: u32_, + arg3: *mut bpf_prog, + arg4: *mut bpf_prog, + ), + >, + pub map_direct_value_addr: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const bpf_map, + arg2: *mut u64_, + arg3: u32_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub map_direct_value_meta: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const bpf_map, + arg2: u64_, + arg3: *mut u32_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub map_mmap: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_map, + arg2: *mut vm_area_struct, + ) -> ::aya_ebpf::cty::c_int, + >, + pub map_poll: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_map, + arg2: *mut file, + arg3: *mut poll_table_struct, + ) -> __poll_t, + >, + pub map_get_unmapped_area: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file, + arg2: ::aya_ebpf::cty::c_ulong, + arg3: ::aya_ebpf::cty::c_ulong, + arg4: ::aya_ebpf::cty::c_ulong, + arg5: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_ulong, + >, + pub map_local_storage_charge: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_local_storage_map, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: u32_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub map_local_storage_uncharge: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_local_storage_map, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: u32_, + ), + >, + pub map_owner_storage_ptr: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ::aya_ebpf::cty::c_void) -> *mut *mut bpf_local_storage, + >, + pub map_redirect: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut bpf_map, arg2: u64_, arg3: u64_) -> ::aya_ebpf::cty::c_long, + >, + pub map_meta_equal: ::core::option::Option< + unsafe extern "C" fn(arg1: *const bpf_map, arg2: *const bpf_map) -> bool_, + >, + pub map_set_for_each_callback_args: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_verifier_env, + arg2: *mut bpf_func_state, + arg3: *mut bpf_func_state, + ) -> ::aya_ebpf::cty::c_int, + >, + pub map_for_each_callback: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_map, + arg2: bpf_callback_t, + arg3: *mut ::aya_ebpf::cty::c_void, + arg4: u64_, + ) -> ::aya_ebpf::cty::c_long, + >, + pub map_mem_usage: ::core::option::Option u64_>, + pub map_btf_id: *mut ::aya_ebpf::cty::c_int, + pub iter_seq_info: *const bpf_iter_seq_info, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_map_owner { + pub type_: bpf_prog_type::Type, + pub jited: bool_, + pub xdp_has_frags: bool_, + pub sleepable: bool_, + pub storage_cookie: [u64_; 2usize], + pub attach_func_proto: *const btf_type, + pub expected_attach_type: bpf_attach_type::Type, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_mprog_fp { + pub prog: *mut bpf_prog, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_mprog_entry { + pub fp_items: [bpf_mprog_fp; 64usize], + pub parent: *mut bpf_mprog_bundle, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_mprog_cp { + pub link: *mut bpf_link, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_mprog_bundle { + pub a: bpf_mprog_entry, + pub b: bpf_mprog_entry, + pub cp_items: [bpf_mprog_cp; 64usize], + pub ref_: *mut bpf_prog, + pub revision: atomic64_t, + pub count: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_nh_params { + pub nh_family: u32_, + pub __bindgen_anon_1: bpf_nh_params__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_nh_params__bindgen_ty_1 { + pub ipv4_nh: u32_, + pub ipv6_nh: in6_addr, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_redirect_info { + pub tgt_index: u64_, + pub tgt_value: *mut ::aya_ebpf::cty::c_void, + pub map: *mut bpf_map, + pub flags: u32_, + pub map_id: u32_, + pub map_type: bpf_map_type::Type, + pub nh: bpf_nh_params, + pub kern_flags: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_net_context { + pub ri: bpf_redirect_info, + pub cpu_map_flush_list: list_head, + pub dev_map_flush_list: list_head, + pub xskmap_map_flush_list: list_head, +} +pub type nf_hookfn = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ::aya_ebpf::cty::c_void, + arg2: *mut sk_buff, + arg3: *const nf_hook_state, + ) -> ::aya_ebpf::cty::c_uint, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_offload_dev { + pub ops: *const bpf_prog_offload_ops, + pub netdevs: list_head, + pub priv_: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_offloaded_map { + pub map: bpf_map, + pub netdev: *mut net_device, + pub dev_ops: *const bpf_map_dev_ops, + pub dev_priv: *mut ::aya_ebpf::cty::c_void, + pub offloads: list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sock_filter { + pub code: __u16, + pub jt: __u8, + pub jf: __u8, + pub k: __u32, +} +#[repr(C)] +pub struct bpf_prog { + pub pages: u16_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, + pub type_: bpf_prog_type::Type, + pub expected_attach_type: bpf_attach_type::Type, + pub len: u32_, + pub jited_len: u32_, + pub __bindgen_anon_1: bpf_prog__bindgen_ty_1, + pub stats: *mut bpf_prog_stats, + pub active: *mut u8_, + pub bpf_func: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const ::aya_ebpf::cty::c_void, + arg2: *const bpf_insn, + ) -> ::aya_ebpf::cty::c_uint, + >, + pub aux: *mut bpf_prog_aux, + pub orig_prog: *mut sock_fprog_kern, + pub __bindgen_anon_2: bpf_prog__bindgen_ty_2, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_prog__bindgen_ty_1 { + pub digest: [u8_; 32usize], + pub tag: [u8_; 8usize], +} +#[repr(C)] +pub struct bpf_prog__bindgen_ty_2 { + pub __bindgen_anon_1: __BindgenUnionField, + pub __bindgen_anon_2: __BindgenUnionField, + pub bindgen_union_field: [u32; 0usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct bpf_prog__bindgen_ty_2__bindgen_ty_1 { + pub __empty_insns: bpf_prog__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1, + pub insns: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_prog__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1 {} +#[repr(C)] +#[derive(Debug)] +pub struct bpf_prog__bindgen_ty_2__bindgen_ty_2 { + pub __empty_insnsi: bpf_prog__bindgen_ty_2__bindgen_ty_2__bindgen_ty_1, + pub insnsi: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_prog__bindgen_ty_2__bindgen_ty_2__bindgen_ty_1 {} +impl bpf_prog { + #[inline] + pub fn jited(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) } + } + #[inline] + pub fn set_jited(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn jited_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_jited_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn jit_requested(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) } + } + #[inline] + pub fn set_jit_requested(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn jit_requested_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_jit_requested_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn gpl_compatible(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) } + } + #[inline] + pub fn set_gpl_compatible(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn gpl_compatible_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_gpl_compatible_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn cb_access(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u16) } + } + #[inline] + pub fn set_cb_access(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn cb_access_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_cb_access_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn dst_needed(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u16) } + } + #[inline] + pub fn set_dst_needed(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dst_needed_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_dst_needed_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn blinding_requested(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u16) } + } + #[inline] + pub fn set_blinding_requested(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn blinding_requested_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 5usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_blinding_requested_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 5usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn blinded(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u16) } + } + #[inline] + pub fn set_blinded(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn blinded_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 6usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_blinded_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 6usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn is_func(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u16) } + } + #[inline] + pub fn set_is_func(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn is_func_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 7usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_is_func_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 7usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn kprobe_override(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u16) } + } + #[inline] + pub fn set_kprobe_override(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(8usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn kprobe_override_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 8usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_kprobe_override_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 8usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn has_callchain_buf(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u16) } + } + #[inline] + pub fn set_has_callchain_buf(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(9usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn has_callchain_buf_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 9usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_has_callchain_buf_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 9usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn enforce_expected_attach_type(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u16) } + } + #[inline] + pub fn set_enforce_expected_attach_type(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(10usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn enforce_expected_attach_type_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 10usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_enforce_expected_attach_type_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 10usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn call_get_stack(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u16) } + } + #[inline] + pub fn set_call_get_stack(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(11usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn call_get_stack_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 11usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_call_get_stack_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 11usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn call_get_func_ip(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) } + } + #[inline] + pub fn set_call_get_func_ip(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(12usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn call_get_func_ip_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 12usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_call_get_func_ip_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 12usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn call_session_cookie(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) } + } + #[inline] + pub fn set_call_session_cookie(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(13usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn call_session_cookie_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 13usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_call_session_cookie_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 13usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn tstamp_type_access(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u16) } + } + #[inline] + pub fn set_tstamp_type_access(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(14usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn tstamp_type_access_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 14usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_tstamp_type_access_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 14usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sleepable(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u16) } + } + #[inline] + pub fn set_sleepable(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(15usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sleepable_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 15usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_sleepable_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 15usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + jited: u16_, + jit_requested: u16_, + gpl_compatible: u16_, + cb_access: u16_, + dst_needed: u16_, + blinding_requested: u16_, + blinded: u16_, + is_func: u16_, + kprobe_override: u16_, + has_callchain_buf: u16_, + enforce_expected_attach_type: u16_, + call_get_stack: u16_, + call_get_func_ip: u16_, + call_session_cookie: u16_, + tstamp_type_access: u16_, + sleepable: u16_, + ) -> __BindgenBitfieldUnit<[u8; 2usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let jited: u16 = unsafe { ::core::mem::transmute(jited) }; + jited as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let jit_requested: u16 = unsafe { ::core::mem::transmute(jit_requested) }; + jit_requested as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let gpl_compatible: u16 = unsafe { ::core::mem::transmute(gpl_compatible) }; + gpl_compatible as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let cb_access: u16 = unsafe { ::core::mem::transmute(cb_access) }; + cb_access as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let dst_needed: u16 = unsafe { ::core::mem::transmute(dst_needed) }; + dst_needed as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let blinding_requested: u16 = unsafe { ::core::mem::transmute(blinding_requested) }; + blinding_requested as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let blinded: u16 = unsafe { ::core::mem::transmute(blinded) }; + blinded as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let is_func: u16 = unsafe { ::core::mem::transmute(is_func) }; + is_func as u64 + }); + __bindgen_bitfield_unit.set(8usize, 1u8, { + let kprobe_override: u16 = unsafe { ::core::mem::transmute(kprobe_override) }; + kprobe_override as u64 + }); + __bindgen_bitfield_unit.set(9usize, 1u8, { + let has_callchain_buf: u16 = unsafe { ::core::mem::transmute(has_callchain_buf) }; + has_callchain_buf as u64 + }); + __bindgen_bitfield_unit.set(10usize, 1u8, { + let enforce_expected_attach_type: u16 = + unsafe { ::core::mem::transmute(enforce_expected_attach_type) }; + enforce_expected_attach_type as u64 + }); + __bindgen_bitfield_unit.set(11usize, 1u8, { + let call_get_stack: u16 = unsafe { ::core::mem::transmute(call_get_stack) }; + call_get_stack as u64 + }); + __bindgen_bitfield_unit.set(12usize, 1u8, { + let call_get_func_ip: u16 = unsafe { ::core::mem::transmute(call_get_func_ip) }; + call_get_func_ip as u64 + }); + __bindgen_bitfield_unit.set(13usize, 1u8, { + let call_session_cookie: u16 = unsafe { ::core::mem::transmute(call_session_cookie) }; + call_session_cookie as u64 + }); + __bindgen_bitfield_unit.set(14usize, 1u8, { + let tstamp_type_access: u16 = unsafe { ::core::mem::transmute(tstamp_type_access) }; + tstamp_type_access as u64 + }); + __bindgen_bitfield_unit.set(15usize, 1u8, { + let sleepable: u16 = unsafe { ::core::mem::transmute(sleepable) }; + sleepable as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_prog_array_item { + pub prog: *mut bpf_prog, + pub __bindgen_anon_1: bpf_prog_array_item__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_prog_array_item__bindgen_ty_1 { + pub cgroup_storage: [*mut bpf_cgroup_storage; 2usize], + pub bpf_cookie: u64_, +} +#[repr(C)] +pub struct bpf_prog_array { + pub rcu: callback_head, + pub items: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_stream { + pub capacity: atomic_t, + pub log: llist_head, + pub lock: mutex, + pub backlog_head: *mut llist_node, + pub backlog_tail: *mut llist_node, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_prog_aux { + pub refcnt: atomic64_t, + pub used_map_cnt: u32_, + pub used_btf_cnt: u32_, + pub max_ctx_offset: u32_, + pub max_pkt_offset: u32_, + pub max_tp_access: u32_, + pub stack_depth: u32_, + pub id: u32_, + pub func_cnt: u32_, + pub real_func_cnt: u32_, + pub func_idx: u32_, + pub attach_btf_id: u32_, + pub attach_st_ops_member_off: u32_, + pub ctx_arg_info_size: u32_, + pub max_rdonly_access: u32_, + pub max_rdwr_access: u32_, + pub subprog_start: u32_, + pub attach_btf: *mut btf, + pub ctx_arg_info: *mut bpf_ctx_arg_aux, + pub priv_stack_ptr: *mut ::aya_ebpf::cty::c_void, + pub dst_mutex: mutex, + pub dst_prog: *mut bpf_prog, + pub dst_trampoline: *mut bpf_trampoline, + pub saved_dst_prog_type: bpf_prog_type::Type, + pub saved_dst_attach_type: bpf_attach_type::Type, + pub verifier_zext: bool_, + pub dev_bound: bool_, + pub offload_requested: bool_, + pub attach_btf_trace: bool_, + pub attach_tracing_prog: bool_, + pub func_proto_unreliable: bool_, + pub tail_call_reachable: bool_, + pub xdp_has_frags: bool_, + pub exception_cb: bool_, + pub exception_boundary: bool_, + pub is_extended: bool_, + pub jits_use_priv_stack: bool_, + pub priv_stack_requested: bool_, + pub changes_pkt_data: bool_, + pub might_sleep: bool_, + pub kprobe_write_ctx: bool_, + pub prog_array_member_cnt: u64_, + pub ext_mutex: mutex, + pub arena: *mut bpf_arena, + pub recursion_detected: ::core::option::Option, + pub attach_func_proto: *const btf_type, + pub attach_func_name: *const ::aya_ebpf::cty::c_char, + pub func: *mut *mut bpf_prog, + pub main_prog_aux: *mut bpf_prog_aux, + pub jit_data: *mut ::aya_ebpf::cty::c_void, + pub poke_tab: *mut bpf_jit_poke_descriptor, + pub kfunc_tab: *mut bpf_kfunc_desc_tab, + pub kfunc_btf_tab: *mut bpf_kfunc_btf_tab, + pub size_poke_tab: u32_, + pub ksym: bpf_ksym, + pub ops: *const bpf_prog_ops, + pub st_ops: *const bpf_struct_ops, + pub used_maps: *mut *mut bpf_map, + pub used_maps_mutex: mutex, + pub used_btfs: *mut btf_mod_pair, + pub prog: *mut bpf_prog, + pub user: *mut user_struct, + pub load_time: u64_, + pub verified_insns: u32_, + pub cgroup_atype: ::aya_ebpf::cty::c_int, + pub cgroup_storage: [*mut bpf_map; 2usize], + pub name: [::aya_ebpf::cty::c_char; 16usize], + pub bpf_exception_cb: ::core::option::Option< + unsafe extern "C" fn(arg1: u64_, arg2: u64_, arg3: u64_, arg4: u64_, arg5: u64_) -> u64_, + >, + pub security: *mut ::aya_ebpf::cty::c_void, + pub token: *mut bpf_token, + pub offload: *mut bpf_prog_offload, + pub btf: *mut btf, + pub func_info: *mut bpf_func_info, + pub func_info_aux: *mut bpf_func_info_aux, + pub linfo: *mut bpf_line_info, + pub jited_linfo: *mut *mut ::aya_ebpf::cty::c_void, + pub func_info_cnt: u32_, + pub nr_linfo: u32_, + pub linfo_idx: u32_, + pub mod_: *mut module, + pub num_exentries: u32_, + pub extable: *mut exception_table_entry, + pub __bindgen_anon_1: bpf_prog_aux__bindgen_ty_1, + pub stream: [bpf_stream; 2usize], + pub st_ops_assoc_mutex: mutex, + pub st_ops_assoc: *mut bpf_map, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_prog_aux__bindgen_ty_1 { + pub work: work_struct, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_prog_offload { + pub prog: *mut bpf_prog, + pub netdev: *mut net_device, + pub offdev: *mut bpf_offload_dev, + pub dev_priv: *mut ::aya_ebpf::cty::c_void, + pub offloads: list_head, + pub dev_state: bool_, + pub opt_failed: bool_, + pub jited_image: *mut ::aya_ebpf::cty::c_void, + pub jited_len: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_prog_offload_ops { + pub insn_hook: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_verifier_env, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub finalize: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut bpf_verifier_env) -> ::aya_ebpf::cty::c_int, + >, + pub replace_insn: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_verifier_env, + arg2: u32_, + arg3: *mut bpf_insn, + ) -> ::aya_ebpf::cty::c_int, + >, + pub remove_insns: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_verifier_env, + arg2: u32_, + arg3: u32_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub prepare: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub translate: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub destroy: ::core::option::Option, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_prog_ops { + pub test_run: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_prog, + arg2: *const bpf_attr, + arg3: *mut bpf_attr, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_prog_stats { + pub cnt: u64_stats_t, + pub nsecs: u64_stats_t, + pub misses: u64_stats_t, + pub syncp: u64_stats_sync, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, +} +impl bpf_prog_stats { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_raw_event_map { + pub tp: *mut tracepoint, + pub bpf_func: *mut ::aya_ebpf::cty::c_void, + pub num_args: u32_, + pub writable_size: u32_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, +} +impl bpf_raw_event_map { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_reference_state { + pub type_: ref_state_type::Type, + pub id: ::aya_ebpf::cty::c_int, + pub insn_idx: ::aya_ebpf::cty::c_int, + pub ptr: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_verifier_state { + pub frame: [*mut bpf_func_state; 8usize], + pub parent: *mut bpf_verifier_state, + pub refs: *mut bpf_reference_state, + pub branches: u32_, + pub insn_idx: u32_, + pub curframe: u32_, + pub acquired_refs: u32_, + pub active_locks: u32_, + pub active_preempt_locks: u32_, + pub active_irq_id: u32_, + pub active_lock_id: u32_, + pub active_lock_ptr: *mut ::aya_ebpf::cty::c_void, + pub active_rcu_locks: u32_, + pub speculative: bool_, + pub in_sleepable: bool_, + pub first_insn_idx: u32_, + pub last_insn_idx: u32_, + pub equal_state: *mut bpf_verifier_state, + pub jmp_history: *mut bpf_jmp_history_entry, + pub jmp_history_cnt: u32_, + pub dfs_depth: u32_, + pub callback_unroll_depth: u32_, + pub may_goto_depth: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_scc_backedge { + pub next: *mut bpf_scc_backedge, + pub state: bpf_verifier_state, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_scc_callchain { + pub callsites: [u32_; 7usize], + pub scc: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_scc_visit { + pub callchain: bpf_scc_callchain, + pub entry_state: *mut bpf_verifier_state, + pub backedges: *mut bpf_scc_backedge, + pub num_backedges: u32_, +} +#[repr(C)] +#[derive(Debug)] +pub struct bpf_scc_info { + pub num_visits: u32_, + pub visits: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sk_psock_progs { + pub msg_parser: *mut bpf_prog, + pub stream_parser: *mut bpf_prog, + pub stream_verdict: *mut bpf_prog, + pub skb_verdict: *mut bpf_prog, + pub msg_parser_link: *mut bpf_link, + pub stream_parser_link: *mut bpf_link, + pub stream_verdict_link: *mut bpf_link, + pub skb_verdict_link: *mut bpf_link, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_stack_state { + pub spilled_ptr: bpf_reg_state, + pub slot_type: [u8_; 8usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct bpf_storage_buffer { + pub rcu: callback_head, + pub data: __IncompleteArrayField<::aya_ebpf::cty::c_char>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_struct_ops { + pub verifier_ops: *const bpf_verifier_ops, + pub init: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub check_member: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const btf_type, + arg2: *const btf_member, + arg3: *const bpf_prog, + ) -> ::aya_ebpf::cty::c_int, + >, + pub init_member: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const btf_type, + arg2: *const btf_member, + arg3: *mut ::aya_ebpf::cty::c_void, + arg4: *const ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub reg: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ::aya_ebpf::cty::c_void, + arg2: *mut bpf_link, + ) -> ::aya_ebpf::cty::c_int, + >, + pub unreg: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ::aya_ebpf::cty::c_void, arg2: *mut bpf_link), + >, + pub update: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ::aya_ebpf::cty::c_void, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: *mut bpf_link, + ) -> ::aya_ebpf::cty::c_int, + >, + pub validate: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ::aya_ebpf::cty::c_void) -> ::aya_ebpf::cty::c_int, + >, + pub cfi_stubs: *mut ::aya_ebpf::cty::c_void, + pub owner: *mut module, + pub name: *const ::aya_ebpf::cty::c_char, + pub func_models: [btf_func_model; 64usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_struct_ops_arg_info { + pub info: *mut bpf_ctx_arg_aux, + pub cnt: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_struct_ops_desc { + pub st_ops: *mut bpf_struct_ops, + pub type_: *const btf_type, + pub value_type: *const btf_type, + pub type_id: u32_, + pub value_id: u32_, + pub arg_info: *mut bpf_struct_ops_arg_info, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_bpf_ops { + pub loop_step: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut io_ring_ctx, + arg2: *mut iou_loop_params, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ring_fd: __u32, + pub priv_: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sched_ext_ops { + pub select_cpu: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut task_struct, arg2: s32, arg3: u64_) -> s32, + >, + pub enqueue: ::core::option::Option, + pub dequeue: ::core::option::Option, + pub dispatch: ::core::option::Option, + pub tick: ::core::option::Option, + pub runnable: ::core::option::Option, + pub running: ::core::option::Option, + pub stopping: ::core::option::Option, + pub quiescent: ::core::option::Option, + pub yield_: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut task_struct, arg2: *mut task_struct) -> bool_, + >, + pub core_sched_before: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut task_struct, arg2: *mut task_struct) -> bool_, + >, + pub set_weight: + ::core::option::Option, + pub set_cpumask: + ::core::option::Option, + pub update_idle: ::core::option::Option, + pub cpu_acquire: + ::core::option::Option, + pub cpu_release: + ::core::option::Option, + pub init_task: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut task_struct, arg2: *mut scx_init_task_args) -> s32, + >, + pub exit_task: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut task_struct, arg2: *mut scx_exit_task_args), + >, + pub enable: ::core::option::Option, + pub disable: ::core::option::Option, + pub dump: ::core::option::Option, + pub dump_cpu: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut scx_dump_ctx, arg2: s32, arg3: bool_), + >, + pub dump_task: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut scx_dump_ctx, arg2: *mut task_struct), + >, + pub cgroup_init: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut cgroup, arg2: *mut scx_cgroup_init_args) -> s32, + >, + pub cgroup_exit: ::core::option::Option, + pub cgroup_prep_move: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut task_struct, arg2: *mut cgroup, arg3: *mut cgroup) -> s32, + >, + pub cgroup_move: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut task_struct, arg2: *mut cgroup, arg3: *mut cgroup), + >, + pub cgroup_cancel_move: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut task_struct, arg2: *mut cgroup, arg3: *mut cgroup), + >, + pub cgroup_set_weight: + ::core::option::Option, + pub cgroup_set_bandwidth: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut cgroup, arg2: u64_, arg3: u64_, arg4: u64_), + >, + pub cgroup_set_idle: + ::core::option::Option, + pub sub_attach: + ::core::option::Option s32>, + pub sub_detach: ::core::option::Option, + pub cpu_online: ::core::option::Option, + pub cpu_offline: ::core::option::Option, + pub init: ::core::option::Option s32>, + pub exit: ::core::option::Option, + pub dispatch_max_batch: u32_, + pub flags: u64_, + pub timeout_ms: u32_, + pub exit_dump_len: u32_, + pub hotplug_seq: u64_, + pub sub_cgroup_id: u64_, + pub name: [::aya_ebpf::cty::c_char; 128usize], + pub priv_: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_congestion_ops { + pub cong_avoid: + ::core::option::Option, + pub cong_control: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sock, + arg2: u32_, + arg3: ::aya_ebpf::cty::c_int, + arg4: *const rate_sample, + ), + >, + pub ssthresh: ::core::option::Option u32_>, + pub set_state: ::core::option::Option, + pub cwnd_event: + ::core::option::Option, + pub cwnd_event_tx_start: ::core::option::Option, + pub in_ack_event: ::core::option::Option, + pub pkts_acked: + ::core::option::Option, + pub tso_segs: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sock, arg2: ::aya_ebpf::cty::c_uint) -> u32_, + >, + pub skb_marked_lost: + ::core::option::Option, + pub undo_cwnd: ::core::option::Option u32_>, + pub sndbuf_expand: ::core::option::Option u32_>, + pub get_info: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sock, + arg2: u32_, + arg3: *mut ::aya_ebpf::cty::c_int, + arg4: *mut tcp_cc_info, + ) -> usize, + >, + pub name: [::aya_ebpf::cty::c_char; 16usize], + pub owner: *mut module, + pub list: list_head, + pub key: u32_, + pub flags: u32_, + pub init: ::core::option::Option, + pub release: ::core::option::Option, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, +} +impl tcp_congestion_ops { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_subprog_arg_info { + pub arg_type: bpf_arg_type::Type, + pub __bindgen_anon_1: bpf_subprog_arg_info__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_subprog_arg_info__bindgen_ty_1 { + pub mem_size: u32_, + pub btf_id: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_subprog_info { + pub name: *const ::aya_ebpf::cty::c_char, + pub start: u32_, + pub linfo_idx: u32_, + pub postorder_start: u32_, + pub exit_idx: u32_, + pub stack_depth: u16_, + pub stack_extra: u16_, + pub fastcall_stack_off: s16, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, + pub priv_stack_mode: priv_stack_mode::Type, + pub args: [bpf_subprog_arg_info; 5usize], +} +impl bpf_subprog_info { + #[inline] + pub fn has_tail_call(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_has_tail_call(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn has_tail_call_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_has_tail_call_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn might_throw(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_might_throw(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn might_throw_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_might_throw_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn tail_call_reachable(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) } + } + #[inline] + pub fn set_tail_call_reachable(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn tail_call_reachable_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_tail_call_reachable_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn has_ld_abs(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) } + } + #[inline] + pub fn set_has_ld_abs(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn has_ld_abs_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_has_ld_abs_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn is_cb(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) } + } + #[inline] + pub fn set_is_cb(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn is_cb_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_is_cb_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn is_async_cb(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) } + } + #[inline] + pub fn set_is_async_cb(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn is_async_cb_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 5usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_is_async_cb_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 5usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn is_exception_cb(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) } + } + #[inline] + pub fn set_is_exception_cb(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn is_exception_cb_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 6usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_is_exception_cb_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 6usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn args_cached(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) } + } + #[inline] + pub fn set_args_cached(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn args_cached_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 7usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_args_cached_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 7usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn keep_fastcall_stack(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u8) } + } + #[inline] + pub fn set_keep_fastcall_stack(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(8usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn keep_fastcall_stack_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 8usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_keep_fastcall_stack_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 8usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn changes_pkt_data(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u8) } + } + #[inline] + pub fn set_changes_pkt_data(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(9usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn changes_pkt_data_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 9usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_changes_pkt_data_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 9usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn might_sleep(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u8) } + } + #[inline] + pub fn set_might_sleep(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(10usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn might_sleep_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 10usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_might_sleep_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 10usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn arg_cnt(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 3u8) as u8) } + } + #[inline] + pub fn set_arg_cnt(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(11usize, 3u8, val as u64) + } + } + #[inline] + pub unsafe fn arg_cnt_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 11usize, + 3u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_arg_cnt_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 11usize, + 3u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + has_tail_call: bool_, + might_throw: bool_, + tail_call_reachable: bool_, + has_ld_abs: bool_, + is_cb: bool_, + is_async_cb: bool_, + is_exception_cb: bool_, + args_cached: bool_, + keep_fastcall_stack: bool_, + changes_pkt_data: bool_, + might_sleep: bool_, + arg_cnt: u8_, + ) -> __BindgenBitfieldUnit<[u8; 2usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let has_tail_call: u8 = unsafe { ::core::mem::transmute(has_tail_call) }; + has_tail_call as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let might_throw: u8 = unsafe { ::core::mem::transmute(might_throw) }; + might_throw as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let tail_call_reachable: u8 = unsafe { ::core::mem::transmute(tail_call_reachable) }; + tail_call_reachable as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let has_ld_abs: u8 = unsafe { ::core::mem::transmute(has_ld_abs) }; + has_ld_abs as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let is_cb: u8 = unsafe { ::core::mem::transmute(is_cb) }; + is_cb as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let is_async_cb: u8 = unsafe { ::core::mem::transmute(is_async_cb) }; + is_async_cb as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let is_exception_cb: u8 = unsafe { ::core::mem::transmute(is_exception_cb) }; + is_exception_cb as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let args_cached: u8 = unsafe { ::core::mem::transmute(args_cached) }; + args_cached as u64 + }); + __bindgen_bitfield_unit.set(8usize, 1u8, { + let keep_fastcall_stack: u8 = unsafe { ::core::mem::transmute(keep_fastcall_stack) }; + keep_fastcall_stack as u64 + }); + __bindgen_bitfield_unit.set(9usize, 1u8, { + let changes_pkt_data: u8 = unsafe { ::core::mem::transmute(changes_pkt_data) }; + changes_pkt_data as u64 + }); + __bindgen_bitfield_unit.set(10usize, 1u8, { + let might_sleep: u8 = unsafe { ::core::mem::transmute(might_sleep) }; + might_sleep as u64 + }); + __bindgen_bitfield_unit.set(11usize, 3u8, { + let arg_cnt: u8 = unsafe { ::core::mem::transmute(arg_cnt) }; + arg_cnt as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_token { + pub work: work_struct, + pub refcnt: atomic64_t, + pub userns: *mut user_namespace, + pub allowed_cmds: u64_, + pub allowed_maps: u64_, + pub allowed_progs: u64_, + pub allowed_attachs: u64_, + pub security: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union perf_sample_weight { + pub full: __u64, + pub __bindgen_anon_1: perf_sample_weight__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct perf_sample_weight__bindgen_ty_1 { + pub var1_dw: __u32, + pub var2_w: __u16, + pub var3_w: __u16, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union perf_mem_data_src { + pub val: __u64, + pub __bindgen_anon_1: perf_mem_data_src__bindgen_ty_1, +} +#[repr(C)] +#[repr(align(8))] +#[derive(Debug, Copy, Clone)] +pub struct perf_mem_data_src__bindgen_ty_1 { + pub _bitfield_align_1: [u16; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, +} +impl perf_mem_data_src__bindgen_ty_1 { + #[inline] + pub fn mem_op(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 5u8) as u64) } + } + #[inline] + pub fn set_mem_op(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 5u8, val as u64) + } + } + #[inline] + pub unsafe fn mem_op_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 5u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_mem_op_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 5u8, + val as u64, + ) + } + } + #[inline] + pub fn mem_lvl(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 14u8) as u64) } + } + #[inline] + pub fn set_mem_lvl(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 14u8, val as u64) + } + } + #[inline] + pub unsafe fn mem_lvl_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 5usize, + 14u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_mem_lvl_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 5usize, + 14u8, + val as u64, + ) + } + } + #[inline] + pub fn mem_snoop(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(19usize, 5u8) as u64) } + } + #[inline] + pub fn set_mem_snoop(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(19usize, 5u8, val as u64) + } + } + #[inline] + pub unsafe fn mem_snoop_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 19usize, + 5u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_mem_snoop_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 19usize, + 5u8, + val as u64, + ) + } + } + #[inline] + pub fn mem_lock(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 2u8) as u64) } + } + #[inline] + pub fn set_mem_lock(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(24usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn mem_lock_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 24usize, + 2u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_mem_lock_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 24usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn mem_dtlb(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(26usize, 7u8) as u64) } + } + #[inline] + pub fn set_mem_dtlb(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(26usize, 7u8, val as u64) + } + } + #[inline] + pub unsafe fn mem_dtlb_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 26usize, + 7u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_mem_dtlb_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 26usize, + 7u8, + val as u64, + ) + } + } + #[inline] + pub fn mem_lvl_num(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(33usize, 4u8) as u64) } + } + #[inline] + pub fn set_mem_lvl_num(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(33usize, 4u8, val as u64) + } + } + #[inline] + pub unsafe fn mem_lvl_num_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 33usize, + 4u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_mem_lvl_num_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 33usize, + 4u8, + val as u64, + ) + } + } + #[inline] + pub fn mem_remote(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(37usize, 1u8) as u64) } + } + #[inline] + pub fn set_mem_remote(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(37usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn mem_remote_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 37usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_mem_remote_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 37usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn mem_snoopx(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(38usize, 2u8) as u64) } + } + #[inline] + pub fn set_mem_snoopx(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(38usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn mem_snoopx_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 38usize, + 2u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_mem_snoopx_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 38usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn mem_blk(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(40usize, 3u8) as u64) } + } + #[inline] + pub fn set_mem_blk(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(40usize, 3u8, val as u64) + } + } + #[inline] + pub unsafe fn mem_blk_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 40usize, + 3u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_mem_blk_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 40usize, + 3u8, + val as u64, + ) + } + } + #[inline] + pub fn mem_hops(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(43usize, 3u8) as u64) } + } + #[inline] + pub fn set_mem_hops(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(43usize, 3u8, val as u64) + } + } + #[inline] + pub unsafe fn mem_hops_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 43usize, + 3u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_mem_hops_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 43usize, + 3u8, + val as u64, + ) + } + } + #[inline] + pub fn mem_region(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(46usize, 5u8) as u64) } + } + #[inline] + pub fn set_mem_region(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(46usize, 5u8, val as u64) + } + } + #[inline] + pub unsafe fn mem_region_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 46usize, + 5u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_mem_region_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 46usize, + 5u8, + val as u64, + ) + } + } + #[inline] + pub fn mem_rsvd(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(51usize, 13u8) as u64) } + } + #[inline] + pub fn set_mem_rsvd(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(51usize, 13u8, val as u64) + } + } + #[inline] + pub unsafe fn mem_rsvd_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 51usize, + 13u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_mem_rsvd_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 51usize, + 13u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + mem_op: __u64, + mem_lvl: __u64, + mem_snoop: __u64, + mem_lock: __u64, + mem_dtlb: __u64, + mem_lvl_num: __u64, + mem_remote: __u64, + mem_snoopx: __u64, + mem_blk: __u64, + mem_hops: __u64, + mem_region: __u64, + mem_rsvd: __u64, + ) -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 5u8, { + let mem_op: u64 = unsafe { ::core::mem::transmute(mem_op) }; + mem_op as u64 + }); + __bindgen_bitfield_unit.set(5usize, 14u8, { + let mem_lvl: u64 = unsafe { ::core::mem::transmute(mem_lvl) }; + mem_lvl as u64 + }); + __bindgen_bitfield_unit.set(19usize, 5u8, { + let mem_snoop: u64 = unsafe { ::core::mem::transmute(mem_snoop) }; + mem_snoop as u64 + }); + __bindgen_bitfield_unit.set(24usize, 2u8, { + let mem_lock: u64 = unsafe { ::core::mem::transmute(mem_lock) }; + mem_lock as u64 + }); + __bindgen_bitfield_unit.set(26usize, 7u8, { + let mem_dtlb: u64 = unsafe { ::core::mem::transmute(mem_dtlb) }; + mem_dtlb as u64 + }); + __bindgen_bitfield_unit.set(33usize, 4u8, { + let mem_lvl_num: u64 = unsafe { ::core::mem::transmute(mem_lvl_num) }; + mem_lvl_num as u64 + }); + __bindgen_bitfield_unit.set(37usize, 1u8, { + let mem_remote: u64 = unsafe { ::core::mem::transmute(mem_remote) }; + mem_remote as u64 + }); + __bindgen_bitfield_unit.set(38usize, 2u8, { + let mem_snoopx: u64 = unsafe { ::core::mem::transmute(mem_snoopx) }; + mem_snoopx as u64 + }); + __bindgen_bitfield_unit.set(40usize, 3u8, { + let mem_blk: u64 = unsafe { ::core::mem::transmute(mem_blk) }; + mem_blk as u64 + }); + __bindgen_bitfield_unit.set(43usize, 3u8, { + let mem_hops: u64 = unsafe { ::core::mem::transmute(mem_hops) }; + mem_hops as u64 + }); + __bindgen_bitfield_unit.set(46usize, 5u8, { + let mem_region: u64 = unsafe { ::core::mem::transmute(mem_region) }; + mem_region as u64 + }); + __bindgen_bitfield_unit.set(51usize, 13u8, { + let mem_rsvd: u64 = unsafe { ::core::mem::transmute(mem_rsvd) }; + mem_rsvd as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct perf_regs { + pub abi: __u64, + pub regs: *mut pt_regs, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct perf_sample_data { + pub sample_flags: u64_, + pub period: u64_, + pub dyn_size: u64_, + pub type_: u64_, + pub tid_entry: perf_sample_data__bindgen_ty_1, + pub time: u64_, + pub id: u64_, + pub cpu_entry: perf_sample_data__bindgen_ty_2, + pub ip: u64_, + pub callchain: *mut perf_callchain_entry, + pub raw: *mut perf_raw_record, + pub br_stack: *mut perf_branch_stack, + pub br_stack_cntr: *mut u64_, + pub weight: perf_sample_weight, + pub data_src: perf_mem_data_src, + pub txn: u64_, + pub regs_user: perf_regs, + pub regs_intr: perf_regs, + pub stack_user_size: u64_, + pub stream_id: u64_, + pub cgroup: u64_, + pub addr: u64_, + pub phys_addr: u64_, + pub data_page_size: u64_, + pub code_page_size: u64_, + pub aux_size: u64_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 32usize]>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct perf_sample_data__bindgen_ty_1 { + pub pid: u32_, + pub tid: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct perf_sample_data__bindgen_ty_2 { + pub cpu: u32_, + pub reserved: u32_, +} +impl perf_sample_data { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 32usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 32usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_tramp_image { + pub image: *mut ::aya_ebpf::cty::c_void, + pub size: ::aya_ebpf::cty::c_int, + pub ksym: bpf_ksym, + pub pcref: percpu_ref, + pub ip_after_call: *mut ::aya_ebpf::cty::c_void, + pub ip_epilogue: *mut ::aya_ebpf::cty::c_void, + pub __bindgen_anon_1: bpf_tramp_image__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_tramp_image__bindgen_ty_1 { + pub rcu: callback_head, + pub work: work_struct, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_trampoline { + pub hlist_key: hlist_node, + pub hlist_ip: hlist_node, + pub fops: *mut ftrace_ops, + pub mutex: mutex, + pub refcnt: refcount_t, + pub flags: u32_, + pub key: u64_, + pub ip: ::aya_ebpf::cty::c_ulong, + pub func: bpf_trampoline__bindgen_ty_1, + pub extension_prog: *mut bpf_prog, + pub progs_hlist: [hlist_head; 3usize], + pub progs_cnt: [::aya_ebpf::cty::c_int; 3usize], + pub cur_image: *mut bpf_tramp_image, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_trampoline__bindgen_ty_1 { + pub model: btf_func_model, + pub addr: *mut ::aya_ebpf::cty::c_void, + pub ftrace_managed: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct btf_mod_pair { + pub btf: *mut btf, + pub module: *mut module, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_verifier_log { + pub start_pos: u64_, + pub end_pos: u64_, + pub ubuf: *mut ::aya_ebpf::cty::c_char, + pub level: u32_, + pub len_total: u32_, + pub len_max: u32_, + pub kbuf: [::aya_ebpf::cty::c_char; 1024usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_verifier_env { + pub insn_idx: u32_, + pub prev_insn_idx: u32_, + pub prog: *mut bpf_prog, + pub ops: *const bpf_verifier_ops, + pub attach_btf_mod: *mut module, + pub head: *mut bpf_verifier_stack_elem, + pub stack_size: ::aya_ebpf::cty::c_int, + pub strict_alignment: bool_, + pub test_state_freq: bool_, + pub test_reg_invariants: bool_, + pub cur_state: *mut bpf_verifier_state, + pub explored_states: *mut list_head, + pub free_list: list_head, + pub used_maps: [*mut bpf_map; 64usize], + pub used_btfs: [btf_mod_pair; 64usize], + pub insn_array_maps: [*mut bpf_map; 64usize], + pub used_map_cnt: u32_, + pub used_btf_cnt: u32_, + pub insn_array_map_cnt: u32_, + pub id_gen: u32_, + pub hidden_subprog_cnt: u32_, + pub exception_callback_subprog: ::aya_ebpf::cty::c_int, + pub explore_alu_limits: bool_, + pub allow_ptr_leaks: bool_, + pub allow_uninit_stack: bool_, + pub bpf_capable: bool_, + pub bypass_spec_v1: bool_, + pub bypass_spec_v4: bool_, + pub seen_direct_write: bool_, + pub seen_exception: bool_, + pub insn_aux_data: *mut bpf_insn_aux_data, + pub prev_linfo: *const bpf_line_info, + pub log: bpf_verifier_log, + pub subprog_info: [bpf_subprog_info; 258usize], + pub subprog_topo_order: [::aya_ebpf::cty::c_int; 258usize], + pub __bindgen_anon_1: bpf_verifier_env__bindgen_ty_1, + pub cfg: bpf_verifier_env__bindgen_ty_2, + pub bt: backtrack_state, + pub cur_hist_ent: *mut bpf_jmp_history_entry, + pub callsite_at_stack: *mut *mut arg_track, + pub pass_cnt: u32_, + pub subprog_cnt: u32_, + pub prev_insn_processed: u32_, + pub insn_processed: u32_, + pub prev_jmps_processed: u32_, + pub jmps_processed: u32_, + pub verification_time: u64_, + pub max_states_per_insn: u32_, + pub total_states: u32_, + pub peak_states: u32_, + pub longest_mark_read_walk: u32_, + pub free_list_size: u32_, + pub explored_states_size: u32_, + pub num_backedges: u32_, + pub fd_array: bpfptr_t, + pub scratched_regs: u32_, + pub scratched_stack_slots: u64_, + pub prev_log_pos: u64_, + pub prev_insn_print_pos: u64_, + pub fake_reg: [bpf_reg_state; 1usize], + pub true_reg1: bpf_reg_state, + pub true_reg2: bpf_reg_state, + pub false_reg1: bpf_reg_state, + pub false_reg2: bpf_reg_state, + pub tmp_str_buf: [::aya_ebpf::cty::c_char; 320usize], + pub insn_buf: [bpf_insn; 32usize], + pub epilogue_buf: [bpf_insn; 32usize], + pub callchain_buf: bpf_scc_callchain, + pub liveness: *mut bpf_liveness, + pub scc_info: *mut *mut bpf_scc_info, + pub scc_cnt: u32_, + pub succ: *mut bpf_iarray, + pub gotox_tmp_buf: *mut bpf_iarray, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_verifier_env__bindgen_ty_1 { + pub idmap_scratch: bpf_idmap, + pub idset_scratch: bpf_idset, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_verifier_env__bindgen_ty_2 { + pub insn_state: *mut ::aya_ebpf::cty::c_int, + pub insn_stack: *mut ::aya_ebpf::cty::c_int, + pub insn_postorder: *mut ::aya_ebpf::cty::c_int, + pub cur_stack: ::aya_ebpf::cty::c_int, + pub cur_postorder: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_verifier_ops { + pub get_func_proto: ::core::option::Option< + unsafe extern "C" fn( + arg1: bpf_func_id::Type, + arg2: *const bpf_prog, + ) -> *const bpf_func_proto, + >, + pub is_valid_access: ::core::option::Option< + unsafe extern "C" fn( + arg1: ::aya_ebpf::cty::c_int, + arg2: ::aya_ebpf::cty::c_int, + arg3: bpf_access_type::Type, + arg4: *const bpf_prog, + arg5: *mut bpf_insn_access_aux, + ) -> bool_, + >, + pub gen_prologue: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_insn, + arg2: bool_, + arg3: *const bpf_prog, + ) -> ::aya_ebpf::cty::c_int, + >, + pub gen_epilogue: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_insn, + arg2: *const bpf_prog, + arg3: s16, + ) -> ::aya_ebpf::cty::c_int, + >, + pub gen_ld_abs: ::core::option::Option< + unsafe extern "C" fn(arg1: *const bpf_insn, arg2: *mut bpf_insn) -> ::aya_ebpf::cty::c_int, + >, + pub convert_ctx_access: ::core::option::Option< + unsafe extern "C" fn( + arg1: bpf_access_type::Type, + arg2: *const bpf_insn, + arg3: *mut bpf_insn, + arg4: *mut bpf_prog, + arg5: *mut u32_, + ) -> u32_, + >, + pub btf_struct_access: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut bpf_verifier_log, + arg2: *const bpf_reg_state, + arg3: ::aya_ebpf::cty::c_int, + arg4: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_verifier_stack_elem { + pub st: bpf_verifier_state, + pub insn_idx: ::aya_ebpf::cty::c_int, + pub prev_insn_idx: ::aya_ebpf::cty::c_int, + pub next: *mut bpf_verifier_stack_elem, + pub log_pos: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_xdp_entity { + pub prog: *mut bpf_prog, + pub link: *mut bpf_xdp_link, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_xdp_link { + pub link: bpf_link, + pub dev: *mut net_device, + pub flags: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct trace_entry { + pub type_: ::aya_ebpf::cty::c_ushort, + pub flags: ::aya_ebpf::cty::c_uchar, + pub preempt_count: ::aya_ebpf::cty::c_uchar, + pub pid: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fs_pin { + pub wait: wait_queue_head_t, + pub done: ::aya_ebpf::cty::c_int, + pub s_list: hlist_node, + pub m_list: hlist_node, + pub kill: ::core::option::Option, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cdev { + pub kobj: kobject, + pub owner: *mut module, + pub ops: *const file_operations, + pub list: list_head, + pub dev: dev_t, + pub count: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct btf_header { + pub magic: __u16, + pub version: __u8, + pub flags: __u8, + pub hdr_len: __u32, + pub type_off: __u32, + pub type_len: __u32, + pub str_off: __u32, + pub str_len: __u32, + pub layout_off: __u32, + pub layout_len: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct btf { + pub data: *mut ::aya_ebpf::cty::c_void, + pub types: *mut *mut btf_type, + pub resolved_ids: *mut u32_, + pub resolved_sizes: *mut u32_, + pub strings: *const ::aya_ebpf::cty::c_char, + pub nohdr_data: *mut ::aya_ebpf::cty::c_void, + pub hdr: btf_header, + pub nr_types: u32_, + pub named_start_id: u32_, + pub types_size: u32_, + pub data_size: u32_, + pub refcnt: refcount_t, + pub id: u32_, + pub rcu: callback_head, + pub kfunc_set_tab: *mut btf_kfunc_set_tab, + pub dtor_kfunc_tab: *mut btf_id_dtor_kfunc_tab, + pub struct_meta_tab: *mut btf_struct_metas, + pub struct_ops_tab: *mut btf_struct_ops_tab, + pub layout: *mut btf_layout, + pub base_btf: *mut btf, + pub start_id: u32_, + pub start_str_off: u32_, + pub name: [::aya_ebpf::cty::c_char; 56usize], + pub kernel_btf: bool_, + pub base_id_map: *mut __u32, +} +pub type btf_dtor_kfunc_t = + ::core::option::Option; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct btf_field_kptr { + pub btf: *mut btf, + pub module: *mut module, + pub dtor: btf_dtor_kfunc_t, + pub btf_id: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct btf_field_graph_root { + pub btf: *mut btf, + pub value_btf_id: u32_, + pub node_offset: u32_, + pub value_rec: *mut btf_record, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct btf_field { + pub offset: u32_, + pub size: u32_, + pub type_: btf_field_type::Type, + pub __bindgen_anon_1: btf_field__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union btf_field__bindgen_ty_1 { + pub kptr: btf_field_kptr, + pub graph_root: btf_field_graph_root, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct btf_id_dtor_kfunc { + pub btf_id: u32_, + pub kfunc_btf_id: u32_, +} +#[repr(C)] +#[derive(Debug)] +pub struct btf_id_dtor_kfunc_tab { + pub cnt: u32_, + pub dtors: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug)] +pub struct btf_id_set8 { + pub cnt: u32_, + pub flags: u32_, + pub pairs: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct btf_id_set8__bindgen_ty_1 { + pub id: u32_, + pub flags: u32_, +} +pub type btf_kfunc_filter_t = ::core::option::Option< + unsafe extern "C" fn(arg1: *const bpf_prog, arg2: u32_) -> ::aya_ebpf::cty::c_int, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct btf_kfunc_hook_filter { + pub filters: [btf_kfunc_filter_t; 16usize], + pub nr_filters: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct btf_kfunc_set_tab { + pub sets: [*mut btf_id_set8; 14usize], + pub hook_filters: [btf_kfunc_hook_filter; 14usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct btf_layout { + pub info_sz: __u8, + pub elem_sz: __u8, + pub flags: __u16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct btf_member { + pub name_off: __u32, + pub type_: __u32, + pub offset: __u32, +} +#[repr(C)] +pub struct btf_record { + pub cnt: u32_, + pub field_mask: u32_, + pub spin_lock_off: ::aya_ebpf::cty::c_int, + pub res_spin_lock_off: ::aya_ebpf::cty::c_int, + pub timer_off: ::aya_ebpf::cty::c_int, + pub wq_off: ::aya_ebpf::cty::c_int, + pub refcount_off: ::aya_ebpf::cty::c_int, + pub task_work_off: ::aya_ebpf::cty::c_int, + pub fields: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct btf_struct_meta { + pub btf_id: u32_, + pub record: *mut btf_record, +} +#[repr(C)] +#[derive(Debug)] +pub struct btf_struct_metas { + pub cnt: u32_, + pub types: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug)] +pub struct btf_struct_ops_tab { + pub cnt: u32_, + pub capacity: u32_, + pub ops: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct btf_type { + pub name_off: __u32, + pub info: __u32, + pub __bindgen_anon_1: btf_type__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union btf_type__bindgen_ty_1 { + pub size: __u32, + pub type_: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct perf_output_handle { + pub event: *mut perf_event, + pub rb: *mut perf_buffer, + pub wakeup: ::aya_ebpf::cty::c_ulong, + pub size: ::aya_ebpf::cty::c_ulong, + pub __bindgen_anon_1: perf_output_handle__bindgen_ty_1, + pub __bindgen_anon_2: perf_output_handle__bindgen_ty_2, + pub page: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union perf_output_handle__bindgen_ty_1 { + pub flags: u64_, + pub aux_flags: u64_, + pub __bindgen_anon_1: perf_output_handle__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[repr(align(8))] +#[derive(Debug, Copy, Clone)] +pub struct perf_output_handle__bindgen_ty_1__bindgen_ty_1 { + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: [u8; 7usize], +} +impl perf_output_handle__bindgen_ty_1__bindgen_ty_1 { + #[inline] + pub fn skip_read(&self) -> u64_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u64) } + } + #[inline] + pub fn set_skip_read(&mut self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn skip_read_raw(this: *const Self) -> u64_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_skip_read_raw(this: *mut Self, val: u64_) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(skip_read: u64_) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let skip_read: u64 = unsafe { ::core::mem::transmute(skip_read) }; + skip_read as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union perf_output_handle__bindgen_ty_2 { + pub addr: *mut ::aya_ebpf::cty::c_void, + pub head: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct hlist_nulls_head { + pub first: *mut hlist_nulls_node, +} +#[repr(C)] +#[derive(Debug)] +pub struct bucket_table { + pub size: ::aya_ebpf::cty::c_uint, + pub nest: ::aya_ebpf::cty::c_uint, + pub hash_rnd: u32_, + pub walkers: list_head, + pub rcu: callback_head, + pub future_tbl: *mut bucket_table, + pub dep_map: lockdep_map, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, + pub buckets: __IncompleteArrayField<*mut rhash_lock_head>, +} +impl bucket_table { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug)] +pub struct buffer_data_page { + pub time_stamp: u64_, + pub commit: local_t, + pub data: __IncompleteArrayField<::aya_ebpf::cty::c_uchar>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct buffer_page { + pub list: list_head, + pub write: local_t, + pub read: ::aya_ebpf::cty::c_uint, + pub entries: local_t, + pub real_end: ::aya_ebpf::cty::c_ulong, + pub order: ::aya_ebpf::cty::c_uint, + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, + pub page: *mut buffer_data_page, +} +impl buffer_page { + #[inline] + pub fn id(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 30u8) as u32) } + } + #[inline] + pub fn set_id(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 30u8, val as u64) + } + } + #[inline] + pub unsafe fn id_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 30u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_id_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 30u8, + val as u64, + ) + } + } + #[inline] + pub fn range(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(30usize, 1u8) as u32) } + } + #[inline] + pub fn set_range(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(30usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn range_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 30usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_range_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 30usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(id: u32_, range: u32_) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 30u8, { + let id: u32 = unsafe { ::core::mem::transmute(id) }; + id as u64 + }); + __bindgen_bitfield_unit.set(30usize, 1u8, { + let range: u32 = unsafe { ::core::mem::transmute(range) }; + range as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bug_entry { + pub bug_addr_disp: ::aya_ebpf::cty::c_int, + pub format_disp: ::aya_ebpf::cty::c_int, + pub file_disp: ::aya_ebpf::cty::c_int, + pub line: ::aya_ebpf::cty::c_ushort, + pub flags: ::aya_ebpf::cty::c_ushort, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bus_dma_region { + pub cpu_start: phys_addr_t, + pub dma_start: dma_addr_t, + pub size: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bus_type { + pub name: *const ::aya_ebpf::cty::c_char, + pub dev_name: *const ::aya_ebpf::cty::c_char, + pub bus_groups: *mut *const attribute_group, + pub dev_groups: *mut *const attribute_group, + pub drv_groups: *mut *const attribute_group, + pub match_: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut device, + arg2: *const device_driver, + ) -> ::aya_ebpf::cty::c_int, + >, + pub uevent: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const device, + arg2: *mut kobj_uevent_env, + ) -> ::aya_ebpf::cty::c_int, + >, + pub probe: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub sync_state: ::core::option::Option, + pub remove: ::core::option::Option, + pub shutdown: ::core::option::Option, + pub irq_get_affinity: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut device, arg2: ::aya_ebpf::cty::c_uint) -> *const cpumask, + >, + pub online: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub offline: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub suspend: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut device, arg2: pm_message_t) -> ::aya_ebpf::cty::c_int, + >, + pub resume: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub num_vf: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub dma_configure: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub dma_cleanup: ::core::option::Option, + pub pm: *const dev_pm_ops, + pub driver_override: bool_, + pub need_parent_lock: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cache_deferred_req { + pub hash: hlist_node, + pub recent: list_head, + pub item: *mut cache_head, + pub owner: *mut ::aya_ebpf::cty::c_void, + pub revisit: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut cache_deferred_req, arg2: ::aya_ebpf::cty::c_int), + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cache_head { + pub cache_list: hlist_node, + pub expiry_time: time64_t, + pub last_refresh: time64_t, + pub ref_: kref, + pub flags: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cache_req { + pub defer: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut cache_req) -> *mut cache_deferred_req, + >, + pub thread_wait: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug)] +pub struct cacheline_padding { + pub x: __IncompleteArrayField<::aya_ebpf::cty::c_char>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct capture_control { + pub cc: *mut compact_control, + pub page: *mut page, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cdrom_msf0 { + pub minute: __u8, + pub second: __u8, + pub frame: __u8, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union cdrom_addr { + pub msf: cdrom_msf0, + pub lba: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cdrom_device_info { + pub ops: *const cdrom_device_ops, + pub list: list_head, + pub disk: *mut gendisk, + pub handle: *mut ::aya_ebpf::cty::c_void, + pub mask: ::aya_ebpf::cty::c_int, + pub speed: ::aya_ebpf::cty::c_int, + pub capacity: ::aya_ebpf::cty::c_int, + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, + pub vfs_events: ::aya_ebpf::cty::c_uint, + pub ioctl_events: ::aya_ebpf::cty::c_uint, + pub use_count: ::aya_ebpf::cty::c_int, + pub name: [::aya_ebpf::cty::c_char; 20usize], + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 1usize]>, + pub cdda_method: ::aya_ebpf::cty::c_int, + pub last_sense: __u8, + pub media_written: __u8, + pub mmc3_profile: ::aya_ebpf::cty::c_ushort, + pub mrw_mode_page: ::aya_ebpf::cty::c_int, + pub opened_for_data: bool_, + pub last_media_change_ms: __s64, +} +impl cdrom_device_info { + #[inline] + pub fn options(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 30u8) as u32) } + } + #[inline] + pub fn set_options(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 30u8, val as u64) + } + } + #[inline] + pub unsafe fn options_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 30u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_options_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 30u8, + val as u64, + ) + } + } + #[inline] + pub fn mc_flags(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(30usize, 2u8) as u32) } + } + #[inline] + pub fn set_mc_flags(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(30usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn mc_flags_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 30usize, + 2u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_mc_flags_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 30usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + options: ::aya_ebpf::cty::c_uint, + mc_flags: ::aya_ebpf::cty::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 30u8, { + let options: u32 = unsafe { ::core::mem::transmute(options) }; + options as u64 + }); + __bindgen_bitfield_unit.set(30usize, 2u8, { + let mc_flags: u32 = unsafe { ::core::mem::transmute(mc_flags) }; + mc_flags as u64 + }); + __bindgen_bitfield_unit + } + #[inline] + pub fn sanyo_slot(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(0usize, 2u8) as u8) } + } + #[inline] + pub fn set_sanyo_slot(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(0usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn sanyo_slot_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 0usize, + 2u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sanyo_slot_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 0usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn keeplocked(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(2usize, 1u8) as u8) } + } + #[inline] + pub fn set_keeplocked(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn keeplocked_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 2usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_keeplocked_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn reserved(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(3usize, 5u8) as u8) } + } + #[inline] + pub fn set_reserved(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(3usize, 5u8, val as u64) + } + } + #[inline] + pub unsafe fn reserved_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 3usize, + 5u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_reserved_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 3usize, + 5u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_2( + sanyo_slot: __u8, + keeplocked: __u8, + reserved: __u8, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 2u8, { + let sanyo_slot: u8 = unsafe { ::core::mem::transmute(sanyo_slot) }; + sanyo_slot as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let keeplocked: u8 = unsafe { ::core::mem::transmute(keeplocked) }; + keeplocked as u64 + }); + __bindgen_bitfield_unit.set(3usize, 5u8, { + let reserved: u8 = unsafe { ::core::mem::transmute(reserved) }; + reserved as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cdrom_device_ops { + pub open: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut cdrom_device_info, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub release: ::core::option::Option, + pub drive_status: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut cdrom_device_info, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub check_events: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut cdrom_device_info, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_uint, + >, + pub tray_move: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut cdrom_device_info, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub lock_door: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut cdrom_device_info, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub select_speed: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut cdrom_device_info, + arg2: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_last_session: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut cdrom_device_info, + arg2: *mut cdrom_multisession, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_mcn: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut cdrom_device_info, + arg2: *mut cdrom_mcn, + ) -> ::aya_ebpf::cty::c_int, + >, + pub reset: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut cdrom_device_info) -> ::aya_ebpf::cty::c_int, + >, + pub audio_ioctl: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut cdrom_device_info, + arg2: ::aya_ebpf::cty::c_uint, + arg3: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub generic_packet: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut cdrom_device_info, + arg2: *mut packet_command, + ) -> ::aya_ebpf::cty::c_int, + >, + pub read_cdda_bpc: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut cdrom_device_info, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: u32_, + arg4: u32_, + arg5: *mut u8_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub capability: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cdrom_mcn { + pub medium_catalog_number: [__u8; 14usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct cdrom_multisession { + pub addr: cdrom_addr, + pub xa_flag: __u8, + pub addr_format: __u8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cee_pfc { + pub willing: __u8, + pub error: __u8, + pub pfc_en: __u8, + pub tcs_supported: __u8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cee_pg { + pub willing: __u8, + pub error: __u8, + pub pg_en: __u8, + pub tcs_supported: __u8, + pub pg_bw: [__u8; 8usize], + pub prio_pg: [__u8; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cfg80211_bss_select_adjust { + pub band: nl80211_band::Type, + pub delta: s8, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct cfg80211_bss_selection { + pub behaviour: nl80211_bss_select_attr::Type, + pub param: cfg80211_bss_selection__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union cfg80211_bss_selection__bindgen_ty_1 { + pub band_pref: nl80211_band::Type, + pub adjust: cfg80211_bss_select_adjust, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee80211_edmg { + pub channels: u8_, + pub bw_config: ieee80211_edmg_bw_config::Type, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cfg80211_chan_def { + pub chan: *mut ieee80211_channel, + pub width: nl80211_chan_width::Type, + pub center_freq1: u32_, + pub center_freq2: u32_, + pub edmg: ieee80211_edmg, + pub freq1_offset: u16_, + pub punctured: u16_, + pub s1g_primary_2mhz: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cfg80211_crypto_settings { + pub wpa_versions: u32_, + pub cipher_group: u32_, + pub n_ciphers_pairwise: ::aya_ebpf::cty::c_int, + pub ciphers_pairwise: [u32_; 5usize], + pub n_akm_suites: ::aya_ebpf::cty::c_int, + pub akm_suites: [u32_; 10usize], + pub control_port: bool_, + pub control_port_ethertype: __be16, + pub control_port_no_encrypt: bool_, + pub control_port_over_nl80211: bool_, + pub control_port_no_preauth: bool_, + pub psk: *const u8_, + pub sae_pwd: *const u8_, + pub sae_pwd_len: u8_, + pub sae_pwe: nl80211_sae_pwe_mechanism::Type, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee80211_mcs_info { + pub rx_mask: [u8_; 10usize], + pub rx_highest: __le16, + pub tx_params: u8_, + pub reserved: [u8_; 3usize], +} +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct ieee80211_ht_cap { + pub cap_info: __le16, + pub ampdu_params_info: u8_, + pub mcs: ieee80211_mcs_info, + pub extended_ht_cap_info: __le16, + pub tx_BF_cap_info: __le32, + pub antenna_selection_info: u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee80211_vht_mcs_info { + pub rx_mcs_map: __le16, + pub rx_highest: __le16, + pub tx_mcs_map: __le16, + pub tx_highest: __le16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee80211_vht_cap { + pub vht_cap_info: __le32, + pub supp_mcs: ieee80211_vht_mcs_info, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct cfg80211_connect_params { + pub channel: *mut ieee80211_channel, + pub channel_hint: *mut ieee80211_channel, + pub bssid: *const u8_, + pub bssid_hint: *const u8_, + pub ssid: *const u8_, + pub ssid_len: usize, + pub auth_type: nl80211_auth_type::Type, + pub ie: *const u8_, + pub ie_len: usize, + pub privacy: bool_, + pub mfp: nl80211_mfp::Type, + pub crypto: cfg80211_crypto_settings, + pub key: *const u8_, + pub key_len: u8_, + pub key_idx: u8_, + pub flags: u32_, + pub bg_scan_period: ::aya_ebpf::cty::c_int, + pub ht_capa: ieee80211_ht_cap, + pub ht_capa_mask: ieee80211_ht_cap, + pub vht_capa: ieee80211_vht_cap, + pub vht_capa_mask: ieee80211_vht_cap, + pub pbss: bool_, + pub bss_select: cfg80211_bss_selection, + pub prev_bssid: *const u8_, + pub fils_erp_username: *const u8_, + pub fils_erp_username_len: usize, + pub fils_erp_realm: *const u8_, + pub fils_erp_realm_len: usize, + pub fils_erp_next_seq_num: u16_, + pub fils_erp_rrk: *const u8_, + pub fils_erp_rrk_len: usize, + pub want_1x: bool_, + pub edmg: ieee80211_edmg, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cfg80211_ibss_params { + pub ssid: *const u8_, + pub bssid: *const u8_, + pub chandef: cfg80211_chan_def, + pub ie: *const u8_, + pub ssid_len: u8_, + pub ie_len: u8_, + pub beacon_interval: u16_, + pub basic_rates: u32_, + pub channel_fixed: bool_, + pub privacy: bool_, + pub control_port: bool_, + pub control_port_over_nl80211: bool_, + pub userspace_handles_dfs: bool_, + pub mcast_rate: [::aya_ebpf::cty::c_int; 6usize], + pub ht_capa: ieee80211_ht_cap, + pub ht_capa_mask: ieee80211_ht_cap, + pub wep_keys: *mut key_params, + pub wep_tx_key: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cfg80211_ssid { + pub ssid: [u8_; 32usize], + pub ssid_len: u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cfg80211_match_set { + pub ssid: cfg80211_ssid, + pub bssid: [u8_; 6usize], + pub rssi_thold: s32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cfg80211_pkt_pattern { + pub mask: *const u8_, + pub pattern: *const u8_, + pub pattern_len: ::aya_ebpf::cty::c_int, + pub pkt_offset: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cfg80211_pmsr_capabilities { + pub max_peers: ::aya_ebpf::cty::c_uint, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub ftm: cfg80211_pmsr_capabilities__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cfg80211_pmsr_capabilities__bindgen_ty_1 { + pub preambles: u32_, + pub bandwidths: u32_, + pub max_bursts_exponent: s8, + pub max_ftms_per_burst: u8_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub max_tx_ltf_rep: u8_, + pub max_rx_ltf_rep: u8_, + pub max_tx_sts: u8_, + pub max_rx_sts: u8_, + pub max_total_ltf_tx: u8_, + pub max_total_ltf_rx: u8_, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: u16, +} +impl cfg80211_pmsr_capabilities__bindgen_ty_1 { + #[inline] + pub fn supported(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_supported(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn supported_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_supported_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn asap(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_asap(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn asap_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_asap_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn non_asap(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) } + } + #[inline] + pub fn set_non_asap(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn non_asap_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_non_asap_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn request_lci(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) } + } + #[inline] + pub fn set_request_lci(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn request_lci_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_request_lci_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn request_civicloc(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) } + } + #[inline] + pub fn set_request_civicloc(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn request_civicloc_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_request_civicloc_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn trigger_based(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) } + } + #[inline] + pub fn set_trigger_based(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn trigger_based_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 5usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_trigger_based_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 5usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn non_trigger_based(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) } + } + #[inline] + pub fn set_non_trigger_based(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn non_trigger_based_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 6usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_non_trigger_based_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 6usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn support_6ghz(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) } + } + #[inline] + pub fn set_support_6ghz(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn support_6ghz_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 7usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_support_6ghz_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 7usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + supported: u8_, + asap: u8_, + non_asap: u8_, + request_lci: u8_, + request_civicloc: u8_, + trigger_based: u8_, + non_trigger_based: u8_, + support_6ghz: u8_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let supported: u8 = unsafe { ::core::mem::transmute(supported) }; + supported as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let asap: u8 = unsafe { ::core::mem::transmute(asap) }; + asap as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let non_asap: u8 = unsafe { ::core::mem::transmute(non_asap) }; + non_asap as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let request_lci: u8 = unsafe { ::core::mem::transmute(request_lci) }; + request_lci as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let request_civicloc: u8 = unsafe { ::core::mem::transmute(request_civicloc) }; + request_civicloc as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let trigger_based: u8 = unsafe { ::core::mem::transmute(trigger_based) }; + trigger_based as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let non_trigger_based: u8 = unsafe { ::core::mem::transmute(non_trigger_based) }; + non_trigger_based as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let support_6ghz: u8 = unsafe { ::core::mem::transmute(support_6ghz) }; + support_6ghz as u64 + }); + __bindgen_bitfield_unit + } + #[inline] + pub fn support_rsta(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_2.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_support_rsta(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn support_rsta_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_support_rsta_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_2(support_rsta: u8_) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let support_rsta: u8 = unsafe { ::core::mem::transmute(support_rsta) }; + support_rsta as u64 + }); + __bindgen_bitfield_unit + } +} +impl cfg80211_pmsr_capabilities { + #[inline] + pub fn report_ap_tsf(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_report_ap_tsf(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn report_ap_tsf_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_report_ap_tsf_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn randomize_mac_addr(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_randomize_mac_addr(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn randomize_mac_addr_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_randomize_mac_addr_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + report_ap_tsf: u8_, + randomize_mac_addr: u8_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let report_ap_tsf: u8 = unsafe { ::core::mem::transmute(report_ap_tsf) }; + report_ap_tsf as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let randomize_mac_addr: u8 = unsafe { ::core::mem::transmute(randomize_mac_addr) }; + randomize_mac_addr as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cfg80211_sar_capa { + pub type_: nl80211_sar_type::Type, + pub num_freq_ranges: u32_, + pub freq_ranges: *const cfg80211_sar_freq_ranges, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cfg80211_sar_freq_ranges { + pub start_freq: u32_, + pub end_freq: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cfg80211_sched_scan_plan { + pub interval: u32_, + pub iterations: u32_, +} +#[repr(C)] +#[derive(Debug)] +pub struct cfg80211_sched_scan_request { + pub reqid: u64_, + pub ssids: *mut cfg80211_ssid, + pub n_ssids: ::aya_ebpf::cty::c_int, + pub n_channels: u32_, + pub ie: *const u8_, + pub ie_len: usize, + pub flags: u32_, + pub match_sets: *mut cfg80211_match_set, + pub n_match_sets: ::aya_ebpf::cty::c_int, + pub min_rssi_thold: s32, + pub delay: u32_, + pub scan_plans: *mut cfg80211_sched_scan_plan, + pub n_scan_plans: ::aya_ebpf::cty::c_int, + pub mac_addr: [u8_; 6usize], + pub mac_addr_mask: [u8_; 6usize], + pub relative_rssi_set: bool_, + pub relative_rssi: s8, + pub rssi_adjust: cfg80211_bss_select_adjust, + pub wiphy: *mut wiphy, + pub dev: *mut net_device, + pub scan_start: ::aya_ebpf::cty::c_ulong, + pub report_results: bool_, + pub callback_head: callback_head, + pub owner_nlportid: u32_, + pub nl_owner_dead: bool_, + pub list: list_head, + pub channels: __IncompleteArrayField<*mut ieee80211_channel>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cfg80211_wowlan { + pub any: bool_, + pub disconnect: bool_, + pub magic_pkt: bool_, + pub gtk_rekey_failure: bool_, + pub eap_identity_req: bool_, + pub four_way_handshake: bool_, + pub rfkill_release: bool_, + pub patterns: *mut cfg80211_pkt_pattern, + pub tcp: *mut cfg80211_wowlan_tcp, + pub n_patterns: ::aya_ebpf::cty::c_int, + pub nd_config: *mut cfg80211_sched_scan_request, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nl80211_wowlan_tcp_data_seq { + pub start: __u32, + pub offset: __u32, + pub len: __u32, +} +#[repr(C)] +#[derive(Debug)] +pub struct nl80211_wowlan_tcp_data_token { + pub offset: __u32, + pub len: __u32, + pub token_stream: __IncompleteArrayField<__u8>, +} +#[repr(C)] +#[derive(Debug)] +pub struct cfg80211_wowlan_tcp { + pub sock: *mut socket, + pub src: __be32, + pub dst: __be32, + pub src_port: u16_, + pub dst_port: u16_, + pub dst_mac: [u8_; 6usize], + pub payload_len: ::aya_ebpf::cty::c_int, + pub payload: *const u8_, + pub payload_seq: nl80211_wowlan_tcp_data_seq, + pub data_interval: u32_, + pub wake_len: u32_, + pub wake_data: *const u8_, + pub wake_mask: *const u8_, + pub tokens_size: u32_, + pub payload_tok: nl80211_wowlan_tcp_data_token, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct cfs_bandwidth { + pub lock: raw_spinlock_t, + pub period: ktime_t, + pub quota: u64_, + pub runtime: u64_, + pub burst: u64_, + pub runtime_snap: u64_, + pub hierarchical_quota: s64, + pub idle: u8_, + pub period_active: u8_, + pub slack_started: u8_, + pub period_timer: hrtimer, + pub slack_timer: hrtimer, + pub throttled_cfs_rq: list_head, + pub nr_periods: ::aya_ebpf::cty::c_int, + pub nr_throttled: ::aya_ebpf::cty::c_int, + pub nr_burst: ::aya_ebpf::cty::c_int, + pub throttled_time: u64_, + pub burst_time: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct load_weight { + pub weight: ::aya_ebpf::cty::c_ulong, + pub inv_weight: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sched_avg { + pub last_update_time: u64_, + pub load_sum: u64_, + pub runnable_sum: u64_, + pub util_sum: u32_, + pub period_contrib: u32_, + pub load_avg: ::aya_ebpf::cty::c_ulong, + pub runnable_avg: ::aya_ebpf::cty::c_ulong, + pub util_avg: ::aya_ebpf::cty::c_ulong, + pub util_est: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct cfs_rq { + pub load: load_weight, + pub nr_queued: ::aya_ebpf::cty::c_uint, + pub h_nr_queued: ::aya_ebpf::cty::c_uint, + pub h_nr_runnable: ::aya_ebpf::cty::c_uint, + pub h_nr_idle: ::aya_ebpf::cty::c_uint, + pub sum_w_vruntime: s64, + pub sum_weight: u64_, + pub zero_vruntime: u64_, + pub sum_shift: ::aya_ebpf::cty::c_uint, + pub forceidle_seq: ::aya_ebpf::cty::c_uint, + pub zero_vruntime_fi: u64_, + pub tasks_timeline: rb_root_cached, + pub curr: *mut sched_entity, + pub next: *mut sched_entity, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, + pub avg: sched_avg, + pub removed: cfs_rq__bindgen_ty_1, + pub last_update_tg_load_avg: u64_, + pub tg_load_avg_contrib: ::aya_ebpf::cty::c_ulong, + pub propagate: ::aya_ebpf::cty::c_long, + pub prop_runnable_sum: ::aya_ebpf::cty::c_long, + pub h_load: ::aya_ebpf::cty::c_ulong, + pub last_h_load_update: u64_, + pub h_load_next: *mut sched_entity, + pub rq: *mut rq, + pub on_list: ::aya_ebpf::cty::c_int, + pub leaf_cfs_rq_list: list_head, + pub tg: *mut task_group, + pub idle: ::aya_ebpf::cty::c_int, + pub runtime_enabled: ::aya_ebpf::cty::c_int, + pub runtime_remaining: s64, + pub throttled_pelt_idle: u64_, + pub throttled_clock: u64_, + pub throttled_clock_pelt: u64_, + pub throttled_clock_pelt_time: u64_, + pub throttled_clock_self: u64_, + pub throttled_clock_self_time: u64_, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 1usize]>, + pub throttle_count: ::aya_ebpf::cty::c_int, + pub throttled_list: list_head, + pub throttled_csd_list: list_head, + pub throttled_limbo_list: list_head, + pub _bitfield_align_3: [u8; 0], + pub _bitfield_3: __BindgenBitfieldUnit<[u8; 40usize]>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct cfs_rq__bindgen_ty_1 { + pub lock: raw_spinlock_t, + pub nr: ::aya_ebpf::cty::c_int, + pub load_avg: ::aya_ebpf::cty::c_ulong, + pub util_avg: ::aya_ebpf::cty::c_ulong, + pub runnable_avg: ::aya_ebpf::cty::c_ulong, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 32usize]>, +} +impl cfs_rq__bindgen_ty_1 { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 32usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 32usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +impl cfs_rq { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + __bindgen_bitfield_unit + } + #[inline] + pub fn throttled(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_2.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_throttled(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn throttled_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_throttled_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn pelt_clock_throttled(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_2.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_pelt_clock_throttled(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn pelt_clock_throttled_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_pelt_clock_throttled_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_2( + throttled: bool_, + pelt_clock_throttled: bool_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let throttled: u8 = unsafe { ::core::mem::transmute(throttled) }; + throttled as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let pelt_clock_throttled: u8 = unsafe { ::core::mem::transmute(pelt_clock_throttled) }; + pelt_clock_throttled as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cftype { + pub name: [::aya_ebpf::cty::c_char; 64usize], + pub private: ::aya_ebpf::cty::c_ulong, + pub max_write_len: usize, + pub flags: ::aya_ebpf::cty::c_uint, + pub file_offset: ::aya_ebpf::cty::c_uint, + pub ss: *mut cgroup_subsys, + pub node: list_head, + pub kf_ops: *mut kernfs_ops, + pub open: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut kernfs_open_file) -> ::aya_ebpf::cty::c_int, + >, + pub release: ::core::option::Option, + pub read_u64: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut cgroup_subsys_state, arg2: *mut cftype) -> u64_, + >, + pub read_s64: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut cgroup_subsys_state, arg2: *mut cftype) -> s64, + >, + pub seq_show: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut seq_file, + arg2: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub seq_start: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut seq_file, + arg2: *mut loff_t, + ) -> *mut ::aya_ebpf::cty::c_void, + >, + pub seq_next: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut seq_file, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: *mut loff_t, + ) -> *mut ::aya_ebpf::cty::c_void, + >, + pub seq_stop: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut seq_file, arg2: *mut ::aya_ebpf::cty::c_void), + >, + pub write_u64: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut cgroup_subsys_state, + arg2: *mut cftype, + arg3: u64_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub write_s64: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut cgroup_subsys_state, + arg2: *mut cftype, + arg3: s64, + ) -> ::aya_ebpf::cty::c_int, + >, + pub write: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut kernfs_open_file, + arg2: *mut ::aya_ebpf::cty::c_char, + arg3: usize, + arg4: loff_t, + ) -> isize, + >, + pub poll: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut kernfs_open_file, arg2: *mut poll_table_struct) -> __poll_t, + >, + pub lockdep_key: lock_class_key, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct cgroup_file { + pub kn: *mut kernfs_node, + pub notified_at: ::aya_ebpf::cty::c_ulong, + pub notify_timer: timer_list, + pub lock: spinlock_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct task_cputime { + pub stime: u64_, + pub utime: u64_, + pub sum_exec_runtime: ::aya_ebpf::cty::c_ulonglong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cgroup_base_stat { + pub cputime: task_cputime, + pub forceidle_sum: u64_, + pub ntime: u64_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct prev_cputime { + pub utime: u64_, + pub stime: u64_, + pub lock: raw_spinlock_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cgroup_bpf { + pub effective: [*mut bpf_prog_array; 38usize], + pub progs: [hlist_head; 38usize], + pub flags: [u8_; 38usize], + pub revisions: [u64_; 38usize], + pub storages: list_head, + pub inactive: *mut bpf_prog_array, + pub refcnt: percpu_ref, + pub release_work: work_struct, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cgroup_freezer_state { + pub freeze: bool_, + pub e_freeze: bool_, + pub nr_frozen_descendants: ::aya_ebpf::cty::c_int, + pub nr_frozen_tasks: ::aya_ebpf::cty::c_int, + pub freeze_seq: seqcount_spinlock_t, + pub freeze_start_nsec: u64_, + pub frozen_nsec: u64_, +} +#[repr(C)] +pub struct cgroup { + pub self_: cgroup_subsys_state, + pub flags: ::aya_ebpf::cty::c_ulong, + pub level: ::aya_ebpf::cty::c_int, + pub max_depth: ::aya_ebpf::cty::c_int, + pub nr_descendants: ::aya_ebpf::cty::c_int, + pub nr_dying_descendants: ::aya_ebpf::cty::c_int, + pub max_descendants: ::aya_ebpf::cty::c_int, + pub nr_populated_csets: ::aya_ebpf::cty::c_int, + pub nr_populated_domain_children: ::aya_ebpf::cty::c_int, + pub nr_populated_threaded_children: ::aya_ebpf::cty::c_int, + pub nr_threaded_children: ::aya_ebpf::cty::c_int, + pub kill_seq: ::aya_ebpf::cty::c_uint, + pub kn: *mut kernfs_node, + pub procs_file: cgroup_file, + pub events_file: cgroup_file, + pub psi_files: [cgroup_file; 4usize], + pub subtree_control: u32_, + pub subtree_ss_mask: u32_, + pub old_subtree_control: u32_, + pub old_subtree_ss_mask: u32_, + pub subsys: [*mut cgroup_subsys_state; 15usize], + pub nr_dying_subsys: [::aya_ebpf::cty::c_int; 15usize], + pub root: *mut cgroup_root, + pub cset_links: list_head, + pub e_csets: [list_head; 15usize], + pub dom_cgrp: *mut cgroup, + pub old_dom_cgrp: *mut cgroup, + pub rstat_base_cpu: *mut cgroup_rstat_base_cpu, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>, + pub _pad_: cacheline_padding, + pub last_bstat: cgroup_base_stat, + pub bstat: cgroup_base_stat, + pub prev_cputime: prev_cputime, + pub pidlists: list_head, + pub pidlist_mutex: mutex, + pub offline_waitq: wait_queue_head_t, + pub finish_destroy_work: work_struct, + pub release_agent_work: work_struct, + pub psi: *mut psi_group, + pub bpf: cgroup_bpf, + pub freezer: cgroup_freezer_state, + pub bpf_cgrp_storage: *mut bpf_local_storage, + pub scx_sched: *mut scx_sched, + pub __bindgen_anon_1: cgroup__bindgen_ty_1, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 24usize]>, +} +#[repr(C)] +pub struct cgroup__bindgen_ty_1 { + pub __bindgen_anon_1: __BindgenUnionField, + pub __bindgen_anon_2: __BindgenUnionField, + pub bindgen_union_field: u64, +} +#[repr(C)] +#[derive(Debug)] +pub struct cgroup__bindgen_ty_1__bindgen_ty_1 { + pub __empty_ancestors: cgroup__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, + pub ancestors: __IncompleteArrayField<*mut cgroup>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cgroup__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {} +#[repr(C)] +#[derive(Debug)] +pub struct cgroup__bindgen_ty_1__bindgen_ty_2 { + pub _root_ancestor: *mut cgroup, + pub __bindgen_anon_1: cgroup__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug)] +pub struct cgroup__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 { + pub __empty__low_ancestors: cgroup__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1, + pub _low_ancestors: __IncompleteArrayField<*mut cgroup>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cgroup__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1 {} +impl cgroup { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); + __bindgen_bitfield_unit + } + #[inline] + pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cgroup_taskset { + pub src_csets: list_head, + pub dst_csets: list_head, + pub nr_tasks: ::aya_ebpf::cty::c_int, + pub ssid: ::aya_ebpf::cty::c_int, + pub csets: *mut list_head, + pub cur_cset: *mut css_set, + pub cur_task: *mut task_struct, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ns_common { + pub __bindgen_anon_1: ns_common__bindgen_ty_1, + pub ns_type: u32_, + pub stashed: *mut dentry, + pub ops: *const proc_ns_operations, + pub inum: ::aya_ebpf::cty::c_uint, + pub __bindgen_anon_2: ns_common__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ns_common__bindgen_ty_1 { + pub __ns_ref: refcount_t, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 56usize]>, + pub __bindgen_padding_0: u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ns_common__bindgen_ty_2 { + pub ns_rcu: callback_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct cgroup_namespace { + pub ns: ns_common, + pub user_ns: *mut user_namespace, + pub ucounts: *mut ucounts, + pub root_cset: *mut css_set, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 40usize]>, +} +#[repr(C)] +pub struct cgroup_root { + pub kf_root: *mut kernfs_root, + pub subsys_mask: ::aya_ebpf::cty::c_uint, + pub hierarchy_id: ::aya_ebpf::cty::c_int, + pub root_list: list_head, + pub rcu: callback_head, + pub nr_cgrps: atomic_t, + pub flags: ::aya_ebpf::cty::c_uint, + pub release_agent_path: [::aya_ebpf::cty::c_char; 4096usize], + pub name: [::aya_ebpf::cty::c_char; 64usize], + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, + pub cgrp: cgroup, +} +impl cgroup_root { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cgroup_rstat_base_cpu { + pub bsync: u64_stats_sync, + pub bstat: cgroup_base_stat, + pub last_bstat: cgroup_base_stat, + pub subtree_bstat: cgroup_base_stat, + pub last_subtree_bstat: cgroup_base_stat, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct idr { + pub idr_rt: xarray, + pub idr_base: ::aya_ebpf::cty::c_uint, + pub idr_next: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct cgroup_subsys { + pub css_alloc: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut cgroup_subsys_state) -> *mut cgroup_subsys_state, + >, + pub css_online: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut cgroup_subsys_state) -> ::aya_ebpf::cty::c_int, + >, + pub css_offline: ::core::option::Option, + pub css_released: ::core::option::Option, + pub css_free: ::core::option::Option, + pub css_reset: ::core::option::Option, + pub css_killed: ::core::option::Option, + pub css_rstat_flush: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut cgroup_subsys_state, arg2: ::aya_ebpf::cty::c_int), + >, + pub css_extra_stat_show: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut seq_file, + arg2: *mut cgroup_subsys_state, + ) -> ::aya_ebpf::cty::c_int, + >, + pub css_local_stat_show: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut seq_file, + arg2: *mut cgroup_subsys_state, + ) -> ::aya_ebpf::cty::c_int, + >, + pub can_attach: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut cgroup_taskset) -> ::aya_ebpf::cty::c_int, + >, + pub cancel_attach: ::core::option::Option, + pub attach: ::core::option::Option, + pub can_fork: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut task_struct, arg2: *mut css_set) -> ::aya_ebpf::cty::c_int, + >, + pub cancel_fork: + ::core::option::Option, + pub fork: ::core::option::Option, + pub exit: ::core::option::Option, + pub release: ::core::option::Option, + pub bind: ::core::option::Option, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub id: ::aya_ebpf::cty::c_int, + pub name: *const ::aya_ebpf::cty::c_char, + pub legacy_name: *const ::aya_ebpf::cty::c_char, + pub root: *mut cgroup_root, + pub css_idr: idr, + pub cfts: list_head, + pub dfl_cftypes: *mut cftype, + pub legacy_cftypes: *mut cftype, + pub depends_on: ::aya_ebpf::cty::c_uint, + pub rstat_ss_lock: spinlock_t, + pub lhead: *mut llist_head, +} +impl cgroup_subsys { + #[inline] + pub fn early_init(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_early_init(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn early_init_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_early_init_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn implicit_on_dfl(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_implicit_on_dfl(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn implicit_on_dfl_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_implicit_on_dfl_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn threaded(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) } + } + #[inline] + pub fn set_threaded(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn threaded_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_threaded_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + early_init: bool_, + implicit_on_dfl: bool_, + threaded: bool_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let early_init: u8 = unsafe { ::core::mem::transmute(early_init) }; + early_init as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let implicit_on_dfl: u8 = unsafe { ::core::mem::transmute(implicit_on_dfl) }; + implicit_on_dfl as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let threaded: u8 = unsafe { ::core::mem::transmute(threaded) }; + threaded as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_channels { + pub cmd: __u32, + pub max_rx: __u32, + pub max_tx: __u32, + pub max_other: __u32, + pub max_combined: __u32, + pub rx_count: __u32, + pub tx_count: __u32, + pub other_count: __u32, + pub combined_count: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct qdisc_walker { + pub stop: ::aya_ebpf::cty::c_int, + pub skip: ::aya_ebpf::cty::c_int, + pub count: ::aya_ebpf::cty::c_int, + pub fn_: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut Qdisc, + arg2: ::aya_ebpf::cty::c_ulong, + arg3: *mut qdisc_walker, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cipher_context { + pub iv: [::aya_ebpf::cty::c_char; 20usize], + pub rec_seq: [::aya_ebpf::cty::c_char; 8usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct srcu_usage { + pub node: *mut srcu_node, + pub level: [*mut srcu_node; 4usize], + pub srcu_size_state: ::aya_ebpf::cty::c_int, + pub srcu_cb_mutex: mutex, + pub lock: raw_spinlock_t, + pub srcu_gp_mutex: mutex, + pub srcu_gp_seq: ::aya_ebpf::cty::c_ulong, + pub srcu_gp_seq_needed: ::aya_ebpf::cty::c_ulong, + pub srcu_gp_seq_needed_exp: ::aya_ebpf::cty::c_ulong, + pub srcu_gp_start: ::aya_ebpf::cty::c_ulong, + pub srcu_last_gp_end: ::aya_ebpf::cty::c_ulong, + pub srcu_size_jiffies: ::aya_ebpf::cty::c_ulong, + pub srcu_n_lock_retries: ::aya_ebpf::cty::c_ulong, + pub srcu_n_exp_nodelay: ::aya_ebpf::cty::c_ulong, + pub sda_is_static: bool_, + pub srcu_barrier_seq: ::aya_ebpf::cty::c_ulong, + pub srcu_barrier_mutex: mutex, + pub srcu_barrier_completion: completion, + pub srcu_barrier_cpu_cnt: atomic_t, + pub reschedule_jiffies: ::aya_ebpf::cty::c_ulong, + pub reschedule_count: ::aya_ebpf::cty::c_ulong, + pub work: delayed_work, + pub irq_work: irq_work, + pub srcu_ssp: *mut srcu_struct, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct debugfs_u32_array { + pub array: *mut u32_, + pub n_elements: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct cma_memrange { + pub base_pfn: ::aya_ebpf::cty::c_ulong, + pub count: ::aya_ebpf::cty::c_ulong, + pub __bindgen_anon_1: cma_memrange__bindgen_ty_1, + pub dfs_bitmap: debugfs_u32_array, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union cma_memrange__bindgen_ty_1 { + pub early_pfn: ::aya_ebpf::cty::c_ulong, + pub bitmap: *mut ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct cma { + pub count: ::aya_ebpf::cty::c_ulong, + pub available_count: ::aya_ebpf::cty::c_ulong, + pub order_per_bit: ::aya_ebpf::cty::c_uint, + pub lock: spinlock_t, + pub alloc_mutex: mutex, + pub mem_head: hlist_head, + pub mem_head_lock: spinlock_t, + pub name: [::aya_ebpf::cty::c_char; 64usize], + pub nranges: ::aya_ebpf::cty::c_int, + pub ranges: [cma_memrange; 8usize], + pub nr_pages_succeeded: atomic64_t, + pub nr_pages_failed: atomic64_t, + pub nr_pages_released: atomic64_t, + pub cma_kobj: *mut cma_kobject, + pub flags: ::aya_ebpf::cty::c_ulong, + pub nid: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cma_kobject { + pub kobj: kobject, + pub cma: *mut cma, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_coalesce { + pub cmd: __u32, + pub rx_coalesce_usecs: __u32, + pub rx_max_coalesced_frames: __u32, + pub rx_coalesce_usecs_irq: __u32, + pub rx_max_coalesced_frames_irq: __u32, + pub tx_coalesce_usecs: __u32, + pub tx_max_coalesced_frames: __u32, + pub tx_coalesce_usecs_irq: __u32, + pub tx_max_coalesced_frames_irq: __u32, + pub stats_block_coalesce_usecs: __u32, + pub use_adaptive_rx_coalesce: __u32, + pub use_adaptive_tx_coalesce: __u32, + pub pkt_rate_low: __u32, + pub rx_coalesce_usecs_low: __u32, + pub rx_max_coalesced_frames_low: __u32, + pub tx_coalesce_usecs_low: __u32, + pub tx_max_coalesced_frames_low: __u32, + pub pkt_rate_high: __u32, + pub rx_coalesce_usecs_high: __u32, + pub rx_max_coalesced_frames_high: __u32, + pub tx_coalesce_usecs_high: __u32, + pub tx_max_coalesced_frames_high: __u32, + pub rate_sample_interval: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kernel_ethtool_coalesce { + pub use_cqe_mode_tx: u8_, + pub use_cqe_mode_rx: u8_, + pub tx_aggr_max_bytes: u32_, + pub tx_aggr_max_frames: u32_, + pub tx_aggr_time_usecs: u32_, + pub rx_cqe_frames: u32_, + pub rx_cqe_nsecs: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct compact_control { + pub freepages: [list_head; 11usize], + pub migratepages: list_head, + pub nr_freepages: ::aya_ebpf::cty::c_uint, + pub nr_migratepages: ::aya_ebpf::cty::c_uint, + pub free_pfn: ::aya_ebpf::cty::c_ulong, + pub migrate_pfn: ::aya_ebpf::cty::c_ulong, + pub fast_start_pfn: ::aya_ebpf::cty::c_ulong, + pub zone: *mut zone, + pub total_migrate_scanned: ::aya_ebpf::cty::c_ulong, + pub total_free_scanned: ::aya_ebpf::cty::c_ulong, + pub fast_search_fail: ::aya_ebpf::cty::c_ushort, + pub search_order: ::aya_ebpf::cty::c_short, + pub gfp_mask: gfp_t, + pub order: ::aya_ebpf::cty::c_int, + pub migratetype: ::aya_ebpf::cty::c_int, + pub alloc_flags: ::aya_ebpf::cty::c_uint, + pub highest_zoneidx: ::aya_ebpf::cty::c_int, + pub mode: migrate_mode::Type, + pub ignore_skip_hint: bool_, + pub no_set_skip_hint: bool_, + pub ignore_block_suitable: bool_, + pub direct_compaction: bool_, + pub proactive_compaction: bool_, + pub whole_zone: bool_, + pub contended: bool_, + pub finish_pageblock: bool_, + pub alloc_contig: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_tcpip4_spec { + pub ip4src: __be32, + pub ip4dst: __be32, + pub psrc: __be16, + pub pdst: __be16, + pub tos: __u8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_ah_espip4_spec { + pub ip4src: __be32, + pub ip4dst: __be32, + pub spi: __be32, + pub tos: __u8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_usrip4_spec { + pub ip4src: __be32, + pub ip4dst: __be32, + pub l4_4_bytes: __be32, + pub tos: __u8, + pub ip_ver: __u8, + pub proto: __u8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_tcpip6_spec { + pub ip6src: [__be32; 4usize], + pub ip6dst: [__be32; 4usize], + pub psrc: __be16, + pub pdst: __be16, + pub tclass: __u8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_ah_espip6_spec { + pub ip6src: [__be32; 4usize], + pub ip6dst: [__be32; 4usize], + pub spi: __be32, + pub tclass: __u8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_usrip6_spec { + pub ip6src: [__be32; 4usize], + pub ip6dst: [__be32; 4usize], + pub l4_4_bytes: __be32, + pub tclass: __u8, + pub l4_proto: __u8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethhdr { + pub h_dest: [::aya_ebpf::cty::c_uchar; 6usize], + pub h_source: [::aya_ebpf::cty::c_uchar; 6usize], + pub h_proto: __be16, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ethtool_flow_union { + pub tcp_ip4_spec: ethtool_tcpip4_spec, + pub udp_ip4_spec: ethtool_tcpip4_spec, + pub sctp_ip4_spec: ethtool_tcpip4_spec, + pub ah_ip4_spec: ethtool_ah_espip4_spec, + pub esp_ip4_spec: ethtool_ah_espip4_spec, + pub usr_ip4_spec: ethtool_usrip4_spec, + pub tcp_ip6_spec: ethtool_tcpip6_spec, + pub udp_ip6_spec: ethtool_tcpip6_spec, + pub sctp_ip6_spec: ethtool_tcpip6_spec, + pub ah_ip6_spec: ethtool_ah_espip6_spec, + pub esp_ip6_spec: ethtool_ah_espip6_spec, + pub usr_ip6_spec: ethtool_usrip6_spec, + pub ether_spec: ethhdr, + pub hdata: [__u8; 52usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_flow_ext { + pub padding: [__u8; 2usize], + pub h_dest: [::aya_ebpf::cty::c_uchar; 6usize], + pub vlan_etype: __be16, + pub vlan_tci: __be16, + pub data: [__be32; 2usize], +} +pub type filldir_t = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dir_context, + arg2: *const ::aya_ebpf::cty::c_char, + arg3: ::aya_ebpf::cty::c_int, + arg4: loff_t, + arg5: u64_, + arg6: ::aya_ebpf::cty::c_uint, + ) -> bool_, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dir_context { + pub actor: filldir_t, + pub pos: loff_t, + pub count: ::aya_ebpf::cty::c_int, + pub dt_flags_mask: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct compat_robust_list { + pub next: compat_uptr_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct compat_robust_list_head { + pub list: compat_robust_list, + pub futex_offset: compat_long_t, + pub list_op_pending: compat_uptr_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct in_addr { + pub s_addr: __be32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct completion_list { + pub next: *mut completion_list, + pub completion: completion, +} +pub type cond_update_fn_t = ::core::option::Option< + unsafe extern "C" fn(arg1: *mut trace_array, arg2: *mut ::aya_ebpf::cty::c_void) -> bool_, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cond_snapshot { + pub cond_data: *mut ::aya_ebpf::cty::c_void, + pub update: cond_update_fn_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct core_thread { + pub task: *mut task_struct, + pub next: *mut core_thread, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct core_state { + pub nr_threads: atomic_t, + pub dumper: core_thread, + pub startup: completion, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct core_vma_metadata { + pub start: ::aya_ebpf::cty::c_ulong, + pub end: ::aya_ebpf::cty::c_ulong, + pub flags: vm_flags_t, + pub dump_size: ::aya_ebpf::cty::c_ulong, + pub pgoff: ::aya_ebpf::cty::c_ulong, + pub file: *mut file, +} +pub type kernel_siginfo_t = kernel_siginfo; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct coredump_params { + pub siginfo: *const kernel_siginfo_t, + pub file: *mut file, + pub limit: ::aya_ebpf::cty::c_ulong, + pub mm_flags: ::aya_ebpf::cty::c_ulong, + pub cpu: ::aya_ebpf::cty::c_int, + pub written: loff_t, + pub pos: loff_t, + pub to_skip: loff_t, + pub vma_count: ::aya_ebpf::cty::c_int, + pub vma_data_size: usize, + pub vma_meta: *mut core_vma_metadata, + pub pid: *mut pid, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct coupling_desc { + pub coupled_rdevs: *mut *mut regulator_dev, + pub coupler: *mut regulator_coupler, + pub n_resolved: ::aya_ebpf::cty::c_int, + pub n_coupled: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct folio_batch { + pub nr: ::aya_ebpf::cty::c_uchar, + pub i: ::aya_ebpf::cty::c_uchar, + pub percpu_pvec_drained: bool_, + pub folios: [*mut folio; 31usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct perf_branch_entry { + pub from: __u64, + pub to: __u64, + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, +} +impl perf_branch_entry { + #[inline] + pub fn mispred(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u64) } + } + #[inline] + pub fn set_mispred(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn mispred_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_mispred_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn predicted(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u64) } + } + #[inline] + pub fn set_predicted(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn predicted_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_predicted_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn in_tx(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u64) } + } + #[inline] + pub fn set_in_tx(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn in_tx_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_in_tx_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn abort(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u64) } + } + #[inline] + pub fn set_abort(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn abort_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_abort_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn cycles(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 16u8) as u64) } + } + #[inline] + pub fn set_cycles(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 16u8, val as u64) + } + } + #[inline] + pub unsafe fn cycles_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 16u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_cycles_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 16u8, + val as u64, + ) + } + } + #[inline] + pub fn type_(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 4u8) as u64) } + } + #[inline] + pub fn set_type(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(20usize, 4u8, val as u64) + } + } + #[inline] + pub unsafe fn type__raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 20usize, + 4u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_type_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 20usize, + 4u8, + val as u64, + ) + } + } + #[inline] + pub fn spec(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 2u8) as u64) } + } + #[inline] + pub fn set_spec(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(24usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn spec_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 24usize, + 2u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_spec_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 24usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn new_type(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(26usize, 4u8) as u64) } + } + #[inline] + pub fn set_new_type(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(26usize, 4u8, val as u64) + } + } + #[inline] + pub unsafe fn new_type_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 26usize, + 4u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_new_type_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 26usize, + 4u8, + val as u64, + ) + } + } + #[inline] + pub fn priv_(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(30usize, 3u8) as u64) } + } + #[inline] + pub fn set_priv(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(30usize, 3u8, val as u64) + } + } + #[inline] + pub unsafe fn priv__raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 30usize, + 3u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_priv_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 30usize, + 3u8, + val as u64, + ) + } + } + #[inline] + pub fn reserved(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(33usize, 31u8) as u64) } + } + #[inline] + pub fn set_reserved(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(33usize, 31u8, val as u64) + } + } + #[inline] + pub unsafe fn reserved_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 33usize, + 31u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_reserved_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 33usize, + 31u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + mispred: __u64, + predicted: __u64, + in_tx: __u64, + abort: __u64, + cycles: __u64, + type_: __u64, + spec: __u64, + new_type: __u64, + priv_: __u64, + reserved: __u64, + ) -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let mispred: u64 = unsafe { ::core::mem::transmute(mispred) }; + mispred as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let predicted: u64 = unsafe { ::core::mem::transmute(predicted) }; + predicted as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let in_tx: u64 = unsafe { ::core::mem::transmute(in_tx) }; + in_tx as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let abort: u64 = unsafe { ::core::mem::transmute(abort) }; + abort as u64 + }); + __bindgen_bitfield_unit.set(4usize, 16u8, { + let cycles: u64 = unsafe { ::core::mem::transmute(cycles) }; + cycles as u64 + }); + __bindgen_bitfield_unit.set(20usize, 4u8, { + let type_: u64 = unsafe { ::core::mem::transmute(type_) }; + type_ as u64 + }); + __bindgen_bitfield_unit.set(24usize, 2u8, { + let spec: u64 = unsafe { ::core::mem::transmute(spec) }; + spec as u64 + }); + __bindgen_bitfield_unit.set(26usize, 4u8, { + let new_type: u64 = unsafe { ::core::mem::transmute(new_type) }; + new_type as u64 + }); + __bindgen_bitfield_unit.set(30usize, 3u8, { + let priv_: u64 = unsafe { ::core::mem::transmute(priv_) }; + priv_ as u64 + }); + __bindgen_bitfield_unit.set(33usize, 31u8, { + let reserved: u64 = unsafe { ::core::mem::transmute(reserved) }; + reserved as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug)] +pub struct perf_branch_stack { + pub nr: u64_, + pub hw_idx: u64_, + pub entries: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cpu_itimer { + pub expires: u64_, + pub incr: u64_, +} +#[repr(C)] +#[derive(Debug)] +pub struct cpu_rmap { + pub refcount: kref, + pub size: u16_, + pub obj: *mut *mut ::aya_ebpf::cty::c_void, + pub near: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cpu_rmap__bindgen_ty_1 { + pub index: u16_, + pub dist: u16_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct cpu_stop_done { + pub nr_todo: atomic_t, + pub ret: ::aya_ebpf::cty::c_int, + pub completion: completion, +} +pub type cpu_stop_fn_t = ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ::aya_ebpf::cty::c_void) -> ::aya_ebpf::cty::c_int, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cpu_stop_work { + pub list: list_head, + pub fn_: cpu_stop_fn_t, + pub caller: ::aya_ebpf::cty::c_ulong, + pub arg: *mut ::aya_ebpf::cty::c_void, + pub done: *mut cpu_stop_done, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct cpudl { + pub lock: raw_spinlock_t, + pub size: ::aya_ebpf::cty::c_int, + pub free_cpus: cpumask_var_t, + pub elements: *mut cpudl_item, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cpudl_item { + pub dl: u64_, + pub cpu: ::aya_ebpf::cty::c_int, + pub idx: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct plist_head { + pub node_list: list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pm_qos_constraints { + pub list: plist_head, + pub target_value: s32, + pub default_value: s32, + pub no_constraint_value: s32, + pub type_: pm_qos_type::Type, + pub notifiers: *mut blocking_notifier_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct freq_constraints { + pub min_freq: pm_qos_constraints, + pub min_freq_notifiers: blocking_notifier_head, + pub max_freq: pm_qos_constraints, + pub max_freq_notifiers: blocking_notifier_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cpuidle_state_usage { + pub disable: ::aya_ebpf::cty::c_ulonglong, + pub usage: ::aya_ebpf::cty::c_ulonglong, + pub time_ns: u64_, + pub above: ::aya_ebpf::cty::c_ulonglong, + pub below: ::aya_ebpf::cty::c_ulonglong, + pub rejected: ::aya_ebpf::cty::c_ulonglong, + pub s2idle_usage: ::aya_ebpf::cty::c_ulonglong, + pub s2idle_time: ::aya_ebpf::cty::c_ulonglong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cpuidle_driver_kobj { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cpuidle_device { + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub cpu: ::aya_ebpf::cty::c_uint, + pub next_hrtimer: ktime_t, + pub last_state_idx: ::aya_ebpf::cty::c_int, + pub last_residency_ns: u64_, + pub poll_limit_ns: u64_, + pub forced_idle_latency_limit_ns: u64_, + pub states_usage: [cpuidle_state_usage; 10usize], + pub kobjs: [*mut cpuidle_state_kobj; 10usize], + pub kobj_driver: *mut cpuidle_driver_kobj, + pub kobj_dev: *mut cpuidle_device_kobj, + pub device_list: list_head, +} +impl cpuidle_device { + #[inline] + pub fn registered(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_registered(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn registered_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_registered_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn enabled(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_enabled(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn enabled_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_enabled_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn poll_time_limit(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_poll_time_limit(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn poll_time_limit_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_poll_time_limit_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + registered: ::aya_ebpf::cty::c_uint, + enabled: ::aya_ebpf::cty::c_uint, + poll_time_limit: ::aya_ebpf::cty::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let registered: u32 = unsafe { ::core::mem::transmute(registered) }; + registered as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let enabled: u32 = unsafe { ::core::mem::transmute(enabled) }; + enabled as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let poll_time_limit: u32 = unsafe { ::core::mem::transmute(poll_time_limit) }; + poll_time_limit as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct cpuidle_device_kobj { + pub dev: *mut cpuidle_device, + pub kobj_unregister: completion, + pub kobj: kobject, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cpuidle_state { + pub name: [::aya_ebpf::cty::c_char; 16usize], + pub desc: [::aya_ebpf::cty::c_char; 32usize], + pub exit_latency_ns: s64, + pub target_residency_ns: s64, + pub flags: ::aya_ebpf::cty::c_uint, + pub exit_latency: ::aya_ebpf::cty::c_uint, + pub power_usage: ::aya_ebpf::cty::c_int, + pub target_residency: ::aya_ebpf::cty::c_uint, + pub enter: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut cpuidle_device, + arg2: *mut cpuidle_driver, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub enter_dead: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut cpuidle_device, arg2: ::aya_ebpf::cty::c_int), + >, + pub enter_s2idle: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut cpuidle_device, + arg2: *mut cpuidle_driver, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cpuidle_driver { + pub name: *const ::aya_ebpf::cty::c_char, + pub owner: *mut module, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub states: [cpuidle_state; 10usize], + pub state_count: ::aya_ebpf::cty::c_int, + pub safe_state_index: ::aya_ebpf::cty::c_int, + pub cpumask: *mut cpumask, + pub governor: *const ::aya_ebpf::cty::c_char, +} +impl cpuidle_driver { + #[inline] + pub fn bctimer(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_bctimer(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn bctimer_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_bctimer_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(bctimer: ::aya_ebpf::cty::c_uint) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let bctimer: u32 = unsafe { ::core::mem::transmute(bctimer) }; + bctimer as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct cpuidle_state_kobj { + pub state: *mut cpuidle_state, + pub state_usage: *mut cpuidle_state_usage, + pub kobj_unregister: completion, + pub kobj: kobject, + pub device: *mut cpuidle_device, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cpupri_vec { + pub count: atomic_t, + pub mask: cpumask_var_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cpupri { + pub pri_to_cpu: [cpupri_vec; 101usize], + pub cpu_to_pri: *mut ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct range { + pub start: u64_, + pub end: u64_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct cred { + pub usage: atomic_long_t, + pub uid: kuid_t, + pub gid: kgid_t, + pub suid: kuid_t, + pub sgid: kgid_t, + pub euid: kuid_t, + pub egid: kgid_t, + pub fsuid: kuid_t, + pub fsgid: kgid_t, + pub securebits: ::aya_ebpf::cty::c_uint, + pub cap_inheritable: kernel_cap_t, + pub cap_permitted: kernel_cap_t, + pub cap_effective: kernel_cap_t, + pub cap_bset: kernel_cap_t, + pub cap_ambient: kernel_cap_t, + pub jit_keyring: ::aya_ebpf::cty::c_uchar, + pub session_keyring: *mut key, + pub process_keyring: *mut key, + pub thread_keyring: *mut key, + pub request_key_auth: *mut key, + pub security: *mut ::aya_ebpf::cty::c_void, + pub user: *mut user_struct, + pub user_ns: *mut user_namespace, + pub ucounts: *mut ucounts, + pub group_info: *mut group_info, + pub __bindgen_anon_1: cred__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union cred__bindgen_ty_1 { + pub non_rcu: ::aya_ebpf::cty::c_int, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Debug)] +pub struct crypto_tfm { + pub refcnt: refcount_t, + pub crt_flags: u32_, + pub node: ::aya_ebpf::cty::c_int, + pub fb: *mut crypto_tfm, + pub exit: ::core::option::Option, + pub __crt_alg: *mut crypto_alg, + pub __crt_ctx: __IncompleteArrayField<*mut ::aya_ebpf::cty::c_void>, +} +#[repr(C)] +#[derive(Debug)] +pub struct crypto_aead { + pub authsize: ::aya_ebpf::cty::c_uint, + pub reqsize: ::aya_ebpf::cty::c_uint, + pub base: crypto_tfm, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct crypto_spawn { + pub list: list_head, + pub alg: *mut crypto_alg, + pub __bindgen_anon_1: crypto_spawn__bindgen_ty_1, + pub frontend: *const crypto_type, + pub mask: u32_, + pub dead: bool_, + pub registered: bool_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union crypto_spawn__bindgen_ty_1 { + pub inst: *mut crypto_instance, + pub next: *mut crypto_spawn, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crypto_template { + pub list: list_head, + pub instances: hlist_head, + pub dead: hlist_head, + pub module: *mut module, + pub free_work: work_struct, + pub create: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut crypto_template, + arg2: *mut *mut rtattr, + ) -> ::aya_ebpf::cty::c_int, + >, + pub name: [::aya_ebpf::cty::c_char; 128usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crypto_type { + pub ctxsize: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut crypto_alg, + arg2: u32_, + arg3: u32_, + ) -> ::aya_ebpf::cty::c_uint, + >, + pub extsize: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut crypto_alg) -> ::aya_ebpf::cty::c_uint, + >, + pub init_tfm: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut crypto_tfm) -> ::aya_ebpf::cty::c_int, + >, + pub show: + ::core::option::Option, + pub report: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sk_buff, arg2: *mut crypto_alg) -> ::aya_ebpf::cty::c_int, + >, + pub free: ::core::option::Option, + pub destroy: ::core::option::Option, + pub type_: ::aya_ebpf::cty::c_uint, + pub maskclear: ::aya_ebpf::cty::c_uint, + pub maskset: ::aya_ebpf::cty::c_uint, + pub tfmsize: ::aya_ebpf::cty::c_uint, + pub algsize: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rtattr { + pub rta_len: ::aya_ebpf::cty::c_ushort, + pub rta_type: ::aya_ebpf::cty::c_ushort, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct css_rstat_cpu { + pub updated_children: *mut cgroup_subsys_state, + pub updated_next: *mut cgroup_subsys_state, + pub lnode: llist_node, + pub owner: *mut cgroup_subsys_state, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct css_set { + pub subsys: [*mut cgroup_subsys_state; 15usize], + pub refcount: refcount_t, + pub dom_cset: *mut css_set, + pub dfl_cgrp: *mut cgroup, + pub nr_tasks: ::aya_ebpf::cty::c_int, + pub tasks: list_head, + pub mg_tasks: list_head, + pub dying_tasks: list_head, + pub task_iters: list_head, + pub e_cset_node: [list_head; 15usize], + pub threaded_csets: list_head, + pub threaded_csets_node: list_head, + pub hlist: hlist_node, + pub cgrp_links: list_head, + pub mg_src_preload_node: list_head, + pub mg_dst_preload_node: list_head, + pub mg_node: list_head, + pub mg_src_cgrp: *mut cgroup, + pub mg_dst_cgrp: *mut cgroup, + pub mg_dst_cset: *mut css_set, + pub dead: bool_, + pub callback_head: callback_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ctl_table_header { + pub __bindgen_anon_1: ctl_table_header__bindgen_ty_1, + pub unregistering: *mut completion, + pub ctl_table_arg: *const ctl_table, + pub root: *mut ctl_table_root, + pub set: *mut ctl_table_set, + pub parent: *mut ctl_dir, + pub node: *mut ctl_node, + pub inodes: hlist_head, + pub type_: ctl_table_header__bindgen_ty_2::Type, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ctl_table_header__bindgen_ty_1 { + pub __bindgen_anon_1: ctl_table_header__bindgen_ty_1__bindgen_ty_1, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ctl_table_header__bindgen_ty_1__bindgen_ty_1 { + pub ctl_table: *const ctl_table, + pub ctl_table_size: ::aya_ebpf::cty::c_int, + pub used: ::aya_ebpf::cty::c_int, + pub count: ::aya_ebpf::cty::c_int, + pub nreg: ::aya_ebpf::cty::c_int, +} +pub mod ctl_table_header__bindgen_ty_2 { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const SYSCTL_TABLE_TYPE_DEFAULT: Type = 0; + pub const SYSCTL_TABLE_TYPE_PERMANENTLY_EMPTY: Type = 1; +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ctl_dir { + pub header: ctl_table_header, + pub root: rb_root, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ctl_node { + pub node: rb_node, + pub header: *mut ctl_table_header, +} +pub type proc_handler = ::core::option::Option< + unsafe extern "C" fn( + arg1: *const ctl_table, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut ::aya_ebpf::cty::c_void, + arg4: *mut usize, + arg5: *mut loff_t, + ) -> ::aya_ebpf::cty::c_int, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ctl_table { + pub procname: *const ::aya_ebpf::cty::c_char, + pub data: *mut ::aya_ebpf::cty::c_void, + pub maxlen: ::aya_ebpf::cty::c_int, + pub mode: umode_t, + pub proc_handler: proc_handler, + pub poll: *mut ctl_table_poll, + pub extra1: *mut ::aya_ebpf::cty::c_void, + pub extra2: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ctl_table_poll { + pub event: atomic_t, + pub wait: wait_queue_head_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ctl_table_set { + pub is_seen: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ctl_table_set) -> ::aya_ebpf::cty::c_int, + >, + pub dir: ctl_dir, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ctl_table_root { + pub default_set: ctl_table_set, + pub lookup: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ctl_table_root) -> *mut ctl_table_set, + >, + pub set_ownership: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ctl_table_header, arg2: *mut kuid_t, arg3: *mut kgid_t), + >, + pub permissions: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ctl_table_header, + arg2: *const ctl_table, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ctx_rq_wait { + pub comp: completion, + pub count: atomic_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct dax_device { + pub inode: inode, + pub cdev: cdev, + pub private: *mut ::aya_ebpf::cty::c_void, + pub flags: ::aya_ebpf::cty::c_ulong, + pub ops: *const dax_operations, + pub holder_data: *mut ::aya_ebpf::cty::c_void, + pub holder_ops: *const dax_holder_operations, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dax_holder_operations { + pub notify_failure: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dax_device, + arg2: u64_, + arg3: u64_, + arg4: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dax_operations { + pub direct_access: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dax_device, + arg2: ::aya_ebpf::cty::c_ulong, + arg3: ::aya_ebpf::cty::c_long, + arg4: dax_access_mode::Type, + arg5: *mut *mut ::aya_ebpf::cty::c_void, + arg6: *mut ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_long, + >, + pub zero_page_range: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dax_device, + arg2: ::aya_ebpf::cty::c_ulong, + arg3: usize, + ) -> ::aya_ebpf::cty::c_int, + >, + pub recovery_write: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dax_device, + arg2: ::aya_ebpf::cty::c_ulong, + arg3: *mut ::aya_ebpf::cty::c_void, + arg4: usize, + arg5: *mut iov_iter, + ) -> usize, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kobj_type { + pub release: ::core::option::Option, + pub sysfs_ops: *const sysfs_ops, + pub default_groups: *mut *const attribute_group, + pub child_ns_type: ::core::option::Option< + unsafe extern "C" fn(arg1: *const kobject) -> *const kobj_ns_type_operations, + >, + pub namespace: + ::core::option::Option *const ns_common>, + pub get_ownership: ::core::option::Option< + unsafe extern "C" fn(arg1: *const kobject, arg2: *mut kuid_t, arg3: *mut kgid_t), + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dcb_app { + pub selector: __u8, + pub priority: __u8, + pub protocol: __u16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dcb_peer_app_info { + pub willing: __u8, + pub error: __u8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dcbnl_buffer { + pub prio2buffer: [__u8; 8usize], + pub buffer_size: [__u32; 8usize], + pub total_size: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dcbnl_rtnl_ops { + pub ieee_getets: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut ieee_ets) -> ::aya_ebpf::cty::c_int, + >, + pub ieee_setets: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut ieee_ets) -> ::aya_ebpf::cty::c_int, + >, + pub ieee_getmaxrate: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ieee_maxrate, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ieee_setmaxrate: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ieee_maxrate, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ieee_getqcn: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut ieee_qcn) -> ::aya_ebpf::cty::c_int, + >, + pub ieee_setqcn: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut ieee_qcn) -> ::aya_ebpf::cty::c_int, + >, + pub ieee_getqcnstats: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ieee_qcn_stats, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ieee_getpfc: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut ieee_pfc) -> ::aya_ebpf::cty::c_int, + >, + pub ieee_setpfc: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut ieee_pfc) -> ::aya_ebpf::cty::c_int, + >, + pub ieee_getapp: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut dcb_app) -> ::aya_ebpf::cty::c_int, + >, + pub ieee_setapp: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut dcb_app) -> ::aya_ebpf::cty::c_int, + >, + pub ieee_delapp: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut dcb_app) -> ::aya_ebpf::cty::c_int, + >, + pub ieee_peer_getets: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut ieee_ets) -> ::aya_ebpf::cty::c_int, + >, + pub ieee_peer_getpfc: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut ieee_pfc) -> ::aya_ebpf::cty::c_int, + >, + pub getstate: ::core::option::Option u8_>, + pub setstate: + ::core::option::Option u8_>, + pub getpermhwaddr: + ::core::option::Option, + pub setpgtccfgtx: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: u8_, + arg4: u8_, + arg5: u8_, + arg6: u8_, + ), + >, + pub setpgbwgcfgtx: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: ::aya_ebpf::cty::c_int, arg3: u8_), + >, + pub setpgtccfgrx: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: u8_, + arg4: u8_, + arg5: u8_, + arg6: u8_, + ), + >, + pub setpgbwgcfgrx: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: ::aya_ebpf::cty::c_int, arg3: u8_), + >, + pub getpgtccfgtx: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut u8_, + arg4: *mut u8_, + arg5: *mut u8_, + arg6: *mut u8_, + ), + >, + pub getpgbwgcfgtx: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: ::aya_ebpf::cty::c_int, arg3: *mut u8_), + >, + pub getpgtccfgrx: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut u8_, + arg4: *mut u8_, + arg5: *mut u8_, + arg6: *mut u8_, + ), + >, + pub getpgbwgcfgrx: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: ::aya_ebpf::cty::c_int, arg3: *mut u8_), + >, + pub setpfccfg: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: ::aya_ebpf::cty::c_int, arg3: u8_), + >, + pub getpfccfg: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: ::aya_ebpf::cty::c_int, arg3: *mut u8_), + >, + pub setall: ::core::option::Option u8_>, + pub getcap: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut u8_, + ) -> u8_, + >, + pub getnumtcs: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut u8_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub setnumtcs: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: u8_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub getpfcstate: ::core::option::Option u8_>, + pub setpfcstate: ::core::option::Option, + pub getbcncfg: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: ::aya_ebpf::cty::c_int, arg3: *mut u32_), + >, + pub setbcncfg: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: ::aya_ebpf::cty::c_int, arg3: u32_), + >, + pub getbcnrp: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: ::aya_ebpf::cty::c_int, arg3: *mut u8_), + >, + pub setbcnrp: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: ::aya_ebpf::cty::c_int, arg3: u8_), + >, + pub setapp: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: u8_, + arg3: u16_, + arg4: u8_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub getapp: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: u8_, + arg3: u16_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub getfeatcfg: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut u8_, + ) -> u8_, + >, + pub setfeatcfg: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: ::aya_ebpf::cty::c_int, arg3: u8_) -> u8_, + >, + pub getdcbx: ::core::option::Option u8_>, + pub setdcbx: + ::core::option::Option u8_>, + pub peer_getappinfo: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut dcb_peer_app_info, + arg3: *mut u16_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub peer_getapptable: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut dcb_app) -> ::aya_ebpf::cty::c_int, + >, + pub cee_peer_getpg: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut cee_pg) -> ::aya_ebpf::cty::c_int, + >, + pub cee_peer_getpfc: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut cee_pfc) -> ::aya_ebpf::cty::c_int, + >, + pub dcbnl_getbuffer: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut dcbnl_buffer, + ) -> ::aya_ebpf::cty::c_int, + >, + pub dcbnl_setbuffer: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut dcbnl_buffer, + ) -> ::aya_ebpf::cty::c_int, + >, + pub dcbnl_setapptrust: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut u8_, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub dcbnl_getapptrust: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut u8_, + arg3: *mut ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub dcbnl_setrewr: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut dcb_app) -> ::aya_ebpf::cty::c_int, + >, + pub dcbnl_delrewr: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut dcb_app) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ddebug_class_map { + pub link: list_head, + pub mod_: *mut module, + pub mod_name: *const ::aya_ebpf::cty::c_char, + pub class_names: *mut *const ::aya_ebpf::cty::c_char, + pub length: ::aya_ebpf::cty::c_int, + pub base: ::aya_ebpf::cty::c_int, + pub map_type: class_map_type::Type, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct deferred_split { + pub split_queue_lock: spinlock_t, + pub split_queue: list_head, + pub split_queue_len: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct delayed_call { + pub fn_: ::core::option::Option, + pub arg: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct hlist_bl_node { + pub next: *mut hlist_bl_node, + pub pprev: *mut *mut hlist_bl_node, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct qstr { + pub __bindgen_anon_1: qstr__bindgen_ty_1, + pub name: *const ::aya_ebpf::cty::c_uchar, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union qstr__bindgen_ty_1 { + pub __bindgen_anon_1: qstr__bindgen_ty_1__bindgen_ty_1, + pub hash_len: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct qstr__bindgen_ty_1__bindgen_ty_1 { + pub hash: u32_, + pub len: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union shortname_store { + pub string: [::aya_ebpf::cty::c_uchar; 40usize], + pub words: [::aya_ebpf::cty::c_ulong; 5usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct lockref { + pub __bindgen_anon_1: lockref__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union lockref__bindgen_ty_1 { + pub lock_count: __u64, + pub __bindgen_anon_1: lockref__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct lockref__bindgen_ty_1__bindgen_ty_1 { + pub lock: spinlock_t, + pub count: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct dentry { + pub d_flags: ::aya_ebpf::cty::c_uint, + pub d_seq: seqcount_spinlock_t, + pub d_hash: hlist_bl_node, + pub d_parent: *mut dentry, + pub __bindgen_anon_1: dentry__bindgen_ty_1, + pub d_inode: *mut inode, + pub d_shortname: shortname_store, + pub d_op: *const dentry_operations, + pub d_sb: *mut super_block, + pub d_time: ::aya_ebpf::cty::c_ulong, + pub d_fsdata: *mut ::aya_ebpf::cty::c_void, + pub d_lockref: lockref, + pub __bindgen_anon_2: dentry__bindgen_ty_2, + pub d_sib: hlist_node, + pub d_children: hlist_head, + pub __bindgen_anon_3: dentry__bindgen_ty_3, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union dentry__bindgen_ty_1 { + pub __d_name: qstr, + pub d_name: qstr, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union dentry__bindgen_ty_2 { + pub d_lru: list_head, + pub d_wait: *mut wait_queue_head_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union dentry__bindgen_ty_3 { + pub d_alias: hlist_node, + pub d_in_lookup_hash: hlist_bl_node, + pub d_rcu: callback_head, + pub waiters: *mut completion_list, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dentry_operations { + pub d_revalidate: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut inode, + arg2: *const qstr, + arg3: *mut dentry, + arg4: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub d_weak_revalidate: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dentry, + arg2: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub d_hash: ::core::option::Option< + unsafe extern "C" fn(arg1: *const dentry, arg2: *mut qstr) -> ::aya_ebpf::cty::c_int, + >, + pub d_compare: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const dentry, + arg2: ::aya_ebpf::cty::c_uint, + arg3: *const ::aya_ebpf::cty::c_char, + arg4: *const qstr, + ) -> ::aya_ebpf::cty::c_int, + >, + pub d_delete: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub d_init: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub d_release: ::core::option::Option, + pub d_prune: ::core::option::Option, + pub d_iput: ::core::option::Option, + pub d_dname: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dentry, + arg2: *mut ::aya_ebpf::cty::c_char, + arg3: ::aya_ebpf::cty::c_int, + ) -> *mut ::aya_ebpf::cty::c_char, + >, + pub d_automount: ::core::option::Option *mut vfsmount>, + pub d_manage: ::core::option::Option< + unsafe extern "C" fn(arg1: *const path, arg2: bool_) -> ::aya_ebpf::cty::c_int, + >, + pub d_real: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut dentry, arg2: d_real_type::Type) -> *mut dentry, + >, + pub d_unalias_trylock: + ::core::option::Option bool_>, + pub d_unalias_unlock: ::core::option::Option, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, +} +impl dentry_operations { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct desc_struct { + pub limit0: u16_, + pub base0: u16_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +impl desc_struct { + #[inline] + pub fn base1(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u16) } + } + #[inline] + pub fn set_base1(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 8u8, val as u64) + } + } + #[inline] + pub unsafe fn base1_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 8u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_base1_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 8u8, + val as u64, + ) + } + } + #[inline] + pub fn type_(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u16) } + } + #[inline] + pub fn set_type(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(8usize, 4u8, val as u64) + } + } + #[inline] + pub unsafe fn type__raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 8usize, + 4u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_type_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 8usize, + 4u8, + val as u64, + ) + } + } + #[inline] + pub fn s(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) } + } + #[inline] + pub fn set_s(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(12usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn s_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 12usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_s_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 12usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn dpl(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 2u8) as u16) } + } + #[inline] + pub fn set_dpl(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(13usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn dpl_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 13usize, + 2u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_dpl_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 13usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn p(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u16) } + } + #[inline] + pub fn set_p(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(15usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn p_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 15usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_p_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 15usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn limit1(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 4u8) as u16) } + } + #[inline] + pub fn set_limit1(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(16usize, 4u8, val as u64) + } + } + #[inline] + pub unsafe fn limit1_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 16usize, + 4u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_limit1_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 16usize, + 4u8, + val as u64, + ) + } + } + #[inline] + pub fn avl(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 1u8) as u16) } + } + #[inline] + pub fn set_avl(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(20usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn avl_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 20usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_avl_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 20usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn l(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u16) } + } + #[inline] + pub fn set_l(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(21usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn l_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 21usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_l_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 21usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn d(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(22usize, 1u8) as u16) } + } + #[inline] + pub fn set_d(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(22usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn d_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 22usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_d_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 22usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn g(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(23usize, 1u8) as u16) } + } + #[inline] + pub fn set_g(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(23usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn g_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 23usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_g_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 23usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn base2(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 8u8) as u16) } + } + #[inline] + pub fn set_base2(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(24usize, 8u8, val as u64) + } + } + #[inline] + pub unsafe fn base2_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 24usize, + 8u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_base2_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 24usize, + 8u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + base1: u16_, + type_: u16_, + s: u16_, + dpl: u16_, + p: u16_, + limit1: u16_, + avl: u16_, + l: u16_, + d: u16_, + g: u16_, + base2: u16_, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 8u8, { + let base1: u16 = unsafe { ::core::mem::transmute(base1) }; + base1 as u64 + }); + __bindgen_bitfield_unit.set(8usize, 4u8, { + let type_: u16 = unsafe { ::core::mem::transmute(type_) }; + type_ as u64 + }); + __bindgen_bitfield_unit.set(12usize, 1u8, { + let s: u16 = unsafe { ::core::mem::transmute(s) }; + s as u64 + }); + __bindgen_bitfield_unit.set(13usize, 2u8, { + let dpl: u16 = unsafe { ::core::mem::transmute(dpl) }; + dpl as u64 + }); + __bindgen_bitfield_unit.set(15usize, 1u8, { + let p: u16 = unsafe { ::core::mem::transmute(p) }; + p as u64 + }); + __bindgen_bitfield_unit.set(16usize, 4u8, { + let limit1: u16 = unsafe { ::core::mem::transmute(limit1) }; + limit1 as u64 + }); + __bindgen_bitfield_unit.set(20usize, 1u8, { + let avl: u16 = unsafe { ::core::mem::transmute(avl) }; + avl as u64 + }); + __bindgen_bitfield_unit.set(21usize, 1u8, { + let l: u16 = unsafe { ::core::mem::transmute(l) }; + l as u64 + }); + __bindgen_bitfield_unit.set(22usize, 1u8, { + let d: u16 = unsafe { ::core::mem::transmute(d) }; + d as u64 + }); + __bindgen_bitfield_unit.set(23usize, 1u8, { + let g: u16 = unsafe { ::core::mem::transmute(g) }; + g as u64 + }); + __bindgen_bitfield_unit.set(24usize, 8u8, { + let base2: u16 = unsafe { ::core::mem::transmute(base2) }; + base2 as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug)] +pub struct dev_ifalias { + pub rcuhead: callback_head, + pub ifalias: __IncompleteArrayField<::aya_ebpf::cty::c_char>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct dev_iommu { + pub lock: mutex, + pub fault_param: *mut iommu_fault_param, + pub fwspec: *mut iommu_fwspec, + pub iommu_dev: *mut iommu_device, + pub priv_: *mut ::aya_ebpf::cty::c_void, + pub max_pasids: u32_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: [u8; 3usize], +} +impl dev_iommu { + #[inline] + pub fn attach_deferred(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_attach_deferred(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn attach_deferred_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_attach_deferred_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn pci_32bit_workaround(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_pci_32bit_workaround(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn pci_32bit_workaround_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_pci_32bit_workaround_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn require_direct(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_require_direct(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn require_direct_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_require_direct_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn shadow_on_flush(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } + } + #[inline] + pub fn set_shadow_on_flush(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn shadow_on_flush_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_shadow_on_flush_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + attach_deferred: u32_, + pci_32bit_workaround: u32_, + require_direct: u32_, + shadow_on_flush: u32_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let attach_deferred: u32 = unsafe { ::core::mem::transmute(attach_deferred) }; + attach_deferred as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let pci_32bit_workaround: u32 = unsafe { ::core::mem::transmute(pci_32bit_workaround) }; + pci_32bit_workaround as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let require_direct: u32 = unsafe { ::core::mem::transmute(require_direct) }; + require_direct as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let shadow_on_flush: u32 = unsafe { ::core::mem::transmute(shadow_on_flush) }; + shadow_on_flush as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct vmem_altmap { + pub base_pfn: ::aya_ebpf::cty::c_ulong, + pub end_pfn: ::aya_ebpf::cty::c_ulong, + pub reserve: ::aya_ebpf::cty::c_ulong, + pub free: ::aya_ebpf::cty::c_ulong, + pub align: ::aya_ebpf::cty::c_ulong, + pub alloc: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +pub struct dev_pagemap { + pub altmap: vmem_altmap, + pub ref_: percpu_ref, + pub done: completion, + pub type_: memory_type::Type, + pub flags: ::aya_ebpf::cty::c_uint, + pub vmemmap_shift: ::aya_ebpf::cty::c_ulong, + pub ops: *const dev_pagemap_ops, + pub owner: *mut ::aya_ebpf::cty::c_void, + pub nr_range: ::aya_ebpf::cty::c_int, + pub __bindgen_anon_1: dev_pagemap__bindgen_ty_1, +} +#[repr(C)] +pub struct dev_pagemap__bindgen_ty_1 { + pub range: __BindgenUnionField, + pub __bindgen_anon_1: __BindgenUnionField, + pub bindgen_union_field: [u64; 2usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct dev_pagemap__bindgen_ty_1__bindgen_ty_1 { + pub __empty_ranges: dev_pagemap__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, + pub ranges: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dev_pagemap__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dev_pagemap_ops { + pub folio_free: ::core::option::Option, + pub migrate_to_ram: + ::core::option::Option vm_fault_t>, + pub memory_failure: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dev_pagemap, + arg2: ::aya_ebpf::cty::c_ulong, + arg3: ::aya_ebpf::cty::c_ulong, + arg4: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub folio_split: + ::core::option::Option, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dev_pin_info { + pub p: *mut pinctrl, + pub default_state: *mut pinctrl_state, + pub init_state: *mut pinctrl_state, + pub sleep_state: *mut pinctrl_state, + pub idle_state: *mut pinctrl_state, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dev_pm_ops { + pub prepare: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub complete: ::core::option::Option, + pub suspend: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub resume: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub freeze: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub thaw: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub poweroff: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub restore: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub suspend_late: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub resume_early: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub freeze_late: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub thaw_early: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub poweroff_late: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub restore_early: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub suspend_noirq: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub resume_noirq: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub freeze_noirq: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub thaw_noirq: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub poweroff_noirq: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub restore_noirq: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub runtime_suspend: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub runtime_resume: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub runtime_idle: + ::core::option::Option ::aya_ebpf::cty::c_int>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dev_pm_domain { + pub ops: dev_pm_ops, + pub start: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub detach: ::core::option::Option, + pub activate: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub sync: ::core::option::Option, + pub dismiss: ::core::option::Option, + pub set_performance_state: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut device, + arg2: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pm_qos_flags { + pub list: list_head, + pub effective_flags: s32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct dev_pm_qos { + pub resume_latency: pm_qos_constraints, + pub latency_tolerance: pm_qos_constraints, + pub freq: freq_constraints, + pub flags: pm_qos_flags, + pub resume_latency_req: *mut dev_pm_qos_request, + pub latency_tolerance_req: *mut dev_pm_qos_request, + pub flags_req: *mut dev_pm_qos_request, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pm_qos_flags_request { + pub node: list_head, + pub flags: s32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct dev_pm_qos_request { + pub type_: dev_pm_qos_req_type::Type, + pub data: dev_pm_qos_request__bindgen_ty_1, + pub dev: *mut device, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union dev_pm_qos_request__bindgen_ty_1 { + pub pnode: plist_node, + pub flr: pm_qos_flags_request, + pub freq: freq_qos_request, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct device_dma_parameters { + pub max_segment_size: ::aya_ebpf::cty::c_uint, + pub min_align_mask: ::aya_ebpf::cty::c_uint, + pub segment_boundary_mask: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct device_link { + pub supplier: *mut device, + pub s_node: list_head, + pub consumer: *mut device, + pub c_node: list_head, + pub link_dev: device, + pub status: device_link_state::Type, + pub flags: u32_, + pub rpm_active: refcount_t, + pub kref: kref, + pub rm_work: work_struct, + pub supplier_preactivated: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct device_node { + pub name: *const ::aya_ebpf::cty::c_char, + pub phandle: phandle, + pub full_name: *const ::aya_ebpf::cty::c_char, + pub fwnode: fwnode_handle, + pub properties: *mut property, + pub deadprops: *mut property, + pub parent: *mut device_node, + pub child: *mut device_node, + pub sibling: *mut device_node, + pub kobj: kobject, + pub _flags: ::aya_ebpf::cty::c_ulong, + pub data: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct device_physical_location { + pub panel: device_physical_location_panel::Type, + pub vertical_position: device_physical_location_vertical_position::Type, + pub horizontal_position: device_physical_location_horizontal_position::Type, + pub dock: bool_, + pub lid: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct klist_node { + pub n_klist: *mut ::aya_ebpf::cty::c_void, + pub n_node: list_head, + pub n_ref: kref, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct device_private { + pub klist_children: klist, + pub knode_parent: klist_node, + pub knode_driver: klist_node, + pub knode_bus: klist_node, + pub knode_class: klist_node, + pub deferred_probe: list_head, + pub async_driver: *const device_driver, + pub deferred_probe_reason: *mut ::aya_ebpf::cty::c_char, + pub device: *mut device, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: [u8; 7usize], +} +impl device_private { + #[inline] + pub fn dead(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_dead(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dead_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_dead_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(dead: u8_) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let dead: u8 = unsafe { ::core::mem::transmute(dead) }; + dead as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct device_type { + pub name: *const ::aya_ebpf::cty::c_char, + pub groups: *mut *const attribute_group, + pub uevent: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const device, + arg2: *mut kobj_uevent_env, + ) -> ::aya_ebpf::cty::c_int, + >, + pub devnode: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const device, + arg2: *mut umode_t, + arg3: *mut kuid_t, + arg4: *mut kgid_t, + ) -> *mut ::aya_ebpf::cty::c_char, + >, + pub release: ::core::option::Option, + pub pm: *const dev_pm_ops, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct devlink_dev_stats { + pub reload_stats: [u32_; 6usize], + pub remote_reload_stats: [u32_; 6usize], +} +#[repr(C)] +pub struct devlink { + pub index: u32_, + pub ports: xarray, + pub rate_list: list_head, + pub sb_list: list_head, + pub dpipe_table_list: list_head, + pub resource_list: list_head, + pub params: xarray, + pub region_list: list_head, + pub reporter_list: list_head, + pub dpipe_headers: *mut devlink_dpipe_headers, + pub trap_list: list_head, + pub trap_group_list: list_head, + pub trap_policer_list: list_head, + pub linecard_list: list_head, + pub ops: *const devlink_ops, + pub snapshot_ids: xarray, + pub stats: devlink_dev_stats, + pub dev: *mut device, + pub dev_name_index: *const ::aya_ebpf::cty::c_char, + pub dev_driver: *const device_driver, + pub _net: possible_net_t, + pub lock: mutex, + pub lock_key: lock_class_key, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub refcount: refcount_t, + pub rwork: rcu_work, + pub rel: *mut devlink_rel, + pub nested_rels: xarray, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 24usize]>, + pub priv_: __IncompleteArrayField<::aya_ebpf::cty::c_char>, +} +impl devlink { + #[inline] + pub fn reload_failed(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_reload_failed(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn reload_failed_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_reload_failed_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(reload_failed: u8_) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let reload_failed: u8 = unsafe { ::core::mem::transmute(reload_failed) }; + reload_failed as u64 + }); + __bindgen_bitfield_unit + } + #[inline] + pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct devlink_dpipe_field { + pub name: *const ::aya_ebpf::cty::c_char, + pub id: ::aya_ebpf::cty::c_uint, + pub bitwidth: ::aya_ebpf::cty::c_uint, + pub mapping_type: devlink_dpipe_field_mapping_type::Type, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct devlink_dpipe_header { + pub name: *const ::aya_ebpf::cty::c_char, + pub id: ::aya_ebpf::cty::c_uint, + pub fields: *mut devlink_dpipe_field, + pub fields_count: ::aya_ebpf::cty::c_uint, + pub global: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct devlink_dpipe_headers { + pub headers: *mut *mut devlink_dpipe_header, + pub headers_count: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct devlink_flash_update_params { + pub fw: *const firmware, + pub component: *const ::aya_ebpf::cty::c_char, + pub overwrite_mask: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct devlink_info_req { + pub msg: *mut sk_buff, + pub version_cb: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const ::aya_ebpf::cty::c_char, + arg2: devlink_info_version_type::Type, + arg3: *mut ::aya_ebpf::cty::c_void, + ), + >, + pub version_cb_priv: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct devlink_linecard { + pub list: list_head, + pub devlink: *mut devlink, + pub index: ::aya_ebpf::cty::c_uint, + pub ops: *const devlink_linecard_ops, + pub priv_: *mut ::aya_ebpf::cty::c_void, + pub state: devlink_linecard_state::Type, + pub state_lock: mutex, + pub type_: *const ::aya_ebpf::cty::c_char, + pub types: *mut devlink_linecard_type, + pub types_count: ::aya_ebpf::cty::c_uint, + pub rel_index: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct devlink_linecard_ops { + pub provision: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_linecard, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: *const ::aya_ebpf::cty::c_char, + arg4: *const ::aya_ebpf::cty::c_void, + arg5: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub unprovision: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_linecard, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub same_provision: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_linecard, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: *const ::aya_ebpf::cty::c_char, + arg4: *const ::aya_ebpf::cty::c_void, + ) -> bool_, + >, + pub types_count: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_linecard, + arg2: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_uint, + >, + pub types_get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_linecard, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: ::aya_ebpf::cty::c_uint, + arg4: *mut *const ::aya_ebpf::cty::c_char, + arg5: *mut *const ::aya_ebpf::cty::c_void, + ), + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct devlink_linecard_type { + pub type_: *const ::aya_ebpf::cty::c_char, + pub priv_: *const ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct devlink_ops { + pub supported_flash_update_params: u32_, + pub reload_actions: ::aya_ebpf::cty::c_ulong, + pub reload_limits: ::aya_ebpf::cty::c_ulong, + pub reload_down: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink, + arg2: bool_, + arg3: devlink_reload_action::Type, + arg4: devlink_reload_limit::Type, + arg5: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub reload_up: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink, + arg2: devlink_reload_action::Type, + arg3: devlink_reload_limit::Type, + arg4: *mut u32_, + arg5: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub sb_pool_get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink, + arg2: ::aya_ebpf::cty::c_uint, + arg3: u16_, + arg4: *mut devlink_sb_pool_info, + ) -> ::aya_ebpf::cty::c_int, + >, + pub sb_pool_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink, + arg2: ::aya_ebpf::cty::c_uint, + arg3: u16_, + arg4: u32_, + arg5: devlink_sb_threshold_type::Type, + arg6: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub sb_port_pool_get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_port, + arg2: ::aya_ebpf::cty::c_uint, + arg3: u16_, + arg4: *mut u32_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub sb_port_pool_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_port, + arg2: ::aya_ebpf::cty::c_uint, + arg3: u16_, + arg4: u32_, + arg5: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub sb_tc_pool_bind_get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_port, + arg2: ::aya_ebpf::cty::c_uint, + arg3: u16_, + arg4: devlink_sb_pool_type::Type, + arg5: *mut u16_, + arg6: *mut u32_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub sb_tc_pool_bind_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_port, + arg2: ::aya_ebpf::cty::c_uint, + arg3: u16_, + arg4: devlink_sb_pool_type::Type, + arg5: u16_, + arg6: u32_, + arg7: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub sb_occ_snapshot: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink, + arg2: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub sb_occ_max_clear: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink, + arg2: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub sb_occ_port_pool_get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_port, + arg2: ::aya_ebpf::cty::c_uint, + arg3: u16_, + arg4: *mut u32_, + arg5: *mut u32_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub sb_occ_tc_port_bind_get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_port, + arg2: ::aya_ebpf::cty::c_uint, + arg3: u16_, + arg4: devlink_sb_pool_type::Type, + arg5: *mut u32_, + arg6: *mut u32_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub eswitch_mode_get: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut devlink, arg2: *mut u16_) -> ::aya_ebpf::cty::c_int, + >, + pub eswitch_mode_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink, + arg2: u16_, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub eswitch_inline_mode_get: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut devlink, arg2: *mut u8_) -> ::aya_ebpf::cty::c_int, + >, + pub eswitch_inline_mode_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink, + arg2: u8_, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub eswitch_encap_mode_get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink, + arg2: *mut devlink_eswitch_encap_mode::Type, + ) -> ::aya_ebpf::cty::c_int, + >, + pub eswitch_encap_mode_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink, + arg2: devlink_eswitch_encap_mode::Type, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub info_get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink, + arg2: *mut devlink_info_req, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub flash_update: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink, + arg2: *mut devlink_flash_update_params, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub trap_init: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink, + arg2: *const devlink_trap, + arg3: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub trap_fini: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink, + arg2: *const devlink_trap, + arg3: *mut ::aya_ebpf::cty::c_void, + ), + >, + pub trap_action_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink, + arg2: *const devlink_trap, + arg3: devlink_trap_action::Type, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub trap_group_init: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink, + arg2: *const devlink_trap_group, + ) -> ::aya_ebpf::cty::c_int, + >, + pub trap_group_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink, + arg2: *const devlink_trap_group, + arg3: *const devlink_trap_policer, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub trap_group_action_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink, + arg2: *const devlink_trap_group, + arg3: devlink_trap_action::Type, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub trap_drop_counter_get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink, + arg2: *const devlink_trap, + arg3: *mut u64_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub trap_policer_init: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink, + arg2: *const devlink_trap_policer, + ) -> ::aya_ebpf::cty::c_int, + >, + pub trap_policer_fini: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut devlink, arg2: *const devlink_trap_policer), + >, + pub trap_policer_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink, + arg2: *const devlink_trap_policer, + arg3: u64_, + arg4: u64_, + arg5: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub trap_policer_counter_get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink, + arg2: *const devlink_trap_policer, + arg3: *mut u64_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_new: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink, + arg2: *const devlink_port_new_attrs, + arg3: *mut netlink_ext_ack, + arg4: *mut *mut devlink_port, + ) -> ::aya_ebpf::cty::c_int, + >, + pub rate_leaf_tx_share_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_rate, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: u64_, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub rate_leaf_tx_max_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_rate, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: u64_, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub rate_leaf_tx_priority_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_rate, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: u32_, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub rate_leaf_tx_weight_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_rate, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: u32_, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub rate_leaf_tc_bw_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_rate, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: *mut u32_, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub rate_node_tx_share_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_rate, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: u64_, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub rate_node_tx_max_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_rate, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: u64_, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub rate_node_tx_priority_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_rate, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: u32_, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub rate_node_tx_weight_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_rate, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: u32_, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub rate_node_tc_bw_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_rate, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: *mut u32_, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub rate_node_new: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_rate, + arg2: *mut *mut ::aya_ebpf::cty::c_void, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub rate_node_del: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_rate, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub rate_leaf_parent_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_rate, + arg2: *mut devlink_rate, + arg3: *mut ::aya_ebpf::cty::c_void, + arg4: *mut ::aya_ebpf::cty::c_void, + arg5: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub rate_node_parent_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_rate, + arg2: *mut devlink_rate, + arg3: *mut ::aya_ebpf::cty::c_void, + arg4: *mut ::aya_ebpf::cty::c_void, + arg5: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub selftest_check: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink, + arg2: ::aya_ebpf::cty::c_uint, + arg3: *mut netlink_ext_ack, + ) -> bool_, + >, + pub selftest_run: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink, + arg2: ::aya_ebpf::cty::c_uint, + arg3: *mut netlink_ext_ack, + ) -> devlink_selftest_status::Type, + >, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union devlink_param_value { + pub vu8: u8_, + pub vu16: u16_, + pub vu32: u32_, + pub vu64: u64_, + pub vstr: [::aya_ebpf::cty::c_char; 32usize], + pub vbool: bool_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct devlink_param_gset_ctx { + pub val: devlink_param_value, + pub cmode: devlink_param_cmode::Type, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netdev_phys_item_id { + pub id: [::aya_ebpf::cty::c_uchar; 32usize], + pub id_len: ::aya_ebpf::cty::c_uchar, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct devlink_port_phys_attrs { + pub port_number: u32_, + pub split_subport_number: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct devlink_port_pci_pf_attrs { + pub controller: u32_, + pub pf: u16_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: u8, +} +impl devlink_port_pci_pf_attrs { + #[inline] + pub fn external(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_external(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn external_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_external_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(external: u8_) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let external: u8 = unsafe { ::core::mem::transmute(external) }; + external as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct devlink_port_pci_vf_attrs { + pub controller: u32_, + pub pf: u16_, + pub vf: u16_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: [u8; 3usize], +} +impl devlink_port_pci_vf_attrs { + #[inline] + pub fn external(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_external(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn external_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_external_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(external: u8_) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let external: u8 = unsafe { ::core::mem::transmute(external) }; + external as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct devlink_port_pci_sf_attrs { + pub controller: u32_, + pub sf: u32_, + pub pf: u16_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: u8, +} +impl devlink_port_pci_sf_attrs { + #[inline] + pub fn external(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_external(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn external_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_external_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(external: u8_) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let external: u8 = unsafe { ::core::mem::transmute(external) }; + external as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct devlink_port_attrs { + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub lanes: u32_, + pub flavour: devlink_port_flavour::Type, + pub switch_id: netdev_phys_item_id, + pub __bindgen_anon_1: devlink_port_attrs__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union devlink_port_attrs__bindgen_ty_1 { + pub phys: devlink_port_phys_attrs, + pub pci_pf: devlink_port_pci_pf_attrs, + pub pci_vf: devlink_port_pci_vf_attrs, + pub pci_sf: devlink_port_pci_sf_attrs, +} +impl devlink_port_attrs { + #[inline] + pub fn split(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_split(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn split_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_split_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn splittable(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_splittable(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn splittable_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_splittable_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn no_phys_port_name(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) } + } + #[inline] + pub fn set_no_phys_port_name(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn no_phys_port_name_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_no_phys_port_name_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + split: u8_, + splittable: u8_, + no_phys_port_name: u8_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let split: u8 = unsafe { ::core::mem::transmute(split) }; + split as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let splittable: u8 = unsafe { ::core::mem::transmute(splittable) }; + splittable as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let no_phys_port_name: u8 = unsafe { ::core::mem::transmute(no_phys_port_name) }; + no_phys_port_name as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct devlink_port { + pub list: list_head, + pub region_list: list_head, + pub resource_list: list_head, + pub devlink: *mut devlink, + pub ops: *const devlink_port_ops, + pub index: ::aya_ebpf::cty::c_uint, + pub type_lock: spinlock_t, + pub type_: devlink_port_type::Type, + pub desired_type: devlink_port_type::Type, + pub __bindgen_anon_1: devlink_port__bindgen_ty_1, + pub attrs: devlink_port_attrs, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub type_warn_dw: delayed_work, + pub reporter_list: list_head, + pub devlink_rate: *mut devlink_rate, + pub linecard: *mut devlink_linecard, + pub rel_index: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union devlink_port__bindgen_ty_1 { + pub type_eth: devlink_port__bindgen_ty_1__bindgen_ty_1, + pub type_ib: devlink_port__bindgen_ty_1__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct devlink_port__bindgen_ty_1__bindgen_ty_1 { + pub netdev: *mut net_device, + pub ifindex: ::aya_ebpf::cty::c_int, + pub ifname: [::aya_ebpf::cty::c_char; 16usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct devlink_port__bindgen_ty_1__bindgen_ty_2 { + pub ibdev: *mut ib_device, +} +impl devlink_port { + #[inline] + pub fn attrs_set(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_attrs_set(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn attrs_set_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_attrs_set_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn switch_port(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_switch_port(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn switch_port_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_switch_port_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn registered(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) } + } + #[inline] + pub fn set_registered(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn registered_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_registered_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn initialized(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) } + } + #[inline] + pub fn set_initialized(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn initialized_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_initialized_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + attrs_set: u8_, + switch_port: u8_, + registered: u8_, + initialized: u8_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let attrs_set: u8 = unsafe { ::core::mem::transmute(attrs_set) }; + attrs_set as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let switch_port: u8 = unsafe { ::core::mem::transmute(switch_port) }; + switch_port as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let registered: u8 = unsafe { ::core::mem::transmute(registered) }; + registered as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let initialized: u8 = unsafe { ::core::mem::transmute(initialized) }; + initialized as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct devlink_port_new_attrs { + pub flavour: devlink_port_flavour::Type, + pub port_index: ::aya_ebpf::cty::c_uint, + pub controller: u32_, + pub sfnum: u32_, + pub pfnum: u16_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: u8, +} +impl devlink_port_new_attrs { + #[inline] + pub fn port_index_valid(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_port_index_valid(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn port_index_valid_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_port_index_valid_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn controller_valid(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_controller_valid(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn controller_valid_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_controller_valid_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sfnum_valid(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) } + } + #[inline] + pub fn set_sfnum_valid(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sfnum_valid_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sfnum_valid_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + port_index_valid: u8_, + controller_valid: u8_, + sfnum_valid: u8_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let port_index_valid: u8 = unsafe { ::core::mem::transmute(port_index_valid) }; + port_index_valid as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let controller_valid: u8 = unsafe { ::core::mem::transmute(controller_valid) }; + controller_valid as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let sfnum_valid: u8 = unsafe { ::core::mem::transmute(sfnum_valid) }; + sfnum_valid as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct devlink_port_ops { + pub port_split: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink, + arg2: *mut devlink_port, + arg3: ::aya_ebpf::cty::c_uint, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_unsplit: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink, + arg2: *mut devlink_port, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_type_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_port, + arg2: devlink_port_type::Type, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_del: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink, + arg2: *mut devlink_port, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_fn_hw_addr_get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_port, + arg2: *mut u8_, + arg3: *mut ::aya_ebpf::cty::c_int, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_fn_hw_addr_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_port, + arg2: *const u8_, + arg3: ::aya_ebpf::cty::c_int, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_fn_roce_get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_port, + arg2: *mut bool_, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_fn_roce_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_port, + arg2: bool_, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_fn_migratable_get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_port, + arg2: *mut bool_, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_fn_migratable_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_port, + arg2: bool_, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_fn_state_get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_port, + arg2: *mut devlink_port_fn_state::Type, + arg3: *mut devlink_port_fn_opstate::Type, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_fn_state_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_port, + arg2: devlink_port_fn_state::Type, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_fn_ipsec_crypto_get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_port, + arg2: *mut bool_, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_fn_ipsec_crypto_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_port, + arg2: bool_, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_fn_ipsec_packet_get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_port, + arg2: *mut bool_, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_fn_ipsec_packet_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_port, + arg2: bool_, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_fn_max_io_eqs_get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_port, + arg2: *mut u32_, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_fn_max_io_eqs_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut devlink_port, + arg2: u32_, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct devlink_rate { + pub list: list_head, + pub type_: devlink_rate_type::Type, + pub devlink: *mut devlink, + pub priv_: *mut ::aya_ebpf::cty::c_void, + pub tx_share: u64_, + pub tx_max: u64_, + pub parent: *mut devlink_rate, + pub __bindgen_anon_1: devlink_rate__bindgen_ty_1, + pub tx_priority: u32_, + pub tx_weight: u32_, + pub tc_bw: [u32_; 8usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union devlink_rate__bindgen_ty_1 { + pub devlink_port: *mut devlink_port, + pub __bindgen_anon_1: devlink_rate__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct devlink_rate__bindgen_ty_1__bindgen_ty_1 { + pub name: *mut ::aya_ebpf::cty::c_char, + pub refcnt: refcount_t, +} +pub type devlink_rel_notify_cb_t = + ::core::option::Option; +pub type devlink_rel_cleanup_cb_t = + ::core::option::Option; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct devlink_rel { + pub index: u32_, + pub refcount: refcount_t, + pub devlink_index: u32_, + pub nested_in: devlink_rel__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct devlink_rel__bindgen_ty_1 { + pub devlink_index: u32_, + pub obj_index: u32_, + pub notify_cb: devlink_rel_notify_cb_t, + pub cleanup_cb: devlink_rel_cleanup_cb_t, + pub notify_work: delayed_work, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct devlink_sb_pool_info { + pub pool_type: devlink_sb_pool_type::Type, + pub size: u32_, + pub threshold_type: devlink_sb_threshold_type::Type, + pub cell_size: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct devlink_trap { + pub type_: devlink_trap_type::Type, + pub init_action: devlink_trap_action::Type, + pub generic: bool_, + pub id: u16_, + pub name: *const ::aya_ebpf::cty::c_char, + pub init_group_id: u16_, + pub metadata_cap: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct devlink_trap_group { + pub name: *const ::aya_ebpf::cty::c_char, + pub id: u16_, + pub generic: bool_, + pub init_policer_id: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct devlink_trap_policer { + pub id: u32_, + pub init_rate: u64_, + pub init_burst: u64_, + pub max_rate: u64_, + pub min_rate: u64_, + pub max_burst: u64_, + pub min_burst: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dim_stats { + pub ppms: ::aya_ebpf::cty::c_int, + pub bpms: ::aya_ebpf::cty::c_int, + pub epms: ::aya_ebpf::cty::c_int, + pub cpms: ::aya_ebpf::cty::c_int, + pub cpe_ratio: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dim_sample { + pub time: ktime_t, + pub pkt_ctr: u32_, + pub byte_ctr: u32_, + pub event_ctr: u16_, + pub comp_ctr: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dim { + pub state: u8_, + pub prev_stats: dim_stats, + pub start_sample: dim_sample, + pub measuring_sample: dim_sample, + pub work: work_struct, + pub priv_: *mut ::aya_ebpf::cty::c_void, + pub profile_ix: u8_, + pub mode: u8_, + pub tune_state: u8_, + pub steps_right: u8_, + pub steps_left: u8_, + pub tired: u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dim_cq_moder { + pub usec: u16_, + pub pkts: u16_, + pub comps: u16_, + pub cq_period_mode: u8_, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dim_irq_moder { + pub profile_flags: u8_, + pub coal_flags: u8_, + pub dim_rx_mode: u8_, + pub dim_tx_mode: u8_, + pub rx_profile: *mut dim_cq_moder, + pub tx_profile: *mut dim_cq_moder, + pub rx_dim_work: ::core::option::Option, + pub tx_dim_work: ::core::option::Option, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct disk_events { + pub node: list_head, + pub disk: *mut gendisk, + pub lock: spinlock_t, + pub block_mutex: mutex, + pub block: ::aya_ebpf::cty::c_int, + pub pending: ::aya_ebpf::cty::c_uint, + pub clearing: ::aya_ebpf::cty::c_uint, + pub poll_msecs: ::aya_ebpf::cty::c_long, + pub dwork: delayed_work, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct disk_stats { + pub nsecs: [u64_; 4usize], + pub sectors: [::aya_ebpf::cty::c_ulong; 4usize], + pub ios: [::aya_ebpf::cty::c_ulong; 4usize], + pub merges: [::aya_ebpf::cty::c_ulong; 4usize], + pub io_ticks: ::aya_ebpf::cty::c_ulong, + pub in_flight: [local_t; 2usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct dl_bw { + pub lock: raw_spinlock_t, + pub bw: u64_, + pub total_bw: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dl_rq { + pub root: rb_root_cached, + pub dl_nr_running: ::aya_ebpf::cty::c_uint, + pub earliest_dl: dl_rq__bindgen_ty_1, + pub overloaded: bool_, + pub pushable_dl_tasks_root: rb_root_cached, + pub running_bw: u64_, + pub this_bw: u64_, + pub extra_bw: u64_, + pub max_bw: u64_, + pub bw_ratio: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dl_rq__bindgen_ty_1 { + pub curr: u64_, + pub next: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dm_hw_stat_delta { + pub last_rx: ::aya_ebpf::cty::c_ulong, + pub last_drop_val: ::aya_ebpf::cty::c_ulong, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sg_table { + pub sgl: *mut scatterlist, + pub nents: ::aya_ebpf::cty::c_uint, + pub orig_nents: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct dma_coherent_mem { + pub virt_base: *mut ::aya_ebpf::cty::c_void, + pub device_base: dma_addr_t, + pub pfn_base: ::aya_ebpf::cty::c_ulong, + pub size: ::aya_ebpf::cty::c_int, + pub bitmap: *mut ::aya_ebpf::cty::c_ulong, + pub spinlock: spinlock_t, + pub use_dev_dma_pfn_offset: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dma_map_ops { + pub alloc: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut device, + arg2: usize, + arg3: *mut dma_addr_t, + arg4: gfp_t, + arg5: ::aya_ebpf::cty::c_ulong, + ) -> *mut ::aya_ebpf::cty::c_void, + >, + pub free: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut device, + arg2: usize, + arg3: *mut ::aya_ebpf::cty::c_void, + arg4: dma_addr_t, + arg5: ::aya_ebpf::cty::c_ulong, + ), + >, + pub alloc_pages_op: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut device, + arg2: usize, + arg3: *mut dma_addr_t, + arg4: dma_data_direction::Type, + arg5: gfp_t, + ) -> *mut page, + >, + pub free_pages: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut device, + arg2: usize, + arg3: *mut page, + arg4: dma_addr_t, + arg5: dma_data_direction::Type, + ), + >, + pub mmap: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut device, + arg2: *mut vm_area_struct, + arg3: *mut ::aya_ebpf::cty::c_void, + arg4: dma_addr_t, + arg5: usize, + arg6: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_sgtable: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut device, + arg2: *mut sg_table, + arg3: *mut ::aya_ebpf::cty::c_void, + arg4: dma_addr_t, + arg5: usize, + arg6: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, + pub map_phys: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut device, + arg2: phys_addr_t, + arg3: usize, + arg4: dma_data_direction::Type, + arg5: ::aya_ebpf::cty::c_ulong, + ) -> dma_addr_t, + >, + pub unmap_phys: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut device, + arg2: dma_addr_t, + arg3: usize, + arg4: dma_data_direction::Type, + arg5: ::aya_ebpf::cty::c_ulong, + ), + >, + pub map_sg: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut device, + arg2: *mut scatterlist, + arg3: ::aya_ebpf::cty::c_int, + arg4: dma_data_direction::Type, + arg5: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, + pub unmap_sg: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut device, + arg2: *mut scatterlist, + arg3: ::aya_ebpf::cty::c_int, + arg4: dma_data_direction::Type, + arg5: ::aya_ebpf::cty::c_ulong, + ), + >, + pub sync_single_for_cpu: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut device, + arg2: dma_addr_t, + arg3: usize, + arg4: dma_data_direction::Type, + ), + >, + pub sync_single_for_device: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut device, + arg2: dma_addr_t, + arg3: usize, + arg4: dma_data_direction::Type, + ), + >, + pub sync_sg_for_cpu: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut device, + arg2: *mut scatterlist, + arg3: ::aya_ebpf::cty::c_int, + arg4: dma_data_direction::Type, + ), + >, + pub sync_sg_for_device: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut device, + arg2: *mut scatterlist, + arg3: ::aya_ebpf::cty::c_int, + arg4: dma_data_direction::Type, + ), + >, + pub cache_sync: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut device, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: usize, + arg4: dma_data_direction::Type, + ), + >, + pub dma_supported: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut device, arg2: u64_) -> ::aya_ebpf::cty::c_int, + >, + pub get_required_mask: ::core::option::Option u64_>, + pub max_mapping_size: ::core::option::Option usize>, + pub opt_mapping_size: ::core::option::Option usize>, + pub get_merge_boundary: + ::core::option::Option ::aya_ebpf::cty::c_ulong>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ww_mutex { + pub base: mutex, + pub ctx: *mut ww_acquire_ctx, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iommu_domain_geometry { + pub aperture_start: dma_addr_t, + pub aperture_end: dma_addr_t, + pub force_aperture: bool_, +} +pub type iommu_fault_handler_t = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut iommu_domain, + arg2: *mut device, + arg3: ::aya_ebpf::cty::c_ulong, + arg4: ::aya_ebpf::cty::c_int, + arg5: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, +>; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct iommu_domain { + pub type_: ::aya_ebpf::cty::c_uint, + pub cookie_type: iommu_domain_cookie_type::Type, + pub is_iommupt: bool_, + pub ops: *const iommu_domain_ops, + pub dirty_ops: *const iommu_dirty_ops, + pub owner: *const iommu_ops, + pub pgsize_bitmap: ::aya_ebpf::cty::c_ulong, + pub geometry: iommu_domain_geometry, + pub iopf_handler: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut iopf_group) -> ::aya_ebpf::cty::c_int, + >, + pub __bindgen_anon_1: iommu_domain__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union iommu_domain__bindgen_ty_1 { + pub iova_cookie: *mut iommu_dma_cookie, + pub msi_cookie: *mut iommu_dma_msi_cookie, + pub iommufd_hwpt: *mut iommufd_hw_pagetable, + pub __bindgen_anon_1: iommu_domain__bindgen_ty_1__bindgen_ty_1, + pub __bindgen_anon_2: iommu_domain__bindgen_ty_1__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iommu_domain__bindgen_ty_1__bindgen_ty_1 { + pub handler: iommu_fault_handler_t, + pub handler_token: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iommu_domain__bindgen_ty_1__bindgen_ty_2 { + pub mm: *mut mm_struct, + pub users: ::aya_ebpf::cty::c_int, + pub next: list_head, +} +#[repr(C)] +#[derive(Debug)] +pub struct page_counter { + pub usage: atomic_long_t, + pub failcnt: ::aya_ebpf::cty::c_ulong, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 48usize]>, + pub _pad1_: cacheline_padding, + pub emin: ::aya_ebpf::cty::c_ulong, + pub min_usage: atomic_long_t, + pub children_min_usage: atomic_long_t, + pub elow: ::aya_ebpf::cty::c_ulong, + pub low_usage: atomic_long_t, + pub children_low_usage: atomic_long_t, + pub watermark: ::aya_ebpf::cty::c_ulong, + pub local_watermark: ::aya_ebpf::cty::c_ulong, + pub _pad2_: cacheline_padding, + pub protection_support: bool_, + pub track_failcnt: bool_, + pub min: ::aya_ebpf::cty::c_ulong, + pub low: ::aya_ebpf::cty::c_ulong, + pub high: ::aya_ebpf::cty::c_ulong, + pub max: ::aya_ebpf::cty::c_ulong, + pub parent: *mut page_counter, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 16usize]>, +} +impl page_counter { + #[inline] + pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +pub type fl_owner_t = *mut ::aya_ebpf::cty::c_void; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ref_tracker_dir {} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dpll_pin_phase_adjust_range { + pub min: s32, + pub max: s32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dpll_pin_properties { + pub board_label: *const ::aya_ebpf::cty::c_char, + pub panel_label: *const ::aya_ebpf::cty::c_char, + pub package_label: *const ::aya_ebpf::cty::c_char, + pub type_: dpll_pin_type::Type, + pub capabilities: ::aya_ebpf::cty::c_ulong, + pub freq_supported_num: u32_, + pub freq_supported: *mut dpll_pin_frequency, + pub phase_range: dpll_pin_phase_adjust_range, + pub phase_gran: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct dpll_pin { + pub id: u32_, + pub pin_idx: u32_, + pub clock_id: u64_, + pub module: *mut module, + pub fwnode: *mut fwnode_handle, + pub dpll_refs: xarray, + pub parent_refs: xarray, + pub ref_sync_pins: xarray, + pub prop: dpll_pin_properties, + pub refcount: refcount_t, + pub refcnt_tracker: ref_tracker_dir, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dpll_pin_frequency { + pub min: u64_, + pub max: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dql { + pub num_queued: ::aya_ebpf::cty::c_uint, + pub adj_limit: ::aya_ebpf::cty::c_uint, + pub last_obj_cnt: ::aya_ebpf::cty::c_uint, + pub stall_thrs: ::aya_ebpf::cty::c_ushort, + pub history_head: ::aya_ebpf::cty::c_ulong, + pub history: [::aya_ebpf::cty::c_ulong; 4usize], + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, + pub limit: ::aya_ebpf::cty::c_uint, + pub num_completed: ::aya_ebpf::cty::c_uint, + pub prev_ovlimit: ::aya_ebpf::cty::c_uint, + pub prev_num_queued: ::aya_ebpf::cty::c_uint, + pub prev_last_obj_cnt: ::aya_ebpf::cty::c_uint, + pub lowest_slack: ::aya_ebpf::cty::c_uint, + pub slack_start_time: ::aya_ebpf::cty::c_ulong, + pub max_limit: ::aya_ebpf::cty::c_uint, + pub min_limit: ::aya_ebpf::cty::c_uint, + pub slack_hold_time: ::aya_ebpf::cty::c_uint, + pub stall_max: ::aya_ebpf::cty::c_ushort, + pub last_reap: ::aya_ebpf::cty::c_ulong, + pub stall_cnt: ::aya_ebpf::cty::c_ulong, +} +impl dql { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct kqid { + pub __bindgen_anon_1: kqid__bindgen_ty_1, + pub type_: quota_type::Type, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union kqid__bindgen_ty_1 { + pub uid: kuid_t, + pub gid: kgid_t, + pub projid: kprojid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mem_dqblk { + pub dqb_bhardlimit: qsize_t, + pub dqb_bsoftlimit: qsize_t, + pub dqb_curspace: qsize_t, + pub dqb_rsvspace: qsize_t, + pub dqb_ihardlimit: qsize_t, + pub dqb_isoftlimit: qsize_t, + pub dqb_curinodes: qsize_t, + pub dqb_btime: time64_t, + pub dqb_itime: time64_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct dquot { + pub dq_hash: hlist_node, + pub dq_inuse: list_head, + pub dq_free: list_head, + pub dq_dirty: list_head, + pub dq_lock: mutex, + pub dq_dqb_lock: spinlock_t, + pub dq_count: atomic_t, + pub dq_sb: *mut super_block, + pub dq_id: kqid, + pub dq_off: loff_t, + pub dq_flags: ::aya_ebpf::cty::c_ulong, + pub dq_dqb: mem_dqblk, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dquot_operations { + pub write_dquot: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub alloc_dquot: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut super_block, arg2: ::aya_ebpf::cty::c_int) -> *mut dquot, + >, + pub destroy_dquot: ::core::option::Option, + pub acquire_dquot: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub release_dquot: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub mark_dirty: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub write_info: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut super_block, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_reserved_space: + ::core::option::Option *mut qsize_t>, + pub get_projid: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut inode, arg2: *mut kprojid_t) -> ::aya_ebpf::cty::c_int, + >, + pub get_inode_usage: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut inode, arg2: *mut qsize_t) -> ::aya_ebpf::cty::c_int, + >, + pub get_next_id: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut super_block, arg2: *mut kqid) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct driver_private { + pub kobj: kobject, + pub klist_devices: klist, + pub knode_bus: klist_node, + pub mkobj: *mut module_kobject, + pub driver: *mut device_driver, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ww_acquire_ctx { + pub task: *mut task_struct, + pub stamp: ::aya_ebpf::cty::c_ulong, + pub acquired: ::aya_ebpf::cty::c_uint, + pub wounded: ::aya_ebpf::cty::c_ushort, + pub is_wait_die: ::aya_ebpf::cty::c_ushort, +} +pub type kthread_work_func_t = + ::core::option::Option; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kthread_work { + pub node: list_head, + pub func: kthread_work_func_t, + pub worker: *mut kthread_worker, + pub canceling: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dsa_bridge { + pub dev: *mut net_device, + pub num: ::aya_ebpf::cty::c_uint, + pub tx_fwd_offload: bool_, + pub refcount: refcount_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dsa_chip_data { + pub netdev: [*mut device; 12usize], + pub eeprom_len: ::aya_ebpf::cty::c_int, + pub port_names: [*mut ::aya_ebpf::cty::c_char; 12usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct dsa_lag { + pub dev: *mut net_device, + pub id: ::aya_ebpf::cty::c_uint, + pub fdb_lock: mutex, + pub fdbs: list_head, + pub refcount: refcount_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct dsa_db { + pub type_: dsa_db_type::Type, + pub __bindgen_anon_1: dsa_db__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union dsa_db__bindgen_ty_1 { + pub dp: *const dsa_port, + pub lag: dsa_lag, + pub bridge: dsa_bridge, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dsa_device_ops { + pub xmit: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sk_buff, arg2: *mut net_device) -> *mut sk_buff, + >, + pub rcv: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sk_buff, arg2: *mut net_device) -> *mut sk_buff, + >, + pub flow_dissect: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const sk_buff, + arg2: *mut __be16, + arg3: *mut ::aya_ebpf::cty::c_int, + ), + >, + pub connect: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut dsa_switch) -> ::aya_ebpf::cty::c_int, + >, + pub disconnect: ::core::option::Option, + pub needed_headroom: ::aya_ebpf::cty::c_uint, + pub needed_tailroom: ::aya_ebpf::cty::c_uint, + pub name: *const ::aya_ebpf::cty::c_char, + pub proto: dsa_tag_protocol::Type, + pub promisc_on_conduit: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dsa_mall_mirror_tc_entry { + pub to_local_port: u8_, + pub ingress: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct phylink { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct phylink_config { + pub dev: *mut device, + pub type_: phylink_op_type::Type, + pub poll_fixed_state: bool_, + pub mac_managed_pm: bool_, + pub mac_requires_rxc: bool_, + pub default_an_inband: bool_, + pub eee_rx_clk_stop_enable: bool_, + pub get_fixed_state: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut phylink_config, arg2: *mut phylink_link_state), + >, + pub supported_interfaces: [::aya_ebpf::cty::c_ulong; 1usize], + pub lpi_interfaces: [::aya_ebpf::cty::c_ulong; 1usize], + pub mac_capabilities: ::aya_ebpf::cty::c_ulong, + pub lpi_capabilities: ::aya_ebpf::cty::c_ulong, + pub lpi_timer_default: u32_, + pub eee_enabled_default: bool_, + pub wol_phy_legacy: bool_, + pub wol_phy_speed_ctrl: bool_, + pub wol_mac_support: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct dsa_port { + pub __bindgen_anon_1: dsa_port__bindgen_ty_1, + pub tag_ops: *const dsa_device_ops, + pub dst: *mut dsa_switch_tree, + pub rcv: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sk_buff, arg2: *mut net_device) -> *mut sk_buff, + >, + pub ds: *mut dsa_switch, + pub index: ::aya_ebpf::cty::c_uint, + pub type_: dsa_port__bindgen_ty_2::Type, + pub name: *const ::aya_ebpf::cty::c_char, + pub cpu_dp: *mut dsa_port, + pub mac: [u8_; 6usize], + pub stp_state: u8_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub dn: *mut device_node, + pub ageing_time: ::aya_ebpf::cty::c_uint, + pub bridge: *mut dsa_bridge, + pub devlink_port: devlink_port, + pub pl: *mut phylink, + pub pl_config: phylink_config, + pub conduit_tracker: netdevice_tracker, + pub lag: *mut dsa_lag, + pub hsr_dev: *mut net_device, + pub list: list_head, + pub orig_ethtool_ops: *const ethtool_ops, + pub addr_lists_lock: mutex, + pub fdbs: list_head, + pub mdbs: list_head, + pub vlans_lock: mutex, + pub __bindgen_anon_2: dsa_port__bindgen_ty_3, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union dsa_port__bindgen_ty_1 { + pub conduit: *mut net_device, + pub user: *mut net_device, +} +pub mod dsa_port__bindgen_ty_2 { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const DSA_PORT_TYPE_UNUSED: Type = 0; + pub const DSA_PORT_TYPE_CPU: Type = 1; + pub const DSA_PORT_TYPE_DSA: Type = 2; + pub const DSA_PORT_TYPE_USER: Type = 3; +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union dsa_port__bindgen_ty_3 { + pub vlans: list_head, + pub user_vlans: list_head, +} +impl dsa_port { + #[inline] + pub fn vlan_filtering(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_vlan_filtering(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn vlan_filtering_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_vlan_filtering_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn learning(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_learning(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn learning_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_learning_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn lag_tx_enabled(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) } + } + #[inline] + pub fn set_lag_tx_enabled(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn lag_tx_enabled_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_lag_tx_enabled_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn conduit_admin_up(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) } + } + #[inline] + pub fn set_conduit_admin_up(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn conduit_admin_up_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_conduit_admin_up_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn conduit_oper_up(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) } + } + #[inline] + pub fn set_conduit_oper_up(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn conduit_oper_up_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_conduit_oper_up_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn cpu_port_in_lag(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) } + } + #[inline] + pub fn set_cpu_port_in_lag(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn cpu_port_in_lag_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 5usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_cpu_port_in_lag_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 5usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn setup(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) } + } + #[inline] + pub fn set_setup(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn setup_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 6usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_setup_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 6usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + vlan_filtering: u8_, + learning: u8_, + lag_tx_enabled: u8_, + conduit_admin_up: u8_, + conduit_oper_up: u8_, + cpu_port_in_lag: u8_, + setup: u8_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let vlan_filtering: u8 = unsafe { ::core::mem::transmute(vlan_filtering) }; + vlan_filtering as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let learning: u8 = unsafe { ::core::mem::transmute(learning) }; + learning as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let lag_tx_enabled: u8 = unsafe { ::core::mem::transmute(lag_tx_enabled) }; + lag_tx_enabled as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let conduit_admin_up: u8 = unsafe { ::core::mem::transmute(conduit_admin_up) }; + conduit_admin_up as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let conduit_oper_up: u8 = unsafe { ::core::mem::transmute(conduit_oper_up) }; + conduit_oper_up as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let cpu_port_in_lag: u8 = unsafe { ::core::mem::transmute(cpu_port_in_lag) }; + cpu_port_in_lag as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let setup: u8 = unsafe { ::core::mem::transmute(setup) }; + setup as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dsa_8021q_context { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dsa_switch { + pub dev: *mut device, + pub dst: *mut dsa_switch_tree, + pub index: ::aya_ebpf::cty::c_uint, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, + pub nb: notifier_block, + pub priv_: *mut ::aya_ebpf::cty::c_void, + pub tagger_data: *mut ::aya_ebpf::cty::c_void, + pub cd: *mut dsa_chip_data, + pub ops: *const dsa_switch_ops, + pub phylink_mac_ops: *const phylink_mac_ops, + pub phys_mii_mask: u32_, + pub user_mii_bus: *mut mii_bus, + pub ageing_time_min: ::aya_ebpf::cty::c_uint, + pub ageing_time_max: ::aya_ebpf::cty::c_uint, + pub tag_8021q_ctx: *mut dsa_8021q_context, + pub devlink: *mut devlink, + pub num_tx_queues: ::aya_ebpf::cty::c_uint, + pub num_lag_ids: ::aya_ebpf::cty::c_uint, + pub max_num_bridges: ::aya_ebpf::cty::c_uint, + pub num_ports: ::aya_ebpf::cty::c_uint, +} +impl dsa_switch { + #[inline] + pub fn setup(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_setup(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn setup_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_setup_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn vlan_filtering_is_global(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_vlan_filtering_is_global(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn vlan_filtering_is_global_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_vlan_filtering_is_global_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn needs_standalone_vlan_filtering(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_needs_standalone_vlan_filtering(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn needs_standalone_vlan_filtering_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_needs_standalone_vlan_filtering_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn configure_vlan_while_not_filtering(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } + } + #[inline] + pub fn set_configure_vlan_while_not_filtering(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn configure_vlan_while_not_filtering_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_configure_vlan_while_not_filtering_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn untag_bridge_pvid(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } + } + #[inline] + pub fn set_untag_bridge_pvid(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn untag_bridge_pvid_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_untag_bridge_pvid_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn untag_vlan_aware_bridge_pvid(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } + } + #[inline] + pub fn set_untag_vlan_aware_bridge_pvid(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn untag_vlan_aware_bridge_pvid_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 5usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_untag_vlan_aware_bridge_pvid_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 5usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn assisted_learning_on_cpu_port(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } + } + #[inline] + pub fn set_assisted_learning_on_cpu_port(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn assisted_learning_on_cpu_port_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 6usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_assisted_learning_on_cpu_port_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 6usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn vlan_filtering(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } + } + #[inline] + pub fn set_vlan_filtering(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn vlan_filtering_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 7usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_vlan_filtering_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 7usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn mtu_enforcement_ingress(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) } + } + #[inline] + pub fn set_mtu_enforcement_ingress(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(8usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn mtu_enforcement_ingress_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 8usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_mtu_enforcement_ingress_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 8usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fdb_isolation(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) } + } + #[inline] + pub fn set_fdb_isolation(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(9usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fdb_isolation_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 9usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_fdb_isolation_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 9usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn dscp_prio_mapping_is_global(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) } + } + #[inline] + pub fn set_dscp_prio_mapping_is_global(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(10usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dscp_prio_mapping_is_global_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 10usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_dscp_prio_mapping_is_global_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 10usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + setup: u32_, + vlan_filtering_is_global: u32_, + needs_standalone_vlan_filtering: u32_, + configure_vlan_while_not_filtering: u32_, + untag_bridge_pvid: u32_, + untag_vlan_aware_bridge_pvid: u32_, + assisted_learning_on_cpu_port: u32_, + vlan_filtering: u32_, + mtu_enforcement_ingress: u32_, + fdb_isolation: u32_, + dscp_prio_mapping_is_global: u32_, + ) -> __BindgenBitfieldUnit<[u8; 2usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let setup: u32 = unsafe { ::core::mem::transmute(setup) }; + setup as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let vlan_filtering_is_global: u32 = + unsafe { ::core::mem::transmute(vlan_filtering_is_global) }; + vlan_filtering_is_global as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let needs_standalone_vlan_filtering: u32 = + unsafe { ::core::mem::transmute(needs_standalone_vlan_filtering) }; + needs_standalone_vlan_filtering as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let configure_vlan_while_not_filtering: u32 = + unsafe { ::core::mem::transmute(configure_vlan_while_not_filtering) }; + configure_vlan_while_not_filtering as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let untag_bridge_pvid: u32 = unsafe { ::core::mem::transmute(untag_bridge_pvid) }; + untag_bridge_pvid as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let untag_vlan_aware_bridge_pvid: u32 = + unsafe { ::core::mem::transmute(untag_vlan_aware_bridge_pvid) }; + untag_vlan_aware_bridge_pvid as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let assisted_learning_on_cpu_port: u32 = + unsafe { ::core::mem::transmute(assisted_learning_on_cpu_port) }; + assisted_learning_on_cpu_port as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let vlan_filtering: u32 = unsafe { ::core::mem::transmute(vlan_filtering) }; + vlan_filtering as u64 + }); + __bindgen_bitfield_unit.set(8usize, 1u8, { + let mtu_enforcement_ingress: u32 = + unsafe { ::core::mem::transmute(mtu_enforcement_ingress) }; + mtu_enforcement_ingress as u64 + }); + __bindgen_bitfield_unit.set(9usize, 1u8, { + let fdb_isolation: u32 = unsafe { ::core::mem::transmute(fdb_isolation) }; + fdb_isolation as u64 + }); + __bindgen_bitfield_unit.set(10usize, 1u8, { + let dscp_prio_mapping_is_global: u32 = + unsafe { ::core::mem::transmute(dscp_prio_mapping_is_global) }; + dscp_prio_mapping_is_global as u64 + }); + __bindgen_bitfield_unit + } +} +pub type dsa_fdb_dump_cb_t = ::core::option::Option< + unsafe extern "C" fn( + arg1: *const ::aya_ebpf::cty::c_uchar, + arg2: u16_, + arg3: bool_, + arg4: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dsa_switch_ops { + pub get_tag_protocol: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: dsa_tag_protocol::Type, + ) -> dsa_tag_protocol::Type, + >, + pub change_tag_protocol: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: dsa_tag_protocol::Type, + ) -> ::aya_ebpf::cty::c_int, + >, + pub connect_tag_protocol: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: dsa_tag_protocol::Type, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_change_conduit: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut net_device, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub setup: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut dsa_switch) -> ::aya_ebpf::cty::c_int, + >, + pub teardown: ::core::option::Option, + pub port_setup: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_teardown: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut dsa_switch, arg2: ::aya_ebpf::cty::c_int), + >, + pub get_phy_flags: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut dsa_switch, arg2: ::aya_ebpf::cty::c_int) -> u32_, + >, + pub phy_read: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub phy_write: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + arg4: u16_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub phylink_get_caps: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut phylink_config, + ), + >, + pub phylink_fixed_state: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut phylink_link_state, + ), + >, + pub get_strings: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: u32_, + arg4: *mut u8, + ), + >, + pub get_ethtool_stats: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut dsa_switch, arg2: ::aya_ebpf::cty::c_int, arg3: *mut u64), + >, + pub get_sset_count: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_ethtool_phy_stats: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut dsa_switch, arg2: ::aya_ebpf::cty::c_int, arg3: *mut u64), + >, + pub get_eth_phy_stats: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut ethtool_eth_phy_stats, + ), + >, + pub get_eth_mac_stats: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut ethtool_eth_mac_stats, + ), + >, + pub get_eth_ctrl_stats: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut ethtool_eth_ctrl_stats, + ), + >, + pub get_rmon_stats: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut ethtool_rmon_stats, + arg4: *mut *const ethtool_rmon_hist_range, + ), + >, + pub get_ts_stats: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut ethtool_ts_stats, + ), + >, + pub get_stats64: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut rtnl_link_stats64, + ), + >, + pub get_pause_stats: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut ethtool_pause_stats, + ), + >, + pub self_test: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut ethtool_test, + arg4: *mut u64_, + ), + >, + pub get_wol: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut ethtool_wolinfo, + ), + >, + pub set_wol: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut ethtool_wolinfo, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_ts_info: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut kernel_ethtool_ts_info, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_mm: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut ethtool_mm_state, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_mm: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut ethtool_mm_cfg, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_mm_stats: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut ethtool_mm_stats, + ), + >, + pub port_get_default_prio: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_set_default_prio: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: u8_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_get_dscp_prio: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: u8_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_add_dscp_prio: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: u8_, + arg4: u8_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_del_dscp_prio: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: u8_, + arg4: u8_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_set_apptrust: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *const u8_, + arg4: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_get_apptrust: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut u8_, + arg4: *mut ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub suspend: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut dsa_switch) -> ::aya_ebpf::cty::c_int, + >, + pub resume: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut dsa_switch) -> ::aya_ebpf::cty::c_int, + >, + pub port_enable: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut phy_device, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_disable: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut dsa_switch, arg2: ::aya_ebpf::cty::c_int), + >, + pub port_set_mac_address: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *const ::aya_ebpf::cty::c_uchar, + ) -> ::aya_ebpf::cty::c_int, + >, + pub preferred_default_local_cpu_port: + ::core::option::Option *mut dsa_port>, + pub support_eee: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut dsa_switch, arg2: ::aya_ebpf::cty::c_int) -> bool_, + >, + pub set_mac_eee: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut ethtool_keee, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_eeprom_len: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut dsa_switch) -> ::aya_ebpf::cty::c_int, + >, + pub get_eeprom: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: *mut ethtool_eeprom, + arg3: *mut u8_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_eeprom: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: *mut ethtool_eeprom, + arg3: *mut u8_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_regs_len: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_regs: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut ethtool_regs, + arg4: *mut ::aya_ebpf::cty::c_void, + ), + >, + pub port_prechangeupper: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut netdev_notifier_changeupper_info, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_ageing_time: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_bridge_join: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: dsa_bridge, + arg4: *mut bool_, + arg5: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_bridge_leave: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut dsa_switch, arg2: ::aya_ebpf::cty::c_int, arg3: dsa_bridge), + >, + pub port_stp_state_set: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut dsa_switch, arg2: ::aya_ebpf::cty::c_int, arg3: u8_), + >, + pub port_mst_state_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *const switchdev_mst_state, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_fast_age: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut dsa_switch, arg2: ::aya_ebpf::cty::c_int), + >, + pub port_vlan_fast_age: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: u16_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_pre_bridge_flags: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: switchdev_brport_flags, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_bridge_flags: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: switchdev_brport_flags, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_set_host_flood: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: bool_, + arg4: bool_, + ), + >, + pub port_vlan_filtering: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: bool_, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_vlan_add: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *const switchdev_obj_port_vlan, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_vlan_del: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *const switchdev_obj_port_vlan, + ) -> ::aya_ebpf::cty::c_int, + >, + pub vlan_msti_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: dsa_bridge, + arg3: *const switchdev_vlan_msti, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_fdb_add: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *const ::aya_ebpf::cty::c_uchar, + arg4: u16_, + arg5: dsa_db, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_fdb_del: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *const ::aya_ebpf::cty::c_uchar, + arg4: u16_, + arg5: dsa_db, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_fdb_dump: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: dsa_fdb_dump_cb_t, + arg4: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub lag_fdb_add: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: dsa_lag, + arg3: *const ::aya_ebpf::cty::c_uchar, + arg4: u16_, + arg5: dsa_db, + ) -> ::aya_ebpf::cty::c_int, + >, + pub lag_fdb_del: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: dsa_lag, + arg3: *const ::aya_ebpf::cty::c_uchar, + arg4: u16_, + arg5: dsa_db, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_mdb_add: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *const switchdev_obj_port_mdb, + arg4: dsa_db, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_mdb_del: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *const switchdev_obj_port_mdb, + arg4: dsa_db, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_rxnfc: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut ethtool_rxnfc, + arg4: *mut u32_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_rxnfc: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut ethtool_rxnfc, + ) -> ::aya_ebpf::cty::c_int, + >, + pub cls_flower_add: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut flow_cls_offload, + arg4: bool_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub cls_flower_del: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut flow_cls_offload, + arg4: bool_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub cls_flower_stats: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut flow_cls_offload, + arg4: bool_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_mirror_add: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut dsa_mall_mirror_tc_entry, + arg4: bool_, + arg5: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_mirror_del: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut dsa_mall_mirror_tc_entry, + ), + >, + pub port_policer_add: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *const flow_action_police, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_policer_del: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut dsa_switch, arg2: ::aya_ebpf::cty::c_int), + >, + pub port_setup_tc: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: tc_setup_type::Type, + arg4: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub crosschip_bridge_join: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + arg4: ::aya_ebpf::cty::c_int, + arg5: dsa_bridge, + arg6: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub crosschip_bridge_leave: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + arg4: ::aya_ebpf::cty::c_int, + arg5: dsa_bridge, + ), + >, + pub crosschip_lag_change: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub crosschip_lag_join: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + arg4: dsa_lag, + arg5: *mut netdev_lag_upper_info, + arg6: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub crosschip_lag_leave: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + arg4: dsa_lag, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_hwtstamp_get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut kernel_hwtstamp_config, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_hwtstamp_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut kernel_hwtstamp_config, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_txtstamp: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut sk_buff, + ), + >, + pub port_rxtstamp: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut sk_buff, + arg4: ::aya_ebpf::cty::c_uint, + ) -> bool_, + >, + pub devlink_param_get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: u32_, + arg3: *mut devlink_param_gset_ctx, + ) -> ::aya_ebpf::cty::c_int, + >, + pub devlink_param_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: u32_, + arg3: *mut devlink_param_gset_ctx, + ) -> ::aya_ebpf::cty::c_int, + >, + pub devlink_info_get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: *mut devlink_info_req, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub devlink_sb_pool_get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_uint, + arg3: u16_, + arg4: *mut devlink_sb_pool_info, + ) -> ::aya_ebpf::cty::c_int, + >, + pub devlink_sb_pool_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_uint, + arg3: u16_, + arg4: u32_, + arg5: devlink_sb_threshold_type::Type, + arg6: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub devlink_sb_port_pool_get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_uint, + arg4: u16_, + arg5: *mut u32_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub devlink_sb_port_pool_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_uint, + arg4: u16_, + arg5: u32_, + arg6: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub devlink_sb_tc_pool_bind_get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_uint, + arg4: u16_, + arg5: devlink_sb_pool_type::Type, + arg6: *mut u16_, + arg7: *mut u32_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub devlink_sb_tc_pool_bind_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_uint, + arg4: u16_, + arg5: devlink_sb_pool_type::Type, + arg6: u16_, + arg7: u32_, + arg8: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub devlink_sb_occ_snapshot: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub devlink_sb_occ_max_clear: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub devlink_sb_occ_port_pool_get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_uint, + arg4: u16_, + arg5: *mut u32_, + arg6: *mut u32_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub devlink_sb_occ_tc_port_bind_get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_uint, + arg4: u16_, + arg5: devlink_sb_pool_type::Type, + arg6: *mut u32_, + arg7: *mut u32_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_change_mtu: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_max_mtu: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_lag_change: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_lag_join: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: dsa_lag, + arg4: *mut netdev_lag_upper_info, + arg5: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_lag_leave: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: dsa_lag, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_hsr_join: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut net_device, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_hsr_leave: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut net_device, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_mrp_add: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *const switchdev_obj_mrp, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_mrp_del: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *const switchdev_obj_mrp, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_mrp_add_ring_role: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *const switchdev_obj_ring_role_mrp, + ) -> ::aya_ebpf::cty::c_int, + >, + pub port_mrp_del_ring_role: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *const switchdev_obj_ring_role_mrp, + ) -> ::aya_ebpf::cty::c_int, + >, + pub tag_8021q_vlan_add: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: u16_, + arg4: u16_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub tag_8021q_vlan_del: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: u16_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub conduit_state_change: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut dsa_switch, arg2: *const net_device, arg3: bool_), + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct raw_notifier_head { + pub head: *mut notifier_block, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dsa_platform_data { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dsa_switch_tree { + pub list: list_head, + pub ports: list_head, + pub nh: raw_notifier_head, + pub index: ::aya_ebpf::cty::c_uint, + pub refcount: kref, + pub lags: *mut *mut dsa_lag, + pub tag_ops: *const dsa_device_ops, + pub default_proto: dsa_tag_protocol::Type, + pub setup: bool_, + pub pd: *mut dsa_platform_data, + pub rtable: list_head, + pub lags_len: ::aya_ebpf::cty::c_uint, + pub last_switch: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dst_cache { + pub cache: *mut dst_cache_pcpu, + pub reset_ts: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct dst_cache_pcpu { + pub refresh_ts: ::aya_ebpf::cty::c_ulong, + pub dst: *mut dst_entry, + pub bh_lock: local_lock_t, + pub cookie: u32_, + pub __bindgen_anon_1: dst_cache_pcpu__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union dst_cache_pcpu__bindgen_ty_1 { + pub in_saddr: in_addr, + pub in6_saddr: in6_addr, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct dst_entry { + pub __bindgen_anon_1: dst_entry__bindgen_ty_1, + pub ops: *mut dst_ops, + pub _metrics: ::aya_ebpf::cty::c_ulong, + pub expires: ::aya_ebpf::cty::c_ulong, + pub xfrm: *mut xfrm_state, + pub input: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub output: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net, + arg2: *mut sock, + arg3: *mut sk_buff, + ) -> ::aya_ebpf::cty::c_int, + >, + pub flags: ::aya_ebpf::cty::c_ushort, + pub obsolete: ::aya_ebpf::cty::c_short, + pub header_len: ::aya_ebpf::cty::c_ushort, + pub trailer_len: ::aya_ebpf::cty::c_ushort, + pub __rcuref: rcuref_t, + pub __use: ::aya_ebpf::cty::c_int, + pub lastuse: ::aya_ebpf::cty::c_ulong, + pub callback_head: callback_head, + pub error: ::aya_ebpf::cty::c_short, + pub __pad: ::aya_ebpf::cty::c_short, + pub tclassid: __u32, + pub dev_tracker: netdevice_tracker, + pub rt_uncached: list_head, + pub rt_uncached_list: *mut uncached_list, + pub lwtstate: *mut lwtunnel_state, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union dst_entry__bindgen_ty_1 { + pub dev: *mut net_device, + pub dev_rcu: *mut net_device, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dst_metrics { + pub metrics: [u32_; 17usize], + pub refcnt: refcount_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct dst_ops { + pub family: ::aya_ebpf::cty::c_ushort, + pub gc_thresh: ::aya_ebpf::cty::c_uint, + pub gc: ::core::option::Option, + pub check: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut dst_entry, arg2: __u32) -> *mut dst_entry, + >, + pub default_advmss: ::core::option::Option< + unsafe extern "C" fn(arg1: *const dst_entry) -> ::aya_ebpf::cty::c_uint, + >, + pub mtu: ::core::option::Option< + unsafe extern "C" fn(arg1: *const dst_entry) -> ::aya_ebpf::cty::c_uint, + >, + pub cow_metrics: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut dst_entry, arg2: ::aya_ebpf::cty::c_ulong) -> *mut u32_, + >, + pub destroy: ::core::option::Option, + pub ifdown: + ::core::option::Option, + pub negative_advice: + ::core::option::Option, + pub link_failure: ::core::option::Option, + pub update_pmtu: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dst_entry, + arg2: *mut sock, + arg3: *mut sk_buff, + arg4: u32_, + arg5: bool_, + ), + >, + pub redirect: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut dst_entry, arg2: *mut sock, arg3: *mut sk_buff), + >, + pub local_out: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net, + arg2: *mut sock, + arg3: *mut sk_buff, + ) -> ::aya_ebpf::cty::c_int, + >, + pub neigh_lookup: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const dst_entry, + arg2: *mut sk_buff, + arg3: *const ::aya_ebpf::cty::c_void, + ) -> *mut neighbour, + >, + pub confirm_neigh: ::core::option::Option< + unsafe extern "C" fn(arg1: *const dst_entry, arg2: *const ::aya_ebpf::cty::c_void), + >, + pub kmem_cachep: *mut kmem_cache, + pub pcpuc_entries: percpu_counter, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, +} +impl dst_ops { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rt_mutex_base { + pub wait_lock: raw_spinlock_t, + pub waiters: rb_root_cached, + pub owner: *mut task_struct, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rt_mutex { + pub rtmutex: rt_mutex_base, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct seq_buf { + pub buffer: *mut ::aya_ebpf::cty::c_char, + pub size: usize, + pub len: usize, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct eee_config { + pub tx_lpi_timer: u32_, + pub tx_lpi_enabled: bool_, + pub eee_enabled: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_keee { + pub supported: [::aya_ebpf::cty::c_ulong; 2usize], + pub advertised: [::aya_ebpf::cty::c_ulong; 2usize], + pub lp_advertised: [::aya_ebpf::cty::c_ulong; 2usize], + pub tx_lpi_timer: u32_, + pub tx_lpi_enabled: bool_, + pub eee_active: bool_, + pub eee_enabled: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct elevator_mq_ops { + pub init_sched: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut request_queue, + arg2: *mut elevator_queue, + ) -> ::aya_ebpf::cty::c_int, + >, + pub exit_sched: ::core::option::Option, + pub init_hctx: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut blk_mq_hw_ctx, + arg2: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub exit_hctx: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut blk_mq_hw_ctx, arg2: ::aya_ebpf::cty::c_uint), + >, + pub depth_updated: ::core::option::Option, + pub alloc_sched_data: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut request_queue) -> *mut ::aya_ebpf::cty::c_void, + >, + pub free_sched_data: + ::core::option::Option, + pub allow_merge: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut request_queue, arg2: *mut request, arg3: *mut bio) -> bool_, + >, + pub bio_merge: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut request_queue, + arg2: *mut bio, + arg3: ::aya_ebpf::cty::c_uint, + ) -> bool_, + >, + pub request_merge: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut request_queue, + arg2: *mut *mut request, + arg3: *mut bio, + ) -> ::aya_ebpf::cty::c_int, + >, + pub request_merged: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut request_queue, arg2: *mut request, arg3: elv_merge::Type), + >, + pub requests_merged: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut request_queue, arg2: *mut request, arg3: *mut request), + >, + pub limit_depth: + ::core::option::Option, + pub prepare_request: ::core::option::Option, + pub finish_request: ::core::option::Option, + pub insert_requests: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut blk_mq_hw_ctx, arg2: *mut list_head, arg3: blk_insert_t), + >, + pub dispatch_request: + ::core::option::Option *mut request>, + pub has_work: ::core::option::Option bool_>, + pub completed_request: + ::core::option::Option, + pub requeue_request: ::core::option::Option, + pub former_request: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut request_queue, arg2: *mut request) -> *mut request, + >, + pub next_request: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut request_queue, arg2: *mut request) -> *mut request, + >, + pub init_icq: ::core::option::Option, + pub exit_icq: ::core::option::Option, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct elevator_queue { + pub type_: *mut elevator_type, + pub et: *mut elevator_tags, + pub elevator_data: *mut ::aya_ebpf::cty::c_void, + pub kobj: kobject, + pub sysfs_lock: mutex, + pub flags: ::aya_ebpf::cty::c_ulong, + pub hash: [hlist_head; 64usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct elevator_tags { + pub nr_hw_queues: ::aya_ebpf::cty::c_uint, + pub nr_requests: ::aya_ebpf::cty::c_uint, + pub tags: __IncompleteArrayField<*mut blk_mq_tags>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct elevator_type { + pub icq_cache: *mut kmem_cache, + pub ops: elevator_mq_ops, + pub icq_size: usize, + pub icq_align: usize, + pub elevator_attrs: *const elv_fs_entry, + pub elevator_name: *const ::aya_ebpf::cty::c_char, + pub elevator_alias: *const ::aya_ebpf::cty::c_char, + pub elevator_owner: *mut module, + pub queue_debugfs_attrs: *const blk_mq_debugfs_attr, + pub hctx_debugfs_attrs: *const blk_mq_debugfs_attr, + pub icq_cache_name: [::aya_ebpf::cty::c_char; 22usize], + pub list: list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct elf64_sym { + pub st_name: Elf64_Word, + pub st_info: ::aya_ebpf::cty::c_uchar, + pub st_other: ::aya_ebpf::cty::c_uchar, + pub st_shndx: Elf64_Half, + pub st_value: Elf64_Addr, + pub st_size: Elf64_Xword, +} +pub type Elf64_Sym = elf64_sym; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct elv_fs_entry { + pub attr: attribute, + pub show: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut elevator_queue, + arg2: *mut ::aya_ebpf::cty::c_char, + ) -> isize, + >, + pub store: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut elevator_queue, + arg2: *const ::aya_ebpf::cty::c_char, + arg3: usize, + ) -> isize, + >, +} +#[repr(C)] +#[derive(Debug)] +pub struct em_perf_domain { + pub em_table: *mut em_perf_table, + pub node: list_head, + pub id: ::aya_ebpf::cty::c_int, + pub nr_perf_states: ::aya_ebpf::cty::c_int, + pub min_perf_state: ::aya_ebpf::cty::c_int, + pub max_perf_state: ::aya_ebpf::cty::c_int, + pub flags: ::aya_ebpf::cty::c_ulong, + pub cpus: __IncompleteArrayField<::aya_ebpf::cty::c_ulong>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct em_perf_state { + pub performance: ::aya_ebpf::cty::c_ulong, + pub frequency: ::aya_ebpf::cty::c_ulong, + pub power: ::aya_ebpf::cty::c_ulong, + pub cost: ::aya_ebpf::cty::c_ulong, + pub flags: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug)] +pub struct em_perf_table { + pub rcu: callback_head, + pub kref: kref, + pub state: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct error_injection_entry { + pub addr: ::aya_ebpf::cty::c_ulong, + pub etype: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct strp_stats { + pub msgs: ::aya_ebpf::cty::c_ulonglong, + pub bytes: ::aya_ebpf::cty::c_ulonglong, + pub mem_fail: ::aya_ebpf::cty::c_uint, + pub need_more_hdr: ::aya_ebpf::cty::c_uint, + pub msg_too_big: ::aya_ebpf::cty::c_uint, + pub msg_timeouts: ::aya_ebpf::cty::c_uint, + pub bad_hdr_len: ::aya_ebpf::cty::c_uint, +} +pub type sk_read_actor_t = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut read_descriptor_t, + arg2: *mut sk_buff, + arg3: ::aya_ebpf::cty::c_uint, + arg4: usize, + ) -> ::aya_ebpf::cty::c_int, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct strp_callbacks { + pub parse_msg: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut strparser, arg2: *mut sk_buff) -> ::aya_ebpf::cty::c_int, + >, + pub rcv_msg: + ::core::option::Option, + pub read_sock: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut strparser, + arg2: *mut read_descriptor_t, + arg3: sk_read_actor_t, + ) -> ::aya_ebpf::cty::c_int, + >, + pub read_sock_done: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut strparser, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub abort_parser: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut strparser, arg2: ::aya_ebpf::cty::c_int), + >, + pub lock: ::core::option::Option, + pub unlock: ::core::option::Option, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct strparser { + pub sk: *mut sock, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub skb_nextp: *mut *mut sk_buff, + pub skb_head: *mut sk_buff, + pub need_bytes: ::aya_ebpf::cty::c_uint, + pub msg_timer_work: delayed_work, + pub work: work_struct, + pub stats: strp_stats, + pub cb: strp_callbacks, +} +impl strparser { + #[inline] + pub fn stopped(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_stopped(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn stopped_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_stopped_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn paused(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_paused(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn paused_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_paused_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn aborted(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_aborted(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn aborted_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_aborted_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn interrupted(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } + } + #[inline] + pub fn set_interrupted(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn interrupted_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_interrupted_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn unrecov_intr(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } + } + #[inline] + pub fn set_unrecov_intr(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn unrecov_intr_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_unrecov_intr_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + stopped: u32_, + paused: u32_, + aborted: u32_, + interrupted: u32_, + unrecov_intr: u32_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let stopped: u32 = unsafe { ::core::mem::transmute(stopped) }; + stopped as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let paused: u32 = unsafe { ::core::mem::transmute(paused) }; + paused as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let aborted: u32 = unsafe { ::core::mem::transmute(aborted) }; + aborted as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let interrupted: u32 = unsafe { ::core::mem::transmute(interrupted) }; + interrupted as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let unrecov_intr: u32 = unsafe { ::core::mem::transmute(unrecov_intr) }; + unrecov_intr as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ethtool_c33_pse_ext_state_info { + pub c33_pse_ext_state: ethtool_c33_pse_ext_state::Type, + pub __bindgen_anon_1: ethtool_c33_pse_ext_state_info__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ethtool_c33_pse_ext_state_info__bindgen_ty_1 { + pub error_condition: ethtool_c33_pse_ext_substate_error_condition::Type, + pub mr_pse_enable: ethtool_c33_pse_ext_substate_mr_pse_enable::Type, + pub option_detect_ted: ethtool_c33_pse_ext_substate_option_detect_ted::Type, + pub option_vport_lim: ethtool_c33_pse_ext_substate_option_vport_lim::Type, + pub ovld_detected: ethtool_c33_pse_ext_substate_ovld_detected::Type, + pub power_not_available: ethtool_c33_pse_ext_substate_power_not_available::Type, + pub short_detected: ethtool_c33_pse_ext_substate_short_detected::Type, + pub __c33_pse_ext_substate: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_c33_pse_pw_limit_range { + pub min: u32_, + pub max: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_flash { + pub cmd: __u32, + pub region: __u32, + pub data: [::aya_ebpf::cty::c_char; 128usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_drvinfo { + pub cmd: __u32, + pub driver: [::aya_ebpf::cty::c_char; 32usize], + pub version: [::aya_ebpf::cty::c_char; 32usize], + pub fw_version: [::aya_ebpf::cty::c_char; 32usize], + pub bus_info: [::aya_ebpf::cty::c_char; 32usize], + pub erom_version: [::aya_ebpf::cty::c_char; 32usize], + pub reserved2: [::aya_ebpf::cty::c_char; 12usize], + pub n_priv_flags: __u32, + pub n_stats: __u32, + pub testinfo_len: __u32, + pub eedump_len: __u32, + pub regdump_len: __u32, +} +#[repr(C)] +#[derive(Debug)] +pub struct ethtool_dump { + pub cmd: __u32, + pub version: __u32, + pub flag: __u32, + pub len: __u32, + pub data: __IncompleteArrayField<__u8>, +} +#[repr(C)] +#[derive(Debug)] +pub struct ethtool_eeprom { + pub cmd: __u32, + pub magic: __u32, + pub offset: __u32, + pub len: __u32, + pub data: __IncompleteArrayField<__u8>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ethtool_eth_ctrl_stats { + pub src: ethtool_mac_stats_src::Type, + pub __bindgen_anon_1: ethtool_eth_ctrl_stats__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ethtool_eth_ctrl_stats__bindgen_ty_1 { + pub __bindgen_anon_1: ethtool_eth_ctrl_stats__bindgen_ty_1__bindgen_ty_1, + pub stats: ethtool_eth_ctrl_stats__bindgen_ty_1__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_eth_ctrl_stats__bindgen_ty_1__bindgen_ty_1 { + pub MACControlFramesTransmitted: u64_, + pub MACControlFramesReceived: u64_, + pub UnsupportedOpcodesReceived: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_eth_ctrl_stats__bindgen_ty_1__bindgen_ty_2 { + pub MACControlFramesTransmitted: u64_, + pub MACControlFramesReceived: u64_, + pub UnsupportedOpcodesReceived: u64_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ethtool_eth_mac_stats { + pub src: ethtool_mac_stats_src::Type, + pub __bindgen_anon_1: ethtool_eth_mac_stats__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ethtool_eth_mac_stats__bindgen_ty_1 { + pub __bindgen_anon_1: ethtool_eth_mac_stats__bindgen_ty_1__bindgen_ty_1, + pub stats: ethtool_eth_mac_stats__bindgen_ty_1__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_eth_mac_stats__bindgen_ty_1__bindgen_ty_1 { + pub FramesTransmittedOK: u64_, + pub SingleCollisionFrames: u64_, + pub MultipleCollisionFrames: u64_, + pub FramesReceivedOK: u64_, + pub FrameCheckSequenceErrors: u64_, + pub AlignmentErrors: u64_, + pub OctetsTransmittedOK: u64_, + pub FramesWithDeferredXmissions: u64_, + pub LateCollisions: u64_, + pub FramesAbortedDueToXSColls: u64_, + pub FramesLostDueToIntMACXmitError: u64_, + pub CarrierSenseErrors: u64_, + pub OctetsReceivedOK: u64_, + pub FramesLostDueToIntMACRcvError: u64_, + pub MulticastFramesXmittedOK: u64_, + pub BroadcastFramesXmittedOK: u64_, + pub FramesWithExcessiveDeferral: u64_, + pub MulticastFramesReceivedOK: u64_, + pub BroadcastFramesReceivedOK: u64_, + pub InRangeLengthErrors: u64_, + pub OutOfRangeLengthField: u64_, + pub FrameTooLongErrors: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_eth_mac_stats__bindgen_ty_1__bindgen_ty_2 { + pub FramesTransmittedOK: u64_, + pub SingleCollisionFrames: u64_, + pub MultipleCollisionFrames: u64_, + pub FramesReceivedOK: u64_, + pub FrameCheckSequenceErrors: u64_, + pub AlignmentErrors: u64_, + pub OctetsTransmittedOK: u64_, + pub FramesWithDeferredXmissions: u64_, + pub LateCollisions: u64_, + pub FramesAbortedDueToXSColls: u64_, + pub FramesLostDueToIntMACXmitError: u64_, + pub CarrierSenseErrors: u64_, + pub OctetsReceivedOK: u64_, + pub FramesLostDueToIntMACRcvError: u64_, + pub MulticastFramesXmittedOK: u64_, + pub BroadcastFramesXmittedOK: u64_, + pub FramesWithExcessiveDeferral: u64_, + pub MulticastFramesReceivedOK: u64_, + pub BroadcastFramesReceivedOK: u64_, + pub InRangeLengthErrors: u64_, + pub OutOfRangeLengthField: u64_, + pub FrameTooLongErrors: u64_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ethtool_eth_phy_stats { + pub src: ethtool_mac_stats_src::Type, + pub __bindgen_anon_1: ethtool_eth_phy_stats__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ethtool_eth_phy_stats__bindgen_ty_1 { + pub __bindgen_anon_1: ethtool_eth_phy_stats__bindgen_ty_1__bindgen_ty_1, + pub stats: ethtool_eth_phy_stats__bindgen_ty_1__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_eth_phy_stats__bindgen_ty_1__bindgen_ty_1 { + pub SymbolErrorDuringCarrier: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_eth_phy_stats__bindgen_ty_1__bindgen_ty_2 { + pub SymbolErrorDuringCarrier: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_fec_hist_value { + pub sum: u64_, + pub per_lane: [u64_; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_fec_hist { + pub values: [ethtool_fec_hist_value; 17usize], + pub ranges: *const ethtool_fec_hist_range, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_fec_hist_range { + pub low: u16_, + pub high: u16_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_fec_stat { + pub total: u64_, + pub lanes: [u64_; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_fec_stats { + pub corrected_blocks: ethtool_fec_stat, + pub uncorrectable_blocks: ethtool_fec_stat, + pub corrected_bits: ethtool_fec_stat, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_fecparam { + pub cmd: __u32, + pub active_fec: __u32, + pub fec: __u32, + pub reserved: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ethtool_link_ext_state_info { + pub link_ext_state: ethtool_link_ext_state::Type, + pub __bindgen_anon_1: ethtool_link_ext_state_info__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ethtool_link_ext_state_info__bindgen_ty_1 { + pub autoneg: ethtool_link_ext_substate_autoneg::Type, + pub link_training: ethtool_link_ext_substate_link_training::Type, + pub link_logical_mismatch: ethtool_link_ext_substate_link_logical_mismatch::Type, + pub bad_signal_integrity: ethtool_link_ext_substate_bad_signal_integrity::Type, + pub cable_issue: ethtool_link_ext_substate_cable_issue::Type, + pub module: ethtool_link_ext_substate_module::Type, + pub __link_ext_substate: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_link_ext_stats { + pub link_down_events: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_link_settings { + pub cmd: __u32, + pub speed: __u32, + pub duplex: __u8, + pub port: __u8, + pub phy_address: __u8, + pub autoneg: __u8, + pub mdio_support: __u8, + pub eth_tp_mdix: __u8, + pub eth_tp_mdix_ctrl: __u8, + pub link_mode_masks_nwords: __s8, + pub transceiver: __u8, + pub master_slave_cfg: __u8, + pub master_slave_state: __u8, + pub rate_matching: __u8, + pub reserved: [__u32; 7usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_link_ksettings { + pub base: ethtool_link_settings, + pub link_modes: ethtool_link_ksettings__bindgen_ty_1, + pub lanes: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_link_ksettings__bindgen_ty_1 { + pub supported: [::aya_ebpf::cty::c_ulong; 2usize], + pub advertising: [::aya_ebpf::cty::c_ulong; 2usize], + pub lp_advertising: [::aya_ebpf::cty::c_ulong; 2usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_mm_cfg { + pub verify_time: u32_, + pub verify_enabled: bool_, + pub tx_enabled: bool_, + pub pmac_enabled: bool_, + pub tx_min_frag_size: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_mm_state { + pub verify_time: u32_, + pub max_verify_time: u32_, + pub verify_status: ethtool_mm_verify_status::Type, + pub tx_enabled: bool_, + pub tx_active: bool_, + pub pmac_enabled: bool_, + pub verify_enabled: bool_, + pub tx_min_frag_size: u32_, + pub rx_min_frag_size: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_mm_stats { + pub MACMergeFrameAssErrorCount: u64_, + pub MACMergeFrameSmdErrorCount: u64_, + pub MACMergeFrameAssOkCount: u64_, + pub MACMergeFragCountRx: u64_, + pub MACMergeFragCountTx: u64_, + pub MACMergeHoldCount: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_modinfo { + pub cmd: __u32, + pub type_: __u32, + pub eeprom_len: __u32, + pub reserved: [__u32; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_module_eeprom { + pub offset: u32_, + pub length: u32_, + pub page: u8_, + pub bank: u8_, + pub i2c_address: u8_, + pub data: *mut u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_module_power_mode_params { + pub policy: ethtool_module_power_mode_policy::Type, + pub mode: ethtool_module_power_mode::Type, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ethtool_netdev_state { + pub rss_ctx: xarray, + pub rss_lock: mutex, + pub rss_indir_user_size: u32_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: [u8; 3usize], +} +impl ethtool_netdev_state { + #[inline] + pub fn wol_enabled(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_wol_enabled(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn wol_enabled_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_wol_enabled_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn module_fw_flash_in_progress(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_module_fw_flash_in_progress(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn module_fw_flash_in_progress_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_module_fw_flash_in_progress_raw( + this: *mut Self, + val: ::aya_ebpf::cty::c_uint, + ) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + wol_enabled: ::aya_ebpf::cty::c_uint, + module_fw_flash_in_progress: ::aya_ebpf::cty::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let wol_enabled: u32 = unsafe { ::core::mem::transmute(wol_enabled) }; + wol_enabled as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let module_fw_flash_in_progress: u32 = + unsafe { ::core::mem::transmute(module_fw_flash_in_progress) }; + module_fw_flash_in_progress as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_ops { + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, + pub rxfh_indir_space: u32_, + pub rxfh_key_space: u16_, + pub rxfh_priv_size: u16_, + pub rxfh_max_num_contexts: u32_, + pub supported_coalesce_params: u32_, + pub supported_ring_params: u32_, + pub supported_hwtstamp_qualifiers: u32_, + pub get_drvinfo: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut ethtool_drvinfo), + >, + pub get_regs_len: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device) -> ::aya_ebpf::cty::c_int, + >, + pub get_regs: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_regs, + arg3: *mut ::aya_ebpf::cty::c_void, + ), + >, + pub get_wol: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut ethtool_wolinfo), + >, + pub set_wol: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_wolinfo, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_msglevel: ::core::option::Option u32_>, + pub set_msglevel: + ::core::option::Option, + pub nway_reset: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device) -> ::aya_ebpf::cty::c_int, + >, + pub get_link: ::core::option::Option u32_>, + pub get_link_ext_state: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_link_ext_state_info, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_link_ext_stats: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut ethtool_link_ext_stats), + >, + pub get_eeprom_len: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device) -> ::aya_ebpf::cty::c_int, + >, + pub get_eeprom: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_eeprom, + arg3: *mut u8_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_eeprom: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_eeprom, + arg3: *mut u8_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_coalesce: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_coalesce, + arg3: *mut kernel_ethtool_coalesce, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_coalesce: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_coalesce, + arg3: *mut kernel_ethtool_coalesce, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_ringparam: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_ringparam, + arg3: *mut kernel_ethtool_ringparam, + arg4: *mut netlink_ext_ack, + ), + >, + pub set_ringparam: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_ringparam, + arg3: *mut kernel_ethtool_ringparam, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_pause_stats: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut ethtool_pause_stats), + >, + pub get_pauseparam: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut ethtool_pauseparam), + >, + pub set_pauseparam: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_pauseparam, + ) -> ::aya_ebpf::cty::c_int, + >, + pub self_test: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut ethtool_test, arg3: *mut u64_), + >, + pub get_strings: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: u32_, arg3: *mut u8_), + >, + pub set_phys_id: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: ethtool_phys_id_state::Type, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_ethtool_stats: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut ethtool_stats, arg3: *mut u64_), + >, + pub begin: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device) -> ::aya_ebpf::cty::c_int, + >, + pub complete: ::core::option::Option, + pub get_priv_flags: ::core::option::Option u32_>, + pub set_priv_flags: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: u32_) -> ::aya_ebpf::cty::c_int, + >, + pub get_sset_count: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_rxnfc: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_rxnfc, + arg3: *mut u32_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_rxnfc: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_rxnfc, + ) -> ::aya_ebpf::cty::c_int, + >, + pub flash_device: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_flash, + ) -> ::aya_ebpf::cty::c_int, + >, + pub reset: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut u32_) -> ::aya_ebpf::cty::c_int, + >, + pub get_rx_ring_count: + ::core::option::Option u32_>, + pub get_rxfh_key_size: + ::core::option::Option u32_>, + pub get_rxfh_indir_size: + ::core::option::Option u32_>, + pub get_rxfh: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_rxfh_param, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_rxfh: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_rxfh_param, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_rxfh_fields: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_rxfh_fields, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_rxfh_fields: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *const ethtool_rxfh_fields, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub create_rxfh_context: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_rxfh_context, + arg3: *const ethtool_rxfh_param, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub modify_rxfh_context: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_rxfh_context, + arg3: *const ethtool_rxfh_param, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub remove_rxfh_context: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_rxfh_context, + arg3: u32_, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_channels: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut ethtool_channels), + >, + pub set_channels: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_channels, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_dump_flag: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_dump, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_dump_data: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_dump, + arg3: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_dump: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_dump, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_ts_info: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut kernel_ethtool_ts_info, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_ts_stats: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut ethtool_ts_stats), + >, + pub get_module_info: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_modinfo, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_module_eeprom: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_eeprom, + arg3: *mut u8_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_eee: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_keee, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_eee: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_keee, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_tunable: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *const ethtool_tunable, + arg3: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_tunable: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *const ethtool_tunable, + arg3: *const ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_per_queue_coalesce: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: u32_, + arg3: *mut ethtool_coalesce, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_per_queue_coalesce: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: u32_, + arg3: *mut ethtool_coalesce, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_link_ksettings: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_link_ksettings, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_link_ksettings: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *const ethtool_link_ksettings, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_fec_stats: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_fec_stats, + arg3: *mut ethtool_fec_hist, + ), + >, + pub get_fecparam: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_fecparam, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_fecparam: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_fecparam, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_ethtool_phy_stats: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut ethtool_stats, arg3: *mut u64_), + >, + pub get_phy_tunable: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *const ethtool_tunable, + arg3: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_phy_tunable: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *const ethtool_tunable, + arg3: *const ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_module_eeprom_by_page: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *const ethtool_module_eeprom, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_module_eeprom_by_page: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *const ethtool_module_eeprom, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_eth_phy_stats: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut ethtool_eth_phy_stats), + >, + pub get_eth_mac_stats: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut ethtool_eth_mac_stats), + >, + pub get_eth_ctrl_stats: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut ethtool_eth_ctrl_stats), + >, + pub get_rmon_stats: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_rmon_stats, + arg3: *mut *const ethtool_rmon_hist_range, + ), + >, + pub get_module_power_mode: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_module_power_mode_params, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_module_power_mode: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *const ethtool_module_power_mode_params, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_mm: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_mm_state, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_mm: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ethtool_mm_cfg, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_mm_stats: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut ethtool_mm_stats), + >, +} +impl ethtool_ops { + #[inline] + pub fn supported_input_xfrm(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) } + } + #[inline] + pub fn set_supported_input_xfrm(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 8u8, val as u64) + } + } + #[inline] + pub unsafe fn supported_input_xfrm_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 8u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_supported_input_xfrm_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 8u8, + val as u64, + ) + } + } + #[inline] + pub fn cap_link_lanes_supported(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) } + } + #[inline] + pub fn set_cap_link_lanes_supported(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(8usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn cap_link_lanes_supported_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 8usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_cap_link_lanes_supported_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 8usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn rxfh_per_ctx_fields(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) } + } + #[inline] + pub fn set_rxfh_per_ctx_fields(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(9usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn rxfh_per_ctx_fields_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 9usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_rxfh_per_ctx_fields_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 9usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn rxfh_per_ctx_key(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) } + } + #[inline] + pub fn set_rxfh_per_ctx_key(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(10usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn rxfh_per_ctx_key_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 10usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_rxfh_per_ctx_key_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 10usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn cap_rss_rxnfc_adds(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) } + } + #[inline] + pub fn set_cap_rss_rxnfc_adds(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(11usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn cap_rss_rxnfc_adds_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 11usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_cap_rss_rxnfc_adds_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 11usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + supported_input_xfrm: u32_, + cap_link_lanes_supported: u32_, + rxfh_per_ctx_fields: u32_, + rxfh_per_ctx_key: u32_, + cap_rss_rxnfc_adds: u32_, + ) -> __BindgenBitfieldUnit<[u8; 2usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 8u8, { + let supported_input_xfrm: u32 = unsafe { ::core::mem::transmute(supported_input_xfrm) }; + supported_input_xfrm as u64 + }); + __bindgen_bitfield_unit.set(8usize, 1u8, { + let cap_link_lanes_supported: u32 = + unsafe { ::core::mem::transmute(cap_link_lanes_supported) }; + cap_link_lanes_supported as u64 + }); + __bindgen_bitfield_unit.set(9usize, 1u8, { + let rxfh_per_ctx_fields: u32 = unsafe { ::core::mem::transmute(rxfh_per_ctx_fields) }; + rxfh_per_ctx_fields as u64 + }); + __bindgen_bitfield_unit.set(10usize, 1u8, { + let rxfh_per_ctx_key: u32 = unsafe { ::core::mem::transmute(rxfh_per_ctx_key) }; + rxfh_per_ctx_key as u64 + }); + __bindgen_bitfield_unit.set(11usize, 1u8, { + let cap_rss_rxnfc_adds: u32 = unsafe { ::core::mem::transmute(cap_rss_rxnfc_adds) }; + cap_rss_rxnfc_adds as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ethtool_pause_stats { + pub src: ethtool_mac_stats_src::Type, + pub __bindgen_anon_1: ethtool_pause_stats__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ethtool_pause_stats__bindgen_ty_1 { + pub __bindgen_anon_1: ethtool_pause_stats__bindgen_ty_1__bindgen_ty_1, + pub stats: ethtool_pause_stats__bindgen_ty_1__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_pause_stats__bindgen_ty_1__bindgen_ty_1 { + pub tx_pause_frames: u64_, + pub rx_pause_frames: u64_, + pub tx_pause_storm_events: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_pause_stats__bindgen_ty_1__bindgen_ty_2 { + pub tx_pause_frames: u64_, + pub rx_pause_frames: u64_, + pub tx_pause_storm_events: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_pauseparam { + pub cmd: __u32, + pub autoneg: __u32, + pub rx_pause: __u32, + pub tx_pause: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_phy_stats { + pub rx_packets: u64_, + pub rx_bytes: u64_, + pub rx_errors: u64_, + pub tx_packets: u64_, + pub tx_bytes: u64_, + pub tx_errors: u64_, +} +#[repr(C)] +#[derive(Debug)] +pub struct ethtool_regs { + pub cmd: __u32, + pub version: __u32, + pub len: __u32, + pub data: __IncompleteArrayField<__u8>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_ringparam { + pub cmd: __u32, + pub rx_max_pending: __u32, + pub rx_mini_max_pending: __u32, + pub rx_jumbo_max_pending: __u32, + pub tx_max_pending: __u32, + pub rx_pending: __u32, + pub rx_mini_pending: __u32, + pub rx_jumbo_pending: __u32, + pub tx_pending: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_rmon_hist_range { + pub low: u16_, + pub high: u16_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ethtool_rmon_stats { + pub src: ethtool_mac_stats_src::Type, + pub __bindgen_anon_1: ethtool_rmon_stats__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ethtool_rmon_stats__bindgen_ty_1 { + pub __bindgen_anon_1: ethtool_rmon_stats__bindgen_ty_1__bindgen_ty_1, + pub stats: ethtool_rmon_stats__bindgen_ty_1__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_rmon_stats__bindgen_ty_1__bindgen_ty_1 { + pub undersize_pkts: u64_, + pub oversize_pkts: u64_, + pub fragments: u64_, + pub jabbers: u64_, + pub hist: [u64_; 11usize], + pub hist_tx: [u64_; 11usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_rmon_stats__bindgen_ty_1__bindgen_ty_2 { + pub undersize_pkts: u64_, + pub oversize_pkts: u64_, + pub fragments: u64_, + pub jabbers: u64_, + pub hist: [u64_; 11usize], + pub hist_tx: [u64_; 11usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flow_dissector { + pub used_keys: ::aya_ebpf::cty::c_ulonglong, + pub offset: [::aya_ebpf::cty::c_ushort; 33usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ethtool_rx_flow_spec { + pub flow_type: __u32, + pub h_u: ethtool_flow_union, + pub h_ext: ethtool_flow_ext, + pub m_u: ethtool_flow_union, + pub m_ext: ethtool_flow_ext, + pub ring_cookie: __u64, + pub location: __u32, +} +#[repr(C)] +#[derive(Debug)] +pub struct ethtool_rxfh_context { + pub indir_size: u32_, + pub key_size: u32_, + pub indir_user_size: u32_, + pub priv_size: u16_, + pub hfunc: u8_, + pub input_xfrm: u8_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub key_off: u32_, + pub data: __IncompleteArrayField, +} +impl ethtool_rxfh_context { + #[inline] + pub fn indir_configured(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_indir_configured(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn indir_configured_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_indir_configured_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn key_configured(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_key_configured(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn key_configured_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_key_configured_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + indir_configured: u8_, + key_configured: u8_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let indir_configured: u8 = unsafe { ::core::mem::transmute(indir_configured) }; + indir_configured as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let key_configured: u8 = unsafe { ::core::mem::transmute(key_configured) }; + key_configured as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_rxfh_fields { + pub data: u32_, + pub flow_type: u32_, + pub rss_context: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_rxfh_param { + pub hfunc: u8_, + pub indir_size: u32_, + pub indir: *mut u32_, + pub key_size: u32_, + pub key: *mut u8_, + pub rss_context: u32_, + pub rss_delete: u8_, + pub input_xfrm: u8_, +} +#[repr(C)] +pub struct ethtool_rxnfc { + pub cmd: __u32, + pub flow_type: __u32, + pub data: __u64, + pub fs: ethtool_rx_flow_spec, + pub __bindgen_anon_1: ethtool_rxnfc__bindgen_ty_1, + pub rule_locs: __IncompleteArrayField<__u32>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ethtool_rxnfc__bindgen_ty_1 { + pub rule_cnt: __u32, + pub rss_context: __u32, +} +#[repr(C)] +#[derive(Debug)] +pub struct ethtool_stats { + pub cmd: __u32, + pub n_stats: __u32, + pub data: __IncompleteArrayField<__u64>, +} +#[repr(C)] +#[derive(Debug)] +pub struct ethtool_test { + pub cmd: __u32, + pub flags: __u32, + pub reserved: __u32, + pub len: __u32, + pub data: __IncompleteArrayField<__u64>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ethtool_ts_stats { + pub __bindgen_anon_1: ethtool_ts_stats__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ethtool_ts_stats__bindgen_ty_1 { + pub __bindgen_anon_1: ethtool_ts_stats__bindgen_ty_1__bindgen_ty_1, + pub tx_stats: ethtool_ts_stats__bindgen_ty_1__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_ts_stats__bindgen_ty_1__bindgen_ty_1 { + pub pkts: u64_, + pub onestep_pkts_unconfirmed: u64_, + pub lost: u64_, + pub err: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_ts_stats__bindgen_ty_1__bindgen_ty_2 { + pub pkts: u64_, + pub onestep_pkts_unconfirmed: u64_, + pub lost: u64_, + pub err: u64_, +} +#[repr(C)] +#[derive(Debug)] +pub struct ethtool_tunable { + pub cmd: __u32, + pub id: __u32, + pub type_id: __u32, + pub len: __u32, + pub data: __IncompleteArrayField<*mut ::aya_ebpf::cty::c_void>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ethtool_wolinfo { + pub cmd: __u32, + pub supported: __u32, + pub wolopts: __u32, + pub sopass: [__u8; 6usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct event_filter { + pub prog: *mut prog_entry, + pub filter_string: *mut ::aya_ebpf::cty::c_char, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct event_subsystem { + pub list: list_head, + pub name: *const ::aya_ebpf::cty::c_char, + pub filter: *mut event_filter, + pub ref_count: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct eventfd_ctx { + pub kref: kref, + pub wqh: wait_queue_head_t, + pub count: __u64, + pub flags: ::aya_ebpf::cty::c_uint, + pub id: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct eventfs_attr { + pub mode: ::aya_ebpf::cty::c_int, + pub uid: kuid_t, + pub gid: kgid_t, +} +pub type eventfs_callback = ::core::option::Option< + unsafe extern "C" fn( + arg1: *const ::aya_ebpf::cty::c_char, + arg2: *mut umode_t, + arg3: *mut *mut ::aya_ebpf::cty::c_void, + arg4: *mut *const file_operations, + ) -> ::aya_ebpf::cty::c_int, +>; +pub type eventfs_release = ::core::option::Option< + unsafe extern "C" fn(arg1: *const ::aya_ebpf::cty::c_char, arg2: *mut ::aya_ebpf::cty::c_void), +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct eventfs_entry { + pub name: *const ::aya_ebpf::cty::c_char, + pub callback: eventfs_callback, + pub release: eventfs_release, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct eventfs_inode { + pub __bindgen_anon_1: eventfs_inode__bindgen_ty_1, + pub children: list_head, + pub entries: *const eventfs_entry, + pub name: *const ::aya_ebpf::cty::c_char, + pub entry_attrs: *mut eventfs_attr, + pub data: *mut ::aya_ebpf::cty::c_void, + pub attr: eventfs_attr, + pub kref: kref, + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, + pub ino: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union eventfs_inode__bindgen_ty_1 { + pub list: list_head, + pub rcu: callback_head, +} +impl eventfs_inode { + #[inline] + pub fn is_freed(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_is_freed(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn is_freed_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_is_freed_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn is_events(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_is_events(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn is_events_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_is_events_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn nr_entries(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) } + } + #[inline] + pub fn set_nr_entries(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 30u8, val as u64) + } + } + #[inline] + pub unsafe fn nr_entries_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 30u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_nr_entries_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 30u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + is_freed: ::aya_ebpf::cty::c_uint, + is_events: ::aya_ebpf::cty::c_uint, + nr_entries: ::aya_ebpf::cty::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let is_freed: u32 = unsafe { ::core::mem::transmute(is_freed) }; + is_freed as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let is_events: u32 = unsafe { ::core::mem::transmute(is_events) }; + is_events as u64 + }); + __bindgen_bitfield_unit.set(2usize, 30u8, { + let nr_entries: u32 = unsafe { ::core::mem::transmute(nr_entries) }; + nr_entries as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct exception_table_entry { + pub insn: ::aya_ebpf::cty::c_int, + pub fixup: ::aya_ebpf::cty::c_int, + pub data: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct maple_tree { + pub __bindgen_anon_1: maple_tree__bindgen_ty_1, + pub ma_flags: ::aya_ebpf::cty::c_uint, + pub ma_root: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union maple_tree__bindgen_ty_1 { + pub ma_lock: spinlock_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct export_operations { + pub encode_fh: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut inode, + arg2: *mut __u32, + arg3: *mut ::aya_ebpf::cty::c_int, + arg4: *mut inode, + ) -> ::aya_ebpf::cty::c_int, + >, + pub fh_to_dentry: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut super_block, + arg2: *mut fid, + arg3: ::aya_ebpf::cty::c_int, + arg4: ::aya_ebpf::cty::c_int, + ) -> *mut dentry, + >, + pub fh_to_parent: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut super_block, + arg2: *mut fid, + arg3: ::aya_ebpf::cty::c_int, + arg4: ::aya_ebpf::cty::c_int, + ) -> *mut dentry, + >, + pub get_name: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dentry, + arg2: *mut ::aya_ebpf::cty::c_char, + arg3: *mut dentry, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_parent: ::core::option::Option *mut dentry>, + pub commit_metadata: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub get_uuid: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut super_block, + arg2: *mut u8_, + arg3: *mut u32_, + arg4: *mut u64_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub map_blocks: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut inode, + arg2: loff_t, + arg3: u64_, + arg4: *mut iomap, + arg5: bool_, + arg6: *mut u32_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub commit_blocks: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut inode, + arg2: *mut iomap, + arg3: ::aya_ebpf::cty::c_int, + arg4: *mut iattr, + ) -> ::aya_ebpf::cty::c_int, + >, + pub permission: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut handle_to_path_ctx, + arg2: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub open: ::core::option::Option< + unsafe extern "C" fn(arg1: *const path, arg2: ::aya_ebpf::cty::c_uint) -> *mut file, + >, + pub flags: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fsnotify_event { + pub list: list_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fanotify_group_private_data { + pub merge_hash: *mut hlist_head, + pub access_list: list_head, + pub access_waitq: wait_queue_head_t, + pub flags: ::aya_ebpf::cty::c_int, + pub f_flags: ::aya_ebpf::cty::c_int, + pub ucounts: *mut ucounts, + pub error_events_pool: mempool_t, + pub perm_grp_list: list_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fastopen_queue { + pub rskq_rst_head: *mut request_sock, + pub rskq_rst_tail: *mut request_sock, + pub lock: spinlock_t, + pub qlen: ::aya_ebpf::cty::c_int, + pub max_qlen: ::aya_ebpf::cty::c_int, + pub ctx: *mut tcp_fastopen_context, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fasync_struct { + pub fa_lock: rwlock_t, + pub magic: ::aya_ebpf::cty::c_int, + pub fa_fd: ::aya_ebpf::cty::c_int, + pub fa_next: *mut fasync_struct, + pub fa_file: *mut file, + pub fa_rcu: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fc_log { + pub usage: refcount_t, + pub head: u8_, + pub tail: u8_, + pub need_free: u8_, + pub owner: *mut module, + pub buffer: [*mut ::aya_ebpf::cty::c_char; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fdtable { + pub max_fds: ::aya_ebpf::cty::c_uint, + pub fd: *mut *mut file, + pub close_on_exec: *mut ::aya_ebpf::cty::c_ulong, + pub open_fds: *mut ::aya_ebpf::cty::c_ulong, + pub full_fds_bits: *mut ::aya_ebpf::cty::c_ulong, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ftrace_graph_ent { + pub func: ::aya_ebpf::cty::c_ulong, + pub depth: ::aya_ebpf::cty::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ftrace_graph_ret { + pub func: ::aya_ebpf::cty::c_ulong, + pub retval: ::aya_ebpf::cty::c_ulong, + pub depth: ::aya_ebpf::cty::c_int, + pub overrun: ::aya_ebpf::cty::c_uint, +} +pub type trace_func_graph_ent_t = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ftrace_graph_ent, + arg2: *mut fgraph_ops, + arg3: *mut ftrace_regs, + ) -> ::aya_ebpf::cty::c_int, +>; +pub type trace_func_graph_ret_t = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ftrace_graph_ret, + arg2: *mut fgraph_ops, + arg3: *mut ftrace_regs, + ), +>; +pub type ftrace_func_t = ::core::option::Option< + unsafe extern "C" fn( + arg1: ::aya_ebpf::cty::c_ulong, + arg2: ::aya_ebpf::cty::c_ulong, + arg3: *mut ftrace_ops, + arg4: *mut ftrace_regs, + ), +>; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ftrace_ops_hash { + pub notrace_hash: *mut ftrace_hash, + pub filter_hash: *mut ftrace_hash, + pub regex_lock: mutex, +} +pub type ftrace_ops_func_t = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ftrace_ops, + arg2: ::aya_ebpf::cty::c_ulong, + arg3: ftrace_ops_cmd::Type, + ) -> ::aya_ebpf::cty::c_int, +>; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ftrace_ops { + pub func: ftrace_func_t, + pub next: *mut ftrace_ops, + pub flags: ::aya_ebpf::cty::c_ulong, + pub private: *mut ::aya_ebpf::cty::c_void, + pub saved_func: ftrace_func_t, + pub local_hash: ftrace_ops_hash, + pub func_hash: *mut ftrace_ops_hash, + pub old_hash: ftrace_ops_hash, + pub trampoline: ::aya_ebpf::cty::c_ulong, + pub trampoline_size: ::aya_ebpf::cty::c_ulong, + pub list: list_head, + pub subop_list: list_head, + pub ops_func: ftrace_ops_func_t, + pub managed: *mut ftrace_ops, + pub direct_call: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fgraph_ops { + pub entryfunc: trace_func_graph_ent_t, + pub retfunc: trace_func_graph_ret_t, + pub ops: ftrace_ops, + pub private: *mut ::aya_ebpf::cty::c_void, + pub saved_func: trace_func_graph_ent_t, + pub idx: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fib_kuid_range { + pub start: kuid_t, + pub end: kuid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fib_rule_port_range { + pub start: __u16, + pub end: __u16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fib_rule { + pub list: list_head, + pub iifindex: ::aya_ebpf::cty::c_int, + pub oifindex: ::aya_ebpf::cty::c_int, + pub mark: u32_, + pub mark_mask: u32_, + pub flags: u32_, + pub table: u32_, + pub action: u8_, + pub l3mdev: u8_, + pub proto: u8_, + pub ip_proto: u8_, + pub target: u32_, + pub tun_id: __be64, + pub ctarget: *mut fib_rule, + pub fr_net: *mut net, + pub refcnt: refcount_t, + pub pref: u32_, + pub suppress_ifgroup: ::aya_ebpf::cty::c_int, + pub suppress_prefixlen: ::aya_ebpf::cty::c_int, + pub iifname: [::aya_ebpf::cty::c_char; 16usize], + pub oifname: [::aya_ebpf::cty::c_char; 16usize], + pub uid_range: fib_kuid_range, + pub sport_range: fib_rule_port_range, + pub dport_range: fib_rule_port_range, + pub sport_mask: u16_, + pub dport_mask: u16_, + pub iif_is_l3_master: u8_, + pub oif_is_l3_master: u8_, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rt6key { + pub addr: in6_addr, + pub plen: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fib_nh_common { + pub nhc_dev: *mut net_device, + pub nhc_dev_tracker: netdevice_tracker, + pub nhc_oif: ::aya_ebpf::cty::c_int, + pub nhc_scope: ::aya_ebpf::cty::c_uchar, + pub nhc_family: u8_, + pub nhc_gw_family: u8_, + pub nhc_flags: ::aya_ebpf::cty::c_uchar, + pub nhc_lwtstate: *mut lwtunnel_state, + pub nhc_gw: fib_nh_common__bindgen_ty_1, + pub nhc_weight: ::aya_ebpf::cty::c_int, + pub nhc_upper_bound: atomic_t, + pub nhc_pcpu_rth_output: *mut *mut rtable, + pub nhc_rth_input: *mut rtable, + pub nhc_exceptions: *mut fnhe_hash_bucket, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union fib_nh_common__bindgen_ty_1 { + pub ipv4: __be32, + pub ipv6: in6_addr, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fib6_nh { + pub nh_common: fib_nh_common, + pub last_probe: ::aya_ebpf::cty::c_ulong, + pub rt6i_pcpu: *mut *mut rt6_info, + pub rt6i_exception_bucket: *mut rt6_exception_bucket, +} +#[repr(C)] +pub struct fib6_info { + pub fib6_table: *mut fib6_table, + pub fib6_next: *mut fib6_info, + pub fib6_node: *mut fib6_node, + pub __bindgen_anon_1: fib6_info__bindgen_ty_1, + pub fib6_nsiblings: ::aya_ebpf::cty::c_uint, + pub fib6_ref: refcount_t, + pub expires: ::aya_ebpf::cty::c_ulong, + pub gc_link: hlist_node, + pub fib6_metrics: *mut dst_metrics, + pub fib6_dst: rt6key, + pub fib6_flags: u32_, + pub fib6_src: rt6key, + pub fib6_prefsrc: rt6key, + pub fib6_metric: u32_, + pub fib6_protocol: u8_, + pub fib6_type: u8_, + pub offload: u8_, + pub trap: u8_, + pub offload_failed: u8_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub purge_link: list_head, + pub rcu: callback_head, + pub nh: *mut nexthop, + pub fib6_nh: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union fib6_info__bindgen_ty_1 { + pub fib6_siblings: list_head, + pub nh_list: list_head, +} +impl fib6_info { + #[inline] + pub fn should_flush(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_should_flush(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn should_flush_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_should_flush_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn dst_nocount(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_dst_nocount(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dst_nocount_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_dst_nocount_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn dst_nopolicy(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) } + } + #[inline] + pub fn set_dst_nopolicy(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dst_nopolicy_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_dst_nopolicy_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fib6_destroying(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) } + } + #[inline] + pub fn set_fib6_destroying(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fib6_destroying_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fib6_destroying_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn unused(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } + } + #[inline] + pub fn set_unused(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 4u8, val as u64) + } + } + #[inline] + pub unsafe fn unused_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 4u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_unused_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 4u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + should_flush: u8_, + dst_nocount: u8_, + dst_nopolicy: u8_, + fib6_destroying: u8_, + unused: u8_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let should_flush: u8 = unsafe { ::core::mem::transmute(should_flush) }; + should_flush as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let dst_nocount: u8 = unsafe { ::core::mem::transmute(dst_nocount) }; + dst_nocount as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let dst_nopolicy: u8 = unsafe { ::core::mem::transmute(dst_nopolicy) }; + dst_nopolicy as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let fib6_destroying: u8 = unsafe { ::core::mem::transmute(fib6_destroying) }; + fib6_destroying as u64 + }); + __bindgen_bitfield_unit.set(4usize, 4u8, { + let unused: u8 = unsafe { ::core::mem::transmute(unused) }; + unused as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fib6_node { + pub parent: *mut fib6_node, + pub left: *mut fib6_node, + pub right: *mut fib6_node, + pub subtree: *mut fib6_node, + pub leaf: *mut fib6_info, + pub fn_bit: __u16, + pub fn_flags: __u16, + pub fn_sernum: ::aya_ebpf::cty::c_int, + pub rr_ptr: *mut fib6_info, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct inet_peer_base { + pub rb_root: rb_root, + pub lock: seqlock_t, + pub total: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fib6_table { + pub tb6_hlist: hlist_node, + pub tb6_id: u32_, + pub tb6_lock: spinlock_t, + pub tb6_root: fib6_node, + pub tb6_peers: inet_peer_base, + pub flags: ::aya_ebpf::cty::c_uint, + pub fib_seq: ::aya_ebpf::cty::c_uint, + pub tb6_gc_hlist: hlist_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fib_nh { + pub nh_common: fib_nh_common, + pub nh_hash: hlist_node, + pub nh_parent: *mut fib_info, + pub nh_tclassid: __u32, + pub nh_saddr: __be32, + pub nh_saddr_genid: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +pub struct fib_info { + pub fib_hash: hlist_node, + pub fib_lhash: hlist_node, + pub nh_list: list_head, + pub fib_net: *mut net, + pub fib_treeref: refcount_t, + pub fib_clntref: refcount_t, + pub fib_flags: ::aya_ebpf::cty::c_uint, + pub fib_dead: ::aya_ebpf::cty::c_uchar, + pub fib_protocol: ::aya_ebpf::cty::c_uchar, + pub fib_scope: ::aya_ebpf::cty::c_uchar, + pub fib_type: ::aya_ebpf::cty::c_uchar, + pub fib_prefsrc: __be32, + pub fib_tb_id: u32_, + pub fib_priority: u32_, + pub fib_metrics: *mut dst_metrics, + pub fib_nhs: ::aya_ebpf::cty::c_int, + pub fib_nh_is_v6: bool_, + pub nh_updated: bool_, + pub pfsrc_removed: bool_, + pub nh: *mut nexthop, + pub rcu: callback_head, + pub fib_nh: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fib_lookup_arg { + pub lookup_ptr: *mut ::aya_ebpf::cty::c_void, + pub lookup_data: *const ::aya_ebpf::cty::c_void, + pub result: *mut ::aya_ebpf::cty::c_void, + pub rule: *mut fib_rule, + pub table: u32_, + pub flags: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fib_nh_exception { + pub fnhe_next: *mut fib_nh_exception, + pub fnhe_genid: ::aya_ebpf::cty::c_int, + pub fnhe_daddr: __be32, + pub fnhe_pmtu: u32_, + pub fnhe_mtu_locked: bool_, + pub fnhe_gw: __be32, + pub fnhe_expires: ::aya_ebpf::cty::c_ulong, + pub fnhe_rth_input: *mut rtable, + pub fnhe_rth_output: *mut rtable, + pub fnhe_stamp: ::aya_ebpf::cty::c_ulong, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fib_notifier_ops { + pub family: ::aya_ebpf::cty::c_int, + pub list: list_head, + pub fib_seq_read: + ::core::option::Option ::aya_ebpf::cty::c_uint>, + pub fib_dump: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net, + arg2: *mut notifier_block, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub owner: *mut module, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fib_rule_hdr { + pub family: __u8, + pub dst_len: __u8, + pub src_len: __u8, + pub tos: __u8, + pub table: __u8, + pub res1: __u8, + pub res2: __u8, + pub action: __u8, + pub flags: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fib_rules_ops { + pub family: ::aya_ebpf::cty::c_int, + pub list: list_head, + pub rule_size: ::aya_ebpf::cty::c_int, + pub addr_size: ::aya_ebpf::cty::c_int, + pub unresolved_rules: ::aya_ebpf::cty::c_int, + pub nr_goto_rules: ::aya_ebpf::cty::c_int, + pub fib_rules_seq: ::aya_ebpf::cty::c_uint, + pub action: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut fib_rule, + arg2: *mut flowi, + arg3: ::aya_ebpf::cty::c_int, + arg4: *mut fib_lookup_arg, + ) -> ::aya_ebpf::cty::c_int, + >, + pub suppress: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut fib_rule, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut fib_lookup_arg, + ) -> bool_, + >, + pub match_: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut fib_rule, + arg2: *mut flowi, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub configure: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut fib_rule, + arg2: *mut sk_buff, + arg3: *mut fib_rule_hdr, + arg4: *mut *mut nlattr, + arg5: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub delete: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub compare: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut fib_rule, + arg2: *mut fib_rule_hdr, + arg3: *mut *mut nlattr, + ) -> ::aya_ebpf::cty::c_int, + >, + pub fill: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut fib_rule, + arg2: *mut sk_buff, + arg3: *mut fib_rule_hdr, + ) -> ::aya_ebpf::cty::c_int, + >, + pub nlmsg_payload: ::core::option::Option usize>, + pub flush_cache: ::core::option::Option, + pub nlgroup: ::aya_ebpf::cty::c_int, + pub rules_list: list_head, + pub owner: *mut module, + pub fro_net: *mut net, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Debug)] +pub struct fib_table { + pub tb_hlist: hlist_node, + pub tb_id: u32_, + pub tb_num_default: ::aya_ebpf::cty::c_int, + pub rcu: callback_head, + pub tb_data: *mut ::aya_ebpf::cty::c_ulong, + pub __data: __IncompleteArrayField<::aya_ebpf::cty::c_ulong>, +} +#[repr(C)] +pub struct fid { + pub __bindgen_anon_1: fid__bindgen_ty_1, +} +#[repr(C)] +pub struct fid__bindgen_ty_1 { + pub i32_: __BindgenUnionField, + pub i64_: __BindgenUnionField, + pub udf: __BindgenUnionField, + pub __bindgen_anon_1: __BindgenUnionField, + pub bindgen_union_field: [u32; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fid__bindgen_ty_1__bindgen_ty_1 { + pub ino: u32_, + pub gen_: u32_, + pub parent_ino: u32_, + pub parent_gen: u32_, +} +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct fid__bindgen_ty_1__bindgen_ty_2 { + pub ino: u64_, + pub gen_: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fid__bindgen_ty_1__bindgen_ty_3 { + pub block: u32_, + pub partref: u16_, + pub parent_partref: u16_, + pub generation: u32_, + pub parent_block: u32_, + pub parent_generation: u32_, +} +#[repr(C)] +#[derive(Debug)] +pub struct fid__bindgen_ty_1__bindgen_ty_4 { + pub __empty_raw: fid__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1, + pub raw: __IncompleteArrayField<__u32>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fid__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1 {} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fiemap_extent { + pub fe_logical: __u64, + pub fe_physical: __u64, + pub fe_length: __u64, + pub fe_reserved64: [__u64; 2usize], + pub fe_flags: __u32, + pub fe_reserved: [__u32; 3usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fiemap_extent_info { + pub fi_flags: ::aya_ebpf::cty::c_uint, + pub fi_extents_mapped: ::aya_ebpf::cty::c_uint, + pub fi_extents_max: ::aya_ebpf::cty::c_uint, + pub fi_extents_start: *mut fiemap_extent, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_kattr { + pub flags: u32_, + pub fsx_xflags: u32_, + pub fsx_extsize: u32_, + pub fsx_nextents: u32_, + pub fsx_projid: u32_, + pub fsx_cowextsize: u32_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: [u8; 3usize], +} +impl file_kattr { + #[inline] + pub fn flags_valid(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_flags_valid(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn flags_valid_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_flags_valid_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fsx_valid(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_fsx_valid(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fsx_valid_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fsx_valid_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + flags_valid: bool_, + fsx_valid: bool_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let flags_valid: u8 = unsafe { ::core::mem::transmute(flags_valid) }; + flags_valid as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let fsx_valid: u8 = unsafe { ::core::mem::transmute(fsx_valid) }; + fsx_valid as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct file_lock_core { + pub flc_blocker: *mut file_lock_core, + pub flc_list: list_head, + pub flc_link: hlist_node, + pub flc_blocked_requests: list_head, + pub flc_blocked_member: list_head, + pub flc_owner: fl_owner_t, + pub flc_flags: ::aya_ebpf::cty::c_uint, + pub flc_type: ::aya_ebpf::cty::c_uchar, + pub flc_pid: pid_t, + pub flc_link_cpu: ::aya_ebpf::cty::c_int, + pub flc_wait: wait_queue_head_t, + pub flc_file: *mut file, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct file_lease { + pub c: file_lock_core, + pub fl_fasync: *mut fasync_struct, + pub fl_break_time: ::aya_ebpf::cty::c_ulong, + pub fl_downgrade_time: ::aya_ebpf::cty::c_ulong, + pub fl_lmops: *const lease_manager_operations, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nlm_lockowner { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_lock_info { + pub state: u32_, + pub owner: *mut nlm_lockowner, + pub list: list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs4_lock_info { + pub owner: *mut nfs4_lock_state, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct file_lock { + pub c: file_lock_core, + pub fl_start: loff_t, + pub fl_end: loff_t, + pub fl_ops: *const file_lock_operations, + pub fl_lmops: *const lock_manager_operations, + pub fl_u: file_lock__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union file_lock__bindgen_ty_1 { + pub nfs_fl: nfs_lock_info, + pub nfs4_fl: nfs4_lock_info, + pub afs: file_lock__bindgen_ty_1__bindgen_ty_1, + pub ceph: file_lock__bindgen_ty_1__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_lock__bindgen_ty_1__bindgen_ty_1 { + pub link: list_head, + pub state: ::aya_ebpf::cty::c_int, + pub debug_id: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_lock__bindgen_ty_1__bindgen_ty_2 { + pub inode: *mut inode, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct file_lock_context { + pub flc_lock: spinlock_t, + pub flc_flock: list_head, + pub flc_posix: list_head, + pub flc_lease: list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_lock_operations { + pub fl_copy_lock: + ::core::option::Option, + pub fl_release_private: ::core::option::Option, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_operations { + pub owner: *mut module, + pub fop_flags: fop_flags_t, + pub llseek: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut file, arg2: loff_t, arg3: ::aya_ebpf::cty::c_int) -> loff_t, + >, + pub read: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file, + arg2: *mut ::aya_ebpf::cty::c_char, + arg3: usize, + arg4: *mut loff_t, + ) -> isize, + >, + pub write: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file, + arg2: *const ::aya_ebpf::cty::c_char, + arg3: usize, + arg4: *mut loff_t, + ) -> isize, + >, + pub read_iter: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut kiocb, arg2: *mut iov_iter) -> isize, + >, + pub write_iter: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut kiocb, arg2: *mut iov_iter) -> isize, + >, + pub iopoll: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut kiocb, + arg2: *mut io_comp_batch, + arg3: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub iterate_shared: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut file, arg2: *mut dir_context) -> ::aya_ebpf::cty::c_int, + >, + pub poll: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut file, arg2: *mut poll_table_struct) -> __poll_t, + >, + pub unlocked_ioctl: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_long, + >, + pub compat_ioctl: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_long, + >, + pub mmap: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut file, arg2: *mut vm_area_struct) -> ::aya_ebpf::cty::c_int, + >, + pub open: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut inode, arg2: *mut file) -> ::aya_ebpf::cty::c_int, + >, + pub flush: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut file, arg2: fl_owner_t) -> ::aya_ebpf::cty::c_int, + >, + pub release: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut inode, arg2: *mut file) -> ::aya_ebpf::cty::c_int, + >, + pub fsync: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file, + arg2: loff_t, + arg3: loff_t, + arg4: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub fasync: ::core::option::Option< + unsafe extern "C" fn( + arg1: ::aya_ebpf::cty::c_int, + arg2: *mut file, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub lock: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut file_lock, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_unmapped_area: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file, + arg2: ::aya_ebpf::cty::c_ulong, + arg3: ::aya_ebpf::cty::c_ulong, + arg4: ::aya_ebpf::cty::c_ulong, + arg5: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_ulong, + >, + pub check_flags: ::core::option::Option< + unsafe extern "C" fn(arg1: ::aya_ebpf::cty::c_int) -> ::aya_ebpf::cty::c_int, + >, + pub flock: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut file_lock, + ) -> ::aya_ebpf::cty::c_int, + >, + pub splice_write: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut pipe_inode_info, + arg2: *mut file, + arg3: *mut loff_t, + arg4: usize, + arg5: ::aya_ebpf::cty::c_uint, + ) -> isize, + >, + pub splice_read: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file, + arg2: *mut loff_t, + arg3: *mut pipe_inode_info, + arg4: usize, + arg5: ::aya_ebpf::cty::c_uint, + ) -> isize, + >, + pub splice_eof: ::core::option::Option, + pub setlease: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut *mut file_lease, + arg4: *mut *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub fallocate: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file, + arg2: ::aya_ebpf::cty::c_int, + arg3: loff_t, + arg4: loff_t, + ) -> ::aya_ebpf::cty::c_long, + >, + pub show_fdinfo: + ::core::option::Option, + pub copy_file_range: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file, + arg2: loff_t, + arg3: *mut file, + arg4: loff_t, + arg5: usize, + arg6: ::aya_ebpf::cty::c_uint, + ) -> isize, + >, + pub remap_file_range: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file, + arg2: loff_t, + arg3: *mut file, + arg4: loff_t, + arg5: loff_t, + arg6: ::aya_ebpf::cty::c_uint, + ) -> loff_t, + >, + pub fadvise: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file, + arg2: loff_t, + arg3: loff_t, + arg4: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub uring_cmd: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut io_uring_cmd, + arg2: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub uring_cmd_iopoll: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut io_uring_cmd, + arg2: *mut io_comp_batch, + arg3: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub mmap_prepare: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut vm_area_desc) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_system_type { + pub name: *const ::aya_ebpf::cty::c_char, + pub fs_flags: ::aya_ebpf::cty::c_int, + pub init_fs_context: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut fs_context) -> ::aya_ebpf::cty::c_int, + >, + pub parameters: *const fs_parameter_spec, + pub kill_sb: ::core::option::Option, + pub owner: *mut module, + pub next: *mut file_system_type, + pub fs_supers: hlist_head, + pub s_lock_key: lock_class_key, + pub s_umount_key: lock_class_key, + pub s_vfs_rename_key: lock_class_key, + pub s_writers_key: [lock_class_key; 3usize], + pub i_lock_key: lock_class_key, + pub i_mutex_key: lock_class_key, + pub invalidate_lock_key: lock_class_key, + pub i_mutex_dir_key: lock_class_key, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct filename { + pub iname: [::aya_ebpf::cty::c_char; 168usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct files_struct { + pub count: atomic_t, + pub resize_in_progress: bool_, + pub resize_wait: wait_queue_head_t, + pub fdt: *mut fdtable, + pub fdtab: fdtable, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 32usize]>, + pub file_lock: spinlock_t, + pub next_fd: ::aya_ebpf::cty::c_uint, + pub close_on_exec_init: [::aya_ebpf::cty::c_ulong; 1usize], + pub open_fds_init: [::aya_ebpf::cty::c_ulong; 1usize], + pub full_fds_bits_init: [::aya_ebpf::cty::c_ulong; 1usize], + pub fd_array: [*mut file; 64usize], + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 32usize]>, +} +impl files_struct { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 32usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 32usize]> = Default::default(); + __bindgen_bitfield_unit + } + #[inline] + pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 32usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 32usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct filter_pred { + pub regex: *mut regex, + pub mask: *mut cpumask, + pub ops: *mut ::aya_ebpf::cty::c_ushort, + pub field: *mut ftrace_event_field, + pub val: u64_, + pub val2: u64_, + pub fn_num: filter_pred_fn::Type, + pub offset: ::aya_ebpf::cty::c_int, + pub not: ::aya_ebpf::cty::c_int, + pub op: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct firmware { + pub size: usize, + pub data: *const u8_, + pub priv_: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct regulator_state { + pub uV: ::aya_ebpf::cty::c_int, + pub min_uV: ::aya_ebpf::cty::c_int, + pub max_uV: ::aya_ebpf::cty::c_int, + pub mode: ::aya_ebpf::cty::c_uint, + pub enabled: ::aya_ebpf::cty::c_int, + pub changeable: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct notification_limit { + pub prot: ::aya_ebpf::cty::c_int, + pub err: ::aya_ebpf::cty::c_int, + pub warn: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct regulation_constraints { + pub name: *const ::aya_ebpf::cty::c_char, + pub min_uV: ::aya_ebpf::cty::c_int, + pub max_uV: ::aya_ebpf::cty::c_int, + pub uV_offset: ::aya_ebpf::cty::c_int, + pub min_uA: ::aya_ebpf::cty::c_int, + pub max_uA: ::aya_ebpf::cty::c_int, + pub ilim_uA: ::aya_ebpf::cty::c_int, + pub pw_budget_mW: ::aya_ebpf::cty::c_int, + pub system_load: ::aya_ebpf::cty::c_int, + pub max_spread: *mut u32_, + pub max_uV_step: ::aya_ebpf::cty::c_int, + pub valid_modes_mask: ::aya_ebpf::cty::c_uint, + pub valid_ops_mask: ::aya_ebpf::cty::c_uint, + pub input_uV: ::aya_ebpf::cty::c_int, + pub state_disk: regulator_state, + pub state_mem: regulator_state, + pub state_standby: regulator_state, + pub over_curr_limits: notification_limit, + pub over_voltage_limits: notification_limit, + pub under_voltage_limits: notification_limit, + pub temp_limits: notification_limit, + pub initial_state: suspend_state_t, + pub initial_mode: ::aya_ebpf::cty::c_uint, + pub ramp_delay: ::aya_ebpf::cty::c_uint, + pub settling_time: ::aya_ebpf::cty::c_uint, + pub settling_time_up: ::aya_ebpf::cty::c_uint, + pub settling_time_down: ::aya_ebpf::cty::c_uint, + pub enable_time: ::aya_ebpf::cty::c_uint, + pub uv_less_critical_window_ms: ::aya_ebpf::cty::c_uint, + pub active_discharge: ::aya_ebpf::cty::c_uint, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, + pub __bindgen_padding_0: u16, +} +impl regulation_constraints { + #[inline] + pub fn always_on(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_always_on(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn always_on_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_always_on_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn boot_on(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_boot_on(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn boot_on_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_boot_on_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn apply_uV(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_apply_uV(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn apply_uV_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_apply_uV_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn ramp_disable(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } + } + #[inline] + pub fn set_ramp_disable(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn ramp_disable_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_ramp_disable_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn soft_start(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } + } + #[inline] + pub fn set_soft_start(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn soft_start_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_soft_start_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn pull_down(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } + } + #[inline] + pub fn set_pull_down(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn pull_down_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 5usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_pull_down_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 5usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn system_critical(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } + } + #[inline] + pub fn set_system_critical(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn system_critical_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 6usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_system_critical_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 6usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn over_current_protection(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } + } + #[inline] + pub fn set_over_current_protection(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn over_current_protection_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 7usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_over_current_protection_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 7usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn over_current_detection(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) } + } + #[inline] + pub fn set_over_current_detection(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(8usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn over_current_detection_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 8usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_over_current_detection_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 8usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn over_voltage_detection(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) } + } + #[inline] + pub fn set_over_voltage_detection(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(9usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn over_voltage_detection_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 9usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_over_voltage_detection_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 9usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn under_voltage_detection(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) } + } + #[inline] + pub fn set_under_voltage_detection(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(10usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn under_voltage_detection_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 10usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_under_voltage_detection_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 10usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn over_temp_detection(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) } + } + #[inline] + pub fn set_over_temp_detection(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(11usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn over_temp_detection_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 11usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_over_temp_detection_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 11usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + always_on: ::aya_ebpf::cty::c_uint, + boot_on: ::aya_ebpf::cty::c_uint, + apply_uV: ::aya_ebpf::cty::c_uint, + ramp_disable: ::aya_ebpf::cty::c_uint, + soft_start: ::aya_ebpf::cty::c_uint, + pull_down: ::aya_ebpf::cty::c_uint, + system_critical: ::aya_ebpf::cty::c_uint, + over_current_protection: ::aya_ebpf::cty::c_uint, + over_current_detection: ::aya_ebpf::cty::c_uint, + over_voltage_detection: ::aya_ebpf::cty::c_uint, + under_voltage_detection: ::aya_ebpf::cty::c_uint, + over_temp_detection: ::aya_ebpf::cty::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 2usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let always_on: u32 = unsafe { ::core::mem::transmute(always_on) }; + always_on as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let boot_on: u32 = unsafe { ::core::mem::transmute(boot_on) }; + boot_on as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let apply_uV: u32 = unsafe { ::core::mem::transmute(apply_uV) }; + apply_uV as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let ramp_disable: u32 = unsafe { ::core::mem::transmute(ramp_disable) }; + ramp_disable as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let soft_start: u32 = unsafe { ::core::mem::transmute(soft_start) }; + soft_start as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let pull_down: u32 = unsafe { ::core::mem::transmute(pull_down) }; + pull_down as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let system_critical: u32 = unsafe { ::core::mem::transmute(system_critical) }; + system_critical as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let over_current_protection: u32 = + unsafe { ::core::mem::transmute(over_current_protection) }; + over_current_protection as u64 + }); + __bindgen_bitfield_unit.set(8usize, 1u8, { + let over_current_detection: u32 = + unsafe { ::core::mem::transmute(over_current_detection) }; + over_current_detection as u64 + }); + __bindgen_bitfield_unit.set(9usize, 1u8, { + let over_voltage_detection: u32 = + unsafe { ::core::mem::transmute(over_voltage_detection) }; + over_voltage_detection as u64 + }); + __bindgen_bitfield_unit.set(10usize, 1u8, { + let under_voltage_detection: u32 = + unsafe { ::core::mem::transmute(under_voltage_detection) }; + under_voltage_detection as u64 + }); + __bindgen_bitfield_unit.set(11usize, 1u8, { + let over_temp_detection: u32 = unsafe { ::core::mem::transmute(over_temp_detection) }; + over_temp_detection as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct regulator_init_data { + pub supply_regulator: *const ::aya_ebpf::cty::c_char, + pub constraints: regulation_constraints, + pub num_consumer_supplies: ::aya_ebpf::cty::c_int, + pub consumer_supplies: *mut regulator_consumer_supply, + pub driver_data: *mut ::aya_ebpf::cty::c_void, +} +pub type action_destr = + ::core::option::Option; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flow_action_police { + pub burst: u32_, + pub rate_bytes_ps: u64_, + pub peakrate_bytes_ps: u64_, + pub avrate: u32_, + pub overhead: u16_, + pub burst_pkt: u64_, + pub rate_pkt_ps: u64_, + pub mtu: u32_, + pub exceed: flow_action_police__bindgen_ty_1, + pub notexceed: flow_action_police__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flow_action_police__bindgen_ty_1 { + pub act_id: flow_action_id::Type, + pub extval: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flow_action_police__bindgen_ty_2 { + pub act_id: flow_action_id::Type, + pub extval: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_flowtable { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct flow_action_entry { + pub id: flow_action_id::Type, + pub hw_index: u32_, + pub cookie: ::aya_ebpf::cty::c_ulong, + pub miss_cookie: u64_, + pub hw_stats: flow_action_hw_stats::Type, + pub destructor: action_destr, + pub destructor_priv: *mut ::aya_ebpf::cty::c_void, + pub __bindgen_anon_1: flow_action_entry__bindgen_ty_1, + pub user_cookie: *mut flow_action_cookie, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union flow_action_entry__bindgen_ty_1 { + pub chain_index: u32_, + pub dev: *mut net_device, + pub vlan: flow_action_entry__bindgen_ty_1__bindgen_ty_1, + pub vlan_push_eth: flow_action_entry__bindgen_ty_1__bindgen_ty_2, + pub mangle: flow_action_entry__bindgen_ty_1__bindgen_ty_3, + pub tunnel: *mut ip_tunnel_info, + pub csum_flags: u32_, + pub mark: u32_, + pub ptype: u16_, + pub rx_queue: u16_, + pub priority: u32_, + pub queue: flow_action_entry__bindgen_ty_1__bindgen_ty_4, + pub sample: flow_action_entry__bindgen_ty_1__bindgen_ty_5, + pub police: flow_action_police, + pub ct: flow_action_entry__bindgen_ty_1__bindgen_ty_6, + pub ct_metadata: flow_action_entry__bindgen_ty_1__bindgen_ty_7, + pub mpls_push: flow_action_entry__bindgen_ty_1__bindgen_ty_8, + pub mpls_pop: flow_action_entry__bindgen_ty_1__bindgen_ty_9, + pub mpls_mangle: flow_action_entry__bindgen_ty_1__bindgen_ty_10, + pub gate: flow_action_entry__bindgen_ty_1__bindgen_ty_11, + pub pppoe: flow_action_entry__bindgen_ty_1__bindgen_ty_12, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flow_action_entry__bindgen_ty_1__bindgen_ty_1 { + pub vid: u16_, + pub proto: __be16, + pub prio: u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flow_action_entry__bindgen_ty_1__bindgen_ty_2 { + pub dst: [::aya_ebpf::cty::c_uchar; 6usize], + pub src: [::aya_ebpf::cty::c_uchar; 6usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flow_action_entry__bindgen_ty_1__bindgen_ty_3 { + pub htype: flow_action_mangle_base::Type, + pub offset: u32_, + pub mask: u32_, + pub val: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flow_action_entry__bindgen_ty_1__bindgen_ty_4 { + pub ctx: u32_, + pub index: u32_, + pub vf: u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flow_action_entry__bindgen_ty_1__bindgen_ty_5 { + pub psample_group: *mut psample_group, + pub rate: u32_, + pub trunc_size: u32_, + pub truncate: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flow_action_entry__bindgen_ty_1__bindgen_ty_6 { + pub action: ::aya_ebpf::cty::c_int, + pub zone: u16_, + pub flow_table: *mut nf_flowtable, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flow_action_entry__bindgen_ty_1__bindgen_ty_7 { + pub cookie: ::aya_ebpf::cty::c_ulong, + pub mark: u32_, + pub labels: [u32_; 4usize], + pub orig_dir: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flow_action_entry__bindgen_ty_1__bindgen_ty_8 { + pub label: u32_, + pub proto: __be16, + pub tc: u8_, + pub bos: u8_, + pub ttl: u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flow_action_entry__bindgen_ty_1__bindgen_ty_9 { + pub proto: __be16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flow_action_entry__bindgen_ty_1__bindgen_ty_10 { + pub label: u32_, + pub tc: u8_, + pub bos: u8_, + pub ttl: u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flow_action_entry__bindgen_ty_1__bindgen_ty_11 { + pub prio: s32, + pub basetime: u64_, + pub cycletime: u64_, + pub cycletimeext: u64_, + pub num_entries: u32_, + pub entries: *mut action_gate_entry, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flow_action_entry__bindgen_ty_1__bindgen_ty_12 { + pub sid: u16_, +} +#[repr(C)] +pub struct flow_action { + pub num_entries: ::aya_ebpf::cty::c_uint, + pub entries: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug)] +pub struct flow_action_cookie { + pub cookie_len: u32_, + pub cookie: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flow_block { + pub cb_list: list_head, +} +pub type flow_setup_cb_t = ::core::option::Option< + unsafe extern "C" fn( + arg1: tc_setup_type::Type, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flow_cls_common_offload { + pub chain_index: u32_, + pub protocol: __be16, + pub prio: u32_, + pub skip_sw: bool_, + pub extack: *mut netlink_ext_ack, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flow_stats { + pub pkts: u64_, + pub bytes: u64_, + pub drops: u64_, + pub lastused: u64_, + pub used_hw_stats: flow_action_hw_stats::Type, + pub used_hw_stats_valid: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flow_cls_offload { + pub common: flow_cls_common_offload, + pub command: flow_cls_command::Type, + pub use_act_stats: bool_, + pub cookie: ::aya_ebpf::cty::c_ulong, + pub rule: *mut flow_rule, + pub stats: flow_stats, + pub classid: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flow_match { + pub dissector: *mut flow_dissector, + pub mask: *mut ::aya_ebpf::cty::c_void, + pub key: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +pub struct flow_rule { + pub match_: flow_match, + pub action: flow_action, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flowi_tunnel { + pub tun_id: __be64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flowi_common { + pub flowic_oif: ::aya_ebpf::cty::c_int, + pub flowic_iif: ::aya_ebpf::cty::c_int, + pub flowic_l3mdev: ::aya_ebpf::cty::c_int, + pub flowic_mark: __u32, + pub flowic_dscp: dscp_t, + pub flowic_scope: __u8, + pub flowic_proto: __u8, + pub flowic_flags: __u8, + pub flowic_secid: __u32, + pub flowic_uid: kuid_t, + pub flowic_multipath_hash: __u32, + pub flowic_tun_key: flowi_tunnel, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union flowi_uli { + pub ports: flowi_uli__bindgen_ty_1, + pub icmpt: flowi_uli__bindgen_ty_2, + pub gre_key: __be32, + pub mht: flowi_uli__bindgen_ty_3, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flowi_uli__bindgen_ty_1 { + pub dport: __be16, + pub sport: __be16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flowi_uli__bindgen_ty_2 { + pub type_: __u8, + pub code: __u8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flowi_uli__bindgen_ty_3 { + pub type_: __u8, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct flowi4 { + pub __fl_common: flowi_common, + pub saddr: __be32, + pub daddr: __be32, + pub uli: flowi_uli, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct flowi6 { + pub __fl_common: flowi_common, + pub daddr: in6_addr, + pub saddr: in6_addr, + pub flowlabel: __be32, + pub uli: flowi_uli, + pub mp_hash: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct flowi { + pub u: flowi__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union flowi__bindgen_ty_1 { + pub __fl_common: flowi_common, + pub ip4: flowi4, + pub ip6: flowi6, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fnhe_hash_bucket { + pub chain: *mut fib_nh_exception, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct page { + pub flags: memdesc_flags_t, + pub __bindgen_anon_1: page__bindgen_ty_1, + pub __bindgen_anon_2: page__bindgen_ty_2, + pub _refcount: atomic_t, + pub memcg_data: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union page__bindgen_ty_1 { + pub __bindgen_anon_1: page__bindgen_ty_1__bindgen_ty_1, + pub __bindgen_anon_2: page__bindgen_ty_1__bindgen_ty_2, + pub __bindgen_anon_3: page__bindgen_ty_1__bindgen_ty_3, + pub __bindgen_anon_4: page__bindgen_ty_1__bindgen_ty_4, + pub callback_head: callback_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct page__bindgen_ty_1__bindgen_ty_1 { + pub __bindgen_anon_1: page__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, + pub mapping: *mut address_space, + pub __bindgen_anon_2: page__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2, + pub private: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union page__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { + pub lru: list_head, + pub buddy_list: list_head, + pub pcp_list: list_head, + pub pcp_llist: llist_node, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union page__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2 { + pub __folio_index: ::aya_ebpf::cty::c_ulong, + pub share: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct page__bindgen_ty_1__bindgen_ty_2 { + pub pp_magic: ::aya_ebpf::cty::c_ulong, + pub pp: *mut page_pool, + pub _pp_mapping_pad: ::aya_ebpf::cty::c_ulong, + pub dma_addr: ::aya_ebpf::cty::c_ulong, + pub pp_ref_count: atomic_long_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct page__bindgen_ty_1__bindgen_ty_3 { + pub compound_info: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct page__bindgen_ty_1__bindgen_ty_4 { + pub _unused_pgmap_compound_info: *mut ::aya_ebpf::cty::c_void, + pub zone_device_data: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union page__bindgen_ty_2 { + pub page_type: ::aya_ebpf::cty::c_uint, + pub _mapcount: atomic_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct folio { + pub __bindgen_anon_1: folio__bindgen_ty_1, + pub __bindgen_anon_2: folio__bindgen_ty_2, + pub __bindgen_anon_3: folio__bindgen_ty_3, + pub __bindgen_anon_4: folio__bindgen_ty_4, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union folio__bindgen_ty_1 { + pub __bindgen_anon_1: folio__bindgen_ty_1__bindgen_ty_1, + pub page: page, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct folio__bindgen_ty_1__bindgen_ty_1 { + pub flags: memdesc_flags_t, + pub __bindgen_anon_1: folio__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, + pub mapping: *mut address_space, + pub __bindgen_anon_2: folio__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2, + pub __bindgen_anon_3: folio__bindgen_ty_1__bindgen_ty_1__bindgen_ty_3, + pub _mapcount: atomic_t, + pub _refcount: atomic_t, + pub memcg_data: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union folio__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { + pub lru: list_head, + pub __bindgen_anon_1: folio__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, + pub pgmap: *mut dev_pagemap, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct folio__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { + pub __filler: *mut ::aya_ebpf::cty::c_void, + pub mlock_count: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union folio__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2 { + pub index: ::aya_ebpf::cty::c_ulong, + pub share: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union folio__bindgen_ty_1__bindgen_ty_1__bindgen_ty_3 { + pub private: *mut ::aya_ebpf::cty::c_void, + pub swap: swp_entry_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union folio__bindgen_ty_2 { + pub __bindgen_anon_1: folio__bindgen_ty_2__bindgen_ty_1, + pub __page_1: page, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct folio__bindgen_ty_2__bindgen_ty_1 { + pub _flags_1: ::aya_ebpf::cty::c_ulong, + pub _head_1: ::aya_ebpf::cty::c_ulong, + pub __bindgen_anon_1: folio__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1, + pub _mapcount_1: atomic_t, + pub _refcount_1: atomic_t, + pub _nr_pages: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union folio__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1 { + pub __bindgen_anon_1: folio__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, + pub _usable_1: [::aya_ebpf::cty::c_ulong; 4usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct folio__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { + pub _large_mapcount: atomic_t, + pub _nr_pages_mapped: atomic_t, + pub _entire_mapcount: atomic_t, + pub _pincount: atomic_t, + pub _mm_id_mapcount: [mm_id_mapcount_t; 2usize], + pub __bindgen_anon_1: + folio__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union folio__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { + pub _mm_id: [mm_id_t; 2usize], + pub _mm_ids: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union folio__bindgen_ty_3 { + pub __bindgen_anon_1: folio__bindgen_ty_3__bindgen_ty_1, + pub __page_2: page, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct folio__bindgen_ty_3__bindgen_ty_1 { + pub _flags_2: ::aya_ebpf::cty::c_ulong, + pub _head_2: ::aya_ebpf::cty::c_ulong, + pub _deferred_list: list_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union folio__bindgen_ty_4 { + pub __bindgen_anon_1: folio__bindgen_ty_4__bindgen_ty_1, + pub __page_3: page, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct folio__bindgen_ty_4__bindgen_ty_1 { + pub _flags_3: ::aya_ebpf::cty::c_ulong, + pub _head_3: ::aya_ebpf::cty::c_ulong, + pub _hugetlb_subpool: *mut ::aya_ebpf::cty::c_void, + pub _hugetlb_cgroup: *mut ::aya_ebpf::cty::c_void, + pub _hugetlb_cgroup_rsvd: *mut ::aya_ebpf::cty::c_void, + pub _hugetlb_hwpoison: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct folio_queue { + pub vec: folio_batch, + pub orders: [u8_; 31usize], + pub next: *mut folio_queue, + pub prev: *mut folio_queue, + pub marks: ::aya_ebpf::cty::c_ulong, + pub marks2: ::aya_ebpf::cty::c_ulong, + pub rreq_id: ::aya_ebpf::cty::c_uint, + pub debug_id: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fown_struct { + pub file: *mut file, + pub lock: rwlock_t, + pub pid: *mut pid, + pub pid_type: pid_type::Type, + pub uid: kuid_t, + pub euid: kuid_t, + pub signum: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rhlist_head { + pub rhead: rhash_head, + pub next: *mut rhlist_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fprop_global { + pub events: percpu_counter, + pub period: ::aya_ebpf::cty::c_uint, + pub sequence: seqcount_t, +} +pub type rht_hashfn_t = ::core::option::Option< + unsafe extern "C" fn(arg1: *const ::aya_ebpf::cty::c_void, arg2: u32_, arg3: u32_) -> u32_, +>; +pub type rht_obj_hashfn_t = ::core::option::Option< + unsafe extern "C" fn(arg1: *const ::aya_ebpf::cty::c_void, arg2: u32_, arg3: u32_) -> u32_, +>; +pub type rht_obj_cmpfn_t = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut rhashtable_compare_arg, + arg2: *const ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rhashtable_params { + pub nelem_hint: u16_, + pub key_len: u16_, + pub key_offset: u16_, + pub head_offset: u16_, + pub max_size: ::aya_ebpf::cty::c_uint, + pub min_size: u16_, + pub insecure_elasticity: bool_, + pub automatic_shrinking: bool_, + pub hashfn: rht_hashfn_t, + pub obj_hashfn: rht_obj_hashfn_t, + pub obj_cmpfn: rht_obj_cmpfn_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rhashtable { + pub tbl: *mut bucket_table, + pub key_len: ::aya_ebpf::cty::c_uint, + pub max_elems: ::aya_ebpf::cty::c_uint, + pub p: rhashtable_params, + pub rhlist: bool_, + pub run_work: work_struct, + pub run_irq_work: irq_work, + pub mutex: mutex, + pub lock: spinlock_t, + pub nelems: atomic_t, + pub alloc_tag: *mut alloc_tag, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fqdir { + pub high_thresh: ::aya_ebpf::cty::c_long, + pub low_thresh: ::aya_ebpf::cty::c_long, + pub timeout: ::aya_ebpf::cty::c_int, + pub max_dist: ::aya_ebpf::cty::c_int, + pub f: *mut inet_frags, + pub net: *mut net, + pub dead: bool_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>, + pub rhashtable: rhashtable, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 24usize]>, + pub mem: atomic_long_t, + pub destroy_work: work_struct, + pub free_list: llist_node, + pub _bitfield_align_3: [u8; 0], + pub _bitfield_3: __BindgenBitfieldUnit<[u8; 16usize]>, +} +impl fqdir { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); + __bindgen_bitfield_unit + } + #[inline] + pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + __bindgen_bitfield_unit + } + #[inline] + pub fn new_bitfield_3() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct frag_v4_compare_key { + pub saddr: __be32, + pub daddr: __be32, + pub user: u32_, + pub vif: u32_, + pub id: __be16, + pub protocol: u16_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct frag_v6_compare_key { + pub saddr: in6_addr, + pub daddr: in6_addr, + pub user: u32_, + pub id: __be32, + pub iif: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct inet_frag_queue { + pub node: rhash_head, + pub key: inet_frag_queue__bindgen_ty_1, + pub timer: timer_list, + pub lock: spinlock_t, + pub refcnt: refcount_t, + pub rb_fragments: rb_root, + pub fragments_tail: *mut sk_buff, + pub last_run_head: *mut sk_buff, + pub stamp: ktime_t, + pub len: ::aya_ebpf::cty::c_int, + pub meat: ::aya_ebpf::cty::c_int, + pub tstamp_type: u8_, + pub flags: __u8, + pub max_size: u16_, + pub fqdir: *mut fqdir, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union inet_frag_queue__bindgen_ty_1 { + pub v4: frag_v4_compare_key, + pub v6: frag_v6_compare_key, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct free_area { + pub free_list: [list_head; 6usize], + pub nr_free: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct p_log { + pub prefix: *const ::aya_ebpf::cty::c_char, + pub log: *mut fc_log, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fs_context { + pub ops: *const fs_context_operations, + pub uapi_mutex: mutex, + pub fs_type: *mut file_system_type, + pub fs_private: *mut ::aya_ebpf::cty::c_void, + pub sget_key: *mut ::aya_ebpf::cty::c_void, + pub root: *mut dentry, + pub user_ns: *mut user_namespace, + pub net_ns: *mut net, + pub cred: *const cred, + pub log: p_log, + pub source: *const ::aya_ebpf::cty::c_char, + pub security: *mut ::aya_ebpf::cty::c_void, + pub s_fs_info: *mut ::aya_ebpf::cty::c_void, + pub sb_flags: ::aya_ebpf::cty::c_uint, + pub sb_flags_mask: ::aya_ebpf::cty::c_uint, + pub s_iflags: ::aya_ebpf::cty::c_uint, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>, + pub __bindgen_padding_0: u8, +} +impl fs_context { + #[inline] + pub fn purpose(&self) -> fs_context_purpose::Type { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) } + } + #[inline] + pub fn set_purpose(&mut self, val: fs_context_purpose::Type) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 8u8, val as u64) + } + } + #[inline] + pub unsafe fn purpose_raw(this: *const Self) -> fs_context_purpose::Type { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 8u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_purpose_raw(this: *mut Self, val: fs_context_purpose::Type) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 8u8, + val as u64, + ) + } + } + #[inline] + pub fn phase(&self) -> fs_context_phase::Type { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 8u8) as u32) } + } + #[inline] + pub fn set_phase(&mut self, val: fs_context_phase::Type) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(8usize, 8u8, val as u64) + } + } + #[inline] + pub unsafe fn phase_raw(this: *const Self) -> fs_context_phase::Type { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 8usize, + 8u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_phase_raw(this: *mut Self, val: fs_context_phase::Type) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 8usize, + 8u8, + val as u64, + ) + } + } + #[inline] + pub fn need_free(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u8) } + } + #[inline] + pub fn set_need_free(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(16usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn need_free_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 16usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_need_free_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 16usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn global(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u8) } + } + #[inline] + pub fn set_global(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(17usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn global_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 17usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_global_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 17usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn oldapi(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u8) } + } + #[inline] + pub fn set_oldapi(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(18usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn oldapi_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 18usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_oldapi_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 18usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn exclusive(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(19usize, 1u8) as u8) } + } + #[inline] + pub fn set_exclusive(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(19usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn exclusive_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 19usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_exclusive_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 19usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + purpose: fs_context_purpose::Type, + phase: fs_context_phase::Type, + need_free: bool_, + global: bool_, + oldapi: bool_, + exclusive: bool_, + ) -> __BindgenBitfieldUnit<[u8; 3usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 8u8, { + let purpose: u32 = unsafe { ::core::mem::transmute(purpose) }; + purpose as u64 + }); + __bindgen_bitfield_unit.set(8usize, 8u8, { + let phase: u32 = unsafe { ::core::mem::transmute(phase) }; + phase as u64 + }); + __bindgen_bitfield_unit.set(16usize, 1u8, { + let need_free: u8 = unsafe { ::core::mem::transmute(need_free) }; + need_free as u64 + }); + __bindgen_bitfield_unit.set(17usize, 1u8, { + let global: u8 = unsafe { ::core::mem::transmute(global) }; + global as u64 + }); + __bindgen_bitfield_unit.set(18usize, 1u8, { + let oldapi: u8 = unsafe { ::core::mem::transmute(oldapi) }; + oldapi as u64 + }); + __bindgen_bitfield_unit.set(19usize, 1u8, { + let exclusive: u8 = unsafe { ::core::mem::transmute(exclusive) }; + exclusive as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fs_context_operations { + pub free: ::core::option::Option, + pub dup: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut fs_context, + arg2: *mut fs_context, + ) -> ::aya_ebpf::cty::c_int, + >, + pub parse_param: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut fs_context, + arg2: *mut fs_parameter, + ) -> ::aya_ebpf::cty::c_int, + >, + pub parse_monolithic: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut fs_context, + arg2: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_tree: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut fs_context) -> ::aya_ebpf::cty::c_int, + >, + pub reconfigure: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut fs_context) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fs_parameter { + pub key: *const ::aya_ebpf::cty::c_char, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_anon_1: fs_parameter__bindgen_ty_1, + pub size: usize, + pub dirfd: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union fs_parameter__bindgen_ty_1 { + pub string: *mut ::aya_ebpf::cty::c_char, + pub blob: *mut ::aya_ebpf::cty::c_void, + pub name: *mut filename, + pub file: *mut file, +} +impl fs_parameter { + #[inline] + pub fn type_(&self) -> fs_value_type::Type { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) } + } + #[inline] + pub fn set_type(&mut self, val: fs_value_type::Type) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 8u8, val as u64) + } + } + #[inline] + pub unsafe fn type__raw(this: *const Self) -> fs_value_type::Type { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 8u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_type_raw(this: *mut Self, val: fs_value_type::Type) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 8u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(type_: fs_value_type::Type) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 8u8, { + let type_: u32 = unsafe { ::core::mem::transmute(type_) }; + type_ as u64 + }); + __bindgen_bitfield_unit + } +} +pub type fs_param_type = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut p_log, + arg2: *const fs_parameter_spec, + arg3: *mut fs_parameter, + arg4: *mut fs_parse_result, + ) -> ::aya_ebpf::cty::c_int, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fs_parameter_spec { + pub name: *const ::aya_ebpf::cty::c_char, + pub type_: fs_param_type, + pub opt: u8_, + pub flags: ::aya_ebpf::cty::c_ushort, + pub data: *const ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fs_parse_result { + pub negated: bool_, + pub __bindgen_anon_1: fs_parse_result__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union fs_parse_result__bindgen_ty_1 { + pub boolean: bool_, + pub int_32: ::aya_ebpf::cty::c_int, + pub uint_32: ::aya_ebpf::cty::c_uint, + pub uint_64: u64_, + pub uid: kuid_t, + pub gid: kgid_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fs_struct { + pub users: ::aya_ebpf::cty::c_int, + pub seq: seqlock_t, + pub umask: ::aya_ebpf::cty::c_int, + pub in_exec: ::aya_ebpf::cty::c_int, + pub root: path, + pub pwd: path, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_policy_v1 { + pub version: __u8, + pub contents_encryption_mode: __u8, + pub filenames_encryption_mode: __u8, + pub flags: __u8, + pub master_key_descriptor: [__u8; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_policy_v2 { + pub version: __u8, + pub contents_encryption_mode: __u8, + pub filenames_encryption_mode: __u8, + pub flags: __u8, + pub log2_data_unit_size: __u8, + pub __reserved: [__u8; 3usize], + pub master_key_identifier: [__u8; 16usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union fscrypt_policy { + pub version: u8_, + pub v1: fscrypt_policy_v1, + pub v2: fscrypt_policy_v2, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fscrypt_keyring { + pub lock: spinlock_t, + pub key_hashtable: [hlist_head; 128usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_operations { + pub inode_info_offs: isize, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub legacy_key_prefix: *const ::aya_ebpf::cty::c_char, + pub get_context: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut inode, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: usize, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_context: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut inode, + arg2: *const ::aya_ebpf::cty::c_void, + arg3: usize, + arg4: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_dummy_policy: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut super_block) -> *const fscrypt_policy, + >, + pub empty_dir: ::core::option::Option bool_>, + pub has_stable_inodes: + ::core::option::Option bool_>, + pub get_devices: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut super_block, + arg2: *mut ::aya_ebpf::cty::c_uint, + ) -> *mut *mut block_device, + >, +} +impl fscrypt_operations { + #[inline] + pub fn needs_bounce_pages(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_needs_bounce_pages(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn needs_bounce_pages_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_needs_bounce_pages_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn has_32bit_inodes(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_32bit_inodes(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn has_32bit_inodes_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_has_32bit_inodes_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn supports_subblock_data_units(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_supports_subblock_data_units(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn supports_subblock_data_units_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_supports_subblock_data_units_raw( + this: *mut Self, + val: ::aya_ebpf::cty::c_uint, + ) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + needs_bounce_pages: ::aya_ebpf::cty::c_uint, + has_32bit_inodes: ::aya_ebpf::cty::c_uint, + supports_subblock_data_units: ::aya_ebpf::cty::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let needs_bounce_pages: u32 = unsafe { ::core::mem::transmute(needs_bounce_pages) }; + needs_bounce_pages as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let has_32bit_inodes: u32 = unsafe { ::core::mem::transmute(has_32bit_inodes) }; + has_32bit_inodes as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let supports_subblock_data_units: u32 = + unsafe { ::core::mem::transmute(supports_subblock_data_units) }; + supports_subblock_data_units as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fserror_event { + pub work: work_struct, + pub sb: *mut super_block, + pub inode: *mut inode, + pub pos: loff_t, + pub len: u64_, + pub type_: fserror_type::Type, + pub error: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct inotify_group_private_data { + pub idr_lock: spinlock_t, + pub idr: idr, + pub ucounts: *mut ucounts, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fsnotify_group { + pub ops: *const fsnotify_ops, + pub refcnt: refcount_t, + pub notification_lock: spinlock_t, + pub notification_list: list_head, + pub notification_waitq: wait_queue_head_t, + pub q_len: ::aya_ebpf::cty::c_uint, + pub max_events: ::aya_ebpf::cty::c_uint, + pub priority: fsnotify_group_prio::Type, + pub shutdown: bool_, + pub flags: ::aya_ebpf::cty::c_int, + pub owner_flags: ::aya_ebpf::cty::c_uint, + pub mark_mutex: mutex, + pub user_waits: atomic_t, + pub marks_list: list_head, + pub fsn_fa: *mut fasync_struct, + pub overflow_event: *mut fsnotify_event, + pub memcg: *mut mem_cgroup, + pub user_ns: *mut user_namespace, + pub __bindgen_anon_1: fsnotify_group__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union fsnotify_group__bindgen_ty_1 { + pub private: *mut ::aya_ebpf::cty::c_void, + pub inotify_data: inotify_group_private_data, + pub fanotify_data: fanotify_group_private_data, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fsnotify_mark_connector { + pub lock: spinlock_t, + pub type_: ::aya_ebpf::cty::c_uchar, + pub prio: ::aya_ebpf::cty::c_uchar, + pub flags: ::aya_ebpf::cty::c_ushort, + pub __bindgen_anon_1: fsnotify_mark_connector__bindgen_ty_1, + pub list: hlist_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union fsnotify_mark_connector__bindgen_ty_1 { + pub obj: *mut ::aya_ebpf::cty::c_void, + pub destroy_next: *mut fsnotify_mark_connector, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fsnotify_iter_info { + pub marks: [*mut fsnotify_mark; 6usize], + pub current_group: *mut fsnotify_group, + pub report_mask: ::aya_ebpf::cty::c_uint, + pub srcu_idx: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fsnotify_ops { + pub handle_event: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut fsnotify_group, + arg2: u32_, + arg3: *const ::aya_ebpf::cty::c_void, + arg4: ::aya_ebpf::cty::c_int, + arg5: *mut inode, + arg6: *const qstr, + arg7: u32_, + arg8: *mut fsnotify_iter_info, + ) -> ::aya_ebpf::cty::c_int, + >, + pub handle_inode_event: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut fsnotify_mark, + arg2: u32_, + arg3: *mut inode, + arg4: *mut inode, + arg5: *const qstr, + arg6: u32_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub free_group_priv: ::core::option::Option, + pub freeing_mark: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut fsnotify_mark, arg2: *mut fsnotify_group), + >, + pub free_event: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut fsnotify_group, arg2: *mut fsnotify_event), + >, + pub free_mark: ::core::option::Option, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fsnotify_sb_info { + pub sb_marks: *mut fsnotify_mark_connector, + pub inode_conn_list: list_head, + pub list_lock: spinlock_t, + pub watched_objects: [atomic_long_t; 3usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fsverity_operations { + pub begin_enable_verity: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub end_enable_verity: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file, + arg2: *const ::aya_ebpf::cty::c_void, + arg3: usize, + arg4: u64_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_verity_descriptor: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut inode, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: usize, + ) -> ::aya_ebpf::cty::c_int, + >, + pub read_merkle_tree_page: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut inode, arg2: ::aya_ebpf::cty::c_ulong) -> *mut page, + >, + pub readahead_merkle_tree: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut inode, + arg2: ::aya_ebpf::cty::c_ulong, + arg3: ::aya_ebpf::cty::c_ulong, + ), + >, + pub write_merkle_tree_block: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file, + arg2: *const ::aya_ebpf::cty::c_void, + arg3: u64_, + arg4: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct trace_seq { + pub seq: seq_buf, + pub readpos: usize, + pub full: ::aya_ebpf::cty::c_int, + pub buffer: [::aya_ebpf::cty::c_char; 8156usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct trace_iterator { + pub tr: *mut trace_array, + pub trace: *mut tracer, + pub array_buffer: *mut array_buffer, + pub private: *mut ::aya_ebpf::cty::c_void, + pub cpu_file: ::aya_ebpf::cty::c_int, + pub mutex: mutex, + pub buffer_iter: *mut *mut ring_buffer_iter, + pub iter_flags: ::aya_ebpf::cty::c_ulong, + pub temp: *mut ::aya_ebpf::cty::c_void, + pub temp_size: ::aya_ebpf::cty::c_uint, + pub fmt: *mut ::aya_ebpf::cty::c_char, + pub fmt_size: ::aya_ebpf::cty::c_uint, + pub wait_index: atomic_t, + pub tmp_seq: trace_seq, + pub started: cpumask_var_t, + pub closed: bool_, + pub snapshot: bool_, + pub seq: trace_seq, + pub ent: *mut trace_entry, + pub lost_events: ::aya_ebpf::cty::c_ulong, + pub leftover: ::aya_ebpf::cty::c_int, + pub ent_size: ::aya_ebpf::cty::c_int, + pub cpu: ::aya_ebpf::cty::c_int, + pub ts: u64_, + pub pos: loff_t, + pub idx: ::aya_ebpf::cty::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ftrace_event_field { + pub link: list_head, + pub name: *const ::aya_ebpf::cty::c_char, + pub type_: *const ::aya_ebpf::cty::c_char, + pub filter_type: ::aya_ebpf::cty::c_int, + pub offset: ::aya_ebpf::cty::c_int, + pub size: ::aya_ebpf::cty::c_int, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub len: ::aya_ebpf::cty::c_int, +} +impl ftrace_event_field { + #[inline] + pub fn is_signed(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_is_signed(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn is_signed_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_is_signed_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn needs_test(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_needs_test(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn needs_test_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_needs_test_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + is_signed: ::aya_ebpf::cty::c_uint, + needs_test: ::aya_ebpf::cty::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let is_signed: u32 = unsafe { ::core::mem::transmute(is_signed) }; + is_signed as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let needs_test: u32 = unsafe { ::core::mem::transmute(needs_test) }; + needs_test as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ftrace_hash { + pub size_bits: ::aya_ebpf::cty::c_ulong, + pub buckets: *mut hlist_head, + pub count: ::aya_ebpf::cty::c_ulong, + pub flags: ::aya_ebpf::cty::c_ulong, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ftrace_regs {} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct func_instance { + pub hl_node: hlist_node, + pub callsite: u32_, + pub depth: u32_, + pub subprog: u32_, + pub subprog_start: u32_, + pub insn_cnt: u32_, + pub frames: [*mut per_frame_masks; 8usize], + pub must_write_initialized: bool_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct futex_hash_bucket { + pub waiters: atomic_t, + pub lock: spinlock_t, + pub chain: plist_head, + pub priv_: *mut futex_private_hash, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 32usize]>, +} +impl futex_hash_bucket { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 32usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 32usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union futex_key { + pub shared: futex_key__bindgen_ty_1, + pub private: futex_key__bindgen_ty_2, + pub both: futex_key__bindgen_ty_3, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct futex_key__bindgen_ty_1 { + pub i_seq: u64_, + pub pgoff: ::aya_ebpf::cty::c_ulong, + pub offset: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct futex_key__bindgen_ty_2 { + pub __bindgen_anon_1: futex_key__bindgen_ty_2__bindgen_ty_1, + pub address: ::aya_ebpf::cty::c_ulong, + pub offset: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union futex_key__bindgen_ty_2__bindgen_ty_1 { + pub mm: *mut mm_struct, + pub __tmp: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct futex_key__bindgen_ty_3 { + pub ptr: u64_, + pub word: ::aya_ebpf::cty::c_ulong, + pub offset: ::aya_ebpf::cty::c_uint, + pub node: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct futex_pi_state { + pub list: list_head, + pub pi_mutex: rt_mutex_base, + pub owner: *mut task_struct, + pub refcount: refcount_t, + pub key: futex_key, +} +#[repr(C)] +pub struct futex_private_hash { + pub state: ::aya_ebpf::cty::c_int, + pub hash_mask: ::aya_ebpf::cty::c_uint, + pub rcu: callback_head, + pub mm: *mut ::aya_ebpf::cty::c_void, + pub custom: bool_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, + pub queues: __IncompleteArrayField, +} +impl futex_private_hash { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fwnode_endpoint { + pub port: ::aya_ebpf::cty::c_uint, + pub id: ::aya_ebpf::cty::c_uint, + pub local_fwnode: *const fwnode_handle, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fwnode_operations { + pub get: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut fwnode_handle) -> *mut fwnode_handle, + >, + pub put: ::core::option::Option, + pub device_is_available: + ::core::option::Option bool_>, + pub device_get_match_data: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const fwnode_handle, + arg2: *const device, + ) -> *const ::aya_ebpf::cty::c_void, + >, + pub device_dma_supported: + ::core::option::Option bool_>, + pub device_get_dma_attr: ::core::option::Option< + unsafe extern "C" fn(arg1: *const fwnode_handle) -> dev_dma_attr::Type, + >, + pub property_present: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const fwnode_handle, + arg2: *const ::aya_ebpf::cty::c_char, + ) -> bool_, + >, + pub property_read_bool: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const fwnode_handle, + arg2: *const ::aya_ebpf::cty::c_char, + ) -> bool_, + >, + pub property_read_int_array: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const fwnode_handle, + arg2: *const ::aya_ebpf::cty::c_char, + arg3: ::aya_ebpf::cty::c_uint, + arg4: *mut ::aya_ebpf::cty::c_void, + arg5: usize, + ) -> ::aya_ebpf::cty::c_int, + >, + pub property_read_string_array: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const fwnode_handle, + arg2: *const ::aya_ebpf::cty::c_char, + arg3: *mut *const ::aya_ebpf::cty::c_char, + arg4: usize, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_name: ::core::option::Option< + unsafe extern "C" fn(arg1: *const fwnode_handle) -> *const ::aya_ebpf::cty::c_char, + >, + pub get_name_prefix: ::core::option::Option< + unsafe extern "C" fn(arg1: *const fwnode_handle) -> *const ::aya_ebpf::cty::c_char, + >, + pub get_parent: ::core::option::Option< + unsafe extern "C" fn(arg1: *const fwnode_handle) -> *mut fwnode_handle, + >, + pub get_next_child_node: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const fwnode_handle, + arg2: *mut fwnode_handle, + ) -> *mut fwnode_handle, + >, + pub get_named_child_node: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const fwnode_handle, + arg2: *const ::aya_ebpf::cty::c_char, + ) -> *mut fwnode_handle, + >, + pub get_reference_args: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const fwnode_handle, + arg2: *const ::aya_ebpf::cty::c_char, + arg3: *const ::aya_ebpf::cty::c_char, + arg4: ::aya_ebpf::cty::c_uint, + arg5: ::aya_ebpf::cty::c_uint, + arg6: *mut fwnode_reference_args, + ) -> ::aya_ebpf::cty::c_int, + >, + pub graph_get_next_endpoint: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const fwnode_handle, + arg2: *mut fwnode_handle, + ) -> *mut fwnode_handle, + >, + pub graph_get_remote_endpoint: ::core::option::Option< + unsafe extern "C" fn(arg1: *const fwnode_handle) -> *mut fwnode_handle, + >, + pub graph_get_port_parent: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut fwnode_handle) -> *mut fwnode_handle, + >, + pub graph_parse_endpoint: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const fwnode_handle, + arg2: *mut fwnode_endpoint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub iomap: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut fwnode_handle, + arg2: ::aya_ebpf::cty::c_int, + ) -> *mut ::aya_ebpf::cty::c_void, + >, + pub irq_get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const fwnode_handle, + arg2: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub add_links: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut fwnode_handle) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fwnode_reference_args { + pub fwnode: *mut fwnode_handle, + pub nargs: ::aya_ebpf::cty::c_uint, + pub args: [u64_; 16usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct gendisk { + pub major: ::aya_ebpf::cty::c_int, + pub first_minor: ::aya_ebpf::cty::c_int, + pub minors: ::aya_ebpf::cty::c_int, + pub disk_name: [::aya_ebpf::cty::c_char; 32usize], + pub events: ::aya_ebpf::cty::c_ushort, + pub event_flags: ::aya_ebpf::cty::c_ushort, + pub part_tbl: xarray, + pub part0: *mut block_device, + pub fops: *const block_device_operations, + pub queue: *mut request_queue, + pub private_data: *mut ::aya_ebpf::cty::c_void, + pub bio_split: bio_set, + pub flags: ::aya_ebpf::cty::c_int, + pub state: ::aya_ebpf::cty::c_ulong, + pub open_mutex: mutex, + pub open_partitions: ::aya_ebpf::cty::c_uint, + pub bdi: *mut backing_dev_info, + pub queue_kobj: kobject, + pub slave_dir: *mut kobject, + pub slave_bdevs: list_head, + pub random: *mut timer_rand_state, + pub ev: *mut disk_events, + pub nr_zones: ::aya_ebpf::cty::c_uint, + pub zone_capacity: ::aya_ebpf::cty::c_uint, + pub last_zone_capacity: ::aya_ebpf::cty::c_uint, + pub zones_cond: *mut u8_, + pub zone_wplugs_hash_bits: ::aya_ebpf::cty::c_uint, + pub nr_zone_wplugs: atomic_t, + pub zone_wplugs_hash_lock: spinlock_t, + pub zone_wplugs_pool: *mut mempool, + pub zone_wplugs_hash: *mut hlist_head, + pub zone_wplugs_wq: *mut workqueue_struct, + pub zone_wplugs_list_lock: spinlock_t, + pub zone_wplugs_list: list_head, + pub zone_wplugs_worker: *mut task_struct, + pub zone_wplugs_worker_bio_done: completion, + pub cdi: *mut cdrom_device_info, + pub node_id: ::aya_ebpf::cty::c_int, + pub bb: *mut badblocks, + pub lockdep_map: lockdep_map, + pub diskseq: u64_, + pub open_mode: blk_mode_t, + pub ia_ranges: *mut blk_independent_access_ranges, + pub rqos_state_mutex: mutex, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pm_domain_data { + pub list_node: list_head, + pub dev: *mut device, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tc_stats { + pub bytes: __u64, + pub packets: __u32, + pub drops: __u32, + pub overlimits: __u32, + pub bps: __u32, + pub pps: __u32, + pub qlen: __u32, + pub backlog: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct gnet_dump { + pub lock: *mut spinlock_t, + pub skb: *mut sk_buff, + pub tail: *mut nlattr, + pub compat_tc_stats: ::aya_ebpf::cty::c_int, + pub compat_xstats: ::aya_ebpf::cty::c_int, + pub padattr: ::aya_ebpf::cty::c_int, + pub xstats: *mut ::aya_ebpf::cty::c_void, + pub xstats_len: ::aya_ebpf::cty::c_int, + pub tc_stats: tc_stats, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct gpio_desc { + pub gdev: *mut gpio_device, + pub flags: ::aya_ebpf::cty::c_ulong, + pub label: *mut gpio_desc_label, + pub name: *const ::aya_ebpf::cty::c_char, + pub hog: *mut device_node, + pub debounce_period_us: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug)] +pub struct gpio_desc_label { + pub rh: callback_head, + pub str_: __IncompleteArrayField<::aya_ebpf::cty::c_char>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct gpio_device { + pub dev: device, + pub chrdev: cdev, + pub id: ::aya_ebpf::cty::c_int, + pub owner: *mut module, + pub chip: *mut gpio_chip, + pub descs: *mut gpio_desc, + pub valid_mask: *mut ::aya_ebpf::cty::c_ulong, + pub desc_srcu: srcu_struct, + pub base: ::aya_ebpf::cty::c_uint, + pub ngpio: u16_, + pub can_sleep: bool_, + pub label: *const ::aya_ebpf::cty::c_char, + pub data: *mut ::aya_ebpf::cty::c_void, + pub list: list_head, + pub line_state_notifier: raw_notifier_head, + pub line_state_lock: rwlock_t, + pub line_state_wq: *mut workqueue_struct, + pub device_notifier: blocking_notifier_head, + pub srcu: srcu_struct, + pub pin_ranges: list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct irq_fwspec { + pub fwnode: *mut fwnode_handle, + pub param_count: ::aya_ebpf::cty::c_int, + pub param: [u32_; 16usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ioapic_alloc_info { + pub pin: ::aya_ebpf::cty::c_int, + pub node: ::aya_ebpf::cty::c_int, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: [u8; 3usize], +} +impl ioapic_alloc_info { + #[inline] + pub fn is_level(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_is_level(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn is_level_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_is_level_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn active_low(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_active_low(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn active_low_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_active_low_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn valid(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_valid(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn valid_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_valid_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + is_level: u32_, + active_low: u32_, + valid: u32_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let is_level: u32 = unsafe { ::core::mem::transmute(is_level) }; + is_level as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let active_low: u32 = unsafe { ::core::mem::transmute(active_low) }; + active_low as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let valid: u32 = unsafe { ::core::mem::transmute(valid) }; + valid as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct uv_alloc_info { + pub limit: ::aya_ebpf::cty::c_int, + pub blade: ::aya_ebpf::cty::c_int, + pub offset: ::aya_ebpf::cty::c_ulong, + pub name: *mut ::aya_ebpf::cty::c_char, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct irq_alloc_info { + pub type_: irq_alloc_type::Type, + pub flags: u32_, + pub devid: u32_, + pub hwirq: irq_hw_number_t, + pub mask: *const cpumask, + pub desc: *mut msi_desc, + pub data: *mut ::aya_ebpf::cty::c_void, + pub __bindgen_anon_1: irq_alloc_info__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union irq_alloc_info__bindgen_ty_1 { + pub ioapic: ioapic_alloc_info, + pub uv: uv_alloc_info, +} +pub type msi_alloc_info_t = irq_alloc_info; +#[repr(C)] +#[derive(Copy, Clone)] +pub union gpio_irq_fwspec { + pub fwspec: irq_fwspec, + pub msiinfo: msi_alloc_info_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct irq_affinity_notify { + pub irq: ::aya_ebpf::cty::c_uint, + pub kref: kref, + pub work: work_struct, + pub notify: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut irq_affinity_notify, arg2: *const cpumask_t), + >, + pub release: ::core::option::Option, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct napi_struct { + pub state: ::aya_ebpf::cty::c_ulong, + pub poll_list: list_head, + pub weight: ::aya_ebpf::cty::c_int, + pub defer_hard_irqs_count: u32_, + pub poll: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut napi_struct, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub poll_owner: ::aya_ebpf::cty::c_int, + pub list_owner: ::aya_ebpf::cty::c_int, + pub dev: *mut net_device, + pub skb: *mut sk_buff, + pub gro: gro_node, + pub timer: hrtimer, + pub thread: *mut task_struct, + pub gro_flush_timeout: ::aya_ebpf::cty::c_ulong, + pub irq_suspend_timeout: ::aya_ebpf::cty::c_ulong, + pub defer_hard_irqs: u32_, + pub napi_id: u32_, + pub dev_list: list_head, + pub napi_hash_node: hlist_node, + pub irq: ::aya_ebpf::cty::c_int, + pub notify: irq_affinity_notify, + pub napi_rmap_idx: ::aya_ebpf::cty::c_int, + pub index: ::aya_ebpf::cty::c_int, + pub config: *mut napi_config, +} +#[repr(C)] +#[derive(Debug)] +pub struct group_info { + pub usage: refcount_t, + pub ngroups: ::aya_ebpf::cty::c_int, + pub gid: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rpcsec_gss_oid { + pub len: ::aya_ebpf::cty::c_uint, + pub data: [u8_; 32usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct gss_api_mech { + pub gm_list: list_head, + pub gm_owner: *mut module, + pub gm_oid: rpcsec_gss_oid, + pub gm_name: *mut ::aya_ebpf::cty::c_char, + pub gm_ops: *const gss_api_ops, + pub gm_pf_num: ::aya_ebpf::cty::c_int, + pub gm_pfs: *mut pf_desc, + pub gm_upcall_enctypes: *const ::aya_ebpf::cty::c_char, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct gss_api_ops { + pub gss_import_sec_context: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const ::aya_ebpf::cty::c_void, + arg2: usize, + arg3: *mut gss_ctx, + arg4: *mut time64_t, + arg5: gfp_t, + ) -> ::aya_ebpf::cty::c_int, + >, + pub gss_get_mic: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut gss_ctx, arg2: *mut xdr_buf, arg3: *mut xdr_netobj) -> u32_, + >, + pub gss_verify_mic: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut gss_ctx, arg2: *mut xdr_buf, arg3: *mut xdr_netobj) -> u32_, + >, + pub gss_wrap: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut gss_ctx, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut xdr_buf, + arg4: *mut *mut page, + ) -> u32_, + >, + pub gss_unwrap: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut gss_ctx, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + arg4: *mut xdr_buf, + ) -> u32_, + >, + pub gss_delete_sec_context: + ::core::option::Option, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct gss_ctx { + pub mech_type: *mut gss_api_mech, + pub internal_ctx_id: *mut ::aya_ebpf::cty::c_void, + pub slack: ::aya_ebpf::cty::c_uint, + pub align: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct handle_to_path_ctx { + pub root: path, + pub flags: handle_to_path_flags::Type, + pub fh_flags: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct hd_geometry { + pub heads: ::aya_ebpf::cty::c_uchar, + pub sectors: ::aya_ebpf::cty::c_uchar, + pub cylinders: ::aya_ebpf::cty::c_ushort, + pub start: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct header_ops { + pub create: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sk_buff, + arg2: *mut net_device, + arg3: ::aya_ebpf::cty::c_ushort, + arg4: *const ::aya_ebpf::cty::c_void, + arg5: *const ::aya_ebpf::cty::c_void, + arg6: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub parse: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const sk_buff, + arg2: *const net_device, + arg3: *mut ::aya_ebpf::cty::c_uchar, + ) -> ::aya_ebpf::cty::c_int, + >, + pub cache: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const neighbour, + arg2: *mut hh_cache, + arg3: __be16, + ) -> ::aya_ebpf::cty::c_int, + >, + pub cache_update: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut hh_cache, + arg2: *const net_device, + arg3: *const ::aya_ebpf::cty::c_uchar, + ), + >, + pub validate: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const ::aya_ebpf::cty::c_char, + arg2: ::aya_ebpf::cty::c_uint, + ) -> bool_, + >, + pub parse_protocol: + ::core::option::Option __be16>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct hh_cache { + pub hh_len: ::aya_ebpf::cty::c_uint, + pub hh_lock: seqlock_t, + pub hh_data: [::aya_ebpf::cty::c_ulong; 16usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct semaphore { + pub lock: raw_spinlock_t, + pub count: ::aya_ebpf::cty::c_uint, + pub first_waiter: *mut semaphore_waiter, + pub last_holder: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct hlist_bl_head { + pub first: *mut hlist_bl_node, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct hprobe { + pub state: hprobe_state::Type, + pub srcu_idx: ::aya_ebpf::cty::c_int, + pub uprobe: *mut uprobe, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct seqcount_raw_spinlock { + pub seqcount: seqcount_t, +} +pub type seqcount_raw_spinlock_t = seqcount_raw_spinlock; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rb_root_linked { + pub rb_root: rb_root, + pub rb_leftmost: *mut rb_node_linked, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timerqueue_linked_head { + pub rb_root: rb_root_linked, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct hrtimer_clock_base { + pub cpu_base: *mut hrtimer_cpu_base, + pub index: ::aya_ebpf::cty::c_uint, + pub clockid: clockid_t, + pub seq: seqcount_raw_spinlock_t, + pub expires_next: ktime_t, + pub running: *mut hrtimer, + pub active: timerqueue_linked_head, + pub offset: ktime_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct hrtimer_cpu_base { + pub lock: raw_spinlock_t, + pub cpu: ::aya_ebpf::cty::c_uint, + pub active_bases: ::aya_ebpf::cty::c_uint, + pub clock_was_set_seq: ::aya_ebpf::cty::c_uint, + pub hres_active: bool_, + pub deferred_rearm: bool_, + pub deferred_needs_update: bool_, + pub hang_detected: bool_, + pub softirq_activated: bool_, + pub online: bool_, + pub nr_events: ::aya_ebpf::cty::c_uint, + pub nr_retries: ::aya_ebpf::cty::c_ushort, + pub nr_hangs: ::aya_ebpf::cty::c_ushort, + pub max_hang_time: ::aya_ebpf::cty::c_uint, + pub expires_next: ktime_t, + pub next_timer: *mut hrtimer, + pub softirq_expires_next: ktime_t, + pub softirq_next_timer: *mut hrtimer, + pub deferred_expires_next: ktime_t, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 48usize]>, + pub clock_base: [hrtimer_clock_base; 8usize], + pub csd: call_single_data_t, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 32usize]>, +} +impl hrtimer_cpu_base { + #[inline] + pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 32usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 32usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +pub struct tty_buffer { + pub __bindgen_anon_1: tty_buffer__bindgen_ty_1, + pub used: ::aya_ebpf::cty::c_uint, + pub size: ::aya_ebpf::cty::c_uint, + pub commit: ::aya_ebpf::cty::c_uint, + pub lookahead: ::aya_ebpf::cty::c_uint, + pub read: ::aya_ebpf::cty::c_uint, + pub flags: bool_, + pub __bindgen_padding_0: [u8; 3usize], + pub data: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union tty_buffer__bindgen_ty_1 { + pub next: *mut tty_buffer, + pub free: llist_node, +} +#[repr(C)] +pub struct tty_bufhead { + pub head: *mut tty_buffer, + pub flip_wq: *mut workqueue_struct, + pub work: work_struct, + pub lock: mutex, + pub priority: atomic_t, + pub sentinel: tty_buffer, + pub free: llist_head, + pub mem_used: atomic_t, + pub mem_limit: ::aya_ebpf::cty::c_int, + pub tail: *mut tty_buffer, +} +#[repr(C)] +pub struct tty_port { + pub buf: tty_bufhead, + pub tty: *mut tty_struct, + pub itty: *mut tty_struct, + pub ops: *const tty_port_operations, + pub client_ops: *const tty_port_client_operations, + pub lock: spinlock_t, + pub blocked_open: ::aya_ebpf::cty::c_int, + pub count: ::aya_ebpf::cty::c_int, + pub open_wait: wait_queue_head_t, + pub delta_msr_wait: wait_queue_head_t, + pub flags: ::aya_ebpf::cty::c_ulong, + pub iflags: ::aya_ebpf::cty::c_ulong, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub mutex: mutex, + pub buf_mutex: mutex, + pub xmit_buf: *mut u8_, + pub xmit_fifo: tty_port__bindgen_ty_1, + pub close_delay: ::aya_ebpf::cty::c_uint, + pub closing_wait: ::aya_ebpf::cty::c_uint, + pub drain_delay: ::aya_ebpf::cty::c_int, + pub kref: kref, + pub client_data: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +pub struct tty_port__bindgen_ty_1 { + pub __bindgen_anon_1: tty_port__bindgen_ty_1__bindgen_ty_1, + pub buf: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union tty_port__bindgen_ty_1__bindgen_ty_1 { + pub kfifo: __kfifo, + pub type_: *mut u8_, + pub const_type: *const u8_, + pub rectype: *mut [::aya_ebpf::cty::c_char; 0usize], + pub ptr: *mut u8_, + pub ptr_const: *const u8_, +} +impl tty_port { + #[inline] + pub fn console(&self) -> ::aya_ebpf::cty::c_uchar { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_console(&mut self, val: ::aya_ebpf::cty::c_uchar) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn console_raw(this: *const Self) -> ::aya_ebpf::cty::c_uchar { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_console_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uchar) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + console: ::aya_ebpf::cty::c_uchar, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let console: u8 = unsafe { ::core::mem::transmute(console) }; + console as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct winsize { + pub ws_row: ::aya_ebpf::cty::c_ushort, + pub ws_col: ::aya_ebpf::cty::c_ushort, + pub ws_xpixel: ::aya_ebpf::cty::c_ushort, + pub ws_ypixel: ::aya_ebpf::cty::c_ushort, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct hw_perf_event_extra { + pub config: u64_, + pub reg: ::aya_ebpf::cty::c_uint, + pub alloc: ::aya_ebpf::cty::c_int, + pub idx: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct hw_perf_event { + pub __bindgen_anon_1: hw_perf_event__bindgen_ty_1, + pub target: *mut task_struct, + pub addr_filters: *mut ::aya_ebpf::cty::c_void, + pub addr_filters_gen: ::aya_ebpf::cty::c_ulong, + pub state: ::aya_ebpf::cty::c_int, + pub prev_count: local64_t, + pub sample_period: u64_, + pub __bindgen_anon_2: hw_perf_event__bindgen_ty_2, + pub interrupts_seq: u64_, + pub interrupts: u64_, + pub freq_time_stamp: u64_, + pub freq_count_stamp: u64_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union hw_perf_event__bindgen_ty_1 { + pub __bindgen_anon_1: hw_perf_event__bindgen_ty_1__bindgen_ty_1, + pub __bindgen_anon_2: hw_perf_event__bindgen_ty_1__bindgen_ty_2, + pub __bindgen_anon_3: hw_perf_event__bindgen_ty_1__bindgen_ty_3, + pub __bindgen_anon_4: hw_perf_event__bindgen_ty_1__bindgen_ty_4, + pub __bindgen_anon_5: hw_perf_event__bindgen_ty_1__bindgen_ty_5, + pub __bindgen_anon_6: hw_perf_event__bindgen_ty_1__bindgen_ty_6, + pub __bindgen_anon_7: hw_perf_event__bindgen_ty_1__bindgen_ty_7, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct hw_perf_event__bindgen_ty_1__bindgen_ty_1 { + pub config: u64_, + pub config1: u64_, + pub last_tag: u64_, + pub dyn_constraint: u64_, + pub config_base: ::aya_ebpf::cty::c_ulong, + pub event_base: ::aya_ebpf::cty::c_ulong, + pub event_base_rdpmc: ::aya_ebpf::cty::c_int, + pub idx: ::aya_ebpf::cty::c_int, + pub last_cpu: ::aya_ebpf::cty::c_int, + pub flags: ::aya_ebpf::cty::c_int, + pub extra_reg: hw_perf_event_extra, + pub branch_reg: hw_perf_event_extra, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct hw_perf_event__bindgen_ty_1__bindgen_ty_2 { + pub aux_config: u64_, + pub aux_paused: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct hw_perf_event__bindgen_ty_1__bindgen_ty_3 { + pub hrtimer: hrtimer, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct hw_perf_event__bindgen_ty_1__bindgen_ty_4 { + pub tp_list: list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct hw_perf_event__bindgen_ty_1__bindgen_ty_5 { + pub pwr_acc: u64_, + pub ptsc: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct hw_perf_event__bindgen_ty_1__bindgen_ty_6 { + pub info: arch_hw_breakpoint, + pub bp_list: rhlist_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct hw_perf_event__bindgen_ty_1__bindgen_ty_7 { + pub iommu_bank: u8_, + pub iommu_cntr: u8_, + pub padding: u16_, + pub conf: u64_, + pub conf1: u64_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union hw_perf_event__bindgen_ty_2 { + pub __bindgen_anon_1: hw_perf_event__bindgen_ty_2__bindgen_ty_1, + pub __bindgen_anon_2: hw_perf_event__bindgen_ty_2__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct hw_perf_event__bindgen_ty_2__bindgen_ty_1 { + pub last_period: u64_, + pub period_left: local64_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct hw_perf_event__bindgen_ty_2__bindgen_ty_2 { + pub saved_metric: u64_, + pub saved_slots: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct hw_port_info { + pub lower_dev: *mut net_device, + pub port_id: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct hwspinlock { + pub bank: *mut hwspinlock_device, + pub lock: spinlock_t, + pub priv_: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +pub struct hwspinlock_device { + pub dev: *mut device, + pub ops: *const hwspinlock_ops, + pub base_id: ::aya_ebpf::cty::c_int, + pub num_locks: ::aya_ebpf::cty::c_int, + pub lock: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct hwspinlock_ops { + pub trylock: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut hwspinlock) -> ::aya_ebpf::cty::c_int, + >, + pub unlock: ::core::option::Option, + pub bust: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut hwspinlock, + arg2: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub relax: ::core::option::Option, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct hwtstamp_provider_desc { + pub index: ::aya_ebpf::cty::c_int, + pub qualifier: hwtstamp_provider_qualifier::Type, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct hwtstamp_provider { + pub callback_head: callback_head, + pub source: hwtstamp_source::Type, + pub phydev: *mut phy_device, + pub desc: hwtstamp_provider_desc, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct iattr { + pub ia_valid: ::aya_ebpf::cty::c_uint, + pub ia_mode: umode_t, + pub __bindgen_anon_1: iattr__bindgen_ty_1, + pub __bindgen_anon_2: iattr__bindgen_ty_2, + pub ia_size: loff_t, + pub ia_atime: timespec64, + pub ia_mtime: timespec64, + pub ia_ctime: timespec64, + pub ia_file: *mut file, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union iattr__bindgen_ty_1 { + pub ia_uid: kuid_t, + pub ia_vfsuid: vfsuid_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union iattr__bindgen_ty_2 { + pub ia_gid: kgid_t, + pub ia_vfsgid: vfsgid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_ah { + pub device: *mut ib_device, + pub pd: *mut ib_pd, + pub uobject: *mut ib_uobject, + pub sgid_attr: *const ib_gid_attr, + pub type_: rdma_ah_attr_type::Type, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_ah_attr { + pub dlid: u16_, + pub src_path_bits: u8_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ib_core_device { + pub dev: device, + pub rdma_net: possible_net_t, + pub ports_kobj: *mut kobject, + pub port_list: list_head, + pub owner: *mut ib_device, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_counters { + pub device: *mut ib_device, + pub uobject: *mut ib_uobject, + pub usecnt: atomic_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_counters_read_attr { + pub counters_buff: *mut u64_, + pub ncounters: u32_, + pub flags: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_ucq_object { + _unused: [u8; 0], +} +pub type ib_comp_handler = ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_cq, arg2: *mut ::aya_ebpf::cty::c_void), +>; +pub type irq_poll_fn = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut irq_poll, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct irq_poll { + pub list: list_head, + pub state: ::aya_ebpf::cty::c_ulong, + pub weight: ::aya_ebpf::cty::c_int, + pub poll: irq_poll_fn, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_umem { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rdma_restrack_entry { + pub valid: bool_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub kref: kref, + pub comp: completion, + pub task: *mut task_struct, + pub kern_name: *const ::aya_ebpf::cty::c_char, + pub type_: rdma_restrack_type::Type, + pub user: bool_, + pub id: u32_, +} +impl rdma_restrack_entry { + #[inline] + pub fn no_track(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_no_track(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn no_track_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_no_track_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(no_track: u8_) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let no_track: u8 = unsafe { ::core::mem::transmute(no_track) }; + no_track as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ib_cq { + pub device: *mut ib_device, + pub uobject: *mut ib_ucq_object, + pub comp_handler: ib_comp_handler, + pub event_handler: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_event, arg2: *mut ::aya_ebpf::cty::c_void), + >, + pub cq_context: *mut ::aya_ebpf::cty::c_void, + pub cqe: ::aya_ebpf::cty::c_int, + pub cqe_used: ::aya_ebpf::cty::c_uint, + pub usecnt: atomic_t, + pub poll_ctx: ib_poll_context::Type, + pub wc: *mut ib_wc, + pub pool_entry: list_head, + pub __bindgen_anon_1: ib_cq__bindgen_ty_1, + pub comp_wq: *mut workqueue_struct, + pub dim: *mut dim, + pub timestamp: ktime_t, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub comp_vector: ::aya_ebpf::cty::c_uint, + pub umem: *mut ib_umem, + pub res: rdma_restrack_entry, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ib_cq__bindgen_ty_1 { + pub iop: irq_poll, + pub work: work_struct, +} +impl ib_cq { + #[inline] + pub fn interrupt(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_interrupt(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn interrupt_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_interrupt_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn shared(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_shared(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn shared_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_shared_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(interrupt: u8_, shared: u8_) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let interrupt: u8 = unsafe { ::core::mem::transmute(interrupt) }; + interrupt as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let shared: u8 = unsafe { ::core::mem::transmute(shared) }; + shared as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_cq_caps { + pub max_cq_moderation_count: u16_, + pub max_cq_moderation_period: u16_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_cq_init_attr { + pub cqe: ::aya_ebpf::cty::c_uint, + pub comp_vector: u32_, + pub flags: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_cqe { + pub done: ::core::option::Option, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_mad { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct uverbs_attr_bundle { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rdma_cm_id { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iw_cm_id { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iw_cm_conn_param { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_uverbs_file { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_device_ops { + pub owner: *mut module, + pub driver_id: rdma_driver_id::Type, + pub uverbs_abi_ver: u32_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub device_group: *const attribute_group, + pub port_groups: *mut *const attribute_group, + pub post_send: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_qp, + arg2: *const ib_send_wr, + arg3: *mut *const ib_send_wr, + ) -> ::aya_ebpf::cty::c_int, + >, + pub post_recv: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_qp, + arg2: *const ib_recv_wr, + arg3: *mut *const ib_recv_wr, + ) -> ::aya_ebpf::cty::c_int, + >, + pub drain_rq: ::core::option::Option, + pub drain_sq: ::core::option::Option, + pub poll_cq: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_cq, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut ib_wc, + ) -> ::aya_ebpf::cty::c_int, + >, + pub peek_cq: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_cq, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub req_notify_cq: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_cq, + arg2: ib_cq_notify_flags::Type, + ) -> ::aya_ebpf::cty::c_int, + >, + pub post_srq_recv: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_srq, + arg2: *const ib_recv_wr, + arg3: *mut *const ib_recv_wr, + ) -> ::aya_ebpf::cty::c_int, + >, + pub process_mad: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: u32_, + arg4: *const ib_wc, + arg5: *const ib_grh, + arg6: *const ib_mad, + arg7: *mut ib_mad, + arg8: *mut usize, + arg9: *mut u16_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub query_device: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_device, + arg2: *mut ib_device_attr, + arg3: *mut ib_udata, + ) -> ::aya_ebpf::cty::c_int, + >, + pub modify_device: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut ib_device_modify, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_dev_fw_str: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_device, arg2: *mut ::aya_ebpf::cty::c_char), + >, + pub query_port: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_device, + arg2: u32_, + arg3: *mut ib_port_attr, + ) -> ::aya_ebpf::cty::c_int, + >, + pub query_port_speed: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_device, + arg2: u32_, + arg3: *mut u64_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub modify_port: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_device, + arg2: u32_, + arg3: ::aya_ebpf::cty::c_int, + arg4: *mut ib_port_modify, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_port_immutable: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_device, + arg2: u32_, + arg3: *mut ib_port_immutable, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_link_layer: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_device, arg2: u32_) -> rdma_link_layer::Type, + >, + pub get_netdev: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_device, arg2: u32_) -> *mut net_device, + >, + pub alloc_rdma_netdev: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_device, + arg2: u32_, + arg3: rdma_netdev_t::Type, + arg4: *const ::aya_ebpf::cty::c_char, + arg5: ::aya_ebpf::cty::c_uchar, + arg6: ::core::option::Option, + ) -> *mut net_device, + >, + pub rdma_netdev_get_params: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_device, + arg2: u32_, + arg3: rdma_netdev_t::Type, + arg4: *mut rdma_netdev_alloc_params, + ) -> ::aya_ebpf::cty::c_int, + >, + pub query_gid: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_device, + arg2: u32_, + arg3: ::aya_ebpf::cty::c_int, + arg4: *mut ib_gid, + ) -> ::aya_ebpf::cty::c_int, + >, + pub add_gid: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const ib_gid_attr, + arg2: *mut *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub del_gid: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const ib_gid_attr, + arg2: *mut *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub query_pkey: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_device, + arg2: u32_, + arg3: u16_, + arg4: *mut u16_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub alloc_ucontext: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_ucontext, arg2: *mut ib_udata) -> ::aya_ebpf::cty::c_int, + >, + pub dealloc_ucontext: ::core::option::Option, + pub mmap: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_ucontext, + arg2: *mut vm_area_struct, + ) -> ::aya_ebpf::cty::c_int, + >, + pub mmap_free: ::core::option::Option, + pub mmap_get_pfns: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut rdma_user_mmap_entry, + arg2: *mut phys_vec, + arg3: *mut *mut p2pdma_provider, + ) -> ::aya_ebpf::cty::c_int, + >, + pub pgoff_to_mmap_entry: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_ucontext, arg2: off_t) -> *mut rdma_user_mmap_entry, + >, + pub disassociate_ucontext: ::core::option::Option, + pub alloc_pd: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_pd, arg2: *mut ib_udata) -> ::aya_ebpf::cty::c_int, + >, + pub dealloc_pd: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_pd, arg2: *mut ib_udata) -> ::aya_ebpf::cty::c_int, + >, + pub create_ah: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_ah, + arg2: *mut rdma_ah_init_attr, + arg3: *mut ib_udata, + ) -> ::aya_ebpf::cty::c_int, + >, + pub create_user_ah: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_ah, + arg2: *mut rdma_ah_init_attr, + arg3: *mut ib_udata, + ) -> ::aya_ebpf::cty::c_int, + >, + pub modify_ah: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_ah, arg2: *mut rdma_ah_attr) -> ::aya_ebpf::cty::c_int, + >, + pub query_ah: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_ah, arg2: *mut rdma_ah_attr) -> ::aya_ebpf::cty::c_int, + >, + pub destroy_ah: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_ah, arg2: u32_) -> ::aya_ebpf::cty::c_int, + >, + pub create_srq: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_srq, + arg2: *mut ib_srq_init_attr, + arg3: *mut ib_udata, + ) -> ::aya_ebpf::cty::c_int, + >, + pub modify_srq: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_srq, + arg2: *mut ib_srq_attr, + arg3: ib_srq_attr_mask::Type, + arg4: *mut ib_udata, + ) -> ::aya_ebpf::cty::c_int, + >, + pub query_srq: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_srq, arg2: *mut ib_srq_attr) -> ::aya_ebpf::cty::c_int, + >, + pub destroy_srq: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_srq, arg2: *mut ib_udata) -> ::aya_ebpf::cty::c_int, + >, + pub create_qp: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_qp, + arg2: *mut ib_qp_init_attr, + arg3: *mut ib_udata, + ) -> ::aya_ebpf::cty::c_int, + >, + pub modify_qp: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_qp, + arg2: *mut ib_qp_attr, + arg3: ::aya_ebpf::cty::c_int, + arg4: *mut ib_udata, + ) -> ::aya_ebpf::cty::c_int, + >, + pub query_qp: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_qp, + arg2: *mut ib_qp_attr, + arg3: ::aya_ebpf::cty::c_int, + arg4: *mut ib_qp_init_attr, + ) -> ::aya_ebpf::cty::c_int, + >, + pub destroy_qp: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_qp, arg2: *mut ib_udata) -> ::aya_ebpf::cty::c_int, + >, + pub create_cq: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_cq, + arg2: *const ib_cq_init_attr, + arg3: *mut uverbs_attr_bundle, + ) -> ::aya_ebpf::cty::c_int, + >, + pub create_user_cq: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_cq, + arg2: *const ib_cq_init_attr, + arg3: *mut uverbs_attr_bundle, + ) -> ::aya_ebpf::cty::c_int, + >, + pub modify_cq: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_cq, arg2: u16_, arg3: u16_) -> ::aya_ebpf::cty::c_int, + >, + pub destroy_cq: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_cq, arg2: *mut ib_udata) -> ::aya_ebpf::cty::c_int, + >, + pub resize_user_cq: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_cq, + arg2: ::aya_ebpf::cty::c_uint, + arg3: *mut ib_udata, + ) -> ::aya_ebpf::cty::c_int, + >, + pub pre_destroy_cq: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub post_destroy_cq: ::core::option::Option, + pub get_dma_mr: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_pd, arg2: ::aya_ebpf::cty::c_int) -> *mut ib_mr, + >, + pub reg_user_mr: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_pd, + arg2: u64_, + arg3: u64_, + arg4: u64_, + arg5: ::aya_ebpf::cty::c_int, + arg6: *mut ib_dmah, + arg7: *mut ib_udata, + ) -> *mut ib_mr, + >, + pub reg_user_mr_dmabuf: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_pd, + arg2: u64_, + arg3: u64_, + arg4: u64_, + arg5: ::aya_ebpf::cty::c_int, + arg6: ::aya_ebpf::cty::c_int, + arg7: *mut ib_dmah, + arg8: *mut uverbs_attr_bundle, + ) -> *mut ib_mr, + >, + pub rereg_user_mr: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_mr, + arg2: ::aya_ebpf::cty::c_int, + arg3: u64_, + arg4: u64_, + arg5: u64_, + arg6: ::aya_ebpf::cty::c_int, + arg7: *mut ib_pd, + arg8: *mut ib_udata, + ) -> *mut ib_mr, + >, + pub dereg_mr: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_mr, arg2: *mut ib_udata) -> ::aya_ebpf::cty::c_int, + >, + pub alloc_mr: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_pd, arg2: ib_mr_type::Type, arg3: u32_) -> *mut ib_mr, + >, + pub alloc_mr_integrity: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_pd, arg2: u32_, arg3: u32_) -> *mut ib_mr, + >, + pub advise_mr: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_pd, + arg2: ib_uverbs_advise_mr_advice::Type, + arg3: u32_, + arg4: *mut ib_sge, + arg5: u32_, + arg6: *mut uverbs_attr_bundle, + ) -> ::aya_ebpf::cty::c_int, + >, + pub map_mr_sg: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_mr, + arg2: *mut scatterlist, + arg3: ::aya_ebpf::cty::c_int, + arg4: *mut ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub check_mr_status: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_mr, + arg2: u32_, + arg3: *mut ib_mr_status, + ) -> ::aya_ebpf::cty::c_int, + >, + pub alloc_mw: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_mw, arg2: *mut ib_udata) -> ::aya_ebpf::cty::c_int, + >, + pub dealloc_mw: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub attach_mcast: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_qp, + arg2: *mut ib_gid, + arg3: u16_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub detach_mcast: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_qp, + arg2: *mut ib_gid, + arg3: u16_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub alloc_xrcd: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_xrcd, arg2: *mut ib_udata) -> ::aya_ebpf::cty::c_int, + >, + pub dealloc_xrcd: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_xrcd, arg2: *mut ib_udata) -> ::aya_ebpf::cty::c_int, + >, + pub create_flow: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_qp, + arg2: *mut ib_flow_attr, + arg3: *mut ib_udata, + ) -> *mut ib_flow, + >, + pub destroy_flow: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub destroy_flow_action: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_flow_action) -> ::aya_ebpf::cty::c_int, + >, + pub set_vf_link_state: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: u32_, + arg4: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_vf_config: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: u32_, + arg4: *mut ifla_vf_info, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_vf_stats: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: u32_, + arg4: *mut ifla_vf_stats, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_vf_guid: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: u32_, + arg4: *mut ifla_vf_guid, + arg5: *mut ifla_vf_guid, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_vf_guid: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: u32_, + arg4: u64_, + arg5: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub create_wq: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_pd, + arg2: *mut ib_wq_init_attr, + arg3: *mut ib_udata, + ) -> *mut ib_wq, + >, + pub destroy_wq: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_wq, arg2: *mut ib_udata) -> ::aya_ebpf::cty::c_int, + >, + pub modify_wq: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_wq, + arg2: *mut ib_wq_attr, + arg3: u32_, + arg4: *mut ib_udata, + ) -> ::aya_ebpf::cty::c_int, + >, + pub create_rwq_ind_table: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_rwq_ind_table, + arg2: *mut ib_rwq_ind_table_init_attr, + arg3: *mut ib_udata, + ) -> ::aya_ebpf::cty::c_int, + >, + pub destroy_rwq_ind_table: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_rwq_ind_table) -> ::aya_ebpf::cty::c_int, + >, + pub alloc_dm: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_device, + arg2: *mut ib_ucontext, + arg3: *mut ib_dm_alloc_attr, + arg4: *mut uverbs_attr_bundle, + ) -> *mut ib_dm, + >, + pub dealloc_dm: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_dm, + arg2: *mut uverbs_attr_bundle, + ) -> ::aya_ebpf::cty::c_int, + >, + pub alloc_dmah: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_dmah, + arg2: *mut uverbs_attr_bundle, + ) -> ::aya_ebpf::cty::c_int, + >, + pub dealloc_dmah: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_dmah, + arg2: *mut uverbs_attr_bundle, + ) -> ::aya_ebpf::cty::c_int, + >, + pub reg_dm_mr: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_pd, + arg2: *mut ib_dm, + arg3: *mut ib_dm_mr_attr, + arg4: *mut uverbs_attr_bundle, + ) -> *mut ib_mr, + >, + pub create_counters: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_counters, + arg2: *mut uverbs_attr_bundle, + ) -> ::aya_ebpf::cty::c_int, + >, + pub destroy_counters: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_counters) -> ::aya_ebpf::cty::c_int, + >, + pub read_counters: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_counters, + arg2: *mut ib_counters_read_attr, + arg3: *mut uverbs_attr_bundle, + ) -> ::aya_ebpf::cty::c_int, + >, + pub map_mr_sg_pi: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_mr, + arg2: *mut scatterlist, + arg3: ::aya_ebpf::cty::c_int, + arg4: *mut ::aya_ebpf::cty::c_uint, + arg5: *mut scatterlist, + arg6: ::aya_ebpf::cty::c_int, + arg7: *mut ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub alloc_hw_device_stats: + ::core::option::Option *mut rdma_hw_stats>, + pub alloc_hw_port_stats: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_device, arg2: u32_) -> *mut rdma_hw_stats, + >, + pub get_hw_stats: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_device, + arg2: *mut rdma_hw_stats, + arg3: u32_, + arg4: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub modify_hw_stat: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_device, + arg2: u32_, + arg3: ::aya_ebpf::cty::c_uint, + arg4: bool_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub fill_res_mr_entry: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sk_buff, arg2: *mut ib_mr) -> ::aya_ebpf::cty::c_int, + >, + pub fill_res_mr_entry_raw: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sk_buff, arg2: *mut ib_mr) -> ::aya_ebpf::cty::c_int, + >, + pub fill_res_cq_entry: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sk_buff, arg2: *mut ib_cq) -> ::aya_ebpf::cty::c_int, + >, + pub fill_res_cq_entry_raw: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sk_buff, arg2: *mut ib_cq) -> ::aya_ebpf::cty::c_int, + >, + pub fill_res_qp_entry: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sk_buff, arg2: *mut ib_qp) -> ::aya_ebpf::cty::c_int, + >, + pub fill_res_qp_entry_raw: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sk_buff, arg2: *mut ib_qp) -> ::aya_ebpf::cty::c_int, + >, + pub fill_res_cm_id_entry: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sk_buff, arg2: *mut rdma_cm_id) -> ::aya_ebpf::cty::c_int, + >, + pub fill_res_srq_entry: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sk_buff, arg2: *mut ib_srq) -> ::aya_ebpf::cty::c_int, + >, + pub fill_res_srq_entry_raw: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sk_buff, arg2: *mut ib_srq) -> ::aya_ebpf::cty::c_int, + >, + pub enable_driver: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_device) -> ::aya_ebpf::cty::c_int, + >, + pub dealloc_driver: ::core::option::Option, + pub iw_add_ref: ::core::option::Option, + pub iw_rem_ref: ::core::option::Option, + pub iw_get_qp: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_device, arg2: ::aya_ebpf::cty::c_int) -> *mut ib_qp, + >, + pub iw_connect: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut iw_cm_id, + arg2: *mut iw_cm_conn_param, + ) -> ::aya_ebpf::cty::c_int, + >, + pub iw_accept: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut iw_cm_id, + arg2: *mut iw_cm_conn_param, + ) -> ::aya_ebpf::cty::c_int, + >, + pub iw_reject: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut iw_cm_id, + arg2: *const ::aya_ebpf::cty::c_void, + arg3: u8_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub iw_create_listen: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut iw_cm_id, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub iw_destroy_listen: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub counter_bind_qp: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut rdma_counter, + arg2: *mut ib_qp, + arg3: u32_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub counter_unbind_qp: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_qp, arg2: u32_) -> ::aya_ebpf::cty::c_int, + >, + pub counter_dealloc: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rdma_counter) -> ::aya_ebpf::cty::c_int, + >, + pub counter_alloc_stats: + ::core::option::Option *mut rdma_hw_stats>, + pub counter_update_stats: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rdma_counter) -> ::aya_ebpf::cty::c_int, + >, + pub counter_init: ::core::option::Option, + pub fill_stat_mr_entry: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sk_buff, arg2: *mut ib_mr) -> ::aya_ebpf::cty::c_int, + >, + pub query_ucontext: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_ucontext, + arg2: *mut uverbs_attr_bundle, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_numa_node: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_device) -> ::aya_ebpf::cty::c_int, + >, + pub add_sub_dev: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_device, + arg2: rdma_nl_dev_type::Type, + arg3: *const ::aya_ebpf::cty::c_char, + ) -> *mut ib_device, + >, + pub del_sub_dev: ::core::option::Option, + pub ufile_hw_cleanup: ::core::option::Option, + pub report_port_event: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_device, + arg2: *mut net_device, + arg3: ::aya_ebpf::cty::c_ulong, + ), + >, + pub size_ib_ah: usize, + pub size_ib_counters: usize, + pub size_ib_cq: usize, + pub size_ib_dmah: usize, + pub size_ib_mw: usize, + pub size_ib_pd: usize, + pub size_ib_qp: usize, + pub size_ib_rwq_ind_table: usize, + pub size_ib_srq: usize, + pub size_ib_ucontext: usize, + pub size_ib_xrcd: usize, + pub size_rdma_counter: usize, +} +impl ib_device_ops { + #[inline] + pub fn uverbs_no_driver_id_binding(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_uverbs_no_driver_id_binding(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn uverbs_no_driver_id_binding_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_uverbs_no_driver_id_binding_raw( + this: *mut Self, + val: ::aya_ebpf::cty::c_uint, + ) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn uverbs_robust_udata(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_uverbs_robust_udata(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn uverbs_robust_udata_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_uverbs_robust_udata_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + uverbs_no_driver_id_binding: ::aya_ebpf::cty::c_uint, + uverbs_robust_udata: ::aya_ebpf::cty::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let uverbs_no_driver_id_binding: u32 = + unsafe { ::core::mem::transmute(uverbs_no_driver_id_binding) }; + uverbs_no_driver_id_binding as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let uverbs_robust_udata: u32 = unsafe { ::core::mem::transmute(uverbs_robust_udata) }; + uverbs_robust_udata as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_odp_caps { + pub general_caps: u64, + pub per_transport_caps: ib_odp_caps__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_odp_caps__bindgen_ty_1 { + pub rc_odp_caps: u32, + pub uc_odp_caps: u32, + pub ud_odp_caps: u32, + pub xrc_odp_caps: u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_rss_caps { + pub supported_qpts: u32_, + pub max_rwq_indirection_tables: u32_, + pub max_rwq_indirection_table_size: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_tm_caps { + pub max_rndv_hdr_size: u32_, + pub max_num_tags: u32_, + pub flags: u32_, + pub max_ops: u32_, + pub max_sge: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_device_attr { + pub fw_ver: u64_, + pub sys_image_guid: __be64, + pub max_mr_size: u64_, + pub page_size_cap: u64_, + pub vendor_id: u32_, + pub vendor_part_id: u32_, + pub hw_ver: u32_, + pub max_qp: ::aya_ebpf::cty::c_int, + pub max_qp_wr: ::aya_ebpf::cty::c_int, + pub device_cap_flags: u64_, + pub kernel_cap_flags: u64_, + pub max_send_sge: ::aya_ebpf::cty::c_int, + pub max_recv_sge: ::aya_ebpf::cty::c_int, + pub max_sge_rd: ::aya_ebpf::cty::c_int, + pub max_cq: ::aya_ebpf::cty::c_int, + pub max_cqe: ::aya_ebpf::cty::c_int, + pub max_mr: ::aya_ebpf::cty::c_int, + pub max_pd: ::aya_ebpf::cty::c_int, + pub max_qp_rd_atom: ::aya_ebpf::cty::c_int, + pub max_ee_rd_atom: ::aya_ebpf::cty::c_int, + pub max_res_rd_atom: ::aya_ebpf::cty::c_int, + pub max_qp_init_rd_atom: ::aya_ebpf::cty::c_int, + pub max_ee_init_rd_atom: ::aya_ebpf::cty::c_int, + pub atomic_cap: ib_atomic_cap::Type, + pub masked_atomic_cap: ib_atomic_cap::Type, + pub max_ee: ::aya_ebpf::cty::c_int, + pub max_rdd: ::aya_ebpf::cty::c_int, + pub max_mw: ::aya_ebpf::cty::c_int, + pub max_raw_ipv6_qp: ::aya_ebpf::cty::c_int, + pub max_raw_ethy_qp: ::aya_ebpf::cty::c_int, + pub max_mcast_grp: ::aya_ebpf::cty::c_int, + pub max_mcast_qp_attach: ::aya_ebpf::cty::c_int, + pub max_total_mcast_qp_attach: ::aya_ebpf::cty::c_int, + pub max_ah: ::aya_ebpf::cty::c_int, + pub max_srq: ::aya_ebpf::cty::c_int, + pub max_srq_wr: ::aya_ebpf::cty::c_int, + pub max_srq_sge: ::aya_ebpf::cty::c_int, + pub max_fast_reg_page_list_len: ::aya_ebpf::cty::c_uint, + pub max_pi_fast_reg_page_list_len: ::aya_ebpf::cty::c_uint, + pub max_pkeys: u16_, + pub local_ca_ack_delay: u8_, + pub sig_prot_cap: ::aya_ebpf::cty::c_int, + pub sig_guard_cap: ::aya_ebpf::cty::c_int, + pub odp_caps: ib_odp_caps, + pub timestamp_mask: u64, + pub hca_core_clock: u64, + pub rss_caps: ib_rss_caps, + pub max_wq_type_rq: u32_, + pub raw_packet_caps: u32_, + pub tm_caps: ib_tm_caps, + pub cq_caps: ib_cq_caps, + pub max_dm_size: u64_, + pub max_sgl_rd: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct hw_stats_device_data { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rdmacg_device { + pub dev_node: list_head, + pub rpools: list_head, + pub name: *mut ::aya_ebpf::cty::c_char, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rdma_restrack_root { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct uapi_definition { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_frmr_pools { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ib_device { + pub dma_device: *mut device, + pub ops: ib_device_ops, + pub name: [::aya_ebpf::cty::c_char; 64usize], + pub callback_head: callback_head, + pub event_handler_list: list_head, + pub event_handler_rwsem: rw_semaphore, + pub qp_open_list_lock: spinlock_t, + pub client_data_rwsem: rw_semaphore, + pub client_data: xarray, + pub unregistration_lock: mutex, + pub cache_lock: rwlock_t, + pub port_data: *mut ib_port_data, + pub num_comp_vectors: ::aya_ebpf::cty::c_int, + pub __bindgen_anon_1: ib_device__bindgen_ty_1, + pub groups: [*const attribute_group; 4usize], + pub hw_stats_attr_index: u8_, + pub uverbs_cmd_mask: u64_, + pub node_desc: [::aya_ebpf::cty::c_char; 64usize], + pub node_guid: __be64, + pub local_dma_lkey: u32_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub node_type: u8_, + pub phys_port_cnt: u32_, + pub attrs: ib_device_attr, + pub hw_stats_data: *mut hw_stats_device_data, + pub cg_device: rdmacg_device, + pub index: u32_, + pub cq_pools_lock: spinlock_t, + pub cq_pools: [list_head; 3usize], + pub res: *mut rdma_restrack_root, + pub driver_def: *const uapi_definition, + pub refcount: refcount_t, + pub unreg_completion: completion, + pub unregistration_work: work_struct, + pub link_ops: *const rdma_link_ops, + pub compat_devs_mutex: mutex, + pub compat_devs: xarray, + pub iw_ifname: [::aya_ebpf::cty::c_char; 16usize], + pub iw_driver_flags: u32_, + pub lag_flags: u32_, + pub subdev_lock: mutex, + pub subdev_list_head: list_head, + pub type_: rdma_nl_dev_type::Type, + pub parent: *mut ib_device, + pub subdev_list: list_head, + pub name_assign_type: rdma_nl_name_assign_type::Type, + pub frmr_pools: *mut ib_frmr_pools, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ib_device__bindgen_ty_1 { + pub dev: device, + pub coredev: ib_core_device, +} +impl ib_device { + #[inline] + pub fn is_switch(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) } + } + #[inline] + pub fn set_is_switch(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn is_switch_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_is_switch_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn kverbs_provider(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) } + } + #[inline] + pub fn set_kverbs_provider(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn kverbs_provider_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_kverbs_provider_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn use_cq_dim(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) } + } + #[inline] + pub fn set_use_cq_dim(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn use_cq_dim_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_use_cq_dim_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + is_switch: u16_, + kverbs_provider: u16_, + use_cq_dim: u16_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let is_switch: u16 = unsafe { ::core::mem::transmute(is_switch) }; + is_switch as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let kverbs_provider: u16 = unsafe { ::core::mem::transmute(kverbs_provider) }; + kverbs_provider as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let use_cq_dim: u16 = unsafe { ::core::mem::transmute(use_cq_dim) }; + use_cq_dim as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_device_modify { + pub sys_image_guid: u64_, + pub node_desc: [::aya_ebpf::cty::c_char; 64usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_dm { + pub device: *mut ib_device, + pub length: u32_, + pub flags: u32_, + pub uobject: *mut ib_uobject, + pub usecnt: atomic_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_dm_alloc_attr { + pub length: u64_, + pub alignment: u32_, + pub flags: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_dm_mr_attr { + pub length: u64_, + pub offset: u64_, + pub access_flags: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ib_dmah { + pub device: *mut ib_device, + pub uobject: *mut ib_uobject, + pub res: rdma_restrack_entry, + pub cpu_id: u32_, + pub mem_type: tph_mem_type::Type, + pub usecnt: atomic_t, + pub ph: u8_, + pub valid_fields: u8_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ib_event { + pub device: *mut ib_device, + pub element: ib_event__bindgen_ty_1, + pub event: ib_event_type::Type, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ib_event__bindgen_ty_1 { + pub cq: *mut ib_cq, + pub qp: *mut ib_qp, + pub srq: *mut ib_srq, + pub wq: *mut ib_wq, + pub port_num: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_flow { + pub qp: *mut ib_qp, + pub device: *mut ib_device, + pub uobject: *mut ib_uobject, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_flow_action { + pub device: *mut ib_device, + pub uobject: *mut ib_uobject, + pub type_: ib_flow_action_type::Type, + pub usecnt: atomic_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_flow_eth_filter { + pub dst_mac: [u8_; 6usize], + pub src_mac: [u8_; 6usize], + pub ether_type: __be16, + pub vlan_tag: __be16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_flow_spec_eth { + pub type_: u32_, + pub size: u16_, + pub val: ib_flow_eth_filter, + pub mask: ib_flow_eth_filter, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_flow_ib_filter { + pub dlid: __be16, + pub sl: __u8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_flow_spec_ib { + pub type_: u32_, + pub size: u16_, + pub val: ib_flow_ib_filter, + pub mask: ib_flow_ib_filter, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_flow_ipv4_filter { + pub src_ip: __be32, + pub dst_ip: __be32, + pub proto: u8_, + pub tos: u8_, + pub ttl: u8_, + pub flags: u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_flow_spec_ipv4 { + pub type_: u32_, + pub size: u16_, + pub val: ib_flow_ipv4_filter, + pub mask: ib_flow_ipv4_filter, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_flow_tcp_udp_filter { + pub dst_port: __be16, + pub src_port: __be16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_flow_spec_tcp_udp { + pub type_: u32_, + pub size: u16_, + pub val: ib_flow_tcp_udp_filter, + pub mask: ib_flow_tcp_udp_filter, +} +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct ib_flow_ipv6_filter { + pub src_ip: [u8_; 16usize], + pub dst_ip: [u8_; 16usize], + pub flow_label: __be32, + pub next_hdr: u8_, + pub traffic_class: u8_, + pub hop_limit: u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_flow_spec_ipv6 { + pub type_: u32_, + pub size: u16_, + pub val: ib_flow_ipv6_filter, + pub mask: ib_flow_ipv6_filter, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_flow_tunnel_filter { + pub tunnel_id: __be32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_flow_spec_tunnel { + pub type_: u32_, + pub size: u16_, + pub val: ib_flow_tunnel_filter, + pub mask: ib_flow_tunnel_filter, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_flow_esp_filter { + pub spi: __be32, + pub seq: __be32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_flow_spec_esp { + pub type_: u32_, + pub size: u16_, + pub val: ib_flow_esp_filter, + pub mask: ib_flow_esp_filter, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_flow_gre_filter { + pub c_ks_res0_ver: __be16, + pub protocol: __be16, + pub key: __be32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_flow_spec_gre { + pub type_: u32_, + pub size: u16_, + pub val: ib_flow_gre_filter, + pub mask: ib_flow_gre_filter, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_flow_mpls_filter { + pub tag: __be32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_flow_spec_mpls { + pub type_: u32_, + pub size: u16_, + pub val: ib_flow_mpls_filter, + pub mask: ib_flow_mpls_filter, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_flow_spec_action_tag { + pub type_: ib_flow_spec_type::Type, + pub size: u16_, + pub tag_id: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_flow_spec_action_drop { + pub type_: ib_flow_spec_type::Type, + pub size: u16_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_flow_spec_action_handle { + pub type_: ib_flow_spec_type::Type, + pub size: u16_, + pub act: *mut ib_flow_action, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_flow_spec_action_count { + pub type_: ib_flow_spec_type::Type, + pub size: u16_, + pub counters: *mut ib_counters, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ib_flow_spec { + pub __bindgen_anon_1: ib_flow_spec__bindgen_ty_1, + pub eth: ib_flow_spec_eth, + pub ib: ib_flow_spec_ib, + pub ipv4: ib_flow_spec_ipv4, + pub tcp_udp: ib_flow_spec_tcp_udp, + pub ipv6: ib_flow_spec_ipv6, + pub tunnel: ib_flow_spec_tunnel, + pub esp: ib_flow_spec_esp, + pub gre: ib_flow_spec_gre, + pub mpls: ib_flow_spec_mpls, + pub flow_tag: ib_flow_spec_action_tag, + pub drop: ib_flow_spec_action_drop, + pub action: ib_flow_spec_action_handle, + pub flow_count: ib_flow_spec_action_count, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_flow_spec__bindgen_ty_1 { + pub type_: u32_, + pub size: u16_, +} +#[repr(C)] +pub struct ib_flow_attr { + pub type_: ib_flow_attr_type::Type, + pub size: u16_, + pub priority: u16_, + pub flags: u32_, + pub num_of_specs: u8_, + pub port: u32_, + pub flows: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_frmr_key { + pub vendor_key: u64_, + pub kernel_vendor_key: u64_, + pub num_dma_blocks: usize, + pub access_flags: ::aya_ebpf::cty::c_int, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: [u8; 3usize], +} +impl ib_frmr_key { + #[inline] + pub fn ats(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_ats(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn ats_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_ats_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(ats: u8_) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let ats: u8 = unsafe { ::core::mem::transmute(ats) }; + ats as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ib_gid { + pub raw: [u8_; 16usize], + pub global: ib_gid__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_gid__bindgen_ty_1 { + pub subnet_prefix: __be64, + pub interface_id: __be64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ib_gid_attr { + pub ndev: *mut net_device, + pub device: *mut ib_device, + pub gid: ib_gid, + pub gid_type: ib_gid_type::Type, + pub index: u16_, + pub port_num: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ib_global_route { + pub sgid_attr: *const ib_gid_attr, + pub dgid: ib_gid, + pub flow_label: u32_, + pub sgid_index: u8_, + pub hop_limit: u8_, + pub traffic_class: u8_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ib_grh { + pub version_tclass_flow: __be32, + pub paylen: __be16, + pub next_hdr: u8_, + pub hop_limit: u8_, + pub sgid: ib_gid, + pub dgid: ib_gid, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_frmr_pool { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ib_mr { + pub device: *mut ib_device, + pub pd: *mut ib_pd, + pub lkey: u32_, + pub rkey: u32_, + pub iova: u64_, + pub length: u64_, + pub page_size: ::aya_ebpf::cty::c_uint, + pub type_: ib_mr_type::Type, + pub need_inval: bool_, + pub __bindgen_anon_1: ib_mr__bindgen_ty_1, + pub dm: *mut ib_dm, + pub sig_attrs: *mut ib_sig_attrs, + pub dmah: *mut ib_dmah, + pub frmr: ib_mr__bindgen_ty_2, + pub res: rdma_restrack_entry, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ib_mr__bindgen_ty_1 { + pub uobject: *mut ib_uobject, + pub qp_entry: list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_mr__bindgen_ty_2 { + pub pool: *mut ib_frmr_pool, + pub key: ib_frmr_key, + pub handle: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_sig_err { + pub err_type: ib_sig_err_type::Type, + pub expected: u32_, + pub actual: u32_, + pub sig_err_offset: u64_, + pub key: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_mr_status { + pub fail_status: u32_, + pub sig_err: ib_sig_err, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_mw { + pub device: *mut ib_device, + pub pd: *mut ib_pd, + pub uobject: *mut ib_uobject, + pub rkey: u32_, + pub type_: ib_mw_type::Type, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ib_pd { + pub local_dma_lkey: u32_, + pub flags: u32_, + pub device: *mut ib_device, + pub uobject: *mut ib_uobject, + pub usecnt: atomic_t, + pub unsafe_global_rkey: u32_, + pub __internal_mr: *mut ib_mr, + pub res: rdma_restrack_entry, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_port_attr { + pub subnet_prefix: u64_, + pub state: ib_port_state::Type, + pub max_mtu: ib_mtu::Type, + pub active_mtu: ib_mtu::Type, + pub phys_mtu: u32_, + pub gid_tbl_len: ::aya_ebpf::cty::c_int, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub port_cap_flags: u32_, + pub max_msg_sz: u32_, + pub bad_pkey_cntr: u32_, + pub qkey_viol_cntr: u32_, + pub pkey_tbl_len: u16_, + pub sm_lid: u32_, + pub lid: u32_, + pub lmc: u8_, + pub max_vl_num: u8_, + pub sm_sl: u8_, + pub subnet_timeout: u8_, + pub init_type_reply: u8_, + pub active_width: u8_, + pub active_speed: u16_, + pub phys_state: u8_, + pub port_cap_flags2: u16_, +} +impl ib_port_attr { + #[inline] + pub fn ip_gids(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_ip_gids(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn ip_gids_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_ip_gids_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(ip_gids: ::aya_ebpf::cty::c_uint) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let ip_gids: u32 = unsafe { ::core::mem::transmute(ip_gids) }; + ip_gids as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_pkey_cache { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_gid_table { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_port_cache { + pub subnet_prefix: u64_, + pub pkey: *mut ib_pkey_cache, + pub gid: *mut ib_gid_table, + pub lmc: u8_, + pub port_state: ib_port_state::Type, + pub last_port_state: ib_port_state::Type, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_port_immutable { + pub pkey_tbl_len: ::aya_ebpf::cty::c_int, + pub gid_tbl_len: ::aya_ebpf::cty::c_int, + pub core_cap_flags: u32_, + pub max_mad_size: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rdma_counter_mode { + pub mode: rdma_nl_counter_mode::Type, + pub mask: rdma_nl_counter_mask::Type, + pub param: auto_mode_param, + pub bind_opcnt: bool_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rdma_port_counter { + pub mode: rdma_counter_mode, + pub hstats: *mut rdma_hw_stats, + pub num_counters: ::aya_ebpf::cty::c_uint, + pub lock: mutex, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_port { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ib_port_data { + pub ib_dev: *mut ib_device, + pub immutable: ib_port_immutable, + pub pkey_list_lock: spinlock_t, + pub netdev_lock: spinlock_t, + pub pkey_list: list_head, + pub cache: ib_port_cache, + pub netdev: *mut net_device, + pub netdev_tracker: netdevice_tracker, + pub ndev_hash_link: hlist_node, + pub port_counter: rdma_port_counter, + pub sysfs: *mut ib_port, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_port_modify { + pub set_port_cap_mask: u32_, + pub clr_port_cap_mask: u32_, + pub init_type: u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_port_pkey { + pub state: port_pkey_state::Type, + pub pkey_index: u16_, + pub port_num: u32_, + pub qp_list: list_head, + pub to_error_list: list_head, + pub sec: *mut ib_qp_security, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_ports_pkeys { + pub main: ib_port_pkey, + pub alt: ib_port_pkey, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_uqp_object { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ib_qp { + pub device: *mut ib_device, + pub pd: *mut ib_pd, + pub send_cq: *mut ib_cq, + pub recv_cq: *mut ib_cq, + pub mr_lock: spinlock_t, + pub mrs_used: ::aya_ebpf::cty::c_int, + pub rdma_mrs: list_head, + pub sig_mrs: list_head, + pub srq: *mut ib_srq, + pub srq_completion: completion, + pub xrcd: *mut ib_xrcd, + pub xrcd_list: list_head, + pub usecnt: atomic_t, + pub open_list: list_head, + pub real_qp: *mut ib_qp, + pub uobject: *mut ib_uqp_object, + pub event_handler: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_event, arg2: *mut ::aya_ebpf::cty::c_void), + >, + pub registered_event_handler: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_event, arg2: *mut ::aya_ebpf::cty::c_void), + >, + pub qp_context: *mut ::aya_ebpf::cty::c_void, + pub av_sgid_attr: *const ib_gid_attr, + pub alt_path_sgid_attr: *const ib_gid_attr, + pub qp_num: u32_, + pub max_write_sge: u32_, + pub max_read_sge: u32_, + pub qp_type: ib_qp_type::Type, + pub rwq_ind_tbl: *mut ib_rwq_ind_table, + pub qp_sec: *mut ib_qp_security, + pub port: u32_, + pub integrity_en: bool_, + pub res: rdma_restrack_entry, + pub counter: *mut rdma_counter, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_qp_cap { + pub max_send_wr: u32_, + pub max_recv_wr: u32_, + pub max_send_sge: u32_, + pub max_recv_sge: u32_, + pub max_inline_data: u32_, + pub max_rdma_ctxs: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct roce_ah_attr { + pub dmac: [u8_; 6usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct opa_ah_attr { + pub dlid: u32_, + pub src_path_bits: u8_, + pub make_grd: bool_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rdma_ah_attr { + pub grh: ib_global_route, + pub sl: u8_, + pub static_rate: u8_, + pub port_num: u32_, + pub ah_flags: u8_, + pub type_: rdma_ah_attr_type::Type, + pub __bindgen_anon_1: rdma_ah_attr__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union rdma_ah_attr__bindgen_ty_1 { + pub ib: ib_ah_attr, + pub roce: roce_ah_attr, + pub opa: opa_ah_attr, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ib_qp_attr { + pub qp_state: ib_qp_state::Type, + pub cur_qp_state: ib_qp_state::Type, + pub path_mtu: ib_mtu::Type, + pub path_mig_state: ib_mig_state::Type, + pub qkey: u32_, + pub rq_psn: u32_, + pub sq_psn: u32_, + pub dest_qp_num: u32_, + pub qp_access_flags: ::aya_ebpf::cty::c_int, + pub cap: ib_qp_cap, + pub ah_attr: rdma_ah_attr, + pub alt_ah_attr: rdma_ah_attr, + pub pkey_index: u16_, + pub alt_pkey_index: u16_, + pub en_sqd_async_notify: u8_, + pub sq_draining: u8_, + pub max_rd_atomic: u8_, + pub max_dest_rd_atomic: u8_, + pub min_rnr_timer: u8_, + pub port_num: u32_, + pub timeout: u8_, + pub retry_cnt: u8_, + pub rnr_retry: u8_, + pub alt_port_num: u32_, + pub alt_timeout: u8_, + pub rate_limit: u32_, + pub xmit_slave: *mut net_device, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_qp_init_attr { + pub event_handler: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_event, arg2: *mut ::aya_ebpf::cty::c_void), + >, + pub qp_context: *mut ::aya_ebpf::cty::c_void, + pub send_cq: *mut ib_cq, + pub recv_cq: *mut ib_cq, + pub srq: *mut ib_srq, + pub xrcd: *mut ib_xrcd, + pub cap: ib_qp_cap, + pub sq_sig_type: ib_sig_type::Type, + pub qp_type: ib_qp_type::Type, + pub create_flags: u32_, + pub port_num: u32_, + pub rwq_ind_tbl: *mut ib_rwq_ind_table, + pub source_qpn: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ib_qp_security { + pub qp: *mut ib_qp, + pub dev: *mut ib_device, + pub mutex: mutex, + pub ports_pkeys: *mut ib_ports_pkeys, + pub shared_qp_list: list_head, + pub security: *mut ::aya_ebpf::cty::c_void, + pub destroying: bool_, + pub error_list_count: atomic_t, + pub error_complete: completion, + pub error_comps_pending: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_rdmacg_object { + pub cg: *mut rdma_cgroup, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ib_recv_wr { + pub next: *mut ib_recv_wr, + pub __bindgen_anon_1: ib_recv_wr__bindgen_ty_1, + pub sg_list: *mut ib_sge, + pub num_sge: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ib_recv_wr__bindgen_ty_1 { + pub wr_id: u64_, + pub wr_cqe: *mut ib_cqe, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_rwq_ind_table { + pub device: *mut ib_device, + pub uobject: *mut ib_uobject, + pub usecnt: atomic_t, + pub ind_tbl_num: u32_, + pub log_ind_tbl_size: u32_, + pub ind_tbl: *mut *mut ib_wq, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_rwq_ind_table_init_attr { + pub log_ind_tbl_size: u32_, + pub ind_tbl: *mut *mut ib_wq, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ib_send_wr { + pub next: *mut ib_send_wr, + pub __bindgen_anon_1: ib_send_wr__bindgen_ty_1, + pub sg_list: *mut ib_sge, + pub num_sge: ::aya_ebpf::cty::c_int, + pub opcode: ib_wr_opcode::Type, + pub send_flags: ::aya_ebpf::cty::c_int, + pub ex: ib_send_wr__bindgen_ty_2, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ib_send_wr__bindgen_ty_1 { + pub wr_id: u64_, + pub wr_cqe: *mut ib_cqe, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ib_send_wr__bindgen_ty_2 { + pub imm_data: __be32, + pub invalidate_rkey: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_sge { + pub addr: u64_, + pub length: u32_, + pub lkey: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_t10_dif_domain { + pub bg_type: ib_t10_dif_bg_type::Type, + pub pi_interval: u16_, + pub bg: u16_, + pub app_tag: u16_, + pub ref_tag: u32_, + pub ref_remap: bool_, + pub app_escape: bool_, + pub ref_escape: bool_, + pub apptag_check_mask: u16_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ib_sig_domain { + pub sig_type: ib_signature_type::Type, + pub sig: ib_sig_domain__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ib_sig_domain__bindgen_ty_1 { + pub dif: ib_t10_dif_domain, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ib_sig_attrs { + pub check_mask: u8_, + pub mem: ib_sig_domain, + pub wire: ib_sig_domain, + pub meta_length: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_usrq_object { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ib_srq { + pub device: *mut ib_device, + pub pd: *mut ib_pd, + pub uobject: *mut ib_usrq_object, + pub event_handler: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_event, arg2: *mut ::aya_ebpf::cty::c_void), + >, + pub srq_context: *mut ::aya_ebpf::cty::c_void, + pub srq_type: ib_srq_type::Type, + pub usecnt: atomic_t, + pub ext: ib_srq__bindgen_ty_1, + pub res: rdma_restrack_entry, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ib_srq__bindgen_ty_1 { + pub cq: *mut ib_cq, + pub __bindgen_anon_1: ib_srq__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ib_srq__bindgen_ty_1__bindgen_ty_1 { + pub xrc: ib_srq__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_srq__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { + pub xrcd: *mut ib_xrcd, + pub srq_num: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_srq_attr { + pub max_wr: u32_, + pub max_sge: u32_, + pub srq_limit: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ib_srq_init_attr { + pub event_handler: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_event, arg2: *mut ::aya_ebpf::cty::c_void), + >, + pub srq_context: *mut ::aya_ebpf::cty::c_void, + pub attr: ib_srq_attr, + pub srq_type: ib_srq_type::Type, + pub ext: ib_srq_init_attr__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ib_srq_init_attr__bindgen_ty_1 { + pub cq: *mut ib_cq, + pub __bindgen_anon_1: ib_srq_init_attr__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ib_srq_init_attr__bindgen_ty_1__bindgen_ty_1 { + pub xrc: ib_srq_init_attr__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, + pub tag_matching: ib_srq_init_attr__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_srq_init_attr__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { + pub xrcd: *mut ib_xrcd, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_srq_init_attr__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2 { + pub max_num_tags: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ib_ucontext { + pub device: *mut ib_device, + pub ufile: *mut ib_uverbs_file, + pub cg_obj: ib_rdmacg_object, + pub enabled_caps: u64_, + pub res: rdma_restrack_entry, + pub mmap_xa: xarray, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_udata { + pub inbuf: *const ::aya_ebpf::cty::c_void, + pub outbuf: *mut ::aya_ebpf::cty::c_void, + pub inlen: usize, + pub outlen: usize, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct uverbs_api_object { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_uobject { + pub user_handle: u64_, + pub ufile: *mut ib_uverbs_file, + pub context: *mut ib_ucontext, + pub object: *mut ::aya_ebpf::cty::c_void, + pub list: list_head, + pub cg_obj: ib_rdmacg_object, + pub id: ::aya_ebpf::cty::c_int, + pub ref_: kref, + pub usecnt: atomic_t, + pub rcu: callback_head, + pub uapi_object: *const uverbs_api_object, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ib_wc { + pub __bindgen_anon_1: ib_wc__bindgen_ty_1, + pub status: ib_wc_status::Type, + pub opcode: ib_wc_opcode::Type, + pub vendor_err: u32_, + pub byte_len: u32_, + pub qp: *mut ib_qp, + pub ex: ib_wc__bindgen_ty_2, + pub src_qp: u32_, + pub slid: u32_, + pub wc_flags: ::aya_ebpf::cty::c_int, + pub pkey_index: u16_, + pub sl: u8_, + pub dlid_path_bits: u8_, + pub port_num: u32_, + pub smac: [u8_; 6usize], + pub vlan_id: u16_, + pub network_hdr_type: u8_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ib_wc__bindgen_ty_1 { + pub wr_id: u64_, + pub wr_cqe: *mut ib_cqe, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ib_wc__bindgen_ty_2 { + pub imm_data: __be32, + pub invalidate_rkey: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_uwq_object { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_wq { + pub device: *mut ib_device, + pub uobject: *mut ib_uwq_object, + pub wq_context: *mut ::aya_ebpf::cty::c_void, + pub event_handler: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_event, arg2: *mut ::aya_ebpf::cty::c_void), + >, + pub pd: *mut ib_pd, + pub cq: *mut ib_cq, + pub wq_num: u32_, + pub state: ib_wq_state::Type, + pub wq_type: ib_wq_type::Type, + pub usecnt: atomic_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_wq_attr { + pub wq_state: ib_wq_state::Type, + pub curr_wq_state: ib_wq_state::Type, + pub flags: u32_, + pub flags_mask: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_wq_init_attr { + pub wq_context: *mut ::aya_ebpf::cty::c_void, + pub wq_type: ib_wq_type::Type, + pub max_wr: u32_, + pub max_sge: u32_, + pub cq: *mut ib_cq, + pub event_handler: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_event, arg2: *mut ::aya_ebpf::cty::c_void), + >, + pub create_flags: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ib_xrcd { + pub device: *mut ib_device, + pub usecnt: atomic_t, + pub inode: *mut inode, + pub tgt_qps_rwsem: rw_semaphore, + pub tgt_qps: xarray, +} +#[repr(C)] +#[derive(Debug)] +pub struct ip_options { + pub faddr: __be32, + pub nexthop: __be32, + pub optlen: ::aya_ebpf::cty::c_uchar, + pub srr: ::aya_ebpf::cty::c_uchar, + pub rr: ::aya_ebpf::cty::c_uchar, + pub ts: ::aya_ebpf::cty::c_uchar, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub router_alert: ::aya_ebpf::cty::c_uchar, + pub cipso: ::aya_ebpf::cty::c_uchar, + pub __pad2: ::aya_ebpf::cty::c_uchar, + pub __data: __IncompleteArrayField<::aya_ebpf::cty::c_uchar>, +} +impl ip_options { + #[inline] + pub fn is_strictroute(&self) -> ::aya_ebpf::cty::c_uchar { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_is_strictroute(&mut self, val: ::aya_ebpf::cty::c_uchar) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn is_strictroute_raw(this: *const Self) -> ::aya_ebpf::cty::c_uchar { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_is_strictroute_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uchar) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn srr_is_hit(&self) -> ::aya_ebpf::cty::c_uchar { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_srr_is_hit(&mut self, val: ::aya_ebpf::cty::c_uchar) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn srr_is_hit_raw(this: *const Self) -> ::aya_ebpf::cty::c_uchar { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_srr_is_hit_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uchar) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn is_changed(&self) -> ::aya_ebpf::cty::c_uchar { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) } + } + #[inline] + pub fn set_is_changed(&mut self, val: ::aya_ebpf::cty::c_uchar) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn is_changed_raw(this: *const Self) -> ::aya_ebpf::cty::c_uchar { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_is_changed_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uchar) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn rr_needaddr(&self) -> ::aya_ebpf::cty::c_uchar { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) } + } + #[inline] + pub fn set_rr_needaddr(&mut self, val: ::aya_ebpf::cty::c_uchar) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn rr_needaddr_raw(this: *const Self) -> ::aya_ebpf::cty::c_uchar { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_rr_needaddr_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uchar) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn ts_needtime(&self) -> ::aya_ebpf::cty::c_uchar { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) } + } + #[inline] + pub fn set_ts_needtime(&mut self, val: ::aya_ebpf::cty::c_uchar) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn ts_needtime_raw(this: *const Self) -> ::aya_ebpf::cty::c_uchar { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_ts_needtime_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uchar) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn ts_needaddr(&self) -> ::aya_ebpf::cty::c_uchar { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) } + } + #[inline] + pub fn set_ts_needaddr(&mut self, val: ::aya_ebpf::cty::c_uchar) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn ts_needaddr_raw(this: *const Self) -> ::aya_ebpf::cty::c_uchar { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 5usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_ts_needaddr_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uchar) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 5usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + is_strictroute: ::aya_ebpf::cty::c_uchar, + srr_is_hit: ::aya_ebpf::cty::c_uchar, + is_changed: ::aya_ebpf::cty::c_uchar, + rr_needaddr: ::aya_ebpf::cty::c_uchar, + ts_needtime: ::aya_ebpf::cty::c_uchar, + ts_needaddr: ::aya_ebpf::cty::c_uchar, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let is_strictroute: u8 = unsafe { ::core::mem::transmute(is_strictroute) }; + is_strictroute as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let srr_is_hit: u8 = unsafe { ::core::mem::transmute(srr_is_hit) }; + srr_is_hit as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let is_changed: u8 = unsafe { ::core::mem::transmute(is_changed) }; + is_changed as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let rr_needaddr: u8 = unsafe { ::core::mem::transmute(rr_needaddr) }; + rr_needaddr as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let ts_needtime: u8 = unsafe { ::core::mem::transmute(ts_needtime) }; + ts_needtime as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let ts_needaddr: u8 = unsafe { ::core::mem::transmute(ts_needaddr) }; + ts_needaddr as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug)] +pub struct ip_options_rcu { + pub rcu: callback_head, + pub opt: ip_options, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct icmp_mib { + pub mibs: [::aya_ebpf::cty::c_ulong; 30usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct icmpmsg_mib { + pub mibs: [atomic_long_t; 512usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct icmpv6_mib { + pub mibs: [::aya_ebpf::cty::c_ulong; 7usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct icmpv6_mib_device { + pub mibs: [atomic_long_t; 7usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct icmpv6msg_mib { + pub mibs: [atomic_long_t; 512usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct icmpv6msg_mib_device { + pub mibs: [atomic_long_t; 512usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee80211_channel { + pub band: nl80211_band::Type, + pub center_freq: u32_, + pub freq_offset: u16_, + pub hw_value: u16_, + pub flags: u32_, + pub max_antenna_gain: ::aya_ebpf::cty::c_int, + pub max_power: ::aya_ebpf::cty::c_int, + pub max_reg_power: ::aya_ebpf::cty::c_int, + pub beacon_found: bool_, + pub orig_flags: u32_, + pub orig_mag: ::aya_ebpf::cty::c_int, + pub orig_mpwr: ::aya_ebpf::cty::c_int, + pub dfs_state: nl80211_dfs_state::Type, + pub dfs_state_entered: ::aya_ebpf::cty::c_ulong, + pub dfs_cac_ms: ::aya_ebpf::cty::c_uint, + pub cac_start_time: u64_, + pub psd: s8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee80211_eht_cap_elem_fixed { + pub mac_cap_info: [u8_; 2usize], + pub phy_cap_info: [u8_; 9usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ieee80211_eht_mcs_nss_supp_20mhz_only { + pub __bindgen_anon_1: ieee80211_eht_mcs_nss_supp_20mhz_only__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ieee80211_eht_mcs_nss_supp_20mhz_only__bindgen_ty_1 { + pub __bindgen_anon_1: ieee80211_eht_mcs_nss_supp_20mhz_only__bindgen_ty_1__bindgen_ty_1, + pub rx_tx_max_nss: [u8_; 4usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee80211_eht_mcs_nss_supp_20mhz_only__bindgen_ty_1__bindgen_ty_1 { + pub rx_tx_mcs7_max_nss: u8_, + pub rx_tx_mcs9_max_nss: u8_, + pub rx_tx_mcs11_max_nss: u8_, + pub rx_tx_mcs13_max_nss: u8_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ieee80211_eht_mcs_nss_supp_bw { + pub __bindgen_anon_1: ieee80211_eht_mcs_nss_supp_bw__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ieee80211_eht_mcs_nss_supp_bw__bindgen_ty_1 { + pub __bindgen_anon_1: ieee80211_eht_mcs_nss_supp_bw__bindgen_ty_1__bindgen_ty_1, + pub rx_tx_max_nss: [u8_; 3usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee80211_eht_mcs_nss_supp_bw__bindgen_ty_1__bindgen_ty_1 { + pub rx_tx_mcs9_max_nss: u8_, + pub rx_tx_mcs11_max_nss: u8_, + pub rx_tx_mcs13_max_nss: u8_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ieee80211_eht_mcs_nss_supp { + pub __bindgen_anon_1: ieee80211_eht_mcs_nss_supp__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ieee80211_eht_mcs_nss_supp__bindgen_ty_1 { + pub only_20mhz: ieee80211_eht_mcs_nss_supp_20mhz_only, + pub bw: ieee80211_eht_mcs_nss_supp__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ieee80211_eht_mcs_nss_supp__bindgen_ty_1__bindgen_ty_1 { + pub _80: ieee80211_eht_mcs_nss_supp_bw, + pub _160: ieee80211_eht_mcs_nss_supp_bw, + pub _320: ieee80211_eht_mcs_nss_supp_bw, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee80211_freq_range { + pub start_freq_khz: u32_, + pub end_freq_khz: u32_, + pub max_bandwidth_khz: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee80211_he_6ghz_capa { + pub capa: __le16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee80211_he_cap_elem { + pub mac_cap_info: [u8_; 6usize], + pub phy_cap_info: [u8_; 11usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee80211_he_mcs_nss_supp { + pub rx_mcs_80: __le16, + pub tx_mcs_80: __le16, + pub rx_mcs_160: __le16, + pub tx_mcs_160: __le16, + pub rx_mcs_80p80: __le16, + pub tx_mcs_80p80: __le16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee80211_iface_combination { + pub limits: *const ieee80211_iface_limit, + pub num_different_channels: u32_, + pub max_interfaces: u16_, + pub n_limits: u8_, + pub beacon_int_infra_match: bool_, + pub radar_detect_widths: u8_, + pub radar_detect_regions: u8_, + pub beacon_int_min_gcd: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee80211_iface_limit { + pub max: u16_, + pub types: u16_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee80211_power_rule { + pub max_antenna_gain: u32_, + pub max_eirp: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee80211_rate { + pub flags: u32_, + pub bitrate: u16_, + pub hw_value: u16_, + pub hw_value_short: u16_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee80211_wmm_ac { + pub cw_min: u16_, + pub cw_max: u16_, + pub cot: u16_, + pub aifsn: u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee80211_wmm_rule { + pub client: [ieee80211_wmm_ac; 4usize], + pub ap: [ieee80211_wmm_ac; 4usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee80211_reg_rule { + pub freq_range: ieee80211_freq_range, + pub power_rule: ieee80211_power_rule, + pub wmm_rule: ieee80211_wmm_rule, + pub flags: u32_, + pub dfs_cac_ms: u32_, + pub has_wmm: bool_, + pub psd: s8, +} +#[repr(C)] +#[derive(Debug)] +pub struct ieee80211_regdomain { + pub callback_head: callback_head, + pub n_reg_rules: u32_, + pub alpha2: [::aya_ebpf::cty::c_char; 3usize], + pub dfs_region: nl80211_dfs_regions::Type, + pub reg_rules: __IncompleteArrayField, +} +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct ieee80211_sta_he_cap { + pub has_he: bool_, + pub he_cap_elem: ieee80211_he_cap_elem, + pub he_mcs_nss_supp: ieee80211_he_mcs_nss_supp, + pub ppe_thres: [u8_; 25usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ieee80211_sta_eht_cap { + pub has_eht: bool_, + pub eht_cap_elem: ieee80211_eht_cap_elem_fixed, + pub eht_mcs_nss_supp: ieee80211_eht_mcs_nss_supp, + pub eht_ppe_thres: [u8_; 32usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee80211_uhr_cap_mac { + pub mac_cap: [u8_; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee80211_uhr_cap_phy { + pub cap: u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee80211_sta_uhr_cap { + pub has_uhr: bool_, + pub mac: ieee80211_uhr_cap_mac, + pub phy: ieee80211_uhr_cap_phy, +} +#[repr(C, packed)] +#[derive(Copy, Clone)] +pub struct ieee80211_sband_iftype_data { + pub types_mask: u16_, + pub he_cap: ieee80211_sta_he_cap, + pub he_6ghz_capa: ieee80211_he_6ghz_capa, + pub eht_cap: ieee80211_sta_eht_cap, + pub uhr_cap: ieee80211_sta_uhr_cap, + pub vendor_elems: ieee80211_sband_iftype_data__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee80211_sband_iftype_data__bindgen_ty_1 { + pub data: *const u8_, + pub len: ::aya_ebpf::cty::c_uint, +} +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct ieee80211_sta_ht_cap { + pub cap: u16_, + pub ht_supported: bool_, + pub ampdu_factor: u8_, + pub ampdu_density: u8_, + pub mcs: ieee80211_mcs_info, + pub __bindgen_padding_0: u8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee80211_sta_s1g_cap { + pub s1g: bool_, + pub cap: [u8_; 10usize], + pub nss_mcs: [u8_; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee80211_sta_vht_cap { + pub vht_supported: bool_, + pub cap: u32_, + pub vht_mcs: ieee80211_vht_mcs_info, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee80211_supported_band { + pub channels: *mut ieee80211_channel, + pub bitrates: *mut ieee80211_rate, + pub band: nl80211_band::Type, + pub n_channels: ::aya_ebpf::cty::c_int, + pub n_bitrates: ::aya_ebpf::cty::c_int, + pub ht_cap: ieee80211_sta_ht_cap, + pub vht_cap: ieee80211_sta_vht_cap, + pub s1g_cap: ieee80211_sta_s1g_cap, + pub edmg_cap: ieee80211_edmg, + pub n_iftype_data: u16_, + pub iftype_data: *const ieee80211_sband_iftype_data, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee80211_txrx_stypes { + pub tx: u16_, + pub rx: u16_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ieee802154_addr { + pub mode: u8_, + pub pan_id: __le16, + pub __bindgen_anon_1: ieee802154_addr__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ieee802154_addr__bindgen_ty_1 { + pub short_addr: __le16, + pub extended_addr: __le64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee802154_pan_device { + pub pan_id: __le16, + pub mode: u8_, + pub short_addr: __le16, + pub extended_addr: __le64, + pub node: list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee_ets { + pub willing: __u8, + pub ets_cap: __u8, + pub cbs: __u8, + pub tc_tx_bw: [__u8; 8usize], + pub tc_rx_bw: [__u8; 8usize], + pub tc_tsa: [__u8; 8usize], + pub prio_tc: [__u8; 8usize], + pub tc_reco_bw: [__u8; 8usize], + pub tc_reco_tsa: [__u8; 8usize], + pub reco_prio_tc: [__u8; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee_maxrate { + pub tc_maxrate: [__u64; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee_pfc { + pub pfc_cap: __u8, + pub pfc_en: __u8, + pub mbc: __u8, + pub delay: __u16, + pub requests: [__u64; 8usize], + pub indications: [__u64; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee_qcn { + pub rpg_enable: [__u8; 8usize], + pub rppp_max_rps: [__u32; 8usize], + pub rpg_time_reset: [__u32; 8usize], + pub rpg_byte_reset: [__u32; 8usize], + pub rpg_threshold: [__u32; 8usize], + pub rpg_max_rate: [__u32; 8usize], + pub rpg_ai_rate: [__u32; 8usize], + pub rpg_hai_rate: [__u32; 8usize], + pub rpg_gd: [__u32; 8usize], + pub rpg_min_dec_fac: [__u32; 8usize], + pub rpg_min_rate: [__u32; 8usize], + pub cndd_state_machine: [__u32; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ieee_qcn_stats { + pub rppp_rp_centiseconds: [__u64; 8usize], + pub rppp_created_rps: [__u32; 8usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct if_settings { + pub type_: ::aya_ebpf::cty::c_uint, + pub size: ::aya_ebpf::cty::c_uint, + pub ifs_ifsu: if_settings__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union if_settings__bindgen_ty_1 { + pub raw_hdlc: *mut raw_hdlc_proto, + pub cisco: *mut cisco_proto, + pub fr: *mut fr_proto, + pub fr_pvc: *mut fr_proto_pvc, + pub fr_pvc_info: *mut fr_proto_pvc_info, + pub x25: *mut x25_hdlc_proto, + pub sync: *mut sync_serial_settings, + pub te1: *mut te1_settings, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ifacaddr6 { + pub aca_addr: in6_addr, + pub aca_rt: *mut fib6_info, + pub aca_next: *mut ifacaddr6, + pub aca_addr_lst: hlist_node, + pub aca_users: ::aya_ebpf::cty::c_int, + pub aca_refcnt: refcount_t, + pub aca_cstamp: ::aya_ebpf::cty::c_ulong, + pub aca_tstamp: ::aya_ebpf::cty::c_ulong, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vf_guid { + pub vf: __u32, + pub guid: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vf_info { + pub vf: __u32, + pub mac: [__u8; 32usize], + pub vlan: __u32, + pub qos: __u32, + pub spoofchk: __u32, + pub linkstate: __u32, + pub min_tx_rate: __u32, + pub max_tx_rate: __u32, + pub rss_query_en: __u32, + pub trusted: __u32, + pub vlan_proto: __be16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vf_stats { + pub rx_packets: __u64, + pub tx_packets: __u64, + pub rx_bytes: __u64, + pub tx_bytes: __u64, + pub broadcast: __u64, + pub multicast: __u64, + pub rx_dropped: __u64, + pub tx_dropped: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifmap { + pub mem_start: ::aya_ebpf::cty::c_ulong, + pub mem_end: ::aya_ebpf::cty::c_ulong, + pub base_addr: ::aya_ebpf::cty::c_ushort, + pub irq: ::aya_ebpf::cty::c_uchar, + pub dma: ::aya_ebpf::cty::c_uchar, + pub port: ::aya_ebpf::cty::c_uchar, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ifmcaddr6 { + pub mca_addr: in6_addr, + pub idev: *mut inet6_dev, + pub next: *mut ifmcaddr6, + pub mca_sources: *mut ip6_sf_list, + pub mca_tomb: *mut ip6_sf_list, + pub mca_sfmode: ::aya_ebpf::cty::c_uint, + pub mca_crcount: ::aya_ebpf::cty::c_uchar, + pub mca_sfcount: [::aya_ebpf::cty::c_ulong; 2usize], + pub mca_work: delayed_work, + pub mca_flags: ::aya_ebpf::cty::c_uint, + pub mca_users: ::aya_ebpf::cty::c_int, + pub mca_refcnt: refcount_t, + pub mca_cstamp: ::aya_ebpf::cty::c_ulong, + pub mca_tstamp: ::aya_ebpf::cty::c_ulong, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ifreq { + pub ifr_ifrn: ifreq__bindgen_ty_1, + pub ifr_ifru: ifreq__bindgen_ty_2, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ifreq__bindgen_ty_1 { + pub ifrn_name: [::aya_ebpf::cty::c_char; 16usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ifreq__bindgen_ty_2 { + pub ifru_addr: sockaddr, + pub ifru_dstaddr: sockaddr, + pub ifru_broadaddr: sockaddr, + pub ifru_netmask: sockaddr, + pub ifru_hwaddr: sockaddr, + pub ifru_flags: ::aya_ebpf::cty::c_short, + pub ifru_ivalue: ::aya_ebpf::cty::c_int, + pub ifru_mtu: ::aya_ebpf::cty::c_int, + pub ifru_map: ifmap, + pub ifru_slave: [::aya_ebpf::cty::c_char; 16usize], + pub ifru_newname: [::aya_ebpf::cty::c_char; 16usize], + pub ifru_data: *mut ::aya_ebpf::cty::c_void, + pub ifru_settings: if_settings, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_pktinfo { + pub ipi6_addr: in6_addr, + pub ipi6_ifindex: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ipv4_devconf { + pub sysctl: *mut ::aya_ebpf::cty::c_void, + pub data: [::aya_ebpf::cty::c_int; 33usize], + pub state: [::aya_ebpf::cty::c_ulong; 1usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in_device { + pub dev: *mut net_device, + pub dev_tracker: netdevice_tracker, + pub refcnt: refcount_t, + pub dead: ::aya_ebpf::cty::c_int, + pub ifa_list: *mut in_ifaddr, + pub mc_list: *mut ip_mc_list, + pub mc_hash: *mut *mut ip_mc_list, + pub mc_count: ::aya_ebpf::cty::c_int, + pub mc_tomb_lock: spinlock_t, + pub mc_tomb: *mut ip_mc_list, + pub mr_v1_seen: ::aya_ebpf::cty::c_ulong, + pub mr_v2_seen: ::aya_ebpf::cty::c_ulong, + pub mr_qi: ::aya_ebpf::cty::c_ulong, + pub mr_qri: ::aya_ebpf::cty::c_ulong, + pub mr_qrv: ::aya_ebpf::cty::c_uchar, + pub mr_gq_running: ::aya_ebpf::cty::c_uchar, + pub mr_maxdelay: u32_, + pub mr_ifc_count: u32_, + pub mr_gq_timer: timer_list, + pub mr_ifc_timer: timer_list, + pub arp_parms: *mut neigh_parms, + pub cnf: ipv4_devconf, + pub callback_head: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct in_ifaddr { + pub addr_lst: hlist_node, + pub ifa_next: *mut in_ifaddr, + pub ifa_dev: *mut in_device, + pub callback_head: callback_head, + pub ifa_local: __be32, + pub ifa_address: __be32, + pub ifa_mask: __be32, + pub ifa_rt_priority: __u32, + pub ifa_broadcast: __be32, + pub ifa_scope: ::aya_ebpf::cty::c_uchar, + pub ifa_prefixlen: ::aya_ebpf::cty::c_uchar, + pub ifa_proto: ::aya_ebpf::cty::c_uchar, + pub ifa_flags: __u32, + pub ifa_label: [::aya_ebpf::cty::c_char; 16usize], + pub ifa_valid_lft: __u32, + pub ifa_preferred_lft: __u32, + pub ifa_cstamp: ::aya_ebpf::cty::c_ulong, + pub ifa_tstamp: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct inet6_cork { + pub opt: *mut ipv6_txoptions, + pub hop_limit: u8_, + pub tclass: u8_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: [u8; 5usize], +} +impl inet6_cork { + #[inline] + pub fn dontfrag(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_dontfrag(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dontfrag_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_dontfrag_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(dontfrag: u8_) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let dontfrag: u8 = unsafe { ::core::mem::transmute(dontfrag) }; + dontfrag as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipv6_stable_secret { + pub initialized: bool_, + pub secret: in6_addr, +} +#[repr(C)] +pub struct ipv6_devconf { + pub __cacheline_group_begin__ipv6_devconf_read_txrx: __IncompleteArrayField<__u8>, + pub disable_ipv6: __s32, + pub hop_limit: __s32, + pub mtu6: __s32, + pub forwarding: __s32, + pub force_forwarding: __s32, + pub disable_policy: __s32, + pub proxy_ndp: __s32, + pub __cacheline_group_end__ipv6_devconf_read_txrx: __IncompleteArrayField<__u8>, + pub accept_ra: __s32, + pub accept_redirects: __s32, + pub autoconf: __s32, + pub dad_transmits: __s32, + pub rtr_solicits: __s32, + pub rtr_solicit_interval: __s32, + pub rtr_solicit_max_interval: __s32, + pub rtr_solicit_delay: __s32, + pub force_mld_version: __s32, + pub mldv1_unsolicited_report_interval: __s32, + pub mldv2_unsolicited_report_interval: __s32, + pub use_tempaddr: __s32, + pub temp_valid_lft: __s32, + pub temp_prefered_lft: __s32, + pub regen_min_advance: __s32, + pub regen_max_retry: __s32, + pub max_desync_factor: __s32, + pub max_addresses: __s32, + pub accept_ra_defrtr: __s32, + pub ra_defrtr_metric: __u32, + pub accept_ra_min_hop_limit: __s32, + pub accept_ra_min_lft: __s32, + pub accept_ra_pinfo: __s32, + pub ignore_routes_with_linkdown: __s32, + pub accept_ra_rtr_pref: __s32, + pub rtr_probe_interval: __s32, + pub accept_ra_rt_info_min_plen: __s32, + pub accept_ra_rt_info_max_plen: __s32, + pub accept_source_route: __s32, + pub accept_ra_from_local: __s32, + pub optimistic_dad: __s32, + pub use_optimistic: __s32, + pub mc_forwarding: atomic_t, + pub drop_unicast_in_l2_multicast: __s32, + pub accept_dad: __s32, + pub force_tllao: __s32, + pub ndisc_notify: __s32, + pub suppress_frag_ndisc: __s32, + pub accept_ra_mtu: __s32, + pub drop_unsolicited_na: __s32, + pub accept_untracked_na: __s32, + pub stable_secret: ipv6_stable_secret, + pub use_oif_addrs_only: __s32, + pub keep_addr_on_down: __s32, + pub seg6_enabled: __s32, + pub seg6_require_hmac: __s32, + pub enhanced_dad: __u32, + pub addr_gen_mode: __u32, + pub ndisc_tclass: __s32, + pub rpl_seg_enabled: __s32, + pub ioam6_id: __u32, + pub ioam6_id_wide: __u32, + pub ioam6_enabled: __u8, + pub ndisc_evict_nocarrier: __u8, + pub ra_honor_pio_life: __u8, + pub ra_honor_pio_pflag: __u8, + pub sysctl_header: *mut ctl_table_header, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_devstat { + pub proc_dir_entry: *mut proc_dir_entry, + pub ipv6: *mut ipstats_mib, + pub icmpv6dev: *mut icmpv6_mib_device, + pub icmpv6msgdev: *mut icmpv6msg_mib_device, +} +#[repr(C)] +pub struct inet6_dev { + pub dev: *mut net_device, + pub dev_tracker: netdevice_tracker, + pub addr_list: list_head, + pub mc_list: *mut ifmcaddr6, + pub mc_tomb: *mut ifmcaddr6, + pub mc_qrv: ::aya_ebpf::cty::c_uchar, + pub mc_gq_running: ::aya_ebpf::cty::c_uchar, + pub mc_ifc_count: ::aya_ebpf::cty::c_uchar, + pub mc_dad_count: ::aya_ebpf::cty::c_uchar, + pub mc_v1_seen: ::aya_ebpf::cty::c_ulong, + pub mc_qi: ::aya_ebpf::cty::c_ulong, + pub mc_qri: ::aya_ebpf::cty::c_ulong, + pub mc_maxdelay: ::aya_ebpf::cty::c_ulong, + pub mc_gq_work: delayed_work, + pub mc_ifc_work: delayed_work, + pub mc_dad_work: delayed_work, + pub mc_query_work: delayed_work, + pub mc_report_work: delayed_work, + pub mc_query_queue: sk_buff_head, + pub mc_report_queue: sk_buff_head, + pub mc_query_lock: spinlock_t, + pub mc_report_lock: spinlock_t, + pub mc_lock: mutex, + pub ac_list: *mut ifacaddr6, + pub lock: rwlock_t, + pub refcnt: refcount_t, + pub if_flags: __u32, + pub dead: ::aya_ebpf::cty::c_int, + pub desync_factor: u32_, + pub tempaddr_list: list_head, + pub token: in6_addr, + pub nd_parms: *mut neigh_parms, + pub cnf: ipv6_devconf, + pub stats: ipv6_devstat, + pub rs_timer: timer_list, + pub rs_interval: __s32, + pub rs_probes: __u8, + pub tstamp: ::aya_ebpf::cty::c_ulong, + pub rcu: callback_head, + pub ra_mtu: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct inet_bind2_bucket { + pub ib_net: possible_net_t, + pub l3mdev: ::aya_ebpf::cty::c_int, + pub port: ::aya_ebpf::cty::c_ushort, + pub addr_type: ::aya_ebpf::cty::c_ushort, + pub v6_rcv_saddr: in6_addr, + pub node: hlist_node, + pub bhash_node: hlist_node, + pub owners: hlist_head, + pub fastreuse: ::aya_ebpf::cty::c_schar, + pub fastreuseport: ::aya_ebpf::cty::c_schar, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct inet_bind_bucket { + pub ib_net: possible_net_t, + pub l3mdev: ::aya_ebpf::cty::c_int, + pub port: ::aya_ebpf::cty::c_ushort, + pub fastreuse: ::aya_ebpf::cty::c_schar, + pub fastreuseport: ::aya_ebpf::cty::c_schar, + pub fastuid: kuid_t, + pub fast_v6_rcv_saddr: in6_addr, + pub fast_rcv_saddr: __be32, + pub fast_sk_family: ::aya_ebpf::cty::c_ushort, + pub fast_ipv6_only: bool_, + pub node: hlist_node, + pub bhash2: hlist_head, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct inet_bind_hashbucket { + pub lock: spinlock_t, + pub chain: hlist_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct inet_cork { + pub flags: ::aya_ebpf::cty::c_uint, + pub addr: __be32, + pub opt: *mut ip_options, + pub fragsize: ::aya_ebpf::cty::c_uint, + pub length: ::aya_ebpf::cty::c_int, + pub dst: *mut dst_entry, + pub tx_flags: u8_, + pub ttl: __u8, + pub tos: __s16, + pub priority: u32_, + pub gso_size: __u16, + pub ts_opt_id: u32_, + pub transmit_time: u64_, + pub mark: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct inet_cork_full { + pub base: inet_cork, + pub fl: flowi, + pub base6: inet6_cork, +} +#[repr(C)] +pub struct inet_sock { + pub sk: sock, + pub pinet6: *mut ipv6_pinfo, + pub ipv6_fl_list: *mut ipv6_fl_socklist, + pub inet_flags: ::aya_ebpf::cty::c_ulong, + pub inet_saddr: __be32, + pub uc_ttl: __s16, + pub inet_sport: __be16, + pub inet_opt: *mut ip_options_rcu, + pub inet_id: atomic_t, + pub tos: __u8, + pub min_ttl: __u8, + pub mc_ttl: __u8, + pub pmtudisc: __u8, + pub rcv_tos: __u8, + pub convert_csum: __u8, + pub uc_index: ::aya_ebpf::cty::c_int, + pub mc_index: ::aya_ebpf::cty::c_int, + pub mc_addr: __be32, + pub local_port_range: u32_, + pub mc_list: *mut ip_mc_socklist, + pub cork: inet_cork_full, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct request_sock_queue { + pub rskq_lock: spinlock_t, + pub rskq_defer_accept: u8_, + pub synflood_warned: u8_, + pub qlen: atomic_t, + pub young: atomic_t, + pub rskq_accept_head: *mut request_sock, + pub rskq_accept_tail: *mut request_sock, + pub fastopenq: fastopen_queue, +} +#[repr(C)] +pub struct inet_connection_sock { + pub icsk_inet: inet_sock, + pub icsk_accept_queue: request_sock_queue, + pub icsk_bind_hash: *mut inet_bind_bucket, + pub icsk_bind2_hash: *mut inet_bind2_bucket, + pub icsk_delack_timer: timer_list, + pub __bindgen_anon_1: inet_connection_sock__bindgen_ty_1, + pub icsk_rto: __u32, + pub icsk_rto_min: __u32, + pub icsk_rto_max: u32_, + pub icsk_delack_max: __u32, + pub icsk_pmtu_cookie: __u32, + pub icsk_ca_ops: *const tcp_congestion_ops, + pub icsk_af_ops: *const inet_connection_sock_af_ops, + pub icsk_ulp_ops: *const tcp_ulp_ops, + pub icsk_ulp_data: *mut ::aya_ebpf::cty::c_void, + pub icsk_sync_mss: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sock, arg2: u32_) -> ::aya_ebpf::cty::c_uint, + >, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub icsk_retransmits: __u8, + pub icsk_pending: __u8, + pub icsk_backoff: __u8, + pub icsk_syn_retries: __u8, + pub icsk_probes_out: __u8, + pub icsk_ext_hdr_len: __u16, + pub icsk_ack: inet_connection_sock__bindgen_ty_2, + pub icsk_mtup: inet_connection_sock__bindgen_ty_3, + pub icsk_probes_tstamp: u32_, + pub icsk_user_timeout: u32_, + pub icsk_ca_priv: [u64_; 18usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union inet_connection_sock__bindgen_ty_1 { + pub icsk_keepalive_timer: timer_list, + pub mptcp_tout_timer: timer_list, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct inet_connection_sock__bindgen_ty_2 { + pub pending: __u8, + pub quick: __u8, + pub pingpong: __u8, + pub retry: __u8, + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, + pub lrcvtime: __u32, + pub last_seg_size: __u16, + pub rcv_mss: __u16, +} +impl inet_connection_sock__bindgen_ty_2 { + #[inline] + pub fn ato(&self) -> __u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) } + } + #[inline] + pub fn set_ato(&mut self, val: __u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 8u8, val as u64) + } + } + #[inline] + pub unsafe fn ato_raw(this: *const Self) -> __u32 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 8u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_ato_raw(this: *mut Self, val: __u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 8u8, + val as u64, + ) + } + } + #[inline] + pub fn lrcv_flowlabel(&self) -> __u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 20u8) as u32) } + } + #[inline] + pub fn set_lrcv_flowlabel(&mut self, val: __u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(8usize, 20u8, val as u64) + } + } + #[inline] + pub unsafe fn lrcv_flowlabel_raw(this: *const Self) -> __u32 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 8usize, + 20u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_lrcv_flowlabel_raw(this: *mut Self, val: __u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 8usize, + 20u8, + val as u64, + ) + } + } + #[inline] + pub fn dst_quick_ack(&self) -> __u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(28usize, 1u8) as u32) } + } + #[inline] + pub fn set_dst_quick_ack(&mut self, val: __u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(28usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dst_quick_ack_raw(this: *const Self) -> __u32 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 28usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_dst_quick_ack_raw(this: *mut Self, val: __u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 28usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn unused(&self) -> __u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(29usize, 3u8) as u32) } + } + #[inline] + pub fn set_unused(&mut self, val: __u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(29usize, 3u8, val as u64) + } + } + #[inline] + pub unsafe fn unused_raw(this: *const Self) -> __u32 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 29usize, + 3u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_unused_raw(this: *mut Self, val: __u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 29usize, + 3u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + ato: __u32, + lrcv_flowlabel: __u32, + dst_quick_ack: __u32, + unused: __u32, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 8u8, { + let ato: u32 = unsafe { ::core::mem::transmute(ato) }; + ato as u64 + }); + __bindgen_bitfield_unit.set(8usize, 20u8, { + let lrcv_flowlabel: u32 = unsafe { ::core::mem::transmute(lrcv_flowlabel) }; + lrcv_flowlabel as u64 + }); + __bindgen_bitfield_unit.set(28usize, 1u8, { + let dst_quick_ack: u32 = unsafe { ::core::mem::transmute(dst_quick_ack) }; + dst_quick_ack as u64 + }); + __bindgen_bitfield_unit.set(29usize, 3u8, { + let unused: u32 = unsafe { ::core::mem::transmute(unused) }; + unused as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct inet_connection_sock__bindgen_ty_3 { + pub search_high: ::aya_ebpf::cty::c_int, + pub search_low: ::aya_ebpf::cty::c_int, + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, + pub probe_timestamp: u32_, +} +impl inet_connection_sock__bindgen_ty_3 { + #[inline] + pub fn probe_size(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 31u8) as u32) } + } + #[inline] + pub fn set_probe_size(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 31u8, val as u64) + } + } + #[inline] + pub unsafe fn probe_size_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 31u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_probe_size_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 31u8, + val as u64, + ) + } + } + #[inline] + pub fn enabled(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(31usize, 1u8) as u32) } + } + #[inline] + pub fn set_enabled(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(31usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn enabled_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 31usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_enabled_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 31usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(probe_size: u32_, enabled: u32_) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 31u8, { + let probe_size: u32 = unsafe { ::core::mem::transmute(probe_size) }; + probe_size as u64 + }); + __bindgen_bitfield_unit.set(31usize, 1u8, { + let enabled: u32 = unsafe { ::core::mem::transmute(enabled) }; + enabled as u64 + }); + __bindgen_bitfield_unit + } +} +impl inet_connection_sock { + #[inline] + pub fn icsk_ca_state(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 5u8) as u8) } + } + #[inline] + pub fn set_icsk_ca_state(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 5u8, val as u64) + } + } + #[inline] + pub unsafe fn icsk_ca_state_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 5u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_icsk_ca_state_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 5u8, + val as u64, + ) + } + } + #[inline] + pub fn icsk_ca_initialized(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) } + } + #[inline] + pub fn set_icsk_ca_initialized(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn icsk_ca_initialized_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 5usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_icsk_ca_initialized_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 5usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn icsk_ca_setsockopt(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) } + } + #[inline] + pub fn set_icsk_ca_setsockopt(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn icsk_ca_setsockopt_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 6usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_icsk_ca_setsockopt_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 6usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn icsk_ca_dst_locked(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) } + } + #[inline] + pub fn set_icsk_ca_dst_locked(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn icsk_ca_dst_locked_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 7usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_icsk_ca_dst_locked_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 7usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + icsk_ca_state: __u8, + icsk_ca_initialized: __u8, + icsk_ca_setsockopt: __u8, + icsk_ca_dst_locked: __u8, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 5u8, { + let icsk_ca_state: u8 = unsafe { ::core::mem::transmute(icsk_ca_state) }; + icsk_ca_state as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let icsk_ca_initialized: u8 = unsafe { ::core::mem::transmute(icsk_ca_initialized) }; + icsk_ca_initialized as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let icsk_ca_setsockopt: u8 = unsafe { ::core::mem::transmute(icsk_ca_setsockopt) }; + icsk_ca_setsockopt as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let icsk_ca_dst_locked: u8 = unsafe { ::core::mem::transmute(icsk_ca_dst_locked) }; + icsk_ca_dst_locked as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct inet_connection_sock_af_ops { + pub queue_xmit: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sock, + arg2: *mut sk_buff, + arg3: *mut flowi, + ) -> ::aya_ebpf::cty::c_int, + >, + pub net_header_len: u16_, + pub rebuild_header: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub sk_rx_dst_set: + ::core::option::Option, + pub conn_request: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sock, arg2: *mut sk_buff) -> ::aya_ebpf::cty::c_int, + >, + pub syn_recv_sock: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const sock, + arg2: *mut sk_buff, + arg3: *mut request_sock, + arg4: *mut dst_entry, + arg5: *mut request_sock, + arg6: *mut bool_, + arg7: ::core::option::Option, + ) -> *mut sock, + >, + pub setsockopt: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sock, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + arg4: sockptr_t, + arg5: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub getsockopt: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sock, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + arg4: *mut ::aya_ebpf::cty::c_char, + arg5: *mut ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub mtu_reduced: ::core::option::Option, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct inet_ehash_bucket { + pub chain: hlist_nulls_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct inet_frags { + pub qsize: ::aya_ebpf::cty::c_uint, + pub constructor: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut inet_frag_queue, arg2: *const ::aya_ebpf::cty::c_void), + >, + pub destructor: ::core::option::Option, + pub frag_expire: ::core::option::Option, + pub frags_cachep: *mut kmem_cache, + pub frags_cache_name: *const ::aya_ebpf::cty::c_char, + pub rhash_params: rhashtable_params, + pub refcnt: refcount_t, + pub completion: completion, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct inet_hashinfo { + pub ehash: *mut inet_ehash_bucket, + pub ehash_locks: *mut spinlock_t, + pub ehash_mask: ::aya_ebpf::cty::c_uint, + pub ehash_locks_mask: ::aya_ebpf::cty::c_uint, + pub bind_bucket_cachep: *mut kmem_cache, + pub bhash: *mut inet_bind_hashbucket, + pub bind2_bucket_cachep: *mut kmem_cache, + pub bhash2: *mut inet_bind_hashbucket, + pub bhash_size: ::aya_ebpf::cty::c_uint, + pub lhash2_mask: ::aya_ebpf::cty::c_uint, + pub lhash2: *mut inet_listen_hashbucket, + pub pernet: bool_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 48usize]>, + pub __bindgen_padding_0: [u8; 7usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct inet_listen_hashbucket { + pub lock: spinlock_t, + pub nulls_head: hlist_nulls_head, +} +#[repr(C)] +pub struct request_sock { + pub __req_common: sock_common, + pub dl_next: *mut request_sock, + pub mss: u16_, + pub num_retrans: u8_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub ts_recent: u32_, + pub rsk_timer: timer_list, + pub rsk_ops: *const request_sock_ops, + pub sk: *mut sock, + pub saved_syn: *mut saved_syn, + pub secid: u32_, + pub peer_secid: u32_, + pub timeout: u32_, +} +impl request_sock { + #[inline] + pub fn syncookie(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_syncookie(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn syncookie_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_syncookie_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn num_timeout(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 7u8) as u8) } + } + #[inline] + pub fn set_num_timeout(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 7u8, val as u64) + } + } + #[inline] + pub unsafe fn num_timeout_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 7u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_num_timeout_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 7u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(syncookie: u8_, num_timeout: u8_) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let syncookie: u8 = unsafe { ::core::mem::transmute(syncookie) }; + syncookie as u64 + }); + __bindgen_bitfield_unit.set(1usize, 7u8, { + let num_timeout: u8 = unsafe { ::core::mem::transmute(num_timeout) }; + num_timeout as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +pub struct inet_request_sock { + pub req: request_sock, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, + pub ir_mark: u32_, + pub __bindgen_anon_1: inet_request_sock__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union inet_request_sock__bindgen_ty_1 { + pub ireq_opt: *mut ip_options_rcu, + pub __bindgen_anon_1: inet_request_sock__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct inet_request_sock__bindgen_ty_1__bindgen_ty_1 { + pub ipv6_opt: *mut ipv6_txoptions, + pub pktopts: *mut sk_buff, +} +impl inet_request_sock { + #[inline] + pub fn snd_wscale(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u16) } + } + #[inline] + pub fn set_snd_wscale(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 4u8, val as u64) + } + } + #[inline] + pub unsafe fn snd_wscale_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 4u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_snd_wscale_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 4u8, + val as u64, + ) + } + } + #[inline] + pub fn rcv_wscale(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u16) } + } + #[inline] + pub fn set_rcv_wscale(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 4u8, val as u64) + } + } + #[inline] + pub unsafe fn rcv_wscale_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 4u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_rcv_wscale_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 4u8, + val as u64, + ) + } + } + #[inline] + pub fn tstamp_ok(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u16) } + } + #[inline] + pub fn set_tstamp_ok(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(8usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn tstamp_ok_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 8usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_tstamp_ok_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 8usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sack_ok(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u16) } + } + #[inline] + pub fn set_sack_ok(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(9usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sack_ok_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 9usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_sack_ok_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 9usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn wscale_ok(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u16) } + } + #[inline] + pub fn set_wscale_ok(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(10usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn wscale_ok_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 10usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_wscale_ok_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 10usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn ecn_ok(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u16) } + } + #[inline] + pub fn set_ecn_ok(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(11usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn ecn_ok_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 11usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_ecn_ok_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 11usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn acked(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) } + } + #[inline] + pub fn set_acked(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(12usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn acked_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 12usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_acked_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 12usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn no_srccheck(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) } + } + #[inline] + pub fn set_no_srccheck(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(13usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn no_srccheck_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 13usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_no_srccheck_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 13usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn smc_ok(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u16) } + } + #[inline] + pub fn set_smc_ok(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(14usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn smc_ok_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 14usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_smc_ok_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 14usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + snd_wscale: u16_, + rcv_wscale: u16_, + tstamp_ok: u16_, + sack_ok: u16_, + wscale_ok: u16_, + ecn_ok: u16_, + acked: u16_, + no_srccheck: u16_, + smc_ok: u16_, + ) -> __BindgenBitfieldUnit<[u8; 2usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 4u8, { + let snd_wscale: u16 = unsafe { ::core::mem::transmute(snd_wscale) }; + snd_wscale as u64 + }); + __bindgen_bitfield_unit.set(4usize, 4u8, { + let rcv_wscale: u16 = unsafe { ::core::mem::transmute(rcv_wscale) }; + rcv_wscale as u64 + }); + __bindgen_bitfield_unit.set(8usize, 1u8, { + let tstamp_ok: u16 = unsafe { ::core::mem::transmute(tstamp_ok) }; + tstamp_ok as u64 + }); + __bindgen_bitfield_unit.set(9usize, 1u8, { + let sack_ok: u16 = unsafe { ::core::mem::transmute(sack_ok) }; + sack_ok as u64 + }); + __bindgen_bitfield_unit.set(10usize, 1u8, { + let wscale_ok: u16 = unsafe { ::core::mem::transmute(wscale_ok) }; + wscale_ok as u64 + }); + __bindgen_bitfield_unit.set(11usize, 1u8, { + let ecn_ok: u16 = unsafe { ::core::mem::transmute(ecn_ok) }; + ecn_ok as u64 + }); + __bindgen_bitfield_unit.set(12usize, 1u8, { + let acked: u16 = unsafe { ::core::mem::transmute(acked) }; + acked as u64 + }); + __bindgen_bitfield_unit.set(13usize, 1u8, { + let no_srccheck: u16 = unsafe { ::core::mem::transmute(no_srccheck) }; + no_srccheck as u64 + }); + __bindgen_bitfield_unit.set(14usize, 1u8, { + let smc_ok: u16 = unsafe { ::core::mem::transmute(smc_ok) }; + smc_ok as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct inet_timewait_death_row { + pub tw_refcount: refcount_t, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 56usize]>, + pub hashinfo: *mut inet_hashinfo, + pub sysctl_max_tw_buckets: ::aya_ebpf::cty::c_int, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 48usize]>, + pub __bindgen_padding_0: u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct inode_operations { + pub lookup: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut inode, + arg2: *mut dentry, + arg3: ::aya_ebpf::cty::c_uint, + ) -> *mut dentry, + >, + pub get_link: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dentry, + arg2: *mut inode, + arg3: *mut delayed_call, + ) -> *const ::aya_ebpf::cty::c_char, + >, + pub permission: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut mnt_idmap, + arg2: *mut inode, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_inode_acl: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut inode, + arg2: ::aya_ebpf::cty::c_int, + arg3: bool_, + ) -> *mut posix_acl, + >, + pub readlink: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dentry, + arg2: *mut ::aya_ebpf::cty::c_char, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub create: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut mnt_idmap, + arg2: *mut inode, + arg3: *mut dentry, + arg4: umode_t, + arg5: bool_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub link: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dentry, + arg2: *mut inode, + arg3: *mut dentry, + ) -> ::aya_ebpf::cty::c_int, + >, + pub unlink: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut inode, arg2: *mut dentry) -> ::aya_ebpf::cty::c_int, + >, + pub symlink: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut mnt_idmap, + arg2: *mut inode, + arg3: *mut dentry, + arg4: *const ::aya_ebpf::cty::c_char, + ) -> ::aya_ebpf::cty::c_int, + >, + pub mkdir: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut mnt_idmap, + arg2: *mut inode, + arg3: *mut dentry, + arg4: umode_t, + ) -> *mut dentry, + >, + pub rmdir: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut inode, arg2: *mut dentry) -> ::aya_ebpf::cty::c_int, + >, + pub mknod: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut mnt_idmap, + arg2: *mut inode, + arg3: *mut dentry, + arg4: umode_t, + arg5: dev_t, + ) -> ::aya_ebpf::cty::c_int, + >, + pub rename: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut mnt_idmap, + arg2: *mut inode, + arg3: *mut dentry, + arg4: *mut inode, + arg5: *mut dentry, + arg6: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub setattr: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut mnt_idmap, + arg2: *mut dentry, + arg3: *mut iattr, + ) -> ::aya_ebpf::cty::c_int, + >, + pub getattr: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut mnt_idmap, + arg2: *const path, + arg3: *mut kstat, + arg4: u32_, + arg5: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub listxattr: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dentry, + arg2: *mut ::aya_ebpf::cty::c_char, + arg3: usize, + ) -> isize, + >, + pub fiemap: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut inode, + arg2: *mut fiemap_extent_info, + arg3: u64_, + arg4: u64_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub update_time: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut inode, + arg2: fs_update_time::Type, + arg3: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub sync_lazytime: ::core::option::Option, + pub atomic_open: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut inode, + arg2: *mut dentry, + arg3: *mut file, + arg4: ::aya_ebpf::cty::c_uint, + arg5: umode_t, + ) -> ::aya_ebpf::cty::c_int, + >, + pub tmpfile: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut mnt_idmap, + arg2: *mut inode, + arg3: *mut file, + arg4: umode_t, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_acl: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut mnt_idmap, + arg2: *mut dentry, + arg3: ::aya_ebpf::cty::c_int, + ) -> *mut posix_acl, + >, + pub set_acl: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut mnt_idmap, + arg2: *mut dentry, + arg3: *mut posix_acl, + arg4: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub fileattr_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut mnt_idmap, + arg2: *mut dentry, + arg3: *mut file_kattr, + ) -> ::aya_ebpf::cty::c_int, + >, + pub fileattr_get: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut dentry, arg2: *mut file_kattr) -> ::aya_ebpf::cty::c_int, + >, + pub get_offset_ctx: + ::core::option::Option *mut offset_ctx>, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 48usize]>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_alloc_cache { + pub entries: *mut *mut ::aya_ebpf::cty::c_void, + pub nr_cached: ::aya_ebpf::cty::c_uint, + pub max_cached: ::aya_ebpf::cty::c_uint, + pub elem_size: ::aya_ebpf::cty::c_uint, + pub init_clear: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +pub struct io_uring_sqe { + pub opcode: __u8, + pub flags: __u8, + pub ioprio: __u16, + pub fd: __s32, + pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_1, + pub __bindgen_anon_2: io_uring_sqe__bindgen_ty_2, + pub len: __u32, + pub __bindgen_anon_3: io_uring_sqe__bindgen_ty_3, + pub user_data: __u64, + pub __bindgen_anon_4: io_uring_sqe__bindgen_ty_4, + pub personality: __u16, + pub __bindgen_anon_5: io_uring_sqe__bindgen_ty_5, + pub __bindgen_anon_6: io_uring_sqe__bindgen_ty_6, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_1 { + pub off: __u64, + pub addr2: __u64, + pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_sqe__bindgen_ty_1__bindgen_ty_1 { + pub cmd_op: __u32, + pub __pad1: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_2 { + pub addr: __u64, + pub splice_off_in: __u64, + pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_2__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_sqe__bindgen_ty_2__bindgen_ty_1 { + pub level: __u32, + pub optname: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_3 { + pub rw_flags: __u32, + pub fsync_flags: __u32, + pub poll_events: __u16, + pub poll32_events: __u32, + pub sync_range_flags: __u32, + pub msg_flags: __u32, + pub timeout_flags: __u32, + pub accept_flags: __u32, + pub cancel_flags: __u32, + pub open_flags: __u32, + pub statx_flags: __u32, + pub fadvise_advice: __u32, + pub splice_flags: __u32, + pub rename_flags: __u32, + pub unlink_flags: __u32, + pub hardlink_flags: __u32, + pub xattr_flags: __u32, + pub msg_ring_flags: __u32, + pub uring_cmd_flags: __u32, + pub waitid_flags: __u32, + pub futex_flags: __u32, + pub install_fd_flags: __u32, + pub nop_flags: __u32, + pub pipe_flags: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_4 { + pub buf_index: __u16, + pub buf_group: __u16, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_5 { + pub splice_fd_in: __s32, + pub file_index: __u32, + pub zcrx_ifq_idx: __u32, + pub optlen: __u32, + pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_5__bindgen_ty_1, + pub __bindgen_anon_2: io_uring_sqe__bindgen_ty_5__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_sqe__bindgen_ty_5__bindgen_ty_1 { + pub addr_len: __u16, + pub __pad3: [__u16; 1usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_sqe__bindgen_ty_5__bindgen_ty_2 { + pub write_stream: __u8, + pub __pad4: [__u8; 3usize], +} +#[repr(C)] +pub struct io_uring_sqe__bindgen_ty_6 { + pub __bindgen_anon_1: __BindgenUnionField, + pub __bindgen_anon_2: __BindgenUnionField, + pub optval: __BindgenUnionField<__u64>, + pub cmd: __BindgenUnionField<[__u8; 0usize]>, + pub bindgen_union_field: [u64; 2usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_sqe__bindgen_ty_6__bindgen_ty_1 { + pub addr3: __u64, + pub __pad2: [__u64; 1usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_sqe__bindgen_ty_6__bindgen_ty_2 { + pub attr_ptr: __u64, + pub attr_type_mask: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct msghdr { + pub msg_name: *mut ::aya_ebpf::cty::c_void, + pub msg_namelen: ::aya_ebpf::cty::c_int, + pub msg_inq: ::aya_ebpf::cty::c_int, + pub msg_iter: iov_iter, + pub __bindgen_anon_1: msghdr__bindgen_ty_1, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub msg_flags: ::aya_ebpf::cty::c_uint, + pub msg_controllen: __kernel_size_t, + pub msg_iocb: *mut kiocb, + pub msg_ubuf: *mut ubuf_info, + pub sg_from_iter: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sk_buff, + arg2: *mut iov_iter, + arg3: usize, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union msghdr__bindgen_ty_1 { + pub msg_control: *mut ::aya_ebpf::cty::c_void, + pub msg_control_user: *mut ::aya_ebpf::cty::c_void, +} +impl msghdr { + #[inline] + pub fn msg_control_is_user(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_msg_control_is_user(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn msg_control_is_user_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_msg_control_is_user_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn msg_get_inq(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_msg_get_inq(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn msg_get_inq_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_msg_get_inq_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + msg_control_is_user: bool_, + msg_get_inq: bool_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let msg_control_is_user: u8 = unsafe { ::core::mem::transmute(msg_control_is_user) }; + msg_control_is_user as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let msg_get_inq: u8 = unsafe { ::core::mem::transmute(msg_get_inq) }; + msg_get_inq as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wait_page_queue { + pub folio: *mut folio, + pub bit_nr: ::aya_ebpf::cty::c_int, + pub wait: wait_queue_entry_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_big_cqe { + pub extra1: u64_, + pub extra2: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_bitmap { + pub sequence: u64_, + pub refcnt: refcount_t, + pub max: ::aya_ebpf::cty::c_uint, + pub bitmap: [::aya_ebpf::cty::c_ulong; 1024usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_bpf_filter { + pub refs: refcount_t, + pub prog: *mut bpf_prog, + pub next: *mut io_bpf_filter, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct io_bpf_filters { + pub refs: refcount_t, + pub lock: spinlock_t, + pub filters: *mut *mut io_bpf_filter, + pub callback_head: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_buffer { + pub list: list_head, + pub addr: __u64, + pub len: __u32, + pub bid: __u16, + pub bgid: __u16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_mapped_region { + pub pages: *mut *mut page, + pub ptr: *mut ::aya_ebpf::cty::c_void, + pub nr_pages: ::aya_ebpf::cty::c_uint, + pub flags: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_cmd_data { + pub file: *mut file, + pub data: [__u8; 56usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_comp_batch { + pub req_list: rq_list, + pub need_ts: bool_, + pub complete: ::core::option::Option, + pub poll_ctx: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct io_context { + pub refcount: atomic_long_t, + pub active_ref: atomic_t, + pub ioprio: ::aya_ebpf::cty::c_ushort, + pub lock: spinlock_t, + pub icq_tree: xarray, + pub icq_hint: *mut io_cq, + pub icq_list: hlist_head, + pub release_work: work_struct, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct io_cq { + pub q: *mut request_queue, + pub ioc: *mut io_context, + pub __bindgen_anon_1: io_cq__bindgen_ty_1, + pub __bindgen_anon_2: io_cq__bindgen_ty_2, + pub flags: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_cq__bindgen_ty_1 { + pub q_node: list_head, + pub __rcu_icq_cache: *mut kmem_cache, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_cq__bindgen_ty_2 { + pub ioc_node: hlist_node, + pub __rcu_head: callback_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct io_cqe { + pub user_data: __u64, + pub res: __s32, + pub __bindgen_anon_1: io_cqe__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_cqe__bindgen_ty_1 { + pub flags: __u32, + pub fd: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_ev_fd { + pub cq_ev_fd: *mut eventfd_ctx, + pub eventfd_async: ::aya_ebpf::cty::c_uint, + pub last_cq_tail: ::aya_ebpf::cty::c_uint, + pub refs: refcount_t, + pub ops: atomic_t, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_rsrc_data { + pub nr: ::aya_ebpf::cty::c_uint, + pub nodes: *mut *mut io_rsrc_node, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_file_table { + pub data: io_rsrc_data, + pub bitmap: *mut ::aya_ebpf::cty::c_ulong, + pub alloc_hint: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_hash_bucket { + pub list: hlist_head, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 56usize]>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_hash_table { + pub hbs: *mut io_hash_bucket, + pub hash_bits: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_wq_work_node { + pub next: *mut io_wq_work_node, +} +pub type io_tw_token_t = io_tw_state; +pub type io_req_tw_func_t = + ::core::option::Option; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_task_work { + pub node: llist_node, + pub func: io_req_tw_func_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_wq_work { + pub list: io_wq_work_node, + pub flags: atomic_t, + pub cancel_seq: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct io_kiocb { + pub __bindgen_anon_1: io_kiocb__bindgen_ty_1, + pub opcode: u8_, + pub iopoll_completed: u8_, + pub buf_index: u16_, + pub nr_tw: ::aya_ebpf::cty::c_uint, + pub flags: io_req_flags_t, + pub cqe: io_cqe, + pub ctx: *mut io_ring_ctx, + pub tctx: *mut io_uring_task, + pub __bindgen_anon_2: io_kiocb__bindgen_ty_2, + pub __bindgen_anon_3: io_kiocb__bindgen_ty_3, + pub file_node: *mut io_rsrc_node, + pub refs: atomic_t, + pub cancel_seq_set: bool_, + pub __bindgen_anon_4: io_kiocb__bindgen_ty_4, + pub __bindgen_anon_5: io_kiocb__bindgen_ty_5, + pub apoll: *mut async_poll, + pub async_data: *mut ::aya_ebpf::cty::c_void, + pub poll_refs: atomic_t, + pub link: *mut io_kiocb, + pub creds: *const cred, + pub work: io_wq_work, + pub big_cqe: io_big_cqe, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_kiocb__bindgen_ty_1 { + pub file: *mut file, + pub cmd: io_cmd_data, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_kiocb__bindgen_ty_2 { + pub kbuf: *mut io_buffer, + pub buf_node: *mut io_rsrc_node, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_kiocb__bindgen_ty_3 { + pub comp_list: io_wq_work_node, + pub apoll_events: __poll_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_kiocb__bindgen_ty_4 { + pub io_task_work: io_task_work, + pub iopoll_start: u64_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_kiocb__bindgen_ty_5 { + pub hash_node: hlist_node, + pub iopoll_node: list_head, + pub callback_head: callback_head, +} +#[repr(C)] +#[derive(Debug)] +pub struct io_mapped_ubuf { + pub ubuf: u64_, + pub len: ::aya_ebpf::cty::c_uint, + pub nr_bvecs: ::aya_ebpf::cty::c_uint, + pub folio_shift: ::aya_ebpf::cty::c_uint, + pub refs: refcount_t, + pub acct_pages: ::aya_ebpf::cty::c_ulong, + pub release: ::core::option::Option, + pub priv_: *mut ::aya_ebpf::cty::c_void, + pub flags: u8_, + pub dir: u8_, + pub bvec: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ubuf_info { + pub ops: *const ubuf_info_ops, + pub refcnt: refcount_t, + pub flags: u8_, +} +#[repr(C)] +#[derive(Debug)] +pub struct io_uring_cqe { + pub user_data: __u64, + pub res: __s32, + pub flags: __u32, + pub big_cqe: __IncompleteArrayField<__u64>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct io_pagetable { + pub domains_rwsem: rw_semaphore, + pub domains: xarray, + pub access_list: xarray, + pub next_domain_id: ::aya_ebpf::cty::c_uint, + pub iova_rwsem: rw_semaphore, + pub area_itree: rb_root_cached, + pub allowed_itree: rb_root_cached, + pub reserved_itree: rb_root_cached, + pub disable_large_pages: u8_, + pub iova_alignment: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_restriction { + pub register_op: [::aya_ebpf::cty::c_ulong; 1usize], + pub sqe_op: [::aya_ebpf::cty::c_ulong; 2usize], + pub bpf_filters: *mut io_bpf_filters, + pub bpf_filters_cow: bool_, + pub sqe_flags_allowed: u8_, + pub sqe_flags_required: u8_, + pub op_registered: bool_, + pub reg_registered: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_wq_work_list { + pub first: *mut io_wq_work_node, + pub last: *mut io_wq_work_node, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_submit_link { + pub head: *mut io_kiocb, + pub last: *mut io_kiocb, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_submit_state { + pub free_list: io_wq_work_node, + pub compl_reqs: io_wq_work_list, + pub link: io_submit_link, + pub plug_started: bool_, + pub need_plug: bool_, + pub cq_flush: bool_, + pub submit_nr: ::aya_ebpf::cty::c_ushort, + pub plug: blk_plug, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct io_ring_ctx { + pub __bindgen_anon_1: io_ring_ctx__bindgen_ty_1, + pub __bindgen_anon_2: io_ring_ctx__bindgen_ty_2, + pub __bindgen_anon_3: io_ring_ctx__bindgen_ty_3, + pub __bindgen_anon_4: io_ring_ctx__bindgen_ty_4, + pub __bindgen_anon_5: io_ring_ctx__bindgen_ty_5, + pub completion_lock: spinlock_t, + pub cq_overflow_list: list_head, + pub waitid_list: hlist_head, + pub futex_list: hlist_head, + pub futex_cache: io_alloc_cache, + pub sq_creds: *const cred, + pub sq_data: *mut io_sq_data, + pub sqo_sq_wait: wait_queue_head, + pub sqd_list: list_head, + pub file_alloc_start: ::aya_ebpf::cty::c_uint, + pub file_alloc_end: ::aya_ebpf::cty::c_uint, + pub poll_wq: wait_queue_head, + pub restrictions: io_restriction, + pub zcrx_ctxs: xarray, + pub pers_next: u32_, + pub personalities: xarray, + pub hash_map: *mut io_wq_hash, + pub user: *mut user_struct, + pub mm_account: *mut mm_struct, + pub tctx_list: list_head, + pub tctx_lock: mutex, + pub fallback_llist: llist_head, + pub fallback_work: delayed_work, + pub exit_work: work_struct, + pub ref_comp: completion, + pub iowq_limits: [u32_; 2usize], + pub poll_wq_task_work: callback_head, + pub defer_list: list_head, + pub nr_drained: ::aya_ebpf::cty::c_uint, + pub nr_req_allocated: ::aya_ebpf::cty::c_uint, + pub napi_list: list_head, + pub napi_lock: spinlock_t, + pub napi_busy_poll_dt: ktime_t, + pub napi_prefer_busy_poll: bool_, + pub napi_track_mode: u8_, + pub napi_ht: [hlist_head; 16usize], + pub bpf_ops: *mut io_uring_bpf_ops, + pub mmap_lock: mutex, + pub sq_region: io_mapped_region, + pub ring_region: io_mapped_region, + pub param_region: io_mapped_region, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 56usize]>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_ring_ctx__bindgen_ty_1 { + pub flags: ::aya_ebpf::cty::c_uint, + pub int_flags: ::aya_ebpf::cty::c_uint, + pub submitter_task: *mut task_struct, + pub rings: *mut io_rings, + pub bpf_filters: *mut *mut io_bpf_filter, + pub refs: percpu_ref, + pub clockid: clockid_t, + pub clock_offset: tk_offsets::Type, + pub notify_method: task_work_notify_mode::Type, + pub sq_thread_idle: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct io_ring_ctx__bindgen_ty_2 { + pub uring_lock: mutex, + pub sq_array: *mut u32_, + pub sq_sqes: *mut io_uring_sqe, + pub cached_sq_head: ::aya_ebpf::cty::c_uint, + pub sq_entries: ::aya_ebpf::cty::c_uint, + pub cancel_seq: atomic_t, + pub poll_multi_queue: bool_, + pub iopoll_list: list_head, + pub file_table: io_file_table, + pub buf_table: io_rsrc_data, + pub node_cache: io_alloc_cache, + pub imu_cache: io_alloc_cache, + pub submit_state: io_submit_state, + pub io_bl_xa: xarray, + pub cancel_table: io_hash_table, + pub apoll_cache: io_alloc_cache, + pub netmsg_cache: io_alloc_cache, + pub rw_cache: io_alloc_cache, + pub cmd_cache: io_alloc_cache, + pub loop_step: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut io_ring_ctx, + arg2: *mut iou_loop_params, + ) -> ::aya_ebpf::cty::c_int, + >, + pub cancelable_uring_cmd: hlist_head, + pub hybrid_poll_time: u64_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>, +} +impl io_ring_ctx__bindgen_ty_2 { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_ring_ctx__bindgen_ty_3 { + pub cqe_cached: *mut io_uring_cqe, + pub cqe_sentinel: *mut io_uring_cqe, + pub cached_cq_tail: ::aya_ebpf::cty::c_uint, + pub cq_entries: ::aya_ebpf::cty::c_uint, + pub io_ev_fd: *mut io_ev_fd, + pub cq_wait_arg: *mut ::aya_ebpf::cty::c_void, + pub cq_wait_size: usize, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>, +} +impl io_ring_ctx__bindgen_ty_3 { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct io_ring_ctx__bindgen_ty_4 { + pub rings_rcu: *mut io_rings, + pub work_llist: llist_head, + pub retry_llist: llist_head, + pub check_cq: ::aya_ebpf::cty::c_ulong, + pub cq_wait_nr: atomic_t, + pub cq_timeouts: atomic_t, + pub cq_wait: wait_queue_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct io_ring_ctx__bindgen_ty_5 { + pub timeout_lock: raw_spinlock_t, + pub timeout_list: list_head, + pub ltimeout_list: list_head, + pub cq_last_tm_flush: ::aya_ebpf::cty::c_uint, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>, + pub __bindgen_padding_0: u32, +} +impl io_ring_ctx__bindgen_ty_5 { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring { + pub head: u32_, + pub tail: u32_, +} +#[repr(C)] +#[derive(Debug)] +pub struct io_rings { + pub sq: io_uring, + pub cq: io_uring, + pub sq_ring_mask: u32_, + pub cq_ring_mask: u32_, + pub sq_ring_entries: u32_, + pub cq_ring_entries: u32_, + pub sq_dropped: u32_, + pub sq_flags: atomic_t, + pub cq_flags: u32_, + pub cq_overflow: u32_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>, + pub cqes: __IncompleteArrayField, +} +impl io_rings { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct io_rsrc_node { + pub type_: ::aya_ebpf::cty::c_uchar, + pub refs: ::aya_ebpf::cty::c_int, + pub tag: u64_, + pub __bindgen_anon_1: io_rsrc_node__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_rsrc_node__bindgen_ty_1 { + pub file_ptr: ::aya_ebpf::cty::c_ulong, + pub buf: *mut io_mapped_ubuf, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct io_sq_data { + pub refs: refcount_t, + pub park_pending: atomic_t, + pub lock: mutex, + pub ctx_list: list_head, + pub thread: *mut task_struct, + pub wait: wait_queue_head, + pub sq_thread_idle: ::aya_ebpf::cty::c_uint, + pub sq_cpu: ::aya_ebpf::cty::c_int, + pub task_pid: pid_t, + pub task_tgid: pid_t, + pub work_time: u64_, + pub state: ::aya_ebpf::cty::c_ulong, + pub exited: completion, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct io_tlb_area { + pub used: ::aya_ebpf::cty::c_ulong, + pub index: ::aya_ebpf::cty::c_uint, + pub lock: spinlock_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_tlb_pool { + pub start: phys_addr_t, + pub end: phys_addr_t, + pub vaddr: *mut ::aya_ebpf::cty::c_void, + pub nslabs: ::aya_ebpf::cty::c_ulong, + pub late_alloc: bool_, + pub nareas: ::aya_ebpf::cty::c_uint, + pub area_nslabs: ::aya_ebpf::cty::c_uint, + pub areas: *mut io_tlb_area, + pub slots: *mut io_tlb_slot, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_tlb_mem { + pub defpool: io_tlb_pool, + pub nslabs: ::aya_ebpf::cty::c_ulong, + pub debugfs: *mut dentry, + pub force_bounce: bool_, + pub for_alloc: bool_, + pub total_used: atomic_long_t, + pub used_hiwater: atomic_long_t, + pub transient_nslabs: atomic_long_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_tlb_slot { + pub orig_addr: phys_addr_t, + pub alloc_size: usize, + pub list: ::aya_ebpf::cty::c_ushort, + pub pad_slots: ::aya_ebpf::cty::c_ushort, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_tw_req { + pub req: *mut io_kiocb, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_tw_state { + pub cancel: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_cmd { + pub file: *mut file, + pub sqe: *const io_uring_sqe, + pub cmd_op: u32_, + pub flags: u32_, + pub pdu: [u8_; 32usize], + pub unused: [u8_; 8usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct io_uring_task { + pub cached_refs: ::aya_ebpf::cty::c_int, + pub last: *const io_ring_ctx, + pub task: *mut task_struct, + pub io_wq: *mut io_wq, + pub registered_rings: [*mut file; 16usize], + pub xa: xarray, + pub wait: wait_queue_head, + pub in_cancel: atomic_t, + pub inflight_tracked: atomic_t, + pub inflight: percpu_counter, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, + pub __bindgen_anon_1: io_uring_task__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_task__bindgen_ty_1 { + pub task_list: llist_head, + pub task_work: callback_head, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 40usize]>, +} +impl io_uring_task { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct io_wq_acct { + pub workers_lock: raw_spinlock_t, + pub nr_workers: ::aya_ebpf::cty::c_uint, + pub max_workers: ::aya_ebpf::cty::c_uint, + pub nr_running: atomic_t, + pub free_list: hlist_nulls_head, + pub all_list: list_head, + pub lock: raw_spinlock_t, + pub work_list: io_wq_work_list, + pub flags: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct io_wq { + pub state: ::aya_ebpf::cty::c_ulong, + pub hash: *mut io_wq_hash, + pub worker_refs: atomic_t, + pub worker_done: completion, + pub cpuhp_node: hlist_node, + pub task: *mut task_struct, + pub acct: [io_wq_acct; 2usize], + pub wait: wait_queue_entry, + pub hash_tail: [*mut io_wq_work; 64usize], + pub cpu_mask: cpumask_var_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct io_wq_hash { + pub refs: refcount_t, + pub map: ::aya_ebpf::cty::c_ulong, + pub wait: wait_queue_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rt6_info { + pub dst: dst_entry, + pub from: *mut fib6_info, + pub sernum: ::aya_ebpf::cty::c_int, + pub rt6i_dst: rt6key, + pub rt6i_src: rt6key, + pub rt6i_gateway: in6_addr, + pub rt6i_idev: *mut inet6_dev, + pub rt6i_flags: u32_, + pub rt6i_nfheader_len: ::aya_ebpf::cty::c_ushort, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_opt_hdr { + pub nexthdr: __u8, + pub hdrlen: __u8, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ioam6_pernet_data { + pub lock: mutex, + pub namespaces: rhashtable, + pub schemas: rhashtable, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iomap { + pub addr: u64_, + pub offset: loff_t, + pub length: u64_, + pub type_: u16_, + pub flags: u16_, + pub bdev: *mut block_device, + pub dax_dev: *mut dax_device, + pub inline_data: *mut ::aya_ebpf::cty::c_void, + pub private: *mut ::aya_ebpf::cty::c_void, + pub validity_cookie: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iommu_attach_handle { + pub domain: *mut iommu_domain, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iommu_dirty_bitmap { + pub bitmap: *mut iova_bitmap, + pub gather: *mut iommu_iotlb_gather, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iommu_dirty_ops { + pub set_dirty_tracking: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut iommu_domain, arg2: bool_) -> ::aya_ebpf::cty::c_int, + >, + pub read_and_clear_dirty: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut iommu_domain, + arg2: ::aya_ebpf::cty::c_ulong, + arg3: usize, + arg4: ::aya_ebpf::cty::c_ulong, + arg5: *mut iommu_dirty_bitmap, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iova { + pub node: rb_node, + pub pfn_hi: ::aya_ebpf::cty::c_ulong, + pub pfn_lo: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct iova_domain { + pub iova_rbtree_lock: spinlock_t, + pub rbroot: rb_root, + pub cached_node: *mut rb_node, + pub cached32_node: *mut rb_node, + pub granule: ::aya_ebpf::cty::c_ulong, + pub start_pfn: ::aya_ebpf::cty::c_ulong, + pub dma_32bit_pfn: ::aya_ebpf::cty::c_ulong, + pub max32_alloc_size: ::aya_ebpf::cty::c_ulong, + pub anchor: iova, + pub rcaches: *mut iova_rcache, + pub cpuhp_dead: hlist_node, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iommu_dma_options { + pub qt: iommu_dma_queue_type::Type, + pub fq_size: usize, + pub fq_timeout: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct iommu_dma_cookie { + pub iovad: iova_domain, + pub msi_page_list: list_head, + pub __bindgen_anon_1: iommu_dma_cookie__bindgen_ty_1, + pub fq_flush_start_cnt: atomic64_t, + pub fq_flush_finish_cnt: atomic64_t, + pub fq_timer: timer_list, + pub fq_timer_on: atomic_t, + pub fq_domain: *mut iommu_domain, + pub options: iommu_dma_options, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union iommu_dma_cookie__bindgen_ty_1 { + pub single_fq: *mut iova_fq, + pub percpu_fq: *mut iova_fq, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iommu_dma_msi_cookie { + pub msi_iova: dma_addr_t, + pub msi_page_list: list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iommu_domain_ops { + pub attach_dev: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut iommu_domain, + arg2: *mut device, + arg3: *mut iommu_domain, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_dev_pasid: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut iommu_domain, + arg2: *mut device, + arg3: ioasid_t, + arg4: *mut iommu_domain, + ) -> ::aya_ebpf::cty::c_int, + >, + pub map_pages: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut iommu_domain, + arg2: ::aya_ebpf::cty::c_ulong, + arg3: phys_addr_t, + arg4: usize, + arg5: usize, + arg6: ::aya_ebpf::cty::c_int, + arg7: gfp_t, + arg8: *mut usize, + ) -> ::aya_ebpf::cty::c_int, + >, + pub unmap_pages: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut iommu_domain, + arg2: ::aya_ebpf::cty::c_ulong, + arg3: usize, + arg4: usize, + arg5: *mut iommu_iotlb_gather, + ) -> usize, + >, + pub flush_iotlb_all: ::core::option::Option, + pub iotlb_sync_map: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut iommu_domain, + arg2: ::aya_ebpf::cty::c_ulong, + arg3: usize, + ) -> ::aya_ebpf::cty::c_int, + >, + pub iotlb_sync: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut iommu_domain, arg2: *mut iommu_iotlb_gather), + >, + pub cache_invalidate_user: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut iommu_domain, + arg2: *mut iommu_user_data_array, + ) -> ::aya_ebpf::cty::c_int, + >, + pub iova_to_phys: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut iommu_domain, arg2: dma_addr_t) -> phys_addr_t, + >, + pub enforce_cache_coherency: + ::core::option::Option bool_>, + pub set_pgtable_quirks: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut iommu_domain, + arg2: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, + pub free: ::core::option::Option, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iommu_fault_page_request { + pub flags: u32_, + pub pasid: u32_, + pub grpid: u32_, + pub perm: u32_, + pub addr: u64_, + pub private_data: [u64_; 2usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iommu_fault { + pub type_: u32_, + pub prm: iommu_fault_page_request, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct iommu_fault_param { + pub lock: mutex, + pub users: refcount_t, + pub rcu: callback_head, + pub dev: *mut device, + pub queue: *mut iopf_queue, + pub queue_list: list_head, + pub partial: list_head, + pub faults: list_head, +} +#[repr(C)] +#[derive(Debug)] +pub struct iommu_fwspec { + pub iommu_fwnode: *mut fwnode_handle, + pub flags: u32_, + pub num_ids: ::aya_ebpf::cty::c_uint, + pub ids: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct iommu_group { + pub kobj: kobject, + pub devices_kobj: *mut kobject, + pub devices: list_head, + pub pasid_array: xarray, + pub mutex: mutex, + pub iommu_data: *mut ::aya_ebpf::cty::c_void, + pub iommu_data_release: + ::core::option::Option, + pub name: *mut ::aya_ebpf::cty::c_char, + pub id: ::aya_ebpf::cty::c_int, + pub default_domain: *mut iommu_domain, + pub blocking_domain: *mut iommu_domain, + pub domain: *mut iommu_domain, + pub entry: list_head, + pub owner_cnt: ::aya_ebpf::cty::c_uint, + pub recovery_cnt: ::aya_ebpf::cty::c_uint, + pub owner: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iommu_pages_list { + pub pages: list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iommu_iotlb_gather { + pub start: ::aya_ebpf::cty::c_ulong, + pub end: ::aya_ebpf::cty::c_ulong, + pub pgsize: usize, + pub freelist: iommu_pages_list, + pub queued: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iommu_mm_data { + pub pasid: u32_, + pub mm: *mut mm_struct, + pub sva_domains: list_head, + pub mm_list_elm: list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iommu_ops { + pub capable: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut device, arg2: iommu_cap::Type) -> bool_, + >, + pub hw_info: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut device, + arg2: *mut u32_, + arg3: *mut iommu_hw_info_type::Type, + ) -> *mut ::aya_ebpf::cty::c_void, + >, + pub domain_alloc_identity: + ::core::option::Option *mut iommu_domain>, + pub domain_alloc_paging_flags: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut device, + arg2: u32_, + arg3: *const iommu_user_data, + ) -> *mut iommu_domain, + >, + pub domain_alloc_paging: + ::core::option::Option *mut iommu_domain>, + pub domain_alloc_sva: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut device, arg2: *mut mm_struct) -> *mut iommu_domain, + >, + pub domain_alloc_nested: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut device, + arg2: *mut iommu_domain, + arg3: u32_, + arg4: *const iommu_user_data, + ) -> *mut iommu_domain, + >, + pub probe_device: + ::core::option::Option *mut iommu_device>, + pub release_device: ::core::option::Option, + pub probe_finalize: ::core::option::Option, + pub device_group: + ::core::option::Option *mut iommu_group>, + pub get_resv_regions: + ::core::option::Option, + pub of_xlate: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut device, + arg2: *const of_phandle_args, + ) -> ::aya_ebpf::cty::c_int, + >, + pub is_attach_deferred: + ::core::option::Option bool_>, + pub page_response: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut device, + arg2: *mut iopf_fault, + arg3: *mut iommu_page_response, + ), + >, + pub def_domain_type: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub get_viommu_size: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut device, arg2: iommu_viommu_type::Type) -> usize, + >, + pub viommu_init: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut iommufd_viommu, + arg2: *mut iommu_domain, + arg3: *const iommu_user_data, + ) -> ::aya_ebpf::cty::c_int, + >, + pub default_domain_ops: *const iommu_domain_ops, + pub owner: *mut module, + pub identity_domain: *mut iommu_domain, + pub blocked_domain: *mut iommu_domain, + pub release_domain: *mut iommu_domain, + pub default_domain: *mut iommu_domain, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: [u8; 7usize], +} +impl iommu_ops { + #[inline] + pub fn user_pasid_table(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_user_pasid_table(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn user_pasid_table_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_user_pasid_table_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(user_pasid_table: u8_) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let user_pasid_table: u8 = unsafe { ::core::mem::transmute(user_pasid_table) }; + user_pasid_table as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iommu_page_response { + pub pasid: u32_, + pub grpid: u32_, + pub code: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct pmu { + pub entry: list_head, + pub events_lock: spinlock_t, + pub events: list_head, + pub module: *mut module, + pub dev: *mut device, + pub parent: *mut device, + pub attr_groups: *mut *const attribute_group, + pub attr_update: *mut *const attribute_group, + pub name: *const ::aya_ebpf::cty::c_char, + pub type_: ::aya_ebpf::cty::c_int, + pub capabilities: ::aya_ebpf::cty::c_int, + pub scope: ::aya_ebpf::cty::c_uint, + pub cpu_pmu_context: *mut *mut perf_cpu_pmu_context, + pub exclusive_cnt: atomic_t, + pub task_ctx_nr: ::aya_ebpf::cty::c_int, + pub hrtimer_interval_ms: ::aya_ebpf::cty::c_int, + pub nr_addr_filters: ::aya_ebpf::cty::c_uint, + pub pmu_enable: ::core::option::Option, + pub pmu_disable: ::core::option::Option, + pub event_init: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut perf_event) -> ::aya_ebpf::cty::c_int, + >, + pub event_mapped: + ::core::option::Option, + pub event_unmapped: + ::core::option::Option, + pub add: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut perf_event, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub del: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut perf_event, arg2: ::aya_ebpf::cty::c_int), + >, + pub start: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut perf_event, arg2: ::aya_ebpf::cty::c_int), + >, + pub stop: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut perf_event, arg2: ::aya_ebpf::cty::c_int), + >, + pub read: ::core::option::Option, + pub start_txn: + ::core::option::Option, + pub commit_txn: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub cancel_txn: ::core::option::Option, + pub event_idx: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut perf_event) -> ::aya_ebpf::cty::c_int, + >, + pub sched_task: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut perf_event_pmu_context, + arg2: *mut task_struct, + arg3: bool_, + ), + >, + pub task_ctx_cache: *mut kmem_cache, + pub setup_aux: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut perf_event, + arg2: *mut *mut ::aya_ebpf::cty::c_void, + arg3: ::aya_ebpf::cty::c_int, + arg4: bool_, + ) -> *mut ::aya_ebpf::cty::c_void, + >, + pub free_aux: ::core::option::Option, + pub snapshot_aux: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut perf_event, + arg2: *mut perf_output_handle, + arg3: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_long, + >, + pub addr_filters_validate: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut list_head) -> ::aya_ebpf::cty::c_int, + >, + pub addr_filters_sync: ::core::option::Option, + pub aux_output_match: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut perf_event) -> ::aya_ebpf::cty::c_int, + >, + pub filter: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut pmu, arg2: ::aya_ebpf::cty::c_int) -> bool_, + >, + pub check_period: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut perf_event, arg2: u64_) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iommu_user_data { + pub type_: ::aya_ebpf::cty::c_uint, + pub uptr: *mut ::aya_ebpf::cty::c_void, + pub len: usize, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iommu_user_data_array { + pub type_: ::aya_ebpf::cty::c_uint, + pub uptr: *mut ::aya_ebpf::cty::c_void, + pub entry_len: usize, + pub entry_num: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct iommufd_access { + pub obj: iommufd_object, + pub ictx: *mut iommufd_ctx, + pub ioas: *mut iommufd_ioas, + pub ioas_unpin: *mut iommufd_ioas, + pub ioas_lock: mutex, + pub ops: *const iommufd_access_ops, + pub data: *mut ::aya_ebpf::cty::c_void, + pub iova_alignment: ::aya_ebpf::cty::c_ulong, + pub iopt_access_list_id: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iommufd_access_ops { + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub unmap: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ::aya_ebpf::cty::c_void, + arg2: ::aya_ebpf::cty::c_ulong, + arg3: ::aya_ebpf::cty::c_ulong, + ), + >, +} +impl iommufd_access_ops { + #[inline] + pub fn needs_pin_pages(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_needs_pin_pages(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn needs_pin_pages_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_needs_pin_pages_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(needs_pin_pages: u8_) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let needs_pin_pages: u8 = unsafe { ::core::mem::transmute(needs_pin_pages) }; + needs_pin_pages as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct iommufd_ctx { + pub file: *mut file, + pub objects: xarray, + pub groups: xarray, + pub destroy_wait: wait_queue_head_t, + pub ioas_creation_lock: rw_semaphore, + pub mt_mmap: maple_tree, + pub sw_msi_lock: mutex, + pub sw_msi_list: list_head, + pub sw_msi_id: ::aya_ebpf::cty::c_uint, + pub account_mode: u8_, + pub no_iommu_mode: u8_, + pub vfio_ioas: *mut iommufd_ioas, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iommufd_device { + pub obj: iommufd_object, + pub ictx: *mut iommufd_ctx, + pub igroup: *mut iommufd_group, + pub group_item: list_head, + pub dev: *mut device, + pub enforce_cache_coherency: bool_, + pub vdev: *mut iommufd_vdevice, + pub destroying: bool_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct iommufd_eventq { + pub obj: iommufd_object, + pub ictx: *mut iommufd_ctx, + pub filep: *mut file, + pub lock: spinlock_t, + pub deliver: list_head, + pub wait_queue: wait_queue_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct iommufd_fault { + pub common: iommufd_eventq, + pub mutex: mutex, + pub response: xarray, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iommufd_sw_msi_maps { + pub bitmap: [::aya_ebpf::cty::c_ulong; 1usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct iommufd_group { + pub ref_: kref, + pub lock: mutex, + pub ictx: *mut iommufd_ctx, + pub group: *mut iommu_group, + pub pasid_attach: xarray, + pub required_sw_msi: iommufd_sw_msi_maps, + pub sw_msi_start: phys_addr_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iommufd_hw_pagetable { + pub obj: iommufd_object, + pub domain: *mut iommu_domain, + pub fault: *mut iommufd_fault, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: [u8; 7usize], +} +impl iommufd_hw_pagetable { + #[inline] + pub fn pasid_compat(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_pasid_compat(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn pasid_compat_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_pasid_compat_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(pasid_compat: bool_) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let pasid_compat: u8 = unsafe { ::core::mem::transmute(pasid_compat) }; + pasid_compat as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iommufd_hw_queue { + pub obj: iommufd_object, + pub viommu: *mut iommufd_viommu, + pub access: *mut iommufd_access, + pub base_addr: u64_, + pub length: usize, + pub type_: iommu_hw_queue_type::Type, + pub destroy: ::core::option::Option, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iommufd_hwpt_paging { + pub common: iommufd_hw_pagetable, + pub ioas: *mut iommufd_ioas, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub hwpt_item: list_head, + pub present_sw_msi: iommufd_sw_msi_maps, +} +impl iommufd_hwpt_paging { + #[inline] + pub fn auto_domain(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_auto_domain(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn auto_domain_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_auto_domain_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn enforce_cache_coherency(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_enforce_cache_coherency(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn enforce_cache_coherency_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_enforce_cache_coherency_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn nest_parent(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) } + } + #[inline] + pub fn set_nest_parent(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn nest_parent_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_nest_parent_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + auto_domain: bool_, + enforce_cache_coherency: bool_, + nest_parent: bool_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let auto_domain: u8 = unsafe { ::core::mem::transmute(auto_domain) }; + auto_domain as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let enforce_cache_coherency: u8 = + unsafe { ::core::mem::transmute(enforce_cache_coherency) }; + enforce_cache_coherency as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let nest_parent: u8 = unsafe { ::core::mem::transmute(nest_parent) }; + nest_parent as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct iommufd_ioas { + pub obj: iommufd_object, + pub iopt: io_pagetable, + pub mutex: mutex, + pub hwpt_list: list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iommufd_vdevice { + pub obj: iommufd_object, + pub viommu: *mut iommufd_viommu, + pub idev: *mut iommufd_device, + pub virt_id: u64_, + pub destroy: ::core::option::Option, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iommufd_viommu_ops { + pub destroy: ::core::option::Option, + pub alloc_domain_nested: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut iommufd_viommu, + arg2: u32_, + arg3: *const iommu_user_data, + ) -> *mut iommu_domain, + >, + pub cache_invalidate: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut iommufd_viommu, + arg2: *mut iommu_user_data_array, + ) -> ::aya_ebpf::cty::c_int, + >, + pub vdevice_size: usize, + pub vdevice_init: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut iommufd_vdevice) -> ::aya_ebpf::cty::c_int, + >, + pub get_hw_queue_size: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut iommufd_viommu, arg2: iommu_hw_queue_type::Type) -> usize, + >, + pub hw_queue_init_phys: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut iommufd_hw_queue, + arg2: u32_, + arg3: phys_addr_t, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iopf_fault { + pub fault: iommu_fault, + pub list: list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iopf_group { + pub last_fault: iopf_fault, + pub faults: list_head, + pub fault_count: usize, + pub pending_node: list_head, + pub work: work_struct, + pub attach_handle: *mut iommu_attach_handle, + pub fault_param: *mut iommu_fault_param, + pub node: list_head, + pub cookie: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct iopf_queue { + pub wq: *mut workqueue_struct, + pub devices: list_head, + pub lock: mutex, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iou_loop_params { + pub cq_wait_idx: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iova_bitmap_map { + pub iova: ::aya_ebpf::cty::c_ulong, + pub length: ::aya_ebpf::cty::c_ulong, + pub pgshift: ::aya_ebpf::cty::c_ulong, + pub pgoff: ::aya_ebpf::cty::c_ulong, + pub npages: ::aya_ebpf::cty::c_ulong, + pub pages: *mut *mut page, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iova_bitmap { + pub mapped: iova_bitmap_map, + pub bitmap: *mut u8_, + pub mapped_base_index: ::aya_ebpf::cty::c_ulong, + pub mapped_total_index: ::aya_ebpf::cty::c_ulong, + pub iova: ::aya_ebpf::cty::c_ulong, + pub length: usize, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct iova_cpu_rcache { + pub lock: spinlock_t, + pub loaded: *mut iova_magazine, + pub prev: *mut iova_magazine, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iova_fq_entry { + pub iova_pfn: ::aya_ebpf::cty::c_ulong, + pub pages: ::aya_ebpf::cty::c_ulong, + pub freelist: iommu_pages_list, + pub counter: u64_, +} +#[repr(C)] +pub struct iova_fq { + pub lock: spinlock_t, + pub head: ::aya_ebpf::cty::c_uint, + pub tail: ::aya_ebpf::cty::c_uint, + pub mod_mask: ::aya_ebpf::cty::c_uint, + pub entries: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct iova_magazine { + pub __bindgen_anon_1: iova_magazine__bindgen_ty_1, + pub pfns: [::aya_ebpf::cty::c_ulong; 127usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union iova_magazine__bindgen_ty_1 { + pub size: ::aya_ebpf::cty::c_ulong, + pub next: *mut iova_magazine, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct iova_rcache { + pub lock: spinlock_t, + pub depot_size: ::aya_ebpf::cty::c_uint, + pub depot: *mut iova_magazine, + pub cpu_rcaches: *mut iova_cpu_rcache, + pub iovad: *mut iova_domain, + pub work: delayed_work, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ip6_flowlabel { + pub next: *mut ip6_flowlabel, + pub label: __be32, + pub users: atomic_t, + pub dst: in6_addr, + pub opt: *mut ipv6_txoptions, + pub linger: ::aya_ebpf::cty::c_ulong, + pub rcu: callback_head, + pub share: u8_, + pub owner: ip6_flowlabel__bindgen_ty_1, + pub lastuse: ::aya_ebpf::cty::c_ulong, + pub expires: ::aya_ebpf::cty::c_ulong, + pub fl_net: *mut net, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ip6_flowlabel__bindgen_ty_1 { + pub pid: *mut pid, + pub uid: kuid_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ip6_sf_list { + pub sf_next: *mut ip6_sf_list, + pub sf_addr: in6_addr, + pub sf_count: [::aya_ebpf::cty::c_ulong; 2usize], + pub sf_gsresp: ::aya_ebpf::cty::c_uchar, + pub sf_oldin: ::aya_ebpf::cty::c_uchar, + pub sf_crcount: ::aya_ebpf::cty::c_uchar, + pub rcu: callback_head, +} +#[repr(C)] +pub struct ip6_sf_socklist { + pub sl_max: ::aya_ebpf::cty::c_uint, + pub sl_count: ::aya_ebpf::cty::c_uint, + pub rcu: callback_head, + pub sl_addr: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ip_tunnel_encap { + pub type_: u16_, + pub flags: u16_, + pub sport: __be16, + pub dport: __be16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ip_conntrack_stat { + pub found: ::aya_ebpf::cty::c_uint, + pub invalid: ::aya_ebpf::cty::c_uint, + pub insert: ::aya_ebpf::cty::c_uint, + pub insert_failed: ::aya_ebpf::cty::c_uint, + pub clash_resolve: ::aya_ebpf::cty::c_uint, + pub drop: ::aya_ebpf::cty::c_uint, + pub early_drop: ::aya_ebpf::cty::c_uint, + pub error: ::aya_ebpf::cty::c_uint, + pub expect_new: ::aya_ebpf::cty::c_uint, + pub expect_create: ::aya_ebpf::cty::c_uint, + pub expect_delete: ::aya_ebpf::cty::c_uint, + pub search_restart: ::aya_ebpf::cty::c_uint, + pub chaintoolong: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ip_ct_sctp { + pub state: sctp_conntrack::Type, + pub vtag: [__be32; 2usize], + pub init: [u8_; 2usize], + pub last_dir: u8_, + pub flags: u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ip_ct_tcp_state { + pub td_end: u_int32_t, + pub td_maxend: u_int32_t, + pub td_maxwin: u_int32_t, + pub td_maxack: u_int32_t, + pub td_scale: u_int8_t, + pub flags: u_int8_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ip_ct_tcp { + pub seen: [ip_ct_tcp_state; 2usize], + pub state: u_int8_t, + pub last_dir: u_int8_t, + pub retrans: u_int8_t, + pub last_index: u_int8_t, + pub last_seq: u_int32_t, + pub last_ack: u_int32_t, + pub last_end: u_int32_t, + pub last_win: u_int16_t, + pub last_wscale: u_int8_t, + pub last_flags: u_int8_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ip_mc_list { + pub interface: *mut in_device, + pub multiaddr: __be32, + pub sfmode: ::aya_ebpf::cty::c_uint, + pub sources: *mut ip_sf_list, + pub tomb: *mut ip_sf_list, + pub sfcount: [::aya_ebpf::cty::c_ulong; 2usize], + pub __bindgen_anon_1: ip_mc_list__bindgen_ty_1, + pub next_hash: *mut ip_mc_list, + pub timer: timer_list, + pub users: ::aya_ebpf::cty::c_int, + pub refcnt: refcount_t, + pub lock: spinlock_t, + pub tm_running: ::aya_ebpf::cty::c_char, + pub reporter: ::aya_ebpf::cty::c_char, + pub unsolicit_count: ::aya_ebpf::cty::c_char, + pub loaded: ::aya_ebpf::cty::c_char, + pub gsquery: ::aya_ebpf::cty::c_uchar, + pub crcount: ::aya_ebpf::cty::c_uchar, + pub mca_cstamp: ::aya_ebpf::cty::c_ulong, + pub mca_tstamp: ::aya_ebpf::cty::c_ulong, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ip_mc_list__bindgen_ty_1 { + pub next: *mut ip_mc_list, + pub next_rcu: *mut ip_mc_list, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ip_mreqn { + pub imr_multiaddr: in_addr, + pub imr_address: in_addr, + pub imr_ifindex: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ip_mc_socklist { + pub next_rcu: *mut ip_mc_socklist, + pub multi: ip_mreqn, + pub sfmode: ::aya_ebpf::cty::c_uint, + pub sflist: *mut ip_sf_socklist, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ip_ra_chain { + pub next: *mut ip_ra_chain, + pub sk: *mut sock, + pub __bindgen_anon_1: ip_ra_chain__bindgen_ty_1, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ip_ra_chain__bindgen_ty_1 { + pub destructor: ::core::option::Option, + pub saved_sk: *mut sock, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kvec { + pub iov_base: *mut ::aya_ebpf::cty::c_void, + pub iov_len: usize, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ip_sf_list { + pub sf_next: *mut ip_sf_list, + pub sf_count: [::aya_ebpf::cty::c_ulong; 2usize], + pub sf_inaddr: __be32, + pub sf_gsresp: ::aya_ebpf::cty::c_uchar, + pub sf_oldin: ::aya_ebpf::cty::c_uchar, + pub sf_crcount: ::aya_ebpf::cty::c_uchar, +} +#[repr(C)] +#[derive(Debug)] +pub struct ip_sf_socklist { + pub sl_max: ::aya_ebpf::cty::c_uint, + pub sl_count: ::aya_ebpf::cty::c_uint, + pub rcu: callback_head, + pub sl_addr: __IncompleteArrayField<__be32>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct iphdr { + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub tos: __u8, + pub tot_len: __be16, + pub id: __be16, + pub frag_off: __be16, + pub ttl: __u8, + pub protocol: __u8, + pub check: __sum16, + pub __bindgen_anon_1: iphdr__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union iphdr__bindgen_ty_1 { + pub __bindgen_anon_1: iphdr__bindgen_ty_1__bindgen_ty_1, + pub addrs: iphdr__bindgen_ty_1__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iphdr__bindgen_ty_1__bindgen_ty_1 { + pub saddr: __be32, + pub daddr: __be32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iphdr__bindgen_ty_1__bindgen_ty_2 { + pub saddr: __be32, + pub daddr: __be32, +} +impl iphdr { + #[inline] + pub fn ihl(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } + } + #[inline] + pub fn set_ihl(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 4u8, val as u64) + } + } + #[inline] + pub unsafe fn ihl_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 4u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_ihl_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 4u8, + val as u64, + ) + } + } + #[inline] + pub fn version(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } + } + #[inline] + pub fn set_version(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 4u8, val as u64) + } + } + #[inline] + pub unsafe fn version_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 4u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_version_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 4u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(ihl: __u8, version: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 4u8, { + let ihl: u8 = unsafe { ::core::mem::transmute(ihl) }; + ihl as u64 + }); + __bindgen_bitfield_unit.set(4usize, 4u8, { + let version: u8 = unsafe { ::core::mem::transmute(version) }; + version as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ip_tunnel_parm_kern { + pub name: [::aya_ebpf::cty::c_char; 16usize], + pub i_flags: [::aya_ebpf::cty::c_ulong; 1usize], + pub o_flags: [::aya_ebpf::cty::c_ulong; 1usize], + pub i_key: __be32, + pub o_key: __be32, + pub link: ::aya_ebpf::cty::c_int, + pub iph: iphdr, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ip_tunnel_key { + pub tun_id: __be64, + pub u: ip_tunnel_key__bindgen_ty_1, + pub tun_flags: [::aya_ebpf::cty::c_ulong; 1usize], + pub label: __be32, + pub nhid: u32_, + pub tos: u8_, + pub ttl: u8_, + pub tp_src: __be16, + pub tp_dst: __be16, + pub flow_flags: __u8, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ip_tunnel_key__bindgen_ty_1 { + pub ipv4: ip_tunnel_key__bindgen_ty_1__bindgen_ty_1, + pub ipv6: ip_tunnel_key__bindgen_ty_1__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ip_tunnel_key__bindgen_ty_1__bindgen_ty_1 { + pub src: __be32, + pub dst: __be32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ip_tunnel_key__bindgen_ty_1__bindgen_ty_2 { + pub src: in6_addr, + pub dst: in6_addr, +} +#[repr(C)] +pub struct ip_tunnel_info { + pub key: ip_tunnel_key, + pub encap: ip_tunnel_encap, + pub dst_cache: dst_cache, + pub options_len: u8_, + pub mode: u8_, + pub __bindgen_padding_0: [u8; 6usize], + pub options: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipc_ids { + pub in_use: ::aya_ebpf::cty::c_int, + pub seq: ::aya_ebpf::cty::c_ushort, + pub rwsem: rw_semaphore, + pub ipcs_idr: idr, + pub max_idx: ::aya_ebpf::cty::c_int, + pub last_idx: ::aya_ebpf::cty::c_int, + pub next_id: ::aya_ebpf::cty::c_int, + pub key_ht: rhashtable, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipc_namespace { + pub ids: [ipc_ids; 3usize], + pub sem_ctls: [::aya_ebpf::cty::c_int; 4usize], + pub used_sems: ::aya_ebpf::cty::c_int, + pub msg_ctlmax: ::aya_ebpf::cty::c_uint, + pub msg_ctlmnb: ::aya_ebpf::cty::c_uint, + pub msg_ctlmni: ::aya_ebpf::cty::c_uint, + pub percpu_msg_bytes: percpu_counter, + pub percpu_msg_hdrs: percpu_counter, + pub shm_ctlmax: usize, + pub shm_ctlall: usize, + pub shm_tot: ::aya_ebpf::cty::c_ulong, + pub shm_ctlmni: ::aya_ebpf::cty::c_int, + pub shm_rmid_forced: ::aya_ebpf::cty::c_int, + pub ipcns_nb: notifier_block, + pub mq_mnt: *mut vfsmount, + pub mq_queues_count: ::aya_ebpf::cty::c_uint, + pub mq_queues_max: ::aya_ebpf::cty::c_uint, + pub mq_msg_max: ::aya_ebpf::cty::c_uint, + pub mq_msgsize_max: ::aya_ebpf::cty::c_uint, + pub mq_msg_default: ::aya_ebpf::cty::c_uint, + pub mq_msgsize_default: ::aya_ebpf::cty::c_uint, + pub mq_set: ctl_table_set, + pub mq_sysctls: *mut ctl_table_header, + pub ipc_set: ctl_table_set, + pub ipc_sysctls: *mut ctl_table_header, + pub user_ns: *mut user_namespace, + pub ucounts: *mut ucounts, + pub mnt_llist: llist_node, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, + pub ns: ns_common, +} +impl ipc_namespace { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ipstats_mib { + pub mibs: [u64_; 38usize], + pub syncp: u64_stats_sync, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipv6_ac_socklist { + pub acl_addr: in6_addr, + pub acl_ifindex: ::aya_ebpf::cty::c_int, + pub acl_next: *mut ipv6_ac_socklist, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_fl_socklist { + pub next: *mut ipv6_fl_socklist, + pub fl: *mut ip6_flowlabel, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipv6_mc_socklist { + pub addr: in6_addr, + pub ifindex: ::aya_ebpf::cty::c_int, + pub sfmode: ::aya_ebpf::cty::c_uint, + pub next: *mut ipv6_mc_socklist, + pub sflist: *mut ip6_sf_socklist, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipv6_pinfo { + pub saddr: in6_addr, + pub __bindgen_anon_1: ipv6_pinfo__bindgen_ty_1, + pub flow_label: __be32, + pub dst_cookie: u32_, + pub opt: *mut ipv6_txoptions, + pub hop_limit: s16, + pub pmtudisc: u8_, + pub tclass: u8_, + pub saddr_cache: bool_, + pub daddr_cache: bool_, + pub mcast_hops: u8_, + pub frag_size: u32_, + pub ucast_oif: ::aya_ebpf::cty::c_int, + pub mcast_oif: ::aya_ebpf::cty::c_int, + pub rxopt: ipv6_pinfo__bindgen_ty_2, + pub srcprefs: u8_, + pub min_hopcount: u8_, + pub rcv_flowinfo: __be32, + pub sticky_pktinfo: in6_pktinfo, + pub pktoptions: *mut sk_buff, + pub rxpmtu: *mut sk_buff, + pub ipv6_mc_list: *mut ipv6_mc_socklist, + pub ipv6_ac_list: *mut ipv6_ac_socklist, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ipv6_pinfo__bindgen_ty_1 { + pub daddr: in6_addr, + pub final_: in6_addr, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ipv6_pinfo__bindgen_ty_2 { + pub bits: ipv6_pinfo__bindgen_ty_2__bindgen_ty_1, + pub all: u16_, +} +#[repr(C)] +#[repr(align(2))] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_pinfo__bindgen_ty_2__bindgen_ty_1 { + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, +} +impl ipv6_pinfo__bindgen_ty_2__bindgen_ty_1 { + #[inline] + pub fn srcrt(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) } + } + #[inline] + pub fn set_srcrt(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn srcrt_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_srcrt_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn osrcrt(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) } + } + #[inline] + pub fn set_osrcrt(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn osrcrt_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_osrcrt_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn rxinfo(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) } + } + #[inline] + pub fn set_rxinfo(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn rxinfo_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_rxinfo_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn rxoinfo(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u16) } + } + #[inline] + pub fn set_rxoinfo(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn rxoinfo_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_rxoinfo_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn rxhlim(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u16) } + } + #[inline] + pub fn set_rxhlim(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn rxhlim_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_rxhlim_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn rxohlim(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u16) } + } + #[inline] + pub fn set_rxohlim(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn rxohlim_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 5usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_rxohlim_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 5usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn hopopts(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u16) } + } + #[inline] + pub fn set_hopopts(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn hopopts_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 6usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_hopopts_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 6usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn ohopopts(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u16) } + } + #[inline] + pub fn set_ohopopts(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn ohopopts_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 7usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_ohopopts_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 7usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn dstopts(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u16) } + } + #[inline] + pub fn set_dstopts(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(8usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dstopts_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 8usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_dstopts_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 8usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn odstopts(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u16) } + } + #[inline] + pub fn set_odstopts(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(9usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn odstopts_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 9usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_odstopts_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 9usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn rxflow(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u16) } + } + #[inline] + pub fn set_rxflow(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(10usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn rxflow_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 10usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_rxflow_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 10usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn rxtclass(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u16) } + } + #[inline] + pub fn set_rxtclass(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(11usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn rxtclass_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 11usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_rxtclass_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 11usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn rxpmtu(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) } + } + #[inline] + pub fn set_rxpmtu(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(12usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn rxpmtu_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 12usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_rxpmtu_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 12usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn rxorigdstaddr(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) } + } + #[inline] + pub fn set_rxorigdstaddr(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(13usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn rxorigdstaddr_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 13usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_rxorigdstaddr_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 13usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn recvfragsize(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u16) } + } + #[inline] + pub fn set_recvfragsize(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(14usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn recvfragsize_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 14usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_recvfragsize_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 14usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + srcrt: u16_, + osrcrt: u16_, + rxinfo: u16_, + rxoinfo: u16_, + rxhlim: u16_, + rxohlim: u16_, + hopopts: u16_, + ohopopts: u16_, + dstopts: u16_, + odstopts: u16_, + rxflow: u16_, + rxtclass: u16_, + rxpmtu: u16_, + rxorigdstaddr: u16_, + recvfragsize: u16_, + ) -> __BindgenBitfieldUnit<[u8; 2usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let srcrt: u16 = unsafe { ::core::mem::transmute(srcrt) }; + srcrt as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let osrcrt: u16 = unsafe { ::core::mem::transmute(osrcrt) }; + osrcrt as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let rxinfo: u16 = unsafe { ::core::mem::transmute(rxinfo) }; + rxinfo as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let rxoinfo: u16 = unsafe { ::core::mem::transmute(rxoinfo) }; + rxoinfo as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let rxhlim: u16 = unsafe { ::core::mem::transmute(rxhlim) }; + rxhlim as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let rxohlim: u16 = unsafe { ::core::mem::transmute(rxohlim) }; + rxohlim as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let hopopts: u16 = unsafe { ::core::mem::transmute(hopopts) }; + hopopts as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let ohopopts: u16 = unsafe { ::core::mem::transmute(ohopopts) }; + ohopopts as u64 + }); + __bindgen_bitfield_unit.set(8usize, 1u8, { + let dstopts: u16 = unsafe { ::core::mem::transmute(dstopts) }; + dstopts as u64 + }); + __bindgen_bitfield_unit.set(9usize, 1u8, { + let odstopts: u16 = unsafe { ::core::mem::transmute(odstopts) }; + odstopts as u64 + }); + __bindgen_bitfield_unit.set(10usize, 1u8, { + let rxflow: u16 = unsafe { ::core::mem::transmute(rxflow) }; + rxflow as u64 + }); + __bindgen_bitfield_unit.set(11usize, 1u8, { + let rxtclass: u16 = unsafe { ::core::mem::transmute(rxtclass) }; + rxtclass as u64 + }); + __bindgen_bitfield_unit.set(12usize, 1u8, { + let rxpmtu: u16 = unsafe { ::core::mem::transmute(rxpmtu) }; + rxpmtu as u64 + }); + __bindgen_bitfield_unit.set(13usize, 1u8, { + let rxorigdstaddr: u16 = unsafe { ::core::mem::transmute(rxorigdstaddr) }; + rxorigdstaddr as u64 + }); + __bindgen_bitfield_unit.set(14usize, 1u8, { + let recvfragsize: u16 = unsafe { ::core::mem::transmute(recvfragsize) }; + recvfragsize as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_rt_hdr { + pub nexthdr: __u8, + pub hdrlen: __u8, + pub type_: __u8, + pub segments_left: __u8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_txoptions { + pub refcnt: refcount_t, + pub tot_len: ::aya_ebpf::cty::c_int, + pub opt_flen: __u16, + pub opt_nflen: __u16, + pub hopopt: *mut ipv6_opt_hdr, + pub dst0opt: *mut ipv6_opt_hdr, + pub srcrt: *mut ipv6_rt_hdr, + pub dst1opt: *mut ipv6_opt_hdr, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct irq_affinity_desc { + pub mask: cpumask, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: [u8; 7usize], +} +impl irq_affinity_desc { + #[inline] + pub fn is_managed(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_is_managed(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn is_managed_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_is_managed_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + is_managed: ::aya_ebpf::cty::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let is_managed: u32 = unsafe { ::core::mem::transmute(is_managed) }; + is_managed as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct irq_chip { + pub name: *const ::aya_ebpf::cty::c_char, + pub irq_startup: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut irq_data) -> ::aya_ebpf::cty::c_uint, + >, + pub irq_shutdown: ::core::option::Option, + pub irq_enable: ::core::option::Option, + pub irq_disable: ::core::option::Option, + pub irq_ack: ::core::option::Option, + pub irq_mask: ::core::option::Option, + pub irq_mask_ack: ::core::option::Option, + pub irq_unmask: ::core::option::Option, + pub irq_eoi: ::core::option::Option, + pub irq_set_affinity: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut irq_data, + arg2: *const cpumask, + arg3: bool_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub irq_pre_redirect: ::core::option::Option, + pub irq_retrigger: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub irq_set_type: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut irq_data, + arg2: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub irq_set_wake: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut irq_data, + arg2: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub irq_bus_lock: ::core::option::Option, + pub irq_bus_sync_unlock: ::core::option::Option, + pub irq_suspend: ::core::option::Option, + pub irq_resume: ::core::option::Option, + pub irq_pm_shutdown: ::core::option::Option, + pub irq_calc_mask: ::core::option::Option, + pub irq_print_chip: + ::core::option::Option, + pub irq_request_resources: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub irq_release_resources: ::core::option::Option, + pub irq_compose_msi_msg: + ::core::option::Option, + pub irq_write_msi_msg: + ::core::option::Option, + pub irq_get_irqchip_state: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut irq_data, + arg2: irqchip_irq_state::Type, + arg3: *mut bool_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub irq_set_irqchip_state: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut irq_data, + arg2: irqchip_irq_state::Type, + arg3: bool_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub irq_set_vcpu_affinity: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut irq_data, + arg2: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ipi_send_single: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut irq_data, arg2: ::aya_ebpf::cty::c_uint), + >, + pub ipi_send_mask: + ::core::option::Option, + pub irq_nmi_setup: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub irq_nmi_teardown: ::core::option::Option, + pub irq_force_complete_move: ::core::option::Option, + pub flags: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct irq_chip_regs { + pub enable: ::aya_ebpf::cty::c_ulong, + pub disable: ::aya_ebpf::cty::c_ulong, + pub mask: ::aya_ebpf::cty::c_ulong, + pub ack: ::aya_ebpf::cty::c_ulong, + pub eoi: ::aya_ebpf::cty::c_ulong, + pub type_: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct irq_chip_type { + pub chip: irq_chip, + pub regs: irq_chip_regs, + pub handler: irq_flow_handler_t, + pub type_: u32_, + pub mask_cache_priv: u32_, + pub mask_cache: *mut u32_, +} +#[repr(C)] +pub struct irq_chip_generic { + pub lock: raw_spinlock_t, + pub reg_base: *mut ::aya_ebpf::cty::c_void, + pub reg_readl: + ::core::option::Option u32_>, + pub reg_writel: ::core::option::Option< + unsafe extern "C" fn(arg1: u32_, arg2: *mut ::aya_ebpf::cty::c_void), + >, + pub suspend: ::core::option::Option, + pub resume: ::core::option::Option, + pub irq_base: ::aya_ebpf::cty::c_uint, + pub irq_cnt: ::aya_ebpf::cty::c_uint, + pub mask_cache: u32_, + pub wake_enabled: u32_, + pub wake_active: u32_, + pub num_ct: ::aya_ebpf::cty::c_uint, + pub private: *mut ::aya_ebpf::cty::c_void, + pub installed: ::aya_ebpf::cty::c_ulong, + pub unused: ::aya_ebpf::cty::c_ulong, + pub domain: *mut irq_domain, + pub list: list_head, + pub chip_types: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct irq_common_data { + pub state_use_accessors: ::aya_ebpf::cty::c_uint, + pub node: ::aya_ebpf::cty::c_uint, + pub handler_data: *mut ::aya_ebpf::cty::c_void, + pub msi_desc: *mut msi_desc, + pub affinity: cpumask_var_t, + pub effective_affinity: cpumask_var_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct irq_data { + pub mask: u32_, + pub irq: ::aya_ebpf::cty::c_uint, + pub hwirq: irq_hw_number_t, + pub common: *mut irq_common_data, + pub chip: *mut irq_chip, + pub domain: *mut irq_domain, + pub parent_data: *mut irq_data, + pub chip_data: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct irq_redirect { + pub work: irq_work, + pub target_cpu: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct irq_desc { + pub irq_common_data: irq_common_data, + pub irq_data: irq_data, + pub kstat_irqs: *mut irqstat, + pub handle_irq: irq_flow_handler_t, + pub action: *mut irqaction, + pub status_use_accessors: ::aya_ebpf::cty::c_uint, + pub core_internal_state__do_not_mess_with_it: ::aya_ebpf::cty::c_uint, + pub depth: ::aya_ebpf::cty::c_uint, + pub wake_depth: ::aya_ebpf::cty::c_uint, + pub tot_count: ::aya_ebpf::cty::c_uint, + pub irq_count: ::aya_ebpf::cty::c_uint, + pub last_unhandled: ::aya_ebpf::cty::c_ulong, + pub irqs_unhandled: ::aya_ebpf::cty::c_uint, + pub threads_handled: atomic_t, + pub threads_handled_last: ::aya_ebpf::cty::c_int, + pub lock: raw_spinlock_t, + pub percpu_enabled: *mut cpumask, + pub redirect: irq_redirect, + pub affinity_hint: *const cpumask, + pub affinity_notify: *mut irq_affinity_notify, + pub pending_mask: cpumask_var_t, + pub threads_oneshot: ::aya_ebpf::cty::c_ulong, + pub threads_active: atomic_t, + pub wait_for_threads: wait_queue_head_t, + pub nr_actions: ::aya_ebpf::cty::c_uint, + pub no_suspend_depth: ::aya_ebpf::cty::c_uint, + pub cond_suspend_depth: ::aya_ebpf::cty::c_uint, + pub force_resume_depth: ::aya_ebpf::cty::c_uint, + pub dir: *mut proc_dir_entry, + pub rcu: callback_head, + pub kobj: kobject, + pub request_mutex: mutex, + pub parent_irq: ::aya_ebpf::cty::c_int, + pub owner: *mut module, + pub name: *const ::aya_ebpf::cty::c_char, + pub resend_node: hlist_node, +} +#[repr(C)] +pub struct irq_domain { + pub link: list_head, + pub name: *const ::aya_ebpf::cty::c_char, + pub ops: *const irq_domain_ops, + pub host_data: *mut ::aya_ebpf::cty::c_void, + pub flags: ::aya_ebpf::cty::c_uint, + pub mapcount: ::aya_ebpf::cty::c_uint, + pub mutex: mutex, + pub root: *mut irq_domain, + pub fwnode: *mut fwnode_handle, + pub bus_token: irq_domain_bus_token::Type, + pub gc: *mut irq_domain_chip_generic, + pub dev: *mut device, + pub pm_dev: *mut device, + pub parent: *mut irq_domain, + pub msi_parent_ops: *const msi_parent_ops, + pub exit: ::core::option::Option, + pub hwirq_max: irq_hw_number_t, + pub revmap_size: ::aya_ebpf::cty::c_uint, + pub revmap_tree: xarray, + pub revmap: __IncompleteArrayField<*mut irq_data>, +} +#[repr(C)] +#[derive(Debug)] +pub struct irq_domain_chip_generic { + pub irqs_per_chip: ::aya_ebpf::cty::c_uint, + pub num_chips: ::aya_ebpf::cty::c_uint, + pub irq_flags_to_clear: ::aya_ebpf::cty::c_uint, + pub irq_flags_to_set: ::aya_ebpf::cty::c_uint, + pub gc_flags: irq_gc_flags::Type, + pub exit: ::core::option::Option, + pub gc: __IncompleteArrayField<*mut irq_chip_generic>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct irq_fwspec_info { + pub flags: ::aya_ebpf::cty::c_ulong, + pub affinity: *const cpumask, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct irqaction { + pub handler: irq_handler_t, + pub __bindgen_anon_1: irqaction__bindgen_ty_1, + pub affinity: *const cpumask, + pub next: *mut irqaction, + pub thread_fn: irq_handler_t, + pub thread: *mut task_struct, + pub secondary: *mut irqaction, + pub irq: ::aya_ebpf::cty::c_uint, + pub flags: ::aya_ebpf::cty::c_uint, + pub thread_flags: ::aya_ebpf::cty::c_ulong, + pub thread_mask: ::aya_ebpf::cty::c_ulong, + pub name: *const ::aya_ebpf::cty::c_char, + pub dir: *mut proc_dir_entry, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 32usize]>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union irqaction__bindgen_ty_1 { + pub dev_id: *mut ::aya_ebpf::cty::c_void, + pub percpu_dev_id: *mut ::aya_ebpf::cty::c_void, +} +impl irqaction { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 32usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 32usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct irqstat { + pub cnt: ::aya_ebpf::cty::c_uint, + pub ref_: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct its_array { + pub pages: *mut *mut ::aya_ebpf::cty::c_void, + pub num: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iw_discarded { + pub nwid: __u32, + pub code: __u32, + pub fragment: __u32, + pub retries: __u32, + pub misc: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iw_point { + pub pointer: *mut ::aya_ebpf::cty::c_void, + pub length: __u16, + pub flags: __u16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iw_param { + pub value: __s32, + pub fixed: __u8, + pub disabled: __u8, + pub flags: __u16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iw_freq { + pub m: __s32, + pub e: __s16, + pub i: __u8, + pub flags: __u8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iw_quality { + pub qual: __u8, + pub level: __u8, + pub noise: __u8, + pub updated: __u8, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union iwreq_data { + pub name: [::aya_ebpf::cty::c_char; 16usize], + pub essid: iw_point, + pub nwid: iw_param, + pub freq: iw_freq, + pub sens: iw_param, + pub bitrate: iw_param, + pub txpower: iw_param, + pub rts: iw_param, + pub frag: iw_param, + pub mode: __u32, + pub retry: iw_param, + pub encoding: iw_point, + pub power: iw_param, + pub qual: iw_quality, + pub ap_addr: sockaddr, + pub addr: sockaddr, + pub param: iw_param, + pub data: iw_point, +} +pub type iw_handler = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut iw_request_info, + arg3: *mut iwreq_data, + arg4: *mut ::aya_ebpf::cty::c_char, + ) -> ::aya_ebpf::cty::c_int, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iw_handler_def { + pub standard: *const iw_handler, + pub num_standard: __u16, + pub num_private: __u16, + pub num_private_args: __u16, + pub private: *const iw_handler, + pub private_args: *const iw_priv_args, + pub get_wireless_stats: + ::core::option::Option *mut iw_statistics>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iw_missed { + pub beacon: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iw_priv_args { + pub cmd: __u32, + pub set_args: __u16, + pub get_args: __u16, + pub name: [::aya_ebpf::cty::c_char; 16usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iw_request_info { + pub cmd: __u16, + pub flags: __u16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iw_statistics { + pub status: __u16, + pub qual: iw_quality, + pub discard: iw_discarded, + pub miss: iw_missed, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct jump_entry { + pub code: s32, + pub target: s32, + pub key: ::aya_ebpf::cty::c_long, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct kernel_siginfo { + pub __bindgen_anon_1: kernel_siginfo__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct kernel_siginfo__bindgen_ty_1 { + pub si_signo: ::aya_ebpf::cty::c_int, + pub si_errno: ::aya_ebpf::cty::c_int, + pub si_code: ::aya_ebpf::cty::c_int, + pub _sifields: __sifields, +} +pub type __signalfn_t = ::core::option::Option; +pub type __sighandler_t = __signalfn_t; +pub type __restorefn_t = ::core::option::Option; +pub type __sigrestore_t = __restorefn_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sigaction { + pub sa_handler: __sighandler_t, + pub sa_flags: ::aya_ebpf::cty::c_ulong, + pub sa_restorer: __sigrestore_t, + pub sa_mask: sigset_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct k_sigaction { + pub sa: sigaction, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kernel_ethtool_ringparam { + pub rx_buf_len: u32_, + pub tcp_data_split: u8_, + pub tx_push: u8_, + pub rx_push: u8_, + pub cqe_size: u32_, + pub tx_push_buf_len: u32_, + pub tx_push_buf_max_len: u32_, + pub hds_thresh: u32_, + pub hds_thresh_max: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kernel_ethtool_ts_info { + pub cmd: u32_, + pub so_timestamping: u32_, + pub phc_index: ::aya_ebpf::cty::c_int, + pub phc_qualifier: hwtstamp_provider_qualifier::Type, + pub phc_source: hwtstamp_source::Type, + pub phc_phyindex: ::aya_ebpf::cty::c_int, + pub tx_types: u32_, + pub rx_filters: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kernel_hwtstamp_config { + pub flags: ::aya_ebpf::cty::c_int, + pub tx_type: ::aya_ebpf::cty::c_int, + pub rx_filter: ::aya_ebpf::cty::c_int, + pub ifr: *mut ifreq, + pub copied_to_user: bool_, + pub source: hwtstamp_source::Type, + pub qualifier: hwtstamp_provider_qualifier::Type, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct kernel_param { + pub name: *const ::aya_ebpf::cty::c_char, + pub mod_: *mut module, + pub ops: *const kernel_param_ops, + pub perm: u16_, + pub level: s8, + pub flags: u8_, + pub __bindgen_anon_1: kernel_param__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union kernel_param__bindgen_ty_1 { + pub arg: *mut ::aya_ebpf::cty::c_void, + pub str_: *const kparam_string, + pub arr: *const kparam_array, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kernel_param_ops { + pub flags: ::aya_ebpf::cty::c_uint, + pub set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const ::aya_ebpf::cty::c_char, + arg2: *const kernel_param, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ::aya_ebpf::cty::c_char, + arg2: *const kernel_param, + ) -> ::aya_ebpf::cty::c_int, + >, + pub free: ::core::option::Option, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct kernel_pkey_params { + pub key: *mut key, + pub encoding: *const ::aya_ebpf::cty::c_char, + pub hash_algo: *const ::aya_ebpf::cty::c_char, + pub info: *mut ::aya_ebpf::cty::c_char, + pub in_len: __u32, + pub __bindgen_anon_1: kernel_pkey_params__bindgen_ty_1, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: [u8; 7usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union kernel_pkey_params__bindgen_ty_1 { + pub out_len: __u32, + pub in2_len: __u32, +} +impl kernel_pkey_params { + #[inline] + pub fn op(&self) -> kernel_pkey_operation::Type { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) } + } + #[inline] + pub fn set_op(&mut self, val: kernel_pkey_operation::Type) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 8u8, val as u64) + } + } + #[inline] + pub unsafe fn op_raw(this: *const Self) -> kernel_pkey_operation::Type { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 8u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_op_raw(this: *mut Self, val: kernel_pkey_operation::Type) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 8u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(op: kernel_pkey_operation::Type) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 8u8, { + let op: u32 = unsafe { ::core::mem::transmute(op) }; + op as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kernel_pkey_query { + pub supported_ops: __u32, + pub key_size: __u32, + pub max_data_size: __u16, + pub max_sig_size: __u16, + pub max_enc_size: __u16, + pub max_dec_size: __u16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kernel_symbol { + pub value_offset: ::aya_ebpf::cty::c_int, + pub name_offset: ::aya_ebpf::cty::c_int, + pub namespace_offset: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kernfs_elem_attr { + pub ops: *const kernfs_ops, + pub open: *mut kernfs_open_node, + pub size: loff_t, + pub notify_next: *mut kernfs_node, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kernfs_elem_dir { + pub subdirs: ::aya_ebpf::cty::c_ulong, + pub children: rb_root, + pub root: *mut kernfs_root, + pub rev: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kernfs_elem_symlink { + pub target_kn: *mut kernfs_node, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct simple_xattr_limits { + pub nr_xattrs: atomic_t, + pub xattr_size: atomic_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kernfs_iattrs { + pub ia_uid: kuid_t, + pub ia_gid: kgid_t, + pub ia_atime: timespec64, + pub ia_mtime: timespec64, + pub ia_ctime: timespec64, + pub xattrs: list_head, + pub xattr_limits: simple_xattr_limits, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct kernfs_node { + pub count: atomic_t, + pub active: atomic_t, + pub __parent: *mut kernfs_node, + pub name: *const ::aya_ebpf::cty::c_char, + pub rb: rb_node, + pub ns: *const ns_common, + pub hash: ::aya_ebpf::cty::c_uint, + pub flags: ::aya_ebpf::cty::c_ushort, + pub mode: umode_t, + pub __bindgen_anon_1: kernfs_node__bindgen_ty_1, + pub id: u64_, + pub priv_: *mut ::aya_ebpf::cty::c_void, + pub iattr: *mut kernfs_iattrs, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union kernfs_node__bindgen_ty_1 { + pub dir: kernfs_elem_dir, + pub symlink: kernfs_elem_symlink, + pub attr: kernfs_elem_attr, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct kernfs_open_file { + pub kn: *mut kernfs_node, + pub file: *mut file, + pub seq_file: *mut seq_file, + pub priv_: *mut ::aya_ebpf::cty::c_void, + pub mutex: mutex, + pub prealloc_mutex: mutex, + pub event: ::aya_ebpf::cty::c_int, + pub list: list_head, + pub prealloc_buf: *mut ::aya_ebpf::cty::c_char, + pub atomic_write_len: usize, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub vm_ops: *const vm_operations_struct, +} +impl kernfs_open_file { + #[inline] + pub fn mmapped(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_mmapped(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn mmapped_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_mmapped_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn released(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_released(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn released_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_released_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(mmapped: bool_, released: bool_) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let mmapped: u8 = unsafe { ::core::mem::transmute(mmapped) }; + mmapped as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let released: u8 = unsafe { ::core::mem::transmute(released) }; + released as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct kernfs_open_node { + pub callback_head: callback_head, + pub event: atomic_t, + pub poll: wait_queue_head_t, + pub files: list_head, + pub nr_mmapped: ::aya_ebpf::cty::c_uint, + pub nr_to_release: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kernfs_ops { + pub open: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut kernfs_open_file) -> ::aya_ebpf::cty::c_int, + >, + pub release: ::core::option::Option, + pub seq_show: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut seq_file, + arg2: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub seq_start: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut seq_file, + arg2: *mut loff_t, + ) -> *mut ::aya_ebpf::cty::c_void, + >, + pub seq_next: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut seq_file, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: *mut loff_t, + ) -> *mut ::aya_ebpf::cty::c_void, + >, + pub seq_stop: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut seq_file, arg2: *mut ::aya_ebpf::cty::c_void), + >, + pub read: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut kernfs_open_file, + arg2: *mut ::aya_ebpf::cty::c_char, + arg3: usize, + arg4: loff_t, + ) -> isize, + >, + pub atomic_write_len: usize, + pub prealloc: bool_, + pub write: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut kernfs_open_file, + arg2: *mut ::aya_ebpf::cty::c_char, + arg3: usize, + arg4: loff_t, + ) -> isize, + >, + pub poll: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut kernfs_open_file, arg2: *mut poll_table_struct) -> __poll_t, + >, + pub mmap: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut kernfs_open_file, + arg2: *mut vm_area_struct, + ) -> ::aya_ebpf::cty::c_int, + >, + pub llseek: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut kernfs_open_file, + arg2: loff_t, + arg3: ::aya_ebpf::cty::c_int, + ) -> loff_t, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct simple_xattr_cache { + pub ht: *mut rhashtable, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct kernfs_root { + pub kn: *mut kernfs_node, + pub flags: ::aya_ebpf::cty::c_uint, + pub ino_idr: idr, + pub kernfs_idr_lock: spinlock_t, + pub last_id_lowbits: u32_, + pub id_highbits: u32_, + pub syscall_ops: *mut kernfs_syscall_ops, + pub supers: list_head, + pub deactivate_waitq: wait_queue_head_t, + pub kernfs_rwsem: rw_semaphore, + pub kernfs_iattr_rwsem: rw_semaphore, + pub kernfs_supers_rwsem: rw_semaphore, + pub kernfs_rename_lock: rwlock_t, + pub rcu: callback_head, + pub xa_cache: simple_xattr_cache, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kernfs_syscall_ops { + pub show_options: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut seq_file, arg2: *mut kernfs_root) -> ::aya_ebpf::cty::c_int, + >, + pub mkdir: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut kernfs_node, + arg2: *const ::aya_ebpf::cty::c_char, + arg3: umode_t, + ) -> ::aya_ebpf::cty::c_int, + >, + pub rmdir: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut kernfs_node) -> ::aya_ebpf::cty::c_int, + >, + pub rename: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut kernfs_node, + arg2: *mut kernfs_node, + arg3: *const ::aya_ebpf::cty::c_char, + ) -> ::aya_ebpf::cty::c_int, + >, + pub show_path: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut seq_file, + arg2: *mut kernfs_node, + arg3: *mut kernfs_root, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct keyring_index_key { + pub hash: ::aya_ebpf::cty::c_ulong, + pub __bindgen_anon_1: keyring_index_key__bindgen_ty_1, + pub type_: *mut key_type, + pub domain_tag: *mut key_tag, + pub description: *const ::aya_ebpf::cty::c_char, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union keyring_index_key__bindgen_ty_1 { + pub __bindgen_anon_1: keyring_index_key__bindgen_ty_1__bindgen_ty_1, + pub x: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct keyring_index_key__bindgen_ty_1__bindgen_ty_1 { + pub desc_len: u16_, + pub desc: [::aya_ebpf::cty::c_char; 6usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union key_payload { + pub rcu_data0: *mut ::aya_ebpf::cty::c_void, + pub data: [*mut ::aya_ebpf::cty::c_void; 4usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct key { + pub usage: refcount_t, + pub serial: key_serial_t, + pub __bindgen_anon_1: key__bindgen_ty_1, + pub watchers: *mut watch_list, + pub sem: rw_semaphore, + pub user: *mut key_user, + pub security: *mut ::aya_ebpf::cty::c_void, + pub __bindgen_anon_2: key__bindgen_ty_2, + pub last_used_at: time64_t, + pub uid: kuid_t, + pub gid: kgid_t, + pub perm: key_perm_t, + pub quotalen: ::aya_ebpf::cty::c_ushort, + pub datalen: ::aya_ebpf::cty::c_ushort, + pub state: ::aya_ebpf::cty::c_short, + pub flags: ::aya_ebpf::cty::c_ulong, + pub __bindgen_anon_3: key__bindgen_ty_3, + pub __bindgen_anon_4: key__bindgen_ty_4, + pub restrict_link: *mut key_restriction, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union key__bindgen_ty_1 { + pub graveyard_link: list_head, + pub serial_node: rb_node, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union key__bindgen_ty_2 { + pub expiry: time64_t, + pub revoked_at: time64_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union key__bindgen_ty_3 { + pub index_key: keyring_index_key, + pub __bindgen_anon_1: key__bindgen_ty_3__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct key__bindgen_ty_3__bindgen_ty_1 { + pub hash: ::aya_ebpf::cty::c_ulong, + pub len_desc: ::aya_ebpf::cty::c_ulong, + pub type_: *mut key_type, + pub domain_tag: *mut key_tag, + pub description: *mut ::aya_ebpf::cty::c_char, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union key__bindgen_ty_4 { + pub payload: key_payload, + pub __bindgen_anon_1: key__bindgen_ty_4__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct key__bindgen_ty_4__bindgen_ty_1 { + pub name_link: list_head, + pub keys: assoc_array, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct key_match_data { + pub cmp: ::core::option::Option< + unsafe extern "C" fn(arg1: *const key, arg2: *const key_match_data) -> bool_, + >, + pub raw_data: *const ::aya_ebpf::cty::c_void, + pub preparsed: *mut ::aya_ebpf::cty::c_void, + pub lookup_type: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct key_params { + pub key: *const u8_, + pub seq: *const u8_, + pub key_len: ::aya_ebpf::cty::c_int, + pub seq_len: ::aya_ebpf::cty::c_int, + pub vlan_id: u16_, + pub cipher: u32_, + pub mode: nl80211_key_mode::Type, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct key_preparsed_payload { + pub orig_description: *const ::aya_ebpf::cty::c_char, + pub description: *mut ::aya_ebpf::cty::c_char, + pub payload: key_payload, + pub data: *const ::aya_ebpf::cty::c_void, + pub datalen: usize, + pub quotalen: usize, + pub expiry: time64_t, +} +pub type key_restrict_link_func_t = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut key, + arg2: *const key_type, + arg3: *const key_payload, + arg4: *mut key, + ) -> ::aya_ebpf::cty::c_int, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct key_restriction { + pub check: key_restrict_link_func_t, + pub key: *mut key, + pub keytype: *mut key_type, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct key_tag { + pub rcu: callback_head, + pub usage: refcount_t, + pub removed: bool_, +} +pub type request_key_actor_t = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut key, + arg2: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct key_type { + pub name: *const ::aya_ebpf::cty::c_char, + pub def_datalen: usize, + pub flags: ::aya_ebpf::cty::c_uint, + pub vet_description: ::core::option::Option< + unsafe extern "C" fn(arg1: *const ::aya_ebpf::cty::c_char) -> ::aya_ebpf::cty::c_int, + >, + pub preparse: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut key_preparsed_payload) -> ::aya_ebpf::cty::c_int, + >, + pub free_preparse: + ::core::option::Option, + pub instantiate: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut key, + arg2: *mut key_preparsed_payload, + ) -> ::aya_ebpf::cty::c_int, + >, + pub update: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut key, + arg2: *mut key_preparsed_payload, + ) -> ::aya_ebpf::cty::c_int, + >, + pub match_preparse: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut key_match_data) -> ::aya_ebpf::cty::c_int, + >, + pub match_free: ::core::option::Option, + pub revoke: ::core::option::Option, + pub destroy: ::core::option::Option, + pub describe: + ::core::option::Option, + pub read: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const key, + arg2: *mut ::aya_ebpf::cty::c_char, + arg3: usize, + ) -> ::aya_ebpf::cty::c_long, + >, + pub request_key: request_key_actor_t, + pub lookup_restriction: ::core::option::Option< + unsafe extern "C" fn(arg1: *const ::aya_ebpf::cty::c_char) -> *mut key_restriction, + >, + pub asym_query: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const kernel_pkey_params, + arg2: *mut kernel_pkey_query, + ) -> ::aya_ebpf::cty::c_int, + >, + pub asym_eds_op: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut kernel_pkey_params, + arg2: *const ::aya_ebpf::cty::c_void, + arg3: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub asym_verify_signature: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut kernel_pkey_params, + arg2: *const ::aya_ebpf::cty::c_void, + arg3: *const ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub link: list_head, + pub lock_class: lock_class_key, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct key_user { + pub node: rb_node, + pub cons_lock: mutex, + pub lock: spinlock_t, + pub usage: refcount_t, + pub nkeys: atomic_t, + pub nikeys: atomic_t, + pub uid: kuid_t, + pub qnkeys: ::aya_ebpf::cty::c_int, + pub qnbytes: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct kioctx { + pub users: percpu_ref, + pub dead: atomic_t, + pub reqs: percpu_ref, + pub user_id: ::aya_ebpf::cty::c_ulong, + pub cpu: *mut kioctx_cpu, + pub req_batch: ::aya_ebpf::cty::c_uint, + pub max_reqs: ::aya_ebpf::cty::c_uint, + pub nr_events: ::aya_ebpf::cty::c_uint, + pub mmap_base: ::aya_ebpf::cty::c_ulong, + pub mmap_size: ::aya_ebpf::cty::c_ulong, + pub ring_folios: *mut *mut folio, + pub nr_pages: ::aya_ebpf::cty::c_long, + pub free_rwork: rcu_work, + pub rq_wait: *mut ctx_rq_wait, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, + pub __bindgen_anon_1: kioctx__bindgen_ty_1, + pub __bindgen_anon_2: kioctx__bindgen_ty_2, + pub __bindgen_anon_3: kioctx__bindgen_ty_3, + pub __bindgen_anon_4: kioctx__bindgen_ty_4, + pub internal_folios: [*mut folio; 8usize], + pub aio_ring_file: *mut file, + pub id: ::aya_ebpf::cty::c_uint, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 48usize]>, + pub __bindgen_padding_0: u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kioctx__bindgen_ty_1 { + pub reqs_available: atomic_t, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 56usize]>, + pub __bindgen_padding_0: u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct kioctx__bindgen_ty_2 { + pub ctx_lock: spinlock_t, + pub active_reqs: list_head, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 40usize]>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct kioctx__bindgen_ty_3 { + pub ring_lock: mutex, + pub wait: wait_queue_head_t, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>, +} +impl kioctx__bindgen_ty_3 { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct kioctx__bindgen_ty_4 { + pub tail: ::aya_ebpf::cty::c_uint, + pub completed_events: ::aya_ebpf::cty::c_uint, + pub completion_lock: spinlock_t, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 48usize]>, + pub __bindgen_padding_0: u32, +} +impl kioctx { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kioctx_cpu { + pub reqs_available: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug)] +pub struct kioctx_table { + pub rcu: callback_head, + pub nr: ::aya_ebpf::cty::c_uint, + pub table: __IncompleteArrayField<*mut kioctx>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kmap_ctrl {} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct reciprocal_value { + pub m: u32_, + pub sh1: u8_, + pub sh2: u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kmem_cache_order_objects { + pub x: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kmem_cache_per_node_ptrs { + pub barn: *mut node_barn, + pub node: *mut kmem_cache_node, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kmem_cache { + pub cpu_sheaves: *mut slub_percpu_sheaves, + pub flags: slab_flags_t, + pub min_partial: ::aya_ebpf::cty::c_ulong, + pub size: ::aya_ebpf::cty::c_uint, + pub object_size: ::aya_ebpf::cty::c_uint, + pub reciprocal_size: reciprocal_value, + pub offset: ::aya_ebpf::cty::c_uint, + pub sheaf_capacity: ::aya_ebpf::cty::c_uint, + pub oo: kmem_cache_order_objects, + pub min: kmem_cache_order_objects, + pub allocflags: gfp_t, + pub refcount: ::aya_ebpf::cty::c_int, + pub ctor: ::core::option::Option, + pub inuse: ::aya_ebpf::cty::c_uint, + pub align: ::aya_ebpf::cty::c_uint, + pub red_left_pad: ::aya_ebpf::cty::c_uint, + pub name: *const ::aya_ebpf::cty::c_char, + pub list: list_head, + pub kobj: kobject, + pub random: ::aya_ebpf::cty::c_ulong, + pub remote_node_defrag_ratio: ::aya_ebpf::cty::c_uint, + pub random_seq: *mut ::aya_ebpf::cty::c_uint, + pub useroffset: ::aya_ebpf::cty::c_uint, + pub usersize: ::aya_ebpf::cty::c_uint, + pub per_node: [kmem_cache_per_node_ptrs; 1024usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct kmem_cache_node { + pub list_lock: spinlock_t, + pub nr_partial: ::aya_ebpf::cty::c_ulong, + pub partial: list_head, + pub nr_slabs: atomic_long_t, + pub total_objects: atomic_long_t, + pub full: list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kobj_ns_type_operations { + pub type_: kobj_ns_type::Type, + pub current_may_mount: ::core::option::Option bool_>, + pub grab_current_ns: ::core::option::Option *mut ns_common>, + pub netlink_ns: + ::core::option::Option *const ns_common>, + pub initial_ns: ::core::option::Option *const ns_common>, + pub drop_ns: ::core::option::Option, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kobj_uevent_env { + pub argv: [*mut ::aya_ebpf::cty::c_char; 3usize], + pub envp: [*mut ::aya_ebpf::cty::c_char; 64usize], + pub envp_idx: ::aya_ebpf::cty::c_int, + pub buf: [::aya_ebpf::cty::c_char; 2048usize], + pub buflen: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kparam_array { + pub max: ::aya_ebpf::cty::c_uint, + pub elemsize: ::aya_ebpf::cty::c_uint, + pub num: *mut ::aya_ebpf::cty::c_uint, + pub ops: *const kernel_param_ops, + pub elem: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kparam_string { + pub maxlen: ::aya_ebpf::cty::c_uint, + pub string: *mut ::aya_ebpf::cty::c_char, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct kset { + pub list: list_head, + pub list_lock: spinlock_t, + pub kobj: kobject, + pub uevent_ops: *const kset_uevent_ops, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kset_uevent_ops { + pub filter: ::core::option::Option< + unsafe extern "C" fn(arg1: *const kobject) -> ::aya_ebpf::cty::c_int, + >, + pub name: ::core::option::Option< + unsafe extern "C" fn(arg1: *const kobject) -> *const ::aya_ebpf::cty::c_char, + >, + pub uevent: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const kobject, + arg2: *mut kobj_uevent_env, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kstat { + pub result_mask: u32_, + pub mode: umode_t, + pub nlink: ::aya_ebpf::cty::c_uint, + pub blksize: u32, + pub attributes: u64_, + pub attributes_mask: u64_, + pub ino: u64_, + pub dev: dev_t, + pub rdev: dev_t, + pub uid: kuid_t, + pub gid: kgid_t, + pub size: loff_t, + pub atime: timespec64, + pub mtime: timespec64, + pub ctime: timespec64, + pub btime: timespec64, + pub blocks: u64_, + pub mnt_id: u64_, + pub change_cookie: u64_, + pub subvol: u64_, + pub dio_mem_align: u32_, + pub dio_offset_align: u32_, + pub dio_read_offset_align: u32_, + pub atomic_write_unit_min: u32_, + pub atomic_write_unit_max: u32_, + pub atomic_write_unit_max_opt: u32_, + pub atomic_write_segments_max: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kstatfs { + pub f_type: ::aya_ebpf::cty::c_long, + pub f_bsize: ::aya_ebpf::cty::c_long, + pub f_blocks: u64_, + pub f_bfree: u64_, + pub f_bavail: u64_, + pub f_files: u64_, + pub f_ffree: u64_, + pub f_fsid: __kernel_fsid_t, + pub f_namelen: ::aya_ebpf::cty::c_long, + pub f_frsize: ::aya_ebpf::cty::c_long, + pub f_flags: ::aya_ebpf::cty::c_long, + pub f_spare: [::aya_ebpf::cty::c_long; 4usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct seq_file { + pub buf: *mut ::aya_ebpf::cty::c_char, + pub size: usize, + pub from: usize, + pub count: usize, + pub pad_until: usize, + pub index: loff_t, + pub read_pos: loff_t, + pub lock: mutex, + pub op: *const seq_operations, + pub poll_event: ::aya_ebpf::cty::c_int, + pub file: *const file, + pub private: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ktermios { + pub c_iflag: tcflag_t, + pub c_oflag: tcflag_t, + pub c_cflag: tcflag_t, + pub c_lflag: tcflag_t, + pub c_line: cc_t, + pub c_cc: [cc_t; 19usize], + pub c_ispeed: speed_t, + pub c_ospeed: speed_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct kthread_worker { + pub flags: ::aya_ebpf::cty::c_uint, + pub lock: raw_spinlock_t, + pub work_list: list_head, + pub delayed_work_list: list_head, + pub task: *mut task_struct, + pub current_work: *mut kthread_work, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct l3mdev_ops { + pub l3mdev_fib_table: + ::core::option::Option u32_>, + pub l3mdev_l3_rcv: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut sk_buff, arg3: u16_) -> *mut sk_buff, + >, + pub l3mdev_l3_out: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut sock, + arg3: *mut sk_buff, + arg4: u16_, + ) -> *mut sk_buff, + >, + pub l3mdev_link_scope_lookup: ::core::option::Option< + unsafe extern "C" fn(arg1: *const net_device, arg2: *mut flowi6) -> *mut dst_entry, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct lazy_mmu_state { + pub enable_count: u8_, + pub pause_count: u8_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ld_semaphore { + pub count: atomic_long_t, + pub wait_lock: raw_spinlock_t, + pub wait_readers: ::aya_ebpf::cty::c_uint, + pub read_wait: list_head, + pub write_wait: list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ldt_struct { + pub entries: *mut desc_struct, + pub nr_entries: ::aya_ebpf::cty::c_uint, + pub slot: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct lease_manager_operations { + pub lm_break: ::core::option::Option bool_>, + pub lm_change: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file_lease, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut list_head, + ) -> ::aya_ebpf::cty::c_int, + >, + pub lm_setup: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut file_lease, arg2: *mut *mut ::aya_ebpf::cty::c_void), + >, + pub lm_breaker_owns_lease: + ::core::option::Option bool_>, + pub lm_open_conflict: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub lm_breaker_timedout: + ::core::option::Option bool_>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct linear_range { + pub min: ::aya_ebpf::cty::c_uint, + pub min_sel: ::aya_ebpf::cty::c_uint, + pub max_sel: ::aya_ebpf::cty::c_uint, + pub step: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct linux_binfmt { + pub lh: list_head, + pub module: *mut module, + pub load_binary: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut linux_binprm) -> ::aya_ebpf::cty::c_int, + >, + pub core_dump: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut coredump_params) -> ::aya_ebpf::cty::c_int, + >, + pub min_coredump: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct linux_binprm { + pub vma: *mut vm_area_struct, + pub vma_pages: ::aya_ebpf::cty::c_ulong, + pub argmin: ::aya_ebpf::cty::c_ulong, + pub mm: *mut mm_struct, + pub p: ::aya_ebpf::cty::c_ulong, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub executable: *mut file, + pub interpreter: *mut file, + pub file: *mut file, + pub cred: *mut cred, + pub unsafe_: ::aya_ebpf::cty::c_int, + pub per_clear: ::aya_ebpf::cty::c_uint, + pub argc: ::aya_ebpf::cty::c_int, + pub envc: ::aya_ebpf::cty::c_int, + pub filename: *const ::aya_ebpf::cty::c_char, + pub interp: *const ::aya_ebpf::cty::c_char, + pub fdpath: *const ::aya_ebpf::cty::c_char, + pub interp_flags: ::aya_ebpf::cty::c_uint, + pub execfd: ::aya_ebpf::cty::c_int, + pub exec: ::aya_ebpf::cty::c_ulong, + pub rlim_stack: rlimit, + pub buf: [::aya_ebpf::cty::c_char; 256usize], +} +impl linux_binprm { + #[inline] + pub fn have_execfd(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_have_execfd(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn have_execfd_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_have_execfd_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn execfd_creds(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_execfd_creds(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn execfd_creds_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_execfd_creds_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn secureexec(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_secureexec(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn secureexec_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_secureexec_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn point_of_no_return(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } + } + #[inline] + pub fn set_point_of_no_return(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn point_of_no_return_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_point_of_no_return_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn comm_from_dentry(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } + } + #[inline] + pub fn set_comm_from_dentry(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn comm_from_dentry_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_comm_from_dentry_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn is_check(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } + } + #[inline] + pub fn set_is_check(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn is_check_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 5usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_is_check_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 5usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + have_execfd: ::aya_ebpf::cty::c_uint, + execfd_creds: ::aya_ebpf::cty::c_uint, + secureexec: ::aya_ebpf::cty::c_uint, + point_of_no_return: ::aya_ebpf::cty::c_uint, + comm_from_dentry: ::aya_ebpf::cty::c_uint, + is_check: ::aya_ebpf::cty::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let have_execfd: u32 = unsafe { ::core::mem::transmute(have_execfd) }; + have_execfd as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let execfd_creds: u32 = unsafe { ::core::mem::transmute(execfd_creds) }; + execfd_creds as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let secureexec: u32 = unsafe { ::core::mem::transmute(secureexec) }; + secureexec as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let point_of_no_return: u32 = unsafe { ::core::mem::transmute(point_of_no_return) }; + point_of_no_return as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let comm_from_dentry: u32 = unsafe { ::core::mem::transmute(comm_from_dentry) }; + comm_from_dentry as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let is_check: u32 = unsafe { ::core::mem::transmute(is_check) }; + is_check as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug)] +pub struct linux_dirent64 { + pub d_ino: u64_, + pub d_off: s64, + pub d_reclen: ::aya_ebpf::cty::c_ushort, + pub d_type: ::aya_ebpf::cty::c_uchar, + pub d_name: __IncompleteArrayField<::aya_ebpf::cty::c_char>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct linux_mib { + pub mibs: [::aya_ebpf::cty::c_ulong; 136usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct linux_tls_mib { + pub mibs: [::aya_ebpf::cty::c_ulong; 18usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct linux_xfrm_mib { + pub mibs: [::aya_ebpf::cty::c_ulong; 33usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct list_lru { + pub node: *mut list_lru_node, + pub list: list_head, + pub shrinker_id: ::aya_ebpf::cty::c_int, + pub memcg_aware: bool_, + pub xa: xarray, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct list_lru_one { + pub list: list_head, + pub nr_items: ::aya_ebpf::cty::c_long, + pub lock: spinlock_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct list_lru_node { + pub lru: list_lru_one, + pub nr_items: atomic_long_t, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, +} +impl list_lru_node { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct local_ports { + pub range: u32_, + pub warned: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct local_trylock { + pub acquired: u8_, +} +pub type local_trylock_t = local_trylock; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct lock_manager_operations { + pub lm_mod_owner: *mut ::aya_ebpf::cty::c_void, + pub lm_get_owner: ::core::option::Option fl_owner_t>, + pub lm_put_owner: ::core::option::Option, + pub lm_notify: ::core::option::Option, + pub lm_grant: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file_lock, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub lm_lock_expirable: + ::core::option::Option bool_>, + pub lm_expire_lock: ::core::option::Option, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union lower_chunk { + pub next: *mut lower_chunk, + pub data: [::aya_ebpf::cty::c_ulong; 256usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct lru_gen_folio { + pub max_seq: ::aya_ebpf::cty::c_ulong, + pub min_seq: [::aya_ebpf::cty::c_ulong; 2usize], + pub timestamps: [::aya_ebpf::cty::c_ulong; 4usize], + pub folios: [list_head; 40usize], + pub nr_pages: [::aya_ebpf::cty::c_long; 40usize], + pub avg_refaulted: [::aya_ebpf::cty::c_ulong; 8usize], + pub avg_total: [::aya_ebpf::cty::c_ulong; 8usize], + pub protected: [::aya_ebpf::cty::c_ulong; 8usize], + pub evicted: [atomic_long_t; 8usize], + pub refaulted: [atomic_long_t; 8usize], + pub enabled: bool_, + pub gen_: u8_, + pub seg: u8_, + pub list: hlist_nulls_node, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct lru_gen_memcg { + pub seq: ::aya_ebpf::cty::c_ulong, + pub nr_memcgs: [::aya_ebpf::cty::c_ulong; 3usize], + pub fifo: [hlist_nulls_head; 24usize], + pub lock: spinlock_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct lru_gen_mm_list { + pub fifo: list_head, + pub lock: spinlock_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct lru_gen_mm_state { + pub seq: ::aya_ebpf::cty::c_ulong, + pub head: *mut list_head, + pub tail: *mut list_head, + pub filters: [*mut ::aya_ebpf::cty::c_ulong; 2usize], + pub stats: [::aya_ebpf::cty::c_ulong; 4usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct lru_gen_mm_walk { + pub lruvec: *mut lruvec, + pub seq: ::aya_ebpf::cty::c_ulong, + pub next_addr: ::aya_ebpf::cty::c_ulong, + pub nr_pages: [::aya_ebpf::cty::c_int; 40usize], + pub mm_stats: [::aya_ebpf::cty::c_int; 4usize], + pub batched: ::aya_ebpf::cty::c_int, + pub swappiness: ::aya_ebpf::cty::c_int, + pub force_scan: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct zswap_lruvec_state { + pub nr_disk_swapins: atomic_long_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct lruvec { + pub lists: [list_head; 5usize], + pub lru_lock: spinlock_t, + pub anon_cost: ::aya_ebpf::cty::c_ulong, + pub file_cost: ::aya_ebpf::cty::c_ulong, + pub nonresident_age: atomic_long_t, + pub refaults: [::aya_ebpf::cty::c_ulong; 2usize], + pub flags: ::aya_ebpf::cty::c_ulong, + pub lrugen: lru_gen_folio, + pub mm_state: lru_gen_mm_state, + pub pgdat: *mut pglist_data, + pub zswap_lruvec_state: zswap_lruvec_state, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct lruvec_stats { + pub state: [::aya_ebpf::cty::c_long; 47usize], + pub state_local: [::aya_ebpf::cty::c_long; 47usize], + pub state_pending: [::aya_ebpf::cty::c_long; 47usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct lruvec_stats_percpu { + pub state: [::aya_ebpf::cty::c_long; 47usize], + pub state_prev: [::aya_ebpf::cty::c_long; 47usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct lwq { + pub lock: spinlock_t, + pub ready: *mut llist_node, + pub new: llist_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct lwq_node { + pub node: llist_node, +} +#[repr(C)] +#[derive(Debug)] +pub struct lwtunnel_state { + pub type_: __u16, + pub flags: __u16, + pub headroom: __u16, + pub refcnt: atomic_t, + pub orig_output: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net, + arg2: *mut sock, + arg3: *mut sk_buff, + ) -> ::aya_ebpf::cty::c_int, + >, + pub orig_input: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub rcu: callback_head, + pub data: __IncompleteArrayField<__u8>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mac_address { + pub addr: [u8_; 6usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct macsec_context { + pub __bindgen_anon_1: macsec_context__bindgen_ty_1, + pub offload: macsec_offload::Type, + pub secy: *mut macsec_secy, + pub rx_sc: *mut macsec_rx_sc, + pub sa: macsec_context__bindgen_ty_2, + pub stats: macsec_context__bindgen_ty_3, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union macsec_context__bindgen_ty_1 { + pub netdev: *mut net_device, + pub phydev: *mut phy_device, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct macsec_context__bindgen_ty_2 { + pub update_pn: bool_, + pub assoc_num: ::aya_ebpf::cty::c_uchar, + pub key: [u8_; 128usize], + pub __bindgen_anon_1: macsec_context__bindgen_ty_2__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union macsec_context__bindgen_ty_2__bindgen_ty_1 { + pub rx_sa: *mut macsec_rx_sa, + pub tx_sa: *mut macsec_tx_sa, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union macsec_context__bindgen_ty_3 { + pub tx_sc_stats: *mut macsec_tx_sc_stats, + pub tx_sa_stats: *mut macsec_tx_sa_stats, + pub rx_sc_stats: *mut macsec_rx_sc_stats, + pub rx_sa_stats: *mut macsec_rx_sa_stats, + pub dev_stats: *mut macsec_dev_stats, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct macsec_dev_stats { + pub OutPktsUntagged: __u64, + pub InPktsUntagged: __u64, + pub OutPktsTooLong: __u64, + pub InPktsNoTag: __u64, + pub InPktsBadTag: __u64, + pub InPktsUnknownSCI: __u64, + pub InPktsNoSCI: __u64, + pub InPktsOverrun: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct macsec_info { + pub sci: sci_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union salt { + pub __bindgen_anon_1: salt__bindgen_ty_1, + pub bytes: [u8_; 12usize], +} +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct salt__bindgen_ty_1 { + pub ssci: ssci_t, + pub pn: __be64, +} +pub type salt_t = salt; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct macsec_key { + pub id: [u8_; 16usize], + pub tfm: *mut crypto_aead, + pub salt: salt_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct macsec_ops { + pub mdo_dev_open: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut macsec_context) -> ::aya_ebpf::cty::c_int, + >, + pub mdo_dev_stop: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut macsec_context) -> ::aya_ebpf::cty::c_int, + >, + pub mdo_add_secy: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut macsec_context) -> ::aya_ebpf::cty::c_int, + >, + pub mdo_upd_secy: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut macsec_context) -> ::aya_ebpf::cty::c_int, + >, + pub mdo_del_secy: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut macsec_context) -> ::aya_ebpf::cty::c_int, + >, + pub mdo_add_rxsc: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut macsec_context) -> ::aya_ebpf::cty::c_int, + >, + pub mdo_upd_rxsc: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut macsec_context) -> ::aya_ebpf::cty::c_int, + >, + pub mdo_del_rxsc: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut macsec_context) -> ::aya_ebpf::cty::c_int, + >, + pub mdo_add_rxsa: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut macsec_context) -> ::aya_ebpf::cty::c_int, + >, + pub mdo_upd_rxsa: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut macsec_context) -> ::aya_ebpf::cty::c_int, + >, + pub mdo_del_rxsa: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut macsec_context) -> ::aya_ebpf::cty::c_int, + >, + pub mdo_add_txsa: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut macsec_context) -> ::aya_ebpf::cty::c_int, + >, + pub mdo_upd_txsa: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut macsec_context) -> ::aya_ebpf::cty::c_int, + >, + pub mdo_del_txsa: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut macsec_context) -> ::aya_ebpf::cty::c_int, + >, + pub mdo_get_dev_stats: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut macsec_context) -> ::aya_ebpf::cty::c_int, + >, + pub mdo_get_tx_sc_stats: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut macsec_context) -> ::aya_ebpf::cty::c_int, + >, + pub mdo_get_tx_sa_stats: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut macsec_context) -> ::aya_ebpf::cty::c_int, + >, + pub mdo_get_rx_sc_stats: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut macsec_context) -> ::aya_ebpf::cty::c_int, + >, + pub mdo_get_rx_sa_stats: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut macsec_context) -> ::aya_ebpf::cty::c_int, + >, + pub mdo_insert_tx_tag: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut phy_device, arg2: *mut sk_buff) -> ::aya_ebpf::cty::c_int, + >, + pub needed_headroom: ::aya_ebpf::cty::c_uint, + pub needed_tailroom: ::aya_ebpf::cty::c_uint, + pub rx_uses_md_dst: bool_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pn { + pub __bindgen_anon_1: pn__bindgen_ty_1, + pub full64: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pn__bindgen_ty_1 { + pub lower: u32_, + pub upper: u32_, +} +pub type pn_t = pn; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct macsec_rx_sa { + pub key: macsec_key, + pub ssci: ssci_t, + pub lock: spinlock_t, + pub __bindgen_anon_1: macsec_rx_sa__bindgen_ty_1, + pub refcnt: refcount_t, + pub active: bool_, + pub stats: *mut macsec_rx_sa_stats, + pub sc: *mut macsec_rx_sc, + pub destroy_work: rcu_work, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union macsec_rx_sa__bindgen_ty_1 { + pub next_pn_halves: pn_t, + pub next_pn: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct macsec_rx_sa_stats { + pub InPktsOK: __u32, + pub InPktsInvalid: __u32, + pub InPktsNotValid: __u32, + pub InPktsNotUsingSA: __u32, + pub InPktsUnusedSA: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct macsec_rx_sc { + pub next: *mut macsec_rx_sc, + pub sci: sci_t, + pub active: bool_, + pub sa: [*mut macsec_rx_sa; 4usize], + pub stats: *mut pcpu_rx_sc_stats, + pub refcnt: refcount_t, + pub callback_head: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct macsec_rx_sc_stats { + pub InOctetsValidated: __u64, + pub InOctetsDecrypted: __u64, + pub InPktsUnchecked: __u64, + pub InPktsDelayed: __u64, + pub InPktsOK: __u64, + pub InPktsInvalid: __u64, + pub InPktsLate: __u64, + pub InPktsNotValid: __u64, + pub InPktsNotUsingSA: __u64, + pub InPktsUnusedSA: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct macsec_tx_sc { + pub active: bool_, + pub encoding_sa: u8_, + pub encrypt: bool_, + pub send_sci: bool_, + pub end_station: bool_, + pub scb: bool_, + pub sa: [*mut macsec_tx_sa; 4usize], + pub stats: *mut pcpu_tx_sc_stats, + pub md_dst: *mut metadata_dst, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct macsec_secy { + pub netdev: *mut net_device, + pub n_rx_sc: ::aya_ebpf::cty::c_uint, + pub sci: sci_t, + pub key_len: u16_, + pub icv_len: u16_, + pub validate_frames: macsec_validation_type::Type, + pub xpn: bool_, + pub operational: bool_, + pub protect_frames: bool_, + pub replay_protect: bool_, + pub replay_window: u32_, + pub tx_sc: macsec_tx_sc, + pub rx_sc: *mut macsec_rx_sc, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct macsec_tx_sa { + pub key: macsec_key, + pub ssci: ssci_t, + pub lock: spinlock_t, + pub __bindgen_anon_1: macsec_tx_sa__bindgen_ty_1, + pub refcnt: refcount_t, + pub active: bool_, + pub stats: *mut macsec_tx_sa_stats, + pub destroy_work: rcu_work, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union macsec_tx_sa__bindgen_ty_1 { + pub next_pn_halves: pn_t, + pub next_pn: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct macsec_tx_sa_stats { + pub OutPktsProtected: __u32, + pub OutPktsEncrypted: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct macsec_tx_sc_stats { + pub OutPktsProtected: __u64, + pub OutPktsEncrypted: __u64, + pub OutOctetsProtected: __u64, + pub OutOctetsEncrypted: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct mctp_dev { + pub dev: *mut net_device, + pub refs: refcount_t, + pub net: ::aya_ebpf::cty::c_uint, + pub binding: mctp_phys_binding::Type, + pub ops: *const mctp_netdev_ops, + pub addrs: *mut u8_, + pub num_addrs: usize, + pub addrs_lock: spinlock_t, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mctp_netdev_ops { + pub release_flow: + ::core::option::Option, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct mctp_sk_key { + pub net: ::aya_ebpf::cty::c_uint, + pub peer_addr: mctp_eid_t, + pub local_addr: mctp_eid_t, + pub tag: __u8, + pub sk: *mut sock, + pub hlist: hlist_node, + pub sklist: hlist_node, + pub lock: spinlock_t, + pub refs: refcount_t, + pub reasm_head: *mut sk_buff, + pub reasm_tailp: *mut *mut sk_buff, + pub reasm_dead: bool_, + pub last_seq: u8_, + pub valid: bool_, + pub expiry: ::aya_ebpf::cty::c_ulong, + pub dev_flow_state: ::aya_ebpf::cty::c_ulong, + pub dev: *mut mctp_dev, + pub manual_alloc: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mdio_bus_stats { + pub transfers: u64_stats_t, + pub errors: u64_stats_t, + pub writes: u64_stats_t, + pub reads: u64_stats_t, + pub syncp: u64_stats_sync, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct mdio_device { + pub dev: device, + pub bus: *mut mii_bus, + pub bus_match: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut device, + arg2: *const device_driver, + ) -> ::aya_ebpf::cty::c_int, + >, + pub device_free: ::core::option::Option, + pub device_remove: ::core::option::Option, + pub addr: ::aya_ebpf::cty::c_int, + pub flags: ::aya_ebpf::cty::c_int, + pub reset_state: ::aya_ebpf::cty::c_int, + pub reset_gpio: *mut gpio_desc, + pub reset_ctrl: *mut reset_control, + pub reset_assert_delay: ::aya_ebpf::cty::c_uint, + pub reset_deassert_delay: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mdio_driver_common { + pub driver: device_driver, + pub flags: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mem_cgroup_private_id { + pub id: ::aya_ebpf::cty::c_int, + pub ref_: refcount_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct vmpressure { + pub scanned: ::aya_ebpf::cty::c_ulong, + pub reclaimed: ::aya_ebpf::cty::c_ulong, + pub tree_scanned: ::aya_ebpf::cty::c_ulong, + pub tree_reclaimed: ::aya_ebpf::cty::c_ulong, + pub sr_lock: spinlock_t, + pub events: list_head, + pub events_lock: mutex, + pub work: work_struct, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct wb_domain { + pub lock: spinlock_t, + pub completions: fprop_global, + pub period_timer: timer_list, + pub period_time: ::aya_ebpf::cty::c_ulong, + pub dirty_limit_tstamp: ::aya_ebpf::cty::c_ulong, + pub dirty_limit: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wb_completion { + pub cnt: atomic_t, + pub waitq: *mut wait_queue_head_t, + pub progress_stamp: ::aya_ebpf::cty::c_ulong, + pub wait_start: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct memcg_cgwb_frn { + pub bdi_id: u64_, + pub memcg_id: ::aya_ebpf::cty::c_int, + pub at: u64_, + pub done: wb_completion, +} +#[repr(C)] +pub struct mem_cgroup { + pub css: cgroup_subsys_state, + pub id: mem_cgroup_private_id, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 40usize]>, + pub memory: page_counter, + pub __bindgen_anon_1: mem_cgroup__bindgen_ty_1, + pub memory_peaks: list_head, + pub swap_peaks: list_head, + pub peaks_lock: spinlock_t, + pub high_work: work_struct, + pub zswap_max: ::aya_ebpf::cty::c_ulong, + pub zswap_writeback: bool_, + pub vmpressure: vmpressure, + pub oom_group: bool_, + pub swappiness: ::aya_ebpf::cty::c_int, + pub events_file: cgroup_file, + pub events_local_file: cgroup_file, + pub swap_events_file: cgroup_file, + pub vmstats: *mut memcg_vmstats, + pub memory_events: [atomic_long_t; 10usize], + pub memory_events_local: [atomic_long_t; 10usize], + pub socket_pressure: u64_, + pub kmemcg_id: ::aya_ebpf::cty::c_int, + pub vmstats_percpu: *mut memcg_vmstats_percpu, + pub cgwb_list: list_head, + pub cgwb_domain: wb_domain, + pub cgwb_frn: [memcg_cgwb_frn; 4usize], + pub deferred_split_queue: deferred_split, + pub mm_list: lru_gen_mm_list, + pub nodeinfo: __IncompleteArrayField<*mut mem_cgroup_per_node>, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 16usize]>, +} +#[repr(C)] +pub struct mem_cgroup__bindgen_ty_1 { + pub swap: __BindgenUnionField, + pub memsw: __BindgenUnionField, + pub bindgen_union_field: [u64; 24usize], +} +impl mem_cgroup { + #[inline] + pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mem_cgroup_reclaim_iter { + pub position: *mut mem_cgroup, + pub generation: atomic_t, +} +#[repr(C)] +pub struct mem_cgroup_per_node { + pub memcg: *mut mem_cgroup, + pub lruvec_stats_percpu: *mut lruvec_stats_percpu, + pub lruvec_stats: *mut lruvec_stats, + pub shrinker_info: *mut shrinker_info, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 32usize]>, + pub _pad1_: cacheline_padding, + pub lruvec: lruvec, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 16usize]>, + pub _pad2_: cacheline_padding, + pub lru_zone_size: [::aya_ebpf::cty::c_ulong; 25usize], + pub iter: mem_cgroup_reclaim_iter, + pub objcg: *mut obj_cgroup, + pub orig_objcg: *mut obj_cgroup, + pub objcg_list: list_head, + pub _bitfield_align_3: [u8; 0], + pub _bitfield_3: __BindgenBitfieldUnit<[u8; 8usize]>, +} +impl mem_cgroup_per_node { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 32usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 32usize]> = Default::default(); + __bindgen_bitfield_unit + } + #[inline] + pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); + __bindgen_bitfield_unit + } + #[inline] + pub fn new_bitfield_3() -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mem_dqinfo { + pub dqi_format: *mut quota_format_type, + pub dqi_fmt_id: ::aya_ebpf::cty::c_int, + pub dqi_dirty_list: list_head, + pub dqi_flags: ::aya_ebpf::cty::c_ulong, + pub dqi_bgrace: ::aya_ebpf::cty::c_uint, + pub dqi_igrace: ::aya_ebpf::cty::c_uint, + pub dqi_max_spc_limit: qsize_t, + pub dqi_max_ino_limit: qsize_t, + pub dqi_priv: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct memcg_vmstats { + pub state: [::aya_ebpf::cty::c_long; 54usize], + pub events: [::aya_ebpf::cty::c_ulong; 20usize], + pub state_local: [::aya_ebpf::cty::c_long; 54usize], + pub events_local: [::aya_ebpf::cty::c_ulong; 20usize], + pub state_pending: [::aya_ebpf::cty::c_long; 54usize], + pub events_pending: [::aya_ebpf::cty::c_ulong; 20usize], + pub stats_updates: atomic_long_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct memcg_vmstats_percpu { + pub stats_updates: ::aya_ebpf::cty::c_ulong, + pub parent_pcpu: *mut memcg_vmstats_percpu, + pub vmstats: *mut memcg_vmstats, + pub state: [::aya_ebpf::cty::c_long; 54usize], + pub events: [::aya_ebpf::cty::c_ulong; 20usize], + pub state_prev: [::aya_ebpf::cty::c_long; 54usize], + pub events_prev: [::aya_ebpf::cty::c_ulong; 20usize], + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, +} +impl memcg_vmstats_percpu { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct memory_failure_stats { + pub total: ::aya_ebpf::cty::c_ulong, + pub ignored: ::aya_ebpf::cty::c_ulong, + pub failed: ::aya_ebpf::cty::c_ulong, + pub delayed: ::aya_ebpf::cty::c_ulong, + pub recovered: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct memory_provider_ops { + pub alloc_netmems: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut page_pool, arg2: gfp_t) -> netmem_ref, + >, + pub release_netmem: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut page_pool, arg2: netmem_ref) -> bool_, + >, + pub init: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut page_pool) -> ::aya_ebpf::cty::c_int, + >, + pub destroy: ::core::option::Option, + pub nl_fill: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ::aya_ebpf::cty::c_void, + arg2: *mut sk_buff, + arg3: *mut netdev_rx_queue, + ) -> ::aya_ebpf::cty::c_int, + >, + pub uninstall: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ::aya_ebpf::cty::c_void, arg2: *mut netdev_rx_queue), + >, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct memory_tier { + pub list: list_head, + pub memory_types: list_head, + pub adistance_start: ::aya_ebpf::cty::c_int, + pub dev: device, + pub lower_tier_mask: nodemask_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct mempolicy { + pub refcnt: atomic_t, + pub mode: ::aya_ebpf::cty::c_ushort, + pub flags: ::aya_ebpf::cty::c_ushort, + pub nodes: nodemask_t, + pub home_node: ::aya_ebpf::cty::c_int, + pub w: mempolicy__bindgen_ty_1, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union mempolicy__bindgen_ty_1 { + pub cpuset_mems_allowed: nodemask_t, + pub user_nodemask: nodemask_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xfrm_md_info { + pub if_id: u32_, + pub link: ::aya_ebpf::cty::c_int, + pub dst_orig: *mut dst_entry, +} +#[repr(C)] +pub struct metadata_dst { + pub dst: dst_entry, + pub type_: metadata_type::Type, + pub u: metadata_dst__bindgen_ty_1, +} +#[repr(C)] +pub struct metadata_dst__bindgen_ty_1 { + pub tun_info: __BindgenUnionField, + pub port_info: __BindgenUnionField, + pub macsec_info: __BindgenUnionField, + pub xfrm_info: __BindgenUnionField, + pub bindgen_union_field: [u64; 12usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct phy_package_shared { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct mii_bus { + pub owner: *mut module, + pub name: *const ::aya_ebpf::cty::c_char, + pub id: [::aya_ebpf::cty::c_char; 61usize], + pub priv_: *mut ::aya_ebpf::cty::c_void, + pub read: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut mii_bus, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub write: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut mii_bus, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + arg4: u16_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub read_c45: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut mii_bus, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + arg4: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub write_c45: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut mii_bus, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + arg4: ::aya_ebpf::cty::c_int, + arg5: u16_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub reset: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub stats: [mdio_bus_stats; 32usize], + pub mdio_lock: mutex, + pub parent: *mut device, + pub state: mii_bus__bindgen_ty_1::Type, + pub dev: device, + pub mdio_map: [*mut mdio_device; 32usize], + pub phy_mask: u32_, + pub phy_ignore_ta_mask: u32_, + pub irq: [::aya_ebpf::cty::c_int; 32usize], + pub reset_delay_us: ::aya_ebpf::cty::c_int, + pub reset_post_delay_us: ::aya_ebpf::cty::c_int, + pub reset_gpiod: *mut gpio_desc, + pub shared_lock: mutex, + pub shared: [*mut phy_package_shared; 32usize], +} +pub mod mii_bus__bindgen_ty_1 { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const MDIOBUS_ALLOCATED: Type = 1; + pub const MDIOBUS_REGISTERED: Type = 2; + pub const MDIOBUS_UNREGISTERED: Type = 3; + pub const MDIOBUS_RELEASED: Type = 4; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mii_timestamper { + pub rxtstamp: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut mii_timestamper, + arg2: *mut sk_buff, + arg3: ::aya_ebpf::cty::c_int, + ) -> bool_, + >, + pub txtstamp: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut mii_timestamper, + arg2: *mut sk_buff, + arg3: ::aya_ebpf::cty::c_int, + ), + >, + pub hwtstamp_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut mii_timestamper, + arg2: *mut kernel_hwtstamp_config, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub hwtstamp_get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut mii_timestamper, + arg2: *mut kernel_hwtstamp_config, + ) -> ::aya_ebpf::cty::c_int, + >, + pub link_state: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut mii_timestamper, arg2: *mut phy_device), + >, + pub ts_info: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut mii_timestamper, + arg2: *mut kernel_ethtool_ts_info, + ) -> ::aya_ebpf::cty::c_int, + >, + pub device: *mut device, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct minmax_sample { + pub t: u32_, + pub v: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct minmax { + pub s: [minmax_sample; 3usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mm_cid_pcpu { + pub cid: ::aya_ebpf::cty::c_uint, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 56usize]>, + pub __bindgen_padding_0: u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct mm_mm_cid { + pub pcpu: *mut mm_cid_pcpu, + pub mode: ::aya_ebpf::cty::c_uint, + pub max_cids: ::aya_ebpf::cty::c_uint, + pub irq_work: irq_work, + pub work: work_struct, + pub lock: raw_spinlock_t, + pub mutex: mutex, + pub user_list: hlist_head, + pub nr_cpus_allowed: ::aya_ebpf::cty::c_uint, + pub users: ::aya_ebpf::cty::c_uint, + pub pcpu_thrs: ::aya_ebpf::cty::c_uint, + pub update_deferred: ::aya_ebpf::cty::c_uint, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 56usize]>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct uprobes_state { + pub xol_area: *mut xol_area, + pub head_tramps: hlist_head, +} +#[repr(C)] +pub struct mm_struct { + pub __bindgen_anon_1: mm_struct__bindgen_ty_1, + pub flexible_array: __IncompleteArrayField<::aya_ebpf::cty::c_char>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct mm_struct__bindgen_ty_1 { + pub __bindgen_anon_1: mm_struct__bindgen_ty_1__bindgen_ty_1, + pub mm_mt: maple_tree, + pub mmap_base: ::aya_ebpf::cty::c_ulong, + pub mmap_legacy_base: ::aya_ebpf::cty::c_ulong, + pub mmap_compat_base: ::aya_ebpf::cty::c_ulong, + pub mmap_compat_legacy_base: ::aya_ebpf::cty::c_ulong, + pub task_size: ::aya_ebpf::cty::c_ulong, + pub pgd: *mut pgd_t, + pub membarrier_state: atomic_t, + pub mm_users: atomic_t, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 56usize]>, + pub mm_cid: mm_mm_cid, + pub pgtables_bytes: atomic_long_t, + pub map_count: ::aya_ebpf::cty::c_int, + pub page_table_lock: spinlock_t, + pub mmap_lock: rw_semaphore, + pub mmlist: list_head, + pub vma_writer_wait: rcuwait, + pub mm_lock_seq: seqcount_t, + pub futex_hash_lock: mutex, + pub futex_phash: *mut futex_private_hash, + pub futex_phash_new: *mut futex_private_hash, + pub futex_batches: ::aya_ebpf::cty::c_ulong, + pub futex_rcu: callback_head, + pub futex_atomic: atomic_long_t, + pub futex_ref: *mut ::aya_ebpf::cty::c_uint, + pub hiwater_rss: ::aya_ebpf::cty::c_ulong, + pub hiwater_vm: ::aya_ebpf::cty::c_ulong, + pub total_vm: ::aya_ebpf::cty::c_ulong, + pub locked_vm: ::aya_ebpf::cty::c_ulong, + pub pinned_vm: atomic64_t, + pub data_vm: ::aya_ebpf::cty::c_ulong, + pub exec_vm: ::aya_ebpf::cty::c_ulong, + pub stack_vm: ::aya_ebpf::cty::c_ulong, + pub __bindgen_anon_2: mm_struct__bindgen_ty_1__bindgen_ty_2, + pub write_protect_seq: seqcount_t, + pub arg_lock: spinlock_t, + pub start_code: ::aya_ebpf::cty::c_ulong, + pub end_code: ::aya_ebpf::cty::c_ulong, + pub start_data: ::aya_ebpf::cty::c_ulong, + pub end_data: ::aya_ebpf::cty::c_ulong, + pub start_brk: ::aya_ebpf::cty::c_ulong, + pub brk: ::aya_ebpf::cty::c_ulong, + pub start_stack: ::aya_ebpf::cty::c_ulong, + pub arg_start: ::aya_ebpf::cty::c_ulong, + pub arg_end: ::aya_ebpf::cty::c_ulong, + pub env_start: ::aya_ebpf::cty::c_ulong, + pub env_end: ::aya_ebpf::cty::c_ulong, + pub saved_auxv: [::aya_ebpf::cty::c_ulong; 56usize], + pub rss_stat: [percpu_counter; 4usize], + pub binfmt: *mut linux_binfmt, + pub context: mm_context_t, + pub flags: mm_flags_t, + pub ioctx_lock: spinlock_t, + pub ioctx_table: *mut kioctx_table, + pub owner: *mut task_struct, + pub user_ns: *mut user_namespace, + pub exe_file: *mut file, + pub notifier_subscriptions: *mut mmu_notifier_subscriptions, + pub numa_next_scan: ::aya_ebpf::cty::c_ulong, + pub numa_scan_offset: ::aya_ebpf::cty::c_ulong, + pub numa_scan_seq: ::aya_ebpf::cty::c_int, + pub tlb_flush_pending: atomic_t, + pub tlb_flush_batched: atomic_t, + pub uprobes_state: uprobes_state, + pub hugetlb_usage: atomic_long_t, + pub async_put_work: work_struct, + pub iommu_mm: *mut iommu_mm_data, + pub ksm_merging_pages: ::aya_ebpf::cty::c_ulong, + pub ksm_rmap_items: ::aya_ebpf::cty::c_ulong, + pub ksm_zero_pages: atomic_long_t, + pub lru_gen: mm_struct__bindgen_ty_1__bindgen_ty_3, + pub mm_id: mm_id_t, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 56usize]>, + pub __bindgen_padding_0: u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mm_struct__bindgen_ty_1__bindgen_ty_1 { + pub mm_count: atomic_t, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 56usize]>, + pub __bindgen_padding_0: u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union mm_struct__bindgen_ty_1__bindgen_ty_2 { + pub def_flags: vm_flags_t, + pub def_vma_flags: vma_flags_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mm_struct__bindgen_ty_1__bindgen_ty_3 { + pub list: list_head, + pub bitmap: ::aya_ebpf::cty::c_ulong, + pub memcg: *mut mem_cgroup, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct mmap_action { + pub __bindgen_anon_1: mmap_action__bindgen_ty_1, + pub type_: mmap_action_type::Type, + pub success_hook: ::core::option::Option< + unsafe extern "C" fn(arg1: *const vm_area_struct) -> ::aya_ebpf::cty::c_int, + >, + pub error_hook: ::core::option::Option< + unsafe extern "C" fn(arg1: ::aya_ebpf::cty::c_int) -> ::aya_ebpf::cty::c_int, + >, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: [u8; 7usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union mmap_action__bindgen_ty_1 { + pub remap: mmap_action__bindgen_ty_1__bindgen_ty_1, + pub simple_ioremap: mmap_action__bindgen_ty_1__bindgen_ty_2, + pub map_kernel: mmap_action__bindgen_ty_1__bindgen_ty_3, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mmap_action__bindgen_ty_1__bindgen_ty_1 { + pub start: ::aya_ebpf::cty::c_ulong, + pub start_pfn: ::aya_ebpf::cty::c_ulong, + pub size: ::aya_ebpf::cty::c_ulong, + pub pgprot: pgprot_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mmap_action__bindgen_ty_1__bindgen_ty_2 { + pub start_phys_addr: phys_addr_t, + pub size: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mmap_action__bindgen_ty_1__bindgen_ty_3 { + pub start: ::aya_ebpf::cty::c_ulong, + pub pages: *mut *mut page, + pub nr_pages: ::aya_ebpf::cty::c_ulong, + pub pgoff: ::aya_ebpf::cty::c_ulong, +} +impl mmap_action { + #[inline] + pub fn hide_from_rmap_until_complete(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_hide_from_rmap_until_complete(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn hide_from_rmap_until_complete_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_hide_from_rmap_until_complete_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + hide_from_rmap_until_complete: bool_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let hide_from_rmap_until_complete: u8 = + unsafe { ::core::mem::transmute(hide_from_rmap_until_complete) }; + hide_from_rmap_until_complete as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct mmu_notifier_subscriptions { + pub list: hlist_head, + pub has_itree: bool_, + pub lock: spinlock_t, + pub invalidate_seq: ::aya_ebpf::cty::c_ulong, + pub active_invalidate_ranges: ::aya_ebpf::cty::c_ulong, + pub itree: rb_root_cached, + pub wq: wait_queue_head_t, + pub deferred_list: hlist_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct uid_gid_extent { + pub first: u32_, + pub lower_first: u32_, + pub count: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct uid_gid_map { + pub __bindgen_anon_1: uid_gid_map__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union uid_gid_map__bindgen_ty_1 { + pub __bindgen_anon_1: uid_gid_map__bindgen_ty_1__bindgen_ty_1, + pub __bindgen_anon_2: uid_gid_map__bindgen_ty_1__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct uid_gid_map__bindgen_ty_1__bindgen_ty_1 { + pub extent: [uid_gid_extent; 5usize], + pub nr_extents: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct uid_gid_map__bindgen_ty_1__bindgen_ty_2 { + pub forward: *mut uid_gid_extent, + pub reverse: *mut uid_gid_extent, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct mnt_idmap { + pub uid_map: uid_gid_map, + pub gid_map: uid_gid_map, + pub count: refcount_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct mnt_namespace { + pub ns: ns_common, + pub root: *mut mount, + pub __bindgen_anon_1: mnt_namespace__bindgen_ty_1, + pub user_ns: *mut user_namespace, + pub ucounts: *mut ucounts, + pub poll: wait_queue_head_t, + pub seq_origin: u64_, + pub event: u64_, + pub n_fsnotify_mask: __u32, + pub n_fsnotify_marks: *mut fsnotify_mark_connector, + pub nr_mounts: ::aya_ebpf::cty::c_uint, + pub pending_mounts: ::aya_ebpf::cty::c_uint, + pub passive: refcount_t, + pub is_anon: bool_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, + pub __bindgen_padding_0: [u8; 3usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mnt_namespace__bindgen_ty_1 { + pub mounts: rb_root, + pub mnt_last_node: *mut rb_node, + pub mnt_first_node: *mut rb_node, +} +impl mnt_namespace { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mnt_pcp { + pub mnt_count: ::aya_ebpf::cty::c_int, + pub mnt_writers: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mod_arch_specific { + pub num_orcs: ::aya_ebpf::cty::c_uint, + pub orc_unwind_ip: *mut ::aya_ebpf::cty::c_int, + pub orc_unwind: *mut orc_entry, + pub its_pages: its_array, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mod_kallsyms { + pub symtab: *mut Elf64_Sym, + pub num_symtab: ::aya_ebpf::cty::c_uint, + pub strtab: *mut ::aya_ebpf::cty::c_char, + pub typetab: *mut ::aya_ebpf::cty::c_char, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mod_tree_node { + pub mod_: *mut module, + pub node: latch_tree_node, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct module_kobject { + pub kobj: kobject, + pub mod_: *mut module, + pub drivers_dir: *mut kobject, + pub mp: *mut module_param_attrs, + pub kobj_completion: *mut completion, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct module_memory { + pub base: *mut ::aya_ebpf::cty::c_void, + pub is_rox: bool_, + pub size: ::aya_ebpf::cty::c_uint, + pub mtn: mod_tree_node, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct module { + pub state: module_state::Type, + pub list: list_head, + pub name: [::aya_ebpf::cty::c_char; 56usize], + pub build_id: [::aya_ebpf::cty::c_uchar; 20usize], + pub mkobj: module_kobject, + pub modinfo_attrs: *mut module_attribute, + pub version: *const ::aya_ebpf::cty::c_char, + pub srcversion: *const ::aya_ebpf::cty::c_char, + pub imported_namespaces: *const ::aya_ebpf::cty::c_char, + pub holders_dir: *mut kobject, + pub syms: *const kernel_symbol, + pub crcs: *const u32_, + pub flagstab: *const u8_, + pub num_syms: ::aya_ebpf::cty::c_uint, + pub param_lock: mutex, + pub kp: *mut kernel_param, + pub num_kp: ::aya_ebpf::cty::c_uint, + pub using_gplonly_symbols: bool_, + pub async_probe_requested: bool_, + pub num_exentries: ::aya_ebpf::cty::c_uint, + pub extable: *mut exception_table_entry, + pub init: ::core::option::Option ::aya_ebpf::cty::c_int>, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 48usize]>, + pub mem: [module_memory; 7usize], + pub arch: mod_arch_specific, + pub taints: ::aya_ebpf::cty::c_ulong, + pub num_bugs: ::aya_ebpf::cty::c_uint, + pub bug_list: list_head, + pub bug_table: *mut bug_entry, + pub kallsyms: *mut mod_kallsyms, + pub core_kallsyms: mod_kallsyms, + pub sect_attrs: *mut module_sect_attrs, + pub notes_attrs: *mut module_notes_attrs, + pub args: *mut ::aya_ebpf::cty::c_char, + pub percpu: *mut ::aya_ebpf::cty::c_void, + pub percpu_size: ::aya_ebpf::cty::c_uint, + pub noinstr_text_start: *mut ::aya_ebpf::cty::c_void, + pub noinstr_text_size: ::aya_ebpf::cty::c_uint, + pub num_tracepoints: ::aya_ebpf::cty::c_uint, + pub tracepoints_ptrs: *const ::aya_ebpf::cty::c_int, + pub num_srcu_structs: ::aya_ebpf::cty::c_uint, + pub srcu_struct_ptrs: *mut *mut srcu_struct, + pub num_bpf_raw_events: ::aya_ebpf::cty::c_uint, + pub bpf_raw_events: *mut bpf_raw_event_map, + pub btf_data_size: ::aya_ebpf::cty::c_uint, + pub btf_base_data_size: ::aya_ebpf::cty::c_uint, + pub btf_data: *mut ::aya_ebpf::cty::c_void, + pub btf_base_data: *mut ::aya_ebpf::cty::c_void, + pub jump_entries: *mut jump_entry, + pub num_jump_entries: ::aya_ebpf::cty::c_uint, + pub num_trace_bprintk_fmt: ::aya_ebpf::cty::c_uint, + pub trace_bprintk_fmt_start: *mut *const ::aya_ebpf::cty::c_char, + pub trace_events: *mut *mut trace_event_call, + pub num_trace_events: ::aya_ebpf::cty::c_uint, + pub trace_evals: *mut *mut trace_eval_map, + pub num_trace_evals: ::aya_ebpf::cty::c_uint, + pub num_ftrace_callsites: ::aya_ebpf::cty::c_uint, + pub ftrace_callsites: *mut ::aya_ebpf::cty::c_ulong, + pub kprobes_text_start: *mut ::aya_ebpf::cty::c_void, + pub kprobes_text_size: ::aya_ebpf::cty::c_uint, + pub kprobe_blacklist: *mut ::aya_ebpf::cty::c_ulong, + pub num_kprobe_blacklist: ::aya_ebpf::cty::c_uint, + pub num_static_call_sites: ::aya_ebpf::cty::c_int, + pub static_call_sites: *mut static_call_site, + pub printk_index_size: ::aya_ebpf::cty::c_uint, + pub printk_index_start: *mut *mut pi_entry, + pub source_list: list_head, + pub target_list: list_head, + pub exit: ::core::option::Option, + pub refcnt: atomic_t, + pub ei_funcs: *mut error_injection_entry, + pub num_ei_funcs: ::aya_ebpf::cty::c_uint, + pub dyndbg_info: _ddebug_info, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 8usize]>, +} +impl module { + #[inline] + pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct module_attribute { + pub attr: attribute, + pub show: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const module_attribute, + arg2: *mut module_kobject, + arg3: *mut ::aya_ebpf::cty::c_char, + ) -> isize, + >, + pub store: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const module_attribute, + arg2: *mut module_kobject, + arg3: *const ::aya_ebpf::cty::c_char, + arg4: usize, + ) -> isize, + >, + pub setup: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut module, arg2: *const ::aya_ebpf::cty::c_char), + >, + pub test: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub free: ::core::option::Option, +} +#[repr(C)] +pub struct module_notes_attrs { + pub grp: attribute_group, + pub attrs: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct param_attribute { + pub mattr: module_attribute, + pub param: *const kernel_param, +} +#[repr(C)] +pub struct module_param_attrs { + pub num: ::aya_ebpf::cty::c_uint, + pub grp: attribute_group, + pub attrs: __IncompleteArrayField, +} +#[repr(C)] +pub struct module_sect_attrs { + pub grp: attribute_group, + pub attrs: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct vfsmount { + pub mnt_root: *mut dentry, + pub mnt_sb: *mut super_block, + pub mnt_flags: ::aya_ebpf::cty::c_int, + pub mnt_idmap: *mut mnt_idmap, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct mount { + pub mnt_hash: hlist_node, + pub mnt_parent: *mut mount, + pub mnt_mountpoint: *mut dentry, + pub mnt: vfsmount, + pub __bindgen_anon_1: mount__bindgen_ty_1, + pub mnt_pcp: *mut mnt_pcp, + pub mnt_mounts: list_head, + pub mnt_child: list_head, + pub mnt_next_for_sb: *mut mount, + pub mnt_pprev_for_sb: *mut *mut mount, + pub mnt_devname: *const ::aya_ebpf::cty::c_char, + pub mnt_list: list_head, + pub mnt_expire: list_head, + pub mnt_share: list_head, + pub mnt_slave_list: hlist_head, + pub mnt_slave: hlist_node, + pub mnt_master: *mut mount, + pub mnt_ns: *mut mnt_namespace, + pub mnt_mp: *mut mountpoint, + pub __bindgen_anon_2: mount__bindgen_ty_2, + pub mnt_fsnotify_marks: *mut fsnotify_mark_connector, + pub mnt_fsnotify_mask: __u32, + pub to_notify: list_head, + pub prev_ns: *mut mnt_namespace, + pub mnt_t_flags: ::aya_ebpf::cty::c_int, + pub mnt_id: ::aya_ebpf::cty::c_int, + pub mnt_id_unique: u64_, + pub mnt_group_id: ::aya_ebpf::cty::c_int, + pub mnt_expiry_mark: ::aya_ebpf::cty::c_int, + pub mnt_pins: hlist_head, + pub mnt_stuck_children: hlist_head, + pub overmount: *mut mount, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union mount__bindgen_ty_1 { + pub mnt_node: rb_node, + pub mnt_rcu: callback_head, + pub mnt_llist: llist_node, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union mount__bindgen_ty_2 { + pub mnt_mp_list: hlist_node, + pub mnt_umount: hlist_node, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mountpoint { + pub m_hash: hlist_node, + pub m_dentry: *mut dentry, + pub m_list: hlist_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mptcp_mib { + pub mibs: [::aya_ebpf::cty::c_ulong; 77usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct phy_mse_capability { + pub max_average_mse: u64_, + pub max_peak_mse: u64_, + pub refresh_rate_ps: u64_, + pub num_symbols: u64_, + pub supported_caps: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct phy_mse_snapshot { + pub average_mse: u64_, + pub peak_mse: u64_, + pub worst_peak_mse: u64_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct pci_msi_desc { + pub __bindgen_anon_1: pci_msi_desc__bindgen_ty_1, + pub msi_attrib: pci_msi_desc__bindgen_ty_2, + pub __bindgen_anon_2: pci_msi_desc__bindgen_ty_3, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pci_msi_desc__bindgen_ty_1 { + pub msi_mask: u32_, + pub msix_ctrl: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pci_msi_desc__bindgen_ty_2 { + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, + pub default_irq: ::aya_ebpf::cty::c_uint, +} +impl pci_msi_desc__bindgen_ty_2 { + #[inline] + pub fn is_msix(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_is_msix(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn is_msix_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_is_msix_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn multiple(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 3u8) as u8) } + } + #[inline] + pub fn set_multiple(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 3u8, val as u64) + } + } + #[inline] + pub unsafe fn multiple_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 3u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_multiple_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 3u8, + val as u64, + ) + } + } + #[inline] + pub fn multi_cap(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 3u8) as u8) } + } + #[inline] + pub fn set_multi_cap(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 3u8, val as u64) + } + } + #[inline] + pub unsafe fn multi_cap_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 3u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_multi_cap_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 3u8, + val as u64, + ) + } + } + #[inline] + pub fn can_mask(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) } + } + #[inline] + pub fn set_can_mask(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn can_mask_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 7usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_can_mask_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 7usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn is_64(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u8) } + } + #[inline] + pub fn set_is_64(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(8usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn is_64_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 8usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_is_64_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 8usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn is_virtual(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u8) } + } + #[inline] + pub fn set_is_virtual(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(9usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn is_virtual_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 9usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_is_virtual_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 9usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + is_msix: u8_, + multiple: u8_, + multi_cap: u8_, + can_mask: u8_, + is_64: u8_, + is_virtual: u8_, + ) -> __BindgenBitfieldUnit<[u8; 2usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let is_msix: u8 = unsafe { ::core::mem::transmute(is_msix) }; + is_msix as u64 + }); + __bindgen_bitfield_unit.set(1usize, 3u8, { + let multiple: u8 = unsafe { ::core::mem::transmute(multiple) }; + multiple as u64 + }); + __bindgen_bitfield_unit.set(4usize, 3u8, { + let multi_cap: u8 = unsafe { ::core::mem::transmute(multi_cap) }; + multi_cap as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let can_mask: u8 = unsafe { ::core::mem::transmute(can_mask) }; + can_mask as u64 + }); + __bindgen_bitfield_unit.set(8usize, 1u8, { + let is_64: u8 = unsafe { ::core::mem::transmute(is_64) }; + is_64 as u64 + }); + __bindgen_bitfield_unit.set(9usize, 1u8, { + let is_virtual: u8 = unsafe { ::core::mem::transmute(is_virtual) }; + is_virtual as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pci_msi_desc__bindgen_ty_3 { + pub mask_pos: u8_, + pub mask_base: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union msi_domain_cookie { + pub value: u64_, + pub ptr: *mut ::aya_ebpf::cty::c_void, + pub iobase: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union msi_instance_cookie { + pub value: u64_, + pub ptr: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct msi_desc_data { + pub dcookie: msi_domain_cookie, + pub icookie: msi_instance_cookie, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct msi_desc { + pub irq: ::aya_ebpf::cty::c_uint, + pub nvec_used: ::aya_ebpf::cty::c_uint, + pub dev: *mut device, + pub msg: msi_msg, + pub affinity: *mut irq_affinity_desc, + pub sysfs_attrs: *mut device_attribute, + pub write_msi_msg: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut msi_desc, arg2: *mut ::aya_ebpf::cty::c_void), + >, + pub write_msi_msg_data: *mut ::aya_ebpf::cty::c_void, + pub msi_index: u16_, + pub __bindgen_anon_1: msi_desc__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union msi_desc__bindgen_ty_1 { + pub pci: pci_msi_desc, + pub data: msi_desc_data, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct msi_dev_domain { + pub store: xarray, + pub domain: *mut irq_domain, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct msi_device_data { + pub properties: ::aya_ebpf::cty::c_ulong, + pub mutex: mutex, + pub __domains: [msi_dev_domain; 1usize], + pub __iter_idx: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct msi_domain_info { + pub flags: u32_, + pub bus_token: irq_domain_bus_token::Type, + pub hwsize: ::aya_ebpf::cty::c_uint, + pub ops: *mut msi_domain_ops, + pub dev: *mut device, + pub chip: *mut irq_chip, + pub chip_data: *mut ::aya_ebpf::cty::c_void, + pub handler: irq_flow_handler_t, + pub handler_data: *mut ::aya_ebpf::cty::c_void, + pub handler_name: *const ::aya_ebpf::cty::c_char, + pub alloc_data: *mut msi_alloc_info_t, + pub data: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct msi_domain_ops { + pub get_hwirq: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut msi_domain_info, + arg2: *mut msi_alloc_info_t, + ) -> irq_hw_number_t, + >, + pub msi_init: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut irq_domain, + arg2: *mut msi_domain_info, + arg3: ::aya_ebpf::cty::c_uint, + arg4: irq_hw_number_t, + arg5: *mut msi_alloc_info_t, + ) -> ::aya_ebpf::cty::c_int, + >, + pub msi_free: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut irq_domain, + arg2: *mut msi_domain_info, + arg3: ::aya_ebpf::cty::c_uint, + ), + >, + pub msi_prepare: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut irq_domain, + arg2: *mut device, + arg3: ::aya_ebpf::cty::c_int, + arg4: *mut msi_alloc_info_t, + ) -> ::aya_ebpf::cty::c_int, + >, + pub msi_teardown: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut irq_domain, arg2: *mut msi_alloc_info_t), + >, + pub prepare_desc: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut irq_domain, + arg2: *mut msi_alloc_info_t, + arg3: *mut msi_desc, + ), + >, + pub set_desc: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut msi_alloc_info_t, arg2: *mut msi_desc), + >, + pub domain_alloc_irqs: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut irq_domain, + arg2: *mut device, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub domain_free_irqs: + ::core::option::Option, + pub msi_translate: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut irq_domain, + arg2: *mut irq_fwspec, + arg3: *mut irq_hw_number_t, + arg4: *mut ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct msi_parent_ops { + pub supported_flags: u32_, + pub required_flags: u32_, + pub chip_flags: u32_, + pub bus_select_token: u32_, + pub bus_select_mask: u32_, + pub prefix: *const ::aya_ebpf::cty::c_char, + pub init_dev_msi_info: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut device, + arg2: *mut irq_domain, + arg3: *mut irq_domain, + arg4: *mut msi_domain_info, + ) -> bool_, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mutex_waiter { + pub list: list_head, + pub task: *mut task_struct, + pub ww_ctx: *mut ww_acquire_ctx, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct saved { + pub link: path, + pub done: delayed_call, + pub name: *const ::aya_ebpf::cty::c_char, + pub seq: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct nameidata { + pub path: path, + pub last: qstr, + pub root: path, + pub inode: *mut inode, + pub flags: ::aya_ebpf::cty::c_uint, + pub state: ::aya_ebpf::cty::c_uint, + pub seq: ::aya_ebpf::cty::c_uint, + pub next_seq: ::aya_ebpf::cty::c_uint, + pub m_seq: ::aya_ebpf::cty::c_uint, + pub r_seq: ::aya_ebpf::cty::c_uint, + pub last_type: ::aya_ebpf::cty::c_int, + pub depth: ::aya_ebpf::cty::c_uint, + pub total_link_count: ::aya_ebpf::cty::c_int, + pub stack: *mut saved, + pub internal: [saved; 2usize], + pub name: *mut filename, + pub pathname: *const ::aya_ebpf::cty::c_char, + pub saved: *mut nameidata, + pub root_seq: ::aya_ebpf::cty::c_uint, + pub dfd: ::aya_ebpf::cty::c_int, + pub dir_vfsuid: vfsuid_t, + pub dir_mode: umode_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct napi_config { + pub gro_flush_timeout: u64_, + pub irq_suspend_timeout: u64_, + pub defer_hard_irqs: u32_, + pub affinity_mask: cpumask_t, + pub threaded: u8_, + pub napi_id: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nlmsghdr { + pub nlmsg_len: __u32, + pub nlmsg_type: __u16, + pub nlmsg_flags: __u16, + pub nlmsg_seq: __u32, + pub nlmsg_pid: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nd_opt_hdr { + pub nd_opt_type: __u8, + pub nd_opt_len: __u8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ndisc_ops { + pub parse_options: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const net_device, + arg2: *mut nd_opt_hdr, + arg3: *mut ndisc_options, + ) -> ::aya_ebpf::cty::c_int, + >, + pub update: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const net_device, + arg2: *mut neighbour, + arg3: u32_, + arg4: u8_, + arg5: *const ndisc_options, + ), + >, + pub opt_addr_space: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const net_device, + arg2: u8_, + arg3: *mut neighbour, + arg4: *mut u8_, + arg5: *mut *mut u8_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub fill_addr_option: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const net_device, + arg2: *mut sk_buff, + arg3: u8_, + arg4: *const u8_, + ), + >, + pub prefix_rcv_add_addr: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net, + arg2: *mut net_device, + arg3: *const prefix_info, + arg4: *mut inet6_dev, + arg5: *mut in6_addr, + arg6: ::aya_ebpf::cty::c_int, + arg7: u32_, + arg8: bool_, + arg9: bool_, + arg10: __u32, + arg11: u32_, + arg12: bool_, + ), + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ndisc_options { + pub nd_opt_array: [*mut nd_opt_hdr; 15usize], + pub nd_opts_ri: *mut nd_opt_hdr, + pub nd_opts_ri_end: *mut nd_opt_hdr, + pub nd_useropts: *mut nd_opt_hdr, + pub nd_useropts_end: *mut nd_opt_hdr, + pub nd_802154_opt_array: [*mut nd_opt_hdr; 3usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ndmsg { + pub ndm_family: __u8, + pub ndm_pad1: __u8, + pub ndm_pad2: __u16, + pub ndm_ifindex: __s32, + pub ndm_state: __u16, + pub ndm_flags: __u8, + pub ndm_type: __u8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct neigh_hash_table { + pub hash_heads: *mut hlist_head, + pub hash_shift: ::aya_ebpf::cty::c_uint, + pub hash_rnd: [__u32; 4usize], + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct neigh_ops { + pub family: ::aya_ebpf::cty::c_int, + pub solicit: + ::core::option::Option, + pub error_report: + ::core::option::Option, + pub output: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut neighbour, arg2: *mut sk_buff) -> ::aya_ebpf::cty::c_int, + >, + pub connected_output: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut neighbour, arg2: *mut sk_buff) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct neigh_parms { + pub net: possible_net_t, + pub dev: *mut net_device, + pub dev_tracker: netdevice_tracker, + pub list: list_head, + pub neigh_setup: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut neighbour) -> ::aya_ebpf::cty::c_int, + >, + pub tbl: *mut neigh_table, + pub sysctl_table: *mut ::aya_ebpf::cty::c_void, + pub dead: ::aya_ebpf::cty::c_int, + pub refcnt: refcount_t, + pub callback_head: callback_head, + pub reachable_time: ::aya_ebpf::cty::c_int, + pub qlen: u32_, + pub data: [::aya_ebpf::cty::c_int; 14usize], + pub data_state: [::aya_ebpf::cty::c_ulong; 1usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct neigh_statistics { + pub allocs: ::aya_ebpf::cty::c_ulong, + pub destroys: ::aya_ebpf::cty::c_ulong, + pub hash_grows: ::aya_ebpf::cty::c_ulong, + pub res_failed: ::aya_ebpf::cty::c_ulong, + pub lookups: ::aya_ebpf::cty::c_ulong, + pub hits: ::aya_ebpf::cty::c_ulong, + pub rcv_probes_mcast: ::aya_ebpf::cty::c_ulong, + pub rcv_probes_ucast: ::aya_ebpf::cty::c_ulong, + pub periodic_gc_runs: ::aya_ebpf::cty::c_ulong, + pub forced_gc_runs: ::aya_ebpf::cty::c_ulong, + pub unres_discards: ::aya_ebpf::cty::c_ulong, + pub table_fulls: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct neigh_table { + pub family: ::aya_ebpf::cty::c_int, + pub entry_size: ::aya_ebpf::cty::c_uint, + pub key_len: ::aya_ebpf::cty::c_uint, + pub protocol: __be16, + pub hash: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const ::aya_ebpf::cty::c_void, + arg2: *const net_device, + arg3: *mut __u32, + ) -> __u32, + >, + pub key_eq: ::core::option::Option< + unsafe extern "C" fn(arg1: *const neighbour, arg2: *const ::aya_ebpf::cty::c_void) -> bool_, + >, + pub constructor: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut neighbour) -> ::aya_ebpf::cty::c_int, + >, + pub pconstructor: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut pneigh_entry) -> ::aya_ebpf::cty::c_int, + >, + pub pdestructor: ::core::option::Option, + pub proxy_redo: ::core::option::Option, + pub is_multicast: ::core::option::Option< + unsafe extern "C" fn(arg1: *const ::aya_ebpf::cty::c_void) -> ::aya_ebpf::cty::c_int, + >, + pub allow_add: ::core::option::Option< + unsafe extern "C" fn(arg1: *const net_device, arg2: *mut netlink_ext_ack) -> bool_, + >, + pub id: *mut ::aya_ebpf::cty::c_char, + pub parms: neigh_parms, + pub parms_list: list_head, + pub gc_interval: ::aya_ebpf::cty::c_int, + pub gc_thresh1: ::aya_ebpf::cty::c_int, + pub gc_thresh2: ::aya_ebpf::cty::c_int, + pub gc_thresh3: ::aya_ebpf::cty::c_int, + pub last_flush: ::aya_ebpf::cty::c_ulong, + pub gc_work: delayed_work, + pub managed_work: delayed_work, + pub proxy_timer: timer_list, + pub proxy_queue: sk_buff_head, + pub entries: atomic_t, + pub gc_entries: atomic_t, + pub gc_list: list_head, + pub managed_list: list_head, + pub lock: spinlock_t, + pub last_rand: ::aya_ebpf::cty::c_ulong, + pub stats: *mut neigh_statistics, + pub nht: *mut neigh_hash_table, + pub phash_lock: mutex, + pub phash_buckets: *mut *mut pneigh_entry, +} +#[repr(C)] +pub struct neighbour { + pub hash: hlist_node, + pub dev_list: hlist_node, + pub tbl: *mut neigh_table, + pub parms: *mut neigh_parms, + pub confirmed: ::aya_ebpf::cty::c_ulong, + pub updated: ::aya_ebpf::cty::c_ulong, + pub lock: rwlock_t, + pub refcnt: refcount_t, + pub arp_queue_len_bytes: ::aya_ebpf::cty::c_uint, + pub arp_queue: sk_buff_head, + pub timer: timer_list, + pub used: ::aya_ebpf::cty::c_ulong, + pub probes: atomic_t, + pub nud_state: u8_, + pub type_: u8_, + pub dead: u8_, + pub protocol: u8_, + pub flags: u32_, + pub ha_lock: seqlock_t, + pub __bindgen_padding_0: [u8; 4usize], + pub ha: [::aya_ebpf::cty::c_uchar; 32usize], + pub hh: hh_cache, + pub output: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut neighbour, arg2: *mut sk_buff) -> ::aya_ebpf::cty::c_int, + >, + pub ops: *const neigh_ops, + pub gc_list: list_head, + pub managed_list: list_head, + pub rcu: callback_head, + pub dev: *mut net_device, + pub dev_tracker: netdevice_tracker, + pub primary_key: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netns_core { + pub sysctl_hdr: *mut ctl_table_header, + pub sysctl_somaxconn: ::aya_ebpf::cty::c_int, + pub sysctl_txq_reselection: ::aya_ebpf::cty::c_int, + pub sysctl_optmem_max: ::aya_ebpf::cty::c_int, + pub sysctl_txrehash: u8_, + pub sysctl_tstamp_allow_data: u8_, + pub sysctl_bypass_prot_mem: u8_, + pub prot_inuse: *mut prot_inuse, + pub rps_default_mask: *mut cpumask, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netns_mib { + pub ip_statistics: *mut ipstats_mib, + pub ipv6_statistics: *mut ipstats_mib, + pub tcp_statistics: *mut tcp_mib, + pub net_statistics: *mut linux_mib, + pub udp_statistics: *mut udp_mib, + pub udp_stats_in6: *mut udp_mib, + pub xfrm_statistics: *mut linux_xfrm_mib, + pub tls_statistics: *mut linux_tls_mib, + pub mptcp_statistics: *mut mptcp_mib, + pub icmp_statistics: *mut icmp_mib, + pub icmpmsg_statistics: *mut icmpmsg_mib, + pub icmpv6_statistics: *mut icmpv6_mib, + pub icmpv6msg_statistics: *mut icmpv6msg_mib, + pub proc_net_devsnmp6: *mut proc_dir_entry, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct netns_packet { + pub sklist_lock: mutex, + pub sklist: hlist_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct unix_table { + pub locks: *mut spinlock_t, + pub buckets: *mut hlist_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netns_unix { + pub table: unix_table, + pub sysctl_max_dgram_qlen: ::aya_ebpf::cty::c_int, + pub ctl: *mut ctl_table_header, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct netns_nexthop { + pub rb_root: rb_root, + pub devhash: *mut hlist_head, + pub seq: ::aya_ebpf::cty::c_uint, + pub last_id_allocated: u32_, + pub notifier_chain: blocking_notifier_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct udp_tunnel_gro { + pub sk: *mut sock, + pub list: hlist_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ping_group_range { + pub lock: seqlock_t, + pub range: [kgid_t; 2usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sysctl_fib_multipath_hash_seed { + pub user_seed: u32_, + pub mp_seed: u32_, +} +#[repr(C)] +pub struct netns_ipv4 { + pub __cacheline_group_begin__netns_ipv4_read_tx: __IncompleteArrayField<__u8>, + pub sysctl_tcp_early_retrans: u8_, + pub sysctl_tcp_tso_win_divisor: u8_, + pub sysctl_tcp_tso_rtt_log: u8_, + pub sysctl_tcp_autocorking: u8_, + pub sysctl_tcp_min_snd_mss: ::aya_ebpf::cty::c_int, + pub sysctl_tcp_notsent_lowat: ::aya_ebpf::cty::c_uint, + pub sysctl_tcp_limit_output_bytes: ::aya_ebpf::cty::c_int, + pub sysctl_tcp_min_rtt_wlen: ::aya_ebpf::cty::c_int, + pub sysctl_tcp_wmem: [::aya_ebpf::cty::c_int; 3usize], + pub sysctl_ip_fwd_use_pmtu: u8_, + pub __cacheline_group_end__netns_ipv4_read_tx: __IncompleteArrayField<__u8>, + pub __cacheline_group_begin__netns_ipv4_read_txrx: __IncompleteArrayField<__u8>, + pub sysctl_tcp_shrink_window: u8_, + pub __cacheline_group_end__netns_ipv4_read_txrx: __IncompleteArrayField<__u8>, + pub __cacheline_group_begin__netns_ipv4_read_rx: __IncompleteArrayField<__u8>, + pub sysctl_tcp_moderate_rcvbuf: u8_, + pub sysctl_ip_early_demux: u8_, + pub sysctl_tcp_early_demux: u8_, + pub sysctl_tcp_l3mdev_accept: u8_, + pub sysctl_tcp_reordering: ::aya_ebpf::cty::c_int, + pub sysctl_tcp_rmem: [::aya_ebpf::cty::c_int; 3usize], + pub sysctl_tcp_rcvbuf_low_rtt: ::aya_ebpf::cty::c_int, + pub __cacheline_group_end__netns_ipv4_read_rx: __IncompleteArrayField<__u8>, + pub __bindgen_padding_0: [u8; 4usize], + pub __cacheline_group_begin__icmp: __IncompleteArrayField<__u8>, + pub icmp_global_credit: atomic_t, + pub icmp_global_stamp: u32_, + pub __cacheline_group_end__icmp: __IncompleteArrayField<__u8>, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 56usize]>, + pub __cacheline_group_pad__icmp: netns_ipv4__bindgen_ty_1, + pub tcp_death_row: inet_timewait_death_row, + pub udp_table: *mut udp_table, + pub udp_tunnel_gro: [udp_tunnel_gro; 2usize], + pub forw_hdr: *mut ctl_table_header, + pub frags_hdr: *mut ctl_table_header, + pub ipv4_hdr: *mut ctl_table_header, + pub route_hdr: *mut ctl_table_header, + pub xfrm4_hdr: *mut ctl_table_header, + pub devconf_all: *mut ipv4_devconf, + pub devconf_dflt: *mut ipv4_devconf, + pub ra_chain: *mut ip_ra_chain, + pub ra_mutex: mutex, + pub rules_ops: *mut fib_rules_ops, + pub fib_main: *mut fib_table, + pub fib_default: *mut fib_table, + pub fib_rules_require_fldissect: ::aya_ebpf::cty::c_uint, + pub fib_has_custom_rules: bool_, + pub fib_has_custom_local_routes: bool_, + pub fib_offload_disabled: bool_, + pub fib_num_tclassid_users: atomic_t, + pub fib_table_hash: *mut hlist_head, + pub fibnl: *mut sock, + pub fib_info_hash: *mut hlist_head, + pub fib_info_hash_bits: ::aya_ebpf::cty::c_uint, + pub fib_info_cnt: ::aya_ebpf::cty::c_uint, + pub mc_autojoin_sk: *mut sock, + pub peers: *mut inet_peer_base, + pub fqdir: *mut fqdir, + pub sysctl_icmp_echo_ignore_all: u8_, + pub sysctl_icmp_echo_enable_probe: u8_, + pub sysctl_icmp_echo_ignore_broadcasts: u8_, + pub sysctl_icmp_ignore_bogus_error_responses: u8_, + pub sysctl_icmp_errors_use_inbound_ifaddr: u8_, + pub sysctl_icmp_errors_extension_mask: u8_, + pub sysctl_icmp_ratelimit: ::aya_ebpf::cty::c_int, + pub sysctl_icmp_ratemask: ::aya_ebpf::cty::c_int, + pub sysctl_icmp_msgs_per_sec: ::aya_ebpf::cty::c_int, + pub sysctl_icmp_msgs_burst: ::aya_ebpf::cty::c_int, + pub ip_rt_min_pmtu: u32_, + pub ip_rt_mtu_expires: ::aya_ebpf::cty::c_int, + pub ip_rt_min_advmss: ::aya_ebpf::cty::c_int, + pub ip_local_ports: local_ports, + pub sysctl_tcp_ecn: u8_, + pub sysctl_tcp_ecn_option: u8_, + pub sysctl_tcp_ecn_option_beacon: u8_, + pub sysctl_tcp_ecn_fallback: u8_, + pub sysctl_ip_default_ttl: u8_, + pub sysctl_ip_no_pmtu_disc: u8_, + pub sysctl_ip_fwd_update_priority: u8_, + pub sysctl_ip_nonlocal_bind: u8_, + pub sysctl_ip_autobind_reuse: u8_, + pub sysctl_ip_dynaddr: u8_, + pub sysctl_ip_local_port_step_width: u32_, + pub sysctl_raw_l3mdev_accept: u8_, + pub sysctl_udp_early_demux: u8_, + pub sysctl_nexthop_compat_mode: u8_, + pub sysctl_fwmark_reflect: u8_, + pub sysctl_tcp_fwmark_accept: u8_, + pub sysctl_tcp_mtu_probing: u8_, + pub sysctl_tcp_mtu_probe_floor: ::aya_ebpf::cty::c_int, + pub sysctl_tcp_base_mss: ::aya_ebpf::cty::c_int, + pub sysctl_tcp_probe_threshold: ::aya_ebpf::cty::c_int, + pub sysctl_tcp_probe_interval: u32_, + pub sysctl_tcp_keepalive_time: ::aya_ebpf::cty::c_int, + pub sysctl_tcp_keepalive_intvl: ::aya_ebpf::cty::c_int, + pub sysctl_tcp_keepalive_probes: u8_, + pub sysctl_tcp_syn_retries: u8_, + pub sysctl_tcp_synack_retries: u8_, + pub sysctl_tcp_syncookies: u8_, + pub sysctl_tcp_migrate_req: u8_, + pub sysctl_tcp_comp_sack_nr: u8_, + pub sysctl_tcp_backlog_ack_defer: u8_, + pub sysctl_tcp_pingpong_thresh: u8_, + pub sysctl_tcp_retries1: u8_, + pub sysctl_tcp_retries2: u8_, + pub sysctl_tcp_orphan_retries: u8_, + pub sysctl_tcp_tw_reuse: u8_, + pub sysctl_tcp_tw_reuse_delay: ::aya_ebpf::cty::c_uint, + pub sysctl_tcp_fin_timeout: ::aya_ebpf::cty::c_int, + pub sysctl_tcp_sack: u8_, + pub sysctl_tcp_window_scaling: u8_, + pub sysctl_tcp_timestamps: u8_, + pub sysctl_tcp_rto_min_us: ::aya_ebpf::cty::c_int, + pub sysctl_tcp_rto_max_ms: ::aya_ebpf::cty::c_int, + pub sysctl_tcp_recovery: u8_, + pub sysctl_tcp_thin_linear_timeouts: u8_, + pub sysctl_tcp_slow_start_after_idle: u8_, + pub sysctl_tcp_retrans_collapse: u8_, + pub sysctl_tcp_stdurg: u8_, + pub sysctl_tcp_rfc1337: u8_, + pub sysctl_tcp_abort_on_overflow: u8_, + pub sysctl_tcp_fack: u8_, + pub sysctl_tcp_max_reordering: ::aya_ebpf::cty::c_int, + pub sysctl_tcp_adv_win_scale: ::aya_ebpf::cty::c_int, + pub sysctl_tcp_dsack: u8_, + pub sysctl_tcp_app_win: u8_, + pub sysctl_tcp_frto: u8_, + pub sysctl_tcp_nometrics_save: u8_, + pub sysctl_tcp_no_ssthresh_metrics_save: u8_, + pub sysctl_tcp_workaround_signed_windows: u8_, + pub sysctl_tcp_challenge_ack_limit: ::aya_ebpf::cty::c_int, + pub sysctl_tcp_min_tso_segs: u8_, + pub sysctl_tcp_reflect_tos: u8_, + pub sysctl_tcp_invalid_ratelimit: ::aya_ebpf::cty::c_int, + pub sysctl_tcp_pacing_ss_ratio: ::aya_ebpf::cty::c_int, + pub sysctl_tcp_pacing_ca_ratio: ::aya_ebpf::cty::c_int, + pub sysctl_tcp_child_ehash_entries: ::aya_ebpf::cty::c_uint, + pub sysctl_tcp_comp_sack_rtt_percent: ::aya_ebpf::cty::c_int, + pub sysctl_tcp_comp_sack_delay_ns: ::aya_ebpf::cty::c_ulong, + pub sysctl_tcp_comp_sack_slack_ns: ::aya_ebpf::cty::c_ulong, + pub sysctl_max_syn_backlog: ::aya_ebpf::cty::c_int, + pub sysctl_tcp_fastopen: ::aya_ebpf::cty::c_int, + pub tcp_congestion_control: *const tcp_congestion_ops, + pub tcp_fastopen_ctx: *mut tcp_fastopen_context, + pub sysctl_tcp_fastopen_blackhole_timeout: ::aya_ebpf::cty::c_uint, + pub tfo_active_disable_times: atomic_t, + pub tfo_active_disable_stamp: ::aya_ebpf::cty::c_ulong, + pub tcp_challenge_timestamp: u32_, + pub tcp_challenge_count: u32_, + pub sysctl_tcp_plb_enabled: u8_, + pub sysctl_tcp_plb_idle_rehash_rounds: u8_, + pub sysctl_tcp_plb_rehash_rounds: u8_, + pub sysctl_tcp_plb_suspend_rto_sec: u8_, + pub sysctl_tcp_plb_cong_thresh: ::aya_ebpf::cty::c_int, + pub sysctl_udp_wmem_min: ::aya_ebpf::cty::c_int, + pub sysctl_udp_rmem_min: ::aya_ebpf::cty::c_int, + pub sysctl_fib_notify_on_flag_change: u8_, + pub sysctl_tcp_syn_linear_timeouts: u8_, + pub sysctl_udp_l3mdev_accept: u8_, + pub sysctl_igmp_llm_reports: u8_, + pub sysctl_igmp_max_memberships: ::aya_ebpf::cty::c_int, + pub sysctl_igmp_max_msf: ::aya_ebpf::cty::c_int, + pub sysctl_igmp_qrv: ::aya_ebpf::cty::c_int, + pub ping_group_range: ping_group_range, + pub ping_port_rover: u16_, + pub dev_addr_genid: atomic_t, + pub sysctl_udp_child_hash_entries: ::aya_ebpf::cty::c_uint, + pub sysctl_local_reserved_ports: *mut ::aya_ebpf::cty::c_ulong, + pub sysctl_ip_prot_sock: ::aya_ebpf::cty::c_int, + pub mr_tables: list_head, + pub mr_rules_ops: *mut fib_rules_ops, + pub ipmr_notifier_ops: *mut fib_notifier_ops, + pub ipmr_seq: atomic_t, + pub mfc_mutex: mutex, + pub sysctl_fib_multipath_hash_seed: sysctl_fib_multipath_hash_seed, + pub sysctl_fib_multipath_hash_fields: u32_, + pub sysctl_fib_multipath_use_neigh: u8_, + pub sysctl_fib_multipath_hash_policy: u8_, + pub notifier_ops: *mut fib_notifier_ops, + pub fib_seq: ::aya_ebpf::cty::c_uint, + pub rt_genid: atomic_t, + pub ip_id_key: siphash_key_t, + pub inet_addr_lst: *mut hlist_head, + pub addr_chk_work: delayed_work, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 16usize]>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netns_ipv4__bindgen_ty_1 {} +impl netns_ipv4 { + #[inline] + pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug)] +pub struct netns_sysctl_ipv6 { + pub hdr: *mut ctl_table_header, + pub route_hdr: *mut ctl_table_header, + pub icmp_hdr: *mut ctl_table_header, + pub frags_hdr: *mut ctl_table_header, + pub xfrm6_hdr: *mut ctl_table_header, + pub flush_delay: ::aya_ebpf::cty::c_int, + pub ip6_rt_max_size: ::aya_ebpf::cty::c_int, + pub ip6_rt_gc_min_interval: ::aya_ebpf::cty::c_int, + pub ip6_rt_gc_timeout: ::aya_ebpf::cty::c_int, + pub ip6_rt_gc_interval: ::aya_ebpf::cty::c_int, + pub ip6_rt_gc_elasticity: ::aya_ebpf::cty::c_int, + pub ip6_rt_mtu_expires: ::aya_ebpf::cty::c_int, + pub ip6_rt_min_advmss: ::aya_ebpf::cty::c_int, + pub multipath_hash_fields: u32_, + pub multipath_hash_policy: u8_, + pub __cacheline_group_begin__sysctl_ipv6_flowlabel: __IncompleteArrayField<__u8>, + pub flowlabel_consistency: u8_, + pub auto_flowlabels: u8_, + pub flowlabel_state_ranges: u8_, + pub __cacheline_group_end__sysctl_ipv6_flowlabel: __IncompleteArrayField<__u8>, + pub icmpv6_echo_ignore_all: u8_, + pub icmpv6_echo_ignore_multicast: u8_, + pub icmpv6_echo_ignore_anycast: u8_, + pub icmpv6_time: ::aya_ebpf::cty::c_int, + pub icmpv6_ratemask: [::aya_ebpf::cty::c_ulong; 4usize], + pub icmpv6_ratemask_ptr: *mut ::aya_ebpf::cty::c_ulong, + pub anycast_src_echo_reply: u8_, + pub bindv6only: u8_, + pub ip_nonlocal_bind: u8_, + pub fwmark_reflect: u8_, + pub idgen_retries: ::aya_ebpf::cty::c_int, + pub idgen_delay: ::aya_ebpf::cty::c_int, + pub flowlabel_reflect: ::aya_ebpf::cty::c_int, + pub max_dst_opts_cnt: ::aya_ebpf::cty::c_int, + pub max_hbh_opts_cnt: ::aya_ebpf::cty::c_int, + pub max_dst_opts_len: ::aya_ebpf::cty::c_int, + pub max_hbh_opts_len: ::aya_ebpf::cty::c_int, + pub seg6_flowlabel: ::aya_ebpf::cty::c_int, + pub ioam6_id: u32_, + pub ioam6_id_wide: u64_, + pub skip_notify_on_dev_down: u8_, + pub fib_notify_on_flag_change: u8_, + pub icmpv6_error_anycast_as_unicast: u8_, + pub icmpv6_errors_extension_mask: u8_, +} +#[repr(C)] +pub struct netns_ipv6 { + pub ip6_dst_ops: dst_ops, + pub sysctl: netns_sysctl_ipv6, + pub devconf_all: *mut ipv6_devconf, + pub devconf_dflt: *mut ipv6_devconf, + pub peers: *mut inet_peer_base, + pub fqdir: *mut fqdir, + pub fib6_null_entry: *mut fib6_info, + pub ip6_null_entry: *mut rt6_info, + pub rt6_stats: *mut rt6_statistics, + pub ip6_fib_timer: timer_list, + pub fib_table_hash: *mut hlist_head, + pub fib_table_hash_lock: spinlock_t, + pub fib6_main_tbl: *mut fib6_table, + pub fib6_walkers: list_head, + pub fib6_walker_lock: rwlock_t, + pub fib6_gc_lock: spinlock_t, + pub ip6_rt_gc_expire: atomic_t, + pub ip6_rt_last_gc: ::aya_ebpf::cty::c_ulong, + pub flowlabel_has_excl: ::aya_ebpf::cty::c_uchar, + pub fib6_has_custom_rules: bool_, + pub fib6_rules_require_fldissect: ::aya_ebpf::cty::c_uint, + pub fib6_routes_require_src: ::aya_ebpf::cty::c_uint, + pub ip6_prohibit_entry: *mut rt6_info, + pub ip6_blk_hole_entry: *mut rt6_info, + pub fib6_local_tbl: *mut fib6_table, + pub fib6_rules_ops: *mut fib_rules_ops, + pub ndisc_sk: *mut sock, + pub tcp_sk: *mut sock, + pub igmp_sk: *mut sock, + pub mc_autojoin_sk: *mut sock, + pub inet6_addr_lst: *mut hlist_head, + pub addrconf_hash_lock: spinlock_t, + pub addr_chk_work: delayed_work, + pub mr6_tables: list_head, + pub mr6_rules_ops: *mut fib_rules_ops, + pub dev_addr_genid: atomic_t, + pub fib6_sernum: atomic_t, + pub seg6_data: *mut seg6_pernet_data, + pub notifier_ops: *mut fib_notifier_ops, + pub ip6mr_notifier_ops: *mut fib_notifier_ops, + pub ipmr_seq: atomic_t, + pub flowlabel_count: ::aya_ebpf::cty::c_int, + pub ip6addrlbl_table: netns_ipv6__bindgen_ty_1, + pub ioam6_data: *mut ioam6_pernet_data, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct netns_ipv6__bindgen_ty_1 { + pub head: hlist_head, + pub lock: spinlock_t, + pub seq: u32_, +} +impl netns_ipv6 { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netns_sysctl_lowpan { + pub frags_hdr: *mut ctl_table_header, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netns_ieee802154_lowpan { + pub sysctl: netns_sysctl_lowpan, + pub fqdir: *mut fqdir, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sctp_mib { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct netns_sctp { + pub sctp_statistics: *mut sctp_mib, + pub proc_net_sctp: *mut proc_dir_entry, + pub sysctl_header: *mut ctl_table_header, + pub ctl_sock: *mut sock, + pub udp4_sock: *mut sock, + pub udp6_sock: *mut sock, + pub udp_port: ::aya_ebpf::cty::c_int, + pub encap_port: ::aya_ebpf::cty::c_int, + pub local_addr_list: list_head, + pub addr_waitq: list_head, + pub addr_wq_timer: timer_list, + pub auto_asconf_splist: list_head, + pub addr_wq_lock: spinlock_t, + pub local_addr_lock: spinlock_t, + pub rto_initial: ::aya_ebpf::cty::c_uint, + pub rto_min: ::aya_ebpf::cty::c_uint, + pub rto_max: ::aya_ebpf::cty::c_uint, + pub rto_alpha: ::aya_ebpf::cty::c_int, + pub rto_beta: ::aya_ebpf::cty::c_int, + pub max_burst: ::aya_ebpf::cty::c_int, + pub cookie_preserve_enable: ::aya_ebpf::cty::c_int, + pub cookie_auth_enable: ::aya_ebpf::cty::c_int, + pub valid_cookie_life: ::aya_ebpf::cty::c_uint, + pub sack_timeout: ::aya_ebpf::cty::c_uint, + pub hb_interval: ::aya_ebpf::cty::c_uint, + pub probe_interval: ::aya_ebpf::cty::c_uint, + pub max_retrans_association: ::aya_ebpf::cty::c_int, + pub max_retrans_path: ::aya_ebpf::cty::c_int, + pub max_retrans_init: ::aya_ebpf::cty::c_int, + pub pf_retrans: ::aya_ebpf::cty::c_int, + pub ps_retrans: ::aya_ebpf::cty::c_int, + pub pf_enable: ::aya_ebpf::cty::c_int, + pub pf_expose: ::aya_ebpf::cty::c_int, + pub sndbuf_policy: ::aya_ebpf::cty::c_int, + pub rcvbuf_policy: ::aya_ebpf::cty::c_int, + pub default_auto_asconf: ::aya_ebpf::cty::c_int, + pub addip_enable: ::aya_ebpf::cty::c_int, + pub addip_noauth: ::aya_ebpf::cty::c_int, + pub prsctp_enable: ::aya_ebpf::cty::c_int, + pub reconf_enable: ::aya_ebpf::cty::c_int, + pub auth_enable: ::aya_ebpf::cty::c_int, + pub intl_enable: ::aya_ebpf::cty::c_int, + pub ecn_enable: ::aya_ebpf::cty::c_int, + pub scope_policy: ::aya_ebpf::cty::c_int, + pub rwnd_upd_shift: ::aya_ebpf::cty::c_int, + pub max_autoclose: ::aya_ebpf::cty::c_ulong, + pub l3mdev_accept: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netns_nf { + pub proc_netfilter: *mut proc_dir_entry, + pub nf_loggers: [*const nf_logger; 11usize], + pub nf_log_dir_header: *mut ctl_table_header, + pub nf_lwtnl_dir_header: *mut ctl_table_header, + pub hooks_ipv4: [*mut nf_hook_entries; 5usize], + pub hooks_ipv6: [*mut nf_hook_entries; 5usize], + pub hooks_arp: [*mut nf_hook_entries; 3usize], + pub hooks_bridge: [*mut nf_hook_entries; 5usize], + pub defrag_ipv4_users: ::aya_ebpf::cty::c_uint, + pub defrag_ipv6_users: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_generic_net { + pub timeout: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_tcp_net { + pub timeouts: [::aya_ebpf::cty::c_uint; 14usize], + pub tcp_loose: u8_, + pub tcp_be_liberal: u8_, + pub tcp_max_retrans: u8_, + pub tcp_ignore_invalid_rst: u8_, + pub offload_timeout: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_udp_net { + pub timeouts: [::aya_ebpf::cty::c_uint; 2usize], + pub offload_timeout: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_icmp_net { + pub timeout: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_sctp_net { + pub timeouts: [::aya_ebpf::cty::c_uint; 10usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_gre_net { + pub keymap_list: list_head, + pub timeouts: [::aya_ebpf::cty::c_uint; 2usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_ip_net { + pub generic: nf_generic_net, + pub tcp: nf_tcp_net, + pub udp: nf_udp_net, + pub icmp: nf_icmp_net, + pub icmpv6: nf_icmp_net, + pub sctp: nf_sctp_net, + pub gre: nf_gre_net, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netns_ct { + pub ecache_dwork_pending: bool_, + pub sysctl_log_invalid: u8_, + pub sysctl_events: u8_, + pub sysctl_acct: u8_, + pub sysctl_tstamp: u8_, + pub sysctl_checksum: u8_, + pub stat: *mut ip_conntrack_stat, + pub nf_conntrack_event_cb: *mut nf_ct_event_notifier, + pub nf_ct_proto: nf_ip_net, + pub labels_used: atomic_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netns_nftables { + pub base_seq: ::aya_ebpf::cty::c_uint, + pub gencursor: u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netns_ft { + pub stat: *mut nf_flow_table_stat, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netns_bpf { + pub run_array: [*mut bpf_prog_array; 2usize], + pub progs: [*mut bpf_prog; 2usize], + pub links: [list_head; 2usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xfrm_policy_hash { + pub table: *mut hlist_head, + pub hmask: ::aya_ebpf::cty::c_uint, + pub dbits4: u8_, + pub sbits4: u8_, + pub dbits6: u8_, + pub sbits6: u8_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct xfrm_policy_hthresh { + pub work: work_struct, + pub lock: seqlock_t, + pub lbits4: u8_, + pub rbits4: u8_, + pub lbits6: u8_, + pub rbits6: u8_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct netns_xfrm { + pub state_all: list_head, + pub state_bydst: *mut hlist_head, + pub state_bysrc: *mut hlist_head, + pub state_byspi: *mut hlist_head, + pub state_byseq: *mut hlist_head, + pub state_cache_input: *mut hlist_head, + pub state_hmask: ::aya_ebpf::cty::c_uint, + pub state_num: ::aya_ebpf::cty::c_uint, + pub state_hash_work: work_struct, + pub policy_all: list_head, + pub policy_byidx: *mut hlist_head, + pub policy_idx_hmask: ::aya_ebpf::cty::c_uint, + pub idx_generator: ::aya_ebpf::cty::c_uint, + pub policy_bydst: [xfrm_policy_hash; 3usize], + pub policy_count: [::aya_ebpf::cty::c_uint; 6usize], + pub policy_hash_work: work_struct, + pub policy_hthresh: xfrm_policy_hthresh, + pub inexact_bins: list_head, + pub nlsk: *mut sock, + pub nlsk_stash: *mut sock, + pub sysctl_aevent_etime: u32_, + pub sysctl_aevent_rseqth: u32_, + pub sysctl_larval_drop: ::aya_ebpf::cty::c_int, + pub sysctl_acq_expires: u32_, + pub policy_default: [u8_; 3usize], + pub sysctl_hdr: *mut ctl_table_header, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 40usize]>, + pub xfrm4_dst_ops: dst_ops, + pub xfrm6_dst_ops: dst_ops, + pub xfrm_state_lock: spinlock_t, + pub xfrm_state_hash_generation: seqcount_spinlock_t, + pub xfrm_policy_hash_generation: seqcount_spinlock_t, + pub xfrm_policy_lock: spinlock_t, + pub xfrm_cfg_mutex: mutex, + pub nat_keepalive_work: delayed_work, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netns_ipvs { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mpls_route { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct seqcount_mutex { + pub seqcount: seqcount_t, +} +pub type seqcount_mutex_t = seqcount_mutex; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct netns_mpls { + pub ip_ttl_propagate: ::aya_ebpf::cty::c_int, + pub default_ttl: ::aya_ebpf::cty::c_int, + pub platform_labels: usize, + pub platform_label: *mut *mut mpls_route, + pub platform_mutex: mutex, + pub platform_label_seq: seqcount_mutex_t, + pub ctl: *mut ctl_table_header, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct can_dev_rcv_lists { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct can_pkg_stats { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct can_rcv_lists_stats { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct netns_can { + pub proc_dir: *mut proc_dir_entry, + pub pde_stats: *mut proc_dir_entry, + pub pde_reset_stats: *mut proc_dir_entry, + pub pde_rcvlist_all: *mut proc_dir_entry, + pub pde_rcvlist_fil: *mut proc_dir_entry, + pub pde_rcvlist_inv: *mut proc_dir_entry, + pub pde_rcvlist_sff: *mut proc_dir_entry, + pub pde_rcvlist_eff: *mut proc_dir_entry, + pub pde_rcvlist_err: *mut proc_dir_entry, + pub bcmproc_dir: *mut proc_dir_entry, + pub rx_alldev_list: *mut can_dev_rcv_lists, + pub rcvlists_lock: spinlock_t, + pub stattimer: timer_list, + pub pkg_stats: *mut can_pkg_stats, + pub rcv_lists_stats: *mut can_rcv_lists_stats, + pub cgw_list: hlist_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct netns_xdp { + pub lock: mutex, + pub list: hlist_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct netns_mctp { + pub routes: list_head, + pub bind_lock: mutex, + pub binds: [hlist_head; 128usize], + pub keys_lock: spinlock_t, + pub keys: hlist_head, + pub default_net: ::aya_ebpf::cty::c_uint, + pub neigh_lock: mutex, + pub neighbours: list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct smc_stats { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct smc_stats_rsn { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct netns_smc { + pub smc_stats: *mut smc_stats, + pub mutex_fback_rsn: mutex, + pub fback_rsn: *mut smc_stats_rsn, + pub limit_smc_hs: bool_, + pub smc_hdr: *mut ctl_table_header, + pub hs_ctrl: *mut smc_hs_ctrl, + pub sysctl_autocorking_size: ::aya_ebpf::cty::c_uint, + pub sysctl_smcr_buf_type: ::aya_ebpf::cty::c_uint, + pub sysctl_smcr_testlink_time: ::aya_ebpf::cty::c_int, + pub sysctl_wmem: ::aya_ebpf::cty::c_int, + pub sysctl_rmem: ::aya_ebpf::cty::c_int, + pub sysctl_max_links_per_lgr: ::aya_ebpf::cty::c_int, + pub sysctl_max_conns_per_lgr: ::aya_ebpf::cty::c_int, + pub sysctl_smcr_max_send_wr: ::aya_ebpf::cty::c_uint, + pub sysctl_smcr_max_recv_wr: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netns_vsock { + pub sysctl_hdr: *mut ctl_table_header, + pub port: u32_, + pub mode: vsock_net_mode::Type, + pub child_ns_mode: vsock_net_mode::Type, + pub child_ns_mode_locked: ::aya_ebpf::cty::c_int, + pub g2h_fallback: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +pub struct net { + pub passive: refcount_t, + pub rules_mod_lock: spinlock_t, + pub dev_base_seq: ::aya_ebpf::cty::c_uint, + pub ifindex: u32_, + pub nsid_lock: spinlock_t, + pub fnhe_genid: atomic_t, + pub list: list_head, + pub exit_list: list_head, + pub defer_free_list: llist_node, + pub cleanup_list: llist_node, + pub ptype_all: list_head, + pub ptype_specific: list_head, + pub key_domain: *mut key_tag, + pub user_ns: *mut user_namespace, + pub ucounts: *mut ucounts, + pub netns_ids: idr, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 40usize]>, + pub ns: ns_common, + pub refcnt_tracker: ref_tracker_dir, + pub notrefcnt_tracker: ref_tracker_dir, + pub dev_base_head: list_head, + pub proc_net: *mut proc_dir_entry, + pub proc_net_stat: *mut proc_dir_entry, + pub sysctls: ctl_table_set, + pub rtnl: *mut sock, + pub genl_sock: *mut sock, + pub uevent_sock: *mut uevent_sock, + pub dev_name_head: *mut hlist_head, + pub dev_index_head: *mut hlist_head, + pub dev_by_index: xarray, + pub netdev_chain: raw_notifier_head, + pub hash_mix: u32_, + pub is_dying: bool_, + pub loopback_dev: *mut net_device, + pub rules_ops: list_head, + pub core: netns_core, + pub mib: netns_mib, + pub packet: netns_packet, + pub unx: netns_unix, + pub nexthop: netns_nexthop, + pub ipv4: netns_ipv4, + pub ipv6: netns_ipv6, + pub ieee802154_lowpan: netns_ieee802154_lowpan, + pub sctp: netns_sctp, + pub nf: netns_nf, + pub ct: netns_ct, + pub nft: netns_nftables, + pub ft: netns_ft, + pub wext_nlevents: sk_buff_head, + pub gen_: *mut net_generic, + pub bpf: netns_bpf, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 24usize]>, + pub xfrm: netns_xfrm, + pub net_cookie: u64_, + pub ipvs: *mut netns_ipvs, + pub mpls: netns_mpls, + pub can: netns_can, + pub xdp: netns_xdp, + pub mctp: netns_mctp, + pub crypto_nlsk: *mut sock, + pub diag_nlsk: *mut sock, + pub smc: netns_smc, + pub vsock: netns_vsock, + pub _bitfield_align_3: [u8; 0], + pub _bitfield_3: __BindgenBitfieldUnit<[u8; 48usize]>, +} +impl net { + #[inline] + pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rtable { + pub dst: dst_entry, + pub rt_genid: ::aya_ebpf::cty::c_int, + pub rt_flags: ::aya_ebpf::cty::c_uint, + pub rt_type: __u16, + pub rt_is_input: __u8, + pub rt_uses_gateway: __u8, + pub rt_iif: ::aya_ebpf::cty::c_int, + pub rt_gw_family: u8_, + pub __bindgen_anon_1: rtable__bindgen_ty_1, + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union rtable__bindgen_ty_1 { + pub rt_gw4: __be32, + pub rt_gw6: in6_addr, +} +impl rtable { + #[inline] + pub fn rt_mtu_locked(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_rt_mtu_locked(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn rt_mtu_locked_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_rt_mtu_locked_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn rt_pmtu(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) } + } + #[inline] + pub fn set_rt_pmtu(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 31u8, val as u64) + } + } + #[inline] + pub unsafe fn rt_pmtu_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 31u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_rt_pmtu_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 31u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + rt_mtu_locked: u32_, + rt_pmtu: u32_, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let rt_mtu_locked: u32 = unsafe { ::core::mem::transmute(rt_mtu_locked) }; + rt_mtu_locked as u64 + }); + __bindgen_bitfield_unit.set(1usize, 31u8, { + let rt_pmtu: u32 = unsafe { ::core::mem::transmute(rt_pmtu) }; + rt_pmtu as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netdev_tc_txq { + pub count: u16_, + pub offset: u16_, +} +pub type rx_handler_func_t = + ::core::option::Option rx_handler_result_t>; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct net_device_stats { + pub __bindgen_anon_1: net_device_stats__bindgen_ty_1, + pub __bindgen_anon_2: net_device_stats__bindgen_ty_2, + pub __bindgen_anon_3: net_device_stats__bindgen_ty_3, + pub __bindgen_anon_4: net_device_stats__bindgen_ty_4, + pub __bindgen_anon_5: net_device_stats__bindgen_ty_5, + pub __bindgen_anon_6: net_device_stats__bindgen_ty_6, + pub __bindgen_anon_7: net_device_stats__bindgen_ty_7, + pub __bindgen_anon_8: net_device_stats__bindgen_ty_8, + pub __bindgen_anon_9: net_device_stats__bindgen_ty_9, + pub __bindgen_anon_10: net_device_stats__bindgen_ty_10, + pub __bindgen_anon_11: net_device_stats__bindgen_ty_11, + pub __bindgen_anon_12: net_device_stats__bindgen_ty_12, + pub __bindgen_anon_13: net_device_stats__bindgen_ty_13, + pub __bindgen_anon_14: net_device_stats__bindgen_ty_14, + pub __bindgen_anon_15: net_device_stats__bindgen_ty_15, + pub __bindgen_anon_16: net_device_stats__bindgen_ty_16, + pub __bindgen_anon_17: net_device_stats__bindgen_ty_17, + pub __bindgen_anon_18: net_device_stats__bindgen_ty_18, + pub __bindgen_anon_19: net_device_stats__bindgen_ty_19, + pub __bindgen_anon_20: net_device_stats__bindgen_ty_20, + pub __bindgen_anon_21: net_device_stats__bindgen_ty_21, + pub __bindgen_anon_22: net_device_stats__bindgen_ty_22, + pub __bindgen_anon_23: net_device_stats__bindgen_ty_23, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union net_device_stats__bindgen_ty_1 { + pub rx_packets: ::aya_ebpf::cty::c_ulong, + pub __rx_packets: atomic_long_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union net_device_stats__bindgen_ty_2 { + pub tx_packets: ::aya_ebpf::cty::c_ulong, + pub __tx_packets: atomic_long_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union net_device_stats__bindgen_ty_3 { + pub rx_bytes: ::aya_ebpf::cty::c_ulong, + pub __rx_bytes: atomic_long_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union net_device_stats__bindgen_ty_4 { + pub tx_bytes: ::aya_ebpf::cty::c_ulong, + pub __tx_bytes: atomic_long_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union net_device_stats__bindgen_ty_5 { + pub rx_errors: ::aya_ebpf::cty::c_ulong, + pub __rx_errors: atomic_long_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union net_device_stats__bindgen_ty_6 { + pub tx_errors: ::aya_ebpf::cty::c_ulong, + pub __tx_errors: atomic_long_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union net_device_stats__bindgen_ty_7 { + pub rx_dropped: ::aya_ebpf::cty::c_ulong, + pub __rx_dropped: atomic_long_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union net_device_stats__bindgen_ty_8 { + pub tx_dropped: ::aya_ebpf::cty::c_ulong, + pub __tx_dropped: atomic_long_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union net_device_stats__bindgen_ty_9 { + pub multicast: ::aya_ebpf::cty::c_ulong, + pub __multicast: atomic_long_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union net_device_stats__bindgen_ty_10 { + pub collisions: ::aya_ebpf::cty::c_ulong, + pub __collisions: atomic_long_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union net_device_stats__bindgen_ty_11 { + pub rx_length_errors: ::aya_ebpf::cty::c_ulong, + pub __rx_length_errors: atomic_long_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union net_device_stats__bindgen_ty_12 { + pub rx_over_errors: ::aya_ebpf::cty::c_ulong, + pub __rx_over_errors: atomic_long_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union net_device_stats__bindgen_ty_13 { + pub rx_crc_errors: ::aya_ebpf::cty::c_ulong, + pub __rx_crc_errors: atomic_long_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union net_device_stats__bindgen_ty_14 { + pub rx_frame_errors: ::aya_ebpf::cty::c_ulong, + pub __rx_frame_errors: atomic_long_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union net_device_stats__bindgen_ty_15 { + pub rx_fifo_errors: ::aya_ebpf::cty::c_ulong, + pub __rx_fifo_errors: atomic_long_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union net_device_stats__bindgen_ty_16 { + pub rx_missed_errors: ::aya_ebpf::cty::c_ulong, + pub __rx_missed_errors: atomic_long_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union net_device_stats__bindgen_ty_17 { + pub tx_aborted_errors: ::aya_ebpf::cty::c_ulong, + pub __tx_aborted_errors: atomic_long_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union net_device_stats__bindgen_ty_18 { + pub tx_carrier_errors: ::aya_ebpf::cty::c_ulong, + pub __tx_carrier_errors: atomic_long_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union net_device_stats__bindgen_ty_19 { + pub tx_fifo_errors: ::aya_ebpf::cty::c_ulong, + pub __tx_fifo_errors: atomic_long_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union net_device_stats__bindgen_ty_20 { + pub tx_heartbeat_errors: ::aya_ebpf::cty::c_ulong, + pub __tx_heartbeat_errors: atomic_long_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union net_device_stats__bindgen_ty_21 { + pub tx_window_errors: ::aya_ebpf::cty::c_ulong, + pub __tx_window_errors: atomic_long_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union net_device_stats__bindgen_ty_22 { + pub rx_compressed: ::aya_ebpf::cty::c_ulong, + pub __rx_compressed: atomic_long_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union net_device_stats__bindgen_ty_23 { + pub tx_compressed: ::aya_ebpf::cty::c_ulong, + pub __tx_compressed: atomic_long_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netdev_hw_addr_list { + pub list: list_head, + pub count: ::aya_ebpf::cty::c_int, + pub tree: rb_root, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tipc_bearer { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mpls_dev { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct garp_port { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mrp_port { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct udp_tunnel_nic { + _unused: [u8; 0], +} +#[repr(C)] +pub struct net_device { + pub __cacheline_group_begin__net_device_read_tx: __IncompleteArrayField<__u8>, + pub __bindgen_anon_1: net_device__bindgen_ty_1, + pub netdev_ops: *const net_device_ops, + pub header_ops: *const header_ops, + pub _tx: *mut netdev_queue, + pub gso_partial_features: netdev_features_t, + pub real_num_tx_queues: ::aya_ebpf::cty::c_uint, + pub gso_max_size: ::aya_ebpf::cty::c_uint, + pub gso_ipv4_max_size: ::aya_ebpf::cty::c_uint, + pub gso_max_segs: u16_, + pub num_tc: s16, + pub mtu: ::aya_ebpf::cty::c_uint, + pub needed_headroom: ::aya_ebpf::cty::c_ushort, + pub tc_to_txq: [netdev_tc_txq; 16usize], + pub xps_maps: [*mut xps_dev_maps; 2usize], + pub nf_hooks_egress: *mut nf_hook_entries, + pub tcx_egress: *mut bpf_mprog_entry, + pub __cacheline_group_end__net_device_read_tx: __IncompleteArrayField<__u8>, + pub __cacheline_group_begin__net_device_read_txrx: __IncompleteArrayField<__u8>, + pub __bindgen_anon_2: net_device__bindgen_ty_2, + pub state: ::aya_ebpf::cty::c_ulong, + pub flags: ::aya_ebpf::cty::c_uint, + pub hard_header_len: ::aya_ebpf::cty::c_ushort, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub features: netdev_features_t, + pub ip6_ptr: *mut inet6_dev, + pub __cacheline_group_end__net_device_read_txrx: __IncompleteArrayField<__u8>, + pub __cacheline_group_begin__net_device_read_rx: __IncompleteArrayField<__u8>, + pub xdp_prog: *mut bpf_prog, + pub ptype_specific: list_head, + pub ifindex: ::aya_ebpf::cty::c_int, + pub real_num_rx_queues: ::aya_ebpf::cty::c_uint, + pub _rx: *mut netdev_rx_queue, + pub gro_max_size: ::aya_ebpf::cty::c_uint, + pub gro_ipv4_max_size: ::aya_ebpf::cty::c_uint, + pub rx_handler: rx_handler_func_t, + pub rx_handler_data: *mut ::aya_ebpf::cty::c_void, + pub nd_net: possible_net_t, + pub npinfo: *mut netpoll_info, + pub tcx_ingress: *mut bpf_mprog_entry, + pub __cacheline_group_end__net_device_read_rx: __IncompleteArrayField<__u8>, + pub name: [::aya_ebpf::cty::c_char; 16usize], + pub name_node: *mut netdev_name_node, + pub ifalias: *mut dev_ifalias, + pub mem_end: ::aya_ebpf::cty::c_ulong, + pub mem_start: ::aya_ebpf::cty::c_ulong, + pub base_addr: ::aya_ebpf::cty::c_ulong, + pub dev_list: list_head, + pub napi_list: list_head, + pub unreg_list: list_head, + pub close_list: list_head, + pub ptype_all: list_head, + pub adj_list: net_device__bindgen_ty_3, + pub xdp_features: xdp_features_t, + pub xdp_metadata_ops: *const xdp_metadata_ops, + pub xsk_tx_metadata_ops: *const xsk_tx_metadata_ops, + pub gflags: ::aya_ebpf::cty::c_ushort, + pub needed_tailroom: ::aya_ebpf::cty::c_ushort, + pub hw_features: netdev_features_t, + pub wanted_features: netdev_features_t, + pub vlan_features: netdev_features_t, + pub hw_enc_features: netdev_features_t, + pub mpls_features: netdev_features_t, + pub mangleid_features: netdev_features_t, + pub min_mtu: ::aya_ebpf::cty::c_uint, + pub max_mtu: ::aya_ebpf::cty::c_uint, + pub type_: ::aya_ebpf::cty::c_ushort, + pub min_header_len: ::aya_ebpf::cty::c_uchar, + pub name_assign_type: ::aya_ebpf::cty::c_uchar, + pub group: ::aya_ebpf::cty::c_int, + pub stats: net_device_stats, + pub core_stats: *mut net_device_core_stats, + pub carrier_up_count: atomic_t, + pub carrier_down_count: atomic_t, + pub wireless_handlers: *const iw_handler_def, + pub ethtool_ops: *const ethtool_ops, + pub l3mdev_ops: *const l3mdev_ops, + pub ndisc_ops: *const ndisc_ops, + pub xfrmdev_ops: *const xfrmdev_ops, + pub tlsdev_ops: *const tlsdev_ops, + pub operstate: ::aya_ebpf::cty::c_uint, + pub link_mode: ::aya_ebpf::cty::c_uchar, + pub if_port: ::aya_ebpf::cty::c_uchar, + pub dma: ::aya_ebpf::cty::c_uchar, + pub perm_addr: [::aya_ebpf::cty::c_uchar; 32usize], + pub addr_assign_type: ::aya_ebpf::cty::c_uchar, + pub addr_len: ::aya_ebpf::cty::c_uchar, + pub upper_level: ::aya_ebpf::cty::c_uchar, + pub lower_level: ::aya_ebpf::cty::c_uchar, + pub threaded: u8_, + pub neigh_priv_len: ::aya_ebpf::cty::c_ushort, + pub dev_id: ::aya_ebpf::cty::c_ushort, + pub dev_port: ::aya_ebpf::cty::c_ushort, + pub irq: ::aya_ebpf::cty::c_int, + pub priv_len: u32_, + pub addr_list_lock: spinlock_t, + pub uc: netdev_hw_addr_list, + pub mc: netdev_hw_addr_list, + pub dev_addrs: netdev_hw_addr_list, + pub queues_kset: *mut kset, + pub promiscuity: ::aya_ebpf::cty::c_uint, + pub allmulti: ::aya_ebpf::cty::c_uint, + pub uc_promisc: bool_, + pub rx_mode_node: list_head, + pub rx_mode_tracker: netdevice_tracker, + pub rx_mode_addr_cache: netdev_hw_addr_list, + pub ip_ptr: *mut in_device, + pub fib_nh_head: hlist_head, + pub vlan_info: *mut vlan_info, + pub dsa_ptr: *mut dsa_port, + pub tipc_ptr: *mut tipc_bearer, + pub atalk_ptr: *mut ::aya_ebpf::cty::c_void, + pub ieee80211_ptr: *mut wireless_dev, + pub ieee802154_ptr: *mut wpan_dev, + pub mpls_ptr: *mut mpls_dev, + pub mctp_ptr: *mut mctp_dev, + pub psp_dev: *mut psp_dev, + pub dev_addr: *const ::aya_ebpf::cty::c_uchar, + pub num_rx_queues: ::aya_ebpf::cty::c_uint, + pub xdp_zc_max_segs: ::aya_ebpf::cty::c_uint, + pub ingress_queue: *mut netdev_queue, + pub nf_hooks_ingress: *mut nf_hook_entries, + pub broadcast: [::aya_ebpf::cty::c_uchar; 32usize], + pub rx_cpu_rmap: *mut cpu_rmap, + pub index_hlist: hlist_node, + pub num_tx_queues: ::aya_ebpf::cty::c_uint, + pub qdisc: *mut Qdisc, + pub tx_queue_len: ::aya_ebpf::cty::c_uint, + pub tx_global_lock: spinlock_t, + pub xdp_bulkq: *mut xdp_dev_bulk_queue, + pub qdisc_hash: [hlist_head; 16usize], + pub watchdog_timer: timer_list, + pub watchdog_timeo: ::aya_ebpf::cty::c_int, + pub watchdog_lock: spinlock_t, + pub watchdog_ref_held: bool_, + pub proto_down_reason: u32_, + pub todo_list: list_head, + pub pcpu_refcnt: *mut ::aya_ebpf::cty::c_int, + pub refcnt_tracker: ref_tracker_dir, + pub link_watch_list: list_head, + pub reg_state: u8_, + pub dismantle: bool_, + pub moving_ns: bool_, + pub rtnl_link_initializing: bool_, + pub needs_free_netdev: bool_, + pub priv_destructor: ::core::option::Option, + pub ml_priv: *mut ::aya_ebpf::cty::c_void, + pub ml_priv_type: netdev_ml_priv_type::Type, + pub garp_port: *mut garp_port, + pub mrp_port: *mut mrp_port, + pub dm_private: *mut dm_hw_stat_delta, + pub dev: device, + pub sysfs_groups: [*const attribute_group; 5usize], + pub sysfs_rx_queue_group: *const attribute_group, + pub rtnl_link_ops: *const rtnl_link_ops, + pub stat_ops: *const netdev_stat_ops, + pub queue_mgmt_ops: *const netdev_queue_mgmt_ops, + pub tso_max_size: ::aya_ebpf::cty::c_uint, + pub tso_max_segs: u16_, + pub dcbnl_ops: *const dcbnl_rtnl_ops, + pub prio_tc_map: [u8_; 16usize], + pub fcoe_ddp_xid: ::aya_ebpf::cty::c_uint, + pub priomap: *mut netprio_map, + pub link_topo: *mut phy_link_topology, + pub phydev: *mut phy_device, + pub sfp_bus: *mut sfp_bus, + pub qdisc_tx_busylock: *mut lock_class_key, + pub proto_down: bool_, + pub irq_affinity_auto: bool_, + pub rx_cpu_rmap_auto: bool_, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 1usize]>, + pub net_notifier_list: list_head, + pub macsec_ops: *const macsec_ops, + pub udp_tunnel_nic_info: *const udp_tunnel_nic_info, + pub udp_tunnel_nic: *mut udp_tunnel_nic, + pub cfg: *mut netdev_config, + pub cfg_pending: *mut netdev_config, + pub ethtool: *mut ethtool_netdev_state, + pub xdp_state: [bpf_xdp_entity; 3usize], + pub dev_addr_shadow: [u8_; 32usize], + pub linkwatch_dev_tracker: netdevice_tracker, + pub watchdog_dev_tracker: netdevice_tracker, + pub dev_registered_tracker: netdevice_tracker, + pub offload_xstats_l3: *mut rtnl_hw_stats64, + pub devlink_port: *mut devlink_port, + pub dpll_pin: *mut dpll_pin, + pub page_pools: hlist_head, + pub irq_moder: *mut dim_irq_moder, + pub max_pacing_offload_horizon: u64_, + pub napi_config: *mut napi_config, + pub num_napi_configs: u32_, + pub napi_defer_hard_irqs: u32_, + pub gro_flush_timeout: ::aya_ebpf::cty::c_ulong, + pub up: bool_, + pub request_ops_lock: bool_, + pub lock: mutex, + pub net_shaper_hierarchy: *mut net_shaper_hierarchy, + pub neighbours: [hlist_head; 2usize], + pub hwprov: *mut hwtstamp_provider, + pub _bitfield_align_3: [u8; 0], + pub _bitfield_3: __BindgenBitfieldUnit<[u8; 56usize]>, + pub priv_: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union net_device__bindgen_ty_1 { + pub __bindgen_anon_1: net_device__bindgen_ty_1__bindgen_ty_1, + pub priv_flags_fast: net_device__bindgen_ty_1__bindgen_ty_2, +} +#[repr(C)] +#[repr(align(8))] +#[derive(Debug, Copy, Clone)] +pub struct net_device__bindgen_ty_1__bindgen_ty_1 { + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 5usize]>, +} +impl net_device__bindgen_ty_1__bindgen_ty_1 { + #[inline] + pub fn priv_flags(&self) -> ::aya_ebpf::cty::c_ulong { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 32u8) as u64) } + } + #[inline] + pub fn set_priv_flags(&mut self, val: ::aya_ebpf::cty::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 32u8, val as u64) + } + } + #[inline] + pub unsafe fn priv_flags_raw(this: *const Self) -> ::aya_ebpf::cty::c_ulong { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 5usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 32u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_priv_flags_raw(this: *mut Self, val: ::aya_ebpf::cty::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 5usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 32u8, + val as u64, + ) + } + } + #[inline] + pub fn lltx(&self) -> ::aya_ebpf::cty::c_ulong { + unsafe { ::core::mem::transmute(self._bitfield_1.get(32usize, 1u8) as u64) } + } + #[inline] + pub fn set_lltx(&mut self, val: ::aya_ebpf::cty::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(32usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn lltx_raw(this: *const Self) -> ::aya_ebpf::cty::c_ulong { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 5usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 32usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_lltx_raw(this: *mut Self, val: ::aya_ebpf::cty::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 5usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 32usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn netmem_tx(&self) -> ::aya_ebpf::cty::c_ulong { + unsafe { ::core::mem::transmute(self._bitfield_1.get(33usize, 1u8) as u64) } + } + #[inline] + pub fn set_netmem_tx(&mut self, val: ::aya_ebpf::cty::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(33usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn netmem_tx_raw(this: *const Self) -> ::aya_ebpf::cty::c_ulong { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 5usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 33usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_netmem_tx_raw(this: *mut Self, val: ::aya_ebpf::cty::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 5usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 33usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + priv_flags: ::aya_ebpf::cty::c_ulong, + lltx: ::aya_ebpf::cty::c_ulong, + netmem_tx: ::aya_ebpf::cty::c_ulong, + ) -> __BindgenBitfieldUnit<[u8; 5usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 5usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 32u8, { + let priv_flags: u64 = unsafe { ::core::mem::transmute(priv_flags) }; + priv_flags as u64 + }); + __bindgen_bitfield_unit.set(32usize, 1u8, { + let lltx: u64 = unsafe { ::core::mem::transmute(lltx) }; + lltx as u64 + }); + __bindgen_bitfield_unit.set(33usize, 1u8, { + let netmem_tx: u64 = unsafe { ::core::mem::transmute(netmem_tx) }; + netmem_tx as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[repr(align(8))] +#[derive(Debug, Copy, Clone)] +pub struct net_device__bindgen_ty_1__bindgen_ty_2 { + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 5usize]>, +} +impl net_device__bindgen_ty_1__bindgen_ty_2 { + #[inline] + pub fn priv_flags(&self) -> ::aya_ebpf::cty::c_ulong { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 32u8) as u64) } + } + #[inline] + pub fn set_priv_flags(&mut self, val: ::aya_ebpf::cty::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 32u8, val as u64) + } + } + #[inline] + pub unsafe fn priv_flags_raw(this: *const Self) -> ::aya_ebpf::cty::c_ulong { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 5usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 32u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_priv_flags_raw(this: *mut Self, val: ::aya_ebpf::cty::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 5usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 32u8, + val as u64, + ) + } + } + #[inline] + pub fn lltx(&self) -> ::aya_ebpf::cty::c_ulong { + unsafe { ::core::mem::transmute(self._bitfield_1.get(32usize, 1u8) as u64) } + } + #[inline] + pub fn set_lltx(&mut self, val: ::aya_ebpf::cty::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(32usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn lltx_raw(this: *const Self) -> ::aya_ebpf::cty::c_ulong { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 5usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 32usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_lltx_raw(this: *mut Self, val: ::aya_ebpf::cty::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 5usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 32usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn netmem_tx(&self) -> ::aya_ebpf::cty::c_ulong { + unsafe { ::core::mem::transmute(self._bitfield_1.get(33usize, 1u8) as u64) } + } + #[inline] + pub fn set_netmem_tx(&mut self, val: ::aya_ebpf::cty::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(33usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn netmem_tx_raw(this: *const Self) -> ::aya_ebpf::cty::c_ulong { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 5usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 33usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_netmem_tx_raw(this: *mut Self, val: ::aya_ebpf::cty::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 5usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 33usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + priv_flags: ::aya_ebpf::cty::c_ulong, + lltx: ::aya_ebpf::cty::c_ulong, + netmem_tx: ::aya_ebpf::cty::c_ulong, + ) -> __BindgenBitfieldUnit<[u8; 5usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 5usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 32u8, { + let priv_flags: u64 = unsafe { ::core::mem::transmute(priv_flags) }; + priv_flags as u64 + }); + __bindgen_bitfield_unit.set(32usize, 1u8, { + let lltx: u64 = unsafe { ::core::mem::transmute(lltx) }; + lltx as u64 + }); + __bindgen_bitfield_unit.set(33usize, 1u8, { + let netmem_tx: u64 = unsafe { ::core::mem::transmute(netmem_tx) }; + netmem_tx as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union net_device__bindgen_ty_2 { + pub lstats: *mut pcpu_lstats, + pub tstats: *mut pcpu_sw_netstats, + pub dstats: *mut pcpu_dstats, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct net_device__bindgen_ty_3 { + pub upper: list_head, + pub lower: list_head, +} +impl net_device { + #[inline] + pub fn pcpu_stat_type(&self) -> netdev_stat_type::Type { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) } + } + #[inline] + pub fn set_pcpu_stat_type(&mut self, val: netdev_stat_type::Type) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 8u8, val as u64) + } + } + #[inline] + pub unsafe fn pcpu_stat_type_raw(this: *const Self) -> netdev_stat_type::Type { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 8u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_pcpu_stat_type_raw(this: *mut Self, val: netdev_stat_type::Type) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 8u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + pcpu_stat_type: netdev_stat_type::Type, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 8u8, { + let pcpu_stat_type: u32 = unsafe { ::core::mem::transmute(pcpu_stat_type) }; + pcpu_stat_type as u64 + }); + __bindgen_bitfield_unit + } + #[inline] + pub fn see_all_hwtstamp_requests(&self) -> ::aya_ebpf::cty::c_ulong { + unsafe { ::core::mem::transmute(self._bitfield_2.get(0usize, 1u8) as u64) } + } + #[inline] + pub fn set_see_all_hwtstamp_requests(&mut self, val: ::aya_ebpf::cty::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_2.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn see_all_hwtstamp_requests_raw(this: *const Self) -> ::aya_ebpf::cty::c_ulong { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 0usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_see_all_hwtstamp_requests_raw( + this: *mut Self, + val: ::aya_ebpf::cty::c_ulong, + ) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn change_proto_down(&self) -> ::aya_ebpf::cty::c_ulong { + unsafe { ::core::mem::transmute(self._bitfield_2.get(1usize, 1u8) as u64) } + } + #[inline] + pub fn set_change_proto_down(&mut self, val: ::aya_ebpf::cty::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_2.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn change_proto_down_raw(this: *const Self) -> ::aya_ebpf::cty::c_ulong { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 1usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_change_proto_down_raw(this: *mut Self, val: ::aya_ebpf::cty::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn netns_immutable(&self) -> ::aya_ebpf::cty::c_ulong { + unsafe { ::core::mem::transmute(self._bitfield_2.get(2usize, 1u8) as u64) } + } + #[inline] + pub fn set_netns_immutable(&mut self, val: ::aya_ebpf::cty::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_2.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn netns_immutable_raw(this: *const Self) -> ::aya_ebpf::cty::c_ulong { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 2usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_netns_immutable_raw(this: *mut Self, val: ::aya_ebpf::cty::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fcoe_mtu(&self) -> ::aya_ebpf::cty::c_ulong { + unsafe { ::core::mem::transmute(self._bitfield_2.get(3usize, 1u8) as u64) } + } + #[inline] + pub fn set_fcoe_mtu(&mut self, val: ::aya_ebpf::cty::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_2.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fcoe_mtu_raw(this: *const Self) -> ::aya_ebpf::cty::c_ulong { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 3usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_fcoe_mtu_raw(this: *mut Self, val: ::aya_ebpf::cty::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_2( + see_all_hwtstamp_requests: ::aya_ebpf::cty::c_ulong, + change_proto_down: ::aya_ebpf::cty::c_ulong, + netns_immutable: ::aya_ebpf::cty::c_ulong, + fcoe_mtu: ::aya_ebpf::cty::c_ulong, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let see_all_hwtstamp_requests: u64 = + unsafe { ::core::mem::transmute(see_all_hwtstamp_requests) }; + see_all_hwtstamp_requests as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let change_proto_down: u64 = unsafe { ::core::mem::transmute(change_proto_down) }; + change_proto_down as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let netns_immutable: u64 = unsafe { ::core::mem::transmute(netns_immutable) }; + netns_immutable as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let fcoe_mtu: u64 = unsafe { ::core::mem::transmute(fcoe_mtu) }; + fcoe_mtu as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct net_device_core_stats { + pub rx_dropped: ::aya_ebpf::cty::c_ulong, + pub tx_dropped: ::aya_ebpf::cty::c_ulong, + pub rx_nohandler: ::aya_ebpf::cty::c_ulong, + pub rx_otherhost_dropped: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct net_device_ops { + pub ndo_init: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_uninit: ::core::option::Option, + pub ndo_open: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_stop: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_start_xmit: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sk_buff, arg2: *mut net_device) -> netdev_tx_t, + >, + pub ndo_features_check: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sk_buff, + arg2: *mut net_device, + arg3: netdev_features_t, + ) -> netdev_features_t, + >, + pub ndo_select_queue: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut sk_buff, + arg3: *mut net_device, + ) -> u16_, + >, + pub ndo_change_rx_flags: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: ::aya_ebpf::cty::c_int), + >, + pub ndo_set_rx_mode: ::core::option::Option, + pub ndo_set_rx_mode_async: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut netdev_hw_addr_list, + arg3: *mut netdev_hw_addr_list, + ), + >, + pub ndo_set_mac_address: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_validate_addr: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_do_ioctl: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ifreq, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_eth_ioctl: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ifreq, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_siocbond: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ifreq, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_siocwandev: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut if_settings, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_siocdevprivate: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ifreq, + arg3: *mut ::aya_ebpf::cty::c_void, + arg4: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_set_config: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut ifmap) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_change_mtu: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_neigh_setup: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut neigh_parms, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_tx_timeout: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: ::aya_ebpf::cty::c_uint), + >, + pub ndo_get_stats64: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut rtnl_link_stats64), + >, + pub ndo_has_offload_stats: ::core::option::Option< + unsafe extern "C" fn(arg1: *const net_device, arg2: ::aya_ebpf::cty::c_int) -> bool_, + >, + pub ndo_get_offload_stats: ::core::option::Option< + unsafe extern "C" fn( + arg1: ::aya_ebpf::cty::c_int, + arg2: *const net_device, + arg3: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_get_stats: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device) -> *mut net_device_stats, + >, + pub ndo_vlan_rx_add_vid: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: __be16, + arg3: u16_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_vlan_rx_kill_vid: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: __be16, + arg3: u16_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_poll_controller: ::core::option::Option, + pub ndo_netpoll_setup: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_netpoll_cleanup: ::core::option::Option, + pub ndo_set_vf_mac: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut u8_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_set_vf_vlan: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: u16_, + arg4: u8_, + arg5: __be16, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_set_vf_rate: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + arg4: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_set_vf_spoofchk: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: bool_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_set_vf_trust: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: bool_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_get_vf_config: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut ifla_vf_info, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_set_vf_link_state: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_get_vf_stats: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut ifla_vf_stats, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_set_vf_port: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut *mut nlattr, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_get_vf_port: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut sk_buff, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_get_vf_guid: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut ifla_vf_guid, + arg4: *mut ifla_vf_guid, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_set_vf_guid: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: u64_, + arg4: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_set_vf_rss_query_en: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: bool_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_setup_tc: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: tc_setup_type::Type, + arg3: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_fcoe_enable: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_fcoe_disable: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_fcoe_ddp_setup: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: u16_, + arg3: *mut scatterlist, + arg4: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_fcoe_ddp_done: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: u16_) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_fcoe_ddp_target: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: u16_, + arg3: *mut scatterlist, + arg4: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_fcoe_get_hbainfo: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut netdev_fcoe_hbainfo, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_fcoe_get_wwn: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut u64_, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_rx_flow_steer: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *const sk_buff, + arg3: u16_, + arg4: u32_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_add_slave: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut net_device, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_del_slave: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut net_device, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_get_xmit_slave: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut sk_buff, + arg3: bool_, + ) -> *mut net_device, + >, + pub ndo_sk_get_lower_dev: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut sock) -> *mut net_device, + >, + pub ndo_fix_features: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: netdev_features_t) -> netdev_features_t, + >, + pub ndo_set_features: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: netdev_features_t, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_neigh_construct: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut neighbour) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_neigh_destroy: + ::core::option::Option, + pub ndo_fdb_add: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ndmsg, + arg2: *mut *mut nlattr, + arg3: *mut net_device, + arg4: *const ::aya_ebpf::cty::c_uchar, + arg5: u16_, + arg6: u16_, + arg7: *mut bool_, + arg8: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_fdb_del: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ndmsg, + arg2: *mut *mut nlattr, + arg3: *mut net_device, + arg4: *const ::aya_ebpf::cty::c_uchar, + arg5: u16_, + arg6: *mut bool_, + arg7: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_fdb_del_bulk: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut nlmsghdr, + arg2: *mut net_device, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_fdb_dump: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sk_buff, + arg2: *mut netlink_callback, + arg3: *mut net_device, + arg4: *mut net_device, + arg5: *mut ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_fdb_get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sk_buff, + arg2: *mut *mut nlattr, + arg3: *mut net_device, + arg4: *const ::aya_ebpf::cty::c_uchar, + arg5: u16_, + arg6: u32_, + arg7: u32_, + arg8: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_mdb_add: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut *mut nlattr, + arg3: u16_, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_mdb_del: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut *mut nlattr, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_mdb_del_bulk: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut *mut nlattr, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_mdb_dump: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut sk_buff, + arg3: *mut netlink_callback, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_mdb_get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut *mut nlattr, + arg3: u32_, + arg4: u32_, + arg5: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_bridge_setlink: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut nlmsghdr, + arg3: u16_, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_bridge_getlink: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sk_buff, + arg2: u32_, + arg3: u32_, + arg4: *mut net_device, + arg5: u32_, + arg6: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_bridge_dellink: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut nlmsghdr, + arg3: u16_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_change_carrier: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: bool_) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_get_phys_port_id: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut netdev_phys_item_id, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_get_port_parent_id: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut netdev_phys_item_id, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_get_phys_port_name: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ::aya_ebpf::cty::c_char, + arg3: usize, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_dfwd_add_station: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut net_device, + ) -> *mut ::aya_ebpf::cty::c_void, + >, + pub ndo_dfwd_del_station: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut ::aya_ebpf::cty::c_void), + >, + pub ndo_set_tx_maxrate: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: u32_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_get_iflink: ::core::option::Option< + unsafe extern "C" fn(arg1: *const net_device) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_fill_metadata_dst: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut sk_buff) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_set_rx_headroom: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: ::aya_ebpf::cty::c_int), + >, + pub ndo_bpf: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut netdev_bpf, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_xdp_xmit: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut *mut xdp_frame, + arg4: u32_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_xdp_get_xmit_slave: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut xdp_buff) -> *mut net_device, + >, + pub ndo_xsk_wakeup: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: u32_, + arg3: u32_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_tunnel_ctl: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ip_tunnel_parm_kern, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_get_peer_dev: + ::core::option::Option *mut net_device>, + pub ndo_fill_forward_path: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device_path_ctx, + arg2: *mut net_device_path, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_get_tstamp: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *const skb_shared_hwtstamps, + arg3: bool_, + ) -> ktime_t, + >, + pub ndo_hwtstamp_get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut kernel_hwtstamp_config, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_hwtstamp_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut kernel_hwtstamp_config, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub net_shaper_ops: *const net_shaper_ops, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct net_device_path { + pub type_: net_device_path_type::Type, + pub dev: *const net_device, + pub __bindgen_anon_1: net_device_path__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union net_device_path__bindgen_ty_1 { + pub encap: net_device_path__bindgen_ty_1__bindgen_ty_1, + pub tun: net_device_path__bindgen_ty_1__bindgen_ty_2, + pub bridge: net_device_path__bindgen_ty_1__bindgen_ty_3, + pub dsa: net_device_path__bindgen_ty_1__bindgen_ty_4, + pub mtk_wdma: net_device_path__bindgen_ty_1__bindgen_ty_5, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct net_device_path__bindgen_ty_1__bindgen_ty_1 { + pub id: u16_, + pub proto: __be16, + pub h_dest: [u8_; 6usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct net_device_path__bindgen_ty_1__bindgen_ty_2 { + pub __bindgen_anon_1: net_device_path__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1, + pub __bindgen_anon_2: net_device_path__bindgen_ty_1__bindgen_ty_2__bindgen_ty_2, + pub l3_proto: u8_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union net_device_path__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 { + pub src_v4: in_addr, + pub src_v6: in6_addr, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union net_device_path__bindgen_ty_1__bindgen_ty_2__bindgen_ty_2 { + pub dst_v4: in_addr, + pub dst_v6: in6_addr, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct net_device_path__bindgen_ty_1__bindgen_ty_3 { + pub vlan_mode: net_device_path__bindgen_ty_1__bindgen_ty_3__bindgen_ty_1::Type, + pub vlan_id: u16_, + pub vlan_proto: __be16, +} +pub mod net_device_path__bindgen_ty_1__bindgen_ty_3__bindgen_ty_1 { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const DEV_PATH_BR_VLAN_KEEP: Type = 0; + pub const DEV_PATH_BR_VLAN_TAG: Type = 1; + pub const DEV_PATH_BR_VLAN_UNTAG: Type = 2; + pub const DEV_PATH_BR_VLAN_UNTAG_HW: Type = 3; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct net_device_path__bindgen_ty_1__bindgen_ty_4 { + pub port: ::aya_ebpf::cty::c_int, + pub proto: u16_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct net_device_path__bindgen_ty_1__bindgen_ty_5 { + pub wdma_idx: u8_, + pub queue: u8_, + pub wcid: u16_, + pub bss: u8_, + pub amsdu: u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct net_device_path_ctx { + pub dev: *const net_device, + pub daddr: [u8_; 6usize], + pub num_vlans: ::aya_ebpf::cty::c_int, + pub vlan: [net_device_path_ctx__bindgen_ty_1; 2usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct net_device_path_ctx__bindgen_ty_1 { + pub id: u16_, + pub proto: __be16, +} +#[repr(C)] +pub struct net_generic { + pub __bindgen_anon_1: net_generic__bindgen_ty_1, +} +#[repr(C)] +pub struct net_generic__bindgen_ty_1 { + pub s: __BindgenUnionField, + pub __bindgen_anon_1: __BindgenUnionField, + pub bindgen_union_field: [u64; 3usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct net_generic__bindgen_ty_1__bindgen_ty_1 { + pub len: ::aya_ebpf::cty::c_uint, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Debug)] +pub struct net_generic__bindgen_ty_1__bindgen_ty_2 { + pub __empty_ptr: net_generic__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1, + pub ptr: __IncompleteArrayField<*mut ::aya_ebpf::cty::c_void>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct net_generic__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct net_rate_estimator { + pub bstats: *mut gnet_stats_basic_sync, + pub stats_lock: *mut spinlock_t, + pub running: bool_, + pub cpu_bstats: *mut gnet_stats_basic_sync, + pub ewma_log: u8_, + pub intvl_log: u8_, + pub seq: seqcount_t, + pub last_packets: u64_, + pub last_bytes: u64_, + pub avpps: u64_, + pub avbps: u64_, + pub next_jiffies: ::aya_ebpf::cty::c_ulong, + pub timer: timer_list, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct net_shaper_handle { + pub scope: net_shaper_scope::Type, + pub id: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct net_shaper { + pub parent: net_shaper_handle, + pub handle: net_shaper_handle, + pub metric: net_shaper_metric::Type, + pub bw_min: u64_, + pub bw_max: u64_, + pub burst: u64_, + pub priority: u32_, + pub weight: u32_, + pub leaves: u32_, + pub valid: bool_, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct net_shaper_binding { + pub type_: net_shaper_binding_type::Type, + pub __bindgen_anon_1: net_shaper_binding__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union net_shaper_binding__bindgen_ty_1 { + pub netdev: *mut net_device, + pub devlink: *mut devlink, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct net_shaper_hierarchy { + pub shapers: xarray, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct net_shaper_ops { + pub group: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_shaper_binding, + arg2: ::aya_ebpf::cty::c_int, + arg3: *const net_shaper, + arg4: *const net_shaper, + arg5: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_shaper_binding, + arg2: *const net_shaper, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub delete: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_shaper_binding, + arg2: *const net_shaper_handle, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub capabilities: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_shaper_binding, + arg2: net_shaper_scope::Type, + arg3: *mut ::aya_ebpf::cty::c_ulong, + ), + >, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct netdev_bpf { + pub command: bpf_netdev_command::Type, + pub __bindgen_anon_1: netdev_bpf__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union netdev_bpf__bindgen_ty_1 { + pub __bindgen_anon_1: netdev_bpf__bindgen_ty_1__bindgen_ty_1, + pub __bindgen_anon_2: netdev_bpf__bindgen_ty_1__bindgen_ty_2, + pub xsk: netdev_bpf__bindgen_ty_1__bindgen_ty_3, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netdev_bpf__bindgen_ty_1__bindgen_ty_1 { + pub flags: u32_, + pub prog: *mut bpf_prog, + pub extack: *mut netlink_ext_ack, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netdev_bpf__bindgen_ty_1__bindgen_ty_2 { + pub offmap: *mut bpf_offloaded_map, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netdev_bpf__bindgen_ty_1__bindgen_ty_3 { + pub pool: *mut xsk_buff_pool, + pub queue_id: u16_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netdev_config { + pub hds_thresh: u32_, + pub hds_config: u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netdev_fcoe_hbainfo { + pub manufacturer: [::aya_ebpf::cty::c_char; 64usize], + pub serial_number: [::aya_ebpf::cty::c_char; 64usize], + pub hardware_version: [::aya_ebpf::cty::c_char; 64usize], + pub driver_version: [::aya_ebpf::cty::c_char; 64usize], + pub optionrom_version: [::aya_ebpf::cty::c_char; 64usize], + pub firmware_version: [::aya_ebpf::cty::c_char; 64usize], + pub model: [::aya_ebpf::cty::c_char; 256usize], + pub model_description: [::aya_ebpf::cty::c_char; 256usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netdev_lag_upper_info { + pub tx_type: netdev_lag_tx_type::Type, + pub hash_type: netdev_lag_hash::Type, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netdev_name_node { + pub hlist: hlist_node, + pub list: list_head, + pub dev: *mut net_device, + pub name: *const ::aya_ebpf::cty::c_char, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netdev_notifier_info { + pub dev: *mut net_device, + pub extack: *mut netlink_ext_ack, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netdev_notifier_changeupper_info { + pub info: netdev_notifier_info, + pub upper_dev: *mut net_device, + pub master: bool_, + pub linking: bool_, + pub upper_info: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rtnl_hw_stats64 { + pub rx_packets: __u64, + pub tx_packets: __u64, + pub rx_bytes: __u64, + pub tx_bytes: __u64, + pub rx_errors: __u64, + pub tx_errors: __u64, + pub rx_dropped: __u64, + pub tx_dropped: __u64, + pub multicast: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct netdev_queue { + pub dev: *mut net_device, + pub dev_tracker: netdevice_tracker, + pub qdisc: *mut Qdisc, + pub qdisc_sleeping: *mut Qdisc, + pub kobj: kobject, + pub groups: *mut *const attribute_group, + pub tx_maxrate: ::aya_ebpf::cty::c_ulong, + pub trans_timeout: atomic_long_t, + pub sb_dev: *mut net_device, + pub pool: *mut xsk_buff_pool, + pub dql: dql, + pub _xmit_lock: spinlock_t, + pub xmit_lock_owner: ::aya_ebpf::cty::c_int, + pub trans_start: ::aya_ebpf::cty::c_ulong, + pub state: ::aya_ebpf::cty::c_ulong, + pub napi: *mut napi_struct, + pub numa_node: ::aya_ebpf::cty::c_int, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, + pub __bindgen_padding_0: u32, +} +impl netdev_queue { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netdev_queue_config { + pub rx_page_size: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netdev_queue_mgmt_ops { + pub ndo_queue_mem_size: usize, + pub ndo_queue_mem_alloc: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut netdev_queue_config, + arg3: *mut ::aya_ebpf::cty::c_void, + arg4: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_queue_mem_free: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut ::aya_ebpf::cty::c_void), + >, + pub ndo_queue_start: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut netdev_queue_config, + arg3: *mut ::aya_ebpf::cty::c_void, + arg4: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_queue_stop: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_default_qcfg: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut netdev_queue_config), + >, + pub ndo_validate_qcfg: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut netdev_queue_config, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ndo_queue_get_dma_dev: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: ::aya_ebpf::cty::c_int) -> *mut device, + >, + pub ndo_queue_create: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub supported_params: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netdev_queue_stats_rx { + pub bytes: u64_, + pub packets: u64_, + pub alloc_fail: u64_, + pub hw_drops: u64_, + pub hw_drop_overruns: u64_, + pub csum_complete: u64_, + pub csum_unnecessary: u64_, + pub csum_none: u64_, + pub csum_bad: u64_, + pub hw_gro_packets: u64_, + pub hw_gro_bytes: u64_, + pub hw_gro_wire_packets: u64_, + pub hw_gro_wire_bytes: u64_, + pub hw_drop_ratelimits: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netdev_queue_stats_tx { + pub bytes: u64_, + pub packets: u64_, + pub hw_drops: u64_, + pub hw_drop_errors: u64_, + pub csum_none: u64_, + pub needs_csum: u64_, + pub hw_gso_packets: u64_, + pub hw_gso_bytes: u64_, + pub hw_gso_wire_packets: u64_, + pub hw_gso_wire_bytes: u64_, + pub hw_drop_ratelimits: u64_, + pub stop: u64_, + pub wake: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xdp_mem_info { + pub type_: u32_, + pub id: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xdp_rxq_info { + pub dev: *mut net_device, + pub queue_index: u32_, + pub reg_state: u32_, + pub mem: xdp_mem_info, + pub frag_size: u32_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 32usize]>, + pub __bindgen_padding_0: u32, +} +impl xdp_rxq_info { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 32usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 32usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pp_memory_provider_params { + pub mp_priv: *mut ::aya_ebpf::cty::c_void, + pub mp_ops: *const memory_provider_ops, + pub rx_page_size: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netdev_rx_queue { + pub xdp_rxq: xdp_rxq_info, + pub rps_map: *mut rps_map, + pub rps_flow_table: rps_tag_ptr, + pub kobj: kobject, + pub groups: *mut *const attribute_group, + pub dev: *mut net_device, + pub dev_tracker: netdevice_tracker, + pub pool: *mut xsk_buff_pool, + pub napi: *mut napi_struct, + pub qcfg: netdev_queue_config, + pub mp_params: pp_memory_provider_params, + pub lease: *mut netdev_rx_queue, + pub lease_tracker: netdevice_tracker, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 40usize]>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netdev_stat_ops { + pub get_queue_stats_rx: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut netdev_queue_stats_rx, + ), + >, + pub get_queue_stats_tx: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut netdev_queue_stats_tx, + ), + >, + pub get_base_stats: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut netdev_queue_stats_rx, + arg3: *mut netdev_queue_stats_tx, + ), + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netlbl_lsm_cache { + pub refcount: refcount_t, + pub free: ::core::option::Option, + pub data: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netlbl_lsm_catmap { + pub startbit: u32_, + pub bitmap: [u64_; 4usize], + pub next: *mut netlbl_lsm_catmap, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netlbl_lsm_secattr { + pub flags: u32_, + pub type_: u32_, + pub domain: *mut ::aya_ebpf::cty::c_char, + pub cache: *mut netlbl_lsm_cache, + pub attr: netlbl_lsm_secattr__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netlbl_lsm_secattr__bindgen_ty_1 { + pub mls: netlbl_lsm_secattr__bindgen_ty_1__bindgen_ty_1, + pub secid: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netlbl_lsm_secattr__bindgen_ty_1__bindgen_ty_1 { + pub cat: *mut netlbl_lsm_catmap, + pub lvl: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct netlink_callback { + pub skb: *mut sk_buff, + pub nlh: *const nlmsghdr, + pub dump: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sk_buff, + arg2: *mut netlink_callback, + ) -> ::aya_ebpf::cty::c_int, + >, + pub done: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut netlink_callback) -> ::aya_ebpf::cty::c_int, + >, + pub data: *mut ::aya_ebpf::cty::c_void, + pub module: *mut module, + pub extack: *mut netlink_ext_ack, + pub family: u16_, + pub answer_flags: u16_, + pub min_dump_alloc: u32_, + pub prev_seq: ::aya_ebpf::cty::c_uint, + pub seq: ::aya_ebpf::cty::c_uint, + pub flags: ::aya_ebpf::cty::c_int, + pub strict_check: bool_, + pub __bindgen_anon_1: netlink_callback__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union netlink_callback__bindgen_ty_1 { + pub ctx: [u8_; 48usize], + pub args: [::aya_ebpf::cty::c_long; 6usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netlink_ext_ack { + pub _msg: *const ::aya_ebpf::cty::c_char, + pub bad_attr: *const nlattr, + pub policy: *const nla_policy, + pub miss_nest: *const nlattr, + pub miss_type: u16_, + pub cookie: [u8_; 8usize], + pub cookie_len: u8_, + pub _msg_buf: [::aya_ebpf::cty::c_char; 80usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netlink_range_validation { + pub min: u64_, + pub max: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netlink_range_validation_signed { + pub min: s64, + pub max: s64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct netpoll_info { + pub refcnt: refcount_t, + pub dev_lock: semaphore, + pub txq: sk_buff_head, + pub tx_work: delayed_work, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Debug)] +pub struct netprio_map { + pub rcu: callback_head, + pub priomap_len: u32_, + pub priomap: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct new_utsname { + pub sysname: [::aya_ebpf::cty::c_char; 65usize], + pub nodename: [::aya_ebpf::cty::c_char; 65usize], + pub release: [::aya_ebpf::cty::c_char; 65usize], + pub version: [::aya_ebpf::cty::c_char; 65usize], + pub machine: [::aya_ebpf::cty::c_char; 65usize], + pub domainname: [::aya_ebpf::cty::c_char; 65usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct nexthop { + pub rb_node: rb_node, + pub fi_list: list_head, + pub f6i_list: list_head, + pub fdb_list: list_head, + pub grp_list: list_head, + pub net: *mut net, + pub id: u32_, + pub protocol: u8_, + pub nh_flags: u8_, + pub is_group: bool_, + pub dead: bool_, + pub lock: spinlock_t, + pub refcnt: refcount_t, + pub rcu: callback_head, + pub __bindgen_anon_1: nexthop__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union nexthop__bindgen_ty_1 { + pub nh_info: *mut nh_info, + pub nh_grp: *mut nh_group, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_conntrack { + pub use_: refcount_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_conntrack_zone { + pub id: u16_, + pub flags: u8_, + pub dir: u8_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union nf_inet_addr { + pub all: [__u32; 4usize], + pub ip: __be32, + pub ip6: [__be32; 4usize], + pub in_: in_addr, + pub in6: in6_addr, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union nf_conntrack_man_proto { + pub all: __be16, + pub tcp: nf_conntrack_man_proto__bindgen_ty_1, + pub udp: nf_conntrack_man_proto__bindgen_ty_2, + pub icmp: nf_conntrack_man_proto__bindgen_ty_3, + pub dccp: nf_conntrack_man_proto__bindgen_ty_4, + pub sctp: nf_conntrack_man_proto__bindgen_ty_5, + pub gre: nf_conntrack_man_proto__bindgen_ty_6, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_conntrack_man_proto__bindgen_ty_1 { + pub port: __be16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_conntrack_man_proto__bindgen_ty_2 { + pub port: __be16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_conntrack_man_proto__bindgen_ty_3 { + pub id: __be16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_conntrack_man_proto__bindgen_ty_4 { + pub port: __be16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_conntrack_man_proto__bindgen_ty_5 { + pub port: __be16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_conntrack_man_proto__bindgen_ty_6 { + pub key: __be16, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct nf_conntrack_man { + pub u3: nf_inet_addr, + pub u: nf_conntrack_man_proto, + pub l3num: u_int16_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct nf_conntrack_tuple { + pub src: nf_conntrack_man, + pub dst: nf_conntrack_tuple__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct nf_conntrack_tuple__bindgen_ty_1 { + pub u3: nf_inet_addr, + pub u: nf_conntrack_tuple__bindgen_ty_1__bindgen_ty_1, + pub protonum: u_int8_t, + pub __nfct_hash_offsetend: nf_conntrack_tuple__bindgen_ty_1__bindgen_ty_2, + pub dir: u_int8_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union nf_conntrack_tuple__bindgen_ty_1__bindgen_ty_1 { + pub all: __be16, + pub tcp: nf_conntrack_tuple__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, + pub udp: nf_conntrack_tuple__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2, + pub icmp: nf_conntrack_tuple__bindgen_ty_1__bindgen_ty_1__bindgen_ty_3, + pub dccp: nf_conntrack_tuple__bindgen_ty_1__bindgen_ty_1__bindgen_ty_4, + pub sctp: nf_conntrack_tuple__bindgen_ty_1__bindgen_ty_1__bindgen_ty_5, + pub gre: nf_conntrack_tuple__bindgen_ty_1__bindgen_ty_1__bindgen_ty_6, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_conntrack_tuple__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { + pub port: __be16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_conntrack_tuple__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2 { + pub port: __be16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_conntrack_tuple__bindgen_ty_1__bindgen_ty_1__bindgen_ty_3 { + pub type_: u_int8_t, + pub code: u_int8_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_conntrack_tuple__bindgen_ty_1__bindgen_ty_1__bindgen_ty_4 { + pub port: __be16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_conntrack_tuple__bindgen_ty_1__bindgen_ty_1__bindgen_ty_5 { + pub port: __be16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_conntrack_tuple__bindgen_ty_1__bindgen_ty_1__bindgen_ty_6 { + pub key: __be16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_conntrack_tuple__bindgen_ty_1__bindgen_ty_2 {} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct nf_conntrack_tuple_hash { + pub hnnode: hlist_nulls_node, + pub tuple: nf_conntrack_tuple, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_ct_udp { + pub stream_ts: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_ct_gre { + pub stream_timeout: ::aya_ebpf::cty::c_uint, + pub timeout: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union nf_conntrack_proto { + pub sctp: ip_ct_sctp, + pub tcp: ip_ct_tcp, + pub udp: nf_ct_udp, + pub gre: nf_ct_gre, + pub tmpl_padto: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct nf_conn { + pub ct_general: nf_conntrack, + pub lock: spinlock_t, + pub timeout: u32_, + pub zone: nf_conntrack_zone, + pub tuplehash: [nf_conntrack_tuple_hash; 2usize], + pub status: ::aya_ebpf::cty::c_ulong, + pub ct_net: possible_net_t, + pub nat_bysource: hlist_node, + pub __nfct_init_offset: nf_conn__bindgen_ty_1, + pub master: *mut nf_conn, + pub mark: u_int32_t, + pub secmark: u_int32_t, + pub ext: *mut nf_ct_ext, + pub proto: nf_conntrack_proto, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_conn__bindgen_ty_1 {} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct nf_conntrack_tuple_mask { + pub src: nf_conntrack_tuple_mask__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct nf_conntrack_tuple_mask__bindgen_ty_1 { + pub u3: nf_inet_addr, + pub u: nf_conntrack_man_proto, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_conntrack_helper { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct nf_conntrack_expect { + pub lnode: hlist_node, + pub hnode: hlist_node, + pub net: possible_net_t, + pub master_tuple: nf_conntrack_tuple, + pub tuple: nf_conntrack_tuple, + pub mask: nf_conntrack_tuple_mask, + pub zone: nf_conntrack_zone, + pub use_: refcount_t, + pub flags: ::aya_ebpf::cty::c_uint, + pub class: ::aya_ebpf::cty::c_uint, + pub expectfn: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut nf_conn, arg2: *mut nf_conntrack_expect), + >, + pub helper: *mut nf_conntrack_helper, + pub assign_helper: *mut nf_conntrack_helper, + pub master: *mut nf_conn, + pub timeout: u32_, + pub saved_addr: nf_inet_addr, + pub saved_proto: nf_conntrack_man_proto, + pub dir: ip_conntrack_dir::Type, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_ct_event { + pub ct: *mut nf_conn, + pub portid: u32_, + pub report: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_ct_event_notifier { + pub ct_event: ::core::option::Option< + unsafe extern "C" fn( + arg1: ::aya_ebpf::cty::c_uint, + arg2: *const nf_ct_event, + ) -> ::aya_ebpf::cty::c_int, + >, + pub exp_event: ::core::option::Option< + unsafe extern "C" fn( + arg1: ::aya_ebpf::cty::c_uint, + arg2: *const nf_exp_event, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug)] +pub struct nf_ct_ext { + pub offset: [u8_; 10usize], + pub len: u8_, + pub __bindgen_padding_0: [u8; 5usize], + pub data: __IncompleteArrayField<::aya_ebpf::cty::c_char>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_exp_event { + pub exp: *mut nf_conntrack_expect, + pub portid: u32_, + pub report: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_flow_table_stat { + pub count_wq_add: ::aya_ebpf::cty::c_uint, + pub count_wq_del: ::aya_ebpf::cty::c_uint, + pub count_wq_stats: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_hook_entry { + pub hook: nf_hookfn, + pub priv_: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Debug)] +pub struct nf_hook_entries { + pub num_hook_entries: u16_, + pub hooks: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_hook_state { + pub hook: u8_, + pub pf: u8_, + pub in_: *mut net_device, + pub out: *mut net_device, + pub sk: *mut sock, + pub net: *mut net, + pub okfn: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net, + arg2: *mut sock, + arg3: *mut sk_buff, + ) -> ::aya_ebpf::cty::c_int, + >, +} +pub type nf_logfn = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net, + arg2: u_int8_t, + arg3: ::aya_ebpf::cty::c_uint, + arg4: *const sk_buff, + arg5: *const net_device, + arg6: *const net_device, + arg7: *const nf_loginfo, + arg8: *const ::aya_ebpf::cty::c_char, + ), +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_logger { + pub name: *mut ::aya_ebpf::cty::c_char, + pub type_: nf_log_type::Type, + pub logfn: nf_logfn, + pub me: *mut module, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct nf_loginfo { + pub type_: u_int8_t, + pub u: nf_loginfo__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union nf_loginfo__bindgen_ty_1 { + pub ulog: nf_loginfo__bindgen_ty_1__bindgen_ty_1, + pub log: nf_loginfo__bindgen_ty_1__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_loginfo__bindgen_ty_1__bindgen_ty_1 { + pub copy_len: u_int32_t, + pub group: u_int16_t, + pub qthreshold: u_int16_t, + pub flags: u_int16_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nf_loginfo__bindgen_ty_1__bindgen_ty_2 { + pub level: u_int8_t, + pub logflags: u_int8_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfstime4 { + pub seconds: i64, + pub nseconds: u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs41_impl_id { + pub domain: [::aya_ebpf::cty::c_char; 1025usize], + pub name: [::aya_ebpf::cty::c_char; 1025usize], + pub date: nfstime4, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs41_server_owner { + pub minor_id: u64, + pub major_id_sz: u32, + pub major_id: [::aya_ebpf::cty::c_char; 1024usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs41_server_scope { + pub server_scope_sz: u32, + pub server_scope: [::aya_ebpf::cty::c_char; 1024usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs4_change_info { + pub atomic: u32_, + pub before: u64_, + pub after: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs4_string { + pub len: ::aya_ebpf::cty::c_uint, + pub data: *mut ::aya_ebpf::cty::c_char, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs4_pathname { + pub ncomponents: ::aya_ebpf::cty::c_uint, + pub components: [nfs4_string; 512usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs4_fs_location { + pub nservers: ::aya_ebpf::cty::c_uint, + pub servers: [nfs4_string; 10usize], + pub rootpath: nfs4_pathname, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs4_fs_locations { + pub fattr: *mut nfs_fattr, + pub server: *const nfs_server, + pub fs_path: nfs4_pathname, + pub nlocations: ::aya_ebpf::cty::c_int, + pub locations: [nfs4_fs_location; 10usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs4_label { + pub lfs: u32, + pub pi: u32, + pub lsmid: u32_, + pub len: u32_, + pub label: *mut ::aya_ebpf::cty::c_char, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rpc_timer { + pub list: list_head, + pub expires: ::aya_ebpf::cty::c_ulong, + pub dwork: delayed_work, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rpc_wait_queue { + pub lock: spinlock_t, + pub tasks: [list_head; 4usize], + pub maxpriority: ::aya_ebpf::cty::c_uchar, + pub priority: ::aya_ebpf::cty::c_uchar, + pub nr: ::aya_ebpf::cty::c_uchar, + pub qlen: ::aya_ebpf::cty::c_uint, + pub timer_list: rpc_timer, + pub name: *const ::aya_ebpf::cty::c_char, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct nfs_seqid_counter { + pub create_time: ktime_t, + pub owner_id: u64_, + pub flags: ::aya_ebpf::cty::c_int, + pub counter: u32_, + pub lock: spinlock_t, + pub list: list_head, + pub wait: rpc_wait_queue, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct nfs4_stateid_struct { + pub __bindgen_anon_1: nfs4_stateid_struct__bindgen_ty_1, + pub type_: nfs4_stateid_struct__bindgen_ty_2::Type, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union nfs4_stateid_struct__bindgen_ty_1 { + pub data: [::aya_ebpf::cty::c_char; 16usize], + pub __bindgen_anon_1: nfs4_stateid_struct__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs4_stateid_struct__bindgen_ty_1__bindgen_ty_1 { + pub seqid: __be32, + pub other: [::aya_ebpf::cty::c_char; 12usize], +} +pub mod nfs4_stateid_struct__bindgen_ty_2 { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const NFS4_INVALID_STATEID_TYPE: Type = 0; + pub const NFS4_SPECIAL_STATEID_TYPE: Type = 1; + pub const NFS4_OPEN_STATEID_TYPE: Type = 2; + pub const NFS4_LOCK_STATEID_TYPE: Type = 3; + pub const NFS4_DELEGATION_STATEID_TYPE: Type = 4; + pub const NFS4_LAYOUT_STATEID_TYPE: Type = 5; + pub const NFS4_PNFS_DS_STATEID_TYPE: Type = 6; + pub const NFS4_REVOKED_STATEID_TYPE: Type = 7; + pub const NFS4_FREED_STATEID_TYPE: Type = 8; +} +pub type nfs4_stateid = nfs4_stateid_struct; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct nfs4_lock_state { + pub ls_locks: list_head, + pub ls_state: *mut nfs4_state, + pub ls_flags: ::aya_ebpf::cty::c_ulong, + pub ls_seqid: nfs_seqid_counter, + pub ls_stateid: nfs4_stateid, + pub ls_count: refcount_t, + pub ls_owner: fl_owner_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs4_mig_recovery_ops { + pub get_locations: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut nfs_server, + arg2: *mut nfs_fh, + arg3: *mut nfs4_fs_locations, + arg4: *mut page, + arg5: *const cred, + ) -> ::aya_ebpf::cty::c_int, + >, + pub fsid_present: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut inode, arg2: *const cred) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs4_minor_version_ops { + pub minor_version: u32_, + pub init_caps: ::aya_ebpf::cty::c_uint, + pub init_client: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut nfs_client) -> ::aya_ebpf::cty::c_int, + >, + pub shutdown_client: ::core::option::Option, + pub match_stateid: ::core::option::Option< + unsafe extern "C" fn(arg1: *const nfs4_stateid, arg2: *const nfs4_stateid) -> bool_, + >, + pub find_root_sec: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut nfs_server, + arg2: *mut nfs_fh, + arg3: *mut nfs_fattr, + ) -> ::aya_ebpf::cty::c_int, + >, + pub free_lock_state: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut nfs_server, arg2: *mut nfs4_lock_state), + >, + pub test_and_free_expired: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut nfs_server, + arg2: *mut nfs4_stateid, + arg3: *const cred, + ) -> ::aya_ebpf::cty::c_int, + >, + pub alloc_seqid: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut nfs_seqid_counter, arg2: gfp_t) -> *mut nfs_seqid, + >, + pub session_trunk: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut rpc_clnt, + arg2: *mut rpc_xprt, + arg3: *mut ::aya_ebpf::cty::c_void, + ), + >, + pub call_sync_ops: *const rpc_call_ops, + pub sequence_slot_ops: *const nfs4_sequence_slot_ops, + pub reboot_recovery_ops: *const nfs4_state_recovery_ops, + pub nograce_recovery_ops: *const nfs4_state_recovery_ops, + pub state_renewal_ops: *const nfs4_state_maintenance_ops, + pub mig_recovery_ops: *const nfs4_mig_recovery_ops, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs4_slot { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs4_sequence_args { + pub sa_slot: *mut nfs4_slot, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: [u8; 7usize], +} +impl nfs4_sequence_args { + #[inline] + pub fn sa_cache_this(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_sa_cache_this(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sa_cache_this_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sa_cache_this_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sa_privileged(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_sa_privileged(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sa_privileged_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sa_privileged_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + sa_cache_this: u8_, + sa_privileged: u8_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let sa_cache_this: u8 = unsafe { ::core::mem::transmute(sa_cache_this) }; + sa_cache_this as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let sa_privileged: u8 = unsafe { ::core::mem::transmute(sa_privileged) }; + sa_privileged as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs4_sequence_res { + pub sr_slot_ops: *const nfs4_sequence_slot_ops, + pub sr_slot: *mut nfs4_slot, + pub sr_timestamp: ::aya_ebpf::cty::c_ulong, + pub sr_status: ::aya_ebpf::cty::c_int, + pub sr_status_flags: u32_, + pub sr_highest_slotid: u32_, + pub sr_target_highest_slotid: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs4_sequence_slot_ops { + pub process: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut rpc_task, + arg2: *mut nfs4_sequence_res, + ) -> ::aya_ebpf::cty::c_int, + >, + pub done: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut rpc_task, + arg2: *mut nfs4_sequence_res, + ) -> ::aya_ebpf::cty::c_int, + >, + pub free_slot: ::core::option::Option, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct nfs4_state { + pub open_states: list_head, + pub inode_states: list_head, + pub lock_states: list_head, + pub owner: *mut nfs4_state_owner, + pub inode: *mut inode, + pub flags: ::aya_ebpf::cty::c_ulong, + pub state_lock: spinlock_t, + pub seqlock: seqlock_t, + pub stateid: nfs4_stateid, + pub open_stateid: nfs4_stateid, + pub n_rdonly: ::aya_ebpf::cty::c_uint, + pub n_wronly: ::aya_ebpf::cty::c_uint, + pub n_rdwr: ::aya_ebpf::cty::c_uint, + pub state: fmode_t, + pub count: refcount_t, + pub waitq: wait_queue_head_t, + pub callback_head: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs4_state_maintenance_ops { + pub sched_state_renewal: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut nfs_client, + arg2: *const cred, + arg3: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_state_renewal_cred: + ::core::option::Option *const cred>, + pub renew_lease: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut nfs_client, arg2: *const cred) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct nfs4_state_owner { + pub so_server: *mut nfs_server, + pub so_lru: list_head, + pub so_expires: ::aya_ebpf::cty::c_ulong, + pub so_server_node: rb_node, + pub so_cred: *const cred, + pub so_lock: spinlock_t, + pub so_count: atomic_t, + pub so_flags: ::aya_ebpf::cty::c_ulong, + pub so_states: list_head, + pub so_seqid: nfs_seqid_counter, + pub so_delegreturn_mutex: mutex, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs4_state_recovery_ops { + pub owner_flag_bit: ::aya_ebpf::cty::c_int, + pub state_flag_bit: ::aya_ebpf::cty::c_int, + pub recover_open: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut nfs4_state_owner, + arg2: *mut nfs4_state, + ) -> ::aya_ebpf::cty::c_int, + >, + pub recover_lock: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut nfs4_state, arg2: *mut file_lock) -> ::aya_ebpf::cty::c_int, + >, + pub establish_clid: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut nfs_client, arg2: *const cred) -> ::aya_ebpf::cty::c_int, + >, + pub reclaim_complete: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut nfs_client, arg2: *const cred) -> ::aya_ebpf::cty::c_int, + >, + pub detect_trunking: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut nfs_client, + arg2: *mut *mut nfs_client, + arg3: *const cred, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs4_threshold { + pub bm: __u32, + pub l_type: __u32, + pub rd_sz: __u64, + pub wr_sz: __u64, + pub rd_io_sz: __u64, + pub wr_io_sz: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_access_entry { + pub rb_node: rb_node, + pub lru: list_head, + pub fsuid: kuid_t, + pub fsgid: kgid_t, + pub group_info: *mut group_info, + pub timestamp: u64_, + pub mask: __u32, + pub callback_head: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_auth_info { + pub flavor_len: ::aya_ebpf::cty::c_uint, + pub flavors: [rpc_authflavor_t; 12usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_subversion { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xprtsec_parms { + pub policy: xprtsec_policies::Type, + pub cert_serial: key_serial_t, + pub privkey_serial: key_serial_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct idmap { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs4_slot_table { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs4_session { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct nfs_client { + pub cl_count: refcount_t, + pub cl_mds_count: atomic_t, + pub cl_cons_state: ::aya_ebpf::cty::c_int, + pub cl_res_state: ::aya_ebpf::cty::c_ulong, + pub cl_flags: ::aya_ebpf::cty::c_ulong, + pub cl_addr: __kernel_sockaddr_storage, + pub cl_addrlen: usize, + pub cl_hostname: *mut ::aya_ebpf::cty::c_char, + pub cl_acceptor: *mut ::aya_ebpf::cty::c_char, + pub cl_share_link: list_head, + pub cl_superblocks: list_head, + pub cl_rpcclient: *mut rpc_clnt, + pub rpc_ops: *const nfs_rpc_ops, + pub cl_proto: ::aya_ebpf::cty::c_int, + pub cl_nfs_mod: *mut nfs_subversion, + pub cl_minorversion: u32_, + pub cl_nconnect: ::aya_ebpf::cty::c_uint, + pub cl_max_connect: ::aya_ebpf::cty::c_uint, + pub cl_principal: *const ::aya_ebpf::cty::c_char, + pub cl_xprtsec: xprtsec_parms, + pub cl_ds_clients: list_head, + pub cl_clientid: u64_, + pub cl_confirm: nfs4_verifier, + pub cl_state: ::aya_ebpf::cty::c_ulong, + pub cl_lock: spinlock_t, + pub cl_lease_time: ::aya_ebpf::cty::c_ulong, + pub cl_last_renewal: ::aya_ebpf::cty::c_ulong, + pub cl_renewd: delayed_work, + pub cl_rpcwaitq: rpc_wait_queue, + pub cl_idmap: *mut idmap, + pub cl_owner_id: *const ::aya_ebpf::cty::c_char, + pub cl_cb_ident: u32_, + pub cl_mvops: *const nfs4_minor_version_ops, + pub cl_mig_gen: ::aya_ebpf::cty::c_ulong, + pub cl_slot_tbl: *mut nfs4_slot_table, + pub cl_seqid: u32_, + pub cl_exchange_flags: u32_, + pub cl_session: *mut nfs4_session, + pub cl_preserve_clid: bool_, + pub cl_serverowner: *mut nfs41_server_owner, + pub cl_serverscope: *mut nfs41_server_scope, + pub cl_implid: *mut nfs41_impl_id, + pub cl_sp4_flags: ::aya_ebpf::cty::c_ulong, + pub cl_lock_waitq: wait_queue_head_t, + pub cl_ipaddr: [::aya_ebpf::cty::c_char; 48usize], + pub cl_net: *mut net, + pub cl_ns_tracker: netns_tracker, + pub pending_cb_stateids: list_head, + pub rcu: callback_head, + pub cl_nfssvc_boot: timespec64, + pub cl_boot_lock: seqlock_t, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>, + pub cl_uuid: nfs_uuid_t, + pub cl_local_probe_work: work_struct, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 32usize]>, +} +impl nfs_client { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); + __bindgen_bitfield_unit + } + #[inline] + pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 32usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 32usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_page { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_commit_completion_ops { + pub completion: ::core::option::Option, + pub resched_write: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut nfs_commit_info, arg2: *mut nfs_page), + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rpc_wait { + pub list: list_head, + pub links: list_head, + pub timer_list: list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rpc_message { + pub rpc_proc: *const rpc_procinfo, + pub rpc_argp: *mut ::aya_ebpf::cty::c_void, + pub rpc_resp: *mut ::aya_ebpf::cty::c_void, + pub rpc_cred: *const cred, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rpc_task { + pub tk_count: atomic_t, + pub tk_status: ::aya_ebpf::cty::c_int, + pub tk_task: list_head, + pub tk_callback: ::core::option::Option, + pub tk_action: ::core::option::Option, + pub tk_timeout: ::aya_ebpf::cty::c_ulong, + pub tk_runstate: ::aya_ebpf::cty::c_ulong, + pub tk_waitqueue: *mut rpc_wait_queue, + pub u: rpc_task__bindgen_ty_1, + pub tk_msg: rpc_message, + pub tk_calldata: *mut ::aya_ebpf::cty::c_void, + pub tk_ops: *const rpc_call_ops, + pub tk_client: *mut rpc_clnt, + pub tk_xprt: *mut rpc_xprt, + pub tk_op_cred: *mut rpc_cred, + pub tk_rqstp: *mut rpc_rqst, + pub tk_workqueue: *mut workqueue_struct, + pub tk_start: ktime_t, + pub tk_owner: pid_t, + pub tk_rpc_status: ::aya_ebpf::cty::c_int, + pub tk_flags: ::aya_ebpf::cty::c_ushort, + pub tk_timeouts: ::aya_ebpf::cty::c_ushort, + pub tk_pid: ::aya_ebpf::cty::c_ushort, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: u8, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union rpc_task__bindgen_ty_1 { + pub tk_work: work_struct, + pub tk_wait: rpc_wait, +} +impl rpc_task { + #[inline] + pub fn tk_priority(&self) -> ::aya_ebpf::cty::c_uchar { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u8) } + } + #[inline] + pub fn set_tk_priority(&mut self, val: ::aya_ebpf::cty::c_uchar) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn tk_priority_raw(this: *const Self) -> ::aya_ebpf::cty::c_uchar { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 2u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_tk_priority_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uchar) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn tk_garb_retry(&self) -> ::aya_ebpf::cty::c_uchar { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 2u8) as u8) } + } + #[inline] + pub fn set_tk_garb_retry(&mut self, val: ::aya_ebpf::cty::c_uchar) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn tk_garb_retry_raw(this: *const Self) -> ::aya_ebpf::cty::c_uchar { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 2u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_tk_garb_retry_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uchar) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn tk_cred_retry(&self) -> ::aya_ebpf::cty::c_uchar { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 2u8) as u8) } + } + #[inline] + pub fn set_tk_cred_retry(&mut self, val: ::aya_ebpf::cty::c_uchar) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn tk_cred_retry_raw(this: *const Self) -> ::aya_ebpf::cty::c_uchar { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 2u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_tk_cred_retry_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uchar) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + tk_priority: ::aya_ebpf::cty::c_uchar, + tk_garb_retry: ::aya_ebpf::cty::c_uchar, + tk_cred_retry: ::aya_ebpf::cty::c_uchar, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 2u8, { + let tk_priority: u8 = unsafe { ::core::mem::transmute(tk_priority) }; + tk_priority as u64 + }); + __bindgen_bitfield_unit.set(2usize, 2u8, { + let tk_garb_retry: u8 = unsafe { ::core::mem::transmute(tk_garb_retry) }; + tk_garb_retry as u64 + }); + __bindgen_bitfield_unit.set(4usize, 2u8, { + let tk_cred_retry: u8 = unsafe { ::core::mem::transmute(tk_cred_retry) }; + tk_cred_retry as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_fsid { + pub major: u64, + pub minor: u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct nfs_fattr { + pub valid: __u64, + pub mode: umode_t, + pub nlink: __u32, + pub uid: kuid_t, + pub gid: kgid_t, + pub rdev: dev_t, + pub size: __u64, + pub du: nfs_fattr__bindgen_ty_1, + pub fsid: nfs_fsid, + pub fileid: __u64, + pub mounted_on_fileid: __u64, + pub atime: timespec64, + pub mtime: timespec64, + pub ctime: timespec64, + pub btime: timespec64, + pub change_attr: __u64, + pub pre_change_attr: __u64, + pub pre_size: __u64, + pub pre_mtime: timespec64, + pub pre_ctime: timespec64, + pub time_start: ::aya_ebpf::cty::c_ulong, + pub gencount: ::aya_ebpf::cty::c_ulong, + pub owner_name: *mut nfs4_string, + pub group_name: *mut nfs4_string, + pub mdsthreshold: *mut nfs4_threshold, + pub label: *mut nfs4_label, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union nfs_fattr__bindgen_ty_1 { + pub nfs2: nfs_fattr__bindgen_ty_1__bindgen_ty_1, + pub nfs3: nfs_fattr__bindgen_ty_1__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_fattr__bindgen_ty_1__bindgen_ty_1 { + pub blocksize: __u32, + pub blocks: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_fattr__bindgen_ty_1__bindgen_ty_2 { + pub used: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_write_verifier { + pub data: [::aya_ebpf::cty::c_char; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_writeverf { + pub verifier: nfs_write_verifier, + pub committed: nfs3_stable_how::Type, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_direct_req { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_commitargs { + pub seq_args: nfs4_sequence_args, + pub fh: *mut nfs_fh, + pub offset: __u64, + pub count: __u32, + pub bitmask: *const u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_commitres { + pub seq_res: nfs4_sequence_res, + pub op_status: __u32, + pub fattr: *mut nfs_fattr, + pub verf: *mut nfs_writeverf, + pub server: *const nfs_server, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pnfs_layout_segment { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct nfs_commit_data { + pub task: rpc_task, + pub inode: *mut inode, + pub cred: *const cred, + pub fattr: nfs_fattr, + pub verf: nfs_writeverf, + pub pages: list_head, + pub list: list_head, + pub dreq: *mut nfs_direct_req, + pub args: nfs_commitargs, + pub res: nfs_commitres, + pub context: *mut nfs_open_context, + pub lseg: *mut pnfs_layout_segment, + pub ds_clp: *mut nfs_client, + pub ds_commit_index: ::aya_ebpf::cty::c_int, + pub lwb: loff_t, + pub mds_ops: *const rpc_call_ops, + pub completion_ops: *const nfs_commit_completion_ops, + pub commit_done_cb: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut rpc_task, + arg2: *mut nfs_commit_data, + ) -> ::aya_ebpf::cty::c_int, + >, + pub flags: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_commit_info { + pub inode: *mut inode, + pub mds: *mut nfs_mds_commit_info, + pub ds: *mut pnfs_ds_commit_info, + pub dreq: *mut nfs_direct_req, + pub completion_ops: *const nfs_commit_completion_ops, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_entry { + pub ino: __u64, + pub cookie: __u64, + pub name: *const ::aya_ebpf::cty::c_char, + pub len: ::aya_ebpf::cty::c_uint, + pub eof: ::aya_ebpf::cty::c_int, + pub fh: *mut nfs_fh, + pub fattr: *mut nfs_fattr, + pub d_type: ::aya_ebpf::cty::c_uchar, + pub server: *mut nfs_server, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_fh { + pub size: ::aya_ebpf::cty::c_ushort, + pub data: [::aya_ebpf::cty::c_uchar; 128usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfsd_file { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_file_localio { + pub ro_file: *mut nfsd_file, + pub rw_file: *mut nfsd_file, + pub list: list_head, + pub nfs_uuid: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_fsinfo { + pub fattr: *mut nfs_fattr, + pub rtmax: __u32, + pub rtpref: __u32, + pub rtmult: __u32, + pub wtmax: __u32, + pub wtpref: __u32, + pub wtmult: __u32, + pub dtpref: __u32, + pub maxfilesize: __u64, + pub time_delta: timespec64, + pub lease_time: __u32, + pub nlayouttypes: __u32, + pub layouttype: [__u32; 8usize], + pub blksize: __u32, + pub clone_blksize: __u32, + pub change_attr_type: nfs4_change_attr_type::Type, + pub xattr_support: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_fsstat { + pub fattr: *mut nfs_fattr, + pub tbytes: __u64, + pub fbytes: __u64, + pub abytes: __u64, + pub tfiles: __u64, + pub ffiles: __u64, + pub afiles: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_lock_context { + pub count: refcount_t, + pub list: list_head, + pub open_context: *mut nfs_open_context, + pub lockowner: fl_owner_t, + pub io_count: atomic_t, + pub callback_head: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_mds_commit_info { + pub rpcs_out: atomic_t, + pub ncommit: atomic_long_t, + pub list: list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_open_context { + pub lock_context: nfs_lock_context, + pub flock_owner: fl_owner_t, + pub dentry: *mut dentry, + pub cred: *const cred, + pub ll_cred: *mut rpc_cred, + pub state: *mut nfs4_state, + pub mode: fmode_t, + pub error: ::aya_ebpf::cty::c_int, + pub flags: ::aya_ebpf::cty::c_ulong, + pub mdsthreshold: *mut nfs4_threshold, + pub list: list_head, + pub callback_head: callback_head, + pub nfl: nfs_file_localio, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_page_array { + pub pagevec: *mut *mut page, + pub npages: ::aya_ebpf::cty::c_uint, + pub page_array: [*mut page; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_pathconf { + pub fattr: *mut nfs_fattr, + pub max_link: __u32, + pub max_namelen: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct nfs_pgio_args { + pub seq_args: nfs4_sequence_args, + pub fh: *mut nfs_fh, + pub context: *mut nfs_open_context, + pub lock_context: *mut nfs_lock_context, + pub stateid: nfs4_stateid, + pub offset: __u64, + pub count: __u32, + pub pgbase: ::aya_ebpf::cty::c_uint, + pub pages: *mut *mut page, + pub __bindgen_anon_1: nfs_pgio_args__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union nfs_pgio_args__bindgen_ty_1 { + pub replen: ::aya_ebpf::cty::c_uint, + pub __bindgen_anon_1: nfs_pgio_args__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_pgio_args__bindgen_ty_1__bindgen_ty_1 { + pub bitmask: *const u32_, + pub bitmask_store: [u32_; 3usize], + pub stable: nfs3_stable_how::Type, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_pgio_completion_ops { + pub error_cleanup: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut list_head, arg2: ::aya_ebpf::cty::c_int), + >, + pub init_hdr: ::core::option::Option, + pub completion: ::core::option::Option, + pub reschedule_io: ::core::option::Option, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_rw_ops { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_io_completion { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct nfs_pgio_res { + pub seq_res: nfs4_sequence_res, + pub fattr: *mut nfs_fattr, + pub count: __u64, + pub op_status: __u32, + pub __bindgen_anon_1: nfs_pgio_res__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union nfs_pgio_res__bindgen_ty_1 { + pub __bindgen_anon_1: nfs_pgio_res__bindgen_ty_1__bindgen_ty_1, + pub __bindgen_anon_2: nfs_pgio_res__bindgen_ty_1__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_pgio_res__bindgen_ty_1__bindgen_ty_1 { + pub replen: ::aya_ebpf::cty::c_uint, + pub eof: ::aya_ebpf::cty::c_int, + pub scratch: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_pgio_res__bindgen_ty_1__bindgen_ty_2 { + pub verf: *mut nfs_writeverf, + pub server: *const nfs_server, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct nfs_pgio_header { + pub inode: *mut inode, + pub cred: *const cred, + pub pages: list_head, + pub req: *mut nfs_page, + pub verf: nfs_writeverf, + pub rw_mode: fmode_t, + pub lseg: *mut pnfs_layout_segment, + pub io_start: loff_t, + pub mds_ops: *const rpc_call_ops, + pub release: ::core::option::Option, + pub completion_ops: *const nfs_pgio_completion_ops, + pub rw_ops: *const nfs_rw_ops, + pub io_completion: *mut nfs_io_completion, + pub dreq: *mut nfs_direct_req, + pub netfs: *mut ::aya_ebpf::cty::c_void, + pub retrans: ::aya_ebpf::cty::c_ushort, + pub pnfs_error: ::aya_ebpf::cty::c_int, + pub error: ::aya_ebpf::cty::c_int, + pub good_bytes: ::aya_ebpf::cty::c_uint, + pub flags: ::aya_ebpf::cty::c_ulong, + pub task: rpc_task, + pub fattr: nfs_fattr, + pub args: nfs_pgio_args, + pub res: nfs_pgio_res, + pub timestamp: ::aya_ebpf::cty::c_ulong, + pub pgio_done_cb: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut rpc_task, + arg2: *mut nfs_pgio_header, + ) -> ::aya_ebpf::cty::c_int, + >, + pub mds_offset: __u64, + pub page_array: nfs_page_array, + pub ds_clp: *mut nfs_client, + pub ds_commit_idx: u32_, + pub pgio_mirror_idx: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_readdir_arg { + pub dentry: *mut dentry, + pub cred: *const cred, + pub verf: *mut __be32, + pub cookie: u64_, + pub pages: *mut *mut page, + pub page_len: ::aya_ebpf::cty::c_uint, + pub plus: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_readdir_res { + pub verf: *mut __be32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct nfs_removeargs { + pub seq_args: nfs4_sequence_args, + pub fh: *const nfs_fh, + pub name: qstr, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_removeres { + pub seq_res: nfs4_sequence_res, + pub server: *mut nfs_server, + pub dir_attr: *mut nfs_fattr, + pub cinfo: nfs4_change_info, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_renameargs { + pub seq_args: nfs4_sequence_args, + pub old_dir: *const nfs_fh, + pub new_dir: *const nfs_fh, + pub old_name: *const qstr, + pub new_name: *const qstr, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_renameres { + pub seq_res: nfs4_sequence_res, + pub server: *mut nfs_server, + pub old_cinfo: nfs4_change_info, + pub old_fattr: *mut nfs_fattr, + pub new_cinfo: nfs4_change_info, + pub new_fattr: *mut nfs_fattr, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct nfs_renamedata { + pub args: nfs_renameargs, + pub res: nfs_renameres, + pub task: rpc_task, + pub cred: *const cred, + pub old_dir: *mut inode, + pub old_dentry: *mut dentry, + pub old_fattr: nfs_fattr, + pub new_dir: *mut inode, + pub new_dentry: *mut dentry, + pub new_fattr: nfs_fattr, + pub complete: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rpc_task, arg2: *mut nfs_renamedata), + >, + pub timeout: ::aya_ebpf::cty::c_long, + pub cancelled: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nlmclnt_operations { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_client_initdata { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_rpc_ops { + pub version: u32_, + pub dentry_ops: *const dentry_operations, + pub dir_inode_ops: *const inode_operations, + pub file_inode_ops: *const inode_operations, + pub file_ops: *const file_operations, + pub nlmclnt_ops: *const nlmclnt_operations, + pub getroot: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut nfs_server, + arg2: *mut nfs_fh, + arg3: *mut nfs_fsinfo, + ) -> ::aya_ebpf::cty::c_int, + >, + pub submount: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut fs_context, + arg2: *mut nfs_server, + ) -> ::aya_ebpf::cty::c_int, + >, + pub try_get_tree: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut fs_context) -> ::aya_ebpf::cty::c_int, + >, + pub getattr: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut nfs_server, + arg2: *mut nfs_fh, + arg3: *mut nfs_fattr, + arg4: *mut inode, + ) -> ::aya_ebpf::cty::c_int, + >, + pub setattr: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dentry, + arg2: *mut nfs_fattr, + arg3: *mut iattr, + ) -> ::aya_ebpf::cty::c_int, + >, + pub lookup: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut inode, + arg2: *mut dentry, + arg3: *const qstr, + arg4: *mut nfs_fh, + arg5: *mut nfs_fattr, + ) -> ::aya_ebpf::cty::c_int, + >, + pub lookupp: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut inode, + arg2: *mut nfs_fh, + arg3: *mut nfs_fattr, + ) -> ::aya_ebpf::cty::c_int, + >, + pub access: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut inode, + arg2: *mut nfs_access_entry, + arg3: *const cred, + ) -> ::aya_ebpf::cty::c_int, + >, + pub readlink: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut inode, + arg2: *mut page, + arg3: ::aya_ebpf::cty::c_uint, + arg4: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub create: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut inode, + arg2: *mut dentry, + arg3: *mut iattr, + arg4: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub remove: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut inode, arg2: *mut dentry) -> ::aya_ebpf::cty::c_int, + >, + pub unlink_setup: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rpc_message, arg2: *mut dentry, arg3: *mut inode), + >, + pub unlink_rpc_prepare: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rpc_task, arg2: *mut nfs_unlinkdata), + >, + pub unlink_done: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rpc_task, arg2: *mut inode) -> ::aya_ebpf::cty::c_int, + >, + pub rename_setup: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut rpc_message, + arg2: *mut dentry, + arg3: *mut dentry, + arg4: *mut inode, + ), + >, + pub rename_rpc_prepare: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rpc_task, arg2: *mut nfs_renamedata), + >, + pub rename_done: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut rpc_task, + arg2: *mut inode, + arg3: *mut inode, + ) -> ::aya_ebpf::cty::c_int, + >, + pub link: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut inode, + arg2: *mut inode, + arg3: *const qstr, + ) -> ::aya_ebpf::cty::c_int, + >, + pub symlink: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut inode, + arg2: *mut dentry, + arg3: *mut folio, + arg4: ::aya_ebpf::cty::c_uint, + arg5: *mut iattr, + ) -> ::aya_ebpf::cty::c_int, + >, + pub mkdir: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut inode, arg2: *mut dentry, arg3: *mut iattr) -> *mut dentry, + >, + pub rmdir: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut inode, arg2: *const qstr) -> ::aya_ebpf::cty::c_int, + >, + pub readdir: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut nfs_readdir_arg, + arg2: *mut nfs_readdir_res, + ) -> ::aya_ebpf::cty::c_int, + >, + pub mknod: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut inode, + arg2: *mut dentry, + arg3: *mut iattr, + arg4: dev_t, + ) -> ::aya_ebpf::cty::c_int, + >, + pub statfs: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut nfs_server, + arg2: *mut nfs_fh, + arg3: *mut nfs_fsstat, + ) -> ::aya_ebpf::cty::c_int, + >, + pub fsinfo: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut nfs_server, + arg2: *mut nfs_fh, + arg3: *mut nfs_fsinfo, + ) -> ::aya_ebpf::cty::c_int, + >, + pub pathconf: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut nfs_server, + arg2: *mut nfs_fh, + arg3: *mut nfs_pathconf, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_capabilities: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut nfs_server, arg2: *mut nfs_fh) -> ::aya_ebpf::cty::c_int, + >, + pub decode_dirent: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut xdr_stream, + arg2: *mut nfs_entry, + arg3: bool_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub pgio_rpc_prepare: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut rpc_task, + arg2: *mut nfs_pgio_header, + ) -> ::aya_ebpf::cty::c_int, + >, + pub read_setup: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut nfs_pgio_header, arg2: *mut rpc_message), + >, + pub read_done: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut rpc_task, + arg2: *mut nfs_pgio_header, + ) -> ::aya_ebpf::cty::c_int, + >, + pub write_setup: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut nfs_pgio_header, + arg2: *mut rpc_message, + arg3: *mut *mut rpc_clnt, + ), + >, + pub write_done: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut rpc_task, + arg2: *mut nfs_pgio_header, + ) -> ::aya_ebpf::cty::c_int, + >, + pub commit_setup: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut nfs_commit_data, + arg2: *mut rpc_message, + arg3: *mut *mut rpc_clnt, + ), + >, + pub commit_rpc_prepare: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rpc_task, arg2: *mut nfs_commit_data), + >, + pub commit_done: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut rpc_task, + arg2: *mut nfs_commit_data, + ) -> ::aya_ebpf::cty::c_int, + >, + pub lock: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut file_lock, + ) -> ::aya_ebpf::cty::c_int, + >, + pub lock_check_bounds: ::core::option::Option< + unsafe extern "C" fn(arg1: *const file_lock) -> ::aya_ebpf::cty::c_int, + >, + pub clear_acl_cache: ::core::option::Option, + pub close_context: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut nfs_open_context, arg2: ::aya_ebpf::cty::c_int), + >, + pub open_context: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut inode, + arg2: *mut nfs_open_context, + arg3: ::aya_ebpf::cty::c_int, + arg4: *mut iattr, + arg5: *mut ::aya_ebpf::cty::c_int, + ) -> *mut inode, + >, + pub have_delegation: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut inode, + arg2: fmode_t, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub return_delegation: ::core::option::Option, + pub alloc_client: ::core::option::Option< + unsafe extern "C" fn(arg1: *const nfs_client_initdata) -> *mut nfs_client, + >, + pub init_client: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut nfs_client, + arg2: *const nfs_client_initdata, + ) -> *mut nfs_client, + >, + pub free_client: ::core::option::Option, + pub create_server: + ::core::option::Option *mut nfs_server>, + pub clone_server: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut nfs_server, + arg2: *mut nfs_fh, + arg3: *mut nfs_fattr, + arg4: rpc_authflavor_t, + ) -> *mut nfs_server, + >, + pub discover_trunking: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut nfs_server, arg2: *mut nfs_fh) -> ::aya_ebpf::cty::c_int, + >, + pub enable_swap: ::core::option::Option, + pub disable_swap: ::core::option::Option, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_seqid { + pub sequence: *mut nfs_seqid_counter, + pub list: list_head, + pub task: *mut rpc_task, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nlm_host { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs_iostats { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscache_volume { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pnfs_layoutdriver_type { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct nfs_server { + pub nfs_client: *mut nfs_client, + pub client_link: list_head, + pub master_link: list_head, + pub client: *mut rpc_clnt, + pub client_acl: *mut rpc_clnt, + pub nlm_host: *mut nlm_host, + pub io_stats: *mut nfs_iostats, + pub write_congestion_wait: wait_queue_head_t, + pub writeback: atomic_long_t, + pub write_congested: ::aya_ebpf::cty::c_uint, + pub flags: ::aya_ebpf::cty::c_uint, + pub automount_inherit: ::aya_ebpf::cty::c_uint, + pub caps: ::aya_ebpf::cty::c_uint, + pub fattr_valid: __u64, + pub rsize: ::aya_ebpf::cty::c_uint, + pub rpages: ::aya_ebpf::cty::c_uint, + pub wsize: ::aya_ebpf::cty::c_uint, + pub wtmult: ::aya_ebpf::cty::c_uint, + pub dtsize: ::aya_ebpf::cty::c_uint, + pub port: ::aya_ebpf::cty::c_ushort, + pub bsize: ::aya_ebpf::cty::c_uint, + pub gxasize: ::aya_ebpf::cty::c_uint, + pub sxasize: ::aya_ebpf::cty::c_uint, + pub lxasize: ::aya_ebpf::cty::c_uint, + pub acregmin: ::aya_ebpf::cty::c_uint, + pub acregmax: ::aya_ebpf::cty::c_uint, + pub acdirmin: ::aya_ebpf::cty::c_uint, + pub acdirmax: ::aya_ebpf::cty::c_uint, + pub namelen: ::aya_ebpf::cty::c_uint, + pub options: ::aya_ebpf::cty::c_uint, + pub clone_blksize: ::aya_ebpf::cty::c_uint, + pub change_attr_type: nfs4_change_attr_type::Type, + pub fsid: nfs_fsid, + pub s_sysfs_id: ::aya_ebpf::cty::c_int, + pub maxfilesize: __u64, + pub mount_time: ::aya_ebpf::cty::c_ulong, + pub super_: *mut super_block, + pub s_dev: dev_t, + pub auth_info: nfs_auth_info, + pub fscache: *mut fscache_volume, + pub fscache_uniq: *mut ::aya_ebpf::cty::c_char, + pub fh_expire_type: u32_, + pub pnfs_blksize: u32_, + pub attr_bitmask: [u32_; 3usize], + pub attr_bitmask_nl: [u32_; 3usize], + pub exclcreat_bitmask: [u32_; 3usize], + pub cache_consistency_bitmask: [u32_; 3usize], + pub acl_bitmask: u32_, + pub pnfs_curr_ld: *mut pnfs_layoutdriver_type, + pub roc_rpcwaitq: rpc_wait_queue, + pub state_owners: rb_root, + pub owner_ctr: atomic64_t, + pub state_owners_lru: list_head, + pub layouts: list_head, + pub delegations: list_head, + pub delegations_lock: spinlock_t, + pub delegations_return: list_head, + pub delegations_lru: list_head, + pub delegations_delayed: list_head, + pub nr_active_delegations: atomic_long_t, + pub delegation_hash_mask: ::aya_ebpf::cty::c_uint, + pub delegation_hash_table: *mut hlist_head, + pub ss_copies: list_head, + pub ss_src_copies: list_head, + pub delegation_flags: ::aya_ebpf::cty::c_ulong, + pub delegation_gen: ::aya_ebpf::cty::c_ulong, + pub mig_gen: ::aya_ebpf::cty::c_ulong, + pub mig_status: ::aya_ebpf::cty::c_ulong, + pub destroy: ::core::option::Option, + pub active: atomic_t, + pub mountd_address: __kernel_sockaddr_storage, + pub mountd_addrlen: usize, + pub mountd_version: u32_, + pub mountd_port: ::aya_ebpf::cty::c_ushort, + pub mountd_protocol: ::aya_ebpf::cty::c_ushort, + pub uoc_rpcwaitq: rpc_wait_queue, + pub read_hdrsize: ::aya_ebpf::cty::c_uint, + pub cred: *const cred, + pub has_sec_mnt_opts: bool_, + pub kobj: kobject, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct nfs_unlinkdata { + pub args: nfs_removeargs, + pub res: nfs_removeres, + pub dentry: *mut dentry, + pub wq: wait_queue_head_t, + pub cred: *const cred, + pub dir_attr: nfs_fattr, + pub timeout: ::aya_ebpf::cty::c_long, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct nh_grp_entry { + pub nh: *mut nexthop, + pub stats: *mut nh_grp_entry_stats, + pub weight: u16_, + pub __bindgen_anon_1: nh_grp_entry__bindgen_ty_1, + pub nh_list: list_head, + pub nh_parent: *mut nexthop, + pub packets_hw: u64_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union nh_grp_entry__bindgen_ty_1 { + pub hthr: nh_grp_entry__bindgen_ty_1__bindgen_ty_1, + pub res: nh_grp_entry__bindgen_ty_1__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nh_grp_entry__bindgen_ty_1__bindgen_ty_1 { + pub upper_bound: atomic_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nh_grp_entry__bindgen_ty_1__bindgen_ty_2 { + pub uw_nh_entry: list_head, + pub count_buckets: u16_, + pub wants_buckets: u16_, +} +#[repr(C)] +pub struct nh_group { + pub spare: *mut nh_group, + pub num_nh: u16_, + pub is_multipath: bool_, + pub hash_threshold: bool_, + pub resilient: bool_, + pub fdb_nh: bool_, + pub has_v4: bool_, + pub hw_stats: bool_, + pub res_table: *mut nh_res_table, + pub nh_entries: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nh_grp_entry_stats { + pub packets: u64_stats_t, + pub syncp: u64_stats_sync, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct nh_info { + pub dev_hash: hlist_node, + pub nh_parent: *mut nexthop, + pub family: u8_, + pub reject_nh: bool_, + pub fdb_nh: bool_, + pub __bindgen_anon_1: nh_info__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union nh_info__bindgen_ty_1 { + pub fib_nhc: fib_nh_common, + pub fib_nh: fib_nh, + pub fib6_nh: fib6_nh, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nh_res_bucket { + pub nh_entry: *mut nh_grp_entry, + pub used_time: atomic_long_t, + pub migrated_time: ::aya_ebpf::cty::c_ulong, + pub occupied: bool_, + pub nh_flags: u8_, +} +#[repr(C)] +#[derive(Debug)] +pub struct nh_res_table { + pub net: *mut net, + pub nhg_id: u32_, + pub upkeep_dw: delayed_work, + pub uw_nh_entries: list_head, + pub unbalanced_since: ::aya_ebpf::cty::c_ulong, + pub idle_timer: u32_, + pub unbalanced_timer: u32_, + pub num_nh_buckets: u16_, + pub nh_buckets: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nl80211_vendor_cmd_info { + pub vendor_id: __u32, + pub subcmd: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nl80211_wowlan_tcp_data_token_feature { + pub min_len: __u32, + pub max_len: __u32, + pub bufsize: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct nla_policy { + pub type_: u8_, + pub validation_type: u8_, + pub len: u16_, + pub __bindgen_anon_1: nla_policy__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union nla_policy__bindgen_ty_1 { + pub strict_start_type: u16_, + pub bitfield32_valid: u32_, + pub mask: u32_, + pub reject_message: *const ::aya_ebpf::cty::c_char, + pub nested_policy: *const nla_policy, + pub range: *const netlink_range_validation, + pub range_signed: *const netlink_range_validation_signed, + pub __bindgen_anon_1: nla_policy__bindgen_ty_1__bindgen_ty_1, + pub validate: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const nlattr, + arg2: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nla_policy__bindgen_ty_1__bindgen_ty_1 { + pub min: s16, + pub max: s16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nlattr { + pub nla_len: __u16, + pub nla_type: __u16, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct node_barn { + pub lock: spinlock_t, + pub sheaves_full: list_head, + pub sheaves_empty: list_head, + pub nr_full: ::aya_ebpf::cty::c_uint, + pub nr_empty: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct notification { + pub requests: atomic_t, + pub flags: u32_, + pub next_id: u64_, + pub notifications: list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsproxy { + pub count: refcount_t, + pub uts_ns: *mut uts_namespace, + pub ipc_ns: *mut ipc_namespace, + pub mnt_ns: *mut mnt_namespace, + pub pid_ns_for_children: *mut pid_namespace, + pub net_ns: *mut net, + pub time_ns: *mut time_namespace, + pub time_ns_for_children: *mut time_namespace, + pub cgroup_ns: *mut cgroup_namespace, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsset { + pub flags: ::aya_ebpf::cty::c_uint, + pub nsproxy: *mut nsproxy, + pub fs: *mut fs_struct, + pub cred: *const cred, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct numa_drop_counters { + pub drops0: atomic_t, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 56usize]>, + pub __bindgen_padding_0: u32, + pub drops1: atomic_t, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 56usize]>, + pub __bindgen_padding_1: u32, +} +#[repr(C)] +pub struct numa_group { + pub refcount: refcount_t, + pub lock: spinlock_t, + pub nr_tasks: ::aya_ebpf::cty::c_int, + pub gid: pid_t, + pub active_nodes: ::aya_ebpf::cty::c_int, + pub rcu: callback_head, + pub total_faults: ::aya_ebpf::cty::c_ulong, + pub max_faults_cpu: ::aya_ebpf::cty::c_ulong, + pub faults: __IncompleteArrayField<::aya_ebpf::cty::c_ulong>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct obj_cgroup { + pub refcnt: percpu_ref, + pub memcg: *mut mem_cgroup, + pub nr_charged_bytes: atomic_t, + pub __bindgen_anon_1: obj_cgroup__bindgen_ty_1, + pub is_root: bool_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union obj_cgroup__bindgen_ty_1 { + pub list: list_head, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct of_device_id { + pub name: [::aya_ebpf::cty::c_char; 32usize], + pub type_: [::aya_ebpf::cty::c_char; 32usize], + pub compatible: [::aya_ebpf::cty::c_char; 128usize], + pub data: *const ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct of_phandle_args { + pub np: *mut device_node, + pub args_count: ::aya_ebpf::cty::c_int, + pub args: [u32; 16usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct offset_ctx { + pub mt: maple_tree, + pub next_offset: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct old_timespec32 { + pub tv_sec: old_time32_t, + pub tv_nsec: s32, +} +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct orc_entry { + pub sp_offset: s16, + pub bp_offset: s16, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, +} +impl orc_entry { + #[inline] + pub fn sp_reg(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u32) } + } + #[inline] + pub fn set_sp_reg(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 4u8, val as u64) + } + } + #[inline] + pub unsafe fn sp_reg_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 4u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_sp_reg_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 4u8, + val as u64, + ) + } + } + #[inline] + pub fn bp_reg(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u32) } + } + #[inline] + pub fn set_bp_reg(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 4u8, val as u64) + } + } + #[inline] + pub unsafe fn bp_reg_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 4u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_bp_reg_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 4u8, + val as u64, + ) + } + } + #[inline] + pub fn type_(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 3u8) as u32) } + } + #[inline] + pub fn set_type(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(8usize, 3u8, val as u64) + } + } + #[inline] + pub unsafe fn type__raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 8usize, + 3u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_type_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 8usize, + 3u8, + val as u64, + ) + } + } + #[inline] + pub fn signal(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) } + } + #[inline] + pub fn set_signal(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(11usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn signal_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 11usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_signal_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 11usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + sp_reg: ::aya_ebpf::cty::c_uint, + bp_reg: ::aya_ebpf::cty::c_uint, + type_: ::aya_ebpf::cty::c_uint, + signal: ::aya_ebpf::cty::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 2usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 4u8, { + let sp_reg: u32 = unsafe { ::core::mem::transmute(sp_reg) }; + sp_reg as u64 + }); + __bindgen_bitfield_unit.set(4usize, 4u8, { + let bp_reg: u32 = unsafe { ::core::mem::transmute(bp_reg) }; + bp_reg as u64 + }); + __bindgen_bitfield_unit.set(8usize, 3u8, { + let type_: u32 = unsafe { ::core::mem::transmute(type_) }; + type_ as u64 + }); + __bindgen_bitfield_unit.set(11usize, 1u8, { + let signal: u32 = unsafe { ::core::mem::transmute(signal) }; + signal as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct p2pdma_provider { + pub owner: *mut device, + pub bus_offset: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pacct_struct { + pub ac_flag: ::aya_ebpf::cty::c_int, + pub ac_exitcode: ::aya_ebpf::cty::c_long, + pub ac_mem: ::aya_ebpf::cty::c_ulong, + pub ac_utime: u64_, + pub ac_stime: u64_, + pub ac_minflt: ::aya_ebpf::cty::c_ulong, + pub ac_majflt: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct packet_command { + pub cmd: [::aya_ebpf::cty::c_uchar; 12usize], + pub buffer: *mut ::aya_ebpf::cty::c_uchar, + pub buflen: ::aya_ebpf::cty::c_uint, + pub stat: ::aya_ebpf::cty::c_int, + pub sshdr: *mut scsi_sense_hdr, + pub data_direction: ::aya_ebpf::cty::c_uchar, + pub quiet: ::aya_ebpf::cty::c_int, + pub timeout: ::aya_ebpf::cty::c_int, + pub reserved: [*mut ::aya_ebpf::cty::c_void; 1usize], +} +pub type pgtable_t = *mut page; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct page_pool_params_fast { + pub order: ::aya_ebpf::cty::c_uint, + pub pool_size: ::aya_ebpf::cty::c_uint, + pub nid: ::aya_ebpf::cty::c_int, + pub dev: *mut device, + pub napi: *mut napi_struct, + pub dma_dir: dma_data_direction::Type, + pub max_len: ::aya_ebpf::cty::c_uint, + pub offset: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct page_pool_alloc_stats { + pub fast: u64_, + pub slow: u64_, + pub slow_high_order: u64_, + pub empty: u64_, + pub refill: u64_, + pub waive: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pp_alloc_cache { + pub count: u32_, + pub cache: [netmem_ref; 128usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ptr_ring { + pub producer: ::aya_ebpf::cty::c_int, + pub producer_lock: spinlock_t, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 56usize]>, + pub consumer_head: ::aya_ebpf::cty::c_int, + pub consumer_tail: ::aya_ebpf::cty::c_int, + pub consumer_lock: spinlock_t, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 48usize]>, + pub __bindgen_padding_0: u32, + pub size: ::aya_ebpf::cty::c_int, + pub batch: ::aya_ebpf::cty::c_int, + pub queue: *mut *mut ::aya_ebpf::cty::c_void, + pub _bitfield_align_3: [u8; 0], + pub _bitfield_3: __BindgenBitfieldUnit<[u8; 48usize]>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct page_pool_params_slow { + pub netdev: *mut net_device, + pub queue_idx: ::aya_ebpf::cty::c_uint, + pub flags: ::aya_ebpf::cty::c_uint, + pub init_callback: ::core::option::Option< + unsafe extern "C" fn(arg1: netmem_ref, arg2: *mut ::aya_ebpf::cty::c_void), + >, + pub init_arg: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +pub struct page_pool { + pub p: page_pool_params_fast, + pub cpuid: ::aya_ebpf::cty::c_int, + pub pages_state_hold_cnt: u32_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, + pub __cacheline_group_begin__frag: __IncompleteArrayField<__u8>, + pub frag_users: ::aya_ebpf::cty::c_long, + pub frag_page: netmem_ref, + pub frag_offset: ::aya_ebpf::cty::c_uint, + pub __bindgen_padding_0: [u8; 4usize], + pub __cacheline_group_end__frag: __IncompleteArrayField<__u8>, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 8usize]>, + pub __cacheline_group_pad__frag: page_pool__bindgen_ty_1, + pub release_dw: delayed_work, + pub disconnect: + ::core::option::Option, + pub defer_start: ::aya_ebpf::cty::c_ulong, + pub defer_warn: ::aya_ebpf::cty::c_ulong, + pub alloc_stats: page_pool_alloc_stats, + pub xdp_mem_id: u32_, + pub _bitfield_align_3: [u8; 0], + pub _bitfield_3: __BindgenBitfieldUnit<[u8; 56usize]>, + pub alloc: pp_alloc_cache, + pub _bitfield_align_4: [u8; 0], + pub _bitfield_4: __BindgenBitfieldUnit<[u8; 56usize]>, + pub ring: ptr_ring, + pub mp_priv: *mut ::aya_ebpf::cty::c_void, + pub mp_ops: *const memory_provider_ops, + pub dma_mapped: xarray, + pub recycle_stats: *mut page_pool_recycle_stats, + pub pages_state_release_cnt: atomic_t, + pub user_cnt: refcount_t, + pub destroy_cnt: u64_, + pub slow: page_pool_params_slow, + pub user: page_pool__bindgen_ty_2, + pub _bitfield_align_5: [u8; 0], + pub _bitfield_5: __BindgenBitfieldUnit<[u8; 8usize]>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct page_pool__bindgen_ty_1 {} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct page_pool__bindgen_ty_2 { + pub list: hlist_node, + pub detach_time: ktime_t, + pub id: u32_, +} +impl page_pool { + #[inline] + pub fn has_init_callback(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_has_init_callback(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn has_init_callback_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_has_init_callback_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn dma_map(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_dma_map(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dma_map_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_dma_map_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn dma_sync(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) } + } + #[inline] + pub fn set_dma_sync(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dma_sync_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_dma_sync_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn dma_sync_for_cpu(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) } + } + #[inline] + pub fn set_dma_sync_for_cpu(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dma_sync_for_cpu_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_dma_sync_for_cpu_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn system(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) } + } + #[inline] + pub fn set_system(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn system_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_system_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + has_init_callback: bool_, + dma_map: bool_, + dma_sync: bool_, + dma_sync_for_cpu: bool_, + system: bool_, + ) -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let has_init_callback: u8 = unsafe { ::core::mem::transmute(has_init_callback) }; + has_init_callback as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let dma_map: u8 = unsafe { ::core::mem::transmute(dma_map) }; + dma_map as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let dma_sync: u8 = unsafe { ::core::mem::transmute(dma_sync) }; + dma_sync as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let dma_sync_for_cpu: u8 = unsafe { ::core::mem::transmute(dma_sync_for_cpu) }; + dma_sync_for_cpu as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let system: u8 = unsafe { ::core::mem::transmute(system) }; + system as u64 + }); + __bindgen_bitfield_unit + } + #[inline] + pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit + } + #[inline] + pub fn new_bitfield_5() -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct page_pool_recycle_stats { + pub cached: u64_, + pub cache_full: u64_, + pub ring: u64_, + pub ring_full: u64_, + pub released_refcnt: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct partition_meta_info { + pub uuid: [::aya_ebpf::cty::c_char; 37usize], + pub volname: [u8_; 64usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pcpu_dstats { + pub rx_packets: u64_stats_t, + pub rx_bytes: u64_stats_t, + pub tx_packets: u64_stats_t, + pub tx_bytes: u64_stats_t, + pub rx_drops: u64_stats_t, + pub tx_drops: u64_stats_t, + pub syncp: u64_stats_sync, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>, +} +impl pcpu_dstats { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pcpu_lstats { + pub packets: u64_stats_t, + pub bytes: u64_stats_t, + pub syncp: u64_stats_sync, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pcpu_rx_sc_stats { + pub stats: macsec_rx_sc_stats, + pub syncp: u64_stats_sync, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pcpu_sw_netstats { + pub rx_packets: u64_stats_t, + pub rx_bytes: u64_stats_t, + pub tx_packets: u64_stats_t, + pub tx_bytes: u64_stats_t, + pub syncp: u64_stats_sync, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pcpu_tx_sc_stats { + pub stats: macsec_tx_sc_stats, + pub syncp: u64_stats_sync, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct per_cpu_nodestat { + pub stat_threshold: s8, + pub vm_node_stat_diff: [s8; 67usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct per_cpu_pages { + pub lock: spinlock_t, + pub count: ::aya_ebpf::cty::c_int, + pub high: ::aya_ebpf::cty::c_int, + pub high_min: ::aya_ebpf::cty::c_int, + pub high_max: ::aya_ebpf::cty::c_int, + pub batch: ::aya_ebpf::cty::c_int, + pub flags: u8_, + pub alloc_factor: u8_, + pub expire: u8_, + pub free_count: ::aya_ebpf::cty::c_short, + pub lists: [list_head; 14usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct per_cpu_zonestat { + pub vm_stat_diff: [s8; 12usize], + pub stat_threshold: s8, + pub vm_numa_event: [::aya_ebpf::cty::c_ulong; 6usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct per_frame_masks { + pub may_read: spis_t, + pub must_write: spis_t, + pub live_before: spis_t, +} +pub type percpu_ref_func_t = ::core::option::Option; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct percpu_ref_data { + pub count: atomic_long_t, + pub release: percpu_ref_func_t, + pub confirm_switch: percpu_ref_func_t, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub rcu: callback_head, + pub ref_: *mut percpu_ref, +} +impl percpu_ref_data { + #[inline] + pub fn force_atomic(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_force_atomic(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn force_atomic_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_force_atomic_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn allow_reinit(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_allow_reinit(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn allow_reinit_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_allow_reinit_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + force_atomic: bool_, + allow_reinit: bool_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let force_atomic: u8 = unsafe { ::core::mem::transmute(force_atomic) }; + force_atomic as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let allow_reinit: u8 = unsafe { ::core::mem::transmute(allow_reinit) }; + allow_reinit as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rcu_sync { + pub gp_state: ::aya_ebpf::cty::c_int, + pub gp_count: ::aya_ebpf::cty::c_int, + pub gp_wait: wait_queue_head_t, + pub cb_head: callback_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct percpu_rw_semaphore { + pub rss: rcu_sync, + pub read_count: *mut ::aya_ebpf::cty::c_uint, + pub writer: rcuwait, + pub waiters: wait_queue_head_t, + pub block: atomic_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct perf_addr_filter_range { + pub start: ::aya_ebpf::cty::c_ulong, + pub size: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct perf_addr_filters_head { + pub list: list_head, + pub lock: raw_spinlock_t, + pub nr_file_filters: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +pub struct perf_buffer { + pub refcount: refcount_t, + pub callback_head: callback_head, + pub nr_pages: ::aya_ebpf::cty::c_int, + pub overwrite: ::aya_ebpf::cty::c_int, + pub paused: ::aya_ebpf::cty::c_int, + pub poll: atomic_t, + pub head: local_t, + pub nest: ::aya_ebpf::cty::c_uint, + pub events: local_t, + pub wakeup: local_t, + pub lost: local_t, + pub watermark: ::aya_ebpf::cty::c_long, + pub aux_watermark: ::aya_ebpf::cty::c_long, + pub event_lock: spinlock_t, + pub event_list: list_head, + pub mmap_count: refcount_t, + pub mmap_locked: ::aya_ebpf::cty::c_ulong, + pub mmap_user: *mut user_struct, + pub aux_mutex: mutex, + pub aux_head: ::aya_ebpf::cty::c_long, + pub aux_nest: ::aya_ebpf::cty::c_uint, + pub aux_wakeup: ::aya_ebpf::cty::c_long, + pub aux_pgoff: ::aya_ebpf::cty::c_ulong, + pub aux_nr_pages: ::aya_ebpf::cty::c_int, + pub aux_overwrite: ::aya_ebpf::cty::c_int, + pub aux_mmap_count: refcount_t, + pub aux_mmap_locked: ::aya_ebpf::cty::c_ulong, + pub free_aux: ::core::option::Option, + pub aux_refcount: refcount_t, + pub aux_in_sampling: ::aya_ebpf::cty::c_int, + pub aux_in_pause_resume: ::aya_ebpf::cty::c_int, + pub aux_pages: *mut *mut ::aya_ebpf::cty::c_void, + pub aux_priv: *mut ::aya_ebpf::cty::c_void, + pub user_page: *mut perf_event_mmap_page, + pub data_pages: __IncompleteArrayField<*mut ::aya_ebpf::cty::c_void>, +} +#[repr(C)] +#[derive(Debug)] +pub struct perf_callchain_entry { + pub nr: u64_, + pub ip: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct perf_cgroup { + pub css: cgroup_subsys_state, + pub info: *mut perf_cgroup_info, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct perf_time_ctx { + pub time: u64_, + pub stamp: u64_, + pub offset: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct perf_cgroup_info { + pub time: perf_time_ctx, + pub timeguest: perf_time_ctx, + pub active: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct perf_event_groups { + pub tree: rb_root, + pub index: u64_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct perf_event_context { + pub lock: raw_spinlock_t, + pub mutex: mutex, + pub pmu_ctx_list: list_head, + pub pinned_groups: perf_event_groups, + pub flexible_groups: perf_event_groups, + pub event_list: list_head, + pub nr_events: ::aya_ebpf::cty::c_int, + pub nr_user: ::aya_ebpf::cty::c_int, + pub is_active: ::aya_ebpf::cty::c_int, + pub nr_stat: ::aya_ebpf::cty::c_int, + pub nr_freq: ::aya_ebpf::cty::c_int, + pub rotate_disable: ::aya_ebpf::cty::c_int, + pub refcount: refcount_t, + pub task: *mut task_struct, + pub time: perf_time_ctx, + pub timeguest: perf_time_ctx, + pub parent_ctx: *mut perf_event_context, + pub parent_gen: u64_, + pub generation: u64_, + pub pin_count: ::aya_ebpf::cty::c_int, + pub nr_cgroups: ::aya_ebpf::cty::c_int, + pub callback_head: callback_head, + pub nr_no_switch_fast: local_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct perf_event_pmu_context { + pub pmu: *mut pmu, + pub ctx: *mut perf_event_context, + pub pmu_ctx_entry: list_head, + pub pinned_active: list_head, + pub flexible_active: list_head, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub nr_events: ::aya_ebpf::cty::c_uint, + pub nr_cgroups: ::aya_ebpf::cty::c_uint, + pub nr_freq: ::aya_ebpf::cty::c_uint, + pub refcount: atomic_t, + pub callback_head: callback_head, + pub rotate_necessary: ::aya_ebpf::cty::c_int, +} +impl perf_event_pmu_context { + #[inline] + pub fn embedded(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_embedded(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn embedded_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_embedded_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + embedded: ::aya_ebpf::cty::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let embedded: u32 = unsafe { ::core::mem::transmute(embedded) }; + embedded as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct perf_cpu_pmu_context { + pub epc: perf_event_pmu_context, + pub task_epc: *mut perf_event_pmu_context, + pub sched_cb_entry: list_head, + pub sched_cb_usage: ::aya_ebpf::cty::c_int, + pub active_oncpu: ::aya_ebpf::cty::c_int, + pub exclusive: ::aya_ebpf::cty::c_int, + pub pmu_disable_count: ::aya_ebpf::cty::c_int, + pub hrtimer_lock: raw_spinlock_t, + pub hrtimer: hrtimer, + pub hrtimer_interval: ktime_t, + pub hrtimer_active: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct perf_ctx_data { + pub callback_head: callback_head, + pub refcount: refcount_t, + pub global: ::aya_ebpf::cty::c_int, + pub ctx_cache: *mut kmem_cache, + pub data: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct perf_domain { + pub em_pd: *mut em_perf_domain, + pub next: *mut perf_domain, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct perf_event_attr { + pub type_: __u32, + pub size: __u32, + pub config: __u64, + pub __bindgen_anon_1: perf_event_attr__bindgen_ty_1, + pub sample_type: __u64, + pub read_format: __u64, + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, + pub __bindgen_anon_2: perf_event_attr__bindgen_ty_2, + pub bp_type: __u32, + pub __bindgen_anon_3: perf_event_attr__bindgen_ty_3, + pub __bindgen_anon_4: perf_event_attr__bindgen_ty_4, + pub branch_sample_type: __u64, + pub sample_regs_user: __u64, + pub sample_stack_user: __u32, + pub clockid: __s32, + pub sample_regs_intr: __u64, + pub aux_watermark: __u32, + pub sample_max_stack: __u16, + pub __reserved_2: __u16, + pub aux_sample_size: __u32, + pub __bindgen_anon_5: perf_event_attr__bindgen_ty_5, + pub sig_data: __u64, + pub config3: __u64, + pub config4: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union perf_event_attr__bindgen_ty_1 { + pub sample_period: __u64, + pub sample_freq: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union perf_event_attr__bindgen_ty_2 { + pub wakeup_events: __u32, + pub wakeup_watermark: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union perf_event_attr__bindgen_ty_3 { + pub bp_addr: __u64, + pub kprobe_func: __u64, + pub uprobe_path: __u64, + pub config1: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union perf_event_attr__bindgen_ty_4 { + pub bp_len: __u64, + pub kprobe_addr: __u64, + pub probe_offset: __u64, + pub config2: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union perf_event_attr__bindgen_ty_5 { + pub aux_action: __u32, + pub __bindgen_anon_1: perf_event_attr__bindgen_ty_5__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct perf_event_attr__bindgen_ty_5__bindgen_ty_1 { + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +impl perf_event_attr__bindgen_ty_5__bindgen_ty_1 { + #[inline] + pub fn aux_start_paused(&self) -> __u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_aux_start_paused(&mut self, val: __u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn aux_start_paused_raw(this: *const Self) -> __u32 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_aux_start_paused_raw(this: *mut Self, val: __u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn aux_pause(&self) -> __u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_aux_pause(&mut self, val: __u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn aux_pause_raw(this: *const Self) -> __u32 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_aux_pause_raw(this: *mut Self, val: __u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn aux_resume(&self) -> __u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_aux_resume(&mut self, val: __u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn aux_resume_raw(this: *const Self) -> __u32 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_aux_resume_raw(this: *mut Self, val: __u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn __reserved_3(&self) -> __u32 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) } + } + #[inline] + pub fn set___reserved_3(&mut self, val: __u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 29u8, val as u64) + } + } + #[inline] + pub unsafe fn __reserved_3_raw(this: *const Self) -> __u32 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 29u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set___reserved_3_raw(this: *mut Self, val: __u32) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 29u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + aux_start_paused: __u32, + aux_pause: __u32, + aux_resume: __u32, + __reserved_3: __u32, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let aux_start_paused: u32 = unsafe { ::core::mem::transmute(aux_start_paused) }; + aux_start_paused as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let aux_pause: u32 = unsafe { ::core::mem::transmute(aux_pause) }; + aux_pause as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let aux_resume: u32 = unsafe { ::core::mem::transmute(aux_resume) }; + aux_resume as u64 + }); + __bindgen_bitfield_unit.set(3usize, 29u8, { + let __reserved_3: u32 = unsafe { ::core::mem::transmute(__reserved_3) }; + __reserved_3 as u64 + }); + __bindgen_bitfield_unit + } +} +impl perf_event_attr { + #[inline] + pub fn disabled(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u64) } + } + #[inline] + pub fn set_disabled(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn disabled_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_disabled_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn inherit(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u64) } + } + #[inline] + pub fn set_inherit(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn inherit_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_inherit_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn pinned(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u64) } + } + #[inline] + pub fn set_pinned(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn pinned_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_pinned_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn exclusive(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u64) } + } + #[inline] + pub fn set_exclusive(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn exclusive_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_exclusive_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn exclude_user(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u64) } + } + #[inline] + pub fn set_exclude_user(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn exclude_user_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_exclude_user_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn exclude_kernel(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u64) } + } + #[inline] + pub fn set_exclude_kernel(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn exclude_kernel_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 5usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_exclude_kernel_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 5usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn exclude_hv(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u64) } + } + #[inline] + pub fn set_exclude_hv(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn exclude_hv_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 6usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_exclude_hv_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 6usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn exclude_idle(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u64) } + } + #[inline] + pub fn set_exclude_idle(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn exclude_idle_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 7usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_exclude_idle_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 7usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn mmap(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u64) } + } + #[inline] + pub fn set_mmap(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(8usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn mmap_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 8usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_mmap_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 8usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn comm(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u64) } + } + #[inline] + pub fn set_comm(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(9usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn comm_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 9usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_comm_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 9usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn freq(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u64) } + } + #[inline] + pub fn set_freq(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(10usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn freq_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 10usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_freq_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 10usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn inherit_stat(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u64) } + } + #[inline] + pub fn set_inherit_stat(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(11usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn inherit_stat_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 11usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_inherit_stat_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 11usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn enable_on_exec(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u64) } + } + #[inline] + pub fn set_enable_on_exec(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(12usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn enable_on_exec_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 12usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_enable_on_exec_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 12usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn task(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u64) } + } + #[inline] + pub fn set_task(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(13usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn task_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 13usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_task_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 13usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn watermark(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u64) } + } + #[inline] + pub fn set_watermark(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(14usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn watermark_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 14usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_watermark_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 14usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn precise_ip(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 2u8) as u64) } + } + #[inline] + pub fn set_precise_ip(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(15usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn precise_ip_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 15usize, + 2u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_precise_ip_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 15usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn mmap_data(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u64) } + } + #[inline] + pub fn set_mmap_data(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(17usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn mmap_data_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 17usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_mmap_data_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 17usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sample_id_all(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u64) } + } + #[inline] + pub fn set_sample_id_all(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(18usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sample_id_all_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 18usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_sample_id_all_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 18usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn exclude_host(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(19usize, 1u8) as u64) } + } + #[inline] + pub fn set_exclude_host(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(19usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn exclude_host_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 19usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_exclude_host_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 19usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn exclude_guest(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 1u8) as u64) } + } + #[inline] + pub fn set_exclude_guest(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(20usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn exclude_guest_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 20usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_exclude_guest_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 20usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn exclude_callchain_kernel(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u64) } + } + #[inline] + pub fn set_exclude_callchain_kernel(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(21usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn exclude_callchain_kernel_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 21usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_exclude_callchain_kernel_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 21usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn exclude_callchain_user(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(22usize, 1u8) as u64) } + } + #[inline] + pub fn set_exclude_callchain_user(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(22usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn exclude_callchain_user_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 22usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_exclude_callchain_user_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 22usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn mmap2(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(23usize, 1u8) as u64) } + } + #[inline] + pub fn set_mmap2(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(23usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn mmap2_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 23usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_mmap2_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 23usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn comm_exec(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 1u8) as u64) } + } + #[inline] + pub fn set_comm_exec(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(24usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn comm_exec_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 24usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_comm_exec_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 24usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn use_clockid(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(25usize, 1u8) as u64) } + } + #[inline] + pub fn set_use_clockid(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(25usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn use_clockid_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 25usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_use_clockid_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 25usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn context_switch(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(26usize, 1u8) as u64) } + } + #[inline] + pub fn set_context_switch(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(26usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn context_switch_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 26usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_context_switch_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 26usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn write_backward(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(27usize, 1u8) as u64) } + } + #[inline] + pub fn set_write_backward(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(27usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn write_backward_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 27usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_write_backward_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 27usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn namespaces(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(28usize, 1u8) as u64) } + } + #[inline] + pub fn set_namespaces(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(28usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn namespaces_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 28usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_namespaces_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 28usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn ksymbol(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(29usize, 1u8) as u64) } + } + #[inline] + pub fn set_ksymbol(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(29usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn ksymbol_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 29usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_ksymbol_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 29usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn bpf_event(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(30usize, 1u8) as u64) } + } + #[inline] + pub fn set_bpf_event(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(30usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn bpf_event_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 30usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_bpf_event_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 30usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn aux_output(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(31usize, 1u8) as u64) } + } + #[inline] + pub fn set_aux_output(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(31usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn aux_output_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 31usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_aux_output_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 31usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn cgroup(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(32usize, 1u8) as u64) } + } + #[inline] + pub fn set_cgroup(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(32usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn cgroup_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 32usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_cgroup_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 32usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn text_poke(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(33usize, 1u8) as u64) } + } + #[inline] + pub fn set_text_poke(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(33usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn text_poke_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 33usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_text_poke_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 33usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn build_id(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(34usize, 1u8) as u64) } + } + #[inline] + pub fn set_build_id(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(34usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn build_id_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 34usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_build_id_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 34usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn inherit_thread(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(35usize, 1u8) as u64) } + } + #[inline] + pub fn set_inherit_thread(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(35usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn inherit_thread_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 35usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_inherit_thread_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 35usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn remove_on_exec(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(36usize, 1u8) as u64) } + } + #[inline] + pub fn set_remove_on_exec(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(36usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn remove_on_exec_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 36usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_remove_on_exec_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 36usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sigtrap(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(37usize, 1u8) as u64) } + } + #[inline] + pub fn set_sigtrap(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(37usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sigtrap_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 37usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_sigtrap_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 37usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn defer_callchain(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(38usize, 1u8) as u64) } + } + #[inline] + pub fn set_defer_callchain(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(38usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn defer_callchain_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 38usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_defer_callchain_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 38usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn defer_output(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(39usize, 1u8) as u64) } + } + #[inline] + pub fn set_defer_output(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(39usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn defer_output_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 39usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_defer_output_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 39usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn __reserved_1(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(40usize, 24u8) as u64) } + } + #[inline] + pub fn set___reserved_1(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(40usize, 24u8, val as u64) + } + } + #[inline] + pub unsafe fn __reserved_1_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 40usize, + 24u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set___reserved_1_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 40usize, + 24u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + disabled: __u64, + inherit: __u64, + pinned: __u64, + exclusive: __u64, + exclude_user: __u64, + exclude_kernel: __u64, + exclude_hv: __u64, + exclude_idle: __u64, + mmap: __u64, + comm: __u64, + freq: __u64, + inherit_stat: __u64, + enable_on_exec: __u64, + task: __u64, + watermark: __u64, + precise_ip: __u64, + mmap_data: __u64, + sample_id_all: __u64, + exclude_host: __u64, + exclude_guest: __u64, + exclude_callchain_kernel: __u64, + exclude_callchain_user: __u64, + mmap2: __u64, + comm_exec: __u64, + use_clockid: __u64, + context_switch: __u64, + write_backward: __u64, + namespaces: __u64, + ksymbol: __u64, + bpf_event: __u64, + aux_output: __u64, + cgroup: __u64, + text_poke: __u64, + build_id: __u64, + inherit_thread: __u64, + remove_on_exec: __u64, + sigtrap: __u64, + defer_callchain: __u64, + defer_output: __u64, + __reserved_1: __u64, + ) -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let disabled: u64 = unsafe { ::core::mem::transmute(disabled) }; + disabled as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let inherit: u64 = unsafe { ::core::mem::transmute(inherit) }; + inherit as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let pinned: u64 = unsafe { ::core::mem::transmute(pinned) }; + pinned as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let exclusive: u64 = unsafe { ::core::mem::transmute(exclusive) }; + exclusive as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let exclude_user: u64 = unsafe { ::core::mem::transmute(exclude_user) }; + exclude_user as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let exclude_kernel: u64 = unsafe { ::core::mem::transmute(exclude_kernel) }; + exclude_kernel as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let exclude_hv: u64 = unsafe { ::core::mem::transmute(exclude_hv) }; + exclude_hv as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let exclude_idle: u64 = unsafe { ::core::mem::transmute(exclude_idle) }; + exclude_idle as u64 + }); + __bindgen_bitfield_unit.set(8usize, 1u8, { + let mmap: u64 = unsafe { ::core::mem::transmute(mmap) }; + mmap as u64 + }); + __bindgen_bitfield_unit.set(9usize, 1u8, { + let comm: u64 = unsafe { ::core::mem::transmute(comm) }; + comm as u64 + }); + __bindgen_bitfield_unit.set(10usize, 1u8, { + let freq: u64 = unsafe { ::core::mem::transmute(freq) }; + freq as u64 + }); + __bindgen_bitfield_unit.set(11usize, 1u8, { + let inherit_stat: u64 = unsafe { ::core::mem::transmute(inherit_stat) }; + inherit_stat as u64 + }); + __bindgen_bitfield_unit.set(12usize, 1u8, { + let enable_on_exec: u64 = unsafe { ::core::mem::transmute(enable_on_exec) }; + enable_on_exec as u64 + }); + __bindgen_bitfield_unit.set(13usize, 1u8, { + let task: u64 = unsafe { ::core::mem::transmute(task) }; + task as u64 + }); + __bindgen_bitfield_unit.set(14usize, 1u8, { + let watermark: u64 = unsafe { ::core::mem::transmute(watermark) }; + watermark as u64 + }); + __bindgen_bitfield_unit.set(15usize, 2u8, { + let precise_ip: u64 = unsafe { ::core::mem::transmute(precise_ip) }; + precise_ip as u64 + }); + __bindgen_bitfield_unit.set(17usize, 1u8, { + let mmap_data: u64 = unsafe { ::core::mem::transmute(mmap_data) }; + mmap_data as u64 + }); + __bindgen_bitfield_unit.set(18usize, 1u8, { + let sample_id_all: u64 = unsafe { ::core::mem::transmute(sample_id_all) }; + sample_id_all as u64 + }); + __bindgen_bitfield_unit.set(19usize, 1u8, { + let exclude_host: u64 = unsafe { ::core::mem::transmute(exclude_host) }; + exclude_host as u64 + }); + __bindgen_bitfield_unit.set(20usize, 1u8, { + let exclude_guest: u64 = unsafe { ::core::mem::transmute(exclude_guest) }; + exclude_guest as u64 + }); + __bindgen_bitfield_unit.set(21usize, 1u8, { + let exclude_callchain_kernel: u64 = + unsafe { ::core::mem::transmute(exclude_callchain_kernel) }; + exclude_callchain_kernel as u64 + }); + __bindgen_bitfield_unit.set(22usize, 1u8, { + let exclude_callchain_user: u64 = + unsafe { ::core::mem::transmute(exclude_callchain_user) }; + exclude_callchain_user as u64 + }); + __bindgen_bitfield_unit.set(23usize, 1u8, { + let mmap2: u64 = unsafe { ::core::mem::transmute(mmap2) }; + mmap2 as u64 + }); + __bindgen_bitfield_unit.set(24usize, 1u8, { + let comm_exec: u64 = unsafe { ::core::mem::transmute(comm_exec) }; + comm_exec as u64 + }); + __bindgen_bitfield_unit.set(25usize, 1u8, { + let use_clockid: u64 = unsafe { ::core::mem::transmute(use_clockid) }; + use_clockid as u64 + }); + __bindgen_bitfield_unit.set(26usize, 1u8, { + let context_switch: u64 = unsafe { ::core::mem::transmute(context_switch) }; + context_switch as u64 + }); + __bindgen_bitfield_unit.set(27usize, 1u8, { + let write_backward: u64 = unsafe { ::core::mem::transmute(write_backward) }; + write_backward as u64 + }); + __bindgen_bitfield_unit.set(28usize, 1u8, { + let namespaces: u64 = unsafe { ::core::mem::transmute(namespaces) }; + namespaces as u64 + }); + __bindgen_bitfield_unit.set(29usize, 1u8, { + let ksymbol: u64 = unsafe { ::core::mem::transmute(ksymbol) }; + ksymbol as u64 + }); + __bindgen_bitfield_unit.set(30usize, 1u8, { + let bpf_event: u64 = unsafe { ::core::mem::transmute(bpf_event) }; + bpf_event as u64 + }); + __bindgen_bitfield_unit.set(31usize, 1u8, { + let aux_output: u64 = unsafe { ::core::mem::transmute(aux_output) }; + aux_output as u64 + }); + __bindgen_bitfield_unit.set(32usize, 1u8, { + let cgroup: u64 = unsafe { ::core::mem::transmute(cgroup) }; + cgroup as u64 + }); + __bindgen_bitfield_unit.set(33usize, 1u8, { + let text_poke: u64 = unsafe { ::core::mem::transmute(text_poke) }; + text_poke as u64 + }); + __bindgen_bitfield_unit.set(34usize, 1u8, { + let build_id: u64 = unsafe { ::core::mem::transmute(build_id) }; + build_id as u64 + }); + __bindgen_bitfield_unit.set(35usize, 1u8, { + let inherit_thread: u64 = unsafe { ::core::mem::transmute(inherit_thread) }; + inherit_thread as u64 + }); + __bindgen_bitfield_unit.set(36usize, 1u8, { + let remove_on_exec: u64 = unsafe { ::core::mem::transmute(remove_on_exec) }; + remove_on_exec as u64 + }); + __bindgen_bitfield_unit.set(37usize, 1u8, { + let sigtrap: u64 = unsafe { ::core::mem::transmute(sigtrap) }; + sigtrap as u64 + }); + __bindgen_bitfield_unit.set(38usize, 1u8, { + let defer_callchain: u64 = unsafe { ::core::mem::transmute(defer_callchain) }; + defer_callchain as u64 + }); + __bindgen_bitfield_unit.set(39usize, 1u8, { + let defer_output: u64 = unsafe { ::core::mem::transmute(defer_output) }; + defer_output as u64 + }); + __bindgen_bitfield_unit.set(40usize, 24u8, { + let __reserved_1: u64 = unsafe { ::core::mem::transmute(__reserved_1) }; + __reserved_1 as u64 + }); + __bindgen_bitfield_unit + } +} +pub type perf_overflow_handler_t = ::core::option::Option< + unsafe extern "C" fn(arg1: *mut perf_event, arg2: *mut perf_sample_data, arg3: *mut pt_regs), +>; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct perf_event { + pub event_entry: list_head, + pub sibling_list: list_head, + pub active_list: list_head, + pub group_node: rb_node, + pub group_index: u64_, + pub migrate_entry: list_head, + pub hlist_entry: hlist_node, + pub active_entry: list_head, + pub nr_siblings: ::aya_ebpf::cty::c_int, + pub event_caps: ::aya_ebpf::cty::c_int, + pub group_caps: ::aya_ebpf::cty::c_int, + pub group_generation: ::aya_ebpf::cty::c_uint, + pub group_leader: *mut perf_event, + pub pmu: *mut pmu, + pub pmu_private: *mut ::aya_ebpf::cty::c_void, + pub state: perf_event_state::Type, + pub attach_state: ::aya_ebpf::cty::c_uint, + pub count: local64_t, + pub child_count: atomic64_t, + pub total_time_enabled: u64_, + pub total_time_running: u64_, + pub tstamp: u64_, + pub attr: perf_event_attr, + pub header_size: u16_, + pub id_header_size: u16_, + pub read_size: u16_, + pub hw: hw_perf_event, + pub ctx: *mut perf_event_context, + pub pmu_ctx: *mut perf_event_pmu_context, + pub refcount: atomic_long_t, + pub child_total_time_enabled: atomic64_t, + pub child_total_time_running: atomic64_t, + pub child_mutex: mutex, + pub child_list: list_head, + pub parent: *mut perf_event, + pub oncpu: ::aya_ebpf::cty::c_int, + pub cpu: ::aya_ebpf::cty::c_int, + pub owner_entry: list_head, + pub owner: *mut task_struct, + pub mmap_mutex: mutex, + pub mmap_count: refcount_t, + pub rb: *mut perf_buffer, + pub rb_entry: list_head, + pub rcu_batches: ::aya_ebpf::cty::c_ulong, + pub rcu_pending: ::aya_ebpf::cty::c_int, + pub waitq: wait_queue_head_t, + pub fasync: *mut fasync_struct, + pub pending_wakeup: ::aya_ebpf::cty::c_uint, + pub pending_kill: ::aya_ebpf::cty::c_uint, + pub pending_disable: ::aya_ebpf::cty::c_uint, + pub pending_addr: ::aya_ebpf::cty::c_ulong, + pub pending_irq: irq_work, + pub pending_disable_irq: irq_work, + pub pending_task: callback_head, + pub pending_work: ::aya_ebpf::cty::c_uint, + pub event_limit: atomic_t, + pub addr_filters: perf_addr_filters_head, + pub addr_filter_ranges: *mut perf_addr_filter_range, + pub addr_filters_gen: ::aya_ebpf::cty::c_ulong, + pub aux_event: *mut perf_event, + pub destroy: ::core::option::Option, + pub callback_head: callback_head, + pub ns: *mut pid_namespace, + pub id: u64_, + pub lost_samples: atomic64_t, + pub clock: ::core::option::Option u64_>, + pub overflow_handler: perf_overflow_handler_t, + pub overflow_handler_context: *mut ::aya_ebpf::cty::c_void, + pub prog: *mut bpf_prog, + pub bpf_cookie: u64_, + pub tp_event: *mut trace_event_call, + pub filter: *mut event_filter, + pub ftrace_ops: ftrace_ops, + pub cgrp: *mut perf_cgroup, + pub security: *mut ::aya_ebpf::cty::c_void, + pub sb_list: list_head, + pub pmu_list: list_head, + pub orig_type: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct perf_event_mmap_page { + pub version: __u32, + pub compat_version: __u32, + pub lock: __u32, + pub index: __u32, + pub offset: __s64, + pub time_enabled: __u64, + pub time_running: __u64, + pub __bindgen_anon_1: perf_event_mmap_page__bindgen_ty_1, + pub pmc_width: __u16, + pub time_shift: __u16, + pub time_mult: __u32, + pub time_offset: __u64, + pub time_zero: __u64, + pub size: __u32, + pub __reserved_1: __u32, + pub time_cycles: __u64, + pub time_mask: __u64, + pub __reserved: [__u8; 928usize], + pub data_head: __u64, + pub data_tail: __u64, + pub data_offset: __u64, + pub data_size: __u64, + pub aux_head: __u64, + pub aux_tail: __u64, + pub aux_offset: __u64, + pub aux_size: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union perf_event_mmap_page__bindgen_ty_1 { + pub capabilities: __u64, + pub __bindgen_anon_1: perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1 { + pub _bitfield_align_1: [u64; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, +} +impl perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1 { + #[inline] + pub fn cap_bit0(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u64) } + } + #[inline] + pub fn set_cap_bit0(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn cap_bit0_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_cap_bit0_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn cap_bit0_is_deprecated(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u64) } + } + #[inline] + pub fn set_cap_bit0_is_deprecated(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn cap_bit0_is_deprecated_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_cap_bit0_is_deprecated_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn cap_user_rdpmc(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u64) } + } + #[inline] + pub fn set_cap_user_rdpmc(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn cap_user_rdpmc_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_cap_user_rdpmc_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn cap_user_time(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u64) } + } + #[inline] + pub fn set_cap_user_time(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn cap_user_time_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_cap_user_time_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn cap_user_time_zero(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u64) } + } + #[inline] + pub fn set_cap_user_time_zero(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn cap_user_time_zero_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_cap_user_time_zero_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn cap_user_time_short(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u64) } + } + #[inline] + pub fn set_cap_user_time_short(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn cap_user_time_short_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 5usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_cap_user_time_short_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 5usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn cap_____res(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 58u8) as u64) } + } + #[inline] + pub fn set_cap_____res(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(6usize, 58u8, val as u64) + } + } + #[inline] + pub unsafe fn cap_____res_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 6usize, + 58u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_cap_____res_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 6usize, + 58u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + cap_bit0: __u64, + cap_bit0_is_deprecated: __u64, + cap_user_rdpmc: __u64, + cap_user_time: __u64, + cap_user_time_zero: __u64, + cap_user_time_short: __u64, + cap_____res: __u64, + ) -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let cap_bit0: u64 = unsafe { ::core::mem::transmute(cap_bit0) }; + cap_bit0 as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let cap_bit0_is_deprecated: u64 = + unsafe { ::core::mem::transmute(cap_bit0_is_deprecated) }; + cap_bit0_is_deprecated as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let cap_user_rdpmc: u64 = unsafe { ::core::mem::transmute(cap_user_rdpmc) }; + cap_user_rdpmc as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let cap_user_time: u64 = unsafe { ::core::mem::transmute(cap_user_time) }; + cap_user_time as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let cap_user_time_zero: u64 = unsafe { ::core::mem::transmute(cap_user_time_zero) }; + cap_user_time_zero as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let cap_user_time_short: u64 = unsafe { ::core::mem::transmute(cap_user_time_short) }; + cap_user_time_short as u64 + }); + __bindgen_bitfield_unit.set(6usize, 58u8, { + let cap_____res: u64 = unsafe { ::core::mem::transmute(cap_____res) }; + cap_____res as u64 + }); + __bindgen_bitfield_unit + } +} +pub type perf_copy_f = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ::aya_ebpf::cty::c_void, + arg2: *const ::aya_ebpf::cty::c_void, + arg3: ::aya_ebpf::cty::c_ulong, + arg4: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_ulong, +>; +#[repr(C, packed)] +#[derive(Copy, Clone)] +pub struct perf_raw_frag { + pub __bindgen_anon_1: perf_raw_frag__bindgen_ty_1, + pub copy: perf_copy_f, + pub data: *mut ::aya_ebpf::cty::c_void, + pub size: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union perf_raw_frag__bindgen_ty_1 { + pub next: *mut perf_raw_frag, + pub pad: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct perf_raw_record { + pub frag: perf_raw_frag, + pub size: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pf_desc { + pub pseudoflavor: u32_, + pub qop: u32_, + pub service: u32_, + pub name: *mut ::aya_ebpf::cty::c_char, + pub auth_domain_name: *mut ::aya_ebpf::cty::c_char, + pub domain: *mut auth_domain, + pub datatouch: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pfnmap_track_ctx { + pub kref: kref, + pub pfn: ::aya_ebpf::cty::c_ulong, + pub size: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +pub struct zone { + pub _watermark: [::aya_ebpf::cty::c_ulong; 4usize], + pub watermark_boost: ::aya_ebpf::cty::c_ulong, + pub nr_reserved_highatomic: ::aya_ebpf::cty::c_ulong, + pub nr_free_highatomic: ::aya_ebpf::cty::c_ulong, + pub lowmem_reserve: [::aya_ebpf::cty::c_long; 5usize], + pub node: ::aya_ebpf::cty::c_int, + pub zone_pgdat: *mut pglist_data, + pub per_cpu_pageset: *mut per_cpu_pages, + pub per_cpu_zonestats: *mut per_cpu_zonestat, + pub pageset_high_min: ::aya_ebpf::cty::c_int, + pub pageset_high_max: ::aya_ebpf::cty::c_int, + pub pageset_batch: ::aya_ebpf::cty::c_int, + pub zone_start_pfn: ::aya_ebpf::cty::c_ulong, + pub managed_pages: atomic_long_t, + pub spanned_pages: ::aya_ebpf::cty::c_ulong, + pub present_pages: ::aya_ebpf::cty::c_ulong, + pub present_early_pages: ::aya_ebpf::cty::c_ulong, + pub cma_pages: ::aya_ebpf::cty::c_ulong, + pub name: *const ::aya_ebpf::cty::c_char, + pub nr_isolate_pageblock: ::aya_ebpf::cty::c_ulong, + pub span_seqlock: seqlock_t, + pub initialized: ::aya_ebpf::cty::c_int, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 32usize]>, + pub __bindgen_padding_0: [u8; 4usize], + pub _pad1_: cacheline_padding, + pub free_area: [free_area; 11usize], + pub unaccepted_pages: list_head, + pub unaccepted_cleanup: work_struct, + pub flags: ::aya_ebpf::cty::c_ulong, + pub lock: spinlock_t, + pub trylock_free_pages: llist_head, + pub _pad2_: cacheline_padding, + pub percpu_drift_mark: ::aya_ebpf::cty::c_ulong, + pub compact_cached_free_pfn: ::aya_ebpf::cty::c_ulong, + pub compact_cached_migrate_pfn: [::aya_ebpf::cty::c_ulong; 2usize], + pub compact_init_migrate_pfn: ::aya_ebpf::cty::c_ulong, + pub compact_init_free_pfn: ::aya_ebpf::cty::c_ulong, + pub compact_considered: ::aya_ebpf::cty::c_uint, + pub compact_defer_shift: ::aya_ebpf::cty::c_uint, + pub compact_order_failed: ::aya_ebpf::cty::c_int, + pub compact_blockskip_flush: bool_, + pub contiguous: bool_, + pub __bindgen_padding_1: [u8; 2usize], + pub _pad3_: cacheline_padding, + pub vm_stat: [atomic_long_t; 12usize], + pub vm_numa_event: [atomic_long_t; 6usize], + pub vmemmap_tails: [*mut page; 16usize], + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 48usize]>, +} +impl zone { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 32usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 32usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct zoneref { + pub zone: *mut zone, + pub zone_idx: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct zonelist { + pub _zonerefs: [zoneref; 5121usize], +} +#[repr(C)] +pub struct pglist_data { + pub node_zones: [zone; 5usize], + pub node_zonelists: [zonelist; 2usize], + pub nr_zones: ::aya_ebpf::cty::c_int, + pub node_size_lock: spinlock_t, + pub node_start_pfn: ::aya_ebpf::cty::c_ulong, + pub node_present_pages: ::aya_ebpf::cty::c_ulong, + pub node_spanned_pages: ::aya_ebpf::cty::c_ulong, + pub node_id: ::aya_ebpf::cty::c_int, + pub kswapd_wait: wait_queue_head_t, + pub pfmemalloc_wait: wait_queue_head_t, + pub reclaim_wait: [wait_queue_head_t; 4usize], + pub nr_writeback_throttled: atomic_t, + pub nr_reclaim_start: ::aya_ebpf::cty::c_ulong, + pub kswapd_lock: mutex, + pub kswapd: *mut task_struct, + pub kswapd_order: ::aya_ebpf::cty::c_int, + pub kswapd_highest_zoneidx: zone_type::Type, + pub kswapd_failures: atomic_t, + pub kcompactd_max_order: ::aya_ebpf::cty::c_int, + pub kcompactd_highest_zoneidx: zone_type::Type, + pub kcompactd_wait: wait_queue_head_t, + pub kcompactd: *mut task_struct, + pub proactive_compact_trigger: bool_, + pub totalreserve_pages: ::aya_ebpf::cty::c_ulong, + pub min_unmapped_pages: ::aya_ebpf::cty::c_ulong, + pub min_slab_pages: ::aya_ebpf::cty::c_ulong, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 32usize]>, + pub _pad1_: cacheline_padding, + pub deferred_split_queue: deferred_split, + pub nbp_rl_start: ::aya_ebpf::cty::c_uint, + pub nbp_rl_nr_cand: ::aya_ebpf::cty::c_ulong, + pub nbp_threshold: ::aya_ebpf::cty::c_uint, + pub nbp_th_start: ::aya_ebpf::cty::c_uint, + pub nbp_th_nr_cand: ::aya_ebpf::cty::c_ulong, + pub __lruvec: lruvec, + pub flags: ::aya_ebpf::cty::c_ulong, + pub mm_walk: lru_gen_mm_walk, + pub memcg_lru: lru_gen_memcg, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 8usize]>, + pub _pad2_: cacheline_padding, + pub per_cpu_nodestats: *mut per_cpu_nodestat, + pub vm_stat: [atomic_long_t; 67usize], + pub memtier: *mut memory_tier, + pub mf_stats: memory_failure_stats, + pub _bitfield_align_3: [u8; 0], + pub _bitfield_3: __BindgenBitfieldUnit<[u8; 48usize]>, +} +impl pglist_data { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 32usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 32usize]> = Default::default(); + __bindgen_bitfield_unit + } + #[inline] + pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct phy_c45_device_ids { + pub devices_in_package: u32_, + pub mmds_present: u32_, + pub device_ids: [u32_; 32usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct phy_led_trigger { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct phy_oatc14_sqi_capability { + pub updated: bool_, + pub sqi_max: ::aya_ebpf::cty::c_int, + pub sqiplus_bits: u8_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct phy_device { + pub mdio: mdio_device, + pub drv: *const phy_driver, + pub devlink: *mut device_link, + pub phyindex: u32_, + pub phy_id: u32_, + pub c45_ids: phy_c45_device_ids, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>, + pub rate_matching: ::aya_ebpf::cty::c_int, + pub state: phy_state::Type, + pub dev_flags: u32_, + pub interface: phy_interface_t::Type, + pub possible_interfaces: [::aya_ebpf::cty::c_ulong; 1usize], + pub speed: ::aya_ebpf::cty::c_int, + pub duplex: ::aya_ebpf::cty::c_int, + pub port: ::aya_ebpf::cty::c_int, + pub master_slave_get: u8_, + pub master_slave_set: u8_, + pub master_slave_state: u8_, + pub supported: [::aya_ebpf::cty::c_ulong; 2usize], + pub advertising: [::aya_ebpf::cty::c_ulong; 2usize], + pub lp_advertising: [::aya_ebpf::cty::c_ulong; 2usize], + pub adv_old: [::aya_ebpf::cty::c_ulong; 2usize], + pub supported_eee: [::aya_ebpf::cty::c_ulong; 2usize], + pub advertising_eee: [::aya_ebpf::cty::c_ulong; 2usize], + pub eee_disabled_modes: [::aya_ebpf::cty::c_ulong; 2usize], + pub enable_tx_lpi: bool_, + pub eee_active: bool_, + pub autonomous_eee_disabled: bool_, + pub eee_cfg: eee_config, + pub host_interfaces: [::aya_ebpf::cty::c_ulong; 1usize], + pub phy_led_triggers: *mut phy_led_trigger, + pub phy_num_led_triggers: ::aya_ebpf::cty::c_uint, + pub last_triggered: *mut phy_led_trigger, + pub led_link_trigger: *mut phy_led_trigger, + pub leds: list_head, + pub irq: ::aya_ebpf::cty::c_int, + pub priv_: *mut ::aya_ebpf::cty::c_void, + pub shared: *mut phy_package_shared, + pub skb: *mut sk_buff, + pub ehdr: *mut ::aya_ebpf::cty::c_void, + pub nest: *mut nlattr, + pub state_queue: delayed_work, + pub lock: mutex, + pub sfp_bus_attached: bool_, + pub sfp_bus: *mut sfp_bus, + pub phylink: *mut phylink, + pub attached_dev: *mut net_device, + pub mii_ts: *mut mii_timestamper, + pub psec: *mut pse_control, + pub ports: list_head, + pub n_ports: ::aya_ebpf::cty::c_int, + pub max_n_ports: ::aya_ebpf::cty::c_int, + pub mdix: u8_, + pub mdix_ctrl: u8_, + pub pma_extable: ::aya_ebpf::cty::c_int, + pub link_down_events: ::aya_ebpf::cty::c_uint, + pub phy_link_change: + ::core::option::Option, + pub adjust_link: ::core::option::Option, + pub macsec_ops: *const macsec_ops, + pub oatc14_sqi_capability: phy_oatc14_sqi_capability, +} +impl phy_device { + #[inline] + pub fn is_c45(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_is_c45(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn is_c45_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_is_c45_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn is_internal(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_is_internal(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn is_internal_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_is_internal_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn is_pseudo_fixed_link(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_is_pseudo_fixed_link(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn is_pseudo_fixed_link_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_is_pseudo_fixed_link_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn is_gigabit_capable(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } + } + #[inline] + pub fn set_is_gigabit_capable(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn is_gigabit_capable_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_is_gigabit_capable_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn has_fixups(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_fixups(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn has_fixups_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_has_fixups_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn suspended(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } + } + #[inline] + pub fn set_suspended(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn suspended_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 5usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_suspended_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 5usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn suspended_by_mdio_bus(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } + } + #[inline] + pub fn set_suspended_by_mdio_bus(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn suspended_by_mdio_bus_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 6usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_suspended_by_mdio_bus_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 6usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sysfs_links(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } + } + #[inline] + pub fn set_sysfs_links(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sysfs_links_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 7usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_sysfs_links_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 7usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn loopback_enabled(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) } + } + #[inline] + pub fn set_loopback_enabled(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(8usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn loopback_enabled_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 8usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_loopback_enabled_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 8usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn downshifted_rate(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) } + } + #[inline] + pub fn set_downshifted_rate(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(9usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn downshifted_rate_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 9usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_downshifted_rate_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 9usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn is_on_sfp_module(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) } + } + #[inline] + pub fn set_is_on_sfp_module(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(10usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn is_on_sfp_module_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 10usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_is_on_sfp_module_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 10usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn mac_managed_pm(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) } + } + #[inline] + pub fn set_mac_managed_pm(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(11usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn mac_managed_pm_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 11usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_mac_managed_pm_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 11usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn wol_enabled(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u32) } + } + #[inline] + pub fn set_wol_enabled(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(12usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn wol_enabled_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 12usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_wol_enabled_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 12usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn is_genphy_driven(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u32) } + } + #[inline] + pub fn set_is_genphy_driven(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(13usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn is_genphy_driven_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 13usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_is_genphy_driven_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 13usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn autoneg(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u32) } + } + #[inline] + pub fn set_autoneg(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(14usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn autoneg_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 14usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_autoneg_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 14usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn link(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u32) } + } + #[inline] + pub fn set_link(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(15usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn link_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 15usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_link_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 15usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn autoneg_complete(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u32) } + } + #[inline] + pub fn set_autoneg_complete(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(16usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn autoneg_complete_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 16usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_autoneg_complete_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 16usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn pause(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u8) } + } + #[inline] + pub fn set_pause(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(17usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn pause_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 17usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_pause_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 17usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn asym_pause(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u8) } + } + #[inline] + pub fn set_asym_pause(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(18usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn asym_pause_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 18usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_asym_pause_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 18usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn interrupts(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(19usize, 1u8) as u32) } + } + #[inline] + pub fn set_interrupts(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(19usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn interrupts_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 19usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_interrupts_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 19usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn irq_suspended(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 1u8) as u32) } + } + #[inline] + pub fn set_irq_suspended(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(20usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn irq_suspended_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 20usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_irq_suspended_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 20usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn irq_rerun(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u32) } + } + #[inline] + pub fn set_irq_rerun(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(21usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn irq_rerun_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 21usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_irq_rerun_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 21usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn default_timestamp(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(22usize, 1u8) as u32) } + } + #[inline] + pub fn set_default_timestamp(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(22usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn default_timestamp_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 22usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_default_timestamp_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 22usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + is_c45: ::aya_ebpf::cty::c_uint, + is_internal: ::aya_ebpf::cty::c_uint, + is_pseudo_fixed_link: ::aya_ebpf::cty::c_uint, + is_gigabit_capable: ::aya_ebpf::cty::c_uint, + has_fixups: ::aya_ebpf::cty::c_uint, + suspended: ::aya_ebpf::cty::c_uint, + suspended_by_mdio_bus: ::aya_ebpf::cty::c_uint, + sysfs_links: ::aya_ebpf::cty::c_uint, + loopback_enabled: ::aya_ebpf::cty::c_uint, + downshifted_rate: ::aya_ebpf::cty::c_uint, + is_on_sfp_module: ::aya_ebpf::cty::c_uint, + mac_managed_pm: ::aya_ebpf::cty::c_uint, + wol_enabled: ::aya_ebpf::cty::c_uint, + is_genphy_driven: ::aya_ebpf::cty::c_uint, + autoneg: ::aya_ebpf::cty::c_uint, + link: ::aya_ebpf::cty::c_uint, + autoneg_complete: ::aya_ebpf::cty::c_uint, + pause: bool_, + asym_pause: bool_, + interrupts: ::aya_ebpf::cty::c_uint, + irq_suspended: ::aya_ebpf::cty::c_uint, + irq_rerun: ::aya_ebpf::cty::c_uint, + default_timestamp: ::aya_ebpf::cty::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 3usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let is_c45: u32 = unsafe { ::core::mem::transmute(is_c45) }; + is_c45 as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let is_internal: u32 = unsafe { ::core::mem::transmute(is_internal) }; + is_internal as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let is_pseudo_fixed_link: u32 = unsafe { ::core::mem::transmute(is_pseudo_fixed_link) }; + is_pseudo_fixed_link as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let is_gigabit_capable: u32 = unsafe { ::core::mem::transmute(is_gigabit_capable) }; + is_gigabit_capable as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let has_fixups: u32 = unsafe { ::core::mem::transmute(has_fixups) }; + has_fixups as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let suspended: u32 = unsafe { ::core::mem::transmute(suspended) }; + suspended as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let suspended_by_mdio_bus: u32 = + unsafe { ::core::mem::transmute(suspended_by_mdio_bus) }; + suspended_by_mdio_bus as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let sysfs_links: u32 = unsafe { ::core::mem::transmute(sysfs_links) }; + sysfs_links as u64 + }); + __bindgen_bitfield_unit.set(8usize, 1u8, { + let loopback_enabled: u32 = unsafe { ::core::mem::transmute(loopback_enabled) }; + loopback_enabled as u64 + }); + __bindgen_bitfield_unit.set(9usize, 1u8, { + let downshifted_rate: u32 = unsafe { ::core::mem::transmute(downshifted_rate) }; + downshifted_rate as u64 + }); + __bindgen_bitfield_unit.set(10usize, 1u8, { + let is_on_sfp_module: u32 = unsafe { ::core::mem::transmute(is_on_sfp_module) }; + is_on_sfp_module as u64 + }); + __bindgen_bitfield_unit.set(11usize, 1u8, { + let mac_managed_pm: u32 = unsafe { ::core::mem::transmute(mac_managed_pm) }; + mac_managed_pm as u64 + }); + __bindgen_bitfield_unit.set(12usize, 1u8, { + let wol_enabled: u32 = unsafe { ::core::mem::transmute(wol_enabled) }; + wol_enabled as u64 + }); + __bindgen_bitfield_unit.set(13usize, 1u8, { + let is_genphy_driven: u32 = unsafe { ::core::mem::transmute(is_genphy_driven) }; + is_genphy_driven as u64 + }); + __bindgen_bitfield_unit.set(14usize, 1u8, { + let autoneg: u32 = unsafe { ::core::mem::transmute(autoneg) }; + autoneg as u64 + }); + __bindgen_bitfield_unit.set(15usize, 1u8, { + let link: u32 = unsafe { ::core::mem::transmute(link) }; + link as u64 + }); + __bindgen_bitfield_unit.set(16usize, 1u8, { + let autoneg_complete: u32 = unsafe { ::core::mem::transmute(autoneg_complete) }; + autoneg_complete as u64 + }); + __bindgen_bitfield_unit.set(17usize, 1u8, { + let pause: u8 = unsafe { ::core::mem::transmute(pause) }; + pause as u64 + }); + __bindgen_bitfield_unit.set(18usize, 1u8, { + let asym_pause: u8 = unsafe { ::core::mem::transmute(asym_pause) }; + asym_pause as u64 + }); + __bindgen_bitfield_unit.set(19usize, 1u8, { + let interrupts: u32 = unsafe { ::core::mem::transmute(interrupts) }; + interrupts as u64 + }); + __bindgen_bitfield_unit.set(20usize, 1u8, { + let irq_suspended: u32 = unsafe { ::core::mem::transmute(irq_suspended) }; + irq_suspended as u64 + }); + __bindgen_bitfield_unit.set(21usize, 1u8, { + let irq_rerun: u32 = unsafe { ::core::mem::transmute(irq_rerun) }; + irq_rerun as u64 + }); + __bindgen_bitfield_unit.set(22usize, 1u8, { + let default_timestamp: u32 = unsafe { ::core::mem::transmute(default_timestamp) }; + default_timestamp as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct phy_port { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct phy_driver { + pub mdiodrv: mdio_driver_common, + pub phy_id: u32_, + pub name: *mut ::aya_ebpf::cty::c_char, + pub phy_id_mask: u32_, + pub features: *const ::aya_ebpf::cty::c_ulong, + pub flags: u32_, + pub driver_data: *const ::aya_ebpf::cty::c_void, + pub soft_reset: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut phy_device) -> ::aya_ebpf::cty::c_int, + >, + pub config_init: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut phy_device) -> ::aya_ebpf::cty::c_int, + >, + pub probe: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut phy_device) -> ::aya_ebpf::cty::c_int, + >, + pub get_features: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut phy_device) -> ::aya_ebpf::cty::c_int, + >, + pub inband_caps: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phy_device, + arg2: phy_interface_t::Type, + ) -> ::aya_ebpf::cty::c_uint, + >, + pub config_inband: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phy_device, + arg2: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_rate_matching: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phy_device, + arg2: phy_interface_t::Type, + ) -> ::aya_ebpf::cty::c_int, + >, + pub suspend: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut phy_device) -> ::aya_ebpf::cty::c_int, + >, + pub resume: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut phy_device) -> ::aya_ebpf::cty::c_int, + >, + pub config_aneg: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut phy_device) -> ::aya_ebpf::cty::c_int, + >, + pub aneg_done: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut phy_device) -> ::aya_ebpf::cty::c_int, + >, + pub read_status: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut phy_device) -> ::aya_ebpf::cty::c_int, + >, + pub config_intr: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut phy_device) -> ::aya_ebpf::cty::c_int, + >, + pub handle_interrupt: + ::core::option::Option irqreturn_t>, + pub remove: ::core::option::Option, + pub match_phy_device: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phy_device, + arg2: *const phy_driver, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_wol: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phy_device, + arg2: *mut ethtool_wolinfo, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_wol: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut phy_device, arg2: *mut ethtool_wolinfo), + >, + pub link_change_notify: ::core::option::Option, + pub read_mmd: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phy_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: u16_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub write_mmd: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phy_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: u16_, + arg4: u16_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub read_page: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut phy_device) -> ::aya_ebpf::cty::c_int, + >, + pub write_page: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phy_device, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub module_info: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phy_device, + arg2: *mut ethtool_modinfo, + ) -> ::aya_ebpf::cty::c_int, + >, + pub module_eeprom: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phy_device, + arg2: *mut ethtool_eeprom, + arg3: *mut u8_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub cable_test_start: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut phy_device) -> ::aya_ebpf::cty::c_int, + >, + pub cable_test_tdr_start: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phy_device, + arg2: *const phy_tdr_config, + ) -> ::aya_ebpf::cty::c_int, + >, + pub cable_test_get_status: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut phy_device, arg2: *mut bool_) -> ::aya_ebpf::cty::c_int, + >, + pub get_phy_stats: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phy_device, + arg2: *mut ethtool_eth_phy_stats, + arg3: *mut ethtool_phy_stats, + ), + >, + pub get_link_stats: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut phy_device, arg2: *mut ethtool_link_ext_stats), + >, + pub update_stats: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut phy_device) -> ::aya_ebpf::cty::c_int, + >, + pub get_sset_count: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut phy_device) -> ::aya_ebpf::cty::c_int, + >, + pub get_strings: + ::core::option::Option, + pub get_stats: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut phy_device, arg2: *mut ethtool_stats, arg3: *mut u64_), + >, + pub disable_autonomous_eee: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut phy_device) -> ::aya_ebpf::cty::c_int, + >, + pub get_tunable: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phy_device, + arg2: *mut ethtool_tunable, + arg3: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_tunable: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phy_device, + arg2: *mut ethtool_tunable, + arg3: *const ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_loopback: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phy_device, + arg2: bool_, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_sqi: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut phy_device) -> ::aya_ebpf::cty::c_int, + >, + pub get_sqi_max: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut phy_device) -> ::aya_ebpf::cty::c_int, + >, + pub get_mse_capability: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phy_device, + arg2: *mut phy_mse_capability, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_mse_snapshot: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phy_device, + arg2: phy_mse_channel::Type, + arg3: *mut phy_mse_snapshot, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_plca_cfg: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phy_device, + arg2: *mut phy_plca_cfg, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_plca_cfg: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phy_device, + arg2: *const phy_plca_cfg, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_plca_status: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phy_device, + arg2: *mut phy_plca_status, + ) -> ::aya_ebpf::cty::c_int, + >, + pub led_brightness_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phy_device, + arg2: u8_, + arg3: led_brightness::Type, + ) -> ::aya_ebpf::cty::c_int, + >, + pub led_blink_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phy_device, + arg2: u8_, + arg3: *mut ::aya_ebpf::cty::c_ulong, + arg4: *mut ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, + pub led_hw_is_supported: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phy_device, + arg2: u8_, + arg3: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, + pub led_hw_control_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phy_device, + arg2: u8_, + arg3: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, + pub led_hw_control_get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phy_device, + arg2: u8_, + arg3: *mut ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, + pub led_polarity_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phy_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_next_update_time: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut phy_device) -> ::aya_ebpf::cty::c_uint, + >, + pub attach_mii_port: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut phy_device, arg2: *mut phy_port) -> ::aya_ebpf::cty::c_int, + >, + pub attach_mdi_port: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut phy_device, arg2: *mut phy_port) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct phy_link_topology { + pub phys: xarray, + pub next_phy_index: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct phy_plca_cfg { + pub version: ::aya_ebpf::cty::c_int, + pub enabled: ::aya_ebpf::cty::c_int, + pub node_id: ::aya_ebpf::cty::c_int, + pub node_cnt: ::aya_ebpf::cty::c_int, + pub to_tmr: ::aya_ebpf::cty::c_int, + pub burst_cnt: ::aya_ebpf::cty::c_int, + pub burst_tmr: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct phy_plca_status { + pub pst: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct phy_tdr_config { + pub first: u32_, + pub last: u32_, + pub step: u32_, + pub pair: s8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct phylink_link_state { + pub advertising: [::aya_ebpf::cty::c_ulong; 2usize], + pub lp_advertising: [::aya_ebpf::cty::c_ulong; 2usize], + pub interface: phy_interface_t::Type, + pub speed: ::aya_ebpf::cty::c_int, + pub duplex: ::aya_ebpf::cty::c_int, + pub pause: ::aya_ebpf::cty::c_int, + pub rate_matching: ::aya_ebpf::cty::c_int, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: [u8; 3usize], +} +impl phylink_link_state { + #[inline] + pub fn link(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_link(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn link_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_link_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn an_complete(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_an_complete(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn an_complete_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_an_complete_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + link: ::aya_ebpf::cty::c_uint, + an_complete: ::aya_ebpf::cty::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let link: u32 = unsafe { ::core::mem::transmute(link) }; + link as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let an_complete: u32 = unsafe { ::core::mem::transmute(an_complete) }; + an_complete as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct phylink_mac_ops { + pub mac_get_caps: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phylink_config, + arg2: phy_interface_t::Type, + ) -> ::aya_ebpf::cty::c_ulong, + >, + pub mac_select_pcs: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phylink_config, + arg2: phy_interface_t::Type, + ) -> *mut phylink_pcs, + >, + pub mac_prepare: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phylink_config, + arg2: ::aya_ebpf::cty::c_uint, + arg3: phy_interface_t::Type, + ) -> ::aya_ebpf::cty::c_int, + >, + pub mac_config: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phylink_config, + arg2: ::aya_ebpf::cty::c_uint, + arg3: *const phylink_link_state, + ), + >, + pub mac_finish: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phylink_config, + arg2: ::aya_ebpf::cty::c_uint, + arg3: phy_interface_t::Type, + ) -> ::aya_ebpf::cty::c_int, + >, + pub mac_link_down: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phylink_config, + arg2: ::aya_ebpf::cty::c_uint, + arg3: phy_interface_t::Type, + ), + >, + pub mac_link_up: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phylink_config, + arg2: *mut phy_device, + arg3: ::aya_ebpf::cty::c_uint, + arg4: phy_interface_t::Type, + arg5: ::aya_ebpf::cty::c_int, + arg6: ::aya_ebpf::cty::c_int, + arg7: bool_, + arg8: bool_, + ), + >, + pub mac_disable_tx_lpi: ::core::option::Option, + pub mac_enable_tx_lpi: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phylink_config, + arg2: u32_, + arg3: bool_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub mac_wol_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phylink_config, + arg2: u32_, + arg3: *const u8_, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct phylink_pcs { + pub supported_interfaces: [::aya_ebpf::cty::c_ulong; 1usize], + pub ops: *const phylink_pcs_ops, + pub phylink: *mut phylink, + pub poll: bool_, + pub rxc_always_on: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct phylink_pcs_ops { + pub pcs_validate: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phylink_pcs, + arg2: *mut ::aya_ebpf::cty::c_ulong, + arg3: *const phylink_link_state, + ) -> ::aya_ebpf::cty::c_int, + >, + pub pcs_inband_caps: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phylink_pcs, + arg2: phy_interface_t::Type, + ) -> ::aya_ebpf::cty::c_uint, + >, + pub pcs_enable: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut phylink_pcs) -> ::aya_ebpf::cty::c_int, + >, + pub pcs_disable: ::core::option::Option, + pub pcs_pre_config: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut phylink_pcs, arg2: phy_interface_t::Type), + >, + pub pcs_post_config: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phylink_pcs, + arg2: phy_interface_t::Type, + ) -> ::aya_ebpf::cty::c_int, + >, + pub pcs_get_state: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phylink_pcs, + arg2: ::aya_ebpf::cty::c_uint, + arg3: *mut phylink_link_state, + ), + >, + pub pcs_config: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phylink_pcs, + arg2: ::aya_ebpf::cty::c_uint, + arg3: phy_interface_t::Type, + arg4: *const ::aya_ebpf::cty::c_ulong, + arg5: bool_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub pcs_an_restart: ::core::option::Option, + pub pcs_link_up: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut phylink_pcs, + arg2: ::aya_ebpf::cty::c_uint, + arg3: phy_interface_t::Type, + arg4: ::aya_ebpf::cty::c_int, + arg5: ::aya_ebpf::cty::c_int, + ), + >, + pub pcs_disable_eee: ::core::option::Option, + pub pcs_enable_eee: ::core::option::Option, + pub pcs_pre_init: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut phylink_pcs) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct phys_vec { + pub paddr: phys_addr_t, + pub len: usize, +} +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct pi_entry { + pub fmt: *const ::aya_ebpf::cty::c_char, + pub func: *const ::aya_ebpf::cty::c_char, + pub file: *const ::aya_ebpf::cty::c_char, + pub line: ::aya_ebpf::cty::c_uint, + pub level: *const ::aya_ebpf::cty::c_char, + pub subsys_fmt_prefix: *const ::aya_ebpf::cty::c_char, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct upid { + pub nr: ::aya_ebpf::cty::c_int, + pub ns: *mut pid_namespace, +} +#[repr(C)] +pub struct pid { + pub count: refcount_t, + pub level: ::aya_ebpf::cty::c_uint, + pub lock: spinlock_t, + pub __bindgen_anon_1: pid__bindgen_ty_1, + pub tasks: [hlist_head; 4usize], + pub inodes: hlist_head, + pub wait_pidfd: wait_queue_head_t, + pub rcu: callback_head, + pub numbers: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pid__bindgen_ty_1 { + pub ino: u64_, + pub pidfs_hash: rhash_head, + pub stashed: *mut dentry, + pub attr: *mut pidfs_attr, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct pid_namespace { + pub idr: idr, + pub rcu: callback_head, + pub pid_allocated: ::aya_ebpf::cty::c_uint, + pub memfd_noexec_scope: ::aya_ebpf::cty::c_int, + pub set: ctl_table_set, + pub sysctls: *mut ctl_table_header, + pub child_reaper: *mut task_struct, + pub pid_cachep: *mut kmem_cache, + pub level: ::aya_ebpf::cty::c_uint, + pub pid_max: ::aya_ebpf::cty::c_int, + pub parent: *mut pid_namespace, + pub bacct: *mut fs_pin, + pub user_ns: *mut user_namespace, + pub ucounts: *mut ucounts, + pub reboot: ::aya_ebpf::cty::c_int, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 32usize]>, + pub ns: ns_common, + pub work: work_struct, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 32usize]>, +} +impl pid_namespace { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 32usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 32usize]> = Default::default(); + __bindgen_bitfield_unit + } + #[inline] + pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 32usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 32usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct pidfs_attr { + pub xattrs: list_head, + pub __bindgen_anon_1: pidfs_attr__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pidfs_attr__bindgen_ty_1 { + pub pidfs_llist: llist_node, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pinctrl { + pub node: list_head, + pub dev: *mut device, + pub states: list_head, + pub state: *mut pinctrl_state, + pub dt_maps: list_head, + pub users: kref, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pinctrl_state { + pub node: list_head, + pub name: *const ::aya_ebpf::cty::c_char, + pub settings: list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pipe_buf_operations { + pub confirm: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut pipe_inode_info, + arg2: *mut pipe_buffer, + ) -> ::aya_ebpf::cty::c_int, + >, + pub release: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut pipe_inode_info, arg2: *mut pipe_buffer), + >, + pub try_steal: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut pipe_inode_info, arg2: *mut pipe_buffer) -> bool_, + >, + pub get: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut pipe_inode_info, arg2: *mut pipe_buffer) -> bool_, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pipe_buffer { + pub page: *mut page, + pub offset: ::aya_ebpf::cty::c_uint, + pub len: ::aya_ebpf::cty::c_uint, + pub ops: *const pipe_buf_operations, + pub flags: ::aya_ebpf::cty::c_uint, + pub private: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct pipe_inode_info { + pub mutex: mutex, + pub rd_wait: wait_queue_head_t, + pub wr_wait: wait_queue_head_t, + pub max_usage: ::aya_ebpf::cty::c_uint, + pub ring_size: ::aya_ebpf::cty::c_uint, + pub nr_accounted: ::aya_ebpf::cty::c_uint, + pub readers: ::aya_ebpf::cty::c_uint, + pub writers: ::aya_ebpf::cty::c_uint, + pub files: ::aya_ebpf::cty::c_uint, + pub r_counter: ::aya_ebpf::cty::c_uint, + pub w_counter: ::aya_ebpf::cty::c_uint, + pub poll_usage: bool_, + pub note_loss: bool_, + pub tmp_page: [*mut page; 2usize], + pub fasync_readers: *mut fasync_struct, + pub fasync_writers: *mut fasync_struct, + pub bufs: *mut pipe_buffer, + pub user: *mut user_struct, + pub watch_queue: *mut watch_queue, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct pm_subsys_data { + pub lock: spinlock_t, + pub refcount: ::aya_ebpf::cty::c_uint, + pub clock_op_might_sleep: ::aya_ebpf::cty::c_uint, + pub clock_mutex: mutex, + pub clock_list: list_head, + pub domain_data: *mut pm_domain_data, +} +#[repr(C)] +pub struct pneigh_entry { + pub next: *mut pneigh_entry, + pub net: possible_net_t, + pub dev: *mut net_device, + pub dev_tracker: netdevice_tracker, + pub __bindgen_anon_1: pneigh_entry__bindgen_ty_1, + pub flags: u32_, + pub protocol: u8_, + pub permanent: bool_, + pub key: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pneigh_entry__bindgen_ty_1 { + pub free_node: list_head, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pnfs_commit_ops { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pnfs_ds_commit_info { + pub commits: list_head, + pub nwritten: ::aya_ebpf::cty::c_uint, + pub ncommitting: ::aya_ebpf::cty::c_uint, + pub ops: *const pnfs_commit_ops, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pollfd { + pub fd: ::aya_ebpf::cty::c_int, + pub events: ::aya_ebpf::cty::c_short, + pub revents: ::aya_ebpf::cty::c_short, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pool_workqueue { + pub pool: *mut worker_pool, + pub wq: *mut workqueue_struct, + pub work_color: ::aya_ebpf::cty::c_int, + pub flush_color: ::aya_ebpf::cty::c_int, + pub refcnt: ::aya_ebpf::cty::c_int, + pub nr_in_flight: [::aya_ebpf::cty::c_int; 16usize], + pub plugged: bool_, + pub nr_active: ::aya_ebpf::cty::c_int, + pub inactive_works: list_head, + pub pending_node: list_head, + pub pwqs_node: list_head, + pub mayday_node: list_head, + pub mayday_cursor: work_struct, + pub stats: [u64_; 8usize], + pub release_work: kthread_work, + pub rcu: callback_head, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 192usize]>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct posix_acl_hdr { + pub a_refcount: refcount_t, + pub a_count: ::aya_ebpf::cty::c_uint, + pub a_rcu: callback_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct posix_acl_entry { + pub e_tag: ::aya_ebpf::cty::c_short, + pub e_perm: ::aya_ebpf::cty::c_ushort, + pub __bindgen_anon_1: posix_acl_entry__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union posix_acl_entry__bindgen_ty_1 { + pub e_uid: kuid_t, + pub e_gid: kgid_t, +} +#[repr(C)] +pub struct posix_acl { + pub __bindgen_anon_1: posix_acl__bindgen_ty_1, + pub a_entries: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union posix_acl__bindgen_ty_1 { + pub __bindgen_anon_1: posix_acl__bindgen_ty_1__bindgen_ty_1, + pub hdr: posix_acl_hdr, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct posix_acl__bindgen_ty_1__bindgen_ty_1 { + pub a_refcount: refcount_t, + pub a_count: ::aya_ebpf::cty::c_uint, + pub a_rcu: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct posix_cputimer_base { + pub nextevt: u64_, + pub tqhead: timerqueue_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct posix_cputimers { + pub bases: [posix_cputimer_base; 3usize], + pub timers_active: ::aya_ebpf::cty::c_uint, + pub expiry_active: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct posix_cputimers_work { + pub work: callback_head, + pub mutex: mutex, + pub scheduled: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pr_held_reservation { + pub key: u64_, + pub generation: u32_, + pub type_: pr_type::Type, +} +#[repr(C)] +#[derive(Debug)] +pub struct pr_keys { + pub generation: u32_, + pub num_keys: u32_, + pub keys: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pr_ops { + pub pr_register: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut block_device, + arg2: u64_, + arg3: u64_, + arg4: u32_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub pr_reserve: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut block_device, + arg2: u64_, + arg3: pr_type::Type, + arg4: u32_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub pr_release: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut block_device, + arg2: u64_, + arg3: pr_type::Type, + ) -> ::aya_ebpf::cty::c_int, + >, + pub pr_preempt: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut block_device, + arg2: u64_, + arg3: u64_, + arg4: pr_type::Type, + arg5: bool_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub pr_clear: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut block_device, arg2: u64_) -> ::aya_ebpf::cty::c_int, + >, + pub pr_read_keys: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut block_device, arg2: *mut pr_keys) -> ::aya_ebpf::cty::c_int, + >, + pub pr_read_reservation: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut block_device, + arg2: *mut pr_held_reservation, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct prefix_info { + pub type_: __u8, + pub length: __u8, + pub prefix_len: __u8, + pub __bindgen_anon_1: prefix_info__bindgen_ty_1, + pub valid: __be32, + pub prefered: __be32, + pub reserved2: __be32, + pub prefix: in6_addr, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union prefix_info__bindgen_ty_1 { + pub flags: __u8, + pub __bindgen_anon_1: prefix_info__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct prefix_info__bindgen_ty_1__bindgen_ty_1 { + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, +} +impl prefix_info__bindgen_ty_1__bindgen_ty_1 { + #[inline] + pub fn reserved(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } + } + #[inline] + pub fn set_reserved(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 4u8, val as u64) + } + } + #[inline] + pub unsafe fn reserved_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 4u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_reserved_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 4u8, + val as u64, + ) + } + } + #[inline] + pub fn preferpd(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) } + } + #[inline] + pub fn set_preferpd(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn preferpd_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_preferpd_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn routeraddr(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) } + } + #[inline] + pub fn set_routeraddr(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn routeraddr_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 5usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_routeraddr_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 5usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn autoconf(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) } + } + #[inline] + pub fn set_autoconf(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn autoconf_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 6usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_autoconf_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 6usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn onlink(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) } + } + #[inline] + pub fn set_onlink(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn onlink_raw(this: *const Self) -> __u8 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 7usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_onlink_raw(this: *mut Self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 7usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + reserved: __u8, + preferpd: __u8, + routeraddr: __u8, + autoconf: __u8, + onlink: __u8, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 4u8, { + let reserved: u8 = unsafe { ::core::mem::transmute(reserved) }; + reserved as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let preferpd: u8 = unsafe { ::core::mem::transmute(preferpd) }; + preferpd as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let routeraddr: u8 = unsafe { ::core::mem::transmute(routeraddr) }; + routeraddr as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let autoconf: u8 = unsafe { ::core::mem::transmute(autoconf) }; + autoconf as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let onlink: u8 = unsafe { ::core::mem::transmute(onlink) }; + onlink as u64 + }); + __bindgen_bitfield_unit + } +} +pub type proc_write_t = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file, + arg2: *mut ::aya_ebpf::cty::c_char, + arg3: usize, + ) -> ::aya_ebpf::cty::c_int, +>; +#[repr(C)] +pub struct proc_dir_entry { + pub in_use: atomic_t, + pub refcnt: refcount_t, + pub pde_openers: list_head, + pub pde_unload_lock: spinlock_t, + pub pde_unload_completion: *mut completion, + pub proc_iops: *const inode_operations, + pub __bindgen_anon_1: proc_dir_entry__bindgen_ty_1, + pub __bindgen_anon_2: proc_dir_entry__bindgen_ty_2, + pub write: proc_write_t, + pub data: *mut ::aya_ebpf::cty::c_void, + pub state_size: ::aya_ebpf::cty::c_uint, + pub low_ino: ::aya_ebpf::cty::c_uint, + pub nlink: nlink_t, + pub uid: kuid_t, + pub gid: kgid_t, + pub size: loff_t, + pub parent: *mut proc_dir_entry, + pub subdir: rb_root, + pub subdir_node: rb_node, + pub name: *mut ::aya_ebpf::cty::c_char, + pub mode: umode_t, + pub flags: u8_, + pub namelen: u8_, + pub inline_name: __IncompleteArrayField<::aya_ebpf::cty::c_char>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union proc_dir_entry__bindgen_ty_1 { + pub proc_ops: *const proc_ops, + pub proc_dir_ops: *const file_operations, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union proc_dir_entry__bindgen_ty_2 { + pub seq_ops: *const seq_operations, + pub single_show: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut seq_file, + arg2: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct proc_ns_operations { + pub name: *const ::aya_ebpf::cty::c_char, + pub real_ns_name: *const ::aya_ebpf::cty::c_char, + pub get: ::core::option::Option *mut ns_common>, + pub put: ::core::option::Option, + pub install: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut nsset, arg2: *mut ns_common) -> ::aya_ebpf::cty::c_int, + >, + pub owner: + ::core::option::Option *mut user_namespace>, + pub get_parent: + ::core::option::Option *mut ns_common>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct proc_ops { + pub proc_flags: ::aya_ebpf::cty::c_uint, + pub proc_open: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut inode, arg2: *mut file) -> ::aya_ebpf::cty::c_int, + >, + pub proc_read: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file, + arg2: *mut ::aya_ebpf::cty::c_char, + arg3: usize, + arg4: *mut loff_t, + ) -> isize, + >, + pub proc_read_iter: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut kiocb, arg2: *mut iov_iter) -> isize, + >, + pub proc_write: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file, + arg2: *const ::aya_ebpf::cty::c_char, + arg3: usize, + arg4: *mut loff_t, + ) -> isize, + >, + pub proc_lseek: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut file, arg2: loff_t, arg3: ::aya_ebpf::cty::c_int) -> loff_t, + >, + pub proc_release: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut inode, arg2: *mut file) -> ::aya_ebpf::cty::c_int, + >, + pub proc_poll: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut file, arg2: *mut poll_table_struct) -> __poll_t, + >, + pub proc_ioctl: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_long, + >, + pub proc_compat_ioctl: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_long, + >, + pub proc_mmap: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut file, arg2: *mut vm_area_struct) -> ::aya_ebpf::cty::c_int, + >, + pub proc_get_unmapped_area: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file, + arg2: ::aya_ebpf::cty::c_ulong, + arg3: ::aya_ebpf::cty::c_ulong, + arg4: ::aya_ebpf::cty::c_ulong, + arg5: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_ulong, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct prog_entry { + pub target: ::aya_ebpf::cty::c_int, + pub when_to_branch: ::aya_ebpf::cty::c_int, + pub pred: *mut filter_pred, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct property { + pub name: *mut ::aya_ebpf::cty::c_char, + pub length: ::aya_ebpf::cty::c_int, + pub value: *mut ::aya_ebpf::cty::c_void, + pub next: *mut property, + pub _flags: ::aya_ebpf::cty::c_ulong, + pub attr: bin_attribute, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct prot_inuse { + pub all: ::aya_ebpf::cty::c_int, + pub val: [::aya_ebpf::cty::c_int; 64usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct proto { + pub close: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sock, arg2: ::aya_ebpf::cty::c_long), + >, + pub pre_connect: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sock, + arg2: *mut sockaddr_unsized, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub connect: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sock, + arg2: *mut sockaddr_unsized, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub disconnect: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sock, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub accept: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sock, arg2: *mut proto_accept_arg) -> *mut sock, + >, + pub ioctl: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sock, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub init: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub destroy: ::core::option::Option, + pub shutdown: + ::core::option::Option, + pub setsockopt: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sock, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + arg4: sockptr_t, + arg5: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub getsockopt: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sock, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + arg4: *mut ::aya_ebpf::cty::c_char, + arg5: *mut ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub keepalive: + ::core::option::Option, + pub compat_ioctl: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sock, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, + pub sendmsg: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sock, + arg2: *mut msghdr, + arg3: usize, + ) -> ::aya_ebpf::cty::c_int, + >, + pub recvmsg: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sock, + arg2: *mut msghdr, + arg3: usize, + arg4: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub splice_eof: ::core::option::Option, + pub bind: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sock, + arg2: *mut sockaddr_unsized, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub bind_add: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sock, + arg2: *mut sockaddr_unsized, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub backlog_rcv: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sock, arg2: *mut sk_buff) -> ::aya_ebpf::cty::c_int, + >, + pub bpf_bypass_getsockopt: ::core::option::Option< + unsafe extern "C" fn(arg1: ::aya_ebpf::cty::c_int, arg2: ::aya_ebpf::cty::c_int) -> bool_, + >, + pub release_cb: ::core::option::Option, + pub hash: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub unhash: ::core::option::Option, + pub rehash: ::core::option::Option, + pub get_port: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sock, + arg2: ::aya_ebpf::cty::c_ushort, + ) -> ::aya_ebpf::cty::c_int, + >, + pub put_port: ::core::option::Option, + pub psock_update_sk_prot: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sock, + arg2: *mut sk_psock, + arg3: bool_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub inuse_idx: ::aya_ebpf::cty::c_uint, + pub stream_memory_free: ::core::option::Option< + unsafe extern "C" fn(arg1: *const sock, arg2: ::aya_ebpf::cty::c_int) -> bool_, + >, + pub sock_is_readable: ::core::option::Option bool_>, + pub enter_memory_pressure: ::core::option::Option, + pub leave_memory_pressure: ::core::option::Option, + pub memory_allocated: *mut atomic_long_t, + pub per_cpu_fw_alloc: *mut ::aya_ebpf::cty::c_int, + pub sockets_allocated: *mut percpu_counter, + pub memory_pressure: *mut ::aya_ebpf::cty::c_ulong, + pub sysctl_mem: *mut ::aya_ebpf::cty::c_long, + pub sysctl_wmem: *mut ::aya_ebpf::cty::c_int, + pub sysctl_rmem: *mut ::aya_ebpf::cty::c_int, + pub sysctl_wmem_offset: u32_, + pub sysctl_rmem_offset: u32_, + pub max_header: ::aya_ebpf::cty::c_int, + pub no_autobind: bool_, + pub slab: *mut kmem_cache, + pub obj_size: ::aya_ebpf::cty::c_uint, + pub freeptr_offset: ::aya_ebpf::cty::c_uint, + pub ipv6_pinfo_offset: ::aya_ebpf::cty::c_uint, + pub slab_flags: slab_flags_t, + pub useroffset: ::aya_ebpf::cty::c_uint, + pub usersize: ::aya_ebpf::cty::c_uint, + pub rsk_prot: *mut request_sock_ops, + pub twsk_prot: *mut timewait_sock_ops, + pub h: proto__bindgen_ty_1, + pub owner: *mut module, + pub name: [::aya_ebpf::cty::c_char; 32usize], + pub node: list_head, + pub diag_destroy: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sock, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union proto__bindgen_ty_1 { + pub hashinfo: *mut inet_hashinfo, + pub raw_hash: *mut raw_hashinfo, + pub smc_hash: *mut smc_hashinfo, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct proto_accept_arg { + pub flags: ::aya_ebpf::cty::c_int, + pub err: ::aya_ebpf::cty::c_int, + pub is_empty: ::aya_ebpf::cty::c_int, + pub kern: bool_, +} +pub type skb_read_actor_t = ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sock, arg2: *mut sk_buff) -> ::aya_ebpf::cty::c_int, +>; +pub type sockopt_t = sockopt; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct proto_ops { + pub family: ::aya_ebpf::cty::c_int, + pub owner: *mut module, + pub release: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub bind: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut socket, + arg2: *mut sockaddr_unsized, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub connect: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut socket, + arg2: *mut sockaddr_unsized, + arg3: ::aya_ebpf::cty::c_int, + arg4: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub socketpair: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut socket, arg2: *mut socket) -> ::aya_ebpf::cty::c_int, + >, + pub accept: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut socket, + arg2: *mut socket, + arg3: *mut proto_accept_arg, + ) -> ::aya_ebpf::cty::c_int, + >, + pub getname: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut socket, + arg2: *mut sockaddr, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub poll: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file, + arg2: *mut socket, + arg3: *mut poll_table_struct, + ) -> __poll_t, + >, + pub ioctl: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut socket, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, + pub compat_ioctl: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut socket, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, + pub gettstamp: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut socket, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: bool_, + arg4: bool_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub listen: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut socket, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub shutdown: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut socket, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub setsockopt: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut socket, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + arg4: sockptr_t, + arg5: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub getsockopt: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut socket, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + arg4: *mut ::aya_ebpf::cty::c_char, + arg5: *mut ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub getsockopt_iter: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut socket, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + arg4: *mut sockopt_t, + ) -> ::aya_ebpf::cty::c_int, + >, + pub show_fdinfo: + ::core::option::Option, + pub sendmsg: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut socket, + arg2: *mut msghdr, + arg3: usize, + ) -> ::aya_ebpf::cty::c_int, + >, + pub recvmsg: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut socket, + arg2: *mut msghdr, + arg3: usize, + arg4: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub mmap: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file, + arg2: *mut socket, + arg3: *mut vm_area_struct, + ) -> ::aya_ebpf::cty::c_int, + >, + pub splice_read: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut socket, + arg2: *mut loff_t, + arg3: *mut pipe_inode_info, + arg4: usize, + arg5: ::aya_ebpf::cty::c_uint, + ) -> isize, + >, + pub splice_eof: ::core::option::Option, + pub set_peek_off: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sock, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub peek_len: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub read_sock: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sock, + arg2: *mut read_descriptor_t, + arg3: sk_read_actor_t, + ) -> ::aya_ebpf::cty::c_int, + >, + pub read_skb: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sock, arg2: skb_read_actor_t) -> ::aya_ebpf::cty::c_int, + >, + pub sendmsg_locked: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sock, + arg2: *mut msghdr, + arg3: usize, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_rcvlowat: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sock, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_rcvbuf: + ::core::option::Option, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct psample_group { + pub list: list_head, + pub net: *mut net, + pub group_num: u32_, + pub refcount: u32_, + pub seq: u32_, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pse_admin_state { + pub podl_admin_state: ethtool_podl_pse_admin_state::Type, + pub c33_admin_state: ethtool_c33_pse_admin_state::Type, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pse_control { + pub pcdev: *mut pse_controller_dev, + pub ps: *mut regulator, + pub list: list_head, + pub id: ::aya_ebpf::cty::c_uint, + pub refcnt: kref, + pub attached_phydev: *mut phy_device, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pse_ntf { + pub id: ::aya_ebpf::cty::c_int, + pub notifs: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +pub struct pse_controller_dev { + pub ops: *const pse_controller_ops, + pub owner: *mut module, + pub list: list_head, + pub pse_control_head: list_head, + pub dev: *mut device, + pub of_pse_n_cells: ::aya_ebpf::cty::c_int, + pub nr_lines: ::aya_ebpf::cty::c_uint, + pub lock: mutex, + pub types: ethtool_pse_types::Type, + pub pi: *mut pse_pi, + pub no_of_pse_pi: bool_, + pub irq: ::aya_ebpf::cty::c_int, + pub pis_prio_max: ::aya_ebpf::cty::c_uint, + pub supp_budget_eval_strategies: u32_, + pub ntf_work: work_struct, + pub ntf_fifo: pse_controller_dev__bindgen_ty_1, + pub ntf_fifo_lock: spinlock_t, +} +#[repr(C)] +pub struct pse_controller_dev__bindgen_ty_1 { + pub __bindgen_anon_1: pse_controller_dev__bindgen_ty_1__bindgen_ty_1, + pub buf: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pse_controller_dev__bindgen_ty_1__bindgen_ty_1 { + pub kfifo: __kfifo, + pub type_: *mut pse_ntf, + pub const_type: *const pse_ntf, + pub rectype: *mut [::aya_ebpf::cty::c_char; 0usize], + pub ptr: *mut pse_ntf, + pub ptr_const: *const pse_ntf, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pse_controller_ops { + pub setup_pi_matrix: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut pse_controller_dev) -> ::aya_ebpf::cty::c_int, + >, + pub pi_get_admin_state: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut pse_controller_dev, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut pse_admin_state, + ) -> ::aya_ebpf::cty::c_int, + >, + pub pi_get_pw_status: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut pse_controller_dev, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut pse_pw_status, + ) -> ::aya_ebpf::cty::c_int, + >, + pub pi_get_ext_state: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut pse_controller_dev, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut pse_ext_state_info, + ) -> ::aya_ebpf::cty::c_int, + >, + pub pi_get_pw_class: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut pse_controller_dev, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub pi_get_actual_pw: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut pse_controller_dev, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub pi_enable: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut pse_controller_dev, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub pi_disable: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut pse_controller_dev, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub pi_get_voltage: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut pse_controller_dev, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub pi_get_pw_limit: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut pse_controller_dev, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub pi_set_pw_limit: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut pse_controller_dev, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub pi_get_pw_limit_ranges: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut pse_controller_dev, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut pse_pw_limit_ranges, + ) -> ::aya_ebpf::cty::c_int, + >, + pub pi_get_prio: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut pse_controller_dev, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub pi_set_prio: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut pse_controller_dev, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub pi_get_pw_req: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut pse_controller_dev, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct pse_ext_state_info { + pub c33_ext_state_info: ethtool_c33_pse_ext_state_info, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pse_pi_pairset { + pub pinout: pse_pi_pairset_pinout::Type, + pub np: *mut device_node, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pse_pi { + pub pairset: [pse_pi_pairset; 2usize], + pub np: *mut device_node, + pub rdev: *mut regulator_dev, + pub admin_state_enabled: bool_, + pub pw_d: *mut pse_power_domain, + pub prio: ::aya_ebpf::cty::c_int, + pub isr_pd_detected: bool_, + pub pw_allocated_mW: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pse_power_domain { + pub id: ::aya_ebpf::cty::c_int, + pub supply: *mut regulator, + pub refcnt: kref, + pub budget_eval_strategy: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pse_pw_limit_ranges { + pub c33_pw_limit_ranges: *mut ethtool_c33_pse_pw_limit_range, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pse_pw_status { + pub podl_pw_status: ethtool_podl_pse_pw_d_status::Type, + pub c33_pw_status: ethtool_c33_pse_pw_d_status::Type, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct psi_group { + pub parent: *mut psi_group, + pub enabled: bool_, + pub avgs_lock: mutex, + pub pcpu: *mut psi_group_cpu, + pub avg_total: [u64_; 7usize], + pub avg_last_update: u64_, + pub avg_next_update: u64_, + pub avgs_work: delayed_work, + pub avg_triggers: list_head, + pub avg_nr_triggers: [u32_; 7usize], + pub total: [u64_; 14usize], + pub avg: [::aya_ebpf::cty::c_ulong; 21usize], + pub rtpoll_task: *mut task_struct, + pub rtpoll_timer: timer_list, + pub rtpoll_wait: wait_queue_head_t, + pub rtpoll_wakeup: atomic_t, + pub rtpoll_scheduled: atomic_t, + pub rtpoll_trigger_lock: mutex, + pub rtpoll_triggers: list_head, + pub rtpoll_nr_triggers: [u32_; 7usize], + pub rtpoll_states: u32_, + pub rtpoll_min_period: u64_, + pub rtpoll_total: [u64_; 7usize], + pub rtpoll_next_update: u64_, + pub rtpoll_until: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct psi_group_cpu { + pub tasks: [::aya_ebpf::cty::c_uint; 4usize], + pub state_mask: u32_, + pub times: [u32_; 8usize], + pub state_start: u64_, + pub times_prev: [u32_; 16usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct psp_key_parsed { + pub spi: __be32, + pub key: [u8_; 32usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct psp_assoc { + pub psd: *mut psp_dev, + pub dev_id: u16_, + pub generation: u8_, + pub version: u8_, + pub peer_tx: u8_, + pub upgrade_seq: u32_, + pub tx: psp_key_parsed, + pub rx: psp_key_parsed, + pub refcnt: refcount_t, + pub rcu: callback_head, + pub work: work_struct, + pub assocs_list: list_head, + pub drv_data: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct psp_dev_config { + pub versions: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct psp_dev { + pub main_netdev: *mut net_device, + pub ops: *mut psp_dev_ops, + pub caps: *mut psp_dev_caps, + pub drv_priv: *mut ::aya_ebpf::cty::c_void, + pub lock: mutex, + pub refcnt: refcount_t, + pub id: u32_, + pub generation: u8_, + pub config: psp_dev_config, + pub active_assocs: list_head, + pub prev_assocs: list_head, + pub stale_assocs: list_head, + pub stats: psp_dev__bindgen_ty_1, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct psp_dev__bindgen_ty_1 { + pub rotations: ::aya_ebpf::cty::c_ulong, + pub stales: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct psp_dev_caps { + pub versions: u32_, + pub assoc_drv_spc: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct psp_dev_ops { + pub set_config: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut psp_dev, + arg2: *mut psp_dev_config, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub key_rotate: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut psp_dev, + arg2: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub rx_spi_alloc: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut psp_dev, + arg2: u32_, + arg3: *mut psp_key_parsed, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub tx_key_add: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut psp_dev, + arg2: *mut psp_assoc, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub tx_key_del: + ::core::option::Option, + pub get_stats: + ::core::option::Option, +} +#[repr(C)] +pub struct psp_dev_stats { + pub __bindgen_anon_1: psp_dev_stats__bindgen_ty_1, +} +#[repr(C)] +pub struct psp_dev_stats__bindgen_ty_1 { + pub __bindgen_anon_1: __BindgenUnionField, + pub __bindgen_anon_2: __BindgenUnionField, + pub bindgen_union_field: [u64; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct psp_dev_stats__bindgen_ty_1__bindgen_ty_1 { + pub rx_packets: u64_, + pub rx_bytes: u64_, + pub rx_auth_fail: u64_, + pub rx_error: u64_, + pub rx_bad: u64_, + pub tx_packets: u64_, + pub tx_bytes: u64_, + pub tx_error: u64_, +} +#[repr(C)] +#[derive(Debug)] +pub struct psp_dev_stats__bindgen_ty_1__bindgen_ty_2 { + pub __empty_required: psp_dev_stats__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1, + pub required: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct psp_dev_stats__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct qc_dqblk { + pub d_fieldmask: ::aya_ebpf::cty::c_int, + pub d_spc_hardlimit: u64_, + pub d_spc_softlimit: u64_, + pub d_ino_hardlimit: u64_, + pub d_ino_softlimit: u64_, + pub d_space: u64_, + pub d_ino_count: u64_, + pub d_ino_timer: s64, + pub d_spc_timer: s64, + pub d_ino_warns: ::aya_ebpf::cty::c_int, + pub d_spc_warns: ::aya_ebpf::cty::c_int, + pub d_rt_spc_hardlimit: u64_, + pub d_rt_spc_softlimit: u64_, + pub d_rt_space: u64_, + pub d_rt_spc_timer: s64, + pub d_rt_spc_warns: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct qc_info { + pub i_fieldmask: ::aya_ebpf::cty::c_int, + pub i_flags: ::aya_ebpf::cty::c_uint, + pub i_spc_timelimit: ::aya_ebpf::cty::c_uint, + pub i_ino_timelimit: ::aya_ebpf::cty::c_uint, + pub i_rt_spc_timelimit: ::aya_ebpf::cty::c_uint, + pub i_spc_warnlimit: ::aya_ebpf::cty::c_uint, + pub i_ino_warnlimit: ::aya_ebpf::cty::c_uint, + pub i_rt_spc_warnlimit: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct qc_type_state { + pub flags: ::aya_ebpf::cty::c_uint, + pub spc_timelimit: ::aya_ebpf::cty::c_uint, + pub ino_timelimit: ::aya_ebpf::cty::c_uint, + pub rt_spc_timelimit: ::aya_ebpf::cty::c_uint, + pub spc_warnlimit: ::aya_ebpf::cty::c_uint, + pub ino_warnlimit: ::aya_ebpf::cty::c_uint, + pub rt_spc_warnlimit: ::aya_ebpf::cty::c_uint, + pub ino: ::aya_ebpf::cty::c_ulonglong, + pub blocks: blkcnt_t, + pub nextents: blkcnt_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct qc_state { + pub s_incoredqs: ::aya_ebpf::cty::c_uint, + pub s_state: [qc_type_state; 3usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tc_sizespec { + pub cell_log: ::aya_ebpf::cty::c_uchar, + pub size_log: ::aya_ebpf::cty::c_uchar, + pub cell_align: ::aya_ebpf::cty::c_short, + pub overhead: ::aya_ebpf::cty::c_int, + pub linklayer: ::aya_ebpf::cty::c_uint, + pub mpu: ::aya_ebpf::cty::c_uint, + pub mtu: ::aya_ebpf::cty::c_uint, + pub tsize: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug)] +pub struct qdisc_size_table { + pub rcu: callback_head, + pub list: list_head, + pub szopts: tc_sizespec, + pub refcnt: ::aya_ebpf::cty::c_int, + pub data: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct queue_limits { + pub features: blk_features_t, + pub flags: blk_flags_t, + pub seg_boundary_mask: ::aya_ebpf::cty::c_ulong, + pub virt_boundary_mask: ::aya_ebpf::cty::c_ulong, + pub max_hw_sectors: ::aya_ebpf::cty::c_uint, + pub max_dev_sectors: ::aya_ebpf::cty::c_uint, + pub chunk_sectors: ::aya_ebpf::cty::c_uint, + pub max_sectors: ::aya_ebpf::cty::c_uint, + pub max_user_sectors: ::aya_ebpf::cty::c_uint, + pub max_segment_size: ::aya_ebpf::cty::c_uint, + pub max_fast_segment_size: ::aya_ebpf::cty::c_uint, + pub physical_block_size: ::aya_ebpf::cty::c_uint, + pub logical_block_size: ::aya_ebpf::cty::c_uint, + pub alignment_offset: ::aya_ebpf::cty::c_uint, + pub io_min: ::aya_ebpf::cty::c_uint, + pub io_opt: ::aya_ebpf::cty::c_uint, + pub max_discard_sectors: ::aya_ebpf::cty::c_uint, + pub max_hw_discard_sectors: ::aya_ebpf::cty::c_uint, + pub max_user_discard_sectors: ::aya_ebpf::cty::c_uint, + pub max_secure_erase_sectors: ::aya_ebpf::cty::c_uint, + pub max_write_zeroes_sectors: ::aya_ebpf::cty::c_uint, + pub max_wzeroes_unmap_sectors: ::aya_ebpf::cty::c_uint, + pub max_hw_wzeroes_unmap_sectors: ::aya_ebpf::cty::c_uint, + pub max_user_wzeroes_unmap_sectors: ::aya_ebpf::cty::c_uint, + pub max_hw_zone_append_sectors: ::aya_ebpf::cty::c_uint, + pub max_zone_append_sectors: ::aya_ebpf::cty::c_uint, + pub discard_granularity: ::aya_ebpf::cty::c_uint, + pub discard_alignment: ::aya_ebpf::cty::c_uint, + pub zone_write_granularity: ::aya_ebpf::cty::c_uint, + pub atomic_write_hw_max: ::aya_ebpf::cty::c_uint, + pub atomic_write_max_sectors: ::aya_ebpf::cty::c_uint, + pub atomic_write_hw_boundary: ::aya_ebpf::cty::c_uint, + pub atomic_write_boundary_sectors: ::aya_ebpf::cty::c_uint, + pub atomic_write_hw_unit_min: ::aya_ebpf::cty::c_uint, + pub atomic_write_unit_min: ::aya_ebpf::cty::c_uint, + pub atomic_write_hw_unit_max: ::aya_ebpf::cty::c_uint, + pub atomic_write_unit_max: ::aya_ebpf::cty::c_uint, + pub max_segments: ::aya_ebpf::cty::c_ushort, + pub max_integrity_segments: ::aya_ebpf::cty::c_ushort, + pub max_discard_segments: ::aya_ebpf::cty::c_ushort, + pub max_write_streams: ::aya_ebpf::cty::c_ushort, + pub write_stream_granularity: ::aya_ebpf::cty::c_uint, + pub max_open_zones: ::aya_ebpf::cty::c_uint, + pub max_active_zones: ::aya_ebpf::cty::c_uint, + pub dma_alignment: ::aya_ebpf::cty::c_uint, + pub dma_pad_mask: ::aya_ebpf::cty::c_uint, + pub integrity: blk_integrity, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct quota_format_ops { + pub check_quota_file: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut super_block, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub read_file_info: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut super_block, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub write_file_info: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut super_block, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub free_file_info: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut super_block, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub read_dqblk: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub commit_dqblk: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub release_dqblk: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub get_next_id: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut super_block, arg2: *mut kqid) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct quota_format_type { + pub qf_fmt_id: ::aya_ebpf::cty::c_int, + pub qf_ops: *const quota_format_ops, + pub qf_owner: *mut module, + pub qf_next: *mut quota_format_type, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct quota_info { + pub flags: ::aya_ebpf::cty::c_uint, + pub dqio_sem: rw_semaphore, + pub files: [*mut inode; 3usize], + pub info: [mem_dqinfo; 3usize], + pub ops: [*const quota_format_ops; 3usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct quotactl_ops { + pub quota_on: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut super_block, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + arg4: *const path, + ) -> ::aya_ebpf::cty::c_int, + >, + pub quota_off: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut super_block, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub quota_enable: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut super_block, + arg2: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub quota_disable: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut super_block, + arg2: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub quota_sync: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut super_block, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_info: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut super_block, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut qc_info, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_dqblk: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut super_block, + arg2: kqid, + arg3: *mut qc_dqblk, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_nextdqblk: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut super_block, + arg2: *mut kqid, + arg3: *mut qc_dqblk, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_dqblk: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut super_block, + arg2: kqid, + arg3: *mut qc_dqblk, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_state: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut super_block, arg2: *mut qc_state) -> ::aya_ebpf::cty::c_int, + >, + pub rm_xquota: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut super_block, + arg2: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rate_sample { + pub prior_mstamp: u64_, + pub prior_lost: u32_, + pub prior_delivered: u32_, + pub prior_delivered_ce: u32_, + pub tx_in_flight: u32_, + pub lost: s32, + pub delivered: s32, + pub delivered_ce: s32, + pub interval_us: ::aya_ebpf::cty::c_long, + pub snd_interval_us: u32_, + pub rcv_interval_us: u32_, + pub rtt_us: ::aya_ebpf::cty::c_long, + pub losses: ::aya_ebpf::cty::c_int, + pub acked_sacked: u32_, + pub prior_in_flight: u32_, + pub last_end_seq: u32_, + pub is_app_limited: bool_, + pub is_retrans: bool_, + pub is_acking_tlp_retrans_seq: bool_, + pub is_ack_delayed: bool_, + pub is_ece: bool_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct raw_hashinfo { + pub lock: spinlock_t, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 56usize]>, + pub ht: [hlist_head; 256usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rb_irq_work { + pub work: irq_work, + pub waiters: wait_queue_head_t, + pub full_waiters: wait_queue_head_t, + pub seq: atomic_t, + pub waiters_pending: bool_, + pub full_waiters_pending: bool_, + pub wakeup_full: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rb_time_struct { + pub time: local64_t, +} +pub type rb_time_t = rb_time_struct; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rchan { + pub version: u32_, + pub subbuf_size: usize, + pub n_subbufs: usize, + pub alloc_size: usize, + pub cb: *const rchan_callbacks, + pub kref: kref, + pub private_data: *mut ::aya_ebpf::cty::c_void, + pub buf: *mut *mut rchan_buf, + pub is_global: ::aya_ebpf::cty::c_int, + pub list: list_head, + pub parent: *mut dentry, + pub has_base_filename: ::aya_ebpf::cty::c_int, + pub base_filename: [::aya_ebpf::cty::c_char; 255usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rchan_buf_stats { + pub full_count: ::aya_ebpf::cty::c_uint, + pub big_count: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rchan_buf { + pub start: *mut ::aya_ebpf::cty::c_void, + pub data: *mut ::aya_ebpf::cty::c_void, + pub offset: usize, + pub subbufs_produced: usize, + pub subbufs_consumed: usize, + pub chan: *mut rchan, + pub read_wait: wait_queue_head_t, + pub wakeup_work: irq_work, + pub dentry: *mut dentry, + pub kref: kref, + pub stats: rchan_buf_stats, + pub page_array: *mut *mut page, + pub page_count: ::aya_ebpf::cty::c_uint, + pub finalized: ::aya_ebpf::cty::c_uint, + pub padding: *mut usize, + pub bytes_consumed: usize, + pub early_bytes: usize, + pub cpu: ::aya_ebpf::cty::c_uint, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>, + pub __bindgen_padding_0: u32, +} +impl rchan_buf { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rchan_callbacks { + pub subbuf_start: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut rchan_buf, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub create_buf_file: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const ::aya_ebpf::cty::c_char, + arg2: *mut dentry, + arg3: umode_t, + arg4: *mut rchan_buf, + arg5: *mut ::aya_ebpf::cty::c_int, + ) -> *mut dentry, + >, + pub remove_buf_file: + ::core::option::Option ::aya_ebpf::cty::c_int>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rcu_segcblist { + pub head: *mut callback_head, + pub tails: [*mut *mut callback_head; 4usize], + pub gp_seq: [::aya_ebpf::cty::c_ulong; 4usize], + pub len: atomic_long_t, + pub seglen: [::aya_ebpf::cty::c_long; 4usize], + pub flags: u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rcu_exp_work { + pub rew_s: ::aya_ebpf::cty::c_ulong, + pub rew_work: kthread_work, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rcu_node { + pub lock: raw_spinlock_t, + pub gp_seq: ::aya_ebpf::cty::c_ulong, + pub gp_seq_needed: ::aya_ebpf::cty::c_ulong, + pub completedqs: ::aya_ebpf::cty::c_ulong, + pub qsmask: ::aya_ebpf::cty::c_ulong, + pub rcu_gp_init_mask: ::aya_ebpf::cty::c_ulong, + pub qsmaskinit: ::aya_ebpf::cty::c_ulong, + pub qsmaskinitnext: ::aya_ebpf::cty::c_ulong, + pub expmask: ::aya_ebpf::cty::c_ulong, + pub expmaskinit: ::aya_ebpf::cty::c_ulong, + pub expmaskinitnext: ::aya_ebpf::cty::c_ulong, + pub exp_kworker: *mut kthread_worker, + pub cbovldmask: ::aya_ebpf::cty::c_ulong, + pub ffmask: ::aya_ebpf::cty::c_ulong, + pub grpmask: ::aya_ebpf::cty::c_ulong, + pub grplo: ::aya_ebpf::cty::c_int, + pub grphi: ::aya_ebpf::cty::c_int, + pub grpnum: u8_, + pub level: u8_, + pub wait_blkd_tasks: bool_, + pub parent: *mut rcu_node, + pub blkd_tasks: list_head, + pub gp_tasks: *mut list_head, + pub exp_tasks: *mut list_head, + pub boost_tasks: *mut list_head, + pub boost_mtx: rt_mutex, + pub boost_time: ::aya_ebpf::cty::c_ulong, + pub kthread_mutex: mutex, + pub boost_kthread_task: *mut task_struct, + pub boost_kthread_status: ::aya_ebpf::cty::c_uint, + pub n_boosts: ::aya_ebpf::cty::c_ulong, + pub nocb_gp_wq: [swait_queue_head; 2usize], + pub fqslock: raw_spinlock_t, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 56usize]>, + pub __bindgen_padding_0: u32, + pub exp_lock: spinlock_t, + pub exp_seq_rq: ::aya_ebpf::cty::c_ulong, + pub exp_wq: [wait_queue_head_t; 4usize], + pub rew: rcu_exp_work, + pub exp_need_flush: bool_, + pub exp_poll_lock: raw_spinlock_t, + pub exp_seq_poll_rq: ::aya_ebpf::cty::c_ulong, + pub exp_poll_wq: work_struct, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 48usize]>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union rcu_special { + pub b: rcu_special__bindgen_ty_1, + pub s: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rcu_special__bindgen_ty_1 { + pub blocked: u8_, + pub need_qs: u8_, + pub exp_hint: u8_, + pub need_mb: u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rdma_ah_init_attr { + pub ah_attr: *mut rdma_ah_attr, + pub flags: u32_, + pub xmit_slave: *mut net_device, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rdma_cgroup { + pub css: cgroup_subsys_state, + pub rpools: list_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rdma_counter { + pub res: rdma_restrack_entry, + pub device: *mut ib_device, + pub id: u32, + pub kref: kref, + pub mode: rdma_counter_mode, + pub lock: mutex, + pub stats: *mut rdma_hw_stats, + pub port: u32_, +} +#[repr(C)] +pub struct rdma_hw_stats { + pub lock: mutex, + pub timestamp: ::aya_ebpf::cty::c_ulong, + pub lifespan: ::aya_ebpf::cty::c_ulong, + pub descs: *const rdma_stat_desc, + pub is_disabled: *mut ::aya_ebpf::cty::c_ulong, + pub num_counters: ::aya_ebpf::cty::c_int, + pub value: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rdma_link_ops { + pub list: list_head, + pub type_: *const ::aya_ebpf::cty::c_char, + pub newlink: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const ::aya_ebpf::cty::c_char, + arg2: *mut net_device, + ) -> ::aya_ebpf::cty::c_int, + >, + pub dellink: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_device) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rdma_netdev_alloc_params { + pub sizeof_priv: usize, + pub txqs: ::aya_ebpf::cty::c_uint, + pub rxqs: ::aya_ebpf::cty::c_uint, + pub param: *mut ::aya_ebpf::cty::c_void, + pub initialize_rdma_netdev: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_device, + arg2: u32_, + arg3: *mut net_device, + arg4: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rdma_stat_desc { + pub name: *const ::aya_ebpf::cty::c_char, + pub flags: ::aya_ebpf::cty::c_uint, + pub priv_: *const ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rdma_user_mmap_entry { + pub ref_: kref, + pub ucontext: *mut ib_ucontext, + pub start_pgoff: ::aya_ebpf::cty::c_ulong, + pub npages: usize, + pub driver_removed: bool_, + pub dmabufs_lock: mutex, + pub dmabufs: list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct readahead_control { + pub file: *mut file, + pub mapping: *mut address_space, + pub ra: *mut file_ra_state, + pub _index: ::aya_ebpf::cty::c_ulong, + pub _nr_pages: ::aya_ebpf::cty::c_uint, + pub _batch_count: ::aya_ebpf::cty::c_uint, + pub dropbehind: bool_, + pub _workingset: bool_, + pub _pflags: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct reclaim_state { + pub reclaimed: ::aya_ebpf::cty::c_ulong, + pub mm_walk: *mut lru_gen_mm_walk, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct reg_default { + pub reg: ::aya_ebpf::cty::c_uint, + pub def: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct reg_sequence { + pub reg: ::aya_ebpf::cty::c_uint, + pub def: ::aya_ebpf::cty::c_uint, + pub delay_us: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct regcache_ops { + pub name: *const ::aya_ebpf::cty::c_char, + pub type_: regcache_type::Type, + pub init: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub exit: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub populate: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub debugfs_init: ::core::option::Option, + pub read: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut regmap, + arg2: ::aya_ebpf::cty::c_uint, + arg3: *mut ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub write: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut regmap, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub sync: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut regmap, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub drop: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut regmap, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, +} +pub type regex_match_func = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ::aya_ebpf::cty::c_char, + arg2: *mut regex, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct regex { + pub pattern: [::aya_ebpf::cty::c_char; 256usize], + pub len: ::aya_ebpf::cty::c_int, + pub field_len: ::aya_ebpf::cty::c_int, + pub match_: regex_match_func, +} +pub type regmap_lock = + ::core::option::Option; +pub type regmap_unlock = + ::core::option::Option; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct regmap_format { + pub buf_size: usize, + pub reg_bytes: usize, + pub pad_bytes: usize, + pub val_bytes: usize, + pub reg_shift: s8, + pub format_write: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut regmap, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_uint, + ), + >, + pub format_reg: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ::aya_ebpf::cty::c_void, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_uint, + ), + >, + pub format_val: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ::aya_ebpf::cty::c_void, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_uint, + ), + >, + pub parse_val: ::core::option::Option< + unsafe extern "C" fn(arg1: *const ::aya_ebpf::cty::c_void) -> ::aya_ebpf::cty::c_uint, + >, + pub parse_inplace: + ::core::option::Option, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct regmap { + pub __bindgen_anon_1: regmap__bindgen_ty_1, + pub lock_key: *mut lock_class_key, + pub lock: regmap_lock, + pub unlock: regmap_unlock, + pub lock_arg: *mut ::aya_ebpf::cty::c_void, + pub alloc_flags: gfp_t, + pub reg_base: ::aya_ebpf::cty::c_uint, + pub dev: *mut device, + pub work_buf: *mut ::aya_ebpf::cty::c_void, + pub format: regmap_format, + pub bus: *const regmap_bus, + pub bus_context: *mut ::aya_ebpf::cty::c_void, + pub name: *const ::aya_ebpf::cty::c_char, + pub async_lock: spinlock_t, + pub async_waitq: wait_queue_head_t, + pub async_list: list_head, + pub async_free: list_head, + pub async_ret: ::aya_ebpf::cty::c_int, + pub async_: bool_, + pub debugfs_disable: bool_, + pub debugfs: *mut dentry, + pub debugfs_name: *const ::aya_ebpf::cty::c_char, + pub debugfs_dummy_id: ::aya_ebpf::cty::c_int, + pub debugfs_reg_len: ::aya_ebpf::cty::c_uint, + pub debugfs_val_len: ::aya_ebpf::cty::c_uint, + pub debugfs_tot_len: ::aya_ebpf::cty::c_uint, + pub debugfs_off_cache: list_head, + pub cache_lock: mutex, + pub max_register: ::aya_ebpf::cty::c_uint, + pub max_register_is_set: bool_, + pub writeable_reg: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut device, arg2: ::aya_ebpf::cty::c_uint) -> bool_, + >, + pub readable_reg: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut device, arg2: ::aya_ebpf::cty::c_uint) -> bool_, + >, + pub volatile_reg: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut device, arg2: ::aya_ebpf::cty::c_uint) -> bool_, + >, + pub precious_reg: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut device, arg2: ::aya_ebpf::cty::c_uint) -> bool_, + >, + pub writeable_noinc_reg: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut device, arg2: ::aya_ebpf::cty::c_uint) -> bool_, + >, + pub readable_noinc_reg: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut device, arg2: ::aya_ebpf::cty::c_uint) -> bool_, + >, + pub wr_table: *const regmap_access_table, + pub rd_table: *const regmap_access_table, + pub volatile_table: *const regmap_access_table, + pub precious_table: *const regmap_access_table, + pub wr_noinc_table: *const regmap_access_table, + pub rd_noinc_table: *const regmap_access_table, + pub reg_read: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ::aya_ebpf::cty::c_void, + arg2: ::aya_ebpf::cty::c_uint, + arg3: *mut ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub reg_write: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ::aya_ebpf::cty::c_void, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub reg_update_bits: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ::aya_ebpf::cty::c_void, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_uint, + arg4: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub read: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ::aya_ebpf::cty::c_void, + arg2: *const ::aya_ebpf::cty::c_void, + arg3: usize, + arg4: *mut ::aya_ebpf::cty::c_void, + arg5: usize, + ) -> ::aya_ebpf::cty::c_int, + >, + pub write: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ::aya_ebpf::cty::c_void, + arg2: *const ::aya_ebpf::cty::c_void, + arg3: usize, + ) -> ::aya_ebpf::cty::c_int, + >, + pub reg_default_cb: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut device, + arg2: ::aya_ebpf::cty::c_uint, + arg3: *mut ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub read_flag_mask: ::aya_ebpf::cty::c_ulong, + pub write_flag_mask: ::aya_ebpf::cty::c_ulong, + pub reg_shift: ::aya_ebpf::cty::c_int, + pub reg_stride: ::aya_ebpf::cty::c_int, + pub reg_stride_order: ::aya_ebpf::cty::c_int, + pub defer_caching: bool_, + pub force_write_field: bool_, + pub cache_ops: *const regcache_ops, + pub cache_type: regcache_type::Type, + pub cache_size_raw: ::aya_ebpf::cty::c_uint, + pub cache_word_size: ::aya_ebpf::cty::c_uint, + pub num_reg_defaults: ::aya_ebpf::cty::c_uint, + pub num_reg_defaults_raw: ::aya_ebpf::cty::c_uint, + pub cache_only: bool_, + pub cache_bypass: bool_, + pub cache_free: bool_, + pub reg_defaults: *mut reg_default, + pub reg_defaults_raw: *const ::aya_ebpf::cty::c_void, + pub cache: *mut ::aya_ebpf::cty::c_void, + pub cache_dirty: bool_, + pub no_sync_defaults: bool_, + pub patch: *mut reg_sequence, + pub patch_regs: ::aya_ebpf::cty::c_uint, + pub can_sleep: bool_, + pub use_single_read: bool_, + pub use_single_write: bool_, + pub can_multi_write: bool_, + pub max_raw_read: usize, + pub max_raw_write: usize, + pub range_tree: rb_root, + pub selector_work_buf: *mut ::aya_ebpf::cty::c_void, + pub hwlock: *mut hwspinlock, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union regmap__bindgen_ty_1 { + pub mutex: mutex, + pub __bindgen_anon_1: regmap__bindgen_ty_1__bindgen_ty_1, + pub __bindgen_anon_2: regmap__bindgen_ty_1__bindgen_ty_2, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct regmap__bindgen_ty_1__bindgen_ty_1 { + pub spinlock: spinlock_t, + pub spinlock_flags: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct regmap__bindgen_ty_1__bindgen_ty_2 { + pub raw_spinlock: raw_spinlock_t, + pub raw_spinlock_flags: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct regmap_access_table { + pub yes_ranges: *const regmap_range, + pub n_yes_ranges: ::aya_ebpf::cty::c_uint, + pub no_ranges: *const regmap_range, + pub n_no_ranges: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct regmap_async { + pub list: list_head, + pub map: *mut regmap, + pub work_buf: *mut ::aya_ebpf::cty::c_void, +} +pub type regmap_hw_write = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ::aya_ebpf::cty::c_void, + arg2: *const ::aya_ebpf::cty::c_void, + arg3: usize, + ) -> ::aya_ebpf::cty::c_int, +>; +pub type regmap_hw_gather_write = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ::aya_ebpf::cty::c_void, + arg2: *const ::aya_ebpf::cty::c_void, + arg3: usize, + arg4: *const ::aya_ebpf::cty::c_void, + arg5: usize, + ) -> ::aya_ebpf::cty::c_int, +>; +pub type regmap_hw_async_write = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ::aya_ebpf::cty::c_void, + arg2: *const ::aya_ebpf::cty::c_void, + arg3: usize, + arg4: *const ::aya_ebpf::cty::c_void, + arg5: usize, + arg6: *mut regmap_async, + ) -> ::aya_ebpf::cty::c_int, +>; +pub type regmap_hw_reg_write = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ::aya_ebpf::cty::c_void, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, +>; +pub type regmap_hw_reg_noinc_write = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ::aya_ebpf::cty::c_void, + arg2: ::aya_ebpf::cty::c_uint, + arg3: *const ::aya_ebpf::cty::c_void, + arg4: usize, + ) -> ::aya_ebpf::cty::c_int, +>; +pub type regmap_hw_reg_update_bits = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ::aya_ebpf::cty::c_void, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_uint, + arg4: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, +>; +pub type regmap_hw_read = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ::aya_ebpf::cty::c_void, + arg2: *const ::aya_ebpf::cty::c_void, + arg3: usize, + arg4: *mut ::aya_ebpf::cty::c_void, + arg5: usize, + ) -> ::aya_ebpf::cty::c_int, +>; +pub type regmap_hw_reg_read = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ::aya_ebpf::cty::c_void, + arg2: ::aya_ebpf::cty::c_uint, + arg3: *mut ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, +>; +pub type regmap_hw_reg_noinc_read = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ::aya_ebpf::cty::c_void, + arg2: ::aya_ebpf::cty::c_uint, + arg3: *mut ::aya_ebpf::cty::c_void, + arg4: usize, + ) -> ::aya_ebpf::cty::c_int, +>; +pub type regmap_hw_free_context = + ::core::option::Option; +pub type regmap_hw_async_alloc = + ::core::option::Option *mut regmap_async>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct regmap_bus { + pub fast_io: bool_, + pub free_on_exit: bool_, + pub write: regmap_hw_write, + pub gather_write: regmap_hw_gather_write, + pub async_write: regmap_hw_async_write, + pub reg_write: regmap_hw_reg_write, + pub reg_noinc_write: regmap_hw_reg_noinc_write, + pub reg_update_bits: regmap_hw_reg_update_bits, + pub read: regmap_hw_read, + pub reg_read: regmap_hw_reg_read, + pub reg_noinc_read: regmap_hw_reg_noinc_read, + pub free_context: regmap_hw_free_context, + pub async_alloc: regmap_hw_async_alloc, + pub read_flag_mask: u8_, + pub reg_format_endian_default: regmap_endian::Type, + pub val_format_endian_default: regmap_endian::Type, + pub max_raw_read: usize, + pub max_raw_write: usize, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct regmap_range { + pub range_min: ::aya_ebpf::cty::c_uint, + pub range_max: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct regulator_voltage { + pub min_uV: ::aya_ebpf::cty::c_int, + pub max_uV: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct regulator { + pub dev: *mut device, + pub list: list_head, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub uA_load: ::aya_ebpf::cty::c_int, + pub enable_count: ::aya_ebpf::cty::c_uint, + pub deferred_disables: ::aya_ebpf::cty::c_uint, + pub voltage: [regulator_voltage; 5usize], + pub supply_name: *const ::aya_ebpf::cty::c_char, + pub dev_attr: device_attribute, + pub rdev: *mut regulator_dev, + pub debugfs: *mut dentry, +} +impl regulator { + #[inline] + pub fn always_on(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_always_on(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn always_on_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_always_on_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn bypass(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_bypass(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn bypass_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_bypass_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn device_link(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_device_link(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn device_link_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_device_link_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + always_on: ::aya_ebpf::cty::c_uint, + bypass: ::aya_ebpf::cty::c_uint, + device_link: ::aya_ebpf::cty::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let always_on: u32 = unsafe { ::core::mem::transmute(always_on) }; + always_on as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let bypass: u32 = unsafe { ::core::mem::transmute(bypass) }; + bypass as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let device_link: u32 = unsafe { ::core::mem::transmute(device_link) }; + device_link as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct regulator_config { + pub dev: *mut device, + pub init_data: *const regulator_init_data, + pub driver_data: *mut ::aya_ebpf::cty::c_void, + pub of_node: *mut device_node, + pub regmap: *mut regmap, + pub ena_gpiod: *mut gpio_desc, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct regulator_consumer_supply { + pub dev_name: *const ::aya_ebpf::cty::c_char, + pub supply: *const ::aya_ebpf::cty::c_char, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct regulator_coupler { + pub list: list_head, + pub attach_regulator: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut regulator_coupler, + arg2: *mut regulator_dev, + ) -> ::aya_ebpf::cty::c_int, + >, + pub detach_regulator: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut regulator_coupler, + arg2: *mut regulator_dev, + ) -> ::aya_ebpf::cty::c_int, + >, + pub balance_voltage: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut regulator_coupler, + arg2: *mut regulator_dev, + arg3: suspend_state_t, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct regulator_desc { + pub name: *const ::aya_ebpf::cty::c_char, + pub supply_name: *const ::aya_ebpf::cty::c_char, + pub of_match: *const ::aya_ebpf::cty::c_char, + pub of_match_full_name: bool_, + pub regulators_node: *const ::aya_ebpf::cty::c_char, + pub of_parse_cb: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut device_node, + arg2: *const regulator_desc, + arg3: *mut regulator_config, + ) -> ::aya_ebpf::cty::c_int, + >, + pub init_cb: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut regulator_dev, + arg2: *mut regulator_config, + ) -> ::aya_ebpf::cty::c_int, + >, + pub id: ::aya_ebpf::cty::c_int, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub n_voltages: ::aya_ebpf::cty::c_uint, + pub n_current_limits: ::aya_ebpf::cty::c_uint, + pub ops: *const regulator_ops, + pub irq: ::aya_ebpf::cty::c_int, + pub type_: regulator_type::Type, + pub owner: *mut module, + pub min_uV: ::aya_ebpf::cty::c_uint, + pub uV_step: ::aya_ebpf::cty::c_uint, + pub linear_min_sel: ::aya_ebpf::cty::c_uint, + pub fixed_uV: ::aya_ebpf::cty::c_int, + pub ramp_delay: ::aya_ebpf::cty::c_uint, + pub min_dropout_uV: ::aya_ebpf::cty::c_int, + pub linear_ranges: *const linear_range, + pub linear_range_selectors_bitfield: *const ::aya_ebpf::cty::c_uint, + pub n_linear_ranges: ::aya_ebpf::cty::c_int, + pub volt_table: *const ::aya_ebpf::cty::c_uint, + pub curr_table: *const ::aya_ebpf::cty::c_uint, + pub vsel_range_reg: ::aya_ebpf::cty::c_uint, + pub vsel_range_mask: ::aya_ebpf::cty::c_uint, + pub range_applied_by_vsel: bool_, + pub vsel_reg: ::aya_ebpf::cty::c_uint, + pub vsel_mask: ::aya_ebpf::cty::c_uint, + pub vsel_step: ::aya_ebpf::cty::c_uint, + pub csel_reg: ::aya_ebpf::cty::c_uint, + pub csel_mask: ::aya_ebpf::cty::c_uint, + pub apply_reg: ::aya_ebpf::cty::c_uint, + pub apply_bit: ::aya_ebpf::cty::c_uint, + pub enable_reg: ::aya_ebpf::cty::c_uint, + pub enable_mask: ::aya_ebpf::cty::c_uint, + pub enable_val: ::aya_ebpf::cty::c_uint, + pub disable_val: ::aya_ebpf::cty::c_uint, + pub enable_is_inverted: bool_, + pub bypass_reg: ::aya_ebpf::cty::c_uint, + pub bypass_mask: ::aya_ebpf::cty::c_uint, + pub bypass_val_on: ::aya_ebpf::cty::c_uint, + pub bypass_val_off: ::aya_ebpf::cty::c_uint, + pub active_discharge_on: ::aya_ebpf::cty::c_uint, + pub active_discharge_off: ::aya_ebpf::cty::c_uint, + pub active_discharge_mask: ::aya_ebpf::cty::c_uint, + pub active_discharge_reg: ::aya_ebpf::cty::c_uint, + pub soft_start_reg: ::aya_ebpf::cty::c_uint, + pub soft_start_mask: ::aya_ebpf::cty::c_uint, + pub soft_start_val_on: ::aya_ebpf::cty::c_uint, + pub pull_down_reg: ::aya_ebpf::cty::c_uint, + pub pull_down_mask: ::aya_ebpf::cty::c_uint, + pub pull_down_val_on: ::aya_ebpf::cty::c_uint, + pub ramp_reg: ::aya_ebpf::cty::c_uint, + pub ramp_mask: ::aya_ebpf::cty::c_uint, + pub ramp_delay_table: *const ::aya_ebpf::cty::c_uint, + pub n_ramp_values: ::aya_ebpf::cty::c_uint, + pub enable_time: ::aya_ebpf::cty::c_uint, + pub off_on_delay: ::aya_ebpf::cty::c_uint, + pub poll_enabled_time: ::aya_ebpf::cty::c_uint, + pub of_map_mode: ::core::option::Option< + unsafe extern "C" fn(arg1: ::aya_ebpf::cty::c_uint) -> ::aya_ebpf::cty::c_uint, + >, +} +impl regulator_desc { + #[inline] + pub fn continuous_voltage_range(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_continuous_voltage_range(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn continuous_voltage_range_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_continuous_voltage_range_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + continuous_voltage_range: ::aya_ebpf::cty::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let continuous_voltage_range: u32 = + unsafe { ::core::mem::transmute(continuous_voltage_range) }; + continuous_voltage_range as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct regulator_dev { + pub desc: *const regulator_desc, + pub exclusive: ::aya_ebpf::cty::c_int, + pub use_count: u32_, + pub open_count: u32_, + pub bypass_count: u32_, + pub list: list_head, + pub consumer_list: list_head, + pub coupling_desc: coupling_desc, + pub notifier: blocking_notifier_head, + pub mutex: ww_mutex, + pub mutex_owner: *mut task_struct, + pub ref_cnt: ::aya_ebpf::cty::c_int, + pub owner: *mut module, + pub dev: device, + pub bdev: device, + pub constraints: *mut regulation_constraints, + pub supply: *mut regulator, + pub supply_name: *const ::aya_ebpf::cty::c_char, + pub regmap: *mut regmap, + pub disable_work: delayed_work, + pub reg_data: *mut ::aya_ebpf::cty::c_void, + pub debugfs: *mut dentry, + pub ena_pin: *mut regulator_enable_gpio, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub last_off: ktime_t, + pub cached_err: ::aya_ebpf::cty::c_int, + pub use_cached_err: bool_, + pub err_lock: spinlock_t, + pub pw_requested_mW: ::aya_ebpf::cty::c_int, + pub supply_fwd_nb: notifier_block, +} +impl regulator_dev { + #[inline] + pub fn ena_gpio_state(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_ena_gpio_state(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn ena_gpio_state_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_ena_gpio_state_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn constraints_pending(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_constraints_pending(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn constraints_pending_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_constraints_pending_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn is_switch(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_is_switch(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn is_switch_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_is_switch_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + ena_gpio_state: ::aya_ebpf::cty::c_uint, + constraints_pending: ::aya_ebpf::cty::c_uint, + is_switch: ::aya_ebpf::cty::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let ena_gpio_state: u32 = unsafe { ::core::mem::transmute(ena_gpio_state) }; + ena_gpio_state as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let constraints_pending: u32 = unsafe { ::core::mem::transmute(constraints_pending) }; + constraints_pending as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let is_switch: u32 = unsafe { ::core::mem::transmute(is_switch) }; + is_switch as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct regulator_enable_gpio { + pub list: list_head, + pub gpiod: *mut gpio_desc, + pub enable_count: u32_, + pub request_count: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct regulator_ops { + pub list_voltage: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut regulator_dev, + arg2: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_voltage: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut regulator_dev, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + arg4: *mut ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub map_voltage: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut regulator_dev, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_voltage_sel: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut regulator_dev, + arg2: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_voltage: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut regulator_dev) -> ::aya_ebpf::cty::c_int, + >, + pub get_voltage_sel: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut regulator_dev) -> ::aya_ebpf::cty::c_int, + >, + pub set_current_limit: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut regulator_dev, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_current_limit: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut regulator_dev) -> ::aya_ebpf::cty::c_int, + >, + pub set_input_current_limit: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut regulator_dev, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_over_current_protection: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut regulator_dev, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + arg4: bool_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_over_voltage_protection: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut regulator_dev, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + arg4: bool_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_under_voltage_protection: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut regulator_dev, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + arg4: bool_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_thermal_protection: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut regulator_dev, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + arg4: bool_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_active_discharge: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut regulator_dev, arg2: bool_) -> ::aya_ebpf::cty::c_int, + >, + pub enable: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut regulator_dev) -> ::aya_ebpf::cty::c_int, + >, + pub disable: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut regulator_dev) -> ::aya_ebpf::cty::c_int, + >, + pub is_enabled: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut regulator_dev) -> ::aya_ebpf::cty::c_int, + >, + pub set_mode: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut regulator_dev, + arg2: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_mode: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut regulator_dev) -> ::aya_ebpf::cty::c_uint, + >, + pub get_error_flags: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut regulator_dev, + arg2: *mut ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub enable_time: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut regulator_dev) -> ::aya_ebpf::cty::c_int, + >, + pub set_ramp_delay: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut regulator_dev, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_voltage_time: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut regulator_dev, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_voltage_time_sel: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut regulator_dev, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_soft_start: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut regulator_dev) -> ::aya_ebpf::cty::c_int, + >, + pub get_status: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut regulator_dev) -> ::aya_ebpf::cty::c_int, + >, + pub get_optimum_mode: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut regulator_dev, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + arg4: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_uint, + >, + pub set_load: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut regulator_dev, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_bypass: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut regulator_dev, arg2: bool_) -> ::aya_ebpf::cty::c_int, + >, + pub get_bypass: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut regulator_dev, arg2: *mut bool_) -> ::aya_ebpf::cty::c_int, + >, + pub set_suspend_voltage: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut regulator_dev, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_suspend_enable: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut regulator_dev) -> ::aya_ebpf::cty::c_int, + >, + pub set_suspend_disable: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut regulator_dev) -> ::aya_ebpf::cty::c_int, + >, + pub set_suspend_mode: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut regulator_dev, + arg2: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub resume: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut regulator_dev) -> ::aya_ebpf::cty::c_int, + >, + pub set_pull_down: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut regulator_dev) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct regulatory_request { + pub callback_head: callback_head, + pub wiphy_idx: ::aya_ebpf::cty::c_int, + pub initiator: nl80211_reg_initiator::Type, + pub user_reg_hint_type: nl80211_user_reg_hint_type::Type, + pub alpha2: [::aya_ebpf::cty::c_char; 3usize], + pub dfs_region: nl80211_dfs_regions::Type, + pub intersect: bool_, + pub processed: bool_, + pub country_ie_env: environment_cap::Type, + pub list: list_head, +} +pub type rq_end_io_fn = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut request, + arg2: blk_status_t, + arg3: *const io_comp_batch, + ) -> rq_end_io_ret::Type, +>; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct request { + pub q: *mut request_queue, + pub mq_ctx: *mut blk_mq_ctx, + pub mq_hctx: *mut blk_mq_hw_ctx, + pub cmd_flags: blk_opf_t, + pub rq_flags: req_flags_t, + pub tag: ::aya_ebpf::cty::c_int, + pub internal_tag: ::aya_ebpf::cty::c_int, + pub timeout: ::aya_ebpf::cty::c_uint, + pub __data_len: ::aya_ebpf::cty::c_uint, + pub __sector: sector_t, + pub bio: *mut bio, + pub biotail: *mut bio, + pub __bindgen_anon_1: request__bindgen_ty_1, + pub part: *mut block_device, + pub alloc_time_ns: u64_, + pub start_time_ns: u64_, + pub io_start_time_ns: u64_, + pub wbt_flags: ::aya_ebpf::cty::c_ushort, + pub stats_sectors: ::aya_ebpf::cty::c_ushort, + pub nr_phys_segments: ::aya_ebpf::cty::c_ushort, + pub nr_integrity_segments: ::aya_ebpf::cty::c_ushort, + pub phys_gap_bit: ::aya_ebpf::cty::c_uchar, + pub crypt_ctx: *mut bio_crypt_ctx, + pub crypt_keyslot: *mut blk_crypto_keyslot, + pub state: mq_rq_state::Type, + pub ref_: atomic_t, + pub deadline: ::aya_ebpf::cty::c_ulong, + pub __bindgen_anon_2: request__bindgen_ty_2, + pub __bindgen_anon_3: request__bindgen_ty_3, + pub elv: request__bindgen_ty_4, + pub flush: request__bindgen_ty_5, + pub fifo_time: u64_, + pub end_io: rq_end_io_fn, + pub end_io_data: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union request__bindgen_ty_1 { + pub queuelist: list_head, + pub rq_next: *mut request, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union request__bindgen_ty_2 { + pub hash: hlist_node, + pub ipi_list: llist_node, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union request__bindgen_ty_3 { + pub rb_node: rb_node, + pub special_vec: bio_vec, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct request__bindgen_ty_4 { + pub icq: *mut io_cq, + pub priv_: [*mut ::aya_ebpf::cty::c_void; 2usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct request__bindgen_ty_5 { + pub seq: ::aya_ebpf::cty::c_uint, + pub saved_end_io: rq_end_io_fn, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct request_queue { + pub queuedata: *mut ::aya_ebpf::cty::c_void, + pub elevator: *mut elevator_queue, + pub mq_ops: *const blk_mq_ops, + pub queue_ctx: *mut blk_mq_ctx, + pub queue_flags: ::aya_ebpf::cty::c_ulong, + pub rq_timeout: ::aya_ebpf::cty::c_uint, + pub queue_depth: ::aya_ebpf::cty::c_uint, + pub refs: refcount_t, + pub nr_hw_queues: ::aya_ebpf::cty::c_uint, + pub queue_hw_ctx: *mut *mut blk_mq_hw_ctx, + pub q_usage_counter: percpu_ref, + pub io_lock_cls_key: lock_class_key, + pub io_lockdep_map: lockdep_map, + pub q_lock_cls_key: lock_class_key, + pub q_lockdep_map: lockdep_map, + pub last_merge: *mut request, + pub queue_lock: spinlock_t, + pub quiesce_depth: ::aya_ebpf::cty::c_int, + pub disk: *mut gendisk, + pub mq_kobj: *mut kobject, + pub limits: queue_limits, + pub dev: *mut device, + pub rpm_status: rpm_status::Type, + pub pm_only: atomic_t, + pub stats: *mut blk_queue_stats, + pub rq_qos: *mut rq_qos, + pub rq_qos_mutex: mutex, + pub id: ::aya_ebpf::cty::c_int, + pub nr_requests: ::aya_ebpf::cty::c_uint, + pub async_depth: ::aya_ebpf::cty::c_uint, + pub crypto_profile: *mut blk_crypto_profile, + pub crypto_kobject: *mut kobject, + pub timeout: timer_list, + pub timeout_work: work_struct, + pub nr_active_requests_shared_tags: atomic_t, + pub sched_shared_tags: *mut blk_mq_tags, + pub icq_list: list_head, + pub blkcg_pols: [::aya_ebpf::cty::c_ulong; 1usize], + pub root_blkg: *mut blkcg_gq, + pub blkg_list: list_head, + pub blkcg_mutex: mutex, + pub node: ::aya_ebpf::cty::c_int, + pub requeue_lock: spinlock_t, + pub requeue_list: list_head, + pub requeue_work: delayed_work, + pub blk_trace: *mut blk_trace, + pub fq: *mut blk_flush_queue, + pub flush_list: list_head, + pub elevator_lock: mutex, + pub sysfs_lock: mutex, + pub limits_lock: mutex, + pub unused_hctx_list: list_head, + pub unused_hctx_lock: spinlock_t, + pub mq_freeze_depth: ::aya_ebpf::cty::c_int, + pub td: *mut throtl_data, + pub callback_head: callback_head, + pub mq_freeze_wq: wait_queue_head_t, + pub mq_freeze_lock: mutex, + pub tag_set: *mut blk_mq_tag_set, + pub tag_set_list: list_head, + pub debugfs_dir: *mut dentry, + pub sched_debugfs_dir: *mut dentry, + pub rqos_debugfs_dir: *mut dentry, + pub debugfs_mutex: mutex, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct request_sock_ops { + pub family: ::aya_ebpf::cty::c_int, + pub obj_size: ::aya_ebpf::cty::c_uint, + pub slab: *mut kmem_cache, + pub slab_name: *mut ::aya_ebpf::cty::c_char, + pub send_ack: ::core::option::Option< + unsafe extern "C" fn(arg1: *const sock, arg2: *mut sk_buff, arg3: *mut request_sock), + >, + pub send_reset: ::core::option::Option< + unsafe extern "C" fn(arg1: *const sock, arg2: *mut sk_buff, arg3: sk_rst_reason::Type), + >, + pub destructor: ::core::option::Option, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct reset_control { + pub rcdev: *mut reset_controller_dev, + pub srcu: srcu_struct, + pub list: list_head, + pub id: ::aya_ebpf::cty::c_uint, + pub refcnt: kref, + pub acquired: bool_, + pub shared: bool_, + pub array: bool_, + pub deassert_count: atomic_t, + pub triggered_count: atomic_t, + pub lock: mutex, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct reset_control_ops { + pub reset: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut reset_controller_dev, + arg2: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, + pub assert: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut reset_controller_dev, + arg2: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, + pub deassert: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut reset_controller_dev, + arg2: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, + pub status: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut reset_controller_dev, + arg2: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct reset_controller_dev { + pub ops: *const reset_control_ops, + pub owner: *mut module, + pub list: list_head, + pub reset_control_head: list_head, + pub dev: *mut device, + pub of_node: *mut device_node, + pub of_reset_n_cells: ::aya_ebpf::cty::c_int, + pub of_xlate: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut reset_controller_dev, + arg2: *const of_phandle_args, + ) -> ::aya_ebpf::cty::c_int, + >, + pub fwnode: *mut fwnode_handle, + pub fwnode_reset_n_cells: ::aya_ebpf::cty::c_int, + pub fwnode_xlate: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut reset_controller_dev, + arg2: *const fwnode_reference_args, + ) -> ::aya_ebpf::cty::c_int, + >, + pub nr_resets: ::aya_ebpf::cty::c_uint, + pub lock: mutex, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct restart_block { + pub arch_data: ::aya_ebpf::cty::c_ulong, + pub fn_: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut restart_block) -> ::aya_ebpf::cty::c_long, + >, + pub __bindgen_anon_1: restart_block__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union restart_block__bindgen_ty_1 { + pub futex: restart_block__bindgen_ty_1__bindgen_ty_1, + pub nanosleep: restart_block__bindgen_ty_1__bindgen_ty_2, + pub poll: restart_block__bindgen_ty_1__bindgen_ty_3, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct restart_block__bindgen_ty_1__bindgen_ty_1 { + pub uaddr: *mut u32_, + pub val: u32_, + pub flags: u32_, + pub bitset: u32_, + pub time: ktime_t, + pub uaddr2: *mut u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct restart_block__bindgen_ty_1__bindgen_ty_2 { + pub clockid: clockid_t, + pub type_: timespec_type::Type, + pub __bindgen_anon_1: restart_block__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1, + pub expires: ktime_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union restart_block__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 { + pub rmtp: *mut __kernel_timespec, + pub compat_rmtp: *mut old_timespec32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct restart_block__bindgen_ty_1__bindgen_ty_3 { + pub ufds: *mut pollfd, + pub nfds: ::aya_ebpf::cty::c_int, + pub has_timeout: ::aya_ebpf::cty::c_int, + pub end_time: timespec64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct return_consumer { + pub cookie: __u64, + pub id: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct return_instance { + pub hprobe: hprobe, + pub func: ::aya_ebpf::cty::c_ulong, + pub stack: ::aya_ebpf::cty::c_ulong, + pub orig_ret_vaddr: ::aya_ebpf::cty::c_ulong, + pub chained: bool_, + pub cons_cnt: ::aya_ebpf::cty::c_int, + pub next: *mut return_instance, + pub rcu: callback_head, + pub consumer: return_consumer, + pub extra_consumers: *mut return_consumer, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 32usize]>, +} +impl return_instance { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 32usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 32usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rhash_lock_head {} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rhashtable_compare_arg { + pub ht: *mut rhashtable, + pub key: *const ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Debug)] +pub struct ring_buffer_cpu_meta { + pub first_buffer: ::aya_ebpf::cty::c_ulong, + pub head_buffer: ::aya_ebpf::cty::c_ulong, + pub commit_buffer: ::aya_ebpf::cty::c_ulong, + pub subbuf_size: __u32, + pub nr_subbufs: __u32, + pub buffers: __IncompleteArrayField<::aya_ebpf::cty::c_int>, +} +#[repr(C)] +#[derive(Debug)] +pub struct ring_buffer_event { + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, + pub array: __IncompleteArrayField, +} +impl ring_buffer_event { + #[inline] + pub fn type_len(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 5u8) as u32) } + } + #[inline] + pub fn set_type_len(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 5u8, val as u64) + } + } + #[inline] + pub unsafe fn type_len_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 5u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_type_len_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 5u8, + val as u64, + ) + } + } + #[inline] + pub fn time_delta(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 27u8) as u32) } + } + #[inline] + pub fn set_time_delta(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 27u8, val as u64) + } + } + #[inline] + pub unsafe fn time_delta_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 5usize, + 27u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_time_delta_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 5usize, + 27u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(type_len: u32_, time_delta: u32_) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 5u8, { + let type_len: u32 = unsafe { ::core::mem::transmute(type_len) }; + type_len as u64 + }); + __bindgen_bitfield_unit.set(5usize, 27u8, { + let time_delta: u32 = unsafe { ::core::mem::transmute(time_delta) }; + time_delta as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ring_buffer_iter { + pub cpu_buffer: *mut ring_buffer_per_cpu, + pub head: ::aya_ebpf::cty::c_ulong, + pub next_event: ::aya_ebpf::cty::c_ulong, + pub head_page: *mut buffer_page, + pub cache_reader_page: *mut buffer_page, + pub cache_read: ::aya_ebpf::cty::c_ulong, + pub cache_pages_removed: ::aya_ebpf::cty::c_ulong, + pub read_stamp: u64_, + pub page_stamp: u64_, + pub event: *mut ring_buffer_event, + pub event_size: usize, + pub missed_events: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ring_buffer_meta { + pub magic: ::aya_ebpf::cty::c_int, + pub struct_sizes: ::aya_ebpf::cty::c_int, + pub total_size: ::aya_ebpf::cty::c_ulong, + pub buffers_offset: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ring_buffer_per_cpu { + pub cpu: ::aya_ebpf::cty::c_int, + pub record_disabled: atomic_t, + pub resize_disabled: atomic_t, + pub buffer: *mut trace_buffer, + pub reader_lock: raw_spinlock_t, + pub lock: arch_spinlock_t, + pub lock_key: lock_class_key, + pub free_page: *mut buffer_data_page, + pub nr_pages: ::aya_ebpf::cty::c_ulong, + pub current_context: ::aya_ebpf::cty::c_uint, + pub pages: *mut list_head, + pub cnt: ::aya_ebpf::cty::c_ulong, + pub head_page: *mut buffer_page, + pub tail_page: *mut buffer_page, + pub commit_page: *mut buffer_page, + pub reader_page: *mut buffer_page, + pub lost_events: ::aya_ebpf::cty::c_ulong, + pub last_overrun: ::aya_ebpf::cty::c_ulong, + pub nest: ::aya_ebpf::cty::c_ulong, + pub entries_bytes: local_t, + pub entries: local_t, + pub overrun: local_t, + pub commit_overrun: local_t, + pub dropped_events: local_t, + pub committing: local_t, + pub commits: local_t, + pub pages_touched: local_t, + pub pages_lost: local_t, + pub pages_read: local_t, + pub last_pages_touch: ::aya_ebpf::cty::c_long, + pub shortest_full: usize, + pub read: ::aya_ebpf::cty::c_ulong, + pub read_bytes: ::aya_ebpf::cty::c_ulong, + pub write_stamp: rb_time_t, + pub before_stamp: rb_time_t, + pub event_stamp: [u64_; 5usize], + pub read_stamp: u64_, + pub pages_removed: ::aya_ebpf::cty::c_ulong, + pub mapped: ::aya_ebpf::cty::c_uint, + pub user_mapped: ::aya_ebpf::cty::c_uint, + pub mapping_lock: mutex, + pub subbuf_ids: *mut *mut buffer_page, + pub meta_page: *mut trace_buffer_meta, + pub ring_meta: *mut ring_buffer_cpu_meta, + pub remote: *mut ring_buffer_remote, + pub nr_pages_to_update: ::aya_ebpf::cty::c_long, + pub new_pages: list_head, + pub update_pages_work: work_struct, + pub update_done: completion, + pub irq_work: rb_irq_work, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ring_buffer_remote { + pub desc: *mut trace_buffer_desc, + pub swap_reader_page: ::core::option::Option< + unsafe extern "C" fn( + arg1: ::aya_ebpf::cty::c_uint, + arg2: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub reset: ::core::option::Option< + unsafe extern "C" fn( + arg1: ::aya_ebpf::cty::c_uint, + arg2: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub priv_: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct robust_list { + pub next: *mut robust_list, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct robust_list_head { + pub list: robust_list, + pub futex_offset: ::aya_ebpf::cty::c_long, + pub list_op_pending: *mut robust_list, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct root_domain { + pub refcount: atomic_t, + pub rto_count: atomic_t, + pub rcu: callback_head, + pub span: cpumask_var_t, + pub online: cpumask_var_t, + pub overloaded: bool_, + pub overutilized: bool_, + pub dlo_mask: cpumask_var_t, + pub dlo_count: atomic_t, + pub dl_bw: dl_bw, + pub cpudl: cpudl, + pub visit_cookie: u64_, + pub rto_push_work: irq_work, + pub rto_lock: raw_spinlock_t, + pub rto_loop: ::aya_ebpf::cty::c_int, + pub rto_cpu: ::aya_ebpf::cty::c_int, + pub rto_loop_next: atomic_t, + pub rto_loop_start: atomic_t, + pub rto_mask: cpumask_var_t, + pub cpupri: cpupri, + pub pd: *mut perf_domain, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rpc_cred_cache { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rpc_auth { + pub au_cslack: ::aya_ebpf::cty::c_uint, + pub au_rslack: ::aya_ebpf::cty::c_uint, + pub au_verfsize: ::aya_ebpf::cty::c_uint, + pub au_ralign: ::aya_ebpf::cty::c_uint, + pub au_flags: ::aya_ebpf::cty::c_ulong, + pub au_ops: *const rpc_authops, + pub au_flavor: rpc_authflavor_t, + pub au_count: refcount_t, + pub au_credcache: *mut rpc_cred_cache, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rpc_auth_create_args { + pub pseudoflavor: rpc_authflavor_t, + pub target_name: *const ::aya_ebpf::cty::c_char, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rpc_authops { + pub owner: *mut module, + pub au_flavor: rpc_authflavor_t, + pub au_name: *mut ::aya_ebpf::cty::c_char, + pub create: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const rpc_auth_create_args, + arg2: *mut rpc_clnt, + ) -> *mut rpc_auth, + >, + pub destroy: ::core::option::Option, + pub hash_cred: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut auth_cred, + arg2: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub lookup_cred: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut rpc_auth, + arg2: *mut auth_cred, + arg3: ::aya_ebpf::cty::c_int, + ) -> *mut rpc_cred, + >, + pub crcreate: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut rpc_auth, + arg2: *mut auth_cred, + arg3: ::aya_ebpf::cty::c_int, + arg4: gfp_t, + ) -> *mut rpc_cred, + >, + pub info2flavor: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rpcsec_gss_info) -> rpc_authflavor_t, + >, + pub flavor2info: ::core::option::Option< + unsafe extern "C" fn( + arg1: rpc_authflavor_t, + arg2: *mut rpcsec_gss_info, + ) -> ::aya_ebpf::cty::c_int, + >, + pub key_timeout: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rpc_auth, arg2: *mut rpc_cred) -> ::aya_ebpf::cty::c_int, + >, + pub ping: + ::core::option::Option ::aya_ebpf::cty::c_int>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rpc_call_ops { + pub rpc_call_prepare: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rpc_task, arg2: *mut ::aya_ebpf::cty::c_void), + >, + pub rpc_call_done: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rpc_task, arg2: *mut ::aya_ebpf::cty::c_void), + >, + pub rpc_count_stats: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rpc_task, arg2: *mut ::aya_ebpf::cty::c_void), + >, + pub rpc_release: + ::core::option::Option, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rpc_iostats { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rpc_pipe_dir_head { + pub pdh_entries: list_head, + pub pdh_dentry: *mut dentry, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rpc_rtt { + pub timeo: ::aya_ebpf::cty::c_ulong, + pub srtt: [::aya_ebpf::cty::c_ulong; 5usize], + pub sdrtt: [::aya_ebpf::cty::c_ulong; 5usize], + pub ntimeouts: [::aya_ebpf::cty::c_int; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rpc_timeout { + pub to_initval: ::aya_ebpf::cty::c_ulong, + pub to_maxval: ::aya_ebpf::cty::c_ulong, + pub to_increment: ::aya_ebpf::cty::c_ulong, + pub to_retries: ::aya_ebpf::cty::c_uint, + pub to_exponential: ::aya_ebpf::cty::c_uchar, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rpc_xprt_iter { + pub xpi_xpswitch: *mut rpc_xprt_switch, + pub xpi_cursor: *mut rpc_xprt, + pub xpi_ops: *const rpc_xprt_iter_ops, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rpc_clnt { + pub cl_count: refcount_t, + pub cl_clid: ::aya_ebpf::cty::c_uint, + pub cl_clients: list_head, + pub cl_tasks: list_head, + pub cl_pid: atomic_t, + pub cl_lock: spinlock_t, + pub cl_xprt: *mut rpc_xprt, + pub cl_procinfo: *const rpc_procinfo, + pub cl_prog: u32_, + pub cl_vers: u32_, + pub cl_maxproc: u32_, + pub cl_auth: *mut rpc_auth, + pub cl_stats: *mut rpc_stat, + pub cl_metrics: *mut rpc_iostats, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub cl_xprtsec: xprtsec_parms, + pub cl_rtt: *mut rpc_rtt, + pub cl_timeout: *const rpc_timeout, + pub cl_swapper: atomic_t, + pub cl_nodelen: ::aya_ebpf::cty::c_int, + pub cl_nodename: [::aya_ebpf::cty::c_char; 65usize], + pub cl_pipedir_objects: rpc_pipe_dir_head, + pub cl_parent: *mut rpc_clnt, + pub cl_rtt_default: rpc_rtt, + pub cl_timeout_default: rpc_timeout, + pub cl_program: *const rpc_program, + pub cl_principal: *const ::aya_ebpf::cty::c_char, + pub cl_debugfs: *mut dentry, + pub cl_sysfs: *mut rpc_sysfs_client, + pub __bindgen_anon_1: rpc_clnt__bindgen_ty_1, + pub cl_cred: *const cred, + pub cl_max_connect: ::aya_ebpf::cty::c_uint, + pub pipefs_sb: *mut super_block, + pub cl_task_count: atomic_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union rpc_clnt__bindgen_ty_1 { + pub cl_xpi: rpc_xprt_iter, + pub cl_work: work_struct, +} +impl rpc_clnt { + #[inline] + pub fn cl_softrtry(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_cl_softrtry(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn cl_softrtry_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_cl_softrtry_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn cl_softerr(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_cl_softerr(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn cl_softerr_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_cl_softerr_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn cl_discrtry(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_cl_discrtry(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn cl_discrtry_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_cl_discrtry_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn cl_noretranstimeo(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } + } + #[inline] + pub fn set_cl_noretranstimeo(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn cl_noretranstimeo_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_cl_noretranstimeo_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn cl_autobind(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } + } + #[inline] + pub fn set_cl_autobind(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn cl_autobind_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_cl_autobind_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn cl_chatty(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } + } + #[inline] + pub fn set_cl_chatty(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn cl_chatty_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 5usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_cl_chatty_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 5usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn cl_shutdown(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } + } + #[inline] + pub fn set_cl_shutdown(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn cl_shutdown_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 6usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_cl_shutdown_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 6usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn cl_netunreach_fatal(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } + } + #[inline] + pub fn set_cl_netunreach_fatal(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn cl_netunreach_fatal_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 7usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_cl_netunreach_fatal_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 7usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + cl_softrtry: ::aya_ebpf::cty::c_uint, + cl_softerr: ::aya_ebpf::cty::c_uint, + cl_discrtry: ::aya_ebpf::cty::c_uint, + cl_noretranstimeo: ::aya_ebpf::cty::c_uint, + cl_autobind: ::aya_ebpf::cty::c_uint, + cl_chatty: ::aya_ebpf::cty::c_uint, + cl_shutdown: ::aya_ebpf::cty::c_uint, + cl_netunreach_fatal: ::aya_ebpf::cty::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let cl_softrtry: u32 = unsafe { ::core::mem::transmute(cl_softrtry) }; + cl_softrtry as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let cl_softerr: u32 = unsafe { ::core::mem::transmute(cl_softerr) }; + cl_softerr as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let cl_discrtry: u32 = unsafe { ::core::mem::transmute(cl_discrtry) }; + cl_discrtry as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let cl_noretranstimeo: u32 = unsafe { ::core::mem::transmute(cl_noretranstimeo) }; + cl_noretranstimeo as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let cl_autobind: u32 = unsafe { ::core::mem::transmute(cl_autobind) }; + cl_autobind as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let cl_chatty: u32 = unsafe { ::core::mem::transmute(cl_chatty) }; + cl_chatty as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let cl_shutdown: u32 = unsafe { ::core::mem::transmute(cl_shutdown) }; + cl_shutdown as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let cl_netunreach_fatal: u32 = unsafe { ::core::mem::transmute(cl_netunreach_fatal) }; + cl_netunreach_fatal as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rpc_cred { + pub cr_hash: hlist_node, + pub cr_lru: list_head, + pub cr_rcu: callback_head, + pub cr_auth: *mut rpc_auth, + pub cr_ops: *const rpc_credops, + pub cr_expire: ::aya_ebpf::cty::c_ulong, + pub cr_flags: ::aya_ebpf::cty::c_ulong, + pub cr_count: refcount_t, + pub cr_cred: *const cred, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rpc_credops { + pub cr_name: *const ::aya_ebpf::cty::c_char, + pub cr_init: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rpc_auth, arg2: *mut rpc_cred) -> ::aya_ebpf::cty::c_int, + >, + pub crdestroy: ::core::option::Option, + pub crmatch: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut auth_cred, + arg2: *mut rpc_cred, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub crmarshal: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rpc_task, arg2: *mut xdr_stream) -> ::aya_ebpf::cty::c_int, + >, + pub crrefresh: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub crvalidate: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rpc_task, arg2: *mut xdr_stream) -> ::aya_ebpf::cty::c_int, + >, + pub crwrap_req: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rpc_task, arg2: *mut xdr_stream) -> ::aya_ebpf::cty::c_int, + >, + pub crunwrap_resp: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rpc_task, arg2: *mut xdr_stream) -> ::aya_ebpf::cty::c_int, + >, + pub crkey_timeout: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub crstringify_acceptor: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rpc_cred) -> *mut ::aya_ebpf::cty::c_char, + >, + pub crneed_reencode: ::core::option::Option bool_>, +} +pub type kxdreproc_t = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut rpc_rqst, + arg2: *mut xdr_stream, + arg3: *const ::aya_ebpf::cty::c_void, + ), +>; +pub type kxdrdproc_t = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut rpc_rqst, + arg2: *mut xdr_stream, + arg3: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rpc_procinfo { + pub p_proc: u32_, + pub p_encode: kxdreproc_t, + pub p_decode: kxdrdproc_t, + pub p_arglen: ::aya_ebpf::cty::c_uint, + pub p_replen: ::aya_ebpf::cty::c_uint, + pub p_timer: ::aya_ebpf::cty::c_uint, + pub p_statidx: u32_, + pub p_name: *const ::aya_ebpf::cty::c_char, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rpc_program { + pub name: *const ::aya_ebpf::cty::c_char, + pub number: u32_, + pub nrvers: ::aya_ebpf::cty::c_uint, + pub version: *mut *const rpc_version, + pub stats: *mut rpc_stat, + pub pipe_dir_name: *const ::aya_ebpf::cty::c_char, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xdr_buf { + pub head: [kvec; 1usize], + pub tail: [kvec; 1usize], + pub bvec: *mut bio_vec, + pub pages: *mut *mut page, + pub page_base: ::aya_ebpf::cty::c_uint, + pub page_len: ::aya_ebpf::cty::c_uint, + pub flags: ::aya_ebpf::cty::c_uint, + pub buflen: ::aya_ebpf::cty::c_uint, + pub len: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rpc_rqst { + pub rq_xprt: *mut rpc_xprt, + pub rq_snd_buf: xdr_buf, + pub rq_rcv_buf: xdr_buf, + pub rq_task: *mut rpc_task, + pub rq_cred: *mut rpc_cred, + pub rq_xid: __be32, + pub rq_cong: ::aya_ebpf::cty::c_int, + pub rq_seqnos: [u32_; 3usize], + pub rq_seqno_count: ::aya_ebpf::cty::c_uint, + pub rq_enc_pages_num: ::aya_ebpf::cty::c_int, + pub rq_enc_pages: *mut *mut page, + pub rq_release_snd_buf: ::core::option::Option, + pub __bindgen_anon_1: rpc_rqst__bindgen_ty_1, + pub rq_xmit: list_head, + pub rq_xmit2: list_head, + pub rq_buffer: *mut ::aya_ebpf::cty::c_void, + pub rq_callsize: usize, + pub rq_rbuffer: *mut ::aya_ebpf::cty::c_void, + pub rq_rcvsize: usize, + pub rq_xmit_bytes_sent: usize, + pub rq_reply_bytes_recvd: usize, + pub rq_private_buf: xdr_buf, + pub rq_majortimeo: ::aya_ebpf::cty::c_ulong, + pub rq_minortimeo: ::aya_ebpf::cty::c_ulong, + pub rq_timeout: ::aya_ebpf::cty::c_ulong, + pub rq_rtt: ktime_t, + pub rq_retries: ::aya_ebpf::cty::c_uint, + pub rq_connect_cookie: ::aya_ebpf::cty::c_uint, + pub rq_pin: atomic_t, + pub rq_bytes_sent: u32_, + pub rq_xtime: ktime_t, + pub rq_ntrans: ::aya_ebpf::cty::c_int, + pub rq_bc_list: lwq_node, + pub rq_bc_pa_state: ::aya_ebpf::cty::c_ulong, + pub rq_bc_pa_list: list_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union rpc_rqst__bindgen_ty_1 { + pub rq_list: list_head, + pub rq_recv: rb_node, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rpc_stat { + pub program: *const rpc_program, + pub netcnt: ::aya_ebpf::cty::c_uint, + pub netudpcnt: ::aya_ebpf::cty::c_uint, + pub nettcpcnt: ::aya_ebpf::cty::c_uint, + pub nettcpconn: ::aya_ebpf::cty::c_uint, + pub netreconn: ::aya_ebpf::cty::c_uint, + pub rpccnt: ::aya_ebpf::cty::c_uint, + pub rpcretrans: ::aya_ebpf::cty::c_uint, + pub rpcauthrefresh: ::aya_ebpf::cty::c_uint, + pub rpcgarbage: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rpc_sysfs_client { + pub kobject: kobject, + pub net: *mut net, + pub clnt: *mut rpc_clnt, + pub xprt_switch: *mut rpc_xprt_switch, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rpc_version { + pub number: u32_, + pub nrprocs: ::aya_ebpf::cty::c_uint, + pub procs: *const rpc_procinfo, + pub counts: *mut ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct svc_xprt { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rpc_sysfs_xprt { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rpc_xprt { + pub kref: kref, + pub ops: *const rpc_xprt_ops, + pub id: ::aya_ebpf::cty::c_uint, + pub timeout: *const rpc_timeout, + pub addr: __kernel_sockaddr_storage, + pub addrlen: usize, + pub prot: ::aya_ebpf::cty::c_int, + pub cong: ::aya_ebpf::cty::c_ulong, + pub cwnd: ::aya_ebpf::cty::c_ulong, + pub max_payload: usize, + pub binding: rpc_wait_queue, + pub sending: rpc_wait_queue, + pub pending: rpc_wait_queue, + pub backlog: rpc_wait_queue, + pub free: list_head, + pub max_reqs: ::aya_ebpf::cty::c_uint, + pub min_reqs: ::aya_ebpf::cty::c_uint, + pub num_reqs: ::aya_ebpf::cty::c_uint, + pub state: ::aya_ebpf::cty::c_ulong, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub swapper: atomic_t, + pub bind_index: ::aya_ebpf::cty::c_uint, + pub xprt_switch: list_head, + pub bind_timeout: ::aya_ebpf::cty::c_ulong, + pub reestablish_timeout: ::aya_ebpf::cty::c_ulong, + pub xprtsec: xprtsec_parms, + pub connect_cookie: ::aya_ebpf::cty::c_uint, + pub task_cleanup: work_struct, + pub timer: timer_list, + pub last_used: ::aya_ebpf::cty::c_ulong, + pub idle_timeout: ::aya_ebpf::cty::c_ulong, + pub connect_timeout: ::aya_ebpf::cty::c_ulong, + pub max_reconnect_timeout: ::aya_ebpf::cty::c_ulong, + pub queuelen: atomic_long_t, + pub transport_lock: spinlock_t, + pub reserve_lock: spinlock_t, + pub queue_lock: spinlock_t, + pub xid: u32_, + pub snd_task: *mut rpc_task, + pub xmit_queue: list_head, + pub xmit_queuelen: atomic_long_t, + pub bc_xprt: *mut svc_xprt, + pub bc_serv: *mut svc_serv, + pub bc_alloc_max: ::aya_ebpf::cty::c_uint, + pub bc_alloc_count: ::aya_ebpf::cty::c_uint, + pub bc_slot_count: atomic_t, + pub bc_pa_lock: spinlock_t, + pub bc_pa_list: list_head, + pub recv_queue: rb_root, + pub stat: rpc_xprt__bindgen_ty_1, + pub xprt_net: *mut net, + pub ns_tracker: netns_tracker, + pub servername: *const ::aya_ebpf::cty::c_char, + pub address_strings: [*const ::aya_ebpf::cty::c_char; 6usize], + pub debugfs: *mut dentry, + pub rcu: callback_head, + pub xprt_class: *const xprt_class, + pub xprt_sysfs: *mut rpc_sysfs_xprt, + pub main: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rpc_xprt__bindgen_ty_1 { + pub bind_count: ::aya_ebpf::cty::c_ulong, + pub connect_count: ::aya_ebpf::cty::c_ulong, + pub connect_start: ::aya_ebpf::cty::c_ulong, + pub connect_time: ::aya_ebpf::cty::c_ulong, + pub sends: ::aya_ebpf::cty::c_ulong, + pub recvs: ::aya_ebpf::cty::c_ulong, + pub bad_xids: ::aya_ebpf::cty::c_ulong, + pub max_slots: ::aya_ebpf::cty::c_ulong, + pub req_u: ::aya_ebpf::cty::c_ulonglong, + pub bklog_u: ::aya_ebpf::cty::c_ulonglong, + pub sending_u: ::aya_ebpf::cty::c_ulonglong, + pub pending_u: ::aya_ebpf::cty::c_ulonglong, +} +impl rpc_xprt { + #[inline] + pub fn resvport(&self) -> ::aya_ebpf::cty::c_uchar { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_resvport(&mut self, val: ::aya_ebpf::cty::c_uchar) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn resvport_raw(this: *const Self) -> ::aya_ebpf::cty::c_uchar { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_resvport_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uchar) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn reuseport(&self) -> ::aya_ebpf::cty::c_uchar { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_reuseport(&mut self, val: ::aya_ebpf::cty::c_uchar) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn reuseport_raw(this: *const Self) -> ::aya_ebpf::cty::c_uchar { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_reuseport_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uchar) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + resvport: ::aya_ebpf::cty::c_uchar, + reuseport: ::aya_ebpf::cty::c_uchar, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let resvport: u8 = unsafe { ::core::mem::transmute(resvport) }; + resvport as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let reuseport: u8 = unsafe { ::core::mem::transmute(reuseport) }; + reuseport as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rpc_xprt_iter_ops { + pub xpi_rewind: ::core::option::Option, + pub xpi_xprt: + ::core::option::Option *mut rpc_xprt>, + pub xpi_next: + ::core::option::Option *mut rpc_xprt>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rpc_xprt_ops { + pub set_buffer_size: + ::core::option::Option, + pub reserve_xprt: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rpc_xprt, arg2: *mut rpc_task) -> ::aya_ebpf::cty::c_int, + >, + pub release_xprt: + ::core::option::Option, + pub alloc_slot: + ::core::option::Option, + pub free_slot: + ::core::option::Option, + pub rpcbind: ::core::option::Option, + pub set_port: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rpc_xprt, arg2: ::aya_ebpf::cty::c_ushort), + >, + pub connect: + ::core::option::Option, + pub get_srcaddr: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut rpc_xprt, + arg2: *mut ::aya_ebpf::cty::c_char, + arg3: usize, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_srcport: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rpc_xprt) -> ::aya_ebpf::cty::c_ushort, + >, + pub buf_alloc: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub buf_free: ::core::option::Option, + pub prepare_request: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rpc_rqst, arg2: *mut xdr_buf) -> ::aya_ebpf::cty::c_int, + >, + pub send_request: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub abort_send_request: ::core::option::Option, + pub wait_for_reply_request: ::core::option::Option, + pub timer: + ::core::option::Option, + pub release_request: ::core::option::Option, + pub close: ::core::option::Option, + pub destroy: ::core::option::Option, + pub set_connect_timeout: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut rpc_xprt, + arg2: ::aya_ebpf::cty::c_ulong, + arg3: ::aya_ebpf::cty::c_ulong, + ), + >, + pub print_stats: + ::core::option::Option, + pub enable_swap: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub disable_swap: ::core::option::Option, + pub inject_disconnect: ::core::option::Option, + pub bc_setup: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut rpc_xprt, + arg2: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub bc_maxpayload: ::core::option::Option usize>, + pub bc_num_slots: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rpc_xprt) -> ::aya_ebpf::cty::c_uint, + >, + pub bc_free_rqst: ::core::option::Option, + pub bc_destroy: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rpc_xprt, arg2: ::aya_ebpf::cty::c_uint), + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rpc_sysfs_xprt_switch { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rpc_xprt_switch { + pub xps_lock: spinlock_t, + pub xps_kref: kref, + pub xps_id: ::aya_ebpf::cty::c_uint, + pub xps_nxprts: ::aya_ebpf::cty::c_uint, + pub xps_nactive: ::aya_ebpf::cty::c_uint, + pub xps_nunique_destaddr_xprts: ::aya_ebpf::cty::c_uint, + pub xps_queuelen: atomic_long_t, + pub xps_xprt_list: list_head, + pub xps_net: *mut net, + pub xps_iter_ops: *const rpc_xprt_iter_ops, + pub xps_sysfs: *mut rpc_sysfs_xprt_switch, + pub xps_rcu: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rpcsec_gss_info { + pub oid: rpcsec_gss_oid, + pub qop: u32_, + pub service: u32_, +} +#[repr(C)] +#[derive(Debug)] +pub struct rps_map { + pub len: ::aya_ebpf::cty::c_uint, + pub rcu: callback_head, + pub cpus: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct uclamp_bucket { + pub _bitfield_align_1: [u64; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, +} +impl uclamp_bucket { + #[inline] + pub fn value(&self) -> ::aya_ebpf::cty::c_ulong { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 11u8) as u64) } + } + #[inline] + pub fn set_value(&mut self, val: ::aya_ebpf::cty::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 11u8, val as u64) + } + } + #[inline] + pub unsafe fn value_raw(this: *const Self) -> ::aya_ebpf::cty::c_ulong { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 11u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_value_raw(this: *mut Self, val: ::aya_ebpf::cty::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 11u8, + val as u64, + ) + } + } + #[inline] + pub fn tasks(&self) -> ::aya_ebpf::cty::c_ulong { + unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 53u8) as u64) } + } + #[inline] + pub fn set_tasks(&mut self, val: ::aya_ebpf::cty::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(11usize, 53u8, val as u64) + } + } + #[inline] + pub unsafe fn tasks_raw(this: *const Self) -> ::aya_ebpf::cty::c_ulong { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 11usize, + 53u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_tasks_raw(this: *mut Self, val: ::aya_ebpf::cty::c_ulong) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 11usize, + 53u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + value: ::aya_ebpf::cty::c_ulong, + tasks: ::aya_ebpf::cty::c_ulong, + ) -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 11u8, { + let value: u64 = unsafe { ::core::mem::transmute(value) }; + value as u64 + }); + __bindgen_bitfield_unit.set(11usize, 53u8, { + let tasks: u64 = unsafe { ::core::mem::transmute(tasks) }; + tasks as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct uclamp_rq { + pub value: ::aya_ebpf::cty::c_uint, + pub bucket: [uclamp_bucket; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rt_prio_array { + pub bitmap: [::aya_ebpf::cty::c_ulong; 2usize], + pub queue: [list_head; 100usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rt_rq { + pub active: rt_prio_array, + pub rt_nr_running: ::aya_ebpf::cty::c_uint, + pub rr_nr_running: ::aya_ebpf::cty::c_uint, + pub highest_prio: rt_rq__bindgen_ty_1, + pub overloaded: bool_, + pub pushable_tasks: plist_head, + pub rt_queued: ::aya_ebpf::cty::c_int, + pub tg: *mut task_group, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rt_rq__bindgen_ty_1 { + pub curr: ::aya_ebpf::cty::c_int, + pub next: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct scx_dispatch_q { + pub lock: raw_spinlock_t, + pub first_task: *mut task_struct, + pub list: list_head, + pub priq: rb_root, + pub nr: u32_, + pub seq: u32_, + pub id: u64_, + pub hash_node: rhash_head, + pub free_node: llist_node, + pub sched: *mut scx_sched, + pub pcpu: *mut scx_dsq_pcpu, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct scx_rq { + pub local_dsq: scx_dispatch_q, + pub runnable_list: list_head, + pub ddsp_deferred_locals: list_head, + pub ops_qseq: ::aya_ebpf::cty::c_ulong, + pub extra_enq_flags: u64_, + pub nr_running: u32_, + pub cpuperf_target: u32_, + pub in_select_cpu: bool_, + pub cpu_released: bool_, + pub flags: u32_, + pub nr_immed: u32_, + pub clock: u64_, + pub cpus_to_kick: cpumask_var_t, + pub cpus_to_kick_if_idle: cpumask_var_t, + pub cpus_to_preempt: cpumask_var_t, + pub cpus_to_wait: cpumask_var_t, + pub cpus_to_sync: cpumask_var_t, + pub kick_sync_pending: bool_, + pub kick_sync: ::aya_ebpf::cty::c_ulong, + pub sub_dispatch_prev: *mut task_struct, + pub deferred_reenq_lock: raw_spinlock_t, + pub deferred_reenq_locals_seq: u64_, + pub deferred_reenq_locals: list_head, + pub deferred_reenq_users: list_head, + pub deferred_bal_cb: balance_callback, + pub kick_sync_bal_cb: balance_callback, + pub deferred_irq_work: irq_work, + pub kick_cpus_irq_work: irq_work, +} +pub type dl_server_pick_f = ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sched_dl_entity, arg2: *mut rq_flags) -> *mut task_struct, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sched_dl_entity { + pub rb_node: rb_node, + pub dl_runtime: u64_, + pub dl_deadline: u64_, + pub dl_period: u64_, + pub dl_bw: u64_, + pub dl_density: u64_, + pub runtime: s64, + pub deadline: u64_, + pub flags: ::aya_ebpf::cty::c_uint, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, + pub dl_timer: hrtimer, + pub inactive_timer: hrtimer, + pub rq: *mut rq, + pub server_pick_task: dl_server_pick_f, + pub pi_se: *mut sched_dl_entity, +} +impl sched_dl_entity { + #[inline] + pub fn dl_throttled(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_dl_throttled(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dl_throttled_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_dl_throttled_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn dl_yielded(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_dl_yielded(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dl_yielded_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_dl_yielded_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn dl_non_contending(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_dl_non_contending(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dl_non_contending_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_dl_non_contending_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn dl_overrun(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } + } + #[inline] + pub fn set_dl_overrun(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dl_overrun_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_dl_overrun_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn dl_server(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } + } + #[inline] + pub fn set_dl_server(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dl_server_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_dl_server_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn dl_server_active(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } + } + #[inline] + pub fn set_dl_server_active(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dl_server_active_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 5usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_dl_server_active_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 5usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn dl_defer(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } + } + #[inline] + pub fn set_dl_defer(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dl_defer_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 6usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_dl_defer_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 6usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn dl_defer_armed(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } + } + #[inline] + pub fn set_dl_defer_armed(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dl_defer_armed_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 7usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_dl_defer_armed_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 7usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn dl_defer_running(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) } + } + #[inline] + pub fn set_dl_defer_running(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(8usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dl_defer_running_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 8usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_dl_defer_running_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 8usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn dl_defer_idle(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) } + } + #[inline] + pub fn set_dl_defer_idle(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(9usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dl_defer_idle_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 9usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_dl_defer_idle_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 9usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + dl_throttled: ::aya_ebpf::cty::c_uint, + dl_yielded: ::aya_ebpf::cty::c_uint, + dl_non_contending: ::aya_ebpf::cty::c_uint, + dl_overrun: ::aya_ebpf::cty::c_uint, + dl_server: ::aya_ebpf::cty::c_uint, + dl_server_active: ::aya_ebpf::cty::c_uint, + dl_defer: ::aya_ebpf::cty::c_uint, + dl_defer_armed: ::aya_ebpf::cty::c_uint, + dl_defer_running: ::aya_ebpf::cty::c_uint, + dl_defer_idle: ::aya_ebpf::cty::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 2usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let dl_throttled: u32 = unsafe { ::core::mem::transmute(dl_throttled) }; + dl_throttled as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let dl_yielded: u32 = unsafe { ::core::mem::transmute(dl_yielded) }; + dl_yielded as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let dl_non_contending: u32 = unsafe { ::core::mem::transmute(dl_non_contending) }; + dl_non_contending as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let dl_overrun: u32 = unsafe { ::core::mem::transmute(dl_overrun) }; + dl_overrun as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let dl_server: u32 = unsafe { ::core::mem::transmute(dl_server) }; + dl_server as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let dl_server_active: u32 = unsafe { ::core::mem::transmute(dl_server_active) }; + dl_server_active as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let dl_defer: u32 = unsafe { ::core::mem::transmute(dl_defer) }; + dl_defer as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let dl_defer_armed: u32 = unsafe { ::core::mem::transmute(dl_defer_armed) }; + dl_defer_armed as u64 + }); + __bindgen_bitfield_unit.set(8usize, 1u8, { + let dl_defer_running: u32 = unsafe { ::core::mem::transmute(dl_defer_running) }; + dl_defer_running as u64 + }); + __bindgen_bitfield_unit.set(9usize, 1u8, { + let dl_defer_idle: u32 = unsafe { ::core::mem::transmute(dl_defer_idle) }; + dl_defer_idle as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sched_info { + pub pcount: ::aya_ebpf::cty::c_ulong, + pub run_delay: ::aya_ebpf::cty::c_ulonglong, + pub max_run_delay: ::aya_ebpf::cty::c_ulonglong, + pub min_run_delay: ::aya_ebpf::cty::c_ulonglong, + pub last_arrival: ::aya_ebpf::cty::c_ulonglong, + pub last_queued: ::aya_ebpf::cty::c_ulonglong, + pub max_run_delay_ts: timespec64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rq { + pub nr_running: ::aya_ebpf::cty::c_uint, + pub nr_numa_running: ::aya_ebpf::cty::c_uint, + pub nr_preferred_running: ::aya_ebpf::cty::c_uint, + pub ttwu_pending: ::aya_ebpf::cty::c_uint, + pub cpu_capacity: ::aya_ebpf::cty::c_ulong, + pub __bindgen_anon_1: rq__bindgen_ty_1, + pub idle: *mut task_struct, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, + pub nr_switches: u64_, + pub __lock: raw_spinlock_t, + pub nohz_tick_stopped: ::aya_ebpf::cty::c_uint, + pub nohz_flags: atomic_t, + pub has_blocked_load: ::aya_ebpf::cty::c_uint, + pub last_blocked_load_update_tick: ::aya_ebpf::cty::c_ulong, + pub nohz_csd: call_single_data_t, + pub poc_idle_committed: ::aya_ebpf::cty::c_uint, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 56usize]>, + pub uclamp: [uclamp_rq; 2usize], + pub uclamp_flags: ::aya_ebpf::cty::c_uint, + pub _bitfield_align_3: [u8; 0], + pub _bitfield_3: __BindgenBitfieldUnit<[u8; 24usize]>, + pub cfs: cfs_rq, + pub rt: rt_rq, + pub dl: dl_rq, + pub scx: scx_rq, + pub ext_server: sched_dl_entity, + pub fair_server: sched_dl_entity, + pub leaf_cfs_rq_list: list_head, + pub tmp_alone_branch: *mut list_head, + pub numa_migrate_on: ::aya_ebpf::cty::c_uint, + pub nr_uninterruptible: ::aya_ebpf::cty::c_ulong, + pub dl_server: *mut sched_dl_entity, + pub stop: *mut task_struct, + pub next_class: *const sched_class, + pub next_balance: ::aya_ebpf::cty::c_ulong, + pub prev_mm: *mut mm_struct, + pub _bitfield_align_4: [u8; 0], + pub _bitfield_4: __BindgenBitfieldUnit<[u8; 24usize]>, + pub clock_task: u64_, + pub clock_pelt: u64_, + pub clock: u64_, + pub lost_idle_time: ::aya_ebpf::cty::c_ulong, + pub clock_update_flags: ::aya_ebpf::cty::c_uint, + pub clock_pelt_idle: u64_, + pub clock_idle: u64_, + pub last_seen_need_resched_ns: u64_, + pub ticks_without_resched: ::aya_ebpf::cty::c_int, + pub membarrier_state: ::aya_ebpf::cty::c_int, + pub rd: *mut root_domain, + pub sd: *mut sched_domain, + pub balance_callback: *mut balance_callback, + pub nohz_idle_balance: ::aya_ebpf::cty::c_uchar, + pub idle_balance: ::aya_ebpf::cty::c_uchar, + pub misfit_task_load: ::aya_ebpf::cty::c_ulong, + pub active_balance: ::aya_ebpf::cty::c_int, + pub push_cpu: ::aya_ebpf::cty::c_int, + pub active_balance_work: cpu_stop_work, + pub cpu: ::aya_ebpf::cty::c_int, + pub online: ::aya_ebpf::cty::c_int, + pub cfs_tasks: list_head, + pub avg_rt: sched_avg, + pub avg_dl: sched_avg, + pub avg_irq: sched_avg, + pub idle_stamp: u64_, + pub avg_idle: u64_, + pub max_idle_balance_cost: u64_, + pub hotplug_wait: rcuwait, + pub prev_irq_time: u64_, + pub psi_irq_time: u64_, + pub prev_steal_time: u64_, + pub prev_steal_time_rq: u64_, + pub calc_load_update: ::aya_ebpf::cty::c_ulong, + pub calc_load_active: ::aya_ebpf::cty::c_long, + pub _bitfield_align_5: [u8; 0], + pub _bitfield_5: __BindgenBitfieldUnit<[u8; 16usize]>, + pub hrtick_csd: call_single_data_t, + pub hrtick_timer: hrtimer, + pub hrtick_time: ktime_t, + pub hrtick_delay: ktime_t, + pub hrtick_sched: ::aya_ebpf::cty::c_uint, + pub rq_sched_info: sched_info, + pub rq_cpu_time: ::aya_ebpf::cty::c_ulonglong, + pub yld_count: ::aya_ebpf::cty::c_uint, + pub sched_count: ::aya_ebpf::cty::c_uint, + pub sched_goidle: ::aya_ebpf::cty::c_uint, + pub ttwu_count: ::aya_ebpf::cty::c_uint, + pub ttwu_local: ::aya_ebpf::cty::c_uint, + pub idle_state: *mut cpuidle_state, + pub nr_pinned: ::aya_ebpf::cty::c_uint, + pub push_busy: ::aya_ebpf::cty::c_uint, + pub push_work: cpu_stop_work, + pub core: *mut rq, + pub core_pick: *mut task_struct, + pub core_dl_server: *mut sched_dl_entity, + pub core_enabled: ::aya_ebpf::cty::c_uint, + pub core_sched_seq: ::aya_ebpf::cty::c_uint, + pub core_tree: rb_root, + pub core_task_seq: ::aya_ebpf::cty::c_uint, + pub core_pick_seq: ::aya_ebpf::cty::c_uint, + pub core_cookie: ::aya_ebpf::cty::c_ulong, + pub core_forceidle_count: ::aya_ebpf::cty::c_uint, + pub core_forceidle_seq: ::aya_ebpf::cty::c_uint, + pub core_forceidle_occupation: ::aya_ebpf::cty::c_uint, + pub core_forceidle_start: u64_, + pub scratch_mask: cpumask_var_t, + pub cfsb_csd: call_single_data_t, + pub cfsb_csd_list: list_head, + pub nr_iowait: atomic_t, + pub _bitfield_align_6: [u8; 0], + pub _bitfield_6: __BindgenBitfieldUnit<[u8; 40usize]>, + pub __bindgen_padding_0: u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union rq__bindgen_ty_1 { + pub donor: *mut task_struct, + pub curr: *mut task_struct, +} +impl rq { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + __bindgen_bitfield_unit + } + #[inline] + pub fn new_bitfield_3() -> __BindgenBitfieldUnit<[u8; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + __bindgen_bitfield_unit + } + #[inline] + pub fn new_bitfield_4() -> __BindgenBitfieldUnit<[u8; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + __bindgen_bitfield_unit + } + #[inline] + pub fn new_bitfield_5() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rq_qos_ops { + pub throttle: ::core::option::Option, + pub track: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rq_qos, arg2: *mut request, arg3: *mut bio), + >, + pub merge: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rq_qos, arg2: *mut request, arg3: *mut bio), + >, + pub issue: ::core::option::Option, + pub requeue: + ::core::option::Option, + pub done: ::core::option::Option, + pub done_bio: ::core::option::Option, + pub cleanup: ::core::option::Option, + pub queue_depth_changed: ::core::option::Option, + pub exit: ::core::option::Option, + pub debugfs_attrs: *const blk_mq_debugfs_attr, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rseq_slice_ctrl { + pub __bindgen_anon_1: rseq_slice_ctrl__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union rseq_slice_ctrl__bindgen_ty_1 { + pub all: __u32, + pub __bindgen_anon_1: rseq_slice_ctrl__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rseq_slice_ctrl__bindgen_ty_1__bindgen_ty_1 { + pub request: __u8, + pub granted: __u8, + pub __reserved: __u16, +} +#[repr(C)] +pub struct rseq { + pub cpu_id_start: __u32, + pub cpu_id: __u32, + pub rseq_cs: __u64, + pub flags: __u32, + pub node_id: __u32, + pub mm_cid: __u32, + pub slice_ctrl: rseq_slice_ctrl, + pub __reserved: __u8, + pub end: __IncompleteArrayField<::aya_ebpf::cty::c_char>, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, + pub __bindgen_padding_0: [u8; 7usize], +} +impl rseq { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rseq_event { + pub __bindgen_anon_1: rseq_event__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union rseq_event__bindgen_ty_1 { + pub all: u64_, + pub __bindgen_anon_1: rseq_event__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rseq_event__bindgen_ty_1__bindgen_ty_1 { + pub __bindgen_anon_1: rseq_event__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, + pub has_rseq: u8_, + pub __pad: u8_, + pub __bindgen_anon_2: rseq_event__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union rseq_event__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { + pub events: u32_, + pub __bindgen_anon_1: rseq_event__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rseq_event__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { + pub sched_switch: u8_, + pub ids_changed: u8_, + pub user_irq: u8_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union rseq_event__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2 { + pub error: u16_, + pub __bindgen_anon_1: rseq_event__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rseq_event__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 { + pub fatal: u8_, + pub slowpath: u8_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rseq_ids { + pub __bindgen_anon_1: rseq_ids__bindgen_ty_1, + pub node_id: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union rseq_ids__bindgen_ty_1 { + pub cpu_cid: u64_, + pub __bindgen_anon_1: rseq_ids__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rseq_ids__bindgen_ty_1__bindgen_ty_1 { + pub cpu_id: u32_, + pub mm_cid: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union rseq_slice_state { + pub state: u16_, + pub __bindgen_anon_1: rseq_slice_state__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rseq_slice_state__bindgen_ty_1 { + pub enabled: u8_, + pub granted: u8_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rseq_slice { + pub state: rseq_slice_state, + pub expires: u64_, + pub yielded: u8_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rseq_data { + pub usrptr: *mut rseq, + pub len: u32_, + pub sig: u32_, + pub event: rseq_event, + pub ids: rseq_ids, + pub slice: rseq_slice, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rt6_exception_bucket { + pub chain: hlist_head, + pub depth: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rt6_statistics { + pub fib_nodes: __u32, + pub fib_route_nodes: __u32, + pub fib_rt_entries: __u32, + pub fib_rt_cache: __u32, + pub fib_discarded_routes: __u32, + pub fib_rt_alloc: atomic_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rt_waiter_node { + pub entry: rb_node, + pub prio: ::aya_ebpf::cty::c_int, + pub deadline: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rt_mutex_waiter { + pub tree: rt_waiter_node, + pub pi_tree: rt_waiter_node, + pub task: *mut task_struct, + pub lock: *mut rt_mutex_base, + pub wake_state: ::aya_ebpf::cty::c_uint, + pub ww_ctx: *mut ww_acquire_ctx, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rtnl_link_ops { + pub list: list_head, + pub srcu: srcu_struct, + pub kind: *const ::aya_ebpf::cty::c_char, + pub priv_size: usize, + pub alloc: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut *mut nlattr, + arg2: *const ::aya_ebpf::cty::c_char, + arg3: ::aya_ebpf::cty::c_uchar, + arg4: ::aya_ebpf::cty::c_uint, + arg5: ::aya_ebpf::cty::c_uint, + ) -> *mut net_device, + >, + pub setup: ::core::option::Option, + pub netns_refund: bool_, + pub peer_type: u16_, + pub maxtype: ::aya_ebpf::cty::c_uint, + pub policy: *const nla_policy, + pub validate: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut *mut nlattr, + arg2: *mut *mut nlattr, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub newlink: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut rtnl_newlink_params, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub changelink: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut *mut nlattr, + arg3: *mut *mut nlattr, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub dellink: + ::core::option::Option, + pub get_size: ::core::option::Option usize>, + pub fill_info: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sk_buff, arg2: *const net_device) -> ::aya_ebpf::cty::c_int, + >, + pub get_xstats_size: + ::core::option::Option usize>, + pub fill_xstats: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sk_buff, arg2: *const net_device) -> ::aya_ebpf::cty::c_int, + >, + pub get_num_tx_queues: + ::core::option::Option ::aya_ebpf::cty::c_uint>, + pub get_num_rx_queues: + ::core::option::Option ::aya_ebpf::cty::c_uint>, + pub slave_maxtype: ::aya_ebpf::cty::c_uint, + pub slave_policy: *const nla_policy, + pub slave_changelink: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut net_device, + arg3: *mut *mut nlattr, + arg4: *mut *mut nlattr, + arg5: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_slave_size: ::core::option::Option< + unsafe extern "C" fn(arg1: *const net_device, arg2: *const net_device) -> usize, + >, + pub fill_slave_info: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sk_buff, + arg2: *const net_device, + arg3: *const net_device, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_link_net: + ::core::option::Option *mut net>, + pub get_linkxstats_size: ::core::option::Option< + unsafe extern "C" fn(arg1: *const net_device, arg2: ::aya_ebpf::cty::c_int) -> usize, + >, + pub fill_linkxstats: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sk_buff, + arg2: *const net_device, + arg3: *mut ::aya_ebpf::cty::c_int, + arg4: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rtnl_link_stats64 { + pub rx_packets: __u64, + pub tx_packets: __u64, + pub rx_bytes: __u64, + pub tx_bytes: __u64, + pub rx_errors: __u64, + pub tx_errors: __u64, + pub rx_dropped: __u64, + pub tx_dropped: __u64, + pub multicast: __u64, + pub collisions: __u64, + pub rx_length_errors: __u64, + pub rx_over_errors: __u64, + pub rx_crc_errors: __u64, + pub rx_frame_errors: __u64, + pub rx_fifo_errors: __u64, + pub rx_missed_errors: __u64, + pub tx_aborted_errors: __u64, + pub tx_carrier_errors: __u64, + pub tx_fifo_errors: __u64, + pub tx_heartbeat_errors: __u64, + pub tx_window_errors: __u64, + pub rx_compressed: __u64, + pub tx_compressed: __u64, + pub rx_nohandler: __u64, + pub rx_otherhost_dropped: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rtnl_newlink_params { + pub src_net: *mut net, + pub link_net: *mut net, + pub peer_net: *mut net, + pub tb: *mut *mut nlattr, + pub data: *mut *mut nlattr, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rwsem_waiter { + pub list: list_head, + pub task: *mut task_struct, + pub type_: rwsem_waiter_type::Type, + pub timeout: ::aya_ebpf::cty::c_ulong, + pub handoff_set: bool_, +} +#[repr(C)] +#[derive(Debug)] +pub struct saved_syn { + pub mac_hdrlen: u32_, + pub network_hdrlen: u32_, + pub tcp_hdrlen: u32_, + pub data: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sb_writers { + pub frozen: ::aya_ebpf::cty::c_ushort, + pub freeze_kcount: ::aya_ebpf::cty::c_int, + pub freeze_ucount: ::aya_ebpf::cty::c_int, + pub freeze_owner: *const ::aya_ebpf::cty::c_void, + pub rw_sem: [percpu_rw_semaphore; 3usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sbitmap_word { + pub word: ::aya_ebpf::cty::c_ulong, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 56usize]>, + pub cleared: ::aya_ebpf::cty::c_ulong, + pub swap_lock: raw_spinlock_t, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 48usize]>, + pub __bindgen_padding_0: u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sbq_wait_state { + pub wait: wait_queue_head_t, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 40usize]>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sched_class { + pub uclamp_enabled: ::aya_ebpf::cty::c_int, + pub enqueue_task: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rq, arg2: *mut task_struct, arg3: ::aya_ebpf::cty::c_int), + >, + pub dequeue_task: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut rq, + arg2: *mut task_struct, + arg3: ::aya_ebpf::cty::c_int, + ) -> bool_, + >, + pub yield_task: ::core::option::Option, + pub yield_to_task: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rq, arg2: *mut task_struct) -> bool_, + >, + pub wakeup_preempt: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rq, arg2: *mut task_struct, arg3: ::aya_ebpf::cty::c_int), + >, + pub balance: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut rq, + arg2: *mut task_struct, + arg3: *mut rq_flags, + ) -> ::aya_ebpf::cty::c_int, + >, + pub pick_task: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rq, arg2: *mut rq_flags) -> *mut task_struct, + >, + pub pick_next_task: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut rq, + arg2: *mut task_struct, + arg3: *mut rq_flags, + ) -> *mut task_struct, + >, + pub put_prev_task: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rq, arg2: *mut task_struct, arg3: *mut task_struct), + >, + pub set_next_task: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rq, arg2: *mut task_struct, arg3: bool_), + >, + pub select_task_rq: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut task_struct, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub migrate_task_rq: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut task_struct, arg2: ::aya_ebpf::cty::c_int), + >, + pub task_woken: + ::core::option::Option, + pub set_cpus_allowed: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut task_struct, arg2: *mut affinity_context), + >, + pub rq_online: ::core::option::Option, + pub rq_offline: ::core::option::Option, + pub find_lock_rq: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut task_struct, arg2: *mut rq) -> *mut rq, + >, + pub task_tick: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rq, arg2: *mut task_struct, arg3: ::aya_ebpf::cty::c_int), + >, + pub task_fork: ::core::option::Option, + pub task_dead: ::core::option::Option, + pub switching_from: + ::core::option::Option, + pub switched_from: + ::core::option::Option, + pub switching_to: + ::core::option::Option, + pub switched_to: + ::core::option::Option, + pub get_prio: + ::core::option::Option u64_>, + pub prio_changed: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rq, arg2: *mut task_struct, arg3: u64_), + >, + pub reweight_task: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rq, arg2: *mut task_struct, arg3: *const load_weight), + >, + pub get_rr_interval: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rq, arg2: *mut task_struct) -> ::aya_ebpf::cty::c_uint, + >, + pub update_curr: ::core::option::Option, + pub task_change_group: ::core::option::Option, + pub task_is_throttled: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut task_struct, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sched_domain { + pub parent: *mut sched_domain, + pub child: *mut sched_domain, + pub groups: *mut sched_group, + pub min_interval: ::aya_ebpf::cty::c_ulong, + pub max_interval: ::aya_ebpf::cty::c_ulong, + pub busy_factor: ::aya_ebpf::cty::c_uint, + pub imbalance_pct: ::aya_ebpf::cty::c_uint, + pub cache_nice_tries: ::aya_ebpf::cty::c_uint, + pub imb_numa_nr: ::aya_ebpf::cty::c_uint, + pub nohz_idle: ::aya_ebpf::cty::c_int, + pub flags: ::aya_ebpf::cty::c_int, + pub level: ::aya_ebpf::cty::c_int, + pub last_balance: ::aya_ebpf::cty::c_ulong, + pub balance_interval: ::aya_ebpf::cty::c_uint, + pub nr_balance_failed: ::aya_ebpf::cty::c_uint, + pub newidle_call: ::aya_ebpf::cty::c_uint, + pub newidle_success: ::aya_ebpf::cty::c_uint, + pub newidle_ratio: ::aya_ebpf::cty::c_uint, + pub newidle_stamp: u64_, + pub max_newidle_lb_cost: u64_, + pub last_decay_max_lb_cost: ::aya_ebpf::cty::c_ulong, + pub lb_count: [::aya_ebpf::cty::c_uint; 3usize], + pub lb_failed: [::aya_ebpf::cty::c_uint; 3usize], + pub lb_balanced: [::aya_ebpf::cty::c_uint; 3usize], + pub lb_imbalance_load: [::aya_ebpf::cty::c_uint; 3usize], + pub lb_imbalance_util: [::aya_ebpf::cty::c_uint; 3usize], + pub lb_imbalance_task: [::aya_ebpf::cty::c_uint; 3usize], + pub lb_imbalance_misfit: [::aya_ebpf::cty::c_uint; 3usize], + pub lb_gained: [::aya_ebpf::cty::c_uint; 3usize], + pub lb_hot_gained: [::aya_ebpf::cty::c_uint; 3usize], + pub lb_nobusyg: [::aya_ebpf::cty::c_uint; 3usize], + pub lb_nobusyq: [::aya_ebpf::cty::c_uint; 3usize], + pub alb_count: ::aya_ebpf::cty::c_uint, + pub alb_failed: ::aya_ebpf::cty::c_uint, + pub alb_pushed: ::aya_ebpf::cty::c_uint, + pub sbe_count: ::aya_ebpf::cty::c_uint, + pub sbe_balanced: ::aya_ebpf::cty::c_uint, + pub sbe_pushed: ::aya_ebpf::cty::c_uint, + pub sbf_count: ::aya_ebpf::cty::c_uint, + pub sbf_balanced: ::aya_ebpf::cty::c_uint, + pub sbf_pushed: ::aya_ebpf::cty::c_uint, + pub ttwu_wake_remote: ::aya_ebpf::cty::c_uint, + pub ttwu_move_affine: ::aya_ebpf::cty::c_uint, + pub ttwu_move_balance: ::aya_ebpf::cty::c_uint, + pub name: *mut ::aya_ebpf::cty::c_char, + pub __bindgen_anon_1: sched_domain__bindgen_ty_1, + pub shared: *mut sched_domain_shared, + pub span_weight: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sched_domain__bindgen_ty_1 { + pub private: *mut ::aya_ebpf::cty::c_void, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sched_domain_shared { + pub ref_: atomic_t, + pub nr_busy_cpus: atomic_t, + pub has_idle_cores: ::aya_ebpf::cty::c_int, + pub nr_idle_scan: ::aya_ebpf::cty::c_int, + pub poc_llc_members: u64_, + pub poc_cpu_base: ::aya_ebpf::cty::c_int, + pub poc_affinity_shift: u8_, + pub poc_fast_eligible: bool_, + pub poc_cluster_valid: bool_, + pub poc_smt_shift: u8_, + pub poc_primary_mask: u64_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, + pub poc_idle_cpus: [u8_; 64usize], + pub poc_idle_cores: [u8_; 64usize], + pub poc_idle_cpus_mask: atomic64_t, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 56usize]>, + pub poc_idle_cores_mask: atomic64_t, + pub _bitfield_align_3: [u8; 0], + pub _bitfield_3: __BindgenBitfieldUnit<[u8; 56usize]>, + pub poc_cluster_mask: [u64_; 64usize], + pub poc_smt_mask: [u64_; 64usize], +} +impl sched_domain_shared { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sched_entity { + pub load: load_weight, + pub run_node: rb_node, + pub deadline: u64_, + pub min_vruntime: u64_, + pub min_slice: u64_, + pub max_slice: u64_, + pub group_node: list_head, + pub on_rq: ::aya_ebpf::cty::c_uchar, + pub sched_delayed: ::aya_ebpf::cty::c_uchar, + pub rel_deadline: ::aya_ebpf::cty::c_uchar, + pub custom_slice: ::aya_ebpf::cty::c_uchar, + pub exec_start: u64_, + pub sum_exec_runtime: u64_, + pub prev_sum_exec_runtime: u64_, + pub vruntime: u64_, + pub vlag: s64, + pub vprot: u64_, + pub slice: u64_, + pub nr_migrations: u64_, + pub depth: ::aya_ebpf::cty::c_int, + pub parent: *mut sched_entity, + pub cfs_rq: *mut cfs_rq, + pub my_q: *mut cfs_rq, + pub runnable_weight: ::aya_ebpf::cty::c_ulong, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 56usize]>, + pub avg: sched_avg, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sched_statistics { + pub wait_start: u64_, + pub wait_max: u64_, + pub wait_count: u64_, + pub wait_sum: u64_, + pub iowait_count: u64_, + pub iowait_sum: u64_, + pub sleep_start: u64_, + pub sleep_max: u64_, + pub sum_sleep_runtime: s64, + pub block_start: u64_, + pub block_max: u64_, + pub sum_block_runtime: s64, + pub exec_max: s64, + pub slice_max: u64_, + pub nr_migrations_cold: u64_, + pub nr_failed_migrations_affine: u64_, + pub nr_failed_migrations_running: u64_, + pub nr_failed_migrations_hot: u64_, + pub nr_forced_migrations: u64_, + pub nr_wakeups: u64_, + pub nr_wakeups_sync: u64_, + pub nr_wakeups_migrate: u64_, + pub nr_wakeups_local: u64_, + pub nr_wakeups_remote: u64_, + pub nr_wakeups_affine: u64_, + pub nr_wakeups_affine_attempts: u64_, + pub nr_wakeups_passive: u64_, + pub nr_wakeups_idle: u64_, + pub core_forceidle_sum: u64_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, +} +impl sched_statistics { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sched_ext_entity { + pub sched: *mut scx_sched, + pub dsq: *mut scx_dispatch_q, + pub ops_state: atomic_long_t, + pub ddsp_dsq_id: u64_, + pub ddsp_enq_flags: u64_, + pub dsq_list: scx_dsq_list_node, + pub dsq_priq: rb_node, + pub dsq_seq: u32_, + pub dsq_flags: u32_, + pub flags: u32_, + pub weight: u32_, + pub sticky_cpu: s32, + pub holding_cpu: s32, + pub selected_cpu: s32, + pub kf_tasks: [*mut task_struct; 2usize], + pub runnable_node: list_head, + pub runnable_at: ::aya_ebpf::cty::c_ulong, + pub core_sched_at: u64_, + pub slice: u64_, + pub dsq_vtime: u64_, + pub disallow: bool_, + pub cgrp_moving_from: *mut cgroup, + pub tasks_node: list_head, +} +#[repr(C)] +#[derive(Debug)] +pub struct sched_group { + pub next: *mut sched_group, + pub ref_: atomic_t, + pub group_weight: ::aya_ebpf::cty::c_uint, + pub cores: ::aya_ebpf::cty::c_uint, + pub sgc: *mut sched_group_capacity, + pub asym_prefer_cpu: ::aya_ebpf::cty::c_int, + pub flags: ::aya_ebpf::cty::c_int, + pub cpumask: __IncompleteArrayField<::aya_ebpf::cty::c_ulong>, +} +#[repr(C)] +#[derive(Debug)] +pub struct sched_group_capacity { + pub ref_: atomic_t, + pub capacity: ::aya_ebpf::cty::c_ulong, + pub min_capacity: ::aya_ebpf::cty::c_ulong, + pub max_capacity: ::aya_ebpf::cty::c_ulong, + pub next_update: ::aya_ebpf::cty::c_ulong, + pub imbalance: ::aya_ebpf::cty::c_int, + pub id: ::aya_ebpf::cty::c_int, + pub cpumask: __IncompleteArrayField<::aya_ebpf::cty::c_ulong>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sched_mm_cid { + pub active: ::aya_ebpf::cty::c_uint, + pub cid: ::aya_ebpf::cty::c_uint, + pub node: hlist_node, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sched_rt_entity { + pub run_list: list_head, + pub timeout: ::aya_ebpf::cty::c_ulong, + pub watchdog_stamp: ::aya_ebpf::cty::c_ulong, + pub time_slice: ::aya_ebpf::cty::c_uint, + pub on_rq: ::aya_ebpf::cty::c_ushort, + pub on_list: ::aya_ebpf::cty::c_ushort, + pub back: *mut sched_rt_entity, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct scsi_sense_hdr { + pub response_code: u8_, + pub sense_key: u8_, + pub asc: u8_, + pub ascq: u8_, + pub byte4: u8_, + pub byte5: u8_, + pub byte6: u8_, + pub additional_length: u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct scx_cgroup_init_args { + pub weight: u32_, + pub bw_period_us: u64_, + pub bw_quota_us: u64_, + pub bw_burst_us: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct scx_cpu_acquire_args {} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct scx_cpu_release_args { + pub reason: scx_cpu_preempt_reason::Type, + pub task: *mut task_struct, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct scx_deferred_reenq_local { + pub node: list_head, + pub flags: u64_, + pub seq: u64_, + pub cnt: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct scx_deferred_reenq_user { + pub node: list_head, + pub flags: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct scx_dsp_buf_ent { + pub task: *mut task_struct, + pub qseq: ::aya_ebpf::cty::c_ulong, + pub dsq_id: u64_, + pub enq_flags: u64_, +} +#[repr(C)] +#[derive(Debug)] +pub struct scx_dsp_ctx { + pub rq: *mut rq, + pub cursor: u32_, + pub nr_tasks: u32_, + pub buf: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct scx_dsq_pcpu { + pub dsq: *mut scx_dispatch_q, + pub deferred_reenq_user: scx_deferred_reenq_user, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct scx_dump_ctx { + pub kind: scx_exit_kind::Type, + pub exit_code: s64, + pub reason: *const ::aya_ebpf::cty::c_char, + pub at_ns: u64_, + pub at_jiffies: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct scx_event_stats { + pub SCX_EV_SELECT_CPU_FALLBACK: s64, + pub SCX_EV_DISPATCH_LOCAL_DSQ_OFFLINE: s64, + pub SCX_EV_DISPATCH_KEEP_LAST: s64, + pub SCX_EV_ENQ_SKIP_EXITING: s64, + pub SCX_EV_ENQ_SKIP_MIGRATION_DISABLED: s64, + pub SCX_EV_REENQ_IMMED: s64, + pub SCX_EV_REENQ_LOCAL_REPEAT: s64, + pub SCX_EV_REFILL_SLICE_DFL: s64, + pub SCX_EV_BYPASS_DURATION: s64, + pub SCX_EV_BYPASS_DISPATCH: s64, + pub SCX_EV_BYPASS_ACTIVATE: s64, + pub SCX_EV_INSERT_NOT_OWNED: s64, + pub SCX_EV_SUB_BYPASS_DISPATCH: s64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct scx_exit_info { + pub kind: scx_exit_kind::Type, + pub exit_code: s64, + pub flags: u64_, + pub reason: *const ::aya_ebpf::cty::c_char, + pub bt: *mut ::aya_ebpf::cty::c_ulong, + pub bt_len: u32_, + pub msg: *mut ::aya_ebpf::cty::c_char, + pub dump: *mut ::aya_ebpf::cty::c_char, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct scx_exit_task_args { + pub cancelled: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct scx_init_task_args { + pub fork: bool_, + pub cgroup: *mut cgroup, +} +#[repr(C)] +pub struct scx_sched { + pub ops: sched_ext_ops, + pub has_op: [::aya_ebpf::cty::c_ulong; 1usize], + pub dsq_hash: rhashtable, + pub pnode: *mut *mut scx_sched_pnode, + pub pcpu: *mut scx_sched_pcpu, + pub slice_dfl: u64_, + pub bypass_timestamp: u64_, + pub bypass_depth: s32, + pub bypass_dsp_claim: ::aya_ebpf::cty::c_ulong, + pub bypass_dsp_enable_depth: atomic_t, + pub aborting: bool_, + pub dump_disabled: bool_, + pub dsp_max_batch: u32_, + pub level: s32, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub all: list_head, + pub hash_node: rhash_head, + pub children: list_head, + pub sibling: list_head, + pub cgrp: *mut cgroup, + pub cgrp_path: *mut ::aya_ebpf::cty::c_char, + pub sub_kset: *mut kset, + pub sub_attached: bool_, + pub watchdog_timeout: ::aya_ebpf::cty::c_ulong, + pub exit_kind: atomic_t, + pub exit_info: *mut scx_exit_info, + pub kobj: kobject, + pub helper: *mut kthread_worker, + pub disable_irq_work: irq_work, + pub disable_work: kthread_work, + pub bypass_lb_timer: timer_list, + pub bypass_lb_donee_cpumask: cpumask_var_t, + pub bypass_lb_resched_cpumask: cpumask_var_t, + pub rcu_work: rcu_work, + pub ancestors: __IncompleteArrayField<*mut scx_sched>, +} +impl scx_sched { + #[inline] + pub fn warned_zero_slice(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_warned_zero_slice(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn warned_zero_slice_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_warned_zero_slice_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn warned_deprecated_rq(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_warned_deprecated_rq(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn warned_deprecated_rq_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_warned_deprecated_rq_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn warned_unassoc_progs(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) } + } + #[inline] + pub fn set_warned_unassoc_progs(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn warned_unassoc_progs_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_warned_unassoc_progs_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + warned_zero_slice: bool_, + warned_deprecated_rq: bool_, + warned_unassoc_progs: bool_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let warned_zero_slice: u8 = unsafe { ::core::mem::transmute(warned_zero_slice) }; + warned_zero_slice as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let warned_deprecated_rq: u8 = unsafe { ::core::mem::transmute(warned_deprecated_rq) }; + warned_deprecated_rq as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let warned_unassoc_progs: u8 = unsafe { ::core::mem::transmute(warned_unassoc_progs) }; + warned_unassoc_progs as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +pub struct scx_sched_pcpu { + pub sch: *mut scx_sched, + pub flags: u64_, + pub event_stats: scx_event_stats, + pub deferred_reenq_local: scx_deferred_reenq_local, + pub bypass_dsq: scx_dispatch_q, + pub bypass_host_seq: u32_, + pub dsp_ctx: scx_dsp_ctx, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct scx_sched_pnode { + pub global_dsq: scx_dispatch_q, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct scx_sub_attach_args { + pub ops: *mut sched_ext_ops, + pub cgroup_path: *mut ::aya_ebpf::cty::c_char, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct scx_sub_detach_args { + pub ops: *mut sched_ext_ops, + pub cgroup_path: *mut ::aya_ebpf::cty::c_char, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct scx_task_group { + pub flags: u32_, + pub weight: u32_, + pub bw_period_us: u64_, + pub bw_quota_us: u64_, + pub bw_burst_us: u64_, + pub idle: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct seccomp { + pub mode: ::aya_ebpf::cty::c_int, + pub filter_count: atomic_t, + pub filter: *mut seccomp_filter, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct seccomp_filter { + pub refs: refcount_t, + pub users: refcount_t, + pub log: bool_, + pub wait_killable_recv: bool_, + pub cache: action_cache, + pub prev: *mut seccomp_filter, + pub prog: *mut bpf_prog, + pub notif: *mut notification, + pub notify_lock: mutex, + pub wqh: wait_queue_head_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct seg6_pernet_data { + pub lock: mutex, + pub tun_src: *mut in6_addr, + pub hmac_infos: rhashtable, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sem_undo_list { + pub refcnt: refcount_t, + pub lock: spinlock_t, + pub list_proc: list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct semaphore_waiter { + pub list: list_head, + pub task: *mut task_struct, + pub up: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct seq_operations { + pub start: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut seq_file, + arg2: *mut loff_t, + ) -> *mut ::aya_ebpf::cty::c_void, + >, + pub stop: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut seq_file, arg2: *mut ::aya_ebpf::cty::c_void), + >, + pub next: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut seq_file, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: *mut loff_t, + ) -> *mut ::aya_ebpf::cty::c_void, + >, + pub show: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut seq_file, + arg2: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct serial_icounter_struct { + pub cts: ::aya_ebpf::cty::c_int, + pub dsr: ::aya_ebpf::cty::c_int, + pub rng: ::aya_ebpf::cty::c_int, + pub dcd: ::aya_ebpf::cty::c_int, + pub rx: ::aya_ebpf::cty::c_int, + pub tx: ::aya_ebpf::cty::c_int, + pub frame: ::aya_ebpf::cty::c_int, + pub overrun: ::aya_ebpf::cty::c_int, + pub parity: ::aya_ebpf::cty::c_int, + pub brk: ::aya_ebpf::cty::c_int, + pub buf_overrun: ::aya_ebpf::cty::c_int, + pub reserved: [::aya_ebpf::cty::c_int; 9usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct serial_struct { + pub type_: ::aya_ebpf::cty::c_int, + pub line: ::aya_ebpf::cty::c_int, + pub port: ::aya_ebpf::cty::c_uint, + pub irq: ::aya_ebpf::cty::c_int, + pub flags: ::aya_ebpf::cty::c_int, + pub xmit_fifo_size: ::aya_ebpf::cty::c_int, + pub custom_divisor: ::aya_ebpf::cty::c_int, + pub baud_base: ::aya_ebpf::cty::c_int, + pub close_delay: ::aya_ebpf::cty::c_ushort, + pub io_type: ::aya_ebpf::cty::c_char, + pub reserved_char: [::aya_ebpf::cty::c_char; 1usize], + pub hub6: ::aya_ebpf::cty::c_int, + pub closing_wait: ::aya_ebpf::cty::c_ushort, + pub closing_wait2: ::aya_ebpf::cty::c_ushort, + pub iomem_base: *mut ::aya_ebpf::cty::c_uchar, + pub iomem_reg_shift: ::aya_ebpf::cty::c_ushort, + pub port_high: ::aya_ebpf::cty::c_uint, + pub iomap_base: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sfp { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sfp_module_caps { + pub interfaces: [::aya_ebpf::cty::c_ulong; 1usize], + pub link_modes: [::aya_ebpf::cty::c_ulong; 2usize], + pub may_have_phy: bool_, + pub port: u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sfp_bus { + pub kref: kref, + pub node: list_head, + pub fwnode: *const fwnode_handle, + pub socket_ops: *const sfp_socket_ops, + pub sfp_dev: *mut device, + pub sfp: *mut sfp, + pub upstream_ops: *const sfp_upstream_ops, + pub upstream: *mut ::aya_ebpf::cty::c_void, + pub phydev: *mut phy_device, + pub registered: bool_, + pub started: bool_, + pub caps: sfp_module_caps, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sfp_eeprom_base { + pub phys_id: u8_, + pub phys_ext_id: u8_, + pub connector: u8_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, + pub encoding: u8_, + pub br_nominal: u8_, + pub rate_id: u8_, + pub link_len: [u8_; 6usize], + pub vendor_name: [::aya_ebpf::cty::c_char; 16usize], + pub extended_cc: u8_, + pub vendor_oui: [::aya_ebpf::cty::c_char; 3usize], + pub vendor_pn: [::aya_ebpf::cty::c_char; 16usize], + pub vendor_rev: [::aya_ebpf::cty::c_char; 4usize], + pub __bindgen_anon_1: sfp_eeprom_base__bindgen_ty_1, + pub reserved62: u8_, + pub cc_base: u8_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sfp_eeprom_base__bindgen_ty_1 { + pub optical_wavelength: __be16, + pub cable_compliance: __be16, + pub passive: sfp_eeprom_base__bindgen_ty_1__bindgen_ty_1, + pub active: sfp_eeprom_base__bindgen_ty_1__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sfp_eeprom_base__bindgen_ty_1__bindgen_ty_1 { + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, +} +impl sfp_eeprom_base__bindgen_ty_1__bindgen_ty_1 { + #[inline] + pub fn sff8431_app_e(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_sff8431_app_e(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sff8431_app_e_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sff8431_app_e_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fc_pi_4_app_h(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_fc_pi_4_app_h(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fc_pi_4_app_h_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fc_pi_4_app_h_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn reserved60_2(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 6u8) as u8) } + } + #[inline] + pub fn set_reserved60_2(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 6u8, val as u64) + } + } + #[inline] + pub unsafe fn reserved60_2_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 6u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_reserved60_2_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 6u8, + val as u64, + ) + } + } + #[inline] + pub fn reserved61(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 8u8) as u8) } + } + #[inline] + pub fn set_reserved61(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(8usize, 8u8, val as u64) + } + } + #[inline] + pub unsafe fn reserved61_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 8usize, + 8u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_reserved61_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 8usize, + 8u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + sff8431_app_e: u8_, + fc_pi_4_app_h: u8_, + reserved60_2: u8_, + reserved61: u8_, + ) -> __BindgenBitfieldUnit<[u8; 2usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let sff8431_app_e: u8 = unsafe { ::core::mem::transmute(sff8431_app_e) }; + sff8431_app_e as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let fc_pi_4_app_h: u8 = unsafe { ::core::mem::transmute(fc_pi_4_app_h) }; + fc_pi_4_app_h as u64 + }); + __bindgen_bitfield_unit.set(2usize, 6u8, { + let reserved60_2: u8 = unsafe { ::core::mem::transmute(reserved60_2) }; + reserved60_2 as u64 + }); + __bindgen_bitfield_unit.set(8usize, 8u8, { + let reserved61: u8 = unsafe { ::core::mem::transmute(reserved61) }; + reserved61 as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sfp_eeprom_base__bindgen_ty_1__bindgen_ty_2 { + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, +} +impl sfp_eeprom_base__bindgen_ty_1__bindgen_ty_2 { + #[inline] + pub fn sff8431_app_e(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_sff8431_app_e(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sff8431_app_e_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sff8431_app_e_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fc_pi_4_app_h(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_fc_pi_4_app_h(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fc_pi_4_app_h_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fc_pi_4_app_h_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sff8431_lim(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) } + } + #[inline] + pub fn set_sff8431_lim(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sff8431_lim_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sff8431_lim_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fc_pi_4_lim(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) } + } + #[inline] + pub fn set_fc_pi_4_lim(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fc_pi_4_lim_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fc_pi_4_lim_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn reserved60_4(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } + } + #[inline] + pub fn set_reserved60_4(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 4u8, val as u64) + } + } + #[inline] + pub unsafe fn reserved60_4_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 4u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_reserved60_4_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 4u8, + val as u64, + ) + } + } + #[inline] + pub fn reserved61(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 8u8) as u8) } + } + #[inline] + pub fn set_reserved61(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(8usize, 8u8, val as u64) + } + } + #[inline] + pub unsafe fn reserved61_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 8usize, + 8u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_reserved61_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 8usize, + 8u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + sff8431_app_e: u8_, + fc_pi_4_app_h: u8_, + sff8431_lim: u8_, + fc_pi_4_lim: u8_, + reserved60_4: u8_, + reserved61: u8_, + ) -> __BindgenBitfieldUnit<[u8; 2usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let sff8431_app_e: u8 = unsafe { ::core::mem::transmute(sff8431_app_e) }; + sff8431_app_e as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let fc_pi_4_app_h: u8 = unsafe { ::core::mem::transmute(fc_pi_4_app_h) }; + fc_pi_4_app_h as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let sff8431_lim: u8 = unsafe { ::core::mem::transmute(sff8431_lim) }; + sff8431_lim as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let fc_pi_4_lim: u8 = unsafe { ::core::mem::transmute(fc_pi_4_lim) }; + fc_pi_4_lim as u64 + }); + __bindgen_bitfield_unit.set(4usize, 4u8, { + let reserved60_4: u8 = unsafe { ::core::mem::transmute(reserved60_4) }; + reserved60_4 as u64 + }); + __bindgen_bitfield_unit.set(8usize, 8u8, { + let reserved61: u8 = unsafe { ::core::mem::transmute(reserved61) }; + reserved61 as u64 + }); + __bindgen_bitfield_unit + } +} +impl sfp_eeprom_base { + #[inline] + pub fn if_1x_copper_passive(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_if_1x_copper_passive(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn if_1x_copper_passive_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_if_1x_copper_passive_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn if_1x_copper_active(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_if_1x_copper_active(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn if_1x_copper_active_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_if_1x_copper_active_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn if_1x_lx(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) } + } + #[inline] + pub fn set_if_1x_lx(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn if_1x_lx_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_if_1x_lx_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn if_1x_sx(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) } + } + #[inline] + pub fn set_if_1x_sx(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn if_1x_sx_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_if_1x_sx_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn e10g_base_sr(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) } + } + #[inline] + pub fn set_e10g_base_sr(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn e10g_base_sr_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_e10g_base_sr_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn e10g_base_lr(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) } + } + #[inline] + pub fn set_e10g_base_lr(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn e10g_base_lr_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 5usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_e10g_base_lr_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 5usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn e10g_base_lrm(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) } + } + #[inline] + pub fn set_e10g_base_lrm(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn e10g_base_lrm_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 6usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_e10g_base_lrm_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 6usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn e10g_base_er(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) } + } + #[inline] + pub fn set_e10g_base_er(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn e10g_base_er_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 7usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_e10g_base_er_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 7usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sonet_oc3_short_reach(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u8) } + } + #[inline] + pub fn set_sonet_oc3_short_reach(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(8usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sonet_oc3_short_reach_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 8usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sonet_oc3_short_reach_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 8usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sonet_oc3_smf_intermediate_reach(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u8) } + } + #[inline] + pub fn set_sonet_oc3_smf_intermediate_reach(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(9usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sonet_oc3_smf_intermediate_reach_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 9usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sonet_oc3_smf_intermediate_reach_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 9usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sonet_oc3_smf_long_reach(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u8) } + } + #[inline] + pub fn set_sonet_oc3_smf_long_reach(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(10usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sonet_oc3_smf_long_reach_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 10usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sonet_oc3_smf_long_reach_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 10usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn unallocated_5_3(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u8) } + } + #[inline] + pub fn set_unallocated_5_3(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(11usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn unallocated_5_3_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 11usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_unallocated_5_3_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 11usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sonet_oc12_short_reach(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u8) } + } + #[inline] + pub fn set_sonet_oc12_short_reach(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(12usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sonet_oc12_short_reach_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 12usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sonet_oc12_short_reach_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 12usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sonet_oc12_smf_intermediate_reach(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u8) } + } + #[inline] + pub fn set_sonet_oc12_smf_intermediate_reach(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(13usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sonet_oc12_smf_intermediate_reach_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 13usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sonet_oc12_smf_intermediate_reach_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 13usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sonet_oc12_smf_long_reach(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u8) } + } + #[inline] + pub fn set_sonet_oc12_smf_long_reach(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(14usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sonet_oc12_smf_long_reach_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 14usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sonet_oc12_smf_long_reach_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 14usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn unallocated_5_7(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u8) } + } + #[inline] + pub fn set_unallocated_5_7(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(15usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn unallocated_5_7_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 15usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_unallocated_5_7_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 15usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sonet_oc48_short_reach(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u8) } + } + #[inline] + pub fn set_sonet_oc48_short_reach(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(16usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sonet_oc48_short_reach_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 16usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sonet_oc48_short_reach_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 16usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sonet_oc48_intermediate_reach(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u8) } + } + #[inline] + pub fn set_sonet_oc48_intermediate_reach(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(17usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sonet_oc48_intermediate_reach_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 17usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sonet_oc48_intermediate_reach_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 17usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sonet_oc48_long_reach(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u8) } + } + #[inline] + pub fn set_sonet_oc48_long_reach(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(18usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sonet_oc48_long_reach_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 18usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sonet_oc48_long_reach_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 18usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sonet_reach_bit2(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(19usize, 1u8) as u8) } + } + #[inline] + pub fn set_sonet_reach_bit2(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(19usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sonet_reach_bit2_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 19usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sonet_reach_bit2_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 19usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sonet_reach_bit1(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 1u8) as u8) } + } + #[inline] + pub fn set_sonet_reach_bit1(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(20usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sonet_reach_bit1_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 20usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sonet_reach_bit1_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 20usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sonet_oc192_short_reach(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u8) } + } + #[inline] + pub fn set_sonet_oc192_short_reach(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(21usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sonet_oc192_short_reach_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 21usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sonet_oc192_short_reach_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 21usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn escon_smf_1310_laser(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(22usize, 1u8) as u8) } + } + #[inline] + pub fn set_escon_smf_1310_laser(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(22usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn escon_smf_1310_laser_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 22usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_escon_smf_1310_laser_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 22usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn escon_mmf_1310_led(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(23usize, 1u8) as u8) } + } + #[inline] + pub fn set_escon_mmf_1310_led(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(23usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn escon_mmf_1310_led_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 23usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_escon_mmf_1310_led_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 23usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn e1000_base_sx(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 1u8) as u8) } + } + #[inline] + pub fn set_e1000_base_sx(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(24usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn e1000_base_sx_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 24usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_e1000_base_sx_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 24usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn e1000_base_lx(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(25usize, 1u8) as u8) } + } + #[inline] + pub fn set_e1000_base_lx(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(25usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn e1000_base_lx_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 25usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_e1000_base_lx_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 25usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn e1000_base_cx(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(26usize, 1u8) as u8) } + } + #[inline] + pub fn set_e1000_base_cx(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(26usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn e1000_base_cx_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 26usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_e1000_base_cx_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 26usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn e1000_base_t(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(27usize, 1u8) as u8) } + } + #[inline] + pub fn set_e1000_base_t(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(27usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn e1000_base_t_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 27usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_e1000_base_t_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 27usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn e100_base_lx(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(28usize, 1u8) as u8) } + } + #[inline] + pub fn set_e100_base_lx(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(28usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn e100_base_lx_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 28usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_e100_base_lx_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 28usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn e100_base_fx(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(29usize, 1u8) as u8) } + } + #[inline] + pub fn set_e100_base_fx(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(29usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn e100_base_fx_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 29usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_e100_base_fx_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 29usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn e_base_bx10(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(30usize, 1u8) as u8) } + } + #[inline] + pub fn set_e_base_bx10(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(30usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn e_base_bx10_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 30usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_e_base_bx10_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 30usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn e_base_px(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(31usize, 1u8) as u8) } + } + #[inline] + pub fn set_e_base_px(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(31usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn e_base_px_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 31usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_e_base_px_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 31usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fc_tech_electrical_inter_enclosure(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(32usize, 1u8) as u8) } + } + #[inline] + pub fn set_fc_tech_electrical_inter_enclosure(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(32usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fc_tech_electrical_inter_enclosure_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 32usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fc_tech_electrical_inter_enclosure_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 32usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fc_tech_lc(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(33usize, 1u8) as u8) } + } + #[inline] + pub fn set_fc_tech_lc(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(33usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fc_tech_lc_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 33usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fc_tech_lc_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 33usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fc_tech_sa(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(34usize, 1u8) as u8) } + } + #[inline] + pub fn set_fc_tech_sa(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(34usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fc_tech_sa_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 34usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fc_tech_sa_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 34usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fc_ll_m(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(35usize, 1u8) as u8) } + } + #[inline] + pub fn set_fc_ll_m(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(35usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fc_ll_m_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 35usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fc_ll_m_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 35usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fc_ll_l(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(36usize, 1u8) as u8) } + } + #[inline] + pub fn set_fc_ll_l(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(36usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fc_ll_l_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 36usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fc_ll_l_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 36usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fc_ll_i(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(37usize, 1u8) as u8) } + } + #[inline] + pub fn set_fc_ll_i(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(37usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fc_ll_i_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 37usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fc_ll_i_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 37usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fc_ll_s(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(38usize, 1u8) as u8) } + } + #[inline] + pub fn set_fc_ll_s(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(38usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fc_ll_s_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 38usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fc_ll_s_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 38usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fc_ll_v(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(39usize, 1u8) as u8) } + } + #[inline] + pub fn set_fc_ll_v(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(39usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fc_ll_v_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 39usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fc_ll_v_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 39usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn unallocated_8_0(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(40usize, 1u8) as u8) } + } + #[inline] + pub fn set_unallocated_8_0(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(40usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn unallocated_8_0_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 40usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_unallocated_8_0_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 40usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn unallocated_8_1(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(41usize, 1u8) as u8) } + } + #[inline] + pub fn set_unallocated_8_1(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(41usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn unallocated_8_1_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 41usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_unallocated_8_1_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 41usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sfp_ct_passive(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(42usize, 1u8) as u8) } + } + #[inline] + pub fn set_sfp_ct_passive(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(42usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sfp_ct_passive_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 42usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sfp_ct_passive_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 42usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sfp_ct_active(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(43usize, 1u8) as u8) } + } + #[inline] + pub fn set_sfp_ct_active(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(43usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sfp_ct_active_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 43usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_sfp_ct_active_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 43usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fc_tech_ll(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(44usize, 1u8) as u8) } + } + #[inline] + pub fn set_fc_tech_ll(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(44usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fc_tech_ll_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 44usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fc_tech_ll_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 44usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fc_tech_sl(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(45usize, 1u8) as u8) } + } + #[inline] + pub fn set_fc_tech_sl(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(45usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fc_tech_sl_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 45usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fc_tech_sl_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 45usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fc_tech_sn(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(46usize, 1u8) as u8) } + } + #[inline] + pub fn set_fc_tech_sn(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(46usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fc_tech_sn_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 46usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fc_tech_sn_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 46usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fc_tech_electrical_intra_enclosure(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(47usize, 1u8) as u8) } + } + #[inline] + pub fn set_fc_tech_electrical_intra_enclosure(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(47usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fc_tech_electrical_intra_enclosure_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 47usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fc_tech_electrical_intra_enclosure_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 47usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fc_media_sm(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(48usize, 1u8) as u8) } + } + #[inline] + pub fn set_fc_media_sm(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(48usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fc_media_sm_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 48usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fc_media_sm_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 48usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn unallocated_9_1(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(49usize, 1u8) as u8) } + } + #[inline] + pub fn set_unallocated_9_1(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(49usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn unallocated_9_1_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 49usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_unallocated_9_1_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 49usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fc_media_m5(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(50usize, 1u8) as u8) } + } + #[inline] + pub fn set_fc_media_m5(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(50usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fc_media_m5_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 50usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fc_media_m5_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 50usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fc_media_m6(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(51usize, 1u8) as u8) } + } + #[inline] + pub fn set_fc_media_m6(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(51usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fc_media_m6_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 51usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fc_media_m6_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 51usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fc_media_tv(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(52usize, 1u8) as u8) } + } + #[inline] + pub fn set_fc_media_tv(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(52usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fc_media_tv_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 52usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fc_media_tv_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 52usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fc_media_mi(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(53usize, 1u8) as u8) } + } + #[inline] + pub fn set_fc_media_mi(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(53usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fc_media_mi_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 53usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fc_media_mi_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 53usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fc_media_tp(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(54usize, 1u8) as u8) } + } + #[inline] + pub fn set_fc_media_tp(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(54usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fc_media_tp_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 54usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fc_media_tp_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 54usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fc_media_tw(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(55usize, 1u8) as u8) } + } + #[inline] + pub fn set_fc_media_tw(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(55usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fc_media_tw_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 55usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fc_media_tw_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 55usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fc_speed_100(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(56usize, 1u8) as u8) } + } + #[inline] + pub fn set_fc_speed_100(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(56usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fc_speed_100_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 56usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fc_speed_100_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 56usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn unallocated_10_1(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(57usize, 1u8) as u8) } + } + #[inline] + pub fn set_unallocated_10_1(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(57usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn unallocated_10_1_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 57usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_unallocated_10_1_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 57usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fc_speed_200(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(58usize, 1u8) as u8) } + } + #[inline] + pub fn set_fc_speed_200(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(58usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fc_speed_200_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 58usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fc_speed_200_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 58usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fc_speed_3200(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(59usize, 1u8) as u8) } + } + #[inline] + pub fn set_fc_speed_3200(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(59usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fc_speed_3200_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 59usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fc_speed_3200_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 59usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fc_speed_400(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(60usize, 1u8) as u8) } + } + #[inline] + pub fn set_fc_speed_400(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(60usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fc_speed_400_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 60usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fc_speed_400_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 60usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fc_speed_1600(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(61usize, 1u8) as u8) } + } + #[inline] + pub fn set_fc_speed_1600(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(61usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fc_speed_1600_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 61usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fc_speed_1600_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 61usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fc_speed_800(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(62usize, 1u8) as u8) } + } + #[inline] + pub fn set_fc_speed_800(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(62usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fc_speed_800_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 62usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fc_speed_800_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 62usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fc_speed_1200(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(63usize, 1u8) as u8) } + } + #[inline] + pub fn set_fc_speed_1200(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(63usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fc_speed_1200_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 63usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fc_speed_1200_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 63usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + if_1x_copper_passive: u8_, + if_1x_copper_active: u8_, + if_1x_lx: u8_, + if_1x_sx: u8_, + e10g_base_sr: u8_, + e10g_base_lr: u8_, + e10g_base_lrm: u8_, + e10g_base_er: u8_, + sonet_oc3_short_reach: u8_, + sonet_oc3_smf_intermediate_reach: u8_, + sonet_oc3_smf_long_reach: u8_, + unallocated_5_3: u8_, + sonet_oc12_short_reach: u8_, + sonet_oc12_smf_intermediate_reach: u8_, + sonet_oc12_smf_long_reach: u8_, + unallocated_5_7: u8_, + sonet_oc48_short_reach: u8_, + sonet_oc48_intermediate_reach: u8_, + sonet_oc48_long_reach: u8_, + sonet_reach_bit2: u8_, + sonet_reach_bit1: u8_, + sonet_oc192_short_reach: u8_, + escon_smf_1310_laser: u8_, + escon_mmf_1310_led: u8_, + e1000_base_sx: u8_, + e1000_base_lx: u8_, + e1000_base_cx: u8_, + e1000_base_t: u8_, + e100_base_lx: u8_, + e100_base_fx: u8_, + e_base_bx10: u8_, + e_base_px: u8_, + fc_tech_electrical_inter_enclosure: u8_, + fc_tech_lc: u8_, + fc_tech_sa: u8_, + fc_ll_m: u8_, + fc_ll_l: u8_, + fc_ll_i: u8_, + fc_ll_s: u8_, + fc_ll_v: u8_, + unallocated_8_0: u8_, + unallocated_8_1: u8_, + sfp_ct_passive: u8_, + sfp_ct_active: u8_, + fc_tech_ll: u8_, + fc_tech_sl: u8_, + fc_tech_sn: u8_, + fc_tech_electrical_intra_enclosure: u8_, + fc_media_sm: u8_, + unallocated_9_1: u8_, + fc_media_m5: u8_, + fc_media_m6: u8_, + fc_media_tv: u8_, + fc_media_mi: u8_, + fc_media_tp: u8_, + fc_media_tw: u8_, + fc_speed_100: u8_, + unallocated_10_1: u8_, + fc_speed_200: u8_, + fc_speed_3200: u8_, + fc_speed_400: u8_, + fc_speed_1600: u8_, + fc_speed_800: u8_, + fc_speed_1200: u8_, + ) -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let if_1x_copper_passive: u8 = unsafe { ::core::mem::transmute(if_1x_copper_passive) }; + if_1x_copper_passive as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let if_1x_copper_active: u8 = unsafe { ::core::mem::transmute(if_1x_copper_active) }; + if_1x_copper_active as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let if_1x_lx: u8 = unsafe { ::core::mem::transmute(if_1x_lx) }; + if_1x_lx as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let if_1x_sx: u8 = unsafe { ::core::mem::transmute(if_1x_sx) }; + if_1x_sx as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let e10g_base_sr: u8 = unsafe { ::core::mem::transmute(e10g_base_sr) }; + e10g_base_sr as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let e10g_base_lr: u8 = unsafe { ::core::mem::transmute(e10g_base_lr) }; + e10g_base_lr as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let e10g_base_lrm: u8 = unsafe { ::core::mem::transmute(e10g_base_lrm) }; + e10g_base_lrm as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let e10g_base_er: u8 = unsafe { ::core::mem::transmute(e10g_base_er) }; + e10g_base_er as u64 + }); + __bindgen_bitfield_unit.set(8usize, 1u8, { + let sonet_oc3_short_reach: u8 = + unsafe { ::core::mem::transmute(sonet_oc3_short_reach) }; + sonet_oc3_short_reach as u64 + }); + __bindgen_bitfield_unit.set(9usize, 1u8, { + let sonet_oc3_smf_intermediate_reach: u8 = + unsafe { ::core::mem::transmute(sonet_oc3_smf_intermediate_reach) }; + sonet_oc3_smf_intermediate_reach as u64 + }); + __bindgen_bitfield_unit.set(10usize, 1u8, { + let sonet_oc3_smf_long_reach: u8 = + unsafe { ::core::mem::transmute(sonet_oc3_smf_long_reach) }; + sonet_oc3_smf_long_reach as u64 + }); + __bindgen_bitfield_unit.set(11usize, 1u8, { + let unallocated_5_3: u8 = unsafe { ::core::mem::transmute(unallocated_5_3) }; + unallocated_5_3 as u64 + }); + __bindgen_bitfield_unit.set(12usize, 1u8, { + let sonet_oc12_short_reach: u8 = + unsafe { ::core::mem::transmute(sonet_oc12_short_reach) }; + sonet_oc12_short_reach as u64 + }); + __bindgen_bitfield_unit.set(13usize, 1u8, { + let sonet_oc12_smf_intermediate_reach: u8 = + unsafe { ::core::mem::transmute(sonet_oc12_smf_intermediate_reach) }; + sonet_oc12_smf_intermediate_reach as u64 + }); + __bindgen_bitfield_unit.set(14usize, 1u8, { + let sonet_oc12_smf_long_reach: u8 = + unsafe { ::core::mem::transmute(sonet_oc12_smf_long_reach) }; + sonet_oc12_smf_long_reach as u64 + }); + __bindgen_bitfield_unit.set(15usize, 1u8, { + let unallocated_5_7: u8 = unsafe { ::core::mem::transmute(unallocated_5_7) }; + unallocated_5_7 as u64 + }); + __bindgen_bitfield_unit.set(16usize, 1u8, { + let sonet_oc48_short_reach: u8 = + unsafe { ::core::mem::transmute(sonet_oc48_short_reach) }; + sonet_oc48_short_reach as u64 + }); + __bindgen_bitfield_unit.set(17usize, 1u8, { + let sonet_oc48_intermediate_reach: u8 = + unsafe { ::core::mem::transmute(sonet_oc48_intermediate_reach) }; + sonet_oc48_intermediate_reach as u64 + }); + __bindgen_bitfield_unit.set(18usize, 1u8, { + let sonet_oc48_long_reach: u8 = + unsafe { ::core::mem::transmute(sonet_oc48_long_reach) }; + sonet_oc48_long_reach as u64 + }); + __bindgen_bitfield_unit.set(19usize, 1u8, { + let sonet_reach_bit2: u8 = unsafe { ::core::mem::transmute(sonet_reach_bit2) }; + sonet_reach_bit2 as u64 + }); + __bindgen_bitfield_unit.set(20usize, 1u8, { + let sonet_reach_bit1: u8 = unsafe { ::core::mem::transmute(sonet_reach_bit1) }; + sonet_reach_bit1 as u64 + }); + __bindgen_bitfield_unit.set(21usize, 1u8, { + let sonet_oc192_short_reach: u8 = + unsafe { ::core::mem::transmute(sonet_oc192_short_reach) }; + sonet_oc192_short_reach as u64 + }); + __bindgen_bitfield_unit.set(22usize, 1u8, { + let escon_smf_1310_laser: u8 = unsafe { ::core::mem::transmute(escon_smf_1310_laser) }; + escon_smf_1310_laser as u64 + }); + __bindgen_bitfield_unit.set(23usize, 1u8, { + let escon_mmf_1310_led: u8 = unsafe { ::core::mem::transmute(escon_mmf_1310_led) }; + escon_mmf_1310_led as u64 + }); + __bindgen_bitfield_unit.set(24usize, 1u8, { + let e1000_base_sx: u8 = unsafe { ::core::mem::transmute(e1000_base_sx) }; + e1000_base_sx as u64 + }); + __bindgen_bitfield_unit.set(25usize, 1u8, { + let e1000_base_lx: u8 = unsafe { ::core::mem::transmute(e1000_base_lx) }; + e1000_base_lx as u64 + }); + __bindgen_bitfield_unit.set(26usize, 1u8, { + let e1000_base_cx: u8 = unsafe { ::core::mem::transmute(e1000_base_cx) }; + e1000_base_cx as u64 + }); + __bindgen_bitfield_unit.set(27usize, 1u8, { + let e1000_base_t: u8 = unsafe { ::core::mem::transmute(e1000_base_t) }; + e1000_base_t as u64 + }); + __bindgen_bitfield_unit.set(28usize, 1u8, { + let e100_base_lx: u8 = unsafe { ::core::mem::transmute(e100_base_lx) }; + e100_base_lx as u64 + }); + __bindgen_bitfield_unit.set(29usize, 1u8, { + let e100_base_fx: u8 = unsafe { ::core::mem::transmute(e100_base_fx) }; + e100_base_fx as u64 + }); + __bindgen_bitfield_unit.set(30usize, 1u8, { + let e_base_bx10: u8 = unsafe { ::core::mem::transmute(e_base_bx10) }; + e_base_bx10 as u64 + }); + __bindgen_bitfield_unit.set(31usize, 1u8, { + let e_base_px: u8 = unsafe { ::core::mem::transmute(e_base_px) }; + e_base_px as u64 + }); + __bindgen_bitfield_unit.set(32usize, 1u8, { + let fc_tech_electrical_inter_enclosure: u8 = + unsafe { ::core::mem::transmute(fc_tech_electrical_inter_enclosure) }; + fc_tech_electrical_inter_enclosure as u64 + }); + __bindgen_bitfield_unit.set(33usize, 1u8, { + let fc_tech_lc: u8 = unsafe { ::core::mem::transmute(fc_tech_lc) }; + fc_tech_lc as u64 + }); + __bindgen_bitfield_unit.set(34usize, 1u8, { + let fc_tech_sa: u8 = unsafe { ::core::mem::transmute(fc_tech_sa) }; + fc_tech_sa as u64 + }); + __bindgen_bitfield_unit.set(35usize, 1u8, { + let fc_ll_m: u8 = unsafe { ::core::mem::transmute(fc_ll_m) }; + fc_ll_m as u64 + }); + __bindgen_bitfield_unit.set(36usize, 1u8, { + let fc_ll_l: u8 = unsafe { ::core::mem::transmute(fc_ll_l) }; + fc_ll_l as u64 + }); + __bindgen_bitfield_unit.set(37usize, 1u8, { + let fc_ll_i: u8 = unsafe { ::core::mem::transmute(fc_ll_i) }; + fc_ll_i as u64 + }); + __bindgen_bitfield_unit.set(38usize, 1u8, { + let fc_ll_s: u8 = unsafe { ::core::mem::transmute(fc_ll_s) }; + fc_ll_s as u64 + }); + __bindgen_bitfield_unit.set(39usize, 1u8, { + let fc_ll_v: u8 = unsafe { ::core::mem::transmute(fc_ll_v) }; + fc_ll_v as u64 + }); + __bindgen_bitfield_unit.set(40usize, 1u8, { + let unallocated_8_0: u8 = unsafe { ::core::mem::transmute(unallocated_8_0) }; + unallocated_8_0 as u64 + }); + __bindgen_bitfield_unit.set(41usize, 1u8, { + let unallocated_8_1: u8 = unsafe { ::core::mem::transmute(unallocated_8_1) }; + unallocated_8_1 as u64 + }); + __bindgen_bitfield_unit.set(42usize, 1u8, { + let sfp_ct_passive: u8 = unsafe { ::core::mem::transmute(sfp_ct_passive) }; + sfp_ct_passive as u64 + }); + __bindgen_bitfield_unit.set(43usize, 1u8, { + let sfp_ct_active: u8 = unsafe { ::core::mem::transmute(sfp_ct_active) }; + sfp_ct_active as u64 + }); + __bindgen_bitfield_unit.set(44usize, 1u8, { + let fc_tech_ll: u8 = unsafe { ::core::mem::transmute(fc_tech_ll) }; + fc_tech_ll as u64 + }); + __bindgen_bitfield_unit.set(45usize, 1u8, { + let fc_tech_sl: u8 = unsafe { ::core::mem::transmute(fc_tech_sl) }; + fc_tech_sl as u64 + }); + __bindgen_bitfield_unit.set(46usize, 1u8, { + let fc_tech_sn: u8 = unsafe { ::core::mem::transmute(fc_tech_sn) }; + fc_tech_sn as u64 + }); + __bindgen_bitfield_unit.set(47usize, 1u8, { + let fc_tech_electrical_intra_enclosure: u8 = + unsafe { ::core::mem::transmute(fc_tech_electrical_intra_enclosure) }; + fc_tech_electrical_intra_enclosure as u64 + }); + __bindgen_bitfield_unit.set(48usize, 1u8, { + let fc_media_sm: u8 = unsafe { ::core::mem::transmute(fc_media_sm) }; + fc_media_sm as u64 + }); + __bindgen_bitfield_unit.set(49usize, 1u8, { + let unallocated_9_1: u8 = unsafe { ::core::mem::transmute(unallocated_9_1) }; + unallocated_9_1 as u64 + }); + __bindgen_bitfield_unit.set(50usize, 1u8, { + let fc_media_m5: u8 = unsafe { ::core::mem::transmute(fc_media_m5) }; + fc_media_m5 as u64 + }); + __bindgen_bitfield_unit.set(51usize, 1u8, { + let fc_media_m6: u8 = unsafe { ::core::mem::transmute(fc_media_m6) }; + fc_media_m6 as u64 + }); + __bindgen_bitfield_unit.set(52usize, 1u8, { + let fc_media_tv: u8 = unsafe { ::core::mem::transmute(fc_media_tv) }; + fc_media_tv as u64 + }); + __bindgen_bitfield_unit.set(53usize, 1u8, { + let fc_media_mi: u8 = unsafe { ::core::mem::transmute(fc_media_mi) }; + fc_media_mi as u64 + }); + __bindgen_bitfield_unit.set(54usize, 1u8, { + let fc_media_tp: u8 = unsafe { ::core::mem::transmute(fc_media_tp) }; + fc_media_tp as u64 + }); + __bindgen_bitfield_unit.set(55usize, 1u8, { + let fc_media_tw: u8 = unsafe { ::core::mem::transmute(fc_media_tw) }; + fc_media_tw as u64 + }); + __bindgen_bitfield_unit.set(56usize, 1u8, { + let fc_speed_100: u8 = unsafe { ::core::mem::transmute(fc_speed_100) }; + fc_speed_100 as u64 + }); + __bindgen_bitfield_unit.set(57usize, 1u8, { + let unallocated_10_1: u8 = unsafe { ::core::mem::transmute(unallocated_10_1) }; + unallocated_10_1 as u64 + }); + __bindgen_bitfield_unit.set(58usize, 1u8, { + let fc_speed_200: u8 = unsafe { ::core::mem::transmute(fc_speed_200) }; + fc_speed_200 as u64 + }); + __bindgen_bitfield_unit.set(59usize, 1u8, { + let fc_speed_3200: u8 = unsafe { ::core::mem::transmute(fc_speed_3200) }; + fc_speed_3200 as u64 + }); + __bindgen_bitfield_unit.set(60usize, 1u8, { + let fc_speed_400: u8 = unsafe { ::core::mem::transmute(fc_speed_400) }; + fc_speed_400 as u64 + }); + __bindgen_bitfield_unit.set(61usize, 1u8, { + let fc_speed_1600: u8 = unsafe { ::core::mem::transmute(fc_speed_1600) }; + fc_speed_1600 as u64 + }); + __bindgen_bitfield_unit.set(62usize, 1u8, { + let fc_speed_800: u8 = unsafe { ::core::mem::transmute(fc_speed_800) }; + fc_speed_800 as u64 + }); + __bindgen_bitfield_unit.set(63usize, 1u8, { + let fc_speed_1200: u8 = unsafe { ::core::mem::transmute(fc_speed_1200) }; + fc_speed_1200 as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sfp_eeprom_ext { + pub options: __be16, + pub br_max: u8_, + pub br_min: u8_, + pub vendor_sn: [::aya_ebpf::cty::c_char; 16usize], + pub datecode: [::aya_ebpf::cty::c_char; 8usize], + pub diagmon: u8_, + pub enhopts: u8_, + pub sff8472_compliance: u8_, + pub cc_ext: u8_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sfp_eeprom_id { + pub base: sfp_eeprom_base, + pub ext: sfp_eeprom_ext, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sfp_socket_ops { + pub attach: ::core::option::Option, + pub detach: ::core::option::Option, + pub start: ::core::option::Option, + pub stop: ::core::option::Option, + pub set_signal_rate: + ::core::option::Option, + pub module_info: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sfp, arg2: *mut ethtool_modinfo) -> ::aya_ebpf::cty::c_int, + >, + pub module_eeprom: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sfp, + arg2: *mut ethtool_eeprom, + arg3: *mut u8_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub module_eeprom_by_page: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sfp, + arg2: *const ethtool_module_eeprom, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sfp_upstream_ops { + pub attach: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ::aya_ebpf::cty::c_void, arg2: *mut sfp_bus), + >, + pub detach: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ::aya_ebpf::cty::c_void, arg2: *mut sfp_bus), + >, + pub module_insert: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ::aya_ebpf::cty::c_void, + arg2: *const sfp_eeprom_id, + ) -> ::aya_ebpf::cty::c_int, + >, + pub module_remove: + ::core::option::Option, + pub module_start: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ::aya_ebpf::cty::c_void) -> ::aya_ebpf::cty::c_int, + >, + pub module_stop: + ::core::option::Option, + pub link_down: ::core::option::Option, + pub link_up: ::core::option::Option, + pub connect_phy: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ::aya_ebpf::cty::c_void, + arg2: *mut phy_device, + ) -> ::aya_ebpf::cty::c_int, + >, + pub disconnect_phy: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ::aya_ebpf::cty::c_void, arg2: *mut phy_device), + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct shrink_control { + pub gfp_mask: gfp_t, + pub nid: ::aya_ebpf::cty::c_int, + pub nr_to_scan: ::aya_ebpf::cty::c_ulong, + pub nr_scanned: ::aya_ebpf::cty::c_ulong, + pub memcg: *mut mem_cgroup, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct shrinker { + pub count_objects: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut shrinker, + arg2: *mut shrink_control, + ) -> ::aya_ebpf::cty::c_ulong, + >, + pub scan_objects: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut shrinker, + arg2: *mut shrink_control, + ) -> ::aya_ebpf::cty::c_ulong, + >, + pub batch: ::aya_ebpf::cty::c_long, + pub seeks: ::aya_ebpf::cty::c_int, + pub flags: ::aya_ebpf::cty::c_uint, + pub refcount: refcount_t, + pub done: completion, + pub rcu: callback_head, + pub private_data: *mut ::aya_ebpf::cty::c_void, + pub list: list_head, + pub id: ::aya_ebpf::cty::c_int, + pub debugfs_id: ::aya_ebpf::cty::c_int, + pub name: *const ::aya_ebpf::cty::c_char, + pub debugfs_entry: *mut dentry, + pub nr_deferred: *mut atomic_long_t, +} +#[repr(C)] +#[derive(Debug)] +pub struct shrinker_info { + pub rcu: callback_head, + pub map_nr_max: ::aya_ebpf::cty::c_int, + pub unit: __IncompleteArrayField<*mut shrinker_info_unit>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct shrinker_info_unit { + pub nr_deferred: [atomic_long_t; 64usize], + pub map: [::aya_ebpf::cty::c_ulong; 1usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sighand_struct { + pub siglock: spinlock_t, + pub count: refcount_t, + pub signalfd_wqh: wait_queue_head_t, + pub action: [k_sigaction; 64usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sigpending { + pub list: list_head, + pub signal: sigset_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct task_cputime_atomic { + pub utime: atomic64_t, + pub stime: atomic64_t, + pub sum_exec_runtime: atomic64_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct thread_group_cputimer { + pub cputime_atomic: task_cputime_atomic, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct task_io_accounting { + pub rchar: u64_, + pub wchar: u64_, + pub syscr: u64_, + pub syscw: u64_, + pub read_bytes: u64_, + pub write_bytes: u64_, + pub cancelled_write_bytes: u64_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct signal_struct { + pub sigcnt: refcount_t, + pub live: atomic_t, + pub nr_threads: ::aya_ebpf::cty::c_int, + pub quick_threads: ::aya_ebpf::cty::c_int, + pub thread_head: list_head, + pub wait_chldexit: wait_queue_head_t, + pub curr_target: *mut task_struct, + pub shared_pending: sigpending, + pub multiprocess: hlist_head, + pub group_exit_code: ::aya_ebpf::cty::c_int, + pub notify_count: ::aya_ebpf::cty::c_int, + pub group_exec_task: *mut task_struct, + pub group_stop_count: ::aya_ebpf::cty::c_int, + pub flags: ::aya_ebpf::cty::c_uint, + pub core_state: *mut core_state, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub next_posix_timer_id: atomic_t, + pub posix_timers: hlist_head, + pub ignored_posix_timers: hlist_head, + pub real_timer: hrtimer, + pub it_real_incr: ktime_t, + pub it: [cpu_itimer; 2usize], + pub cputimer: thread_group_cputimer, + pub posix_cputimers: posix_cputimers, + pub pids: [*mut pid; 4usize], + pub tick_dep_mask: atomic_t, + pub tty_old_pgrp: *mut pid, + pub leader: ::aya_ebpf::cty::c_int, + pub tty: *mut tty_struct, + pub autogroup: *mut autogroup, + pub stats_lock: seqlock_t, + pub utime: u64_, + pub stime: u64_, + pub cutime: u64_, + pub cstime: u64_, + pub gtime: u64_, + pub cgtime: u64_, + pub prev_cputime: prev_cputime, + pub nvcsw: ::aya_ebpf::cty::c_ulong, + pub nivcsw: ::aya_ebpf::cty::c_ulong, + pub cnvcsw: ::aya_ebpf::cty::c_ulong, + pub cnivcsw: ::aya_ebpf::cty::c_ulong, + pub min_flt: ::aya_ebpf::cty::c_ulong, + pub maj_flt: ::aya_ebpf::cty::c_ulong, + pub cmin_flt: ::aya_ebpf::cty::c_ulong, + pub cmaj_flt: ::aya_ebpf::cty::c_ulong, + pub inblock: ::aya_ebpf::cty::c_ulong, + pub oublock: ::aya_ebpf::cty::c_ulong, + pub cinblock: ::aya_ebpf::cty::c_ulong, + pub coublock: ::aya_ebpf::cty::c_ulong, + pub maxrss: ::aya_ebpf::cty::c_ulong, + pub cmaxrss: ::aya_ebpf::cty::c_ulong, + pub ioac: task_io_accounting, + pub sum_sched_runtime: ::aya_ebpf::cty::c_ulonglong, + pub rlim: [rlimit; 16usize], + pub pacct: pacct_struct, + pub stats: *mut taskstats, + pub audit_tty: ::aya_ebpf::cty::c_uint, + pub tty_audit_buf: *mut tty_audit_buf, + pub cgroup_threadgroup_rwsem: rw_semaphore, + pub oom_flag_origin: bool_, + pub oom_score_adj: ::aya_ebpf::cty::c_short, + pub oom_score_adj_min: ::aya_ebpf::cty::c_short, + pub oom_mm: *mut mm_struct, + pub cred_guard_mutex: mutex, + pub exec_update_lock: rw_semaphore, +} +impl signal_struct { + #[inline] + pub fn is_child_subreaper(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_is_child_subreaper(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn is_child_subreaper_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_is_child_subreaper_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn has_child_subreaper(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_child_subreaper(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn has_child_subreaper_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_has_child_subreaper_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn autoreap(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_autoreap(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn autoreap_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_autoreap_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn timer_create_restore_ids(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } + } + #[inline] + pub fn set_timer_create_restore_ids(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn timer_create_restore_ids_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_timer_create_restore_ids_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + is_child_subreaper: ::aya_ebpf::cty::c_uint, + has_child_subreaper: ::aya_ebpf::cty::c_uint, + autoreap: ::aya_ebpf::cty::c_uint, + timer_create_restore_ids: ::aya_ebpf::cty::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let is_child_subreaper: u32 = unsafe { ::core::mem::transmute(is_child_subreaper) }; + is_child_subreaper as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let has_child_subreaper: u32 = unsafe { ::core::mem::transmute(has_child_subreaper) }; + has_child_subreaper as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let autoreap: u32 = unsafe { ::core::mem::transmute(autoreap) }; + autoreap as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let timer_create_restore_ids: u32 = + unsafe { ::core::mem::transmute(timer_create_restore_ids) }; + timer_create_restore_ids as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sk_filter { + pub refcnt: refcount_t, + pub rcu: callback_head, + pub prog: *mut bpf_prog, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sk_psock_work_state { + pub len: u32_, + pub off: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sk_psock { + pub sk: *mut sock, + pub sk_redir: *mut sock, + pub apply_bytes: u32_, + pub cork_bytes: u32_, + pub eval: u32_, + pub redir_ingress: bool_, + pub cork: *mut sk_msg, + pub progs: sk_psock_progs, + pub strp: strparser, + pub copied_seq: u32_, + pub ingress_bytes: u32_, + pub ingress_skb: sk_buff_head, + pub ingress_msg: list_head, + pub ingress_lock: spinlock_t, + pub msg_tot_len: u32_, + pub state: ::aya_ebpf::cty::c_ulong, + pub link: list_head, + pub link_lock: spinlock_t, + pub refcnt: refcount_t, + pub saved_unhash: ::core::option::Option, + pub saved_destroy: ::core::option::Option, + pub saved_close: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sock, arg2: ::aya_ebpf::cty::c_long), + >, + pub saved_write_space: ::core::option::Option, + pub saved_data_ready: ::core::option::Option, + pub psock_update_sk_prot: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sock, + arg2: *mut sk_psock, + arg3: bool_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub sk_proto: *mut proto, + pub work_mutex: mutex, + pub work_state: sk_psock_work_state, + pub work: delayed_work, + pub sk_pair: *mut sock, + pub rwork: rcu_work, +} +#[repr(C)] +#[derive(Debug)] +pub struct skb_ext { + pub refcnt: refcount_t, + pub offset: [u8_; 7usize], + pub chunks: u8_, + pub __bindgen_padding_0: [u8; 4usize], + pub data: __IncompleteArrayField<::aya_ebpf::cty::c_char>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct skb_shared_hwtstamps { + pub __bindgen_anon_1: skb_shared_hwtstamps__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union skb_shared_hwtstamps__bindgen_ty_1 { + pub hwtstamp: ktime_t, + pub netdev_data: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +pub struct slab_sheaf { + pub __bindgen_anon_1: slab_sheaf__bindgen_ty_1, + pub cache: *mut kmem_cache, + pub size: ::aya_ebpf::cty::c_uint, + pub node: ::aya_ebpf::cty::c_int, + pub objects: __IncompleteArrayField<*mut ::aya_ebpf::cty::c_void>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union slab_sheaf__bindgen_ty_1 { + pub callback_head: callback_head, + pub barn_list: list_head, + pub __bindgen_anon_1: slab_sheaf__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct slab_sheaf__bindgen_ty_1__bindgen_ty_1 { + pub capacity: ::aya_ebpf::cty::c_uint, + pub pfmemalloc: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct slub_percpu_sheaves { + pub lock: local_trylock_t, + pub main: *mut slab_sheaf, + pub spare: *mut slab_sheaf, + pub rcu_free: *mut slab_sheaf, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct smack_known { + pub list: list_head, + pub smk_hashed: hlist_node, + pub smk_known: *mut ::aya_ebpf::cty::c_char, + pub smk_secid: u32_, + pub smk_netlabel: netlbl_lsm_secattr, + pub smk_rules: list_head, + pub smk_rules_lock: mutex, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct smc_hashinfo { + pub lock: rwlock_t, + pub ht: hlist_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct smc_hs_ctrl { + pub list: list_head, + pub owner: *mut module, + pub name: [::aya_ebpf::cty::c_char; 16usize], + pub flags: ::aya_ebpf::cty::c_int, + pub syn_option: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub synack_option: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const tcp_sock, + arg2: *mut inet_request_sock, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sock_fprog_kern { + pub len: u16_, + pub filter: *mut sock_filter, +} +#[repr(C)] +#[derive(Debug)] +pub struct sock_reuseport { + pub rcu: callback_head, + pub max_socks: u16_, + pub num_socks: u16_, + pub num_closed_socks: u16_, + pub incoming_cpu: u16_, + pub synq_overflow_ts: ::aya_ebpf::cty::c_uint, + pub reuseport_id: ::aya_ebpf::cty::c_uint, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub prog: *mut bpf_prog, + pub socks: __IncompleteArrayField<*mut sock>, +} +impl sock_reuseport { + #[inline] + pub fn bind_inany(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_bind_inany(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn bind_inany_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_bind_inany_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn has_conns(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_conns(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn has_conns_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_has_conns_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + bind_inany: ::aya_ebpf::cty::c_uint, + has_conns: ::aya_ebpf::cty::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let bind_inany: u32 = unsafe { ::core::mem::transmute(bind_inany) }; + bind_inany as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let has_conns: u32 = unsafe { ::core::mem::transmute(has_conns) }; + has_conns as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug)] +pub struct sockaddr_unsized { + pub sa_family: __kernel_sa_family_t, + pub sa_data: __IncompleteArrayField<::aya_ebpf::cty::c_char>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct socket_wq { + pub wait: wait_queue_head_t, + pub fasync_list: *mut fasync_struct, + pub flags: ::aya_ebpf::cty::c_ulong, + pub rcu: callback_head, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, +} +impl socket_wq { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct socket { + pub state: socket_state::Type, + pub type_: ::aya_ebpf::cty::c_short, + pub flags: ::aya_ebpf::cty::c_ulong, + pub file: *mut file, + pub sk: *mut sock, + pub ops: *const proto_ops, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, + pub wq: socket_wq, +} +impl socket { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sockopt { + pub iter_in: iov_iter, + pub iter_out: iov_iter, + pub optlen: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct srcu_ctr { + pub srcu_locks: atomic_long_t, + pub srcu_unlocks: atomic_long_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct srcu_data { + pub srcu_ctrs: [srcu_ctr; 2usize], + pub srcu_reader_flavor: ::aya_ebpf::cty::c_int, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, + pub __bindgen_padding_0: u32, + pub lock: raw_spinlock_t, + pub srcu_cblist: rcu_segcblist, + pub srcu_gp_seq_needed: ::aya_ebpf::cty::c_ulong, + pub srcu_gp_seq_needed_exp: ::aya_ebpf::cty::c_ulong, + pub srcu_cblist_invoking: bool_, + pub delay_work: timer_list, + pub work: work_struct, + pub srcu_barrier_head: callback_head, + pub srcu_ec_head: callback_head, + pub srcu_ec_state: ::aya_ebpf::cty::c_int, + pub mynode: *mut srcu_node, + pub grpmask: ::aya_ebpf::cty::c_ulong, + pub cpu: ::aya_ebpf::cty::c_int, + pub ssp: *mut srcu_struct, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 24usize]>, +} +impl srcu_data { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + __bindgen_bitfield_unit + } + #[inline] + pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct srcu_node { + pub lock: raw_spinlock_t, + pub srcu_have_cbs: [::aya_ebpf::cty::c_ulong; 4usize], + pub srcu_data_have_cbs: [::aya_ebpf::cty::c_ulong; 4usize], + pub srcu_gp_seq_needed_exp: ::aya_ebpf::cty::c_ulong, + pub srcu_parent: *mut srcu_node, + pub grplo: ::aya_ebpf::cty::c_int, + pub grphi: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct static_call_key { + pub func: *mut ::aya_ebpf::cty::c_void, + pub __bindgen_anon_1: static_call_key__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union static_call_key__bindgen_ty_1 { + pub type_: ::aya_ebpf::cty::c_ulong, + pub mods: *mut static_call_mod, + pub sites: *mut static_call_site, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct static_call_mod { + pub next: *mut static_call_mod, + pub mod_: *mut module, + pub sites: *mut static_call_site, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct static_call_site { + pub addr: s32, + pub key: s32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct static_key_mod { + pub next: *mut static_key_mod, + pub entries: *mut jump_entry, + pub mod_: *mut module, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mtd_info { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct super_block { + pub s_list: list_head, + pub s_dev: dev_t, + pub s_blocksize_bits: ::aya_ebpf::cty::c_uchar, + pub s_blocksize: ::aya_ebpf::cty::c_ulong, + pub s_maxbytes: loff_t, + pub s_type: *mut file_system_type, + pub s_op: *const super_operations, + pub dq_op: *const dquot_operations, + pub s_qcop: *const quotactl_ops, + pub s_export_op: *const export_operations, + pub s_flags: ::aya_ebpf::cty::c_ulong, + pub s_iflags: ::aya_ebpf::cty::c_ulong, + pub s_magic: ::aya_ebpf::cty::c_ulong, + pub s_root: *mut dentry, + pub s_umount: rw_semaphore, + pub s_count: ::aya_ebpf::cty::c_int, + pub s_active: atomic_t, + pub s_security: *mut ::aya_ebpf::cty::c_void, + pub s_xattr: *const *const xattr_handler, + pub s_cop: *const fscrypt_operations, + pub s_master_keys: *mut fscrypt_keyring, + pub s_vop: *const fsverity_operations, + pub s_encoding: *mut unicode_map, + pub s_encoding_flags: __u16, + pub s_roots: hlist_bl_head, + pub s_mounts: *mut mount, + pub s_bdev: *mut block_device, + pub s_bdev_file: *mut file, + pub s_bdi: *mut backing_dev_info, + pub s_mtd: *mut mtd_info, + pub s_instances: hlist_node, + pub s_quota_types: ::aya_ebpf::cty::c_uint, + pub s_dquot: quota_info, + pub s_writers: sb_writers, + pub s_fs_info: *mut ::aya_ebpf::cty::c_void, + pub s_time_gran: u32_, + pub s_time_min: time64_t, + pub s_time_max: time64_t, + pub s_fsnotify_mask: u32_, + pub s_fsnotify_info: *mut fsnotify_sb_info, + pub s_id: [::aya_ebpf::cty::c_char; 32usize], + pub s_uuid: uuid_t, + pub s_uuid_len: u8_, + pub s_sysfs_name: [::aya_ebpf::cty::c_char; 37usize], + pub s_max_links: ::aya_ebpf::cty::c_uint, + pub s_d_flags: ::aya_ebpf::cty::c_uint, + pub s_vfs_rename_mutex: mutex, + pub s_subtype: *const ::aya_ebpf::cty::c_char, + pub __s_d_op: *const dentry_operations, + pub s_shrink: *mut shrinker, + pub s_remove_count: atomic_long_t, + pub s_readonly_remount: ::aya_ebpf::cty::c_int, + pub s_wb_err: errseq_t, + pub s_dio_done_wq: *mut workqueue_struct, + pub s_pins: hlist_head, + pub s_user_ns: *mut user_namespace, + pub s_dentry_lru: list_lru, + pub s_inode_lru: list_lru, + pub rcu: callback_head, + pub destroy_work: work_struct, + pub s_sync_lock: mutex, + pub s_stack_depth: ::aya_ebpf::cty::c_int, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 40usize]>, + pub __bindgen_padding_0: u32, + pub s_inode_list_lock: spinlock_t, + pub s_inodes: list_head, + pub s_inode_wblist_lock: spinlock_t, + pub s_inodes_wb: list_head, + pub s_min_writeback_pages: ::aya_ebpf::cty::c_long, + pub s_pending_errors: refcount_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct super_operations { + pub alloc_inode: + ::core::option::Option *mut inode>, + pub destroy_inode: ::core::option::Option, + pub free_inode: ::core::option::Option, + pub dirty_inode: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut inode, arg2: ::aya_ebpf::cty::c_int), + >, + pub write_inode: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut inode, + arg2: *mut writeback_control, + ) -> ::aya_ebpf::cty::c_int, + >, + pub drop_inode: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub evict_inode: ::core::option::Option, + pub put_super: ::core::option::Option, + pub sync_fs: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut super_block, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub freeze_super: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut super_block, + arg2: freeze_holder::Type, + arg3: *const ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub freeze_fs: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut super_block) -> ::aya_ebpf::cty::c_int, + >, + pub thaw_super: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut super_block, + arg2: freeze_holder::Type, + arg3: *const ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub unfreeze_fs: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut super_block) -> ::aya_ebpf::cty::c_int, + >, + pub statfs: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut dentry, arg2: *mut kstatfs) -> ::aya_ebpf::cty::c_int, + >, + pub umount_begin: ::core::option::Option, + pub show_options: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut seq_file, arg2: *mut dentry) -> ::aya_ebpf::cty::c_int, + >, + pub show_devname: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut seq_file, arg2: *mut dentry) -> ::aya_ebpf::cty::c_int, + >, + pub show_path: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut seq_file, arg2: *mut dentry) -> ::aya_ebpf::cty::c_int, + >, + pub show_stats: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut seq_file, arg2: *mut dentry) -> ::aya_ebpf::cty::c_int, + >, + pub quota_read: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut super_block, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut ::aya_ebpf::cty::c_char, + arg4: usize, + arg5: loff_t, + ) -> isize, + >, + pub quota_write: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut super_block, + arg2: ::aya_ebpf::cty::c_int, + arg3: *const ::aya_ebpf::cty::c_char, + arg4: usize, + arg5: loff_t, + ) -> isize, + >, + pub get_dquots: + ::core::option::Option *mut *mut dquot>, + pub nr_cached_objects: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut super_block, + arg2: *mut shrink_control, + ) -> ::aya_ebpf::cty::c_long, + >, + pub free_cached_objects: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut super_block, + arg2: *mut shrink_control, + ) -> ::aya_ebpf::cty::c_long, + >, + pub remove_bdev: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut super_block, + arg2: *mut block_device, + ) -> ::aya_ebpf::cty::c_int, + >, + pub shutdown: ::core::option::Option, + pub report_error: ::core::option::Option, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct svc_cred { + pub cr_uid: kuid_t, + pub cr_gid: kgid_t, + pub cr_group_info: *mut group_info, + pub cr_flavor: u32_, + pub cr_raw_principal: *mut ::aya_ebpf::cty::c_char, + pub cr_principal: *mut ::aya_ebpf::cty::c_char, + pub cr_targ_princ: *mut ::aya_ebpf::cty::c_char, + pub cr_gss_mech: *mut gss_api_mech, +} +#[repr(C)] +pub struct svc_deferred_req { + pub prot: u32_, + pub xprt: *mut svc_xprt, + pub addr: __kernel_sockaddr_storage, + pub addrlen: usize, + pub daddr: __kernel_sockaddr_storage, + pub daddrlen: usize, + pub xprt_ctxt: *mut ::aya_ebpf::cty::c_void, + pub handle: cache_deferred_req, + pub argslen: ::aya_ebpf::cty::c_int, + pub args: __IncompleteArrayField<__be32>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct svc_pool { + pub sp_id: ::aya_ebpf::cty::c_uint, + pub sp_nrthreads: ::aya_ebpf::cty::c_uint, + pub sp_nrthrmin: ::aya_ebpf::cty::c_uint, + pub sp_nrthrmax: ::aya_ebpf::cty::c_uint, + pub sp_xprts: lwq, + pub sp_all_threads: list_head, + pub sp_idle_threads: llist_head, + pub sp_messages_arrived: percpu_counter, + pub sp_sockets_queued: percpu_counter, + pub sp_threads_woken: percpu_counter, + pub sp_flags: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct svc_procedure { + pub pc_func: ::core::option::Option __be32>, + pub pc_decode: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut svc_rqst, arg2: *mut xdr_stream) -> bool_, + >, + pub pc_encode: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut svc_rqst, arg2: *mut xdr_stream) -> bool_, + >, + pub pc_release: ::core::option::Option, + pub pc_argsize: ::aya_ebpf::cty::c_uint, + pub pc_argzero: ::aya_ebpf::cty::c_uint, + pub pc_ressize: ::aya_ebpf::cty::c_uint, + pub pc_cachetype: ::aya_ebpf::cty::c_uint, + pub pc_xdrressize: ::aya_ebpf::cty::c_uint, + pub pc_name: *const ::aya_ebpf::cty::c_char, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct svc_process_info { + pub __bindgen_anon_1: svc_process_info__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union svc_process_info__bindgen_ty_1 { + pub dispatch: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub mismatch: svc_process_info__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct svc_process_info__bindgen_ty_1__bindgen_ty_1 { + pub lovers: ::aya_ebpf::cty::c_uint, + pub hivers: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct svc_program { + pub pg_prog: u32_, + pub pg_lovers: ::aya_ebpf::cty::c_uint, + pub pg_hivers: ::aya_ebpf::cty::c_uint, + pub pg_nvers: ::aya_ebpf::cty::c_uint, + pub pg_vers: *mut *const svc_version, + pub pg_name: *mut ::aya_ebpf::cty::c_char, + pub pg_class: *mut ::aya_ebpf::cty::c_char, + pub pg_authenticate: + ::core::option::Option svc_auth_status::Type>, + pub pg_init_request: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut svc_rqst, + arg2: *const svc_program, + arg3: *mut svc_process_info, + ) -> __be32, + >, + pub pg_rpcbind_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net, + arg2: *const svc_program, + arg3: u32_, + arg4: ::aya_ebpf::cty::c_int, + arg5: ::aya_ebpf::cty::c_ushort, + arg6: ::aya_ebpf::cty::c_ushort, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xdr_stream { + pub p: *mut __be32, + pub buf: *mut xdr_buf, + pub end: *mut __be32, + pub iov: *mut kvec, + pub scratch: kvec, + pub page_ptr: *mut *mut page, + pub page_kaddr: *mut ::aya_ebpf::cty::c_void, + pub nwords: ::aya_ebpf::cty::c_uint, + pub rqst: *mut rpc_rqst, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct svc_rqst { + pub rq_all: list_head, + pub rq_idle: llist_node, + pub rq_rcu_head: callback_head, + pub rq_xprt: *mut svc_xprt, + pub rq_addr: __kernel_sockaddr_storage, + pub rq_addrlen: usize, + pub rq_daddr: __kernel_sockaddr_storage, + pub rq_daddrlen: usize, + pub rq_server: *mut svc_serv, + pub rq_pool: *mut svc_pool, + pub rq_procinfo: *const svc_procedure, + pub rq_authop: *mut auth_ops, + pub rq_cred: svc_cred, + pub rq_xprt_ctxt: *mut ::aya_ebpf::cty::c_void, + pub rq_deferred: *mut svc_deferred_req, + pub rq_arg: xdr_buf, + pub rq_arg_stream: xdr_stream, + pub rq_res_stream: xdr_stream, + pub rq_scratch_folio: *mut folio, + pub rq_res: xdr_buf, + pub rq_maxpages: ::aya_ebpf::cty::c_ulong, + pub rq_pages_nfree: ::aya_ebpf::cty::c_ulong, + pub rq_pages: *mut *mut page, + pub rq_respages: *mut *mut page, + pub rq_next_page: *mut *mut page, + pub rq_page_end: *mut *mut page, + pub rq_fbatch: folio_batch, + pub rq_bvec: *mut bio_vec, + pub rq_xid: __be32, + pub rq_prog: u32_, + pub rq_vers: u32_, + pub rq_proc: u32_, + pub rq_prot: u32_, + pub rq_flags: ::aya_ebpf::cty::c_ulong, + pub rq_qtime: ktime_t, + pub rq_argp: *mut ::aya_ebpf::cty::c_void, + pub rq_resp: *mut ::aya_ebpf::cty::c_void, + pub rq_accept_statp: *mut __be32, + pub rq_auth_data: *mut ::aya_ebpf::cty::c_void, + pub rq_auth_stat: __be32, + pub rq_auth_slack: ::aya_ebpf::cty::c_int, + pub rq_reserved: ::aya_ebpf::cty::c_int, + pub rq_stime: ktime_t, + pub rq_chandle: cache_req, + pub rq_client: *mut auth_domain, + pub rq_gssclient: *mut auth_domain, + pub rq_task: *mut task_struct, + pub rq_bc_net: *mut net, + pub rq_err: ::aya_ebpf::cty::c_int, + pub bc_to_initval: ::aya_ebpf::cty::c_ulong, + pub bc_to_retries: ::aya_ebpf::cty::c_uint, + pub rq_status_counter: ::aya_ebpf::cty::c_uint, + pub rq_private: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct svc_serv { + pub sv_programs: *mut svc_program, + pub sv_stats: *mut svc_stat, + pub sv_lock: spinlock_t, + pub sv_nprogs: ::aya_ebpf::cty::c_uint, + pub sv_nrthreads: ::aya_ebpf::cty::c_uint, + pub sv_max_payload: ::aya_ebpf::cty::c_uint, + pub sv_max_mesg: ::aya_ebpf::cty::c_uint, + pub sv_xdrsize: ::aya_ebpf::cty::c_uint, + pub sv_permsocks: list_head, + pub sv_tempsocks: list_head, + pub sv_tmpcnt: ::aya_ebpf::cty::c_int, + pub sv_temptimer: timer_list, + pub sv_name: *mut ::aya_ebpf::cty::c_char, + pub sv_nrpools: ::aya_ebpf::cty::c_uint, + pub sv_is_pooled: bool_, + pub sv_pools: *mut svc_pool, + pub sv_threadfn: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ::aya_ebpf::cty::c_void) -> ::aya_ebpf::cty::c_int, + >, + pub sv_cb_list: lwq, + pub sv_bc_enabled: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct svc_stat { + pub program: *mut svc_program, + pub netcnt: ::aya_ebpf::cty::c_uint, + pub netudpcnt: ::aya_ebpf::cty::c_uint, + pub nettcpcnt: ::aya_ebpf::cty::c_uint, + pub nettcpconn: ::aya_ebpf::cty::c_uint, + pub rpccnt: ::aya_ebpf::cty::c_uint, + pub rpcbadfmt: ::aya_ebpf::cty::c_uint, + pub rpcbadauth: ::aya_ebpf::cty::c_uint, + pub rpcbadclnt: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct svc_version { + pub vs_vers: u32_, + pub vs_nproc: u32_, + pub vs_proc: *const svc_procedure, + pub vs_count: *mut ::aya_ebpf::cty::c_ulong, + pub vs_xdrsize: u32_, + pub vs_hidden: bool_, + pub vs_rpcb_optnl: bool_, + pub vs_need_cong_ctrl: bool_, + pub vs_dispatch: + ::core::option::Option ::aya_ebpf::cty::c_int>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct swap_cluster_info { + pub lock: spinlock_t, + pub count: u16_, + pub flags: u8_, + pub order: u8_, + pub table: *mut atomic_long_t, + pub extend_table: *mut ::aya_ebpf::cty::c_uint, + pub list: list_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct swap_info_struct { + pub users: percpu_ref, + pub flags: ::aya_ebpf::cty::c_ulong, + pub prio: ::aya_ebpf::cty::c_short, + pub list: plist_node, + pub type_: ::aya_ebpf::cty::c_schar, + pub max: ::aya_ebpf::cty::c_uint, + pub zeromap: *mut ::aya_ebpf::cty::c_ulong, + pub cluster_info: *mut swap_cluster_info, + pub free_clusters: list_head, + pub full_clusters: list_head, + pub nonfull_clusters: [list_head; 10usize], + pub frag_clusters: [list_head; 10usize], + pub pages: ::aya_ebpf::cty::c_uint, + pub inuse_pages: atomic_long_t, + pub global_cluster: *mut swap_sequential_cluster, + pub global_cluster_lock: spinlock_t, + pub swap_extent_root: rb_root, + pub bdev: *mut block_device, + pub swap_file: *mut file, + pub comp: completion, + pub lock: spinlock_t, + pub discard_work: work_struct, + pub reclaim_work: work_struct, + pub discard_clusters: list_head, + pub avail_list: plist_node, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct swap_sequential_cluster { + pub next: [::aya_ebpf::cty::c_uint; 10usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct switchdev_mst_state { + pub msti: u16_, + pub state: u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct switchdev_brport_flags { + pub val: ::aya_ebpf::cty::c_ulong, + pub mask: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct switchdev_vlan_msti { + pub vid: u16_, + pub msti: u16_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct switchdev_obj { + pub list: list_head, + pub orig_dev: *mut net_device, + pub id: switchdev_obj_id::Type, + pub flags: u32_, + pub complete_priv: *mut ::aya_ebpf::cty::c_void, + pub complete: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut ::aya_ebpf::cty::c_void, + ), + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct switchdev_obj_mrp { + pub obj: switchdev_obj, + pub p_port: *mut net_device, + pub s_port: *mut net_device, + pub ring_id: u32_, + pub prio: u16_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct switchdev_obj_port_mdb { + pub obj: switchdev_obj, + pub addr: [::aya_ebpf::cty::c_uchar; 6usize], + pub vid: u16_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct switchdev_obj_port_vlan { + pub obj: switchdev_obj, + pub flags: u16_, + pub vid: u16_, + pub changed: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct switchdev_obj_ring_role_mrp { + pub obj: switchdev_obj, + pub ring_role: u8_, + pub ring_id: u32_, + pub sw_backup: u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct trace_event_class { + pub system: *const ::aya_ebpf::cty::c_char, + pub probe: *mut ::aya_ebpf::cty::c_void, + pub perf_probe: *mut ::aya_ebpf::cty::c_void, + pub reg: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut trace_event_call, + arg2: trace_reg::Type, + arg3: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub fields_array: *mut trace_event_fields, + pub get_fields: + ::core::option::Option *mut list_head>, + pub fields: list_head, + pub raw_init: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut trace_event_call) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct trace_event { + pub node: hlist_node, + pub type_: ::aya_ebpf::cty::c_int, + pub funcs: *mut trace_event_functions, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct trace_event_call { + pub list: list_head, + pub class: *mut trace_event_class, + pub __bindgen_anon_1: trace_event_call__bindgen_ty_1, + pub event: trace_event, + pub print_fmt: *mut ::aya_ebpf::cty::c_char, + pub __bindgen_anon_2: trace_event_call__bindgen_ty_2, + pub data: *mut ::aya_ebpf::cty::c_void, + pub flags: ::aya_ebpf::cty::c_int, + pub perf_refcount: ::aya_ebpf::cty::c_int, + pub perf_events: *mut hlist_head, + pub prog_array: *mut bpf_prog_array, + pub perf_perm: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut trace_event_call, + arg2: *mut perf_event, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union trace_event_call__bindgen_ty_1 { + pub name: *const ::aya_ebpf::cty::c_char, + pub tp: *mut tracepoint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union trace_event_call__bindgen_ty_2 { + pub module: *mut ::aya_ebpf::cty::c_void, + pub refcnt: atomic_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct syscall_user_dispatch { + pub selector: *mut ::aya_ebpf::cty::c_char, + pub offset: ::aya_ebpf::cty::c_ulong, + pub len: ::aya_ebpf::cty::c_ulong, + pub on_dispatch: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sysfs_ops { + pub show: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut kobject, + arg2: *mut attribute, + arg3: *mut ::aya_ebpf::cty::c_char, + ) -> isize, + >, + pub store: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut kobject, + arg2: *mut attribute, + arg3: *const ::aya_ebpf::cty::c_char, + arg4: usize, + ) -> isize, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sysv_sem { + pub undo_list: *mut sem_undo_list, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sysv_shm { + pub shm_clist: list_head, +} +#[repr(C)] +#[derive(Debug)] +pub struct table_header { + pub td_id: u16_, + pub td_flags: u16_, + pub td_hilen: u32_, + pub td_lolen: u32_, + pub td_data: __IncompleteArrayField<::aya_ebpf::cty::c_char>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct task_delay_info { + pub lock: raw_spinlock_t, + pub blkio_start: u64_, + pub blkio_delay_max: u64_, + pub blkio_delay_min: u64_, + pub blkio_delay: u64_, + pub swapin_start: u64_, + pub swapin_delay_max: u64_, + pub swapin_delay_min: u64_, + pub swapin_delay: u64_, + pub blkio_count: u32_, + pub swapin_count: u32_, + pub freepages_start: u64_, + pub freepages_delay_max: u64_, + pub freepages_delay_min: u64_, + pub freepages_delay: u64_, + pub thrashing_start: u64_, + pub thrashing_delay_max: u64_, + pub thrashing_delay_min: u64_, + pub thrashing_delay: u64_, + pub compact_start: u64_, + pub compact_delay_max: u64_, + pub compact_delay_min: u64_, + pub compact_delay: u64_, + pub wpcopy_start: u64_, + pub wpcopy_delay_max: u64_, + pub wpcopy_delay_min: u64_, + pub wpcopy_delay: u64_, + pub irq_delay_max: u64_, + pub irq_delay_min: u64_, + pub irq_delay: u64_, + pub freepages_count: u32_, + pub thrashing_count: u32_, + pub compact_count: u32_, + pub wpcopy_count: u32_, + pub irq_count: u32_, + pub blkio_delay_max_ts: timespec64, + pub swapin_delay_max_ts: timespec64, + pub freepages_delay_max_ts: timespec64, + pub thrashing_delay_max_ts: timespec64, + pub compact_delay_max_ts: timespec64, + pub wpcopy_delay_max_ts: timespec64, + pub irq_delay_max_ts: timespec64, +} +#[repr(C)] +#[repr(align(4))] +#[derive(Debug, Copy, Clone)] +pub struct uclamp_se { + pub _bitfield_align_1: [u16; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, + pub __bindgen_padding_0: u16, +} +impl uclamp_se { + #[inline] + pub fn value(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 11u8) as u32) } + } + #[inline] + pub fn set_value(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 11u8, val as u64) + } + } + #[inline] + pub unsafe fn value_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 11u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_value_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 11u8, + val as u64, + ) + } + } + #[inline] + pub fn bucket_id(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 3u8) as u32) } + } + #[inline] + pub fn set_bucket_id(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(11usize, 3u8, val as u64) + } + } + #[inline] + pub unsafe fn bucket_id_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 11usize, + 3u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_bucket_id_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 11usize, + 3u8, + val as u64, + ) + } + } + #[inline] + pub fn active(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u32) } + } + #[inline] + pub fn set_active(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(14usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn active_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 14usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_active_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 14usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn user_defined(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u32) } + } + #[inline] + pub fn set_user_defined(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(15usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn user_defined_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 15usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_user_defined_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 15usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + value: ::aya_ebpf::cty::c_uint, + bucket_id: ::aya_ebpf::cty::c_uint, + active: ::aya_ebpf::cty::c_uint, + user_defined: ::aya_ebpf::cty::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 2usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 11u8, { + let value: u32 = unsafe { ::core::mem::transmute(value) }; + value as u64 + }); + __bindgen_bitfield_unit.set(11usize, 3u8, { + let bucket_id: u32 = unsafe { ::core::mem::transmute(bucket_id) }; + bucket_id as u64 + }); + __bindgen_bitfield_unit.set(14usize, 1u8, { + let active: u32 = unsafe { ::core::mem::transmute(active) }; + active as u64 + }); + __bindgen_bitfield_unit.set(15usize, 1u8, { + let user_defined: u32 = unsafe { ::core::mem::transmute(user_defined) }; + user_defined as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct task_group { + pub css: cgroup_subsys_state, + pub idle: ::aya_ebpf::cty::c_int, + pub se: *mut *mut sched_entity, + pub cfs_rq: *mut *mut cfs_rq, + pub shares: ::aya_ebpf::cty::c_ulong, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>, + pub load_avg: atomic_long_t, + pub scx: scx_task_group, + pub rcu: callback_head, + pub list: list_head, + pub parent: *mut task_group, + pub siblings: list_head, + pub children: list_head, + pub autogroup: *mut autogroup, + pub cfs_bandwidth: cfs_bandwidth, + pub uclamp_pct: [::aya_ebpf::cty::c_uint; 2usize], + pub uclamp_req: [uclamp_se; 2usize], + pub uclamp: [uclamp_se; 2usize], + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 24usize]>, +} +impl task_group { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); + __bindgen_bitfield_unit + } + #[inline] + pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct thread_info { + pub flags: ::aya_ebpf::cty::c_ulong, + pub syscall_work: ::aya_ebpf::cty::c_ulong, + pub status: u32_, + pub cpu: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct vtime { + pub seqcount: seqcount_t, + pub starttime: ::aya_ebpf::cty::c_ulonglong, + pub state: vtime_state::Type, + pub cpu: ::aya_ebpf::cty::c_uint, + pub utime: u64_, + pub stime: u64_, + pub gtime: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wake_q_node { + pub next: *mut wake_q_node, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tlbflush_unmap_batch { + pub arch: arch_tlbflush_unmap_batch, + pub flush_required: bool_, + pub writable: bool_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union unwind_task_id { + pub __bindgen_anon_1: unwind_task_id__bindgen_ty_1, + pub id: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct unwind_task_id__bindgen_ty_1 { + pub cpu: u32_, + pub cnt: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct unwind_task_info { + pub unwind_mask: atomic_long_t, + pub cache: *mut unwind_cache, + pub work: callback_head, + pub id: unwind_task_id, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct thread_shstk { + pub base: u64_, + pub size: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct thread_struct { + pub tls_array: [desc_struct; 3usize], + pub sp: ::aya_ebpf::cty::c_ulong, + pub es: ::aya_ebpf::cty::c_ushort, + pub ds: ::aya_ebpf::cty::c_ushort, + pub fsindex: ::aya_ebpf::cty::c_ushort, + pub gsindex: ::aya_ebpf::cty::c_ushort, + pub fsbase: ::aya_ebpf::cty::c_ulong, + pub gsbase: ::aya_ebpf::cty::c_ulong, + pub ptrace_bps: [*mut perf_event; 4usize], + pub virtual_dr6: ::aya_ebpf::cty::c_ulong, + pub ptrace_dr7: ::aya_ebpf::cty::c_ulong, + pub cr2: ::aya_ebpf::cty::c_ulong, + pub trap_nr: ::aya_ebpf::cty::c_ulong, + pub error_code: ::aya_ebpf::cty::c_ulong, + pub io_bitmap: *mut io_bitmap, + pub iopl_emul: ::aya_ebpf::cty::c_ulong, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub pkru: u32_, + pub features: ::aya_ebpf::cty::c_ulong, + pub features_locked: ::aya_ebpf::cty::c_ulong, + pub shstk: thread_shstk, +} +impl thread_struct { + #[inline] + pub fn iopl_warn(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_iopl_warn(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn iopl_warn_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_iopl_warn_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + iopl_warn: ::aya_ebpf::cty::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let iopl_warn: u32 = unsafe { ::core::mem::transmute(iopl_warn) }; + iopl_warn as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct task_struct { + pub thread_info: thread_info, + pub __state: ::aya_ebpf::cty::c_uint, + pub saved_state: ::aya_ebpf::cty::c_uint, + pub stack: *mut ::aya_ebpf::cty::c_void, + pub usage: refcount_t, + pub flags: ::aya_ebpf::cty::c_uint, + pub ptrace: ::aya_ebpf::cty::c_uint, + pub alloc_tag: *mut alloc_tag, + pub on_cpu: ::aya_ebpf::cty::c_int, + pub wake_entry: __call_single_node, + pub wakee_flips: ::aya_ebpf::cty::c_uint, + pub wakee_flip_decay_ts: ::aya_ebpf::cty::c_ulong, + pub last_wakee: *mut task_struct, + pub recent_used_cpu: ::aya_ebpf::cty::c_int, + pub wake_cpu: ::aya_ebpf::cty::c_int, + pub on_rq: ::aya_ebpf::cty::c_int, + pub prio: ::aya_ebpf::cty::c_int, + pub static_prio: ::aya_ebpf::cty::c_int, + pub normal_prio: ::aya_ebpf::cty::c_int, + pub rt_priority: ::aya_ebpf::cty::c_uint, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 48usize]>, + pub se: sched_entity, + pub rt: sched_rt_entity, + pub dl: sched_dl_entity, + pub dl_server: *mut sched_dl_entity, + pub scx: sched_ext_entity, + pub bore: bore_ctx, + pub sched_class: *const sched_class, + pub core_node: rb_node, + pub core_cookie: ::aya_ebpf::cty::c_ulong, + pub core_occupation: ::aya_ebpf::cty::c_uint, + pub sched_task_group: *mut task_group, + pub sched_throttle_work: callback_head, + pub throttle_node: list_head, + pub throttled: bool_, + pub uclamp_req: [uclamp_se; 2usize], + pub uclamp: [uclamp_se; 2usize], + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 16usize]>, + pub stats: sched_statistics, + pub preempt_notifiers: hlist_head, + pub btrace_seq: ::aya_ebpf::cty::c_uint, + pub policy: ::aya_ebpf::cty::c_uint, + pub max_allowed_capacity: ::aya_ebpf::cty::c_ulong, + pub nr_cpus_allowed: ::aya_ebpf::cty::c_int, + pub cpus_ptr: *const cpumask_t, + pub user_cpus_ptr: *mut cpumask_t, + pub cpus_mask: cpumask_t, + pub migration_pending: *mut ::aya_ebpf::cty::c_void, + pub migration_disabled: ::aya_ebpf::cty::c_ushort, + pub migration_flags: ::aya_ebpf::cty::c_ushort, + pub rcu_read_lock_nesting: ::aya_ebpf::cty::c_int, + pub rcu_read_unlock_special: rcu_special, + pub rcu_node_entry: list_head, + pub rcu_blocked_node: *mut rcu_node, + pub rcu_tasks_nvcsw: ::aya_ebpf::cty::c_ulong, + pub rcu_tasks_holdout: u8_, + pub rcu_tasks_idx: u8_, + pub rcu_tasks_idle_cpu: ::aya_ebpf::cty::c_int, + pub rcu_tasks_holdout_list: list_head, + pub rcu_tasks_exit_cpu: ::aya_ebpf::cty::c_int, + pub rcu_tasks_exit_list: list_head, + pub trc_reader_nesting: ::aya_ebpf::cty::c_int, + pub trc_reader_scp: *mut srcu_ctr, + pub sched_info: sched_info, + pub tasks: list_head, + pub pushable_tasks: plist_node, + pub pushable_dl_tasks: rb_node, + pub mm: *mut mm_struct, + pub active_mm: *mut mm_struct, + pub exit_state: ::aya_ebpf::cty::c_int, + pub exit_code: ::aya_ebpf::cty::c_int, + pub exit_signal: ::aya_ebpf::cty::c_int, + pub pdeath_signal: ::aya_ebpf::cty::c_int, + pub jobctl: ::aya_ebpf::cty::c_ulong, + pub personality: ::aya_ebpf::cty::c_uint, + pub _bitfield_align_3: [u8; 0], + pub _bitfield_3: __BindgenBitfieldUnit<[u8; 6usize]>, + pub atomic_flags: ::aya_ebpf::cty::c_ulong, + pub restart_block: restart_block, + pub pid: pid_t, + pub tgid: pid_t, + pub stack_canary: ::aya_ebpf::cty::c_ulong, + pub real_parent: *mut task_struct, + pub parent: *mut task_struct, + pub children: list_head, + pub sibling: list_head, + pub group_leader: *mut task_struct, + pub ptraced: list_head, + pub ptrace_entry: list_head, + pub thread_pid: *mut pid, + pub pid_links: [hlist_node; 4usize], + pub thread_node: list_head, + pub vfork_done: *mut completion, + pub set_child_tid: *mut ::aya_ebpf::cty::c_int, + pub clear_child_tid: *mut ::aya_ebpf::cty::c_int, + pub worker_private: *mut ::aya_ebpf::cty::c_void, + pub utime: u64_, + pub stime: u64_, + pub gtime: u64_, + pub prev_cputime: prev_cputime, + pub vtime: vtime, + pub tick_dep_mask: atomic_t, + pub nvcsw: ::aya_ebpf::cty::c_ulong, + pub nivcsw: ::aya_ebpf::cty::c_ulong, + pub start_time: u64_, + pub start_boottime: u64_, + pub min_flt: ::aya_ebpf::cty::c_ulong, + pub maj_flt: ::aya_ebpf::cty::c_ulong, + pub posix_cputimers: posix_cputimers, + pub posix_cputimers_work: posix_cputimers_work, + pub ptracer_cred: *const cred, + pub real_cred: *const cred, + pub cred: *const cred, + pub cached_requested_key: *mut key, + pub comm: [::aya_ebpf::cty::c_char; 16usize], + pub nameidata: *mut nameidata, + pub sysvsem: sysv_sem, + pub sysvshm: sysv_shm, + pub last_switch_count: ::aya_ebpf::cty::c_ulong, + pub last_switch_time: ::aya_ebpf::cty::c_ulong, + pub fs: *mut fs_struct, + pub files: *mut files_struct, + pub io_uring: *mut io_uring_task, + pub io_uring_restrict: *mut io_restriction, + pub nsproxy: *mut nsproxy, + pub signal: *mut signal_struct, + pub sighand: *mut sighand_struct, + pub blocked: sigset_t, + pub real_blocked: sigset_t, + pub saved_sigmask: sigset_t, + pub pending: sigpending, + pub sas_ss_sp: ::aya_ebpf::cty::c_ulong, + pub sas_ss_size: usize, + pub sas_ss_flags: ::aya_ebpf::cty::c_uint, + pub task_works: *mut callback_head, + pub audit_context: *mut audit_context, + pub loginuid: kuid_t, + pub sessionid: ::aya_ebpf::cty::c_uint, + pub seccomp: seccomp, + pub syscall_dispatch: syscall_user_dispatch, + pub parent_exec_id: u64_, + pub self_exec_id: u64_, + pub alloc_lock: spinlock_t, + pub pi_lock: raw_spinlock_t, + pub wake_q: wake_q_node, + pub pi_waiters: rb_root_cached, + pub pi_top_task: *mut task_struct, + pub pi_blocked_on: *mut rt_mutex_waiter, + pub blocked_on: *mut mutex, + pub blocked_lock: raw_spinlock_t, + pub blocker: ::aya_ebpf::cty::c_ulong, + pub journal_info: *mut ::aya_ebpf::cty::c_void, + pub bio_list: *mut bio_list, + pub plug: *mut blk_plug, + pub reclaim_state: *mut reclaim_state, + pub io_context: *mut io_context, + pub capture_control: *mut capture_control, + pub ptrace_message: ::aya_ebpf::cty::c_ulong, + pub last_siginfo: *mut kernel_siginfo_t, + pub ioac: task_io_accounting, + pub psi_flags: ::aya_ebpf::cty::c_uint, + pub acct_rss_mem1: u64_, + pub acct_vm_mem1: u64_, + pub acct_timexpd: u64_, + pub mems_allowed: nodemask_t, + pub mems_allowed_seq: seqcount_spinlock_t, + pub cpuset_mem_spread_rotor: ::aya_ebpf::cty::c_int, + pub cgroups: *mut css_set, + pub cg_list: list_head, + pub closid: u32_, + pub rmid: u32_, + pub robust_list: *mut robust_list_head, + pub compat_robust_list: *mut compat_robust_list_head, + pub pi_state_list: list_head, + pub pi_state_cache: *mut futex_pi_state, + pub futex_exit_mutex: mutex, + pub futex_state: ::aya_ebpf::cty::c_uint, + pub perf_recursion: [u8_; 4usize], + pub perf_event_ctxp: *mut perf_event_context, + pub perf_event_mutex: mutex, + pub perf_event_list: list_head, + pub perf_ctx_data: *mut perf_ctx_data, + pub __bindgen_anon_1: task_struct__bindgen_ty_1, + pub mempolicy: *mut mempolicy, + pub il_prev: ::aya_ebpf::cty::c_short, + pub il_weight: u8_, + pub pref_node_fork: ::aya_ebpf::cty::c_short, + pub numa_scan_seq: ::aya_ebpf::cty::c_int, + pub numa_scan_period: ::aya_ebpf::cty::c_uint, + pub numa_scan_period_max: ::aya_ebpf::cty::c_uint, + pub numa_preferred_nid: ::aya_ebpf::cty::c_int, + pub numa_migrate_retry: ::aya_ebpf::cty::c_ulong, + pub node_stamp: u64_, + pub last_task_numa_placement: u64_, + pub last_sum_exec_runtime: u64_, + pub numa_work: callback_head, + pub numa_group: *mut numa_group, + pub numa_faults: *mut ::aya_ebpf::cty::c_ulong, + pub total_numa_faults: ::aya_ebpf::cty::c_ulong, + pub numa_faults_locality: [::aya_ebpf::cty::c_ulong; 3usize], + pub numa_pages_migrated: ::aya_ebpf::cty::c_ulong, + pub rseq: rseq_data, + pub mm_cid: sched_mm_cid, + pub tlb_ubc: tlbflush_unmap_batch, + pub splice_pipe: *mut pipe_inode_info, + pub task_frag: page_frag, + pub lazy_mmu_state: lazy_mmu_state, + pub delays: *mut task_delay_info, + pub nr_dirtied: ::aya_ebpf::cty::c_int, + pub nr_dirtied_pause: ::aya_ebpf::cty::c_int, + pub dirty_paused_when: ::aya_ebpf::cty::c_ulong, + pub timer_slack_ns: u64_, + pub default_timer_slack_ns: u64_, + pub curr_ret_stack: ::aya_ebpf::cty::c_int, + pub curr_ret_depth: ::aya_ebpf::cty::c_int, + pub ret_stack: *mut ::aya_ebpf::cty::c_ulong, + pub ftrace_timestamp: ::aya_ebpf::cty::c_ulonglong, + pub ftrace_sleeptime: ::aya_ebpf::cty::c_ulonglong, + pub trace_overrun: atomic_t, + pub tracing_graph_pause: atomic_t, + pub trace_recursion: ::aya_ebpf::cty::c_ulong, + pub memcg_nr_pages_over_high: ::aya_ebpf::cty::c_uint, + pub active_memcg: *mut mem_cgroup, + pub objcg: *mut obj_cgroup, + pub throttle_disk: *mut gendisk, + pub utask: *mut uprobe_task, + pub sequential_io: ::aya_ebpf::cty::c_uint, + pub sequential_io_avg: ::aya_ebpf::cty::c_uint, + pub kmap_ctrl: kmap_ctrl, + pub rcu: callback_head, + pub rcu_users: refcount_t, + pub pagefault_disabled: ::aya_ebpf::cty::c_int, + pub oom_reaper_list: *mut task_struct, + pub oom_reaper_timer: timer_list, + pub stack_vm_area: *mut vm_struct, + pub stack_refcount: refcount_t, + pub security: *mut ::aya_ebpf::cty::c_void, + pub bpf_storage: *mut bpf_local_storage, + pub bpf_ctx: *mut bpf_run_ctx, + pub bpf_net_context: *mut bpf_net_context, + pub mce_vaddr: *mut ::aya_ebpf::cty::c_void, + pub mce_kflags: __u64, + pub mce_addr: u64_, + pub _bitfield_align_4: [u64; 0], + pub _bitfield_4: __BindgenBitfieldUnit<[u8; 8usize]>, + pub mce_kill_me: callback_head, + pub mce_count: ::aya_ebpf::cty::c_int, + pub kretprobe_instances: llist_head, + pub rethooks: llist_head, + pub l1d_flush_kill: callback_head, + pub user_event_mm: *mut user_event_mm, + pub unwind_info: unwind_task_info, + pub thread: thread_struct, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union task_struct__bindgen_ty_1 { + pub ipi_mask_ptr: *mut cpumask_t, + pub ipi_mask_val: ::aya_ebpf::cty::c_ulong, +} +impl task_struct { + #[inline] + pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); + __bindgen_bitfield_unit + } + #[inline] + pub fn sched_reset_on_fork(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_3.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_sched_reset_on_fork(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_3.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sched_reset_on_fork_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 6usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_sched_reset_on_fork_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 6usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sched_contributes_to_load(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_3.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_sched_contributes_to_load(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_3.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sched_contributes_to_load_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 6usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 1usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_sched_contributes_to_load_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 6usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sched_migrated(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_3.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_sched_migrated(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_3.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sched_migrated_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 6usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 2usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_sched_migrated_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 6usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sched_task_hot(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_3.get(3usize, 1u8) as u32) } + } + #[inline] + pub fn set_sched_task_hot(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_3.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sched_task_hot_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 6usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 3usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_sched_task_hot_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 6usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sched_remote_wakeup(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_3.get(32usize, 1u8) as u32) } + } + #[inline] + pub fn set_sched_remote_wakeup(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_3.set(32usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sched_remote_wakeup_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 6usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 32usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_sched_remote_wakeup_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 6usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 32usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sched_rt_mutex(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_3.get(33usize, 1u8) as u32) } + } + #[inline] + pub fn set_sched_rt_mutex(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_3.set(33usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn sched_rt_mutex_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 6usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 33usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_sched_rt_mutex_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 6usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 33usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn user_dumpable(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_3.get(34usize, 1u8) as u32) } + } + #[inline] + pub fn set_user_dumpable(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_3.set(34usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn user_dumpable_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 6usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 34usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_user_dumpable_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 6usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 34usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn in_execve(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_3.get(35usize, 1u8) as u32) } + } + #[inline] + pub fn set_in_execve(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_3.set(35usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn in_execve_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 6usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 35usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_in_execve_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 6usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 35usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn in_iowait(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_3.get(36usize, 1u8) as u32) } + } + #[inline] + pub fn set_in_iowait(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_3.set(36usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn in_iowait_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 6usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 36usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_in_iowait_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 6usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 36usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn restore_sigmask(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_3.get(37usize, 1u8) as u32) } + } + #[inline] + pub fn set_restore_sigmask(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_3.set(37usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn restore_sigmask_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 6usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 37usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_restore_sigmask_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 6usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 37usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn in_lru_fault(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_3.get(38usize, 1u8) as u32) } + } + #[inline] + pub fn set_in_lru_fault(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_3.set(38usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn in_lru_fault_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 6usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 38usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_in_lru_fault_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 6usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 38usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn no_cgroup_migration(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_3.get(39usize, 1u8) as u32) } + } + #[inline] + pub fn set_no_cgroup_migration(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_3.set(39usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn no_cgroup_migration_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 6usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 39usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_no_cgroup_migration_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 6usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 39usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn frozen(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_3.get(40usize, 1u8) as u32) } + } + #[inline] + pub fn set_frozen(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_3.set(40usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn frozen_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 6usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 40usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_frozen_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 6usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 40usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn use_memdelay(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_3.get(41usize, 1u8) as u32) } + } + #[inline] + pub fn set_use_memdelay(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_3.set(41usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn use_memdelay_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 6usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 41usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_use_memdelay_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 6usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 41usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn in_memstall(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_3.get(42usize, 1u8) as u32) } + } + #[inline] + pub fn set_in_memstall(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_3.set(42usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn in_memstall_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 6usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 42usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_in_memstall_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 6usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 42usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn in_eventfd(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_3.get(43usize, 1u8) as u32) } + } + #[inline] + pub fn set_in_eventfd(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_3.set(43usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn in_eventfd_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 6usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 43usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_in_eventfd_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 6usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 43usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn pasid_activated(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_3.get(44usize, 1u8) as u32) } + } + #[inline] + pub fn set_pasid_activated(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_3.set(44usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn pasid_activated_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 6usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 44usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_pasid_activated_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 6usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 44usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn reported_split_lock(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_3.get(45usize, 1u8) as u32) } + } + #[inline] + pub fn set_reported_split_lock(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_3.set(45usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn reported_split_lock_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 6usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 45usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_reported_split_lock_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 6usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 45usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn in_thrashing(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_3.get(46usize, 1u8) as u32) } + } + #[inline] + pub fn set_in_thrashing(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_3.set(46usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn in_thrashing_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 6usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 46usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_in_thrashing_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 6usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 46usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn in_nf_duplicate(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_3.get(47usize, 1u8) as u32) } + } + #[inline] + pub fn set_in_nf_duplicate(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_3.set(47usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn in_nf_duplicate_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 6usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 47usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_in_nf_duplicate_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 6usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 47usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_3( + sched_reset_on_fork: ::aya_ebpf::cty::c_uint, + sched_contributes_to_load: ::aya_ebpf::cty::c_uint, + sched_migrated: ::aya_ebpf::cty::c_uint, + sched_task_hot: ::aya_ebpf::cty::c_uint, + sched_remote_wakeup: ::aya_ebpf::cty::c_uint, + sched_rt_mutex: ::aya_ebpf::cty::c_uint, + user_dumpable: ::aya_ebpf::cty::c_uint, + in_execve: ::aya_ebpf::cty::c_uint, + in_iowait: ::aya_ebpf::cty::c_uint, + restore_sigmask: ::aya_ebpf::cty::c_uint, + in_lru_fault: ::aya_ebpf::cty::c_uint, + no_cgroup_migration: ::aya_ebpf::cty::c_uint, + frozen: ::aya_ebpf::cty::c_uint, + use_memdelay: ::aya_ebpf::cty::c_uint, + in_memstall: ::aya_ebpf::cty::c_uint, + in_eventfd: ::aya_ebpf::cty::c_uint, + pasid_activated: ::aya_ebpf::cty::c_uint, + reported_split_lock: ::aya_ebpf::cty::c_uint, + in_thrashing: ::aya_ebpf::cty::c_uint, + in_nf_duplicate: ::aya_ebpf::cty::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 6usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 6usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let sched_reset_on_fork: u32 = unsafe { ::core::mem::transmute(sched_reset_on_fork) }; + sched_reset_on_fork as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let sched_contributes_to_load: u32 = + unsafe { ::core::mem::transmute(sched_contributes_to_load) }; + sched_contributes_to_load as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let sched_migrated: u32 = unsafe { ::core::mem::transmute(sched_migrated) }; + sched_migrated as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let sched_task_hot: u32 = unsafe { ::core::mem::transmute(sched_task_hot) }; + sched_task_hot as u64 + }); + __bindgen_bitfield_unit.set(32usize, 1u8, { + let sched_remote_wakeup: u32 = unsafe { ::core::mem::transmute(sched_remote_wakeup) }; + sched_remote_wakeup as u64 + }); + __bindgen_bitfield_unit.set(33usize, 1u8, { + let sched_rt_mutex: u32 = unsafe { ::core::mem::transmute(sched_rt_mutex) }; + sched_rt_mutex as u64 + }); + __bindgen_bitfield_unit.set(34usize, 1u8, { + let user_dumpable: u32 = unsafe { ::core::mem::transmute(user_dumpable) }; + user_dumpable as u64 + }); + __bindgen_bitfield_unit.set(35usize, 1u8, { + let in_execve: u32 = unsafe { ::core::mem::transmute(in_execve) }; + in_execve as u64 + }); + __bindgen_bitfield_unit.set(36usize, 1u8, { + let in_iowait: u32 = unsafe { ::core::mem::transmute(in_iowait) }; + in_iowait as u64 + }); + __bindgen_bitfield_unit.set(37usize, 1u8, { + let restore_sigmask: u32 = unsafe { ::core::mem::transmute(restore_sigmask) }; + restore_sigmask as u64 + }); + __bindgen_bitfield_unit.set(38usize, 1u8, { + let in_lru_fault: u32 = unsafe { ::core::mem::transmute(in_lru_fault) }; + in_lru_fault as u64 + }); + __bindgen_bitfield_unit.set(39usize, 1u8, { + let no_cgroup_migration: u32 = unsafe { ::core::mem::transmute(no_cgroup_migration) }; + no_cgroup_migration as u64 + }); + __bindgen_bitfield_unit.set(40usize, 1u8, { + let frozen: u32 = unsafe { ::core::mem::transmute(frozen) }; + frozen as u64 + }); + __bindgen_bitfield_unit.set(41usize, 1u8, { + let use_memdelay: u32 = unsafe { ::core::mem::transmute(use_memdelay) }; + use_memdelay as u64 + }); + __bindgen_bitfield_unit.set(42usize, 1u8, { + let in_memstall: u32 = unsafe { ::core::mem::transmute(in_memstall) }; + in_memstall as u64 + }); + __bindgen_bitfield_unit.set(43usize, 1u8, { + let in_eventfd: u32 = unsafe { ::core::mem::transmute(in_eventfd) }; + in_eventfd as u64 + }); + __bindgen_bitfield_unit.set(44usize, 1u8, { + let pasid_activated: u32 = unsafe { ::core::mem::transmute(pasid_activated) }; + pasid_activated as u64 + }); + __bindgen_bitfield_unit.set(45usize, 1u8, { + let reported_split_lock: u32 = unsafe { ::core::mem::transmute(reported_split_lock) }; + reported_split_lock as u64 + }); + __bindgen_bitfield_unit.set(46usize, 1u8, { + let in_thrashing: u32 = unsafe { ::core::mem::transmute(in_thrashing) }; + in_thrashing as u64 + }); + __bindgen_bitfield_unit.set(47usize, 1u8, { + let in_nf_duplicate: u32 = unsafe { ::core::mem::transmute(in_nf_duplicate) }; + in_nf_duplicate as u64 + }); + __bindgen_bitfield_unit + } + #[inline] + pub fn mce_ripv(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_4.get(0usize, 1u8) as u64) } + } + #[inline] + pub fn set_mce_ripv(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_4.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn mce_ripv_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_4), + 0usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_mce_ripv_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_4), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn mce_whole_page(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_4.get(1usize, 1u8) as u64) } + } + #[inline] + pub fn set_mce_whole_page(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_4.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn mce_whole_page_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_4), + 1usize, + 1u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set_mce_whole_page_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_4), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn __mce_reserved(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_4.get(2usize, 62u8) as u64) } + } + #[inline] + pub fn set___mce_reserved(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_4.set(2usize, 62u8, val as u64) + } + } + #[inline] + pub unsafe fn __mce_reserved_raw(this: *const Self) -> __u64 { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_4), + 2usize, + 62u8, + ) as u64) + } + } + #[inline] + pub unsafe fn set___mce_reserved_raw(this: *mut Self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_4), + 2usize, + 62u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_4( + mce_ripv: __u64, + mce_whole_page: __u64, + __mce_reserved: __u64, + ) -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let mce_ripv: u64 = unsafe { ::core::mem::transmute(mce_ripv) }; + mce_ripv as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let mce_whole_page: u64 = unsafe { ::core::mem::transmute(mce_whole_page) }; + mce_whole_page as u64 + }); + __bindgen_bitfield_unit.set(2usize, 62u8, { + let __mce_reserved: u64 = unsafe { ::core::mem::transmute(__mce_reserved) }; + __mce_reserved as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct taskstats { + pub version: __u16, + pub ac_exitcode: __u32, + pub ac_flag: __u8, + pub ac_nice: __u8, + pub cpu_count: __u64, + pub cpu_delay_total: __u64, + pub blkio_count: __u64, + pub blkio_delay_total: __u64, + pub swapin_count: __u64, + pub swapin_delay_total: __u64, + pub cpu_run_real_total: __u64, + pub cpu_run_virtual_total: __u64, + pub ac_comm: [::aya_ebpf::cty::c_char; 32usize], + pub ac_sched: __u8, + pub ac_pad: [__u8; 3usize], + pub __bindgen_padding_0: u32, + pub ac_uid: __u32, + pub ac_gid: __u32, + pub ac_pid: __u32, + pub ac_ppid: __u32, + pub ac_btime: __u32, + pub ac_etime: __u64, + pub ac_utime: __u64, + pub ac_stime: __u64, + pub ac_minflt: __u64, + pub ac_majflt: __u64, + pub coremem: __u64, + pub virtmem: __u64, + pub hiwater_rss: __u64, + pub hiwater_vm: __u64, + pub read_char: __u64, + pub write_char: __u64, + pub read_syscalls: __u64, + pub write_syscalls: __u64, + pub read_bytes: __u64, + pub write_bytes: __u64, + pub cancelled_write_bytes: __u64, + pub nvcsw: __u64, + pub nivcsw: __u64, + pub ac_utimescaled: __u64, + pub ac_stimescaled: __u64, + pub cpu_scaled_run_real_total: __u64, + pub freepages_count: __u64, + pub freepages_delay_total: __u64, + pub thrashing_count: __u64, + pub thrashing_delay_total: __u64, + pub ac_btime64: __u64, + pub compact_count: __u64, + pub compact_delay_total: __u64, + pub ac_tgid: __u32, + pub ac_tgetime: __u64, + pub ac_exe_dev: __u64, + pub ac_exe_inode: __u64, + pub wpcopy_count: __u64, + pub wpcopy_delay_total: __u64, + pub irq_count: __u64, + pub irq_delay_total: __u64, + pub cpu_delay_max: __u64, + pub cpu_delay_min: __u64, + pub blkio_delay_max: __u64, + pub blkio_delay_min: __u64, + pub swapin_delay_max: __u64, + pub swapin_delay_min: __u64, + pub freepages_delay_max: __u64, + pub freepages_delay_min: __u64, + pub thrashing_delay_max: __u64, + pub thrashing_delay_min: __u64, + pub compact_delay_max: __u64, + pub compact_delay_min: __u64, + pub wpcopy_delay_max: __u64, + pub wpcopy_delay_min: __u64, + pub irq_delay_max: __u64, + pub irq_delay_min: __u64, + pub cpu_delay_max_ts: __kernel_timespec, + pub blkio_delay_max_ts: __kernel_timespec, + pub swapin_delay_max_ts: __kernel_timespec, + pub freepages_delay_max_ts: __kernel_timespec, + pub thrashing_delay_max_ts: __kernel_timespec, + pub compact_delay_max_ts: __kernel_timespec, + pub wpcopy_delay_max_ts: __kernel_timespec, + pub irq_delay_max_ts: __kernel_timespec, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcf_t { + pub install: __u64, + pub lastuse: __u64, + pub expires: __u64, + pub firstuse: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct tc_action { + pub ops: *const tc_action_ops, + pub type_: __u32, + pub idrinfo: *mut tcf_idrinfo, + pub tcfa_index: u32_, + pub tcfa_refcnt: refcount_t, + pub tcfa_bindcnt: atomic_t, + pub tcfa_action: ::aya_ebpf::cty::c_int, + pub tcfa_tm: tcf_t, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, + pub tcfa_bstats: gnet_stats_basic_sync, + pub tcfa_bstats_hw: gnet_stats_basic_sync, + pub tcfa_drops: atomic_t, + pub tcfa_overlimits: atomic_t, + pub tcfa_rate_est: *mut net_rate_estimator, + pub tcfa_lock: spinlock_t, + pub cpu_bstats: *mut gnet_stats_basic_sync, + pub cpu_bstats_hw: *mut gnet_stats_basic_sync, + pub cpu_qstats: *mut gnet_stats_queue, + pub user_cookie: *mut tc_cookie, + pub goto_chain: *mut tcf_chain, + pub tcfa_flags: u32_, + pub tcfa_rcu: callback_head, + pub hw_stats: u8_, + pub used_hw_stats: u8_, + pub used_hw_stats_valid: bool_, + pub in_hw_count: u32_, +} +impl tc_action { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +pub type tc_action_priv_destructor = + ::core::option::Option; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tc_action_ops { + pub head: list_head, + pub kind: [::aya_ebpf::cty::c_char; 16usize], + pub id: tca_id::Type, + pub net_id: ::aya_ebpf::cty::c_uint, + pub size: usize, + pub owner: *mut module, + pub act: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sk_buff, + arg2: *const tc_action, + arg3: *mut tcf_result, + ) -> ::aya_ebpf::cty::c_int, + >, + pub dump: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sk_buff, + arg2: *mut tc_action, + arg3: ::aya_ebpf::cty::c_int, + arg4: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub cleanup: ::core::option::Option, + pub lookup: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net, + arg2: *mut *mut tc_action, + arg3: u32_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub init: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net, + arg2: *mut nlattr, + arg3: *mut nlattr, + arg4: *mut *mut tc_action, + arg5: *mut tcf_proto, + arg6: u32_, + arg7: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub walk: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net, + arg2: *mut sk_buff, + arg3: *mut netlink_callback, + arg4: ::aya_ebpf::cty::c_int, + arg5: *const tc_action_ops, + arg6: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub stats_update: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut tc_action, + arg2: u64_, + arg3: u64_, + arg4: u64_, + arg5: u64_, + arg6: bool_, + ), + >, + pub get_fill_size: + ::core::option::Option usize>, + pub get_dev: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const tc_action, + arg2: *mut tc_action_priv_destructor, + ) -> *mut net_device, + >, + pub get_psample_group: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const tc_action, + arg2: *mut tc_action_priv_destructor, + ) -> *mut psample_group, + >, + pub offload_act_setup: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut tc_action, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: *mut u32_, + arg4: bool_, + arg5: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tc_cookie { + pub data: *mut u8_, + pub len: u32_, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcf_walker { + pub stop: ::aya_ebpf::cty::c_int, + pub skip: ::aya_ebpf::cty::c_int, + pub count: ::aya_ebpf::cty::c_int, + pub nonempty: bool_, + pub cookie: ::aya_ebpf::cty::c_ulong, + pub fn_: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut tcf_proto, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: *mut tcf_walker, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct tcf_block { + pub ports: xarray, + pub lock: mutex, + pub chain_list: list_head, + pub index: u32_, + pub classid: u32_, + pub refcnt: refcount_t, + pub net: *mut net, + pub q: *mut Qdisc, + pub cb_lock: rw_semaphore, + pub flow_block: flow_block, + pub owner_list: list_head, + pub keep_dst: bool_, + pub useswcnt: atomic_t, + pub offloadcnt: atomic_t, + pub nooffloaddevcnt: ::aya_ebpf::cty::c_uint, + pub lockeddevcnt: ::aya_ebpf::cty::c_uint, + pub chain0: tcf_block__bindgen_ty_1, + pub rcu: callback_head, + pub proto_destroy_ht: [hlist_head; 128usize], + pub proto_destroy_lock: mutex, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcf_block__bindgen_ty_1 { + pub chain: *mut tcf_chain, + pub filter_chain_list: list_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct tcf_chain { + pub filter_chain_lock: mutex, + pub filter_chain: *mut tcf_proto, + pub list: list_head, + pub block: *mut tcf_block, + pub index: u32_, + pub refcnt: ::aya_ebpf::cty::c_uint, + pub action_refcnt: ::aya_ebpf::cty::c_uint, + pub explicitly_created: bool_, + pub flushing: bool_, + pub tmplt_ops: *const tcf_proto_ops, + pub tmplt_priv: *mut ::aya_ebpf::cty::c_void, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcf_exts { + pub type_: __u32, + pub nr_actions: ::aya_ebpf::cty::c_int, + pub actions: *mut *mut tc_action, + pub net: *mut net, + pub ns_tracker: netns_tracker, + pub miss_cookie_node: *mut tcf_exts_miss_cookie_node, + pub action: ::aya_ebpf::cty::c_int, + pub police: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcf_exts_miss_cookie_node { + pub chain: *const tcf_chain, + pub tp: *const tcf_proto, + pub exts: *const tcf_exts, + pub chain_index: u32_, + pub tp_prio: u32_, + pub handle: u32_, + pub miss_cookie_base: u32_, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct tcf_idrinfo { + pub lock: mutex, + pub action_idr: idr, + pub net: *mut net, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct tcf_proto { + pub next: *mut tcf_proto, + pub root: *mut ::aya_ebpf::cty::c_void, + pub classify: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sk_buff, + arg2: *const tcf_proto, + arg3: *mut tcf_result, + ) -> ::aya_ebpf::cty::c_int, + >, + pub protocol: __be16, + pub prio: u32_, + pub data: *mut ::aya_ebpf::cty::c_void, + pub ops: *const tcf_proto_ops, + pub chain: *mut tcf_chain, + pub lock: spinlock_t, + pub deleting: bool_, + pub counted: bool_, + pub usesw: bool_, + pub refcnt: refcount_t, + pub rcu: callback_head, + pub destroy_ht_node: hlist_node, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcf_proto_ops { + pub head: list_head, + pub kind: [::aya_ebpf::cty::c_char; 16usize], + pub classify: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sk_buff, + arg2: *const tcf_proto, + arg3: *mut tcf_result, + ) -> ::aya_ebpf::cty::c_int, + >, + pub init: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut tcf_proto) -> ::aya_ebpf::cty::c_int, + >, + pub destroy: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut tcf_proto, arg2: bool_, arg3: *mut netlink_ext_ack), + >, + pub get: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut tcf_proto, arg2: u32_) -> *mut ::aya_ebpf::cty::c_void, + >, + pub put: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut tcf_proto, arg2: *mut ::aya_ebpf::cty::c_void), + >, + pub change: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net, + arg2: *mut sk_buff, + arg3: *mut tcf_proto, + arg4: ::aya_ebpf::cty::c_ulong, + arg5: u32_, + arg6: *mut *mut nlattr, + arg7: *mut *mut ::aya_ebpf::cty::c_void, + arg8: u32_, + arg9: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub delete: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut tcf_proto, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: *mut bool_, + arg4: bool_, + arg5: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub delete_empty: ::core::option::Option bool_>, + pub walk: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut tcf_proto, arg2: *mut tcf_walker, arg3: bool_), + >, + pub reoffload: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut tcf_proto, + arg2: bool_, + arg3: flow_setup_cb_t, + arg4: *mut ::aya_ebpf::cty::c_void, + arg5: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub hw_add: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut tcf_proto, arg2: *mut ::aya_ebpf::cty::c_void), + >, + pub hw_del: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut tcf_proto, arg2: *mut ::aya_ebpf::cty::c_void), + >, + pub bind_class: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ::aya_ebpf::cty::c_void, + arg2: u32_, + arg3: ::aya_ebpf::cty::c_ulong, + arg4: *mut ::aya_ebpf::cty::c_void, + arg5: ::aya_ebpf::cty::c_ulong, + ), + >, + pub tmplt_create: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net, + arg2: *mut tcf_chain, + arg3: *mut *mut nlattr, + arg4: *mut netlink_ext_ack, + ) -> *mut ::aya_ebpf::cty::c_void, + >, + pub tmplt_destroy: + ::core::option::Option, + pub tmplt_reoffload: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut tcf_chain, + arg2: bool_, + arg3: flow_setup_cb_t, + arg4: *mut ::aya_ebpf::cty::c_void, + ), + >, + pub get_exts: ::core::option::Option< + unsafe extern "C" fn(arg1: *const tcf_proto, arg2: u32_) -> *mut tcf_exts, + >, + pub dump: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net, + arg2: *mut tcf_proto, + arg3: *mut ::aya_ebpf::cty::c_void, + arg4: *mut sk_buff, + arg5: *mut tcmsg, + arg6: bool_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub terse_dump: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net, + arg2: *mut tcf_proto, + arg3: *mut ::aya_ebpf::cty::c_void, + arg4: *mut sk_buff, + arg5: *mut tcmsg, + arg6: bool_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub tmplt_dump: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sk_buff, + arg2: *mut net, + arg3: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub owner: *mut module, + pub flags: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct tcf_result { + pub __bindgen_anon_1: tcf_result__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union tcf_result__bindgen_ty_1 { + pub __bindgen_anon_1: tcf_result__bindgen_ty_1__bindgen_ty_1, + pub goto_tp: *const tcf_proto, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcf_result__bindgen_ty_1__bindgen_ty_1 { + pub class: ::aya_ebpf::cty::c_ulong, + pub classid: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcmsg { + pub tcm_family: ::aya_ebpf::cty::c_uchar, + pub tcm__pad1: ::aya_ebpf::cty::c_uchar, + pub tcm__pad2: ::aya_ebpf::cty::c_ushort, + pub tcm_ifindex: ::aya_ebpf::cty::c_int, + pub tcm_handle: __u32, + pub tcm_parent: __u32, + pub tcm_info: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_options_received { + pub ts_recent_stamp: ::aya_ebpf::cty::c_int, + pub ts_recent: u32_, + pub rcv_tsval: u32_, + pub rcv_tsecr: u32_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>, + pub num_sacks: u8_, + pub user_mss: u16_, + pub mss_clamp: u16_, +} +impl tcp_options_received { + #[inline] + pub fn saw_tstamp(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) } + } + #[inline] + pub fn set_saw_tstamp(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn saw_tstamp_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_saw_tstamp_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn tstamp_ok(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) } + } + #[inline] + pub fn set_tstamp_ok(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn tstamp_ok_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_tstamp_ok_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn dsack(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) } + } + #[inline] + pub fn set_dsack(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dsack_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_dsack_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn wscale_ok(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u16) } + } + #[inline] + pub fn set_wscale_ok(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn wscale_ok_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_wscale_ok_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sack_ok(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 3u8) as u16) } + } + #[inline] + pub fn set_sack_ok(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 3u8, val as u64) + } + } + #[inline] + pub unsafe fn sack_ok_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 3u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_sack_ok_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 3u8, + val as u64, + ) + } + } + #[inline] + pub fn smc_ok(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u16) } + } + #[inline] + pub fn set_smc_ok(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn smc_ok_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 7usize, + 1u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_smc_ok_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 7usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn snd_wscale(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u16) } + } + #[inline] + pub fn set_snd_wscale(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(8usize, 4u8, val as u64) + } + } + #[inline] + pub unsafe fn snd_wscale_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 8usize, + 4u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_snd_wscale_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 8usize, + 4u8, + val as u64, + ) + } + } + #[inline] + pub fn rcv_wscale(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u16) } + } + #[inline] + pub fn set_rcv_wscale(&mut self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + self._bitfield_1.set(12usize, 4u8, val as u64) + } + } + #[inline] + pub unsafe fn rcv_wscale_raw(this: *const Self) -> u16_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 12usize, + 4u8, + ) as u16) + } + } + #[inline] + pub unsafe fn set_rcv_wscale_raw(this: *mut Self, val: u16_) { + unsafe { + let val: u16 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 12usize, + 4u8, + val as u64, + ) + } + } + #[inline] + pub fn accecn(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 6u8) as u8) } + } + #[inline] + pub fn set_accecn(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(16usize, 6u8, val as u64) + } + } + #[inline] + pub unsafe fn accecn_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 16usize, + 6u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_accecn_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 16usize, + 6u8, + val as u64, + ) + } + } + #[inline] + pub fn saw_unknown(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(22usize, 1u8) as u8) } + } + #[inline] + pub fn set_saw_unknown(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(22usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn saw_unknown_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 22usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_saw_unknown_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 22usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn unused(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(23usize, 1u8) as u8) } + } + #[inline] + pub fn set_unused(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(23usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn unused_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 23usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_unused_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 23usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + saw_tstamp: u16_, + tstamp_ok: u16_, + dsack: u16_, + wscale_ok: u16_, + sack_ok: u16_, + smc_ok: u16_, + snd_wscale: u16_, + rcv_wscale: u16_, + accecn: u8_, + saw_unknown: u8_, + unused: u8_, + ) -> __BindgenBitfieldUnit<[u8; 3usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let saw_tstamp: u16 = unsafe { ::core::mem::transmute(saw_tstamp) }; + saw_tstamp as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let tstamp_ok: u16 = unsafe { ::core::mem::transmute(tstamp_ok) }; + tstamp_ok as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let dsack: u16 = unsafe { ::core::mem::transmute(dsack) }; + dsack as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let wscale_ok: u16 = unsafe { ::core::mem::transmute(wscale_ok) }; + wscale_ok as u64 + }); + __bindgen_bitfield_unit.set(4usize, 3u8, { + let sack_ok: u16 = unsafe { ::core::mem::transmute(sack_ok) }; + sack_ok as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let smc_ok: u16 = unsafe { ::core::mem::transmute(smc_ok) }; + smc_ok as u64 + }); + __bindgen_bitfield_unit.set(8usize, 4u8, { + let snd_wscale: u16 = unsafe { ::core::mem::transmute(snd_wscale) }; + snd_wscale as u64 + }); + __bindgen_bitfield_unit.set(12usize, 4u8, { + let rcv_wscale: u16 = unsafe { ::core::mem::transmute(rcv_wscale) }; + rcv_wscale as u64 + }); + __bindgen_bitfield_unit.set(16usize, 6u8, { + let accecn: u8 = unsafe { ::core::mem::transmute(accecn) }; + accecn as u64 + }); + __bindgen_bitfield_unit.set(22usize, 1u8, { + let saw_unknown: u8 = unsafe { ::core::mem::transmute(saw_unknown) }; + saw_unknown as u64 + }); + __bindgen_bitfield_unit.set(23usize, 1u8, { + let unused: u8 = unsafe { ::core::mem::transmute(unused) }; + unused as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_rack { + pub mstamp: u64_, + pub rtt_us: u32_, + pub end_seq: u32_, + pub last_delivered: u32_, + pub reo_wnd_steps: u8_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: u16, +} +impl tcp_rack { + #[inline] + pub fn reo_wnd_persist(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 5u8) as u8) } + } + #[inline] + pub fn set_reo_wnd_persist(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 5u8, val as u64) + } + } + #[inline] + pub unsafe fn reo_wnd_persist_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 5u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_reo_wnd_persist_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 5u8, + val as u64, + ) + } + } + #[inline] + pub fn dsack_seen(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) } + } + #[inline] + pub fn set_dsack_seen(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn dsack_seen_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 5usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_dsack_seen_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 5usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn advanced(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) } + } + #[inline] + pub fn set_advanced(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn advanced_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 6usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_advanced_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 6usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + reo_wnd_persist: u8_, + dsack_seen: u8_, + advanced: u8_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 5u8, { + let reo_wnd_persist: u8 = unsafe { ::core::mem::transmute(reo_wnd_persist) }; + reo_wnd_persist as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let dsack_seen: u8 = unsafe { ::core::mem::transmute(dsack_seen) }; + dsack_seen as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let advanced: u8 = unsafe { ::core::mem::transmute(advanced) }; + advanced as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_sack_block { + pub start_seq: u32_, + pub end_seq: u32_, +} +#[repr(C)] +pub struct tcp_sock { + pub inet_conn: inet_connection_sock, + pub __cacheline_group_begin__tcp_sock_read_tx: __IncompleteArrayField<__u8>, + pub max_window: u32_, + pub rcv_ssthresh: u32_, + pub reordering: u32_, + pub notsent_lowat: u32_, + pub gso_segs: u16_, + pub retransmit_skb_hint: *mut sk_buff, + pub tcp_clean_acked: ::core::option::Option, + pub __cacheline_group_end__tcp_sock_read_tx: __IncompleteArrayField<__u8>, + pub __cacheline_group_begin__tcp_sock_read_txrx: __IncompleteArrayField<__u8>, + pub tsoffset: u32_, + pub snd_wnd: u32_, + pub mss_cache: u32_, + pub snd_cwnd: u32_, + pub prr_out: u32_, + pub lost_out: u32_, + pub sacked_out: u32_, + pub tcp_header_len: u16_, + pub scaling_ratio: u8_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __cacheline_group_end__tcp_sock_read_txrx: __IncompleteArrayField<__u8>, + pub __cacheline_group_begin__tcp_sock_read_rx: __IncompleteArrayField<__u8>, + pub copied_seq: u32_, + pub snd_wl1: u32_, + pub tlp_high_seq: u32_, + pub rttvar_us: u32_, + pub retrans_out: u32_, + pub advmss: u16_, + pub urg_data: u16_, + pub lost: u32_, + pub snd_ssthresh: u32_, + pub rtt_min: minmax, + pub out_of_order_queue: rb_root, + pub __cacheline_group_end__tcp_sock_read_rx: __IncompleteArrayField<__u8>, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 48usize]>, + pub __cacheline_group_begin__tcp_sock_write_tx: __IncompleteArrayField<__u8>, + pub segs_out: u32_, + pub data_segs_out: u32_, + pub bytes_sent: u64_, + pub snd_sml: u32_, + pub chrono_type: u8_, + pub chrono_start: u32_, + pub chrono_stat: [u32_; 3usize], + pub write_seq: u32_, + pub pushed_seq: u32_, + pub lsndtime: u32_, + pub mdev_us: u32_, + pub rtt_seq: u32_, + pub tcp_wstamp_ns: u64_, + pub accecn_opt_tstamp: u64_, + pub tsorted_sent_queue: list_head, + pub highest_sack: *mut sk_buff, + pub ecn_flags: u8_, + pub __cacheline_group_end__tcp_sock_write_tx: __IncompleteArrayField<__u8>, + pub __cacheline_group_begin__tcp_sock_write_txrx: __IncompleteArrayField<__u8>, + pub _bitfield_align_3: [u8; 0], + pub _bitfield_3: __BindgenBitfieldUnit<[u8; 3usize]>, + pub pred_flags: __be32, + pub tcp_clock_cache: u64_, + pub tcp_mstamp: u64_, + pub rcv_nxt: u32_, + pub snd_nxt: u32_, + pub snd_una: u32_, + pub window_clamp: u32_, + pub srtt_us: u32_, + pub packets_out: u32_, + pub snd_up: u32_, + pub delivered: u32_, + pub delivered_ce: u32_, + pub received_ce: u32_, + pub received_ecn_bytes: [u32_; 3usize], + pub app_limited: u32_, + pub rcv_wnd: u32_, + pub rcv_mwnd_seq: u32_, + pub rcv_tstamp: u32_, + pub rx_opt: tcp_options_received, + pub __cacheline_group_end__tcp_sock_write_txrx: __IncompleteArrayField<__u8>, + pub __bindgen_padding_0: [u8; 4usize], + pub __cacheline_group_begin__tcp_sock_write_rx: __IncompleteArrayField<__u8>, + pub bytes_received: u64_, + pub segs_in: u32_, + pub data_segs_in: u32_, + pub rcv_wup: u32_, + pub max_packets_out: u32_, + pub cwnd_usage_seq: u32_, + pub rate_delivered: u32_, + pub rate_interval_us: u32_, + pub rcv_rtt_last_tsecr: u32_, + pub delivered_ecn_bytes: [u32_; 3usize], + pub pkts_acked_ewma: u16_, + pub first_tx_mstamp: u64_, + pub delivered_mstamp: u64_, + pub bytes_acked: u64_, + pub rcv_rtt_est: tcp_sock__bindgen_ty_1, + pub rcvq_space: tcp_sock__bindgen_ty_2, + pub __cacheline_group_end__tcp_sock_write_rx: __IncompleteArrayField<__u8>, + pub dsack_dups: u32_, + pub compressed_ack_rcv_nxt: u32_, + pub tsq_node: list_head, + pub rack: tcp_rack, + pub compressed_ack: u8_, + pub _bitfield_align_4: [u8; 0], + pub _bitfield_4: __BindgenBitfieldUnit<[u8; 2usize]>, + pub repair_queue: u8_, + pub _bitfield_align_5: [u8; 0], + pub _bitfield_5: __BindgenBitfieldUnit<[u8; 1usize]>, + pub keepalive_probes: u8_, + pub _bitfield_align_6: [u8; 0], + pub _bitfield_6: __BindgenBitfieldUnit<[u8; 1usize]>, + pub tcp_tx_delay: u32_, + pub mdev_max_us: u32_, + pub reord_seen: u32_, + pub snd_cwnd_cnt: u32_, + pub snd_cwnd_clamp: u32_, + pub snd_cwnd_used: u32_, + pub snd_cwnd_stamp: u32_, + pub prior_cwnd: u32_, + pub prr_delivered: u32_, + pub last_oow_ack_time: u32_, + pub pacing_timer: hrtimer, + pub compressed_ack_timer: hrtimer, + pub ooo_last_skb: *mut sk_buff, + pub duplicate_sack: [tcp_sack_block; 1usize], + pub selective_acks: [tcp_sack_block; 4usize], + pub recv_sack_cache: [tcp_sack_block; 4usize], + pub prior_ssthresh: u32_, + pub high_seq: u32_, + pub retrans_stamp: u32_, + pub undo_marker: u32_, + pub undo_retrans: ::aya_ebpf::cty::c_int, + pub mtu_info: u32_, + pub bytes_retrans: u64_, + pub total_retrans: u32_, + pub rto_stamp: u32_, + pub total_rto: u16_, + pub total_rto_recoveries: u16_, + pub total_rto_time: u32_, + pub urg_seq: u32_, + pub keepalive_time: ::aya_ebpf::cty::c_uint, + pub keepalive_intvl: ::aya_ebpf::cty::c_uint, + pub linger2: ::aya_ebpf::cty::c_int, + pub bpf_sock_ops_cb_flags: u8_, + pub _bitfield_align_7: [u8; 0], + pub _bitfield_7: __BindgenBitfieldUnit<[u8; 1usize]>, + pub timeout_rehash: u16_, + pub rcv_ooopack: u32_, + pub mtu_probe: tcp_sock__bindgen_ty_3, + pub plb_rehash: u32_, + pub is_mptcp: bool_, + pub syn_smc: bool_, + pub smc_hs_congested: ::core::option::Option bool_>, + pub af_specific: *const tcp_sock_af_ops, + pub md5sig_info: *mut tcp_md5sig_info, + pub ao_info: *mut tcp_ao_info, + pub fastopen_req: *mut tcp_fastopen_request, + pub fastopen_rsk: *mut request_sock, + pub saved_syn: *mut saved_syn, + pub _bitfield_align_8: [u8; 0], + pub _bitfield_8: __BindgenBitfieldUnit<[u8; 16usize]>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_sock__bindgen_ty_1 { + pub rtt_us: u32_, + pub seq: u32_, + pub time: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_sock__bindgen_ty_2 { + pub space: ::aya_ebpf::cty::c_int, + pub seq: u32_, + pub time: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_sock__bindgen_ty_3 { + pub probe_seq_start: u32_, + pub probe_seq_end: u32_, +} +impl tcp_sock { + #[inline] + pub fn repair(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_repair(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn repair_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_repair_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn tcp_usec_ts(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_tcp_usec_ts(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn tcp_usec_ts_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_tcp_usec_ts_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn is_sack_reneg(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) } + } + #[inline] + pub fn set_is_sack_reneg(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn is_sack_reneg_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_is_sack_reneg_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn is_cwnd_limited(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) } + } + #[inline] + pub fn set_is_cwnd_limited(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn is_cwnd_limited_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_is_cwnd_limited_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn recvmsg_inq(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) } + } + #[inline] + pub fn set_recvmsg_inq(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn recvmsg_inq_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_recvmsg_inq_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fast_ack_mode(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) } + } + #[inline] + pub fn set_fast_ack_mode(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fast_ack_mode_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 5usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fast_ack_mode_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 5usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + repair: u8_, + tcp_usec_ts: u8_, + is_sack_reneg: u8_, + is_cwnd_limited: u8_, + recvmsg_inq: u8_, + fast_ack_mode: u8_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let repair: u8 = unsafe { ::core::mem::transmute(repair) }; + repair as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let tcp_usec_ts: u8 = unsafe { ::core::mem::transmute(tcp_usec_ts) }; + tcp_usec_ts as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let is_sack_reneg: u8 = unsafe { ::core::mem::transmute(is_sack_reneg) }; + is_sack_reneg as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let is_cwnd_limited: u8 = unsafe { ::core::mem::transmute(is_cwnd_limited) }; + is_cwnd_limited as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let recvmsg_inq: u8 = unsafe { ::core::mem::transmute(recvmsg_inq) }; + recvmsg_inq as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let fast_ack_mode: u8 = unsafe { ::core::mem::transmute(fast_ack_mode) }; + fast_ack_mode as u64 + }); + __bindgen_bitfield_unit + } + #[inline] + pub fn nonagle(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_3.get(0usize, 4u8) as u8) } + } + #[inline] + pub fn set_nonagle(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_3.set(0usize, 4u8, val as u64) + } + } + #[inline] + pub unsafe fn nonagle_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 0usize, + 4u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_nonagle_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 0usize, + 4u8, + val as u64, + ) + } + } + #[inline] + pub fn rate_app_limited(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_3.get(4usize, 1u8) as u8) } + } + #[inline] + pub fn set_rate_app_limited(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_3.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn rate_app_limited_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 4usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_rate_app_limited_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn tlp_orig_data_app_limited(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_3.get(5usize, 1u8) as u8) } + } + #[inline] + pub fn set_tlp_orig_data_app_limited(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_3.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn tlp_orig_data_app_limited_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 5usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_tlp_orig_data_app_limited_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 5usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn received_ce_pending(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_3.get(8usize, 4u8) as u8) } + } + #[inline] + pub fn set_received_ce_pending(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_3.set(8usize, 4u8, val as u64) + } + } + #[inline] + pub unsafe fn received_ce_pending_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 8usize, + 4u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_received_ce_pending_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 8usize, + 4u8, + val as u64, + ) + } + } + #[inline] + pub fn accecn_opt_sent_w_dsack(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_3.get(12usize, 1u8) as u8) } + } + #[inline] + pub fn set_accecn_opt_sent_w_dsack(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_3.set(12usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn accecn_opt_sent_w_dsack_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 12usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_accecn_opt_sent_w_dsack_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 12usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn unused2(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_3.get(13usize, 3u8) as u8) } + } + #[inline] + pub fn set_unused2(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_3.set(13usize, 3u8, val as u64) + } + } + #[inline] + pub unsafe fn unused2_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 13usize, + 3u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_unused2_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 13usize, + 3u8, + val as u64, + ) + } + } + #[inline] + pub fn accecn_minlen(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_3.get(16usize, 2u8) as u8) } + } + #[inline] + pub fn set_accecn_minlen(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_3.set(16usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn accecn_minlen_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 16usize, + 2u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_accecn_minlen_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 16usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn est_ecnfield(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_3.get(18usize, 2u8) as u8) } + } + #[inline] + pub fn set_est_ecnfield(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_3.set(18usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn est_ecnfield_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 18usize, + 2u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_est_ecnfield_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 18usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn accecn_opt_demand(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_3.get(20usize, 2u8) as u8) } + } + #[inline] + pub fn set_accecn_opt_demand(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_3.set(20usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn accecn_opt_demand_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 20usize, + 2u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_accecn_opt_demand_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 20usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn prev_ecnfield(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_3.get(22usize, 2u8) as u8) } + } + #[inline] + pub fn set_prev_ecnfield(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_3.set(22usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn prev_ecnfield_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 3usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_3), + 22usize, + 2u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_prev_ecnfield_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 3usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_3), + 22usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_3( + nonagle: u8_, + rate_app_limited: u8_, + tlp_orig_data_app_limited: u8_, + received_ce_pending: u8_, + accecn_opt_sent_w_dsack: u8_, + unused2: u8_, + accecn_minlen: u8_, + est_ecnfield: u8_, + accecn_opt_demand: u8_, + prev_ecnfield: u8_, + ) -> __BindgenBitfieldUnit<[u8; 3usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 4u8, { + let nonagle: u8 = unsafe { ::core::mem::transmute(nonagle) }; + nonagle as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let rate_app_limited: u8 = unsafe { ::core::mem::transmute(rate_app_limited) }; + rate_app_limited as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let tlp_orig_data_app_limited: u8 = + unsafe { ::core::mem::transmute(tlp_orig_data_app_limited) }; + tlp_orig_data_app_limited as u64 + }); + __bindgen_bitfield_unit.set(8usize, 4u8, { + let received_ce_pending: u8 = unsafe { ::core::mem::transmute(received_ce_pending) }; + received_ce_pending as u64 + }); + __bindgen_bitfield_unit.set(12usize, 1u8, { + let accecn_opt_sent_w_dsack: u8 = + unsafe { ::core::mem::transmute(accecn_opt_sent_w_dsack) }; + accecn_opt_sent_w_dsack as u64 + }); + __bindgen_bitfield_unit.set(13usize, 3u8, { + let unused2: u8 = unsafe { ::core::mem::transmute(unused2) }; + unused2 as u64 + }); + __bindgen_bitfield_unit.set(16usize, 2u8, { + let accecn_minlen: u8 = unsafe { ::core::mem::transmute(accecn_minlen) }; + accecn_minlen as u64 + }); + __bindgen_bitfield_unit.set(18usize, 2u8, { + let est_ecnfield: u8 = unsafe { ::core::mem::transmute(est_ecnfield) }; + est_ecnfield as u64 + }); + __bindgen_bitfield_unit.set(20usize, 2u8, { + let accecn_opt_demand: u8 = unsafe { ::core::mem::transmute(accecn_opt_demand) }; + accecn_opt_demand as u64 + }); + __bindgen_bitfield_unit.set(22usize, 2u8, { + let prev_ecnfield: u8 = unsafe { ::core::mem::transmute(prev_ecnfield) }; + prev_ecnfield as u64 + }); + __bindgen_bitfield_unit + } + #[inline] + pub fn dup_ack_counter(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_4.get(0usize, 2u8) as u8) } + } + #[inline] + pub fn set_dup_ack_counter(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_4.set(0usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn dup_ack_counter_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_4), + 0usize, + 2u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_dup_ack_counter_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_4), + 0usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn tlp_retrans(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_4.get(2usize, 1u8) as u8) } + } + #[inline] + pub fn set_tlp_retrans(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_4.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn tlp_retrans_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_4), + 2usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_tlp_retrans_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_4), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn syn_ect_snt(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_4.get(3usize, 2u8) as u8) } + } + #[inline] + pub fn set_syn_ect_snt(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_4.set(3usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn syn_ect_snt_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_4), + 3usize, + 2u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_syn_ect_snt_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_4), + 3usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn syn_ect_rcv(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_4.get(5usize, 2u8) as u8) } + } + #[inline] + pub fn set_syn_ect_rcv(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_4.set(5usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn syn_ect_rcv_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_4), + 5usize, + 2u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_syn_ect_rcv_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_4), + 5usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn thin_lto(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_4.get(7usize, 1u8) as u8) } + } + #[inline] + pub fn set_thin_lto(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_4.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn thin_lto_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_4), + 7usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_thin_lto_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_4), + 7usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fastopen_connect(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_4.get(8usize, 1u8) as u8) } + } + #[inline] + pub fn set_fastopen_connect(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_4.set(8usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fastopen_connect_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_4), + 8usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fastopen_connect_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_4), + 8usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fastopen_no_cookie(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_4.get(9usize, 1u8) as u8) } + } + #[inline] + pub fn set_fastopen_no_cookie(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_4.set(9usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn fastopen_no_cookie_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_4), + 9usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fastopen_no_cookie_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_4), + 9usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn fastopen_client_fail(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_4.get(10usize, 2u8) as u8) } + } + #[inline] + pub fn set_fastopen_client_fail(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_4.set(10usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn fastopen_client_fail_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_4), + 10usize, + 2u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_fastopen_client_fail_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_4), + 10usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn frto(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_4.get(12usize, 1u8) as u8) } + } + #[inline] + pub fn set_frto(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_4.set(12usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn frto_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_4), + 12usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_frto_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_4), + 12usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_4( + dup_ack_counter: u8_, + tlp_retrans: u8_, + syn_ect_snt: u8_, + syn_ect_rcv: u8_, + thin_lto: u8_, + fastopen_connect: u8_, + fastopen_no_cookie: u8_, + fastopen_client_fail: u8_, + frto: u8_, + ) -> __BindgenBitfieldUnit<[u8; 2usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 2u8, { + let dup_ack_counter: u8 = unsafe { ::core::mem::transmute(dup_ack_counter) }; + dup_ack_counter as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let tlp_retrans: u8 = unsafe { ::core::mem::transmute(tlp_retrans) }; + tlp_retrans as u64 + }); + __bindgen_bitfield_unit.set(3usize, 2u8, { + let syn_ect_snt: u8 = unsafe { ::core::mem::transmute(syn_ect_snt) }; + syn_ect_snt as u64 + }); + __bindgen_bitfield_unit.set(5usize, 2u8, { + let syn_ect_rcv: u8 = unsafe { ::core::mem::transmute(syn_ect_rcv) }; + syn_ect_rcv as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let thin_lto: u8 = unsafe { ::core::mem::transmute(thin_lto) }; + thin_lto as u64 + }); + __bindgen_bitfield_unit.set(8usize, 1u8, { + let fastopen_connect: u8 = unsafe { ::core::mem::transmute(fastopen_connect) }; + fastopen_connect as u64 + }); + __bindgen_bitfield_unit.set(9usize, 1u8, { + let fastopen_no_cookie: u8 = unsafe { ::core::mem::transmute(fastopen_no_cookie) }; + fastopen_no_cookie as u64 + }); + __bindgen_bitfield_unit.set(10usize, 2u8, { + let fastopen_client_fail: u8 = unsafe { ::core::mem::transmute(fastopen_client_fail) }; + fastopen_client_fail as u64 + }); + __bindgen_bitfield_unit.set(12usize, 1u8, { + let frto: u8 = unsafe { ::core::mem::transmute(frto) }; + frto as u64 + }); + __bindgen_bitfield_unit + } + #[inline] + pub fn save_syn(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_5.get(0usize, 2u8) as u8) } + } + #[inline] + pub fn set_save_syn(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_5.set(0usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn save_syn_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_5), + 0usize, + 2u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_save_syn_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_5), + 0usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn syn_data(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_5.get(2usize, 1u8) as u8) } + } + #[inline] + pub fn set_syn_data(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_5.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn syn_data_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_5), + 2usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_syn_data_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_5), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn syn_fastopen(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_5.get(3usize, 1u8) as u8) } + } + #[inline] + pub fn set_syn_fastopen(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_5.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn syn_fastopen_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_5), + 3usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_syn_fastopen_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_5), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn syn_fastopen_exp(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_5.get(4usize, 1u8) as u8) } + } + #[inline] + pub fn set_syn_fastopen_exp(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_5.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn syn_fastopen_exp_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_5), + 4usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_syn_fastopen_exp_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_5), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn syn_fastopen_ch(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_5.get(5usize, 1u8) as u8) } + } + #[inline] + pub fn set_syn_fastopen_ch(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_5.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn syn_fastopen_ch_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_5), + 5usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_syn_fastopen_ch_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_5), + 5usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn syn_data_acked(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_5.get(6usize, 1u8) as u8) } + } + #[inline] + pub fn set_syn_data_acked(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_5.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn syn_data_acked_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_5), + 6usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_syn_data_acked_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_5), + 6usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn syn_fastopen_child(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_5.get(7usize, 1u8) as u8) } + } + #[inline] + pub fn set_syn_fastopen_child(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_5.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn syn_fastopen_child_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_5), + 7usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_syn_fastopen_child_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_5), + 7usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_5( + save_syn: u8_, + syn_data: u8_, + syn_fastopen: u8_, + syn_fastopen_exp: u8_, + syn_fastopen_ch: u8_, + syn_data_acked: u8_, + syn_fastopen_child: u8_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 2u8, { + let save_syn: u8 = unsafe { ::core::mem::transmute(save_syn) }; + save_syn as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let syn_data: u8 = unsafe { ::core::mem::transmute(syn_data) }; + syn_data as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let syn_fastopen: u8 = unsafe { ::core::mem::transmute(syn_fastopen) }; + syn_fastopen as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let syn_fastopen_exp: u8 = unsafe { ::core::mem::transmute(syn_fastopen_exp) }; + syn_fastopen_exp as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let syn_fastopen_ch: u8 = unsafe { ::core::mem::transmute(syn_fastopen_ch) }; + syn_fastopen_ch as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let syn_data_acked: u8 = unsafe { ::core::mem::transmute(syn_data_acked) }; + syn_data_acked as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let syn_fastopen_child: u8 = unsafe { ::core::mem::transmute(syn_fastopen_child) }; + syn_fastopen_child as u64 + }); + __bindgen_bitfield_unit + } + #[inline] + pub fn accecn_fail_mode(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_6.get(0usize, 4u8) as u8) } + } + #[inline] + pub fn set_accecn_fail_mode(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_6.set(0usize, 4u8, val as u64) + } + } + #[inline] + pub unsafe fn accecn_fail_mode_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_6), + 0usize, + 4u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_accecn_fail_mode_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_6), + 0usize, + 4u8, + val as u64, + ) + } + } + #[inline] + pub fn saw_accecn_opt(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_6.get(4usize, 2u8) as u8) } + } + #[inline] + pub fn set_saw_accecn_opt(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_6.set(4usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn saw_accecn_opt_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_6), + 4usize, + 2u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_saw_accecn_opt_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_6), + 4usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_6( + accecn_fail_mode: u8_, + saw_accecn_opt: u8_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 4u8, { + let accecn_fail_mode: u8 = unsafe { ::core::mem::transmute(accecn_fail_mode) }; + accecn_fail_mode as u64 + }); + __bindgen_bitfield_unit.set(4usize, 2u8, { + let saw_accecn_opt: u8 = unsafe { ::core::mem::transmute(saw_accecn_opt) }; + saw_accecn_opt as u64 + }); + __bindgen_bitfield_unit + } + #[inline] + pub fn bpf_chg_cc_inprogress(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_7.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_bpf_chg_cc_inprogress(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_7.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn bpf_chg_cc_inprogress_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_7), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_bpf_chg_cc_inprogress_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_7), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_7(bpf_chg_cc_inprogress: u8_) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let bpf_chg_cc_inprogress: u8 = + unsafe { ::core::mem::transmute(bpf_chg_cc_inprogress) }; + bpf_chg_cc_inprogress as u64 + }); + __bindgen_bitfield_unit + } + #[inline] + pub fn new_bitfield_8() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union tcp_ao_addr { + pub a4: in_addr, + pub a6: in6_addr, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_ao_counters { + pub pkt_good: atomic64_t, + pub pkt_bad: atomic64_t, + pub key_not_found: atomic64_t, + pub ao_required: atomic64_t, + pub dropped_icmp: atomic64_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_ao_info { + pub head: hlist_head, + pub current_key: *mut tcp_ao_key, + pub rnext_key: *mut tcp_ao_key, + pub counters: tcp_ao_counters, + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, + pub lisn: __be32, + pub risn: __be32, + pub snd_sne: u32_, + pub rcv_sne: u32_, + pub refcnt: refcount_t, + pub rcu: callback_head, +} +impl tcp_ao_info { + #[inline] + pub fn ao_required(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_ao_required(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn ao_required_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_ao_required_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn accept_icmps(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_accept_icmps(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn accept_icmps_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_accept_icmps_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn __unused(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) } + } + #[inline] + pub fn set___unused(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 30u8, val as u64) + } + } + #[inline] + pub unsafe fn __unused_raw(this: *const Self) -> u32_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 30u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set___unused_raw(this: *mut Self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 30u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + ao_required: u32_, + accept_icmps: u32_, + __unused: u32_, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let ao_required: u32 = unsafe { ::core::mem::transmute(ao_required) }; + ao_required as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let accept_icmps: u32 = unsafe { ::core::mem::transmute(accept_icmps) }; + accept_icmps as u64 + }); + __bindgen_bitfield_unit.set(2usize, 30u8, { + let __unused: u32 = unsafe { ::core::mem::transmute(__unused) }; + __unused as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +pub struct tcp_ao_key { + pub node: hlist_node, + pub addr: tcp_ao_addr, + pub key: [u8_; 80usize], + pub tcp_sigpool_id: ::aya_ebpf::cty::c_uint, + pub digest_size: ::aya_ebpf::cty::c_uint, + pub l3index: ::aya_ebpf::cty::c_int, + pub prefixlen: u8_, + pub family: u8_, + pub keylen: u8_, + pub keyflags: u8_, + pub sndid: u8_, + pub rcvid: u8_, + pub maclen: u8_, + pub rcu: callback_head, + pub pkt_good: atomic64_t, + pub pkt_bad: atomic64_t, + pub traffic_keys: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_bbr_info { + pub bbr_bw_lo: __u32, + pub bbr_bw_hi: __u32, + pub bbr_min_rtt: __u32, + pub bbr_pacing_gain: __u32, + pub bbr_cwnd_gain: __u32, + pub bbr_bw_hi_lsb: __u32, + pub bbr_bw_hi_msb: __u32, + pub bbr_bw_lo_lsb: __u32, + pub bbr_bw_lo_msb: __u32, + pub bbr_mode: __u8, + pub bbr_phase: __u8, + pub unused1: __u8, + pub bbr_version: __u8, + pub bbr_inflight_lo: __u32, + pub bbr_inflight_hi: __u32, + pub bbr_extra_acked: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcpvegas_info { + pub tcpv_enabled: __u32, + pub tcpv_rttcnt: __u32, + pub tcpv_rtt: __u32, + pub tcpv_minrtt: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_dctcp_info { + pub dctcp_enabled: __u16, + pub dctcp_ce_state: __u16, + pub dctcp_alpha: __u32, + pub dctcp_ab_ecn: __u32, + pub dctcp_ab_tot: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union tcp_cc_info { + pub vegas: tcpvegas_info, + pub dctcp: tcp_dctcp_info, + pub bbr: tcp_bbr_info, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_fastopen_context { + pub key: [siphash_key_t; 2usize], + pub num: ::aya_ebpf::cty::c_int, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_fastopen_cookie { + pub val: [__le64; 2usize], + pub len: s8, + pub exp: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_fastopen_request { + pub cookie: tcp_fastopen_cookie, + pub data: *mut msghdr, + pub size: usize, + pub copied: ::aya_ebpf::cty::c_int, + pub uarg: *mut ubuf_info, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_md5sig_info { + pub head: hlist_head, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct tcp_md5sig_key { + pub node: hlist_node, + pub keylen: u8_, + pub family: u8_, + pub prefixlen: u8_, + pub flags: u8_, + pub addr: tcp_ao_addr, + pub l3index: ::aya_ebpf::cty::c_int, + pub key: [u8_; 80usize], + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_mib { + pub mibs: [::aya_ebpf::cty::c_ulong; 16usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_sock_af_ops { + pub md5_lookup: ::core::option::Option< + unsafe extern "C" fn(arg1: *const sock, arg2: *const sock) -> *mut tcp_md5sig_key, + >, + pub calc_md5_hash: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ::aya_ebpf::cty::c_char, + arg2: *const tcp_md5sig_key, + arg3: *const sock, + arg4: *const sk_buff, + ), + >, + pub md5_parse: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sock, + arg2: ::aya_ebpf::cty::c_int, + arg3: sockptr_t, + arg4: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ao_parse: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sock, + arg2: ::aya_ebpf::cty::c_int, + arg3: sockptr_t, + arg4: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ao_lookup: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const sock, + arg2: *mut sock, + arg3: ::aya_ebpf::cty::c_int, + arg4: ::aya_ebpf::cty::c_int, + ) -> *mut tcp_ao_key, + >, + pub ao_calc_key_sk: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut tcp_ao_key, + arg2: *mut u8_, + arg3: *const sock, + arg4: __be32, + arg5: __be32, + arg6: bool_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub calc_ao_hash: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ::aya_ebpf::cty::c_char, + arg2: *mut tcp_ao_key, + arg3: *const sock, + arg4: *const sk_buff, + arg5: *const u8_, + arg6: ::aya_ebpf::cty::c_int, + arg7: u32_, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_ulp_ops { + pub list: list_head, + pub init: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub update: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sock, + arg2: *mut proto, + arg3: ::core::option::Option, + ), + >, + pub release: ::core::option::Option, + pub get_info: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sock, + arg2: *mut sk_buff, + arg3: bool_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_info_size: + ::core::option::Option usize>, + pub clone: ::core::option::Option< + unsafe extern "C" fn(arg1: *const request_sock, arg2: *mut sock, arg3: gfp_t), + >, + pub name: [::aya_ebpf::cty::c_char; 16usize], + pub owner: *mut module, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct throtl_service_queue { + pub parent_sq: *mut throtl_service_queue, + pub queued: [list_head; 2usize], + pub nr_queued_bps: [::aya_ebpf::cty::c_uint; 2usize], + pub nr_queued_iops: [::aya_ebpf::cty::c_uint; 2usize], + pub pending_tree: rb_root_cached, + pub nr_pending: ::aya_ebpf::cty::c_uint, + pub first_pending_disptime: ::aya_ebpf::cty::c_ulong, + pub pending_timer: timer_list, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct throtl_data { + pub service_queue: throtl_service_queue, + pub queue: *mut request_queue, + pub nr_queued: [::aya_ebpf::cty::c_uint; 2usize], + pub dispatch_work: work_struct, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timens_offsets { + pub monotonic: timespec64, + pub boottime: timespec64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct time_namespace { + pub user_ns: *mut user_namespace, + pub ucounts: *mut ucounts, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 48usize]>, + pub ns: ns_common, + pub offsets: timens_offsets, + pub vvar_page: *mut page, + pub frozen_offsets: bool_, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 16usize]>, + pub __bindgen_padding_0: [u8; 7usize], +} +impl time_namespace { + #[inline] + pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timer_rand_state { + pub last_time: ::aya_ebpf::cty::c_ulong, + pub last_delta: ::aya_ebpf::cty::c_long, + pub last_delta2: ::aya_ebpf::cty::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timewait_sock_ops { + pub twsk_slab: *mut kmem_cache, + pub twsk_slab_name: *mut ::aya_ebpf::cty::c_char, + pub twsk_obj_size: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tls_crypto_info { + pub version: __u16, + pub cipher_type: __u16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tls12_crypto_info_aes_gcm_128 { + pub info: tls_crypto_info, + pub iv: [::aya_ebpf::cty::c_uchar; 8usize], + pub key: [::aya_ebpf::cty::c_uchar; 16usize], + pub salt: [::aya_ebpf::cty::c_uchar; 4usize], + pub rec_seq: [::aya_ebpf::cty::c_uchar; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tls12_crypto_info_aes_gcm_256 { + pub info: tls_crypto_info, + pub iv: [::aya_ebpf::cty::c_uchar; 8usize], + pub key: [::aya_ebpf::cty::c_uchar; 32usize], + pub salt: [::aya_ebpf::cty::c_uchar; 4usize], + pub rec_seq: [::aya_ebpf::cty::c_uchar; 8usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct tls12_crypto_info_chacha20_poly1305 { + pub info: tls_crypto_info, + pub iv: [::aya_ebpf::cty::c_uchar; 12usize], + pub key: [::aya_ebpf::cty::c_uchar; 32usize], + pub salt: __IncompleteArrayField<::aya_ebpf::cty::c_uchar>, + pub rec_seq: [::aya_ebpf::cty::c_uchar; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tls12_crypto_info_sm4_ccm { + pub info: tls_crypto_info, + pub iv: [::aya_ebpf::cty::c_uchar; 8usize], + pub key: [::aya_ebpf::cty::c_uchar; 16usize], + pub salt: [::aya_ebpf::cty::c_uchar; 4usize], + pub rec_seq: [::aya_ebpf::cty::c_uchar; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tls12_crypto_info_sm4_gcm { + pub info: tls_crypto_info, + pub iv: [::aya_ebpf::cty::c_uchar; 8usize], + pub key: [::aya_ebpf::cty::c_uchar; 16usize], + pub salt: [::aya_ebpf::cty::c_uchar; 4usize], + pub rec_seq: [::aya_ebpf::cty::c_uchar; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tls_prot_info { + pub version: u16_, + pub cipher_type: u16_, + pub prepend_size: u16_, + pub tag_size: u16_, + pub overhead_size: u16_, + pub iv_size: u16_, + pub salt_size: u16_, + pub rec_seq_size: u16_, + pub aad_size: u16_, + pub tail_size: u16_, +} +#[repr(C)] +pub struct tls_crypto_context { + pub info: __BindgenUnionField, + pub __bindgen_anon_1: __BindgenUnionField, + pub bindgen_union_field: [u16; 28usize], +} +#[repr(C)] +pub struct tls_crypto_context__bindgen_ty_1 { + pub aes_gcm_128: __BindgenUnionField, + pub aes_gcm_256: __BindgenUnionField, + pub chacha20_poly1305: __BindgenUnionField, + pub sm4_gcm: __BindgenUnionField, + pub sm4_ccm: __BindgenUnionField, + pub bindgen_union_field: [u16; 28usize], +} +#[repr(C)] +pub struct tls_context { + pub prot_info: tls_prot_info, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub tx_max_payload_len: u16_, + pub push_pending_record: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sock, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub sk_write_space: ::core::option::Option, + pub priv_ctx_tx: *mut ::aya_ebpf::cty::c_void, + pub priv_ctx_rx: *mut ::aya_ebpf::cty::c_void, + pub netdev: *mut net_device, + pub tx: cipher_context, + pub rx: cipher_context, + pub partially_sent_record: *mut scatterlist, + pub partially_sent_offset: u16_, + pub splicing_pages: bool_, + pub pending_open_record_frags: bool_, + pub tx_lock: mutex, + pub flags: ::aya_ebpf::cty::c_ulong, + pub sk_proto: *mut proto, + pub sk: *mut sock, + pub sk_destruct: ::core::option::Option, + pub crypto_send: tls_crypto_context, + pub crypto_recv: tls_crypto_context, + pub list: list_head, + pub refcount: refcount_t, + pub rcu: callback_head, +} +impl tls_context { + #[inline] + pub fn tx_conf(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u8) } + } + #[inline] + pub fn set_tx_conf(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 3u8, val as u64) + } + } + #[inline] + pub unsafe fn tx_conf_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 3u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_tx_conf_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 3u8, + val as u64, + ) + } + } + #[inline] + pub fn rx_conf(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 3u8) as u8) } + } + #[inline] + pub fn set_rx_conf(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 3u8, val as u64) + } + } + #[inline] + pub unsafe fn rx_conf_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 3u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_rx_conf_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 3u8, + val as u64, + ) + } + } + #[inline] + pub fn zerocopy_sendfile(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) } + } + #[inline] + pub fn set_zerocopy_sendfile(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn zerocopy_sendfile_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 6usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_zerocopy_sendfile_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 6usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn rx_no_pad(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) } + } + #[inline] + pub fn set_rx_no_pad(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn rx_no_pad_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 7usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_rx_no_pad_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 7usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + tx_conf: u8_, + rx_conf: u8_, + zerocopy_sendfile: u8_, + rx_no_pad: u8_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 3u8, { + let tx_conf: u8 = unsafe { ::core::mem::transmute(tx_conf) }; + tx_conf as u64 + }); + __bindgen_bitfield_unit.set(3usize, 3u8, { + let rx_conf: u8 = unsafe { ::core::mem::transmute(rx_conf) }; + rx_conf as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let zerocopy_sendfile: u8 = unsafe { ::core::mem::transmute(zerocopy_sendfile) }; + zerocopy_sendfile as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let rx_no_pad: u8 = unsafe { ::core::mem::transmute(rx_no_pad) }; + rx_no_pad as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tlsdev_ops { + pub tls_dev_add: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut sock, + arg3: tls_offload_ctx_dir::Type, + arg4: *mut tls_crypto_info, + arg5: u32_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub tls_dev_del: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut tls_context, + arg3: tls_offload_ctx_dir::Type, + ), + >, + pub tls_dev_resync: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut sock, + arg3: u32_, + arg4: *mut u8_, + arg5: tls_offload_ctx_dir::Type, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tracepoint_func { + pub func: *mut ::aya_ebpf::cty::c_void, + pub data: *mut ::aya_ebpf::cty::c_void, + pub prio: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct trace_array { + pub list: list_head, + pub name: *mut ::aya_ebpf::cty::c_char, + pub array_buffer: array_buffer, + pub snapshot_buffer: array_buffer, + pub allocated_snapshot: bool_, + pub snapshot_trigger_lock: spinlock_t, + pub snapshot: ::aya_ebpf::cty::c_uint, + pub max_latency: ::aya_ebpf::cty::c_ulong, + pub d_max_latency: *mut dentry, + pub fsnotify_work: work_struct, + pub fsnotify_irqwork: irq_work, + pub mapped: ::aya_ebpf::cty::c_uint, + pub range_addr_start: ::aya_ebpf::cty::c_ulong, + pub range_addr_size: ::aya_ebpf::cty::c_ulong, + pub range_name: *mut ::aya_ebpf::cty::c_char, + pub text_delta: ::aya_ebpf::cty::c_long, + pub module_delta: *mut trace_module_delta, + pub scratch: *mut ::aya_ebpf::cty::c_void, + pub scratch_size: ::aya_ebpf::cty::c_int, + pub buffer_disabled: ::aya_ebpf::cty::c_int, + pub filtered_pids: *mut trace_pid_list, + pub filtered_no_pids: *mut trace_pid_list, + pub max_lock: arch_spinlock_t, + pub sys_refcount_enter: ::aya_ebpf::cty::c_int, + pub sys_refcount_exit: ::aya_ebpf::cty::c_int, + pub enter_syscall_files: [*mut trace_event_file; 472usize], + pub exit_syscall_files: [*mut trace_event_file; 472usize], + pub stop_count: ::aya_ebpf::cty::c_int, + pub clock_id: ::aya_ebpf::cty::c_int, + pub nr_topts: ::aya_ebpf::cty::c_int, + pub clear_trace: bool_, + pub buffer_percent: ::aya_ebpf::cty::c_int, + pub n_err_log_entries: ::aya_ebpf::cty::c_uint, + pub current_trace: *mut tracer, + pub current_trace_flags: *mut tracer_flags, + pub trace_flags: u64_, + pub trace_flags_index: [::aya_ebpf::cty::c_uchar; 64usize], + pub flags: ::aya_ebpf::cty::c_uint, + pub start_lock: raw_spinlock_t, + pub __bindgen_anon_1: trace_array__bindgen_ty_1, + pub err_log: list_head, + pub dir: *mut dentry, + pub options: *mut dentry, + pub percpu_dir: *mut dentry, + pub event_dir: *mut eventfs_inode, + pub topts: *mut trace_options, + pub systems: list_head, + pub events: list_head, + pub marker_list: list_head, + pub tracers: list_head, + pub trace_marker_file: *mut trace_event_file, + pub tracing_cpumask: cpumask_var_t, + pub pipe_cpumask: cpumask_var_t, + pub ref_: ::aya_ebpf::cty::c_int, + pub trace_ref: ::aya_ebpf::cty::c_int, + pub mod_events: list_head, + pub ops: *mut ftrace_ops, + pub function_pids: *mut trace_pid_list, + pub function_no_pids: *mut trace_pid_list, + pub gops: *mut fgraph_ops, + pub func_probes: list_head, + pub mod_trace: list_head, + pub mod_notrace: list_head, + pub function_enabled: ::aya_ebpf::cty::c_int, + pub no_filter_buffering_ref: ::aya_ebpf::cty::c_int, + pub syscall_buf_sz: ::aya_ebpf::cty::c_uint, + pub hist_vars: list_head, + pub cond_snapshot: *mut cond_snapshot, + pub last_func_repeats: *mut trace_func_repeats, + pub ring_buffer_expanded: bool_, + pub free_on_close: bool_, + pub autoremove_work: work_struct, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union trace_array__bindgen_ty_1 { + pub system_names: *const ::aya_ebpf::cty::c_char, + pub boot_events: *mut ::aya_ebpf::cty::c_char, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct trace_array_cpu { + pub disabled: local_t, + pub entries: ::aya_ebpf::cty::c_ulong, + pub saved_latency: ::aya_ebpf::cty::c_ulong, + pub critical_start: ::aya_ebpf::cty::c_ulong, + pub critical_end: ::aya_ebpf::cty::c_ulong, + pub critical_sequence: ::aya_ebpf::cty::c_ulong, + pub nice: ::aya_ebpf::cty::c_ulong, + pub policy: ::aya_ebpf::cty::c_ulong, + pub rt_priority: ::aya_ebpf::cty::c_ulong, + pub skipped_entries: ::aya_ebpf::cty::c_ulong, + pub preempt_timestamp: u64_, + pub pid: pid_t, + pub uid: kuid_t, + pub comm: [::aya_ebpf::cty::c_char; 16usize], + pub ftrace_ignore_pid: ::aya_ebpf::cty::c_int, + pub ignore_pid: bool_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct trace_buffer { + pub flags: ::aya_ebpf::cty::c_uint, + pub cpus: ::aya_ebpf::cty::c_int, + pub record_disabled: atomic_t, + pub resizing: atomic_t, + pub cpumask: cpumask_var_t, + pub reader_lock_key: *mut lock_class_key, + pub mutex: mutex, + pub buffers: *mut *mut ring_buffer_per_cpu, + pub remote: *mut ring_buffer_remote, + pub node: hlist_node, + pub clock: ::core::option::Option u64_>, + pub irq_work: rb_irq_work, + pub time_stamp_abs: bool_, + pub range_addr_start: ::aya_ebpf::cty::c_ulong, + pub range_addr_end: ::aya_ebpf::cty::c_ulong, + pub flush_nb: notifier_block, + pub meta: *mut ring_buffer_meta, + pub subbuf_size: ::aya_ebpf::cty::c_uint, + pub subbuf_order: ::aya_ebpf::cty::c_uint, + pub max_data_size: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug)] +pub struct trace_buffer_desc { + pub nr_cpus: ::aya_ebpf::cty::c_int, + pub struct_len: usize, + pub __data: __IncompleteArrayField<::aya_ebpf::cty::c_char>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct trace_buffer_meta { + pub meta_page_size: __u32, + pub meta_struct_len: __u32, + pub subbuf_size: __u32, + pub nr_subbufs: __u32, + pub reader: trace_buffer_meta__bindgen_ty_1, + pub flags: __u64, + pub entries: __u64, + pub overrun: __u64, + pub read: __u64, + pub pages_lost: __u64, + pub pages_touched: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct trace_buffer_meta__bindgen_ty_1 { + pub lost_events: __u64, + pub id: __u32, + pub read: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct trace_eval_map { + pub system: *const ::aya_ebpf::cty::c_char, + pub eval_string: *const ::aya_ebpf::cty::c_char, + pub eval_value: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct trace_event_fields { + pub type_: *const ::aya_ebpf::cty::c_char, + pub __bindgen_anon_1: trace_event_fields__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union trace_event_fields__bindgen_ty_1 { + pub __bindgen_anon_1: trace_event_fields__bindgen_ty_1__bindgen_ty_1, + pub define_fields: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut trace_event_call) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct trace_event_fields__bindgen_ty_1__bindgen_ty_1 { + pub name: *const ::aya_ebpf::cty::c_char, + pub size: ::aya_ebpf::cty::c_int, + pub align: ::aya_ebpf::cty::c_int, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub filter_type: ::aya_ebpf::cty::c_int, + pub len: ::aya_ebpf::cty::c_int, +} +impl trace_event_fields__bindgen_ty_1__bindgen_ty_1 { + #[inline] + pub fn is_signed(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_is_signed(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn is_signed_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_is_signed_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn needs_test(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_needs_test(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn needs_test_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_needs_test_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + is_signed: ::aya_ebpf::cty::c_uint, + needs_test: ::aya_ebpf::cty::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let is_signed: u32 = unsafe { ::core::mem::transmute(is_signed) }; + is_signed as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let needs_test: u32 = unsafe { ::core::mem::transmute(needs_test) }; + needs_test as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct trace_event_file { + pub list: list_head, + pub event_call: *mut trace_event_call, + pub filter: *mut event_filter, + pub ei: *mut eventfs_inode, + pub tr: *mut trace_array, + pub system: *mut trace_subsystem_dir, + pub triggers: list_head, + pub flags: ::aya_ebpf::cty::c_ulong, + pub ref_: refcount_t, + pub sm_ref: atomic_t, + pub tm_ref: atomic_t, +} +pub type trace_print_func = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut trace_iterator, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut trace_event, + ) -> print_line_t::Type, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct trace_event_functions { + pub trace: trace_print_func, + pub raw: trace_print_func, + pub hex: trace_print_func, + pub binary: trace_print_func, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct trace_func_repeats { + pub ip: ::aya_ebpf::cty::c_ulong, + pub parent_ip: ::aya_ebpf::cty::c_ulong, + pub count: ::aya_ebpf::cty::c_ulong, + pub ts_last_call: u64_, +} +#[repr(C)] +#[derive(Debug)] +pub struct trace_module_delta { + pub rcu: callback_head, + pub delta: __IncompleteArrayField<::aya_ebpf::cty::c_long>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct trace_option_dentry { + pub opt: *mut tracer_opt, + pub flags: *mut tracer_flags, + pub tr: *mut trace_array, + pub entry: *mut dentry, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct trace_options { + pub tracer: *mut tracer, + pub topts: *mut trace_option_dentry, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct trace_pid_list { + pub seqcount: seqcount_raw_spinlock_t, + pub lock: raw_spinlock_t, + pub refill_irqwork: irq_work, + pub upper: [*mut upper_chunk; 256usize], + pub upper_list: *mut upper_chunk, + pub lower_list: *mut lower_chunk, + pub free_upper_chunks: ::aya_ebpf::cty::c_int, + pub free_lower_chunks: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct trace_subsystem_dir { + pub list: list_head, + pub subsystem: *mut event_subsystem, + pub tr: *mut trace_array, + pub ei: *mut eventfs_inode, + pub ref_count: ::aya_ebpf::cty::c_int, + pub nr_events: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct tracepoint { + pub name: *const ::aya_ebpf::cty::c_char, + pub key: static_key_false, + pub static_call_key: *mut static_call_key, + pub static_call_tramp: *mut ::aya_ebpf::cty::c_void, + pub iterator: *mut ::aya_ebpf::cty::c_void, + pub probestub: *mut ::aya_ebpf::cty::c_void, + pub funcs: *mut tracepoint_func, + pub ext: *mut tracepoint_ext, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tracepoint_ext { + pub regfunc: ::core::option::Option ::aya_ebpf::cty::c_int>, + pub unregfunc: ::core::option::Option, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: [u8; 7usize], +} +impl tracepoint_ext { + #[inline] + pub fn faultable(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_faultable(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn faultable_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_faultable_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + faultable: ::aya_ebpf::cty::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let faultable: u32 = unsafe { ::core::mem::transmute(faultable) }; + faultable as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tracer { + pub name: *const ::aya_ebpf::cty::c_char, + pub init: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut trace_array) -> ::aya_ebpf::cty::c_int, + >, + pub reset: ::core::option::Option, + pub start: ::core::option::Option, + pub stop: ::core::option::Option, + pub update_thresh: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut trace_array) -> ::aya_ebpf::cty::c_int, + >, + pub open: ::core::option::Option, + pub pipe_open: ::core::option::Option, + pub close: ::core::option::Option, + pub pipe_close: ::core::option::Option, + pub read: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut trace_iterator, + arg2: *mut file, + arg3: *mut ::aya_ebpf::cty::c_char, + arg4: usize, + arg5: *mut loff_t, + ) -> isize, + >, + pub splice_read: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut trace_iterator, + arg2: *mut file, + arg3: *mut loff_t, + arg4: *mut pipe_inode_info, + arg5: usize, + arg6: ::aya_ebpf::cty::c_uint, + ) -> isize, + >, + pub print_header: ::core::option::Option, + pub print_line: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut trace_iterator) -> print_line_t::Type, + >, + pub set_flag: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut trace_array, + arg2: u32_, + arg3: u32_, + arg4: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub flag_changed: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut trace_array, + arg2: u64_, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub next: *mut tracer, + pub flags: *mut tracer_flags, + pub default_flags: *mut tracer_flags, + pub enabled: ::aya_ebpf::cty::c_int, + pub print_max: bool_, + pub allow_instances: bool_, + pub use_max_tr: bool_, + pub noboot: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tracer_flags { + pub val: u32_, + pub opts: *mut tracer_opt, + pub trace: *mut tracer, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tracer_opt { + pub name: *const ::aya_ebpf::cty::c_char, + pub bit: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct tty_audit_buf { + pub mutex: mutex, + pub dev: dev_t, + pub icanon: bool_, + pub valid: usize, + pub data: *mut u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tty_driver { + pub kref: kref, + pub cdevs: *mut *mut cdev, + pub owner: *mut module, + pub driver_name: *const ::aya_ebpf::cty::c_char, + pub name: *const ::aya_ebpf::cty::c_char, + pub name_base: ::aya_ebpf::cty::c_int, + pub major: ::aya_ebpf::cty::c_int, + pub minor_start: ::aya_ebpf::cty::c_int, + pub num: ::aya_ebpf::cty::c_uint, + pub type_: tty_driver_type::Type, + pub subtype: tty_driver_subtype::Type, + pub init_termios: ktermios, + pub flags: ::aya_ebpf::cty::c_ulong, + pub proc_entry: *mut proc_dir_entry, + pub other: *mut tty_driver, + pub flip_wq: *mut workqueue_struct, + pub ttys: *mut *mut tty_struct, + pub ports: *mut *mut tty_port, + pub termios: *mut *mut ktermios, + pub driver_state: *mut ::aya_ebpf::cty::c_void, + pub ops: *const tty_operations, + pub tty_drivers: list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tty_ldisc { + pub ops: *const tty_ldisc_ops, + pub tty: *mut tty_struct, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tty_ldisc_ops { + pub name: *mut ::aya_ebpf::cty::c_char, + pub num: ::aya_ebpf::cty::c_int, + pub open: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut tty_struct) -> ::aya_ebpf::cty::c_int, + >, + pub close: ::core::option::Option, + pub flush_buffer: ::core::option::Option, + pub read: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut tty_struct, + arg2: *mut file, + arg3: *mut u8_, + arg4: usize, + arg5: *mut *mut ::aya_ebpf::cty::c_void, + arg6: ::aya_ebpf::cty::c_ulong, + ) -> isize, + >, + pub write: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut tty_struct, + arg2: *mut file, + arg3: *const u8_, + arg4: usize, + ) -> isize, + >, + pub ioctl: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut tty_struct, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, + pub compat_ioctl: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut tty_struct, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_termios: + ::core::option::Option, + pub poll: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut tty_struct, + arg2: *mut file, + arg3: *mut poll_table_struct, + ) -> __poll_t, + >, + pub hangup: ::core::option::Option, + pub receive_buf: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut tty_struct, + arg2: *const u8_, + arg3: *const u8_, + arg4: usize, + ), + >, + pub write_wakeup: ::core::option::Option, + pub dcd_change: + ::core::option::Option, + pub receive_buf2: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut tty_struct, + arg2: *const u8_, + arg3: *const u8_, + arg4: usize, + ) -> usize, + >, + pub lookahead_buf: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut tty_struct, + arg2: *const u8_, + arg3: *const u8_, + arg4: usize, + ), + >, + pub owner: *mut module, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tty_operations { + pub lookup: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut tty_driver, + arg2: *mut file, + arg3: ::aya_ebpf::cty::c_int, + ) -> *mut tty_struct, + >, + pub install: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut tty_driver, + arg2: *mut tty_struct, + ) -> ::aya_ebpf::cty::c_int, + >, + pub remove: + ::core::option::Option, + pub open: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut tty_struct, arg2: *mut file) -> ::aya_ebpf::cty::c_int, + >, + pub close: ::core::option::Option, + pub shutdown: ::core::option::Option, + pub cleanup: ::core::option::Option, + pub write: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut tty_struct, arg2: *const u8_, arg3: usize) -> isize, + >, + pub put_char: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut tty_struct, arg2: u8_) -> ::aya_ebpf::cty::c_int, + >, + pub flush_chars: ::core::option::Option, + pub write_room: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut tty_struct) -> ::aya_ebpf::cty::c_uint, + >, + pub chars_in_buffer: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut tty_struct) -> ::aya_ebpf::cty::c_uint, + >, + pub ioctl: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut tty_struct, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, + pub compat_ioctl: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut tty_struct, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_long, + >, + pub set_termios: + ::core::option::Option, + pub throttle: ::core::option::Option, + pub unthrottle: ::core::option::Option, + pub stop: ::core::option::Option, + pub start: ::core::option::Option, + pub hangup: ::core::option::Option, + pub break_ctl: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut tty_struct, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub flush_buffer: ::core::option::Option, + pub ldisc_ok: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut tty_struct, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_ldisc: ::core::option::Option, + pub wait_until_sent: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut tty_struct, arg2: ::aya_ebpf::cty::c_int), + >, + pub send_xchar: ::core::option::Option, + pub tiocmget: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut tty_struct) -> ::aya_ebpf::cty::c_int, + >, + pub tiocmset: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut tty_struct, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub resize: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut tty_struct, arg2: *mut winsize) -> ::aya_ebpf::cty::c_int, + >, + pub get_icount: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut tty_struct, + arg2: *mut serial_icounter_struct, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_serial: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut tty_struct, + arg2: *mut serial_struct, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set_serial: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut tty_struct, + arg2: *mut serial_struct, + ) -> ::aya_ebpf::cty::c_int, + >, + pub show_fdinfo: + ::core::option::Option, + pub proc_show: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut seq_file, + arg2: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tty_port_client_operations { + pub receive_buf: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut tty_port, + arg2: *const u8_, + arg3: *const u8_, + arg4: usize, + ) -> usize, + >, + pub lookahead_buf: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut tty_port, arg2: *const u8_, arg3: *const u8_, arg4: usize), + >, + pub write_wakeup: ::core::option::Option, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tty_port_operations { + pub carrier_raised: ::core::option::Option bool_>, + pub dtr_rts: ::core::option::Option, + pub shutdown: ::core::option::Option, + pub activate: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut tty_port, arg2: *mut tty_struct) -> ::aya_ebpf::cty::c_int, + >, + pub destruct: ::core::option::Option, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct tty_struct { + pub kref: kref, + pub index: ::aya_ebpf::cty::c_int, + pub dev: *mut device, + pub driver: *mut tty_driver, + pub port: *mut tty_port, + pub ops: *const tty_operations, + pub ldisc: *mut tty_ldisc, + pub ldisc_sem: ld_semaphore, + pub atomic_write_lock: mutex, + pub legacy_mutex: mutex, + pub throttle_mutex: mutex, + pub termios_rwsem: rw_semaphore, + pub winsize_mutex: mutex, + pub termios: ktermios, + pub termios_locked: ktermios, + pub name: [::aya_ebpf::cty::c_char; 64usize], + pub flags: ::aya_ebpf::cty::c_ulong, + pub count: ::aya_ebpf::cty::c_int, + pub receive_room: ::aya_ebpf::cty::c_uint, + pub winsize: winsize, + pub flow: tty_struct__bindgen_ty_1, + pub ctrl: tty_struct__bindgen_ty_2, + pub hw_stopped: bool_, + pub closing: bool_, + pub flow_change: ::aya_ebpf::cty::c_int, + pub link: *mut tty_struct, + pub fasync: *mut fasync_struct, + pub write_wait: wait_queue_head_t, + pub read_wait: wait_queue_head_t, + pub hangup_work: work_struct, + pub disc_data: *mut ::aya_ebpf::cty::c_void, + pub driver_data: *mut ::aya_ebpf::cty::c_void, + pub files_lock: spinlock_t, + pub write_cnt: ::aya_ebpf::cty::c_int, + pub write_buf: *mut u8_, + pub tty_files: list_head, + pub SAK_work: work_struct, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct tty_struct__bindgen_ty_1 { + pub lock: spinlock_t, + pub stopped: bool_, + pub tco_stopped: bool_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct tty_struct__bindgen_ty_2 { + pub pgrp: *mut pid, + pub session: *mut pid, + pub lock: spinlock_t, + pub pktstatus: ::aya_ebpf::cty::c_uchar, + pub packet: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ubuf_info_ops { + pub complete: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sk_buff, arg2: *mut ubuf_info, arg3: bool_), + >, + pub link_skb: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sk_buff, arg2: *mut ubuf_info) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ucounts { + pub node: hlist_nulls_node, + pub ns: *mut user_namespace, + pub uid: kuid_t, + pub rcu: callback_head, + pub count: rcuref_t, + pub ucount: [atomic_long_t; 12usize], + pub rlimit: [atomic_long_t; 4usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct udp_hslot { + pub __bindgen_anon_1: udp_hslot__bindgen_ty_1, + pub count: ::aya_ebpf::cty::c_int, + pub lock: spinlock_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union udp_hslot__bindgen_ty_1 { + pub head: hlist_head, + pub nulls_head: hlist_nulls_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct udp_hslot_main { + pub hslot: udp_hslot, + pub hash4_cnt: u32_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, + pub __bindgen_padding_0: u32, +} +impl udp_hslot_main { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct udp_mib { + pub mibs: [::aya_ebpf::cty::c_ulong; 10usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct udp_table { + pub hash: *mut udp_hslot, + pub hash2: *mut udp_hslot_main, + pub hash4: *mut udp_hslot, + pub mask: ::aya_ebpf::cty::c_uint, + pub log: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct udp_tunnel_info { + pub type_: ::aya_ebpf::cty::c_ushort, + pub sa_family: sa_family_t, + pub port: __be16, + pub hw_priv: u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct udp_tunnel_nic_table_info { + pub n_entries: ::aya_ebpf::cty::c_uint, + pub tunnel_types: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct udp_tunnel_nic_info { + pub set_port: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_uint, + arg4: *mut udp_tunnel_info, + ) -> ::aya_ebpf::cty::c_int, + >, + pub unset_port: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_uint, + arg4: *mut udp_tunnel_info, + ) -> ::aya_ebpf::cty::c_int, + >, + pub sync_table: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, + pub shared: *mut udp_tunnel_nic_shared, + pub flags: ::aya_ebpf::cty::c_uint, + pub tables: [udp_tunnel_nic_table_info; 4usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct udp_tunnel_nic_shared { + pub udp_tunnel_nic_info: *mut udp_tunnel_nic, + pub devices: list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct uevent_sock { + pub list: list_head, + pub sk: *mut sock, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct uncached_list { + pub lock: spinlock_t, + pub head: list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct unicode_map { + pub version: ::aya_ebpf::cty::c_uint, + pub ntab: [*const utf8data; 2usize], + pub tables: *const utf8data_table, +} +#[repr(C)] +#[derive(Debug)] +pub struct unwind_cache { + pub unwind_completed: ::aya_ebpf::cty::c_ulong, + pub nr_entries: ::aya_ebpf::cty::c_uint, + pub entries: __IncompleteArrayField<::aya_ebpf::cty::c_ulong>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union upper_chunk { + pub next: *mut upper_chunk, + pub data: [*mut lower_chunk; 256usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct uprobe { + pub rb_node: rb_node, + pub ref_: refcount_t, + pub register_rwsem: rw_semaphore, + pub consumer_rwsem: rw_semaphore, + pub pending_list: list_head, + pub consumers: list_head, + pub inode: *mut inode, + pub __bindgen_anon_1: uprobe__bindgen_ty_1, + pub offset: loff_t, + pub ref_ctr_offset: loff_t, + pub flags: ::aya_ebpf::cty::c_ulong, + pub arch: arch_uprobe, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union uprobe__bindgen_ty_1 { + pub rcu: callback_head, + pub work: work_struct, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct uprobe_task { + pub state: uprobe_task_state::Type, + pub depth: ::aya_ebpf::cty::c_uint, + pub return_instances: *mut return_instance, + pub ri_pool: *mut return_instance, + pub ri_timer: timer_list, + pub ri_seqcount: seqcount_t, + pub __bindgen_anon_1: uprobe_task__bindgen_ty_1, + pub active_uprobe: *mut uprobe, + pub xol_vaddr: ::aya_ebpf::cty::c_ulong, + pub signal_denied: bool_, + pub auprobe: *mut arch_uprobe, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union uprobe_task__bindgen_ty_1 { + pub __bindgen_anon_1: uprobe_task__bindgen_ty_1__bindgen_ty_1, + pub __bindgen_anon_2: uprobe_task__bindgen_ty_1__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct uprobe_task__bindgen_ty_1__bindgen_ty_1 { + pub autask: arch_uprobe_task, + pub vaddr: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct uprobe_task__bindgen_ty_1__bindgen_ty_2 { + pub dup_xol_work: callback_head, + pub dup_xol_addr: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct uprobe_xol_ops { + pub emulate: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut arch_uprobe, arg2: *mut pt_regs) -> bool_, + >, + pub pre_xol: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut arch_uprobe, arg2: *mut pt_regs) -> ::aya_ebpf::cty::c_int, + >, + pub post_xol: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut arch_uprobe, arg2: *mut pt_regs) -> ::aya_ebpf::cty::c_int, + >, + pub abort: + ::core::option::Option, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct user_event_mm { + pub mms_link: list_head, + pub enablers: list_head, + pub mm: *mut mm_struct, + pub next: *mut user_event_mm, + pub refcnt: refcount_t, + pub tasks: refcount_t, + pub put_rwork: rcu_work, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct user_namespace { + pub uid_map: uid_gid_map, + pub gid_map: uid_gid_map, + pub projid_map: uid_gid_map, + pub parent: *mut user_namespace, + pub level: ::aya_ebpf::cty::c_int, + pub owner: kuid_t, + pub group: kgid_t, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 40usize]>, + pub ns: ns_common, + pub flags: ::aya_ebpf::cty::c_ulong, + pub parent_could_setfcap: bool_, + pub keyring_name_list: list_head, + pub user_keyring_register: *mut key, + pub keyring_sem: rw_semaphore, + pub persistent_keyring_register: *mut key, + pub work: work_struct, + pub set: ctl_table_set, + pub sysctls: *mut ctl_table_header, + pub ucounts: *mut ucounts, + pub ucount_max: [::aya_ebpf::cty::c_long; 12usize], + pub rlimit_max: [::aya_ebpf::cty::c_long; 4usize], + pub binfmt_misc: *mut binfmt_misc, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 16usize]>, +} +impl user_namespace { + #[inline] + pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct user_struct { + pub __count: refcount_t, + pub epoll_watches: percpu_counter, + pub unix_inflight: ::aya_ebpf::cty::c_ulong, + pub pipe_bufs: atomic_long_t, + pub uidhash_node: hlist_node, + pub uid: kuid_t, + pub locked_vm: atomic_long_t, + pub nr_watches: atomic_t, + pub ratelimit: ratelimit_state, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct userfaultfd_ctx { + pub fault_pending_wqh: wait_queue_head_t, + pub fault_wqh: wait_queue_head_t, + pub fd_wqh: wait_queue_head_t, + pub event_wqh: wait_queue_head_t, + pub refile_seq: seqcount_spinlock_t, + pub refcount: refcount_t, + pub flags: ::aya_ebpf::cty::c_uint, + pub features: ::aya_ebpf::cty::c_uint, + pub released: bool_, + pub map_changing_lock: rw_semaphore, + pub mmap_changing: atomic_t, + pub mm: *mut mm_struct, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct utf8data { + pub maxage: ::aya_ebpf::cty::c_uint, + pub offset: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct utf8data_table { + pub utf8agetab: *const ::aya_ebpf::cty::c_uint, + pub utf8agetab_size: ::aya_ebpf::cty::c_int, + pub utf8nfdicfdata: *const utf8data, + pub utf8nfdicfdata_size: ::aya_ebpf::cty::c_int, + pub utf8nfdidata: *const utf8data, + pub utf8nfdidata_size: ::aya_ebpf::cty::c_int, + pub utf8data: *const ::aya_ebpf::cty::c_uchar, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct uts_namespace { + pub name: new_utsname, + pub user_ns: *mut user_namespace, + pub ucounts: *mut ucounts, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 40usize]>, + pub ns: ns_common, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct vdso_image { + pub data: *mut ::aya_ebpf::cty::c_void, + pub size: ::aya_ebpf::cty::c_ulong, + pub alt: ::aya_ebpf::cty::c_ulong, + pub alt_len: ::aya_ebpf::cty::c_ulong, + pub extable_base: ::aya_ebpf::cty::c_ulong, + pub extable_len: ::aya_ebpf::cty::c_ulong, + pub extable: *const ::aya_ebpf::cty::c_void, + pub sym___kernel_sigreturn: ::aya_ebpf::cty::c_long, + pub sym___kernel_rt_sigreturn: ::aya_ebpf::cty::c_long, + pub sym___kernel_vsyscall: ::aya_ebpf::cty::c_long, + pub sym_int80_landing_pad: ::aya_ebpf::cty::c_long, + pub sym_vdso32_sigreturn_landing_pad: ::aya_ebpf::cty::c_long, + pub sym_vdso32_rt_sigreturn_landing_pad: ::aya_ebpf::cty::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct vlan_group { + pub nr_vlan_devs: ::aya_ebpf::cty::c_uint, + pub hlist: hlist_node, + pub vlan_devices_arrays: [*mut *mut net_device; 16usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct vlan_info { + pub real_dev: *mut net_device, + pub grp: vlan_group, + pub vid_list: list_head, + pub nr_vids: ::aya_ebpf::cty::c_uint, + pub auto_vid0: bool_, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct vm_area_desc { + pub mm: *mut mm_struct, + pub file: *mut file, + pub start: ::aya_ebpf::cty::c_ulong, + pub end: ::aya_ebpf::cty::c_ulong, + pub pgoff: ::aya_ebpf::cty::c_ulong, + pub vm_file: *mut file, + pub vma_flags: vma_flags_t, + pub page_prot: pgprot_t, + pub vm_ops: *const vm_operations_struct, + pub private_data: *mut ::aya_ebpf::cty::c_void, + pub action: mmap_action, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct vm_fault { + pub __bindgen_anon_1: vm_fault__bindgen_ty_1, + pub flags: fault_flag::Type, + pub pmd: *mut pmd_t, + pub pud: *mut pud_t, + pub __bindgen_anon_2: vm_fault__bindgen_ty_2, + pub cow_page: *mut page, + pub page: *mut page, + pub pte: *mut pte_t, + pub ptl: *mut spinlock_t, + pub prealloc_pte: pgtable_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct vm_fault__bindgen_ty_1 { + pub vma: *mut vm_area_struct, + pub gfp_mask: gfp_t, + pub pgoff: ::aya_ebpf::cty::c_ulong, + pub address: ::aya_ebpf::cty::c_ulong, + pub real_address: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union vm_fault__bindgen_ty_2 { + pub orig_pte: pte_t, + pub orig_pmd: pmd_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct vm_operations_struct { + pub open: ::core::option::Option, + pub close: ::core::option::Option, + pub mapped: ::core::option::Option< + unsafe extern "C" fn( + arg1: ::aya_ebpf::cty::c_ulong, + arg2: ::aya_ebpf::cty::c_ulong, + arg3: ::aya_ebpf::cty::c_ulong, + arg4: *const file, + arg5: *mut *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, + >, + pub may_split: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut vm_area_struct, + arg2: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, + pub mremap: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut vm_area_struct) -> ::aya_ebpf::cty::c_int, + >, + pub mprotect: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut vm_area_struct, + arg2: ::aya_ebpf::cty::c_ulong, + arg3: ::aya_ebpf::cty::c_ulong, + arg4: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, + pub fault: ::core::option::Option vm_fault_t>, + pub huge_fault: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut vm_fault, arg2: ::aya_ebpf::cty::c_uint) -> vm_fault_t, + >, + pub map_pages: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut vm_fault, + arg2: ::aya_ebpf::cty::c_ulong, + arg3: ::aya_ebpf::cty::c_ulong, + ) -> vm_fault_t, + >, + pub pagesize: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut vm_area_struct) -> ::aya_ebpf::cty::c_ulong, + >, + pub page_mkwrite: + ::core::option::Option vm_fault_t>, + pub pfn_mkwrite: + ::core::option::Option vm_fault_t>, + pub access: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut vm_area_struct, + arg2: ::aya_ebpf::cty::c_ulong, + arg3: *mut ::aya_ebpf::cty::c_void, + arg4: ::aya_ebpf::cty::c_int, + arg5: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub name: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut vm_area_struct) -> *const ::aya_ebpf::cty::c_char, + >, + pub set_policy: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut vm_area_struct, + arg2: *mut mempolicy, + ) -> ::aya_ebpf::cty::c_int, + >, + pub get_policy: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut vm_area_struct, + arg2: ::aya_ebpf::cty::c_ulong, + arg3: *mut ::aya_ebpf::cty::c_ulong, + ) -> *mut mempolicy, + >, + pub find_normal_page: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut vm_area_struct, + arg2: ::aya_ebpf::cty::c_ulong, + ) -> *mut page, + >, + pub uffd_ops: *const vm_uffd_ops, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct vm_struct { + pub __bindgen_anon_1: vm_struct__bindgen_ty_1, + pub addr: *mut ::aya_ebpf::cty::c_void, + pub size: ::aya_ebpf::cty::c_ulong, + pub flags: ::aya_ebpf::cty::c_ulong, + pub pages: *mut *mut page, + pub page_order: ::aya_ebpf::cty::c_uint, + pub nr_pages: ::aya_ebpf::cty::c_uint, + pub phys_addr: phys_addr_t, + pub caller: *const ::aya_ebpf::cty::c_void, + pub requested_size: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union vm_struct__bindgen_ty_1 { + pub next: *mut vm_struct, + pub llnode: llist_node, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct vm_uffd_ops { + pub can_userfault: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut vm_area_struct, arg2: vm_flags_t) -> bool_, + >, + pub get_folio_noalloc: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut inode, arg2: ::aya_ebpf::cty::c_ulong) -> *mut folio, + >, + pub alloc_folio: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut vm_area_struct, + arg2: ::aya_ebpf::cty::c_ulong, + ) -> *mut folio, + >, + pub filemap_add: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut folio, + arg2: *mut vm_area_struct, + arg3: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, + pub filemap_remove: + ::core::option::Option, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct vma_numab_state { + pub next_scan: ::aya_ebpf::cty::c_ulong, + pub pids_active_reset: ::aya_ebpf::cty::c_ulong, + pub pids_active: [::aya_ebpf::cty::c_ulong; 2usize], + pub start_scan_seq: ::aya_ebpf::cty::c_int, + pub prev_scan_seq: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wake_irq { + pub dev: *mut device, + pub status: ::aya_ebpf::cty::c_uint, + pub irq: ::aya_ebpf::cty::c_int, + pub name: *const ::aya_ebpf::cty::c_char, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct wakeup_source { + pub name: *const ::aya_ebpf::cty::c_char, + pub id: ::aya_ebpf::cty::c_int, + pub entry: list_head, + pub lock: spinlock_t, + pub wakeirq: *mut wake_irq, + pub timer: timer_list, + pub timer_expires: ::aya_ebpf::cty::c_ulong, + pub total_time: ktime_t, + pub max_time: ktime_t, + pub last_time: ktime_t, + pub start_prevent_time: ktime_t, + pub prevent_sleep_time: ktime_t, + pub event_count: ::aya_ebpf::cty::c_ulong, + pub active_count: ::aya_ebpf::cty::c_ulong, + pub relax_count: ::aya_ebpf::cty::c_ulong, + pub expire_count: ::aya_ebpf::cty::c_ulong, + pub wakeup_count: ::aya_ebpf::cty::c_ulong, + pub dev: *mut device, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: [u8; 7usize], +} +impl wakeup_source { + #[inline] + pub fn active(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_active(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn active_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_active_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn autosleep_enabled(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_autosleep_enabled(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn autosleep_enabled_raw(this: *const Self) -> bool_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_autosleep_enabled_raw(this: *mut Self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + active: bool_, + autosleep_enabled: bool_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let active: u8 = unsafe { ::core::mem::transmute(active) }; + active as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let autosleep_enabled: u8 = unsafe { ::core::mem::transmute(autosleep_enabled) }; + autosleep_enabled as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct watch { + pub __bindgen_anon_1: watch__bindgen_ty_1, + pub queue: *mut watch_queue, + pub queue_node: hlist_node, + pub watch_list: *mut watch_list, + pub list_node: hlist_node, + pub cred: *const cred, + pub private: *mut ::aya_ebpf::cty::c_void, + pub id: u64_, + pub usage: kref, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union watch__bindgen_ty_1 { + pub rcu: callback_head, + pub info_id: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct watch_type_filter { + pub type_: watch_notification_type::Type, + pub subtype_filter: [__u32; 1usize], + pub info_filter: __u32, + pub info_mask: __u32, +} +#[repr(C)] +pub struct watch_filter { + pub __bindgen_anon_1: watch_filter__bindgen_ty_1, + pub nr_filters: u32_, + pub filters: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union watch_filter__bindgen_ty_1 { + pub rcu: callback_head, + pub type_filter: [::aya_ebpf::cty::c_ulong; 1usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct watch_list { + pub rcu: callback_head, + pub watchers: hlist_head, + pub release_watch: ::core::option::Option, + pub lock: spinlock_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct watch_queue { + pub rcu: callback_head, + pub filter: *mut watch_filter, + pub pipe: *mut pipe_inode_info, + pub watches: hlist_head, + pub notes: *mut *mut page, + pub notes_bitmap: *mut ::aya_ebpf::cty::c_ulong, + pub usage: kref, + pub lock: spinlock_t, + pub nr_notes: ::aya_ebpf::cty::c_uint, + pub nr_pages: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wiphy_nan_capa { + pub flags: u32_, + pub op_mode: u8_, + pub n_antennas: u8_, + pub max_channel_switch_time: u16_, + pub dev_capabilities: u8_, + pub phy: wiphy_nan_capa__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wiphy_nan_capa__bindgen_ty_1 { + pub ht: ieee80211_sta_ht_cap, + pub vht: ieee80211_sta_vht_cap, + pub he: ieee80211_sta_he_cap, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rfkill { + _unused: [u8; 0], +} +#[repr(C)] +pub struct wiphy { + pub mtx: mutex, + pub perm_addr: [u8_; 6usize], + pub addr_mask: [u8_; 6usize], + pub addresses: *mut mac_address, + pub mgmt_stypes: *const ieee80211_txrx_stypes, + pub iface_combinations: *const ieee80211_iface_combination, + pub n_iface_combinations: ::aya_ebpf::cty::c_int, + pub software_iftypes: u16_, + pub n_addresses: u16_, + pub interface_modes: u16_, + pub max_acl_mac_addrs: u16_, + pub flags: u32_, + pub regulatory_flags: u32_, + pub features: u32_, + pub ext_features: [u8_; 10usize], + pub ap_sme_capa: u32_, + pub signal_type: cfg80211_signal_type::Type, + pub bss_priv_size: ::aya_ebpf::cty::c_int, + pub max_scan_ssids: u8_, + pub max_sched_scan_reqs: u8_, + pub max_sched_scan_ssids: u8_, + pub max_match_sets: u8_, + pub max_scan_ie_len: u16_, + pub max_sched_scan_ie_len: u16_, + pub max_sched_scan_plans: u32_, + pub max_sched_scan_plan_interval: u32_, + pub max_sched_scan_plan_iterations: u32_, + pub n_cipher_suites: ::aya_ebpf::cty::c_int, + pub cipher_suites: *const u32_, + pub n_akm_suites: ::aya_ebpf::cty::c_int, + pub akm_suites: *const u32_, + pub iftype_akm_suites: *const wiphy_iftype_akm_suites, + pub num_iftype_akm_suites: ::aya_ebpf::cty::c_uint, + pub retry_short: u8_, + pub retry_long: u8_, + pub frag_threshold: u32_, + pub rts_threshold: u32_, + pub coverage_class: u8_, + pub fw_version: [::aya_ebpf::cty::c_char; 32usize], + pub hw_version: u32_, + pub wowlan: *const wiphy_wowlan_support, + pub wowlan_config: *mut cfg80211_wowlan, + pub max_remain_on_channel_duration: u16_, + pub max_num_pmkids: u8_, + pub available_antennas_tx: u32_, + pub available_antennas_rx: u32_, + pub probe_resp_offload: u32_, + pub extended_capabilities: *const u8_, + pub extended_capabilities_mask: *const u8_, + pub extended_capabilities_len: u8_, + pub iftype_ext_capab: *const wiphy_iftype_ext_capab, + pub num_iftype_ext_capab: ::aya_ebpf::cty::c_uint, + pub privid: *const ::aya_ebpf::cty::c_void, + pub bands: [*mut ieee80211_supported_band; 6usize], + pub reg_notifier: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut wiphy, arg2: *mut regulatory_request), + >, + pub radio_cfg: *mut wiphy_radio_cfg, + pub regd: *const ieee80211_regdomain, + pub dev: device, + pub registered: bool_, + pub debugfsdir: *mut dentry, + pub ht_capa_mod_mask: *const ieee80211_ht_cap, + pub vht_capa_mod_mask: *const ieee80211_vht_cap, + pub wdev_list: list_head, + pub _net: possible_net_t, + pub wext: *const iw_handler_def, + pub coalesce: *const wiphy_coalesce_support, + pub vendor_commands: *const wiphy_vendor_command, + pub vendor_events: *const nl80211_vendor_cmd_info, + pub n_vendor_commands: ::aya_ebpf::cty::c_int, + pub n_vendor_events: ::aya_ebpf::cty::c_int, + pub max_ap_assoc_sta: u16_, + pub max_num_csa_counters: u8_, + pub bss_param_support: u32_, + pub bss_select_support: u32_, + pub nan_supported_bands: u8_, + pub nan_capa: wiphy_nan_capa, + pub txq_limit: u32_, + pub txq_memory_limit: u32_, + pub txq_quantum: u32_, + pub tx_queue_len: ::aya_ebpf::cty::c_ulong, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub pmsr_capa: *const cfg80211_pmsr_capabilities, + pub tid_config_support: wiphy__bindgen_ty_1, + pub max_data_retry_count: u8_, + pub sar_capa: *const cfg80211_sar_capa, + pub rfkill: *mut rfkill, + pub mbssid_max_interfaces: u8_, + pub ema_max_profile_periodicity: u8_, + pub max_num_akm_suites: u16_, + pub hw_timestamp_max_peers: u16_, + pub n_radio: ::aya_ebpf::cty::c_int, + pub radio: *const wiphy_radio, + pub priv_: __IncompleteArrayField<::aya_ebpf::cty::c_char>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wiphy__bindgen_ty_1 { + pub peer: u64_, + pub vif: u64_, + pub max_retry: u8_, +} +impl wiphy { + #[inline] + pub fn support_mbssid(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_support_mbssid(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn support_mbssid_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_support_mbssid_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn support_only_he_mbssid(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_support_only_he_mbssid(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn support_only_he_mbssid_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_support_only_he_mbssid_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + support_mbssid: u8_, + support_only_he_mbssid: u8_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let support_mbssid: u8 = unsafe { ::core::mem::transmute(support_mbssid) }; + support_mbssid as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let support_only_he_mbssid: u8 = + unsafe { ::core::mem::transmute(support_only_he_mbssid) }; + support_only_he_mbssid as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wiphy_coalesce_support { + pub n_rules: ::aya_ebpf::cty::c_int, + pub max_delay: ::aya_ebpf::cty::c_int, + pub n_patterns: ::aya_ebpf::cty::c_int, + pub pattern_max_len: ::aya_ebpf::cty::c_int, + pub pattern_min_len: ::aya_ebpf::cty::c_int, + pub max_pkt_offset: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wiphy_iftype_akm_suites { + pub iftypes_mask: u16_, + pub akm_suites: *const u32_, + pub n_akm_suites: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wiphy_iftype_ext_capab { + pub iftype: nl80211_iftype::Type, + pub extended_capabilities: *const u8_, + pub extended_capabilities_mask: *const u8_, + pub extended_capabilities_len: u8_, + pub eml_capabilities: u16_, + pub mld_capa_and_ops: u16_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wiphy_radio { + pub freq_range: *const wiphy_radio_freq_range, + pub n_freq_range: ::aya_ebpf::cty::c_int, + pub iface_combinations: *const ieee80211_iface_combination, + pub n_iface_combinations: ::aya_ebpf::cty::c_int, + pub antenna_mask: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wiphy_radio_cfg { + pub rts_threshold: u32_, + pub radio_debugfsdir: *mut dentry, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wiphy_radio_freq_range { + pub start_freq: u32_, + pub end_freq: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wiphy_vendor_command { + pub info: nl80211_vendor_cmd_info, + pub flags: u32_, + pub doit: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut wiphy, + arg2: *mut wireless_dev, + arg3: *const ::aya_ebpf::cty::c_void, + arg4: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub dumpit: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut wiphy, + arg2: *mut wireless_dev, + arg3: *mut sk_buff, + arg4: *const ::aya_ebpf::cty::c_void, + arg5: ::aya_ebpf::cty::c_int, + arg6: *mut ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, + pub policy: *const nla_policy, + pub maxattr: ::aya_ebpf::cty::c_uint, +} +pub type wiphy_work_func_t = + ::core::option::Option; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wiphy_work { + pub entry: list_head, + pub func: wiphy_work_func_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wiphy_wowlan_support { + pub flags: u32_, + pub n_patterns: ::aya_ebpf::cty::c_int, + pub pattern_max_len: ::aya_ebpf::cty::c_int, + pub pattern_min_len: ::aya_ebpf::cty::c_int, + pub max_pkt_offset: ::aya_ebpf::cty::c_int, + pub max_nd_match_sets: ::aya_ebpf::cty::c_int, + pub tcp: *const wiphy_wowlan_tcp_support, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wiphy_wowlan_tcp_support { + pub tok: *const nl80211_wowlan_tcp_data_token_feature, + pub data_payload_max: u32_, + pub data_interval_max: u32_, + pub wake_payload_max: u32_, + pub seq: bool_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cfg80211_conn { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cfg80211_cached_keys { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cfg80211_cqm_config { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cfg80211_internal_bss { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct wireless_dev { + pub wiphy: *mut wiphy, + pub iftype: nl80211_iftype::Type, + pub list: list_head, + pub netdev: *mut net_device, + pub identifier: u32_, + pub mgmt_registrations: list_head, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub use_4addr: bool_, + pub is_running: bool_, + pub registered: bool_, + pub registering: bool_, + pub __bindgen_padding_0: u8, + pub address: [u8_; 6usize], + pub conn: *mut cfg80211_conn, + pub connect_keys: *mut cfg80211_cached_keys, + pub conn_bss_type: ieee80211_bss_type::Type, + pub conn_owner_nlportid: u32_, + pub disconnect_wk: work_struct, + pub disconnect_bssid: [u8_; 6usize], + pub event_list: list_head, + pub event_lock: spinlock_t, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 1usize]>, + pub ps: bool_, + pub ps_timeout: ::aya_ebpf::cty::c_int, + pub unexpected_nlportid: u32_, + pub owner_nlportid: u32_, + pub nl_owner_dead: bool_, + pub wext: wireless_dev__bindgen_ty_1, + pub cqm_rssi_work: wiphy_work, + pub cqm_config: *mut cfg80211_cqm_config, + pub pmsr_list: list_head, + pub pmsr_lock: spinlock_t, + pub pmsr_free_wk: work_struct, + pub unprot_beacon_reported: ::aya_ebpf::cty::c_ulong, + pub u: wireless_dev__bindgen_ty_2, + pub links: [wireless_dev__bindgen_ty_3; 15usize], + pub valid_links: u16_, + pub radio_mask: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct wireless_dev__bindgen_ty_1 { + pub ibss: cfg80211_ibss_params, + pub connect: cfg80211_connect_params, + pub keys: *mut cfg80211_cached_keys, + pub ie: *const u8_, + pub ie_len: usize, + pub bssid: [u8_; 6usize], + pub prev_bssid: [u8_; 6usize], + pub ssid: [u8_; 32usize], + pub default_key: s8, + pub default_mgmt_key: s8, + pub prev_bssid_valid: bool_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union wireless_dev__bindgen_ty_2 { + pub client: wireless_dev__bindgen_ty_2__bindgen_ty_1, + pub mesh: wireless_dev__bindgen_ty_2__bindgen_ty_2, + pub ap: wireless_dev__bindgen_ty_2__bindgen_ty_3, + pub ibss: wireless_dev__bindgen_ty_2__bindgen_ty_4, + pub ocb: wireless_dev__bindgen_ty_2__bindgen_ty_5, + pub nan: wireless_dev__bindgen_ty_2__bindgen_ty_6, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wireless_dev__bindgen_ty_2__bindgen_ty_1 { + pub connected_addr: [u8_; 6usize], + pub ssid: [u8_; 32usize], + pub ssid_len: u8_, + pub __bindgen_padding_0: u8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wireless_dev__bindgen_ty_2__bindgen_ty_2 { + pub beacon_interval: ::aya_ebpf::cty::c_int, + pub preset_chandef: cfg80211_chan_def, + pub chandef: cfg80211_chan_def, + pub id: [u8_; 32usize], + pub id_len: u8_, + pub id_up_len: u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wireless_dev__bindgen_ty_2__bindgen_ty_3 { + pub preset_chandef: cfg80211_chan_def, + pub ssid: [u8_; 32usize], + pub ssid_len: u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wireless_dev__bindgen_ty_2__bindgen_ty_4 { + pub current_bss: *mut cfg80211_internal_bss, + pub chandef: cfg80211_chan_def, + pub beacon_interval: ::aya_ebpf::cty::c_int, + pub ssid: [u8_; 32usize], + pub ssid_len: u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wireless_dev__bindgen_ty_2__bindgen_ty_5 { + pub chandef: cfg80211_chan_def, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wireless_dev__bindgen_ty_2__bindgen_ty_6 { + pub cluster_id: [u8_; 6usize], + pub n_channels: u8_, + pub chandefs: *mut cfg80211_chan_def, + pub sched_update_pending: bool_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct wireless_dev__bindgen_ty_3 { + pub addr: [u8_; 6usize], + pub __bindgen_anon_1: wireless_dev__bindgen_ty_3__bindgen_ty_1, + pub cac_started: bool_, + pub cac_start_time: ::aya_ebpf::cty::c_ulong, + pub cac_time_ms: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union wireless_dev__bindgen_ty_3__bindgen_ty_1 { + pub ap: wireless_dev__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1, + pub client: wireless_dev__bindgen_ty_3__bindgen_ty_1__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wireless_dev__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1 { + pub beacon_interval: ::aya_ebpf::cty::c_uint, + pub chandef: cfg80211_chan_def, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wireless_dev__bindgen_ty_3__bindgen_ty_1__bindgen_ty_2 { + pub current_bss: *mut cfg80211_internal_bss, +} +impl wireless_dev { + #[inline] + pub fn mgmt_registrations_need_update(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_mgmt_registrations_need_update(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn mgmt_registrations_need_update_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_mgmt_registrations_need_update_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + mgmt_registrations_need_update: u8_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let mgmt_registrations_need_update: u8 = + unsafe { ::core::mem::transmute(mgmt_registrations_need_update) }; + mgmt_registrations_need_update as u64 + }); + __bindgen_bitfield_unit + } + #[inline] + pub fn connected(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_2.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_connected(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn connected_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 0usize, + 1u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_connected_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_2(connected: u8_) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let connected: u8 = unsafe { ::core::mem::transmute(connected) }; + connected as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct worker { + pub __bindgen_anon_1: worker__bindgen_ty_1, + pub current_work: *mut work_struct, + pub current_func: work_func_t, + pub current_pwq: *mut pool_workqueue, + pub current_at: u64_, + pub current_start: ::aya_ebpf::cty::c_ulong, + pub current_color: ::aya_ebpf::cty::c_uint, + pub sleeping: ::aya_ebpf::cty::c_int, + pub last_func: work_func_t, + pub scheduled: list_head, + pub task: *mut task_struct, + pub pool: *mut worker_pool, + pub node: list_head, + pub last_active: ::aya_ebpf::cty::c_ulong, + pub flags: ::aya_ebpf::cty::c_uint, + pub id: ::aya_ebpf::cty::c_int, + pub desc: [::aya_ebpf::cty::c_char; 32usize], + pub rescue_wq: *mut workqueue_struct, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union worker__bindgen_ty_1 { + pub entry: list_head, + pub hentry: hlist_node, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct worker_pool { + pub lock: raw_spinlock_t, + pub cpu: ::aya_ebpf::cty::c_int, + pub node: ::aya_ebpf::cty::c_int, + pub id: ::aya_ebpf::cty::c_int, + pub flags: ::aya_ebpf::cty::c_uint, + pub last_progress_ts: ::aya_ebpf::cty::c_ulong, + pub cpu_stall: bool_, + pub nr_running: ::aya_ebpf::cty::c_int, + pub worklist: list_head, + pub nr_workers: ::aya_ebpf::cty::c_int, + pub nr_idle: ::aya_ebpf::cty::c_int, + pub idle_list: list_head, + pub idle_timer: timer_list, + pub idle_cull_work: work_struct, + pub mayday_timer: timer_list, + pub busy_hash: [hlist_head; 64usize], + pub manager: *mut worker, + pub workers: list_head, + pub worker_ida: ida, + pub attrs: *mut workqueue_attrs, + pub hash_node: hlist_node, + pub refcnt: ::aya_ebpf::cty::c_int, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct workqueue_attrs { + pub nice: ::aya_ebpf::cty::c_int, + pub cpumask: cpumask_var_t, + pub __pod_cpumask: cpumask_var_t, + pub affn_strict: bool_, + pub affn_scope: wq_affn_scope::Type, + pub ordered: bool_, +} +#[repr(C)] +pub struct workqueue_struct { + pub pwqs: list_head, + pub list: list_head, + pub mutex: mutex, + pub work_color: ::aya_ebpf::cty::c_int, + pub flush_color: ::aya_ebpf::cty::c_int, + pub nr_pwqs_to_flush: atomic_t, + pub first_flusher: *mut wq_flusher, + pub flusher_queue: list_head, + pub flusher_overflow: list_head, + pub maydays: list_head, + pub rescuer: *mut worker, + pub nr_drainers: ::aya_ebpf::cty::c_int, + pub max_active: ::aya_ebpf::cty::c_int, + pub min_active: ::aya_ebpf::cty::c_int, + pub saved_max_active: ::aya_ebpf::cty::c_int, + pub saved_min_active: ::aya_ebpf::cty::c_int, + pub unbound_attrs: *mut workqueue_attrs, + pub dfl_pwq: *mut pool_workqueue, + pub wq_dev: *mut wq_device, + pub name: [::aya_ebpf::cty::c_char; 32usize], + pub rcu: callback_head, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, + pub flags: ::aya_ebpf::cty::c_uint, + pub cpu_pwq: *mut *mut pool_workqueue, + pub node_nr_active: __IncompleteArrayField<*mut wq_node_nr_active>, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 48usize]>, +} +impl workqueue_struct { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct wpan_dev { + pub wpan_phy: *mut wpan_phy, + pub iftype: ::aya_ebpf::cty::c_int, + pub list: list_head, + pub netdev: *mut net_device, + pub header_ops: *const wpan_dev_header_ops, + pub lowpan_dev: *mut net_device, + pub identifier: u32_, + pub pan_id: __le16, + pub short_addr: __le16, + pub extended_addr: __le64, + pub bsn: atomic_t, + pub dsn: atomic_t, + pub min_be: u8_, + pub max_be: u8_, + pub csma_retries: u8_, + pub frame_retries: s8, + pub lbt: bool_, + pub ackreq: bool_, + pub association_lock: mutex, + pub parent: *mut ieee802154_pan_device, + pub children: list_head, + pub max_associations: ::aya_ebpf::cty::c_uint, + pub nchildren: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wpan_dev_header_ops { + pub create: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut sk_buff, + arg2: *mut net_device, + arg3: *const ieee802154_addr, + arg4: *const ieee802154_addr, + arg5: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wpan_phy_supported { + pub channels: [u32_; 32usize], + pub cca_modes: u32_, + pub cca_opts: u32_, + pub iftypes: u32_, + pub lbt: nl802154_supported_bool_states::Type, + pub min_minbe: u8_, + pub max_minbe: u8_, + pub min_maxbe: u8_, + pub max_maxbe: u8_, + pub min_csma_backoffs: u8_, + pub max_csma_backoffs: u8_, + pub min_frame_retries: s8, + pub max_frame_retries: s8, + pub tx_powers_size: usize, + pub cca_ed_levels_size: usize, + pub tx_powers: *const s32, + pub cca_ed_levels: *const s32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct wpan_phy_cca { + pub mode: nl802154_cca_modes::Type, + pub opt: nl802154_cca_opts::Type, +} +#[repr(C)] +pub struct wpan_phy { + pub privid: *const ::aya_ebpf::cty::c_void, + pub flags: ::aya_ebpf::cty::c_ulong, + pub current_channel: u8_, + pub current_page: u8_, + pub supported: wpan_phy_supported, + pub transmit_power: s32, + pub cca: wpan_phy_cca, + pub perm_extended_addr: __le64, + pub cca_ed_level: s32, + pub symbol_duration: u32_, + pub lifs_period: u16_, + pub sifs_period: u16_, + pub dev: device, + pub _net: possible_net_t, + pub queue_lock: spinlock_t, + pub ongoing_txs: atomic_t, + pub hold_txs: atomic_t, + pub sync_txq: wait_queue_head_t, + pub filtering: ieee802154_filtering_level::Type, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>, + pub __bindgen_padding_0: [u8; 4usize], + pub priv_: __IncompleteArrayField<::aya_ebpf::cty::c_char>, +} +impl wpan_phy { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct wq_device { + pub wq: *mut workqueue_struct, + pub dev: device, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct wq_flusher { + pub list: list_head, + pub flush_color: ::aya_ebpf::cty::c_int, + pub done: completion, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct wq_node_nr_active { + pub max: ::aya_ebpf::cty::c_int, + pub nr: atomic_t, + pub lock: raw_spinlock_t, + pub pending_pwqs: list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct writeback_control { + pub nr_to_write: ::aya_ebpf::cty::c_long, + pub pages_skipped: ::aya_ebpf::cty::c_long, + pub range_start: loff_t, + pub range_end: loff_t, + pub sync_mode: writeback_sync_modes::Type, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub fbatch: folio_batch, + pub index: ::aya_ebpf::cty::c_ulong, + pub saved_err: ::aya_ebpf::cty::c_int, + pub wb: *mut bdi_writeback, + pub inode: *mut inode, + pub wb_id: ::aya_ebpf::cty::c_int, + pub wb_lcand_id: ::aya_ebpf::cty::c_int, + pub wb_tcand_id: ::aya_ebpf::cty::c_int, + pub wb_bytes: usize, + pub wb_lcand_bytes: usize, + pub wb_tcand_bytes: usize, +} +impl writeback_control { + #[inline] + pub fn for_kupdate(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_for_kupdate(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn for_kupdate_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_for_kupdate_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn for_background(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_for_background(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn for_background_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 1usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_for_background_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn tagged_writepages(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_tagged_writepages(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn tagged_writepages_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_tagged_writepages_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn range_cyclic(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } + } + #[inline] + pub fn set_range_cyclic(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn range_cyclic_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 3usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_range_cyclic_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn for_sync(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } + } + #[inline] + pub fn set_for_sync(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn for_sync_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_for_sync_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn unpinned_netfs_wb(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } + } + #[inline] + pub fn set_unpinned_netfs_wb(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn unpinned_netfs_wb_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 5usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_unpinned_netfs_wb_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 5usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn no_cgroup_owner(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } + } + #[inline] + pub fn set_no_cgroup_owner(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn no_cgroup_owner_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 6usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_no_cgroup_owner_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 6usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + for_kupdate: ::aya_ebpf::cty::c_uint, + for_background: ::aya_ebpf::cty::c_uint, + tagged_writepages: ::aya_ebpf::cty::c_uint, + range_cyclic: ::aya_ebpf::cty::c_uint, + for_sync: ::aya_ebpf::cty::c_uint, + unpinned_netfs_wb: ::aya_ebpf::cty::c_uint, + no_cgroup_owner: ::aya_ebpf::cty::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let for_kupdate: u32 = unsafe { ::core::mem::transmute(for_kupdate) }; + for_kupdate as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let for_background: u32 = unsafe { ::core::mem::transmute(for_background) }; + for_background as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let tagged_writepages: u32 = unsafe { ::core::mem::transmute(tagged_writepages) }; + tagged_writepages as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let range_cyclic: u32 = unsafe { ::core::mem::transmute(range_cyclic) }; + range_cyclic as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let for_sync: u32 = unsafe { ::core::mem::transmute(for_sync) }; + for_sync as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let unpinned_netfs_wb: u32 = unsafe { ::core::mem::transmute(unpinned_netfs_wb) }; + unpinned_netfs_wb as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let no_cgroup_owner: u32 = unsafe { ::core::mem::transmute(no_cgroup_owner) }; + no_cgroup_owner as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xattr_handler { + pub name: *const ::aya_ebpf::cty::c_char, + pub prefix: *const ::aya_ebpf::cty::c_char, + pub flags: ::aya_ebpf::cty::c_int, + pub list: ::core::option::Option bool_>, + pub get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const xattr_handler, + arg2: *mut dentry, + arg3: *mut inode, + arg4: *const ::aya_ebpf::cty::c_char, + arg5: *mut ::aya_ebpf::cty::c_void, + arg6: usize, + ) -> ::aya_ebpf::cty::c_int, + >, + pub set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const xattr_handler, + arg2: *mut mnt_idmap, + arg3: *mut dentry, + arg4: *mut inode, + arg5: *const ::aya_ebpf::cty::c_char, + arg6: *const ::aya_ebpf::cty::c_void, + arg7: usize, + arg8: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct xdp_buff_xsk { + pub xdp: xdp_buff, + pub cb: [u8_; 24usize], + pub dma: dma_addr_t, + pub frame_dma: dma_addr_t, + pub pool: *mut xsk_buff_pool, + pub list_node: list_head, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, +} +impl xdp_buff_xsk { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xdp_desc { + pub addr: __u64, + pub len: __u32, + pub options: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xdp_dev_bulk_queue { + pub q: [*mut xdp_frame; 16usize], + pub flush_node: list_head, + pub dev: *mut net_device, + pub dev_rx: *mut net_device, + pub xdp_prog: *mut bpf_prog, + pub count: ::aya_ebpf::cty::c_uint, + pub bq_lock: local_lock_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xdp_frame { + pub data: *mut ::aya_ebpf::cty::c_void, + pub len: u32_, + pub headroom: u32_, + pub metasize: u32_, + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, + pub dev_rx: *mut net_device, + pub frame_sz: u32_, + pub flags: u32_, +} +impl xdp_frame { + #[inline] + pub fn mem_type(&self) -> xdp_mem_type::Type { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 32u8) as u32) } + } + #[inline] + pub fn set_mem_type(&mut self, val: xdp_mem_type::Type) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 32u8, val as u64) + } + } + #[inline] + pub unsafe fn mem_type_raw(this: *const Self) -> xdp_mem_type::Type { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 32u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_mem_type_raw(this: *mut Self, val: xdp_mem_type::Type) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 32u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(mem_type: xdp_mem_type::Type) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 32u8, { + let mem_type: u32 = unsafe { ::core::mem::transmute(mem_type) }; + mem_type as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xdp_metadata_ops { + pub xmo_rx_timestamp: ::core::option::Option< + unsafe extern "C" fn(arg1: *const xdp_md, arg2: *mut u64_) -> ::aya_ebpf::cty::c_int, + >, + pub xmo_rx_hash: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const xdp_md, + arg2: *mut u32_, + arg3: *mut xdp_rss_hash_type::Type, + ) -> ::aya_ebpf::cty::c_int, + >, + pub xmo_rx_vlan_tag: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const xdp_md, + arg2: *mut __be16, + arg3: *mut u16_, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xdp_ring { + pub producer: u32_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 56usize]>, + pub __bindgen_padding_0: u32, + pub pad1: u32_, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 56usize]>, + pub __bindgen_padding_1: u32, + pub consumer: u32_, + pub _bitfield_align_3: [u8; 0], + pub _bitfield_3: __BindgenBitfieldUnit<[u8; 56usize]>, + pub __bindgen_padding_2: u32, + pub pad2: u32_, + pub flags: u32_, + pub _bitfield_align_4: [u8; 0], + pub _bitfield_4: __BindgenBitfieldUnit<[u8; 56usize]>, + pub pad3: u32_, + pub _bitfield_align_5: [u8; 0], + pub _bitfield_5: __BindgenBitfieldUnit<[u8; 56usize]>, + pub __bindgen_padding_3: u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xdp_txq_info { + pub dev: *mut net_device, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xdp_umem { + pub addrs: *mut ::aya_ebpf::cty::c_void, + pub size: u64_, + pub headroom: u32_, + pub chunk_size: u32_, + pub chunks: u32_, + pub npgs: u32_, + pub user: *mut user_struct, + pub users: refcount_t, + pub flags: u8_, + pub tx_metadata_len: u8_, + pub zc: bool_, + pub pgs: *mut *mut page, + pub id: ::aya_ebpf::cty::c_int, + pub xsk_dma_list: list_head, + pub work: work_struct, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xdr_netobj { + pub len: ::aya_ebpf::cty::c_uint, + pub data: *mut u8_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct xfrm_address_filter { + pub saddr: xfrm_address_t, + pub daddr: xfrm_address_t, + pub family: __u16, + pub splen: __u8, + pub dplen: __u8, +} +#[repr(C)] +#[derive(Debug)] +pub struct xfrm_algo { + pub alg_name: [::aya_ebpf::cty::c_char; 64usize], + pub alg_key_len: ::aya_ebpf::cty::c_uint, + pub alg_key: __IncompleteArrayField<::aya_ebpf::cty::c_char>, +} +#[repr(C)] +#[derive(Debug)] +pub struct xfrm_algo_aead { + pub alg_name: [::aya_ebpf::cty::c_char; 64usize], + pub alg_key_len: ::aya_ebpf::cty::c_uint, + pub alg_icv_len: ::aya_ebpf::cty::c_uint, + pub alg_key: __IncompleteArrayField<::aya_ebpf::cty::c_char>, +} +#[repr(C)] +#[derive(Debug)] +pub struct xfrm_algo_auth { + pub alg_name: [::aya_ebpf::cty::c_char; 64usize], + pub alg_key_len: ::aya_ebpf::cty::c_uint, + pub alg_trunc_len: ::aya_ebpf::cty::c_uint, + pub alg_key: __IncompleteArrayField<::aya_ebpf::cty::c_char>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xfrm_dev_offload { + pub dev: *mut net_device, + pub dev_tracker: netdevice_tracker, + pub real_dev: *mut net_device, + pub offload_handle: ::aya_ebpf::cty::c_ulong, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: [u8; 7usize], +} +impl xfrm_dev_offload { + #[inline] + pub fn dir(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u8) } + } + #[inline] + pub fn set_dir(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn dir_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 0usize, + 2u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_dir_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 0usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn type_(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 2u8) as u8) } + } + #[inline] + pub fn set_type(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn type__raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 2usize, + 2u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_type_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 2usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn flags(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 2u8) as u8) } + } + #[inline] + pub fn set_flags(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 2u8, val as u64) + } + } + #[inline] + pub unsafe fn flags_raw(this: *const Self) -> u8_ { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_1), + 4usize, + 2u8, + ) as u8) + } + } + #[inline] + pub unsafe fn set_flags_raw(this: *mut Self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 4usize, + 2u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1(dir: u8_, type_: u8_, flags: u8_) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 2u8, { + let dir: u8 = unsafe { ::core::mem::transmute(dir) }; + dir as u64 + }); + __bindgen_bitfield_unit.set(2usize, 2u8, { + let type_: u8 = unsafe { ::core::mem::transmute(type_) }; + type_ as u64 + }); + __bindgen_bitfield_unit.set(4usize, 2u8, { + let flags: u8 = unsafe { ::core::mem::transmute(flags) }; + flags as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct xfrm_encap_tmpl { + pub encap_type: __u16, + pub encap_sport: __be16, + pub encap_dport: __be16, + pub encap_oa: xfrm_address_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct xfrm_id { + pub daddr: xfrm_address_t, + pub spi: __be32, + pub proto: __u8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xfrm_lifetime_cfg { + pub soft_byte_limit: __u64, + pub hard_byte_limit: __u64, + pub soft_packet_limit: __u64, + pub hard_packet_limit: __u64, + pub soft_add_expires_seconds: __u64, + pub hard_add_expires_seconds: __u64, + pub soft_use_expires_seconds: __u64, + pub hard_use_expires_seconds: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xfrm_lifetime_cur { + pub bytes: __u64, + pub packets: __u64, + pub add_time: __u64, + pub use_time: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xfrm_mark { + pub v: __u32, + pub m: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xfrm_mode { + pub encap: u8_, + pub family: u8_, + pub flags: u8_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xfrm_mode_cbs { + pub owner: *mut module, + pub init_state: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut xfrm_state) -> ::aya_ebpf::cty::c_int, + >, + pub clone_state: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut xfrm_state, + arg2: *mut xfrm_state, + ) -> ::aya_ebpf::cty::c_int, + >, + pub destroy_state: ::core::option::Option, + pub user_init: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net, + arg2: *mut xfrm_state, + arg3: *mut *mut nlattr, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub copy_to_user: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut xfrm_state, arg2: *mut sk_buff) -> ::aya_ebpf::cty::c_int, + >, + pub sa_len: ::core::option::Option< + unsafe extern "C" fn(arg1: *const xfrm_state) -> ::aya_ebpf::cty::c_uint, + >, + pub get_inner_mtu: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut xfrm_state, arg2: ::aya_ebpf::cty::c_int) -> u32_, + >, + pub input: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut xfrm_state, arg2: *mut sk_buff) -> ::aya_ebpf::cty::c_int, + >, + pub output: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net, + arg2: *mut sock, + arg3: *mut sk_buff, + ) -> ::aya_ebpf::cty::c_int, + >, + pub prepare_output: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut xfrm_state, arg2: *mut sk_buff) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct xfrm_selector { + pub daddr: xfrm_address_t, + pub saddr: xfrm_address_t, + pub dport: __be16, + pub dport_mask: __be16, + pub sport: __be16, + pub sport_mask: __be16, + pub family: __u16, + pub prefixlen_d: __u8, + pub prefixlen_s: __u8, + pub proto: __u8, + pub ifindex: ::aya_ebpf::cty::c_int, + pub user: __kernel_uid32_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xfrm_policy_walk_entry { + pub all: list_head, + pub dead: u8_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct xfrm_policy_queue { + pub hold_queue: sk_buff_head, + pub hold_timer: timer_list, + pub timeout: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct xfrm_tmpl { + pub id: xfrm_id, + pub saddr: xfrm_address_t, + pub encap_family: ::aya_ebpf::cty::c_ushort, + pub reqid: u32_, + pub mode: u8_, + pub share: u8_, + pub optional: u8_, + pub allalgs: u8_, + pub aalgos: u32_, + pub ealgos: u32_, + pub calgos: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct xfrm_policy { + pub xp_net: possible_net_t, + pub bydst: hlist_node, + pub byidx: hlist_node, + pub state_cache_list: hlist_head, + pub lock: rwlock_t, + pub refcnt: refcount_t, + pub pos: u32_, + pub timer: timer_list, + pub genid: atomic_t, + pub priority: u32_, + pub index: u32_, + pub if_id: u32_, + pub mark: xfrm_mark, + pub selector: xfrm_selector, + pub lft: xfrm_lifetime_cfg, + pub curlft: xfrm_lifetime_cur, + pub walk: xfrm_policy_walk_entry, + pub polq: xfrm_policy_queue, + pub bydst_reinsert: bool_, + pub type_: u8_, + pub action: u8_, + pub flags: u8_, + pub xfrm_nr: u8_, + pub family: u16_, + pub security: *mut xfrm_sec_ctx, + pub xfrm_vec: [xfrm_tmpl; 6usize], + pub rcu: callback_head, + pub xdo: xfrm_dev_offload, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xfrm_replay_state { + pub oseq: __u32, + pub seq: __u32, + pub bitmap: __u32, +} +#[repr(C)] +#[derive(Debug)] +pub struct xfrm_replay_state_esn { + pub bmp_len: ::aya_ebpf::cty::c_uint, + pub oseq: __u32, + pub seq: __u32, + pub oseq_hi: __u32, + pub seq_hi: __u32, + pub replay_window: __u32, + pub bmp: __IncompleteArrayField<__u32>, +} +#[repr(C)] +#[derive(Debug)] +pub struct xfrm_sec_ctx { + pub ctx_doi: __u8, + pub ctx_alg: __u8, + pub ctx_len: __u16, + pub ctx_sid: __u32, + pub ctx_str: __IncompleteArrayField<::aya_ebpf::cty::c_char>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xfrm_state_walk { + pub all: list_head, + pub state: u8_, + pub dying: u8_, + pub proto: u8_, + pub seq: u32_, + pub filter: *mut xfrm_address_filter, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xfrm_stats { + pub replay_window: __u32, + pub replay: __u32, + pub integrity_failed: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct xfrm_state { + pub xs_net: possible_net_t, + pub __bindgen_anon_1: xfrm_state__bindgen_ty_1, + pub __bindgen_anon_2: xfrm_state__bindgen_ty_2, + pub byspi: hlist_node, + pub byseq: hlist_node, + pub state_cache: hlist_node, + pub state_cache_input: hlist_node, + pub refcnt: refcount_t, + pub lock: spinlock_t, + pub pcpu_num: u32_, + pub id: xfrm_id, + pub sel: xfrm_selector, + pub mark: xfrm_mark, + pub if_id: u32_, + pub tfcpad: u32_, + pub genid: u32_, + pub km: xfrm_state_walk, + pub props: xfrm_state__bindgen_ty_3, + pub lft: xfrm_lifetime_cfg, + pub aalg: *mut xfrm_algo_auth, + pub ealg: *mut xfrm_algo, + pub calg: *mut xfrm_algo, + pub aead: *mut xfrm_algo_aead, + pub geniv: *const ::aya_ebpf::cty::c_char, + pub new_mapping_sport: __be16, + pub new_mapping: u32_, + pub mapping_maxage: u32_, + pub encap: *mut xfrm_encap_tmpl, + pub nat_keepalive_interval: u32_, + pub nat_keepalive_expiration: time64_t, + pub coaddr: *mut xfrm_address_t, + pub tunnel: *mut xfrm_state, + pub tunnel_users: atomic_t, + pub replay: xfrm_replay_state, + pub replay_esn: *mut xfrm_replay_state_esn, + pub preplay: xfrm_replay_state, + pub preplay_esn: *mut xfrm_replay_state_esn, + pub repl_mode: xfrm_replay_mode::Type, + pub xflags: u32_, + pub replay_maxage: u32_, + pub replay_maxdiff: u32_, + pub rtimer: timer_list, + pub stats: xfrm_stats, + pub curlft: xfrm_lifetime_cur, + pub mtimer: hrtimer, + pub xso: xfrm_dev_offload, + pub saved_tmo: ::aya_ebpf::cty::c_long, + pub lastused: time64_t, + pub xfrag: page_frag, + pub type_: *const xfrm_type, + pub inner_mode: xfrm_mode, + pub inner_mode_iaf: xfrm_mode, + pub outer_mode: xfrm_mode, + pub type_offload: *const xfrm_type_offload, + pub security: *mut xfrm_sec_ctx, + pub data: *mut ::aya_ebpf::cty::c_void, + pub dir: u8_, + pub mode_cbs: *const xfrm_mode_cbs, + pub mode_data: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union xfrm_state__bindgen_ty_1 { + pub gclist: hlist_node, + pub bydst: hlist_node, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union xfrm_state__bindgen_ty_2 { + pub dev_gclist: hlist_node, + pub bysrc: hlist_node, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct xfrm_state__bindgen_ty_3 { + pub reqid: u32_, + pub mode: u8_, + pub replay_window: u8_, + pub aalgo: u8_, + pub ealgo: u8_, + pub calgo: u8_, + pub flags: u8_, + pub family: u16_, + pub saddr: xfrm_address_t, + pub header_len: ::aya_ebpf::cty::c_int, + pub enc_hdr_len: ::aya_ebpf::cty::c_int, + pub trailer_len: ::aya_ebpf::cty::c_int, + pub extra_flags: u32_, + pub smark: xfrm_mark, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xfrm_type { + pub owner: *mut module, + pub proto: u8_, + pub flags: u8_, + pub init_state: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut xfrm_state, + arg2: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub destructor: ::core::option::Option, + pub input: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut xfrm_state, arg2: *mut sk_buff) -> ::aya_ebpf::cty::c_int, + >, + pub output: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut xfrm_state, arg2: *mut sk_buff) -> ::aya_ebpf::cty::c_int, + >, + pub reject: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut xfrm_state, + arg2: *mut sk_buff, + arg3: *const flowi, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xfrm_type_offload { + pub owner: *mut module, + pub proto: u8_, + pub encap: + ::core::option::Option, + pub input_tail: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut xfrm_state, arg2: *mut sk_buff) -> ::aya_ebpf::cty::c_int, + >, + pub xmit: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut xfrm_state, + arg2: *mut sk_buff, + arg3: netdev_features_t, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xfrmdev_ops { + pub xdo_dev_state_add: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut xfrm_state, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub xdo_dev_state_delete: + ::core::option::Option, + pub xdo_dev_state_free: + ::core::option::Option, + pub xdo_dev_offload_ok: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sk_buff, arg2: *mut xfrm_state) -> bool_, + >, + pub xdo_dev_state_advance_esn: + ::core::option::Option, + pub xdo_dev_state_update_stats: + ::core::option::Option, + pub xdo_dev_policy_add: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut xfrm_policy, + arg2: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, + >, + pub xdo_dev_policy_delete: ::core::option::Option, + pub xdo_dev_policy_free: ::core::option::Option, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct xol_area { + pub wq: wait_queue_head_t, + pub bitmap: *mut ::aya_ebpf::cty::c_ulong, + pub page: *mut page, + pub vaddr: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug)] +pub struct xprt_class { + pub list: list_head, + pub ident: ::aya_ebpf::cty::c_int, + pub setup: + ::core::option::Option *mut rpc_xprt>, + pub owner: *mut module, + pub name: [::aya_ebpf::cty::c_char; 32usize], + pub netid: __IncompleteArrayField<*const ::aya_ebpf::cty::c_char>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xprt_create { + pub ident: ::aya_ebpf::cty::c_int, + pub net: *mut net, + pub srcaddr: *mut sockaddr, + pub dstaddr: *mut sockaddr, + pub addrlen: usize, + pub servername: *const ::aya_ebpf::cty::c_char, + pub bc_xprt: *mut svc_xprt, + pub bc_xps: *mut rpc_xprt_switch, + pub flags: ::aya_ebpf::cty::c_uint, + pub xprtsec: xprtsec_parms, + pub connect_timeout: ::aya_ebpf::cty::c_ulong, + pub reconnect_timeout: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug)] +pub struct xps_dev_maps { + pub rcu: callback_head, + pub nr_ids: ::aya_ebpf::cty::c_uint, + pub num_tc: s16, + pub attr_map: __IncompleteArrayField<*mut xps_map>, +} +#[repr(C)] +#[derive(Debug)] +pub struct xps_map { + pub len: ::aya_ebpf::cty::c_uint, + pub alloc_len: ::aya_ebpf::cty::c_uint, + pub rcu: callback_head, + pub queues: __IncompleteArrayField, +} +#[repr(C)] +pub struct xsk_buff_pool { + pub dev: *mut device, + pub netdev: *mut net_device, + pub xsk_tx_list: list_head, + pub xsk_tx_list_lock: spinlock_t, + pub users: refcount_t, + pub umem: *mut xdp_umem, + pub work: work_struct, + pub rx_lock: spinlock_t, + pub free_list: list_head, + pub xskb_list: list_head, + pub heads_cnt: u32_, + pub queue_id: u16_, + pub fq: *mut xsk_queue, + pub cq: *mut xsk_queue, + pub dma_pages: *mut dma_addr_t, + pub heads: *mut xdp_buff_xsk, + pub tx_descs: *mut xdp_desc, + pub chunk_mask: u64_, + pub addrs_cnt: u64_, + pub free_list_cnt: u32_, + pub dma_pages_cnt: u32_, + pub free_heads_cnt: u32_, + pub headroom: u32_, + pub chunk_size: u32_, + pub chunk_shift: u32_, + pub frame_len: u32_, + pub xdp_zc_max_segs: u32_, + pub tx_metadata_len: u8_, + pub cached_need_wakeup: u8_, + pub uses_need_wakeup: bool_, + pub unaligned: bool_, + pub tx_sw_csum: bool_, + pub addrs: *mut ::aya_ebpf::cty::c_void, + pub cq_prod_lock: spinlock_t, + pub free_heads: __IncompleteArrayField<*mut xdp_buff_xsk>, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>, +} +impl xsk_buff_pool { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct xsk_queue { + pub ring_mask: u32_, + pub nentries: u32_, + pub cached_prod: u32_, + pub cached_cons: u32_, + pub ring: *mut xdp_ring, + pub invalid_descs: u64_, + pub queue_empty_descs: u64_, + pub ring_vmalloc_size: usize, + pub cq_cached_prod_lock: spinlock_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xsk_tx_metadata_ops { + pub tmo_request_timestamp: + ::core::option::Option, + pub tmo_fill_timestamp: + ::core::option::Option u64_>, + pub tmo_request_checksum: ::core::option::Option< + unsafe extern "C" fn(arg1: u16_, arg2: u16_, arg3: *mut ::aya_ebpf::cty::c_void), + >, + pub tmo_request_launch_time: ::core::option::Option< + unsafe extern "C" fn(arg1: u64_, arg2: *mut ::aya_ebpf::cty::c_void), + >, +} diff --git a/crates/cardwire-gui/src/ui.rs b/crates/cardwire-gui/src/ui.rs index 0c9f7552..751bff10 100644 --- a/crates/cardwire-gui/src/ui.rs +++ b/crates/cardwire-gui/src/ui.rs @@ -170,9 +170,9 @@ fn gpu_cards( Color::from_rgb(0.9, 0.9, 0.9) }; let title_text = if gpu.default { - format!("★ GPU {} ({})", id, &gpu.name) + format!("★ GPU {} ({})", id, gpu.name) } else { - format!("GPU {} ({})", id, &gpu.name) + format!("GPU {} ({})", id, gpu.name) }; let is_open = open_dropdown == Some(*id); diff --git a/flake.lock b/flake.lock index 16dc376a..01266118 100644 --- a/flake.lock +++ b/flake.lock @@ -6,15 +6,16 @@ "rust-analyzer-src": "rust-analyzer-src" }, "locked": { - "lastModified": 1785146392, - "narHash": "sha256-XOU4aG8jroBwvA4vegmD7m7jopuRHJIMX3j7/WUUJgM=", + "lastModified": 1782900513, + "narHash": "sha256-GHrsl1+ysDFgmDQtQSqWS7TiYD2Q58VlwLvnf1+crJM=", "owner": "nix-community", "repo": "fenix", - "rev": "44a90ec0ed3ba33823fa5acd6d8614b7d3eaa9b1", + "rev": "16810aa8f4ad89ca480b1513774e8b6f485fe368", "type": "github" }, "original": { "owner": "nix-community", + "ref": "monthly", "repo": "fenix", "type": "github" } @@ -56,11 +57,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1785090369, - "narHash": "sha256-m0pDuRJG7EDo9ri+4Ksu83VsI+PlxNC9lNBfydejce4=", + "lastModified": 1782723713, + "narHash": "sha256-oPXCU/SSUokcGaJREHibG1CBX3+s/W7orDWQOZDsEeQ=", "owner": "nixos", "repo": "nixpkgs", - "rev": "624af665418d3c65d544145b4d34ad696439570e", + "rev": "b5aa0fbd538984f6e3d201be0005b4463d8b09f8", "type": "github" }, "original": { @@ -112,11 +113,11 @@ "rust-analyzer-src": { "flake": false, "locked": { - "lastModified": 1785084284, - "narHash": "sha256-aa+pBL1RU/8E/H4AXsogUI3pDukwsqb+uGl9Pwys/B0=", + "lastModified": 1782864348, + "narHash": "sha256-NVYhLbaefeIUftPlo3kS6qr0xd8eFJRodEiaHrvFKR4=", "owner": "rust-lang", "repo": "rust-analyzer", - "rev": "12c3381f0b17b8eec21075d1c72fd010996a9bda", + "rev": "0d381ca097a8e0375a19387874d952c0a230ac4f", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index e1cc2d04..9fd42788 100644 --- a/flake.nix +++ b/flake.nix @@ -2,7 +2,7 @@ description = "Cardwire, a GPU manager for laptop and workstation"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; - fenix.url = "github:nix-community/fenix"; + fenix.url = "github:nix-community/fenix/monthly"; git-hooks.url = "github:cachix/git-hooks.nix"; }; outputs = @@ -24,16 +24,17 @@ system: let tc = (fenixpkgs system).toolchainOf { - channel = "1.95.0"; - sha256 = "sha256-gh/xTkxKHL4eiRXzWv8KP7vfjSk61Iq48x47BEDFgfk="; + channel = "nightly"; + sha256 = "sha256-sM1tAacgPuCH5jppuiSQi1DM/LDe228PX/4SBDmsfG0="; }; in (fenixpkgs system).combine [ tc.cargo tc.rustc - (fenixpkgs system).latest.rustfmt + tc.rustfmt tc.clippy tc.rust-src + tc.llvm-tools-preview ]; in { @@ -75,9 +76,13 @@ (pkgs system).libGL (pkgs system).udev ]; - RUST_SRC_PATH = "${(fenixpkgs system).stable.rust-src}/lib/rustlib/src/rust/library"; + LIBCLANG_PATH = "${(pkgs system).llvmPackages.libclang.lib}/lib"; + RUST_SRC_PATH = "${toolchainFor system}/lib/rustlib/src/rust/library"; RUST_BACKTRACE = "1"; - inherit (self.checks.${system}.pre-commit-check) shellHook; + shellHook = '' + export PATH="$HOME/.cargo/bin:$PATH" + ${self.checks.${system}.pre-commit-check.shellHook} + ''; }; }); nixosModules.default = import ./nix/nixos-module.nix self; diff --git a/nix/default.nix b/nix/default.nix index 6f164630..1f4e97dd 100644 --- a/nix/default.nix +++ b/nix/default.nix @@ -1,90 +1,105 @@ { lib, pkgs, - toolchain, + toolchain ? null, # Kept so your flake.nix callPackage doesn't break, but ignored here }: let - cargoToml = fromTOML (builtins.readFile ../Cargo.toml); + cargoToml = builtins.fromTOML (builtins.readFile ../Cargo.toml); version = cargoToml.workspace.package.version; in -(pkgs.makeRustPlatform { - cargo = toolchain; - rustc = toolchain; -}).buildRustPackage - { - inherit version; - pname = "cardwire"; - src = ./..; - cargoLock.lockFile = ../Cargo.lock; - nativeBuildInputs = [ - pkgs.clang - toolchain - pkgs.installShellFiles - pkgs.makeWrapper - pkgs.pkg-config - ]; - buildInputs = [ - pkgs.hwdata - pkgs.libbpf - pkgs.udev - ]; - runtimeDeps = [ - pkgs.hwdata - pkgs.upower - pkgs.udev - pkgs.wayland - pkgs.libxkbcommon - ]; - doCheck = false; - doInstallCheck = true; - meta = { - description = "a GPU manager for laptop and workstation"; - homepage = "https://github.com/OpenGamingCollective/cardwire"; - license = lib.licenses.gpl3; - }; +pkgs.rustPlatform.buildRustPackage { + inherit version; + pname = "cardwire"; + src = ./..; + cargoLock.lockFile = ../Cargo.lock; + + nativeBuildInputs = [ + pkgs.clang + pkgs.installShellFiles + pkgs.makeWrapper + pkgs.pkg-config + pkgs.bpf-linker + ]; + + buildInputs = [ + pkgs.hwdata + pkgs.libbpf + pkgs.udev + ]; + + runtimeDeps = [ + pkgs.hwdata + pkgs.upower + pkgs.udev + pkgs.wayland + pkgs.libxkbcommon + ]; + + doCheck = false; + doInstallCheck = true; + + meta = { + description = "a GPU manager for laptop and workstation"; + homepage = "https://github.com/OpenGamingCollective/cardwire"; + license = lib.licenses.gpl3; + }; + + postPatch = '' + + # Fix from nixpkgs + + sed -i 's/"+nightly"/"-v"/g' ../cargo-vendor-dir/aya-build-*/src/lib.rs + sed -i 's/"-Z"/"-v"/g' ../cargo-vendor-dir/aya-build-*/src/lib.rs + sed -i 's/"build-std=core"/"-v"/g' ../cargo-vendor-dir/aya-build-*/src/lib.rs + + find . -name config.toml -path "*/.cargo/config.toml" -exec sed -i 's/build-std = \["core"\]//g' {} + + # Point to the correct hwdata location - postPatch = '' - substituteInPlace crates/cardwire-daemon/src/core/pci/pci_device.rs \ - --replace "/usr/share/hwdata/pci.ids" "${pkgs.hwdata}/share/hwdata/pci.ids" - - substituteInPlace crates/cardwire-daemon/src/core/gpu/discover.rs \ - --replace "/usr/share/libdrm/amdgpu.ids" "${pkgs.libdrm}/share/libdrm/amdgpu.ids" - ''; - # Copy dbus conf, systemd service and make shell completion - postInstall = '' - install -Dm444 ./assets/com.github.opengamingcollective.cardwire.conf \ - $out/share/dbus-1/system.d/com.github.opengamingcollective.cardwire.conf - - install -Dm444 ./assets/cardwire-gui.desktop \ - $out/share/applications/cardwire-gui.desktop - - install -Dm444 ./assets/com.github.opengamingcollective.cardwire.metainfo.xml \ - $out/share/metainfo/com.github.opengamingcollective.cardwire.metainfo.xml - - for icon in ./assets/icons/*.svg; do - install -Dm444 "$icon" "$out/share/icons/hicolor/scalable/apps/$(basename "$icon")" - done - - installShellCompletion --cmd cardwire \ - --fish <($out/bin/cardwire completion fish) - - - - wrapProgram $out/bin/cardwired \ - --prefix LD_LIBRARY_PATH : ${ - lib.makeLibraryPath [ - pkgs.udev - pkgs.upower - ] - } - wrapProgram $out/bin/cardwire-gui \ - --prefix LD_LIBRARY_PATH : ${ - lib.makeLibraryPath [ - pkgs.wayland - pkgs.libxkbcommon - pkgs.vulkan-loader - pkgs.libGL - ] - } - ''; - } + substituteInPlace crates/cardwire-daemon/src/core/pci/pci_device.rs \ + --replace "/usr/share/hwdata/pci.ids" "${pkgs.hwdata}/share/hwdata/pci.ids" + + substituteInPlace crates/cardwire-daemon/src/core/gpu/discover.rs \ + --replace "/usr/share/libdrm/amdgpu.ids" "${pkgs.libdrm}/share/libdrm/amdgpu.ids" + ''; + + env = { + RUSTFLAGS = "-C target-feature="; + RUSTC_BOOTSTRAP = 1; + }; + + postInstall = '' + install -Dm444 ./assets/com.github.opengamingcollective.cardwire.conf \ + $out/share/dbus-1/system.d/com.github.opengamingcollective.cardwire.conf + + install -Dm444 ./assets/cardwire-gui.desktop \ + $out/share/applications/cardwire-gui.desktop + + install -Dm444 ./assets/com.github.opengamingcollective.cardwire.metainfo.xml \ + $out/share/metainfo/com.github.opengamingcollective.cardwire.metainfo.xml + + for icon in ./assets/icons/*.svg; do + install -Dm444 "$icon" "$out/share/icons/hicolor/scalable/apps/$(basename "$icon")" + done + + installShellCompletion --cmd cardwire \ + --fish <($out/bin/cardwire completion fish) + + wrapProgram $out/bin/cardwired \ + --prefix LD_LIBRARY_PATH : ${ + lib.makeLibraryPath [ + pkgs.udev + pkgs.upower + ] + } + + wrapProgram $out/bin/cardwire-gui \ + --prefix LD_LIBRARY_PATH : ${ + lib.makeLibraryPath [ + pkgs.wayland + pkgs.libxkbcommon + pkgs.vulkan-loader + pkgs.libGL + ] + } + ''; +} diff --git a/packages/arch-linux/cardwire-PKGBUILD b/packages/arch-linux/cardwire-PKGBUILD index c869407a..943f0ffc 100644 --- a/packages/arch-linux/cardwire-PKGBUILD +++ b/packages/arch-linux/cardwire-PKGBUILD @@ -9,23 +9,22 @@ arch=('x86_64') url='https://github.com/OpenGamingCollective/cardwire' license=('GPL3') depends=('hwdata' 'dbus' 'systemd' 'upower') -makedepends=('libbpf' 'rust' 'clang') +makedepends=('cargo' 'bpf-linker' 'rustup') source=("https://github.com/OpenGamingCollective/cardwire/archive/refs/tags/v$pkgver.tar.gz") sha256sums=('37882d4d0d431c3ff48e24bd47cea03b7847080623254d8bdb4af9846134d700') prepare(){ cd "${pkgbase}-${pkgver}" - export RUSTUP_TOOLCHAIN=stable + rustup toolchain install nightly --component rust-src cargo fetch --locked } build(){ cd "${pkgbase}-${pkgver}" - export RUSTUP_TOOLCHAIN=stable export CARGO_TARGET_DIR=target export RUSTFLAGS="$RUSTFLAGS --remap-path-prefix=$srcdir=/usr/src" - cargo build --frozen --release --workspace --bins + cargo build --frozen --release --bins } package(){ diff --git a/packages/arch-linux/cardwire-git-PKGBUILD b/packages/arch-linux/cardwire-git-PKGBUILD index 6c91bbd1..26a1462a 100644 --- a/packages/arch-linux/cardwire-git-PKGBUILD +++ b/packages/arch-linux/cardwire-git-PKGBUILD @@ -9,7 +9,7 @@ arch=('x86_64') url='https://github.com/OpenGamingCollective/cardwire' license=('GPL-3.0-only') depends=('glibc' 'gcc-libs' 'dbus' 'hwdata') -makedepends=('git' 'cargo' 'clang' 'libbpf') +makedepends=('git' 'cargo' 'bpf-linker' 'rustup') provides=("$_pkgname") conflicts=("$_pkgname") source=("$_pkgname::git+$url.git") @@ -22,14 +22,14 @@ pkgver() { prepare() { cd "$srcdir/$_pkgname" + rustup toolchain install nightly --component rust-src cargo fetch --locked } build() { cd "$srcdir/$_pkgname" export CARGO_TARGET_DIR=target - export RUSTUP_TOOLCHAIN=stable - cargo build --frozen --release --workspace --bins + cargo build --frozen --release --bins } package() {