diff --git a/Cargo.lock b/Cargo.lock index d653dbb..dd3ae98 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,12 +2,30 @@ # It is not intended for manual editing. version = 4 +[[package]] +name = "aho-corasick" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" +dependencies = [ + "memchr", +] + [[package]] name = "allocator-api2" version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + [[package]] name = "anyhow" version = "1.0.102" @@ -20,6 +38,12 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" +[[package]] +name = "autocfg" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" + [[package]] name = "aya" version = "0.13.1" @@ -114,6 +138,39 @@ dependencies = [ "num_enum", ] +[[package]] +name = "aya-log-ebpf" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a10bbadd0829895a91eb1cd2bb02d7af145704087f03812bed60cb9fe65dbb3" +dependencies = [ + "aya-ebpf", + "aya-log-common", + "aya-log-ebpf-macros", +] + +[[package]] +name = "aya-log-ebpf-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6d8251a75f56077db51892041aa6b77c70ef2723845d7a210979700b2f01bc4" +dependencies = [ + "aya-log-common", + "aya-log-parser", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "aya-log-parser" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14b102eb5c88c9aa0b49102d3fbcee08ecb0dfa81014f39b373311de7a7032cb" +dependencies = [ + "aya-log-common", +] + [[package]] name = "aya-obj" version = "0.2.1" @@ -134,6 +191,12 @@ version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" +[[package]] +name = "bumpalo" +version = "3.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" + [[package]] name = "bytes" version = "1.11.1" @@ -173,12 +236,70 @@ dependencies = [ "thiserror 2.0.18", ] +[[package]] +name = "cassowary" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" + +[[package]] +name = "castaway" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dec551ab6e7578819132c713a93c022a05d60159dc86e7a7050223577484c55a" +dependencies = [ + "rustversion", +] + +[[package]] +name = "cc" +version = "1.2.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1e928d4b69e3077709075a938a05ffbedfa53a84c8f766efbf8220bb1ff60e1" +dependencies = [ + "find-msvc-tools", + "shlex", +] + [[package]] name = "cfg-if" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" +[[package]] +name = "chrono" +version = "0.4.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" +dependencies = [ + "iana-time-zone", + "num-traits", + "serde", + "windows-link", +] + +[[package]] +name = "common-lib" +version = "0.1.0" +dependencies = [ + "aya", +] + +[[package]] +name = "compact_str" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b79c4069c6cad78e2e0cdfcbd26275770669fb39fd308a752dc110e83b9af32" +dependencies = [ + "castaway", + "cfg-if", + "itoa", + "rustversion", + "ryu", + "static_assertions", +] + [[package]] name = "core-error" version = "0.0.0" @@ -188,6 +309,12 @@ dependencies = [ "version_check", ] +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + [[package]] name = "crc32fast" version = "1.5.0" @@ -198,28 +325,70 @@ dependencies = [ ] [[package]] -name = "edr" -version = "0.1.0" +name = "crossterm" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6" dependencies = [ - "anyhow", - "aya", - "aya-log", - "edr-common", - "tokio", + "bitflags", + "crossterm_winapi", + "mio", + "parking_lot", + "rustix", + "signal-hook", + "signal-hook-mio", + "winapi", ] [[package]] -name = "edr-common" -version = "0.1.0" +name = "crossterm_winapi" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" +dependencies = [ + "winapi", +] [[package]] -name = "edr-ebpf" -version = "0.1.0" +name = "darling" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" dependencies = [ - "aya-ebpf", - "edr-common", + "darling_core", + "darling_macro", ] +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn", +] + +[[package]] +name = "darling_macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +dependencies = [ + "darling_core", + "quote", + "syn", +] + +[[package]] +name = "either" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" + [[package]] name = "equivalent" version = "1.0.2" @@ -233,15 +402,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys", + "windows-sys 0.61.2", ] +[[package]] +name = "find-msvc-tools" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" + [[package]] name = "foldhash" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" +[[package]] +name = "getrandom" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasip2", + "wasip3", +] + [[package]] name = "hashbrown" version = "0.15.5" @@ -259,6 +447,48 @@ version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "iana-time-zone" +version = "0.1.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "log", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "id-arena" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + [[package]] name = "indexmap" version = "2.13.0" @@ -267,6 +497,39 @@ checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" dependencies = [ "equivalent", "hashbrown 0.16.1", + "serde", + "serde_core", +] + +[[package]] +name = "indoc" +version = "2.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706" +dependencies = [ + "rustversion", +] + +[[package]] +name = "instability" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5eb2d60ef19920a3a9193c3e371f726ec1dafc045dac788d0fb3704272458971" +dependencies = [ + "darling", + "indoc", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", ] [[package]] @@ -275,12 +538,43 @@ version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" +[[package]] +name = "js-sys" +version = "0.3.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc4c90f45aa2e6eacbe8645f77fdea542ac97a494bcd117a67df9ff4d611f995" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "kernel-land" +version = "0.1.0" +dependencies = [ + "aya-ebpf", + "aya-log-ebpf", + "common-lib", +] + +[[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.183" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d" +[[package]] +name = "linux-raw-sys" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" + [[package]] name = "lock_api" version = "0.4.14" @@ -296,6 +590,15 @@ version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" +[[package]] +name = "lru" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" +dependencies = [ + "hashbrown 0.15.5", +] + [[package]] name = "memchr" version = "2.8.0" @@ -304,13 +607,23 @@ checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" [[package]] name = "mio" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" +checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" dependencies = [ "libc", + "log", "wasi", - "windows-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", ] [[package]] @@ -375,12 +688,28 @@ dependencies = [ "windows-link", ] +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + [[package]] name = "pin-project-lite" version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" +[[package]] +name = "prettyplease" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +dependencies = [ + "proc-macro2", + "syn", +] + [[package]] name = "proc-macro2" version = "1.0.106" @@ -411,6 +740,33 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + +[[package]] +name = "ratatui" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eabd94c2f37801c20583fc49dd5cd6b0ba68c716787c2dd6ed18571e1e63117b" +dependencies = [ + "bitflags", + "cassowary", + "compact_str", + "crossterm", + "indoc", + "instability", + "itertools", + "lru", + "paste", + "strum", + "unicode-segmentation", + "unicode-truncate", + "unicode-width 0.2.0", +] + [[package]] name = "redox_syscall" version = "0.5.18" @@ -420,12 +776,60 @@ dependencies = [ "bitflags", ] +[[package]] +name = "regex" +version = "1.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" + +[[package]] +name = "rustix" +version = "0.38.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.59.0", +] + [[package]] name = "rustversion" version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" +[[package]] +name = "ryu" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" + [[package]] name = "scopeguard" version = "1.2.0" @@ -485,6 +889,46 @@ dependencies = [ "zmij", ] +[[package]] +name = "serde_norway" +version = "0.9.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e408f29489b5fd500fab51ff1484fc859bb655f32c671f307dcd733b72e8168c" +dependencies = [ + "indexmap", + "itoa", + "ryu", + "serde", + "unsafe-libyaml-norway", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signal-hook" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-mio" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b75a19a7a740b25bc7944bdee6172368f988763b744e3d4dfe753f6b4ece40cc" +dependencies = [ + "libc", + "mio", + "signal-hook", +] + [[package]] name = "signal-hook-registry" version = "1.4.8" @@ -508,7 +952,41 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" dependencies = [ "libc", - "windows-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn", ] [[package]] @@ -576,7 +1054,7 @@ dependencies = [ "signal-hook-registry", "socket2", "tokio-macros", - "windows-sys", + "windows-sys 0.61.2", ] [[package]] @@ -596,6 +1074,77 @@ version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" +[[package]] +name = "unicode-segmentation" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c" + +[[package]] +name = "unicode-truncate" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3644627a5af5fa321c95b9b235a72fd24cd29c648c2c379431e6628655627bf" +dependencies = [ + "itertools", + "unicode-segmentation", + "unicode-width 0.1.14", +] + +[[package]] +name = "unicode-width" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + +[[package]] +name = "unicode-width" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "unsafe-libyaml-norway" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39abd59bf32521c7f2301b52d05a6a2c975b6003521cbd0c6dc1582f0a22104" + +[[package]] +name = "user-land" +version = "0.1.0" +dependencies = [ + "aya", + "aya-log", + "chrono", + "common-lib", + "crossterm", + "libc", + "ratatui", + "regex", + "serde", + "serde_json", + "serde_norway", + "tokio", + "uuid", +] + +[[package]] +name = "uuid" +version = "1.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ac8b6f42ead25368cf5b098aeb3dc8a1a2c05a3eee8a9a1a68c640edbfc79d9" +dependencies = [ + "getrandom", + "js-sys", + "wasm-bindgen", +] + [[package]] name = "version_check" version = "0.9.5" @@ -608,12 +1157,193 @@ version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" +[[package]] +name = "wasip2" +version = "1.0.2+wasi-0.2.9" +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" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.115" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6523d69017b7633e396a89c5efab138161ed5aafcbc8d3e5c5a42ae38f50495a" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.115" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e3a6c758eb2f701ed3d052ff5737f5bfe6614326ea7f3bbac7156192dc32e67" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.115" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "921de2737904886b52bcbb237301552d05969a6f9c40d261eb0533c8b055fedf" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.115" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a93e946af942b58934c604527337bad9ae33ba1d5c6900bbb41c2c07c2364a93" +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", + "hashbrown 0.15.5", + "indexmap", + "semver", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-core" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link", + "windows-result", + "windows-strings", +] + +[[package]] +name = "windows-implement" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-interface" +version = "0.59.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "windows-link" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-strings" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets", +] + [[package]] name = "windows-sys" version = "0.61.2" @@ -623,6 +1353,158 @@ dependencies = [ "windows-link", ] +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[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", + "wasm-metadata", + "wit-bindgen-core", + "wit-component", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn", + "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", + "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", +] + [[package]] name = "zmij" version = "1.0.21" diff --git a/Cargo.toml b/Cargo.toml index e198dfa..65890ff 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,30 @@ [workspace] -resolver = "2" members = [ - "edr", - "edr-common", - "edr-ebpf", + "user-land", + "kernel-land", + "common-lib", ] +resolver = "2" + +[workspace.dependencies] +# User-land +aya = { version = "0.13" } +aya-log = { version = "0.2" } +libc = { version = "0.2" } +tokio = { version = "1", features = ["full"] } +ratatui = { version = "0.29" } +crossterm = { version = "0.28" } +serde = { version = "1", features = ["derive"] } +serde_norway = { version = "0.9" } +serde_json = { version = "1" } +chrono = { version = "0.4", default-features = false, features = ["clock", "serde"] } +uuid = { version = "1", features = ["v4"] } +regex = { version = "1" } + +# Kernel-land (eBPF) +aya-ebpf = { version = "0.1" } +aya-log-ebpf = { version = "0.1" } + +# Shared +common-lib = { path = "common-lib" } + diff --git a/README.md b/README.md deleted file mode 100644 index 86bf5ec..0000000 --- a/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# edr-research-rust - -Research about how to exploit ebpf to create an edr with the Aya library in Rust. - -Repport here : `report/repport.pdf` diff --git a/common-lib/Cargo.toml b/common-lib/Cargo.toml new file mode 100644 index 0000000..e7ff6f7 --- /dev/null +++ b/common-lib/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "common-lib" +version = "0.1.0" +edition = "2021" + +[features] +default = [] +user = ["aya"] + +[dependencies] +aya = { workspace = true, optional = true } diff --git a/common-lib/src/lib.rs b/common-lib/src/lib.rs new file mode 100644 index 0000000..e5b8527 --- /dev/null +++ b/common-lib/src/lib.rs @@ -0,0 +1,66 @@ +// Pas de std en kernel-land (eBPF) ; std disponible en user-land via la feature "user". +#![cfg_attr(not(feature = "user"), no_std)] + +pub const FILENAME_MAX_LEN: usize = 256; +pub const ARGS_MAX_LEN: usize = 1024; + +/// Événement brut capturé par le sensor execve en eBPF. +/// Partagé kernel-land ↔ user-land via le ring buffer. +#[repr(C)] +#[derive(Clone, Copy)] +pub struct EventExecve +{ + pub pid: u32, + pub ppid: u32, + pub filename: [u8; FILENAME_MAX_LEN], + pub args: [u8; ARGS_MAX_LEN], +} + +#[cfg(feature = "user")] +unsafe impl aya::Pod for EventExecve {} + +// ─── Types user-land uniquement ────────────────────────────────────────────── + +/// Représentation normalisée d'un événement, indépendante du moteur source. +/// +/// Tous les moteurs de détection produisent un `NormalizedEvent` avant de pousser +/// dans le channel. Le moteur Sigma évalue les règles sur cette structure via +/// `fields`, ce qui rend le matching générique et extensible sans couplage fort. +/// +/// Conventions de nommage des champs (`fields`) : +/// - `"Image"` — chemin complet de l'exécutable +/// - `"CommandLine"` — ligne de commande complète +/// - `"ProcessId"` — PID du processus +/// - `"ParentProcessId"` — PPID +/// - `"DestinationIp"` — (futur moteur réseau) +/// - `"DestinationPort"` — (futur moteur réseau) +#[cfg(feature = "user")] +pub mod event +{ + use std::collections::HashMap; + + /// Identifie le moteur de détection à l'origine de l'événement. + #[derive(Debug, Clone, PartialEq, Eq)] + pub enum EngineSource + { + Execve, + } + + #[derive(Debug, Clone)] + pub struct NormalizedEvent + { + pub source: EngineSource, + /// Valeur de `logsource.category` Sigma : `"process_creation"`, `"network_connection"`, … + pub category: String, + pub fields: HashMap, + } + + impl NormalizedEvent + { + /// Accès à un champ par son nom canonique. + pub fn get(&self, field: &str) -> Option<&str> + { + self.fields.get(field).map(|s| s.as_str()) + } + } +} diff --git a/edr-common/.gitignore b/edr-common/.gitignore deleted file mode 100644 index ea8c4bf..0000000 --- a/edr-common/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/target diff --git a/edr-common/Cargo.toml b/edr-common/Cargo.toml deleted file mode 100644 index ef8ada9..0000000 --- a/edr-common/Cargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "edr-common" -version = "0.1.0" -edition = "2024" - -[dependencies] diff --git a/edr-common/src/lib.rs b/edr-common/src/lib.rs deleted file mode 100644 index a6af540..0000000 --- a/edr-common/src/lib.rs +++ /dev/null @@ -1,9 +0,0 @@ -#![no_std] - -#[repr(C)] -#[derive(Clone, Copy)] -pub struct ExecveEvent { - pub pid: u32, - pub filename: [u8; 256], - pub args: [u8; 256], -} diff --git a/edr-ebpf/.gitignore b/edr-ebpf/.gitignore deleted file mode 100644 index ea8c4bf..0000000 --- a/edr-ebpf/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/target diff --git a/edr-ebpf/Cargo.toml b/edr-ebpf/Cargo.toml deleted file mode 100644 index 8971b2d..0000000 --- a/edr-ebpf/Cargo.toml +++ /dev/null @@ -1,11 +0,0 @@ -[package] -name = "edr-ebpf" -version = "0.1.0" -edition = "2024" - -[dependencies] -aya-ebpf = "0.1" -edr-common = { path = "../edr-common" } - -[lib] -crate-type = ["cdylib"] diff --git a/edr-ebpf/src/lib.rs b/edr-ebpf/src/lib.rs deleted file mode 100644 index 3808faa..0000000 --- a/edr-ebpf/src/lib.rs +++ /dev/null @@ -1,67 +0,0 @@ -#![no_std] -#![no_main] -#![feature(asm_experimental_arch)] - -use aya_ebpf::{ - EbpfContext, - macros::tracepoint, - macros::map, - maps::RingBuf, - programs::TracePointContext, - helpers::bpf_probe_read_user_str_bytes, -}; -use edr_common::ExecveEvent; - -#[map] -static EVENTS: RingBuf = RingBuf::with_byte_size(256*1024, 0); - -#[tracepoint] -pub fn edr_execve(ctx: TracePointContext) -> u32 -{ - match try_edr_execve(&ctx) - { - Ok(_) => 0, - Err(_) => 1, - } -} - -fn try_edr_execve(ctx: &TracePointContext) -> Result<(), i64> -{ - let mut entry = EVENTS.reserve::(0).ok_or(1i64)?; - let event_ptr = entry.as_mut_ptr(); - - let pid = ctx.pid(); - let filename_ptr = unsafe - { - ctx.read_at::(16) - }; - let filename_ptr = match filename_ptr { - Ok(ptr) => ptr as *const u8, - Err(e) => { - entry.discard(0); - return Err(e); - } - }; - - unsafe - { - (*event_ptr).pid = pid; - if bpf_probe_read_user_str_bytes(filename_ptr, &mut (*event_ptr).filename).is_err() - { - entry.discard(0); - return Err(1); - } - } - - entry.submit(0); - Ok(()) -} - -#[panic_handler] -fn panic(_info: &core::panic::PanicInfo) -> ! -{ - unsafe - { - core::arch::asm!("exit", options(noreturn)) - } -} diff --git a/edr/.gitignore b/edr/.gitignore deleted file mode 100644 index ea8c4bf..0000000 --- a/edr/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/target diff --git a/edr/Cargo.toml b/edr/Cargo.toml deleted file mode 100644 index 0dc271b..0000000 --- a/edr/Cargo.toml +++ /dev/null @@ -1,11 +0,0 @@ -[package] -name = "edr" -version = "0.1.0" -edition = "2024" - -[dependencies] -aya = { version = "0.13", features = ["async_tokio"] } -aya-log = "0.2" -tokio = { version = "1", features = ["full"] } -edr-common = { path = "../edr-common" } -anyhow = "1.0" diff --git a/edr/src/main.rs b/edr/src/main.rs deleted file mode 100644 index 0a7f0c6..0000000 --- a/edr/src/main.rs +++ /dev/null @@ -1,43 +0,0 @@ -use aya::{ - Ebpf, - programs::TracePoint, - maps::RingBuf, -}; -use tokio::{ - signal, - io::unix::AsyncFd, -}; -use edr_common::ExecveEvent; - -#[tokio::main] -async fn main() -> Result<(), anyhow::Error> -{ - let mut bpf = Ebpf::load(include_bytes!("../../target/bpfel-unknown-none/debug/libedr_ebpf.so"))?; - - let program: &mut TracePoint = bpf.program_mut("edr_execve").unwrap().try_into()?; - program.load()?; - program.attach("syscalls", "sys_enter_execve")?; - - let ring = RingBuf::try_from(bpf.map_mut("EVENTS").unwrap())?; - let mut async_fd = AsyncFd::new(ring)?; - - loop { - tokio::select! { - _ = signal::ctrl_c() => break, - result = async_fd.readable_mut() => { - let mut guard = result?; - let rb = guard.get_inner_mut(); - while let Some(item) = rb.next() { - let event = unsafe { &*(item.as_ptr() as *const ExecveEvent) }; - let filename = std::str::from_utf8(&event.filename) - .unwrap_or("?") - .trim_end_matches('\0'); - println!("execve: pid={} filename={}", event.pid, filename); - } - guard.clear_ready(); - } - } - } - - Ok(()) -} diff --git a/edr-ebpf/.cargo/config.toml b/kernel-land/.cargo/config.toml similarity index 100% rename from edr-ebpf/.cargo/config.toml rename to kernel-land/.cargo/config.toml diff --git a/kernel-land/Cargo.toml b/kernel-land/Cargo.toml new file mode 100644 index 0000000..dc031ef --- /dev/null +++ b/kernel-land/Cargo.toml @@ -0,0 +1,16 @@ +[package] +name = "kernel-land" +version = "0.1.0" +edition = "2021" + +[[bin]] +name = "kernel-land" +path = "src/main.rs" + +[dependencies] +aya-ebpf = { workspace = true } +aya-log-ebpf = { workspace = true } +common-lib = { workspace = true } + +[profile.release] +debug = 2 diff --git a/kernel-land/src/lib.rs b/kernel-land/src/lib.rs new file mode 100644 index 0000000..246eb8c --- /dev/null +++ b/kernel-land/src/lib.rs @@ -0,0 +1,6 @@ +#![no_std] +#![no_main] + +pub mod maps; +pub mod sensors; +pub mod vmlinux; diff --git a/kernel-land/src/main.rs b/kernel-land/src/main.rs new file mode 100644 index 0000000..ab9e04c --- /dev/null +++ b/kernel-land/src/main.rs @@ -0,0 +1,14 @@ +#![no_std] +#![no_main] + +mod maps; +mod sensors; +mod vmlinux; + +/// Requis par le compilateur Rust pour les cibles no_std. +/// En eBPF, une panique est unreachable par construction (le vérificateur kernel le garantit). +#[panic_handler] +fn panic(_info: &core::panic::PanicInfo) -> ! +{ + unsafe { core::hint::unreachable_unchecked() } +} diff --git a/kernel-land/src/maps.rs b/kernel-land/src/maps.rs new file mode 100644 index 0000000..b2b76df --- /dev/null +++ b/kernel-land/src/maps.rs @@ -0,0 +1,7 @@ +use aya_ebpf::{macros::map, maps::RingBuf}; + +/// Ring buffer partagé entre tous les sensors. +/// Taille : 256 KB (doit être une puissance de 2). +/// Le user-land consomme les événements depuis ce buffer. +#[map] +pub static EXECVE_EVENTS: RingBuf = RingBuf::with_byte_size(256 * 1024, 0); diff --git a/kernel-land/src/sensors/execve/mod.rs b/kernel-land/src/sensors/execve/mod.rs new file mode 100644 index 0000000..125749e --- /dev/null +++ b/kernel-land/src/sensors/execve/mod.rs @@ -0,0 +1,62 @@ +use aya_ebpf::{ + helpers::{bpf_get_current_pid_tgid, bpf_probe_read_kernel_str_bytes}, + macros::btf_tracepoint, + programs::BtfTracePointContext, +}; +use common_lib::EventExecve; + +use crate::maps::EXECVE_EVENTS; +use crate::vmlinux::linux_binprm; + +/// Hook sur sched_process_exec : se déclenche uniquement après une exécution réussie. +/// +/// Signature kernel : sched_process_exec(task_struct *p, pid_t old_pid, linux_binprm *bprm) +/// - arg(0) : task_struct du nouveau process (ignoré — on utilise le helper BPF) +/// - arg(1) : ancien PID (ignoré) +/// - arg(2) : linux_binprm contenant filename et métadonnées d'exécution +#[btf_tracepoint(function = "sched_process_exec")] +pub fn enter_execve(ctx: BtfTracePointContext) -> i32 +{ + match unsafe { try_enter_execve(&ctx) } + { + Ok(()) => 0, + Err(_) => 1, + } +} + +unsafe fn try_enter_execve(ctx: &BtfTracePointContext) -> Result<(), i64> +{ + let bprm: *const linux_binprm = ctx.arg(2); + + // bpf_get_current_pid_tgid() retourne (tgid << 32 | pid). + // Le thread-group ID (tgid) est ce que l'espace utilisateur appelle "PID". + let pid = (bpf_get_current_pid_tgid() >> 32) as u32; + + // Réservation d'un slot dans le ring buffer. + // Si le buffer est plein, on abandonne l'événement plutôt que de bloquer. + let Some(mut entry) = EXECVE_EVENTS.reserve::(0) + else + { + return Err(1); + }; + + let event = entry.as_mut_ptr(); + (*event).pid = pid; + (*event).ppid = 0; // Rempli en espace utilisateur via /proc//status + + // Filename depuis linux_binprm — pointeur kernel validé par le kernel. + // L'offset de `filename` provient de la génération aya-tool depuis /sys/kernel/btf/vmlinux. + // On doit explicit submit ou discard avant tout exit — le vérificateur eBPF le contraint. + if bpf_probe_read_kernel_str_bytes( + (*bprm).filename as *const u8, + &mut (*event).filename, + ) + .is_err() + { + entry.discard(0); + return Err(1); + } + + entry.submit(0); + Ok(()) +} diff --git a/kernel-land/src/sensors/mod.rs b/kernel-land/src/sensors/mod.rs new file mode 100644 index 0000000..e42628f --- /dev/null +++ b/kernel-land/src/sensors/mod.rs @@ -0,0 +1 @@ +pub mod execve; diff --git a/kernel-land/src/vmlinux.rs b/kernel-land/src/vmlinux.rs new file mode 100644 index 0000000..cf87b5f --- /dev/null +++ b/kernel-land/src/vmlinux.rs @@ -0,0 +1,65513 @@ +/* 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_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 = 268435455; +} +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 __MAX_BPF_ATTACH_TYPE: Type = 58; +} +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 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 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 __MAX_BPF_MAP_TYPE: Type = 34; +} +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 CONST_PTR_TO_DYNPTR: Type = 21; + pub const __BPF_REG_TYPE_MAX: Type = 22; + 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 = 268435455; +} +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 = 268435455; +} +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 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 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 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 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 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_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 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 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 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_t { + 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 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 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 kunit_speed { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const KUNIT_SPEED_UNSET: Type = 0; + pub const KUNIT_SPEED_VERY_SLOW: Type = 1; + pub const KUNIT_SPEED_SLOW: Type = 2; + pub const KUNIT_SPEED_NORMAL: Type = 3; + pub const KUNIT_SPEED_MAX: Type = 3; +} +pub mod kunit_status { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const KUNIT_SUCCESS: Type = 0; + pub const KUNIT_FAILURE: Type = 1; + pub const KUNIT_SKIPPED: 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 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 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 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_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 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_OPA_VNIC: Type = 0; + pub const RDMA_NETDEV_IPOIB: Type = 1; +} +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 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 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 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 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 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_LAPTOP_TIMER: Type = 4; + pub const WB_REASON_FS_FREE_SPACE: Type = 5; + pub const WB_REASON_FORKER_THREAD: Type = 6; + pub const WB_REASON_FOREIGN_FLUSH: Type = 7; + pub const WB_REASON_MAX: Type = 8; +} +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_NUMA: Type = 4; + pub const WQ_AFFN_SYSTEM: Type = 5; + pub const WQ_AFFN_NR_TYPES: Type = 6; +} +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 __u128 = u128; +pub type u128_ = __u128; +pub type freelist_full_t = u128_; +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 __kernel_long_t = ::aya_ebpf::cty::c_long; +pub type __kernel_clock_t = __kernel_long_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 __u64 = ::aya_ebpf::cty::c_ulonglong; +pub type Elf64_Addr = __u64; +pub type Elf64_Off = __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 sector_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 __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 vm_flags_t = ::aya_ebpf::cty::c_ulong; +pub type __s16 = ::aya_ebpf::cty::c_short; +pub type s16 = __s16; +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; +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 __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 pipe_index_t = ::aya_ebpf::cty::c_uint; +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_; +#[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(Debug, Copy, Clone)] +pub struct atomic_t { + pub counter: ::aya_ebpf::cty::c_int, +} +#[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 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 ax25_dama_info { + pub slave: ::aya_ebpf::cty::c_char, + pub slave_timer: timer_list, + pub slave_timeout: ::aya_ebpf::cty::c_ushort, +} +#[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, +} +pub type raw_spinlock_t = raw_spinlock; +#[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 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_t { + pub raw_lock: arch_rwlock_t, +} +#[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 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)] +#[repr(align(16))] +#[derive(Copy, Clone)] +pub union freelist_aba_t { + pub __bindgen_anon_1: freelist_aba_t__bindgen_ty_1, + pub full: freelist_full_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct freelist_aba_t__bindgen_ty_1 { + pub freelist: *mut ::aya_ebpf::cty::c_void, + pub counter: ::aya_ebpf::cty::c_ulong, +} +#[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 kprojid_t { + pub val: projid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kuid_t { + pub val: uid_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 local_lock_t {} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct local_trylock_t { + pub acquired: u8_, +} +#[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 raw_spinlock { + pub raw_lock: arch_spinlock_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct list_head { + pub next: *mut list_head, + pub prev: *mut list_head, +} +#[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 wait_list: list_head, +} +#[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 wait_list: list_head, +} +#[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 seqcount_spinlock { + pub seqcount: seqcount_t, +} +pub type seqcount_spinlock_t = seqcount_spinlock; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct seqlock_t { + pub seqcount: seqcount_spinlock_t, + pub lock: spinlock_t, +} +#[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 slock: spinlock_t, + pub owned: ::aya_ebpf::cty::c_int, + pub wq: wait_queue_head_t, +} +#[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 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 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 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(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 refcount_struct { + pub refs: atomic_t, +} +pub type refcount_t = refcount_struct; +#[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 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 gso_skb: sk_buff_head, + pub q: qdisc_skb_head, + pub bstats: gnet_stats_basic_sync, + pub qstats: gnet_stats_queue, + pub owner: ::aya_ebpf::cty::c_int, + pub state: ::aya_ebpf::cty::c_ulong, + pub state2: ::aya_ebpf::cty::c_ulong, + pub next_sched: *mut Qdisc, + pub skb_bad_txq: sk_buff_head, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 56usize]>, + pub busylock: spinlock_t, + pub seqlock: spinlock_t, + pub rcu: callback_head, + pub dev_tracker: netdevice_tracker, + pub root_lock_key: lock_class_key, + pub _bitfield_align_3: [u8; 0], + pub _bitfield_3: __BindgenBitfieldUnit<[u8; 40usize]>, + 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 + } +} +#[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)] +#[derive(Debug, Copy, Clone)] +pub struct kref { + pub refcount: refcount_t, +} +#[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 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 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 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(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 { + pub __rb_parent_color: ::aya_ebpf::cty::c_ulong, + pub rb_right: *mut rb_node, + pub rb_left: *mut rb_node, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timerqueue_node { + pub node: rb_node, + pub expires: ktime_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct hrtimer { + pub node: timerqueue_node, + pub _softexpires: ktime_t, + pub function: + ::core::option::Option hrtimer_restart::Type>, + pub base: *mut hrtimer_clock_base, + pub state: u8_, + pub is_rel: u8_, + pub is_soft: u8_, + pub is_hard: u8_, +} +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 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 _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 work_in_progress(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_2.get(3usize, 1u8) as u8) } + } + #[inline] + pub fn set_work_in_progress(&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 work_in_progress_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_work_in_progress_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 smart_suspend(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_2.get(4usize, 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(4usize, 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), + 4usize, + 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), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn must_resume(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_2.get(5usize, 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(5usize, 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), + 5usize, + 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), + 5usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn may_skip_resume(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_2.get(6usize, 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(6usize, 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), + 6usize, + 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), + 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_, + work_in_progress: bool_, + smart_suspend: bool_, + must_resume: bool_, + may_skip_resume: 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 work_in_progress: u8 = unsafe { ::core::mem::transmute(work_in_progress) }; + work_in_progress as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let smart_suspend: u8 = unsafe { ::core::mem::transmute(smart_suspend) }; + smart_suspend as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let must_resume: u8 = unsafe { ::core::mem::transmute(must_resume) }; + must_resume as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let may_skip_resume: u8 = unsafe { ::core::mem::transmute(may_skip_resume) }; + may_skip_resume 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 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 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 __bindgen_padding_0: [u8; 3usize], +} +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)] +#[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 lm(&self) -> u64_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(57usize, 1u8) as u64) } + } + #[inline] + pub fn set_lm(&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 lm_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_lm_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_, + lm: 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 lm: u64 = unsafe { ::core::mem::transmute(lm) }; + lm 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, +} +#[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 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 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, +} +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 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: u8_, +} +#[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(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, +} +#[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, + >, +} +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 { + pub rb_node: *mut rb_node, +} +#[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_private_list: list_head, + pub i_mmap_rwsem: rw_semaphore, + pub i_private_data: *mut ::aya_ebpf::cty::c_void, +} +#[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, + >, +} +#[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)] +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(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(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 sg_table { + pub sgl: *mut scatterlist, + pub nents: ::aya_ebpf::cty::c_uint, + pub orig_nents: ::aya_ebpf::cty::c_uint, +} +#[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)] +#[derive(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 __bindgen_anon_1: kiocb__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union kiocb__bindgen_ty_1 { + pub ki_waitq: *mut wait_page_queue, + pub dio_complete: + ::core::option::Option isize>, +} +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 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 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, + ) -> __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 + } +} +#[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_dst_pending_confirm: u32_, + pub sk_pacing_status: u32_, + pub sk_frag: page_frag, + pub sk_timer: timer_list, + pub sk_pacing_rate: ::aya_ebpf::cty::c_ulong, + pub sk_zckey: atomic_t, + pub sk_tskey: atomic_t, + pub __cacheline_group_end__sock_write_tx: __IncompleteArrayField<__u8>, + pub __cacheline_group_begin__sock_read_tx: __IncompleteArrayField<__u8>, + 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: ::aya_ebpf::cty::c_ulong, + 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_3: sock__bindgen_ty_4, + 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 sk_rcu: callback_head, + 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_txrehash: u8_, + pub sk_scm_recv_flags: u8_, + pub __bindgen_anon_1: sock__bindgen_ty_4__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sock__bindgen_ty_4__bindgen_ty_1 { + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, +} +impl sock__bindgen_ty_4__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 + } +} +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 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 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, +} +#[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 llist_head { + pub first: *mut llist_node, +} +#[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 cpumask { + pub bits: [::aya_ebpf::cty::c_ulong; 128usize], +} +pub type cpumask_t = cpumask; +#[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 class { + pub name: *const ::aya_ebpf::cty::c_char, + pub class_groups: *mut *const attribute_group, + pub dev_groups: *mut *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< + unsafe extern "C" fn(arg1: *const device) -> *const ::aya_ebpf::cty::c_void, + >, + 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, 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 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)] +pub struct sockaddr { + pub sa_family: sa_family_t, + pub __bindgen_anon_1: sockaddr__bindgen_ty_1, +} +#[repr(C)] +pub struct sockaddr__bindgen_ty_1 { + pub sa_data_min: __BindgenUnionField<[::aya_ebpf::cty::c_char; 14usize]>, + pub __bindgen_anon_1: __BindgenUnionField, + pub bindgen_union_field: [u8; 14usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct sockaddr__bindgen_ty_1__bindgen_ty_1 { + pub __empty_sa_data: sockaddr__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, + pub sa_data: __IncompleteArrayField<::aya_ebpf::cty::c_char>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sockaddr__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {} +#[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(Debug, Copy, Clone)] +pub struct attribute_group { + pub name: *const ::aya_ebpf::cty::c_char, + 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_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 attrs: *mut *mut attribute, + pub bin_attrs: *const *const bin_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 {} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct lsm_prop_apparmor {} +#[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: ::aya_ebpf::cty::c_ulong, + 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 path { + pub mnt: *mut vfsmount, + pub dentry: *mut dentry, +} +#[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 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 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(Debug, Copy, Clone)] +pub struct hlist_head { + pub first: *mut hlist_node, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ax25_dev { + pub list: list_head, + pub dev: *mut net_device, + pub dev_tracker: netdevice_tracker, + pub forward: *mut net_device, + pub sysheader: *mut ctl_table_header, + pub values: [::aya_ebpf::cty::c_int; 14usize], + pub dama: ax25_dama_info, + pub refcount: refcount_t, + pub device_up: bool_, + pub rcu: callback_head, +} +#[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 laptop_mode_wb_timer: timer_list, + 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(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(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 inode { + pub i_mode: umode_t, + pub i_opflags: ::aya_ebpf::cty::c_ushort, + pub i_uid: kuid_t, + pub i_gid: kgid_t, + pub i_flags: ::aya_ebpf::cty::c_uint, + pub i_acl: *mut posix_acl, + pub i_default_acl: *mut posix_acl, + 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: ::aya_ebpf::cty::c_ulong, + 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_t::Type, + 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 blk_independent_access_range { + pub kobj: kobject, + pub sector: sector_t, + pub nr_sectors: sector_t, +} +#[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 blkcg_policy_data { + pub blkcg: *mut blkcg, + pub plid: ::aya_ebpf::cty::c_int, +} +#[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 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_remaining: atomic_t, + 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_io_vec: *mut bio_vec, + 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, +} +pub type mempool_t = mempool; +#[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)] +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 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, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct blk_trace { + 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: u16_, + 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, +} +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 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: report_zones_cb, + arg5: *mut ::aya_ebpf::cty::c_void, + ) -> ::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 blocking_notifier_head { + pub rwsem: rw_semaphore, + pub head: *mut notifier_block, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_map { + pub sha: [u8_; 32usize], + 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, +} +#[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 vma_list: list_head, + pub lock: mutex, +} +#[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, +} +#[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_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_, +} +#[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 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, + ) -> __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 + } +} +#[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 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, + ) -> __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 + } +} +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 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_, +} +#[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(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 off: 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, +} +#[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, Copy, Clone)] +pub struct bpf_mem_alloc { + pub caches: *mut bpf_mem_caches, + pub cache: *mut bpf_mem_cache, + pub objcg: *mut obj_cgroup, + pub percpu: bool_, + pub work: work_struct, +} +#[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 map: [bpf_id_pair; 600usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_idset { + pub count: u32_, + pub ids: [u32_; 600usize], +} +#[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 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 storage_get_func_atomic: 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 jmp_point: bool_, + pub prune_point: bool_, + pub force_checkpoint: bool_, + pub calls_callback: bool_, + pub scc: u32_, + pub live_regs_before: u16_, +} +#[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 + } +} +#[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(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 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 cur_instance: *mut func_instance, + pub write_masks_acc: [u64_; 8usize], + pub write_insn_idx: u32_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_local_storage { + pub cache: [*mut bpf_local_storage_data; 16usize], + pub smap: *mut bpf_local_storage_map, + pub list: hlist_head, + pub owner: *mut ::aya_ebpf::cty::c_void, + pub rcu: callback_head, + pub lock: raw_spinlock_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_, + pub selem_ma: bpf_mem_alloc, + pub storage_ma: bpf_mem_alloc, + pub bpf_ma: bool_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_local_storage_map_bucket { + pub list: hlist_head, + pub lock: raw_spinlock_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: *const 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 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 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_mem_cache { + pub free_llist: llist_head, + pub active: local_t, + pub free_llist_extra: llist_head, + pub refill_work: irq_work, + pub objcg: *mut obj_cgroup, + pub unit_size: ::aya_ebpf::cty::c_int, + pub free_cnt: ::aya_ebpf::cty::c_int, + pub low_watermark: ::aya_ebpf::cty::c_int, + pub high_watermark: ::aya_ebpf::cty::c_int, + pub batch: ::aya_ebpf::cty::c_int, + pub percpu_size: ::aya_ebpf::cty::c_int, + pub draining: bool_, + pub tgt: *mut bpf_mem_cache, + pub free_by_rcu: llist_head, + pub free_by_rcu_tail: *mut llist_node, + pub waiting_for_gp: llist_head, + pub waiting_for_gp_tail: *mut llist_node, + pub rcu: callback_head, + pub call_rcu_in_progress: atomic_t, + pub free_llist_extra_rcu: llist_head, + pub free_by_rcu_ttrace: llist_head, + pub waiting_for_gp_ttrace: llist_head, + pub rcu_ttrace: callback_head, + pub call_rcu_ttrace_in_progress: atomic_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_mem_caches { + pub cache: [bpf_mem_cache; 11usize], +} +#[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(Debug, Copy, Clone)] +pub struct rhash_head { + pub next: *mut rhash_head, +} +#[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 ::aya_ebpf::cty::c_int, + 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 tstamp_type_access(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 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(13usize, 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), + 13usize, + 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), + 13usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sleepable(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u16) } + } + #[inline] + pub fn set_sleepable(&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 sleepable_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_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), + 14usize, + 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_, + 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 tstamp_type_access: u16 = unsafe { ::core::mem::transmute(tstamp_type_access) }; + tstamp_type_access as u64 + }); + __bindgen_bitfield_unit.set(14usize, 1u8, { + let sleepable: u16 = unsafe { ::core::mem::transmute(sleepable) }; + sleepable as u64 + }); + __bindgen_bitfield_unit + } +} +#[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 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], +} +#[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_lock: bool_, + pub speculative: bool_, + pub in_sleepable: bool_, + pub cleaned: 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 tcp_congestion_ops { + pub ssthresh: ::core::option::Option u32_>, + pub cong_avoid: + ::core::option::Option, + pub set_state: ::core::option::Option, + pub cwnd_event: + ::core::option::Option, + pub in_ack_event: ::core::option::Option, + pub pkts_acked: + ::core::option::Option, + pub min_tso_segs: ::core::option::Option u32_>, + 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 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; 40usize]>, +} +#[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 start: u32_, + pub linfo_idx: u32_, + pub postorder_start: 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 arg_cnt: u8_, + 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 tail_call_reachable(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 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(1usize, 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), + 1usize, + 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), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn has_ld_abs(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 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(2usize, 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), + 2usize, + 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), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn is_cb(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 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(3usize, 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), + 3usize, + 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), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn is_async_cb(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 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(4usize, 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), + 4usize, + 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), + 4usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn is_exception_cb(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 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(5usize, 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), + 5usize, + 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), + 5usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn args_cached(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 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(6usize, 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), + 6usize, + 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), + 6usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn keep_fastcall_stack(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 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(7usize, 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), + 7usize, + 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), + 7usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn changes_pkt_data(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 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(8usize, 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), + 8usize, + 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), + 8usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn might_sleep(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 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(9usize, 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), + 9usize, + 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), + 9usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + has_tail_call: 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_, + ) -> __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 tail_call_reachable: u8 = unsafe { ::core::mem::transmute(tail_call_reachable) }; + tail_call_reachable as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let has_ld_abs: u8 = unsafe { ::core::mem::transmute(has_ld_abs) }; + has_ld_abs as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let is_cb: u8 = unsafe { ::core::mem::transmute(is_cb) }; + is_cb as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let is_async_cb: u8 = unsafe { ::core::mem::transmute(is_async_cb) }; + is_async_cb as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let is_exception_cb: u8 = unsafe { ::core::mem::transmute(is_exception_cb) }; + is_exception_cb as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let args_cached: u8 = unsafe { ::core::mem::transmute(args_cached) }; + args_cached as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let keep_fastcall_stack: u8 = unsafe { ::core::mem::transmute(keep_fastcall_stack) }; + keep_fastcall_stack as u64 + }); + __bindgen_bitfield_unit.set(8usize, 1u8, { + let changes_pkt_data: u8 = unsafe { ::core::mem::transmute(changes_pkt_data) }; + changes_pkt_data as u64 + }); + __bindgen_bitfield_unit.set(9usize, 1u8, { + let might_sleep: u8 = unsafe { ::core::mem::transmute(might_sleep) }; + might_sleep 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: [u32; 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_rsvd(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(46usize, 18u8) as u64) } + } + #[inline] + pub fn set_mem_rsvd(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(46usize, 18u8, 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), + 46usize, + 18u8, + ) 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), + 46usize, + 18u8, + 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_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, 18u8, { + 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: hlist_node, + pub fops: *mut ftrace_ops, + pub mutex: mutex, + pub refcnt: refcount_t, + pub flags: u32_, + pub key: u64_, + 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 used_map_cnt: u32_, + pub used_btf_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 __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 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; 2usize], + 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_, +} +#[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, +} +#[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 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 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_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 semaphore { + pub lock: raw_spinlock_t, + pub count: ::aya_ebpf::cty::c_uint, + pub wait_list: list_head, +} +#[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 min_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(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(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 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 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 callchain { + pub callsites: [u32_; 8usize], + pub sp_starts: [u32_; 8usize], + pub curframe: u32_, +} +#[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(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 avg_vruntime: s64, + pub avg_load: u64_, + pub zero_vruntime: u64_, + 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(Debug, Copy, Clone)] +pub struct cgroup_file { + pub kn: *mut kernfs_node, + pub notified_at: ::aya_ebpf::cty::c_ulong, + pub notify_timer: timer_list, +} +#[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: u16_, + pub subtree_ss_mask: u16_, + pub old_subtree_control: u16_, + pub old_subtree_ss_mask: u16_, + 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; 8usize]>, + 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 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 ancestors: __IncompleteArrayField<*mut cgroup>, +} +impl cgroup { + #[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_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 ns_type: u32_, + pub stashed: *mut dentry, + pub ops: *const proc_ns_operations, + pub inum: ::aya_ebpf::cty::c_uint, + pub __ns_ref: refcount_t, + pub __bindgen_anon_1: ns_common__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ns_common__bindgen_ty_1 { + pub __bindgen_anon_1: ns_common__bindgen_ty_1__bindgen_ty_1, + pub ns_rcu: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ns_common__bindgen_ty_1__bindgen_ty_1 { + pub ns_id: u64_, + pub ns_tree_node: rb_node, + pub ns_list_node: list_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, +} +#[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 _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>, + pub cgrp: cgroup, + pub cgrp_ancestor_storage: *mut cgroup, + 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_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 48usize]>, +} +impl cgroup_root { + #[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 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: 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 srcu_ssp: *mut srcu_struct, +} +#[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(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, +} +#[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 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_, +} +#[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, +} +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 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 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 pgprot { + pub pgprot: pgprotval_t, +} +pub type pgprot_t = pgprot; +#[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(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(Debug, Copy, Clone)] +pub struct da_monitor { + pub monitoring: bool_, + pub curr_state: ::aya_ebpf::cty::c_uint, +} +#[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)] +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 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 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< + unsafe extern "C" fn(arg1: *const kobject) -> *const ::aya_ebpf::cty::c_void, + >, + 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 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 d_u: 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, +} +#[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, + pub inaccessible: bool_, +} +#[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 page_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, + >, +} +#[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 _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 _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 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 + } +} +#[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 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, +} +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 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 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_page: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut device, + arg2: *mut page, + arg3: ::aya_ebpf::cty::c_ulong, + arg4: usize, + arg5: dma_data_direction::Type, + arg6: ::aya_ebpf::cty::c_ulong, + ) -> dma_addr_t, + >, + pub unmap_page: ::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 map_resource: ::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_resource: ::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 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(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 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 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, +} +#[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 dpll_refs: xarray, + pub parent_refs: xarray, + pub ref_sync_pins: xarray, + pub prop: dpll_pin_properties, + pub refcount: refcount_t, + 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, +} +#[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 host_dev: *mut device, + pub sw_addr: ::aya_ebpf::cty::c_int, + pub netdev: [*mut device; 12usize], + pub eeprom_len: ::aya_ebpf::cty::c_int, + pub of_node: *mut device_node, + pub port_names: [*mut ::aya_ebpf::cty::c_char; 12usize], + pub port_dn: [*mut device_node; 12usize], + pub rtable: [s8; 4usize], +} +#[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 dsa_mall_policer_tc_entry { + pub burst: u32_, + pub rate_bytes_per_sec: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dsa_platform_data { + pub netdev: *mut device, + pub of_netdev: *mut net_device, + pub nr_chips: ::aya_ebpf::cty::c_int, + pub chip: *mut dsa_chip_data, +} +#[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_, +} +#[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: *mut dsa_mall_policer_tc_entry, + ) -> ::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_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_hdr { + pub e_ident: [::aya_ebpf::cty::c_uchar; 16usize], + pub e_type: Elf64_Half, + pub e_machine: Elf64_Half, + pub e_version: Elf64_Word, + pub e_entry: Elf64_Addr, + pub e_phoff: Elf64_Off, + pub e_shoff: Elf64_Off, + pub e_flags: Elf64_Word, + pub e_ehsize: Elf64_Half, + pub e_phentsize: Elf64_Half, + pub e_phnum: Elf64_Half, + pub e_shentsize: Elf64_Half, + pub e_shnum: Elf64_Half, + pub e_shstrndx: Elf64_Half, +} +pub type Elf64_Ehdr = elf64_hdr; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct elf64_shdr { + pub sh_name: Elf64_Word, + pub sh_type: Elf64_Word, + pub sh_flags: Elf64_Xword, + pub sh_addr: Elf64_Addr, + pub sh_offset: Elf64_Off, + pub sh_size: Elf64_Xword, + pub sh_link: Elf64_Word, + pub sh_info: Elf64_Word, + pub sh_addralign: Elf64_Xword, + pub sh_entsize: Elf64_Xword, +} +pub type Elf64_Shdr = elf64_shdr; +#[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 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 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(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 _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: [u8; 7usize], +} +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_, +} +#[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_, +} +#[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 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 __bindgen_padding_0: [u8; 4usize], + 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(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(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 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 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, packed)] +#[derive(Debug, Copy, Clone)] +pub struct ftrace_graph_ent { + pub func: ::aya_ebpf::cty::c_ulong, + pub depth: ::aya_ebpf::cty::c_int, +} +#[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: 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 mount: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut file_system_type, + arg2: ::aya_ebpf::cty::c_int, + arg3: *const ::aya_ebpf::cty::c_char, + arg4: *mut ::aya_ebpf::cty::c_void, + ) -> *mut dentry, + >, + 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)] +pub struct filename { + pub name: *const ::aya_ebpf::cty::c_char, + pub uptr: *const ::aya_ebpf::cty::c_char, + pub refcnt: atomic_t, + pub aname: *mut audit_names, + pub iname: __IncompleteArrayField<::aya_ebpf::cty::c_char>, +} +#[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, +} +pub type action_destr = + ::core::option::Option; +#[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_entry__bindgen_ty_1__bindgen_ty_6, + pub ct: flow_action_entry__bindgen_ty_1__bindgen_ty_7, + pub ct_metadata: flow_action_entry__bindgen_ty_1__bindgen_ty_8, + pub mpls_push: flow_action_entry__bindgen_ty_1__bindgen_ty_9, + pub mpls_pop: flow_action_entry__bindgen_ty_1__bindgen_ty_10, + pub mpls_mangle: flow_action_entry__bindgen_ty_1__bindgen_ty_11, + pub gate: flow_action_entry__bindgen_ty_1__bindgen_ty_12, + pub pppoe: flow_action_entry__bindgen_ty_1__bindgen_ty_13, +} +#[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 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_entry__bindgen_ty_1__bindgen_ty_6__bindgen_ty_1, + pub notexceed: flow_action_entry__bindgen_ty_1__bindgen_ty_6__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flow_action_entry__bindgen_ty_1__bindgen_ty_6__bindgen_ty_1 { + pub act_id: flow_action_id::Type, + pub extval: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flow_action_entry__bindgen_ty_1__bindgen_ty_6__bindgen_ty_2 { + pub act_id: flow_action_id::Type, + pub extval: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flow_action_entry__bindgen_ty_1__bindgen_ty_7 { + 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_8 { + 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_9 { + 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_10 { + pub proto: __be16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flow_action_entry__bindgen_ty_1__bindgen_ty_11 { + 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_12 { + 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_13 { + 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_head: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct page__bindgen_ty_1__bindgen_ty_4 { + pub _unused_pgmap_compound_head: *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(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 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 mutex: mutex, + pub lock: spinlock_t, + pub nelems: atomic_t, +} +#[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; 56usize]>, + 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_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(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(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(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_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(Debug, Copy, Clone)] +pub struct fsnotify_sb_info { + pub sb_marks: *mut fsnotify_mark_connector, + pub watched_objects: [atomic_long_t; 3usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fsverity_operations { + pub inode_info_offs: isize, + 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, + arg3: ::aya_ebpf::cty::c_ulong, + ) -> *mut page, + >, + pub write_merkle_tree_block: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut inode, + 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 callchain: callchain, + pub insn_cnt: u32_, + pub updated: bool_, + pub must_write_dropped: bool_, + pub frames: [*mut per_frame_masks; 8usize], + pub must_write_set: *mut 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 conv_zones_bitmap: *mut ::aya_ebpf::cty::c_ulong, + pub zone_wplugs_hash_bits: ::aya_ebpf::cty::c_uint, + pub nr_zone_wplugs: atomic_t, + pub zone_wplugs_lock: spinlock_t, + pub zone_wplugs_pool: *mut mempool, + pub zone_wplugs_hash: *mut hlist_head, + pub zone_wplugs_wq: *mut workqueue_struct, + 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 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 poll_list: list_head, + pub state: ::aya_ebpf::cty::c_ulong, + 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: *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(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 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 running: *mut hrtimer, + pub active: timerqueue_head, + pub offset: ktime_t, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, +} +impl hrtimer_clock_base { + #[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 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 _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + 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 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 hres_active(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_hres_active(&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 hres_active_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_hres_active_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 in_hrtirq(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_in_hrtirq(&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 in_hrtirq_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_in_hrtirq_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 hang_detected(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_hang_detected(&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 hang_detected_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_hang_detected_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 softirq_activated(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } + } + #[inline] + pub fn set_softirq_activated(&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 softirq_activated_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_softirq_activated_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 online(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } + } + #[inline] + pub fn set_online(&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 online_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_online_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( + hres_active: ::aya_ebpf::cty::c_uint, + in_hrtirq: ::aya_ebpf::cty::c_uint, + hang_detected: ::aya_ebpf::cty::c_uint, + softirq_activated: ::aya_ebpf::cty::c_uint, + online: ::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 hres_active: u32 = unsafe { ::core::mem::transmute(hres_active) }; + hres_active as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let in_hrtirq: u32 = unsafe { ::core::mem::transmute(in_hrtirq) }; + in_hrtirq as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let hang_detected: u32 = unsafe { ::core::mem::transmute(hang_detected) }; + hang_detected as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let softirq_activated: u32 = unsafe { ::core::mem::transmute(softirq_activated) }; + softirq_activated as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let online: u32 = unsafe { ::core::mem::transmute(online) }; + online as u64 + }); + __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 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(Debug, Copy, Clone)] +pub struct rhlist_head { + pub rhead: rhash_head, + pub next: *mut rhlist_head, +} +#[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(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(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 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 ib_umem { + _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 get_vector_affinity: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ib_device, arg2: ::aya_ebpf::cty::c_int) -> *const cpumask, + >, + 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 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 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_cq_umem: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_cq, + arg2: *const ib_cq_init_attr, + arg3: *mut ib_umem, + arg4: *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_cq: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ib_cq, + arg2: ::aya_ebpf::cty::c_int, + 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 new_bitfield_1( + uverbs_no_driver_id_binding: ::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 + } +} +#[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(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, +} +#[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(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(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 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_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, 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(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)] +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)] +pub struct ifreq__bindgen_ty_2 { + pub ifru_addr: __BindgenUnionField, + pub ifru_dstaddr: __BindgenUnionField, + pub ifru_broadaddr: __BindgenUnionField, + pub ifru_netmask: __BindgenUnionField, + pub ifru_hwaddr: __BindgenUnionField, + pub ifru_flags: __BindgenUnionField<::aya_ebpf::cty::c_short>, + pub ifru_ivalue: __BindgenUnionField<::aya_ebpf::cty::c_int>, + pub ifru_mtu: __BindgenUnionField<::aya_ebpf::cty::c_int>, + pub ifru_map: __BindgenUnionField, + pub ifru_slave: __BindgenUnionField<[::aya_ebpf::cty::c_char; 16usize]>, + pub ifru_newname: __BindgenUnionField<[::aya_ebpf::cty::c_char; 16usize]>, + pub ifru_data: __BindgenUnionField<*mut ::aya_ebpf::cty::c_void>, + pub ifru_settings: __BindgenUnionField, + pub bindgen_union_field: [u64; 3usize], +} +#[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_maxdelay: ::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_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(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_bind_hashbucket { + pub lock: spinlock_t, + pub chain: hlist_head, +} +#[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)] +#[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: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + 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; 56usize]>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct led_classdev { + pub name: *const ::aya_ebpf::cty::c_char, + pub brightness: ::aya_ebpf::cty::c_uint, + pub max_brightness: ::aya_ebpf::cty::c_uint, + pub color: ::aya_ebpf::cty::c_uint, + pub flags: ::aya_ebpf::cty::c_int, + pub work_flags: ::aya_ebpf::cty::c_ulong, + pub brightness_set: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut led_classdev, arg2: led_brightness::Type), + >, + pub brightness_set_blocking: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut led_classdev, + arg2: led_brightness::Type, + ) -> ::aya_ebpf::cty::c_int, + >, + pub brightness_get: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut led_classdev) -> led_brightness::Type, + >, + pub blink_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut led_classdev, + arg2: *mut ::aya_ebpf::cty::c_ulong, + arg3: *mut ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, + pub pattern_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut led_classdev, + arg2: *mut led_pattern, + arg3: u32_, + arg4: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub pattern_clear: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut led_classdev) -> ::aya_ebpf::cty::c_int, + >, + pub dev: *mut device, + pub groups: *mut *const attribute_group, + pub node: list_head, + pub default_trigger: *const ::aya_ebpf::cty::c_char, + pub blink_delay_on: ::aya_ebpf::cty::c_ulong, + pub blink_delay_off: ::aya_ebpf::cty::c_ulong, + pub blink_timer: timer_list, + pub blink_brightness: ::aya_ebpf::cty::c_int, + pub new_blink_brightness: ::aya_ebpf::cty::c_int, + pub flash_resume: ::core::option::Option, + pub wq: *mut workqueue_struct, + pub set_brightness_work: work_struct, + pub delayed_set_value: ::aya_ebpf::cty::c_int, + pub delayed_delay_on: ::aya_ebpf::cty::c_ulong, + pub delayed_delay_off: ::aya_ebpf::cty::c_ulong, + pub trigger_lock: rw_semaphore, + pub trigger: *mut led_trigger, + pub trig_list: list_head, + pub trigger_data: *mut ::aya_ebpf::cty::c_void, + pub activated: bool_, + pub trigger_type: *mut led_hw_trigger_type, + pub hw_control_trigger: *const ::aya_ebpf::cty::c_char, + pub hw_control_is_supported: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut led_classdev, + arg2: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, + pub hw_control_set: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut led_classdev, + arg2: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, + pub hw_control_get: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut led_classdev, + arg2: *mut ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, + >, + pub hw_control_get_device: + ::core::option::Option *mut device>, + pub brightness_hw_changed: ::aya_ebpf::cty::c_int, + pub brightness_hw_changed_kn: *mut kernfs_node, + pub led_access: mutex, +} +#[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_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, +} +#[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_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 io_task_work: io_task_work, + pub __bindgen_anon_4: io_kiocb__bindgen_ty_4, + 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 hash_node: hlist_node, + pub iopoll_start: u64_, + 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 is_kbuf: bool_, + 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; 1usize], + pub sqe_flags_allowed: u8_, + pub sqe_flags_required: u8_, + pub 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 fallback_llist: llist_head, + pub fallback_work: delayed_work, + pub exit_work: work_struct, + pub tctx_list: list_head, + 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 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 evfd_last_cq_tail: ::aya_ebpf::cty::c_uint, + pub nr_req_allocated: ::aya_ebpf::cty::c_uint, + 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; 24usize]>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_ring_ctx__bindgen_ty_1 { + pub flags: ::aya_ebpf::cty::c_uint, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, + pub submitter_task: *mut task_struct, + pub rings: *mut io_rings, + 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, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 8usize]>, +} +impl io_ring_ctx__bindgen_ty_1 { + #[inline] + pub fn drain_next(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_drain_next(&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 drain_next_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_drain_next_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 restricted(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_restricted(&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 restricted_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_restricted_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 off_timeout_used(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_off_timeout_used(&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 off_timeout_used_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_off_timeout_used_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 drain_active(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } + } + #[inline] + pub fn set_drain_active(&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 drain_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), + 3usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_drain_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), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn has_evfd(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } + } + #[inline] + pub fn set_has_evfd(&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_evfd_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_has_evfd_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 task_complete(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } + } + #[inline] + pub fn set_task_complete(&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 task_complete_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_task_complete_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 lockless_cq(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } + } + #[inline] + pub fn set_lockless_cq(&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 lockless_cq_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_lockless_cq_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 syscall_iopoll(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } + } + #[inline] + pub fn set_syscall_iopoll(&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 syscall_iopoll_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_syscall_iopoll_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 poll_activated(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) } + } + #[inline] + pub fn set_poll_activated(&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 poll_activated_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_poll_activated_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 drain_disabled(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) } + } + #[inline] + pub fn set_drain_disabled(&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 drain_disabled_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_drain_disabled_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 compat(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) } + } + #[inline] + pub fn set_compat(&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 compat_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_compat_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 iowq_limits_set(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) } + } + #[inline] + pub fn set_iowq_limits_set(&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 iowq_limits_set_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_iowq_limits_set_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( + drain_next: ::aya_ebpf::cty::c_uint, + restricted: ::aya_ebpf::cty::c_uint, + off_timeout_used: ::aya_ebpf::cty::c_uint, + drain_active: ::aya_ebpf::cty::c_uint, + has_evfd: ::aya_ebpf::cty::c_uint, + task_complete: ::aya_ebpf::cty::c_uint, + lockless_cq: ::aya_ebpf::cty::c_uint, + syscall_iopoll: ::aya_ebpf::cty::c_uint, + poll_activated: ::aya_ebpf::cty::c_uint, + drain_disabled: ::aya_ebpf::cty::c_uint, + compat: ::aya_ebpf::cty::c_uint, + iowq_limits_set: ::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 drain_next: u32 = unsafe { ::core::mem::transmute(drain_next) }; + drain_next as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let restricted: u32 = unsafe { ::core::mem::transmute(restricted) }; + restricted as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let off_timeout_used: u32 = unsafe { ::core::mem::transmute(off_timeout_used) }; + off_timeout_used as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let drain_active: u32 = unsafe { ::core::mem::transmute(drain_active) }; + drain_active as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let has_evfd: u32 = unsafe { ::core::mem::transmute(has_evfd) }; + has_evfd as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let task_complete: u32 = unsafe { ::core::mem::transmute(task_complete) }; + task_complete as u64 + }); + __bindgen_bitfield_unit.set(6usize, 1u8, { + let lockless_cq: u32 = unsafe { ::core::mem::transmute(lockless_cq) }; + lockless_cq as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let syscall_iopoll: u32 = unsafe { ::core::mem::transmute(syscall_iopoll) }; + syscall_iopoll as u64 + }); + __bindgen_bitfield_unit.set(8usize, 1u8, { + let poll_activated: u32 = unsafe { ::core::mem::transmute(poll_activated) }; + poll_activated as u64 + }); + __bindgen_bitfield_unit.set(9usize, 1u8, { + let drain_disabled: u32 = unsafe { ::core::mem::transmute(drain_disabled) }; + drain_disabled as u64 + }); + __bindgen_bitfield_unit.set(10usize, 1u8, { + let compat: u32 = unsafe { ::core::mem::transmute(compat) }; + compat as u64 + }); + __bindgen_bitfield_unit.set(11usize, 1u8, { + let iowq_limits_set: u32 = unsafe { ::core::mem::transmute(iowq_limits_set) }; + iowq_limits_set 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 + } +} +#[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: io_wq_work_list, + 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 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 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, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, +} +impl io_ring_ctx__bindgen_ty_4 { + #[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_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 + } +} +impl io_ring_ctx { + #[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 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_state {} +pub type io_uring_cmd_tw_t = ::core::option::Option< + unsafe extern "C" fn(arg1: *mut io_uring_cmd, arg2: ::aya_ebpf::cty::c_uint), +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_cmd { + pub file: *mut file, + pub sqe: *const io_uring_sqe, + pub task_work_cb: io_uring_cmd_tw_t, + pub cmd_op: u32_, + pub flags: u32_, + pub pdu: [u8_; 32usize], +} +#[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 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) -> ::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 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(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(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_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(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(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 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_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)] +#[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(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(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 ns: ns_common, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ipstats_mib { + pub mibs: [u64_; 38usize], + pub syncp: u64_stats_sync, +} +#[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_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_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 percpu_affinity: *const cpumask, + 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, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, +} +impl irq_desc { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[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 irqaction { + pub handler: irq_handler_t, + pub dev_id: *mut ::aya_ebpf::cty::c_void, + pub percpu_dev_id: *mut ::aya_ebpf::cty::c_void, + 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]>, +} +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 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(Copy, Clone)] +pub struct led_trigger { + pub name: *const ::aya_ebpf::cty::c_char, + pub activate: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut led_classdev) -> ::aya_ebpf::cty::c_int, + >, + pub deactivate: ::core::option::Option, + pub brightness: led_brightness::Type, + pub trigger_type: *mut led_hw_trigger_type, + pub leddev_list_lock: spinlock_t, + pub led_cdevs: list_head, + pub next_trig: list_head, + pub groups: *mut *const attribute_group, +} +#[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(Copy, Clone)] +pub struct simple_xattrs { + pub rb_root: rb_root, + pub lock: rwlock_t, +} +#[repr(C)] +#[derive(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: simple_xattrs, + pub nr_user_xattrs: atomic_t, + pub user_xattr_size: atomic_t, +} +#[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 ::aya_ebpf::cty::c_void, + 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(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, +} +#[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(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; 8usize]>, +} +impl kioctx__bindgen_ty_3 { + #[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 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 klp_modinfo { + pub hdr: Elf64_Ehdr, + pub sechdrs: *mut Elf64_Shdr, + pub secstrings: *mut ::aya_ebpf::cty::c_char, + pub symndx: ::aya_ebpf::cty::c_uint, +} +#[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 { + pub cpu_slab: *mut kmem_cache_cpu, + pub lock_key: lock_class_key, + 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 cpu_partial: ::aya_ebpf::cty::c_uint, + pub cpu_partial_slabs: ::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 node: [*mut kmem_cache_node; 1024usize], +} +#[repr(C)] +#[repr(align(16))] +#[derive(Copy, Clone)] +pub struct kmem_cache_cpu { + pub __bindgen_anon_1: kmem_cache_cpu__bindgen_ty_1, + pub slab: *mut slab, + pub partial: *mut slab, + pub lock: local_trylock_t, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, + pub __bindgen_padding_0: [u8; 7usize], +} +#[repr(C)] +#[repr(align(16))] +#[derive(Copy, Clone)] +pub union kmem_cache_cpu__bindgen_ty_1 { + pub __bindgen_anon_1: kmem_cache_cpu__bindgen_ty_1__bindgen_ty_1, + pub freelist_tid: freelist_aba_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kmem_cache_cpu__bindgen_ty_1__bindgen_ty_1 { + pub freelist: *mut *mut ::aya_ebpf::cty::c_void, + pub tid: ::aya_ebpf::cty::c_ulong, +} +impl kmem_cache_cpu { + #[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 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, + pub barn: *mut node_barn, +} +#[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 ::aya_ebpf::cty::c_void>, + pub netlink_ns: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sock) -> *const ::aya_ebpf::cty::c_void, + >, + pub initial_ns: + ::core::option::Option *const ::aya_ebpf::cty::c_void>, + pub drop_ns: ::core::option::Option, +} +#[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 kunit_params { + pub params: *const ::aya_ebpf::cty::c_void, + pub get_description: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut kunit, + arg2: *const ::aya_ebpf::cty::c_void, + arg3: *mut ::aya_ebpf::cty::c_char, + ), + >, + pub num_params: usize, + pub elem_size: usize, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct string_stream { + _unused: [u8; 0], +} +pub type kunit_try_catch_func_t = + ::core::option::Option; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kunit_try_catch { + pub test: *mut kunit, + pub try_result: ::aya_ebpf::cty::c_int, + pub try_: kunit_try_catch_func_t, + pub catch: kunit_try_catch_func_t, + pub timeout: ::aya_ebpf::cty::c_ulong, + pub context: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kunit_loc { + pub line: ::aya_ebpf::cty::c_int, + pub file: *const ::aya_ebpf::cty::c_char, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct kunit { + pub priv_: *mut ::aya_ebpf::cty::c_void, + pub parent: *mut kunit, + pub params_array: kunit_params, + pub name: *const ::aya_ebpf::cty::c_char, + pub log: *mut string_stream, + pub try_catch: kunit_try_catch, + pub param_value: *const ::aya_ebpf::cty::c_void, + pub param_index: ::aya_ebpf::cty::c_int, + pub lock: spinlock_t, + pub status: kunit_status::Type, + pub resources: list_head, + pub status_comment: [::aya_ebpf::cty::c_char; 256usize], + pub last_seen: kunit_loc, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kunit_attributes { + pub speed: kunit_speed::Type, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kunit_case { + pub run_case: ::core::option::Option, + pub name: *const ::aya_ebpf::cty::c_char, + pub generate_params: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut kunit, + arg2: *const ::aya_ebpf::cty::c_void, + arg3: *mut ::aya_ebpf::cty::c_char, + ) -> *const ::aya_ebpf::cty::c_void, + >, + pub attr: kunit_attributes, + pub param_init: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub param_exit: ::core::option::Option, + pub status: kunit_status::Type, + pub module_name: *mut ::aya_ebpf::cty::c_char, + pub log: *mut string_stream, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kunit_suite { + pub name: [::aya_ebpf::cty::c_char; 256usize], + pub suite_init: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut kunit_suite) -> ::aya_ebpf::cty::c_int, + >, + pub suite_exit: ::core::option::Option, + pub init: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub exit: ::core::option::Option, + pub test_cases: *mut kunit_case, + pub attr: kunit_attributes, + pub status_comment: [::aya_ebpf::cty::c_char; 256usize], + pub debugfs: *mut dentry, + pub log: *mut string_stream, + pub suite_init_err: ::aya_ebpf::cty::c_int, + pub is_init: bool_, +} +#[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 latency_record { + pub backtrace: [::aya_ebpf::cty::c_ulong; 12usize], + pub count: ::aya_ebpf::cty::c_uint, + pub time: ::aya_ebpf::cty::c_ulong, + pub max: ::aya_ebpf::cty::c_ulong, +} +#[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_>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct led_hw_trigger_type { + pub dummy: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct led_pattern { + pub delta_t: u32_, + pub brightness: ::aya_ebpf::cty::c_int, +} +#[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 rlimit { + pub rlim_cur: __kernel_ulong_t, + pub rlim_max: __kernel_ulong_t, +} +#[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, 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 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; 33usize], + pub state_local: [::aya_ebpf::cty::c_long; 33usize], + pub state_pending: [::aya_ebpf::cty::c_long; 33usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct lruvec_stats_percpu { + pub state: [::aya_ebpf::cty::c_long; 33usize], + pub state_prev: [::aya_ebpf::cty::c_long; 33usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ltl_monitor { + pub states: [::aya_ebpf::cty::c_ulong; 1usize], + pub atoms: [::aya_ebpf::cty::c_ulong; 1usize], + pub unknown_atoms: [::aya_ebpf::cty::c_ulong; 1usize], +} +#[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(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 rcu: callback_head, +} +#[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 rcu: callback_head, +} +#[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 modalias: [::aya_ebpf::cty::c_char; 32usize], + 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_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, +} +#[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)] +#[derive(Debug, Copy, Clone)] +pub struct mem_cgroup_thresholds { + pub primary: *mut mem_cgroup_threshold_ary, + pub spare: *mut mem_cgroup_threshold_ary, +} +#[repr(C)] +pub struct mem_cgroup { + pub css: cgroup_subsys_state, + pub id: mem_cgroup_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; 9usize], + pub memory_events_local: [atomic_long_t; 9usize], + pub socket_pressure: u64_, + pub kmemcg_id: ::aya_ebpf::cty::c_int, + pub objcg: *mut obj_cgroup, + pub orig_objcg: *mut obj_cgroup, + pub objcg_list: list_head, + 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 _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 16usize]>, + pub kmem: page_counter, + pub tcpmem: page_counter, + pub events_percpu: *mut memcg1_events_percpu, + pub soft_limit: ::aya_ebpf::cty::c_ulong, + pub oom_lock: bool_, + pub under_oom: ::aya_ebpf::cty::c_int, + pub oom_kill_disable: ::aya_ebpf::cty::c_int, + pub thresholds_lock: mutex, + pub thresholds: mem_cgroup_thresholds, + pub memsw_thresholds: mem_cgroup_thresholds, + pub oom_notify: list_head, + pub tcpmem_active: bool_, + pub tcpmem_pressure: ::aya_ebpf::cty::c_int, + pub event_list: list_head, + pub event_list_lock: spinlock_t, + pub nodeinfo: __IncompleteArrayField<*mut mem_cgroup_per_node>, + pub _bitfield_align_3: [u8; 0], + pub _bitfield_3: __BindgenBitfieldUnit<[u8; 48usize]>, +} +#[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 tree_node: rb_node, + pub usage_in_excess: ::aya_ebpf::cty::c_ulong, + pub on_tree: bool_, + pub lruvec: lruvec, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, + pub _pad2_: cacheline_padding, + pub lru_zone_size: [::aya_ebpf::cty::c_ulong; 25usize], + pub iter: mem_cgroup_reclaim_iter, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 40usize]>, +} +impl mem_cgroup_per_node { + #[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 mem_cgroup_threshold { + pub eventfd: *mut eventfd_ctx, + pub threshold: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug)] +pub struct mem_cgroup_threshold_ary { + pub current_threshold: ::aya_ebpf::cty::c_int, + pub size: ::aya_ebpf::cty::c_uint, + pub entries: __IncompleteArrayField, +} +#[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 memcg1_events_percpu { + pub nr_page_events: ::aya_ebpf::cty::c_ulong, + pub targets: [::aya_ebpf::cty::c_ulong; 2usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct memcg_vmstats { + pub state: [::aya_ebpf::cty::c_long; 40usize], + pub events: [::aya_ebpf::cty::c_ulong; 31usize], + pub state_local: [::aya_ebpf::cty::c_long; 40usize], + pub events_local: [::aya_ebpf::cty::c_ulong; 31usize], + pub state_pending: [::aya_ebpf::cty::c_long; 40usize], + pub events_pending: [::aya_ebpf::cty::c_ulong; 31usize], + pub stats_updates: atomic_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct memcg_vmstats_percpu { + pub stats_updates: ::aya_ebpf::cty::c_uint, + pub parent_pcpu: *mut memcg_vmstats_percpu, + pub vmstats: *mut memcg_vmstats, + pub state: [::aya_ebpf::cty::c_long; 40usize], + pub events: [::aya_ebpf::cty::c_ulong; 31usize], + pub state_prev: [::aya_ebpf::cty::c_long; 40usize], + pub events_prev: [::aya_ebpf::cty::c_ulong; 31usize], + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 56usize]>, +} +#[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, +} +#[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: ::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 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 mm_cid { + pub time: u64_, + pub cid: ::aya_ebpf::cty::c_int, + pub recent_cid: ::aya_ebpf::cty::c_int, +} +#[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 cpu_bitmap: __IncompleteArrayField<::aya_ebpf::cty::c_ulong>, +} +#[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 pcpu_cid: *mut mm_cid, + pub mm_cid_next_scan: ::aya_ebpf::cty::c_ulong, + pub nr_cpus_allowed: ::aya_ebpf::cty::c_uint, + pub max_nr_cid: atomic_t, + pub cpus_allowed_lock: raw_spinlock_t, + 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 def_flags: vm_flags_t, + 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; 52usize], + 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_2, + pub mm_id: mm_id_t, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>, + 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(Debug, Copy, Clone)] +pub struct mm_struct__bindgen_ty_1__bindgen_ty_2 { + pub list: list_head, + pub bitmap: ::aya_ebpf::cty::c_ulong, + pub memcg: *mut mem_cgroup, +} +impl mm_struct__bindgen_ty_1 { + #[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 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, +} +#[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, +} +#[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 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 rhelversion: *const ::aya_ebpf::cty::c_char, + pub holders_dir: *mut kobject, + pub syms: *const kernel_symbol, + pub crcs: *const u32_, + 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 num_gpl_syms: ::aya_ebpf::cty::c_uint, + pub gpl_syms: *const kernel_symbol, + pub gpl_crcs: *const u32_, + pub using_gplonly_symbols: bool_, + pub sig_ok: 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; 56usize]>, + 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 num_kunit_init_suites: ::aya_ebpf::cty::c_int, + pub kunit_init_suites: *mut *mut kunit_suite, + pub num_kunit_suites: ::aya_ebpf::cty::c_int, + pub kunit_suites: *mut *mut kunit_suite, + pub klp: bool_, + pub klp_alive: bool_, + pub klp_info: *mut klp_modinfo, + 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 dyndbg_info: _ddebug_info, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 40usize]>, +} +#[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)] +#[derive(Debug)] +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)] +#[derive(Debug)] +pub struct module_param_attrs { + pub num: ::aya_ebpf::cty::c_uint, + pub grp: attribute_group, + pub attrs: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug)] +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; 78usize], +} +#[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 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: rwlock_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 ref_tracker_dir {} +#[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_optmem_max: ::aya_ebpf::cty::c_int, + pub sysctl_txrehash: u8_, + pub sysctl_tstamp_allow_data: 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 udplite_statistics: *mut udp_mib, + pub udplite_stats_in6: *mut udp_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_moderate_rcvbuf: u8_, + pub __cacheline_group_end__netns_ipv4_read_txrx: __IncompleteArrayField<__u8>, + pub __cacheline_group_begin__netns_ipv4_read_rx: __IncompleteArrayField<__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 __cacheline_group_end__netns_ipv4_read_rx: __IncompleteArrayField<__u8>, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, + 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 sysctl_tcp_shrink_window: u8_, + 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_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 icmp_global_credit: atomic_t, + pub icmp_global_stamp: u32_, + 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_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_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 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 ipmr_notifier_ops: *mut fib_notifier_ops, + pub ipmr_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; 32usize]>, +} +impl netns_ipv4 { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = 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 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 bindv6only: u8_, + pub flowlabel_consistency: u8_, + pub auto_flowlabels: u8_, + pub icmpv6_time: ::aya_ebpf::cty::c_int, + pub icmpv6_echo_ignore_all: u8_, + pub icmpv6_echo_ignore_multicast: u8_, + pub icmpv6_echo_ignore_anycast: u8_, + 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 ip_nonlocal_bind: u8_, + pub fwmark_reflect: u8_, + pub flowlabel_state_ranges: 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_, +} +#[repr(C)] +#[derive(Copy, Clone)] +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: ::aya_ebpf::cty::c_uint, + 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, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 56usize]>, +} +#[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 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 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)] +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 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 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 _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 56usize]>, + 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 gen_: *mut net_generic, + pub bpf: netns_bpf, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 48usize]>, + 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, +} +#[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(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 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 wireless_dev { + _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 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 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 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 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 ax25_ptr: *mut ax25_dev, + 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 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 _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + 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; 24usize]>, + 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 + } + #[inline] + pub fn new_bitfield_3() -> __BindgenBitfieldUnit<[u8; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + __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_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 bridge: net_device_path__bindgen_ty_1__bindgen_ty_2, + pub dsa: net_device_path__bindgen_ty_1__bindgen_ty_3, + pub mtk_wdma: net_device_path__bindgen_ty_1__bindgen_ty_4, +} +#[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(Debug, Copy, Clone)] +pub struct net_device_path__bindgen_ty_1__bindgen_ty_2 { + pub vlan_mode: net_device_path__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1::Type, + pub vlan_id: u16_, + pub vlan_proto: __be16, +} +pub mod net_device_path__bindgen_ty_1__bindgen_ty_2__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_3 { + 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_4 { + 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 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_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 ::aya_ebpf::cty::c_void, + arg3: ::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 ::aya_ebpf::cty::c_void, + arg3: ::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_queue_get_dma_dev: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: ::aya_ebpf::cty::c_int) -> *mut device, + >, +} +#[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, +} +#[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: *mut rps_dev_flow_table, + 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 mp_params: pp_memory_provider_params, +} +#[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(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 tuple: nf_conntrack_tuple, + pub mask: nf_conntrack_tuple_mask, + 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 master: *mut nf_conn, + pub timeout: timer_list, + 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 gen_id: ::aya_ebpf::cty::c_uint, + 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 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: *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(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), + >, + 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 ::aya_ebpf::cty::c_int>, + 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 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(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, +} +#[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 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: u64_, + 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; 51usize], +} +#[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: u64_, + pub must_write: u64_, + pub must_write_acc: u64_, + pub live_before: u64_, +} +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(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_cgroup_info { + pub time: u64_, + pub timestamp: u64_, + pub timeoffset: u64_, + 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: u64_, + pub timestamp: u64_, + pub timeoffset: u64_, + 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, +} +#[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 __reserved_1(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(38usize, 26u8) as u64) } + } + #[inline] + pub fn set___reserved_1(&mut self, val: __u64) { + unsafe { + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(38usize, 26u8, 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), + 38usize, + 26u8, + ) 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), + 38usize, + 26u8, + 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, + __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, 26u8, { + 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 _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; 24usize]>, + 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; 51usize], + 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; 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 + } +} +#[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 pse_control { + _unused: [u8; 0], +} +#[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 pause: ::aya_ebpf::cty::c_int, + pub asym_pause: ::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 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 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, +} +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 interrupts(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(17usize, 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(17usize, 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), + 17usize, + 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), + 17usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn irq_suspended(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(18usize, 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(18usize, 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), + 18usize, + 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), + 18usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn irq_rerun(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(19usize, 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(19usize, 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), + 19usize, + 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), + 19usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn default_timestamp(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 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(20usize, 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), + 20usize, + 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), + 20usize, + 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, + 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 interrupts: u32 = unsafe { ::core::mem::transmute(interrupts) }; + interrupts as u64 + }); + __bindgen_bitfield_unit.set(18usize, 1u8, { + let irq_suspended: u32 = unsafe { ::core::mem::transmute(irq_suspended) }; + irq_suspended as u64 + }); + __bindgen_bitfield_unit.set(19usize, 1u8, { + let irq_rerun: u32 = unsafe { ::core::mem::transmute(irq_rerun) }; + irq_rerun as u64 + }); + __bindgen_bitfield_unit.set(20usize, 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_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 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_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, + >, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct phy_led_trigger { + pub trigger: led_trigger, + pub name: [::aya_ebpf::cty::c_char; 76usize], + pub speed: ::aya_ebpf::cty::c_uint, +} +#[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, + >, +} +#[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, 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_node: rb_node, + 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 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 ns: ns_common, + pub work: work_struct, + pub set: ctl_table_set, + pub sysctls: *mut ctl_table_header, + pub memfd_noexec_scope: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pidfs_exit_info { + pub cgroupid: __u64, + pub exit_code: __s32, + pub coredump_mask: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pidfs_attr { + pub xattrs: *mut simple_xattrs, + pub __pei: pidfs_exit_info, + pub exit_info: *mut pidfs_exit_info, +} +#[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 __bindgen_anon_1: pipe_inode_info__bindgen_ty_1, + 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 union pipe_inode_info__bindgen_ty_1 { + pub head_tail: ::aya_ebpf::cty::c_ulong, + pub __bindgen_anon_1: pipe_inode_info__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pipe_inode_info__bindgen_ty_1__bindgen_ty_1 { + pub head: pipe_index_t, + pub tail: pipe_index_t, +} +#[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 stats: [u64_; 8usize], + pub release_work: kthread_work, + pub rcu: callback_head, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 224usize]>, +} +#[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, +} +#[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(Debug, Copy, Clone)] +pub struct smc_hashinfo { + _unused: [u8; 0], +} +#[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, + 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, + 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, + arg5: *mut ::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, + 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, + 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 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 udp_table: *mut udp_table, + 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, +>; +#[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, + 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, + 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 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, + >, +} +#[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(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 rcu: callback_head, +} +#[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, +} +#[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 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_delivered: u32_, + pub prior_delivered_ce: u32_, + 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_ack_delayed: 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 _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 56usize]>, + pub fqslock: raw_spinlock_t, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __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_3: [u8; 0], + pub _bitfield_3: __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, + >, +} +#[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(Debug, 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_, +} +#[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, +} +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 rq_end_io_fn = ::core::option::Option< + unsafe extern "C" fn(arg1: *mut request, arg2: blk_status_t) -> 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 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 hctx_table: xarray, + 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_ulong, + 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, + pub syn_ack_timeout: ::core::option::Option, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct reset_control { + pub rcdev: *mut reset_controller_dev, + 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, +} +#[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(Debug, 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_args: *const of_phandle_args, + 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 nr_resets: ::aya_ebpf::cty::c_uint, +} +#[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: u64_, + 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: u64_, +} +#[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 tv_sec: ::aya_ebpf::cty::c_ulong, + pub tv_nsec: ::aya_ebpf::cty::c_ulong, +} +#[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 ::aya_ebpf::cty::c_ulong, + pub meta_page: *mut trace_buffer_meta, + pub ring_meta: *mut ring_buffer_cpu_meta, + 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 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, Copy, Clone)] +pub struct rps_dev_flow { + pub cpu: u16_, + pub filter: u16_, + pub last_qtail: ::aya_ebpf::cty::c_uint, + pub hash: u32_, +} +#[repr(C)] +#[derive(Debug)] +pub struct rps_dev_flow_table { + pub log: u8_, + pub rcu: callback_head, + pub flows: __IncompleteArrayField, +} +#[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 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 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 cpu_released: bool_, + pub flags: 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 pnt_seq: ::aya_ebpf::cty::c_ulong, + pub deferred_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 *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 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, + ) -> __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 + } +} +#[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, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rq { + pub __lock: raw_spinlock_t, + 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 numa_migrate_on: ::aya_ebpf::cty::c_uint, + pub last_blocked_load_update_tick: ::aya_ebpf::cty::c_ulong, + pub has_blocked_load: ::aya_ebpf::cty::c_uint, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, + pub nohz_csd: call_single_data_t, + pub nohz_tick_stopped: ::aya_ebpf::cty::c_uint, + pub nohz_flags: atomic_t, + pub ttwu_pending: ::aya_ebpf::cty::c_uint, + pub nr_switches: u64_, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 8usize]>, + 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 fair_server: sched_dl_entity, + pub leaf_cfs_rq_list: list_head, + pub tmp_alone_branch: *mut list_head, + pub nr_uninterruptible: ::aya_ebpf::cty::c_ulong, + pub __bindgen_anon_1: rq__bindgen_ty_1, + pub dl_server: *mut sched_dl_entity, + pub idle: *mut task_struct, + pub stop: *mut task_struct, + pub next_balance: ::aya_ebpf::cty::c_ulong, + pub prev_mm: *mut mm_struct, + pub clock_update_flags: ::aya_ebpf::cty::c_uint, + pub clock: u64_, + pub _bitfield_align_4: [u8; 0], + pub _bitfield_4: __BindgenBitfieldUnit<[u8; 48usize]>, + pub clock_task: u64_, + pub clock_pelt: u64_, + pub lost_idle_time: ::aya_ebpf::cty::c_ulong, + pub clock_pelt_idle: u64_, + pub clock_idle: u64_, + pub nr_iowait: atomic_t, + 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 cpu_capacity: ::aya_ebpf::cty::c_ulong, + 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 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 _bitfield_align_6: [u8; 0], + pub _bitfield_6: __BindgenBitfieldUnit<[u8; 16usize]>, + pub cfsb_csd: call_single_data_t, + pub cfsb_csd_list: list_head, + pub _bitfield_align_7: [u8; 0], + pub _bitfield_7: __BindgenBitfieldUnit<[u8; 16usize]>, +} +#[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_2() -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = 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_5() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); + __bindgen_bitfield_unit + } + #[inline] + pub fn new_bitfield_6() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); + __bindgen_bitfield_unit + } + #[inline] + pub fn new_bitfield_7() -> __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(Debug)] +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 end: __IncompleteArrayField<::aya_ebpf::cty::c_char>, +} +#[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(Copy, Clone)] +pub union rv_task_monitor { + pub da_mon: da_monitor, + pub ltl_mon: ltl_monitor, +} +#[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 *mut task_struct>, + pub pick_next_task: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rq, arg2: *mut task_struct) -> *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_to: + ::core::option::Option, + pub switched_from: + ::core::option::Option, + pub switched_to: + ::core::option::Option, + pub reweight_task: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rq, arg2: *mut task_struct, arg3: *const load_weight), + >, + pub prio_changed: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rq, arg2: *mut task_struct, arg3: ::aya_ebpf::cty::c_int), + >, + 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)] +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 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, + pub span: __IncompleteArrayField<::aya_ebpf::cty::c_ulong>, +} +#[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, +} +#[repr(C)] +#[derive(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 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 __bindgen_anon_1: sched_entity__bindgen_ty_1, + 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; 8usize]>, + pub avg: sched_avg, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sched_entity__bindgen_ty_1 { + pub vlag: s64, + pub vprot: u64_, +} +impl sched_entity { + #[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 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 dsq: *mut scx_dispatch_q, + 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_mask: u32_, + pub kf_tasks: [*mut task_struct; 2usize], + pub ops_state: atomic_long_t, + pub runnable_node: list_head, + pub runnable_at: ::aya_ebpf::cty::c_ulong, + pub core_sched_at: u64_, + pub ddsp_dsq_id: u64_, + pub ddsp_enq_flags: 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_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_task_group { + pub flags: u32_, + 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 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 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 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 timer_create_restore_ids(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 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(2usize, 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), + 2usize, + 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), + 2usize, + 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, + 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 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 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_; 5usize], + pub chunks: u8_, + pub __bindgen_padding_0: [u8; 6usize], + 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)] +#[repr(align(16))] +#[derive(Copy, Clone)] +pub struct slab { + pub flags: memdesc_flags_t, + pub slab_cache: *mut kmem_cache, + pub __bindgen_anon_1: slab__bindgen_ty_1, + pub __page_type: ::aya_ebpf::cty::c_uint, + pub __page_refcount: atomic_t, + pub obj_exts: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[repr(align(16))] +#[derive(Copy, Clone)] +pub union slab__bindgen_ty_1 { + pub __bindgen_anon_1: slab__bindgen_ty_1__bindgen_ty_1, + pub callback_head: callback_head, +} +#[repr(C)] +#[repr(align(16))] +#[derive(Copy, Clone)] +pub struct slab__bindgen_ty_1__bindgen_ty_1 { + pub __bindgen_anon_1: slab__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, + pub __bindgen_anon_2: slab__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union slab__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { + pub slab_list: list_head, + pub __bindgen_anon_1: slab__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, + pub __bindgen_anon_2: slab__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct slab__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { + pub llnode: llist_node, + pub flush_freelist: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct slab__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2 { + pub next: *mut slab, + pub slabs: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[repr(align(16))] +#[derive(Copy, Clone)] +pub union slab__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2 { + pub __bindgen_anon_1: slab__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1, + pub freelist_counter: freelist_aba_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct slab__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 { + pub freelist: *mut ::aya_ebpf::cty::c_void, + pub __bindgen_anon_1: + slab__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union slab__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1 { + pub counters: ::aya_ebpf::cty::c_ulong, + pub __bindgen_anon_1: + slab__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[repr(align(4))] +#[derive(Debug, Copy, Clone)] +pub struct slab__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 +{ + pub _bitfield_align_1: [u16; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +impl slab__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { + #[inline] + pub fn inuse(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 16u8) as u32) } + } + #[inline] + pub fn set_inuse(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 16u8, val as u64) + } + } + #[inline] + pub unsafe fn inuse_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, + 16u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_inuse_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, + 16u8, + val as u64, + ) + } + } + #[inline] + pub fn objects(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 15u8) as u32) } + } + #[inline] + pub fn set_objects(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(16usize, 15u8, val as u64) + } + } + #[inline] + pub unsafe fn objects_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), + 16usize, + 15u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_objects_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), + 16usize, + 15u8, + val as u64, + ) + } + } + #[inline] + pub fn frozen(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(31usize, 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_1.set(31usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn frozen_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), + 31usize, + 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; 4usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_1), + 31usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_1( + inuse: ::aya_ebpf::cty::c_uint, + objects: ::aya_ebpf::cty::c_uint, + frozen: ::aya_ebpf::cty::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 16u8, { + let inuse: u32 = unsafe { ::core::mem::transmute(inuse) }; + inuse as u64 + }); + __bindgen_bitfield_unit.set(16usize, 15u8, { + let objects: u32 = unsafe { ::core::mem::transmute(objects) }; + objects as u64 + }); + __bindgen_bitfield_unit.set(31usize, 1u8, { + let frozen: u32 = unsafe { ::core::mem::transmute(frozen) }; + frozen as u64 + }); + __bindgen_bitfield_unit + } +} +#[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 capacity: ::aya_ebpf::cty::c_uint, +} +#[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(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(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(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: 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 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; 48usize]>, +} +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 + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct srcu_node { + pub lock: 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; 8usize]>, + 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 _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 16usize]>, +} +impl super_block { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = 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 + } +} +#[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 remount_fs: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut super_block, + arg2: *mut ::aya_ebpf::cty::c_int, + arg3: *mut ::aya_ebpf::cty::c_char, + ) -> ::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, +} +#[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_xprts: lwq, + pub sp_nrthreads: ::aya_ebpf::cty::c_uint, + 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: *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_cachetype: ::aya_ebpf::cty::c_int, + 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_lease_breaker: *mut *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 list: list_head, +} +#[repr(C)] +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 swap_map: *mut ::aya_ebpf::cty::c_uchar, + 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 cont_lock: spinlock_t, + pub discard_work: work_struct, + pub reclaim_work: work_struct, + pub discard_clusters: list_head, + pub avail_lists: __IncompleteArrayField, +} +#[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(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_, +} +#[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], +} +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 + } +} +#[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(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 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 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 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_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, + 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_ipi_to_cpu: ::aya_ebpf::cty::c_int, + pub trc_reader_special: rcu_special, + pub trc_holdout_list: list_head, + pub trc_blkd_node: list_head, + pub trc_blkd_cpu: ::aya_ebpf::cty::c_int, + 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 faults_disabled_mapping: *mut address_space, + 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_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 7usize]>, + 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 fs: *mut fs_struct, + pub files: *mut files_struct, + pub io_uring: *mut io_uring_task, + 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 in_ubsan: ::aya_ebpf::cty::c_uint, + 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 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: *mut rseq, + pub rseq_len: u32_, + pub rseq_sig: u32_, + pub rseq_event_mask: ::aya_ebpf::cty::c_ulong, + pub mm_cid: ::aya_ebpf::cty::c_int, + pub last_mm_cid: ::aya_ebpf::cty::c_int, + pub migrate_from_cpu: ::aya_ebpf::cty::c_int, + pub mm_cid_active: ::aya_ebpf::cty::c_int, + pub cid_work: callback_head, + pub tlb_ubc: tlbflush_unmap_batch, + pub splice_pipe: *mut pipe_inode_info, + pub task_frag: page_frag, + 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 latency_record_count: ::aya_ebpf::cty::c_int, + pub latency_record: [latency_record; 32usize], + pub timer_slack_ns: u64_, + pub default_timer_slack_ns: u64_, + pub kunit_test: *mut kunit, + 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_in_oom: *mut mem_cgroup, + 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 patch_state: ::aya_ebpf::cty::c_int, + 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_3: [u64; 0], + pub _bitfield_3: __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 rv: [rv_task_monitor; 3usize], + pub thread: thread_struct, + pub _bitfield_align_4: [u8; 0], + pub _bitfield_4: __BindgenBitfieldUnit<[u8; 40usize]>, +} +impl task_struct { + #[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 sched_reset_on_fork(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_2.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_2.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; 7usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 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; 7usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sched_contributes_to_load(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_2.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_2.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; 7usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 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; 7usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sched_migrated(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_2.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_2.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; 7usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 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; 7usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 2usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sched_task_hot(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_2.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_2.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; 7usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 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; 7usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 3usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sched_remote_wakeup(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_2.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_2.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; 7usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 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; 7usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 32usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn sched_rt_mutex(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_2.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_2.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; 7usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 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; 7usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 33usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn in_execve(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_2.get(34usize, 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_2.set(34usize, 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; 7usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 34usize, + 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; 7usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 34usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn in_iowait(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_2.get(35usize, 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_2.set(35usize, 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; 7usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 35usize, + 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; 7usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 35usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn restore_sigmask(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_2.get(36usize, 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_2.set(36usize, 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; 7usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 36usize, + 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; 7usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 36usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn in_user_fault(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_2.get(37usize, 1u8) as u32) } + } + #[inline] + pub fn set_in_user_fault(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_2.set(37usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn in_user_fault_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 7usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 37usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_in_user_fault_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 7usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 37usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn in_lru_fault(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_2.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_2.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; 7usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 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; 7usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 38usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn no_cgroup_migration(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_2.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_2.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; 7usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 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; 7usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 39usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn frozen(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_2.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_2.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; 7usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 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; 7usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 40usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn use_memdelay(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_2.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_2.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; 7usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 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; 7usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 41usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn in_memstall(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_2.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_2.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; 7usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 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; 7usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 42usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn in_page_owner(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_2.get(43usize, 1u8) as u32) } + } + #[inline] + pub fn set_in_page_owner(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_2.set(43usize, 1u8, val as u64) + } + } + #[inline] + pub unsafe fn in_page_owner_raw(this: *const Self) -> ::aya_ebpf::cty::c_uint { + unsafe { + ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 7usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 43usize, + 1u8, + ) as u32) + } + } + #[inline] + pub unsafe fn set_in_page_owner_raw(this: *mut Self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + <__BindgenBitfieldUnit<[u8; 7usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 43usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn in_eventfd(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_2.get(44usize, 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_2.set(44usize, 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; 7usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 44usize, + 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; 7usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 44usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn pasid_activated(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_2.get(45usize, 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_2.set(45usize, 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; 7usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 45usize, + 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; 7usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 45usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn reported_split_lock(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_2.get(46usize, 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_2.set(46usize, 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; 7usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 46usize, + 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; 7usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 46usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn in_thrashing(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_2.get(47usize, 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_2.set(47usize, 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; 7usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 47usize, + 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; 7usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 47usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn in_nf_duplicate(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_2.get(48usize, 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_2.set(48usize, 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; 7usize]>>::raw_get( + ::core::ptr::addr_of!((*this)._bitfield_2), + 48usize, + 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; 7usize]>>::raw_set( + ::core::ptr::addr_of_mut!((*this)._bitfield_2), + 48usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_2( + 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, + in_execve: ::aya_ebpf::cty::c_uint, + in_iowait: ::aya_ebpf::cty::c_uint, + restore_sigmask: ::aya_ebpf::cty::c_uint, + in_user_fault: ::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_page_owner: ::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; 7usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 7usize]> = 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 in_execve: u32 = unsafe { ::core::mem::transmute(in_execve) }; + in_execve as u64 + }); + __bindgen_bitfield_unit.set(35usize, 1u8, { + let in_iowait: u32 = unsafe { ::core::mem::transmute(in_iowait) }; + in_iowait as u64 + }); + __bindgen_bitfield_unit.set(36usize, 1u8, { + let restore_sigmask: u32 = unsafe { ::core::mem::transmute(restore_sigmask) }; + restore_sigmask as u64 + }); + __bindgen_bitfield_unit.set(37usize, 1u8, { + let in_user_fault: u32 = unsafe { ::core::mem::transmute(in_user_fault) }; + in_user_fault 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_page_owner: u32 = unsafe { ::core::mem::transmute(in_page_owner) }; + in_page_owner as u64 + }); + __bindgen_bitfield_unit.set(44usize, 1u8, { + let in_eventfd: u32 = unsafe { ::core::mem::transmute(in_eventfd) }; + in_eventfd as u64 + }); + __bindgen_bitfield_unit.set(45usize, 1u8, { + let pasid_activated: u32 = unsafe { ::core::mem::transmute(pasid_activated) }; + pasid_activated as u64 + }); + __bindgen_bitfield_unit.set(46usize, 1u8, { + let reported_split_lock: u32 = unsafe { ::core::mem::transmute(reported_split_lock) }; + reported_split_lock as u64 + }); + __bindgen_bitfield_unit.set(47usize, 1u8, { + let in_thrashing: u32 = unsafe { ::core::mem::transmute(in_thrashing) }; + in_thrashing as u64 + }); + __bindgen_bitfield_unit.set(48usize, 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_3.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_3.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_3), + 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_3), + 0usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn mce_whole_page(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_3.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_3.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_3), + 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_3), + 1usize, + 1u8, + val as u64, + ) + } + } + #[inline] + pub fn __mce_reserved(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_3.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_3.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_3), + 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_3), + 2usize, + 62u8, + val as u64, + ) + } + } + #[inline] + pub fn new_bitfield_3( + 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, +} +#[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 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_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_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, +} +#[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_mib { + pub mibs: [::aya_ebpf::cty::c_ulong; 16usize], +} +#[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 throtl_slice: ::aya_ebpf::cty::c_uint, + pub dispatch_work: work_struct, + pub track_bio_latency: bool_, +} +#[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 ns: ns_common, + pub offsets: timens_offsets, + pub vvar_page: *mut page, + pub frozen_offsets: bool_, +} +#[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 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 max_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; 470usize], + pub exit_syscall_files: [*mut trace_event_file; 470usize], + 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 trace_flags: ::aya_ebpf::cty::c_uint, + pub trace_flags_index: [::aya_ebpf::cty::c_uchar; 32usize], + pub flags: ::aya_ebpf::cty::c_uint, + pub start_lock: raw_spinlock_t, + pub system_names: *const ::aya_ebpf::cty::c_char, + 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 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 hist_vars: list_head, + pub cond_snapshot: *mut cond_snapshot, + pub last_func_repeats: *mut trace_func_repeats, + pub ring_buffer_expanded: bool_, +} +#[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 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 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, 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 Reserved1: __u64, + pub Reserved2: __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 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: u32_, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub next: *mut tracer, + pub 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 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: *mut 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 poll_init: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut tty_driver, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut ::aya_ebpf::cty::c_char, + ) -> ::aya_ebpf::cty::c_int, + >, + pub poll_get_char: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut tty_driver, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, + >, + pub poll_put_char: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut tty_driver, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_char, + ), + >, + 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(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(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 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, +} +#[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 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_VDSO32_NOTE_MASK: ::aya_ebpf::cty::c_long, + 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(Debug, Copy, Clone)] +pub struct vm_area_desc { + pub mm: *const 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 vm_flags: vm_flags_t, + pub page_prot: pgprot_t, + pub vm_ops: *const vm_operations_struct, + pub private_data: *mut ::aya_ebpf::cty::c_void, +} +#[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 vm_userfaultfd_ctx: vm_userfaultfd_ctx, + pub pfnmap_track_ctx: *mut pfnmap_track_ctx, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, +} +#[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 __vm_flags: vm_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, +} +impl vm_area_struct { + #[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 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 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, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct vm_struct { + pub next: *mut vm_struct, + 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(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(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_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 watchdog_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; 16usize]>, + 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; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = 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; 24usize]>, + 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; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = 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, +} +#[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_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(Debug, 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, +} +#[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/rules/detect_ls.yaml b/rules/detect_ls.yaml new file mode 100644 index 0000000..299ed9d --- /dev/null +++ b/rules/detect_ls.yaml @@ -0,0 +1,34 @@ +title: Enumération de /etc/passwd via ls +id: b3f1c2a4-9e7d-4b2a-8f0e-1a2b3c4d5e6f +status: experimental +description: Détecte l'exécution exacte de la commande "ls /etc/passwd" +references: + - https://attack.mitre.org/techniques/T1087/ +author: Detection Rule +date: 2024-01-01 +tags: + - attack.discovery + - attack.t1087.001 + +logsource: + category: process_creation + product: linux + +detection: + selection: + Image|endswith: '/ls' + CommandLine|contains: '/etc/passwd' + + filter_legit_users: + User|contains: + - 'monitoring' + - 'backup' + + condition: selection and not 1 of filter_* + +falsepositives: + - Aucun (la commande exacte est très spécifique) + +level: high + + diff --git a/rules/nmap.yaml b/rules/nmap.yaml new file mode 100644 index 0000000..fce1327 --- /dev/null +++ b/rules/nmap.yaml @@ -0,0 +1,51 @@ +title: Nmap Execution on Linux +id: 4a6b2e5c-3f81-4d9a-bc07-e2f1a9d83c14 +status: experimental +description: | + Detects the execution of the nmap binary on Linux systems. + Nmap is a network scanner commonly used during reconnaissance + and lateral movement phases by attackers. +references: + - https://nmap.org/ + - https://attack.mitre.org/techniques/T1046/ + - https://attack.mitre.org/techniques/T1595/ +author: Detection Engineer +date: 2024-01-15 +tags: + - attack.discovery + - attack.T1046 + - attack.reconnaissance + - attack.T1595 +logsource: + category: process_creation + product: linux +detection: + selection_img: + Image|endswith: + - '/nmap' + - '/nmap7' + selection_cmd: + CommandLine|contains: + - 'nmap ' + - '/usr/bin/nmap' + - '/usr/local/bin/nmap' + - '/snap/bin/nmap' + filter_legit_users: + User|contains: + - 'songbird' + + condition: 1 of selection_* and not 1 of filter_* + +falsepositives: + - Legitimate network audits by system administrators + - Authorized penetration testing activities + - Security team scheduled scans + - Monitoring or CMDB discovery tools +level: medium +fields: + - Image + - CommandLine + - User + - ParentImage + - ParentCommandLine + - ProcessId diff --git a/rules/reverse_shell.yaml b/rules/reverse_shell.yaml new file mode 100644 index 0000000..3399a69 --- /dev/null +++ b/rules/reverse_shell.yaml @@ -0,0 +1,39 @@ +title: Python Reverse Shell Execution Via PTY And Socket Modules +id: 32e62bc7-3de0-4bb1-90af-532978fe42c0 +related: + - id: c4042d54-110d-45dd-a0e1-05c47822c937 + type: similar +status: test +description: | + Detects the execution of python with calls to the socket and pty module in order to connect and spawn a potential reverse shell. +references: + - https://www.revshells.com/ +author: '@d4ns4n_, Nasreddine Bencherchali (Nextron Systems)' +date: 2023-04-24 +modified: 2024-11-04 +tags: + - attack.execution +logsource: + category: process_creation + product: linux + +detection: + selection: + Image|contains: 'python' + CommandLine|contains|all: + - ' -c ' + - 'import' + - 'pty' + - 'socket' + - 'spawn' + - '.connect' + + filter_legit_users: + User|contains: + - 'songbird' + + condition: selection and not 1 of filter_* + +falsepositives: + - Unknown +level: high diff --git a/rust-toolchain.toml b/rust-toolchain.toml new file mode 100644 index 0000000..428cbf8 --- /dev/null +++ b/rust-toolchain.toml @@ -0,0 +1,3 @@ +[toolchain] +channel = "nightly" +components = ["rust-src"] diff --git a/user-land/Cargo.toml b/user-land/Cargo.toml new file mode 100644 index 0000000..6315bae --- /dev/null +++ b/user-land/Cargo.toml @@ -0,0 +1,26 @@ +[package] +name = "user-land" +version = "0.1.0" +edition = "2021" + +[[bin]] +name = "vauban" +path = "src/main.rs" + +[build-dependencies] +# Pas de dépendances externes : build.rs invoque cargo directement + +[dependencies] +aya = { workspace = true } +aya-log = { workspace = true } +libc = { workspace = true } +tokio = { workspace = true } +ratatui = { workspace = true } +crossterm = { workspace = true } +serde = { workspace = true } +serde_norway = { workspace = true } +serde_json = { workspace = true } +chrono = { workspace = true } +uuid = { workspace = true } +regex = { workspace = true } +common-lib = { workspace = true, features = ["user"] } diff --git a/user-land/build.rs b/user-land/build.rs new file mode 100644 index 0000000..d44eb32 --- /dev/null +++ b/user-land/build.rs @@ -0,0 +1,30 @@ +use std::{env, path::PathBuf, process::Command}; + +fn main() +{ + let manifest_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")); + let workspace_root = manifest_dir.parent().unwrap(); + let out_dir = PathBuf::from(env::var("OUT_DIR").unwrap()); + + // Recompile si les sources kernel-land changent + println!("cargo:rerun-if-changed=../kernel-land/src"); + + // Lance la compilation depuis kernel-land/ pour utiliser son .cargo/config.toml + // (target = bpfel-unknown-none, build-std = core) + // CARGO_TARGET_DIR séparé pour éviter le deadlock sur le file lock du workspace parent + let ebpf_target_dir = workspace_root.join("target/ebpf"); + let status = Command::new("cargo") + .current_dir(workspace_root.join("kernel-land")) + .env("CARGO_TARGET_DIR", &ebpf_target_dir) + .args(["build", "--release"]) + .status() + .expect("Échec du lancement de cargo pour kernel-land"); + + assert!(status.success(), "Compilation de kernel-land eBPF échouée"); + + // Copie l'ELF produit dans OUT_DIR pour que include_bytes! puisse l'embarquer + let ebpf_elf = ebpf_target_dir.join("bpfel-unknown-none/release/kernel-land"); + + std::fs::copy(&ebpf_elf, out_dir.join("kernel-land.bpf")) + .expect("Impossible de copier l'ELF eBPF dans OUT_DIR"); +} diff --git a/user-land/src/alert.rs b/user-land/src/alert.rs new file mode 100644 index 0000000..82cf464 --- /dev/null +++ b/user-land/src/alert.rs @@ -0,0 +1,75 @@ +use std::collections::HashMap; + +use chrono::{DateTime, Utc}; +use serde::Serialize; + +/// Alerte produite quand un événement matche une règle Sigma. +/// Sérialisable en JSON pour l'export SIEM. +#[derive(Debug, Clone, Serialize)] +pub struct Alert +{ + /// Horodatage de détection au format RFC 3339 (ex: `2026-03-29T08:00:00Z`). + pub timestamp: DateTime, + /// Titre de la règle Sigma qui a déclenché l'alerte. + pub rule: String, + /// Niveau de sévérité issu du champ `level:` de la règle Sigma. + pub severity: String, + /// Référence vers l'entrée d'audit correspondante dans `vauban-audit.jsonl`. + /// Permet de retrouver le contexte complet de l'événement déclencheur. + pub event_id: String, + /// Champs de l'événement normalisé (Image, CommandLine, ProcessId, …). + pub event: HashMap, +} + +impl Alert +{ + pub fn new( + rule: String, + severity: String, + event_id: String, + fields: HashMap, + ) -> Self + { + Alert + { + timestamp: Utc::now(), + rule, + severity, + event_id, + event: fields, + } + } +} + +// ─── Bus d'alertes ──────────────────────────────────────────────────────────── + +/// Contrat minimal d'un consommateur d'alertes. +/// Implémentations : `TuiSink`, `JsonFileSink`, futures `UnixSocketSink`, … +pub trait AlertSink: Send + Sync +{ + fn emit(&self, alert: &Alert); +} + +/// Dispatche chaque alerte vers tous les sinks enregistrés. +pub struct AlertBus +{ + sinks: Vec>, +} + +impl AlertBus +{ + pub fn new(sinks: Vec>) -> Self + { + AlertBus { sinks } + } + + /// Distribue l'alerte à tous les sinks de façon synchrone. + /// Chaque sink doit être non-bloquant (canal avec `try_send`, append local, …). + pub fn emit(&self, alert: Alert) + { + for sink in &self.sinks + { + sink.emit(&alert); + } + } +} diff --git a/user-land/src/engine/mod.rs b/user-land/src/engine/mod.rs new file mode 100644 index 0000000..c5fd630 --- /dev/null +++ b/user-land/src/engine/mod.rs @@ -0,0 +1,230 @@ +mod sigma; + +use std::{ + collections::HashMap, + fs, mem, path::PathBuf, ptr, + sync::Arc, + time::Duration, +}; + +use aya::{maps::RingBuf, Ebpf}; +use common_lib::{ + EventExecve, + event::{EngineSource, NormalizedEvent}, +}; +use tokio::{io::unix::AsyncFd, sync::RwLock, time}; + +use uuid::Uuid; + +use crate::alert::{Alert, AlertBus}; +use crate::sinks::AuditLog; + +/// Lit les arguments depuis /proc//cmdline (bytes séparés par \0) dans le buffer fourni. +/// Le buffer est laissé tel quel si le fichier est absent (process déjà terminé). +fn read_cmdline(pid: u32, buf: &mut [u8]) +{ + let path = format!("/proc/{}/cmdline", pid); + if let Ok(bytes) = fs::read(&path) + { + let len = bytes.len().min(buf.len()); + buf[..len].copy_from_slice(&bytes[..len]); + } +} + +/// Lit le PPID depuis /proc//status. +/// Retourne 0 si le fichier est absent ou le champ introuvable (process déjà terminé). +fn read_ppid(pid: u32) -> u32 +{ + let path = format!("/proc/{}/status", pid); + let content = match fs::read_to_string(&path) + { + Ok(s) => s, + Err(_) => return 0, + }; + + for line in content.lines() + { + if let Some(rest) = line.strip_prefix("PPid:") + { + return rest.trim().parse().unwrap_or(0); + } + } + + 0 +} + +/// Lit le UID réel du processus depuis `/proc//status` (ligne `Uid:`). +/// Retourne 0 si le fichier est absent (processus déjà terminé). +fn read_uid(pid: u32) -> u32 +{ + let path = format!("/proc/{}/status", pid); + let content = match fs::read_to_string(&path) + { + Ok(s) => s, + Err(_) => return 0, + }; + + for line in content.lines() + { + if let Some(rest) = line.strip_prefix("Uid:") + { + // Format : "Uid:\treal\teffective\tsaved\tfilesystem" + if let Some(real_uid) = rest.split_whitespace().next() + { + return real_uid.parse().unwrap_or(0); + } + } + } + + 0 +} + +/// Résout un UID en nom d'utilisateur via `/etc/passwd`. +/// Retourne la représentation décimale du UID si la résolution échoue. +fn uid_to_username(uid: u32) -> String +{ + if let Ok(content) = fs::read_to_string("/etc/passwd") + { + for line in content.lines() + { + let mut fields = line.splitn(4, ':'); + let username = fields.next().unwrap_or(""); + fields.next(); // mot de passe (x) + let line_uid: u32 = fields.next().unwrap_or("").parse().unwrap_or(u32::MAX); + if line_uid == uid + { + return username.to_string(); + } + } + } + + uid.to_string() +} + +fn bytes_to_string(buf: &[u8]) -> String +{ + let end = buf.iter().position(|&b| b == 0).unwrap_or(buf.len()); + String::from_utf8_lossy(&buf[..end]).into_owned() +} + +fn args_to_string(buf: &[u8]) -> String +{ + let end = buf.iter().rposition(|&b| b != 0).map(|i| i + 1).unwrap_or(0); + + buf[..end] + .split(|&b| b == 0) + .filter(|s| !s.is_empty()) + .map(|s| String::from_utf8_lossy(s)) + .collect::>() + .join(" ") +} + +/// Convertit un `EventExecve` brut (issu du ring buffer) en `NormalizedEvent`. +/// C'est ici que le couplage fort avec le type kernel s'arrête. +fn normalize_execve(event: &EventExecve) -> NormalizedEvent +{ + let mut fields = HashMap::new(); + let uid = read_uid(event.pid); + let user = uid_to_username(uid); + + fields.insert("Image".to_string(), bytes_to_string(&event.filename)); + fields.insert("CommandLine".to_string(), args_to_string(&event.args)); + fields.insert("ProcessId".to_string(), event.pid.to_string()); + fields.insert("ParentProcessId".to_string(), event.ppid.to_string()); + fields.insert("User".to_string(), user); + fields.insert("UserId".to_string(), uid.to_string()); + + NormalizedEvent + { + source: EngineSource::Execve, + category: "process_creation".to_string(), + fields, + } +} + +/// Démarre deux tâches tokio : +/// +/// 1. **Ingestion** — lit le ring buffer via `AsyncFd` et évalue les règles Sigma. +/// N'acquiert qu'un read lock sur le `RuleStore` : jamais bloquée par un reload. +/// Dispatche les alertes vers tous les sinks via `AlertBus`. +/// +/// 2. **Reload** — toutes les 5 secondes, recharge les règles depuis le disque +/// dans une tâche dédiée. Une I/O lente (NFS, disque sous charge) n'impacte +/// pas le pipeline d'ingestion. +pub fn start( + mut ebpf: Ebpf, + bus: AlertBus, + audit_log: AuditLog, + rules_dir: PathBuf, +) -> tokio::task::JoinHandle<()> +{ + let rule_store = Arc::new(RwLock::new( + sigma::RuleStore::load_from_dir(&rules_dir) + )); + + // Tâche de reload : write lock exclusif, toutes les 5 secondes. + // Isolée du pipeline d'ingestion — une I/O lente ne bloque que cette tâche. + let store_for_reload = Arc::clone(&rule_store); + tokio::spawn(async move + { + let mut ticker = time::interval(Duration::from_secs(5)); + ticker.tick().await; // consomme le tick immédiat initial + + loop + { + ticker.tick().await; + store_for_reload.write().await.reload(); + } + }); + + // Tâche d'ingestion : read lock partagé, jamais bloquée par le reload. + tokio::spawn(async move + { + let map = ebpf + .take_map("EXECVE_EVENTS") + .expect("Map EXECVE_EVENTS introuvable"); + + let ring_buf = RingBuf::try_from(map) + .expect("Impossible de créer le RingBuf"); + + let mut async_fd = AsyncFd::new(ring_buf) + .expect("Impossible de créer l'AsyncFd pour le ring buffer"); + + loop + { + let mut guard = async_fd.readable_mut().await + .expect("Erreur AsyncFd readable"); + + while let Some(item) = guard.get_inner_mut().next() + { + if item.len() >= mem::size_of::() + { + let mut raw: EventExecve = unsafe { + ptr::read_unaligned(item.as_ptr() as *const EventExecve) + }; + + raw.ppid = read_ppid(raw.pid); + read_cmdline(raw.pid, &mut raw.args); + + let event = normalize_execve(&raw); + let event_id = Uuid::new_v4().to_string(); + + // Audit log : tous les events, avant évaluation des règles. + audit_log.write(&event, &event_id); + + if let Some((rule, severity)) = rule_store.read().await.first_match(&event) + { + bus.emit(Alert::new( + rule.to_string(), + severity.to_string(), + event_id, + event.fields, + )); + } + } + } + + guard.clear_ready(); + } + }) +} diff --git a/user-land/src/engine/rules/execve_suspicious.yml b/user-land/src/engine/rules/execve_suspicious.yml new file mode 100644 index 0000000..0b7c829 --- /dev/null +++ b/user-land/src/engine/rules/execve_suspicious.yml @@ -0,0 +1,10 @@ +title: Suspicious execve +status: experimental +description: Detects suspicious process execution +logsource: + category: process_creation + product: linux +detection: + selection: + Image|endswith: [] + condition: selection diff --git a/user-land/src/engine/sigma.rs b/user-land/src/engine/sigma.rs new file mode 100644 index 0000000..65123f3 --- /dev/null +++ b/user-land/src/engine/sigma.rs @@ -0,0 +1,658 @@ +use std::{ + collections::HashMap, + fs, + path::{Path, PathBuf}, +}; + +use regex::Regex; +use serde::Deserialize; +use serde_norway::{Mapping, Value}; + +use common_lib::event::NormalizedEvent; + +// ─── Désérialisation brute du YAML ─────────────────────────────────────────── + +#[derive(Debug, Deserialize)] +struct RawLogsource +{ + category: Option, +} + +/// `condition` est extrait séparément ; `#[serde(flatten)]` envoie le reste +/// (les sélections nommées) dans la map. +#[derive(Debug, Deserialize)] +struct RawDetection +{ + condition: String, + #[serde(flatten)] + selections: HashMap, +} + +#[derive(Debug, Deserialize)] +struct RawRule +{ + title: String, + #[serde(default)] + level: Option, + logsource: RawLogsource, + detection: RawDetection, +} + +// ─── AST de condition ──────────────────────────────────────────────────────── + +/// Arbre d'expression issu de la chaîne `condition:` d'une règle Sigma. +/// +/// Grammaire supportée : +/// ```text +/// expr := or_expr +/// or_expr := and_expr ('or' and_expr)* +/// and_expr := not_expr ('and' not_expr)* +/// not_expr := 'not' not_expr | atom +/// atom := '(' expr ')' | quantifier | name +/// quantifier := ('1' | 'all') 'of' pattern +/// pattern := 'them' | GLOB +/// name := IDENT (nom de sélection) +/// ``` +#[derive(Debug, Clone)] +enum ConditionExpr +{ + /// Référence directe à une sélection nommée. + Selection(String), + /// `1 of ` — au moins une sélection matchant le glob doit être vraie. + AnyOf(String), + /// `all of ` — toutes les sélections matchant le glob doivent être vraies. + AllOf(String), + Not(Box), + And(Box, Box), + Or(Box, Box), +} + +// ─── Prédicats compilés ────────────────────────────────────────────────────── + +/// Logique de matching pour un champ, issue des modificateurs Sigma. +/// +/// Modificateurs supportés : +/// - (aucun) / `exact` → égalité +/// - `contains` / `contains|all` → sous-chaîne (any/all) +/// - `startswith` / `startswith|all` → préfixe (any/all) +/// - `endswith` / `endswith|all` → suffixe (any/all) +/// - `re` → regex (tout pattern de la liste) +/// +/// Le suffixe `|all` signifie que **toutes** les valeurs de la liste doivent +/// correspondre (AND implicite), au lieu de n'importe laquelle (OR par défaut). +#[derive(Debug, Clone)] +enum FieldMatch +{ + Exact { values: Vec }, + Contains { values: Vec, all: bool }, + StartsWith { values: Vec, all: bool }, + EndsWith { values: Vec, all: bool }, + Regex { patterns: Vec }, +} + +#[derive(Debug, Clone)] +struct Predicate +{ + /// Nom canonique du champ dans `NormalizedEvent.fields`. + field: String, + matcher: FieldMatch, +} + +/// Une sélection est un AND implicite de tous ses prédicats. +#[derive(Debug, Clone)] +struct Selection +{ + predicates: Vec, +} + +// ─── Règle compilée ────────────────────────────────────────────────────────── + +#[derive(Debug)] +struct SigmaRule +{ + title: String, + level: String, + category: String, + /// Sélections nommées du bloc `detection:`, indexées par leur identifiant. + selections: HashMap, + /// Condition compilée en AST, évaluée contre les sélections. + condition: ConditionExpr, +} + +// ─── RuleStore ─────────────────────────────────────────────────────────────── + +pub struct RuleStore +{ + rules: Vec, + rules_dir: PathBuf, +} + +impl RuleStore +{ + pub fn load_from_dir(dir: &Path) -> Self + { + let rules = load_rules(dir, true); + RuleStore { rules, rules_dir: dir.to_path_buf() } + } + + pub fn reload(&mut self) + { + self.rules = load_rules(&self.rules_dir, false); + } + + /// Retourne `(titre, level)` de la première règle qui correspond à l'événement. + /// Filtre d'abord par `logsource.category` pour éviter les faux positifs inter-moteurs. + pub fn first_match<'a>(&'a self, event: &NormalizedEvent) -> Option<(&'a str, &'a str)> + { + self.rules.iter() + .filter(|rule| rule.category == event.category) + .find(|rule| eval_condition(&rule.condition, event, &rule.selections)) + .map(|rule| (rule.title.as_str(), rule.level.as_str())) + } +} + +// ─── Parseur de condition ───────────────────────────────────────────────────── + +#[derive(Debug, Clone, PartialEq)] +enum Token +{ + And, + Or, + Not, + Of, + Them, + One, // littéral "1" + All, // mot-clé "all" (quantificateur ou nom de sélection selon contexte) + LParen, + RParen, + Name(String), // nom de sélection ou pattern glob +} + +fn tokenize(condition: &str) -> Vec +{ + let mut tokens = Vec::new(); + let mut current = String::new(); + + for ch in condition.chars() + { + match ch + { + '(' => + { + if !current.is_empty() { tokens.push(word_to_token(std::mem::take(&mut current))); } + tokens.push(Token::LParen); + } + ')' => + { + if !current.is_empty() { tokens.push(word_to_token(std::mem::take(&mut current))); } + tokens.push(Token::RParen); + } + ' ' | '\t' | '\n' => + { + if !current.is_empty() { tokens.push(word_to_token(std::mem::take(&mut current))); } + } + c => { current.push(c); } + } + } + if !current.is_empty() { tokens.push(word_to_token(current)); } + tokens +} + +/// Convertit un mot en token en reconnaissant les mots-clés de façon insensible +/// à la casse. Le nom de sélection conserve sa casse originale. +fn word_to_token(word: String) -> Token +{ + match word.to_lowercase().as_str() + { + "and" => Token::And, + "or" => Token::Or, + "not" => Token::Not, + "of" => Token::Of, + "them" => Token::Them, + "1" => Token::One, + "all" => Token::All, + _ => Token::Name(word), + } +} + +struct Parser +{ + tokens: Vec, + pos: usize, +} + +impl Parser +{ + fn new(tokens: Vec) -> Self + { + Parser { tokens, pos: 0 } + } + + fn peek(&self) -> Option<&Token> + { + self.tokens.get(self.pos) + } + + fn advance(&mut self) -> Option + { + if self.pos < self.tokens.len() + { + let t = self.tokens[self.pos].clone(); + self.pos += 1; + Some(t) + } + else { None } + } + + // ── Niveaux de précédence : or < and < not < atom ────────────────────── + + fn parse_expr(&mut self) -> Result + { + self.parse_or() + } + + fn parse_or(&mut self) -> Result + { + let mut left = self.parse_and()?; + + while self.peek() == Some(&Token::Or) + { + self.advance(); + let right = self.parse_and()?; + left = ConditionExpr::Or(Box::new(left), Box::new(right)); + } + + Ok(left) + } + + fn parse_and(&mut self) -> Result + { + let mut left = self.parse_not()?; + + while self.peek() == Some(&Token::And) + { + self.advance(); + let right = self.parse_not()?; + left = ConditionExpr::And(Box::new(left), Box::new(right)); + } + + Ok(left) + } + + fn parse_not(&mut self) -> Result + { + if self.peek() == Some(&Token::Not) + { + self.advance(); + let inner = self.parse_not()?; // récursif : supporte "not not x" + return Ok(ConditionExpr::Not(Box::new(inner))); + } + + self.parse_atom() + } + + fn parse_atom(&mut self) -> Result + { + match self.peek().cloned() + { + Some(Token::LParen) => + { + self.advance(); + let expr = self.parse_expr()?; + match self.advance() + { + Some(Token::RParen) => Ok(expr), + other => Err(format!("')' attendu, trouvé {:?}", other)), + } + } + + Some(Token::One) => + { + self.advance(); + self.parse_quantifier(false) + } + + Some(Token::All) => + { + self.advance(); + // "all of …" → quantificateur ; sans "of" → nom de sélection "all" + if self.peek() == Some(&Token::Of) + { + self.parse_quantifier(true) + } + else + { + Ok(ConditionExpr::Selection("all".to_string())) + } + } + + Some(Token::Name(name)) => + { + self.advance(); + Ok(ConditionExpr::Selection(name)) + } + + other => Err(format!("token inattendu dans la condition : {:?}", other)), + } + } + + /// Consomme `of ` et retourne l'expression de quantification. + fn parse_quantifier(&mut self, all: bool) -> Result + { + match self.advance() + { + Some(Token::Of) => {} + other => return Err(format!("'of' attendu, trouvé {:?}", other)), + } + + let pattern = match self.advance() + { + Some(Token::Them) => "*".to_string(), + Some(Token::Name(p)) => p, + Some(Token::All) => "all".to_string(), + other => return Err(format!("pattern attendu après 'of', trouvé {:?}", other)), + }; + + if all { Ok(ConditionExpr::AllOf(pattern)) } + else { Ok(ConditionExpr::AnyOf(pattern)) } + } +} + +fn parse_condition(condition: &str) -> Result +{ + let tokens = tokenize(condition); + let mut parser = Parser::new(tokens); + let expr = parser.parse_expr()?; + + if parser.peek().is_some() + { + return Err(format!( + "tokens inattendus après la condition (pos {}) : {:?}", + parser.pos, + &parser.tokens[parser.pos..], + )); + } + + Ok(expr) +} + +// ─── Évaluation ────────────────────────────────────────────────────────────── + +fn eval_condition( + expr: &ConditionExpr, + event: &NormalizedEvent, + selections: &HashMap, +) -> bool +{ + match expr + { + ConditionExpr::Selection(name) => + selections.get(name) + .map(|sel| selection_matches(sel, event)) + .unwrap_or(false), + + ConditionExpr::AnyOf(pattern) => + selections.keys() + .filter(|name| glob_matches(pattern, name)) + .any(|name| selection_matches(&selections[name], event)), + + ConditionExpr::AllOf(pattern) => + { + let matching: Vec<_> = selections.keys() + .filter(|name| glob_matches(pattern, name)) + .collect(); + // Si aucune sélection ne matche le glob, "all of" est faux par convention. + !matching.is_empty() + && matching.iter().all(|name| selection_matches(&selections[name.as_str()], event)) + } + + ConditionExpr::Not(inner) => + !eval_condition(inner, event, selections), + + ConditionExpr::And(left, right) => + eval_condition(left, event, selections) + && eval_condition(right, event, selections), + + ConditionExpr::Or(left, right) => + eval_condition(left, event, selections) + || eval_condition(right, event, selections), + } +} + +fn selection_matches(sel: &Selection, event: &NormalizedEvent) -> bool +{ + sel.predicates.iter().all(|pred| predicate_matches(pred, event)) +} + +fn predicate_matches(pred: &Predicate, event: &NormalizedEvent) -> bool +{ + let haystack = match event.get(&pred.field) + { + Some(v) => v, + None => return false, + }; + + match &pred.matcher + { + FieldMatch::Exact { values } => + values.iter().any(|v| haystack == v), + + FieldMatch::Contains { values, all: false } => + values.iter().any(|v| haystack.contains(v.as_str())), + + FieldMatch::Contains { values, all: true } => + values.iter().all(|v| haystack.contains(v.as_str())), + + FieldMatch::StartsWith { values, all: false } => + values.iter().any(|v| haystack.starts_with(v.as_str())), + + FieldMatch::StartsWith { values, all: true } => + values.iter().all(|v| haystack.starts_with(v.as_str())), + + FieldMatch::EndsWith { values, all: false } => + values.iter().any(|v| haystack.ends_with(v.as_str())), + + FieldMatch::EndsWith { values, all: true } => + values.iter().all(|v| haystack.ends_with(v.as_str())), + + FieldMatch::Regex { patterns } => + patterns.iter().any(|p| p.is_match(haystack)), + } +} + +// ─── Chargement depuis le disque ───────────────────────────────────────────── + +fn load_rules(dir: &Path, log_success: bool) -> Vec +{ + let entries = match fs::read_dir(dir) + { + Ok(e) => e, + Err(e) => + { + eprintln!("[sigma] Impossible de lire {:?} : {}", dir, e); + return Vec::new(); + } + }; + + let mut rules = Vec::new(); + + for entry in entries.flatten() + { + let path = entry.path(); + let ext = path.extension().and_then(|e| e.to_str()).unwrap_or(""); + if ext != "yml" && ext != "yaml" { continue; } + + let content = match fs::read_to_string(&path) + { + Ok(s) => s, + Err(e) => { eprintln!("[sigma] Lecture échouée {:?} : {}", path, e); continue; } + }; + + let raw: RawRule = match serde_norway::from_str(&content) + { + Ok(r) => r, + Err(e) => { eprintln!("[sigma] Parsing YAML échoué {:?} : {}", path, e); continue; } + }; + + match compile(raw) + { + Ok(rule) => + { + if log_success + { + eprintln!("[sigma] Règle chargée : {} ({})", rule.title, rule.category); + } + rules.push(rule); + } + Err(e) => { eprintln!("[sigma] Compilation échouée {:?} : {}", path, e); } + } + } + + rules +} + +// ─── Compilation ───────────────────────────────────────────────────────────── + +fn compile(raw: RawRule) -> Result +{ + let category = raw.logsource.category.unwrap_or_default(); + let level = raw.level.unwrap_or_else(|| "medium".to_string()); + let condition = parse_condition(&raw.detection.condition)?; + + let mut selections = HashMap::new(); + for (name, value) in raw.detection.selections + { + let mapping = match value + { + Value::Mapping(m) => m, + _ => return Err(format!("la sélection {:?} doit être un mapping", name)), + }; + selections.insert(name, compile_selection(&mapping)?); + } + + Ok(SigmaRule { title: raw.title, level, category, selections, condition }) +} + +fn compile_selection(mapping: &Mapping) -> Result +{ + let mut predicates = Vec::new(); + + for (k, v) in mapping.iter() + { + let key = match k + { + Value::String(s) => s.as_str(), + _ => return Err("les clés de sélection doivent être des chaînes".to_string()), + }; + predicates.push(compile_predicate(key, v)?); + } + + Ok(Selection { predicates }) +} + +fn compile_predicate(key: &str, value: &Value) -> Result +{ + let parts: Vec<&str> = key.split('|').collect(); + let field = normalize_field_name(parts[0]); + let modifiers = &parts[1..]; + let matcher = compile_matcher(modifiers, value)?; + + Ok(Predicate { field, matcher }) +} + +/// Compile les modificateurs Sigma en `FieldMatch`. +/// +/// `|all` peut se combiner avec `|contains`, `|startswith`, `|endswith` pour +/// exiger que **toutes** les valeurs de la liste matchent (AND au lieu de OR). +fn compile_matcher(modifiers: &[&str], value: &Value) -> Result +{ + let has_all = modifiers.contains(&"all"); + let base = modifiers.iter().find(|&&m| m != "all").copied(); + + match base + { + None | Some("exact") => + Ok(FieldMatch::Exact { values: extract_string_values(value)? }), + + Some("contains") => + Ok(FieldMatch::Contains { values: extract_string_values(value)?, all: has_all }), + + Some("startswith") => + Ok(FieldMatch::StartsWith { values: extract_string_values(value)?, all: has_all }), + + Some("endswith") => + Ok(FieldMatch::EndsWith { values: extract_string_values(value)?, all: has_all }), + + Some("re") => + { + let raw_patterns = extract_string_values(value)?; + let patterns = raw_patterns.iter() + .map(|p| Regex::new(p).map_err(|e| format!("regex invalide {:?} : {}", p, e))) + .collect::, _>>()?; + Ok(FieldMatch::Regex { patterns }) + } + + Some(other) => Err(format!("modificateur non supporté : {:?}", other)), + } +} + +fn normalize_field_name(name: &str) -> String +{ + match name.to_lowercase().as_str() + { + "image" | "filename" => "Image".to_string(), + "commandline" | "args" | "cmdline" => "CommandLine".to_string(), + "processid" | "pid" => "ProcessId".to_string(), + "parentprocessid" | "ppid" => "ParentProcessId".to_string(), + other => + { + // Champs inconnus : capitalize la première lettre et passe en through. + // Permet d'utiliser des champs futurs (User, DestinationIp, …) sans + // modifier le moteur. + let mut chars = other.chars(); + match chars.next() + { + None => String::new(), + Some(c) => c.to_uppercase().collect::() + chars.as_str(), + } + } + } +} + +fn extract_string_values(value: &Value) -> Result, String> +{ + match value + { + Value::String(s) => Ok(vec![s.clone()]), + Value::Null => Ok(Vec::new()), + Value::Sequence(seq) => + { + seq.iter() + .map(|item| match item + { + Value::String(s) => Ok(s.clone()), + Value::Null => Ok(String::new()), + _ => Err("les valeurs d'une séquence doivent être des chaînes ou null".to_string()), + }) + .collect() + } + _ => Err("la valeur d'un champ doit être une chaîne, une séquence ou null".to_string()), + } +} + +/// Matcher de glob simple — supporte un unique `*` comme joker. +fn glob_matches(pattern: &str, name: &str) -> bool +{ + match pattern.find('*') + { + None => pattern == name, + Some(pos) => + { + let prefix = &pattern[..pos]; + let suffix = &pattern[pos + 1..]; + name.len() >= prefix.len() + suffix.len() + && name.starts_with(prefix) + && name.ends_with(suffix) + } + } +} diff --git a/user-land/src/exclusions/mod.rs b/user-land/src/exclusions/mod.rs new file mode 100644 index 0000000..e69de29 diff --git a/user-land/src/loader/mod.rs b/user-land/src/loader/mod.rs new file mode 100644 index 0000000..a45c58d --- /dev/null +++ b/user-land/src/loader/mod.rs @@ -0,0 +1,27 @@ +use aya::{programs::BtfTracePoint, Btf, Ebpf}; + +/// Bytecode eBPF embarqué dans le binaire à la compilation par build.rs. +static KERNEL_LAND_BPF: &[u8] = + include_bytes!(concat!(env!("OUT_DIR"), "/kernel-land.bpf")); + +/// Charge le module eBPF, attache le sensor execve et retourne le handle Ebpf. +/// Le handle doit rester en vie pour que les programmes restent attachés au kernel. +pub fn load() -> Result> +{ + // Copie dans un Vec pour garantir l'alignement 8 octets requis par le parser ELF. + // include_bytes! n'offre qu'un alignement 1 octet. + let mut ebpf = Ebpf::load(&KERNEL_LAND_BPF.to_vec())?; + + // BTF du kernel courant — requis pour les programmes tp_btf + let btf = Btf::from_sys_fs()?; + + let program: &mut BtfTracePoint = ebpf + .program_mut("enter_execve") + .expect("Programme enter_execve introuvable dans l'ELF eBPF") + .try_into()?; + + program.load("sched_process_exec", &btf)?; + program.attach()?; + + Ok(ebpf) +} diff --git a/user-land/src/main.rs b/user-land/src/main.rs new file mode 100644 index 0000000..c6529c2 --- /dev/null +++ b/user-land/src/main.rs @@ -0,0 +1,53 @@ +mod alert; +mod engine; +mod exclusions; +mod loader; +mod sinks; +mod ui; + +use std::{ + fs::OpenOptions, + os::unix::io::IntoRawFd, + path::PathBuf, +}; + +use tokio::sync::mpsc; + +use alert::AlertBus; +use sinks::{AuditLog, JsonFileSink, TuiSink}; + +#[tokio::main] +async fn main() -> Result<(), Box> +{ + // Redirige stderr vers un fichier de log pour ne pas polluer la TUI + let log = OpenOptions::new() + .create(true) + .append(true) + .open("/tmp/vauban.log")?; + unsafe { libc::dup2(log.into_raw_fd(), libc::STDERR_FILENO); } + + let rules_dir = PathBuf::from("/home/songbird/project/vauban/rules"); + + // Charge et attache le module eBPF + let ebpf = loader::load()?; + + // Canal dédié au sink TUI — les autres sinks (JSON, …) ne passent pas par ici. + let (tui_tx, tui_rx) = mpsc::channel(1024); + + let bus = AlertBus::new(vec![ + Box::new(TuiSink::new(tui_tx)), + Box::new(JsonFileSink::new(PathBuf::from("/tmp/vauban-alerts.jsonl"))), + ]); + + // Démarre la tâche tokio de lecture du ring buffer. + // ebpf est moved dans la tâche — les programmes eBPF restent attachés + // tant que la tâche vit. + let audit_log = AuditLog::new(PathBuf::from("/tmp/vauban-audit.jsonl")); + + let _engine = engine::start(ebpf, bus, audit_log, rules_dir); + + // Lance la TUI (bloque jusqu'à [q]) + ui::run(tui_rx)?; + + Ok(()) +} diff --git a/user-land/src/sinks.rs b/user-land/src/sinks.rs new file mode 100644 index 0000000..ca903fa --- /dev/null +++ b/user-land/src/sinks.rs @@ -0,0 +1,142 @@ +use std::{ + collections::HashMap, + fs::OpenOptions, + io::Write, + path::PathBuf, +}; + +use chrono::{DateTime, Utc}; +use serde::Serialize; +use tokio::sync::mpsc::Sender; + +use crate::alert::{Alert, AlertSink}; +use common_lib::event::NormalizedEvent; + +// ─── TuiSink ───────────────────────────────────────────────────────────────── + +/// Achemine les alertes vers la TUI via un canal tokio. +/// Utilise `try_send` (non-bloquant) : si le canal est plein, l'alerte est +/// silencieusement ignorée côté TUI — les autres sinks continuent à recevoir. +pub struct TuiSink +{ + tx: Sender, +} + +impl TuiSink +{ + pub fn new(tx: Sender) -> Self + { + TuiSink { tx } + } +} + +impl AlertSink for TuiSink +{ + fn emit(&self, alert: &Alert) + { + let _ = self.tx.try_send(alert.clone()); + } +} + +// ─── JsonFileSink ───────────────────────────────────────────────────────────── + +/// Écrit chaque alerte sous forme d'une ligne JSON (JSONL / ndjson) dans un fichier. +/// Compatible avec Elastic, Splunk, Loki, et tout outil qui consomme du JSONL. +/// Le fichier est ouvert en mode append à chaque emit — pas de handle persistant, +/// ce qui évite les problèmes de rotation de log (logrotate, etc.). +pub struct JsonFileSink +{ + path: PathBuf, +} + +impl JsonFileSink +{ + pub fn new(path: PathBuf) -> Self + { + JsonFileSink { path } + } +} + +impl AlertSink for JsonFileSink +{ + fn emit(&self, alert: &Alert) + { + let line = match serde_json::to_string(&alert) + { + Ok(s) => s, + Err(e) => + { + eprintln!("[JsonFileSink] Sérialisation échouée : {}", e); + return; + } + }; + + match OpenOptions::new().create(true).append(true).open(&self.path) + { + Ok(mut f) => { let _ = writeln!(f, "{}", line); } + Err(e) => + { + eprintln!("[JsonFileSink] Impossible d'ouvrir {:?} : {}", self.path, e); + } + } + } +} + +// ─── AuditLog ───────────────────────────────────────────────────────────────── + +/// Entrée d'audit : tous les événements, qu'ils matchent une règle ou non. +/// Utilisé pour la forensique post-incident — permet de reconstituer l'activité +/// complète du système même en l'absence de règle Sigma correspondante. +/// `event_id` est partagé avec l'alerte correspondante le cas échéant. +#[derive(Serialize)] +struct AuditEntry<'a> +{ + timestamp: DateTime, + event_id: &'a str, + category: &'a str, + fields: &'a HashMap, +} + +/// Écrit tous les `NormalizedEvent` en JSONL, avant toute évaluation des règles. +pub struct AuditLog +{ + path: PathBuf, +} + +impl AuditLog +{ + pub fn new(path: PathBuf) -> Self + { + AuditLog { path } + } + + pub fn write(&self, event: &NormalizedEvent, event_id: &str) + { + let entry = AuditEntry + { + timestamp: Utc::now(), + event_id, + category: &event.category, + fields: &event.fields, + }; + + let line = match serde_json::to_string(&entry) + { + Ok(s) => s, + Err(e) => + { + eprintln!("[AuditLog] Sérialisation échouée : {}", e); + return; + } + }; + + match OpenOptions::new().create(true).append(true).open(&self.path) + { + Ok(mut f) => { let _ = writeln!(f, "{}", line); } + Err(e) => + { + eprintln!("[AuditLog] Impossible d'ouvrir {:?} : {}", self.path, e); + } + } + } +} diff --git a/user-land/src/ui/mod.rs b/user-land/src/ui/mod.rs new file mode 100644 index 0000000..1d0943b --- /dev/null +++ b/user-land/src/ui/mod.rs @@ -0,0 +1,181 @@ +use std::io; +use std::time::Duration; + +use crossterm::{ + event::{self, Event, KeyCode, KeyEventKind}, + execute, + terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen}, +}; +use ratatui::{ + backend::CrosstermBackend, + layout::{Constraint, Direction, Layout}, + style::{Color, Modifier, Style}, + text::{Line, Span}, + widgets::{Block, Borders, Cell, Row, Table, TableState}, + Terminal, +}; +use tokio::sync::mpsc::Receiver; + +use crate::alert::Alert; + +const TICK_RATE: Duration = Duration::from_millis(16); // ~60 fps + +/// Point d'entrée de la TUI. Bloque jusqu'à ce que l'utilisateur quitte. +pub fn run(mut rx: Receiver) -> Result<(), Box> +{ + enable_raw_mode()?; + let mut stdout = io::stdout(); + execute!(stdout, EnterAlternateScreen)?; + + let backend = CrosstermBackend::new(stdout); + let mut terminal = Terminal::new(backend)?; + + let mut alerts: Vec = Vec::new(); + let mut table_state = TableState::default(); + + let result = run_loop(&mut terminal, &mut rx, &mut alerts, &mut table_state); + + // Restauration du terminal même en cas d'erreur + disable_raw_mode()?; + execute!(terminal.backend_mut(), LeaveAlternateScreen)?; + terminal.show_cursor()?; + + result +} + +fn run_loop( + terminal: &mut Terminal>, + rx: &mut Receiver, + alerts: &mut Vec, + state: &mut TableState, +) -> Result<(), Box> +{ + loop + { + while let Ok(alert) = rx.try_recv() + { + alerts.push(alert); + state.select(Some(alerts.len().saturating_sub(1))); + } + + terminal.draw(|frame| render(frame, alerts, state))?; + + if event::poll(TICK_RATE)? + { + if let Event::Key(key) = event::read()? + { + if key.kind == KeyEventKind::Press + { + match key.code + { + KeyCode::Char('q') | KeyCode::Esc => return Ok(()), + KeyCode::Down => scroll_down(state, alerts.len()), + KeyCode::Up => scroll_up(state), + _ => {} + } + } + } + } + } +} + +fn render( + frame: &mut ratatui::Frame, + alerts: &[Alert], + state: &mut TableState, +) +{ + let area = frame.area(); + + let chunks = Layout::default() + .direction(Direction::Vertical) + .constraints([Constraint::Length(3), Constraint::Min(0)]) + .split(area); + + // Barre de titre + let title = Line::from(vec![ + Span::styled(" Vauban v0.0.1 ", Style::default().add_modifier(Modifier::BOLD)), + Span::raw("— "), + Span::styled( + format!("{} alertes", alerts.len()), + Style::default().fg(Color::Yellow), + ), + Span::raw(" "), + Span::styled( + "[↑↓] scroll [q] quitter", + Style::default().fg(Color::DarkGray), + ), + ]); + + frame.render_widget( + Block::default().borders(Borders::ALL).title(title), + chunks[0], + ); + + // En-têtes de la table + let header = Row::new( + ["Severity", "Rule", "PID", "Image", "CommandLine"].map(|h| + Cell::from(h).style( + Style::default().fg(Color::Cyan).add_modifier(Modifier::BOLD), + ) + ) + ) + .height(1) + .bottom_margin(1); + + // Coloration par sévérité + let severity_color = |s: &str| match s + { + "critical" => Color::Red, + "high" => Color::LightRed, + "medium" => Color::Yellow, + "low" => Color::Green, + _ => Color::White, + }; + + // Lignes + let rows: Vec = alerts + .iter() + .map(|a| + { + let color = severity_color(&a.severity); + Row::new([ + Cell::from(a.severity.clone()) + .style(Style::default().fg(color).add_modifier(Modifier::BOLD)), + Cell::from(a.rule.clone()), + Cell::from(a.event.get("ProcessId").cloned().unwrap_or_default()), + Cell::from(a.event.get("Image").cloned().unwrap_or_default()), + Cell::from(a.event.get("CommandLine").cloned().unwrap_or_default()), + ]) + }) + .collect(); + + let table = Table::new( + rows, + [ + Constraint::Length(10), + Constraint::Percentage(25), + Constraint::Length(8), + Constraint::Percentage(30), + Constraint::Min(0), + ], + ) + .header(header) + .block(Block::default().borders(Borders::ALL).title(" Alertes détectées ")) + .row_highlight_style(Style::default().bg(Color::DarkGray)); + + frame.render_stateful_widget(table, chunks[1], state); +} + +fn scroll_down(state: &mut TableState, len: usize) +{ + if len == 0 { return; } + let next = state.selected().map(|i| (i + 1).min(len - 1)).unwrap_or(0); + state.select(Some(next)); +} + +fn scroll_up(state: &mut TableState) +{ + let prev = state.selected().map(|i| i.saturating_sub(1)).unwrap_or(0); + state.select(Some(prev)); +}