From fc1e1d8a3dc96a41ab7b7c6060ee5d07e7ea35cc Mon Sep 17 00:00:00 2001 From: LeChatP Date: Mon, 27 May 2024 14:10:54 +0200 Subject: [PATCH 01/31] bump version in readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 02b9b31c..69e8dbe0 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@

-# RootAsRole (V3.0.0-alpha.4) : A memory-safe and security-oriented alternative to sudo/su commands +# RootAsRole (V3.0.0-alpha.5) : A memory-safe and security-oriented alternative to sudo/su commands **RootAsRole** is a project to allow Linux/Unix administrators to delegate their administrative tasks access rights to users. Its main features are : From 9137a3bc2a7548d8576ca197f2ed712974cedd36 Mon Sep 17 00:00:00 2001 From: LeChatP Date: Mon, 27 May 2024 16:50:16 +0200 Subject: [PATCH 02/31] chore: Remove unnecessary explaination in no-root.md --- book/src/knowledge/no-root.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/book/src/knowledge/no-root.md b/book/src/knowledge/no-root.md index 7eb5fa38..1ad549fd 100644 --- a/book/src/knowledge/no-root.md +++ b/book/src/knowledge/no-root.md @@ -34,8 +34,4 @@ This should install apache2 configuration files owned by apache2 user and group. ```bash sr systemctl start apache2 -``` - -This should start apache2 with the apache2 user. You can also stop it with the apache2 user: - - +``` \ No newline at end of file From 2588b0cca723b3af0a84813f572a30223b6daf33 Mon Sep 17 00:00:00 2001 From: LeChatP Date: Wed, 29 May 2024 19:02:21 +0200 Subject: [PATCH 03/31] docs + upgrade addition and dependencies script fix --- Makefile | 2 +- book/src/knowledge/role_hierarchy.md | 2 +- book/src/knowledge/sod.md | 10 +++++++--- dependencies.sh | 20 +++++++------------- src/database/version.rs | 9 ++++++++- src/mod.rs | 4 ++++ src/util.rs | 8 +++++++- 7 files changed, 35 insertions(+), 20 deletions(-) diff --git a/Makefile b/Makefile index 4773462c..9d72ed95 100644 --- a/Makefile +++ b/Makefile @@ -28,7 +28,7 @@ ifneq (0, $(filter $(shell capsh --has-p=CAP_DAC_OVERRIDE,CAP_CHOWN &>/dev/null; $(PRIV_EXE) chown root:root /usr/bin/sr /usr/bin/chsr /usr/bin/capable $(PRIV_EXE) chmod 0555 /usr/bin/sr /usr/bin/chsr /usr/bin/capable $(PRIV_EXE) setcap "=p" /usr/bin/sr - $(PRIV_EXE) setcap cap_dac_override,cap_sys_admin,cap_sys_ptrace+ep /usr/bin/capable + $(PRIV_EXE) setcap cap_sys_resource,cap_dac_override,cap_sys_admin,cap_sys_ptrace+ep /usr/bin/capable else ifneq (0, $(shell capsh --has-p=CAP_SETFCAP &>/dev/null; echo $?)) @echo "You must have CAP_SETFCAP privilege to perform installation." else diff --git a/book/src/knowledge/role_hierarchy.md b/book/src/knowledge/role_hierarchy.md index be9eae2f..32b14479 100644 --- a/book/src/knowledge/role_hierarchy.md +++ b/book/src/knowledge/role_hierarchy.md @@ -1,3 +1,3 @@ # How does work role hierarchy feature -The role hierarchy feature allows to extend a role with another role. This feature is useful when you don't want to duplicate the same rights in different roles. The role hierarchy feature allows to create a role that inherits the rights of another role. \ No newline at end of file +A role hierarchy allows roles to be organized in a tree-like structure where roles can inherit permissions from other roles. This means that a higher-level role, often called a parent role, can pass down its permissions to lower-level roles, known as child roles. For example, in a corporate environment, a role hierarchy might be set up so that a "Manager" role inherits all the permissions of an "Employee" role, plus additional managerial permissions. This hierarchical structuring simplifies the assignment and management of permissions because changes to a parent role automatically propagate to its child roles, reducing redundancy and the potential for errors. In RootAsRole this is possible by adding the `parent` array in a role definition. \ No newline at end of file diff --git a/book/src/knowledge/sod.md b/book/src/knowledge/sod.md index 25c8ce97..def0f64d 100644 --- a/book/src/knowledge/sod.md +++ b/book/src/knowledge/sod.md @@ -2,10 +2,14 @@ ## Static Separation of Duties -Static separation of duties (SSD) in RBAC is a security feature that restricts users from having conflicting roles. This means that a user cannot have two roles that are in conflict. In RootAsRole, if a user is still assigned to two roles that are in conflict, the user will not be able to execute any command of these roles. +Static Separation of Duties (SSD) within an RBAC ensures that no single user can hold conflicting administrative roles, enhancing security and operational integrity. For instance, SSD policies would prevent a user assigned as a "System Administrator" from also being a "Network Administrator" or "Backup Administrator," thereby mitigating the risk of entire control of a system and potential fraud. -For example, let's say we have two roles: `admin` and `user`. The `admin` role has the ability to create new users, while the `user` role does not. If a user is assigned to both the `admin` and `user` roles, the user will not be able to execute any command of these roles. +With RootAsRole, you can implement SSD by creating roles that are mutually exclusive by adding `ssd` array in a role definition. For example, you can create a role for a "System Administrator" and another for a "Network Administrator." You can then assign these roles to different users, ensuring that no single user has both roles at the same time. If a user obtains a new role that conflicts with an existing role, RootAsRole will prevent the user to use any conflicting role. ## Dynamic Separation of Duties -Dynamic separation of duties (DSD) in RBAC is a security feature that restricts users from having conflicting roles at the same time. This means that a user cannot have two roles that are in conflict at the same time. For now, RootAsRole does not support this feature. \ No newline at end of file +Dynamic Separation of Duties (DSD) in RBAC ensures that no single user can perform conflicting roles within a system simultaneously, managed at runtime. It verifies users' or system sessions context before allowing them to activate roles, ensuring that they do not have conflicting permissions given the dynamic context of the system. + +For example, In a very small business, it may have only one system administrator. In this case the small business can enforce a DSD feature that prevent the unique administrator to simultaneously activate roles that allow both system configuration and audit log management, and cannot perform system configuration if no audit is enforced, ensuring that the administrator cannot cover his tracks. + +For now, RootAsRole does not support DSD. \ No newline at end of file diff --git a/dependencies.sh b/dependencies.sh index 013ed685..69e282d7 100755 --- a/dependencies.sh +++ b/dependencies.sh @@ -38,7 +38,10 @@ elif command -v yum &>/dev/null; then $PRIV_EXE yum install "${YES}" gcovr fi; elif command -v pacman &>/dev/null; then - $PRIV_EXE pacman -S "${YES}" man pkgconf openssl curl cargo-make gcc llvm clang libcap libcap-ng libelf libxml2 linux-headers linux-api-headers make + if [ -n "${YES}" ]; then + NOCONFIRM="--noconfirm" + fi + $PRIV_EXE pacman -S "${NOCONFIRM}" mandb pkgconf openssl curl gcc llvm clang libcap libcap-ng libelf libxml2 linux-headers linux-api-headers make bpf if [ -n "${DEBUG}" ]; then $PRIV_EXE pacman -S "${YES}" gdb fi; @@ -60,17 +63,8 @@ fi . "$HOME/.cargo/env" # ask for user to install bpf-linker -if [ "${YES}" == "-y" ]; then - echo "cargo install bpf-linker into /usr/local/bin" - cargo install --force bpf-linker -else - read -r -p "Install bpf-linker in /usr/local/bin? (mandatory for build) [y/N] " response - case "$response" in - [yY][eE][sS]|[yY]|[oO]) - echo "cargo install bpf-linker into /usr/local/bin" - cargo install --force bpf-linker - ;; - esac -fi +cargo install --force bpf-linker bindgen-cli +cargo install --git https://github.com/aya-rs/aya -- aya-tool +aya-tool generate task_struct > capable-ebpf/src/vmlinux.rs echo "dependencies installed. Ready to compile." diff --git a/src/database/version.rs b/src/database/version.rs index 45682418..1b8e5466 100644 --- a/src/database/version.rs +++ b/src/database/version.rs @@ -40,4 +40,11 @@ pub(crate) const JSON_MIGRATIONS: &[Migration] = &[Migration { down: |_, _| Ok(()), }]; -pub(crate) const SETTINGS_MIGRATIONS: &[Migration] = &[]; +pub(crate) const SETTINGS_MIGRATIONS: &[Migration] = &[ + Migration { + from: || Version::parse("3.0.0-alpha.4").unwrap(), + to: || Version::parse("3.0.0-alpha.5").unwrap(), + up: |_, _| Ok(()), + down: |_, _| Ok(()), + } +]; diff --git a/src/mod.rs b/src/mod.rs index 0a0b341c..4f0bca71 100644 --- a/src/mod.rs +++ b/src/mod.rs @@ -78,6 +78,10 @@ pub fn setgid_effective(enable: bool) -> Result<(), capctl::Error> { cap_effective(Cap::SETGID, enable) } +pub fn fowner_effective(enable: bool) -> Result<(), capctl::Error> { + cap_effective(Cap::FOWNER, enable) +} + pub fn read_effective(enable: bool) -> Result<(), capctl::Error> { cap_effective(Cap::DAC_READ_SEARCH, enable) } diff --git a/src/util.rs b/src/util.rs index 9dbf2a25..90bf9afa 100644 --- a/src/util.rs +++ b/src/util.rs @@ -5,7 +5,7 @@ use libc::{FS_IOC_GETFLAGS, FS_IOC_SETFLAGS}; use pest::{error::LineColLocation, RuleType}; use tracing::{debug, warn}; -use crate::common::{immutable_effective, open_with_privileges}; +use crate::common::{dac_override_effective, fowner_effective, immutable_effective, open_with_privileges, read_effective}; pub const RST: &str = "\x1B[0m"; pub const BOLD: &str = "\x1B[1m"; @@ -59,11 +59,17 @@ pub fn toggle_lock_config(file: &PathBuf, lock: bool) -> Result<(), String> { } debug!("Setting immutable privilege"); immutable_effective(true).map_err(|e| e.to_string())?; + debug!("Setting dac override privilege"); + read_effective(true).or(dac_override_effective(true)).map_err(|e| e.to_string())?; + fowner_effective(true).map_err(|e| e.to_string())?; + debug!("Setting immutable flag"); if unsafe { nix::libc::ioctl(fd, FS_IOC_SETFLAGS, &mut val) } < 0 { return Err(std::io::Error::last_os_error().to_string()); } debug!("Resetting immutable privilege"); immutable_effective(false).map_err(|e| e.to_string())?; + read_effective(false).and(dac_override_effective(false)).map_err(|e| e.to_string())?; + fowner_effective(false).map_err(|e| e.to_string())?; Ok(()) } From 0e4dd43a6598088f7a4170de12cc1404583d6a90 Mon Sep 17 00:00:00 2001 From: LeChatP Date: Wed, 29 May 2024 23:18:28 +0200 Subject: [PATCH 04/31] refactor: Fix and add logging in capable-ebpf module --- capable-ebpf/src/main.rs | 41 +- capable-ebpf/src/vmlinux.rs | 71139 +++++++++++++++++----------------- 2 files changed, 35861 insertions(+), 35319 deletions(-) diff --git a/capable-ebpf/src/main.rs b/capable-ebpf/src/main.rs index 1cde6af3..9082590a 100644 --- a/capable-ebpf/src/main.rs +++ b/capable-ebpf/src/main.rs @@ -10,6 +10,7 @@ mod vmlinux; use aya_ebpf::{macros::{kprobe,map}, maps::HashMap, programs::ProbeContext, helpers::{bpf_get_current_task, bpf_get_current_uid_gid, bpf_probe_read_kernel}}; use vmlinux::{task_struct, nsproxy, pid_namespace, ns_common}; +use aya_log_ebpf::{debug,info,error}; const MAX_PID : u32 = 4*1024*1024; @@ -29,26 +30,38 @@ static mut PNSID_NSID_MAP: HashMap = HashMap::with_max_entries(MAX_PID #[kprobe] pub fn capable(ctx: ProbeContext) -> u32 { - match try_capable(ctx) { + match try_capable(&ctx) { Ok(ret) => ret, Err(ret) => ret as u32, } } -fn try_capable(ctx: ProbeContext) -> Result { +fn try_capable(ctx: &ProbeContext) -> Result { + info!(ctx,"capable"); unsafe { let task: TaskStructPtr = bpf_get_current_task() as TaskStructPtr; + debug!(ctx,"debug1"); let task = bpf_probe_read_kernel(&task)?; + debug!(ctx,"debug2"); let ppid: i32 = get_ppid(task)?; - let pid: i32 = bpf_probe_read_kernel(&(*task).pid)?; - let cap: u64 = (1 << ctx.arg::(2).expect("failed to get arg")) as u64; + debug!(ctx,"debug3"); + let pid: i32 = bpf_probe_read_kernel(&(*task).pid)? as i32; + debug!(ctx,"debug4"); + let cap: u64 = (1 << ctx.arg::(2).unwrap()) as u64; + debug!(ctx,"debug5"); let uid: u64 = bpf_get_current_uid_gid(); + debug!(ctx,"debug6"); let zero = 0; let capval: u64 = *CAPABILITIES_MAP.get(&pid).unwrap_or(&zero); + debug!(ctx,"debug7"); let pinum_inum :u64 = Into::::into(get_parent_ns_inode(task)?)<<32 | Into::::into(get_ns_inode(task)?); + debug!(ctx,"debug8"); UID_GID_MAP.insert(&pid, &uid,0).expect("failed to insert uid"); + debug!(ctx,"debug9"); PNSID_NSID_MAP.insert(&pid, &pinum_inum,0).expect("failed to insert pnsid"); + debug!(ctx,"debug10"); PPID_MAP.insert(&pid, &ppid,0).expect("failed to insert ppid"); + debug!(ctx,"debug11"); CAPABILITIES_MAP.insert(&pid, &(capval|cap),0).expect("failed to insert cap"); } Ok(0) @@ -57,23 +70,29 @@ fn try_capable(ctx: ProbeContext) -> Result { unsafe fn get_ppid(task : TaskStructPtr) -> Result { let parent_task: TaskStructPtr = get_parent_task(task)?; - return bpf_probe_read_kernel(&(*parent_task).pid); + bpf_probe_read_kernel(&(*parent_task).pid) } unsafe fn get_parent_task(task : TaskStructPtr) -> Result { - return bpf_probe_read_kernel(&(*task).real_parent); + bpf_probe_read_kernel(&(*task).parent) } unsafe fn get_parent_ns_inode(task : TaskStructPtr) -> Result { let parent_task: TaskStructPtr = get_parent_task(task)?; - return get_ns_inode(parent_task); + get_ns_inode(parent_task) } unsafe fn get_ns_inode(task : TaskStructPtr) -> Result { - let nsp: *mut nsproxy = bpf_probe_read_kernel(&(*task).nsproxy)?; - let pns: *mut pid_namespace = bpf_probe_read_kernel(&(*nsp).pid_ns_for_children)?; - let nsc: ns_common = bpf_probe_read_kernel(&(*pns).ns)?; - return bpf_probe_read_kernel(&nsc.inum); + let nsp: *mut nsproxy = bpf_probe_read_kernel(&(*task).nsproxy).map_err(|e| { + e as u32 + })?; + let pns: *mut pid_namespace = bpf_probe_read_kernel(&(*nsp).pid_ns_for_children).map_err(|e| { + e as u32 + })?; + let nsc: ns_common = bpf_probe_read_kernel(&(*pns).ns).map_err(|e| { + e as u32 + })?; + bpf_probe_read_kernel(&nsc.inum) } #[panic_handler] diff --git a/capable-ebpf/src/vmlinux.rs b/capable-ebpf/src/vmlinux.rs index 2c6651e3..a1fddd0d 100644 --- a/capable-ebpf/src/vmlinux.rs +++ b/capable-ebpf/src/vmlinux.rs @@ -153,49 +153,33 @@ impl ::core::cmp::PartialEq for __BindgenUnionField { } } impl ::core::cmp::Eq for __BindgenUnionField {} -pub type __u64 = ::aya_ebpf::cty::c_ulonglong; -pub type u64_ = __u64; -pub type bool_ = bool; -pub type __s8 = ::aya_ebpf::cty::c_schar; pub type __u8 = ::aya_ebpf::cty::c_uchar; -pub type __s16 = ::aya_ebpf::cty::c_short; pub type __u16 = ::aya_ebpf::cty::c_ushort; pub type __s32 = ::aya_ebpf::cty::c_int; pub type __u32 = ::aya_ebpf::cty::c_uint; pub type __s64 = ::aya_ebpf::cty::c_longlong; -pub type s8 = __s8; +pub type __u64 = ::aya_ebpf::cty::c_ulonglong; pub type u8_ = __u8; -pub type s16 = __s16; pub type u16_ = __u16; pub type s32 = __s32; pub type u32_ = __u32; pub type s64 = __s64; +pub type u64_ = __u64; pub type __kernel_long_t = ::aya_ebpf::cty::c_long; pub type __kernel_ulong_t = ::aya_ebpf::cty::c_ulong; pub type __kernel_pid_t = ::aya_ebpf::cty::c_int; pub type __kernel_uid32_t = ::aya_ebpf::cty::c_uint; -pub type __kernel_gid32_t = ::aya_ebpf::cty::c_uint; pub type __kernel_size_t = __kernel_ulong_t; -pub type __kernel_loff_t = ::aya_ebpf::cty::c_longlong; pub type __kernel_time64_t = ::aya_ebpf::cty::c_longlong; pub type __kernel_clock_t = __kernel_long_t; pub type __kernel_timer_t = ::aya_ebpf::cty::c_int; pub type __kernel_clockid_t = ::aya_ebpf::cty::c_int; -pub type __poll_t = ::aya_ebpf::cty::c_uint; -pub type __kernel_dev_t = u32_; -pub type dev_t = __kernel_dev_t; -pub type umode_t = ::aya_ebpf::cty::c_ushort; pub type pid_t = __kernel_pid_t; pub type clockid_t = __kernel_clockid_t; +pub type bool_ = bool; pub type uid_t = __kernel_uid32_t; -pub type gid_t = __kernel_gid32_t; -pub type loff_t = __kernel_loff_t; pub type ktime_t = s64; -pub type sector_t = u64_; -pub type blkcnt_t = u64_; pub type gfp_t = ::aya_ebpf::cty::c_uint; -pub type fmode_t = ::aya_ebpf::cty::c_uint; -pub type phys_addr_t = u64_; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct atomic_t { @@ -230,9 +214,476 @@ pub struct callback_head { pub func: ::core::option::Option, } #[repr(C)] -#[derive(Debug)] -pub struct cacheline_padding { - pub x: __IncompleteArrayField<::aya_ebpf::cty::c_char>, +#[derive(Debug, Copy, Clone)] +pub struct __kernel_timespec { + pub tv_sec: __kernel_time64_t, + pub tv_nsec: ::aya_ebpf::cty::c_longlong, +} +#[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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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, Copy, Clone)] @@ -914,201 +1365,9 @@ pub struct llist_head { } #[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 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 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 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 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 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 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 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 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 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 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 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, Copy, Clone)] -pub struct thread_shstk { - pub base: u64_, - pub size: u64_, +pub struct thread_shstk { + pub base: u64_, + pub size: u64_, } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -1347,30 +1606,14 @@ impl thread_struct { } } #[inline] - pub fn sig_on_uaccess_err(&self) -> ::aya_ebpf::cty::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } - } - #[inline] - pub fn set_sig_on_uaccess_err(&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 fn new_bitfield_1( iopl_warn: ::aya_ebpf::cty::c_uint, - sig_on_uaccess_err: ::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.set(1usize, 1u8, { - let sig_on_uaccess_err: u32 = unsafe { ::core::mem::transmute(sig_on_uaccess_err) }; - sig_on_uaccess_err as u64 - }); __bindgen_bitfield_unit } #[inline] @@ -1434,6 +1677,8 @@ pub struct task_struct { 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, @@ -1557,6 +1802,7 @@ pub struct task_struct { pub perf_event_list: list_head, 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, @@ -1629,8 +1875,6 @@ pub struct task_struct { pub rethooks: llist_head, pub l1d_flush_kill: callback_head, pub user_event_mm: *mut user_event_mm, - pub _bitfield_align_4: [u8; 0], - pub _bitfield_4: __BindgenBitfieldUnit<[u8; 24usize]>, pub thread: thread_struct, } impl task_struct { @@ -1988,14 +2232,299 @@ impl task_struct { }); __bindgen_bitfield_unit } - #[inline] - pub fn new_bitfield_4() -> __BindgenBitfieldUnit<[u8; 24usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); - __bindgen_bitfield_unit - } } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct math_emu_info { + pub ___orig_eip: ::aya_ebpf::cty::c_long, + pub regs: *mut pt_regs, +} +#[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, +} +pub type old_time32_t = s32; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct old_timespec32 { + pub tv_sec: old_time32_t, + pub tv_nsec: s32, +} +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; +} +#[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 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, +} +#[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 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), + >, + 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 pick_next_task: + ::core::option::Option *mut task_struct>, + pub put_prev_task: + ::core::option::Option, + pub set_next_task: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rq, arg2: *mut task_struct, arg3: bool_), + >, + 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 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 pick_task: ::core::option::Option *mut task_struct>, + 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 switched_from: + ::core::option::Option, + pub switched_to: + ::core::option::Option, + 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, + >, +} +pub type __kernel_gid32_t = ::aya_ebpf::cty::c_uint; +pub type gid_t = __kernel_gid32_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kgid_t { + pub val: gid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct kernel_cap_t { + pub val: 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, +} +pub type __s8 = ::aya_ebpf::cty::c_schar; +pub type __s16 = ::aya_ebpf::cty::c_short; +pub type s8 = __s8; +pub type s16 = __s16; +pub type __kernel_loff_t = ::aya_ebpf::cty::c_longlong; +pub type __poll_t = ::aya_ebpf::cty::c_uint; +pub type __kernel_dev_t = u32_; +pub type dev_t = __kernel_dev_t; +pub type umode_t = ::aya_ebpf::cty::c_ushort; +pub type loff_t = __kernel_loff_t; +pub type sector_t = u64_; +pub type blkcnt_t = u64_; +pub type fmode_t = ::aya_ebpf::cty::c_uint; +pub type phys_addr_t = u64_; +pub type irq_hw_number_t = ::aya_ebpf::cty::c_ulong; +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct lock_class_key {} #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -2029,132 +2558,29 @@ pub struct file_system_type { } #[repr(C)] #[derive(Debug, 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 cs: ::aya_ebpf::cty::c_ulong, - pub flags: ::aya_ebpf::cty::c_ulong, - pub sp: ::aya_ebpf::cty::c_ulong, - pub ss: ::aya_ebpf::cty::c_ulong, -} -pub type pteval_t = ::aya_ebpf::cty::c_ulong; -pub type pmdval_t = ::aya_ebpf::cty::c_ulong; -pub type pudval_t = ::aya_ebpf::cty::c_ulong; -pub type pgdval_t = ::aya_ebpf::cty::c_ulong; -pub type pgprotval_t = ::aya_ebpf::cty::c_ulong; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct pte_t { - pub pte: pteval_t, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct pmd_t { - pub pmd: pmdval_t, -} -#[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 pgd_t { - pub pgd: pgdval_t, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct pud_t { - pub pud: pudval_t, -} -pub type pgtable_t = *mut page; -#[repr(C)] -#[derive(Copy, Clone)] -pub struct page { - pub flags: ::aya_ebpf::cty::c_ulong, - 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 __bindgen_anon_1: page__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, - pub buddy_list: list_head, - pub pcp_list: list_head, +pub struct static_call_site { + pub addr: s32, + pub key: s32, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct page__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, +pub struct static_call_mod { + pub next: *mut static_call_mod, + pub mod_: *mut module, + pub sites: *mut static_call_site, } #[repr(C)] #[derive(Copy, Clone)] -pub union page__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(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 pgmap: *mut dev_pagemap, - pub zone_device_data: *mut ::aya_ebpf::cty::c_void, +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 page__bindgen_ty_2 { - pub _mapcount: atomic_t, - pub page_type: ::aya_ebpf::cty::c_uint, +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)] @@ -2266,6 +2692,110 @@ impl orc_entry { __bindgen_bitfield_unit } } +pub type pteval_t = ::aya_ebpf::cty::c_ulong; +pub type pmdval_t = ::aya_ebpf::cty::c_ulong; +pub type pudval_t = ::aya_ebpf::cty::c_ulong; +pub type pgdval_t = ::aya_ebpf::cty::c_ulong; +pub type pgprotval_t = ::aya_ebpf::cty::c_ulong; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pte_t { + pub pte: pteval_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pmd_t { + pub pmd: pmdval_t, +} +#[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 pgd_t { + pub pgd: pgdval_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pud_t { + pub pud: pudval_t, +} +pub type pgtable_t = *mut page; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct page { + pub flags: ::aya_ebpf::cty::c_ulong, + 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 __bindgen_anon_1: page__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, + pub buddy_list: list_head, + pub pcp_list: list_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct page__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 page__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(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 pgmap: *mut dev_pagemap, + pub zone_device_data: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union page__bindgen_ty_2 { + pub _mapcount: atomic_t, + pub page_type: ::aya_ebpf::cty::c_uint, +} #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct lockdep_map_p {} @@ -2509,12 +3039,6 @@ pub struct qrwlock__bindgen_ty_1__bindgen_ty_1 { pub type arch_rwlock_t = qrwlock; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct math_emu_info { - pub ___orig_eip: ::aya_ebpf::cty::c_long, - pub regs: *mut pt_regs, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] pub struct lockdep_map {} #[repr(C)] #[derive(Copy, Clone)] @@ -2527,16 +3051,6 @@ pub struct ratelimit_state { pub begin: ::aya_ebpf::cty::c_ulong, pub flags: ::aya_ebpf::cty::c_ulong, } -#[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(Copy, Clone)] pub struct _ddebug { @@ -3034,7 +3548,7 @@ pub struct file_operations { unsafe extern "C" fn( arg1: *mut file, arg2: ::aya_ebpf::cty::c_int, - arg3: *mut *mut file_lock, + arg3: *mut *mut file_lease, arg4: *mut *mut ::aya_ebpf::cty::c_void, ) -> ::aya_ebpf::cty::c_int, >, @@ -3100,32 +3614,6 @@ pub struct bug_entry { } #[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_call_mod { - pub next: *mut static_call_mod, - pub mod_: *mut module, - pub sites: *mut static_call_site, -} -#[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 attribute_group { pub name: *const ::aya_ebpf::cty::c_char, pub is_visible: ::core::option::Option< @@ -3148,12 +3636,88 @@ pub struct attribute_group { pub type cpumask_var_t = [cpumask; 1usize]; #[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 range { pub start: u64_, pub end: u64_, } #[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(Copy, Clone)] +pub struct rwlock_t { + pub raw_lock: arch_rwlock_t, +} +#[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(Debug, Copy, Clone)] +pub struct seqcount_raw_spinlock { + pub seqcount: seqcount_t, +} +pub type seqcount_raw_spinlock_t = seqcount_raw_spinlock; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct seqlock_t { + pub seqcount: seqcount_spinlock_t, + pub lock: spinlock_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, +} +pub type time64_t = __s64; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timespec64 { + pub tv_sec: time64_t, + pub tv_nsec: ::aya_ebpf::cty::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct tracepoint_func { pub func: *mut ::aya_ebpf::cty::c_void, pub data: *mut ::aya_ebpf::cty::c_void, @@ -3191,2512 +3755,2614 @@ impl bpf_raw_event_map { } #[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, - >, +pub struct delayed_work { + pub work: work_struct, + pub timer: timer_list, + pub wq: *mut workqueue_struct, + pub cpu: ::aya_ebpf::cty::c_int, } -pub mod perf_event_state { - pub type Type = ::aya_ebpf::cty::c_int; - pub const PERF_EVENT_STATE_DEAD: 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; +#[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(Copy, Clone)] +pub struct srcu_data { + pub srcu_lock_count: [atomic_long_t; 2usize], + pub srcu_unlock_count: [atomic_long_t; 2usize], + pub srcu_nmi_safety: ::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(Debug, Copy, Clone)] -pub struct local_t { - pub a: atomic_long_t, +pub struct srcu_struct { + pub srcu_idx: ::aya_ebpf::cty::c_uint, + pub sda: *mut srcu_data, + pub dep_map: lockdep_map, + pub srcu_sup: *mut srcu_usage, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct srcu_usage { + pub node: *mut srcu_node, + pub level: [*mut srcu_node; 3usize], + 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, } +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 local64_t { - pub a: local_t, +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(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 __reserved_3: __u32, - pub sig_data: __u64, - pub config3: __u64, +pub struct blocking_notifier_head { + pub rwsem: rw_semaphore, + pub head: *mut notifier_block, +} +#[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, +} +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; } #[repr(C)] #[derive(Copy, Clone)] -pub union perf_event_attr__bindgen_ty_1 { - pub sample_period: __u64, - pub sample_freq: __u64, +pub struct uprobe_task { + pub state: uprobe_task_state::Type, + pub __bindgen_anon_1: uprobe_task__bindgen_ty_1, + pub active_uprobe: *mut uprobe, + pub xol_vaddr: ::aya_ebpf::cty::c_ulong, + pub return_instances: *mut return_instance, + pub depth: ::aya_ebpf::cty::c_uint, } #[repr(C)] #[derive(Copy, Clone)] -pub union perf_event_attr__bindgen_ty_2 { - pub wakeup_events: __u32, - pub wakeup_watermark: __u32, +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 return_instance { + pub uprobe: *mut uprobe, + 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 next: *mut return_instance, +} +#[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_vvar_start: ::aya_ebpf::cty::c_long, + pub sym_vvar_page: ::aya_ebpf::cty::c_long, + pub sym_pvclock_page: ::aya_ebpf::cty::c_long, + pub sym_hvclock_page: ::aya_ebpf::cty::c_long, + pub sym_timens_page: ::aya_ebpf::cty::c_long, + 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(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, +pub struct xarray { + pub xa_lock: spinlock_t, + pub xa_flags: gfp_t, + pub xa_head: *mut ::aya_ebpf::cty::c_void, } +pub type errseq_t = u32_; #[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, +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, } -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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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) - } - } +#[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)] +#[derive(Debug, Copy, Clone)] +pub struct percpu_ref { + pub percpu_count_ptr: ::aya_ebpf::cty::c_ulong, + pub data: *mut percpu_ref_data, +} +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; +} +#[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 swp_entry_t { + pub val: ::aya_ebpf::cty::c_ulong, +} +#[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, +} +#[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: ::aya_ebpf::cty::c_ulong, + pub __bindgen_anon_1: folio__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, + pub mapping: *mut address_space, + pub index: ::aya_ebpf::cty::c_ulong, + pub __bindgen_anon_2: folio__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2, + 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, +} +#[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 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(Debug, 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 _folio_avail: ::aya_ebpf::cty::c_ulong, + pub _entire_mapcount: atomic_t, + pub _nr_pages_mapped: atomic_t, + pub _pincount: atomic_t, + pub _folio_nr_pages: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union folio__bindgen_ty_3 { + pub __bindgen_anon_1: folio__bindgen_ty_3__bindgen_ty_1, + pub __bindgen_anon_2: folio__bindgen_ty_3__bindgen_ty_2, + 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 _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__bindgen_ty_3__bindgen_ty_2 { + pub _flags_2a: ::aya_ebpf::cty::c_ulong, + pub _head_2a: ::aya_ebpf::cty::c_ulong, + pub _deferred_list: list_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fown_struct { + pub lock: rwlock_t, + pub pid: *mut pid, + pub pid_type: pid_type::Type, + pub uid: kuid_t, + pub euid: kuid_t, + pub signum: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct 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 mmap_miss: ::aya_ebpf::cty::c_uint, + pub prev_pos: loff_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct path { + pub mnt: *mut vfsmount, + pub dentry: *mut dentry, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct file { + pub __bindgen_anon_1: file__bindgen_ty_1, + pub f_lock: spinlock_t, + pub f_mode: fmode_t, + pub f_count: atomic_long_t, + pub f_pos_lock: mutex, + pub f_pos: loff_t, + pub f_flags: ::aya_ebpf::cty::c_uint, + pub f_owner: fown_struct, + pub f_cred: *const cred, + pub f_ra: file_ra_state, + pub f_path: path, + pub f_inode: *mut inode, + pub f_op: *const file_operations, + pub f_version: u64_, + pub f_security: *mut ::aya_ebpf::cty::c_void, + pub private_data: *mut ::aya_ebpf::cty::c_void, + pub f_ep: *mut hlist_head, + pub f_mapping: *mut address_space, + pub f_wb_err: errseq_t, + pub f_sb_err: errseq_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union file__bindgen_ty_1 { + pub f_task_work: callback_head, + pub f_llist: llist_node, + pub f_iocb_flags: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug)] +pub struct anon_vma_name { + pub kref: kref, + pub name: __IncompleteArrayField<::aya_ebpf::cty::c_char>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct vma_lock { + pub lock: rw_semaphore, +} +#[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, +} +pub type vm_fault_t = ::aya_ebpf::cty::c_uint; +#[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_special_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 mm_cid { + pub time: u64_, + pub cid: ::aya_ebpf::cty::c_int, +} +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; +} +#[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, +} +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_PCI_DEVICE_IMS: Type = 15; + pub const DOMAIN_BUS_DEVICE_MSI: Type = 16; + pub const DOMAIN_BUS_WIRED_TO_MSI: Type = 17; +} +#[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 hwirq_max: irq_hw_number_t, + pub revmap_size: ::aya_ebpf::cty::c_uint, + pub revmap_tree: xarray, + pub revmap: __IncompleteArrayField<*mut irq_data>, +} +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 mmap2(&self) -> __u64 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(23usize, 1u8) as u64) } + pub fn force_atomic(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } } #[inline] - pub fn set_mmap2(&mut self, val: __u64) { + pub fn set_force_atomic(&mut self, val: bool_) { unsafe { - let val: u64 = ::core::mem::transmute(val); - self._bitfield_1.set(23usize, 1u8, val as u64) + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) } } #[inline] - pub fn comm_exec(&self) -> __u64 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 1u8) as u64) } + pub fn allow_reinit(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } } #[inline] - pub fn set_comm_exec(&mut self, val: __u64) { + pub fn set_allow_reinit(&mut self, val: bool_) { unsafe { - let val: u64 = ::core::mem::transmute(val); - self._bitfield_1.set(24usize, 1u8, val as u64) + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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, +pub struct plist_head { + pub node_list: list_head, } #[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_, +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 get_time: ::core::option::Option ktime_t>, + pub offset: ktime_t, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct rhash_head { - pub next: *mut rhash_head, +pub struct rlimit { + pub rlim_cur: __kernel_ulong_t, + pub rlim_max: __kernel_ulong_t, } +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 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 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 hw_perf_event__bindgen_ty_1__bindgen_ty_1 { - pub config: u64_, - pub last_tag: 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, +pub struct k_sigaction { + pub sa: sigaction, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct hw_perf_event__bindgen_ty_1__bindgen_ty_2 { - pub hrtimer: hrtimer, +pub struct upid { + pub nr: ::aya_ebpf::cty::c_int, + pub ns: *mut pid_namespace, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct hw_perf_event__bindgen_ty_1__bindgen_ty_3 { - pub tp_list: list_head, +pub struct pid { + pub count: refcount_t, + pub level: ::aya_ebpf::cty::c_uint, + pub lock: spinlock_t, + pub stashed: *mut dentry, + pub ino: u64_, + pub tasks: [hlist_head; 4usize], + pub inodes: hlist_head, + pub wait_pidfd: wait_queue_head_t, + pub rcu: callback_head, + pub numbers: __IncompleteArrayField, } +pub type key_serial_t = i32; +pub type key_perm_t = u32; #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct hw_perf_event__bindgen_ty_1__bindgen_ty_4 { - pub pwr_acc: u64_, - pub ptsc: u64_, +#[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(Debug, Copy, Clone)] -pub struct hw_perf_event__bindgen_ty_1__bindgen_ty_5 { - pub info: arch_hw_breakpoint, - pub bp_list: rhlist_head, +#[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 hw_perf_event__bindgen_ty_1__bindgen_ty_6 { - pub iommu_bank: u8_, - pub iommu_cntr: u8_, - pub padding: u16_, - pub conf: u64_, - pub conf1: u64_, +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 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, +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(Debug, Copy, Clone)] -pub struct hw_perf_event__bindgen_ty_2__bindgen_ty_1 { - pub last_period: u64_, - pub period_left: local64_t, +pub struct assoc_array_ptr { + _unused: [u8; 0], } #[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_, +pub struct assoc_array { + pub root: *mut assoc_array_ptr, + pub nr_leaves_on_tree: ::aya_ebpf::cty::c_ulong, } #[repr(C)] #[derive(Copy, Clone)] -pub struct wait_queue_head { - pub lock: spinlock_t, - pub head: list_head, +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, } -pub type wait_queue_head_t = wait_queue_head; -#[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 perf_addr_filters_head { - pub list: list_head, - pub lock: raw_spinlock_t, - pub nr_file_filters: ::aya_ebpf::cty::c_uint, -} -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), ->; -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 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 union key__bindgen_ty_1 { + pub graveyard_link: list_head, + pub serial_node: rb_node, } -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 ops_func: ftrace_ops_func_t, - pub direct_call: ::aya_ebpf::cty::c_ulong, +pub union key__bindgen_ty_2 { + pub expiry: time64_t, + pub revoked_at: time64_t, } #[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: atomic_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_sigtrap: ::aya_ebpf::cty::c_uint, - pub pending_addr: ::aya_ebpf::cty::c_ulong, - pub pending_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 orig_overflow_handler: perf_overflow_handler_t, - 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 orig_type: __u32, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct __kernel_timespec { - pub tv_sec: __kernel_time64_t, - pub tv_nsec: ::aya_ebpf::cty::c_longlong, -} -pub type old_time32_t = s32; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct old_timespec32 { - pub tv_sec: old_time32_t, - pub tv_nsec: s32, +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 pollfd { - pub fd: ::aya_ebpf::cty::c_int, - pub events: ::aya_ebpf::cty::c_short, - pub revents: ::aya_ebpf::cty::c_short, -} -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; -} -#[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, +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 struct idr { - pub idr_rt: xarray, - pub idr_base: ::aya_ebpf::cty::c_uint, - pub idr_next: ::aya_ebpf::cty::c_uint, +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 ns_common { - pub stashed: atomic_long_t, - pub ops: *const proc_ns_operations, - pub inum: ::aya_ebpf::cty::c_uint, - pub count: refcount_t, -} -#[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 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 memfd_noexec_scope: ::aya_ebpf::cty::c_int, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct rwlock_t { - pub raw_lock: arch_rwlock_t, +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 seqcount_raw_spinlock { - pub seqcount: seqcount_t, +pub struct cpu_itimer { + pub expires: u64_, + pub incr: u64_, } -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 get_time: ::core::option::Option ktime_t>, - pub offset: ktime_t, +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 rlimit { - pub rlim_cur: __kernel_ulong_t, - pub rlim_max: __kernel_ulong_t, +pub struct thread_group_cputimer { + pub cputime_atomic: task_cputime_atomic, } #[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, -} -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(Copy, Clone)] -pub union sigval { - pub sival_int: ::aya_ebpf::cty::c_int, - pub sival_ptr: *mut ::aya_ebpf::cty::c_void, +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, } -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, +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: ::aya_ebpf::cty::c_uint, + pub posix_timers: list_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 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, } -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct __sifields__bindgen_ty_1 { - pub _pid: __kernel_pid_t, - pub _uid: __kernel_uid32_t, +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 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 fn new_bitfield_1( + is_child_subreaper: ::aya_ebpf::cty::c_uint, + has_child_subreaper: ::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 + } } #[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, +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(Copy, Clone)] -pub struct __sifields__bindgen_ty_3 { - pub _pid: __kernel_pid_t, - pub _uid: __kernel_uid32_t, - pub _sigval: sigval_t, +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, } +pub type compat_uptr_t = u32_; #[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, +pub struct compat_robust_list { + pub next: compat_uptr_t, } +pub type compat_long_t = s32; #[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, +#[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 __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, +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, } #[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, +#[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(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, +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 __sifields__bindgen_ty_6 { - pub _band: ::aya_ebpf::cty::c_long, - pub _fd: ::aya_ebpf::cty::c_int, +pub struct kernfs_elem_symlink { + pub target_kn: *mut kernfs_node, } #[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, +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(Copy, Clone)] -pub struct kernel_siginfo { - pub __bindgen_anon_1: kernel_siginfo__bindgen_ty_1, +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 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 union kernfs_node__bindgen_ty_1 { + pub dir: kernfs_elem_dir, + pub symlink: kernfs_elem_symlink, + pub attr: kernfs_elem_attr, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct ucounts { - pub node: hlist_node, - pub ns: *mut user_namespace, - pub uid: kuid_t, - pub count: atomic_t, - pub ucount: [atomic_long_t; 12usize], - pub rlimit: [atomic_long_t; 4usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct sigaction { - pub sa_handler: __sighandler_t, - pub sa_flags: ::aya_ebpf::cty::c_ulong, - pub sa_restorer: __sigrestore_t, - pub sa_mask: sigset_t, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct k_sigaction { - pub sa: sigaction, -} -#[repr(C)] -#[derive(Debug)] -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(Copy, Clone)] -pub struct seqlock_t { - pub seqcount: seqcount_spinlock_t, - pub lock: spinlock_t, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct kgid_t { - pub val: gid_t, -} -#[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), - >, - 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 pick_next_task: - ::core::option::Option *mut task_struct>, - pub put_prev_task: - ::core::option::Option, - pub set_next_task: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut rq, arg2: *mut task_struct, arg3: bool_), +pub struct kernfs_ops { + pub open: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut kernfs_open_file) -> ::aya_ebpf::cty::c_int, >, - pub balance: ::core::option::Option< + pub release: ::core::option::Option, + pub seq_show: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut rq, - arg2: *mut task_struct, - arg3: *mut rq_flags, + arg1: *mut seq_file, + arg2: *mut ::aya_ebpf::cty::c_void, ) -> ::aya_ebpf::cty::c_int, >, - pub select_task_rq: ::core::option::Option< + pub seq_start: ::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 pick_task: ::core::option::Option *mut task_struct>, - pub migrate_task_rq: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut task_struct, arg2: ::aya_ebpf::cty::c_int), + arg1: *mut seq_file, + arg2: *mut loff_t, + ) -> *mut ::aya_ebpf::cty::c_void, >, - 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 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 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 seq_stop: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut seq_file, arg2: *mut ::aya_ebpf::cty::c_void), >, - pub task_tick: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut rq, arg2: *mut task_struct, arg3: ::aya_ebpf::cty::c_int), + 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 task_fork: ::core::option::Option, - pub task_dead: ::core::option::Option, - pub switched_from: - ::core::option::Option, - pub switched_to: - ::core::option::Option, - pub prio_changed: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut rq, arg2: *mut task_struct, arg3: ::aya_ebpf::cty::c_int), + 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 get_rr_interval: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut rq, arg2: *mut task_struct) -> ::aya_ebpf::cty::c_uint, + pub poll: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut kernfs_open_file, arg2: *mut poll_table_struct) -> __poll_t, >, - pub update_curr: ::core::option::Option, - pub task_change_group: ::core::option::Option, - pub task_is_throttled: ::core::option::Option< + pub mmap: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut task_struct, - arg2: ::aya_ebpf::cty::c_int, + 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, + >, } -pub type errseq_t = u32_; #[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 i_mmap_rwsem: rw_semaphore, - pub wb_err: errseq_t, - pub i_private_lock: spinlock_t, - pub i_private_list: list_head, - pub i_private_data: *mut ::aya_ebpf::cty::c_void, +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 upid { - pub nr: ::aya_ebpf::cty::c_int, - pub ns: *mut pid_namespace, +#[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, } -#[repr(C)] -pub struct pid { - pub count: refcount_t, - pub level: ::aya_ebpf::cty::c_uint, - pub lock: spinlock_t, - pub tasks: [hlist_head; 4usize], - pub inodes: hlist_head, - pub wait_pidfd: wait_queue_head_t, - pub rcu: callback_head, - pub numbers: __IncompleteArrayField, +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 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 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 + } } +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(Copy, Clone)] -pub struct swait_queue_head { - pub lock: raw_spinlock_t, - pub task_list: list_head, +#[derive(Debug, Copy, Clone)] +pub struct poll_table_struct { + pub _qproc: poll_queue_proc, + pub _key: __poll_t, } -#[repr(C)] -#[derive(Copy, Clone)] -pub struct completion { - pub done: ::aya_ebpf::cty::c_uint, - pub wait: swait_queue_head, +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; } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct kernel_cap_t { - pub val: u64_, +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(Copy, Clone)] -pub struct cred { - pub usage: atomic_long_t, +#[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 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, + pub size: loff_t, + pub atime: timespec64, + pub mtime: timespec64, + pub ctime: timespec64, + pub btime: timespec64, + pub blocks: u64_, + pub mnt_id: u64_, + pub dio_mem_align: u32_, + pub dio_offset_align: u32_, + pub change_cookie: u64_, } -pub type key_serial_t = i32; -pub type time64_t = __s64; -pub type key_perm_t = u32; #[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, +#[derive(Debug, Copy, Clone)] +pub struct attribute { + pub name: *const ::aya_ebpf::cty::c_char, + pub mode: umode_t, } #[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, +#[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: *mut 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: *mut 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: *mut 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: *mut bin_attribute, + arg4: *mut vm_area_struct, + ) -> ::aya_ebpf::cty::c_int, + >, } #[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], +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(Copy, Clone)] -pub union key_payload { - pub rcu_data0: *mut ::aya_ebpf::cty::c_void, - pub data: [*mut ::aya_ebpf::cty::c_void; 4usize], +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 assoc_array_ptr { - _unused: [u8; 0], +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 assoc_array { - pub root: *mut assoc_array_ptr, - pub nr_leaves_on_tree: ::aya_ebpf::cty::c_ulong, +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(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, +#[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(Copy, Clone)] -pub union key__bindgen_ty_1 { - pub graveyard_link: list_head, - pub serial_node: rb_node, +#[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(Copy, Clone)] -pub union key__bindgen_ty_2 { - pub expiry: time64_t, - pub revoked_at: time64_t, +#[derive(Debug)] +pub struct em_perf_table { + pub rcu: callback_head, + pub kref: kref, + pub state: __IncompleteArrayField, } #[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, +#[derive(Debug)] +pub struct em_perf_domain { + pub em_table: *mut em_perf_table, + pub nr_perf_states: ::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 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 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, +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; } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct cpu_itimer { - pub expires: u64_, - pub incr: u64_, +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 task_cputime_atomic { - pub utime: atomic64_t, - pub stime: atomic64_t, - pub sum_exec_runtime: atomic64_t, +pub struct pm_message { + pub event: ::aya_ebpf::cty::c_int, } -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct thread_group_cputimer { - pub cputime_atomic: task_cputime_atomic, +pub type pm_message_t = pm_message; +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; } -#[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, +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; } #[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 struct dev_pm_info { + pub power_state: pm_message_t, pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub next_posix_timer_id: ::aya_ebpf::cty::c_uint, - pub posix_timers: list_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 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, + 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, } -impl signal_struct { +impl dev_pm_info { #[inline] - pub fn is_child_subreaper(&self) -> ::aya_ebpf::cty::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + pub fn can_wakeup(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } } #[inline] - pub fn set_is_child_subreaper(&mut self, val: ::aya_ebpf::cty::c_uint) { + pub fn set_can_wakeup(&mut self, val: bool_) { unsafe { - let val: u32 = ::core::mem::transmute(val); + let val: u8 = ::core::mem::transmute(val); self._bitfield_1.set(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) } + pub fn async_suspend(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } } #[inline] - pub fn set_has_child_subreaper(&mut self, val: ::aya_ebpf::cty::c_uint) { + pub fn set_async_suspend(&mut self, val: bool_) { unsafe { - let val: u32 = ::core::mem::transmute(val); + let val: u8 = ::core::mem::transmute(val); self._bitfield_1.set(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 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 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 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 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 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 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 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 fn new_bitfield_1( - is_child_subreaper: ::aya_ebpf::cty::c_uint, - has_child_subreaper: ::aya_ebpf::cty::c_uint, + 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 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 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 fn async_in_progress(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_2.get(3usize, 1u8) as u8) } + } + #[inline] + pub fn set_async_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 fn must_resume(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_2.get(4usize, 1u8) as u8) } + } + #[inline] + pub fn set_must_resume(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub fn may_skip_resume(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_2.get(5usize, 1u8) as u8) } + } + #[inline] + pub fn set_may_skip_resume(&mut self, val: bool_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(5usize, 1u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_2( + wakeup_path: bool_, + syscore: bool_, + no_pm_callbacks: bool_, + async_in_progress: bool_, + must_resume: bool_, + may_skip_resume: bool_, ) -> __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 + let wakeup_path: u8 = unsafe { ::core::mem::transmute(wakeup_path) }; + wakeup_path 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 + 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 async_in_progress: u8 = unsafe { ::core::mem::transmute(async_in_progress) }; + async_in_progress as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let must_resume: u8 = unsafe { ::core::mem::transmute(must_resume) }; + must_resume as u64 + }); + __bindgen_bitfield_unit.set(5usize, 1u8, { + let may_skip_resume: u8 = unsafe { ::core::mem::transmute(may_skip_resume) }; + may_skip_resume as u64 + }); + __bindgen_bitfield_unit + } + #[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 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 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 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 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 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 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 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 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 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 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 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 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 } -} -#[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(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(Debug, Copy, Clone)] -pub struct css_set { - pub subsys: [*mut cgroup_subsys_state; 14usize], - 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; 14usize], - 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, -} -pub type compat_uptr_t = u32_; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct compat_robust_list { - pub next: compat_uptr_t, -} -pub type compat_long_t = s32; -#[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 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_task_data: ::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_pending: local_t, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct ftrace_ret_stack { - pub ret: ::aya_ebpf::cty::c_ulong, - pub func: ::aya_ebpf::cty::c_ulong, - pub calltime: ::aya_ebpf::cty::c_ulonglong, - pub subtime: ::aya_ebpf::cty::c_ulonglong, - pub retp: *mut ::aya_ebpf::cty::c_ulong, -} -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 struct dev_msi_info { + pub domain: *mut irq_domain, + pub data: *mut msi_device_data, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct arch_uprobe_task { - pub saved_scratch_register: ::aya_ebpf::cty::c_ulong, - pub saved_trap_nr: ::aya_ebpf::cty::c_uint, - pub saved_tf: ::aya_ebpf::cty::c_uint, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct uprobe_task { - pub state: uprobe_task_state::Type, - pub __bindgen_anon_1: uprobe_task__bindgen_ty_1, - pub active_uprobe: *mut uprobe, - pub xol_vaddr: ::aya_ebpf::cty::c_ulong, - pub return_instances: *mut return_instance, - pub depth: ::aya_ebpf::cty::c_uint, +pub struct dev_archdata {} +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; } #[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 timespec64 { - pub tv_sec: time64_t, - pub tv_nsec: ::aya_ebpf::cty::c_long, -} -#[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 rcu_work { - pub work: work_struct, - pub rcu: callback_head, - pub wq: *mut workqueue_struct, +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], } -#[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_, +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 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 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 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 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 fn new_bitfield_1( + offline_disabled: bool_, + offline: bool_, + of_node_reused: bool_, + state_synced: bool_, + can_match: 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 + } } #[repr(C)] #[derive(Copy, Clone)] -pub struct srcu_data { - pub srcu_lock_count: [atomic_long_t; 2usize], - pub srcu_unlock_count: [atomic_long_t; 2usize], - pub srcu_nmi_safety: ::aya_ebpf::cty::c_int, +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; 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]>, + 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], } -impl srcu_data { +impl hrtimer_cpu_base { #[inline] - pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 24usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + 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 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 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 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 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 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 } } #[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(Debug, Copy, Clone)] -pub struct srcu_struct { - pub srcu_idx: ::aya_ebpf::cty::c_uint, - pub sda: *mut srcu_data, - pub dep_map: lockdep_map, - pub srcu_sup: *mut srcu_usage, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct srcu_usage { - pub node: *mut srcu_node, - pub level: [*mut srcu_node; 3usize], - 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, +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(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)] +#[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 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 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 + } +} +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; } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct return_instance { - pub uprobe: *mut uprobe, - 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 next: *mut return_instance, +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 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_vvar_start: ::aya_ebpf::cty::c_long, - pub sym_vvar_page: ::aya_ebpf::cty::c_long, - pub sym_pvclock_page: ::aya_ebpf::cty::c_long, - pub sym_hvclock_page: ::aya_ebpf::cty::c_long, - pub sym_timens_page: ::aya_ebpf::cty::c_long, - 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, +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 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 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 percpu_ref { - pub percpu_count_ptr: ::aya_ebpf::cty::c_ulong, - pub data: *mut percpu_ref_data, +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: *mut 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 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_, } -pub mod memory_type { +pub mod probe_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 const PROBE_DEFAULT_STRATEGY: Type = 0; + pub const PROBE_PREFER_ASYNCHRONOUS: Type = 1; + pub const PROBE_FORCE_SYNCHRONOUS: Type = 2; } #[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, +#[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)] -pub struct dev_pagemap__bindgen_ty_1 { - pub range: __BindgenUnionField, - pub __bindgen_anon_1: __BindgenUnionField, - pub bindgen_union_field: [u64; 2usize], +#[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(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, +#[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 dev_pagemap__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {} +pub struct iovec { + pub iov_base: *mut ::aya_ebpf::cty::c_void, + pub iov_len: __kernel_size_t, +} #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct swp_entry_t { - pub val: ::aya_ebpf::cty::c_ulong, +pub struct kvec { + pub iov_base: *mut ::aya_ebpf::cty::c_void, + pub iov_len: usize, +} +#[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(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 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 folio__bindgen_ty_1 { - pub __bindgen_anon_1: folio__bindgen_ty_1__bindgen_ty_1, - pub page: page, +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 folio__bindgen_ty_1__bindgen_ty_1 { - pub flags: ::aya_ebpf::cty::c_ulong, - pub __bindgen_anon_1: folio__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, - pub mapping: *mut address_space, - pub index: ::aya_ebpf::cty::c_ulong, - pub __bindgen_anon_2: folio__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2, - pub _mapcount: atomic_t, - pub _refcount: atomic_t, - pub memcg_data: ::aya_ebpf::cty::c_ulong, +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 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 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 xarray: *mut xarray, + pub ubuf: *mut ::aya_ebpf::cty::c_void, } #[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, +#[derive(Copy, Clone)] +pub union iov_iter__bindgen_ty_2 { + pub nr_segs: ::aya_ebpf::cty::c_ulong, + pub xarray_start: loff_t, } #[repr(C)] #[derive(Copy, Clone)] -pub union folio__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2 { +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 swap: swp_entry_t, + pub ki_flags: ::aya_ebpf::cty::c_int, + pub ki_ioprio: u16_, + pub __bindgen_anon_1: kiocb__bindgen_ty_1, } #[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, +pub union kiocb__bindgen_ty_1 { + pub ki_waitq: *mut wait_page_queue, + pub dio_complete: + ::core::option::Option isize>, } #[repr(C)] #[derive(Debug, 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 _folio_avail: ::aya_ebpf::cty::c_ulong, - pub _entire_mapcount: atomic_t, - pub _nr_pages_mapped: atomic_t, - pub _pincount: atomic_t, - pub _folio_nr_pages: ::aya_ebpf::cty::c_uint, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union folio__bindgen_ty_3 { - pub __bindgen_anon_1: folio__bindgen_ty_3__bindgen_ty_1, - pub __bindgen_anon_2: folio__bindgen_ty_3__bindgen_ty_2, - pub __page_2: page, +pub struct hlist_bl_head { + pub first: *mut hlist_bl_node, } #[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 _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, +pub struct hlist_bl_node { + pub next: *mut hlist_bl_node, + pub pprev: *mut *mut hlist_bl_node, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct folio__bindgen_ty_3__bindgen_ty_2 { - pub _flags_2a: ::aya_ebpf::cty::c_ulong, - pub _head_2a: ::aya_ebpf::cty::c_ulong, - pub _deferred_list: list_head, +#[derive(Copy, Clone)] +pub struct lockref { + pub __bindgen_anon_1: lockref__bindgen_ty_1, } #[repr(C)] #[derive(Copy, Clone)] -pub struct fown_struct { - 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, +pub union lockref__bindgen_ty_1 { + pub lock_count: __u64, + pub __bindgen_anon_1: lockref__bindgen_ty_1__bindgen_ty_1, } #[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 mmap_miss: ::aya_ebpf::cty::c_uint, - pub prev_pos: loff_t, +#[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(Debug, Copy, Clone)] -pub struct path { - pub mnt: *mut vfsmount, - pub dentry: *mut dentry, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct file { - pub __bindgen_anon_1: file__bindgen_ty_1, - pub f_lock: spinlock_t, - pub f_mode: fmode_t, - pub f_count: atomic_long_t, - pub f_pos_lock: mutex, - pub f_pos: loff_t, - pub f_flags: ::aya_ebpf::cty::c_uint, - pub f_owner: fown_struct, - pub f_cred: *const cred, - pub f_ra: file_ra_state, - pub f_path: path, - pub f_inode: *mut inode, - pub f_op: *const file_operations, - pub f_version: u64_, - pub f_security: *mut ::aya_ebpf::cty::c_void, - pub private_data: *mut ::aya_ebpf::cty::c_void, - pub f_ep: *mut hlist_head, - pub f_mapping: *mut address_space, - pub f_wb_err: errseq_t, - pub f_sb_err: errseq_t, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union file__bindgen_ty_1 { - pub f_task_work: callback_head, - pub f_llist: llist_node, - pub f_iocb_flags: ::aya_ebpf::cty::c_uint, -} -#[repr(C)] -#[derive(Debug)] -pub struct anon_vma_name { - pub kref: kref, - pub name: __IncompleteArrayField<::aya_ebpf::cty::c_char>, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct vma_lock { - pub lock: rw_semaphore, -} -#[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, -} -pub type vm_fault_t = ::aya_ebpf::cty::c_uint; -#[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_special_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 mm_cid { - pub time: u64_, - pub cid: ::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 load_shlib: - ::core::option::Option ::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 uid_gid_extent { - pub first: u32_, - pub lower_first: u32_, - pub count: u32_, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct uid_gid_map { - pub nr_extents: u32_, - pub __bindgen_anon_1: uid_gid_map__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union uid_gid_map__bindgen_ty_1 { - pub extent: [uid_gid_extent; 5usize], - pub __bindgen_anon_1: uid_gid_map__bindgen_ty_1__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct uid_gid_map__bindgen_ty_1__bindgen_ty_1 { - pub forward: *mut uid_gid_extent, - pub reverse: *mut uid_gid_extent, -} -#[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: *mut 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, -} -#[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: *mut 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, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ctl_dir { - pub header: ctl_table_header, - pub root: rb_root, -} -#[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 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, -} -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; -} -#[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, -} -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 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 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 shrink_control { - pub gfp_mask: gfp_t, - pub nid: ::aya_ebpf::cty::c_int, - pub nr_to_scan: ::aya_ebpf::cty::c_ulong, - pub nr_scanned: ::aya_ebpf::cty::c_ulong, - pub memcg: *mut mem_cgroup, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct shrinker { - pub count_objects: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut shrinker, - arg2: *mut shrink_control, - ) -> ::aya_ebpf::cty::c_ulong, - >, - pub scan_objects: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut shrinker, - arg2: *mut shrink_control, - ) -> ::aya_ebpf::cty::c_ulong, - >, - pub batch: ::aya_ebpf::cty::c_long, - pub seeks: ::aya_ebpf::cty::c_int, - pub flags: ::aya_ebpf::cty::c_uint, - pub refcount: refcount_t, - pub done: completion, - pub rcu: callback_head, - pub private_data: *mut ::aya_ebpf::cty::c_void, - pub list: list_head, - pub id: ::aya_ebpf::cty::c_int, - pub debugfs_id: ::aya_ebpf::cty::c_int, - pub name: *const ::aya_ebpf::cty::c_char, - pub debugfs_entry: *mut dentry, - pub nr_deferred: *mut atomic_long_t, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct hlist_bl_node { - pub next: *mut hlist_bl_node, - pub pprev: *mut *mut hlist_bl_node, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct qstr { - pub __bindgen_anon_1: qstr__bindgen_ty_1, - pub name: *const ::aya_ebpf::cty::c_uchar, +#[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)] @@ -5712,23 +6378,6 @@ pub struct qstr__bindgen_ty_1__bindgen_ty_1 { } #[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, @@ -5760,25 +6409,14 @@ pub union dentry__bindgen_ty_2 { pub d_in_lookup_hash: hlist_bl_node, pub d_rcu: callback_head, } -#[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 hlist_bl_head { - pub first: *mut hlist_bl_node, +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; } #[repr(C)] #[derive(Copy, Clone)] @@ -5804,7 +6442,7 @@ pub struct inode { pub i_lock: spinlock_t, pub i_bytes: ::aya_ebpf::cty::c_ushort, pub i_blkbits: u8_, - pub i_write_hint: u8_, + pub i_write_hint: rw_hint::Type, pub i_blocks: blkcnt_t, pub i_state: ::aya_ebpf::cty::c_ulong, pub i_rwsem: rw_semaphore, @@ -5864,6 +6502,11 @@ pub union inode__bindgen_ty_4 { pub i_link: *mut ::aya_ebpf::cty::c_char, pub i_dir_seq: ::aya_ebpf::cty::c_uint, } +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; +} #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct dentry_operations { @@ -5909,7 +6552,7 @@ pub struct dentry_operations { 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: *const inode) -> *mut dentry, + unsafe extern "C" fn(arg1: *mut dentry, arg2: d_real_type::Type) -> *mut dentry, >, pub _bitfield_align_1: [u8; 0], pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, @@ -5958,6 +6601,11 @@ pub struct rcu_sync { pub cb_head: callback_head, } #[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rcuwait { + pub task: *mut task_struct, +} +#[repr(C)] #[derive(Copy, Clone)] pub struct percpu_rw_semaphore { pub rss: rcu_sync, @@ -5981,15 +6629,6 @@ pub struct uuid_t { } #[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 super_block { pub s_list: list_head, pub s_dev: dev_t, @@ -6018,7 +6657,7 @@ pub struct super_block { pub s_roots: hlist_bl_head, pub s_mounts: list_head, pub s_bdev: *mut block_device, - pub s_bdev_handle: *mut bdev_handle, + pub s_bdev_file: *mut file, pub s_bdi: *mut backing_dev_info, pub s_mtd: *mut mtd_info, pub s_instances: hlist_node, @@ -6033,6 +6672,8 @@ pub struct super_block { pub s_fsnotify_marks: *mut fsnotify_mark_connector, 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_vfs_rename_mutex: mutex, pub s_subtype: *const ::aya_ebpf::cty::c_char, @@ -6051,19 +6692,17 @@ pub struct super_block { pub destroy_work: work_struct, pub s_sync_lock: mutex, pub s_stack_depth: ::aya_ebpf::cty::c_int, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 40usize]>, pub __bindgen_padding_0: u32, pub s_inode_list_lock: spinlock_t, pub s_inodes: list_head, pub s_inode_wblist_lock: spinlock_t, pub s_inodes_wb: list_head, - pub _bitfield_align_2: [u8; 0], - pub _bitfield_2: __BindgenBitfieldUnit<[u8; 16usize]>, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>, } impl super_block { #[inline] - pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 16usize]> { + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> { let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); __bindgen_bitfield_unit } @@ -6078,28 +6717,41 @@ pub struct vfsmount { } #[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 dio_mem_align: u32_, - pub dio_offset_align: u32_, - pub change_cookie: u64_, +pub struct shrink_control { + pub gfp_mask: gfp_t, + pub nid: ::aya_ebpf::cty::c_int, + pub nr_to_scan: ::aya_ebpf::cty::c_ulong, + pub nr_scanned: ::aya_ebpf::cty::c_ulong, + pub memcg: *mut mem_cgroup, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct shrinker { + pub count_objects: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut shrinker, + arg2: *mut shrink_control, + ) -> ::aya_ebpf::cty::c_ulong, + >, + pub scan_objects: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut shrinker, + arg2: *mut shrink_control, + ) -> ::aya_ebpf::cty::c_ulong, + >, + pub batch: ::aya_ebpf::cty::c_long, + pub seeks: ::aya_ebpf::cty::c_int, + pub flags: ::aya_ebpf::cty::c_uint, + pub refcount: refcount_t, + pub done: completion, + pub rcu: callback_head, + pub private_data: *mut ::aya_ebpf::cty::c_void, + pub list: list_head, + pub id: ::aya_ebpf::cty::c_int, + pub debugfs_id: ::aya_ebpf::cty::c_int, + pub name: *const ::aya_ebpf::cty::c_char, + pub debugfs_entry: *mut dentry, + pub nr_deferred: *mut atomic_long_t, } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -6139,170 +6791,6 @@ pub struct exception_table_entry { } #[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 sibling: list_head, - pub children: list_head, - pub rstat_css_node: 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, -} -#[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 cgroup_base_stat { - pub cputime: task_cputime, - pub forceidle_sum: u64_, -} -#[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 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: ::aya_ebpf::cty::c_int, - pub nr_frozen_descendants: ::aya_ebpf::cty::c_int, - pub nr_frozen_tasks: ::aya_ebpf::cty::c_int, -} -#[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 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; 14usize], - pub root: *mut cgroup_root, - pub cset_links: list_head, - pub e_csets: [list_head; 14usize], - pub dom_cgrp: *mut cgroup, - pub old_dom_cgrp: *mut cgroup, - pub rstat_cpu: *mut cgroup_rstat_cpu, - pub rstat_css_list: list_head, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, - pub _pad_: cacheline_padding, - pub rstat_flush_next: *mut cgroup, - 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 congestion_count: atomic_t, - 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; 24usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); - __bindgen_bitfield_unit - } -} -pub type proc_handler = ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut 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 type_: ctl_table__bindgen_ty_1::Type, - 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, -} -pub mod ctl_table__bindgen_ty_1 { - 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_table_poll { - pub event: atomic_t, - pub wait: wait_queue_head_t, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct ctl_node { - pub node: rb_node, - pub header: *mut ctl_table_header, -} -#[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 ctl_table, - arg3: *mut kuid_t, - arg4: *mut kgid_t, - ), - >, - pub permissions: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut ctl_table_header, - arg2: *mut ctl_table, - ) -> ::aya_ebpf::cty::c_int, - >, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] pub struct key_tag { pub rcu: callback_head, pub usage: refcount_t, @@ -6418,113 +6906,6 @@ pub struct group_info { pub gid: __IncompleteArrayField, } #[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], -} -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 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 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 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 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 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 - } -} -#[repr(C)] #[derive(Debug, Copy, Clone)] pub struct core_thread { pub task: *mut task_struct, @@ -6538,65 +6919,92 @@ pub struct core_state { pub startup: completion, } #[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, +} +pub type tcflag_t = ::aya_ebpf::cty::c_uint; +pub type cc_t = ::aya_ebpf::cty::c_uchar; +pub type speed_t = ::aya_ebpf::cty::c_uint; +#[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 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(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)] +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)] +pub struct tty_struct__bindgen_ty_1 { + pub lock: spinlock_t, + pub stopped: bool_, + pub tco_stopped: bool_, + pub unused: __IncompleteArrayField<::aya_ebpf::cty::c_ulong>, +} +#[repr(C)] +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_, + pub unused: __IncompleteArrayField<::aya_ebpf::cty::c_ulong>, } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -6637,26 +7045,6 @@ pub struct vfsgid_t { } #[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 __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>, -} -#[repr(C)] -#[derive(Copy, Clone)] pub struct iattr { pub ia_valid: ::aya_ebpf::cty::c_uint, pub ia_mode: umode_t, @@ -7024,46 +7412,13 @@ pub struct address_space_operations { } #[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 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 xarray_start: loff_t, +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)] @@ -7599,40 +7954,11 @@ pub struct dir_context { pub actor: filldir_t, pub pos: loff_t, } -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(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(Copy, Clone)] pub struct offset_ctx { - pub xa: xarray, - pub next_offset: u32_, + pub mt: maple_tree, + pub next_offset: ::aya_ebpf::cty::c_ulong, } pub type fs_param_type = ::core::option::Option< unsafe extern "C" fn( @@ -7651,3407 +7977,3379 @@ pub struct fs_parameter_spec { pub flags: ::aya_ebpf::cty::c_ushort, pub data: *const ::aya_ebpf::cty::c_void, } +pub type Elf64_Addr = __u64; +pub type Elf64_Half = __u16; +pub type Elf64_Word = __u32; +pub type Elf64_Xword = __u64; #[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 bio_vec { - pub bv_page: *mut page, - pub bv_len: ::aya_ebpf::cty::c_uint, - pub bv_offset: ::aya_ebpf::cty::c_uint, +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, } #[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 mm: *mut mm_struct, - pub p: ::aya_ebpf::cty::c_ulong, - pub argmin: ::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 loader: ::aya_ebpf::cty::c_ulong, - 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 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 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 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 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, - ) -> __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 - } +#[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 struct binfmt_misc { - pub entries: list_head, - pub entries_lock: rwlock_t, - pub enabled: bool_, +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 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, +pub struct kparam_string { + pub maxlen: ::aya_ebpf::cty::c_uint, + pub string: *mut ::aya_ebpf::cty::c_char, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct kernfs_elem_symlink { - pub target_kn: *mut kernfs_node, +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 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(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 __bindgen_anon_1: kernfs_node__bindgen_ty_1, - pub priv_: *mut ::aya_ebpf::cty::c_void, - pub id: u64_, - pub flags: ::aya_ebpf::cty::c_ushort, - pub mode: umode_t, - pub iattr: *mut kernfs_iattrs, -} -#[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, +pub struct error_injection_entry { + pub addr: ::aya_ebpf::cty::c_ulong, + pub etype: ::aya_ebpf::cty::c_int, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct 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< +pub struct module_attribute { + pub attr: attribute, + pub show: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut kernfs_open_file, - arg2: *mut ::aya_ebpf::cty::c_char, - arg3: usize, - arg4: loff_t, + arg1: *mut module_attribute, + arg2: *mut module_kobject, + arg3: *mut ::aya_ebpf::cty::c_char, ) -> isize, >, - pub atomic_write_len: usize, - pub prealloc: bool_, - pub write: ::core::option::Option< + pub store: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut kernfs_open_file, - arg2: *mut ::aya_ebpf::cty::c_char, - arg3: usize, - arg4: loff_t, + arg1: *mut module_attribute, + arg2: *mut module_kobject, + arg3: *const ::aya_ebpf::cty::c_char, + arg4: usize, ) -> 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, + pub setup: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut module, arg2: *const ::aya_ebpf::cty::c_char), >, -} -#[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 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 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 - } -} -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 test: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub free: ::core::option::Option, } #[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, +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 attribute { - pub name: *const ::aya_ebpf::cty::c_char, - pub mode: umode_t, +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, } +pub type kernel_ulong_t = ::aya_ebpf::cty::c_ulong; #[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: *mut 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: *mut 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: *mut 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: *mut bin_attribute, - arg4: *mut vm_area_struct, - ) -> ::aya_ebpf::cty::c_int, - >, +pub struct acpi_device_id { + pub id: [__u8; 16usize], + pub driver_data: kernel_ulong_t, + pub cls: __u32, + pub cls_msk: __u32, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct sysfs_ops { +pub struct device_attribute { + pub attr: attribute, pub show: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut kobject, - arg2: *mut attribute, + 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 kobject, - arg2: *mut attribute, + arg1: *mut device, + arg2: *mut device_attribute, arg3: *const ::aya_ebpf::cty::c_char, arg4: usize, ) -> isize, >, } #[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 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), - >, +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(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, +#[derive(Copy, Clone)] +pub struct msi_dev_domain { + pub store: xarray, + pub domain: *mut irq_domain, } #[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, - >, +#[derive(Copy, Clone)] +pub struct msi_device_data { + pub properties: ::aya_ebpf::cty::c_ulong, + pub platform_data: *mut platform_msi_priv_data, + pub mutex: mutex, + pub __domains: [msi_dev_domain; 2usize], + pub __iter_idx: ::aya_ebpf::cty::c_ulong, } -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct em_perf_state { - 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, +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; } -#[repr(C)] -#[derive(Debug)] -pub struct em_perf_domain { - pub table: *mut em_perf_state, - pub nr_perf_states: ::aya_ebpf::cty::c_int, - pub flags: ::aya_ebpf::cty::c_ulong, - pub cpus: __IncompleteArrayField<::aya_ebpf::cty::c_ulong>, +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 dl_dev_state { +pub mod device_physical_location_horizontal_position { 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 const DEVICE_HORI_POS_LEFT: Type = 0; + pub const DEVICE_HORI_POS_CENTER: Type = 1; + pub const DEVICE_HORI_POS_RIGHT: Type = 2; } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct dev_links_info { +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_, +} +pub type dma_addr_t = u64_; +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; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dma_map_ops { + pub flags: ::aya_ebpf::cty::c_uint, + 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: ::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 alloc_noncontiguous: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut device, + arg2: usize, + arg3: dma_data_direction::Type, + arg4: gfp_t, + arg5: ::aya_ebpf::cty::c_ulong, + ) -> *mut sg_table, + >, + pub free_noncontiguous: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut device, + arg2: usize, + arg3: *mut sg_table, + arg4: 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 bus_dma_region { + pub cpu_start: phys_addr_t, + pub dma_start: dma_addr_t, + pub size: u64_, +} +pub type phandle = u32_; +#[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 defer_sync: list_head, - pub status: dl_dev_state::Type, + pub flags: u8_, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct pm_message { - pub event: ::aya_ebpf::cty::c_int, +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, } -pub type pm_message_t = pm_message; -pub mod rpm_request { +pub mod dev_dma_attr { 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 const DEV_DMA_NOT_SUPPORTED: Type = 0; + pub const DEV_DMA_NON_COHERENT: Type = 1; + pub const DEV_DMA_COHERENT: Type = 2; } -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; +#[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_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(Copy, Clone)] -pub struct dev_pm_info { - pub power_state: pm_message_t, +#[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_reference_args { + pub fwnode: *mut fwnode_handle, + pub nargs: ::aya_ebpf::cty::c_uint, + pub args: [u64_; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct property { + pub name: *mut ::aya_ebpf::cty::c_char, + pub length: ::aya_ebpf::cty::c_int, + pub value: *mut ::aya_ebpf::cty::c_void, + pub next: *mut property, +} +pub 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 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 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; 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 _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 irq_affinity_notify { + pub irq: ::aya_ebpf::cty::c_uint, + pub kref: kref, 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 notify: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut irq_affinity_notify, arg2: *const cpumask_t), + >, + pub release: ::core::option::Option, } -impl dev_pm_info { +#[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 can_wakeup(&self) -> ::aya_ebpf::cty::c_uint { + 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_can_wakeup(&mut self, val: ::aya_ebpf::cty::c_uint) { + 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 fn async_suspend(&self) -> ::aya_ebpf::cty::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } - } - #[inline] - pub fn set_async_suspend(&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 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 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) - } + 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 } - #[inline] - pub fn is_suspended(&self) -> bool_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) } +} +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 type irq_flow_handler_t = ::core::option::Option; +#[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 ::aya_ebpf::cty::c_uint, + 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; 56usize]>, +} +#[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_is_suspended(&mut self, val: bool_) { + pub fn set_reserved_0(&mut self, val: u32_) { unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(4usize, 1u8, val as u64) + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 2u8, val as u64) } } #[inline] - pub fn is_noirq_suspended(&self) -> bool_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) } + pub fn dest_mode_logical(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } } #[inline] - pub fn set_is_noirq_suspended(&mut self, val: bool_) { + pub fn set_dest_mode_logical(&mut self, val: u32_) { unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) } } #[inline] - pub fn is_late_suspended(&self) -> bool_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) } + pub fn redirect_hint(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } } #[inline] - pub fn set_is_late_suspended(&mut self, val: bool_) { + pub fn set_redirect_hint(&mut self, val: u32_) { unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) } } #[inline] - pub fn no_pm(&self) -> bool_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) } + pub fn reserved_1(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } } #[inline] - pub fn set_no_pm(&mut self, val: bool_) { + pub fn set_reserved_1(&mut self, val: u32_) { unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(7usize, 1u8, val as u64) + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) } } #[inline] - pub fn early_init(&self) -> bool_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u8) } + pub fn virt_destid_8_14(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 7u8) as u32) } } #[inline] - pub fn set_early_init(&mut self, val: bool_) { + pub fn set_virt_destid_8_14(&mut self, val: u32_) { unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(8usize, 1u8, val as u64) + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 7u8, val as u64) } } #[inline] - pub fn direct_complete(&self) -> bool_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u8) } + pub fn destid_0_7(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 8u8) as u32) } } #[inline] - pub fn set_direct_complete(&mut self, val: bool_) { + pub fn set_destid_0_7(&mut self, val: u32_) { unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(9usize, 1u8, val as u64) + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(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 fn new_bitfield_1( - can_wakeup: ::aya_ebpf::cty::c_uint, - async_suspend: ::aya_ebpf::cty::c_uint, - 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: u32 = unsafe { ::core::mem::transmute(can_wakeup) }; - can_wakeup as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let async_suspend: u32 = unsafe { ::core::mem::transmute(async_suspend) }; - async_suspend as u64 + 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 in_dpm_list: u8 = unsafe { ::core::mem::transmute(in_dpm_list) }; - in_dpm_list as u64 + let dest_mode_logical: u32 = unsafe { ::core::mem::transmute(dest_mode_logical) }; + dest_mode_logical as u64 }); __bindgen_bitfield_unit.set(3usize, 1u8, { - let is_prepared: u8 = unsafe { ::core::mem::transmute(is_prepared) }; - is_prepared as u64 + let redirect_hint: u32 = unsafe { ::core::mem::transmute(redirect_hint) }; + redirect_hint 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 + let reserved_1: u32 = unsafe { ::core::mem::transmute(reserved_1) }; + reserved_1 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(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(8usize, 1u8, { - let early_init: u8 = unsafe { ::core::mem::transmute(early_init) }; - early_init 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(9usize, 1u8, { - let direct_complete: u8 = unsafe { ::core::mem::transmute(direct_complete) }; - direct_complete 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 wakeup_path(&self) -> bool_ { - unsafe { ::core::mem::transmute(self._bitfield_2.get(0usize, 1u8) as u8) } + pub fn dmar_reserved_0(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u32) } } #[inline] - pub fn set_wakeup_path(&mut self, val: bool_) { + pub fn set_dmar_reserved_0(&mut self, val: u32_) { unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_2.set(0usize, 1u8, val as u64) + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 2u8, val as u64) } } #[inline] - pub fn syscore(&self) -> bool_ { - unsafe { ::core::mem::transmute(self._bitfield_2.get(1usize, 1u8) as u8) } + pub fn dmar_index_15(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } } #[inline] - pub fn set_syscore(&mut self, val: bool_) { + pub fn set_dmar_index_15(&mut self, val: u32_) { unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_2.set(1usize, 1u8, val as u64) + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) } } #[inline] - pub fn no_pm_callbacks(&self) -> bool_ { - unsafe { ::core::mem::transmute(self._bitfield_2.get(2usize, 1u8) as u8) } + pub fn dmar_subhandle_valid(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } } #[inline] - pub fn set_no_pm_callbacks(&mut self, val: bool_) { + pub fn set_dmar_subhandle_valid(&mut self, val: u32_) { unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_2.set(2usize, 1u8, val as u64) + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) } } #[inline] - pub fn async_in_progress(&self) -> bool_ { - unsafe { ::core::mem::transmute(self._bitfield_2.get(3usize, 1u8) as u8) } + pub fn dmar_format(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } } #[inline] - pub fn set_async_in_progress(&mut self, val: bool_) { + pub fn set_dmar_format(&mut self, val: u32_) { unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_2.set(3usize, 1u8, val as u64) + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) } } #[inline] - pub fn must_resume(&self) -> ::aya_ebpf::cty::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_2.get(4usize, 1u8) as u32) } + pub fn dmar_index_0_14(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 15u8) as u32) } } #[inline] - pub fn set_must_resume(&mut self, val: ::aya_ebpf::cty::c_uint) { + pub fn set_dmar_index_0_14(&mut self, val: u32_) { unsafe { let val: u32 = ::core::mem::transmute(val); - self._bitfield_2.set(4usize, 1u8, val as u64) + self._bitfield_1.set(5usize, 15u8, val as u64) } } #[inline] - pub fn may_skip_resume(&self) -> ::aya_ebpf::cty::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_2.get(5usize, 1u8) as u32) } + pub fn dmar_base_address(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 12u8) as u32) } } #[inline] - pub fn set_may_skip_resume(&mut self, val: ::aya_ebpf::cty::c_uint) { + pub fn set_dmar_base_address(&mut self, val: u32_) { unsafe { let val: u32 = ::core::mem::transmute(val); - self._bitfield_2.set(5usize, 1u8, val as u64) + self._bitfield_1.set(20usize, 12u8, val as u64) } } #[inline] - pub fn new_bitfield_2( - wakeup_path: bool_, - syscore: bool_, - no_pm_callbacks: bool_, - async_in_progress: bool_, - must_resume: ::aya_ebpf::cty::c_uint, - may_skip_resume: ::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 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 + 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 no_pm_callbacks: u8 = unsafe { ::core::mem::transmute(no_pm_callbacks) }; - no_pm_callbacks as u64 + let dmar_index_15: u32 = unsafe { ::core::mem::transmute(dmar_index_15) }; + dmar_index_15 as u64 }); __bindgen_bitfield_unit.set(3usize, 1u8, { - let async_in_progress: u8 = unsafe { ::core::mem::transmute(async_in_progress) }; - async_in_progress as u64 + let dmar_subhandle_valid: u32 = unsafe { ::core::mem::transmute(dmar_subhandle_valid) }; + dmar_subhandle_valid as u64 }); __bindgen_bitfield_unit.set(4usize, 1u8, { - let must_resume: u32 = unsafe { ::core::mem::transmute(must_resume) }; - must_resume as u64 + let dmar_format: u32 = unsafe { ::core::mem::transmute(dmar_format) }; + dmar_format as u64 }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let may_skip_resume: u32 = unsafe { ::core::mem::transmute(may_skip_resume) }; - may_skip_resume 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 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 fn idle_notification(&self) -> ::aya_ebpf::cty::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_3.get(3usize, 1u8) as u32) } - } - #[inline] - pub fn set_idle_notification(&mut self, val: ::aya_ebpf::cty::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_3.set(3usize, 1u8, val as u64) - } - } - #[inline] - pub fn request_pending(&self) -> ::aya_ebpf::cty::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_3.get(4usize, 1u8) as u32) } + pub fn reserved(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) } } #[inline] - pub fn set_request_pending(&mut self, val: ::aya_ebpf::cty::c_uint) { + pub fn set_reserved(&mut self, val: u32_) { unsafe { let val: u32 = ::core::mem::transmute(val); - self._bitfield_3.set(4usize, 1u8, val as u64) + self._bitfield_1.set(0usize, 8u8, val as u64) } } #[inline] - pub fn deferred_resume(&self) -> ::aya_ebpf::cty::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_3.get(5usize, 1u8) as u32) } + pub fn destid_8_31(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 24u8) as u32) } } #[inline] - pub fn set_deferred_resume(&mut self, val: ::aya_ebpf::cty::c_uint) { + pub fn set_destid_8_31(&mut self, val: u32_) { unsafe { let val: u32 = ::core::mem::transmute(val); - self._bitfield_3.set(5usize, 1u8, val as u64) + self._bitfield_1.set(8usize, 24u8, val as u64) } } #[inline] - pub fn needs_force_resume(&self) -> ::aya_ebpf::cty::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_3.get(6usize, 1u8) as u32) } - } - #[inline] - pub fn set_needs_force_resume(&mut self, val: ::aya_ebpf::cty::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_3.set(6usize, 1u8, val as u64) - } + 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 runtime_auto(&self) -> ::aya_ebpf::cty::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_3.get(7usize, 1u8) as u32) } + pub fn vector(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) } } #[inline] - pub fn set_runtime_auto(&mut self, val: ::aya_ebpf::cty::c_uint) { + pub fn set_vector(&mut self, val: u32_) { unsafe { let val: u32 = ::core::mem::transmute(val); - self._bitfield_3.set(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) + self._bitfield_1.set(0usize, 8u8, val as u64) } } #[inline] - pub fn no_callbacks(&self) -> ::aya_ebpf::cty::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_3.get(9usize, 1u8) as u32) } + pub fn delivery_mode(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 3u8) as u32) } } #[inline] - pub fn set_no_callbacks(&mut self, val: ::aya_ebpf::cty::c_uint) { + pub fn set_delivery_mode(&mut self, val: u32_) { unsafe { let val: u32 = ::core::mem::transmute(val); - self._bitfield_3.set(9usize, 1u8, val as u64) + self._bitfield_1.set(8usize, 3u8, val as u64) } } #[inline] - pub fn irq_safe(&self) -> ::aya_ebpf::cty::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_3.get(10usize, 1u8) as u32) } + pub fn dest_mode_logical(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) } } #[inline] - pub fn set_irq_safe(&mut self, val: ::aya_ebpf::cty::c_uint) { + pub fn set_dest_mode_logical(&mut self, val: u32_) { unsafe { let val: u32 = ::core::mem::transmute(val); - self._bitfield_3.set(10usize, 1u8, val as u64) + self._bitfield_1.set(11usize, 1u8, val as u64) } } #[inline] - pub fn use_autosuspend(&self) -> ::aya_ebpf::cty::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_3.get(11usize, 1u8) as u32) } + pub fn reserved(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 2u8) as u32) } } #[inline] - pub fn set_use_autosuspend(&mut self, val: ::aya_ebpf::cty::c_uint) { + pub fn set_reserved(&mut self, val: u32_) { unsafe { let val: u32 = ::core::mem::transmute(val); - self._bitfield_3.set(11usize, 1u8, val as u64) + self._bitfield_1.set(12usize, 2u8, val as u64) } } #[inline] - pub fn timer_autosuspends(&self) -> ::aya_ebpf::cty::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_3.get(12usize, 1u8) as u32) } + pub fn active_low(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u32) } } #[inline] - pub fn set_timer_autosuspends(&mut self, val: ::aya_ebpf::cty::c_uint) { + pub fn set_active_low(&mut self, val: u32_) { unsafe { let val: u32 = ::core::mem::transmute(val); - self._bitfield_3.set(12usize, 1u8, val as u64) + self._bitfield_1.set(14usize, 1u8, val as u64) } } #[inline] - pub fn memalloc_noio(&self) -> ::aya_ebpf::cty::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_3.get(13usize, 1u8) as u32) } + pub fn is_level(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u32) } } #[inline] - pub fn set_memalloc_noio(&mut self, val: ::aya_ebpf::cty::c_uint) { + pub fn set_is_level(&mut self, val: u32_) { unsafe { let val: u32 = ::core::mem::transmute(val); - self._bitfield_3.set(13usize, 1u8, val as u64) + self._bitfield_1.set(15usize, 1u8, val as u64) } } #[inline] - pub fn new_bitfield_3( - disable_depth: ::aya_ebpf::cty::c_uint, - idle_notification: ::aya_ebpf::cty::c_uint, - request_pending: ::aya_ebpf::cty::c_uint, - deferred_resume: ::aya_ebpf::cty::c_uint, - needs_force_resume: ::aya_ebpf::cty::c_uint, - runtime_auto: ::aya_ebpf::cty::c_uint, - ignore_children: bool_, - no_callbacks: ::aya_ebpf::cty::c_uint, - irq_safe: ::aya_ebpf::cty::c_uint, - use_autosuspend: ::aya_ebpf::cty::c_uint, - timer_autosuspends: ::aya_ebpf::cty::c_uint, - memalloc_noio: ::aya_ebpf::cty::c_uint, + 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, 3u8, { - let disable_depth: u32 = unsafe { ::core::mem::transmute(disable_depth) }; - disable_depth as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let idle_notification: u32 = unsafe { ::core::mem::transmute(idle_notification) }; - idle_notification as u64 - }); - __bindgen_bitfield_unit.set(4usize, 1u8, { - let request_pending: u32 = unsafe { ::core::mem::transmute(request_pending) }; - request_pending as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let deferred_resume: u32 = unsafe { ::core::mem::transmute(deferred_resume) }; - deferred_resume as u64 - }); - __bindgen_bitfield_unit.set(6usize, 1u8, { - let needs_force_resume: u32 = unsafe { ::core::mem::transmute(needs_force_resume) }; - needs_force_resume as u64 - }); - __bindgen_bitfield_unit.set(7usize, 1u8, { - let runtime_auto: u32 = 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: u32 = unsafe { ::core::mem::transmute(no_callbacks) }; - no_callbacks as u64 + __bindgen_bitfield_unit.set(0usize, 8u8, { + let vector: u32 = unsafe { ::core::mem::transmute(vector) }; + vector as u64 }); - __bindgen_bitfield_unit.set(10usize, 1u8, { - let irq_safe: u32 = unsafe { ::core::mem::transmute(irq_safe) }; - irq_safe 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 use_autosuspend: u32 = unsafe { ::core::mem::transmute(use_autosuspend) }; - use_autosuspend as u64 + let dest_mode_logical: u32 = unsafe { ::core::mem::transmute(dest_mode_logical) }; + dest_mode_logical as u64 }); - __bindgen_bitfield_unit.set(12usize, 1u8, { - let timer_autosuspends: u32 = unsafe { ::core::mem::transmute(timer_autosuspends) }; - timer_autosuspends as u64 + __bindgen_bitfield_unit.set(12usize, 2u8, { + let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; + reserved as u64 }); - __bindgen_bitfield_unit.set(13usize, 1u8, { - let memalloc_noio: u32 = unsafe { ::core::mem::transmute(memalloc_noio) }; - memalloc_noio 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 + __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(Debug, Copy, Clone)] -pub struct dev_msi_info { - pub domain: *mut irq_domain, - pub data: *mut msi_device_data, +#[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(Debug, Copy, Clone)] -pub struct dev_archdata {} -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; +#[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 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 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(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; 1usize]>, - pub __bindgen_padding_0: [u8; 3usize], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, + pub default_irq: ::aya_ebpf::cty::c_uint, } -impl device { +impl pci_msi_desc__bindgen_ty_2 { #[inline] - pub fn offline_disabled(&self) -> bool_ { + pub fn is_msix(&self) -> u8_ { unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } } #[inline] - pub fn set_offline_disabled(&mut self, val: bool_) { + 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 fn offline(&self) -> bool_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + pub fn multiple(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 3u8) as u8) } } #[inline] - pub fn set_offline(&mut self, val: bool_) { + pub fn set_multiple(&mut self, val: u8_) { unsafe { let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) + self._bitfield_1.set(1usize, 3u8, val as u64) } } #[inline] - pub fn of_node_reused(&self) -> bool_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) } + pub fn multi_cap(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 3u8) as u8) } } #[inline] - pub fn set_of_node_reused(&mut self, val: bool_) { + pub fn set_multi_cap(&mut self, val: u8_) { unsafe { let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) + self._bitfield_1.set(4usize, 3u8, val as u64) } } #[inline] - pub fn state_synced(&self) -> bool_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) } + pub fn can_mask(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) } } #[inline] - pub fn set_state_synced(&mut self, val: bool_) { + pub fn set_can_mask(&mut self, val: u8_) { unsafe { let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) + self._bitfield_1.set(7usize, 1u8, val as u64) } } #[inline] - pub fn can_match(&self) -> bool_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) } + pub fn is_64(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u8) } } #[inline] - pub fn set_can_match(&mut self, val: bool_) { + pub fn set_is_64(&mut self, val: u8_) { unsafe { let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(4usize, 1u8, val as u64) + self._bitfield_1.set(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 fn new_bitfield_1( - offline_disabled: bool_, - offline: bool_, - of_node_reused: bool_, - state_synced: bool_, - can_match: bool_, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + 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 offline_disabled: u8 = unsafe { ::core::mem::transmute(offline_disabled) }; - offline_disabled as u64 + let is_msix: u8 = unsafe { ::core::mem::transmute(is_msix) }; + is_msix as u64 }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let offline: u8 = unsafe { ::core::mem::transmute(offline) }; - offline as u64 + __bindgen_bitfield_unit.set(1usize, 3u8, { + let multiple: u8 = unsafe { ::core::mem::transmute(multiple) }; + multiple 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(4usize, 3u8, { + let multi_cap: u8 = unsafe { ::core::mem::transmute(multi_cap) }; + multi_cap 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(7usize, 1u8, { + let can_mask: u8 = unsafe { ::core::mem::transmute(can_mask) }; + can_mask 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(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(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>, +#[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 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, +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 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 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 iommu_cookie: *const ::aya_ebpf::cty::c_void, + 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(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 flags: ::aya_ebpf::cty::c_ulong, +} +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; +} +#[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; 7usize], + pub __bindgen_padding_0: [u8; 3usize], } -impl wakeup_source { +impl ioapic_alloc_info { #[inline] - pub fn active(&self) -> bool_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + pub fn is_level(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } } #[inline] - pub fn set_active(&mut self, val: bool_) { + pub fn set_is_level(&mut self, val: u32_) { unsafe { - let val: u8 = ::core::mem::transmute(val); + let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(0usize, 1u8, val as u64) } } #[inline] - pub fn autosleep_enabled(&self) -> bool_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + pub fn active_low(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } } #[inline] - pub fn set_autosleep_enabled(&mut self, val: bool_) { + pub fn set_active_low(&mut self, val: u32_) { unsafe { - let val: u8 = ::core::mem::transmute(val); + let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(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 fn new_bitfield_1( - active: bool_, - autosleep_enabled: bool_, + 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 active: u8 = unsafe { ::core::mem::transmute(active) }; - active as u64 + let is_level: u32 = unsafe { ::core::mem::transmute(is_level) }; + is_level as u64 }); __bindgen_bitfield_unit.set(1usize, 1u8, { - let autosleep_enabled: u8 = unsafe { ::core::mem::transmute(autosleep_enabled) }; - autosleep_enabled as u64 + 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 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, - >, +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, } #[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: *mut 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 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 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, + pub polarity: ::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 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_, + 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 type_cache: u32_, + pub polarity_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, } -pub mod probe_type { +pub mod irq_gc_flags { 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 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; +} +#[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 gc: __IncompleteArrayField<*mut irq_chip_generic>, } #[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 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, >, - 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 class { +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 class_groups: *mut *const attribute_group, - pub dev_groups: *mut *const attribute_group, - pub dev_uevent: ::core::option::Option< + 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_: ::aya_ebpf::cty::c_short, + pub subtype: ::aya_ebpf::cty::c_short, + 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_operations { + pub lookup: ::core::option::Option< unsafe extern "C" fn( - arg1: *const device, - arg2: *mut kobj_uevent_env, + 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 devnode: ::core::option::Option< + 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: *const device, - arg2: *mut umode_t, - ) -> *mut ::aya_ebpf::cty::c_char, + arg1: *mut tty_struct, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, >, - 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 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 get_ownership: ::core::option::Option< - unsafe extern "C" fn(arg1: *const device, arg2: *mut kuid_t, arg3: *mut kgid_t), + 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 pm: *const dev_pm_ops, -} -#[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< + pub flush_buffer: ::core::option::Option, + 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: *const device, - arg2: *mut kobj_uevent_env, + arg1: *mut tty_struct, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_uint, ) -> ::aya_ebpf::cty::c_int, >, - pub devnode: ::core::option::Option< + 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: *const device, - arg2: *mut umode_t, - arg3: *mut kuid_t, - arg4: *mut kgid_t, - ) -> *mut ::aya_ebpf::cty::c_char, + arg1: *mut tty_struct, + arg2: *mut serial_icounter_struct, + ) -> ::aya_ebpf::cty::c_int, >, - pub release: ::core::option::Option, - pub pm: *const dev_pm_ops, -} -pub type Elf64_Addr = __u64; -pub type Elf64_Half = __u16; -pub type Elf64_Word = __u32; -pub type Elf64_Xword = __u64; -#[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, -} -#[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 kparam_string { - pub maxlen: ::aya_ebpf::cty::c_uint, - pub string: *mut ::aya_ebpf::cty::c_char, -} -#[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 error_injection_entry { - pub addr: ::aya_ebpf::cty::c_ulong, - pub etype: ::aya_ebpf::cty::c_int, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct module_attribute { - pub attr: attribute, - pub show: ::core::option::Option< + pub get_serial: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut module_attribute, - arg2: *mut module_kobject, - arg3: *mut ::aya_ebpf::cty::c_char, - ) -> isize, + arg1: *mut tty_struct, + arg2: *mut serial_struct, + ) -> ::aya_ebpf::cty::c_int, >, - pub store: ::core::option::Option< + pub set_serial: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut module_attribute, - arg2: *mut module_kobject, - arg3: *const ::aya_ebpf::cty::c_char, - arg4: usize, - ) -> isize, + arg1: *mut tty_struct, + arg2: *mut serial_struct, + ) -> ::aya_ebpf::cty::c_int, >, - pub setup: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut module, arg2: *const ::aya_ebpf::cty::c_char), + pub show_fdinfo: + ::core::option::Option, + pub proc_show: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut seq_file, + arg2: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, >, - pub test: - ::core::option::Option ::aya_ebpf::cty::c_int>, - pub free: ::core::option::Option, } #[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, +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 trace_event { - pub node: hlist_node, +pub struct serial_struct { 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 filter: *mut event_filter, - pub __bindgen_anon_2: trace_event_call__bindgen_ty_2, - pub data: *mut ::aya_ebpf::cty::c_void, + 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 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, - >, + 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(Copy, Clone)] -pub union trace_event_call__bindgen_ty_1 { - pub name: *mut ::aya_ebpf::cty::c_char, - pub tp: *mut tracepoint, +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 trace_event_call__bindgen_ty_2 { - pub module: *mut ::aya_ebpf::cty::c_void, - pub refcnt: atomic_t, +pub union tty_buffer__bindgen_ty_1 { + pub next: *mut tty_buffer, + pub free: llist_node, } #[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, +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)] #[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, +pub struct __kfifo { + pub in_: ::aya_ebpf::cty::c_uint, + pub out: ::aya_ebpf::cty::c_uint, + pub mask: ::aya_ebpf::cty::c_uint, + pub esize: ::aya_ebpf::cty::c_uint, + pub data: *mut ::aya_ebpf::cty::c_void, } -pub type kernel_ulong_t = ::aya_ebpf::cty::c_ulong; #[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, +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)] -#[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, -} -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_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 struct tty_port__bindgen_ty_1 { + pub __bindgen_anon_1: tty_port__bindgen_ty_1__bindgen_ty_1, + pub buf: __IncompleteArrayField, } #[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_, -} -pub type dma_addr_t = u64_; -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; +#[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 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 dma_map_ops { - pub flags: ::aya_ebpf::cty::c_uint, - pub alloc: ::core::option::Option< +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 device, - arg2: usize, - arg3: *mut dma_addr_t, - arg4: gfp_t, - arg5: ::aya_ebpf::cty::c_ulong, - ) -> *mut ::aya_ebpf::cty::c_void, + 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 free: ::core::option::Option< + pub write: ::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, - ), + arg1: *mut tty_struct, + arg2: *mut file, + arg3: *const u8_, + arg4: usize, + ) -> isize, >, - pub alloc_pages: ::core::option::Option< + pub ioctl: ::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, + arg1: *mut tty_struct, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_int, >, - pub free_pages: ::core::option::Option< + pub compat_ioctl: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut device, - arg2: usize, - arg3: *mut page, - arg4: dma_addr_t, - arg5: dma_data_direction::Type, + 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 alloc_noncontiguous: ::core::option::Option< + pub write_wakeup: ::core::option::Option, + pub dcd_change: + ::core::option::Option, + pub receive_buf2: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut device, - arg2: usize, - arg3: dma_data_direction::Type, - arg4: gfp_t, - arg5: ::aya_ebpf::cty::c_ulong, - ) -> *mut sg_table, + arg1: *mut tty_struct, + arg2: *const u8_, + arg3: *const u8_, + arg4: usize, + ) -> usize, >, - pub free_noncontiguous: ::core::option::Option< + pub lookahead_buf: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut device, - arg2: usize, - arg3: *mut sg_table, - arg4: dma_data_direction::Type, + arg1: *mut tty_struct, + arg2: *const u8_, + arg3: *const u8_, + arg4: usize, ), >, - pub mmap: ::core::option::Option< + pub owner: *mut module, +} +#[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_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(Debug, Copy, Clone)] +pub struct tty_port_client_operations { + pub receive_buf: ::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, + 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 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 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 get_sgtable: ::core::option::Option< + pub select: ::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, + arg1: *mut irq_domain, + arg2: *mut irq_fwspec, + arg3: irq_domain_bus_token::Type, ) -> ::aya_ebpf::cty::c_int, >, - pub map_page: ::core::option::Option< + pub map: ::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, + arg1: *mut irq_domain, + arg2: ::aya_ebpf::cty::c_uint, + arg3: irq_hw_number_t, + ) -> ::aya_ebpf::cty::c_int, >, - pub unmap_page: ::core::option::Option< + 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 device, - arg2: dma_addr_t, - arg3: usize, - arg4: dma_data_direction::Type, - arg5: ::aya_ebpf::cty::c_ulong, - ), + 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 map_sg: ::core::option::Option< + pub alloc: ::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, + 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 unmap_sg: ::core::option::Option< + pub free: ::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, + arg1: *mut irq_domain, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_uint, ), >, - pub map_resource: ::core::option::Option< + pub activate: ::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, + arg1: *mut irq_domain, + arg2: *mut irq_data, + arg3: bool_, + ) -> ::aya_ebpf::cty::c_int, >, - pub unmap_resource: ::core::option::Option< + pub deactivate: + ::core::option::Option, + pub translate: ::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, - ), + 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 sync_single_for_cpu: ::core::option::Option< +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct msi_parent_ops { + pub supported_flags: u32_, + pub required_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: dma_addr_t, - arg3: usize, - arg4: dma_data_direction::Type, - ), + arg2: *mut irq_domain, + arg3: *mut irq_domain, + arg4: *mut msi_domain_info, + ) -> bool_, >, - pub sync_single_for_device: ::core::option::Option< +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pm_qos_flags_request { + pub node: list_head, + pub flags: s32, +} +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; +} +#[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, +} +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; +} +#[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, +} +pub type msi_alloc_info_t = irq_alloc_info; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct msi_domain_ops { + pub get_hwirq: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut device, - arg2: dma_addr_t, - arg3: usize, - arg4: dma_data_direction::Type, - ), + arg1: *mut msi_domain_info, + arg2: *mut msi_alloc_info_t, + ) -> irq_hw_number_t, >, - pub sync_sg_for_cpu: ::core::option::Option< + pub msi_init: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut device, - arg2: *mut scatterlist, - arg3: ::aya_ebpf::cty::c_int, - arg4: dma_data_direction::Type, + 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 sync_sg_for_device: ::core::option::Option< + pub msi_prepare: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut device, - arg2: *mut scatterlist, + arg1: *mut irq_domain, + arg2: *mut device, arg3: ::aya_ebpf::cty::c_int, - arg4: dma_data_direction::Type, - ), + arg4: *mut msi_alloc_info_t, + ) -> ::aya_ebpf::cty::c_int, >, - pub cache_sync: ::core::option::Option< + pub prepare_desc: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut device, - arg2: *mut ::aya_ebpf::cty::c_void, - arg3: usize, - arg4: dma_data_direction::Type, + arg1: *mut irq_domain, + arg2: *mut msi_alloc_info_t, + arg3: *mut msi_desc, ), >, - pub dma_supported: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut device, arg2: u64_) -> ::aya_ebpf::cty::c_int, + 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_post_free: + ::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, >, - 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 bus_dma_region { - pub cpu_start: phys_addr_t, - pub dma_start: dma_addr_t, - pub size: u64_, +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 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 data: *mut ::aya_ebpf::cty::c_void, +} +#[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(Debug, Copy, Clone)] -pub struct seq_buf { - pub buffer: *mut ::aya_ebpf::cty::c_char, - pub size: usize, - pub len: usize, +pub struct ns_common { + pub stashed: *mut dentry, + pub ops: *const proc_ns_operations, + pub inum: ::aya_ebpf::cty::c_uint, + pub count: refcount_t, +} +#[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 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 memfd_noexec_scope: ::aya_ebpf::cty::c_int, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct trace_seq { - pub buffer: [::aya_ebpf::cty::c_char; 8156usize], - pub seq: seq_buf, - pub readpos: usize, - pub full: ::aya_ebpf::cty::c_int, +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(Copy, Clone)] -pub union perf_mem_data_src { - pub val: __u64, - pub __bindgen_anon_1: perf_mem_data_src__bindgen_ty_1, +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, +} +#[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)] -#[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]>, +pub struct arch_uprobe__bindgen_ty_2__bindgen_ty_1 { + pub offs: s32, + pub ilen: u8_, + pub opc1: u8_, } -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) } +#[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 uprobe_xol_ops { + pub emulate: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut arch_uprobe, arg2: *mut pt_regs) -> bool_, + >, + pub pre_xol: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut arch_uprobe, arg2: *mut pt_regs) -> ::aya_ebpf::cty::c_int, + >, + pub post_xol: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut arch_uprobe, arg2: *mut pt_regs) -> ::aya_ebpf::cty::c_int, + >, + pub abort: + ::core::option::Option, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct 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 proc_ns_operations { + pub name: *const ::aya_ebpf::cty::c_char, + pub real_ns_name: *const ::aya_ebpf::cty::c_char, + pub type_: ::aya_ebpf::cty::c_int, + 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 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(Debug)] +pub struct cacheline_padding { + pub x: __IncompleteArrayField<::aya_ebpf::cty::c_char>, +} +pub mod perf_event_state { + pub type Type = ::aya_ebpf::cty::c_int; + pub const PERF_EVENT_STATE_DEAD: 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; +} +#[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(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 __reserved_3: __u32, + 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, +} +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_mem_op(&mut self, val: __u64) { + pub fn set_disabled(&mut self, val: __u64) { unsafe { let val: u64 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 5u8, val as u64) + self._bitfield_1.set(0usize, 1u8, val as u64) } } #[inline] - pub fn mem_lvl(&self) -> __u64 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 14u8) as u64) } + pub fn inherit(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u64) } } #[inline] - pub fn set_mem_lvl(&mut self, val: __u64) { + pub fn set_inherit(&mut self, val: __u64) { unsafe { let val: u64 = ::core::mem::transmute(val); - self._bitfield_1.set(5usize, 14u8, val as u64) + self._bitfield_1.set(1usize, 1u8, val as u64) } } #[inline] - pub fn mem_snoop(&self) -> __u64 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(19usize, 5u8) as u64) } + pub fn pinned(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u64) } } #[inline] - pub fn set_mem_snoop(&mut self, val: __u64) { + pub fn set_pinned(&mut self, val: __u64) { unsafe { let val: u64 = ::core::mem::transmute(val); - self._bitfield_1.set(19usize, 5u8, val as u64) + self._bitfield_1.set(2usize, 1u8, val as u64) } } #[inline] - pub fn mem_lock(&self) -> __u64 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 2u8) as u64) } + pub fn exclusive(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u64) } } #[inline] - pub fn set_mem_lock(&mut self, val: __u64) { + pub fn set_exclusive(&mut self, val: __u64) { unsafe { let val: u64 = ::core::mem::transmute(val); - self._bitfield_1.set(24usize, 2u8, val as u64) + self._bitfield_1.set(3usize, 1u8, val as u64) } } #[inline] - pub fn mem_dtlb(&self) -> __u64 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(26usize, 7u8) as u64) } + pub fn exclude_user(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u64) } } #[inline] - pub fn set_mem_dtlb(&mut self, val: __u64) { + pub fn set_exclude_user(&mut self, val: __u64) { unsafe { let val: u64 = ::core::mem::transmute(val); - self._bitfield_1.set(26usize, 7u8, val as u64) + self._bitfield_1.set(4usize, 1u8, val as u64) } } #[inline] - pub fn mem_lvl_num(&self) -> __u64 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(33usize, 4u8) as u64) } + pub fn exclude_kernel(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u64) } } #[inline] - pub fn set_mem_lvl_num(&mut self, val: __u64) { + pub fn set_exclude_kernel(&mut self, val: __u64) { unsafe { let val: u64 = ::core::mem::transmute(val); - self._bitfield_1.set(33usize, 4u8, val as u64) + self._bitfield_1.set(5usize, 1u8, val as u64) } } #[inline] - pub fn mem_remote(&self) -> __u64 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(37usize, 1u8) as u64) } + pub fn exclude_hv(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u64) } } #[inline] - pub fn set_mem_remote(&mut self, val: __u64) { + pub fn set_exclude_hv(&mut self, val: __u64) { unsafe { let val: u64 = ::core::mem::transmute(val); - self._bitfield_1.set(37usize, 1u8, val as u64) + self._bitfield_1.set(6usize, 1u8, val as u64) } } #[inline] - pub fn mem_snoopx(&self) -> __u64 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(38usize, 2u8) as u64) } + pub fn exclude_idle(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u64) } } #[inline] - pub fn set_mem_snoopx(&mut self, val: __u64) { + pub fn set_exclude_idle(&mut self, val: __u64) { unsafe { let val: u64 = ::core::mem::transmute(val); - self._bitfield_1.set(38usize, 2u8, val as u64) + self._bitfield_1.set(7usize, 1u8, val as u64) } } #[inline] - pub fn mem_blk(&self) -> __u64 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(40usize, 3u8) as u64) } + pub fn mmap(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u64) } } #[inline] - pub fn set_mem_blk(&mut self, val: __u64) { + pub fn set_mmap(&mut self, val: __u64) { unsafe { let val: u64 = ::core::mem::transmute(val); - self._bitfield_1.set(40usize, 3u8, val as u64) + self._bitfield_1.set(8usize, 1u8, val as u64) } } #[inline] - pub fn mem_hops(&self) -> __u64 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(43usize, 3u8) as u64) } + pub fn comm(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u64) } } #[inline] - pub fn set_mem_hops(&mut self, val: __u64) { + pub fn set_comm(&mut self, val: __u64) { unsafe { let val: u64 = ::core::mem::transmute(val); - self._bitfield_1.set(43usize, 3u8, val as u64) + self._bitfield_1.set(9usize, 1u8, val as u64) } } #[inline] - pub fn mem_rsvd(&self) -> __u64 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(46usize, 18u8) as u64) } + pub fn freq(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u64) } } #[inline] - pub fn set_mem_rsvd(&mut self, val: __u64) { + pub fn set_freq(&mut self, val: __u64) { unsafe { let val: u64 = ::core::mem::transmute(val); - self._bitfield_1.set(46usize, 18u8, val as u64) + self._bitfield_1.set(10usize, 1u8, 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 + pub fn inherit_stat(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u64) } } -} -#[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) } + 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 fn set_mispred(&mut self, val: __u64) { + 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(0usize, 1u8, val as u64) + self._bitfield_1.set(12usize, 1u8, val as u64) } } #[inline] - pub fn predicted(&self) -> __u64 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u64) } + pub fn task(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u64) } } #[inline] - pub fn set_predicted(&mut self, val: __u64) { + pub fn set_task(&mut self, val: __u64) { unsafe { let val: u64 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) + self._bitfield_1.set(13usize, 1u8, val as u64) } } #[inline] - pub fn in_tx(&self) -> __u64 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u64) } + pub fn watermark(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u64) } } #[inline] - pub fn set_in_tx(&mut self, val: __u64) { + pub fn set_watermark(&mut self, val: __u64) { unsafe { let val: u64 = ::core::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) + self._bitfield_1.set(14usize, 1u8, val as u64) } } #[inline] - pub fn abort(&self) -> __u64 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u64) } + pub fn precise_ip(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 2u8) as u64) } } #[inline] - pub fn set_abort(&mut self, val: __u64) { + pub fn set_precise_ip(&mut self, val: __u64) { unsafe { let val: u64 = ::core::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) + self._bitfield_1.set(15usize, 2u8, val as u64) } } #[inline] - pub fn cycles(&self) -> __u64 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 16u8) as u64) } + pub fn mmap_data(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u64) } } #[inline] - pub fn set_cycles(&mut self, val: __u64) { + pub fn set_mmap_data(&mut self, val: __u64) { unsafe { let val: u64 = ::core::mem::transmute(val); - self._bitfield_1.set(4usize, 16u8, val as u64) + self._bitfield_1.set(17usize, 1u8, val as u64) } } #[inline] - pub fn type_(&self) -> __u64 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 4u8) as u64) } + pub fn sample_id_all(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u64) } } #[inline] - pub fn set_type(&mut self, val: __u64) { + pub fn set_sample_id_all(&mut self, val: __u64) { unsafe { let val: u64 = ::core::mem::transmute(val); - self._bitfield_1.set(20usize, 4u8, val as u64) + self._bitfield_1.set(18usize, 1u8, val as u64) } } #[inline] - pub fn spec(&self) -> __u64 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 2u8) as u64) } + pub fn exclude_host(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(19usize, 1u8) as u64) } } #[inline] - pub fn set_spec(&mut self, val: __u64) { + pub fn set_exclude_host(&mut self, val: __u64) { unsafe { let val: u64 = ::core::mem::transmute(val); - self._bitfield_1.set(24usize, 2u8, val as u64) + self._bitfield_1.set(19usize, 1u8, val as u64) } } #[inline] - pub fn new_type(&self) -> __u64 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(26usize, 4u8) as u64) } + pub fn exclude_guest(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 1u8) as u64) } } #[inline] - pub fn set_new_type(&mut self, val: __u64) { + pub fn set_exclude_guest(&mut self, val: __u64) { unsafe { let val: u64 = ::core::mem::transmute(val); - self._bitfield_1.set(26usize, 4u8, val as u64) + self._bitfield_1.set(20usize, 1u8, val as u64) } } #[inline] - pub fn priv_(&self) -> __u64 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(30usize, 3u8) as u64) } + pub fn exclude_callchain_kernel(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u64) } } #[inline] - pub fn set_priv(&mut self, val: __u64) { + pub fn set_exclude_callchain_kernel(&mut self, val: __u64) { unsafe { let val: u64 = ::core::mem::transmute(val); - self._bitfield_1.set(30usize, 3u8, val as u64) + self._bitfield_1.set(21usize, 1u8, val as u64) } } #[inline] - pub fn reserved(&self) -> __u64 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(33usize, 31u8) as u64) } + pub fn exclude_callchain_user(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(22usize, 1u8) as u64) } } #[inline] - pub fn set_reserved(&mut self, val: __u64) { + pub fn set_exclude_callchain_user(&mut self, val: __u64) { unsafe { let val: u64 = ::core::mem::transmute(val); - self._bitfield_1.set(33usize, 31u8, val as u64) + self._bitfield_1.set(22usize, 1u8, 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 + pub fn mmap2(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(23usize, 1u8) as u64) } } -} -#[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(Debug, 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)] -#[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 type_: ::aya_ebpf::cty::c_int, - 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 pmu { - pub entry: 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 pmu_disable_count: *mut ::aya_ebpf::cty::c_int, - pub cpu_pmu_context: *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: bool_), - >, - pub task_ctx_cache: *mut kmem_cache, - pub swap_task_ctx: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut perf_event_pmu_context, arg2: *mut perf_event_pmu_context), - >, - 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 ftrace_regs { - pub regs: pt_regs, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct perf_regs { - pub abi: __u64, - pub regs: *mut pt_regs, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct u64_stats_sync {} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct psi_group_cpu { - pub seq: seqcount_t, - 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(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(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_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 post_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, -} -impl cgroup_subsys { #[inline] - pub fn early_init(&self) -> bool_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + 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 fn set_early_init(&mut self, val: bool_) { + 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: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(24usize, 1u8, val as u64) } } #[inline] - pub fn implicit_on_dfl(&self) -> bool_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + pub fn use_clockid(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(25usize, 1u8) as u64) } } #[inline] - pub fn set_implicit_on_dfl(&mut self, val: bool_) { + pub fn set_use_clockid(&mut self, val: __u64) { unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(25usize, 1u8, val as u64) } } #[inline] - pub fn threaded(&self) -> bool_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) } + pub fn context_switch(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(26usize, 1u8) as u64) } } #[inline] - pub fn set_threaded(&mut self, val: bool_) { + pub fn set_context_switch(&mut self, val: __u64) { unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(26usize, 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 + pub fn write_backward(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(27usize, 1u8) as u64) } } -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cgroup_rstat_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, - pub updated_children: *mut cgroup, - pub updated_next: *mut cgroup, -} -#[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 + 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) + } } -} -#[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, - >, -} -#[repr(C)] -#[derive(Debug)] -pub struct perf_callchain_entry { - pub nr: __u64, - pub ip: __IncompleteArrayField<__u64>, -} -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)] -pub struct perf_branch_stack { - pub nr: __u64, - pub hw_idx: __u64, - pub entries: __IncompleteArrayField, -} -#[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 refcount: atomic_t, - pub callback_head: callback_head, - pub task_ctx_data: *mut ::aya_ebpf::cty::c_void, - 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) } + pub fn namespaces(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(28usize, 1u8) as u64) } } #[inline] - pub fn set_embedded(&mut self, val: ::aya_ebpf::cty::c_uint) { + pub fn set_namespaces(&mut self, val: __u64) { unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(28usize, 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 + pub fn ksymbol(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(29usize, 1u8) as u64) } } -} -#[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 hrtimer_lock: raw_spinlock_t, - pub hrtimer: hrtimer, - pub hrtimer_interval: ktime_t, - pub hrtimer_active: ::aya_ebpf::cty::c_uint, -} -#[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 aux_flags: u64_, - pub __bindgen_anon_1: perf_output_handle__bindgen_ty_1, - pub page: ::aya_ebpf::cty::c_int, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union perf_output_handle__bindgen_ty_1 { - pub addr: *mut ::aya_ebpf::cty::c_void, - pub head: ::aya_ebpf::cty::c_ulong, -} -#[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_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 + 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 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 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 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 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 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 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 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 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 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 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 } } #[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 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, +pub struct hw_perf_event_extra { + pub config: u64_, + pub reg: ::aya_ebpf::cty::c_uint, + pub alloc: ::aya_ebpf::cty::c_int, + pub idx: ::aya_ebpf::cty::c_int, } #[repr(C)] -#[derive(Copy, Clone)] -pub struct 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: ::aya_ebpf::cty::c_long, - pub tmp_seq: trace_seq, - pub started: cpumask_var_t, - 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, -} -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; +#[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_, } -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, +pub struct rhash_head { + pub next: *mut rhash_head, } -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; +#[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 trace_event_fields { - pub type_: *const ::aya_ebpf::cty::c_char, - pub __bindgen_anon_1: trace_event_fields__bindgen_ty_1, +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 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, - >, +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, } #[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 is_signed: ::aya_ebpf::cty::c_int, - pub filter_type: ::aya_ebpf::cty::c_int, - pub len: ::aya_ebpf::cty::c_int, +pub struct hw_perf_event__bindgen_ty_1__bindgen_ty_1 { + pub config: u64_, + pub last_tag: 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 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, - >, +pub struct hw_perf_event__bindgen_ty_1__bindgen_ty_2 { + pub hrtimer: hrtimer, } -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 struct hw_perf_event__bindgen_ty_1__bindgen_ty_3 { + pub tp_list: list_head, } -pub type wait_queue_entry_t = wait_queue_entry; #[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, +pub struct hw_perf_event__bindgen_ty_1__bindgen_ty_4 { + pub pwr_acc: u64_, + pub ptsc: u64_, } #[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 _workingset: bool_, - pub _pflags: ::aya_ebpf::cty::c_ulong, +pub struct hw_perf_event__bindgen_ty_1__bindgen_ty_5 { + pub info: arch_hw_breakpoint, + pub bp_list: rhlist_head, } -pub type slab_flags_t = ::aya_ebpf::cty::c_uint; #[repr(C)] -#[derive(Copy, Clone)] -pub struct task_delay_info { - pub lock: raw_spinlock_t, - pub blkio_start: u64_, - pub blkio_delay: u64_, - pub swapin_start: u64_, - pub swapin_delay: u64_, - pub blkio_count: u32_, - pub swapin_count: u32_, - pub freepages_start: u64_, - pub freepages_delay: u64_, - pub thrashing_start: u64_, - pub thrashing_delay: u64_, - pub compact_start: u64_, - pub compact_delay: u64_, - pub wpcopy_start: u64_, - pub wpcopy_delay: 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_, +#[derive(Debug, Copy, Clone)] +pub struct hw_perf_event__bindgen_ty_1__bindgen_ty_6 { + pub iommu_bank: u8_, + pub iommu_cntr: u8_, + pub padding: u16_, + pub conf: u64_, + pub conf1: u64_, } #[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, +#[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 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, +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 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_, +pub struct hw_perf_event__bindgen_ty_2__bindgen_ty_2 { + pub saved_metric: u64_, + pub saved_slots: u64_, } -pub mod dev_dma_attr { +#[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 perf_addr_filters_head { + pub list: list_head, + pub lock: raw_spinlock_t, + pub nr_file_filters: ::aya_ebpf::cty::c_uint, +} +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), +>; +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 mod ftrace_ops_cmd { 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 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 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(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_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, - >, +#[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 ops_func: ftrace_ops_func_t, + pub direct_call: ::aya_ebpf::cty::c_ulong, } #[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, +#[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: atomic_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_sigtrap: ::aya_ebpf::cty::c_uint, + pub pending_addr: ::aya_ebpf::cty::c_ulong, + pub pending_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 orig_overflow_handler: perf_overflow_handler_t, + 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 orig_type: __u32, } #[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_; 8usize], +pub struct ucounts { + pub node: hlist_node, + pub ns: *mut user_namespace, + pub uid: kuid_t, + pub count: atomic_t, + pub ucount: [atomic_long_t; 12usize], + pub rlimit: [atomic_long_t; 4usize], } -pub type phandle = u32_; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct property { - pub name: *mut ::aya_ebpf::cty::c_char, - pub length: ::aya_ebpf::cty::c_int, - pub value: *mut ::aya_ebpf::cty::c_void, - pub next: *mut property, +pub 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 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, +pub struct bio_list { + pub head: *mut bio, + pub tail: *mut bio, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct event_filter { - pub prog: *mut prog_entry, - pub filter_string: *mut ::aya_ebpf::cty::c_char, +pub struct css_set { + pub subsys: [*mut cgroup_subsys_state; 14usize], + 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; 14usize], + 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(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, +pub struct perf_event_groups { + pub tree: rb_root, + pub index: u64_, } #[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 max_latency: ::aya_ebpf::cty::c_ulong, - pub d_max_latency: *mut dentry, - pub fsnotify_work: work_struct, - pub fsnotify_irqwork: irq_work, - pub filtered_pids: *mut trace_pid_list, - pub filtered_no_pids: *mut trace_pid_list, - pub max_lock: arch_spinlock_t, - pub buffer_disabled: ::aya_ebpf::cty::c_int, - 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; 462usize], - pub exit_syscall_files: [*mut trace_event_file; 462usize], - 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 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 ops: *mut ftrace_ops, - pub function_pids: *mut trace_pid_list, - pub function_no_pids: *mut trace_pid_list, - 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_, +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_task_data: ::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_pending: local_t, } #[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_, +pub struct ftrace_ret_stack { + pub ret: ::aya_ebpf::cty::c_ulong, + pub func: ::aya_ebpf::cty::c_ulong, + pub calltime: ::aya_ebpf::cty::c_ulonglong, + pub subtime: ::aya_ebpf::cty::c_ulonglong, + pub retp: *mut ::aya_ebpf::cty::c_ulong, } #[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_: atomic_t, - pub sm_ref: atomic_t, - pub tm_ref: atomic_t, -} -#[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 union lower_chunk { - pub next: *mut lower_chunk, - pub data: [::aya_ebpf::cty::c_ulong; 256usize], -} -#[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 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_array_cpu { - pub disabled: atomic_t, - pub buffer_page: *mut ::aya_ebpf::cty::c_void, - 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(Debug, Copy, Clone)] -pub struct trace_options { - pub tracer: *mut tracer, - pub topts: *mut trace_option_dentry, -} -#[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, -} -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 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, Copy, Clone)] -pub struct tracer_opt { - pub name: *const ::aya_ebpf::cty::c_char, - pub bit: u32_, -} -#[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 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(Debug, Copy, Clone)] -pub struct bio_list { - pub head: *mut bio, - pub tail: *mut bio, -} -#[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 struct rcu_work { + pub work: work_struct, + pub rcu: callback_head, + pub wq: *mut workqueue_struct, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct capture_control { - pub cc: *mut compact_control, - pub page: *mut page, -} -#[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, +pub struct cgroup_subsys_state { + pub cgroup: *mut cgroup, + pub ss: *mut cgroup_subsys, + pub refcnt: percpu_ref, + pub sibling: list_head, + pub children: list_head, + pub rstat_css_node: 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, } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -11104,6 +11402,13 @@ pub struct vmpressure { } #[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 mem_cgroup_thresholds { pub primary: *mut mem_cgroup_threshold_ary, pub spare: *mut mem_cgroup_threshold_ary, @@ -11234,6 +11539,301 @@ pub union obj_cgroup__bindgen_ty_1 { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct bpf_run_ctx {} +#[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 nr_extents: u32_, + pub __bindgen_anon_1: uid_gid_map__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union uid_gid_map__bindgen_ty_1 { + pub extent: [uid_gid_extent; 5usize], + pub __bindgen_anon_1: uid_gid_map__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct uid_gid_map__bindgen_ty_1__bindgen_ty_1 { + pub forward: *mut uid_gid_extent, + pub reverse: *mut uid_gid_extent, +} +#[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: *mut 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, +} +#[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: *mut 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, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ctl_dir { + pub header: ctl_table_header, + pub root: rb_root, +} +#[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 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(Debug, Copy, Clone)] +pub struct cgroup_base_stat { + pub cputime: task_cputime, + pub forceidle_sum: u64_, +} +#[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 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: ::aya_ebpf::cty::c_int, + pub nr_frozen_descendants: ::aya_ebpf::cty::c_int, + pub nr_frozen_tasks: ::aya_ebpf::cty::c_int, +} +#[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 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; 14usize], + pub root: *mut cgroup_root, + pub cset_links: list_head, + pub e_csets: [list_head; 14usize], + pub dom_cgrp: *mut cgroup, + pub old_dom_cgrp: *mut cgroup, + pub rstat_cpu: *mut cgroup_rstat_cpu, + pub rstat_css_list: list_head, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, + pub _pad_: cacheline_padding, + pub rstat_flush_next: *mut cgroup, + 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 congestion_count: atomic_t, + 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; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +pub type proc_handler = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut 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 type_: ctl_table__bindgen_ty_1::Type, + 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, +} +pub mod ctl_table__bindgen_ty_1 { + 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_table_poll { + pub event: atomic_t, + pub wait: wait_queue_head_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ctl_node { + pub node: rb_node, + pub header: *mut ctl_table_header, +} +#[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 ctl_table, + arg3: *mut kuid_t, + arg4: *mut kgid_t, + ), + >, + pub permissions: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ctl_table_header, + arg2: *mut ctl_table, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[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, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct hlist_nulls_head { pub first: *mut hlist_nulls_node, } @@ -11244,17 +11844,6 @@ pub struct hlist_nulls_node { pub pprev: *mut *mut hlist_nulls_node, } #[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 zswap_lruvec_state { pub nr_zswap_protected: atomic_long_t, @@ -11296,7 +11885,7 @@ pub struct lru_gen_mm_state { #[derive(Debug, Copy, Clone)] pub struct lru_gen_mm_walk { pub lruvec: *mut lruvec, - pub max_seq: ::aya_ebpf::cty::c_ulong, + 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; 6usize], @@ -11533,6 +12122,14 @@ pub mod writeback_sync_modes { } #[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 writeback_control { pub nr_to_write: ::aya_ebpf::cty::c_long, pub pages_skipped: ::aya_ebpf::cty::c_long, @@ -11542,6 +12139,9 @@ pub struct writeback_control { pub _bitfield_align_1: [u8; 0], pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, pub swap_plug: *mut *mut swap_iocb, + 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, @@ -11689,94 +12289,10 @@ impl writeback_control { } #[repr(C)] #[derive(Copy, Clone)] -pub struct swap_cluster_info { - pub lock: spinlock_t, - pub _bitfield_align_1: [u32; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, -} -impl swap_cluster_info { - #[inline] - pub fn data(&self) -> ::aya_ebpf::cty::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 24u8) as u32) } - } - #[inline] - pub fn set_data(&mut self, val: ::aya_ebpf::cty::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 24u8, 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 fn new_bitfield_1( - data: ::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, 24u8, { - let data: u32 = unsafe { ::core::mem::transmute(data) }; - data 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(Copy, Clone)] -pub struct swap_cluster_list { - pub head: swap_cluster_info, - pub tail: swap_cluster_info, -} -#[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 cluster_info: *mut swap_cluster_info, - pub free_clusters: swap_cluster_list, - pub lowest_bit: ::aya_ebpf::cty::c_uint, - pub highest_bit: ::aya_ebpf::cty::c_uint, - pub pages: ::aya_ebpf::cty::c_uint, - pub inuse_pages: ::aya_ebpf::cty::c_uint, - pub cluster_next: ::aya_ebpf::cty::c_uint, - pub cluster_nr: ::aya_ebpf::cty::c_uint, - pub cluster_next_cpu: *mut ::aya_ebpf::cty::c_uint, - pub percpu_cluster: *mut percpu_cluster, - pub swap_extent_root: rb_root, - pub bdev_handle: *mut bdev_handle, - pub bdev: *mut block_device, - pub swap_file: *mut file, - pub old_block_size: ::aya_ebpf::cty::c_uint, - pub comp: completion, - pub lock: spinlock_t, - pub cont_lock: spinlock_t, - pub discard_work: work_struct, - pub discard_clusters: swap_cluster_list, - pub avail_lists: __IncompleteArrayField, -} -#[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, +pub struct fprop_local_percpu { + pub events: percpu_counter, + pub period: ::aya_ebpf::cty::c_uint, + pub lock: raw_spinlock_t, } pub mod wb_reason { pub type Type = ::aya_ebpf::cty::c_uint; @@ -11915,6 +12431,7 @@ pub struct bio { 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_status: blk_status_t, pub __bi_remaining: atomic_t, pub bi_iter: bvec_iter, @@ -11940,17927 +12457,12643 @@ pub union bio__bindgen_ty_1 { } #[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 struct trace_event { + pub node: hlist_node, + pub type_: ::aya_ebpf::cty::c_int, + pub funcs: *mut trace_event_functions, } #[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, +#[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 filter: *mut event_filter, + 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(Debug)] -pub struct bio_integrity_payload { - pub bip_bio: *mut bio, - 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 __bindgen_padding_0: [u8; 2usize], - pub bio_iter: bvec_iter, - pub bip_work: work_struct, - pub bip_vec: *mut bio_vec, - pub bip_inline_vecs: __IncompleteArrayField, -} -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_s { - 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 union trace_event_call__bindgen_ty_1 { + pub name: *mut ::aya_ebpf::cty::c_char, + pub tp: *mut tracepoint, } -pub type mempool_t = mempool_s; #[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 bio_integrity_pool: mempool_t, - pub bvec_integrity_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 mem_cgroup_reclaim_iter { - pub position: *mut mem_cgroup, - pub generation: ::aya_ebpf::cty::c_uint, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct lruvec_stats_percpu { - pub state: [::aya_ebpf::cty::c_long; 46usize], - pub state_prev: [::aya_ebpf::cty::c_long; 46usize], +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 lruvec_stats { - pub state: [::aya_ebpf::cty::c_long; 46usize], - pub state_local: [::aya_ebpf::cty::c_long; 46usize], - pub state_pending: [::aya_ebpf::cty::c_long; 46usize], +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)] #[derive(Copy, Clone)] -pub struct mem_cgroup_per_node { - pub lruvec: lruvec, - pub lruvec_stats_percpu: *mut lruvec_stats_percpu, - pub lruvec_stats: lruvec_stats, - pub lru_zone_size: [::aya_ebpf::cty::c_ulong; 25usize], - pub iter: mem_cgroup_reclaim_iter, - 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 memcg: *mut mem_cgroup, +pub struct ftrace_regs { + pub regs: pt_regs, } #[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, +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(Copy, Clone)] -pub struct percpu_cluster { - pub index: swap_cluster_info, - pub next: ::aya_ebpf::cty::c_uint, +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 compact_control { - pub freepages: list_head, - 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)] -pub struct ring_buffer_event { +pub struct perf_mem_data_src__bindgen_ty_1 { pub _bitfield_align_1: [u32; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, - pub array: __IncompleteArrayField, + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, } -impl ring_buffer_event { +impl perf_mem_data_src__bindgen_ty_1 { #[inline] - pub fn type_len(&self) -> u32_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 5u8) as u32) } + pub fn mem_op(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 5u8) as u64) } } #[inline] - pub fn set_type_len(&mut self, val: u32_) { + pub fn set_mem_op(&mut self, val: __u64) { unsafe { - let val: u32 = ::core::mem::transmute(val); + let val: u64 = ::core::mem::transmute(val); self._bitfield_1.set(0usize, 5u8, val as u64) } } #[inline] - pub fn time_delta(&self) -> u32_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 27u8) as u32) } + pub fn mem_lvl(&self) -> __u64 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 14u8) as u64) } } #[inline] - pub fn set_time_delta(&mut self, val: u32_) { + pub fn set_mem_lvl(&mut self, val: __u64) { unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(5usize, 27u8, val as u64) + let val: u64 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 14u8, 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(); + 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 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 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 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 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 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 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 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 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 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 type_len: u32 = unsafe { ::core::mem::transmute(type_len) }; - type_len as u64 + let mem_op: u64 = unsafe { ::core::mem::transmute(mem_op) }; + mem_op 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.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 } } -pub type __le16 = __u16; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct blk_plug { - pub mq_list: *mut request, - pub cached_rq: *mut request, - 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, -} -pub type blk_mode_t = ::aya_ebpf::cty::c_uint; -#[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 sync_io: atomic_t, - pub ev: *mut disk_events, - pub nr_zones: ::aya_ebpf::cty::c_uint, - pub max_open_zones: ::aya_ebpf::cty::c_uint, - pub max_active_zones: ::aya_ebpf::cty::c_uint, - pub conv_zones_bitmap: *mut ::aya_ebpf::cty::c_ulong, - pub seq_zones_wlock: *mut ::aya_ebpf::cty::c_ulong, - 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 mod blk_bounce { - pub type Type = ::aya_ebpf::cty::c_uint; - pub const BLK_BOUNCE_NONE: Type = 0; - pub const BLK_BOUNCE_HIGH: Type = 1; +pub struct perf_branch_entry { + pub from: __u64, + pub to: __u64, + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, } -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct queue_limits { - pub bounce: blk_bounce::Type, - 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 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_secure_erase_sectors: ::aya_ebpf::cty::c_uint, - pub max_write_zeroes_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 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 misaligned: ::aya_ebpf::cty::c_uchar, - pub discard_misaligned: ::aya_ebpf::cty::c_uchar, - pub raid_partial_stripes_expensive: ::aya_ebpf::cty::c_uchar, - pub zoned: bool_, - pub dma_alignment: ::aya_ebpf::cty::c_uint, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct blk_integrity { - pub profile: *const blk_integrity_profile, - pub flags: ::aya_ebpf::cty::c_uchar, - pub tuple_size: ::aya_ebpf::cty::c_uchar, - pub interval_exp: ::aya_ebpf::cty::c_uchar, - pub tag_size: ::aya_ebpf::cty::c_uchar, +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 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 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 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 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 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 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 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 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 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 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(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 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 integrity: blk_integrity, - 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 dma_pad_mask: ::aya_ebpf::cty::c_uint, - 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 required_elevator_features: ::aya_ebpf::cty::c_uint, - 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 sysfs_lock: mutex, - pub sysfs_dir_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, - pub mq_sysfs_init_done: bool_, +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 fscrypt_prepared_key { - pub tfm: *mut crypto_skcipher, - pub blk_key: *mut blk_crypto_key, +pub struct perf_sample_weight__bindgen_ty_1 { + pub var1_dw: __u32, + pub var2_w: __u16, + pub var3_w: __u16, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct siphash_key_t { - pub key: [u64_; 2usize], +pub struct pmu { + pub entry: 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 pmu_disable_count: *mut ::aya_ebpf::cty::c_int, + pub cpu_pmu_context: *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: bool_), + >, + pub task_ctx_cache: *mut kmem_cache, + pub swap_task_ctx: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut perf_event_pmu_context, arg2: *mut perf_event_pmu_context), + >, + 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 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], +pub struct perf_regs { + pub abi: __u64, + pub regs: *mut pt_regs, } #[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], -} +pub struct u64_stats_sync {} #[repr(C)] #[derive(Copy, Clone)] -pub union fscrypt_policy { - pub version: u8_, - pub v1: fscrypt_policy_v1, - pub v2: fscrypt_policy_v2, +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 struct fscrypt_inode_info { - pub ci_enc_key: fscrypt_prepared_key, - pub ci_owns_key: bool_, - pub ci_inlinecrypt: bool_, - pub ci_data_unit_bits: u8_, - pub ci_data_units_per_block_bits: u8_, - pub ci_mode: *mut fscrypt_mode, - pub ci_inode: *mut inode, - pub ci_master_key: *mut fscrypt_master_key, - pub ci_master_key_link: list_head, - pub ci_direct_key: *mut fscrypt_direct_key, - pub ci_dirhash_key: siphash_key_t, - pub ci_dirhash_key_initialized: bool_, - pub ci_policy: fscrypt_policy, - pub ci_nonce: [u8_; 16usize], - pub ci_hashed_ino: u32_, +pub union bpf_prog_array_item__bindgen_ty_1 { + pub cgroup_storage: [*mut bpf_cgroup_storage; 2usize], + pub bpf_cookie: u64_, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct bdev_handle { - pub bdev: *mut block_device, - pub holder: *mut ::aya_ebpf::cty::c_void, - pub mode: blk_mode_t, +pub struct bpf_prog_array { + pub rcu: callback_head, + pub items: __IncompleteArrayField, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct io_comp_batch { - pub req_list: *mut request, - pub need_ts: bool_, - pub complete: ::core::option::Option, +pub struct psi_group_cpu { + pub seq: seqcount_t, + 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(Copy, Clone)] -pub struct fscrypt_key_specifier { - pub type_: __u32, - pub __reserved: __u32, - pub u: fscrypt_key_specifier__bindgen_ty_1, +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(Copy, Clone)] -pub union fscrypt_key_specifier__bindgen_ty_1 { - pub __reserved: [__u8; 32usize], - pub descriptor: [__u8; 8usize], - pub identifier: [__u8; 16usize], -} -#[repr(C)] -#[derive(Debug)] -pub struct crypto_tfm { - pub refcnt: refcount_t, - pub crt_flags: u32_, - pub node: ::aya_ebpf::cty::c_int, - 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, 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 struct cgroup_subsys { + pub css_alloc: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut cgroup_subsys_state) -> *mut cgroup_subsys_state, >, - pub cia_encrypt: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut crypto_tfm, arg2: *mut u8_, arg3: *const u8_), + pub css_online: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut cgroup_subsys_state) -> ::aya_ebpf::cty::c_int, >, - pub cia_decrypt: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut crypto_tfm, arg2: *mut u8_, arg3: *const u8_), + 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_rstat_flush: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut cgroup_subsys_state, arg2: ::aya_ebpf::cty::c_int), >, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct compress_alg { - pub coa_compress: ::core::option::Option< + pub css_extra_stat_show: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut crypto_tfm, - arg2: *const u8_, - arg3: ::aya_ebpf::cty::c_uint, - arg4: *mut u8_, - arg5: *mut ::aya_ebpf::cty::c_uint, + arg1: *mut seq_file, + arg2: *mut cgroup_subsys_state, ) -> ::aya_ebpf::cty::c_int, >, - pub coa_decompress: ::core::option::Option< + pub css_local_stat_show: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut crypto_tfm, - arg2: *const u8_, - arg3: ::aya_ebpf::cty::c_uint, - arg4: *mut u8_, - arg5: *mut ::aya_ebpf::cty::c_uint, + arg1: *mut seq_file, + arg2: *mut cgroup_subsys_state, ) -> ::aya_ebpf::cty::c_int, >, -} -#[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_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, - pub compress: compress_alg, -} -#[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 can_attach: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut cgroup_taskset) -> ::aya_ebpf::cty::c_int, >, - pub free: ::core::option::Option, - pub report_stat: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut sk_buff, arg2: *mut crypto_alg) -> ::aya_ebpf::cty::c_int, + pub cancel_attach: ::core::option::Option, + pub attach: ::core::option::Option, + pub post_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 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, -} -#[repr(C)] -#[derive(Debug)] -pub struct crypto_shash { - pub descsize: ::aya_ebpf::cty::c_uint, - pub base: crypto_tfm, -} -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; -} -#[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, -} -#[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 raw: [u8_; 64usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct bio_crypt_ctx { - pub bc_key: *const blk_crypto_key, - pub bc_dun: [u64_; 4usize], + 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, } -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct partition_meta_info { - pub uuid: [::aya_ebpf::cty::c_char; 37usize], - pub volname: [u8_; 64usize], +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 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 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 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 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], +pub struct cgroup_rstat_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, + pub updated_children: *mut cgroup, + pub updated_next: *mut cgroup, } -pub type integrity_processing_fn = - ::core::option::Option blk_status_t>; -pub type integrity_prepare_fn = ::core::option::Option; -pub type integrity_complete_fn = - ::core::option::Option; #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct blk_integrity_profile { - pub generate_fn: integrity_processing_fn, - pub verify_fn: integrity_processing_fn, - pub prepare_fn: integrity_prepare_fn, - pub complete_fn: integrity_complete_fn, - pub name: *const ::aya_ebpf::cty::c_char, +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]>, } -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, ->; -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; +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 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 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 gendisk, arg2: blk_mode_t) -> ::aya_ebpf::cty::c_int, + unsafe extern "C" fn(arg1: *mut kernfs_open_file) -> ::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 release: ::core::option::Option, + pub read_u64: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut cgroup_subsys_state, arg2: *mut cftype) -> u64_, >, - pub compat_ioctl: ::core::option::Option< + 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 block_device, - arg2: blk_mode_t, - arg3: ::aya_ebpf::cty::c_uint, - arg4: ::aya_ebpf::cty::c_ulong, + arg1: *mut seq_file, + arg2: *mut ::aya_ebpf::cty::c_void, ) -> ::aya_ebpf::cty::c_int, >, - pub check_events: ::core::option::Option< + pub seq_start: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut gendisk, - arg2: ::aya_ebpf::cty::c_uint, - ) -> ::aya_ebpf::cty::c_uint, + arg1: *mut seq_file, + arg2: *mut loff_t, + ) -> *mut ::aya_ebpf::cty::c_void, >, - pub unlock_native_capacity: ::core::option::Option, - pub getgeo: ::core::option::Option< + pub seq_next: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut block_device, - 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, + arg1: *mut seq_file, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: *mut loff_t, + ) -> *mut ::aya_ebpf::cty::c_void, >, - 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 seq_stop: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut seq_file, arg2: *mut ::aya_ebpf::cty::c_void), >, - pub report_zones: ::core::option::Option< + pub write_u64: ::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, + arg1: *mut cgroup_subsys_state, + arg2: *mut cftype, + arg3: u64_, ) -> ::aya_ebpf::cty::c_int, >, - pub devnode: ::core::option::Option< + pub write_s64: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut gendisk, - arg2: *mut umode_t, - ) -> *mut ::aya_ebpf::cty::c_char, + arg1: *mut cgroup_subsys_state, + arg2: *mut cftype, + arg3: s64, + ) -> ::aya_ebpf::cty::c_int, >, - pub get_unique_id: ::core::option::Option< + pub write: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut gendisk, - arg2: *mut u8_, - arg3: blk_unique_id::Type, - ) -> ::aya_ebpf::cty::c_int, + arg1: *mut kernfs_open_file, + arg2: *mut ::aya_ebpf::cty::c_char, + arg3: usize, + arg4: loff_t, + ) -> isize, >, - 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, + pub poll: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut kernfs_open_file, arg2: *mut poll_table_struct) -> __poll_t, >, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct blk_independent_access_range { - pub kobj: kobject, - pub sector: sector_t, - pub nr_sectors: sector_t, +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, } -#[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, +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 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 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 + } } -pub mod blk_eh_timer_return { +pub mod bpf_cgroup_iter_order { pub type Type = ::aya_ebpf::cty::c_uint; - pub const BLK_EH_DONE: Type = 0; - pub const BLK_EH_RESET_TIMER: Type = 1; -} -#[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, + 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 pr_type { +pub mod bpf_map_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 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; } -#[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, - >, +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; } -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct fscrypt_mode { - pub friendly_name: *const ::aya_ebpf::cty::c_char, - pub cipher_str: *const ::aya_ebpf::cty::c_char, - pub keysize: ::aya_ebpf::cty::c_int, - pub security_strength: ::aya_ebpf::cty::c_int, - pub ivsize: ::aya_ebpf::cty::c_int, - pub logged_cryptoapi_impl: ::aya_ebpf::cty::c_int, - pub logged_blk_crypto_native: ::aya_ebpf::cty::c_int, - pub logged_blk_crypto_fallback: ::aya_ebpf::cty::c_int, - pub blk_crypto_mode: blk_crypto_mode_num::Type, +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 __MAX_BPF_ATTACH_TYPE: Type = 56; } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct fscrypt_hkdf { - pub hmac_tfm: *mut crypto_shash, +#[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, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct fscrypt_master_key_secret { - pub hkdf: fscrypt_hkdf, - pub size: u32_, - pub raw: [u8_; 64usize], +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, } #[repr(C)] #[derive(Copy, Clone)] -pub struct fscrypt_master_key { - pub mk_node: hlist_node, - pub mk_sem: rw_semaphore, - pub mk_active_refs: refcount_t, - pub mk_struct_refs: refcount_t, - pub mk_rcu_head: callback_head, - pub mk_secret: fscrypt_master_key_secret, - pub mk_spec: fscrypt_key_specifier, - pub mk_users: *mut key, - pub mk_decrypted_inodes: list_head, - pub mk_decrypted_inodes_lock: spinlock_t, - pub mk_direct_keys: [fscrypt_prepared_key; 11usize], - pub mk_iv_ino_lblk_64_keys: [fscrypt_prepared_key; 11usize], - pub mk_iv_ino_lblk_32_keys: [fscrypt_prepared_key; 11usize], - pub mk_ino_hash_key: siphash_key_t, - pub mk_ino_hash_key_initialized: bool_, - pub mk_present: bool_, +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(Debug, Copy, Clone)] -pub struct __kernel_fsid_t { - pub val: [::aya_ebpf::cty::c_int; 2usize], +#[derive(Copy, Clone)] +pub union bpf_attr__bindgen_ty_2__bindgen_ty_1 { + pub value: __u64, + pub next_key: __u64, } -pub type __le64 = __u64; #[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], +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(Debug, Copy, Clone)] -pub struct p_log { - pub prefix: *const ::aya_ebpf::cty::c_char, - pub log: *mut fc_log, -} -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_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; +#[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, } #[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 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 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 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 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 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 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 - } +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)] -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>, +#[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)] -pub struct fid { - pub __bindgen_anon_1: fid__bindgen_ty_1, +#[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)] -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], +#[derive(Copy, Clone)] +pub union bpf_attr__bindgen_ty_6__bindgen_ty_1 { + pub target_fd: __u32, + pub target_ifindex: __u32, } #[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_, +#[derive(Copy, Clone)] +pub union bpf_attr__bindgen_ty_6__bindgen_ty_2 { + pub relative_fd: __u32, + pub relative_id: __u32, } -#[repr(C, packed)] +#[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct fid__bindgen_ty_1__bindgen_ty_2 { - pub ino: u64_, - pub gen: u32_, +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(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_, +#[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, } #[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>, +#[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 fid__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1 {} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct simple_xattrs { - pub rb_root: rb_root, - pub lock: rwlock_t, +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 kernfs_root { - pub kn: *mut kernfs_node, - pub flags: ::aya_ebpf::cty::c_uint, - pub ino_idr: idr, - 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 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 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, +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 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, - >, +pub struct bpf_attr__bindgen_ty_11 { + pub name: __u64, + pub prog_fd: __u32, } -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; +#[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 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, +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 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, +pub union bpf_attr__bindgen_ty_14__bindgen_ty_1 { + pub prog_fd: __u32, + pub map_fd: __u32, } -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 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 - } +#[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, } #[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], +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 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, - >, +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 rhashtable_compare_arg { - pub ht: *mut rhashtable, - pub key: *const ::aya_ebpf::cty::c_void, +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, } -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, +pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_4 { + pub target_btf_id: __u32, + pub cookie: __u64, } #[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, +#[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(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>, +#[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, } -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(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, } -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, +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 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, +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 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, +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(Debug, Copy, Clone)] -pub struct rhash_lock_head {} +#[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 blkg_iostat { - pub bytes: [u64_; 3usize], - pub ios: [u64_; 3usize], +pub struct bpf_attr__bindgen_ty_16 { + pub link_fd: __u32, } #[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, +pub struct bpf_attr__bindgen_ty_17 { + pub type_: __u32, } #[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, +#[derive(Debug, Copy, Clone)] +pub struct bpf_attr__bindgen_ty_18 { + pub link_fd: __u32, + pub flags: __u32, } #[repr(C)] -#[derive(Copy, Clone)] -pub union blkcg_gq__bindgen_ty_1 { - pub async_bio_work: work_struct, - pub free_work: work_struct, +#[derive(Debug, Copy, Clone)] +pub struct bpf_attr__bindgen_ty_19 { + pub prog_fd: __u32, + pub map_fd: __u32, + pub flags: __u32, } -pub type blk_mq_req_flags_t = __u32; #[repr(C)] #[derive(Debug, 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 _bitfield_align_2: [u8; 0], - pub _bitfield_2: __BindgenBitfieldUnit<[u8; 56usize]>, +pub struct bpf_attr__bindgen_ty_20 { + pub flags: __u32, + pub bpffs_fd: __u32, } #[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 struct bpf_func_info { + pub insn_off: __u32, + pub type_id: __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]>, +#[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(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, +pub struct sock_filter { + pub code: __u16, + pub jt: __u8, + pub jf: __u8, + pub k: __u32, } #[repr(C)] #[derive(Copy, Clone)] -pub struct elevator_queue { - pub type_: *mut elevator_type, - 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], +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 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]>, +pub union btf_type__bindgen_ty_1 { + pub size: __u32, + pub type_: __u32, } #[repr(C)] -#[derive(Copy, Clone)] -pub struct blk_mq_ctx__bindgen_ty_1 { - pub lock: spinlock_t, - pub rq_lists: [list_head; 3usize], +pub struct bpf_prog { + pub pages: u16_, 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 - } -} -pub type req_flags_t = __u32; -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 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 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 ioprio: ::aya_ebpf::cty::c_ushort, - 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, + 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 tag: [u8_; 8usize], + 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_1: bpf_prog__bindgen_ty_1, } #[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], +pub struct bpf_prog__bindgen_ty_1 { + pub __bindgen_anon_1: __BindgenUnionField, + pub __bindgen_anon_2: __BindgenUnionField, + pub bindgen_union_field: [u32; 0usize], } #[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, -} -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; +#[derive(Debug)] +pub struct bpf_prog__bindgen_ty_1__bindgen_ty_1 { + pub __empty_insns: bpf_prog__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, + pub insns: __IncompleteArrayField, } #[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, -} +pub struct bpf_prog__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {} #[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, +#[derive(Debug)] +pub struct bpf_prog__bindgen_ty_1__bindgen_ty_2 { + pub __empty_insnsi: bpf_prog__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1, + pub insnsi: __IncompleteArrayField, } #[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(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, -} -impl blk_flush_queue { +pub struct bpf_prog__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {} +impl bpf_prog { #[inline] - pub fn flush_pending_idx(&self) -> ::aya_ebpf::cty::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + pub fn jited(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) } } #[inline] - pub fn set_flush_pending_idx(&mut self, val: ::aya_ebpf::cty::c_uint) { + pub fn set_jited(&mut self, val: u16_) { unsafe { - let val: u32 = ::core::mem::transmute(val); + let val: u16 = ::core::mem::transmute(val); self._bitfield_1.set(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) } + pub fn jit_requested(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) } } #[inline] - pub fn set_flush_running_idx(&mut self, val: ::aya_ebpf::cty::c_uint) { + pub fn set_jit_requested(&mut self, val: u16_) { unsafe { - let val: u32 = ::core::mem::transmute(val); + let val: u16 = ::core::mem::transmute(val); self._bitfield_1.set(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 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 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 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 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 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 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 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 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 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 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 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 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 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(); + 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 flush_pending_idx: u32 = unsafe { ::core::mem::transmute(flush_pending_idx) }; - flush_pending_idx as u64 + let jited: u16 = unsafe { ::core::mem::transmute(jited) }; + jited 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 + 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 } } +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 type btf_dtor_kfunc_t = + ::core::option::Option; #[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, +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(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, +#[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 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 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 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]>, +pub union btf_field__bindgen_ty_1 { + pub kptr: btf_field_kptr, + pub graph_root: btf_field_graph_root, } -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 - } +#[repr(C)] +pub struct btf_record { + pub cnt: u32_, + pub field_mask: u32_, + pub spin_lock_off: ::aya_ebpf::cty::c_int, + pub timer_off: ::aya_ebpf::cty::c_int, + pub refcount_off: ::aya_ebpf::cty::c_int, + pub fields: __IncompleteArrayField, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct blk_mq_queue_data { - pub rq: *mut request, - pub last: bool_, +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(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 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 prev_padding: 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 { - 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 last_toobig: usize, - 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], +#[derive(Debug)] +pub struct bio_integrity_payload { + pub bip_bio: *mut bio, + 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 __bindgen_padding_0: [u8; 2usize], + pub bio_iter: bvec_iter, + pub bip_work: work_struct, + pub bip_vec: *mut bio_vec, + pub bip_inline_vecs: __IncompleteArrayField, } +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(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, - arg4: usize, - ) -> ::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>, +#[derive(Copy, Clone)] +pub struct mempool_s { + 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_s; #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct blk_mq_ctxs { - pub kobj: kobject, - pub queue_ctx: *mut blk_mq_ctx, +#[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 bio_integrity_pool: mempool_t, + pub bvec_integrity_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, } -pub type blk_insert_t = ::aya_ebpf::cty::c_uint; #[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_rq: *mut *mut request, - pub ctx: *mut blk_mq_ctx, - pub hctx: *mut blk_mq_hw_ctx, +pub struct mem_cgroup_reclaim_iter { + pub position: *mut mem_cgroup, + pub generation: ::aya_ebpf::cty::c_uint, } #[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, -} -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 struct lruvec_stats_percpu { + pub state: [::aya_ebpf::cty::c_long; 46usize], + pub state_prev: [::aya_ebpf::cty::c_long; 46usize], } #[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_type, - ) -> ::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 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, +pub struct lruvec_stats { + pub state: [::aya_ebpf::cty::c_long; 46usize], + pub state_local: [::aya_ebpf::cty::c_long; 46usize], + pub state_pending: [::aya_ebpf::cty::c_long; 46usize], } #[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: *mut elv_fs_entry, - pub elevator_name: *const ::aya_ebpf::cty::c_char, - pub elevator_alias: *const ::aya_ebpf::cty::c_char, - pub elevator_features: ::aya_ebpf::cty::c_uint, - 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, +#[derive(Copy, Clone)] +pub struct mem_cgroup_per_node { + pub lruvec: lruvec, + pub lruvec_stats_percpu: *mut lruvec_stats_percpu, + pub lruvec_stats: lruvec_stats, + pub lru_zone_size: [::aya_ebpf::cty::c_ulong; 25usize], + pub iter: mem_cgroup_reclaim_iter, + 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 memcg: *mut mem_cgroup, } #[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, - >, +pub struct mem_cgroup_threshold { + pub eventfd: *mut eventfd_ctx, + pub threshold: ::aya_ebpf::cty::c_ulong, } #[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, +#[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(Copy, Clone)] -pub struct blkcg { - pub css: cgroup_subsys_state, - pub lock: spinlock_t, - pub online_pin: refcount_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, +pub type bpf_callback_t = ::core::option::Option< + unsafe extern "C" fn(arg1: u64_, arg2: u64_, arg3: u64_, arg4: u64_, arg5: u64_) -> u64_, +>; +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 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; } #[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_, +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 blkcg_policy_data { - pub blkcg: *mut blkcg, - pub plid: ::aya_ebpf::cty::c_int, +pub struct bpf_iter_aux_info__bindgen_ty_1 { + pub start: *mut cgroup, + pub order: bpf_cgroup_iter_order::Type, } -pub type __le32 = __u32; -pub type irq_hw_number_t = ::aya_ebpf::cty::c_ulong; -pub type irq_flow_handler_t = ::core::option::Option; #[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, +pub struct bpf_iter_aux_info__bindgen_ty_2 { + pub type_: bpf_iter_task_type::Type, + pub pid: u32_, } +pub type bpf_iter_fini_seq_priv_t = + ::core::option::Option; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct irq_data { - pub mask: u32_, - pub irq: ::aya_ebpf::cty::c_uint, - pub hwirq: ::aya_ebpf::cty::c_ulong, - 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 ::aya_ebpf::cty::c_uint, - 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; 56usize]>, -} -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_PCI_DEVICE_IMS: Type = 15; -} -#[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 hwirq_max: irq_hw_number_t, - pub revmap_size: ::aya_ebpf::cty::c_uint, - pub revmap_tree: xarray, - pub revmap: __IncompleteArrayField<*mut irq_data>, -} -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 struct bpf_iter_seq_info { + pub seq_ops: *const seq_operations, + pub init_seq_private: bpf_iter_init_seq_priv_t, + pub fini_seq_private: bpf_iter_fini_seq_priv_t, + pub seq_priv_size: u32_, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct 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 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 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< + pub map_release_uref: ::core::option::Option, + pub map_lookup_elem_sys_only: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut irq_data, - arg2: *const cpumask, - arg3: bool_, + 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 irq_retrigger: - ::core::option::Option ::aya_ebpf::cty::c_int>, - pub irq_set_type: ::core::option::Option< + pub map_lookup_and_delete_elem: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut irq_data, - arg2: ::aya_ebpf::cty::c_uint, + 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 irq_set_wake: ::core::option::Option< + pub map_lookup_and_delete_batch: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut irq_data, - arg2: ::aya_ebpf::cty::c_uint, + arg1: *mut bpf_map, + arg2: *const bpf_attr, + arg3: *mut bpf_attr, ) -> ::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< + pub map_update_batch: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut irq_data, - arg2: irqchip_irq_state::Type, - arg3: *mut bool_, + arg1: *mut bpf_map, + arg2: *mut file, + arg3: *const bpf_attr, + arg4: *mut bpf_attr, ) -> ::aya_ebpf::cty::c_int, >, - pub irq_set_irqchip_state: ::core::option::Option< + pub map_delete_batch: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut irq_data, - arg2: irqchip_irq_state::Type, - arg3: bool_, + arg1: *mut bpf_map, + arg2: *const bpf_attr, + arg3: *mut bpf_attr, ) -> ::aya_ebpf::cty::c_int, >, - pub irq_set_vcpu_affinity: ::core::option::Option< + pub map_lookup_elem: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut irq_data, + arg1: *mut bpf_map, 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 flags: ::aya_ebpf::cty::c_ulong, -} -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; -} -#[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 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 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 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, -} -#[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, - pub polarity: ::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), + ) -> *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 type_cache: u32_, - pub polarity_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, -} -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; -} -#[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 gc: __IncompleteArrayField<*mut irq_chip_generic>, -} -#[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 irq_domain_ops { - pub match_: ::core::option::Option< + pub map_update_elem: ::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, + 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 select: ::core::option::Option< + pub map_delete_elem: ::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, + arg1: *mut bpf_map, + arg2: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_long, >, - pub map: ::core::option::Option< + pub map_push_elem: ::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), + arg1: *mut bpf_map, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: u64_, + ) -> ::aya_ebpf::cty::c_long, >, - pub xlate: ::core::option::Option< + pub map_pop_elem: ::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, + arg1: *mut bpf_map, + arg2: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_long, >, - pub alloc: ::core::option::Option< + pub map_peek_elem: ::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, + arg1: *mut bpf_map, + arg2: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_long, >, - pub free: ::core::option::Option< + pub map_lookup_percpu_elem: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut irq_domain, - arg2: ::aya_ebpf::cty::c_uint, - arg3: ::aya_ebpf::cty::c_uint, - ), + arg1: *mut bpf_map, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: u32_, + ) -> *mut ::aya_ebpf::cty::c_void, >, - pub activate: ::core::option::Option< + pub map_fd_get_ptr: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut irq_domain, - arg2: *mut irq_data, - arg3: bool_, - ) -> ::aya_ebpf::cty::c_int, + arg1: *mut bpf_map, + arg2: *mut file, + arg3: ::aya_ebpf::cty::c_int, + ) -> *mut ::aya_ebpf::cty::c_void, >, - 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 map_fd_put_ptr: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut bpf_map, arg2: *mut ::aya_ebpf::cty::c_void, arg3: bool_), >, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct msi_parent_ops { - pub supported_flags: 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_, + pub map_gen_lookup: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut bpf_map, arg2: *mut bpf_insn) -> ::aya_ebpf::cty::c_int, >, -} -#[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< + pub map_fd_sys_lookup_elem: + ::core::option::Option u32_>, + pub map_seq_show_elem: ::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, + arg1: *mut bpf_map, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: *mut seq_file, + ), >, - pub populate_parent_alloc_arg: ::core::option::Option< + pub map_check_btf: ::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, + arg1: *const bpf_map, + arg2: *const btf, + arg3: *const btf_type, + arg4: *const btf_type, ) -> ::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 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 init_valid_mask: ::core::option::Option< + pub map_poke_untrack: + ::core::option::Option, + pub map_poke_run: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut gpio_chip, - arg2: *mut ::aya_ebpf::cty::c_ulong, - arg3: ::aya_ebpf::cty::c_uint, + arg1: *mut bpf_map, + arg2: u32_, + arg3: *mut bpf_prog, + arg4: *mut bpf_prog, ), >, - 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< + pub map_direct_value_addr: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut gpio_chip, - arg2: ::aya_ebpf::cty::c_uint, + arg1: *const bpf_map, + arg2: *mut u64_, + arg3: u32_, ) -> ::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< + pub map_direct_value_meta: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut gpio_chip, - arg2: ::aya_ebpf::cty::c_uint, + arg1: *const bpf_map, + arg2: u64_, + arg3: *mut u32_, ) -> ::aya_ebpf::cty::c_int, >, - pub direction_input: ::core::option::Option< + pub map_mmap: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut gpio_chip, - arg2: ::aya_ebpf::cty::c_uint, + arg1: *mut bpf_map, + arg2: *mut vm_area_struct, ) -> ::aya_ebpf::cty::c_int, >, - pub direction_output: ::core::option::Option< + pub map_poll: ::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, + arg1: *mut bpf_map, + arg2: *mut file, + arg3: *mut poll_table_struct, + ) -> __poll_t, >, - pub get: ::core::option::Option< + pub map_get_unmapped_area: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut gpio_chip, - arg2: ::aya_ebpf::cty::c_uint, - ) -> ::aya_ebpf::cty::c_int, + 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 get_multiple: ::core::option::Option< + pub map_local_storage_charge: ::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, + arg1: *mut bpf_local_storage_map, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: u32_, ) -> ::aya_ebpf::cty::c_int, >, - pub set: ::core::option::Option< + pub map_local_storage_uncharge: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut gpio_chip, - arg2: ::aya_ebpf::cty::c_uint, - arg3: ::aya_ebpf::cty::c_int, + arg1: *mut bpf_local_storage_map, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: u32_, ), >, - 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, - ), + 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 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 map_redirect: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut bpf_map, arg2: u64_, arg3: u64_) -> ::aya_ebpf::cty::c_long, >, - 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 map_meta_equal: ::core::option::Option< + unsafe extern "C" fn(arg1: *const bpf_map, arg2: *const bpf_map) -> bool_, >, - pub dbg_show: - ::core::option::Option, - pub init_valid_mask: ::core::option::Option< + pub map_set_for_each_callback_args: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut gpio_chip, - arg2: *mut ::aya_ebpf::cty::c_ulong, - arg3: ::aya_ebpf::cty::c_uint, + arg1: *mut bpf_verifier_env, + arg2: *mut bpf_func_state, + arg3: *mut bpf_func_state, ) -> ::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< + pub map_for_each_callback: ::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 read_reg: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut ::aya_ebpf::cty::c_void) -> ::aya_ebpf::cty::c_ulong, - >, - pub write_reg: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut ::aya_ebpf::cty::c_void, arg2: ::aya_ebpf::cty::c_ulong), + arg1: *mut bpf_map, + arg2: bpf_callback_t, + arg3: *mut ::aya_ebpf::cty::c_void, + arg4: u64_, + ) -> ::aya_ebpf::cty::c_long, >, - pub be_bits: bool_, - pub reg_dat: *mut ::aya_ebpf::cty::c_void, - pub reg_set: *mut ::aya_ebpf::cty::c_void, - pub reg_clr: *mut ::aya_ebpf::cty::c_void, - pub reg_dir_out: *mut ::aya_ebpf::cty::c_void, - pub reg_dir_in: *mut ::aya_ebpf::cty::c_void, - pub bgpio_dir_unreadable: bool_, - pub bgpio_bits: ::aya_ebpf::cty::c_int, - pub bgpio_lock: raw_spinlock_t, - pub bgpio_data: ::aya_ebpf::cty::c_ulong, - pub bgpio_dir: ::aya_ebpf::cty::c_ulong, - pub irq: gpio_irq_chip, - pub valid_mask: *mut ::aya_ebpf::cty::c_ulong, + 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, } -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, +pub struct bpf_map { + 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: bpf_map__bindgen_ty_2, + 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, } #[repr(C)] #[derive(Copy, Clone)] -pub struct ida { - pub xa: xarray, +pub union bpf_map__bindgen_ty_1 { + pub work: work_struct, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct bpf_map__bindgen_ty_2 { + pub lock: spinlock_t, + pub type_: bpf_prog_type::Type, + pub jited: bool_, + pub xdp_has_frags: bool_, } #[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 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 local_lock_t {} +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_, +} #[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, +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_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 ctx_arg_info_size: u32_, + pub max_rdonly_access: u32_, + pub max_rdwr_access: u32_, + pub attach_btf: *mut btf, + pub ctx_arg_info: *const bpf_ctx_arg_aux, + 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 arena: *mut bpf_arena, + pub attach_func_proto: *const btf_type, + pub attach_func_name: *const ::aya_ebpf::cty::c_char, + pub func: *mut *mut bpf_prog, + 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 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, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_prog_aux__bindgen_ty_1 { + pub work: work_struct, + pub rcu: callback_head, +} +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 = 33554431; } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct ww_acquire_ctx { - pub task: *mut task_struct, - pub stamp: ::aya_ebpf::cty::c_ulong, - pub acquired: ::aya_ebpf::cty::c_uint, - pub wounded: ::aya_ebpf::cty::c_ushort, - pub is_wait_die: ::aya_ebpf::cty::c_ushort, +pub 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, + >, } -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, +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 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 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, +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(Debug, Copy, Clone)] -pub struct u64_stats_t { - pub v: local64_t, +#[derive(Copy, Clone)] +pub union bpf_tramp_image__bindgen_ty_1 { + pub rcu: callback_head, + pub work: work_struct, } -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; +#[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, } -pub use self::irqreturn::Type as irqreturn_t; #[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 exit: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut cdrom_device_info) -> ::aya_ebpf::cty::c_int, - >, - pub mrw_mode_page: ::aya_ebpf::cty::c_int, - pub opened_for_data: bool_, - pub last_media_change_ms: __s64, +pub struct bpf_trampoline__bindgen_ty_1 { + pub model: btf_func_model, + pub addr: *mut ::aya_ebpf::cty::c_void, + pub ftrace_managed: bool_, } -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 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 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) - } - } +#[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 keeplocked(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(2usize, 1u8) as u8) } + pub fn called(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } } #[inline] - pub fn set_keeplocked(&mut self, val: __u8) { + pub fn set_called(&mut self, val: bool_) { unsafe { let val: u8 = ::core::mem::transmute(val); - self._bitfield_2.set(2usize, 1u8, val as u64) + self._bitfield_1.set(0usize, 1u8, val as u64) } } #[inline] - pub fn reserved(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(3usize, 5u8) as u8) } + pub fn verified(&self) -> bool_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } } #[inline] - pub fn set_reserved(&mut self, val: __u8) { + pub fn set_verified(&mut self, val: bool_) { unsafe { let val: u8 = ::core::mem::transmute(val); - self._bitfield_2.set(3usize, 5u8, val as u64) + self._bitfield_1.set(1usize, 1u8, val as u64) } } #[inline] - pub fn new_bitfield_2( - sanyo_slot: __u8, - keeplocked: __u8, - reserved: __u8, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + 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, 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(0usize, 1u8, { + let called: u8 = unsafe { ::core::mem::transmute(called) }; + called as u64 }); - __bindgen_bitfield_unit.set(3usize, 5u8, { - let reserved: u8 = unsafe { ::core::mem::transmute(reserved) }; - reserved 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(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 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, +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 struct cdrom_multisession { - pub addr: cdrom_addr, - pub xa_flag: __u8, - pub addr_format: __u8, +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 cdrom_mcn { - pub medium_catalog_number: [__u8; 14usize], +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 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 struct bpf_ctx_arg_aux { + pub offset: u32_, + pub reg_type: bpf_reg_type::Type, + pub btf: *mut btf, + pub btf_id: u32_, } #[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_int, - ) -> ::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, +pub struct btf_mod_pair { + pub btf: *mut btf, + pub module: *mut module, } -pub type __be16 = __u16; -pub type __be32 = __u32; -pub type __wsum = __u32; #[repr(C)] -#[derive(Copy, Clone)] -pub struct blocking_notifier_head { - pub rwsem: rw_semaphore, - pub head: *mut notifier_block, +#[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(Debug, Copy, Clone)] -pub struct raw_notifier_head { - pub head: *mut notifier_block, +#[derive(Debug)] +pub struct perf_callchain_entry { + pub nr: __u64, + pub ip: __IncompleteArrayField<__u64>, +} +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_, } -pub type __kernel_sa_family_t = ::aya_ebpf::cty::c_ushort; -pub type sa_family_t = __kernel_sa_family_t; #[repr(C)] -pub struct sockaddr { - pub sa_family: sa_family_t, - pub __bindgen_anon_1: sockaddr__bindgen_ty_1, +#[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)] -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], +#[derive(Copy, Clone)] +pub struct perf_raw_record { + pub frag: perf_raw_frag, + pub size: u32_, } #[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>, +pub struct perf_branch_stack { + pub nr: __u64, + pub hw_idx: __u64, + pub entries: __IncompleteArrayField, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct sockaddr__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {} -pub type sk_buff_data_t = ::aya_ebpf::cty::c_uint; -#[repr(C)] -pub struct sk_buff { - pub __bindgen_anon_1: sk_buff__bindgen_ty_1, - pub __bindgen_anon_2: sk_buff__bindgen_ty_2, - pub __bindgen_anon_3: sk_buff__bindgen_ty_3, - pub cb: [::aya_ebpf::cty::c_char; 48usize], - pub __bindgen_anon_4: sk_buff__bindgen_ty_4, - 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 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 active_extensions: __u8, - pub __bindgen_anon_5: sk_buff__bindgen_ty_5, - 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, + pub nr_events: ::aya_ebpf::cty::c_uint, + pub nr_cgroups: ::aya_ebpf::cty::c_uint, + pub refcount: atomic_t, + pub callback_head: callback_head, + pub task_ctx_data: *mut ::aya_ebpf::cty::c_void, + 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 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 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, +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 hrtimer_lock: raw_spinlock_t, + pub hrtimer: hrtimer, + pub hrtimer_interval: ktime_t, + pub hrtimer_active: ::aya_ebpf::cty::c_uint, } #[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, +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 aux_flags: u64_, + pub __bindgen_anon_1: perf_output_handle__bindgen_ty_1, + pub page: ::aya_ebpf::cty::c_int, } #[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, +pub union perf_output_handle__bindgen_ty_1 { + pub addr: *mut ::aya_ebpf::cty::c_void, + pub head: ::aya_ebpf::cty::c_ulong, } #[repr(C)] -#[derive(Copy, Clone)] -pub union sk_buff__bindgen_ty_2 { - pub sk: *mut sock, - pub ip_defrag_offset: ::aya_ebpf::cty::c_int, +#[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 union sk_buff__bindgen_ty_3 { - pub tstamp: ktime_t, - pub skb_mstamp_ns: u64_, +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(Copy, Clone)] -pub union sk_buff__bindgen_ty_4 { - pub __bindgen_anon_1: sk_buff__bindgen_ty_4__bindgen_ty_1, - pub tcp_tsorted_anchor: list_head, - pub _sk_redir: ::aya_ebpf::cty::c_ulong, +#[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 sk_buff__bindgen_ty_4__bindgen_ty_1 { - pub _skb_refdst: ::aya_ebpf::cty::c_ulong, - pub destructor: ::core::option::Option, +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)] -pub struct sk_buff__bindgen_ty_5 { - pub __bindgen_anon_1: __BindgenUnionField, - pub headers: __BindgenUnionField, - pub bindgen_union_field: [u32; 15usize], +#[derive(Debug, Copy, Clone)] +pub struct event_filter { + pub prog: *mut prog_entry, + pub filter_string: *mut ::aya_ebpf::cty::c_char, } #[repr(C)] -pub struct sk_buff__bindgen_ty_5__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_5__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_5__bindgen_ty_1__bindgen_ty_2, - pub __bindgen_anon_3: sk_buff__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3, - pub secmark: __u32, - pub __bindgen_anon_4: sk_buff__bindgen_ty_5__bindgen_ty_1__bindgen_ty_4, - pub __bindgen_anon_5: sk_buff__bindgen_ty_5__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, +#[derive(Debug, Copy, Clone)] +pub struct perf_cgroup { + pub css: cgroup_subsys_state, + pub info: *mut perf_cgroup_info, } #[repr(C)] -#[derive(Copy, Clone)] -pub union sk_buff__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1 { - pub csum: __wsum, - pub __bindgen_anon_1: sk_buff__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, +#[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 sk_buff__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { - pub csum_start: __u16, - pub csum_offset: __u16, +pub struct seq_buf { + pub buffer: *mut ::aya_ebpf::cty::c_char, + pub size: usize, + pub len: usize, } #[repr(C)] -#[derive(Copy, Clone)] -pub union sk_buff__bindgen_ty_5__bindgen_ty_1__bindgen_ty_2 { - pub vlan_all: u32_, - pub __bindgen_anon_1: sk_buff__bindgen_ty_5__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1, +#[derive(Debug, Copy, Clone)] +pub struct trace_seq { + pub buffer: [::aya_ebpf::cty::c_char; 8156usize], + pub seq: seq_buf, + pub readpos: usize, + pub full: ::aya_ebpf::cty::c_int, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct sk_buff__bindgen_ty_5__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 { - pub vlan_proto: __be16, - pub vlan_tci: __u16, +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 union sk_buff__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3 { - pub napi_id: ::aya_ebpf::cty::c_uint, - pub sender_cpu: ::aya_ebpf::cty::c_uint, +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(Copy, Clone)] -pub union sk_buff__bindgen_ty_5__bindgen_ty_1__bindgen_ty_4 { - pub mark: __u32, - pub reserved_tailroom: __u32, +#[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(Copy, Clone)] -pub union sk_buff__bindgen_ty_5__bindgen_ty_1__bindgen_ty_5 { - pub inner_protocol: __be16, - pub inner_ipproto: __u8, +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 filtered_pids: *mut trace_pid_list, + pub filtered_no_pids: *mut trace_pid_list, + pub max_lock: arch_spinlock_t, + pub buffer_disabled: ::aya_ebpf::cty::c_int, + 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; 462usize], + pub exit_syscall_files: [*mut trace_event_file; 462usize], + 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 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 ops: *mut ftrace_ops, + pub function_pids: *mut trace_pid_list, + pub function_no_pids: *mut trace_pid_list, + 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_, } -impl sk_buff__bindgen_ty_5__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 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 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 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 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 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 mono_delivery_time(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(0usize, 1u8) as u8) } - } - #[inline] - pub fn set_mono_delivery_time(&mut self, val: __u8) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_2.set(0usize, 1u8, val as u64) - } - } - #[inline] - pub fn tc_at_ingress(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(1usize, 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(1usize, 1u8, val as u64) - } - } - #[inline] - pub fn tc_skip_classify(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(2usize, 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(2usize, 1u8, val as u64) - } - } - #[inline] - pub fn remcsum_offload(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(3usize, 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(3usize, 1u8, val as u64) - } - } - #[inline] - pub fn csum_complete_sw(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(4usize, 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(4usize, 1u8, val as u64) - } - } - #[inline] - pub fn csum_level(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(5usize, 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(5usize, 2u8, val as u64) - } - } - #[inline] - pub fn inner_protocol_type(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(7usize, 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(7usize, 1u8, val as u64) - } - } - #[inline] - pub fn l4_hash(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(8usize, 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(8usize, 1u8, val as u64) - } - } - #[inline] - pub fn sw_hash(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(9usize, 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(9usize, 1u8, val as u64) - } - } - #[inline] - pub fn wifi_acked_valid(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(10usize, 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(10usize, 1u8, val as u64) - } - } - #[inline] - pub fn wifi_acked(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(11usize, 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(11usize, 1u8, val as u64) - } - } - #[inline] - pub fn no_fcs(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(12usize, 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(12usize, 1u8, val as u64) - } - } - #[inline] - pub fn encapsulation(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(13usize, 1u8) as u8) } - } - #[inline] - pub fn set_encapsulation(&mut self, val: __u8) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_2.set(13usize, 1u8, val as u64) - } - } - #[inline] - pub fn encap_hdr_csum(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(14usize, 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(14usize, 1u8, val as u64) - } - } - #[inline] - pub fn csum_valid(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(15usize, 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(15usize, 1u8, val as u64) - } - } - #[inline] - pub fn ndisc_nodetype(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(16usize, 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(16usize, 2u8, val as u64) - } - } - #[inline] - pub fn ipvs_property(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(18usize, 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(18usize, 1u8, val as u64) - } - } - #[inline] - pub fn nf_trace(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(19usize, 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(19usize, 1u8, val as u64) - } - } - #[inline] - pub fn offload_fwd_mark(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(20usize, 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(20usize, 1u8, val as u64) - } - } - #[inline] - pub fn offload_l3_fwd_mark(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(21usize, 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(21usize, 1u8, val as u64) - } - } - #[inline] - pub fn redirected(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(22usize, 1u8) as u8) } - } - #[inline] - pub fn set_redirected(&mut self, val: __u8) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_2.set(22usize, 1u8, val as u64) - } - } - #[inline] - pub fn from_ingress(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(23usize, 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(23usize, 1u8, val as u64) - } - } - #[inline] - pub fn nf_skip_egress(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(24usize, 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(24usize, 1u8, val as u64) - } - } - #[inline] - pub fn decrypted(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(25usize, 1u8) as u8) } - } - #[inline] - pub fn set_decrypted(&mut self, val: __u8) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_2.set(25usize, 1u8, val as u64) - } - } - #[inline] - pub fn slow_gro(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(26usize, 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(26usize, 1u8, val as u64) - } - } - #[inline] - pub fn csum_not_inet(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(27usize, 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(27usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_2( - mono_delivery_time: __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, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let mono_delivery_time: u8 = unsafe { ::core::mem::transmute(mono_delivery_time) }; - mono_delivery_time as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let tc_at_ingress: u8 = unsafe { ::core::mem::transmute(tc_at_ingress) }; - tc_at_ingress as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let tc_skip_classify: u8 = unsafe { ::core::mem::transmute(tc_skip_classify) }; - tc_skip_classify as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let remcsum_offload: u8 = unsafe { ::core::mem::transmute(remcsum_offload) }; - remcsum_offload as u64 - }); - __bindgen_bitfield_unit.set(4usize, 1u8, { - let csum_complete_sw: u8 = unsafe { ::core::mem::transmute(csum_complete_sw) }; - csum_complete_sw as u64 - }); - __bindgen_bitfield_unit.set(5usize, 2u8, { - let csum_level: u8 = unsafe { ::core::mem::transmute(csum_level) }; - csum_level as u64 - }); - __bindgen_bitfield_unit.set(7usize, 1u8, { - let inner_protocol_type: u8 = unsafe { ::core::mem::transmute(inner_protocol_type) }; - inner_protocol_type as u64 - }); - __bindgen_bitfield_unit.set(8usize, 1u8, { - let l4_hash: u8 = unsafe { ::core::mem::transmute(l4_hash) }; - l4_hash as u64 - }); - __bindgen_bitfield_unit.set(9usize, 1u8, { - let sw_hash: u8 = unsafe { ::core::mem::transmute(sw_hash) }; - sw_hash as u64 - }); - __bindgen_bitfield_unit.set(10usize, 1u8, { - let wifi_acked_valid: u8 = unsafe { ::core::mem::transmute(wifi_acked_valid) }; - wifi_acked_valid as u64 - }); - __bindgen_bitfield_unit.set(11usize, 1u8, { - let wifi_acked: u8 = unsafe { ::core::mem::transmute(wifi_acked) }; - wifi_acked as u64 - }); - __bindgen_bitfield_unit.set(12usize, 1u8, { - let no_fcs: u8 = unsafe { ::core::mem::transmute(no_fcs) }; - no_fcs as u64 - }); - __bindgen_bitfield_unit.set(13usize, 1u8, { - let encapsulation: u8 = unsafe { ::core::mem::transmute(encapsulation) }; - encapsulation as u64 - }); - __bindgen_bitfield_unit.set(14usize, 1u8, { - let encap_hdr_csum: u8 = unsafe { ::core::mem::transmute(encap_hdr_csum) }; - encap_hdr_csum as u64 - }); - __bindgen_bitfield_unit.set(15usize, 1u8, { - let csum_valid: u8 = unsafe { ::core::mem::transmute(csum_valid) }; - csum_valid as u64 - }); - __bindgen_bitfield_unit.set(16usize, 2u8, { - let ndisc_nodetype: u8 = unsafe { ::core::mem::transmute(ndisc_nodetype) }; - ndisc_nodetype as u64 - }); - __bindgen_bitfield_unit.set(18usize, 1u8, { - let ipvs_property: u8 = unsafe { ::core::mem::transmute(ipvs_property) }; - ipvs_property as u64 - }); - __bindgen_bitfield_unit.set(19usize, 1u8, { - let nf_trace: u8 = unsafe { ::core::mem::transmute(nf_trace) }; - nf_trace as u64 - }); - __bindgen_bitfield_unit.set(20usize, 1u8, { - let offload_fwd_mark: u8 = unsafe { ::core::mem::transmute(offload_fwd_mark) }; - offload_fwd_mark as u64 - }); - __bindgen_bitfield_unit.set(21usize, 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(22usize, 1u8, { - let redirected: u8 = unsafe { ::core::mem::transmute(redirected) }; - redirected as u64 - }); - __bindgen_bitfield_unit.set(23usize, 1u8, { - let from_ingress: u8 = unsafe { ::core::mem::transmute(from_ingress) }; - from_ingress as u64 - }); - __bindgen_bitfield_unit.set(24usize, 1u8, { - let nf_skip_egress: u8 = unsafe { ::core::mem::transmute(nf_skip_egress) }; - nf_skip_egress as u64 - }); - __bindgen_bitfield_unit.set(25usize, 1u8, { - let decrypted: u8 = unsafe { ::core::mem::transmute(decrypted) }; - decrypted as u64 - }); - __bindgen_bitfield_unit.set(26usize, 1u8, { - let slow_gro: u8 = unsafe { ::core::mem::transmute(slow_gro) }; - slow_gro as u64 - }); - __bindgen_bitfield_unit.set(27usize, 1u8, { - let csum_not_inet: u8 = unsafe { ::core::mem::transmute(csum_not_inet) }; - csum_not_inet as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -pub struct sk_buff__bindgen_ty_5__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_5__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_5__bindgen_ty_2__bindgen_ty_2, - pub __bindgen_anon_3: sk_buff__bindgen_ty_5__bindgen_ty_2__bindgen_ty_3, - pub secmark: __u32, - pub __bindgen_anon_4: sk_buff__bindgen_ty_5__bindgen_ty_2__bindgen_ty_4, - pub __bindgen_anon_5: sk_buff__bindgen_ty_5__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_5__bindgen_ty_2__bindgen_ty_1 { - pub csum: __wsum, - pub __bindgen_anon_1: sk_buff__bindgen_ty_5__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct sk_buff__bindgen_ty_5__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_5__bindgen_ty_2__bindgen_ty_2 { - pub vlan_all: u32_, - pub __bindgen_anon_1: sk_buff__bindgen_ty_5__bindgen_ty_2__bindgen_ty_2__bindgen_ty_1, +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; } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct sk_buff__bindgen_ty_5__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_5__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_5__bindgen_ty_2__bindgen_ty_4 { - pub mark: __u32, - pub reserved_tailroom: __u32, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union sk_buff__bindgen_ty_5__bindgen_ty_2__bindgen_ty_5 { - pub inner_protocol: __be16, - pub inner_ipproto: __u8, -} -impl sk_buff__bindgen_ty_5__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 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 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 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 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 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 mono_delivery_time(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(0usize, 1u8) as u8) } - } - #[inline] - pub fn set_mono_delivery_time(&mut self, val: __u8) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_2.set(0usize, 1u8, val as u64) - } - } - #[inline] - pub fn tc_at_ingress(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(1usize, 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(1usize, 1u8, val as u64) - } - } - #[inline] - pub fn tc_skip_classify(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(2usize, 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(2usize, 1u8, val as u64) - } - } - #[inline] - pub fn remcsum_offload(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(3usize, 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(3usize, 1u8, val as u64) - } - } - #[inline] - pub fn csum_complete_sw(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(4usize, 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(4usize, 1u8, val as u64) - } - } - #[inline] - pub fn csum_level(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(5usize, 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(5usize, 2u8, val as u64) - } - } - #[inline] - pub fn inner_protocol_type(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(7usize, 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(7usize, 1u8, val as u64) - } - } - #[inline] - pub fn l4_hash(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(8usize, 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(8usize, 1u8, val as u64) - } - } - #[inline] - pub fn sw_hash(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(9usize, 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(9usize, 1u8, val as u64) - } - } - #[inline] - pub fn wifi_acked_valid(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(10usize, 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(10usize, 1u8, val as u64) - } - } - #[inline] - pub fn wifi_acked(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(11usize, 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(11usize, 1u8, val as u64) - } - } - #[inline] - pub fn no_fcs(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(12usize, 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(12usize, 1u8, val as u64) - } - } - #[inline] - pub fn encapsulation(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(13usize, 1u8) as u8) } - } - #[inline] - pub fn set_encapsulation(&mut self, val: __u8) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_2.set(13usize, 1u8, val as u64) - } - } - #[inline] - pub fn encap_hdr_csum(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(14usize, 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(14usize, 1u8, val as u64) - } - } - #[inline] - pub fn csum_valid(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(15usize, 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(15usize, 1u8, val as u64) - } - } - #[inline] - pub fn ndisc_nodetype(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(16usize, 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(16usize, 2u8, val as u64) - } - } - #[inline] - pub fn ipvs_property(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(18usize, 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(18usize, 1u8, val as u64) - } - } - #[inline] - pub fn nf_trace(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(19usize, 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(19usize, 1u8, val as u64) - } - } - #[inline] - pub fn offload_fwd_mark(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(20usize, 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(20usize, 1u8, val as u64) - } - } - #[inline] - pub fn offload_l3_fwd_mark(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(21usize, 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(21usize, 1u8, val as u64) - } - } - #[inline] - pub fn redirected(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(22usize, 1u8) as u8) } - } - #[inline] - pub fn set_redirected(&mut self, val: __u8) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_2.set(22usize, 1u8, val as u64) - } - } - #[inline] - pub fn from_ingress(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(23usize, 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(23usize, 1u8, val as u64) - } - } - #[inline] - pub fn nf_skip_egress(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(24usize, 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(24usize, 1u8, val as u64) - } - } - #[inline] - pub fn decrypted(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(25usize, 1u8) as u8) } - } - #[inline] - pub fn set_decrypted(&mut self, val: __u8) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_2.set(25usize, 1u8, val as u64) - } - } - #[inline] - pub fn slow_gro(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(26usize, 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(26usize, 1u8, val as u64) - } - } - #[inline] - pub fn csum_not_inet(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_2.get(27usize, 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(27usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_2( - mono_delivery_time: __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, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let mono_delivery_time: u8 = unsafe { ::core::mem::transmute(mono_delivery_time) }; - mono_delivery_time as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let tc_at_ingress: u8 = unsafe { ::core::mem::transmute(tc_at_ingress) }; - tc_at_ingress as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let tc_skip_classify: u8 = unsafe { ::core::mem::transmute(tc_skip_classify) }; - tc_skip_classify as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let remcsum_offload: u8 = unsafe { ::core::mem::transmute(remcsum_offload) }; - remcsum_offload as u64 - }); - __bindgen_bitfield_unit.set(4usize, 1u8, { - let csum_complete_sw: u8 = unsafe { ::core::mem::transmute(csum_complete_sw) }; - csum_complete_sw as u64 - }); - __bindgen_bitfield_unit.set(5usize, 2u8, { - let csum_level: u8 = unsafe { ::core::mem::transmute(csum_level) }; - csum_level as u64 - }); - __bindgen_bitfield_unit.set(7usize, 1u8, { - let inner_protocol_type: u8 = unsafe { ::core::mem::transmute(inner_protocol_type) }; - inner_protocol_type as u64 - }); - __bindgen_bitfield_unit.set(8usize, 1u8, { - let l4_hash: u8 = unsafe { ::core::mem::transmute(l4_hash) }; - l4_hash as u64 - }); - __bindgen_bitfield_unit.set(9usize, 1u8, { - let sw_hash: u8 = unsafe { ::core::mem::transmute(sw_hash) }; - sw_hash as u64 - }); - __bindgen_bitfield_unit.set(10usize, 1u8, { - let wifi_acked_valid: u8 = unsafe { ::core::mem::transmute(wifi_acked_valid) }; - wifi_acked_valid as u64 - }); - __bindgen_bitfield_unit.set(11usize, 1u8, { - let wifi_acked: u8 = unsafe { ::core::mem::transmute(wifi_acked) }; - wifi_acked as u64 - }); - __bindgen_bitfield_unit.set(12usize, 1u8, { - let no_fcs: u8 = unsafe { ::core::mem::transmute(no_fcs) }; - no_fcs as u64 - }); - __bindgen_bitfield_unit.set(13usize, 1u8, { - let encapsulation: u8 = unsafe { ::core::mem::transmute(encapsulation) }; - encapsulation as u64 - }); - __bindgen_bitfield_unit.set(14usize, 1u8, { - let encap_hdr_csum: u8 = unsafe { ::core::mem::transmute(encap_hdr_csum) }; - encap_hdr_csum as u64 - }); - __bindgen_bitfield_unit.set(15usize, 1u8, { - let csum_valid: u8 = unsafe { ::core::mem::transmute(csum_valid) }; - csum_valid as u64 - }); - __bindgen_bitfield_unit.set(16usize, 2u8, { - let ndisc_nodetype: u8 = unsafe { ::core::mem::transmute(ndisc_nodetype) }; - ndisc_nodetype as u64 - }); - __bindgen_bitfield_unit.set(18usize, 1u8, { - let ipvs_property: u8 = unsafe { ::core::mem::transmute(ipvs_property) }; - ipvs_property as u64 - }); - __bindgen_bitfield_unit.set(19usize, 1u8, { - let nf_trace: u8 = unsafe { ::core::mem::transmute(nf_trace) }; - nf_trace as u64 - }); - __bindgen_bitfield_unit.set(20usize, 1u8, { - let offload_fwd_mark: u8 = unsafe { ::core::mem::transmute(offload_fwd_mark) }; - offload_fwd_mark as u64 - }); - __bindgen_bitfield_unit.set(21usize, 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(22usize, 1u8, { - let redirected: u8 = unsafe { ::core::mem::transmute(redirected) }; - redirected as u64 - }); - __bindgen_bitfield_unit.set(23usize, 1u8, { - let from_ingress: u8 = unsafe { ::core::mem::transmute(from_ingress) }; - from_ingress as u64 - }); - __bindgen_bitfield_unit.set(24usize, 1u8, { - let nf_skip_egress: u8 = unsafe { ::core::mem::transmute(nf_skip_egress) }; - nf_skip_egress as u64 - }); - __bindgen_bitfield_unit.set(25usize, 1u8, { - let decrypted: u8 = unsafe { ::core::mem::transmute(decrypted) }; - decrypted as u64 - }); - __bindgen_bitfield_unit.set(26usize, 1u8, { - let slow_gro: u8 = unsafe { ::core::mem::transmute(slow_gro) }; - slow_gro as u64 - }); - __bindgen_bitfield_unit.set(27usize, 1u8, { - let csum_not_inet: u8 = unsafe { ::core::mem::transmute(csum_not_inet) }; - csum_not_inet 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 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 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 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 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 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 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 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 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 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 fr_proto { - pub t391: ::aya_ebpf::cty::c_uint, - pub t392: ::aya_ebpf::cty::c_uint, - pub n391: ::aya_ebpf::cty::c_uint, - pub n392: ::aya_ebpf::cty::c_uint, - pub n393: ::aya_ebpf::cty::c_uint, - pub lmi: ::aya_ebpf::cty::c_ushort, - pub dce: ::aya_ebpf::cty::c_ushort, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct fr_proto_pvc { - pub dlci: ::aya_ebpf::cty::c_uint, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct fr_proto_pvc_info { - pub dlci: ::aya_ebpf::cty::c_uint, - pub master: [::aya_ebpf::cty::c_char; 16usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cisco_proto { - pub interval: ::aya_ebpf::cty::c_uint, - pub timeout: ::aya_ebpf::cty::c_uint, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct x25_hdlc_proto { - pub dce: ::aya_ebpf::cty::c_ushort, - pub modulo: ::aya_ebpf::cty::c_uint, - pub window: ::aya_ebpf::cty::c_uint, - pub t1: ::aya_ebpf::cty::c_uint, - pub t2: ::aya_ebpf::cty::c_uint, - pub n2: ::aya_ebpf::cty::c_uint, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct 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 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)] -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], -} -pub type netdev_features_t = u64_; -#[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(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 netdev_tc_txq { - pub count: u16_, - pub offset: u16_, -} -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 type rx_handler_func_t = - ::core::option::Option rx_handler_result_t>; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct possible_net_t { - pub net: *mut net, -} -pub type xdp_features_t = u32_; -#[repr(C)] -#[derive(Copy, Clone)] -pub struct net_device_stats { - pub __bindgen_anon_1: net_device_stats__bindgen_ty_1, - pub __bindgen_anon_2: net_device_stats__bindgen_ty_2, - pub __bindgen_anon_3: net_device_stats__bindgen_ty_3, - pub __bindgen_anon_4: net_device_stats__bindgen_ty_4, - pub __bindgen_anon_5: net_device_stats__bindgen_ty_5, - pub __bindgen_anon_6: net_device_stats__bindgen_ty_6, - pub __bindgen_anon_7: net_device_stats__bindgen_ty_7, - pub __bindgen_anon_8: net_device_stats__bindgen_ty_8, - pub __bindgen_anon_9: net_device_stats__bindgen_ty_9, - pub __bindgen_anon_10: net_device_stats__bindgen_ty_10, - pub __bindgen_anon_11: net_device_stats__bindgen_ty_11, - pub __bindgen_anon_12: net_device_stats__bindgen_ty_12, - pub __bindgen_anon_13: net_device_stats__bindgen_ty_13, - pub __bindgen_anon_14: net_device_stats__bindgen_ty_14, - pub __bindgen_anon_15: net_device_stats__bindgen_ty_15, - pub __bindgen_anon_16: net_device_stats__bindgen_ty_16, - pub __bindgen_anon_17: net_device_stats__bindgen_ty_17, - pub __bindgen_anon_18: net_device_stats__bindgen_ty_18, - pub __bindgen_anon_19: net_device_stats__bindgen_ty_19, - pub __bindgen_anon_20: net_device_stats__bindgen_ty_20, - pub __bindgen_anon_21: net_device_stats__bindgen_ty_21, - pub __bindgen_anon_22: net_device_stats__bindgen_ty_22, - pub __bindgen_anon_23: net_device_stats__bindgen_ty_23, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union net_device_stats__bindgen_ty_1 { - pub rx_packets: ::aya_ebpf::cty::c_ulong, - pub __rx_packets: atomic_long_t, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union net_device_stats__bindgen_ty_2 { - pub tx_packets: ::aya_ebpf::cty::c_ulong, - pub __tx_packets: atomic_long_t, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union net_device_stats__bindgen_ty_3 { - pub rx_bytes: ::aya_ebpf::cty::c_ulong, - pub __rx_bytes: atomic_long_t, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union net_device_stats__bindgen_ty_4 { - pub tx_bytes: ::aya_ebpf::cty::c_ulong, - pub __tx_bytes: atomic_long_t, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union net_device_stats__bindgen_ty_5 { - pub rx_errors: ::aya_ebpf::cty::c_ulong, - pub __rx_errors: atomic_long_t, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union net_device_stats__bindgen_ty_6 { - pub tx_errors: ::aya_ebpf::cty::c_ulong, - pub __tx_errors: atomic_long_t, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union net_device_stats__bindgen_ty_7 { - pub rx_dropped: ::aya_ebpf::cty::c_ulong, - pub __rx_dropped: atomic_long_t, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union net_device_stats__bindgen_ty_8 { - pub tx_dropped: ::aya_ebpf::cty::c_ulong, - pub __tx_dropped: atomic_long_t, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union net_device_stats__bindgen_ty_9 { - pub multicast: ::aya_ebpf::cty::c_ulong, - pub __multicast: atomic_long_t, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union net_device_stats__bindgen_ty_10 { - pub collisions: ::aya_ebpf::cty::c_ulong, - pub __collisions: atomic_long_t, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union net_device_stats__bindgen_ty_11 { - pub rx_length_errors: ::aya_ebpf::cty::c_ulong, - pub __rx_length_errors: atomic_long_t, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union net_device_stats__bindgen_ty_12 { - pub rx_over_errors: ::aya_ebpf::cty::c_ulong, - pub __rx_over_errors: atomic_long_t, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union net_device_stats__bindgen_ty_13 { - pub rx_crc_errors: ::aya_ebpf::cty::c_ulong, - pub __rx_crc_errors: atomic_long_t, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union net_device_stats__bindgen_ty_14 { - pub rx_frame_errors: ::aya_ebpf::cty::c_ulong, - pub __rx_frame_errors: atomic_long_t, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union net_device_stats__bindgen_ty_15 { - pub rx_fifo_errors: ::aya_ebpf::cty::c_ulong, - pub __rx_fifo_errors: atomic_long_t, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union net_device_stats__bindgen_ty_16 { - pub rx_missed_errors: ::aya_ebpf::cty::c_ulong, - pub __rx_missed_errors: atomic_long_t, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union net_device_stats__bindgen_ty_17 { - pub tx_aborted_errors: ::aya_ebpf::cty::c_ulong, - pub __tx_aborted_errors: atomic_long_t, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union net_device_stats__bindgen_ty_18 { - pub tx_carrier_errors: ::aya_ebpf::cty::c_ulong, - pub __tx_carrier_errors: atomic_long_t, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union net_device_stats__bindgen_ty_19 { - pub tx_fifo_errors: ::aya_ebpf::cty::c_ulong, - pub __tx_fifo_errors: atomic_long_t, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union net_device_stats__bindgen_ty_20 { - pub tx_heartbeat_errors: ::aya_ebpf::cty::c_ulong, - pub __tx_heartbeat_errors: atomic_long_t, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union net_device_stats__bindgen_ty_21 { - pub tx_window_errors: ::aya_ebpf::cty::c_ulong, - pub __tx_window_errors: atomic_long_t, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union net_device_stats__bindgen_ty_22 { - pub rx_compressed: ::aya_ebpf::cty::c_ulong, - pub __rx_compressed: atomic_long_t, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union net_device_stats__bindgen_ty_23 { - pub tx_compressed: ::aya_ebpf::cty::c_ulong, - pub __tx_compressed: atomic_long_t, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct netdev_hw_addr_list { - pub list: list_head, - pub count: ::aya_ebpf::cty::c_int, - pub tree: rb_root, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct tipc_bearer { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct mpls_dev { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct ref_tracker_dir {} -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; -} -#[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)] -#[derive(Debug, Copy, Clone)] -pub struct bpf_xdp_entity { - pub prog: *mut bpf_prog, - pub link: *mut bpf_xdp_link, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct netdevice_tracker {} -#[repr(C)] -pub struct net_device { - pub __cacheline_group_begin__net_device_read_tx: __IncompleteArrayField<__u8>, - pub priv_flags: ::aya_ebpf::cty::c_ulonglong, - 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_1: net_device__bindgen_ty_1, - 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_flush_timeout: ::aya_ebpf::cty::c_ulong, - pub napi_defer_hard_irqs: ::aya_ebpf::cty::c_int, - 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 state: ::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_2, - 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 wireless_handlers: *const iw_handler_def, - pub wireless_data: *mut iw_public_data, - 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_uchar, - 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 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 padded: ::aya_ebpf::cty::c_ushort, - pub addr_list_lock: spinlock_t, - pub irq: ::aya_ebpf::cty::c_int, - 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 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 ::aya_ebpf::cty::c_void, - pub ieee80211_ptr: *mut wireless_dev, - pub ieee802154_ptr: *mut wpan_dev, - pub mpls_ptr: *mut mpls_dev, - pub mctp_ptr: *mut mctp_dev, - pub 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 _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub dismantle: bool_, - pub _bitfield_align_2: [u16; 0], - pub _bitfield_2: __BindgenBitfieldUnit<[u8; 2usize]>, - 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_3: [u8; 0], - pub _bitfield_3: __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; 4usize], - pub sysfs_rx_queue_group: *const attribute_group, - pub rtnl_link_ops: *const rtnl_link_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 phydev: *mut phy_device, - pub sfp_bus: *mut sfp_bus, - pub qdisc_tx_busylock: *mut lock_class_key, - pub proto_down: bool_, - pub _bitfield_align_4: [u8; 0], - pub _bitfield_4: __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 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, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union net_device__bindgen_ty_1 { - 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_2 { - pub upper: list_head, - pub lower: list_head, -} -pub mod net_device__bindgen_ty_3 { - pub type Type = ::aya_ebpf::cty::c_uint; - pub const NETREG_UNINITIALIZED: Type = 0; - pub const NETREG_REGISTERED: Type = 1; - pub const NETREG_UNREGISTERING: Type = 2; - pub const NETREG_UNREGISTERED: Type = 3; - pub const NETREG_RELEASED: Type = 4; - pub const NETREG_DUMMY: Type = 5; -} -pub mod net_device__bindgen_ty_4 { - pub type Type = ::aya_ebpf::cty::c_uint; - pub const RTNL_LINK_INITIALIZED: Type = 0; - pub const RTNL_LINK_INITIALIZING: Type = 1; -} -impl net_device { - #[inline] - pub fn reg_state(&self) -> net_device__bindgen_ty_3::Type { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) } - } - #[inline] - pub fn set_reg_state(&mut self, val: net_device__bindgen_ty_3::Type) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 8u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - reg_state: net_device__bindgen_ty_3::Type, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 8u8, { - let reg_state: u32 = unsafe { ::core::mem::transmute(reg_state) }; - reg_state as u64 - }); - __bindgen_bitfield_unit - } - #[inline] - pub fn rtnl_link_state(&self) -> net_device__bindgen_ty_4::Type { - unsafe { ::core::mem::transmute(self._bitfield_2.get(0usize, 16u8) as u32) } - } - #[inline] - pub fn set_rtnl_link_state(&mut self, val: net_device__bindgen_ty_4::Type) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_2.set(0usize, 16u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_2( - rtnl_link_state: net_device__bindgen_ty_4::Type, - ) -> __BindgenBitfieldUnit<[u8; 2usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 16u8, { - let rtnl_link_state: u32 = unsafe { ::core::mem::transmute(rtnl_link_state) }; - rtnl_link_state as u64 - }); - __bindgen_bitfield_unit - } - #[inline] - pub fn pcpu_stat_type(&self) -> netdev_stat_type::Type { - unsafe { ::core::mem::transmute(self._bitfield_3.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_3.set(0usize, 8u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_3( - 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 wol_enabled(&self) -> ::aya_ebpf::cty::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_4.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_4.set(0usize, 1u8, val as u64) - } - } - #[inline] - pub fn threaded(&self) -> ::aya_ebpf::cty::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_4.get(1usize, 1u8) as u32) } - } - #[inline] - pub fn set_threaded(&mut self, val: ::aya_ebpf::cty::c_uint) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_4.set(1usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_4( - wol_enabled: ::aya_ebpf::cty::c_uint, - threaded: ::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 threaded: u32 = unsafe { ::core::mem::transmute(threaded) }; - threaded as u64 - }); - __bindgen_bitfield_unit - } -} -#[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 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)] -#[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(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 _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 48usize]>, - pub __bindgen_padding_0: u32, - 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 _bitfield_align_2: [u8; 0], - pub _bitfield_2: __BindgenBitfieldUnit<[u8; 16usize]>, - pub __bindgen_padding_1: u32, -} -impl dql { - #[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 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 prot_inuse: *mut prot_inuse, - pub rps_default_mask: *mut cpumask, -} -#[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 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 icmpv6msg_mib { - pub mibs: [atomic_long_t; 512usize], -} -#[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 udp_mib { - pub mibs: [::aya_ebpf::cty::c_ulong; 10usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct linux_mib { - pub mibs: [::aya_ebpf::cty::c_ulong; 132usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct linux_xfrm_mib { - pub mibs: [::aya_ebpf::cty::c_ulong; 29usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct linux_tls_mib { - pub mibs: [::aya_ebpf::cty::c_ulong; 13usize], -} -#[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(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_packet { - pub sklist_lock: mutex, - pub sklist: hlist_head, -} -#[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(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(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 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 local_ports { - pub range: u32_, - pub warned: bool_, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ping_group_range { - pub lock: seqlock_t, - pub range: [kgid_t; 2usize], -} -#[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_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 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 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 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_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_l3mdev_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_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_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 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_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 _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(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 *mut dst_entry>, - 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(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 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; 32usize]>, -} -#[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; 32usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 32usize]> = 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 sctp_hmac_alg: *mut ::aya_ebpf::cty::c_char, - 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 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_dccp_net { - pub dccp_loose: u8_, - pub dccp_timeout: [::aya_ebpf::cty::c_uint; 10usize], -} -#[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 dccp: nf_dccp_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 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_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_inexact: [hlist_head; 3usize], - 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; 24usize]>, - 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 _bitfield_align_2: [u8; 0], - pub _bitfield_2: __BindgenBitfieldUnit<[u8; 16usize]>, -} -impl netns_xfrm { - #[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; 16usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); - __bindgen_bitfield_unit - } -} -#[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, - pub keys_lock: spinlock_t, - pub keys: hlist_head, - pub default_net: ::aya_ebpf::cty::c_uint, - pub neigh_lock: mutex, - pub neighbours: list_head, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct smc_stats { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct smc_stats_rsn { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct netns_smc { - pub smc_stats: *mut smc_stats, - pub mutex_fback_rsn: mutex, - pub fback_rsn: *mut smc_stats_rsn, - pub limit_smc_hs: bool_, - pub smc_hdr: *mut ctl_table_header, - pub sysctl_autocorking_size: ::aya_ebpf::cty::c_uint, - pub sysctl_smcr_buf_type: ::aya_ebpf::cty::c_uint, - pub sysctl_smcr_testlink_time: ::aya_ebpf::cty::c_int, - pub sysctl_wmem: ::aya_ebpf::cty::c_int, - pub sysctl_rmem: ::aya_ebpf::cty::c_int, - pub sysctl_max_links_per_lgr: ::aya_ebpf::cty::c_int, - pub sysctl_max_conns_per_lgr: ::aya_ebpf::cty::c_int, -} -#[repr(C)] -pub struct net { - pub passive: refcount_t, - pub rules_mod_lock: spinlock_t, - pub dev_unreg_count: atomic_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 cleanup_list: llist_node, - 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; 24usize]>, - pub ipv4: netns_ipv4, - pub ipv6: netns_ipv6, - pub ieee802154_lowpan: netns_ieee802154_lowpan, - pub sctp: netns_sctp, - pub nf: netns_nf, - pub ct: netns_ct, - pub nft: netns_nftables, - pub ft: netns_ft, - pub wext_nlevents: sk_buff_head, - pub gen: *mut net_generic, - pub bpf: netns_bpf, - pub _bitfield_align_2: [u8; 0], - pub _bitfield_2: __BindgenBitfieldUnit<[u8; 40usize]>, - pub xfrm: netns_xfrm, - pub net_cookie: u64_, - pub ipvs: *mut netns_ipvs, - pub mpls: netns_mpls, - pub can: netns_can, - pub xdp: netns_xdp, - pub mctp: netns_mctp, - pub crypto_nlsk: *mut sock, - pub diag_nlsk: *mut sock, - pub smc: netns_smc, - pub _bitfield_align_3: [u8; 0], - pub _bitfield_3: __BindgenBitfieldUnit<[u8; 24usize]>, -} -impl net { - #[inline] - pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 24usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); - __bindgen_bitfield_unit - } - #[inline] - pub fn new_bitfield_3() -> __BindgenBitfieldUnit<[u8; 24usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); - __bindgen_bitfield_unit - } -} -#[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 mono_delivery_time: 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, -} -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; -} -#[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, - 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(Debug, Copy, Clone)] -pub struct rcuref_t { - pub refcnt: atomic_t, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct dst_entry { - pub dev: *mut net_device, - 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 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)] -pub struct neighbour { - pub next: *mut neighbour, - 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, -} -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 type u_int8_t = u8_; -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(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 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_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(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 dcbnl_buffer { - pub prio2buffer: [__u8; 8usize], - pub buffer_size: [__u32; 8usize], - pub total_size: __u32, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cee_pg { - pub willing: __u8, - pub error: __u8, - pub pg_en: __u8, - pub tcs_supported: __u8, - pub pg_bw: [__u8; 8usize], - pub prio_pg: [__u8; 8usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cee_pfc { - pub willing: __u8, - pub error: __u8, - pub pfc_en: __u8, - pub tcs_supported: __u8, -} -#[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_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)] -pub struct netprio_map { - pub rcu: callback_head, - pub priomap_len: u32_, - pub priomap: __IncompleteArrayField, -} -#[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 nlattr { - pub nla_len: __u16, - pub nla_type: __u16, -} -#[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_; 20usize], - pub cookie_len: u8_, - pub _msg_buf: [::aya_ebpf::cty::c_char; 80usize], -} -#[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(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 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 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 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_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(Debug, Copy, Clone)] -pub struct ifla_vf_guid { - pub vf: __u32, - pub guid: __u64, -} -#[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 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, -} -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; -#[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 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(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 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: ::aya_ebpf::cty::c_int, - pub gro_bitmask: ::aya_ebpf::cty::c_ulong, - 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 gro_hash: [gro_list; 8usize], - pub skb: *mut sk_buff, - pub rx_list: list_head, - pub rx_count: ::aya_ebpf::cty::c_int, - pub napi_id: ::aya_ebpf::cty::c_uint, - pub timer: hrtimer, - pub thread: *mut task_struct, - pub dev_list: list_head, - pub napi_hash_node: hlist_node, - pub irq: ::aya_ebpf::cty::c_int, -} -#[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 numa_node: ::aya_ebpf::cty::c_int, - 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 napi: *mut napi_struct, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 56usize]>, - 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 _bitfield_align_2: [u8; 0], - pub _bitfield_2: __BindgenBitfieldUnit<[u8; 40usize]>, - pub dql: dql, -} -#[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)] -#[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, 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_phys_item_id { - pub id: [::aya_ebpf::cty::c_uchar; 32usize], - pub id_len: ::aya_ebpf::cty::c_uchar, -} -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; -} -#[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, -} -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 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; -} -#[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 xfrmdev_ops { - pub xdo_dev_state_add: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut xfrm_state, - arg2: *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_curlft: - ::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(Debug)] -pub struct dev_ifalias { - pub rcuhead: callback_head, - pub ifalias: __IncompleteArrayField<::aya_ebpf::cty::c_char>, -} -#[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, - arg2: *mut netpoll_info, - ) -> ::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 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 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, - 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, - >, -} -#[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_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_dstats { - pub rx_packets: u64_, - pub rx_bytes: u64_, - pub rx_drops: u64_, - pub tx_packets: u64_, - pub tx_bytes: u64_, - pub tx_drops: u64_, - 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 - } -} -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; -} -#[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 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 type iw_handler = ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut net_device, - arg2: *mut iw_request_info, - arg3: *mut iwreq_data, - arg4: *mut ::aya_ebpf::cty::c_char, - ) -> ::aya_ebpf::cty::c_int, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct iw_handler_def { - pub standard: *const iw_handler, - pub num_standard: __u16, - pub num_private: __u16, - pub num_private_args: __u16, - pub private: *const iw_handler, - pub private_args: *const iw_priv_args, - pub get_wireless_stats: - ::core::option::Option *mut iw_statistics>, -} -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; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct ethtool_ops { - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub supported_coalesce_params: u32_, - pub supported_ring_params: 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_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_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 ethtool_ts_info, - ) -> ::aya_ebpf::cty::c_int, - >, - 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_eee, - ) -> ::aya_ebpf::cty::c_int, - >, - pub set_eee: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut net_device, - arg2: *mut ethtool_eee, - ) -> ::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), - >, - 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 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 cap_link_lanes_supported(&self) -> u32_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 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(0usize, 1u8, val as u64) - } - } - #[inline] - pub fn cap_rss_ctx_supported(&self) -> u32_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } - } - #[inline] - pub fn set_cap_rss_ctx_supported(&mut self, val: u32_) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - #[inline] - pub fn cap_rss_sym_xor_supported(&self) -> u32_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } - } - #[inline] - pub fn set_cap_rss_sym_xor_supported(&mut self, val: u32_) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - cap_link_lanes_supported: u32_, - cap_rss_ctx_supported: u32_, - cap_rss_sym_xor_supported: u32_, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 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(1usize, 1u8, { - let cap_rss_ctx_supported: u32 = - unsafe { ::core::mem::transmute(cap_rss_ctx_supported) }; - cap_rss_ctx_supported as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let cap_rss_sym_xor_supported: u32 = - unsafe { ::core::mem::transmute(cap_rss_sym_xor_supported) }; - cap_rss_sym_xor_supported as u64 - }); - __bindgen_bitfield_unit - } -} -#[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 ndisc_ops { - pub is_useropt: - ::core::option::Option ::aya_ebpf::cty::c_int>, - 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_, - ), - >, -} -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; -} -#[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 rtnl_link_ops { - pub list: list_head, - 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 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, - arg2: *mut net_device, - arg3: *mut *mut nlattr, - arg4: *mut *mut nlattr, - arg5: *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 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, -} -#[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], -} -pub type __be64 = __u64; -pub type u_int16_t = u16_; -pub type u_int32_t = u32_; -#[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 sock, - arg2: *mut sk_buff, - arg3: *mut iov_iter, - arg4: 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 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 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 ubuf_info { - pub callback: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut sk_buff, arg2: *mut ubuf_info, arg3: bool_), - >, - pub refcnt: refcount_t, - pub flags: u8_, -} -pub type __addrpair = __u64; -pub type __portpair = __u32; -#[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 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 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 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 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(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 sock_cgroup_data { - pub cgroup: *mut cgroup, - pub classid: u32_, - pub prioidx: u16_, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct netns_tracker {} -#[repr(C)] -pub struct sock { - pub __sk_common: sock_common, - 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_lock: socket_lock_t, - pub sk_drops: atomic_t, - pub sk_rcvlowat: ::aya_ebpf::cty::c_int, - pub sk_error_queue: sk_buff_head, - pub sk_receive_queue: sk_buff_head, - pub sk_backlog: sock__bindgen_ty_1, - pub sk_forward_alloc: ::aya_ebpf::cty::c_int, - pub sk_reserved_mem: u32_, - pub sk_ll_usec: ::aya_ebpf::cty::c_uint, - pub sk_napi_id: ::aya_ebpf::cty::c_uint, - pub sk_rcvbuf: ::aya_ebpf::cty::c_int, - pub sk_disconnects: ::aya_ebpf::cty::c_int, - pub sk_filter: *mut sk_filter, - pub __bindgen_anon_1: sock__bindgen_ty_2, - pub sk_policy: [*mut xfrm_policy; 2usize], - pub sk_dst_cache: *mut dst_entry, - pub sk_omem_alloc: atomic_t, - pub sk_sndbuf: ::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_peek_off: __s32, - pub sk_write_pending: ::aya_ebpf::cty::c_int, - pub sk_dst_pending_confirm: __u32, - pub sk_pacing_status: u32_, - pub sk_sndtimeo: ::aya_ebpf::cty::c_long, - pub sk_timer: timer_list, - pub sk_priority: __u32, - pub sk_mark: __u32, - pub sk_pacing_rate: ::aya_ebpf::cty::c_ulong, - pub sk_max_pacing_rate: ::aya_ebpf::cty::c_ulong, - pub sk_frag: page_frag, - pub sk_route_caps: netdev_features_t, - pub sk_gso_type: ::aya_ebpf::cty::c_int, - pub sk_gso_max_size: ::aya_ebpf::cty::c_uint, - pub sk_allocation: gfp_t, - pub sk_txhash: __u32, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub sk_pacing_shift: u8_, - pub sk_type: u16_, - pub sk_protocol: u16_, - pub sk_gso_max_segs: u16_, - pub sk_lingertime: ::aya_ebpf::cty::c_ulong, - pub sk_prot_creator: *mut proto, - pub sk_callback_lock: rwlock_t, - pub sk_err: ::aya_ebpf::cty::c_int, - pub sk_err_soft: ::aya_ebpf::cty::c_int, - pub sk_ack_backlog: u32_, - pub sk_max_ack_backlog: u32_, - pub sk_uid: kuid_t, - pub sk_txrehash: u8_, - pub sk_prefer_busy_poll: u8_, - pub sk_busy_poll_budget: u16_, - 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_rcvtimeo: ::aya_ebpf::cty::c_long, - pub sk_stamp: ktime_t, - pub sk_tskey: atomic_t, - pub sk_zckey: atomic_t, - pub sk_tsflags: u32_, - pub sk_shutdown: u8_, - pub sk_clockid: u8_, - pub _bitfield_align_2: [u8; 0], - pub _bitfield_2: __BindgenBitfieldUnit<[u8; 1usize]>, - pub sk_use_task_frag: bool_, - pub sk_socket: *mut socket, - 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_memcg: *mut mem_cgroup, - pub sk_state_change: ::core::option::Option, - pub sk_data_ready: ::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_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_destruct: ::core::option::Option, - pub sk_reuseport_cb: *mut sock_reuseport, - pub sk_bpf_storage: *mut bpf_local_storage, - pub sk_rcu: callback_head, - pub ns_tracker: netns_tracker, -} -#[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, -} -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 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 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 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 fn sk_userlocks(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } - } - #[inline] - pub fn set_sk_userlocks(&mut self, val: u8_) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, 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_, - sk_userlocks: 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.set(4usize, 4u8, { - let sk_userlocks: u8 = unsafe { ::core::mem::transmute(sk_userlocks) }; - sk_userlocks 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 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 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 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 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_tos: __u8, - 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(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 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 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; -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct socket_wq { - pub wait: wait_queue_head_t, - pub fasync_list: *mut fasync_struct, - pub flags: ::aya_ebpf::cty::c_ulong, - pub rcu: callback_head, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, -} -impl socket_wq { - #[inline] - pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct socket { - pub state: socket_state::Type, - pub type_: ::aya_ebpf::cty::c_short, - pub flags: ::aya_ebpf::cty::c_ulong, - pub file: *mut file, - pub sk: *mut sock, - pub ops: *const proto_ops, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, - pub wq: socket_wq, -} -impl socket { - #[inline] - pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 24usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct 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, -} -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, ->; -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: ::aya_ebpf::cty::c_int, - arg4: bool_, - ) -> ::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 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 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 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 splice_read: ::core::option::Option< + 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 socket, - arg2: *mut loff_t, - arg3: *mut pipe_inode_info, + arg1: *mut trace_iterator, + arg2: *mut file, + arg3: *mut ::aya_ebpf::cty::c_char, arg4: usize, - arg5: ::aya_ebpf::cty::c_uint, + arg5: *mut loff_t, ) -> 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< + pub splice_read: ::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, + 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 read_skb: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut sock, arg2: skb_read_actor_t) -> ::aya_ebpf::cty::c_int, + 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 sendmsg_locked: ::core::option::Option< + pub set_flag: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut sock, - arg2: *mut msghdr, - arg3: usize, + arg1: *mut trace_array, + arg2: u32_, + arg3: u32_, + arg4: ::aya_ebpf::cty::c_int, ) -> ::aya_ebpf::cty::c_int, >, - pub set_rcvlowat: ::core::option::Option< + pub flag_changed: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut sock, - arg2: ::aya_ebpf::cty::c_int, + 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_, } +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 prot_inuse { - pub all: ::aya_ebpf::cty::c_int, - pub val: [::aya_ebpf::cty::c_int; 64usize], +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, +} +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; } #[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, +#[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, >, - pub delete: - ::core::option::Option ::aya_ebpf::cty::c_int>, - pub compare: ::core::option::Option< +} +#[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 is_signed: ::aya_ebpf::cty::c_int, + pub filter_type: ::aya_ebpf::cty::c_int, + pub len: ::aya_ebpf::cty::c_int, +} +#[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 fib_rule, - arg2: *mut fib_rule_hdr, - arg3: *mut *mut nlattr, + arg1: *mut trace_event_call, + arg2: trace_reg::Type, + arg3: *mut ::aya_ebpf::cty::c_void, ) -> ::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 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, >, - 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, Copy, Clone)] -pub struct fib_notifier_ops { - pub family: ::aya_ebpf::cty::c_int, +pub struct trace_event_file { 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, + 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_: atomic_t, + pub sm_ref: atomic_t, + pub tm_ref: atomic_t, +} +#[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 ipv6_stable_secret { - pub initialized: bool_, - pub secret: in6_addr, +pub union lower_chunk { + pub next: *mut lower_chunk, + pub data: [::aya_ebpf::cty::c_ulong; 256usize], } #[repr(C)] #[derive(Copy, Clone)] -pub struct ipv6_devconf { - pub forwarding: __s32, - pub hop_limit: __s32, - pub mtu6: __s32, - 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_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 proxy_ndp: __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 disable_ipv6: __s32, - 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 disable_policy: __s32, - 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 sysctl_header: *mut ctl_table_header, +pub union upper_chunk { + pub next: *mut upper_chunk, + pub data: [*mut lower_chunk; 256usize], } -pub type nf_hookfn = ::core::option::Option< +#[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_array_cpu { + pub disabled: atomic_t, + pub buffer_page: *mut ::aya_ebpf::cty::c_void, + 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(Debug, Copy, Clone)] +pub struct trace_options { + pub tracer: *mut tracer, + pub topts: *mut trace_option_dentry, +} +#[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, +} +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 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, Copy, Clone)] +pub struct tracer_opt { + pub name: *const ::aya_ebpf::cty::c_char, + pub bit: u32_, +} +#[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 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, +} +pub type slab_flags_t = ::aya_ebpf::cty::c_uint; +pub type wait_queue_func_t = ::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, + 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 nf_hook_entry { - pub hook: nf_hookfn, - pub priv_: *mut ::aya_ebpf::cty::c_void, +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 wait_queue_entry_t = wait_queue_entry; #[repr(C)] -#[derive(Debug)] -pub struct nf_hook_entries { - pub num_hook_entries: u16_, - pub hooks: __IncompleteArrayField, +#[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 neigh_parms { - pub net: possible_net_t, - pub dev: *mut net_device, - pub dev_tracker: netdevice_tracker, +pub struct capture_control { + pub cc: *mut compact_control, + pub page: *mut page, +} +#[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 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 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 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 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; 32usize], +} +#[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 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 _workingset: bool_, + pub _pflags: ::aya_ebpf::cty::c_ulong, +} +#[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_, +} +pub type __kernel_rwf_t = ::aya_ebpf::cty::c_int; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ida { + pub xa: xarray, +} +#[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 blk_plug { + pub mq_list: *mut request, + pub cached_rq: *mut request, + 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, +} +pub type blk_mode_t = ::aya_ebpf::cty::c_uint; +#[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 sync_io: atomic_t, + pub ev: *mut disk_events, + pub nr_zones: ::aya_ebpf::cty::c_uint, + pub conv_zones_bitmap: *mut ::aya_ebpf::cty::c_ulong, + pub seq_zones_wlock: *mut ::aya_ebpf::cty::c_ulong, + 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 mod blk_bounce { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const BLK_BOUNCE_NONE: Type = 0; + pub const BLK_BOUNCE_HIGH: Type = 1; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct queue_limits { + pub bounce: blk_bounce::Type, + 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 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_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 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 misaligned: ::aya_ebpf::cty::c_uchar, + pub discard_misaligned: ::aya_ebpf::cty::c_uchar, + pub raid_partial_stripes_expensive: ::aya_ebpf::cty::c_uchar, + pub zoned: bool_, + 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, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct blk_integrity { + pub profile: *const blk_integrity_profile, + pub flags: ::aya_ebpf::cty::c_uchar, + pub tuple_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, +} +#[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 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 integrity: blk_integrity, + 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 dma_pad_mask: ::aya_ebpf::cty::c_uint, + 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 required_elevator_features: ::aya_ebpf::cty::c_uint, + 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 sysfs_lock: mutex, + pub sysfs_dir_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 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], -} -pub mod hwtstamp_source { - pub type Type = ::aya_ebpf::cty::c_uint; - pub const HWTSTAMP_SOURCE_NETDEV: Type = 0; - pub const HWTSTAMP_SOURCE_PHYLIB: Type = 1; + 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, + pub mq_sysfs_init_done: bool_, } #[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 struct io_comp_batch { + pub req_list: *mut request, + pub need_ts: bool_, + pub complete: ::core::option::Option, } #[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 struct partition_meta_info { + pub uuid: [::aya_ebpf::cty::c_char; 37usize], + pub volname: [u8_; 64usize], } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct netlink_range_validation { - pub min: u64_, - pub max: u64_, +pub struct blkg_iostat { + pub bytes: [u64_; 3usize], + pub ios: [u64_; 3usize], } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct netlink_range_validation_signed { - pub min: s64, - pub max: s64, +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 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_buckets: *mut *mut pneigh_entry, +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(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, +#[derive(Copy, Clone)] +pub union blkcg_gq__bindgen_ty_1 { + pub async_bio_work: work_struct, + pub free_work: work_struct, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct 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)] -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 flags: u32_, - pub protocol: u8_, - pub key: __IncompleteArrayField, +pub struct bio_crypt_ctx { + pub bc_key: *const blk_crypto_key, + pub bc_dun: [u64_; 4usize], } +pub type blk_mq_req_flags_t = __u32; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct neigh_hash_table { - pub hash_buckets: *mut *mut neighbour, - pub hash_shift: ::aya_ebpf::cty::c_uint, - pub hash_rnd: [__u32; 4usize], - pub rcu: callback_head, +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 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, +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 _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 56usize]>, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct fib_rule_port_range { - pub start: __u16, - pub end: __u16, +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, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct fib_kuid_range { - pub start: kuid_t, - pub end: kuid_t, +#[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 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 rcu: callback_head, +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, } +pub type integrity_processing_fn = + ::core::option::Option blk_status_t>; +pub type integrity_prepare_fn = ::core::option::Option; +pub type integrity_complete_fn = + ::core::option::Option; #[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, +pub struct blk_integrity_profile { + pub generate_fn: integrity_processing_fn, + pub verify_fn: integrity_processing_fn, + pub prepare_fn: integrity_prepare_fn, + pub complete_fn: integrity_complete_fn, + pub name: *const ::aya_ebpf::cty::c_char, } -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct smc_hashinfo { - _unused: [u8; 0], +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, +>; +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; } #[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< +#[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 sock, - arg2: *mut sockaddr, - arg3: ::aya_ebpf::cty::c_int, + arg1: *mut bio, + arg2: *mut io_comp_batch, + arg3: ::aya_ebpf::cty::c_uint, ) -> ::aya_ebpf::cty::c_int, >, - pub connect: ::core::option::Option< + 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 sock, - arg2: *mut sockaddr, - arg3: ::aya_ebpf::cty::c_int, + 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 disconnect: ::core::option::Option< + pub compat_ioctl: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut sock, - arg2: ::aya_ebpf::cty::c_int, + 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 accept: ::core::option::Option< + pub check_events: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut sock, - arg2: ::aya_ebpf::cty::c_int, - arg3: *mut ::aya_ebpf::cty::c_int, - arg4: bool_, - ) -> *mut sock, + arg1: *mut gendisk, + arg2: ::aya_ebpf::cty::c_uint, + ) -> ::aya_ebpf::cty::c_uint, >, - pub ioctl: ::core::option::Option< + pub unlock_native_capacity: ::core::option::Option, + pub getgeo: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut sock, - arg2: ::aya_ebpf::cty::c_int, - arg3: *mut ::aya_ebpf::cty::c_int, + arg1: *mut block_device, + arg2: *mut hd_geometry, ) -> ::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 set_read_only: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut block_device, arg2: bool_) -> ::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 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 keepalive: - ::core::option::Option, - pub compat_ioctl: ::core::option::Option< + pub report_zones: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut sock, - arg2: ::aya_ebpf::cty::c_uint, - arg3: ::aya_ebpf::cty::c_ulong, + 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 sendmsg: ::core::option::Option< + pub devnode: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut sock, - arg2: *mut msghdr, - arg3: usize, - ) -> ::aya_ebpf::cty::c_int, + arg1: *mut gendisk, + arg2: *mut umode_t, + ) -> *mut ::aya_ebpf::cty::c_char, >, - pub recvmsg: ::core::option::Option< + pub get_unique_id: ::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, + arg1: *mut gendisk, + arg2: *mut u8_, + arg3: blk_unique_id::Type, ) -> ::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 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, >, - pub bind_add: ::core::option::Option< +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct blk_independent_access_range { + pub kobj: kobject, + pub sector: sector_t, + pub nr_sectors: sector_t, +} +#[repr(C)] +#[derive(Debug)] +pub struct blk_independent_access_ranges { + pub kobj: kobject, + pub sysfs_registered: bool_, + pub nr_ia_ranges: ::aya_ebpf::cty::c_uint, + pub ia_range: __IncompleteArrayField, +} +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; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct blk_mq_ops { + pub queue_rq: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut sock, - arg2: *mut sockaddr, - arg3: ::aya_ebpf::cty::c_int, - ) -> ::aya_ebpf::cty::c_int, + arg1: *mut blk_mq_hw_ctx, + arg2: *const blk_mq_queue_data, + ) -> blk_status_t, >, - pub backlog_rcv: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut sock, arg2: *mut sk_buff) -> ::aya_ebpf::cty::c_int, + 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 bpf_bypass_getsockopt: ::core::option::Option< - unsafe extern "C" fn(arg1: ::aya_ebpf::cty::c_int, arg2: ::aya_ebpf::cty::c_int) -> bool_, + pub put_budget: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut request_queue, arg2: ::aya_ebpf::cty::c_int), >, - 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< + 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 sock, - arg2: ::aya_ebpf::cty::c_ushort, + arg1: *mut blk_mq_hw_ctx, + arg2: *mut io_comp_batch, ) -> ::aya_ebpf::cty::c_int, >, - pub put_port: ::core::option::Option, - pub psock_update_sk_prot: ::core::option::Option< + pub complete: ::core::option::Option, + pub init_hctx: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut sock, - arg2: *mut sk_psock, - arg3: bool_, + 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 inuse_idx: ::aya_ebpf::cty::c_uint, - pub forward_alloc_get: - ::core::option::Option ::aya_ebpf::cty::c_int>, - pub stream_memory_free: ::core::option::Option< - unsafe extern "C" fn(arg1: *const sock, arg2: ::aya_ebpf::cty::c_int) -> bool_, + pub exit_hctx: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut blk_mq_hw_ctx, arg2: ::aya_ebpf::cty::c_uint), >, - 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 orphan_count: *mut ::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< + pub init_request: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut sock, - arg2: ::aya_ebpf::cty::c_int, + 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, +} +pub type req_flags_t = __u32; +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 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 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 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, +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 write_hint: rw_hint::Type, + pub ioprio: ::aya_ebpf::cty::c_ushort, + 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_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 rtx_syn_ack: ::core::option::Option< - unsafe extern "C" fn(arg1: *const sock, arg2: *mut request_sock) -> ::aya_ebpf::cty::c_int, - >, - 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, - pub destructor: ::core::option::Option, - pub syn_ack_timeout: ::core::option::Option, +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 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, - pub twsk_unique: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut sock, - arg2: *mut sock, - arg3: *mut ::aya_ebpf::cty::c_void, - ) -> ::aya_ebpf::cty::c_int, - >, - pub twsk_destructor: ::core::option::Option, +pub struct request__bindgen_ty_5 { + pub seq: ::aya_ebpf::cty::c_uint, + pub saved_end_io: rq_end_io_fn, } #[repr(C)] -pub struct request_sock { - pub __req_common: sock_common, - pub dl_next: *mut request_sock, - pub mss: u16_, - pub num_retrans: u8_, +#[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, +} +#[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 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_, + 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, } -impl request_sock { +impl blk_flush_queue { #[inline] - pub fn syncookie(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + 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_syncookie(&mut self, val: u8_) { + pub fn set_flush_pending_idx(&mut self, val: ::aya_ebpf::cty::c_uint) { unsafe { - let val: u8 = ::core::mem::transmute(val); + let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(0usize, 1u8, val as u64) } } #[inline] - pub fn num_timeout(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 7u8) as u8) } + 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_num_timeout(&mut self, val: u8_) { + pub fn set_flush_running_idx(&mut self, val: ::aya_ebpf::cty::c_uint) { unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 7u8, val as u64) + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) } } #[inline] - pub fn new_bitfield_1(syncookie: u8_, num_timeout: u8_) -> __BindgenBitfieldUnit<[u8; 1usize]> { + 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 syncookie: u8 = unsafe { ::core::mem::transmute(syncookie) }; - syncookie as u64 + let flush_pending_idx: u32 = unsafe { ::core::mem::transmute(flush_pending_idx) }; + flush_pending_idx 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.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)] -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 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, +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, } -pub type __sum16 = __u16; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct bpf_run_ctx {} #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct icmpv6_mib_device { - pub mibs: [atomic_long_t; 7usize], +#[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, } -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct icmpv6msg_mib_device { - pub mibs: [atomic_long_t; 512usize], +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; } #[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], +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 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, +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, } #[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)] -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>, +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]>, } -#[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, +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 + } } #[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(Copy, Clone)] -pub struct bpf_prog_array_item { - pub prog: *mut bpf_prog, - pub __bindgen_anon_1: bpf_prog_array_item__bindgen_ty_1, +pub struct blk_mq_queue_data { + pub rq: *mut request, + pub last: bool_, } -#[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_, +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; } #[repr(C)] -pub struct bpf_prog_array { - pub rcu: callback_head, - pub items: __IncompleteArrayField, -} -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; +#[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 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 __MAX_BPF_ATTACH_TYPE: Type = 56; +#[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 raw: [u8_; 64usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct blkcg { + pub css: cgroup_subsys_state, + pub lock: spinlock_t, + pub online_pin: refcount_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 sock_filter { - pub code: __u16, - pub jt: __u8, - pub jf: __u8, - pub k: __u32, +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 bpf_insn { - pub code: __u8, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub off: __s16, - pub imm: __s32, +pub struct blkcg_policy_data { + pub blkcg: *mut blkcg, + pub plid: ::aya_ebpf::cty::c_int, } -impl bpf_insn { +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct blk_integrity_iter { + pub prot_buf: *mut ::aya_ebpf::cty::c_void, + pub data_buf: *mut ::aya_ebpf::cty::c_void, + pub seed: sector_t, + pub data_size: ::aya_ebpf::cty::c_uint, + pub interval: ::aya_ebpf::cty::c_ushort, + pub tuple_size: ::aya_ebpf::cty::c_uchar, + pub pi_offset: ::aya_ebpf::cty::c_uchar, + pub disk_name: *const ::aya_ebpf::cty::c_char, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct reclaim_state { + pub reclaimed: ::aya_ebpf::cty::c_ulong, + pub mm_walk: *mut lru_gen_mm_walk, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct swap_cluster_info { + pub lock: spinlock_t, + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +impl swap_cluster_info { #[inline] - pub fn dst_reg(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } + pub fn data(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 24u8) as u32) } } #[inline] - pub fn set_dst_reg(&mut self, val: __u8) { + pub fn set_data(&mut self, val: ::aya_ebpf::cty::c_uint) { unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 4u8, val as u64) + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 24u8, val as u64) } } #[inline] - pub fn src_reg(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } + 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_src_reg(&mut self, val: __u8) { + pub fn set_flags(&mut self, val: ::aya_ebpf::cty::c_uint) { unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, val as u64) + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(24usize, 8u8, 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 + pub fn new_bitfield_1( + data: ::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, 24u8, { + let data: u32 = unsafe { ::core::mem::transmute(data) }; + data 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.set(24usize, 8u8, { + let flags: u32 = unsafe { ::core::mem::transmute(flags) }; + flags as u64 }); __bindgen_bitfield_unit } } #[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 tag: [u8_; 8usize], - 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_1: bpf_prog__bindgen_ty_1, +#[derive(Copy, Clone)] +pub struct swap_cluster_list { + pub head: swap_cluster_info, + pub tail: swap_cluster_info, } #[repr(C)] -pub struct bpf_prog__bindgen_ty_1 { - pub __bindgen_anon_1: __BindgenUnionField, - pub __bindgen_anon_2: __BindgenUnionField, - pub bindgen_union_field: [u32; 0usize], +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 cluster_info: *mut swap_cluster_info, + pub free_clusters: swap_cluster_list, + pub lowest_bit: ::aya_ebpf::cty::c_uint, + pub highest_bit: ::aya_ebpf::cty::c_uint, + pub pages: ::aya_ebpf::cty::c_uint, + pub inuse_pages: ::aya_ebpf::cty::c_uint, + pub cluster_next: ::aya_ebpf::cty::c_uint, + pub cluster_nr: ::aya_ebpf::cty::c_uint, + pub cluster_next_cpu: *mut ::aya_ebpf::cty::c_uint, + pub percpu_cluster: *mut percpu_cluster, + pub swap_extent_root: rb_root, + pub bdev_file: *mut file, + pub bdev: *mut block_device, + pub swap_file: *mut file, + pub old_block_size: ::aya_ebpf::cty::c_uint, + pub comp: completion, + pub lock: spinlock_t, + pub cont_lock: spinlock_t, + pub discard_work: work_struct, + pub discard_clusters: swap_cluster_list, + pub avail_lists: __IncompleteArrayField, } #[repr(C)] -#[derive(Debug)] -pub struct bpf_prog__bindgen_ty_1__bindgen_ty_1 { - pub __empty_insns: bpf_prog__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, - pub insns: __IncompleteArrayField, +#[derive(Copy, Clone)] +pub struct percpu_cluster { + pub index: swap_cluster_info, + pub next: ::aya_ebpf::cty::c_uint, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct bpf_prog__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {} +pub struct scatterlist { + pub page_link: ::aya_ebpf::cty::c_ulong, + pub offset: ::aya_ebpf::cty::c_uint, + pub length: ::aya_ebpf::cty::c_uint, + pub dma_address: dma_addr_t, + pub dma_length: ::aya_ebpf::cty::c_uint, + pub dma_flags: ::aya_ebpf::cty::c_uint, +} #[repr(C)] -#[derive(Debug)] -pub struct bpf_prog__bindgen_ty_1__bindgen_ty_2 { - pub __empty_insnsi: bpf_prog__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1, - pub insnsi: __IncompleteArrayField, +#[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(Debug, Copy, Clone)] -pub struct bpf_prog__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {} -impl bpf_prog { +pub struct iommu_mm_data { + pub pasid: u32_, + pub sva_domains: list_head, + pub sva_handles: list_head, +} +#[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(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 jited(&self) -> u16_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) } + pub fn attach_deferred(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } } #[inline] - pub fn set_jited(&mut self, val: u16_) { + pub fn set_attach_deferred(&mut self, val: u32_) { unsafe { - let val: u16 = ::core::mem::transmute(val); + let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(0usize, 1u8, val as u64) } } #[inline] - pub fn jit_requested(&self) -> u16_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) } + pub fn pci_32bit_workaround(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } } #[inline] - pub fn set_jit_requested(&mut self, val: u16_) { + pub fn set_pci_32bit_workaround(&mut self, val: u32_) { unsafe { - let val: u16 = ::core::mem::transmute(val); + let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(1usize, 1u8, val as u64) } } #[inline] - pub fn gpl_compatible(&self) -> u16_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) } + pub fn require_direct(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } } #[inline] - pub fn set_gpl_compatible(&mut self, val: u16_) { + pub fn set_require_direct(&mut self, val: u32_) { unsafe { - let val: u16 = ::core::mem::transmute(val); + let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(2usize, 1u8, val as u64) } } #[inline] - pub fn cb_access(&self) -> u16_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u16) } + pub fn shadow_on_flush(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } } #[inline] - pub fn set_cb_access(&mut self, val: u16_) { + pub fn set_shadow_on_flush(&mut self, val: u32_) { unsafe { - let val: u16 = ::core::mem::transmute(val); + let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(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 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 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 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 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 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 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 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 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 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 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_, - ) -> __BindgenBitfieldUnit<[u8; 2usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); + 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 jited: u16 = unsafe { ::core::mem::transmute(jited) }; - jited as u64 + let attach_deferred: u32 = unsafe { ::core::mem::transmute(attach_deferred) }; + attach_deferred 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 + let pci_32bit_workaround: u32 = unsafe { ::core::mem::transmute(pci_32bit_workaround) }; + pci_32bit_workaround 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(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 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, +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 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, +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(Copy, Clone)] -pub struct qdisc_skb_head { - pub head: *mut sk_buff, - pub tail: *mut sk_buff, - pub qlen: __u32, - pub lock: spinlock_t, +#[derive(Debug, Copy, Clone)] +pub struct iommu_fault { + pub type_: u32_, + pub prm: iommu_fault_page_request, } #[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, +pub struct iommu_page_response { + pub pasid: u32_, + pub grpid: u32_, + pub code: u32_, } #[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, +pub struct iopf_fault { + pub fault: iommu_fault, + pub list: list_head, } #[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 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 _bitfield_align_3: [u8; 0], - pub _bitfield_3: __BindgenBitfieldUnit<[u8; 40usize]>, - pub privdata: __IncompleteArrayField<::aya_ebpf::cty::c_long>, +#[derive(Debug, Copy, Clone)] +pub struct iopf_group { + pub last_fault: iopf_fault, + pub faults: list_head, + pub pending_node: list_head, + pub work: work_struct, + pub domain: *mut iommu_domain, + pub fault_param: *mut iommu_fault_param, } -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 iommu_domain_geometry { + pub aperture_start: dma_addr_t, + pub aperture_end: dma_addr_t, + pub force_aperture: bool_, } -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 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 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 iova_cookie: *mut iommu_dma_cookie, + pub iopf_handler: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut iopf_group) -> ::aya_ebpf::cty::c_int, + >, + pub fault_data: *mut ::aya_ebpf::cty::c_void, + pub __bindgen_anon_1: iommu_domain__bindgen_ty_1, } #[repr(C)] #[derive(Copy, Clone)] -pub struct bpf_map { - 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 _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>, - pub refcnt: atomic64_t, - pub usercnt: atomic64_t, - pub __bindgen_anon_1: bpf_map__bindgen_ty_1, - pub freeze_mutex: mutex, - pub writecnt: atomic64_t, - pub owner: bpf_map__bindgen_ty_2, - 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 _bitfield_align_2: [u8; 0], - pub _bitfield_2: __BindgenBitfieldUnit<[u8; 8usize]>, +pub union iommu_domain__bindgen_ty_1 { + 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(Copy, Clone)] -pub union bpf_map__bindgen_ty_1 { - pub work: work_struct, +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(Copy, Clone)] -pub struct bpf_map__bindgen_ty_2 { - pub lock: spinlock_t, - pub type_: bpf_prog_type::Type, - pub jited: bool_, - pub xdp_has_frags: bool_, +pub struct iopf_queue { + pub wq: *mut workqueue_struct, + pub devices: list_head, + pub lock: mutex, } -impl bpf_map { - #[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; 8usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); - __bindgen_bitfield_unit - } +pub type ioasid_t = ::aya_ebpf::cty::c_uint; +#[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, + ) -> ::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 enable_nesting: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut iommu_domain) -> ::aya_ebpf::cty::c_int, + >, + 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(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, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, +#[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, + >, } -impl bpf_offloaded_map { - #[inline] - pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 24usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); - __bindgen_bitfield_unit - } +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_dev_features { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IOMMU_DEV_FEAT_SVA: Type = 0; + pub const IOMMU_DEV_FEAT_IOPF: Type = 1; } #[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, +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 u32_, + ) -> *mut ::aya_ebpf::cty::c_void, + >, + pub domain_alloc: ::core::option::Option< + unsafe extern "C" fn(arg1: ::aya_ebpf::cty::c_uint) -> *mut iommu_domain, + >, + pub domain_alloc_user: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut device, + arg2: u32_, + arg3: *mut iommu_domain, + arg4: *const iommu_user_data, + ) -> *mut iommu_domain, + >, + pub domain_alloc_paging: + ::core::option::Option *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 dev_enable_feat: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut device, + arg2: iommu_dev_features::Type, + ) -> ::aya_ebpf::cty::c_int, + >, + pub dev_disable_feat: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut device, + arg2: iommu_dev_features::Type, + ) -> ::aya_ebpf::cty::c_int, + >, + 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 remove_dev_pasid: + ::core::option::Option, + pub default_domain_ops: *const iommu_domain_ops, + pub pgsize_bitmap: ::aya_ebpf::cty::c_ulong, + 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 mod iommu_dma_cookie_type { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const IOMMU_DMA_IOVA_COOKIE: Type = 0; + pub const IOMMU_DMA_MSI_COOKIE: Type = 1; +} +#[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 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, +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, +} +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; +} +#[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 type_: iommu_dma_cookie_type::Type, + pub __bindgen_anon_1: iommu_dma_cookie__bindgen_ty_1, + pub msi_page_list: list_head, + pub fq_domain: *mut iommu_domain, + pub options: iommu_dma_options, + pub mutex: mutex, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union iommu_dma_cookie__bindgen_ty_1 { + pub __bindgen_anon_1: iommu_dma_cookie__bindgen_ty_1__bindgen_ty_1, + pub msi_iova: dma_addr_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct iommu_dma_cookie__bindgen_ty_1__bindgen_ty_1 { + pub iovad: iova_domain, + pub __bindgen_anon_1: iommu_dma_cookie__bindgen_ty_1__bindgen_ty_1__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, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union iommu_dma_cookie__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { + pub single_fq: *mut iova_fq, + pub percpu_fq: *mut iova_fq, } #[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, +pub struct iommu_iotlb_gather { + pub start: ::aya_ebpf::cty::c_ulong, + pub end: ::aya_ebpf::cty::c_ulong, + pub pgsize: usize, + pub freelist: list_head, + pub queued: bool_, } #[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>, +#[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 sk_filter { - pub refcnt: refcount_t, - pub rcu: callback_head, - pub prog: *mut bpf_prog, +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)] -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>, +#[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_, } -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 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 fn new_bitfield_1( - bind_inany: ::aya_ebpf::cty::c_uint, - has_conns: ::aya_ebpf::cty::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let bind_inany: u32 = unsafe { ::core::mem::transmute(bind_inany) }; - bind_inany as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let has_conns: u32 = unsafe { ::core::mem::transmute(has_conns) }; - has_conns as u64 - }); - __bindgen_bitfield_unit - } +#[repr(C)] +#[derive(Debug, 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_, } #[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, +#[derive(Debug)] +pub struct iommu_fwspec { + pub ops: *const iommu_ops, + 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 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, +#[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: list_head, + pub counter: u64_, } #[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, +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(Debug, Copy, Clone)] -pub struct nd_opt_hdr { - pub nd_opt_type: __u8, - pub nd_opt_len: __u8, +pub struct ww_acquire_ctx { + pub task: *mut task_struct, + pub stamp: ::aya_ebpf::cty::c_ulong, + pub acquired: ::aya_ebpf::cty::c_uint, + pub wounded: ::aya_ebpf::cty::c_ushort, + pub is_wait_die: ::aya_ebpf::cty::c_ushort, } +pub type kthread_work_func_t = + ::core::option::Option; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct 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], +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(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, +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(Copy, Clone)] -pub union prefix_info__bindgen_ty_1 { - pub flags: __u8, - pub __bindgen_anon_1: prefix_info__bindgen_ty_1__bindgen_ty_1, +#[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 prefix_info__bindgen_ty_1__bindgen_ty_1 { - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, +pub struct u64_stats_t { + pub v: local64_t, } -impl prefix_info__bindgen_ty_1__bindgen_ty_1 { - #[inline] - pub fn reserved(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 6u8) as u8) } - } - #[inline] - pub fn set_reserved(&mut self, val: __u8) { - unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 6u8, val as u64) - } - } +#[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 autoconf(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) } + pub fn type_len(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 5u8) as u32) } } #[inline] - pub fn set_autoconf(&mut self, val: __u8) { + pub fn set_type_len(&mut self, val: u32_) { unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 5u8, val as u64) } } #[inline] - pub fn onlink(&self) -> __u8 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) } + pub fn time_delta(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 27u8) as u32) } } #[inline] - pub fn set_onlink(&mut self, val: __u8) { + pub fn set_time_delta(&mut self, val: u32_) { unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(7usize, 1u8, val as u64) + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 27u8, val as u64) } } #[inline] - pub fn new_bitfield_1( - reserved: __u8, - autoconf: __u8, - onlink: __u8, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 6u8, { - let reserved: u8 = unsafe { ::core::mem::transmute(reserved) }; - reserved as u64 - }); - __bindgen_bitfield_unit.set(6usize, 1u8, { - let autoconf: u8 = unsafe { ::core::mem::transmute(autoconf) }; - autoconf as u64 + 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(7usize, 1u8, { - let onlink: u8 = unsafe { ::core::mem::transmute(onlink) }; - onlink 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 } } +pub type __be16 = __u16; +pub type __be32 = __u32; +pub type __be64 = __u64; +pub type __wsum = __u32; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct inet_ehash_bucket { - pub chain: hlist_nulls_head, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct inet_bind_hashbucket { - pub lock: spinlock_t, - pub chain: hlist_head, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct inet_listen_hashbucket { - pub lock: spinlock_t, - pub nulls_head: hlist_nulls_head, +pub struct rcuref_t { + pub refcnt: atomic_t, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct bpf_cgroup_storage_key { - pub cgroup_inode_id: __u64, - pub attach_type: __u32, -} -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; -} -#[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 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 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_thrs: ::aya_ebpf::cty::c_ushort, + pub stall_max: ::aya_ebpf::cty::c_ushort, + pub last_reap: ::aya_ebpf::cty::c_ulong, + pub stall_cnt: ::aya_ebpf::cty::c_ulong, } -#[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, +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 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, +pub struct in6_addr { + pub in6_u: in6_addr__bindgen_ty_1, } #[repr(C)] #[derive(Copy, Clone)] -pub union bpf_attr__bindgen_ty_2__bindgen_ty_1 { - pub value: __u64, - pub next_key: __u64, +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(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, -} -#[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, +pub struct flowi_tunnel { + pub tun_id: __be64, } #[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, +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_tos: __u8, + 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 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, +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(Copy, Clone)] -pub union bpf_attr__bindgen_ty_6__bindgen_ty_1 { - pub target_fd: __u32, - pub target_ifindex: __u32, +#[derive(Debug, Copy, Clone)] +pub struct flowi_uli__bindgen_ty_1 { + pub dport: __be16, + pub sport: __be16, } #[repr(C)] -#[derive(Copy, Clone)] -pub union bpf_attr__bindgen_ty_6__bindgen_ty_2 { - pub relative_fd: __u32, - pub relative_id: __u32, +#[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 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, +pub struct flowi_uli__bindgen_ty_3 { + pub type_: __u8, } #[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 struct flowi4 { + pub __fl_common: flowi_common, + pub saddr: __be32, + pub daddr: __be32, + pub uli: flowi_uli, } #[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, +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(Debug, Copy, Clone)] -pub struct bpf_attr__bindgen_ty_9 { - pub bpf_fd: __u32, - pub info_len: __u32, - pub info: __u64, +#[derive(Copy, Clone)] +pub struct flowi { + pub u: flowi__bindgen_ty_1, } #[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, +pub union flowi__bindgen_ty_1 { + pub __fl_common: flowi_common, + pub ip4: flowi4, + pub ip6: flowi6, } #[repr(C)] -#[derive(Copy, Clone)] -pub union bpf_attr__bindgen_ty_10__bindgen_ty_1 { - pub target_fd: __u32, - pub target_ifindex: __u32, +#[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 prot_inuse: *mut prot_inuse, + pub rps_default_mask: *mut cpumask, } #[repr(C)] -#[derive(Copy, Clone)] -pub union bpf_attr__bindgen_ty_10__bindgen_ty_2 { - pub prog_cnt: __u32, - pub count: __u32, +#[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 bpf_attr__bindgen_ty_11 { - pub name: __u64, - pub prog_fd: __u32, +pub struct ipstats_mib { + pub mibs: [u64_; 38usize], + pub syncp: u64_stats_sync, } #[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 struct icmp_mib { + pub mibs: [::aya_ebpf::cty::c_ulong; 30usize], } #[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, +pub struct icmpmsg_mib { + pub mibs: [atomic_long_t; 512usize], } #[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, +#[derive(Debug, Copy, Clone)] +pub struct icmpv6_mib { + pub mibs: [::aya_ebpf::cty::c_ulong; 7usize], } #[repr(C)] -#[derive(Copy, Clone)] -pub union bpf_attr__bindgen_ty_14__bindgen_ty_1 { - pub prog_fd: __u32, - pub map_fd: __u32, +#[derive(Debug, Copy, Clone)] +pub struct icmpv6msg_mib { + pub mibs: [atomic_long_t; 512usize], } #[repr(C)] -#[derive(Copy, Clone)] -pub union bpf_attr__bindgen_ty_14__bindgen_ty_2 { - pub target_fd: __u32, - pub target_ifindex: __u32, +#[derive(Debug, Copy, Clone)] +pub struct tcp_mib { + pub mibs: [::aya_ebpf::cty::c_ulong; 16usize], } #[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, +#[derive(Debug, Copy, Clone)] +pub struct udp_mib { + pub mibs: [::aya_ebpf::cty::c_ulong; 10usize], } #[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, +pub struct linux_mib { + pub mibs: [::aya_ebpf::cty::c_ulong; 132usize], } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_2 { - pub bpf_cookie: __u64, +pub struct linux_xfrm_mib { + pub mibs: [::aya_ebpf::cty::c_ulong; 29usize], } #[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, +pub struct linux_tls_mib { + pub mibs: [::aya_ebpf::cty::c_ulong; 13usize], } #[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, +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(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, +pub struct unix_table { + pub locks: *mut spinlock_t, + pub buckets: *mut hlist_head, } #[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, +#[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 union bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6__bindgen_ty_1 { - pub relative_fd: __u32, - pub relative_id: __u32, +pub struct netns_packet { + pub sklist_lock: mutex, + pub sklist: hlist_head, } #[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, +pub struct rhashtable_compare_arg { + pub ht: *mut rhashtable, + pub key: *const ::aya_ebpf::cty::c_void, } +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(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, +#[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 union bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8__bindgen_ty_1 { - pub relative_fd: __u32, - pub relative_id: __u32, +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 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, +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]>, } -#[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, +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(Copy, Clone)] -pub union bpf_attr__bindgen_ty_15__bindgen_ty_2 { - pub old_prog_fd: __u32, - pub old_map_fd: __u32, +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 bpf_attr__bindgen_ty_16 { - pub link_fd: __u32, -} +pub struct ref_tracker_dir {} #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct bpf_attr__bindgen_ty_17 { - pub type_: __u32, +pub struct raw_notifier_head { + pub head: *mut notifier_block, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct bpf_attr__bindgen_ty_18 { - pub link_fd: __u32, - pub flags: __u32, +#[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 bpf_attr__bindgen_ty_19 { - pub prog_fd: __u32, - pub map_fd: __u32, - pub flags: __u32, +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 bpf_func_info { - pub insn_off: __u32, - pub type_id: __u32, +pub struct local_ports { + pub range: u32_, + pub warned: bool_, +} +#[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 bpf_line_info { - pub insn_off: __u32, - pub file_name_off: __u32, - pub line_off: __u32, - pub line_col: __u32, +pub struct siphash_key_t { + pub key: [u64_; 2usize], +} +#[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_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 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 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 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_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_l3mdev_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_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_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 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_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 _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 32usize]>, } -#[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, +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(Copy, Clone)] -pub union btf_type__bindgen_ty_1 { - pub size: __u32, - pub type_: __u32, -} -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 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 *mut dst_entry>, + 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]>, } -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_, +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(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, +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 btf_field { - pub offset: u32_, - pub size: u32_, - pub type_: btf_field_type::Type, - pub __bindgen_anon_1: btf_field__bindgen_ty_1, +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 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; 32usize]>, } #[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)] -pub struct btf_record { - pub cnt: u32_, - pub field_mask: u32_, - pub spin_lock_off: ::aya_ebpf::cty::c_int, - pub timer_off: ::aya_ebpf::cty::c_int, - pub refcount_off: ::aya_ebpf::cty::c_int, - pub fields: __IncompleteArrayField, -} -pub type bpf_callback_t = ::core::option::Option< - unsafe extern "C" fn(arg1: u64_, arg2: u64_, arg3: u64_, arg4: u64_, arg5: u64_) -> u64_, ->; -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 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 struct netns_ipv6__bindgen_ty_1 { + pub head: hlist_head, + pub lock: spinlock_t, + pub seq: u32_, } -#[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, +impl netns_ipv6 { + #[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 bpf_iter_aux_info__bindgen_ty_1 { - pub start: *mut cgroup, - pub order: bpf_cgroup_iter_order::Type, +pub struct netns_sysctl_lowpan { + pub frags_hdr: *mut ctl_table_header, } #[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_, +pub struct netns_ieee802154_lowpan { + pub sysctl: netns_sysctl_lowpan, + pub fqdir: *mut fqdir, } -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_, +pub struct sctp_mib { + _unused: [u8; 0], } #[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_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_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, +#[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 sctp_hmac_alg: *mut ::aya_ebpf::cty::c_char, + 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 btf_header { - pub magic: __u16, - pub version: __u8, - pub flags: __u8, - pub hdr_len: __u32, - pub type_off: __u32, - pub type_len: __u32, - pub str_off: __u32, - pub str_len: __u32, +pub 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 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 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 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 struct nf_generic_net { + pub timeout: ::aya_ebpf::cty::c_uint, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct bpf_ksym { - pub start: ::aya_ebpf::cty::c_ulong, - pub end: ::aya_ebpf::cty::c_ulong, - pub name: [::aya_ebpf::cty::c_char; 512usize], - pub lnode: list_head, - pub tnode: latch_tree_node, - pub prog: bool_, +pub 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(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 ctx_arg_info_size: u32_, - pub max_rdonly_access: u32_, - pub max_rdwr_access: u32_, - pub attach_btf: *mut btf, - pub ctx_arg_info: *const bpf_ctx_arg_aux, - 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 sleepable: bool_, - pub tail_call_reachable: bool_, - pub xdp_has_frags: bool_, - pub exception_cb: bool_, - pub exception_boundary: bool_, - pub attach_func_proto: *const btf_type, - pub attach_func_name: *const ::aya_ebpf::cty::c_char, - pub func: *mut *mut bpf_prog, - 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 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 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, +#[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(Copy, Clone)] -pub union bpf_prog_aux__bindgen_ty_1 { - pub work: work_struct, - pub rcu: callback_head, +#[derive(Debug, Copy, Clone)] +pub struct nf_icmp_net { + pub timeout: ::aya_ebpf::cty::c_uint, } #[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 struct nf_dccp_net { + pub dccp_loose: u8_, + pub dccp_timeout: [::aya_ebpf::cty::c_uint; 10usize], } -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_BUF: Type = 18; - pub const PTR_TO_FUNC: Type = 19; - pub const CONST_PTR_TO_DYNPTR: Type = 20; - pub const __BPF_REG_TYPE_MAX: Type = 21; - 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 = 33554431; +#[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 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, - >, +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 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_, +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 dccp: nf_dccp_net, + pub sctp: nf_sctp_net, + pub gre: nf_gre_net, } #[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], +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(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, +#[derive(Debug, Copy, Clone)] +pub struct netns_nftables { + 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 sk_buff_list { + pub next: *mut sk_buff, + pub prev: *mut sk_buff, } #[repr(C)] #[derive(Copy, Clone)] -pub union bpf_tramp_image__bindgen_ty_1 { - pub rcu: callback_head, - pub work: work_struct, +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 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, - pub mod_: *mut module, +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 bpf_trampoline__bindgen_ty_1 { - pub model: btf_func_model, - pub addr: *mut ::aya_ebpf::cty::c_void, - pub ftrace_managed: bool_, +pub struct sk_buff_head__bindgen_ty_1__bindgen_ty_1 { + pub next: *mut sk_buff, + pub prev: *mut sk_buff, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct bpf_func_info_aux { - pub linkage: u16_, - pub unreliable: bool_, +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_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_inexact: [hlist_head; 3usize], + 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; 1usize]>, + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, + 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 _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 16usize]>, } -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 fn verified(&self) -> bool_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } - } +impl netns_xfrm { #[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) - } + 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_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 - }); + pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); __bindgen_bitfield_unit } } #[repr(C)] -#[derive(Copy, Clone)] -pub struct 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, +#[derive(Debug, Copy, Clone)] +pub struct netns_ipvs { + _unused: [u8; 0], } #[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_, +pub struct mpls_route { + _unused: [u8; 0], } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct bpf_ctx_arg_aux { - pub offset: u32_, - pub reg_type: bpf_reg_type::Type, - pub btf_id: u32_, +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 btf_mod_pair { - pub btf: *mut btf, - pub module: *mut module, +pub struct can_dev_rcv_lists { + _unused: [u8; 0], } #[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 - } +pub struct can_pkg_stats { + _unused: [u8; 0], } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct sock_fprog_kern { - pub len: u16_, - pub filter: *mut sock_filter, +pub struct can_rcv_lists_stats { + _unused: [u8; 0], } #[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, +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 union bpf_cgroup_storage__bindgen_ty_1 { - pub buf: *mut bpf_storage_buffer, - pub percpu_buf: *mut ::aya_ebpf::cty::c_void, +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, + pub keys_lock: spinlock_t, + pub keys: hlist_head, + pub default_net: ::aya_ebpf::cty::c_uint, + pub neigh_lock: mutex, + pub neighbours: list_head, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct 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, +pub struct smc_stats { + _unused: [u8; 0], } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct flow_block { - pub cb_list: list_head, +pub struct smc_stats_rsn { + _unused: [u8; 0], } -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)] -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, +#[derive(Copy, Clone)] +pub struct netns_smc { + pub smc_stats: *mut smc_stats, + pub mutex_fback_rsn: mutex, + pub fback_rsn: *mut smc_stats_rsn, + pub limit_smc_hs: bool_, + pub smc_hdr: *mut ctl_table_header, + pub sysctl_autocorking_size: ::aya_ebpf::cty::c_uint, + pub sysctl_smcr_buf_type: ::aya_ebpf::cty::c_uint, + pub sysctl_smcr_testlink_time: ::aya_ebpf::cty::c_int, + pub sysctl_wmem: ::aya_ebpf::cty::c_int, + pub sysctl_rmem: ::aya_ebpf::cty::c_int, + pub sysctl_max_links_per_lgr: ::aya_ebpf::cty::c_int, + pub sysctl_max_conns_per_lgr: ::aya_ebpf::cty::c_int, } #[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, +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 cleanup_list: llist_node, + 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; 32usize]>, + pub ipv4: netns_ipv4, + pub ipv6: netns_ipv6, + pub ieee802154_lowpan: netns_ieee802154_lowpan, + pub sctp: netns_sctp, + pub nf: netns_nf, + pub ct: netns_ct, + pub nft: netns_nftables, + pub ft: netns_ft, + pub wext_nlevents: sk_buff_head, + pub gen: *mut net_generic, + pub bpf: netns_bpf, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 40usize]>, + pub xfrm: netns_xfrm, + pub net_cookie: u64_, + pub ipvs: *mut netns_ipvs, + pub mpls: netns_mpls, + pub can: netns_can, + pub xdp: netns_xdp, + pub mctp: netns_mctp, + pub crypto_nlsk: *mut sock, + pub diag_nlsk: *mut sock, + pub smc: netns_smc, + pub _bitfield_align_3: [u8; 0], + pub _bitfield_3: __BindgenBitfieldUnit<[u8; 24usize]>, +} +impl net { + #[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_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 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, - >, +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 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 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, +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 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 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 deleting: bool_, 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 mono_delivery_time: u8_, + pub flags: __u8, + pub max_size: u16_, + pub fqdir: *mut fqdir, pub rcu: callback_head, - pub destroy_ht_node: hlist_node, -} -#[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_, +pub union inet_frag_queue__bindgen_ty_1 { + pub v4: frag_v4_compare_key, + pub v6: frag_v6_compare_key, } +pub type sk_buff_data_t = ::aya_ebpf::cty::c_uint; #[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, +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 struct tcf_chain { - pub filter_chain_lock: mutex, - pub filter_chain: *mut tcf_proto, +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 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, + pub ll_node: llist_node, } #[repr(C)] -#[derive(Debug)] -pub struct bpf_storage_buffer { - pub rcu: callback_head, - pub data: __IncompleteArrayField<::aya_ebpf::cty::c_char>, +#[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(Debug, Copy, Clone)] -pub struct ack_sample { - pub pkts_acked: u32_, - pub rtt_us: s32, - pub in_flight: u32_, +#[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(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_, +#[derive(Copy, Clone)] +pub union sk_buff__bindgen_ty_2 { + pub tstamp: ktime_t, + pub skb_mstamp_ns: u64_, } #[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, +#[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 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, +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)] -#[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], +pub struct sk_buff__bindgen_ty_4 { + pub __bindgen_anon_1: __BindgenUnionField, + pub headers: __BindgenUnionField, + pub bindgen_union_field: [u32; 15usize], } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct uts_namespace { - pub name: new_utsname, - pub user_ns: *mut user_namespace, - pub ucounts: *mut ucounts, - pub ns: ns_common, +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 nsset { - pub flags: ::aya_ebpf::cty::c_uint, - pub nsproxy: *mut nsproxy, - pub fs: *mut fs_struct, - pub cred: *const cred, +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 struct fs_parse_result { - pub negated: bool_, - pub __bindgen_anon_1: fs_parse_result__bindgen_ty_1, +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(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_, +#[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, } -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; +#[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, } -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; +#[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(Debug, Copy, Clone)] -pub struct plist_head { - pub node_list: list_head, +#[derive(Copy, Clone)] +pub union sk_buff__bindgen_ty_4__bindgen_ty_1__bindgen_ty_5 { + pub inner_protocol: __be16, + pub inner_ipproto: __u8, } -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; +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 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 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 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 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 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 mono_delivery_time(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_mono_delivery_time(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn tc_at_ingress(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(1usize, 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(1usize, 1u8, val as u64) + } + } + #[inline] + pub fn tc_skip_classify(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(2usize, 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(2usize, 1u8, val as u64) + } + } + #[inline] + pub fn remcsum_offload(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(3usize, 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(3usize, 1u8, val as u64) + } + } + #[inline] + pub fn csum_complete_sw(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(4usize, 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(4usize, 1u8, val as u64) + } + } + #[inline] + pub fn csum_level(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(5usize, 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(5usize, 2u8, val as u64) + } + } + #[inline] + pub fn inner_protocol_type(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(7usize, 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(7usize, 1u8, val as u64) + } + } + #[inline] + pub fn l4_hash(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(8usize, 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(8usize, 1u8, val as u64) + } + } + #[inline] + pub fn sw_hash(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(9usize, 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(9usize, 1u8, val as u64) + } + } + #[inline] + pub fn wifi_acked_valid(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(10usize, 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(10usize, 1u8, val as u64) + } + } + #[inline] + pub fn wifi_acked(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(11usize, 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(11usize, 1u8, val as u64) + } + } + #[inline] + pub fn no_fcs(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(12usize, 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(12usize, 1u8, val as u64) + } + } + #[inline] + pub fn encapsulation(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(13usize, 1u8) as u8) } + } + #[inline] + pub fn set_encapsulation(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(13usize, 1u8, val as u64) + } + } + #[inline] + pub fn encap_hdr_csum(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(14usize, 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(14usize, 1u8, val as u64) + } + } + #[inline] + pub fn csum_valid(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(15usize, 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(15usize, 1u8, val as u64) + } + } + #[inline] + pub fn ndisc_nodetype(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(16usize, 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(16usize, 2u8, val as u64) + } + } + #[inline] + pub fn ipvs_property(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(18usize, 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(18usize, 1u8, val as u64) + } + } + #[inline] + pub fn nf_trace(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(19usize, 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(19usize, 1u8, val as u64) + } + } + #[inline] + pub fn offload_fwd_mark(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(20usize, 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(20usize, 1u8, val as u64) + } + } + #[inline] + pub fn offload_l3_fwd_mark(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(21usize, 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(21usize, 1u8, val as u64) + } + } + #[inline] + pub fn redirected(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(22usize, 1u8) as u8) } + } + #[inline] + pub fn set_redirected(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(22usize, 1u8, val as u64) + } + } + #[inline] + pub fn from_ingress(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(23usize, 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(23usize, 1u8, val as u64) + } + } + #[inline] + pub fn nf_skip_egress(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(24usize, 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(24usize, 1u8, val as u64) + } + } + #[inline] + pub fn decrypted(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(25usize, 1u8) as u8) } + } + #[inline] + pub fn set_decrypted(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(25usize, 1u8, val as u64) + } + } + #[inline] + pub fn slow_gro(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(26usize, 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(26usize, 1u8, val as u64) + } + } + #[inline] + pub fn csum_not_inet(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(27usize, 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(27usize, 1u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_2( + mono_delivery_time: __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, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let mono_delivery_time: u8 = unsafe { ::core::mem::transmute(mono_delivery_time) }; + mono_delivery_time as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let tc_at_ingress: u8 = unsafe { ::core::mem::transmute(tc_at_ingress) }; + tc_at_ingress as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let tc_skip_classify: u8 = unsafe { ::core::mem::transmute(tc_skip_classify) }; + tc_skip_classify as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let remcsum_offload: u8 = unsafe { ::core::mem::transmute(remcsum_offload) }; + remcsum_offload as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let csum_complete_sw: u8 = unsafe { ::core::mem::transmute(csum_complete_sw) }; + csum_complete_sw as u64 + }); + __bindgen_bitfield_unit.set(5usize, 2u8, { + let csum_level: u8 = unsafe { ::core::mem::transmute(csum_level) }; + csum_level as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let inner_protocol_type: u8 = unsafe { ::core::mem::transmute(inner_protocol_type) }; + inner_protocol_type as u64 + }); + __bindgen_bitfield_unit.set(8usize, 1u8, { + let l4_hash: u8 = unsafe { ::core::mem::transmute(l4_hash) }; + l4_hash as u64 + }); + __bindgen_bitfield_unit.set(9usize, 1u8, { + let sw_hash: u8 = unsafe { ::core::mem::transmute(sw_hash) }; + sw_hash as u64 + }); + __bindgen_bitfield_unit.set(10usize, 1u8, { + let wifi_acked_valid: u8 = unsafe { ::core::mem::transmute(wifi_acked_valid) }; + wifi_acked_valid as u64 + }); + __bindgen_bitfield_unit.set(11usize, 1u8, { + let wifi_acked: u8 = unsafe { ::core::mem::transmute(wifi_acked) }; + wifi_acked as u64 + }); + __bindgen_bitfield_unit.set(12usize, 1u8, { + let no_fcs: u8 = unsafe { ::core::mem::transmute(no_fcs) }; + no_fcs as u64 + }); + __bindgen_bitfield_unit.set(13usize, 1u8, { + let encapsulation: u8 = unsafe { ::core::mem::transmute(encapsulation) }; + encapsulation as u64 + }); + __bindgen_bitfield_unit.set(14usize, 1u8, { + let encap_hdr_csum: u8 = unsafe { ::core::mem::transmute(encap_hdr_csum) }; + encap_hdr_csum as u64 + }); + __bindgen_bitfield_unit.set(15usize, 1u8, { + let csum_valid: u8 = unsafe { ::core::mem::transmute(csum_valid) }; + csum_valid as u64 + }); + __bindgen_bitfield_unit.set(16usize, 2u8, { + let ndisc_nodetype: u8 = unsafe { ::core::mem::transmute(ndisc_nodetype) }; + ndisc_nodetype as u64 + }); + __bindgen_bitfield_unit.set(18usize, 1u8, { + let ipvs_property: u8 = unsafe { ::core::mem::transmute(ipvs_property) }; + ipvs_property as u64 + }); + __bindgen_bitfield_unit.set(19usize, 1u8, { + let nf_trace: u8 = unsafe { ::core::mem::transmute(nf_trace) }; + nf_trace as u64 + }); + __bindgen_bitfield_unit.set(20usize, 1u8, { + let offload_fwd_mark: u8 = unsafe { ::core::mem::transmute(offload_fwd_mark) }; + offload_fwd_mark as u64 + }); + __bindgen_bitfield_unit.set(21usize, 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(22usize, 1u8, { + let redirected: u8 = unsafe { ::core::mem::transmute(redirected) }; + redirected as u64 + }); + __bindgen_bitfield_unit.set(23usize, 1u8, { + let from_ingress: u8 = unsafe { ::core::mem::transmute(from_ingress) }; + from_ingress as u64 + }); + __bindgen_bitfield_unit.set(24usize, 1u8, { + let nf_skip_egress: u8 = unsafe { ::core::mem::transmute(nf_skip_egress) }; + nf_skip_egress as u64 + }); + __bindgen_bitfield_unit.set(25usize, 1u8, { + let decrypted: u8 = unsafe { ::core::mem::transmute(decrypted) }; + decrypted as u64 + }); + __bindgen_bitfield_unit.set(26usize, 1u8, { + let slow_gro: u8 = unsafe { ::core::mem::transmute(slow_gro) }; + slow_gro as u64 + }); + __bindgen_bitfield_unit.set(27usize, 1u8, { + let csum_not_inet: u8 = unsafe { ::core::mem::transmute(csum_not_inet) }; + csum_not_inet as u64 + }); + __bindgen_bitfield_unit + } } #[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, +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 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, +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 pm_qos_flags { - pub list: list_head, - pub effective_flags: s32, +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 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, -} -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 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 freq_qos_request { - pub type_: freq_qos_req_type::Type, - pub pnode: plist_node, - pub qos: *mut freq_constraints, -} -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 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 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, +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 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 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, +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 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]>, +pub union sk_buff__bindgen_ty_4__bindgen_ty_2__bindgen_ty_5 { + pub inner_protocol: __be16, + pub inner_ipproto: __u8, } -impl files_struct { +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 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 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 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 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 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 mono_delivery_time(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_mono_delivery_time(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn tc_at_ingress(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(1usize, 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(1usize, 1u8, val as u64) + } + } + #[inline] + pub fn tc_skip_classify(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(2usize, 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(2usize, 1u8, val as u64) + } + } + #[inline] + pub fn remcsum_offload(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(3usize, 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(3usize, 1u8, val as u64) + } + } + #[inline] + pub fn csum_complete_sw(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(4usize, 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(4usize, 1u8, val as u64) + } + } + #[inline] + pub fn csum_level(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(5usize, 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(5usize, 2u8, val as u64) + } + } + #[inline] + pub fn inner_protocol_type(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(7usize, 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(7usize, 1u8, val as u64) + } + } + #[inline] + pub fn l4_hash(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(8usize, 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(8usize, 1u8, val as u64) + } + } + #[inline] + pub fn sw_hash(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(9usize, 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(9usize, 1u8, val as u64) + } + } + #[inline] + pub fn wifi_acked_valid(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(10usize, 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(10usize, 1u8, val as u64) + } + } + #[inline] + pub fn wifi_acked(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(11usize, 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(11usize, 1u8, val as u64) + } + } + #[inline] + pub fn no_fcs(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(12usize, 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(12usize, 1u8, val as u64) + } + } + #[inline] + pub fn encapsulation(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(13usize, 1u8) as u8) } + } #[inline] - pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 32usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 32usize]> = Default::default(); - __bindgen_bitfield_unit + pub fn set_encapsulation(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(13usize, 1u8, val as u64) + } } #[inline] - pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 32usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 32usize]> = Default::default(); - __bindgen_bitfield_unit + pub fn encap_hdr_csum(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(14usize, 1u8) as u8) } } -} -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; -} -#[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 free_work: work_struct, - 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(Debug, Copy, Clone)] -pub struct crypto_template { - pub list: list_head, - pub instances: hlist_head, - pub module: *mut module, - 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)] -pub struct crypto_skcipher { - pub reqsize: ::aya_ebpf::cty::c_uint, - pub base: crypto_tfm, -} -#[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, - >, -} -#[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 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 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 platform_data: *mut platform_msi_priv_data, - pub mutex: mutex, - pub __domains: [msi_dev_domain; 2usize], - pub __iter_idx: ::aya_ebpf::cty::c_ulong, -} -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 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 + pub fn set_encap_hdr_csum(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(14usize, 1u8, val as u64) + } } -} -#[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 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) } + pub fn csum_valid(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(15usize, 1u8) as u8) } } #[inline] - pub fn set_is_managed(&mut self, val: ::aya_ebpf::cty::c_uint) { + pub fn set_csum_valid(&mut self, val: __u8) { unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(15usize, 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 + pub fn ndisc_nodetype(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(16usize, 2u8) as u8) } } -} -#[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 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) } + pub fn set_ndisc_nodetype(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(16usize, 2u8, val as u64) + } } #[inline] - pub fn set_reserved_0(&mut self, val: u32_) { + pub fn ipvs_property(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(18usize, 1u8) as u8) } + } + #[inline] + pub fn set_ipvs_property(&mut self, val: __u8) { unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 2u8, val as u64) + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(18usize, 1u8, val as u64) } } #[inline] - pub fn dest_mode_logical(&self) -> u32_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + pub fn nf_trace(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(19usize, 1u8) as u8) } } #[inline] - pub fn set_dest_mode_logical(&mut self, val: u32_) { + pub fn set_nf_trace(&mut self, val: __u8) { unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(19usize, 1u8, val as u64) } } #[inline] - pub fn redirect_hint(&self) -> u32_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } + pub fn offload_fwd_mark(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(20usize, 1u8) as u8) } } #[inline] - pub fn set_redirect_hint(&mut self, val: u32_) { + pub fn set_offload_fwd_mark(&mut self, val: __u8) { unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(20usize, 1u8, val as u64) } } #[inline] - pub fn reserved_1(&self) -> u32_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } + pub fn offload_l3_fwd_mark(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(21usize, 1u8) as u8) } } #[inline] - pub fn set_reserved_1(&mut self, val: u32_) { + pub fn set_offload_l3_fwd_mark(&mut self, val: __u8) { unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(4usize, 1u8, val as u64) + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(21usize, 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) } + pub fn redirected(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(22usize, 1u8) as u8) } } #[inline] - pub fn set_virt_destid_8_14(&mut self, val: u32_) { + pub fn set_redirected(&mut self, val: __u8) { unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(5usize, 7u8, val as u64) + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(22usize, 1u8, val as u64) } } #[inline] - pub fn destid_0_7(&self) -> u32_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 8u8) as u32) } + pub fn from_ingress(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(23usize, 1u8) as u8) } } #[inline] - pub fn set_destid_0_7(&mut self, val: u32_) { + pub fn set_from_ingress(&mut self, val: __u8) { unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(12usize, 8u8, val as u64) + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(23usize, 1u8, val as u64) } } #[inline] - pub fn base_address(&self) -> u32_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 12u8) as u32) } + pub fn nf_skip_egress(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(24usize, 1u8) as u8) } } #[inline] - pub fn set_base_address(&mut self, val: u32_) { + pub fn set_nf_skip_egress(&mut self, val: __u8) { unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(20usize, 12u8, val as u64) + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(24usize, 1u8, 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_, + pub fn decrypted(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(25usize, 1u8) as u8) } + } + #[inline] + pub fn set_decrypted(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_2.set(25usize, 1u8, val as u64) + } + } + #[inline] + pub fn slow_gro(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(26usize, 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(26usize, 1u8, val as u64) + } + } + #[inline] + pub fn csum_not_inet(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(27usize, 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(27usize, 1u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_2( + mono_delivery_time: __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, ) -> __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(0usize, 1u8, { + let mono_delivery_time: u8 = unsafe { ::core::mem::transmute(mono_delivery_time) }; + mono_delivery_time as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let tc_at_ingress: u8 = unsafe { ::core::mem::transmute(tc_at_ingress) }; + tc_at_ingress 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 + let tc_skip_classify: u8 = unsafe { ::core::mem::transmute(tc_skip_classify) }; + tc_skip_classify as u64 }); __bindgen_bitfield_unit.set(3usize, 1u8, { - let redirect_hint: u32 = unsafe { ::core::mem::transmute(redirect_hint) }; - redirect_hint as u64 + let remcsum_offload: u8 = unsafe { ::core::mem::transmute(remcsum_offload) }; + remcsum_offload as u64 }); __bindgen_bitfield_unit.set(4usize, 1u8, { - let reserved_1: u32 = unsafe { ::core::mem::transmute(reserved_1) }; - reserved_1 as u64 + let csum_complete_sw: u8 = unsafe { ::core::mem::transmute(csum_complete_sw) }; + csum_complete_sw 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(5usize, 2u8, { + let csum_level: u8 = unsafe { ::core::mem::transmute(csum_level) }; + csum_level 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(7usize, 1u8, { + let inner_protocol_type: u8 = unsafe { ::core::mem::transmute(inner_protocol_type) }; + inner_protocol_type 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.set(8usize, 1u8, { + let l4_hash: u8 = unsafe { ::core::mem::transmute(l4_hash) }; + l4_hash as u64 + }); + __bindgen_bitfield_unit.set(9usize, 1u8, { + let sw_hash: u8 = unsafe { ::core::mem::transmute(sw_hash) }; + sw_hash as u64 + }); + __bindgen_bitfield_unit.set(10usize, 1u8, { + let wifi_acked_valid: u8 = unsafe { ::core::mem::transmute(wifi_acked_valid) }; + wifi_acked_valid as u64 + }); + __bindgen_bitfield_unit.set(11usize, 1u8, { + let wifi_acked: u8 = unsafe { ::core::mem::transmute(wifi_acked) }; + wifi_acked as u64 + }); + __bindgen_bitfield_unit.set(12usize, 1u8, { + let no_fcs: u8 = unsafe { ::core::mem::transmute(no_fcs) }; + no_fcs as u64 + }); + __bindgen_bitfield_unit.set(13usize, 1u8, { + let encapsulation: u8 = unsafe { ::core::mem::transmute(encapsulation) }; + encapsulation as u64 + }); + __bindgen_bitfield_unit.set(14usize, 1u8, { + let encap_hdr_csum: u8 = unsafe { ::core::mem::transmute(encap_hdr_csum) }; + encap_hdr_csum as u64 + }); + __bindgen_bitfield_unit.set(15usize, 1u8, { + let csum_valid: u8 = unsafe { ::core::mem::transmute(csum_valid) }; + csum_valid as u64 + }); + __bindgen_bitfield_unit.set(16usize, 2u8, { + let ndisc_nodetype: u8 = unsafe { ::core::mem::transmute(ndisc_nodetype) }; + ndisc_nodetype as u64 + }); + __bindgen_bitfield_unit.set(18usize, 1u8, { + let ipvs_property: u8 = unsafe { ::core::mem::transmute(ipvs_property) }; + ipvs_property as u64 + }); + __bindgen_bitfield_unit.set(19usize, 1u8, { + let nf_trace: u8 = unsafe { ::core::mem::transmute(nf_trace) }; + nf_trace as u64 + }); + __bindgen_bitfield_unit.set(20usize, 1u8, { + let offload_fwd_mark: u8 = unsafe { ::core::mem::transmute(offload_fwd_mark) }; + offload_fwd_mark as u64 + }); + __bindgen_bitfield_unit.set(21usize, 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(22usize, 1u8, { + let redirected: u8 = unsafe { ::core::mem::transmute(redirected) }; + redirected as u64 + }); + __bindgen_bitfield_unit.set(23usize, 1u8, { + let from_ingress: u8 = unsafe { ::core::mem::transmute(from_ingress) }; + from_ingress as u64 + }); + __bindgen_bitfield_unit.set(24usize, 1u8, { + let nf_skip_egress: u8 = unsafe { ::core::mem::transmute(nf_skip_egress) }; + nf_skip_egress as u64 + }); + __bindgen_bitfield_unit.set(25usize, 1u8, { + let decrypted: u8 = unsafe { ::core::mem::transmute(decrypted) }; + decrypted as u64 + }); + __bindgen_bitfield_unit.set(26usize, 1u8, { + let slow_gro: u8 = unsafe { ::core::mem::transmute(slow_gro) }; + slow_gro as u64 + }); + __bindgen_bitfield_unit.set(27usize, 1u8, { + let csum_not_inet: u8 = unsafe { ::core::mem::transmute(csum_not_inet) }; + csum_not_inet 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 { +impl sk_buff { #[inline] - pub fn dmar_reserved_0(&self) -> u32_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u32) } + pub fn cloned(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } } #[inline] - pub fn set_dmar_reserved_0(&mut self, val: u32_) { + pub fn set_cloned(&mut self, val: __u8) { unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 2u8, val as u64) + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(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 fn dmar_index_15(&self) -> u32_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + pub fn fclone(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 2u8) as u8) } } #[inline] - pub fn set_dmar_index_15(&mut self, val: u32_) { + pub fn set_fclone(&mut self, val: __u8) { unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 2u8, val as u64) } } #[inline] - pub fn dmar_subhandle_valid(&self) -> u32_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } + pub fn peeked(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) } } #[inline] - pub fn set_dmar_subhandle_valid(&mut self, val: u32_) { + pub fn set_peeked(&mut self, val: __u8) { unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) } } #[inline] - pub fn dmar_format(&self) -> u32_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } + pub fn head_frag(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) } } #[inline] - pub fn set_dmar_format(&mut self, val: u32_) { + pub fn set_head_frag(&mut self, val: __u8) { unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(4usize, 1u8, val as u64) + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 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) } + pub fn pfmemalloc(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) } } #[inline] - pub fn set_dmar_index_0_14(&mut self, val: u32_) { + pub fn set_pfmemalloc(&mut self, val: __u8) { unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(5usize, 15u8, val as u64) + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(6usize, 1u8, val as u64) } } #[inline] - pub fn dmar_base_address(&self) -> u32_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 12u8) as u32) } + pub fn pp_recycle(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) } } #[inline] - pub fn set_dmar_base_address(&mut self, val: u32_) { + pub fn set_pp_recycle(&mut self, val: __u8) { unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(20usize, 12u8, val as u64) + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, 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 + 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(2usize, 1u8, { - let dmar_index_15: u32 = unsafe { ::core::mem::transmute(dmar_index_15) }; - dmar_index_15 as u64 + __bindgen_bitfield_unit.set(1usize, 1u8, { + let nohdr: u8 = unsafe { ::core::mem::transmute(nohdr) }; + nohdr 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(2usize, 2u8, { + let fclone: u8 = unsafe { ::core::mem::transmute(fclone) }; + fclone as u64 }); __bindgen_bitfield_unit.set(4usize, 1u8, { - let dmar_format: u32 = unsafe { ::core::mem::transmute(dmar_format) }; - dmar_format as u64 + let peeked: u8 = unsafe { ::core::mem::transmute(peeked) }; + peeked 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(5usize, 1u8, { + let head_frag: u8 = unsafe { ::core::mem::transmute(head_frag) }; + head_frag 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.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 } } -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]>, +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, } -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 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 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 __addrpair = __u64; +pub type __portpair = __u32; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct possible_net_t { + pub net: *mut net, +} +#[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, } -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, +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 x86_msi_data__bindgen_ty_1 { - pub __bindgen_anon_1: x86_msi_data__bindgen_ty_1__bindgen_ty_1, - pub dmar_subhandle: u32_, +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)] -#[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, +pub struct sock_common__bindgen_ty_3__bindgen_ty_1 { + pub skc_dport: __be16, + pub skc_num: __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 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) - } - } +#[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 dest_mode_logical(&self) -> u32_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) } + 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_dest_mode_logical(&mut self, val: u32_) { + pub fn set_skc_reuse(&mut self, val: ::aya_ebpf::cty::c_uchar) { unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(11usize, 1u8, val as u64) + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 4u8, val as u64) } } #[inline] - pub fn reserved(&self) -> u32_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 2u8) as u32) } + 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_reserved(&mut self, val: u32_) { + pub fn set_skc_reuseport(&mut self, val: ::aya_ebpf::cty::c_uchar) { unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(12usize, 2u8, val as u64) + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) } } #[inline] - pub fn active_low(&self) -> u32_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u32) } + 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_active_low(&mut self, val: u32_) { + pub fn set_skc_ipv6only(&mut self, val: ::aya_ebpf::cty::c_uchar) { unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(14usize, 1u8, val as u64) + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) } } #[inline] - pub fn is_level(&self) -> u32_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u32) } + 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_is_level(&mut self, val: u32_) { + pub fn set_skc_net_refcnt(&mut self, val: ::aya_ebpf::cty::c_uchar) { unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(15usize, 1u8, val as u64) + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(6usize, 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 + 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(12usize, 2u8, { - let reserved: u32 = unsafe { ::core::mem::transmute(reserved) }; - reserved 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(14usize, 1u8, { - let active_low: u32 = unsafe { ::core::mem::transmute(active_low) }; - active_low 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(15usize, 1u8, { - let is_level: u32 = unsafe { ::core::mem::transmute(is_level) }; - is_level 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 } } -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, +pub struct socket_lock_t { + pub slock: spinlock_t, + pub owned: ::aya_ebpf::cty::c_int, + pub wq: wait_queue_head_t, } +pub type netdev_features_t = u64_; #[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, +#[derive(Debug, Copy, Clone)] +pub struct sock_cgroup_data { + pub cgroup: *mut cgroup, + pub classid: u32_, + pub prioidx: u16_, } #[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, +#[derive(Debug, Copy, Clone)] +pub struct netns_tracker {} +#[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 __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_sndbuf: ::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_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_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_type: u16_, + pub sk_protocol: u16_, + pub sk_lingertime: ::aya_ebpf::cty::c_ulong, + pub sk_prot_creator: *mut proto, + pub sk_callback_lock: rwlock_t, + pub sk_err_soft: ::aya_ebpf::cty::c_int, + pub sk_ack_backlog: u32_, + pub sk_max_ack_backlog: u32_, + pub sk_uid: kuid_t, + 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 sk_txrehash: u8_, + pub sk_clockid: u8_, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 1usize]>, + 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_rcu: callback_head, + pub ns_tracker: netns_tracker, } #[repr(C)] -#[derive(Copy, Clone)] -pub union msi_msg__bindgen_ty_3 { - pub data: u32_, - pub arch_data: arch_msi_msg_data_t, +#[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 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, +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 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, +pub union sock__bindgen_ty_3 { + pub sk_send_head: *mut sk_buff, + pub tcp_rtx_queue: rb_root, } -impl pci_msi_desc__bindgen_ty_2 { +impl sock { #[inline] - pub fn is_msix(&self) -> u8_ { + pub fn sk_gso_disabled(&self) -> u8_ { unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } } #[inline] - pub fn set_is_msix(&mut self, val: u8_) { + 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 fn multiple(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 3u8) as u8) } + pub fn sk_kern_sock(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } } #[inline] - pub fn set_multiple(&mut self, val: u8_) { + pub fn set_sk_kern_sock(&mut self, val: u8_) { unsafe { let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 3u8, val as u64) + self._bitfield_1.set(1usize, 1u8, val as u64) } } #[inline] - pub fn multi_cap(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 3u8) as u8) } + pub fn sk_no_check_tx(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) } } #[inline] - pub fn set_multi_cap(&mut self, val: u8_) { + pub fn set_sk_no_check_tx(&mut self, val: u8_) { unsafe { let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(4usize, 3u8, val as u64) + self._bitfield_1.set(2usize, 1u8, val as u64) } } #[inline] - pub fn can_mask(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) } + pub fn sk_no_check_rx(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) } } #[inline] - pub fn set_can_mask(&mut self, val: u8_) { + pub fn set_sk_no_check_rx(&mut self, val: u8_) { unsafe { let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(7usize, 1u8, val as u64) + self._bitfield_1.set(3usize, 1u8, val as u64) } } #[inline] - pub fn is_64(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u8) } + 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 set_is_64(&mut self, val: u8_) { + 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_1.set(8usize, 1u8, val as u64) + self._bitfield_2.set(0usize, 1u8, val as u64) } } #[inline] - pub fn is_virtual(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u8) } + pub fn sk_txtime_report_errors(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_2.get(1usize, 1u8) as u8) } } #[inline] - pub fn set_is_virtual(&mut self, val: u8_) { + pub fn set_sk_txtime_report_errors(&mut self, val: u8_) { unsafe { let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(9usize, 1u8, val as u64) + self._bitfield_2.set(1usize, 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(); + 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 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 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 + let sk_txtime_deadline_mode: u8 = + unsafe { ::core::mem::transmute(sk_txtime_deadline_mode) }; + sk_txtime_deadline_mode 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(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(9usize, 1u8, { - let is_virtual: u8 = unsafe { ::core::mem::transmute(is_virtual) }; - is_virtual 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 } } +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; +} +#[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, + 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(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 netdevice_tracker {} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dst_entry { + pub dev: *mut net_device, + 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(Debug, Copy, Clone)] +pub struct netdev_tc_txq { + pub count: u16_, + pub offset: u16_, +} +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 type rx_handler_func_t = + ::core::option::Option rx_handler_result_t>; +pub type xdp_features_t = u32_; #[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, +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 msi_domain_cookie { - pub value: u64_, - pub ptr: *mut ::aya_ebpf::cty::c_void, - pub iobase: *mut ::aya_ebpf::cty::c_void, +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 struct msi_desc_data { - pub dcookie: msi_domain_cookie, - pub icookie: msi_instance_cookie, +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 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 iommu_cookie: *const ::aya_ebpf::cty::c_void, - 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, +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 msi_desc__bindgen_ty_1 { - pub pci: pci_msi_desc, - pub data: msi_desc_data, +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(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 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_post_free: - ::core::option::Option, +#[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(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 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 data: *mut ::aya_ebpf::cty::c_void, +#[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(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, +#[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(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, +#[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 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, +pub union net_device_stats__bindgen_ty_18 { + pub tx_carrier_errors: ::aya_ebpf::cty::c_ulong, + pub __tx_carrier_errors: atomic_long_t, } -pub type tcflag_t = ::aya_ebpf::cty::c_uint; -pub type cc_t = ::aya_ebpf::cty::c_uchar; -pub type speed_t = ::aya_ebpf::cty::c_uint; #[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, +#[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(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, +#[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)] -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, +#[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)] -pub struct tty_struct__bindgen_ty_1 { - pub lock: spinlock_t, - pub stopped: bool_, - pub tco_stopped: bool_, - pub unused: __IncompleteArrayField<::aya_ebpf::cty::c_ulong>, +#[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)] -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_, - pub unused: __IncompleteArrayField<::aya_ebpf::cty::c_ulong>, +#[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)] -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, +#[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(Copy, Clone)] -pub union tty_buffer__bindgen_ty_1 { - pub next: *mut tty_buffer, - pub free: llist_node, +#[derive(Debug, Copy, Clone)] +pub struct tipc_bearer { + _unused: [u8; 0], } #[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, +#[derive(Debug, Copy, Clone)] +pub struct mpls_dev { + _unused: [u8; 0], +} +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; } #[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 set_ldisc: ::core::option::Option, - pub wait_until_sent: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut tty_struct, arg2: ::aya_ebpf::cty::c_int), - >, - pub send_xchar: ::core::option::Option, - pub tiocmget: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut tty_struct) -> ::aya_ebpf::cty::c_int, - >, - pub tiocmset: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut tty_struct, - arg2: ::aya_ebpf::cty::c_uint, - arg3: ::aya_ebpf::cty::c_uint, - ) -> ::aya_ebpf::cty::c_int, - >, - pub resize: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut tty_struct, arg2: *mut winsize) -> ::aya_ebpf::cty::c_int, - >, - pub get_icount: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut tty_struct, - arg2: *mut serial_icounter_struct, - ) -> ::aya_ebpf::cty::c_int, - >, - pub get_serial: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut tty_struct, - arg2: *mut serial_struct, - ) -> ::aya_ebpf::cty::c_int, - >, - pub set_serial: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut tty_struct, - arg2: *mut serial_struct, - ) -> ::aya_ebpf::cty::c_int, - >, - pub show_fdinfo: - ::core::option::Option, - pub proc_show: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut seq_file, - arg2: *mut ::aya_ebpf::cty::c_void, - ) -> ::aya_ebpf::cty::c_int, - >, +pub struct garp_port { + _unused: [u8; 0], } #[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_: ::aya_ebpf::cty::c_short, - pub subtype: ::aya_ebpf::cty::c_short, - 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, +pub struct mrp_port { + _unused: [u8; 0], } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct __kfifo { - pub in_: ::aya_ebpf::cty::c_uint, - pub out: ::aya_ebpf::cty::c_uint, - pub mask: ::aya_ebpf::cty::c_uint, - pub esize: ::aya_ebpf::cty::c_uint, - pub data: *mut ::aya_ebpf::cty::c_void, +pub struct udp_tunnel_nic { + _unused: [u8; 0], } #[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, +#[derive(Debug, Copy, Clone)] +pub struct bpf_xdp_entity { + pub prog: *mut bpf_prog, + pub link: *mut bpf_xdp_link, } #[repr(C)] -pub struct tty_port__bindgen_ty_1 { - pub __bindgen_anon_1: tty_port__bindgen_ty_1__bindgen_ty_1, - pub buf: __IncompleteArrayField, +pub struct net_device { + pub __cacheline_group_begin__net_device_read_tx: __IncompleteArrayField<__u8>, + pub priv_flags: ::aya_ebpf::cty::c_ulonglong, + 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_1: net_device__bindgen_ty_1, + 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_flush_timeout: ::aya_ebpf::cty::c_ulong, + pub napi_defer_hard_irqs: ::aya_ebpf::cty::c_int, + 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_2, + 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 wireless_handlers: *const iw_handler_def, + pub wireless_data: *mut iw_public_data, + 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 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 padded: ::aya_ebpf::cty::c_ushort, + pub addr_list_lock: spinlock_t, + pub irq: ::aya_ebpf::cty::c_int, + 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 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 ::aya_ebpf::cty::c_void, + pub ieee80211_ptr: *mut wireless_dev, + pub ieee802154_ptr: *mut wpan_dev, + pub mpls_ptr: *mut mpls_dev, + pub mctp_ptr: *mut mctp_dev, + pub 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 _bitfield_align_1: [u16; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, + 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_2: [u8; 0], + pub _bitfield_2: __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; 4usize], + pub sysfs_rx_queue_group: *const attribute_group, + pub rtnl_link_ops: *const rtnl_link_ops, + pub stat_ops: *const netdev_stat_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 phydev: *mut phy_device, + pub sfp_bus: *mut sfp_bus, + pub qdisc_tx_busylock: *mut lock_class_key, + pub proto_down: bool_, + pub _bitfield_align_3: [u8; 0], + pub _bitfield_3: __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 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, } #[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_, +pub union net_device__bindgen_ty_1 { + 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_2 { + pub upper: list_head, + pub lower: list_head, } -impl tty_port { +pub mod net_device__bindgen_ty_3 { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const RTNL_LINK_INITIALIZED: Type = 0; + pub const RTNL_LINK_INITIALIZING: Type = 1; +} +impl net_device { #[inline] - pub fn console(&self) -> ::aya_ebpf::cty::c_uchar { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + pub fn rtnl_link_state(&self) -> net_device__bindgen_ty_3::Type { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 16u8) as u32) } } #[inline] - pub fn set_console(&mut self, val: ::aya_ebpf::cty::c_uchar) { + pub fn set_rtnl_link_state(&mut self, val: net_device__bindgen_ty_3::Type) { unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 16u8, val as u64) } } #[inline] pub fn new_bitfield_1( - console: ::aya_ebpf::cty::c_uchar, + rtnl_link_state: net_device__bindgen_ty_3::Type, + ) -> __BindgenBitfieldUnit<[u8; 2usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 16u8, { + let rtnl_link_state: u32 = unsafe { ::core::mem::transmute(rtnl_link_state) }; + rtnl_link_state as u64 + }); + __bindgen_bitfield_unit + } + #[inline] + pub fn pcpu_stat_type(&self) -> netdev_stat_type::Type { + unsafe { ::core::mem::transmute(self._bitfield_2.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_2.set(0usize, 8u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_2( + 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 wol_enabled(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_3.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_3.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn threaded(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_3.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_threaded(&mut self, val: ::aya_ebpf::cty::c_uint) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_3.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_3( + wol_enabled: ::aya_ebpf::cty::c_uint, + threaded: ::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 console: u8 = unsafe { ::core::mem::transmute(console) }; - console as u64 + let wol_enabled: u32 = unsafe { ::core::mem::transmute(wol_enabled) }; + wol_enabled as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let threaded: u32 = unsafe { ::core::mem::transmute(threaded) }; + threaded as u64 }); __bindgen_bitfield_unit } } #[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, - ), +#[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)] +pub struct neighbour { + pub next: *mut neighbour, + 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 owner: *mut module, + 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, } +pub type __kernel_sa_family_t = ::aya_ebpf::cty::c_ushort; +pub type sa_family_t = __kernel_sa_family_t; #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct tty_ldisc { - pub ops: *mut tty_ldisc_ops, - pub tty: *mut tty_struct, +pub struct sockaddr { + pub sa_family: sa_family_t, + pub __bindgen_anon_1: sockaddr__bindgen_ty_1, } #[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, +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 tty_port_client_operations { - pub receive_buf: ::core::option::Option< +pub struct sockaddr__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {} +#[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 tty_port, - arg2: *const u8_, - arg3: *const u8_, + arg1: *mut sock, + arg2: *mut sk_buff, + arg3: *mut iov_iter, 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), + ) -> ::aya_ebpf::cty::c_int, >, - pub write_wakeup: ::core::option::Option, } #[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, +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, } -#[repr(C)] -#[derive(Copy, Clone)] -pub struct rt_mutex { - pub rtmutex: rt_mutex_base, +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 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 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 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, +pub struct ubuf_info { + pub callback: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sk_buff, arg2: *mut ubuf_info, arg3: bool_), + >, + pub refcnt: refcount_t, + pub flags: u8_, } -#[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 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 type u_int8_t = u8_; +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 ethhdr { - pub h_dest: [::aya_ebpf::cty::c_uchar; 6usize], - pub h_source: [::aya_ebpf::cty::c_uchar; 6usize], - pub h_proto: __be16, +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(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, +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 ethtool_wolinfo { - pub cmd: __u32, - pub supported: __u32, - pub wolopts: __u32, - pub sopass: [__u8; 6usize], -} -#[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)] -pub struct ethtool_regs { - pub cmd: __u32, - pub version: __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>, +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 ethtool_eee { - pub cmd: __u32, - pub supported: __u32, - pub advertised: __u32, - pub lp_advertised: __u32, - pub eee_active: __u32, - pub eee_enabled: __u32, - pub tx_lpi_enabled: __u32, - pub tx_lpi_timer: __u32, - pub reserved: [__u32; 2usize], +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 ethtool_modinfo { - pub cmd: __u32, - pub type_: __u32, - pub eeprom_len: __u32, - pub reserved: [__u32; 8usize], +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 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, +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 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, +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 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, +pub struct fr_proto_pvc { + pub dlci: ::aya_ebpf::cty::c_uint, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct ethtool_pauseparam { - pub cmd: __u32, - pub autoneg: __u32, - pub rx_pause: __u32, - pub tx_pause: __u32, -} -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 struct fr_proto_pvc_info { + pub dlci: ::aya_ebpf::cty::c_uint, + pub master: [::aya_ebpf::cty::c_char; 16usize], } -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; +#[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 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; +#[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, } -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; +#[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, } -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; +#[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, } -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; +#[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, } -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; +#[repr(C)] +pub struct ifreq { + pub ifr_ifrn: ifreq__bindgen_ty_1, + pub ifr_ifru: ifreq__bindgen_ty_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; +#[repr(C)] +#[derive(Copy, Clone)] +pub union ifreq__bindgen_ty_1 { + pub ifrn_name: [::aya_ebpf::cty::c_char; 16usize], } -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; +#[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], } -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; +#[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(Debug)] -pub struct ethtool_test { - pub cmd: __u32, - pub flags: __u32, - pub reserved: __u32, - pub len: __u32, - pub data: __IncompleteArrayField<__u64>, +#[derive(Copy, Clone)] +pub struct skb_shared_hwtstamps { + pub __bindgen_anon_1: skb_shared_hwtstamps__bindgen_ty_1, } #[repr(C)] -#[derive(Debug)] -pub struct ethtool_stats { - pub cmd: __u32, - pub n_stats: __u32, - pub data: __IncompleteArrayField<__u64>, +#[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)] -#[derive(Debug, Copy, Clone)] -pub struct ethtool_tcpip4_spec { - pub ip4src: __be32, - pub ip4dst: __be32, - pub psrc: __be16, - pub pdst: __be16, - pub tos: __u8, +#[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(Debug, Copy, Clone)] -pub struct ethtool_ah_espip4_spec { - pub ip4src: __be32, - pub ip4dst: __be32, - pub spi: __be32, - pub tos: __u8, +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 ethtool_usrip4_spec { - pub ip4src: __be32, - pub ip4dst: __be32, - pub l4_4_bytes: __be32, - pub tos: __u8, - pub ip_ver: __u8, - pub proto: __u8, +pub struct ieee_maxrate { + pub tc_maxrate: [__u64; 8usize], } #[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, +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 ethtool_ah_espip6_spec { - pub ip6src: [__be32; 4usize], - pub ip6dst: [__be32; 4usize], - pub spi: __be32, - pub tclass: __u8, +pub struct ieee_qcn_stats { + pub rppp_rp_centiseconds: [__u64; 8usize], + pub rppp_created_rps: [__u32; 8usize], } #[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, +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(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], +#[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 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 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 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, +#[derive(Debug, Copy, Clone)] +pub struct cee_pfc { + pub willing: __u8, + pub error: __u8, + pub pfc_en: __u8, + pub tcs_supported: __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>, +#[derive(Debug, Copy, Clone)] +pub struct dcb_app { + pub selector: __u8, + pub priority: __u8, + pub protocol: __u16, } #[repr(C)] -#[derive(Copy, Clone)] -pub union ethtool_rxnfc__bindgen_ty_1 { - pub rule_cnt: __u32, - pub rss_context: __u32, +#[derive(Debug, Copy, Clone)] +pub struct dcb_peer_app_info { + pub willing: __u8, + pub error: __u8, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct ethtool_flash { - pub cmd: __u32, - pub region: __u32, - pub data: [::aya_ebpf::cty::c_char; 128usize], +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)] -pub struct ethtool_dump { - pub cmd: __u32, - pub version: __u32, - pub flag: __u32, - pub len: __u32, - pub data: __IncompleteArrayField<__u8>, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct ethtool_ts_info { - pub cmd: __u32, - pub so_timestamping: __u32, - pub phc_index: __s32, - pub tx_types: __u32, - pub tx_reserved: [__u32; 3usize], - pub rx_filters: __u32, - pub rx_reserved: [__u32; 3usize], +pub struct netprio_map { + pub rcu: callback_head, + pub priomap_len: u32_, + pub priomap: __IncompleteArrayField, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct ethtool_fecparam { - pub cmd: __u32, - pub active_fec: __u32, - pub fec: __u32, - pub reserved: __u32, +#[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(Debug)] -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], - pub link_mode_masks: __IncompleteArrayField<__u32>, +#[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, } -#[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_, +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 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 + } } -#[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, +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; } #[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_, +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]>, } -#[repr(C)] -#[derive(Debug)] -pub struct ethtool_link_ksettings { - pub base: ethtool_link_settings, - pub link_modes: ethtool_link_ksettings__bindgen_ty_1, - pub lanes: u32_, +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(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], +#[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, } -#[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_, +impl socket { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + __bindgen_bitfield_unit + } } #[repr(C)] #[derive(Copy, Clone)] -pub struct ethtool_eth_mac_stats { - pub src: ethtool_mac_stats_src::Type, - pub __bindgen_anon_1: ethtool_eth_mac_stats__bindgen_ty_1, +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 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, +pub union read_descriptor_t__bindgen_ty_1 { + pub buf: *mut ::aya_ebpf::cty::c_char, + pub data: *mut ::aya_ebpf::cty::c_void, } +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, +>; +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 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_, +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: ::aya_ebpf::cty::c_int, + arg4: bool_, + ) -> ::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 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_, +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, + >, } #[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, +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(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, +#[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 ethtool_eth_phy_stats__bindgen_ty_1__bindgen_ty_1 { - pub SymbolErrorDuringCarrier: u64_, +pub struct nlattr { + pub nla_len: __u16, + pub nla_type: __u16, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct ethtool_eth_phy_stats__bindgen_ty_1__bindgen_ty_2 { - pub SymbolErrorDuringCarrier: u64_, +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_; 20usize], + pub cookie_len: u8_, + pub _msg_buf: [::aya_ebpf::cty::c_char; 80usize], } #[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, +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 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_, +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 ethtool_eth_ctrl_stats__bindgen_ty_1__bindgen_ty_2 { - pub MACControlFramesTransmitted: u64_, - pub MACControlFramesReceived: u64_, - pub UnsupportedOpcodesReceived: u64_, +pub struct nla_policy__bindgen_ty_1__bindgen_ty_1 { + pub min: s16, + pub max: s16, } #[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, +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 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, +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 ethtool_pause_stats__bindgen_ty_1__bindgen_ty_1 { - pub tx_pause_frames: u64_, - pub rx_pause_frames: u64_, +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 ethtool_pause_stats__bindgen_ty_1__bindgen_ty_2 { - pub tx_pause_frames: u64_, - pub rx_pause_frames: u64_, +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 ethtool_fec_stat { - pub total: u64_, - pub lanes: [u64_; 8usize], +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(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, +pub struct ifla_vf_guid { + pub vf: __u32, + pub guid: __u64, } #[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, +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 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_; 10usize], - pub hist_tx: [u64_; 10usize], +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 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_; 10usize], - pub hist_tx: [u64_; 10usize], +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; #[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_, +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 ethtool_module_power_mode_params { - pub policy: ethtool_module_power_mode_policy::Type, - pub mode: ethtool_module_power_mode::Type, +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(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_, +pub struct gro_list { + pub list: list_head, + pub count: ::aya_ebpf::cty::c_int, } #[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_, +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: ::aya_ebpf::cty::c_int, + pub gro_bitmask: ::aya_ebpf::cty::c_ulong, + 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 gro_hash: [gro_list; 8usize], + pub skb: *mut sk_buff, + pub rx_list: list_head, + pub rx_count: ::aya_ebpf::cty::c_int, + pub napi_id: ::aya_ebpf::cty::c_uint, + pub timer: hrtimer, + pub thread: *mut task_struct, + pub dev_list: list_head, + pub napi_hash_node: hlist_node, + pub irq: ::aya_ebpf::cty::c_int, } #[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_, +#[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 numa_node: ::aya_ebpf::cty::c_int, + 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 napi: *mut napi_struct, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 56usize]>, + 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 _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 40usize]>, + pub dql: dql, } #[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_, +#[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)] -#[derive(Debug, Copy, Clone)] -pub struct reciprocal_value { - pub m: u32_, - pub sh1: u8_, - pub sh2: u8_, +#[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, Copy, Clone)] -pub struct kmem_cache_order_objects { - pub x: ::aya_ebpf::cty::c_uint, +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 kmem_cache { - pub cpu_slab: *mut kmem_cache_cpu, - 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 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; 32usize], +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(Copy, Clone)] -pub struct fs_struct { - pub users: ::aya_ebpf::cty::c_int, - pub lock: spinlock_t, - pub seq: seqcount_spinlock_t, - pub umask: ::aya_ebpf::cty::c_int, - pub in_exec: ::aya_ebpf::cty::c_int, - pub root: path, - pub pwd: path, +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; } #[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, +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 posix_acl_entry__bindgen_ty_1 { - pub e_uid: kuid_t, - pub e_gid: kgid_t, +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)] -pub struct posix_acl { - pub a_refcount: refcount_t, - pub a_rcu: callback_head, - pub a_count: ::aya_ebpf::cty::c_uint, - pub a_entries: __IncompleteArrayField, +#[derive(Debug, Copy, Clone)] +pub struct net_device_path__bindgen_ty_1__bindgen_ty_1 { + pub id: u16_, + pub proto: __be16, + pub h_dest: [u8_; 6usize], } #[repr(C)] -#[derive(Copy, Clone)] -pub struct file_lock_context { - pub flc_lock: spinlock_t, - pub flc_flock: list_head, - pub flc_posix: list_head, - pub flc_lease: list_head, +#[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 type fsnotify_connp_t = *mut fsnotify_mark_connector; -#[repr(C)] -#[derive(Copy, Clone)] -pub struct fsnotify_mark_connector { - pub lock: spinlock_t, - pub type_: ::aya_ebpf::cty::c_ushort, - pub flags: ::aya_ebpf::cty::c_ushort, - pub __bindgen_anon_1: fsnotify_mark_connector__bindgen_ty_1, - pub list: hlist_head, +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(Copy, Clone)] -pub union fsnotify_mark_connector__bindgen_ty_1 { - pub obj: *mut fsnotify_connp_t, - pub destroy_next: *mut fsnotify_mark_connector, +#[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 nlm_lockowner { - _unused: [u8; 0], +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 nfs_lock_info { - pub state: u32_, - pub owner: *mut nlm_lockowner, - pub list: list_head, +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 nfs4_lock_info { - pub owner: *mut nfs4_lock_state, +pub struct net_device_path_ctx__bindgen_ty_1 { + pub id: u16_, + pub proto: __be16, +} +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 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; } #[repr(C)] #[derive(Copy, Clone)] -pub struct file_lock { - pub fl_blocker: *mut file_lock, - pub fl_list: list_head, - pub fl_link: hlist_node, - pub fl_blocked_requests: list_head, - pub fl_blocked_member: list_head, - pub fl_owner: fl_owner_t, - pub fl_flags: ::aya_ebpf::cty::c_uint, - pub fl_type: ::aya_ebpf::cty::c_uchar, - pub fl_pid: ::aya_ebpf::cty::c_uint, - pub fl_link_cpu: ::aya_ebpf::cty::c_int, - pub fl_wait: wait_queue_head_t, - pub fl_file: *mut file, - pub fl_start: loff_t, - pub fl_end: loff_t, - 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_ops: *const file_lock_operations, - pub fl_lmops: *const lock_manager_operations, - pub fl_u: file_lock__bindgen_ty_1, +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 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, +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 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, +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 file_lock__bindgen_ty_1__bindgen_ty_2 { - pub inode: *mut inode, +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 xfrmdev_ops { + pub xdo_dev_state_add: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut xfrm_state, + arg2: *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(Debug, Copy, Clone)] -pub struct file_lock_operations { - pub fl_copy_lock: - ::core::option::Option, - pub fl_release_private: ::core::option::Option, +#[derive(Debug)] +pub struct dev_ifalias { + pub rcuhead: callback_head, + pub ifalias: __IncompleteArrayField<::aya_ebpf::cty::c_char>, } #[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< +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, + arg2: *mut netpoll_info, + ) -> ::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 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 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 file_lock, - arg2: ::aya_ebpf::cty::c_int, + arg1: *mut net_device, + arg2: *mut netdev_bpf, ) -> ::aya_ebpf::cty::c_int, >, - pub lm_break: ::core::option::Option bool_>, - pub lm_change: ::core::option::Option< + pub ndo_xdp_xmit: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut file_lock, + arg1: *mut net_device, arg2: ::aya_ebpf::cty::c_int, - arg3: *mut list_head, + arg3: *mut *mut xdp_frame, + arg4: u32_, ) -> ::aya_ebpf::cty::c_int, >, - pub lm_setup: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut file_lock, arg2: *mut *mut ::aya_ebpf::cty::c_void), - >, - pub lm_breaker_owns_lease: - ::core::option::Option bool_>, - pub lm_lock_expirable: - ::core::option::Option bool_>, - pub lm_expire_lock: ::core::option::Option, -} -pub type nlink_t = u32_; -#[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 ndo_xdp_get_xmit_slave: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut net_device, arg2: *mut xdp_buff) -> *mut net_device, >, - pub proc_read: ::core::option::Option< + pub ndo_xsk_wakeup: ::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, + arg1: *mut net_device, + arg2: u32_, + arg3: u32_, + ) -> ::aya_ebpf::cty::c_int, >, - pub proc_write: ::core::option::Option< + pub ndo_tunnel_ctl: ::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, + arg1: *mut net_device, + arg2: *mut ip_tunnel_parm, + arg3: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, >, - pub proc_ioctl: ::core::option::Option< + 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 file, - arg2: ::aya_ebpf::cty::c_uint, - arg3: ::aya_ebpf::cty::c_ulong, - ) -> ::aya_ebpf::cty::c_long, + arg1: *mut net_device_path_ctx, + arg2: *mut net_device_path, + ) -> ::aya_ebpf::cty::c_int, >, - pub proc_compat_ioctl: ::core::option::Option< + pub ndo_get_tstamp: ::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, + arg1: *mut net_device, + arg2: *const skb_shared_hwtstamps, + arg3: bool_, + ) -> ktime_t, >, - pub proc_get_unmapped_area: ::core::option::Option< + pub ndo_hwtstamp_get: ::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, + arg1: *mut net_device, + arg2: *mut kernel_hwtstamp_config, + ) -> ::aya_ebpf::cty::c_int, >, -} -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 proc_dops: *const dentry_operations, - 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< + pub ndo_hwtstamp_set: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut seq_file, - arg2: *mut ::aya_ebpf::cty::c_void, + arg1: *mut net_device, + arg2: *mut kernel_hwtstamp_config, + arg3: *mut netlink_ext_ack, ) -> ::aya_ebpf::cty::c_int, >, } #[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(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 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(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: *mut 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 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 - } -} -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; -} -#[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 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 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 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 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 fn new_bitfield_1( - rt_mtu_locked: u32_, - rt_pmtu: u32_, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let rt_mtu_locked: u32 = unsafe { ::core::mem::transmute(rt_mtu_locked) }; - rt_mtu_locked as u64 - }); - __bindgen_bitfield_unit.set(1usize, 31u8, { - let rt_pmtu: u32 = unsafe { ::core::mem::transmute(rt_pmtu) }; - rt_pmtu as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct in_addr { - pub s_addr: __be32, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct udp_table { - pub hash: *mut udp_hslot, - pub hash2: *mut udp_hslot, - pub mask: ::aya_ebpf::cty::c_uint, - pub log: ::aya_ebpf::cty::c_uint, -} -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_CONST_SIZE: Type = 5; - pub const ARG_CONST_SIZE_OR_ZERO: Type = 6; - pub const ARG_PTR_TO_CTX: Type = 7; - pub const ARG_ANYTHING: Type = 8; - pub const ARG_PTR_TO_SPIN_LOCK: Type = 9; - pub const ARG_PTR_TO_SOCK_COMMON: Type = 10; - pub const ARG_PTR_TO_INT: Type = 11; - pub const ARG_PTR_TO_LONG: Type = 12; - pub const ARG_PTR_TO_SOCKET: Type = 13; - pub const ARG_PTR_TO_BTF_ID: Type = 14; - pub const ARG_PTR_TO_RINGBUF_MEM: Type = 15; - pub const ARG_CONST_ALLOC_SIZE_OR_ZERO: Type = 16; - pub const ARG_PTR_TO_BTF_ID_SOCK_COMMON: Type = 17; - pub const ARG_PTR_TO_PERCPU_BTF_ID: Type = 18; - pub const ARG_PTR_TO_FUNC: Type = 19; - pub const ARG_PTR_TO_STACK: Type = 20; - pub const ARG_PTR_TO_CONST_STR: Type = 21; - pub const ARG_PTR_TO_TIMER: Type = 22; - pub const ARG_PTR_TO_KPTR: Type = 23; - pub const ARG_PTR_TO_DYNPTR: Type = 24; - pub const __BPF_ARG_TYPE_MAX: Type = 25; - 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 = 263; - pub const ARG_PTR_TO_SOCKET_OR_NULL: Type = 269; - pub const ARG_PTR_TO_STACK_OR_NULL: Type = 276; - pub const ARG_PTR_TO_BTF_ID_OR_NULL: Type = 270; - pub const ARG_PTR_TO_UNINIT_MEM: Type = 32772; - pub const ARG_PTR_TO_FIXED_SIZE_MEM: Type = 262148; - pub const __BPF_ARG_TYPE_LIMIT: Type = 33554431; -} -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 = 33554431; -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct udp_hslot { - pub head: hlist_head, - pub count: ::aya_ebpf::cty::c_int, - pub lock: spinlock_t, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct mptcp_mib { - pub mibs: [::aya_ebpf::cty::c_ulong; 59usize], -} -pub type smp_call_func_t = - ::core::option::Option; -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, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct eventfs_entry { - pub name: *const ::aya_ebpf::cty::c_char, - pub callback: eventfs_callback, -} -#[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 is_signed: ::aya_ebpf::cty::c_int, - pub len: ::aya_ebpf::cty::c_int, -} -pub type __u128 = u128; -pub type u128_ = __u128; -pub type freelist_full_t = u128_; -#[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)] -#[repr(align(16))] -#[derive(Copy, Clone)] -pub struct slab { - pub __page_flags: ::aya_ebpf::cty::c_ulong, - pub slab_cache: *mut kmem_cache, - pub __bindgen_anon_1: slab__bindgen_ty_1, - pub __unused: ::aya_ebpf::cty::c_uint, - pub __page_refcount: atomic_t, - pub memcg_data: ::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 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)] -#[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 mod hwtstamp_source { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const HWTSTAMP_SOURCE_NETDEV: Type = 0; + pub const HWTSTAMP_SOURCE_PHYLIB: Type = 1; } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct slab__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { - 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, +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, } #[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, +#[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(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, +#[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)] -#[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]>, +pub struct pcpu_dstats { + pub rx_packets: u64_, + pub rx_bytes: u64_, + pub rx_drops: u64_, + pub tx_packets: u64_, + pub tx_bytes: u64_, + pub tx_drops: u64_, + pub syncp: u64_stats_sync, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>, } -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 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 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) - } - } +impl pcpu_dstats { #[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 - }); + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); __bindgen_bitfield_unit } } -#[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_lock_t, -} -#[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, +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; } #[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, -} -#[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 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(Copy, Clone)] -pub struct watch_list { - pub rcu: callback_head, - pub watchers: hlist_head, - pub release_watch: ::core::option::Option, - pub lock: spinlock_t, +#[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 type iw_handler = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut net_device, + arg2: *mut iw_request_info, + arg3: *mut iwreq_data, + arg4: *mut ::aya_ebpf::cty::c_char, + ) -> ::aya_ebpf::cty::c_int, +>; #[repr(C)] -#[derive(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, +#[derive(Debug, Copy, Clone)] +pub struct iw_handler_def { + pub standard: *const iw_handler, + pub num_standard: __u16, + pub num_private: __u16, + pub num_private_args: __u16, + pub private: *const iw_handler, + pub private_args: *const iw_priv_args, + pub get_wireless_stats: + ::core::option::Option *mut iw_statistics>, } -#[repr(C)] -#[derive(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 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; } #[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 struct ethtool_ops { + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub supported_coalesce_params: u32_, + pub supported_ring_params: 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_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_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 ethtool_ts_info, + ) -> ::aya_ebpf::cty::c_int, + >, + 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), + >, + 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 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), >, - 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, -} -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; -} -#[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 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, -} -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; -} -#[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_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 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(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 iommu_mm_data { - pub pasid: u32_, - pub sva_domains: list_head, - pub sva_handles: list_head, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct dev_iommu { - pub lock: mutex, - pub fault_param: *mut iommu_fault_param, - pub iopf_param: *mut iopf_device_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 { +impl ethtool_ops { #[inline] - pub fn attach_deferred(&self) -> u32_ { + pub fn cap_link_lanes_supported(&self) -> u32_ { unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } } #[inline] - pub fn set_attach_deferred(&mut self, val: u32_) { + pub fn set_cap_link_lanes_supported(&mut self, val: u32_) { unsafe { let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(0usize, 1u8, val as u64) } } #[inline] - pub fn pci_32bit_workaround(&self) -> u32_ { + pub fn cap_rss_ctx_supported(&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_) { + pub fn set_cap_rss_ctx_supported(&mut self, val: u32_) { unsafe { let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(1usize, 1u8, val as u64) } } #[inline] - pub fn require_direct(&self) -> u32_ { + pub fn cap_rss_sym_xor_supported(&self) -> u32_ { unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } } #[inline] - pub fn set_require_direct(&mut self, val: u32_) { + pub fn set_cap_rss_sym_xor_supported(&mut self, val: u32_) { unsafe { let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(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 fn new_bitfield_1( - attach_deferred: u32_, - pci_32bit_workaround: u32_, - require_direct: u32_, - shadow_on_flush: u32_, + cap_link_lanes_supported: u32_, + cap_rss_ctx_supported: u32_, + cap_rss_sym_xor_supported: 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 + let cap_link_lanes_supported: u32 = + unsafe { ::core::mem::transmute(cap_link_lanes_supported) }; + cap_link_lanes_supported 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 + let cap_rss_ctx_supported: u32 = + unsafe { ::core::mem::transmute(cap_rss_ctx_supported) }; + cap_rss_ctx_supported 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 + let cap_rss_sym_xor_supported: u32 = + unsafe { ::core::mem::transmute(cap_rss_sym_xor_supported) }; + cap_rss_sym_xor_supported as u64 }); __bindgen_bitfield_unit } } #[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(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_, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct iommu_fault_unrecoverable { - pub reason: __u32, - pub flags: __u32, - pub pasid: __u32, - pub perm: __u32, - pub addr: __u64, - pub fetch_addr: __u64, +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 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(Copy, Clone)] -pub struct iommu_fault { - pub type_: __u32, - pub padding: __u32, - pub __bindgen_anon_1: iommu_fault__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union iommu_fault__bindgen_ty_1 { - pub event: iommu_fault_unrecoverable, - pub prm: iommu_fault_page_request, - pub padding2: [__u8; 56usize], +pub struct ndisc_ops { + pub is_useropt: + ::core::option::Option ::aya_ebpf::cty::c_int>, + 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_, + ), + >, } -pub mod iommu_page_response_code { +pub mod tls_offload_ctx_dir { pub type Type = ::aya_ebpf::cty::c_uint; - pub const IOMMU_PAGE_RESP_SUCCESS: Type = 0; - pub const IOMMU_PAGE_RESP_INVALID: Type = 1; - pub const IOMMU_PAGE_RESP_FAILURE: Type = 2; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct iommu_page_response { - pub argsz: __u32, - pub version: __u32, - pub flags: __u32, - pub pasid: __u32, - pub grpid: __u32, - pub code: __u32, + pub const TLS_OFFLOAD_CTX_DIR_RX: Type = 0; + pub const TLS_OFFLOAD_CTX_DIR_TX: Type = 1; } -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(Debug, Copy, Clone)] -pub struct iommu_domain_geometry { - pub aperture_start: dma_addr_t, - pub aperture_end: dma_addr_t, - pub force_aperture: bool_, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct iommu_domain { - pub type_: ::aya_ebpf::cty::c_uint, - 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 iova_cookie: *mut iommu_dma_cookie, - pub iopf_handler: ::core::option::Option< +pub struct tlsdev_ops { + pub tls_dev_add: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut iommu_fault, - arg2: *mut ::aya_ebpf::cty::c_void, - ) -> iommu_page_response_code::Type, + 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, >, - pub fault_data: *mut ::aya_ebpf::cty::c_void, - pub __bindgen_anon_1: iommu_domain__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union iommu_domain__bindgen_ty_1 { - 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, } -pub type iommu_dev_fault_handler_t = ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut iommu_fault, - arg2: *mut ::aya_ebpf::cty::c_void, - ) -> ::aya_ebpf::cty::c_int, ->; -pub type ioasid_t = ::aya_ebpf::cty::c_uint; #[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 struct rtnl_link_ops { + pub list: list_head, + 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 set_dev_pasid: ::core::option::Option< + pub setup: ::core::option::Option, + pub netns_refund: bool_, + pub maxtype: ::aya_ebpf::cty::c_uint, + pub policy: *const nla_policy, + pub validate: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut iommu_domain, - arg2: *mut device, - arg3: ioasid_t, + arg1: *mut *mut nlattr, + arg2: *mut *mut nlattr, + arg3: *mut netlink_ext_ack, ) -> ::aya_ebpf::cty::c_int, >, - pub map_pages: ::core::option::Option< + pub newlink: ::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, + arg1: *mut net, + arg2: *mut net_device, + arg3: *mut *mut nlattr, + arg4: *mut *mut nlattr, + arg5: *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 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 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 flush_iotlb_all: ::core::option::Option, - pub iotlb_sync_map: ::core::option::Option< + 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 iommu_domain, - arg2: ::aya_ebpf::cty::c_ulong, - arg3: usize, + 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 iotlb_sync: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut iommu_domain, arg2: *mut iommu_iotlb_gather), + pub get_slave_size: ::core::option::Option< + unsafe extern "C" fn(arg1: *const net_device, arg2: *const net_device) -> usize, >, - pub cache_invalidate_user: ::core::option::Option< + pub fill_slave_info: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut iommu_domain, - arg2: *mut iommu_user_data_array, + arg1: *mut sk_buff, + arg2: *const net_device, + arg3: *const net_device, ) -> ::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 enable_nesting: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut iommu_domain) -> ::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 set_pgtable_quirks: ::core::option::Option< + pub fill_linkxstats: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut iommu_domain, - arg2: ::aya_ebpf::cty::c_ulong, + 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, >, - pub free: ::core::option::Option, } #[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 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 read_and_clear_dirty: ::core::option::Option< + pub get_queue_stats_tx: ::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, + 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, + ), >, -} -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_dev_features { - pub type Type = ::aya_ebpf::cty::c_uint; - pub const IOMMU_DEV_FEAT_SVA: Type = 0; - pub const IOMMU_DEV_FEAT_IOPF: Type = 1; } #[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 struct macsec_ops { + pub mdo_dev_open: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut macsec_context) -> ::aya_ebpf::cty::c_int, >, - pub hw_info: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut device, - arg2: *mut u32_, - arg3: *mut u32_, - ) -> *mut ::aya_ebpf::cty::c_void, + pub mdo_dev_stop: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut macsec_context) -> ::aya_ebpf::cty::c_int, >, - pub domain_alloc: ::core::option::Option< - unsafe extern "C" fn(arg1: ::aya_ebpf::cty::c_uint) -> *mut iommu_domain, + pub mdo_add_secy: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut macsec_context) -> ::aya_ebpf::cty::c_int, >, - pub domain_alloc_user: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut device, - arg2: u32_, - arg3: *mut iommu_domain, - arg4: *const iommu_user_data, - ) -> *mut iommu_domain, + pub mdo_upd_secy: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut macsec_context) -> ::aya_ebpf::cty::c_int, >, - pub domain_alloc_paging: - ::core::option::Option *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: *mut of_phandle_args, - ) -> ::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 is_attach_deferred: - ::core::option::Option bool_>, - pub dev_enable_feat: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut device, - arg2: iommu_dev_features::Type, - ) -> ::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 dev_disable_feat: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut device, - arg2: iommu_dev_features::Type, - ) -> ::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 page_response: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut device, - arg2: *mut iommu_fault_event, - arg3: *mut iommu_page_response, - ) -> ::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 def_domain_type: - ::core::option::Option ::aya_ebpf::cty::c_int>, - pub remove_dev_pasid: - ::core::option::Option, - pub default_domain_ops: *const iommu_domain_ops, - pub pgsize_bitmap: ::aya_ebpf::cty::c_ulong, - pub owner: *mut module, - pub identity_domain: *mut iommu_domain, - pub blocked_domain: *mut iommu_domain, - pub default_domain: *mut iommu_domain, -} -#[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: list_head, - pub queued: bool_, -} -#[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_user_data { - pub type_: ::aya_ebpf::cty::c_uint, - pub uptr: *mut ::aya_ebpf::cty::c_void, - pub len: usize, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct iommu_user_data_array { - pub type_: ::aya_ebpf::cty::c_uint, - pub uptr: *mut ::aya_ebpf::cty::c_void, - pub entry_len: usize, - pub entry_num: u32_, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct iommu_fault_event { - pub fault: iommu_fault, - pub list: list_head, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct iommu_fault_param { - pub handler: iommu_dev_fault_handler_t, - pub data: *mut ::aya_ebpf::cty::c_void, - pub faults: list_head, - pub lock: mutex, -} -#[repr(C)] -#[derive(Debug)] -pub struct iommu_fwspec { - pub ops: *const iommu_ops, - pub iommu_fwnode: *mut fwnode_handle, - pub flags: u32_, - pub num_ids: ::aya_ebpf::cty::c_uint, - pub ids: __IncompleteArrayField, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct blk_integrity_iter { - pub prot_buf: *mut ::aya_ebpf::cty::c_void, - pub data_buf: *mut ::aya_ebpf::cty::c_void, - pub seed: sector_t, - pub data_size: ::aya_ebpf::cty::c_uint, - pub interval: ::aya_ebpf::cty::c_ushort, - pub tuple_size: ::aya_ebpf::cty::c_uchar, - pub disk_name: *const ::aya_ebpf::cty::c_char, + 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(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, +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 in_ifaddr { - pub hash: 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 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 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 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 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 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 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 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 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(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, +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 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, +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, 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 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 struct ethtool_wolinfo { + pub cmd: __u32, + pub supported: __u32, + pub wolopts: __u32, + pub sopass: [__u8; 6usize], } #[repr(C)] -#[derive(Copy, Clone)] -pub union xfrm_address_t { - pub a4: __be32, - pub a6: [__be32; 4usize], - pub in6: in6_addr, +#[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(Copy, Clone)] -pub struct xfrm_id { - pub daddr: xfrm_address_t, - pub spi: __be32, - pub proto: __u8, +#[derive(Debug)] +pub struct ethtool_regs { + pub cmd: __u32, + pub version: __u32, + pub len: __u32, + pub data: __IncompleteArrayField<__u8>, } #[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>, +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 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, +#[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 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, +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 xfrm_lifetime_cur { - pub bytes: __u64, - pub packets: __u64, - pub add_time: __u64, - pub use_time: __u64, +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 xfrm_replay_state { - pub oseq: __u32, - pub seq: __u32, - pub bitmap: __u32, +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)] -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>, +#[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)] -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>, +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_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_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_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_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_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_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_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; } #[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>, +pub struct ethtool_test { + pub cmd: __u32, + pub flags: __u32, + pub reserved: __u32, + pub len: __u32, + pub data: __IncompleteArrayField<__u64>, } #[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>, +pub struct ethtool_stats { + pub cmd: __u32, + pub n_stats: __u32, + pub data: __IncompleteArrayField<__u64>, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct xfrm_stats { - pub replay_window: __u32, - pub replay: __u32, - pub integrity_failed: __u32, +pub struct ethtool_tcpip4_spec { + pub ip4src: __be32, + pub ip4dst: __be32, + pub psrc: __be16, + pub pdst: __be16, + pub tos: __u8, } #[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, +#[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 xfrm_mark { - pub v: __u32, - pub m: __u32, +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(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, +#[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 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, -} -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 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 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], +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, } -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 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 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 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 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 xfrm_mode { - pub encap: u8_, - pub family: u8_, - pub flags: u8_, +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], } #[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 bysrc: hlist_node, - pub byspi: hlist_node, - pub byseq: hlist_node, - pub refcnt: refcount_t, - pub lock: spinlock_t, - 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_2, - 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 encap_sk: *mut sock, - 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 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(Copy, Clone)] -pub union xfrm_state__bindgen_ty_1 { - pub gclist: hlist_node, - pub bydst: hlist_node, +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 struct xfrm_state__bindgen_ty_2 { - 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 trailer_len: ::aya_ebpf::cty::c_int, - pub extra_flags: u32_, - pub smark: xfrm_mark, +pub union ethtool_rxnfc__bindgen_ty_1 { + pub rule_cnt: __u32, + pub rss_context: __u32, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct xfrm_policy_walk_entry { - pub all: list_head, - pub dead: u8_, +pub struct ethtool_flash { + pub cmd: __u32, + pub region: __u32, + pub data: [::aya_ebpf::cty::c_char; 128usize], } #[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, +#[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(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_, +#[derive(Debug, Copy, Clone)] +pub struct ethtool_ts_info { + pub cmd: __u32, + pub so_timestamping: __u32, + pub phc_index: __s32, + pub tx_types: __u32, + pub tx_reserved: [__u32; 3usize], + pub rx_filters: __u32, + pub rx_reserved: [__u32; 3usize], } #[repr(C)] -#[derive(Copy, Clone)] -pub struct xfrm_policy { - pub xp_net: possible_net_t, - pub bydst: hlist_node, - pub byidx: hlist_node, - 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 bydst_inexact_list: hlist_node, - pub rcu: callback_head, - pub xdo: xfrm_dev_offload, +#[derive(Debug, Copy, Clone)] +pub struct ethtool_fecparam { + pub cmd: __u32, + pub active_fec: __u32, + pub fec: __u32, + pub reserved: __u32, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct dst_metrics { - pub metrics: [u32_; 17usize], - pub refcnt: refcount_t, +#[derive(Debug)] +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], + pub link_mode_masks: __IncompleteArrayField<__u32>, } #[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, +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_, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct fnhe_hash_bucket { - pub chain: *mut fib_nh_exception, +#[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 rt6_exception_bucket { - pub chain: hlist_head, - pub depth: ::aya_ebpf::cty::c_int, +pub struct ethtool_link_ext_stats { + pub link_down_events: u64_, +} +#[repr(C)] +#[derive(Debug)] +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 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, - >, +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 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, - >, +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(Copy, Clone)] -pub struct semaphore { - pub lock: raw_spinlock_t, - pub count: ::aya_ebpf::cty::c_uint, - pub wait_list: list_head, +#[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(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 mmap_changing: atomic_t, - pub mm: *mut mm_struct, +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 struct io_uring_task { - pub cached_refs: ::aya_ebpf::cty::c_int, - pub last: *const io_ring_ctx, - 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; 16usize]>, - pub __bindgen_anon_1: io_uring_task__bindgen_ty_1, +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 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]>, +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_, } -impl io_uring_task { - #[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 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_, } -pub type __kernel_rwf_t = ::aya_ebpf::cty::c_int; #[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, +#[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 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, +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 io_uring_sqe__bindgen_ty_1__bindgen_ty_1 { - pub cmd_op: __u32, - pub __pad1: __u32, +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(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, +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 io_uring_sqe__bindgen_ty_2__bindgen_ty_1 { - pub level: __u32, - pub optname: __u32, +pub struct ethtool_eth_ctrl_stats__bindgen_ty_1__bindgen_ty_1 { + pub MACControlFramesTransmitted: u64_, + pub MACControlFramesReceived: u64_, + pub UnsupportedOpcodesReceived: u64_, } #[repr(C)] -#[derive(Copy, Clone)] -pub union io_uring_sqe__bindgen_ty_3 { - pub rw_flags: __kernel_rwf_t, - 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, +#[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 union io_uring_sqe__bindgen_ty_4 { - pub buf_index: __u16, - pub buf_group: __u16, +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 io_uring_sqe__bindgen_ty_5 { - pub splice_fd_in: __s32, - pub file_index: __u32, - pub optlen: __u32, - pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_5__bindgen_ty_1, +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 io_uring_sqe__bindgen_ty_5__bindgen_ty_1 { - pub addr_len: __u16, - pub __pad3: [__u16; 1usize], +pub struct ethtool_pause_stats__bindgen_ty_1__bindgen_ty_1 { + pub tx_pause_frames: u64_, + pub rx_pause_frames: u64_, } #[repr(C)] -pub struct io_uring_sqe__bindgen_ty_6 { - pub __bindgen_anon_1: __BindgenUnionField, - pub optval: __BindgenUnionField<__u64>, - pub cmd: __BindgenUnionField<[__u8; 0usize]>, - pub bindgen_union_field: [u64; 2usize], +#[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 io_uring_sqe__bindgen_ty_6__bindgen_ty_1 { - pub addr3: __u64, - pub __pad2: [__u64; 1usize], +pub struct ethtool_fec_stat { + pub total: u64_, + pub lanes: [u64_; 8usize], } #[repr(C)] -#[derive(Debug)] -pub struct io_uring_cqe { - pub user_data: __u64, - pub res: __s32, - pub flags: __u32, - pub big_cqe: __IncompleteArrayField<__u64>, +#[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 io_wq_work_node { - pub next: *mut io_wq_work_node, +pub struct ethtool_rmon_hist_range { + pub low: u16_, + pub high: u16_, } #[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, +#[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(Debug, Copy, Clone)] -pub struct io_wq_work { - pub list: io_wq_work_node, - pub flags: ::aya_ebpf::cty::c_uint, - pub cancel_seq: ::aya_ebpf::cty::c_int, +#[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 io_fixed_file { - pub file_ptr: ::aya_ebpf::cty::c_ulong, +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_; 10usize], + pub hist_tx: [u64_; 10usize], } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct io_file_table { - pub files: *mut io_fixed_file, - pub bitmap: *mut ::aya_ebpf::cty::c_ulong, - pub alloc_hint: ::aya_ebpf::cty::c_uint, +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_; 10usize], + pub hist_tx: [u64_; 10usize], } #[repr(C)] -#[derive(Copy, Clone)] -pub struct io_hash_bucket { - pub lock: spinlock_t, - pub list: hlist_head, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 48usize]>, +#[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 io_hash_table { - pub hbs: *mut io_hash_bucket, - pub hash_bits: ::aya_ebpf::cty::c_uint, +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(Debug, Copy, Clone)] -pub struct io_submit_link { - pub head: *mut io_kiocb, - pub last: *mut io_kiocb, +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 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 submit_nr: ::aya_ebpf::cty::c_ushort, - pub cqes_count: ::aya_ebpf::cty::c_uint, - pub plug: blk_plug, +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 io_alloc_cache { - pub list: io_wq_work_node, - pub nr_cached: ::aya_ebpf::cty::c_uint, - pub max_cached: ::aya_ebpf::cty::c_uint, - pub elem_size: usize, +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 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_, +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 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_cqes: [io_uring_cqe; 16usize], - pub completion_lock: spinlock_t, - pub locked_free_list: io_wq_work_list, - pub locked_free_nr: ::aya_ebpf::cty::c_uint, - pub io_buffers_comp: list_head, - pub cq_overflow_list: list_head, - pub cancel_table: io_hash_table, - 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 personalities: xarray, - pub pers_next: u32_, - pub io_buffers_cache: list_head, - pub io_buf_list: hlist_head, - pub poll_wq: wait_queue_head, - pub restrictions: io_restriction, - pub dummy_ubuf: *mut io_mapped_ubuf, - pub file_data: *mut io_rsrc_data, - pub buf_data: *mut io_rsrc_data, - pub rsrc_ref_list: list_head, - pub rsrc_node_cache: io_alloc_cache, - pub rsrc_quiesce_wq: wait_queue_head, - pub rsrc_quiesce: ::aya_ebpf::cty::c_uint, - 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 iowq_limits_set: bool_, - pub poll_wq_task_work: callback_head, - pub defer_list: list_head, - pub sq_thread_idle: ::aya_ebpf::cty::c_uint, - pub evfd_last_cq_tail: ::aya_ebpf::cty::c_uint, - pub n_ring_pages: ::aya_ebpf::cty::c_ushort, - pub n_sqe_pages: ::aya_ebpf::cty::c_ushort, - pub ring_pages: *mut *mut page, - pub sqe_pages: *mut *mut page, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 48usize]>, +#[derive(Debug, Copy, Clone)] +pub struct netlink_range_validation { + pub min: u64_, + pub max: u64_, } #[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 notify_method: task_work_notify_mode::Type, - pub _bitfield_align_2: [u8; 0], - pub _bitfield_2: __BindgenBitfieldUnit<[u8; 16usize]>, - pub __bindgen_padding_0: u32, -} -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 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 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 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 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 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 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 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 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 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 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 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, - ) -> __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 - } - #[inline] - pub fn new_bitfield_2() -> __BindgenBitfieldUnit<[u8; 16usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); - __bindgen_bitfield_unit - } +pub struct netlink_range_validation_signed { + pub min: s64, + pub max: s64, } #[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 rsrc_node: *mut io_rsrc_node, - pub cancel_seq: atomic_t, - pub file_table: io_file_table, - pub nr_user_files: ::aya_ebpf::cty::c_uint, - pub nr_user_bufs: ::aya_ebpf::cty::c_uint, - pub user_bufs: *mut *mut io_mapped_ubuf, - pub submit_state: io_submit_state, - pub io_bl: *mut io_buffer_list, - pub io_bl_xa: xarray, - pub cancel_table_locked: io_hash_table, - pub apoll_cache: io_alloc_cache, - pub netmsg_cache: io_alloc_cache, - pub iopoll_list: io_wq_work_list, - pub poll_multi_queue: bool_, - pub cancelable_uring_cmd: hlist_head, +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_buckets: *mut *mut pneigh_entry, } #[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_extra: ::aya_ebpf::cty::c_uint, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, - pub __bindgen_padding_0: u32, -} -impl io_ring_ctx__bindgen_ty_3 { - #[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 io_ring_ctx__bindgen_ty_4 { - pub work_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; 16usize]>, -} -impl io_ring_ctx__bindgen_ty_4 { - #[inline] - pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); - __bindgen_bitfield_unit - } +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 io_ring_ctx__bindgen_ty_5 { - pub timeout_lock: 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 - } +#[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, + >, } -pub type free_work_fn = - ::core::option::Option *mut io_wq_work>; -pub type io_wq_work_fn = ::core::option::Option; #[repr(C)] -#[derive(Copy, Clone)] -pub struct io_wq_acct { - pub nr_workers: ::aya_ebpf::cty::c_uint, - pub max_workers: ::aya_ebpf::cty::c_uint, - pub index: ::aya_ebpf::cty::c_int, - pub nr_running: atomic_t, - pub lock: raw_spinlock_t, - pub work_list: io_wq_work_list, - pub flags: ::aya_ebpf::cty::c_ulong, +#[derive(Debug)] +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 flags: u32_, + pub protocol: u8_, + pub key: __IncompleteArrayField, } #[repr(C)] -#[derive(Copy, Clone)] -pub struct io_wq { - pub state: ::aya_ebpf::cty::c_ulong, - pub free_work: free_work_fn, - pub do_work: io_wq_work_fn, - 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 lock: raw_spinlock_t, - pub free_list: hlist_nulls_head, - pub all_list: list_head, - pub wait: wait_queue_entry, - pub hash_tail: [*mut io_wq_work; 64usize], - pub cpu_mask: cpumask_var_t, +#[derive(Debug, Copy, Clone)] +pub struct neigh_hash_table { + pub hash_buckets: *mut *mut neighbour, + 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 io_uring { - pub head: u32_, - pub tail: u32_, +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)] -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 - } +#[derive(Debug, Copy, Clone)] +pub struct fib_rule_port_range { + pub start: __u16, + pub end: __u16, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct io_cmd_data { - pub file: *mut file, - pub data: [__u8; 56usize], +pub struct fib_kuid_range { + pub start: kuid_t, + pub end: kuid_t, } #[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, +#[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 rcu: callback_head, } #[repr(C)] -#[derive(Copy, Clone)] -pub union io_cqe__bindgen_ty_1 { - pub flags: __u32, - pub fd: ::aya_ebpf::cty::c_int, +#[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, } -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, +pub struct smc_hashinfo { + _unused: [u8; 0], } #[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 flags: ::aya_ebpf::cty::c_uint, - pub cqe: io_cqe, - pub ctx: *mut io_ring_ctx, - pub task: *mut task_struct, - pub rsrc_node: *mut io_rsrc_node, - pub __bindgen_anon_2: io_kiocb__bindgen_ty_2, - pub __bindgen_anon_3: io_kiocb__bindgen_ty_3, - pub refs: atomic_t, - pub poll_refs: atomic_t, - pub io_task_work: io_task_work, - pub nr_tw: ::aya_ebpf::cty::c_uint, - pub hash_node: hlist_node, - pub apoll: *mut async_poll, - pub async_data: *mut ::aya_ebpf::cty::c_void, - pub link: *mut io_kiocb, - pub creds: *const cred, - pub work: io_wq_work, - pub big_cqe: io_kiocb__bindgen_ty_4, +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: ::aya_ebpf::cty::c_int, + arg3: *mut ::aya_ebpf::cty::c_int, + arg4: bool_, + ) -> *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 forward_alloc_get: + ::core::option::Option ::aya_ebpf::cty::c_int>, + 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 orphan_count: *mut ::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 io_kiocb__bindgen_ty_1 { - pub file: *mut file, - pub cmd: io_cmd_data, +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(Copy, Clone)] -pub union io_kiocb__bindgen_ty_2 { - pub imu: *mut io_mapped_ubuf, - pub kbuf: *mut io_buffer, - pub buf_list: *mut io_buffer_list, +#[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_device { + pub mibs: [atomic_long_t; 512usize], } #[repr(C)] #[derive(Copy, Clone)] -pub union io_kiocb__bindgen_ty_3 { - pub comp_list: io_wq_work_node, - pub apoll_events: __poll_t, +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(Debug, Copy, Clone)] -pub struct io_kiocb__bindgen_ty_4 { - pub extra1: u64_, - pub extra2: u64_, +#[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 io_ev_fd { - pub cq_ev_fd: *mut eventfd_ctx, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, +#[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 refs: atomic_t, - pub ops: atomic_t, -} -impl io_ev_fd { - #[inline] - pub fn eventfd_async(&self) -> ::aya_ebpf::cty::c_uint { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - #[inline] - pub fn set_eventfd_async(&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 fn new_bitfield_1( - eventfd_async: ::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 eventfd_async: u32 = unsafe { ::core::mem::transmute(eventfd_async) }; - eventfd_async as u64 - }); - __bindgen_bitfield_unit - } + pub tb_data: *mut ::aya_ebpf::cty::c_ulong, + pub __data: __IncompleteArrayField<::aya_ebpf::cty::c_ulong>, } #[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, +pub struct inet_peer_base { + pub rb_root: rb_root, + pub lock: seqlock_t, + pub total: ::aya_ebpf::cty::c_int, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct io_tw_state { - pub locked: bool_, -} -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; +#[derive(Copy, Clone)] +pub struct ipv6_stable_secret { + pub initialized: bool_, + pub secret: in6_addr, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct dpll_pin_phase_adjust_range { - pub min: s32, - pub max: s32, +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 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 sysctl_header: *mut ctl_table_header, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct dpll_pin_properties { - pub board_label: *const ::aya_ebpf::cty::c_char, - pub panel_label: *const ::aya_ebpf::cty::c_char, - pub package_label: *const ::aya_ebpf::cty::c_char, - pub type_: dpll_pin_type::Type, - pub capabilities: ::aya_ebpf::cty::c_ulong, - pub freq_supported_num: u32_, - pub freq_supported: *mut dpll_pin_frequency, - pub phase_range: dpll_pin_phase_adjust_range, +pub 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)] -#[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 prop: dpll_pin_properties, - pub refcount: refcount_t, +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, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct dpll_pin_frequency { - pub min: u64_, - pub max: u64_, + pub ra_mtu: ::aya_ebpf::cty::c_uint, } pub mod devlink_port_type { pub type Type = ::aya_ebpf::cty::c_uint; @@ -29999,3581 +25232,6091 @@ pub union devlink_port_attrs__bindgen_ty_1 { pub pci_vf: devlink_port_pci_vf_attrs, pub pci_sf: devlink_port_pci_sf_attrs, } -impl devlink_port_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 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 fn new_bitfield_1(split: u8_, splittable: 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 + } +} +#[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 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 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 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 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 + } +} +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_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_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_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 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_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_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_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; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct firmware { + pub size: usize, + pub data: *const u8_, + pub priv_: *mut ::aya_ebpf::cty::c_void, +} +#[repr(C)] +#[derive(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_, +} +#[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, +} +#[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 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 + } +} +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 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; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_mad { + _unused: [u8; 0], +} +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 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_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_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; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct uverbs_attr_bundle { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rdma_cm_id { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iw_cm_id { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iw_cm_conn_param { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_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 ib_udata, + ) -> ::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 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_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_udata, + ) -> *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 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) -> ::aya_ebpf::cty::c_int, + >, + pub counter_unbind_qp: + ::core::option::Option ::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 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 size_ib_ah: usize, + pub size_ib_counters: usize, + pub size_ib_cq: 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, +} +impl ib_device_ops { #[inline] - pub fn split(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + 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_split(&mut self, val: u8_) { + pub fn set_uverbs_no_driver_id_binding(&mut self, val: ::aya_ebpf::cty::c_uint) { unsafe { - let val: u8 = ::core::mem::transmute(val); + let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(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 fn new_bitfield_1(split: u8_, splittable: u8_) -> __BindgenBitfieldUnit<[u8; 1usize]> { + 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 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 + 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(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_, +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(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, +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; } #[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], +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 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 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 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 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 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 - } -} -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_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_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_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 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 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, } -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; +#[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_, } -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; +#[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_, } -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; +#[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(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_, +#[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(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, +#[derive(Debug, Copy, Clone)] +pub struct hw_stats_device_data { + _unused: [u8; 0], } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct devlink_rate__bindgen_ty_1__bindgen_ty_1 { +pub struct rdmacg_device { + pub dev_node: list_head, + pub rpools: list_head, pub name: *mut ::aya_ebpf::cty::c_char, - pub refcnt: refcount_t, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct devlink_dev_stats { - pub reload_stats: [u32_; 6usize], - pub remote_reload_stats: [u32_; 6usize], +pub struct rdma_restrack_root { + _unused: [u8; 0], } #[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, +#[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 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 rwork: rcu_work, - pub rel: *mut devlink_rel, - pub nested_rels: xarray, - pub priv_: __IncompleteArrayField<::aya_ebpf::cty::c_char>, + 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_, } -impl devlink { +#[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 reload_failed(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + pub fn is_switch(&self) -> u16_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) } } #[inline] - pub fn set_reload_failed(&mut self, val: u8_) { + pub fn set_is_switch(&mut self, val: u16_) { unsafe { - let val: u8 = ::core::mem::transmute(val); + let val: u16 = ::core::mem::transmute(val); self._bitfield_1.set(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 + 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 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 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 } -} -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 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; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct ib_mad { - _unused: [u8; 0], -} -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 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_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_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; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct uverbs_attr_bundle { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct rdma_cm_id { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct iw_cm_id { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct iw_cm_conn_param { - _unused: [u8; 0], } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct ib_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< +pub struct devlink_port_ops { + pub port_split: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut ib_srq, - arg2: *const ib_recv_wr, - arg3: *mut *const ib_recv_wr, + arg1: *mut devlink, + arg2: *mut devlink_port, + arg3: ::aya_ebpf::cty::c_uint, + arg4: *mut netlink_ext_ack, ) -> ::aya_ebpf::cty::c_int, >, - pub process_mad: ::core::option::Option< + pub port_unsplit: ::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_, + arg1: *mut devlink, + arg2: *mut devlink_port, + arg3: *mut netlink_ext_ack, ) -> ::aya_ebpf::cty::c_int, >, - pub query_device: ::core::option::Option< + pub port_type_set: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut ib_device, - arg2: *mut ib_device_attr, - arg3: *mut ib_udata, + arg1: *mut devlink_port, + arg2: devlink_port_type::Type, ) -> ::aya_ebpf::cty::c_int, >, - pub modify_device: ::core::option::Option< + pub port_del: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut ib_device, - arg2: ::aya_ebpf::cty::c_int, - arg3: *mut ib_device_modify, + arg1: *mut devlink, + arg2: *mut devlink_port, + arg3: *mut netlink_ext_ack, ) -> ::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< + pub port_fn_hw_addr_get: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut ib_device, - arg2: u32_, - arg3: *mut ib_port_attr, + 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 modify_port: ::core::option::Option< + pub port_fn_hw_addr_set: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut ib_device, - arg2: u32_, + arg1: *mut devlink_port, + arg2: *const u8_, 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, + arg4: *mut netlink_ext_ack, ) -> ::aya_ebpf::cty::c_int, >, - pub query_gid: ::core::option::Option< + pub port_fn_roce_get: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut ib_device, - arg2: u32_, - arg3: ::aya_ebpf::cty::c_int, - arg4: *mut ib_gid, + arg1: *mut devlink_port, + arg2: *mut bool_, + arg3: *mut netlink_ext_ack, ) -> ::aya_ebpf::cty::c_int, >, - pub add_gid: ::core::option::Option< + pub port_fn_roce_set: ::core::option::Option< unsafe extern "C" fn( - arg1: *const ib_gid_attr, - arg2: *mut *mut ::aya_ebpf::cty::c_void, + arg1: *mut devlink_port, + arg2: bool_, + arg3: *mut netlink_ext_ack, ) -> ::aya_ebpf::cty::c_int, >, - pub del_gid: ::core::option::Option< + pub port_fn_migratable_get: ::core::option::Option< unsafe extern "C" fn( - arg1: *const ib_gid_attr, - arg2: *mut *mut ::aya_ebpf::cty::c_void, + arg1: *mut devlink_port, + arg2: *mut bool_, + arg3: *mut netlink_ext_ack, ) -> ::aya_ebpf::cty::c_int, >, - pub query_pkey: ::core::option::Option< + pub port_fn_migratable_set: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut ib_device, - arg2: u32_, - arg3: u16_, - arg4: *mut u16_, + arg1: *mut devlink_port, + arg2: bool_, + arg3: *mut netlink_ext_ack, ) -> ::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< + pub port_fn_state_get: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut ib_ucontext, - arg2: *mut vm_area_struct, + 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 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< + pub port_fn_state_set: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut ib_ah, - arg2: *mut rdma_ah_init_attr, - arg3: *mut ib_udata, + arg1: *mut devlink_port, + arg2: devlink_port_fn_state::Type, + arg3: *mut netlink_ext_ack, ) -> ::aya_ebpf::cty::c_int, >, - pub create_user_ah: ::core::option::Option< + pub port_fn_ipsec_crypto_get: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut ib_ah, - arg2: *mut rdma_ah_init_attr, - arg3: *mut ib_udata, + arg1: *mut devlink_port, + arg2: *mut bool_, + arg3: *mut netlink_ext_ack, ) -> ::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< + pub port_fn_ipsec_crypto_set: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut ib_srq, - arg2: *mut ib_srq_init_attr, - arg3: *mut ib_udata, + arg1: *mut devlink_port, + arg2: bool_, + arg3: *mut netlink_ext_ack, ) -> ::aya_ebpf::cty::c_int, >, - pub modify_srq: ::core::option::Option< + pub port_fn_ipsec_packet_get: ::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, + arg1: *mut devlink_port, + arg2: *mut bool_, + arg3: *mut netlink_ext_ack, ) -> ::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< + pub port_fn_ipsec_packet_set: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut ib_qp, - arg2: *mut ib_qp_init_attr, - arg3: *mut ib_udata, + arg1: *mut devlink_port, + arg2: bool_, + arg3: *mut netlink_ext_ack, ) -> ::aya_ebpf::cty::c_int, >, - pub modify_qp: ::core::option::Option< +} +#[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 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 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 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_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_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_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 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 { + 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_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 ib_qp, - arg2: *mut ib_qp_attr, - arg3: ::aya_ebpf::cty::c_int, - arg4: *mut ib_udata, + 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 query_qp: ::core::option::Option< + pub reload_up: ::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, + 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 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< + pub sb_pool_get: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut ib_cq, - arg2: *const ib_cq_init_attr, - arg3: *mut ib_udata, + arg1: *mut devlink, + arg2: ::aya_ebpf::cty::c_uint, + arg3: u16_, + arg4: *mut devlink_sb_pool_info, ) -> ::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< + pub sb_pool_set: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut ib_cq, - arg2: ::aya_ebpf::cty::c_int, - arg3: *mut ib_udata, + 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 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_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_udata, - ) -> *mut ib_mr, - >, - pub rereg_user_mr: ::core::option::Option< + pub sb_port_pool_get: ::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, + arg1: *mut devlink_port, + arg2: ::aya_ebpf::cty::c_uint, + arg3: u16_, + arg4: *mut u32_, + ) -> ::aya_ebpf::cty::c_int, >, - pub alloc_mr_integrity: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut ib_pd, arg2: u32_, arg3: u32_) -> *mut ib_mr, + 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 advise_mr: ::core::option::Option< + pub sb_tc_pool_bind_get: ::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, + 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 map_mr_sg: ::core::option::Option< + pub sb_tc_pool_bind_set: ::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, + 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 check_mr_status: ::core::option::Option< + pub sb_occ_snapshot: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut ib_mr, - arg2: u32_, - arg3: *mut ib_mr_status, + arg1: *mut devlink, + arg2: ::aya_ebpf::cty::c_uint, ) -> ::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 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 dealloc_mw: - ::core::option::Option ::aya_ebpf::cty::c_int>, - pub attach_mcast: ::core::option::Option< + pub sb_occ_port_pool_get: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut ib_qp, - arg2: *mut ib_gid, + arg1: *mut devlink_port, + arg2: ::aya_ebpf::cty::c_uint, arg3: u16_, + arg4: *mut u32_, + arg5: *mut u32_, ) -> ::aya_ebpf::cty::c_int, >, - pub detach_mcast: ::core::option::Option< + pub sb_occ_tc_port_bind_get: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut ib_qp, - arg2: *mut ib_gid, + 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 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 eswitch_mode_get: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut devlink, arg2: *mut u16_) -> ::aya_ebpf::cty::c_int, >, - pub create_flow: ::core::option::Option< + pub eswitch_mode_set: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut ib_qp, - arg2: *mut ib_flow_attr, - arg3: *mut ib_udata, - ) -> *mut ib_flow, + arg1: *mut devlink, + arg2: u16_, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, >, - 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 eswitch_inline_mode_get: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut devlink, arg2: *mut u8_) -> ::aya_ebpf::cty::c_int, >, - pub set_vf_link_state: ::core::option::Option< + pub eswitch_inline_mode_set: ::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, + arg1: *mut devlink, + arg2: u8_, + arg3: *mut netlink_ext_ack, ) -> ::aya_ebpf::cty::c_int, >, - pub get_vf_config: ::core::option::Option< + pub eswitch_encap_mode_get: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut ib_device, - arg2: ::aya_ebpf::cty::c_int, - arg3: u32_, - arg4: *mut ifla_vf_info, + arg1: *mut devlink, + arg2: *mut devlink_eswitch_encap_mode::Type, ) -> ::aya_ebpf::cty::c_int, >, - pub get_vf_stats: ::core::option::Option< + pub eswitch_encap_mode_set: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut ib_device, - arg2: ::aya_ebpf::cty::c_int, - arg3: u32_, - arg4: *mut ifla_vf_stats, + arg1: *mut devlink, + arg2: devlink_eswitch_encap_mode::Type, + arg3: *mut netlink_ext_ack, ) -> ::aya_ebpf::cty::c_int, >, - pub get_vf_guid: ::core::option::Option< + pub info_get: ::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, + arg1: *mut devlink, + arg2: *mut devlink_info_req, + arg3: *mut netlink_ext_ack, ) -> ::aya_ebpf::cty::c_int, >, - pub set_vf_guid: ::core::option::Option< + pub flash_update: ::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, + arg1: *mut devlink, + arg2: *mut devlink_flash_update_params, + arg3: *mut netlink_ext_ack, ) -> ::aya_ebpf::cty::c_int, >, - pub create_wq: ::core::option::Option< + pub trap_init: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut ib_pd, - arg2: *mut ib_wq_init_attr, - arg3: *mut ib_udata, - ) -> *mut ib_wq, + arg1: *mut devlink, + arg2: *const devlink_trap, + arg3: *mut ::aya_ebpf::cty::c_void, + ) -> ::aya_ebpf::cty::c_int, >, - pub destroy_wq: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut ib_wq, arg2: *mut ib_udata) -> ::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 modify_wq: ::core::option::Option< + pub trap_action_set: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut ib_wq, - arg2: *mut ib_wq_attr, - arg3: u32_, - arg4: *mut ib_udata, + arg1: *mut devlink, + arg2: *const devlink_trap, + arg3: devlink_trap_action::Type, + arg4: *mut netlink_ext_ack, ) -> ::aya_ebpf::cty::c_int, >, - pub create_rwq_ind_table: ::core::option::Option< + pub trap_group_init: ::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, + arg1: *mut devlink, + arg2: *const devlink_trap_group, ) -> ::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 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 alloc_dm: ::core::option::Option< + pub trap_group_action_set: ::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, + arg1: *mut devlink, + arg2: *const devlink_trap_group, + arg3: devlink_trap_action::Type, + arg4: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, >, - pub dealloc_dm: ::core::option::Option< + pub trap_drop_counter_get: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut ib_dm, - arg2: *mut uverbs_attr_bundle, + arg1: *mut devlink, + arg2: *const devlink_trap, + arg3: *mut u64_, ) -> ::aya_ebpf::cty::c_int, >, - pub reg_dm_mr: ::core::option::Option< + pub trap_policer_init: ::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, + arg1: *mut devlink, + arg2: *const devlink_trap_policer, + ) -> ::aya_ebpf::cty::c_int, >, - pub create_counters: ::core::option::Option< + 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 ib_counters, - arg2: *mut uverbs_attr_bundle, + arg1: *mut devlink, + arg2: *const devlink_trap_policer, + arg3: u64_, + arg4: u64_, + arg5: *mut netlink_ext_ack, ) -> ::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 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 read_counters: ::core::option::Option< + pub port_new: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut ib_counters, - arg2: *mut ib_counters_read_attr, - arg3: *mut uverbs_attr_bundle, + 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 map_mr_sg_pi: ::core::option::Option< + pub rate_leaf_tx_share_set: ::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, + arg1: *mut devlink_rate, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: u64_, + arg4: *mut netlink_ext_ack, ) -> ::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 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 get_hw_stats: ::core::option::Option< + pub rate_leaf_tx_priority_set: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut ib_device, - arg2: *mut rdma_hw_stats, + arg1: *mut devlink_rate, + arg2: *mut ::aya_ebpf::cty::c_void, arg3: u32_, - arg4: ::aya_ebpf::cty::c_int, + arg4: *mut netlink_ext_ack, ) -> ::aya_ebpf::cty::c_int, >, - pub modify_hw_stat: ::core::option::Option< + pub rate_leaf_tx_weight_set: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut ib_device, - arg2: u32_, - arg3: ::aya_ebpf::cty::c_uint, - arg4: bool_, + arg1: *mut devlink_rate, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: u32_, + arg4: *mut netlink_ext_ack, ) -> ::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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 enable_driver: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut ib_device) -> ::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 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 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, >, - pub iw_connect: ::core::option::Option< +} +pub type irq_poll_fn = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut irq_poll, + arg2: ::aya_ebpf::cty::c_int, + ) -> ::aya_ebpf::cty::c_int, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct irq_poll { + pub list: list_head, + pub state: ::aya_ebpf::cty::c_ulong, + pub weight: ::aya_ebpf::cty::c_int, + pub poll: irq_poll_fn, +} +#[repr(C)] +#[derive(Debug)] +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 iw_cm_id, - arg2: *mut iw_cm_conn_param, + arg1: *mut net, + arg2: *mut sock, + arg3: *mut sk_buff, ) -> ::aya_ebpf::cty::c_int, >, - pub iw_accept: ::core::option::Option< + pub orig_input: + ::core::option::Option ::aya_ebpf::cty::c_int>, + pub rcu: callback_head, + pub data: __IncompleteArrayField<__u8>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct 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 rtx_syn_ack: ::core::option::Option< + unsafe extern "C" fn(arg1: *const sock, arg2: *mut request_sock) -> ::aya_ebpf::cty::c_int, + >, + 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, + pub destructor: ::core::option::Option, + pub syn_ack_timeout: ::core::option::Option, +} +#[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, + pub twsk_unique: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut iw_cm_id, - arg2: *mut iw_cm_conn_param, + arg1: *mut sock, + arg2: *mut sock, + arg3: *mut ::aya_ebpf::cty::c_void, ) -> ::aya_ebpf::cty::c_int, >, - pub iw_reject: ::core::option::Option< + pub twsk_destructor: ::core::option::Option, +} +#[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 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 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)] +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 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(Copy, Clone)] +pub struct ifmcaddr6 { + pub mca_addr: in6_addr, + pub idev: *mut inet6_dev, + pub next: *mut ifmcaddr6, + pub mca_sources: *mut ip6_sf_list, + pub mca_tomb: *mut ip6_sf_list, + pub mca_sfmode: ::aya_ebpf::cty::c_uint, + pub mca_crcount: ::aya_ebpf::cty::c_uchar, + pub mca_sfcount: [::aya_ebpf::cty::c_ulong; 2usize], + pub mca_work: delayed_work, + pub mca_flags: ::aya_ebpf::cty::c_uint, + pub mca_users: ::aya_ebpf::cty::c_int, + pub mca_refcnt: refcount_t, + pub mca_cstamp: ::aya_ebpf::cty::c_ulong, + pub mca_tstamp: ::aya_ebpf::cty::c_ulong, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct 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 nd_opt_hdr { + pub nd_opt_type: __u8, + pub nd_opt_len: __u8, +} +#[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(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, 6u8) as u8) } + } + #[inline] + pub fn set_reserved(&mut self, val: __u8) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 6u8, 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 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 fn new_bitfield_1( + reserved: __u8, + autoconf: __u8, + onlink: __u8, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 6u8, { + let reserved: u8 = unsafe { ::core::mem::transmute(reserved) }; + reserved 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 + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rdma_cgroup { + pub css: cgroup_subsys_state, + pub rpools: list_head, +} +#[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_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 { + 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_, +} +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_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_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_MAX: Type = 8; +} +#[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 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(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: *mut iw_cm_id, - arg2: *const ::aya_ebpf::cty::c_void, - arg3: u8_, + arg1: *const ::aya_ebpf::cty::c_char, + arg2: *mut net_device, ) -> ::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, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct auto_mode_param { + pub qp_type: ::aya_ebpf::cty::c_int, +} +#[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, +} +#[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)] +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(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_, +} +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_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; +} +#[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, +} +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; +} +#[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(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, +} +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; +} +#[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(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_dm_mr_attr { + pub length: u64_, + pub offset: u64_, + pub access_flags: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_dm_alloc_attr { + pub length: u64_, + pub alignment: u32_, + pub flags: u32_, +} +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_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; +} +#[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 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 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_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_port_modify { + pub set_port_cap_mask: u32_, + pub clr_port_cap_mask: u32_, + pub init_type: u8_, +} +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; +} +#[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 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; +} +#[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 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) -> ::aya_ebpf::cty::c_int, + 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 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 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_uqp_object { + _unused: [u8; 0], +} +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; +} +#[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 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 counter_unbind_qp: - ::core::option::Option ::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 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_usrq_object { + _unused: [u8; 0], +} +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; +} +#[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 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 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_uwq_object { + _unused: [u8; 0], +} +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; +} +#[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 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 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(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(Copy, Clone)] +pub struct ib_global_route { + pub sgid_attr: *const ib_gid_attr, + pub dgid: ib_gid, + pub flow_label: u32_, + pub sgid_index: u8_, + pub hop_limit: u8_, + pub traffic_class: u8_, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ib_grh { + pub version_tclass_flow: __be32, + pub paylen: __be16, + pub next_hdr: u8_, + pub hop_limit: u8_, + pub sgid: ib_gid, + pub dgid: ib_gid, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_mr_status { + pub fail_status: u32_, + pub sig_err: ib_sig_err, +} +#[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, +} +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; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_ah_attr { + pub dlid: u16_, + pub src_path_bits: u8_, +} +#[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, +} +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_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; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_cqe { + pub done: ::core::option::Option, +} +#[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_srq_attr { + pub max_wr: u32_, + pub max_sge: u32_, + pub srq_limit: 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(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 query_ucontext: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut ib_ucontext, - arg2: *mut uverbs_attr_bundle, - ) -> ::aya_ebpf::cty::c_int, + 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(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_, +} +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; +} +#[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 get_numa_node: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut ib_device) -> ::aya_ebpf::cty::c_int, + 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(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, +} +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_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_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; +} +#[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, +} +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; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_sge { + pub addr: u64_, + pub length: u32_, + pub lkey: u32_, +} +#[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_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(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 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(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_rdmacg_object { + pub cg: *mut rdma_cgroup, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ib_uverbs_file { + _unused: [u8; 0], +} +#[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 res: rdma_restrack_entry, + pub mmap_xa: xarray, +} +#[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(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(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_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 size_ib_ah: usize, - pub size_ib_counters: usize, - pub size_ib_cq: 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 create_flags: u32_, } -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 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_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_rwq_ind_table_init_attr { + pub log_ind_tbl_size: u32_, + pub ind_tbl: *mut *mut ib_wq, +} +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; +} +#[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(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, +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, } -pub mod ib_atomic_cap { +#[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_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_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, +} +pub mod ib_flow_attr_type { 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 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; +} +#[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, 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_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)] +#[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, +} +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; } #[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, +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_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, +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(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_, +pub struct ib_counters { + pub device: *mut ib_device, + pub uobject: *mut ib_uobject, + pub usecnt: atomic_t, +} +#[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_tm_caps { - pub max_rndv_hdr_size: u32_, - pub max_num_tags: u32_, +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 max_ops: u32_, - pub max_sge: u32_, + pub num_of_specs: u8_, + pub port: u32_, + pub flows: __IncompleteArrayField, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct ib_cq_caps { - pub max_cq_moderation_count: u16_, - pub max_cq_moderation_period: u16_, +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_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_, +pub struct ib_pkey_cache { + _unused: [u8; 0], } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct hw_stats_device_data { +pub struct ib_gid_table { _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, +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, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct rdma_restrack_root { - _unused: [u8; 0], +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 uapi_definition { +pub struct ib_port { _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 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 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(Copy, Clone)] -pub union ib_device__bindgen_ty_1 { - pub dev: device, - pub coredev: ib_core_device, +#[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, + >, } -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 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 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 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_counters_read_attr { + pub counters_buff: *mut u64_, + pub ncounters: u32_, + pub flags: u32_, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct devlink_port_ops { - pub port_split: ::core::option::Option< +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 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(Debug, 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)] +pub struct crypto_tfm { + pub refcnt: refcount_t, + pub crt_flags: u32_, + pub node: ::aya_ebpf::cty::c_int, + 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, 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 devlink, - arg2: *mut devlink_port, + arg1: *mut crypto_tfm, + arg2: *const u8_, 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 cia_encrypt: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut crypto_tfm, arg2: *mut u8_, arg3: *const u8_), >, - 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 cia_decrypt: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut crypto_tfm, arg2: *mut u8_, arg3: *const u8_), >, - pub port_fn_hw_addr_set: ::core::option::Option< +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct compress_alg { + pub coa_compress: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut devlink_port, + arg1: *mut crypto_tfm, 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, + arg3: ::aya_ebpf::cty::c_uint, + arg4: *mut u8_, + arg5: *mut ::aya_ebpf::cty::c_uint, ) -> ::aya_ebpf::cty::c_int, >, - pub port_fn_ipsec_packet_set: ::core::option::Option< + pub coa_decompress: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut devlink_port, - arg2: bool_, - arg3: *mut netlink_ext_ack, + arg1: *mut crypto_tfm, + arg2: *const u8_, + arg3: ::aya_ebpf::cty::c_uint, + arg4: *mut u8_, + arg5: *mut ::aya_ebpf::cty::c_uint, ) -> ::aya_ebpf::cty::c_int, >, } #[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, +#[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_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, } -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 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 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 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(Copy, Clone)] +pub union crypto_alg__bindgen_ty_1 { + pub cipher: cipher_alg, + pub compress: compress_alg, } #[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_, +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 report_stat: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut sk_buff, arg2: *mut crypto_alg) -> ::aya_ebpf::cty::c_int, + >, + 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, } #[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, +#[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 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_, +#[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(Debug, Copy, Clone)] -pub struct devlink_dpipe_headers { - pub headers: *mut *mut devlink_dpipe_header, - pub headers_count: ::aya_ebpf::cty::c_uint, +#[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 devlink_flash_update_params { - pub fw: *const firmware, - pub component: *const ::aya_ebpf::cty::c_char, - pub overwrite_mask: u32_, +pub struct merkle_tree_params { + pub hash_alg: *const fsverity_hash_alg, + pub hashstate: *const u8_, + pub digest_size: ::aya_ebpf::cty::c_uint, + pub block_size: ::aya_ebpf::cty::c_uint, + pub hashes_per_block: ::aya_ebpf::cty::c_uint, + pub blocks_per_page: ::aya_ebpf::cty::c_uint, + pub log_digestsize: u8_, + pub log_blocksize: u8_, + pub log_arity: u8_, + pub log_blocks_per_page: u8_, + pub num_levels: ::aya_ebpf::cty::c_uint, + pub tree_size: u64_, + pub tree_pages: ::aya_ebpf::cty::c_ulong, + pub level_start: [::aya_ebpf::cty::c_ulong; 8usize], } #[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_, +pub struct fsverity_info { + pub tree_params: merkle_tree_params, + pub root_hash: [u8_; 64usize], + pub file_digest: [u8_; 64usize], + pub inode: *const inode, + pub hash_block_verified: *mut ::aya_ebpf::cty::c_ulong, +} +pub mod hash_algo { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const HASH_ALGO_MD4: Type = 0; + pub const HASH_ALGO_MD5: Type = 1; + pub const HASH_ALGO_SHA1: Type = 2; + pub const HASH_ALGO_RIPE_MD_160: Type = 3; + pub const HASH_ALGO_SHA256: Type = 4; + pub const HASH_ALGO_SHA384: Type = 5; + pub const HASH_ALGO_SHA512: Type = 6; + pub const HASH_ALGO_SHA224: Type = 7; + pub const HASH_ALGO_RIPE_MD_128: Type = 8; + pub const HASH_ALGO_RIPE_MD_256: Type = 9; + pub const HASH_ALGO_RIPE_MD_320: Type = 10; + pub const HASH_ALGO_WP_256: Type = 11; + pub const HASH_ALGO_WP_384: Type = 12; + pub const HASH_ALGO_WP_512: Type = 13; + pub const HASH_ALGO_TGR_128: Type = 14; + pub const HASH_ALGO_TGR_160: Type = 15; + pub const HASH_ALGO_TGR_192: Type = 16; + pub const HASH_ALGO_SM3_256: Type = 17; + pub const HASH_ALGO_STREEBOG_256: Type = 18; + pub const HASH_ALGO_STREEBOG_512: Type = 19; + pub const HASH_ALGO_SHA3_256: Type = 20; + pub const HASH_ALGO_SHA3_384: Type = 21; + pub const HASH_ALGO_SHA3_512: Type = 22; + pub const HASH_ALGO__LAST: Type = 23; } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct devlink_trap_group { +pub struct fsverity_hash_alg { + pub tfm: *mut crypto_shash, pub name: *const ::aya_ebpf::cty::c_char, - pub id: u16_, - pub generic: bool_, - pub init_policer_id: u32_, + pub digest_size: ::aya_ebpf::cty::c_uint, + pub block_size: ::aya_ebpf::cty::c_uint, + pub algo_id: hash_algo::Type, } #[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_, +#[derive(Debug)] +pub struct crypto_shash { + pub descsize: ::aya_ebpf::cty::c_uint, + pub base: crypto_tfm, } +pub type __le32 = __u32; +pub type __sum16 = __u16; #[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_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_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, +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 load_shlib: + ::core::option::Option ::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, } -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, +#[derive(Copy, Clone)] +pub struct __kernel_sockaddr_storage { + pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct rdma_cgroup { - pub css: cgroup_subsys_state, - pub rpools: list_head, +#[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 dim_sample { - pub time: ktime_t, - pub pkt_ctr: u32_, - pub byte_ctr: u32_, - pub event_ctr: u16_, - pub comp_ctr: u32_, +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 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, +#[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 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_, +pub struct iphdr__bindgen_ty_1__bindgen_ty_1 { + pub saddr: __be32, + pub daddr: __be32, } -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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iphdr__bindgen_ty_1__bindgen_ty_2 { + pub saddr: __be32, + pub daddr: __be32, } -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; +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 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 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 + } } -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_MAX: Type = 8; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct in_addr { + pub s_addr: __be32, } #[repr(C)] #[derive(Copy, Clone)] -pub struct rdma_restrack_entry { - pub valid: bool_, +pub struct binfmt_misc { + pub entries: list_head, + pub entries_lock: rwlock_t, + pub enabled: bool_, +} +#[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 mm: *mut mm_struct, + pub p: ::aya_ebpf::cty::c_ulong, + pub argmin: ::aya_ebpf::cty::c_ulong, 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_, + 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 loader: ::aya_ebpf::cty::c_ulong, + pub exec: ::aya_ebpf::cty::c_ulong, + pub rlim_stack: rlimit, + pub buf: [::aya_ebpf::cty::c_char; 256usize], } -impl rdma_restrack_entry { +impl linux_binprm { #[inline] - pub fn no_track(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + 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_no_track(&mut self, val: u8_) { + pub fn set_have_execfd(&mut self, val: ::aya_ebpf::cty::c_uint) { unsafe { - let val: u8 = ::core::mem::transmute(val); + let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(0usize, 1u8, val as u64) } } #[inline] - pub fn new_bitfield_1(no_track: u8_) -> __BindgenBitfieldUnit<[u8; 1usize]> { + 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 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 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 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, + ) -> __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 + 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 } } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct rdma_link_ops { - pub list: list_head, - pub type_: *const ::aya_ebpf::cty::c_char, - pub newlink: ::core::option::Option< - unsafe extern "C" fn( - arg1: *const ::aya_ebpf::cty::c_char, - arg2: *mut net_device, - ) -> ::aya_ebpf::cty::c_int, - >, +pub 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(Debug, Copy, Clone)] -pub struct auto_mode_param { - pub qp_type: ::aya_ebpf::cty::c_int, +pub struct tcp_fastopen_context { + pub key: [siphash_key_t; 2usize], + pub num: ::aya_ebpf::cty::c_int, + pub rcu: callback_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 rdma_counter_mode { - pub mode: rdma_nl_counter_mode::Type, - pub mask: rdma_nl_counter_mask::Type, - pub param: auto_mode_param, +pub struct nf_hook_entry { + pub hook: nf_hookfn, + pub priv_: *mut ::aya_ebpf::cty::c_void, } #[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, +#[derive(Debug)] +pub struct nf_hook_entries { + pub num_hook_entries: u16_, + pub hooks: __IncompleteArrayField, } #[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, +#[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 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_, -} -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; +#[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]>, } -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; +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 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, +pub struct sock_fprog_kern { + pub len: u16_, + pub filter: *mut sock_filter, } #[repr(C)] #[derive(Copy, Clone)] -pub union ib_sig_domain__bindgen_ty_1 { - pub dif: ib_t10_dif_domain, +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 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, -} -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 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(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(Copy, Clone)] -pub union ib_gid { - pub raw: [u8_; 16usize], - pub global: ib_gid__bindgen_ty_1, +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 ib_gid__bindgen_ty_1 { - pub subnet_prefix: __be64, - pub interface_id: __be64, -} -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 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(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(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_dm_mr_attr { - pub length: u64_, - pub offset: u64_, - pub access_flags: u32_, +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 ib_dm_alloc_attr { - pub length: u64_, - pub alignment: u32_, - pub flags: u32_, -} -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_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 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 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, +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 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 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; 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_, + 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 _bitfield_align_3: [u8; 0], + pub _bitfield_3: __BindgenBitfieldUnit<[u8; 40usize]>, + pub privdata: __IncompleteArrayField<::aya_ebpf::cty::c_long>, } -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) - } - } +impl Qdisc { #[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 - }); + 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 ib_device_modify { - pub sys_image_guid: u64_, - pub node_desc: [::aya_ebpf::cty::c_char; 64usize], +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, + >, } #[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_, -} -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 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 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 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 struct sk_filter { + pub refcnt: refcount_t, + pub rcu: callback_head, + pub prog: *mut bpf_prog, } #[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, +#[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 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, + pub prog: *mut bpf_prog, + pub socks: __IncompleteArrayField<*mut sock>, } -impl ib_cq { +impl sock_reuseport { #[inline] - pub fn interrupt(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + 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_interrupt(&mut self, val: u8_) { + pub fn set_bind_inany(&mut self, val: ::aya_ebpf::cty::c_uint) { unsafe { - let val: u8 = ::core::mem::transmute(val); + let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(0usize, 1u8, val as u64) } } #[inline] - pub fn shared(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + 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_shared(&mut self, val: u8_) { + pub fn set_has_conns(&mut self, val: ::aya_ebpf::cty::c_uint) { unsafe { - let val: u8 = ::core::mem::transmute(val); + let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(1usize, 1u8, val as u64) } } #[inline] - pub fn new_bitfield_1(interrupt: u8_, shared: u8_) -> __BindgenBitfieldUnit<[u8; 1usize]> { + 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 interrupt: u8 = unsafe { ::core::mem::transmute(interrupt) }; - interrupt as u64 + let bind_inany: u32 = unsafe { ::core::mem::transmute(bind_inany) }; + bind_inany as u64 }); __bindgen_bitfield_unit.set(1usize, 1u8, { - let shared: u8 = unsafe { ::core::mem::transmute(shared) }; - shared as u64 + let has_conns: u32 = unsafe { ::core::mem::transmute(has_conns) }; + has_conns as u64 }); __bindgen_bitfield_unit } } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct ib_uqp_object { - _unused: [u8; 0], -} -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 struct inet_ehash_bucket { + pub chain: hlist_nulls_head, } #[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 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 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_usrq_object { - _unused: [u8; 0], -} -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 struct inet_bind_hashbucket { + pub lock: spinlock_t, + pub chain: hlist_head, } #[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, +pub struct inet_listen_hashbucket { + pub lock: spinlock_t, + pub nulls_head: hlist_nulls_head, } #[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, +#[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(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, +#[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 ib_srq__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { - pub xrcd: *mut ib_xrcd, - pub srq_num: u32_, +#[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 ib_uwq_object { - _unused: [u8; 0], -} -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 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 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 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 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, + 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(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 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(Copy, Clone)] -pub struct ib_event { - pub device: *mut ib_device, - pub element: ib_event__bindgen_ty_1, - pub event: ib_event_type::Type, +#[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 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_, +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 refcnt: refcount_t, + pub rcu: callback_head, + pub destroy_ht_node: hlist_node, } #[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_, +pub struct tcf_result { + pub __bindgen_anon_1: tcf_result__bindgen_ty_1, } #[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, +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 ib_mr_status { - pub fail_status: u32_, - pub sig_err: ib_sig_err, +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 rdma_ah_init_attr { - pub ah_attr: *mut rdma_ah_attr, - pub flags: u32_, - pub xmit_slave: *mut net_device, +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, } -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; +#[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 ib_ah_attr { - pub dlid: u16_, - pub src_path_bits: u8_, +#[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 roce_ah_attr { - pub dmac: [u8_; 6usize], +pub struct ack_sample { + pub pkts_acked: u32_, + pub rtt_us: s32, + pub in_flight: u32_, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct opa_ah_attr { - pub dlid: u32_, - pub src_path_bits: u8_, - pub make_grd: bool_, +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_, } +pub type u_char = ::aya_ebpf::cty::c_uchar; #[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, +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 union rdma_ah_attr__bindgen_ty_1 { - pub ib: ib_ah_attr, - pub roce: roce_ah_attr, - pub opa: opa_ah_attr, -} -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_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; +#[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(Debug, Copy, Clone)] -pub struct ib_cqe { - pub done: ::core::option::Option, +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(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_, +#[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(Copy, Clone)] -pub union ib_wc__bindgen_ty_1 { - pub wr_id: u64_, - pub wr_cqe: *mut ib_cqe, +#[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, + ) -> ::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(Copy, Clone)] -pub union ib_wc__bindgen_ty_2 { - pub imm_data: __be32, - pub invalidate_rkey: u32_, +#[derive(Debug, Copy, Clone)] +pub struct cpuidle_driver_kobj { + _unused: [u8; 0], } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct ib_srq_attr { - pub max_wr: u32_, - pub max_sge: u32_, - pub srq_limit: u32_, +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, } -#[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, +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 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 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 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 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, +#[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 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 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, +pub struct net_generic { + pub __bindgen_anon_1: net_generic__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, +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 ib_srq_init_attr__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { - pub xrcd: *mut ib_xrcd, +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, Copy, Clone)] -pub struct ib_srq_init_attr__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2 { - pub max_num_tags: u32_, +#[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 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_, -} -pub mod ib_sig_type { +pub struct net_generic__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {} +pub mod tca_id { pub type Type = ::aya_ebpf::cty::c_uint; - pub const IB_SIGNAL_ALL_WR: Type = 0; - pub const IB_SIGNAL_REQ_WR: Type = 1; -} -#[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_, + 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; } #[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, -} -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 struct tcf_t { + pub install: __u64, + pub lastuse: __u64, + pub expires: __u64, + pub firstuse: __u64, } -pub mod ib_mig_state { +pub mod flow_action_id { 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 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 ib_mw_type { +pub mod flow_action_mangle_base { pub type Type = ::aya_ebpf::cty::c_uint; - pub const IB_MW_TYPE_1: Type = 1; - pub const IB_MW_TYPE_2: Type = 2; -} -#[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, + 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 ib_wr_opcode { +pub mod flow_action_hw_stats { 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; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct ib_sge { - pub addr: u64_, - pub length: u32_, - pub lkey: u32_, -} -#[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, + 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 type action_destr = + ::core::option::Option; #[repr(C)] -#[derive(Copy, Clone)] -pub union ib_send_wr__bindgen_ty_2 { - pub imm_data: __be32, - pub invalidate_rkey: u32_, +#[derive(Debug)] +pub struct flow_action_cookie { + pub cookie_len: u32_, + pub cookie: __IncompleteArrayField, } #[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(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 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, +pub struct nf_flowtable { + _unused: [u8; 0], } #[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, +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 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_rdmacg_object { - pub cg: *mut rdma_cgroup, +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 ib_uverbs_file { - _unused: [u8; 0], -} -#[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 res: rdma_restrack_entry, - pub mmap_xa: xarray, +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 uverbs_api_object { - _unused: [u8; 0], +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 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, +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 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(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, +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 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_, +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 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_, +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 ib_rwq_ind_table_init_attr { - pub log_ind_tbl_size: u32_, - pub ind_tbl: *mut *mut ib_wq, -} -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 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 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(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, +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 ib_ports_pkeys { - pub main: ib_port_pkey, - pub alt: ib_port_pkey, +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 ib_dm { - pub device: *mut ib_device, - pub length: u32_, - pub flags: u32_, - pub uobject: *mut ib_uobject, - pub usecnt: atomic_t, +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 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, -} -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 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_, } -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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flow_action_entry__bindgen_ty_1__bindgen_ty_10 { + pub proto: __be16, } #[repr(C)] -#[derive(Debug)] -pub struct ib_flow_eth_filter { - pub dst_mac: [u8_; 6usize], - pub src_mac: [u8_; 6usize], - pub ether_type: __be16, - pub vlan_tag: __be16, - pub real_sz: __IncompleteArrayField, +#[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)] -pub struct ib_flow_spec_eth { - pub type_: u32_, - pub size: u16_, - pub val: ib_flow_eth_filter, - pub mask: ib_flow_eth_filter, +#[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)] -pub struct ib_flow_ib_filter { - pub dlid: __be16, - pub sl: __u8, - pub real_sz: __IncompleteArrayField, +#[derive(Debug, Copy, Clone)] +pub struct flow_action_entry__bindgen_ty_1__bindgen_ty_13 { + pub sid: u16_, } #[repr(C)] -#[derive(Debug)] -pub struct ib_flow_spec_ib { - pub type_: u32_, - pub size: u16_, - pub val: ib_flow_ib_filter, - pub mask: ib_flow_ib_filter, +pub struct flow_action { + pub num_entries: ::aya_ebpf::cty::c_uint, + pub entries: __IncompleteArrayField, } #[repr(C)] -#[derive(Debug)] -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_, - pub real_sz: __IncompleteArrayField, +#[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)] -pub struct ib_flow_spec_ipv4 { - pub type_: u32_, - pub size: u16_, - pub val: ib_flow_ipv4_filter, - pub mask: ib_flow_ipv4_filter, +#[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)] -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_, - pub real_sz: __IncompleteArrayField, +#[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(Debug)] -pub struct ib_flow_spec_ipv6 { - pub type_: u32_, - pub size: u16_, - pub val: ib_flow_ipv6_filter, - pub mask: ib_flow_ipv6_filter, +#[derive(Debug, Copy, Clone)] +pub struct tcf_exts { + pub type_: __u32, + pub nr_actions: ::aya_ebpf::cty::c_int, + pub actions: *mut *mut tc_action, + pub net: *mut net, + pub ns_tracker: netns_tracker, + pub miss_cookie_node: *mut tcf_exts_miss_cookie_node, + pub action: ::aya_ebpf::cty::c_int, + pub police: ::aya_ebpf::cty::c_int, } #[repr(C)] -#[derive(Debug)] -pub struct ib_flow_tcp_udp_filter { - pub dst_port: __be16, - pub src_port: __be16, - pub real_sz: __IncompleteArrayField, +#[derive(Copy, Clone)] +pub struct tcf_idrinfo { + pub lock: mutex, + pub action_idr: idr, + pub net: *mut net, } #[repr(C)] -#[derive(Debug)] -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, +#[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_qstats: gnet_stats_queue, + 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)] -pub struct ib_flow_tunnel_filter { - pub tunnel_id: __be32, - pub real_sz: __IncompleteArrayField, +#[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)] -pub struct ib_flow_spec_tunnel { - pub type_: u32_, - pub size: u16_, - pub val: ib_flow_tunnel_filter, - pub mask: ib_flow_tunnel_filter, +#[derive(Debug, Copy, Clone)] +pub struct tc_cookie { + pub data: *mut u8_, + pub len: u32_, + pub rcu: callback_head, } #[repr(C)] -#[derive(Debug)] -pub struct ib_flow_esp_filter { - pub spi: __be32, - pub seq: __be32, - pub real_sz: __IncompleteArrayField, +#[derive(Debug, Copy, Clone)] +pub struct udp_table { + pub hash: *mut udp_hslot, + pub hash2: *mut udp_hslot, + pub mask: ::aya_ebpf::cty::c_uint, + pub log: ::aya_ebpf::cty::c_uint, } #[repr(C)] -#[derive(Debug)] -pub struct ib_flow_spec_esp { - pub type_: u32_, - pub size: u16_, - pub val: ib_flow_esp_filter, - pub mask: ib_flow_esp_filter, +#[derive(Copy, Clone)] +pub struct udp_hslot { + pub head: hlist_head, + pub count: ::aya_ebpf::cty::c_int, + pub lock: spinlock_t, } #[repr(C)] -#[derive(Debug)] -pub struct ib_flow_gre_filter { - pub c_ks_res0_ver: __be16, - pub protocol: __be16, - pub key: __be32, - pub real_sz: __IncompleteArrayField, +#[derive(Copy, Clone)] +pub struct task_delay_info { + pub lock: raw_spinlock_t, + pub blkio_start: u64_, + pub blkio_delay: u64_, + pub swapin_start: u64_, + pub swapin_delay: u64_, + pub blkio_count: u32_, + pub swapin_count: u32_, + pub freepages_start: u64_, + pub freepages_delay: u64_, + pub thrashing_start: u64_, + pub thrashing_delay: u64_, + pub compact_start: u64_, + pub compact_delay: u64_, + pub wpcopy_start: u64_, + pub wpcopy_delay: 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)] -#[derive(Debug)] -pub struct ib_flow_spec_gre { - pub type_: u32_, - pub size: u16_, - pub val: ib_flow_gre_filter, - pub mask: ib_flow_gre_filter, +#[derive(Debug, Copy, Clone)] +pub struct p_log { + pub prefix: *const ::aya_ebpf::cty::c_char, + pub log: *mut fc_log, +} +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_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; } #[repr(C)] -#[derive(Debug)] -pub struct ib_flow_mpls_filter { - pub tag: __be32, - pub real_sz: __IncompleteArrayField, +#[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 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 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 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 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 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 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)] -pub struct ib_flow_spec_mpls { - pub type_: u32_, - pub size: u16_, - pub val: ib_flow_mpls_filter, - pub mask: ib_flow_mpls_filter, +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(Debug, Copy, Clone)] -pub struct ib_flow_spec_action_tag { - pub type_: ib_flow_spec_type::Type, - pub size: u16_, - pub tag_id: u32_, +pub struct nsset { + pub flags: ::aya_ebpf::cty::c_uint, + pub nsproxy: *mut nsproxy, + pub fs: *mut fs_struct, + pub cred: *const cred, +} +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; } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct ib_flow_spec_action_drop { - pub type_: ib_flow_spec_type::Type, - pub size: u16_, +#[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(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, +#[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, } -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; +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 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 + } } #[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, +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 ib_flow_spec_action_count { - pub type_: ib_flow_spec_type::Type, - pub size: u16_, - pub counters: *mut ib_counters, +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(Debug, Copy, Clone)] -pub struct ib_counters { - pub device: *mut ib_device, - pub uobject: *mut ib_uobject, - pub usecnt: atomic_t, +#[derive(Copy, Clone)] +pub struct fs_parse_result { + pub negated: bool_, + pub __bindgen_anon_1: fs_parse_result__bindgen_ty_1, } #[repr(C)] -pub struct ib_flow_spec { - pub __bindgen_anon_1: __BindgenUnionField, - pub eth: __BindgenUnionField, - pub ib: __BindgenUnionField, - pub ipv4: __BindgenUnionField, - pub tcp_udp: __BindgenUnionField, - pub ipv6: __BindgenUnionField, - pub tunnel: __BindgenUnionField, - pub esp: __BindgenUnionField, - pub gre: __BindgenUnionField, - pub mpls: __BindgenUnionField, - pub flow_tag: __BindgenUnionField, - pub drop: __BindgenUnionField, - pub action: __BindgenUnionField, - pub flow_count: __BindgenUnionField, - pub bindgen_union_field: [u64; 11usize], +#[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_, } -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct ib_flow_spec__bindgen_ty_1 { - pub type_: u32_, - pub size: u16_, +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; } -#[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, +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 type smp_call_func_t = + ::core::option::Option; +pub type __le16 = __u16; #[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, +pub struct fscrypt_prepared_key { + pub tfm: *mut crypto_skcipher, + pub blk_key: *mut blk_crypto_key, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct ib_pkey_cache { - _unused: [u8; 0], +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 ib_gid_table { - _unused: [u8; 0], +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(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, +#[derive(Copy, Clone)] +pub union fscrypt_policy { + pub version: u8_, + pub v1: fscrypt_policy_v1, + pub v2: fscrypt_policy_v2, } #[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_, +#[derive(Copy, Clone)] +pub struct fscrypt_inode_info { + pub ci_enc_key: fscrypt_prepared_key, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub ci_data_unit_bits: u8_, + pub ci_data_units_per_block_bits: u8_, + pub ci_hashed_ino: u32_, + pub ci_mode: *mut fscrypt_mode, + pub ci_inode: *mut inode, + pub ci_master_key: *mut fscrypt_master_key, + pub ci_master_key_link: list_head, + pub ci_direct_key: *mut fscrypt_direct_key, + pub ci_dirhash_key: siphash_key_t, + pub ci_policy: fscrypt_policy, + pub ci_nonce: [u8_; 16usize], } -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct ib_port { - _unused: [u8; 0], +impl fscrypt_inode_info { + #[inline] + pub fn ci_owns_key(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_ci_owns_key(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn ci_inlinecrypt(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + } + #[inline] + pub fn set_ci_inlinecrypt(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub fn ci_dirhash_key_initialized(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) } + } + #[inline] + pub fn set_ci_dirhash_key_initialized(&mut self, val: u8_) { + unsafe { + let val: u8 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + ci_owns_key: u8_, + ci_inlinecrypt: u8_, + ci_dirhash_key_initialized: u8_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let ci_owns_key: u8 = unsafe { ::core::mem::transmute(ci_owns_key) }; + ci_owns_key as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let ci_inlinecrypt: u8 = unsafe { ::core::mem::transmute(ci_inlinecrypt) }; + ci_inlinecrypt as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let ci_dirhash_key_initialized: u8 = + unsafe { ::core::mem::transmute(ci_dirhash_key_initialized) }; + ci_dirhash_key_initialized as u64 + }); + __bindgen_bitfield_unit + } } #[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, +pub struct fscrypt_key_specifier { + pub type_: __u32, + pub __reserved: __u32, + pub u: fscrypt_key_specifier__bindgen_ty_1, } #[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, - >, +#[derive(Copy, Clone)] +pub union fscrypt_key_specifier__bindgen_ty_1 { + pub __reserved: [__u8; 32usize], + pub descriptor: [__u8; 8usize], + pub identifier: [__u8; 16usize], } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct ib_counters_read_attr { - pub counters_buff: *mut u64_, - pub ncounters: u32_, - pub flags: u32_, +pub struct fscrypt_mode { + pub friendly_name: *const ::aya_ebpf::cty::c_char, + pub cipher_str: *const ::aya_ebpf::cty::c_char, + pub keysize: ::aya_ebpf::cty::c_int, + pub security_strength: ::aya_ebpf::cty::c_int, + pub ivsize: ::aya_ebpf::cty::c_int, + pub logged_cryptoapi_impl: ::aya_ebpf::cty::c_int, + pub logged_blk_crypto_native: ::aya_ebpf::cty::c_int, + pub logged_blk_crypto_fallback: ::aya_ebpf::cty::c_int, + pub blk_crypto_mode: blk_crypto_mode_num::Type, } #[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(Copy, Clone)] -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 saved_max_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; 24usize], - pub rcu: callback_head, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 40usize]>, - pub flags: ::aya_ebpf::cty::c_uint, - pub cpu_pwq: *mut *mut pool_workqueue, - pub _bitfield_align_2: [u8; 0], - pub _bitfield_2: __BindgenBitfieldUnit<[u8; 48usize]>, -} -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 struct fscrypt_hkdf { + pub hmac_tfm: *mut crypto_shash, } #[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_, +pub struct fscrypt_master_key_secret { + pub hkdf: fscrypt_hkdf, + pub size: u32_, + pub raw: [u8_; 64usize], } #[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; 24usize], - pub rescue_wq: *mut workqueue_struct, +pub struct fscrypt_master_key { + pub mk_node: hlist_node, + pub mk_sem: rw_semaphore, + pub mk_active_refs: refcount_t, + pub mk_struct_refs: refcount_t, + pub mk_rcu_head: callback_head, + pub mk_secret: fscrypt_master_key_secret, + pub mk_spec: fscrypt_key_specifier, + pub mk_users: *mut key, + pub mk_decrypted_inodes: list_head, + pub mk_decrypted_inodes_lock: spinlock_t, + pub mk_direct_keys: [fscrypt_prepared_key; 11usize], + pub mk_iv_ino_lblk_64_keys: [fscrypt_prepared_key; 11usize], + pub mk_iv_ino_lblk_32_keys: [fscrypt_prepared_key; 11usize], + pub mk_ino_hash_key: siphash_key_t, + pub mk_ino_hash_key_initialized: bool_, + pub mk_present: bool_, } #[repr(C)] -#[derive(Copy, Clone)] -pub union worker__bindgen_ty_1 { - pub entry: list_head, - pub hentry: hlist_node, +#[derive(Debug)] +pub struct btf_id_set8 { + pub cnt: u32_, + pub flags: u32_, + pub pairs: __IncompleteArrayField, } #[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 nr_active: ::aya_ebpf::cty::c_int, - pub max_active: ::aya_ebpf::cty::c_int, - pub inactive_works: 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; 240usize]>, +pub struct btf_id_set8__bindgen_ty_1 { + pub id: u32_, + pub flags: u32_, } -#[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 dying_workers: list_head, - pub detach_completion: *mut completion, - 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, +pub type btf_kfunc_filter_t = ::core::option::Option< + unsafe extern "C" fn(arg1: *const bpf_prog, arg2: u32_) -> ::aya_ebpf::cty::c_int, +>; +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_INT: Type = 12; + pub const ARG_PTR_TO_LONG: Type = 13; + pub const ARG_PTR_TO_SOCKET: Type = 14; + pub const ARG_PTR_TO_BTF_ID: Type = 15; + pub const ARG_PTR_TO_RINGBUF_MEM: Type = 16; + pub const ARG_CONST_ALLOC_SIZE_OR_ZERO: Type = 17; + pub const ARG_PTR_TO_BTF_ID_SOCK_COMMON: Type = 18; + pub const ARG_PTR_TO_PERCPU_BTF_ID: Type = 19; + pub const ARG_PTR_TO_FUNC: Type = 20; + pub const ARG_PTR_TO_STACK: Type = 21; + pub const ARG_PTR_TO_CONST_STR: Type = 22; + pub const ARG_PTR_TO_TIMER: Type = 23; + pub const ARG_PTR_TO_KPTR: Type = 24; + pub const ARG_PTR_TO_DYNPTR: Type = 25; + pub const __BPF_ARG_TYPE_MAX: Type = 26; + 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 = 270; + pub const ARG_PTR_TO_STACK_OR_NULL: Type = 277; + pub const ARG_PTR_TO_BTF_ID_OR_NULL: Type = 271; + pub const ARG_PTR_TO_UNINIT_MEM: Type = 32772; + pub const ARG_PTR_TO_FIXED_SIZE_MEM: Type = 262148; + pub const __BPF_ARG_TYPE_LIMIT: Type = 33554431; } -#[repr(C)] -#[derive(Copy, Clone)] -pub struct wq_flusher { - pub list: list_head, - pub flush_color: ::aya_ebpf::cty::c_int, - pub done: completion, +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 = 33554431; } #[repr(C)] -#[derive(Copy, Clone)] -pub struct wq_device { - pub wq: *mut workqueue_struct, - pub dev: device, -} -pub mod hash_algo { - pub type Type = ::aya_ebpf::cty::c_uint; - pub const HASH_ALGO_MD4: Type = 0; - pub const HASH_ALGO_MD5: Type = 1; - pub const HASH_ALGO_SHA1: Type = 2; - pub const HASH_ALGO_RIPE_MD_160: Type = 3; - pub const HASH_ALGO_SHA256: Type = 4; - pub const HASH_ALGO_SHA384: Type = 5; - pub const HASH_ALGO_SHA512: Type = 6; - pub const HASH_ALGO_SHA224: Type = 7; - pub const HASH_ALGO_RIPE_MD_128: Type = 8; - pub const HASH_ALGO_RIPE_MD_256: Type = 9; - pub const HASH_ALGO_RIPE_MD_320: Type = 10; - pub const HASH_ALGO_WP_256: Type = 11; - pub const HASH_ALGO_WP_384: Type = 12; - pub const HASH_ALGO_WP_512: Type = 13; - pub const HASH_ALGO_TGR_128: Type = 14; - pub const HASH_ALGO_TGR_160: Type = 15; - pub const HASH_ALGO_TGR_192: Type = 16; - pub const HASH_ALGO_SM3_256: Type = 17; - pub const HASH_ALGO_STREEBOG_256: Type = 18; - pub const HASH_ALGO_STREEBOG_512: Type = 19; - pub const HASH_ALGO_SHA3_256: Type = 20; - pub const HASH_ALGO_SHA3_384: Type = 21; - pub const HASH_ALGO_SHA3_512: Type = 22; - pub const HASH_ALGO__LAST: Type = 23; +#[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, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct iopf_device_param { - pub dev: *mut device, - pub queue: *mut iopf_queue, - pub queue_list: list_head, - pub partial: list_head, +pub struct core_vma_metadata { + pub start: ::aya_ebpf::cty::c_ulong, + pub end: ::aya_ebpf::cty::c_ulong, + pub flags: ::aya_ebpf::cty::c_ulong, + pub dump_size: ::aya_ebpf::cty::c_ulong, + pub pgoff: ::aya_ebpf::cty::c_ulong, + pub file: *mut file, } #[repr(C)] -#[derive(Copy, Clone)] -pub struct iopf_queue { - pub wq: *mut workqueue_struct, - pub devices: list_head, - pub lock: mutex, +#[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(Copy, Clone)] -pub struct __kernel_sockaddr_storage { - pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1, +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 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, +pub struct rt_mutex { + pub rtmutex: rt_mutex_base, } #[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], +#[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, Copy, Clone)] @@ -33583,636 +31326,669 @@ pub struct flow_dissector { } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct nf_conntrack { - pub use_: refcount_t, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct netdev_notifier_info { - pub dev: *mut net_device, - pub extack: *mut netlink_ext_ack, -} -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; -} -#[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, -} -#[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 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)] -#[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 struct flow_rule { + pub match_: flow_match, + pub action: flow_action, } #[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, -} +pub struct rhash_lock_head {} +pub type __le64 = __u64; #[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, +pub struct rt6key { + pub addr: in6_addr, + pub plen: ::aya_ebpf::cty::c_int, } #[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, +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(Debug, Copy, Clone)] -pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1 { - pub map_id: __u32, +#[derive(Copy, Clone)] +pub union fib_nh_common__bindgen_ty_1 { + pub ipv4: __be32, + pub ipv6: in6_addr, } #[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, +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)] -#[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, +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 rcu: callback_head, + pub nh: *mut nexthop, + pub fib6_nh: __IncompleteArrayField, } #[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, +#[derive(Copy, Clone)] +pub union fib6_info__bindgen_ty_1 { + pub fib6_siblings: list_head, + pub nh_list: list_head, } -#[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, +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 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 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 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 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 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 bpf_link_info__bindgen_ty_1__bindgen_ty_6 { - pub ifindex: __u32, +#[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 bpf_link_info__bindgen_ty_1__bindgen_ty_7 { - pub map_id: __u32, +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 bpf_link_info__bindgen_ty_1__bindgen_ty_8 { - pub pf: __u32, - pub hooknum: __u32, - pub priority: __s32, - pub flags: __u32, +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(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, +#[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(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, +#[derive(Copy, Clone)] +pub union xfrm_address_t { + pub a4: __be32, + pub a6: [__be32; 4usize], + pub in6: in6_addr, } #[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, +pub struct xfrm_id { + pub daddr: xfrm_address_t, + pub spi: __be32, + pub proto: __u8, } #[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, +#[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 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, +#[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 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 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 bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_3 { - pub tp_name: __u64, - pub name_len: __u32, +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 bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_4 { - pub config: __u64, - pub type_: __u32, +pub struct xfrm_replay_state { + pub oseq: __u32, + pub seq: __u32, + pub bitmap: __u32, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_12 { - pub ifindex: __u32, - pub attach_type: __u32, +#[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, Copy, Clone)] -pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_13 { - pub ifindex: __u32, - pub attach_type: __u32, +#[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 btf_id_set8 { - pub cnt: u32_, - pub flags: u32_, - pub pairs: __IncompleteArrayField, +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 btf_id_set8__bindgen_ty_1 { - pub id: u32_, - pub flags: u32_, +#[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>, } -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(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 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_>, +#[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 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], +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(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, +pub struct xfrm_mark { + pub v: __u32, + pub m: __u32, } #[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], +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, 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_, +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 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, +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; } #[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 folio_ops: *const iomap_folio_ops, - pub validity_cookie: u64_, +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 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 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 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(Debug, Copy, Clone)] -pub struct iomap_folio_ops { - pub get_folio: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut iomap_iter, - arg2: loff_t, - arg3: ::aya_ebpf::cty::c_uint, - ) -> *mut folio, - >, - pub put_folio: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut inode, - arg2: loff_t, - arg3: ::aya_ebpf::cty::c_uint, - arg4: *mut folio, - ), - >, - pub iomap_valid: - ::core::option::Option bool_>, +pub struct xfrm_mode { + pub encap: u8_, + pub family: u8_, + pub flags: u8_, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct iomap_iter { - pub inode: *mut inode, - pub pos: loff_t, - pub len: u64_, - pub processed: s64, - pub flags: ::aya_ebpf::cty::c_uint, - pub iomap: iomap, - pub srcmap: iomap, - pub private: *mut ::aya_ebpf::cty::c_void, +#[derive(Copy, Clone)] +pub struct xfrm_state { + pub xs_net: possible_net_t, + pub __bindgen_anon_1: xfrm_state__bindgen_ty_1, + pub bysrc: hlist_node, + pub byspi: hlist_node, + pub byseq: hlist_node, + pub refcnt: refcount_t, + pub lock: spinlock_t, + 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_2, + 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 encap_sk: *mut sock, + 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, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct gpio_desc { - pub gdev: *mut gpio_device, - pub flags: ::aya_ebpf::cty::c_ulong, - pub label: *const ::aya_ebpf::cty::c_char, - pub name: *const ::aya_ebpf::cty::c_char, +#[derive(Copy, Clone)] +pub union xfrm_state__bindgen_ty_1 { + pub gclist: hlist_node, + pub bydst: hlist_node, } #[repr(C)] #[derive(Copy, Clone)] -pub struct gpio_device { - pub dev: device, - pub chrdev: cdev, - pub id: ::aya_ebpf::cty::c_int, - pub mockdev: *mut device, - pub owner: *mut module, - pub chip: *mut gpio_chip, - pub descs: *mut gpio_desc, - pub base: ::aya_ebpf::cty::c_int, - pub ngpio: u16_, - pub label: *const ::aya_ebpf::cty::c_char, - pub data: *mut ::aya_ebpf::cty::c_void, - pub list: list_head, - pub line_state_notifier: blocking_notifier_head, - pub device_notifier: blocking_notifier_head, - pub sem: rw_semaphore, - pub pin_ranges: list_head, +pub struct xfrm_state__bindgen_ty_2 { + 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 trailer_len: ::aya_ebpf::cty::c_int, + pub extra_flags: u32_, + pub smark: xfrm_mark, } #[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, +pub struct xfrm_policy_walk_entry { + pub all: list_head, + pub dead: u8_, } -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; +#[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 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_, +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 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 bydst_inexact_list: hlist_node, + pub rcu: callback_head, + pub xdo: xfrm_dev_offload, } #[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]>, +#[derive(Debug, Copy, Clone)] +pub struct dst_metrics { + pub metrics: [u32_; 17usize], + pub refcnt: refcount_t, } #[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, - >, +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(Copy, Clone)] -pub struct seg6_pernet_data { - pub lock: mutex, - pub tun_src: *mut in6_addr, - pub hmac_infos: rhashtable, +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 struct raw_hashinfo { - pub lock: spinlock_t, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 56usize]>, - pub ht: [hlist_head; 256usize], +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 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 fn new_bitfield_1( + rt_mtu_locked: u32_, + rt_pmtu: u32_, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let rt_mtu_locked: u32 = unsafe { ::core::mem::transmute(rt_mtu_locked) }; + rt_mtu_locked as u64 + }); + __bindgen_bitfield_unit.set(1usize, 31u8, { + let rt_pmtu: u32 = unsafe { ::core::mem::transmute(rt_pmtu) }; + rt_pmtu as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fnhe_hash_bucket { + pub chain: *mut fib_nh_exception, } #[repr(C)] #[derive(Copy, Clone)] @@ -34273,6 +32049,12 @@ pub union nexthop__bindgen_ty_1 { pub nh_grp: *mut nh_group, } #[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(Copy, Clone)] pub struct nh_info { pub dev_hash: hlist_node, @@ -34302,10 +32084,12 @@ pub struct nh_res_bucket { #[derive(Copy, Clone)] pub struct nh_grp_entry { pub nh: *mut nexthop, + pub stats: *mut nh_grp_entry_stats, pub weight: u8_, 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)] @@ -34339,6 +32123,12 @@ pub struct nh_res_table { pub nh_buckets: __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)] pub struct nh_group { pub spare: *mut nh_group, pub num_nh: u16_, @@ -34347,970 +32137,921 @@ pub struct nh_group { 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 fscrypt_direct_key { - pub dk_sb: *mut super_block, - pub dk_node: hlist_node, - pub dk_refcount: refcount_t, - pub dk_mode: *const fscrypt_mode, - pub dk_key: fscrypt_prepared_key, - pub dk_descriptor: [u8_; 8usize], - pub dk_raw: [u8_; 64usize], -} -#[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 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)] -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 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 robust_list { - pub next: *mut robust_list, +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 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 union futex_key { - pub shared: futex_key__bindgen_ty_1, - pub private: futex_key__bindgen_ty_2, - pub both: futex_key__bindgen_ty_3, +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 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, +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(Copy, Clone)] -pub union futex_key__bindgen_ty_2__bindgen_ty_1 { - pub mm: *mut mm_struct, - pub __tmp: u64_, +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; } #[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, -} -#[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, +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 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, +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(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]>, +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: *mut 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 perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1 { +impl device_private { #[inline] - pub fn cap_bit0(&self) -> __u64 { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u64) } + pub fn dead(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } } #[inline] - pub fn set_cap_bit0(&mut self, val: __u64) { + pub fn set_dead(&mut self, val: u8_) { unsafe { - let val: u64 = ::core::mem::transmute(val); + let val: u8 = ::core::mem::transmute(val); self._bitfield_1.set(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 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 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 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 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 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 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(); + 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 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 + let dead: u8 = unsafe { ::core::mem::transmute(dead) }; + dead as u64 }); __bindgen_bitfield_unit } } #[repr(C)] -pub struct perf_buffer { - pub refcount: refcount_t, +#[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(Debug, Copy, Clone)] +pub struct nf_conntrack { + pub use_: refcount_t, +} +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 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; +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ip_tunnel_parm { + pub name: [::aya_ebpf::cty::c_char; 16usize], + pub link: ::aya_ebpf::cty::c_int, + pub i_flags: __be16, + pub o_flags: __be16, + pub i_key: __be32, + pub o_key: __be32, + pub iph: iphdr, +} +#[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, - 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: atomic_t, - pub mmap_locked: ::aya_ebpf::cty::c_ulong, - pub mmap_user: *mut user_struct, - 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: atomic_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_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, Copy, Clone)] -pub struct merkle_tree_params { - pub hash_alg: *const fsverity_hash_alg, - pub hashstate: *const u8_, - pub digest_size: ::aya_ebpf::cty::c_uint, - pub block_size: ::aya_ebpf::cty::c_uint, - pub hashes_per_block: ::aya_ebpf::cty::c_uint, - pub blocks_per_page: ::aya_ebpf::cty::c_uint, - pub log_digestsize: u8_, - pub log_blocksize: u8_, - pub log_arity: u8_, - pub log_blocks_per_page: u8_, - pub num_levels: ::aya_ebpf::cty::c_uint, - pub tree_size: u64_, - pub tree_pages: ::aya_ebpf::cty::c_ulong, - pub level_start: [::aya_ebpf::cty::c_ulong; 8usize], +pub struct in_ifaddr { + pub hash: 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 fsverity_info { - pub tree_params: merkle_tree_params, - pub root_hash: [u8_; 64usize], - pub file_digest: [u8_; 64usize], - pub inode: *const inode, - pub hash_block_verified: *mut ::aya_ebpf::cty::c_ulong, - pub hash_page_init_lock: spinlock_t, +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], +} +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; } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct fsverity_hash_alg { - pub tfm: *mut crypto_shash, - pub name: *const ::aya_ebpf::cty::c_char, - pub digest_size: ::aya_ebpf::cty::c_uint, - pub block_size: ::aya_ebpf::cty::c_uint, - pub algo_id: hash_algo::Type, +#[derive(Copy, Clone)] +pub struct ip_tunnel_key { + pub tun_id: __be64, + pub u: ip_tunnel_key__bindgen_ty_1, + pub tun_flags: __be16, + pub tos: u8_, + pub ttl: u8_, + pub label: __be32, + pub nhid: u32_, + 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 io_uring_cmd { - pub file: *mut file, - pub sqe: *const io_uring_sqe, - pub task_work_cb: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut io_uring_cmd, arg2: ::aya_ebpf::cty::c_uint), - >, - pub cmd_op: u32_, - pub flags: u32_, - pub pdu: [u8_; 32usize], +pub struct ip_tunnel_key__bindgen_ty_1__bindgen_ty_1 { + pub src: __be32, + pub dst: __be32, } #[repr(C)] -#[derive(Debug)] -pub struct rps_map { - pub len: ::aya_ebpf::cty::c_uint, - pub rcu: callback_head, - pub cpus: __IncompleteArrayField, +#[derive(Copy, Clone)] +pub struct ip_tunnel_key__bindgen_ty_1__bindgen_ty_2 { + pub src: in6_addr, + pub dst: in6_addr, } #[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 struct ip_tunnel_encap { + pub type_: u16_, + pub flags: u16_, + pub sport: __be16, + pub dport: __be16, } #[repr(C)] -#[derive(Debug)] -pub struct rps_dev_flow_table { - pub mask: ::aya_ebpf::cty::c_uint, - pub rcu: callback_head, - pub flows: __IncompleteArrayField, +#[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 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_, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct xdp_mem_info { - pub type_: u32_, - pub id: u32_, +pub struct hw_port_info { + pub lower_dev: *mut net_device, + pub port_id: u32_, } +pub type sci_t = u64_; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct xdp_frame { - pub data: *mut ::aya_ebpf::cty::c_void, - pub len: u16_, - pub headroom: u16_, - pub metasize: u32_, - pub mem: xdp_mem_info, - pub dev_rx: *mut net_device, - pub frame_sz: u32_, - pub flags: u32_, +pub struct macsec_info { + pub sci: sci_t, } #[repr(C)] #[derive(Debug, 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 frame_sz: u32_, - pub flags: u32_, +pub struct xfrm_md_info { + pub if_id: u32_, + pub link: ::aya_ebpf::cty::c_int, + pub dst_orig: *mut dst_entry, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct metadata_dst { + pub dst: dst_entry, + pub type_: metadata_type::Type, + pub u: metadata_dst__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union metadata_dst__bindgen_ty_1 { + pub tun_info: ip_tunnel_info, + pub port_info: hw_port_info, + pub macsec_info: macsec_info, + pub xfrm_info: xfrm_md_info, +} +pub type ssci_t = u32_; +#[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: u32_, + pub pn: u64_, +} +pub type salt_t = salt; +#[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 xdp_rxq_info { - pub dev: *mut net_device, - pub queue_index: u32_, - pub reg_state: u32_, - pub mem: xdp_mem_info, - pub napi_id: ::aya_ebpf::cty::c_uint, - pub frag_size: u32_, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 32usize]>, +pub struct pn__bindgen_ty_1 { + pub lower: u32_, + pub upper: 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 - } +pub type pn_t = pn; +#[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 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 dev: *mut net_device, - pub dev_tracker: netdevice_tracker, - pub pool: *mut xsk_buff_pool, - pub napi: *mut napi_struct, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, +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, } -impl netdev_rx_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 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 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 struct macsec_tx_sa_stats { + pub OutPktsProtected: __u32, + pub OutPktsEncrypted: __u32, } #[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, +pub struct macsec_tx_sc_stats { + pub OutPktsProtected: __u64, + pub OutPktsEncrypted: __u64, + pub OutOctetsProtected: __u64, + pub OutOctetsEncrypted: __u64, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct xdp_txq_info { - pub dev: *mut net_device, +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(Copy, Clone)] -pub struct netpoll_info { +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 dev_lock: semaphore, - pub txq: sk_buff_head, - pub tx_work: delayed_work, - pub netpoll: *mut netpoll, + 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 vlan_group { - pub nr_vlan_devs: ::aya_ebpf::cty::c_uint, - pub hlist: hlist_node, - pub vlan_devices_arrays: [*mut *mut net_device; 16usize], +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 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 rcu: callback_head, +pub struct pcpu_rx_sc_stats { + pub stats: macsec_rx_sc_stats, + pub syncp: u64_stats_sync, } #[repr(C)] -#[derive(Copy, Clone)] -pub union inet_addr { - pub all: [__u32; 4usize], - pub ip: __be32, - pub ip6: [__be32; 4usize], - pub in_: in_addr, - pub in6: in6_addr, +#[derive(Debug, Copy, Clone)] +pub struct pcpu_tx_sc_stats { + pub stats: macsec_tx_sc_stats, + pub syncp: u64_stats_sync, } #[repr(C)] #[derive(Copy, Clone)] -pub struct netpoll { - pub dev: *mut net_device, - pub dev_tracker: netdevice_tracker, - pub dev_name: [::aya_ebpf::cty::c_char; 16usize], - pub name: *const ::aya_ebpf::cty::c_char, - pub local_ip: inet_addr, - pub remote_ip: inet_addr, - pub ipv6: bool_, - pub local_port: u16_, - pub remote_port: u16_, - pub remote_mac: [u8_; 6usize], +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, } -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 __MAX_BPF_LINK_TYPE: Type = 14; +#[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 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 work: work_struct, +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 bpf_link_ops { - pub release: ::core::option::Option, - pub dealloc: ::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 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(Debug, Copy, Clone)] -pub struct bpf_mprog_fp { - pub prog: *mut bpf_prog, +#[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(Debug, Copy, Clone)] -pub struct bpf_mprog_cp { - pub link: *mut bpf_link, +#[derive(Copy, Clone)] +pub union macsec_context__bindgen_ty_1 { + pub netdev: *mut net_device, + pub phydev: *mut phy_device, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct bpf_mprog_entry { - pub fp_items: [bpf_mprog_fp; 64usize], - pub parent: *mut bpf_mprog_bundle, +#[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(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_, +#[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(Debug, Copy, Clone)] -pub struct timens_offsets { - pub monotonic: timespec64, - pub boottime: timespec64, +#[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 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_, +#[derive(Copy, Clone)] +pub struct fs_struct { + pub users: ::aya_ebpf::cty::c_int, + pub lock: spinlock_t, + pub seq: seqcount_spinlock_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 eventfs_attr { - pub mode: ::aya_ebpf::cty::c_int, - pub uid: kuid_t, - pub gid: kgid_t, +#[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 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 events_dir: *mut dentry, - 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, +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 a_refcount: refcount_t, + pub a_rcu: callback_head, + pub a_count: ::aya_ebpf::cty::c_uint, + pub a_entries: __IncompleteArrayField, +} +#[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(Copy, Clone)] -pub union eventfs_inode__bindgen_ty_1 { - pub list: list_head, - pub rcu: callback_head, +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 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 prev_padding: 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 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 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 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) - } - } +impl rchan_buf { #[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 - }); + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); __bindgen_bitfield_unit } } -pub type u_char = ::aya_ebpf::cty::c_uchar; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct libipw_device { - _unused: [u8; 0], +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 last_toobig: usize, + 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 iw_public_data { - pub spy_data: *mut iw_spy_data, - pub libipw: *mut libipw_device, +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, + arg4: usize, + ) -> ::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>, } +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 phylink { - _unused: [u8; 0], -} -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 struct local_lock_t {} #[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 ovr_an_inband: 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 mac_capabilities: ::aya_ebpf::cty::c_ulong, -} -#[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 lag: *mut dsa_lag, - pub hsr_dev: *mut net_device, +pub struct cdrom_device_info { + pub ops: *const cdrom_device_ops, 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, + 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 exit: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut cdrom_device_info) -> ::aya_ebpf::cty::c_int, + >, + pub mrw_mode_page: ::aya_ebpf::cty::c_int, + pub opened_for_data: bool_, + pub last_media_change_ms: __s64, } -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) - } - } +impl cdrom_device_info { #[inline] - pub fn learning(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + 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_learning(&mut self, val: u8_) { + pub fn set_options(&mut self, val: ::aya_ebpf::cty::c_uint) { unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 30u8, val as u64) } } #[inline] - pub fn lag_tx_enabled(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) } + 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_lag_tx_enabled(&mut self, val: u8_) { + pub fn set_mc_flags(&mut self, val: ::aya_ebpf::cty::c_uint) { unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(30usize, 2u8, 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) - } + 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 conduit_oper_up(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) } + pub fn sanyo_slot(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(0usize, 2u8) as u8) } } #[inline] - pub fn set_conduit_oper_up(&mut self, val: u8_) { + pub fn set_sanyo_slot(&mut self, val: __u8) { unsafe { let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(4usize, 1u8, val as u64) + self._bitfield_2.set(0usize, 2u8, val as u64) } } #[inline] - pub fn cpu_port_in_lag(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) } + pub fn keeplocked(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(2usize, 1u8) as u8) } } #[inline] - pub fn set_cpu_port_in_lag(&mut self, val: u8_) { + pub fn set_keeplocked(&mut self, val: __u8) { unsafe { let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) + self._bitfield_2.set(2usize, 1u8, val as u64) } } #[inline] - pub fn setup(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) } + pub fn reserved(&self) -> __u8 { + unsafe { ::core::mem::transmute(self._bitfield_2.get(3usize, 5u8) as u8) } } #[inline] - pub fn set_setup(&mut self, val: u8_) { + pub fn set_reserved(&mut self, val: __u8) { unsafe { let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) + self._bitfield_2.set(3usize, 5u8, 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_, + 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, 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(0usize, 2u8, { + let sanyo_slot: u8 = unsafe { ::core::mem::transmute(sanyo_slot) }; + sanyo_slot 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 + let keeplocked: u8 = unsafe { ::core::mem::transmute(keeplocked) }; + keeplocked as u64 }); - __bindgen_bitfield_unit.set(6usize, 1u8, { - let setup: u8 = unsafe { ::core::mem::transmute(setup) }; - setup 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_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(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 cdrom_mcn { + pub medium_catalog_number: [__u8; 14usize], +} +#[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], +} +#[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_int, + ) -> ::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, +} +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; +} +#[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(Copy, Clone)] pub struct mdio_device { pub dev: device, @@ -35386,14 +33127,26 @@ pub mod phy_interface_t { } #[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 phy_led_trigger { _unused: [u8; 0], } #[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct phylink { + _unused: [u8; 0], +} +#[repr(C)] #[derive(Copy, Clone)] pub struct phy_device { pub mdio: mdio_device, - pub drv: *mut phy_driver, + pub drv: *const phy_driver, pub devlink: *mut device_link, pub phy_id: u32_, pub c45_ids: phy_c45_device_ids, @@ -35421,6 +33174,8 @@ pub struct phy_device { pub eee_enabled: bool_, pub host_interfaces: [::aya_ebpf::cty::c_ulong; 1usize], pub eee_broken_modes: u32_, + pub enable_tx_lpi: bool_, + pub eee_cfg: eee_config, 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, @@ -35704,414 +33459,63 @@ impl phy_device { }); __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 autoneg: u32 = unsafe { ::core::mem::transmute(autoneg) }; - autoneg as u64 - }); - __bindgen_bitfield_unit.set(14usize, 1u8, { - let link: u32 = unsafe { ::core::mem::transmute(link) }; - link as u64 - }); - __bindgen_bitfield_unit.set(15usize, 1u8, { - let autoneg_complete: u32 = unsafe { ::core::mem::transmute(autoneg_complete) }; - autoneg_complete as u64 - }); - __bindgen_bitfield_unit.set(16usize, 1u8, { - let interrupts: u32 = unsafe { ::core::mem::transmute(interrupts) }; - interrupts as u64 - }); - __bindgen_bitfield_unit.set(17usize, 1u8, { - let irq_suspended: u32 = unsafe { ::core::mem::transmute(irq_suspended) }; - irq_suspended as u64 - }); - __bindgen_bitfield_unit.set(18usize, 1u8, { - let irq_rerun: u32 = unsafe { ::core::mem::transmute(irq_rerun) }; - irq_rerun as u64 - }); - __bindgen_bitfield_unit - } -} -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_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; -} -#[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_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 iw_param { - pub value: __s32, - pub fixed: __u8, - pub disabled: __u8, - pub flags: __u16, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct iw_point { - pub pointer: *mut ::aya_ebpf::cty::c_void, - pub length: __u16, - pub flags: __u16, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct iw_freq { - pub m: __s32, - pub e: __s16, - pub i: __u8, - pub flags: __u8, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct iw_quality { - pub qual: __u8, - pub level: __u8, - pub noise: __u8, - pub updated: __u8, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct iw_discarded { - pub nwid: __u32, - pub code: __u32, - pub fragment: __u32, - pub retries: __u32, - pub misc: __u32, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct iw_missed { - pub beacon: __u32, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct iw_statistics { - pub status: __u16, - pub qual: iw_quality, - pub discard: iw_discarded, - pub miss: iw_missed, -} -#[repr(C)] -pub struct iwreq_data { - pub name: __BindgenUnionField<[::aya_ebpf::cty::c_char; 16usize]>, - pub essid: __BindgenUnionField, - pub nwid: __BindgenUnionField, - pub freq: __BindgenUnionField, - pub sens: __BindgenUnionField, - pub bitrate: __BindgenUnionField, - pub txpower: __BindgenUnionField, - pub rts: __BindgenUnionField, - pub frag: __BindgenUnionField, - pub mode: __BindgenUnionField<__u32>, - pub retry: __BindgenUnionField, - pub encoding: __BindgenUnionField, - pub power: __BindgenUnionField, - pub qual: __BindgenUnionField, - pub ap_addr: __BindgenUnionField, - pub addr: __BindgenUnionField, - pub param: __BindgenUnionField, - pub data: __BindgenUnionField, - pub bindgen_union_field: [u64; 2usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct iw_priv_args { - pub cmd: __u32, - pub set_args: __u16, - pub get_args: __u16, - pub name: [::aya_ebpf::cty::c_char; 16usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct flow_match { - pub dissector: *mut flow_dissector, - pub mask: *mut ::aya_ebpf::cty::c_void, - pub key: *mut ::aya_ebpf::cty::c_void, -} -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_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 type action_destr = - ::core::option::Option; -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; -} -#[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)] -pub struct flow_rule { - pub match_: flow_match, - pub action: flow_action, + 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 autoneg: u32 = unsafe { ::core::mem::transmute(autoneg) }; + autoneg as u64 + }); + __bindgen_bitfield_unit.set(14usize, 1u8, { + let link: u32 = unsafe { ::core::mem::transmute(link) }; + link as u64 + }); + __bindgen_bitfield_unit.set(15usize, 1u8, { + let autoneg_complete: u32 = unsafe { ::core::mem::transmute(autoneg_complete) }; + autoneg_complete as u64 + }); + __bindgen_bitfield_unit.set(16usize, 1u8, { + let interrupts: u32 = unsafe { ::core::mem::transmute(interrupts) }; + interrupts as u64 + }); + __bindgen_bitfield_unit.set(17usize, 1u8, { + let irq_suspended: u32 = unsafe { ::core::mem::transmute(irq_suspended) }; + irq_suspended as u64 + }); + __bindgen_bitfield_unit.set(18usize, 1u8, { + let irq_rerun: u32 = unsafe { ::core::mem::transmute(irq_rerun) }; + irq_rerun as u64 + }); + __bindgen_bitfield_unit + } } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -36137,6 +33541,13 @@ pub struct phy_tdr_config { pub step: u32_, pub pair: s8, } +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; +} #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct mdio_bus_stats { @@ -36254,6 +33665,7 @@ pub struct mii_timestamper { #[derive(Debug, Copy, Clone)] pub struct phy_package_shared { pub base_addr: u8_, + pub np: *mut device_node, pub refcnt: refcount_t, pub flags: ::aya_ebpf::cty::c_ulong, pub priv_size: usize, @@ -36455,2189 +33867,2545 @@ pub struct phy_driver { 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, + >, +} +#[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 rcu: callback_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ip_mc_list__bindgen_ty_1 { + pub next: *mut ip_mc_list, + pub next_rcu: *mut ip_mc_list, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct 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], +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 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 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, +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 is_signed: ::aya_ebpf::cty::c_int, + pub len: ::aya_ebpf::cty::c_int, +} +#[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(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 io_uring_task { + pub cached_refs: ::aya_ebpf::cty::c_int, + pub last: *const io_ring_ctx, + 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; 16usize]>, + pub __bindgen_anon_1: io_uring_task__bindgen_ty_1, } #[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 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; 1usize]>, - pub __bindgen_padding_0: [u8; 3usize], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 40usize]>, } -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 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) - } - } +impl io_uring_task { #[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 - }); + 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 phylink_pcs { - pub ops: *const phylink_pcs_ops, - pub phylink: *mut phylink, - pub neg_mode: bool_, - pub poll: 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_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: *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 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(Debug)] -pub struct flow_action_cookie { - pub cookie_len: u32_, - pub cookie: __IncompleteArrayField, +#[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 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_, -} -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 struct io_uring_sqe__bindgen_ty_1__bindgen_ty_1 { + pub cmd_op: __u32, + pub __pad1: __u32, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct flow_cls_common_offload { - pub chain_index: u32_, - pub protocol: __be16, - pub prio: u32_, - pub extack: *mut netlink_ext_ack, +#[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 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_, +pub struct io_uring_sqe__bindgen_ty_2__bindgen_ty_1 { + pub level: __u32, + pub optname: __u32, } -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; +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_3 { + pub rw_flags: __kernel_rwf_t, + 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, } #[repr(C)] #[derive(Copy, Clone)] -pub union devlink_param_value { - pub vu8: u8_, - pub vu16: u16_, - pub vu32: u32_, - pub vstr: [::aya_ebpf::cty::c_char; 32usize], - pub vbool: bool_, +pub union io_uring_sqe__bindgen_ty_4 { + pub buf_index: __u16, + pub buf_group: __u16, } #[repr(C)] #[derive(Copy, Clone)] -pub struct devlink_param_gset_ctx { - pub val: devlink_param_value, - pub cmode: devlink_param_cmode::Type, +pub union io_uring_sqe__bindgen_ty_5 { + pub splice_fd_in: __s32, + pub file_index: __u32, + pub optlen: __u32, + pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_5__bindgen_ty_1, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct switchdev_mst_state { - pub msti: u16_, - pub state: u8_, +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 switchdev_brport_flags { - pub val: ::aya_ebpf::cty::c_ulong, - pub mask: ::aya_ebpf::cty::c_ulong, +pub struct io_uring_sqe__bindgen_ty_6 { + pub __bindgen_anon_1: __BindgenUnionField, + pub optval: __BindgenUnionField<__u64>, + pub cmd: __BindgenUnionField<[__u8; 0usize]>, + pub bindgen_union_field: [u64; 2usize], } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct switchdev_vlan_msti { - pub vid: u16_, - pub msti: u16_, +pub struct io_uring_sqe__bindgen_ty_6__bindgen_ty_1 { + pub addr3: __u64, + pub __pad2: [__u64; 1usize], } -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; +#[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(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, - ), - >, +pub struct io_wq_work_node { + pub next: *mut io_wq_work_node, } #[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_, +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 switchdev_obj_port_mdb { - pub obj: switchdev_obj, - pub addr: [::aya_ebpf::cty::c_uchar; 6usize], - pub vid: u16_, +pub struct io_wq_work { + pub list: io_wq_work_node, + pub flags: ::aya_ebpf::cty::c_uint, + pub cancel_seq: ::aya_ebpf::cty::c_int, } #[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_, +pub struct io_fixed_file { + pub file_ptr: ::aya_ebpf::cty::c_ulong, } #[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_, -} -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_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 struct io_file_table { + pub files: *mut io_fixed_file, + pub bitmap: *mut ::aya_ebpf::cty::c_ulong, + pub alloc_hint: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct io_hash_bucket { + pub lock: spinlock_t, + pub list: hlist_head, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 48usize]>, } #[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_, +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 dsa_8021q_context { - _unused: [u8; 0], +pub struct io_submit_link { + pub head: *mut io_kiocb, + pub last: *mut io_kiocb, } #[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 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 submit_nr: ::aya_ebpf::cty::c_ushort, + pub cqes_count: ::aya_ebpf::cty::c_uint, + pub plug: blk_plug, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_alloc_cache { + pub list: io_wq_work_node, + pub nr_cached: ::aya_ebpf::cty::c_uint, + pub max_cached: ::aya_ebpf::cty::c_uint, + pub elem_size: usize, +} +#[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)] +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_cqes: [io_uring_cqe; 16usize], + pub completion_lock: spinlock_t, + pub locked_free_nr: ::aya_ebpf::cty::c_uint, + pub locked_free_list: io_wq_work_list, + pub io_buffers_comp: list_head, + pub cq_overflow_list: list_head, + pub cancel_table: io_hash_table, + 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 io_buffers_cache: list_head, + pub io_buf_list: hlist_head, + pub poll_wq: wait_queue_head, + pub restrictions: io_restriction, + pub dummy_ubuf: *mut io_mapped_ubuf, + pub file_data: *mut io_rsrc_data, + pub buf_data: *mut io_rsrc_data, + pub rsrc_ref_list: list_head, + pub rsrc_node_cache: io_alloc_cache, + pub rsrc_quiesce_wq: wait_queue_head, + pub rsrc_quiesce: ::aya_ebpf::cty::c_uint, + 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 napi_list: list_head, + pub napi_lock: spinlock_t, + pub napi_busy_poll_to: ::aya_ebpf::cty::c_uint, + pub napi_prefer_busy_poll: bool_, + pub napi_enabled: bool_, + pub napi_ht: [hlist_head; 16usize], + pub evfd_last_cq_tail: ::aya_ebpf::cty::c_uint, + pub n_ring_pages: ::aya_ebpf::cty::c_ushort, + pub n_sqe_pages: ::aya_ebpf::cty::c_ushort, + pub ring_pages: *mut *mut page, + pub sqe_pages: *mut *mut page, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 48usize]>, +} +#[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 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 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, + pub submitter_task: *mut task_struct, + pub rings: *mut io_rings, + pub refs: percpu_ref, + 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; 16usize]>, } -impl dsa_switch { +impl io_ring_ctx__bindgen_ty_1 { #[inline] - pub fn setup(&self) -> u32_ { + 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_setup(&mut self, val: u32_) { + 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 fn vlan_filtering_is_global(&self) -> u32_ { + 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_vlan_filtering_is_global(&mut self, val: u32_) { + 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 fn needs_standalone_vlan_filtering(&self) -> u32_ { + 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_needs_standalone_vlan_filtering(&mut self, val: u32_) { + 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 fn configure_vlan_while_not_filtering(&self) -> u32_ { + 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_configure_vlan_while_not_filtering(&mut self, val: u32_) { + 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 fn untag_bridge_pvid(&self) -> u32_ { + 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_untag_bridge_pvid(&mut self, val: u32_) { + 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 fn assisted_learning_on_cpu_port(&self) -> u32_ { + 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_assisted_learning_on_cpu_port(&mut self, val: u32_) { + 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 fn vlan_filtering(&self) -> u32_ { + 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_vlan_filtering(&mut self, val: u32_) { + 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 fn mtu_enforcement_ingress(&self) -> u32_ { + 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_mtu_enforcement_ingress(&mut self, val: u32_) { + 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 fn fdb_isolation(&self) -> u32_ { + 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_fdb_isolation(&mut self, val: u32_) { + 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 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 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 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 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_, - assisted_learning_on_cpu_port: u32_, - vlan_filtering: u32_, - mtu_enforcement_ingress: u32_, - fdb_isolation: u32_, + 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 setup: u32 = unsafe { ::core::mem::transmute(setup) }; - setup as u64 + let drain_next: u32 = unsafe { ::core::mem::transmute(drain_next) }; + drain_next 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 + let restricted: u32 = unsafe { ::core::mem::transmute(restricted) }; + restricted 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 + let off_timeout_used: u32 = unsafe { ::core::mem::transmute(off_timeout_used) }; + off_timeout_used 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 + let drain_active: u32 = unsafe { ::core::mem::transmute(drain_active) }; + drain_active 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 + let has_evfd: u32 = unsafe { ::core::mem::transmute(has_evfd) }; + has_evfd as u64 }); __bindgen_bitfield_unit.set(5usize, 1u8, { - let assisted_learning_on_cpu_port: u32 = - unsafe { ::core::mem::transmute(assisted_learning_on_cpu_port) }; - assisted_learning_on_cpu_port as u64 + let task_complete: u32 = unsafe { ::core::mem::transmute(task_complete) }; + task_complete as u64 }); __bindgen_bitfield_unit.set(6usize, 1u8, { - let vlan_filtering: u32 = unsafe { ::core::mem::transmute(vlan_filtering) }; - vlan_filtering as u64 + let lockless_cq: u32 = unsafe { ::core::mem::transmute(lockless_cq) }; + lockless_cq as u64 }); __bindgen_bitfield_unit.set(7usize, 1u8, { - let mtu_enforcement_ingress: u32 = - unsafe { ::core::mem::transmute(mtu_enforcement_ingress) }; - mtu_enforcement_ingress as u64 + let syscall_iopoll: u32 = unsafe { ::core::mem::transmute(syscall_iopoll) }; + syscall_iopoll as u64 }); __bindgen_bitfield_unit.set(8usize, 1u8, { - let fdb_isolation: u32 = unsafe { ::core::mem::transmute(fdb_isolation) }; - fdb_isolation as u64 + 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; 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_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 rsrc_node: *mut io_rsrc_node, + pub cancel_seq: atomic_t, + pub poll_multi_queue: bool_, + pub iopoll_list: io_wq_work_list, + pub file_table: io_file_table, + pub user_bufs: *mut *mut io_mapped_ubuf, + pub nr_user_files: ::aya_ebpf::cty::c_uint, + pub nr_user_bufs: ::aya_ebpf::cty::c_uint, + pub submit_state: io_submit_state, + pub io_bl_xa: xarray, + pub cancel_table_locked: io_hash_table, + pub apoll_cache: io_alloc_cache, + pub netmsg_cache: io_alloc_cache, + pub cancelable_uring_cmd: hlist_head, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, +} +impl io_ring_ctx__bindgen_ty_2 { + #[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 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_extra: ::aya_ebpf::cty::c_uint, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, + pub __bindgen_padding_0: u32, +} +impl io_ring_ctx__bindgen_ty_3 { + #[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 io_ring_ctx__bindgen_ty_4 { + pub work_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; 16usize]>, +} +impl io_ring_ctx__bindgen_ty_4 { + #[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_5 { + pub timeout_lock: spinlock_t, + pub timeout_list: list_head, + pub ltimeout_list: list_head, + pub cq_last_tm_flush: ::aya_ebpf::cty::c_uint, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>, + pub __bindgen_padding_0: u32, +} +impl io_ring_ctx__bindgen_ty_5 { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring { + pub head: u32_, + pub tail: u32_, +} +#[repr(C)] +#[derive(Debug)] +pub struct io_rings { + pub sq: io_uring, + pub cq: io_uring, + pub sq_ring_mask: u32_, + pub cq_ring_mask: u32_, + pub sq_ring_entries: u32_, + pub cq_ring_entries: u32_, + pub sq_dropped: u32_, + pub sq_flags: atomic_t, + pub cq_flags: u32_, + pub cq_overflow: u32_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>, + pub cqes: __IncompleteArrayField, +} +impl io_rings { + #[inline] + pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_cmd_data { + pub file: *mut file, + pub data: [__u8; 56usize], +} +pub type io_req_flags_t = u64_; +#[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, +} +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(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 task: *mut task_struct, + pub __bindgen_anon_2: io_kiocb__bindgen_ty_2, + pub __bindgen_anon_3: io_kiocb__bindgen_ty_3, + pub rsrc_node: *mut io_rsrc_node, + pub refs: atomic_t, + pub poll_refs: atomic_t, + pub io_task_work: io_task_work, + pub hash_node: hlist_node, + pub apoll: *mut async_poll, + pub async_data: *mut ::aya_ebpf::cty::c_void, + pub link: *mut io_kiocb, + pub creds: *const cred, + pub work: io_wq_work, + pub big_cqe: io_kiocb__bindgen_ty_4, +} +#[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 imu: *mut io_mapped_ubuf, + pub kbuf: *mut io_buffer, + pub buf_list: *mut io_buffer_list, +} +#[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(Debug, Copy, Clone)] +pub struct io_kiocb__bindgen_ty_4 { + pub extra1: u64_, + pub extra2: u64_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_ev_fd { + pub cq_ev_fd: *mut eventfd_ctx, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub rcu: callback_head, + pub refs: atomic_t, + pub ops: atomic_t, +} +impl io_ev_fd { + #[inline] + pub fn eventfd_async(&self) -> ::aya_ebpf::cty::c_uint { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_eventfd_async(&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 fn new_bitfield_1( + eventfd_async: ::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 eventfd_async: u32 = unsafe { ::core::mem::transmute(eventfd_async) }; + eventfd_async as u64 }); __bindgen_bitfield_unit } } #[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, +#[derive(Debug, Copy, Clone)] +pub struct io_cache_entry { + pub node: io_wq_work_node, } #[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, +#[derive(Copy, Clone)] +pub struct io_rsrc_put { + pub tag: u64_, + pub __bindgen_anon_1: io_rsrc_put__bindgen_ty_1, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct dsa_mall_mirror_tc_entry { - pub to_local_port: u8_, - pub ingress: bool_, +#[derive(Copy, Clone)] +pub union io_rsrc_put__bindgen_ty_1 { + pub rsrc: *mut ::aya_ebpf::cty::c_void, + pub file: *mut file, + pub buf: *mut io_mapped_ubuf, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct dsa_mall_policer_tc_entry { - pub burst: u32_, - pub rate_bytes_per_sec: u64_, +#[derive(Copy, Clone)] +pub struct io_rsrc_node { + pub __bindgen_anon_1: io_rsrc_node__bindgen_ty_1, + pub refs: ::aya_ebpf::cty::c_int, + pub empty: bool_, + pub type_: u16_, + pub node: list_head, + pub item: io_rsrc_put, } #[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, +#[derive(Copy, Clone)] +pub union io_rsrc_node__bindgen_ty_1 { + pub cache: io_cache_entry, + pub ctx: *mut io_ring_ctx, } -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; +#[repr(C)] +#[derive(Debug)] +pub struct io_mapped_ubuf { + pub ubuf: u64_, + pub ubuf_end: u64_, + pub nr_bvecs: ::aya_ebpf::cty::c_uint, + pub acct_pages: ::aya_ebpf::cty::c_ulong, + pub bvec: __IncompleteArrayField, } #[repr(C)] #[derive(Copy, Clone)] -pub struct dsa_db { - pub type_: dsa_db_type::Type, - pub __bindgen_anon_1: dsa_db__bindgen_ty_1, +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(Debug, Copy, Clone)] +pub struct io_rsrc_data { + pub ctx: *mut io_ring_ctx, + pub tags: *mut *mut u64_, + pub nr: ::aya_ebpf::cty::c_uint, + pub rsrc_type: u16_, + pub quiesce: bool_, } #[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, +pub struct io_wq_hash { + pub refs: refcount_t, + pub map: ::aya_ebpf::cty::c_ulong, + pub wait: wait_queue_head, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct fixed_phy_status { - _unused: [u8; 0], +pub struct io_tw_state { + pub locked: bool_, } -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 adjust_link: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut dsa_switch, - arg2: ::aya_ebpf::cty::c_int, - arg3: *mut phy_device, - ), - >, - pub fixed_link_update: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut dsa_switch, - arg2: ::aya_ebpf::cty::c_int, - arg3: *mut fixed_phy_status, - ), - >, - 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_mac_select_pcs: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut dsa_switch, - arg2: ::aya_ebpf::cty::c_int, - arg3: phy_interface_t::Type, - ) -> *mut phylink_pcs, - >, - pub phylink_mac_prepare: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut dsa_switch, - arg2: ::aya_ebpf::cty::c_int, - arg3: ::aya_ebpf::cty::c_uint, - arg4: phy_interface_t::Type, - ) -> ::aya_ebpf::cty::c_int, - >, - pub phylink_mac_config: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut dsa_switch, - arg2: ::aya_ebpf::cty::c_int, - arg3: ::aya_ebpf::cty::c_uint, - arg4: *const phylink_link_state, - ), - >, - pub phylink_mac_finish: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut dsa_switch, - arg2: ::aya_ebpf::cty::c_int, - arg3: ::aya_ebpf::cty::c_uint, - arg4: phy_interface_t::Type, - ) -> ::aya_ebpf::cty::c_int, - >, - pub phylink_mac_link_down: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut dsa_switch, - arg2: ::aya_ebpf::cty::c_int, - arg3: ::aya_ebpf::cty::c_uint, - arg4: phy_interface_t::Type, - ), - >, - pub phylink_mac_link_up: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut dsa_switch, - arg2: ::aya_ebpf::cty::c_int, - arg3: ::aya_ebpf::cty::c_uint, - arg4: phy_interface_t::Type, - arg5: *mut phy_device, - arg6: ::aya_ebpf::cty::c_int, - arg7: ::aya_ebpf::cty::c_int, - arg8: bool_, - arg9: bool_, - ), - >, - 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_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 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 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 set_mac_eee: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut dsa_switch, - arg2: ::aya_ebpf::cty::c_int, - arg3: *mut ethtool_eee, - ) -> ::aya_ebpf::cty::c_int, - >, - pub get_mac_eee: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut dsa_switch, - arg2: ::aya_ebpf::cty::c_int, - arg3: *mut ethtool_eee, - ) -> ::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 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 timens_offsets { + pub monotonic: timespec64, + pub boottime: timespec64, +} +#[repr(C)] +#[derive(Debug, 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 debugfs_u32_array { + pub array: *mut u32_, + pub n_elements: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cma_kobject { + pub kobj: kobject, + pub cma: *mut cma, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct cma { + pub base_pfn: ::aya_ebpf::cty::c_ulong, + pub count: ::aya_ebpf::cty::c_ulong, + pub bitmap: *mut ::aya_ebpf::cty::c_ulong, + pub order_per_bit: ::aya_ebpf::cty::c_uint, + pub lock: spinlock_t, + pub mem_head: hlist_head, + pub mem_head_lock: spinlock_t, + pub dfs_bitmap: debugfs_u32_array, + pub name: [::aya_ebpf::cty::c_char; 64usize], + 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 reserve_pages_on_error: bool_, +} +#[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, +} +#[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 set_ageing_time: ::core::option::Option< + 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, +} +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; +} +#[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 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(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 dsa_switch, + 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 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 ifreq, - ) -> ::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 ifreq, - ) -> ::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< + pub populate_parent_alloc_arg: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut dsa_switch, - arg2: ::aya_ebpf::cty::c_int, - arg3: *mut sk_buff, + arg1: *mut gpio_chip, + arg2: *mut gpio_irq_fwspec, + arg3: ::aya_ebpf::cty::c_uint, 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< + pub child_offset_to_irq: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut dsa_switch, + arg1: *mut gpio_chip, 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, + ) -> ::aya_ebpf::cty::c_uint, >, - 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 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 devlink_sb_port_pool_set: ::core::option::Option< + pub init_valid_mask: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut dsa_switch, - arg2: ::aya_ebpf::cty::c_int, + arg1: *mut gpio_chip, + arg2: *mut ::aya_ebpf::cty::c_ulong, 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< + 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 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_, + arg1: *mut gpio_chip, + arg2: ::aya_ebpf::cty::c_uint, ) -> ::aya_ebpf::cty::c_int, >, - pub devlink_sb_tc_pool_bind_set: ::core::option::Option< + 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 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, + arg1: *mut gpio_chip, + arg2: ::aya_ebpf::cty::c_uint, ) -> ::aya_ebpf::cty::c_int, >, - pub devlink_sb_occ_snapshot: ::core::option::Option< + pub direction_input: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut dsa_switch, + arg1: *mut gpio_chip, arg2: ::aya_ebpf::cty::c_uint, ) -> ::aya_ebpf::cty::c_int, >, - pub devlink_sb_occ_max_clear: ::core::option::Option< + pub direction_output: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut dsa_switch, + arg1: *mut gpio_chip, arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_int, ) -> ::aya_ebpf::cty::c_int, >, - pub devlink_sb_occ_port_pool_get: ::core::option::Option< + pub 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_, + arg1: *mut gpio_chip, + arg2: ::aya_ebpf::cty::c_uint, ) -> ::aya_ebpf::cty::c_int, >, - pub devlink_sb_occ_tc_port_bind_get: ::core::option::Option< + pub get_multiple: ::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_, + arg1: *mut gpio_chip, + arg2: *mut ::aya_ebpf::cty::c_ulong, + arg3: *mut ::aya_ebpf::cty::c_ulong, ) -> ::aya_ebpf::cty::c_int, >, - pub port_change_mtu: ::core::option::Option< + pub set: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut dsa_switch, - arg2: ::aya_ebpf::cty::c_int, + arg1: *mut gpio_chip, + arg2: ::aya_ebpf::cty::c_uint, arg3: ::aya_ebpf::cty::c_int, - ) -> ::aya_ebpf::cty::c_int, + ), >, - pub port_max_mtu: ::core::option::Option< + pub set_multiple: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut dsa_switch, - arg2: ::aya_ebpf::cty::c_int, - ) -> ::aya_ebpf::cty::c_int, + arg1: *mut gpio_chip, + arg2: *mut ::aya_ebpf::cty::c_ulong, + arg3: *mut ::aya_ebpf::cty::c_ulong, + ), >, - pub port_lag_change: ::core::option::Option< + pub set_config: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut dsa_switch, - arg2: ::aya_ebpf::cty::c_int, + arg1: *mut gpio_chip, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_ulong, ) -> ::aya_ebpf::cty::c_int, >, - pub port_lag_join: ::core::option::Option< + pub to_irq: ::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, + arg1: *mut gpio_chip, + arg2: ::aya_ebpf::cty::c_uint, ) -> ::aya_ebpf::cty::c_int, >, - pub port_lag_leave: ::core::option::Option< + pub dbg_show: + ::core::option::Option, + pub init_valid_mask: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut dsa_switch, - arg2: ::aya_ebpf::cty::c_int, - arg3: dsa_lag, + arg1: *mut gpio_chip, + arg2: *mut ::aya_ebpf::cty::c_ulong, + arg3: ::aya_ebpf::cty::c_uint, ) -> ::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 add_pin_ranges: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut gpio_chip) -> ::aya_ebpf::cty::c_int, >, - pub port_hsr_leave: ::core::option::Option< + pub en_hw_timestamp: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut dsa_switch, - arg2: ::aya_ebpf::cty::c_int, - arg3: *mut net_device, + arg1: *mut gpio_chip, + arg2: u32_, + arg3: ::aya_ebpf::cty::c_ulong, ) -> ::aya_ebpf::cty::c_int, >, - pub port_mrp_add: ::core::option::Option< + pub dis_hw_timestamp: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut dsa_switch, - arg2: ::aya_ebpf::cty::c_int, - arg3: *const switchdev_obj_mrp, + arg1: *mut gpio_chip, + arg2: u32_, + arg3: ::aya_ebpf::cty::c_ulong, ) -> ::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 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 read_reg: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ::aya_ebpf::cty::c_void) -> ::aya_ebpf::cty::c_ulong, >, - pub port_mrp_add_ring_role: ::core::option::Option< + pub write_reg: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ::aya_ebpf::cty::c_void, arg2: ::aya_ebpf::cty::c_ulong), + >, + pub be_bits: bool_, + pub reg_dat: *mut ::aya_ebpf::cty::c_void, + pub reg_set: *mut ::aya_ebpf::cty::c_void, + pub reg_clr: *mut ::aya_ebpf::cty::c_void, + pub reg_dir_out: *mut ::aya_ebpf::cty::c_void, + pub reg_dir_in: *mut ::aya_ebpf::cty::c_void, + pub bgpio_dir_unreadable: bool_, + pub bgpio_bits: ::aya_ebpf::cty::c_int, + pub bgpio_lock: raw_spinlock_t, + pub bgpio_data: ::aya_ebpf::cty::c_ulong, + pub bgpio_dir: ::aya_ebpf::cty::c_ulong, + pub irq: gpio_irq_chip, + pub valid_mask: *mut ::aya_ebpf::cty::c_ulong, +} +#[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 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 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, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct gpio_device { + pub dev: device, + pub chrdev: cdev, + pub id: ::aya_ebpf::cty::c_int, + pub mockdev: *mut device, + pub owner: *mut module, + pub chip: *mut gpio_chip, + pub descs: *mut gpio_desc, + pub desc_srcu: srcu_struct, + pub base: ::aya_ebpf::cty::c_int, + 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: blocking_notifier_head, + pub device_notifier: blocking_notifier_head, + pub srcu: srcu_struct, + pub pin_ranges: list_head, +} +#[repr(C)] +#[derive(Debug)] +pub struct gpio_desc_label { + pub rh: callback_head, + pub str_: __IncompleteArrayField<::aya_ebpf::cty::c_char>, +} +#[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 dsa_switch, - arg2: ::aya_ebpf::cty::c_int, - arg3: *const switchdev_obj_ring_role_mrp, - ) -> ::aya_ebpf::cty::c_int, + arg1: *mut file, + arg2: *mut ::aya_ebpf::cty::c_char, + arg3: usize, + arg4: *mut loff_t, + ) -> isize, >, - pub port_mrp_del_ring_role: ::core::option::Option< + 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 dsa_switch, - arg2: ::aya_ebpf::cty::c_int, - arg3: *const switchdev_obj_ring_role_mrp, - ) -> ::aya_ebpf::cty::c_int, + arg1: *mut file, + arg2: *const ::aya_ebpf::cty::c_char, + arg3: usize, + arg4: *mut loff_t, + ) -> isize, >, - pub tag_8021q_vlan_add: ::core::option::Option< + 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 dsa_switch, - arg2: ::aya_ebpf::cty::c_int, - arg3: u16_, - arg4: u16_, - ) -> ::aya_ebpf::cty::c_int, + arg1: *mut file, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_long, >, - pub tag_8021q_vlan_del: ::core::option::Option< + pub proc_compat_ioctl: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut dsa_switch, - arg2: ::aya_ebpf::cty::c_int, - arg3: u16_, - ) -> ::aya_ebpf::cty::c_int, + arg1: *mut file, + arg2: ::aya_ebpf::cty::c_uint, + arg3: ::aya_ebpf::cty::c_ulong, + ) -> ::aya_ebpf::cty::c_long, >, - pub conduit_state_change: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut dsa_switch, arg2: *const net_device, arg3: bool_), + 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 iw_request_info { - pub cmd: __u16, - pub flags: __u16, +pub struct mptcp_mib { + pub mibs: [::aya_ebpf::cty::c_ulong; 59usize], +} +#[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(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_pages: *mut *mut page, + 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_pages: [*mut page; 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(Copy, Clone)] +pub struct ctx_rq_wait { + pub comp: completion, + pub count: atomic_t, +} +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; +} +#[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 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, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct iw_spy_data { - pub spy_number: ::aya_ebpf::cty::c_int, - pub spy_address: [u_char; 48usize], - pub spy_stat: [iw_quality; 8usize], - pub spy_thr_low: iw_quality, - pub spy_thr_high: iw_quality, - pub spy_thr_under: [u_char; 8usize], +pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_1 { + pub tp_name: __u64, + pub tp_name_len: __u32, } #[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, +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, } #[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, - >, +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 reset_controller_dev { - pub ops: *const reset_control_ops, - pub owner: *mut module, - pub list: list_head, - pub reset_control_head: list_head, - pub dev: *mut device, - pub of_node: *mut device_node, - pub of_reset_n_cells: ::aya_ebpf::cty::c_int, - pub of_xlate: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut reset_controller_dev, - arg2: *const of_phandle_args, - ) -> ::aya_ebpf::cty::c_int, - >, - pub nr_resets: ::aya_ebpf::cty::c_uint, +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 folio_batch { - pub nr: ::aya_ebpf::cty::c_uchar, - pub percpu_pvec_drained: bool_, - pub folios: [*mut folio; 15usize], +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 dst_cache { - pub cache: *mut dst_cache_pcpu, - pub reset_ts: ::aya_ebpf::cty::c_ulong, +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 dst_cache_pcpu { - pub refresh_ts: ::aya_ebpf::cty::c_ulong, - pub dst: *mut dst_entry, - pub cookie: u32_, - pub __bindgen_anon_1: dst_cache_pcpu__bindgen_ty_1, +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 dst_cache_pcpu__bindgen_ty_1 { - pub in_saddr: in_addr, - pub in6_saddr: in6_addr, +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, +} +#[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(Copy, Clone)] -pub struct mctp_dev { +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 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 xdp_mem_info { + pub type_: u32_, + pub id: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xdp_frame { + pub data: *mut ::aya_ebpf::cty::c_void, + pub len: u16_, + pub headroom: u16_, + pub metasize: u32_, + pub mem: xdp_mem_info, + pub dev_rx: *mut net_device, + pub frame_sz: u32_, + pub flags: u32_, +} +#[repr(C)] +#[derive(Debug, 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 frame_sz: u32_, + pub flags: u32_, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xdp_rxq_info { pub dev: *mut net_device, - pub refs: refcount_t, - pub net: ::aya_ebpf::cty::c_uint, - pub ops: *const mctp_netdev_ops, - pub addrs: *mut u8_, - pub num_addrs: usize, - pub addrs_lock: spinlock_t, + pub queue_index: u32_, + pub reg_state: u32_, + pub mem: xdp_mem_info, + pub napi_id: ::aya_ebpf::cty::c_uint, + pub frag_size: u32_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 32usize]>, +} +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 xdp_txq_info { + pub dev: *mut net_device, +} +#[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 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, } -pub type mctp_eid_t = __u8; #[repr(C)] #[derive(Copy, Clone)] -pub struct mctp_sk_key { - 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_, +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 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 mctp_netdev_ops { - pub release_flow: - ::core::option::Option, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct mnt_namespace { - pub ns: ns_common, - pub root: *mut mount, - pub mounts: rb_root, - pub user_ns: *mut user_namespace, - pub ucounts: *mut ucounts, - pub seq: u64_, - pub poll: wait_queue_head_t, - pub event: u64_, - pub nr_mounts: ::aya_ebpf::cty::c_uint, - pub pending_mounts: ::aya_ebpf::cty::c_uint, +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 folio_ops: *const iomap_folio_ops, + pub validity_cookie: u64_, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct fsnotify_ops { - pub handle_event: ::core::option::Option< +pub struct iomap_folio_ops { + pub get_folio: ::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, + arg1: *mut iomap_iter, + arg2: loff_t, + arg3: ::aya_ebpf::cty::c_uint, + ) -> *mut folio, >, - pub handle_inode_event: ::core::option::Option< + pub put_folio: ::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), + arg1: *mut inode, + arg2: loff_t, + arg3: ::aya_ebpf::cty::c_uint, + arg4: *mut folio, + ), >, - pub free_mark: ::core::option::Option, + pub iomap_valid: + ::core::option::Option bool_>, } #[repr(C)] -#[derive(Copy, Clone)] -pub struct inotify_group_private_data { - pub idr_lock: spinlock_t, - pub idr: idr, - pub ucounts: *mut ucounts, +#[derive(Debug, Copy, Clone)] +pub struct iomap_iter { + pub inode: *mut inode, + pub pos: loff_t, + pub len: u64_, + pub processed: s64, + pub flags: ::aya_ebpf::cty::c_uint, + pub iomap: iomap, + pub srcmap: iomap, + pub private: *mut ::aya_ebpf::cty::c_void, } +pub type irq_write_msi_msg_t = + ::core::option::Option; #[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 struct platform_msi_priv_data { + pub dev: *mut device, + pub host_data: *mut ::aya_ebpf::cty::c_void, + pub arg: msi_alloc_info_t, + pub write_msg: irq_write_msi_msg_t, + pub devid: ::aya_ebpf::cty::c_int, } #[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: ::aya_ebpf::cty::c_uint, - 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 __bindgen_anon_1: fsnotify_group__bindgen_ty_1, +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(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, +pub struct netpoll_info { + pub refcnt: refcount_t, + pub dev_lock: semaphore, + pub txq: sk_buff_head, + pub tx_work: delayed_work, + pub netpoll: *mut netpoll, + pub rcu: callback_head, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct fsnotify_iter_info { - pub marks: [*mut fsnotify_mark; 5usize], - pub current_group: *mut fsnotify_group, - pub report_mask: ::aya_ebpf::cty::c_uint, - pub srcu_idx: ::aya_ebpf::cty::c_int, +#[derive(Copy, Clone)] +pub union 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 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, +pub struct netpoll { + pub dev: *mut net_device, + pub dev_tracker: netdevice_tracker, + pub dev_name: [::aya_ebpf::cty::c_char; 16usize], + pub name: *const ::aya_ebpf::cty::c_char, + pub local_ip: inet_addr, + pub remote_ip: inet_addr, + pub ipv6: bool_, + pub local_port: u16_, + pub remote_port: u16_, + pub remote_mac: [u8_; 6usize], } -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct fsnotify_event { - pub list: list_head, +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 __MAX_BPF_LINK_TYPE: Type = 14; } +pub type bpfptr_t = sockptr_t; #[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, +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 __bindgen_anon_1: bpf_link__bindgen_ty_1, } #[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_instance: list_head, - pub mnt_devname: *const ::aya_ebpf::cty::c_char, - pub __bindgen_anon_2: mount__bindgen_ty_2, - pub mnt_expire: list_head, - pub mnt_share: list_head, - pub mnt_slave_list: list_head, - pub mnt_slave: list_head, - pub mnt_master: *mut mount, - pub mnt_ns: *mut mnt_namespace, - pub mnt_mp: *mut mountpoint, - pub __bindgen_anon_3: mount__bindgen_ty_3, - pub mnt_umounting: list_head, - pub mnt_fsnotify_marks: *mut fsnotify_mark_connector, - pub mnt_fsnotify_mask: __u32, - 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 union bpf_link__bindgen_ty_1 { + pub rcu: callback_head, + pub work: work_struct, } #[repr(C)] -#[derive(Copy, Clone)] -pub union mount__bindgen_ty_1 { - pub mnt_rcu: callback_head, - pub mnt_llist: llist_node, +#[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, + >, } #[repr(C)] -#[derive(Copy, Clone)] -pub union mount__bindgen_ty_2 { - pub mnt_node: rb_node, - pub mnt_list: list_head, +#[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, } #[repr(C)] -#[derive(Copy, Clone)] -pub union mount__bindgen_ty_3 { - pub mnt_mp_list: hlist_node, - pub mnt_umount: hlist_node, +#[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, } #[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, +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_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 mountpoint { - pub m_hash: hlist_node, - pub m_dentry: *mut dentry, - pub m_list: hlist_head, - pub m_count: ::aya_ebpf::cty::c_int, +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 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 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 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 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 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 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], +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 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, Copy, Clone)] -pub struct throtl_service_queue { - pub parent_sq: *mut throtl_service_queue, - pub queued: [list_head; 2usize], - pub nr_queued: [::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, +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], } -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; +#[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 tcf_t { - pub install: __u64, - pub lastuse: __u64, - pub expires: __u64, - pub firstuse: __u64, +pub struct iw_param { + pub value: __s32, + pub fixed: __u8, + pub disabled: __u8, + pub flags: __u16, } #[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, - >, +pub struct iw_point { + pub pointer: *mut ::aya_ebpf::cty::c_void, + pub length: __u16, + pub flags: __u16, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct 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, +pub struct iw_freq { + pub m: __s32, + pub e: __s16, + pub i: __u8, + pub flags: __u8, } #[repr(C)] -#[derive(Copy, Clone)] -pub struct tcf_idrinfo { - pub lock: mutex, - pub action_idr: idr, - pub net: *mut net, +#[derive(Debug, Copy, Clone)] +pub struct iw_quality { + pub qual: __u8, + pub level: __u8, + pub noise: __u8, + pub updated: __u8, } #[repr(C)] -#[derive(Copy, Clone)] -pub 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_qstats: gnet_stats_queue, - 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 - } +#[derive(Debug, Copy, Clone)] +pub struct iw_discarded { + pub nwid: __u32, + pub code: __u32, + pub fragment: __u32, + pub retries: __u32, + pub misc: __u32, } -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, - >, +pub struct iw_missed { + pub beacon: __u32, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct tc_cookie { - pub data: *mut u8_, - pub len: u32_, - pub rcu: callback_head, +pub struct iw_statistics { + pub status: __u16, + pub qual: iw_quality, + pub discard: iw_discarded, + pub miss: iw_missed, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct io_bitmap { - pub sequence: u64_, - pub refcnt: refcount_t, - pub max: ::aya_ebpf::cty::c_uint, - pub bitmap: [::aya_ebpf::cty::c_ulong; 1024usize], +pub struct iwreq_data { + pub name: __BindgenUnionField<[::aya_ebpf::cty::c_char; 16usize]>, + pub essid: __BindgenUnionField, + pub nwid: __BindgenUnionField, + pub freq: __BindgenUnionField, + pub sens: __BindgenUnionField, + pub bitrate: __BindgenUnionField, + pub txpower: __BindgenUnionField, + pub rts: __BindgenUnionField, + pub frag: __BindgenUnionField, + pub mode: __BindgenUnionField<__u32>, + pub retry: __BindgenUnionField, + pub encoding: __BindgenUnionField, + pub power: __BindgenUnionField, + pub qual: __BindgenUnionField, + pub ap_addr: __BindgenUnionField, + pub addr: __BindgenUnionField, + pub param: __BindgenUnionField, + pub data: __BindgenUnionField, + pub bindgen_union_field: [u64; 2usize], } #[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, +pub struct iw_priv_args { + pub cmd: __u32, + pub set_args: __u16, + pub get_args: __u16, + pub name: [::aya_ebpf::cty::c_char; 16usize], } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct pinctrl_state { - pub node: list_head, - pub name: *const ::aya_ebpf::cty::c_char, - pub settings: list_head, +pub struct libipw_device { + _unused: [u8; 0], } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct xdp_desc { - pub addr: __u64, - pub len: __u32, - pub options: __u32, +pub struct iw_public_data { + pub spy_data: *mut iw_spy_data, + pub libipw: *mut libipw_device, } #[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 free_list: list_head, - pub xskb_list: list_head, - pub heads_cnt: u32_, - pub queue_id: u16_, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, - 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 tx_metadata_len: u8_, - pub cached_need_wakeup: u8_, - pub uses_need_wakeup: bool_, - pub dma_need_sync: 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_2: [u8; 0], - pub _bitfield_2: __BindgenBitfieldUnit<[u8; 16usize]>, -} -impl xsk_buff_pool { - #[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 - } +#[derive(Debug, Copy, Clone)] +pub struct iw_request_info { + pub cmd: __u16, + pub flags: __u16, } #[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, +pub struct iw_spy_data { + pub spy_number: ::aya_ebpf::cty::c_int, + pub spy_address: [u_char; 48usize], + pub spy_stat: [iw_quality; 8usize], + pub spy_thr_low: iw_quality, + pub spy_thr_high: iw_quality, + pub spy_thr_under: [u_char; 8usize], } #[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, +pub struct user_event_mm { + pub mms_link: list_head, + pub enablers: list_head, + pub mm: *mut mm_struct, + pub next: *mut user_event_mm, + pub refcnt: refcount_t, + pub tasks: refcount_t, + pub put_rwork: rcu_work, } +pub type fsnotify_connp_t = *mut fsnotify_mark_connector; #[repr(C)] -#[derive(Debug, 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 orig_addr: u64_, - pub free_list_node: list_head, - pub xskb_list_node: list_head, +#[derive(Copy, Clone)] +pub struct fsnotify_mark_connector { + pub lock: spinlock_t, + pub type_: ::aya_ebpf::cty::c_ushort, + pub flags: ::aya_ebpf::cty::c_ushort, + pub __bindgen_anon_1: fsnotify_mark_connector__bindgen_ty_1, + pub list: hlist_head, } #[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, +#[derive(Copy, Clone)] +pub union fsnotify_mark_connector__bindgen_ty_1 { + pub obj: *mut fsnotify_connp_t, + pub destroy_next: *mut fsnotify_mark_connector, } #[repr(C)] #[derive(Copy, Clone)] @@ -38666,1063 +36434,1007 @@ pub struct pipe_inode_info { } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct user_event_mm { - pub mms_link: list_head, - pub enablers: list_head, - pub mm: *mut mm_struct, - pub next: *mut user_event_mm, - pub refcnt: refcount_t, - pub tasks: refcount_t, - pub put_rwork: rcu_work, +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(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(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 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(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(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 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 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, +#[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 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_, - >, +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 page: *mut buffer_data_page, } #[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, +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 fileattr { - 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 fileattr { - #[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 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 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 - } +#[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 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 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 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], +#[derive(Copy, Clone)] +pub struct mnt_namespace { + pub ns: ns_common, + pub root: *mut mount, + pub mounts: rb_root, + pub user_ns: *mut user_namespace, + pub ucounts: *mut ucounts, + pub seq: u64_, + pub poll: wait_queue_head_t, + pub event: u64_, + pub nr_mounts: ::aya_ebpf::cty::c_uint, + pub pending_mounts: ::aya_ebpf::cty::c_uint, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct io_cache_entry { - pub node: io_wq_work_node, +pub struct fsnotify_ops { + pub handle_event: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut fsnotify_group, + arg2: u32_, + arg3: *const ::aya_ebpf::cty::c_void, + arg4: ::aya_ebpf::cty::c_int, + arg5: *mut inode, + arg6: *const qstr, + arg7: u32_, + arg8: *mut fsnotify_iter_info, + ) -> ::aya_ebpf::cty::c_int, + >, + pub handle_inode_event: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut fsnotify_mark, + arg2: u32_, + arg3: *mut inode, + arg4: *mut inode, + arg5: *const qstr, + arg6: u32_, + ) -> ::aya_ebpf::cty::c_int, + >, + pub free_group_priv: ::core::option::Option, + pub freeing_mark: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut fsnotify_mark, arg2: *mut fsnotify_group), + >, + pub free_event: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut fsnotify_group, arg2: *mut fsnotify_event), + >, + pub free_mark: ::core::option::Option, } #[repr(C)] #[derive(Copy, Clone)] -pub struct io_rsrc_put { - pub tag: u64_, - pub __bindgen_anon_1: io_rsrc_put__bindgen_ty_1, +pub struct inotify_group_private_data { + pub idr_lock: spinlock_t, + pub idr: idr, + pub ucounts: *mut ucounts, } #[repr(C)] #[derive(Copy, Clone)] -pub union io_rsrc_put__bindgen_ty_1 { - pub rsrc: *mut ::aya_ebpf::cty::c_void, - pub file: *mut file, - pub buf: *mut io_mapped_ubuf, +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, } #[repr(C)] #[derive(Copy, Clone)] -pub struct io_rsrc_node { - pub __bindgen_anon_1: io_rsrc_node__bindgen_ty_1, - pub refs: ::aya_ebpf::cty::c_int, - pub empty: bool_, - pub type_: u16_, - pub node: list_head, - pub item: io_rsrc_put, +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: ::aya_ebpf::cty::c_uint, + 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 __bindgen_anon_1: fsnotify_group__bindgen_ty_1, } #[repr(C)] #[derive(Copy, Clone)] -pub union io_rsrc_node__bindgen_ty_1 { - pub cache: io_cache_entry, - pub ctx: *mut io_ring_ctx, -} -#[repr(C)] -#[derive(Debug)] -pub struct io_mapped_ubuf { - pub ubuf: u64_, - pub ubuf_end: u64_, - pub nr_bvecs: ::aya_ebpf::cty::c_uint, - pub acct_pages: ::aya_ebpf::cty::c_ulong, - pub bvec: __IncompleteArrayField, +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 io_rsrc_data { - pub ctx: *mut io_ring_ctx, - pub tags: *mut *mut u64_, - pub nr: ::aya_ebpf::cty::c_uint, - pub rsrc_type: u16_, - pub quiesce: bool_, +pub struct fsnotify_iter_info { + pub marks: [*mut fsnotify_mark; 5usize], + pub current_group: *mut fsnotify_group, + pub report_mask: ::aya_ebpf::cty::c_uint, + pub srcu_idx: ::aya_ebpf::cty::c_int, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct pin_cookie {} -#[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 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, } -pub type call_single_data_t = __call_single_data; #[repr(C)] -#[derive(Copy, Clone)] -pub struct dl_bw { - pub lock: raw_spinlock_t, - pub bw: u64_, - pub total_bw: u64_, +#[derive(Debug, Copy, Clone)] +pub struct fsnotify_event { + pub list: list_head, } #[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 cpupri_vec { - pub count: atomic_t, - pub mask: cpumask_var_t, +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 cpupri { - pub pri_to_cpu: [cpupri_vec; 101usize], - pub cpu_to_pri: *mut ::aya_ebpf::cty::c_int, +#[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_instance: list_head, + pub mnt_devname: *const ::aya_ebpf::cty::c_char, + pub __bindgen_anon_2: mount__bindgen_ty_2, + pub mnt_expire: list_head, + pub mnt_share: list_head, + pub mnt_slave_list: list_head, + pub mnt_slave: list_head, + pub mnt_master: *mut mount, + pub mnt_ns: *mut mnt_namespace, + pub mnt_mp: *mut mountpoint, + pub __bindgen_anon_3: mount__bindgen_ty_3, + pub mnt_umounting: list_head, + pub mnt_fsnotify_marks: *mut fsnotify_mark_connector, + pub mnt_fsnotify_mask: __u32, + 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, } #[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 overload: ::aya_ebpf::cty::c_int, - pub overutilized: ::aya_ebpf::cty::c_int, - pub dlo_mask: cpumask_var_t, - pub dlo_count: atomic_t, - pub dl_bw: dl_bw, - pub cpudl: cpudl, - pub visit_gen: 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 max_cpu_capacity: ::aya_ebpf::cty::c_ulong, - pub pd: *mut perf_domain, +pub union mount__bindgen_ty_1 { + pub mnt_rcu: callback_head, + pub mnt_llist: llist_node, } #[repr(C)] #[derive(Copy, Clone)] -pub struct cfs_rq { - pub load: load_weight, - pub nr_running: ::aya_ebpf::cty::c_uint, - pub h_nr_running: ::aya_ebpf::cty::c_uint, - pub idle_nr_running: ::aya_ebpf::cty::c_uint, - pub idle_h_nr_running: ::aya_ebpf::cty::c_uint, - pub avg_vruntime: s64, - pub avg_load: u64_, - pub exec_clock: u64_, - pub min_vruntime: u64_, - pub forceidle_seq: ::aya_ebpf::cty::c_uint, - pub min_vruntime_fi: u64_, - pub tasks_timeline: rb_root_cached, - pub curr: *mut sched_entity, - pub next: *mut sched_entity, - pub nr_spread_over: ::aya_ebpf::cty::c_uint, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, - 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 throttled: ::aya_ebpf::cty::c_int, - pub throttle_count: ::aya_ebpf::cty::c_int, - pub throttled_list: list_head, - pub throttled_csd_list: list_head, - pub _bitfield_align_2: [u8; 0], - pub _bitfield_2: __BindgenBitfieldUnit<[u8; 56usize]>, +pub union mount__bindgen_ty_2 { + pub mnt_node: rb_node, + pub mnt_list: list_head, } #[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]>, +pub union mount__bindgen_ty_3 { + pub mnt_mp_list: hlist_node, + pub mnt_umount: hlist_node, } -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 - } +#[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, } -impl cfs_rq { - #[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 mountpoint { + pub m_hash: hlist_node, + pub m_dentry: *mut dentry, + pub m_list: hlist_head, + pub m_count: ::aya_ebpf::cty::c_int, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct uclamp_bucket { - pub _bitfield_align_1: [u64; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, +pub struct __kernel_fsid_t { + pub val: [::aya_ebpf::cty::c_int; 2usize], } -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 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 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 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)] +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 uclamp_rq { - pub value: ::aya_ebpf::cty::c_uint, - pub bucket: [uclamp_bucket; 5usize], +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 rt_prio_array { - pub bitmap: [::aya_ebpf::cty::c_ulong; 2usize], - pub queue: [list_head; 100usize], +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(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: ::aya_ebpf::cty::c_int, - pub pushable_tasks: plist_head, - pub rt_queued: ::aya_ebpf::cty::c_int, - pub rt_throttled: ::aya_ebpf::cty::c_int, - pub rt_time: u64_, - pub rt_runtime: u64_, - pub rt_runtime_lock: raw_spinlock_t, +#[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 rt_rq__bindgen_ty_1 { - pub curr: ::aya_ebpf::cty::c_int, - pub next: ::aya_ebpf::cty::c_int, +pub struct fid__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1 {} +#[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(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: ::aya_ebpf::cty::c_int, - 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_, +#[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, +} +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; } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct dl_rq__bindgen_ty_1 { - pub curr: u64_, - pub next: u64_, +pub struct watch_type_filter { + pub type_: watch_notification_type::Type, + pub subtype_filter: [__u32; 1usize], + pub info_filter: __u32, + pub info_mask: __u32, } -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, +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 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 leaf_cfs_rq_list: list_head, - pub tmp_alone_branch: *mut list_head, - pub nr_uninterruptible: ::aya_ebpf::cty::c_uint, - pub curr: *mut task_struct, - 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; 40usize]>, - 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 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; 24usize]>, - 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_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; 8usize]>, - 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]>, +pub union watch_filter__bindgen_ty_1 { + pub rcu: callback_head, + pub type_filter: [::aya_ebpf::cty::c_ulong; 1usize], } -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; 24usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); - __bindgen_bitfield_unit - } - #[inline] - pub fn new_bitfield_6() -> __BindgenBitfieldUnit<[u8; 8usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = 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(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 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_, +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 struct task_group { - pub css: cgroup_subsys_state, - pub se: *mut *mut sched_entity, - pub cfs_rq: *mut *mut cfs_rq, - pub shares: ::aya_ebpf::cty::c_ulong, - pub idle: ::aya_ebpf::cty::c_int, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, - pub load_avg: atomic_long_t, +pub union watch__bindgen_ty_1 { pub rcu: callback_head, - pub list: list_head, - pub parent: *mut task_group, - pub siblings: list_head, - pub children: list_head, - pub autogroup: *mut autogroup, - pub cfs_bandwidth: cfs_bandwidth, - pub uclamp_pct: [::aya_ebpf::cty::c_uint; 2usize], - pub uclamp_req: [uclamp_se; 2usize], - pub uclamp: [uclamp_se; 2usize], - pub _bitfield_align_2: [u8; 0], - pub _bitfield_2: __BindgenBitfieldUnit<[u8; 32usize]>, + pub info_id: u32_, } -impl task_group { - #[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; 32usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 32usize]> = Default::default(); - __bindgen_bitfield_unit - } +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netdev_notifier_info { + pub dev: *mut net_device, + pub extack: *mut netlink_ext_ack, +} +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; } #[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, +#[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)] #[derive(Debug, Copy, Clone)] -pub struct sched_domain_shared { - pub ref_: atomic_t, - pub nr_busy_cpus: atomic_t, - pub has_idle_cores: ::aya_ebpf::cty::c_int, - pub nr_idle_scan: ::aya_ebpf::cty::c_int, +pub struct pfn_t { + pub val: u64_, +} +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; } #[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 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: [::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>, +#[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 pfn_t, + ) -> ::aya_ebpf::cty::c_long, + >, + pub dax_supported: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dax_device, + arg2: *mut block_device, + arg3: ::aya_ebpf::cty::c_int, + arg4: sector_t, + arg5: sector_t, + ) -> bool_, + >, + 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, + >, +} +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; +} +#[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 union sched_domain__bindgen_ty_1 { - pub private: *mut ::aya_ebpf::cty::c_void, +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 prop: dpll_pin_properties, + pub refcount: refcount_t, pub rcu: callback_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>, +#[derive(Debug, Copy, Clone)] +pub struct dpll_pin_frequency { + pub min: u64_, + pub max: u64_, } #[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>, +#[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 cpudl_item { - pub dl: u64_, - pub cpu: ::aya_ebpf::cty::c_int, - pub idx: ::aya_ebpf::cty::c_int, +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 perf_domain { - pub em_pd: *mut em_perf_domain, - pub next: *mut perf_domain, - pub rcu: callback_head, +pub struct robust_list { + pub next: *mut robust_list, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct balance_callback { - pub next: *mut balance_callback, - pub func: ::core::option::Option, +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 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 rq_flags { - pub flags: ::aya_ebpf::cty::c_ulong, - pub cookie: pin_cookie, - pub clock_update_flags: ::aya_ebpf::cty::c_uint, +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 affinity_context { - pub new_mask: *const cpumask, - pub user_mask: *mut cpumask, - pub flags: ::aya_ebpf::cty::c_uint, +pub struct futex_key__bindgen_ty_3 { + pub ptr: u64_, + pub word: ::aya_ebpf::cty::c_ulong, + pub offset: ::aya_ebpf::cty::c_uint, } #[repr(C)] #[derive(Copy, Clone)] -pub struct memory_tier { +pub struct futex_pi_state { 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, + pub pi_mutex: rt_mutex_base, + pub owner: *mut task_struct, + pub refcount: refcount_t, + pub key: futex_key, } #[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, +#[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, 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, - ) -> ::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, - >, +#[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(Debug, Copy, Clone)] -pub struct cpuidle_driver_kobj { - _unused: [u8; 0], +#[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 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, +#[derive(Debug)] +pub struct bpf_local_storage_data { + pub smap: *mut bpf_local_storage_map, + pub data: __IncompleteArrayField, } -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 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 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 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 - } +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; } #[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, +pub struct flow_cls_common_offload { + pub chain_index: u32_, + pub protocol: __be16, + pub prio: u32_, + pub extack: *mut netlink_ext_ack, } -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 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(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_, } -pub mod uprobe_filter_ctx { +#[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, +} +pub mod devlink_linecard_state { pub type Type = ::aya_ebpf::cty::c_uint; - pub const UPROBE_FILTER_REGISTER: Type = 0; - pub const UPROBE_FILTER_UNREGISTER: Type = 1; - pub const UPROBE_FILTER_MMAP: Type = 2; + 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; +} +#[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 uprobe_consumer { - pub handler: ::core::option::Option< +pub struct devlink_linecard_ops { + pub provision: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut uprobe_consumer, - arg2: *mut pt_regs, + 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 ret_handler: ::core::option::Option< + pub unprovision: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut uprobe_consumer, - arg2: ::aya_ebpf::cty::c_ulong, - arg3: *mut pt_regs, + arg1: *mut devlink_linecard, + arg2: *mut ::aya_ebpf::cty::c_void, + arg3: *mut netlink_ext_ack, ) -> ::aya_ebpf::cty::c_int, >, - pub filter: ::core::option::Option< + pub same_provision: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut uprobe_consumer, - arg2: uprobe_filter_ctx::Type, - arg3: *mut mm_struct, + 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 next: *mut uprobe_consumer, + 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, + ), + >, } +pub type devlink_rel_notify_cb_t = + ::core::option::Option; +pub type devlink_rel_cleanup_cb_t = + ::core::option::Option; #[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, +#[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 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 union arch_uprobe__bindgen_ty_1 { - pub insn: [u8_; 16usize], - pub ixol: [u8_; 16usize], +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(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, +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(Debug, Copy, Clone)] -pub struct arch_uprobe__bindgen_ty_2__bindgen_ty_1 { - pub offs: s32, - pub ilen: u8_, - pub opc1: u8_, +pub struct nlm_lockowner { + _unused: [u8; 0], } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct arch_uprobe__bindgen_ty_2__bindgen_ty_2 { - pub fixups: u8_, - pub ilen: u8_, +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 arch_uprobe__bindgen_ty_2__bindgen_ty_3 { - pub reg_offset: u8_, - pub ilen: u8_, +pub struct nfs4_lock_info { + pub owner: *mut nfs4_lock_state, } #[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, +#[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 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: *mut uprobe_consumer, - pub inode: *mut inode, - pub offset: loff_t, - pub ref_ctr_offset: loff_t, - pub flags: ::aya_ebpf::cty::c_ulong, - pub arch: arch_uprobe, +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 vm_special_mapping { - pub name: *const ::aya_ebpf::cty::c_char, - pub pages: *mut *mut page, - pub fault: ::core::option::Option< - unsafe extern "C" fn( - arg1: *const vm_special_mapping, - arg2: *mut vm_area_struct, - arg3: *mut vm_fault, - ) -> vm_fault_t, - >, - pub mremap: ::core::option::Option< - unsafe extern "C" fn( - arg1: *const vm_special_mapping, - arg2: *mut vm_area_struct, - ) -> ::aya_ebpf::cty::c_int, - >, +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 xol_area { - pub wq: wait_queue_head_t, - pub slot_count: atomic_t, - pub bitmap: *mut ::aya_ebpf::cty::c_ulong, - pub xol_mapping: vm_special_mapping, - pub pages: [*mut page; 2usize], - pub vaddr: ::aya_ebpf::cty::c_ulong, +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 debugfs_u32_array { - pub array: *mut u32_, - pub n_elements: u32_, +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 cma_kobject { - pub kobj: kobject, - pub cma: *mut cma, +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 struct cma { - pub base_pfn: ::aya_ebpf::cty::c_ulong, - pub count: ::aya_ebpf::cty::c_ulong, - pub bitmap: *mut ::aya_ebpf::cty::c_ulong, - pub order_per_bit: ::aya_ebpf::cty::c_uint, - pub lock: spinlock_t, - pub mem_head: hlist_head, - pub mem_head_lock: spinlock_t, - pub dfs_bitmap: debugfs_u32_array, - pub name: [::aya_ebpf::cty::c_char; 64usize], - pub nr_pages_succeeded: atomic64_t, - pub nr_pages_failed: atomic64_t, - pub cma_kobj: *mut cma_kobject, - pub reserve_pages_on_error: bool_, +#[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)] @@ -39754,6 +37466,25 @@ pub struct pp_alloc_cache { pub cache: [*mut page; 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, @@ -39766,6 +37497,7 @@ pub struct page_pool_params_slow { #[derive(Copy, Clone)] pub struct page_pool { pub p: page_pool_params_fast, + pub cpuid: ::aya_ebpf::cty::c_int, pub has_init_callback: bool_, pub frag_users: ::aya_ebpf::cty::c_long, pub frag_page: *mut page, @@ -39818,216 +37550,30 @@ pub struct page_pool_recycle_stats { pub released_refcnt: u64_, } #[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, -} -#[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, +#[derive(Copy, Clone)] +pub struct seg6_pernet_data { + pub lock: mutex, + pub tun_src: *mut in6_addr, + pub hmac_infos: rhashtable, } #[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_done: ::core::option::Option< +pub struct vm_special_mapping { + pub name: *const ::aya_ebpf::cty::c_char, + pub pages: *mut *mut page, + pub fault: ::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 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 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 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 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 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 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 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), + arg1: *const vm_special_mapping, + arg2: *mut vm_area_struct, + arg3: *mut vm_fault, + ) -> vm_fault_t, >, - pub saved_write_space: ::core::option::Option, - pub saved_data_ready: ::core::option::Option, - pub psock_update_sk_prot: ::core::option::Option< + pub mremap: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut sock, - arg2: *mut sk_psock, - arg3: bool_, + arg1: *const vm_special_mapping, + arg2: *mut vm_area_struct, ) -> ::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, 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, } pub type __kernel_mqd_t = ::aya_ebpf::cty::c_int; pub type mqd_t = __kernel_mqd_t; @@ -40190,585 +37736,481 @@ pub struct audit_context__bindgen_ty_2__bindgen_ty_2 { pub mode: umode_t, pub osid: u32_, 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: *mut ::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(Debug, Copy, Clone)] -pub struct audit_aux_data { - pub next: *mut audit_aux_data, - pub type_: ::aya_ebpf::cty::c_int, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct audit_tree_refs { - pub next: *mut audit_tree_refs, - pub c: [*mut audit_chunk; 31usize], -} -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 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; -} -#[repr(C)] -#[derive(Debug, 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(Copy, Clone)] -pub struct ip_tunnel_parm { - pub name: [::aya_ebpf::cty::c_char; 16usize], - pub link: ::aya_ebpf::cty::c_int, - pub i_flags: __be16, - pub o_flags: __be16, - pub i_key: __be32, - pub o_key: __be32, - pub iph: iphdr, -} -#[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 ip_tunnel_key { - pub tun_id: __be64, - pub u: ip_tunnel_key__bindgen_ty_1, - pub tun_flags: __be16, - pub tos: u8_, - pub ttl: u8_, - pub label: __be32, - pub nhid: u32_, - 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)] -#[derive(Debug, Copy, Clone)] -pub struct ip_tunnel_encap { - pub type_: u16_, - pub flags: u16_, - pub sport: __be16, - pub dport: __be16, -} -#[repr(C)] -#[derive(Copy, Clone)] -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 type sci_t = u64_; -pub type ssci_t = u32_; -#[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: u32_, - pub pn: u64_, -} -pub type salt_t = salt; -#[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_key { - pub id: [u8_; 16usize], - pub tfm: *mut crypto_aead, - pub salt: salt_t, -} -#[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_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_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(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(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, + 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(Copy, Clone)] -pub union macsec_rx_sa__bindgen_ty_1 { - pub next_pn_halves: pn_t, - pub next_pn: u64_, +#[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 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, +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 pcpu_rx_sc_stats { - pub stats: macsec_rx_sc_stats, - pub syncp: u64_stats_sync, +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 pcpu_tx_sc_stats { - pub stats: macsec_tx_sc_stats, - pub syncp: u64_stats_sync, +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 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, +pub struct audit_context__bindgen_ty_2__bindgen_ty_7 { + pub pid: pid_t, + pub cap: audit_cap_data, } #[repr(C)] -#[derive(Copy, Clone)] -pub union macsec_tx_sa__bindgen_ty_1 { - pub next_pn_halves: pn_t, - pub next_pn: u64_, +#[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 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, -} -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 struct audit_context__bindgen_ty_2__bindgen_ty_9 { + pub argc: ::aya_ebpf::cty::c_int, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct hw_port_info { - pub lower_dev: *mut net_device, - pub port_id: u32_, +pub struct audit_context__bindgen_ty_2__bindgen_ty_10 { + pub name: *mut ::aya_ebpf::cty::c_char, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct macsec_info { - pub sci: sci_t, +pub struct audit_context__bindgen_ty_2__bindgen_ty_11 { + pub ntp_data: audit_ntp_data, + pub tk_injoffset: timespec64, } #[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, +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 dev: *mut net_device, + pub dev_tracker: netdevice_tracker, + pub pool: *mut xsk_buff_pool, + pub napi: *mut napi_struct, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, +} +impl netdev_rx_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(Copy, Clone)] -pub struct metadata_dst { - pub dst: dst_entry, - pub type_: metadata_type::Type, - pub u: metadata_dst__bindgen_ty_1, +#[derive(Debug)] +pub struct rps_map { + pub len: ::aya_ebpf::cty::c_uint, + pub rcu: callback_head, + pub cpus: __IncompleteArrayField, } #[repr(C)] -#[derive(Copy, Clone)] -pub union metadata_dst__bindgen_ty_1 { - pub tun_info: ip_tunnel_info, - pub port_info: hw_port_info, - pub macsec_info: macsec_info, - pub xfrm_info: xfrm_md_info, +#[derive(Debug, Copy, Clone)] +pub struct rps_dev_flow { + pub cpu: u16_, + pub filter: u16_, + pub last_qtail: ::aya_ebpf::cty::c_uint, +} +#[repr(C)] +#[derive(Debug)] +pub struct rps_dev_flow_table { + pub mask: ::aya_ebpf::cty::c_uint, + pub rcu: callback_head, + pub flows: __IncompleteArrayField, +} +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; } #[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, +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(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, +#[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(Copy, Clone)] -pub union macsec_context__bindgen_ty_1 { - pub netdev: *mut net_device, - pub phydev: *mut phy_device, +#[derive(Debug, Copy, Clone)] +pub struct rq_qos_ops { + pub throttle: ::core::option::Option, + pub track: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rq_qos, arg2: *mut request, arg3: *mut bio), + >, + pub merge: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut rq_qos, arg2: *mut request, arg3: *mut bio), + >, + pub issue: ::core::option::Option, + pub requeue: + ::core::option::Option, + pub done: ::core::option::Option, + pub done_bio: ::core::option::Option, + pub cleanup: ::core::option::Option, + pub queue_depth_changed: ::core::option::Option, + pub exit: ::core::option::Option, + pub debugfs_attrs: *const blk_mq_debugfs_attr, } #[repr(C)] #[derive(Copy, Clone)] -pub struct 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, +pub struct elevator_queue { + pub type_: *mut elevator_type, + 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(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, +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 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, +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]>, } -#[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_, +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 + } } -#[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, +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 unicode_map { - pub version: ::aya_ebpf::cty::c_uint, - pub ntab: [*const utf8data; 2usize], - pub tables: *const utf8data_table, +pub struct blk_mq_ctxs { + pub kobj: kobject, + pub queue_ctx: *mut blk_mq_ctx, } +pub type blk_insert_t = ::aya_ebpf::cty::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct utf8data { - pub maxage: ::aya_ebpf::cty::c_uint, - pub offset: ::aya_ebpf::cty::c_uint, +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_rq: *mut *mut request, + pub ctx: *mut blk_mq_ctx, + pub hctx: *mut blk_mq_hw_ctx, +} +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; } #[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, +pub struct elevator_mq_ops { + pub init_sched: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut request_queue, + arg2: *mut elevator_type, + ) -> ::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 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(Debug, Copy, Clone)] -pub struct tnum { - pub value: u64_, - pub mask: u64_, +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: *mut elv_fs_entry, + pub elevator_name: *const ::aya_ebpf::cty::c_char, + pub elevator_alias: *const ::aya_ebpf::cty::c_char, + pub elevator_features: ::aya_ebpf::cty::c_uint, + 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, } -pub type bpfptr_t = sockptr_t; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct btf_struct_meta { - pub btf_id: u32_, - pub record: *mut btf_record, +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, + >, +} +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; } #[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], +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 ovr_an_inband: 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 mac_capabilities: ::aya_ebpf::cty::c_ulong, } #[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, +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 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 bpf_subprog_arg_info__bindgen_ty_1 { - pub mem_size: u32_, +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 struct bpf_subprog_info { - pub start: u32_, - pub linfo_idx: u32_, - pub stack_depth: u16_, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub arg_cnt: u8_, - pub args: [bpf_subprog_arg_info; 5usize], +pub union dsa_port__bindgen_ty_3 { + pub vlans: list_head, + pub user_vlans: list_head, } -impl bpf_subprog_info { +impl dsa_port { #[inline] - pub fn has_tail_call(&self) -> bool_ { + pub fn vlan_filtering(&self) -> u8_ { unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } } #[inline] - pub fn set_has_tail_call(&mut self, val: bool_) { + 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 fn tail_call_reachable(&self) -> bool_ { + pub fn learning(&self) -> u8_ { unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } } #[inline] - pub fn set_tail_call_reachable(&mut self, val: bool_) { + 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 fn has_ld_abs(&self) -> bool_ { + pub fn lag_tx_enabled(&self) -> u8_ { unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) } } #[inline] - pub fn set_has_ld_abs(&mut self, val: bool_) { + 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 fn is_cb(&self) -> bool_ { + pub fn conduit_admin_up(&self) -> u8_ { unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) } } #[inline] - pub fn set_is_cb(&mut self, val: bool_) { + 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 fn is_async_cb(&self) -> bool_ { + pub fn conduit_oper_up(&self) -> u8_ { unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) } } #[inline] - pub fn set_is_async_cb(&mut self, val: bool_) { + 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 fn is_exception_cb(&self) -> bool_ { + pub fn cpu_port_in_lag(&self) -> u8_ { unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) } } #[inline] - pub fn set_is_exception_cb(&mut self, val: bool_) { + 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 fn args_cached(&self) -> bool_ { + pub fn setup(&self) -> u8_ { unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) } } #[inline] - pub fn set_args_cached(&mut self, val: bool_) { + 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) @@ -40776,6368 +38218,9265 @@ impl bpf_subprog_info { } #[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_, + 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 has_tail_call: u8 = unsafe { ::core::mem::transmute(has_tail_call) }; - has_tail_call as u64 + let vlan_filtering: u8 = unsafe { ::core::mem::transmute(vlan_filtering) }; + vlan_filtering 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 + let learning: u8 = unsafe { ::core::mem::transmute(learning) }; + learning 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 + let lag_tx_enabled: u8 = unsafe { ::core::mem::transmute(lag_tx_enabled) }; + lag_tx_enabled as u64 }); __bindgen_bitfield_unit.set(3usize, 1u8, { - let is_cb: u8 = unsafe { ::core::mem::transmute(is_cb) }; - is_cb as u64 + let conduit_admin_up: u8 = unsafe { ::core::mem::transmute(conduit_admin_up) }; + conduit_admin_up 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 + let conduit_oper_up: u8 = unsafe { ::core::mem::transmute(conduit_oper_up) }; + conduit_oper_up 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 + 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 args_cached: u8 = unsafe { ::core::mem::transmute(args_cached) }; - args_cached as u64 + let setup: u8 = unsafe { ::core::mem::transmute(setup) }; + setup as u64 }); __bindgen_bitfield_unit } } +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_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; +} #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct bpf_id_pair { - pub old: u32_, - pub cur: u32_, +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 bpf_idmap { - pub tmp_id_gen: u32_, - pub map: [bpf_id_pair; 600usize], +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 bpf_idset { - pub count: u32_, - pub ids: [u32_; 600usize], +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(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], +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_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 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 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_pcs { + pub ops: *const phylink_pcs_ops, + pub phylink: *mut phylink, + pub neg_mode: bool_, + pub poll: 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_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: *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 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; } #[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 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 *mut bpf_verifier_state_list, - pub free_list: *mut bpf_verifier_state_list, - 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 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 tmp_str_buf: [::aya_ebpf::cty::c_char; 320usize], +pub union devlink_param_value { + pub vu8: u8_, + pub vu16: u16_, + pub vu32: u32_, + pub vstr: [::aya_ebpf::cty::c_char; 32usize], + pub vbool: bool_, } #[repr(C)] #[derive(Copy, Clone)] -pub union bpf_verifier_env__bindgen_ty_1 { - pub idmap_scratch: bpf_idmap, - pub idset_scratch: bpf_idset, +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 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 cur_stack: ::aya_ebpf::cty::c_int, +pub struct switchdev_mst_state { + pub msti: u16_, + pub state: u8_, } -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; +#[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, } -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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct switchdev_vlan_msti { + pub vid: u16_, + pub msti: u16_, } -pub mod bpf_reg_liveness { +pub mod switchdev_obj_id { pub type Type = ::aya_ebpf::cty::c_uint; - pub const REG_LIVE_NONE: Type = 0; - pub const REG_LIVE_READ32: Type = 1; - pub const REG_LIVE_READ64: Type = 2; - pub const REG_LIVE_READ: Type = 3; - pub const REG_LIVE_WRITTEN: Type = 4; - pub const REG_LIVE_DONE: Type = 8; + 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; } #[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 parent: *mut bpf_reg_state, - pub frameno: u32_, - pub subreg_def: s32, - pub live: bpf_reg_liveness::Type, - pub precise: bool_, +#[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(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 raw: bpf_reg_state__bindgen_ty_1__bindgen_ty_6, - pub subprogno: u32_, +#[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 bpf_reg_state__bindgen_ty_1__bindgen_ty_1 { - pub map_ptr: *mut bpf_map, - pub map_uid: u32_, +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 bpf_reg_state__bindgen_ty_1__bindgen_ty_2 { - pub btf: *mut btf, - pub btf_id: u32_, +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 bpf_reg_state__bindgen_ty_1__bindgen_ty_3 { - pub mem_size: u32_, - pub dynptr_id: u32_, +pub struct switchdev_obj_ring_role_mrp { + pub obj: switchdev_obj, + pub ring_role: u8_, + pub ring_id: u32_, + pub sw_backup: u8_, +} +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_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; } #[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_, +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 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]>, +pub struct dsa_8021q_context { + _unused: [u8; 0], } -impl bpf_reg_state__bindgen_ty_1__bindgen_ty_5 { +#[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 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 fn vlan_filtering_is_global(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } #[inline] - pub fn state(&self) -> bpf_iter_state::Type { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u32) } + 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 fn set_state(&mut self, val: bpf_iter_state::Type) { + 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(0usize, 2u8, val as u64) + self._bitfield_1.set(2usize, 1u8, 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) } + 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_depth(&mut self, val: ::aya_ebpf::cty::c_int) { + pub fn set_configure_vlan_while_not_filtering(&mut self, val: u32_) { unsafe { let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(2usize, 30u8, val as u64) + self._bitfield_1.set(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 fn assisted_learning_on_cpu_port(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 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(5usize, 1u8, val as u64) + } + } + #[inline] + pub fn vlan_filtering(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 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(6usize, 1u8, val as u64) + } + } + #[inline] + pub fn mtu_enforcement_ingress(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 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(7usize, 1u8, val as u64) + } + } + #[inline] + pub fn fdb_isolation(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 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(8usize, 1u8, 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 + setup: u32_, + vlan_filtering_is_global: u32_, + needs_standalone_vlan_filtering: u32_, + configure_vlan_while_not_filtering: u32_, + untag_bridge_pvid: u32_, + assisted_learning_on_cpu_port: u32_, + vlan_filtering: u32_, + mtu_enforcement_ingress: u32_, + fdb_isolation: 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(2usize, 30u8, { - let depth: u32 = unsafe { ::core::mem::transmute(depth) }; - depth 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 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(6usize, 1u8, { + let vlan_filtering: u32 = unsafe { ::core::mem::transmute(vlan_filtering) }; + vlan_filtering as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let mtu_enforcement_ingress: u32 = + unsafe { ::core::mem::transmute(mtu_enforcement_ingress) }; + mtu_enforcement_ingress as u64 + }); + __bindgen_bitfield_unit.set(8usize, 1u8, { + let fdb_isolation: u32 = unsafe { ::core::mem::transmute(fdb_isolation) }; + fdb_isolation as u64 }); __bindgen_bitfield_unit } } #[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(Debug, Copy, Clone)] -pub struct bpf_reg_state__bindgen_ty_1__bindgen_ty_6 { - pub raw1: ::aya_ebpf::cty::c_ulong, - pub raw2: ::aya_ebpf::cty::c_ulong, +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 bpf_retval_range { - pub minval: s32, - pub maxval: s32, +pub struct dsa_mall_mirror_tc_entry { + pub to_local_port: u8_, + pub ingress: bool_, } #[repr(C)] -#[derive(Copy, Clone)] -pub struct bpf_func_state { - pub regs: [bpf_reg_state; 11usize], - pub callsite: ::aya_ebpf::cty::c_int, - pub frameno: u32_, - pub subprogno: u32_, - pub async_entry_cnt: u32_, - pub callback_ret_range: bpf_retval_range, - pub in_callback_fn: bool_, - pub in_async_callback_fn: bool_, - pub in_exception_callback_fn: bool_, - pub callback_depth: u32_, - pub acquired_refs: ::aya_ebpf::cty::c_int, - pub refs: *mut bpf_reference_state, - pub stack: *mut bpf_stack_state, - pub allocated_stack: ::aya_ebpf::cty::c_int, +#[derive(Debug, Copy, Clone)] +pub struct dsa_mall_policer_tc_entry { + pub burst: u32_, + pub rate_bytes_per_sec: u64_, } -pub mod bpf_access_type { +#[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, +} +pub mod dsa_db_type { pub type Type = ::aya_ebpf::cty::c_uint; - pub const BPF_READ: Type = 1; - pub const BPF_WRITE: Type = 2; + pub const DSA_DB_PORT: Type = 0; + pub const DSA_DB_LAG: Type = 1; + pub const DSA_DB_BRIDGE: Type = 2; } #[repr(C)] #[derive(Copy, Clone)] -pub struct bpf_insn_access_aux { - pub reg_type: bpf_reg_type::Type, - pub __bindgen_anon_1: bpf_insn_access_aux__bindgen_ty_1, - pub log: *mut bpf_verifier_log, +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 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, +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 bpf_insn_access_aux__bindgen_ty_1__bindgen_ty_1 { - pub btf: *mut btf, - pub btf_id: u32_, +pub struct fixed_phy_status { + _unused: [u8; 0], } +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 bpf_verifier_ops { - pub get_func_proto: ::core::option::Option< +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 adjust_link: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut phy_device, + ), + >, + pub fixed_link_update: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut fixed_phy_status, + ), + >, + 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_mac_select_pcs: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: phy_interface_t::Type, + ) -> *mut phylink_pcs, + >, + pub phylink_mac_prepare: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_uint, + arg4: phy_interface_t::Type, + ) -> ::aya_ebpf::cty::c_int, + >, + pub phylink_mac_config: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_uint, + arg4: *const phylink_link_state, + ), + >, + pub phylink_mac_finish: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_uint, + arg4: phy_interface_t::Type, + ) -> ::aya_ebpf::cty::c_int, + >, + pub phylink_mac_link_down: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_uint, + arg4: phy_interface_t::Type, + ), + >, + pub phylink_mac_link_up: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_uint, + arg4: phy_interface_t::Type, + arg5: *mut phy_device, + arg6: ::aya_ebpf::cty::c_int, + arg7: ::aya_ebpf::cty::c_int, + arg8: bool_, + arg9: bool_, + ), + >, + 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_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 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: bpf_func_id::Type, - arg2: *const bpf_prog, - ) -> *const bpf_func_proto, + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: u8_, + arg4: u8_, + ) -> ::aya_ebpf::cty::c_int, >, - pub is_valid_access: ::core::option::Option< + 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: ::aya_ebpf::cty::c_int, + arg1: *mut dsa_switch, arg2: ::aya_ebpf::cty::c_int, - arg3: bpf_access_type::Type, - arg4: *const bpf_prog, - arg5: *mut bpf_insn_access_aux, - ) -> bool_, + arg3: *mut phy_device, + ) -> ::aya_ebpf::cty::c_int, >, - pub gen_prologue: ::core::option::Option< + 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 bpf_insn, - arg2: bool_, - arg3: *const bpf_prog, + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *const ::aya_ebpf::cty::c_uchar, ) -> ::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 preferred_default_local_cpu_port: + ::core::option::Option *mut dsa_port>, + 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 convert_ctx_access: ::core::option::Option< + pub get_mac_eee: ::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_, + arg1: *mut dsa_switch, + arg2: ::aya_ebpf::cty::c_int, + arg3: *mut ethtool_keee, + ) -> ::aya_ebpf::cty::c_int, >, - pub btf_struct_access: ::core::option::Option< + 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 bpf_verifier_log, - arg2: *const bpf_reg_state, - arg3: ::aya_ebpf::cty::c_int, - arg4: ::aya_ebpf::cty::c_int, + arg1: *mut dsa_switch, + arg2: *mut ethtool_eeprom, + arg3: *mut u8_, ) -> ::aya_ebpf::cty::c_int, >, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct bpf_active_lock { - pub ptr: *mut ::aya_ebpf::cty::c_void, - pub id: u32_, -} -#[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, Copy, Clone)] -pub struct bpf_reference_state { - pub id: ::aya_ebpf::cty::c_int, - pub insn_idx: ::aya_ebpf::cty::c_int, - pub callback_ref: ::aya_ebpf::cty::c_int, -} -#[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]>, -} -impl bpf_jmp_history_entry { - #[inline] - pub fn prev_idx(&self) -> u32_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 22u8) 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, 22u8, val as u64) - } - } - #[inline] - pub fn flags(&self) -> u32_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(22usize, 10u8) as u32) } - } - #[inline] - pub fn set_flags(&mut self, val: u32_) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(22usize, 10u8, 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, 22u8, { - let prev_idx: u32 = unsafe { ::core::mem::transmute(prev_idx) }; - prev_idx as u64 - }); - __bindgen_bitfield_unit.set(22usize, 10u8, { - let flags: u32 = unsafe { ::core::mem::transmute(flags) }; - flags as u64 - }); - __bindgen_bitfield_unit - } -} -#[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 branches: u32_, - pub insn_idx: u32_, - pub curframe: u32_, - pub active_lock: bpf_active_lock, - pub speculative: bool_, - pub active_rcu_lock: bool_, - pub used_as_loop_entry: bool_, - pub first_insn_idx: u32_, - pub last_insn_idx: u32_, - pub loop_entry: *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_, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct bpf_verifier_state_list { - pub state: bpf_verifier_state, - pub next: *mut bpf_verifier_state_list, - pub miss_cnt: ::aya_ebpf::cty::c_int, - pub hit_cnt: ::aya_ebpf::cty::c_int, -} -#[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 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 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 sanitize_stack_spill: bool_, - pub zext_dst: bool_, - pub storage_get_func_atomic: bool_, - pub is_iter_next: bool_, - pub call_with_percpu_alloc_ptr: bool_, - pub alu_state: u8_, - pub orig_idx: ::aya_ebpf::cty::c_uint, - pub jmp_point: bool_, - pub prune_point: bool_, - pub force_checkpoint: bool_, - pub calls_callback: bool_, -} -#[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: ::aya_ebpf::cty::c_ulong, - 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_, -} -#[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, -} -#[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(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 io_uring_buf { - pub addr: __u64, - pub len: __u32, - pub bid: __u16, - pub resv: __u16, -} -#[repr(C)] -pub struct io_uring_buf_ring { - pub __bindgen_anon_1: io_uring_buf_ring__bindgen_ty_1, -} -#[repr(C)] -pub struct io_uring_buf_ring__bindgen_ty_1 { - pub __bindgen_anon_1: __BindgenUnionField, - pub __bindgen_anon_2: __BindgenUnionField, - pub bindgen_union_field: [u64; 2usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1 { - pub resv1: __u64, - pub resv2: __u32, - pub resv3: __u16, - pub tail: __u16, -} -#[repr(C)] -#[derive(Debug)] -pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2 { - pub __empty_bufs: io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1, - pub bufs: __IncompleteArrayField, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct io_buffer_list { - pub __bindgen_anon_1: io_buffer_list__bindgen_ty_1, - pub bgid: __u16, - pub buf_nr_pages: __u16, - pub nr_entries: __u16, - pub head: __u16, - pub mask: __u16, - pub is_mapped: __u8, - pub is_mmap: __u8, - pub is_ready: __u8, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union io_buffer_list__bindgen_ty_1 { - pub buf_list: list_head, - pub __bindgen_anon_1: io_buffer_list__bindgen_ty_1__bindgen_ty_1, - pub rcu: callback_head, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct io_buffer_list__bindgen_ty_1__bindgen_ty_1 { - pub buf_pages: *mut *mut page, - pub buf_ring: *mut io_uring_buf_ring, -} -#[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 bpf_prog_offload_ops { - pub insn_hook: ::core::option::Option< + 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 bpf_verifier_env, + arg1: *mut dsa_switch, arg2: ::aya_ebpf::cty::c_int, - arg3: ::aya_ebpf::cty::c_int, + arg3: dsa_fdb_dump_cb_t, + arg4: *mut ::aya_ebpf::cty::c_void, ) -> ::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 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 replace_insn: ::core::option::Option< + pub lag_fdb_del: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut bpf_verifier_env, - arg2: u32_, - arg3: *mut bpf_insn, + 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 remove_insns: ::core::option::Option< + pub port_mdb_add: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut bpf_verifier_env, - arg2: u32_, - arg3: u32_, + 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 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_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)] -pub struct kioctx_table { - pub rcu: callback_head, - pub nr: ::aya_ebpf::cty::c_uint, - pub table: __IncompleteArrayField<*mut kioctx>, -} -#[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_pages: *mut *mut page, - 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_pages: [*mut page; 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(Copy, Clone)] -pub struct ctx_rq_wait { - pub comp: completion, - pub count: atomic_t, -} -#[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)] -pub struct pr_keys { - pub generation: u32_, - pub num_keys: u32_, - pub keys: __IncompleteArrayField, -} -#[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(Copy, Clone)] -pub struct sem_undo_list { - pub refcnt: refcount_t, - pub lock: spinlock_t, - pub list_proc: list_head, -} -pub mod ethtool_podl_pse_admin_state { - pub type Type = ::aya_ebpf::cty::c_uint; - pub const ETHTOOL_PODL_PSE_ADMIN_STATE_UNKNOWN: Type = 1; - pub const ETHTOOL_PODL_PSE_ADMIN_STATE_DISABLED: Type = 2; - pub const ETHTOOL_PODL_PSE_ADMIN_STATE_ENABLED: Type = 3; -} -pub mod ethtool_podl_pse_pw_d_status { - pub type Type = ::aya_ebpf::cty::c_uint; - pub const ETHTOOL_PODL_PSE_PW_D_STATUS_UNKNOWN: Type = 1; - pub const ETHTOOL_PODL_PSE_PW_D_STATUS_DISABLED: Type = 2; - pub const ETHTOOL_PODL_PSE_PW_D_STATUS_SEARCHING: Type = 3; - pub const ETHTOOL_PODL_PSE_PW_D_STATUS_DELIVERING: Type = 4; - pub const ETHTOOL_PODL_PSE_PW_D_STATUS_SLEEP: Type = 5; - pub const ETHTOOL_PODL_PSE_PW_D_STATUS_IDLE: Type = 6; - pub const ETHTOOL_PODL_PSE_PW_D_STATUS_ERROR: Type = 7; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct pse_control_config { - pub admin_cotrol: ethtool_podl_pse_admin_state::Type, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct pse_control_status { - pub podl_admin_state: ethtool_podl_pse_admin_state::Type, - pub podl_pw_status: ethtool_podl_pse_pw_d_status::Type, -} -#[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 rcu: callback_head, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ip_mc_list__bindgen_ty_1 { - pub next: *mut ip_mc_list, - pub next_rcu: *mut ip_mc_list, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct ip_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 mnt_idmap { - pub uid_map: uid_gid_map, - pub gid_map: uid_gid_map, - pub count: refcount_t, -} -#[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(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 pm_domain_data { - pub list_node: list_head, - pub dev: *mut device, -} -#[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(Debug, Copy, Clone)] -pub struct pfn_t { - pub val: u64_, -} -#[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, 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(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_, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 40usize]>, - pub __bindgen_padding_0: [u8; 7usize], -} -#[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)] -pub struct bpf_local_storage_data { - pub smap: *mut bpf_local_storage_map, - pub data: __IncompleteArrayField, -} -#[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, 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(Copy, Clone)] -pub struct async_poll { - pub __bindgen_anon_1: async_poll__bindgen_ty_1, - pub double_poll: *mut io_poll, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union async_poll__bindgen_ty_1 { - pub poll: io_poll, - pub cache: io_cache_entry, -} -#[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 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_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 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 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)] -#[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)] -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< + 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 sock, + 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 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 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 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 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 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 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(Copy, Clone)] -pub struct bpf_cgroup_storage_map { - pub map: bpf_map, - pub lock: spinlock_t, - pub root: rb_root, - pub list: list_head, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 32usize]>, -} -impl bpf_cgroup_storage_map { - #[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 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, -} -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(Copy, Clone)] -pub struct ioam6_pernet_data { - pub lock: mutex, - pub namespaces: rhashtable, - pub schemas: rhashtable, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct sfp { - _unused: [u8; 0], -} -#[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 sfp_quirk: *const sfp_quirk, - 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_, -} -#[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 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 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 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 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 - } + 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 ifreq, + ) -> ::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 ifreq, + ) -> ::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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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) - } - } +#[derive(Copy, Clone)] +pub struct simple_xattrs { + pub rb_root: rb_root, + pub lock: rwlock_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 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 rcu: callback_head, +} +#[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(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(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 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 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_cpu_rcache { + pub lock: spinlock_t, + pub loaded: *mut iova_magazine, + pub prev: *mut iova_magazine, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct psample_group { + pub list: list_head, + pub net: *mut net, + pub group_num: u32_, + pub refcount: u32_, + pub seq: u32_, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct action_gate_entry { + pub gate_state: u8_, + pub interval: u32_, + pub ipv: s32, + pub maxoctets: s32, +} +#[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(Debug, Copy, Clone)] +pub struct btf_member { + pub name_off: __u32, + pub type_: __u32, + pub offset: __u32, +} +#[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, +} +pub type __u128 = u128; +pub type u128_ = __u128; +pub type freelist_full_t = u128_; +#[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)] +#[repr(align(16))] +#[derive(Copy, Clone)] +pub struct slab { + pub __page_flags: ::aya_ebpf::cty::c_ulong, + pub slab_cache: *mut kmem_cache, + pub __bindgen_anon_1: slab__bindgen_ty_1, + pub __unused: ::aya_ebpf::cty::c_uint, + pub __page_refcount: atomic_t, + pub memcg_data: ::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, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct slab__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { + 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 e100_base_fx(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(29usize, 1u8) as u8) } + 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_e100_base_fx(&mut self, val: u8_) { + pub fn set_inuse(&mut self, val: ::aya_ebpf::cty::c_uint) { unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(29usize, 1u8, val as u64) + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 16u8, val as u64) } } #[inline] - pub fn e_base_bx10(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(30usize, 1u8) as u8) } + 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_e_base_bx10(&mut self, val: u8_) { + pub fn set_objects(&mut self, val: ::aya_ebpf::cty::c_uint) { unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(30usize, 1u8, val as u64) + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(16usize, 15u8, val as u64) } } #[inline] - pub fn e_base_px(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(31usize, 1u8) as u8) } + 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_e_base_px(&mut self, val: u8_) { + pub fn set_frozen(&mut self, val: ::aya_ebpf::cty::c_uint) { unsafe { - let val: u8 = ::core::mem::transmute(val); + let val: u32 = ::core::mem::transmute(val); self._bitfield_1.set(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 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 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 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 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 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 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 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 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 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 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 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 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 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 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) - } + 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)] +#[derive(Debug, Copy, Clone)] +pub struct xdr_netobj { + pub len: ::aya_ebpf::cty::c_uint, + pub data: *mut u8_, +} +#[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(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(Debug, Copy, Clone)] +pub struct lwq_node { + pub node: llist_node, +} +#[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_seqno: u32_, + 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, +} +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_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(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_wait { + pub list: list_head, + pub links: list_head, + pub timer_list: list_head, +} +#[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(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 fc_tech_electrical_intra_enclosure(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(47usize, 1u8) as u8) } + 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_fc_tech_electrical_intra_enclosure(&mut self, val: u8_) { + 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(47usize, 1u8, val as u64) + self._bitfield_1.set(0usize, 2u8, val as u64) } } #[inline] - pub fn fc_media_sm(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(48usize, 1u8) as u8) } + 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_fc_media_sm(&mut self, val: u8_) { + 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(48usize, 1u8, val as u64) + self._bitfield_1.set(2usize, 2u8, val as u64) } } #[inline] - pub fn unallocated_9_1(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(49usize, 1u8) as u8) } + 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_unallocated_9_1(&mut self, val: u8_) { + 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(49usize, 1u8, val as u64) + self._bitfield_1.set(4usize, 2u8, 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) - } + 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 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(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], +} +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; +} +#[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 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_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, +} +#[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 fc_media_m6(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(51usize, 1u8) as u8) } + 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_fc_media_m6(&mut self, val: u8_) { + pub fn set_cl_softrtry(&mut self, val: ::aya_ebpf::cty::c_uint) { unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(51usize, 1u8, val as u64) + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) } } #[inline] - pub fn fc_media_tv(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(52usize, 1u8) as u8) } + 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_fc_media_tv(&mut self, val: u8_) { + pub fn set_cl_softerr(&mut self, val: ::aya_ebpf::cty::c_uint) { unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(52usize, 1u8, val as u64) + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) } } #[inline] - pub fn fc_media_mi(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(53usize, 1u8) as u8) } + 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_fc_media_mi(&mut self, val: u8_) { + pub fn set_cl_discrtry(&mut self, val: ::aya_ebpf::cty::c_uint) { unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(53usize, 1u8, val as u64) + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) } } #[inline] - pub fn fc_media_tp(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(54usize, 1u8) as u8) } + 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_fc_media_tp(&mut self, val: u8_) { + pub fn set_cl_noretranstimeo(&mut self, val: ::aya_ebpf::cty::c_uint) { unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(54usize, 1u8, val as u64) + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) } } #[inline] - pub fn fc_media_tw(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(55usize, 1u8) as u8) } + 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_fc_media_tw(&mut self, val: u8_) { + pub fn set_cl_autobind(&mut self, val: ::aya_ebpf::cty::c_uint) { unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(55usize, 1u8, val as u64) + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) } } #[inline] - pub fn fc_speed_100(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(56usize, 1u8) as u8) } + 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_fc_speed_100(&mut self, val: u8_) { + pub fn set_cl_chatty(&mut self, val: ::aya_ebpf::cty::c_uint) { unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(56usize, 1u8, val as u64) + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) } } #[inline] - pub fn unallocated_10_1(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(57usize, 1u8) as u8) } + 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_unallocated_10_1(&mut self, val: u8_) { + pub fn set_cl_shutdown(&mut self, val: ::aya_ebpf::cty::c_uint) { unsafe { - let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(57usize, 1u8, val as u64) + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(6usize, 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) - } + 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, + ) -> __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 } +} +#[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 fc_speed_3200(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(59usize, 1u8) as u8) } + 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_fc_speed_3200(&mut self, val: u8_) { + pub fn set_resvport(&mut self, val: ::aya_ebpf::cty::c_uchar) { unsafe { let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(59usize, 1u8, val as u64) + self._bitfield_1.set(0usize, 1u8, val as u64) } } #[inline] - pub fn fc_speed_400(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(60usize, 1u8) as u8) } + 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_fc_speed_400(&mut self, val: u8_) { + pub fn set_reuseport(&mut self, val: ::aya_ebpf::cty::c_uchar) { unsafe { let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(60usize, 1u8, val as u64) + self._bitfield_1.set(1usize, 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) - } + 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_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, +} +pub type rpc_authflavor_t = u32_; +#[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 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_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_>, +} +#[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_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 rpcsec_gss_oid { + pub len: ::aya_ebpf::cty::c_uint, + pub data: [u8_; 32usize], +} +#[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(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 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(Copy, Clone)] +pub struct svc_serv { + pub sv_program: *mut svc_program, + pub sv_stats: *mut svc_stat, + pub sv_lock: spinlock_t, + pub sv_nrthreads: ::aya_ebpf::cty::c_uint, + pub sv_maxconn: ::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_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)] +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, 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 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_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 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, +} +pub mod svc_auth_status { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const SVC_GARBAGE: Type = 1; + pub const SVC_SYSERR: Type = 2; + pub const SVC_VALID: Type = 3; + pub const SVC_NEGATIVE: Type = 4; + pub const SVC_OK: Type = 5; + pub const SVC_DROP: Type = 6; + pub const SVC_CLOSE: Type = 7; + pub const SVC_DENIED: Type = 8; + pub const SVC_PENDING: Type = 9; + pub const SVC_COMPLETE: Type = 10; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct svc_program { + pub pg_next: *mut 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 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_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 nfs_fh { + pub size: ::aya_ebpf::cty::c_ushort, + pub data: [::aya_ebpf::cty::c_uchar; 128usize], +} +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; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs4_label { + pub lfs: u32, + pub pi: u32, + pub len: u32_, + pub label: *mut ::aya_ebpf::cty::c_char, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nfs4_verifier { + pub data: [::aya_ebpf::cty::c_char; 8usize], +} +#[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 type nfs4_stateid = nfs4_stateid_struct; +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; +} +#[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 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 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 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 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 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 nfs_fsid { + pub major: u64, + pub minor: u64, +} +#[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(Copy, Clone)] +pub struct nfs_fattr { + pub valid: ::aya_ebpf::cty::c_uint, + 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 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_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_pathconf { + pub fattr: *mut nfs_fattr, + pub max_link: __u32, + pub max_namelen: __u32, +} +#[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_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 fc_speed_800(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(62usize, 1u8) as u8) } + pub fn sa_cache_this(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } } #[inline] - pub fn set_fc_speed_800(&mut self, val: u8_) { + pub fn set_sa_cache_this(&mut self, val: u8_) { unsafe { let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(62usize, 1u8, val as u64) + self._bitfield_1.set(0usize, 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) - } + pub fn sa_privileged(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } } #[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 + 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 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(63usize, 1u8, { - let fc_speed_1200: u8 = unsafe { ::core::mem::transmute(fc_speed_1200) }; - fc_speed_1200 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 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_, +#[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(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_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 flags: ::aya_ebpf::cty::c_ulong, + pub error: ::aya_ebpf::cty::c_int, + pub list: list_head, + pub mdsthreshold: *mut nfs4_threshold, + pub callback_head: callback_head, +} +#[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 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 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 writeback: atomic_long_t, + pub write_congested: ::aya_ebpf::cty::c_uint, + pub flags: ::aya_ebpf::cty::c_uint, + pub fattr_valid: ::aya_ebpf::cty::c_uint, + pub caps: ::aya_ebpf::cty::c_uint, + pub rsize: ::aya_ebpf::cty::c_uint, + pub rpages: ::aya_ebpf::cty::c_uint, + pub wsize: ::aya_ebpf::cty::c_uint, + pub wpages: ::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 time_delta: timespec64, + 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 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 fh_expire_type: u32_, + pub pnfs_curr_ld: *mut pnfs_layoutdriver_type, + pub roc_rpcwaitq: rpc_wait_queue, + pub pnfs_ld_data: *mut ::aya_ebpf::cty::c_void, + pub state_owners: rb_root, + pub openowner_id: ida, + pub lockowner_id: ida, + pub state_owners_lru: list_head, + pub layouts: list_head, + pub delegations: list_head, + pub ss_copies: list_head, + 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(Debug, Copy, Clone)] +pub struct nfs_subversion { + _unused: [u8; 0], +} +#[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 pending_cb_stateids: list_head, + pub rcu: callback_head, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pnfs_layout_segment { + _unused: [u8; 0], +} +#[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 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(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(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(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(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(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_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(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 nfstime4 { + pub seconds: u64_, + pub nseconds: u32_, +} +#[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 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 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 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_page { + _unused: [u8; 0], +} +#[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(Debug, Copy, Clone)] +pub struct nfs_direct_req { + _unused: [u8; 0], +} +#[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 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_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_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_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(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(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 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: *mut nfs_fh, + arg4: *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, + ) -> ::aya_ebpf::cty::c_int, + >, + 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) -> ::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_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 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_fsinfo, + ) -> ::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(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 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, 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 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)] +#[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(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_page: *mut page, + pub rq_res: xdr_buf, + pub rq_pages: [*mut page; 260usize], + 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_vec: [kvec; 259usize], + pub rq_bvec: [bio_vec; 259usize], + 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 bc_to_initval: ::aya_ebpf::cty::c_ulong, + pub bc_to_retries: ::aya_ebpf::cty::c_uint, + pub rq_lease_breaker: *mut *mut ::aya_ebpf::cty::c_void, + pub rq_status_counter: ::aya_ebpf::cty::c_uint, } #[repr(C)] #[derive(Copy, Clone)] -pub struct sfp_eeprom_id { - pub base: sfp_eeprom_base, - pub ext: sfp_eeprom_ext, +pub struct svc_pool { + pub sp_id: ::aya_ebpf::cty::c_uint, + pub sp_xprts: lwq, + pub sp_nrthreads: atomic_t, + 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 sfp_upstream_ops { - pub attach: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut ::aya_ebpf::cty::c_void, arg2: *mut sfp_bus), +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 detach: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut ::aya_ebpf::cty::c_void, arg2: *mut sfp_bus), + pub pc_encode: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut svc_rqst, arg2: *mut xdr_stream) -> bool_, >, - pub module_insert: ::core::option::Option< + 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)] +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_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_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 nfs_seqid_counter { + pub create_time: ktime_t, + pub owner_id: ::aya_ebpf::cty::c_int, + 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_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_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 ::aya_ebpf::cty::c_void, - arg2: *const sfp_eeprom_id, + arg1: *mut nfs4_state_owner, + arg2: *mut nfs4_state, ) -> ::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 recover_lock: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut nfs4_state, arg2: *mut file_lock) -> ::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< + 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 ::aya_ebpf::cty::c_void, - arg2: *mut phy_device, + arg1: *mut nfs_client, + arg2: *mut *mut nfs_client, + arg3: *const cred, ) -> ::aya_ebpf::cty::c_int, >, - pub disconnect_phy: - ::core::option::Option, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct sfp_quirk { - pub vendor: *const ::aya_ebpf::cty::c_char, - pub part: *const ::aya_ebpf::cty::c_char, - pub modes: ::core::option::Option< +pub struct nfs4_state_maintenance_ops { + pub sched_state_renewal: ::core::option::Option< unsafe extern "C" fn( - arg1: *const sfp_eeprom_id, - arg2: *mut ::aya_ebpf::cty::c_ulong, - arg3: *mut ::aya_ebpf::cty::c_ulong, - ), + 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, >, - pub fixup: ::core::option::Option, } #[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< +pub struct nfs4_mig_recovery_ops { + pub get_locations: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut sfp, - arg2: *mut ethtool_eeprom, - arg3: *mut u8_, + 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 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, + 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 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, -} -#[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: ::aya_ebpf::cty::c_ulong, - pub dump_size: ::aya_ebpf::cty::c_ulong, - pub pgoff: ::aya_ebpf::cty::c_ulong, - pub file: *mut file, -} -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; -} -#[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, +#[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, } -pub type irq_write_msi_msg_t = - ::core::option::Option; #[repr(C)] #[derive(Copy, Clone)] -pub struct platform_msi_priv_data { - pub dev: *mut device, - pub host_data: *mut ::aya_ebpf::cty::c_void, - pub arg: msi_alloc_info_t, - pub write_msg: irq_write_msi_msg_t, - pub devid: ::aya_ebpf::cty::c_int, +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(Debug, Copy, Clone)] -pub struct latency_bucket { - pub total_latency: ::aya_ebpf::cty::c_ulong, - pub samples: ::aya_ebpf::cty::c_int, +#[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 avg_latency_bucket { - pub latency: ::aya_ebpf::cty::c_ulong, - pub valid: bool_, +pub struct perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1 { + pub _bitfield_align_1: [u64; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, } -#[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 limit_index: ::aya_ebpf::cty::c_uint, - pub limit_valid: [bool_; 2usize], - pub low_upgrade_time: ::aya_ebpf::cty::c_ulong, - pub low_downgrade_time: ::aya_ebpf::cty::c_ulong, - pub scale: ::aya_ebpf::cty::c_uint, - pub tmp_buckets: [latency_bucket; 18usize], - pub avg_buckets: [avg_latency_bucket; 18usize], - pub latency_buckets: [*mut latency_bucket; 2usize], - pub last_calculate_time: ::aya_ebpf::cty::c_ulong, - pub filtered_latency: ::aya_ebpf::cty::c_ulong, - pub track_bio_latency: bool_, +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 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 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 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 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 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 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 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 + } } #[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 state: ::aya_ebpf::cty::c_ulong, - pub exited: completion, +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: atomic_t, + pub mmap_locked: ::aya_ebpf::cty::c_ulong, + pub mmap_user: *mut user_struct, + 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: atomic_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_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 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>, +#[derive(Debug, Copy, Clone)] +pub struct unicode_map { + pub version: ::aya_ebpf::cty::c_uint, + pub ntab: [*const utf8data; 2usize], + pub tables: *const utf8data_table, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct audit_node { - pub list: list_head, - pub owner: *mut audit_tree, - pub index: ::aya_ebpf::cty::c_uint, +pub struct utf8data { + pub maxage: ::aya_ebpf::cty::c_uint, + pub offset: ::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, +#[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, } -pub type u_int64_t = u64_; -#[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, +pub mod uprobe_filter_ctx { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const UPROBE_FILTER_REGISTER: Type = 0; + pub const UPROBE_FILTER_UNREGISTER: Type = 1; + pub const UPROBE_FILTER_MMAP: Type = 2; } #[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, +pub struct uprobe_consumer { + pub handler: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut uprobe_consumer, + arg2: *mut pt_regs, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ret_handler: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut uprobe_consumer, + arg2: ::aya_ebpf::cty::c_ulong, + arg3: *mut pt_regs, + ) -> ::aya_ebpf::cty::c_int, + >, + pub filter: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut uprobe_consumer, + arg2: uprobe_filter_ctx::Type, + arg3: *mut mm_struct, + ) -> bool_, + >, + pub next: *mut uprobe_consumer, } #[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, +pub struct fileattr { + 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], } -#[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, +impl fileattr { + #[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 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 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(Debug, Copy, Clone)] -pub struct nf_conntrack_man_proto__bindgen_ty_1 { - pub port: __be16, +pub struct btf_struct_meta { + pub btf_id: u32_, + pub record: *mut btf_record, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct nf_conntrack_man_proto__bindgen_ty_2 { - pub port: __be16, +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(Debug, Copy, Clone)] -pub struct nf_conntrack_man_proto__bindgen_ty_3 { - pub id: __be16, +#[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(Debug, Copy, Clone)] -pub struct nf_conntrack_man_proto__bindgen_ty_4 { - pub port: __be16, +#[derive(Copy, Clone)] +pub union bpf_subprog_arg_info__bindgen_ty_1 { + pub mem_size: u32_, + pub btf_id: u32_, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct nf_conntrack_man_proto__bindgen_ty_5 { - pub port: __be16, +#[derive(Copy, Clone)] +pub struct bpf_subprog_info { + pub start: u32_, + pub linfo_idx: u32_, + pub stack_depth: u16_, + pub stack_extra: u16_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub arg_cnt: u8_, + pub args: [bpf_subprog_arg_info; 5usize], } -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct nf_conntrack_man_proto__bindgen_ty_6 { - pub key: __be16, +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 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 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 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 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 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 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 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_, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = 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 + } } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct nf_ct_dccp { - pub role: [u_int8_t; 2usize], - pub state: u_int8_t, - pub last_pkt: u_int8_t, - pub last_dir: u_int8_t, - pub handshake_seq: u_int64_t, +pub struct bpf_id_pair { + pub old: u32_, + pub cur: u32_, } #[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_, +pub struct bpf_idmap { + pub tmp_id_gen: u32_, + pub map: [bpf_id_pair; 600usize], } #[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, - >, +pub struct bpf_idset { + pub count: u32_, + pub ids: [u32_; 600usize], } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct nf_conntrack_zone { - pub id: u16_, - pub flags: u8_, - pub dir: u8_, +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 nf_conntrack_man { - pub u3: nf_inet_addr, - pub u: nf_conntrack_man_proto, - pub l3num: u_int16_t, +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 *mut bpf_verifier_state_list, + pub free_list: *mut bpf_verifier_state_list, + 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 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 tmp_str_buf: [::aya_ebpf::cty::c_char; 320usize], } #[repr(C)] #[derive(Copy, Clone)] -pub struct nf_conntrack_tuple { - pub src: nf_conntrack_man, - pub dst: nf_conntrack_tuple__bindgen_ty_1, +pub union bpf_verifier_env__bindgen_ty_1 { + pub idmap_scratch: bpf_idmap, + pub idset_scratch: bpf_idset, } #[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, +#[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 cur_stack: ::aya_ebpf::cty::c_int, +} +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 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; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tnum { + pub value: u64_, + pub mask: u64_, +} +pub mod bpf_reg_liveness { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const REG_LIVE_NONE: Type = 0; + pub const REG_LIVE_READ32: Type = 1; + pub const REG_LIVE_READ64: Type = 2; + pub const REG_LIVE_READ: Type = 3; + pub const REG_LIVE_WRITTEN: Type = 4; + pub const REG_LIVE_DONE: Type = 8; } #[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, +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 parent: *mut bpf_reg_state, + pub frameno: u32_, + pub subreg_def: s32, + pub live: bpf_reg_liveness::Type, + pub precise: bool_, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct nf_conntrack_tuple__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { - pub port: __be16, +#[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 raw: bpf_reg_state__bindgen_ty_1__bindgen_ty_6, + pub subprogno: u32_, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct nf_conntrack_tuple__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2 { - pub port: __be16, +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 nf_conntrack_tuple__bindgen_ty_1__bindgen_ty_1__bindgen_ty_3 { - pub type_: u_int8_t, - pub code: u_int8_t, +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 nf_conntrack_tuple__bindgen_ty_1__bindgen_ty_1__bindgen_ty_4 { - pub port: __be16, +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 nf_conntrack_tuple__bindgen_ty_1__bindgen_ty_1__bindgen_ty_5 { - pub port: __be16, +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 nf_conntrack_tuple__bindgen_ty_1__bindgen_ty_1__bindgen_ty_6 { - pub key: __be16, +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]>, } -#[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, +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 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 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 nf_ct_udp { - pub stream_ts: ::aya_ebpf::cty::c_ulong, +pub struct bpf_reg_state__bindgen_ty_1__bindgen_ty_6 { + pub raw1: ::aya_ebpf::cty::c_ulong, + pub raw2: ::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, +pub struct bpf_retval_range { + pub minval: s32, + pub maxval: s32, } #[repr(C)] #[derive(Copy, Clone)] -pub union nf_conntrack_proto { - pub dccp: nf_ct_dccp, - 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, +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 acquired_refs: ::aya_ebpf::cty::c_int, + pub refs: *mut bpf_reference_state, + pub stack: *mut bpf_stack_state, + pub allocated_stack: ::aya_ebpf::cty::c_int, +} +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; } #[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, +pub struct bpf_insn_access_aux { + pub reg_type: bpf_reg_type::Type, + pub __bindgen_anon_1: bpf_insn_access_aux__bindgen_ty_1, + pub log: *mut bpf_verifier_log, } #[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, +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(Copy, Clone)] -pub struct nf_conntrack_tuple_mask__bindgen_ty_1 { - pub u3: nf_inet_addr, - pub u: nf_conntrack_man_proto, +#[derive(Debug, Copy, Clone)] +pub struct bpf_insn_access_aux__bindgen_ty_1__bindgen_ty_1 { + pub btf: *mut btf, + pub btf_id: u32_, } #[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>, +#[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_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 nf_conntrack_helper { - _unused: [u8; 0], +pub struct bpf_active_lock { + pub ptr: *mut ::aya_ebpf::cty::c_void, + pub id: u32_, } #[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, +pub struct bpf_stack_state { + pub spilled_ptr: bpf_reg_state, + pub slot_type: [u8_; 8usize], } #[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, +pub struct bpf_reference_state { + pub id: ::aya_ebpf::cty::c_int, + pub insn_idx: ::aya_ebpf::cty::c_int, + pub callback_ref: ::aya_ebpf::cty::c_int, } #[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, +pub struct bpf_jmp_history_entry { + pub idx: u32_, + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +impl bpf_jmp_history_entry { + #[inline] + pub fn prev_idx(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 22u8) 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, 22u8, val as u64) + } + } + #[inline] + pub fn flags(&self) -> u32_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(22usize, 10u8) as u32) } + } + #[inline] + pub fn set_flags(&mut self, val: u32_) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(22usize, 10u8, 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, 22u8, { + let prev_idx: u32 = unsafe { ::core::mem::transmute(prev_idx) }; + prev_idx as u64 + }); + __bindgen_bitfield_unit.set(22usize, 10u8, { + let flags: u32 = unsafe { ::core::mem::transmute(flags) }; + flags as u64 + }); + __bindgen_bitfield_unit + } } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct memcg_vmstats { - pub state: [::aya_ebpf::cty::c_long; 53usize], - pub events: [::aya_ebpf::cty::c_ulong; 22usize], - pub state_local: [::aya_ebpf::cty::c_long; 53usize], - pub events_local: [::aya_ebpf::cty::c_ulong; 22usize], - pub state_pending: [::aya_ebpf::cty::c_long; 53usize], - pub events_pending: [::aya_ebpf::cty::c_ulong; 22usize], - pub stats_updates: atomic64_t, +pub struct bpf_verifier_state { + pub frame: [*mut bpf_func_state; 8usize], + pub parent: *mut bpf_verifier_state, + pub branches: u32_, + pub insn_idx: u32_, + pub curframe: u32_, + pub active_lock: bpf_active_lock, + pub speculative: bool_, + pub active_rcu_lock: bool_, + pub used_as_loop_entry: bool_, + pub first_insn_idx: u32_, + pub last_insn_idx: u32_, + pub loop_entry: *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 memcg_vmstats_percpu { - pub stats_updates: ::aya_ebpf::cty::c_uint, - pub parent: *mut memcg_vmstats_percpu, - pub vmstats: *mut memcg_vmstats, - pub state: [::aya_ebpf::cty::c_long; 53usize], - pub events: [::aya_ebpf::cty::c_ulong; 22usize], - pub state_prev: [::aya_ebpf::cty::c_long; 53usize], - pub events_prev: [::aya_ebpf::cty::c_ulong; 22usize], - pub nr_page_events: ::aya_ebpf::cty::c_ulong, - pub targets: [::aya_ebpf::cty::c_ulong; 2usize], +pub struct bpf_verifier_state_list { + pub state: bpf_verifier_state, + pub next: *mut bpf_verifier_state_list, + pub miss_cnt: ::aya_ebpf::cty::c_int, + pub hit_cnt: ::aya_ebpf::cty::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct bpf_loop_inline_state { pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 32usize]>, + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub callback_subprogno: u32_, } -impl memcg_vmstats_percpu { +impl bpf_loop_inline_state { #[inline] - pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 32usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 32usize]> = Default::default(); + 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 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 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(Debug)] -pub struct btf_struct_metas { - pub cnt: u32_, - pub types: __IncompleteArrayField, +#[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 sanitize_stack_spill: 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 orig_idx: ::aya_ebpf::cty::c_uint, + pub jmp_point: bool_, + pub prune_point: bool_, + pub force_checkpoint: bool_, + pub calls_callback: bool_, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct btf_kfunc_hook_filter { - pub filters: [btf_kfunc_filter_t; 16usize], - pub nr_filters: u32_, +#[derive(Copy, Clone)] +pub union bpf_insn_aux_data__bindgen_ty_1 { + pub ptr_type: bpf_reg_type::Type, + pub map_ptr_state: ::aya_ebpf::cty::c_ulong, + 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 btf_kfunc_set_tab { - pub sets: [*mut btf_id_set8; 13usize], - pub hook_filters: [btf_kfunc_hook_filter; 13usize], +pub struct bpf_insn_aux_data__bindgen_ty_1__bindgen_ty_1 { + pub map_index: u32_, + pub map_off: u32_, } #[repr(C)] -#[derive(Debug)] -pub struct btf_id_dtor_kfunc_tab { - pub cnt: u32_, - pub dtors: __IncompleteArrayField, +#[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(Debug, Copy, Clone)] -pub struct iova_bitmap_map { - pub iova: ::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, +#[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 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, - pub set_ahead_length: ::aya_ebpf::cty::c_ulong, +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_, } -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; +#[repr(C)] +#[derive(Copy, Clone)] +pub union bpf_insn_aux_data__bindgen_ty_2 { + pub obj_new_size: u64_, + pub insert_off: u64_, } #[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 struct io_uring_cmd { + pub file: *mut file, + pub sqe: *const io_uring_sqe, + pub task_work_cb: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut io_uring_cmd, arg2: ::aya_ebpf::cty::c_uint), >, - pub version_cb_priv: *mut ::aya_ebpf::cty::c_void, + pub cmd_op: u32_, + pub flags: u32_, + pub pdu: [u8_; 32usize], } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct param_attribute { - pub mattr: module_attribute, - pub param: *const kernel_param, +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)] -pub struct module_param_attrs { - pub num: ::aya_ebpf::cty::c_uint, - pub grp: attribute_group, - pub attrs: __IncompleteArrayField, +#[derive(Copy, Clone)] +pub struct async_poll { + pub __bindgen_anon_1: async_poll__bindgen_ty_1, + pub double_poll: *mut io_poll, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union async_poll__bindgen_ty_1 { + pub poll: io_poll, + pub cache: io_cache_entry, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_buf { + pub addr: __u64, + pub len: __u32, + pub bid: __u16, + pub resv: __u16, } #[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, +pub struct io_uring_buf_ring { + pub __bindgen_anon_1: io_uring_buf_ring__bindgen_ty_1, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct bpf_kfunc_desc_tab { - pub descs: [bpf_kfunc_desc; 256usize], - pub nr_descs: u32_, +pub struct io_uring_buf_ring__bindgen_ty_1 { + pub __bindgen_anon_1: __BindgenUnionField, + pub __bindgen_anon_2: __BindgenUnionField, + pub bindgen_union_field: [u64; 2usize], } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct bpf_kfunc_btf { - pub btf: *mut btf, - pub module: *mut module, - pub offset: u16_, +pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1 { + pub resv1: __u64, + pub resv2: __u32, + pub resv3: __u16, + pub tail: __u16, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct bpf_kfunc_btf_tab { - pub descs: [bpf_kfunc_btf; 256usize], - pub nr_descs: u32_, +#[derive(Debug)] +pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2 { + pub __empty_bufs: io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1, + pub bufs: __IncompleteArrayField, } #[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_, -} +pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {} #[repr(C)] -#[derive(Copy, Clone)] -pub struct wpan_dev { - pub wpan_phy: *mut wpan_phy, - pub iftype: ::aya_ebpf::cty::c_int, +#[derive(Debug, Copy, Clone)] +pub struct io_buffer { 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, -} -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 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 addr: __u64, + pub len: __u32, + pub bid: __u16, + pub bgid: __u16, } #[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, +#[derive(Copy, Clone)] +pub struct io_buffer_list { + pub __bindgen_anon_1: io_buffer_list__bindgen_ty_1, + pub bgid: __u16, + pub buf_nr_pages: __u16, + pub nr_entries: __u16, + pub head: __u16, + pub mask: __u16, + pub refs: atomic_t, + pub is_buf_ring: __u8, + pub is_mmap: __u8, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct wpan_phy_cca { - pub mode: nl802154_cca_modes::Type, - pub opt: nl802154_cca_opts::Type, +#[derive(Copy, Clone)] +pub union io_buffer_list__bindgen_ty_1 { + pub buf_list: list_head, + pub __bindgen_anon_1: io_buffer_list__bindgen_ty_1__bindgen_ty_1, + pub rcu: callback_head, } #[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 __bindgen_padding_0: [u8; 4usize], - pub priv_: __IncompleteArrayField<::aya_ebpf::cty::c_char>, +#[derive(Debug, Copy, Clone)] +pub struct io_buffer_list__bindgen_ty_1__bindgen_ty_1 { + pub buf_pages: *mut *mut page, + pub buf_ring: *mut io_uring_buf_ring, } +pub type free_work_fn = + ::core::option::Option *mut io_wq_work>; +pub type io_wq_work_fn = ::core::option::Option; #[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, +pub struct io_wq_acct { + pub nr_workers: ::aya_ebpf::cty::c_uint, + pub max_workers: ::aya_ebpf::cty::c_uint, + pub index: ::aya_ebpf::cty::c_int, + pub nr_running: atomic_t, + 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 union ieee802154_addr__bindgen_ty_1 { - pub short_addr: __le16, - pub extended_addr: __le64, +pub struct io_wq { + pub state: ::aya_ebpf::cty::c_ulong, + pub free_work: free_work_fn, + pub do_work: io_wq_work_fn, + 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 lock: raw_spinlock_t, + pub free_list: hlist_nulls_head, + pub all_list: list_head, + pub wait: wait_queue_entry, + pub hash_tail: [*mut io_wq_work; 64usize], + pub cpu_mask: cpumask_var_t, } #[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, +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 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, - >, +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 rcu: callback_head, } #[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>, +#[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 fscrypt_keyring { +pub struct blk_queue_stats { + pub callbacks: list_head, pub lock: spinlock_t, - pub key_hashtable: [hlist_head; 128usize], + pub accounting: ::aya_ebpf::cty::c_int, } -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; +#[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 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_, +#[derive(Debug, Copy, Clone)] +pub struct bpf_mprog_fp { + pub prog: *mut bpf_prog, } #[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, - ), - >, +pub struct bpf_mprog_cp { + pub link: *mut bpf_link, } #[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, +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 rtattr { - pub rta_len: ::aya_ebpf::cty::c_ushort, - pub rta_type: ::aya_ebpf::cty::c_ushort, +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_, } -pub mod iommu_dma_cookie_type { - pub type Type = ::aya_ebpf::cty::c_uint; - pub const IOMMU_DMA_IOVA_COOKIE: Type = 0; - pub const IOMMU_DMA_MSI_COOKIE: Type = 1; +#[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 free_work: work_struct, + pub __ctx: __IncompleteArrayField<*mut ::aya_ebpf::cty::c_void>, } #[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, +#[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 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, +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_, } -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; +#[repr(C)] +#[derive(Copy, Clone)] +pub union crypto_spawn__bindgen_ty_1 { + pub inst: *mut crypto_instance, + pub next: *mut crypto_spawn, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct iommu_dma_options { - pub qt: iommu_dma_queue_type::Type, - pub fq_size: usize, - pub fq_timeout: ::aya_ebpf::cty::c_uint, +pub struct crypto_template { + pub list: list_head, + pub instances: hlist_head, + pub module: *mut module, + 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(Copy, Clone)] -pub struct iommu_dma_cookie { - pub type_: iommu_dma_cookie_type::Type, - pub __bindgen_anon_1: iommu_dma_cookie__bindgen_ty_1, - pub msi_page_list: list_head, - pub fq_domain: *mut iommu_domain, - pub options: iommu_dma_options, - pub mutex: mutex, +#[derive(Debug, Copy, Clone)] +pub struct xdp_desc { + pub addr: __u64, + pub len: __u32, + pub options: __u32, } #[repr(C)] -#[derive(Copy, Clone)] -pub union iommu_dma_cookie__bindgen_ty_1 { - pub __bindgen_anon_1: iommu_dma_cookie__bindgen_ty_1__bindgen_ty_1, - pub msi_iova: dma_addr_t, +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 free_list: list_head, + pub xskb_list: list_head, + pub heads_cnt: u32_, + pub queue_id: u16_, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, + 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 tx_metadata_len: u8_, + pub cached_need_wakeup: u8_, + pub uses_need_wakeup: bool_, + pub dma_need_sync: 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_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 16usize]>, +} +impl xsk_buff_pool { + #[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(Copy, Clone)] -pub struct iommu_dma_cookie__bindgen_ty_1__bindgen_ty_1 { - pub iovad: iova_domain, - pub __bindgen_anon_1: iommu_dma_cookie__bindgen_ty_1__bindgen_ty_1__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, +#[derive(Debug, 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 orig_addr: u64_, + pub free_list_node: list_head, + pub xskb_list_node: list_head, } #[repr(C)] -#[derive(Copy, Clone)] -pub union iommu_dma_cookie__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { - pub single_fq: *mut iova_fq, - pub percpu_fq: *mut iova_fq, +#[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 iova_fq_entry { - pub iova_pfn: ::aya_ebpf::cty::c_ulong, - pub pages: ::aya_ebpf::cty::c_ulong, - pub freelist: list_head, - 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, +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(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, +#[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(Copy, Clone)] -pub struct cpuidle_device_kobj { - pub dev: *mut cpuidle_device, - pub kobj_unregister: completion, - pub kobj: kobject, +pub struct mctp_dev { + pub dev: *mut net_device, + pub refs: refcount_t, + pub net: ::aya_ebpf::cty::c_uint, + pub ops: *const mctp_netdev_ops, + pub addrs: *mut u8_, + pub num_addrs: usize, + pub addrs_lock: spinlock_t, + pub rcu: callback_head, } +pub type mctp_eid_t = __u8; #[repr(C)] #[derive(Copy, Clone)] -pub struct disk_events { - pub node: list_head, - pub disk: *mut gendisk, +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 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, + 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 module_sect_attr { - pub battr: bin_attribute, - pub address: ::aya_ebpf::cty::c_ulong, -} -#[repr(C)] -#[derive(Debug)] -pub struct module_sect_attrs { - pub grp: attribute_group, - pub nsections: ::aya_ebpf::cty::c_uint, - pub attrs: __IncompleteArrayField, -} -#[repr(C)] -#[derive(Debug)] -pub struct module_notes_attrs { - pub dir: *mut kobject, - pub notes: ::aya_ebpf::cty::c_uint, - pub attrs: __IncompleteArrayField, +pub struct mctp_netdev_ops { + pub release_flow: + ::core::option::Option, } +pub type nlink_t = u32_; +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)] -#[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, +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 proc_dops: *const dentry_operations, + 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 struct rb_irq_work { - pub work: irq_work, - pub waiters: wait_queue_head_t, - pub full_waiters: wait_queue_head_t, - pub waiters_pending: bool_, - pub full_waiters_pending: bool_, - pub wakeup_full: bool_, +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 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 subbuf_size: ::aya_ebpf::cty::c_uint, - pub subbuf_order: ::aya_ebpf::cty::c_uint, - pub max_data_size: ::aya_ebpf::cty::c_uint, +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)] -pub struct buffer_data_page { - pub time_stamp: u64_, - pub commit: local_t, - pub data: __IncompleteArrayField<::aya_ebpf::cty::c_uchar>, +pub struct crypto_skcipher { + pub reqsize: ::aya_ebpf::cty::c_uint, + pub base: crypto_tfm, } #[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 page: *mut buffer_data_page, +#[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 rb_time_struct { - pub time: local64_t, +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_, } -pub type rb_time_t = rb_time_struct; #[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 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 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, +#[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(Copy, Clone)] -pub struct uncached_list { - pub lock: spinlock_t, - pub head: list_head, - pub quarantine: list_head, -} -#[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 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(Debug, Copy, Clone)] -pub struct action_gate_entry { - pub gate_state: u8_, - pub interval: u32_, - pub ipv: s32, - pub maxoctets: s32, +#[derive(Copy, Clone)] +pub struct bpf_mem_caches { + pub cache: [bpf_mem_cache; 11usize], } #[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, +pub struct netdev_queue_stats_rx { + pub bytes: u64_, + pub packets: u64_, + pub alloc_fail: u64_, } #[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, +pub struct netdev_queue_stats_tx { + pub bytes: u64_, + pub packets: u64_, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct xdr_netobj { - pub len: ::aya_ebpf::cty::c_uint, - pub data: *mut u8_, +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 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, +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], } +pub type u_int32_t = u32_; +pub type u_int16_t = u16_; #[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, +pub struct nf_conntrack_zone { + pub id: u16_, + pub flags: u8_, + pub dir: u8_, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct lwq_node { - pub node: llist_node, +#[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 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_seqno: u32_, - 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, +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(Copy, Clone)] -pub union rpc_rqst__bindgen_ty_1 { - pub rq_list: list_head, - pub rq_recv: rb_node, +#[derive(Debug, Copy, Clone)] +pub struct nf_conntrack_man_proto__bindgen_ty_1 { + pub port: __be16, } -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_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, +pub struct nf_conntrack_man_proto__bindgen_ty_2 { + pub port: __be16, } #[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, +pub struct nf_conntrack_man_proto__bindgen_ty_3 { + pub id: __be16, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct rpc_wait { - pub list: list_head, - pub links: list_head, - pub timer_list: list_head, +pub struct nf_conntrack_man_proto__bindgen_ty_4 { + pub port: __be16, } #[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, +pub struct nf_conntrack_man_proto__bindgen_ty_5 { + pub port: __be16, } #[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, +#[derive(Debug, Copy, Clone)] +pub struct nf_conntrack_man_proto__bindgen_ty_6 { + pub key: __be16, } #[repr(C)] #[derive(Copy, Clone)] -pub union rpc_task__bindgen_ty_1 { - pub tk_work: work_struct, - pub tk_wait: rpc_wait, +pub struct nf_conntrack_man { + pub u3: nf_inet_addr, + pub u: nf_conntrack_man_proto, + pub l3num: u_int16_t, } -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 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 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 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(Copy, Clone)] +pub struct nf_conntrack_tuple { + pub src: nf_conntrack_man, + pub dst: nf_conntrack_tuple__bindgen_ty_1, } #[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, +#[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 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_ushort, - pub timer_list: rpc_timer, - pub name: *const ::aya_ebpf::cty::c_char, +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 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, +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 rpc_iostats { - _unused: [u8; 0], -} -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 struct nf_conntrack_tuple__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2 { + pub port: __be16, } #[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, +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 rpc_pipe_dir_head { - pub pdh_entries: list_head, - pub pdh_dentry: *mut dentry, +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 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], +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 rpc_xprt_iter { - pub xpi_xpswitch: *mut rpc_xprt_switch, - pub xpi_cursor: *mut rpc_xprt, - pub xpi_ops: *const rpc_xprt_iter_ops, +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 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 struct nf_conntrack_tuple_hash { + pub hnnode: hlist_nulls_node, + pub tuple: nf_conntrack_tuple, } +pub type u_int64_t = u64_; #[repr(C)] -#[derive(Copy, Clone)] -pub union rpc_clnt__bindgen_ty_1 { - pub cl_xpi: rpc_xprt_iter, - pub cl_work: work_struct, +#[derive(Debug, Copy, Clone)] +pub struct nf_ct_dccp { + pub role: [u_int8_t; 2usize], + pub state: u_int8_t, + pub last_pkt: u_int8_t, + pub last_dir: u_int8_t, + pub handshake_seq: u_int64_t, } -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 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 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 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 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 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 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 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, - ) -> __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 - } +#[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 svc_xprt { - _unused: [u8; 0], +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 rpc_sysfs_xprt { - _unused: [u8; 0], +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(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 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_, +pub union nf_conntrack_proto { + pub dccp: nf_ct_dccp, + 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 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, +pub struct nf_conn__bindgen_ty_1 {} +#[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, +} +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 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; } -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 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 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 - } +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; } #[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, +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, } -pub type rpc_authflavor_t = u32_; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct auth_cred { - pub cred: *const cred, - pub principal: *const ::aya_ebpf::cty::c_char, +pub struct wpan_phy_cca { + pub mode: nl802154_cca_modes::Type, + pub opt: nl802154_cca_opts::Type, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct rpc_cred_cache { - _unused: [u8; 0], +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 __bindgen_padding_0: [u8; 4usize], + pub priv_: __IncompleteArrayField<::aya_ebpf::cty::c_char>, } #[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, +#[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 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 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 rpc_authops { - pub owner: *mut module, - pub au_flavor: rpc_authflavor_t, - pub au_name: *mut ::aya_ebpf::cty::c_char, +pub struct wpan_dev_header_ops { 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, + 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, >, - 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_auth_create_args { - pub pseudoflavor: rpc_authflavor_t, - pub target_name: *const ::aya_ebpf::cty::c_char, +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 rpcsec_gss_oid { - pub len: ::aya_ebpf::cty::c_uint, - pub data: [u8_; 32usize], +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(Debug, Copy, Clone)] -pub struct rpcsec_gss_info { - pub oid: rpcsec_gss_oid, - pub qop: u32_, - pub service: u32_, +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(Copy, Clone)] -pub struct lwq { - pub lock: spinlock_t, - pub ready: *mut llist_node, - pub new: llist_head, +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 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 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), - >, -} +pub struct pin_cookie {} #[repr(C)] #[derive(Copy, Clone)] -pub struct svc_serv { - pub sv_program: *mut svc_program, - pub sv_stats: *mut svc_stat, - pub sv_lock: spinlock_t, - pub sv_nrthreads: ::aya_ebpf::cty::c_uint, - pub sv_maxconn: ::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_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_, +pub struct dl_bw { + pub lock: raw_spinlock_t, + pub bw: u64_, + pub total_bw: u64_, } #[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>, +#[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 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, +pub struct cpupri_vec { + pub count: atomic_t, + pub mask: cpumask_var_t, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct rpc_sysfs_xprt_switch { - _unused: [u8; 0], +pub struct cpupri { + pub pri_to_cpu: [cpupri_vec; 101usize], + pub cpu_to_pri: *mut ::aya_ebpf::cty::c_int, } #[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, +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 overload: ::aya_ebpf::cty::c_int, + pub overutilized: ::aya_ebpf::cty::c_int, + pub dlo_mask: cpumask_var_t, + pub dlo_count: atomic_t, + pub dl_bw: dl_bw, + pub cpudl: cpudl, + pub visit_gen: 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 max_cpu_capacity: ::aya_ebpf::cty::c_ulong, + pub pd: *mut perf_domain, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct cfs_rq { + pub load: load_weight, + pub nr_running: ::aya_ebpf::cty::c_uint, + pub h_nr_running: ::aya_ebpf::cty::c_uint, + pub idle_nr_running: ::aya_ebpf::cty::c_uint, + pub idle_h_nr_running: ::aya_ebpf::cty::c_uint, + pub avg_vruntime: s64, + pub avg_load: u64_, + pub exec_clock: u64_, + pub min_vruntime: u64_, + pub forceidle_seq: ::aya_ebpf::cty::c_uint, + pub min_vruntime_fi: u64_, + pub tasks_timeline: rb_root_cached, + pub curr: *mut sched_entity, + pub next: *mut sched_entity, + pub nr_spread_over: ::aya_ebpf::cty::c_uint, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>, + 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 throttled: ::aya_ebpf::cty::c_int, + pub throttle_count: ::aya_ebpf::cty::c_int, + pub throttled_list: list_head, + pub throttled_csd_list: list_head, + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 56usize]>, +} +#[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; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); + __bindgen_bitfield_unit + } +} +#[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 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 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 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, +pub struct uclamp_rq { + pub value: ::aya_ebpf::cty::c_uint, + pub bucket: [uclamp_bucket; 5usize], } #[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, +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 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, -} -pub mod svc_auth_status { - pub type Type = ::aya_ebpf::cty::c_uint; - pub const SVC_GARBAGE: Type = 1; - pub const SVC_SYSERR: Type = 2; - pub const SVC_VALID: Type = 3; - pub const SVC_NEGATIVE: Type = 4; - pub const SVC_OK: Type = 5; - pub const SVC_DROP: Type = 6; - pub const SVC_CLOSE: Type = 7; - pub const SVC_DENIED: Type = 8; - pub const SVC_PENDING: Type = 9; - pub const SVC_COMPLETE: Type = 10; +#[derive(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: ::aya_ebpf::cty::c_int, + pub pushable_tasks: plist_head, + pub rt_queued: ::aya_ebpf::cty::c_int, + pub rt_throttled: ::aya_ebpf::cty::c_int, + pub rt_time: u64_, + pub rt_runtime: u64_, + pub rt_runtime_lock: raw_spinlock_t, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct svc_program { - pub pg_next: *mut 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_stats: *mut svc_stat, - 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, - >, +pub struct rt_rq__bindgen_ty_1 { + pub curr: ::aya_ebpf::cty::c_int, + pub next: ::aya_ebpf::cty::c_int, } #[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>, +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: ::aya_ebpf::cty::c_int, + 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 rpc_sysfs_client { - pub kobject: kobject, - pub net: *mut net, - pub clnt: *mut rpc_clnt, - pub xprt_switch: *mut rpc_xprt_switch, +pub struct dl_rq__bindgen_ty_1 { + pub curr: u64_, + pub next: u64_, } #[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, +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(Debug, Copy, Clone)] -pub struct nfs_fh { - pub size: ::aya_ebpf::cty::c_ushort, - pub data: [::aya_ebpf::cty::c_uchar; 128usize], -} -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; +#[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 leaf_cfs_rq_list: list_head, + pub tmp_alone_branch: *mut list_head, + pub nr_uninterruptible: ::aya_ebpf::cty::c_uint, + pub curr: *mut task_struct, + 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; 40usize]>, + 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 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; 24usize]>, + 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_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; 8usize]>, + 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(Debug, Copy, Clone)] -pub struct nfs4_label { - pub lfs: u32, - pub pi: u32, - pub len: u32_, - pub label: *mut ::aya_ebpf::cty::c_char, +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; 24usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default(); + __bindgen_bitfield_unit + } + #[inline] + pub fn new_bitfield_6() -> __BindgenBitfieldUnit<[u8; 8usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = 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 nfs4_verifier { - pub data: [::aya_ebpf::cty::c_char; 8usize], +#[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(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, +pub struct task_group { + pub css: cgroup_subsys_state, + pub se: *mut *mut sched_entity, + pub cfs_rq: *mut *mut cfs_rq, + pub shares: ::aya_ebpf::cty::c_ulong, + pub idle: ::aya_ebpf::cty::c_int, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>, + pub load_avg: atomic_long_t, + pub rcu: callback_head, + pub list: list_head, + pub parent: *mut task_group, + pub siblings: list_head, + pub children: list_head, + pub autogroup: *mut autogroup, + pub cfs_bandwidth: cfs_bandwidth, + pub uclamp_pct: [::aya_ebpf::cty::c_uint; 2usize], + pub uclamp_req: [uclamp_se; 2usize], + pub uclamp: [uclamp_se; 2usize], + pub _bitfield_align_2: [u8; 0], + pub _bitfield_2: __BindgenBitfieldUnit<[u8; 32usize]>, +} +impl task_group { + #[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; 32usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 32usize]> = Default::default(); + __bindgen_bitfield_unit + } } #[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, +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 nfs4_stateid_struct__bindgen_ty_1__bindgen_ty_1 { - pub seqid: __be32, - pub other: [::aya_ebpf::cty::c_char; 12usize], +pub struct sched_domain_shared { + pub ref_: atomic_t, + pub nr_busy_cpus: atomic_t, + pub has_idle_cores: ::aya_ebpf::cty::c_int, + pub nr_idle_scan: ::aya_ebpf::cty::c_int, } -pub 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; +#[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 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: [::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>, } -pub type nfs4_stateid = nfs4_stateid_struct; -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; +#[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 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, +#[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, 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, +#[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 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_, +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 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, +pub struct perf_domain { + pub em_pd: *mut em_perf_domain, + pub next: *mut perf_domain, + pub rcu: callback_head, } #[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, +pub struct balance_callback { + pub next: *mut balance_callback, + pub func: ::core::option::Option, } #[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, +pub struct rq_flags { + pub flags: ::aya_ebpf::cty::c_ulong, + pub cookie: pin_cookie, + pub clock_update_flags: ::aya_ebpf::cty::c_uint, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct nfs_fsid { - pub major: u64, - pub minor: u64, +pub struct affinity_context { + pub new_mask: *const cpumask, + pub user_mask: *mut cpumask, + pub flags: ::aya_ebpf::cty::c_uint, } #[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, +#[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 mt: maple_tree, + pub vma_list: list_head, + pub lock: mutex, } #[repr(C)] -#[derive(Copy, Clone)] -pub struct nfs_fattr { - pub valid: ::aya_ebpf::cty::c_uint, - 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 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, +#[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 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, +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 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 nfs_fattr__bindgen_ty_1__bindgen_ty_1 { - pub blocksize: __u32, - pub blocks: __u32, +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 nfs_fattr__bindgen_ty_1__bindgen_ty_2 { - pub used: __u64, +pub struct tls_crypto_info { + pub version: __u16, + pub cipher_type: __u16, } #[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, +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 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, +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 nfs_pathconf { - pub fattr: *mut nfs_fattr, - pub max_link: __u32, - pub max_namelen: __u32, +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 nfs4_change_info { - pub atomic: u32_, - pub before: u64_, - pub after: u64_, +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 nfs4_slot { - _unused: [u8; 0], +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)] #[derive(Debug, Copy, Clone)] -pub struct nfs4_sequence_args { - pub sa_slot: *mut nfs4_slot, +pub struct cipher_context { + pub iv: [::aya_ebpf::cty::c_char; 20usize], + pub rec_seq: [::aya_ebpf::cty::c_char; 8usize], +} +#[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 __bindgen_padding_0: [u8; 7usize], + 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 nfs4_sequence_args { +impl tls_context { #[inline] - pub fn sa_cache_this(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + pub fn tx_conf(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u8) } } #[inline] - pub fn set_sa_cache_this(&mut self, val: u8_) { + pub fn set_tx_conf(&mut self, val: u8_) { unsafe { let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) + self._bitfield_1.set(0usize, 3u8, val as u64) } } #[inline] - pub fn sa_privileged(&self) -> u8_ { - unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) } + pub fn rx_conf(&self) -> u8_ { + unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 3u8) as u8) } } #[inline] - pub fn set_sa_privileged(&mut self, val: u8_) { + pub fn set_rx_conf(&mut self, val: u8_) { unsafe { let val: u8 = ::core::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) + self._bitfield_1.set(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 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 fn new_bitfield_1( - sa_cache_this: u8_, - sa_privileged: u8_, + 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, 1u8, { - let sa_cache_this: u8 = unsafe { ::core::mem::transmute(sa_cache_this) }; - sa_cache_this as u64 + __bindgen_bitfield_unit.set(0usize, 3u8, { + let tx_conf: u8 = unsafe { ::core::mem::transmute(tx_conf) }; + tx_conf 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.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 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(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_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 flags: ::aya_ebpf::cty::c_ulong, - pub error: ::aya_ebpf::cty::c_int, +pub struct workqueue_struct { + pub pwqs: list_head, pub list: list_head, - pub mdsthreshold: *mut nfs4_threshold, - pub callback_head: callback_head, -} -#[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 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 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 writeback: atomic_long_t, - pub write_congested: ::aya_ebpf::cty::c_uint, - pub flags: ::aya_ebpf::cty::c_uint, - pub fattr_valid: ::aya_ebpf::cty::c_uint, - pub caps: ::aya_ebpf::cty::c_uint, - pub rsize: ::aya_ebpf::cty::c_uint, - pub rpages: ::aya_ebpf::cty::c_uint, - pub wsize: ::aya_ebpf::cty::c_uint, - pub wpages: ::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 time_delta: timespec64, - 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 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 fh_expire_type: u32_, - pub pnfs_curr_ld: *mut pnfs_layoutdriver_type, - pub roc_rpcwaitq: rpc_wait_queue, - pub pnfs_ld_data: *mut ::aya_ebpf::cty::c_void, - pub state_owners: rb_root, - pub openowner_id: ida, - pub lockowner_id: ida, - pub state_owners_lru: list_head, - pub layouts: list_head, - pub delegations: list_head, - pub ss_copies: list_head, - 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 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]>, } -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct nfs_subversion { - _unused: [u8; 0], -} -#[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], +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 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 pending_cb_stateids: list_head, - pub rcu: callback_head, +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; 24usize], + pub rescue_wq: *mut workqueue_struct, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct pnfs_layout_segment { - _unused: [u8; 0], +#[derive(Copy, Clone)] +pub union worker__bindgen_ty_1 { + pub entry: list_head, + pub hentry: hlist_node, } #[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, +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 nfs_write_verifier { - pub data: [::aya_ebpf::cty::c_char; 8usize], +#[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 dying_workers: list_head, + pub detach_completion: *mut completion, + 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 nfs_writeverf { - pub verifier: nfs_write_verifier, - pub committed: nfs3_stable_how::Type, +#[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 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, +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(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, +pub struct wq_device { + pub wq: *mut workqueue_struct, + pub dev: device, } #[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, +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(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, +pub struct nf_conntrack_tuple_mask { + pub src: nf_conntrack_tuple_mask__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, +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 nfs_commitargs { - pub seq_args: nfs4_sequence_args, - pub fh: *mut nfs_fh, - pub offset: __u64, - pub count: __u32, - pub bitmask: *const u32_, +#[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 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, +pub struct nf_conntrack_helper { + _unused: [u8; 0], } #[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, +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 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, +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 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, +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 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, +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, + >, } #[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_, +#[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 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(Debug, Copy, Clone)] -pub struct nfs_readdir_res { - pub verf: *mut __be32, +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 nfs4_pathname { - pub ncomponents: ::aya_ebpf::cty::c_uint, - pub components: [nfs4_string; 512usize], +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 nfs4_fs_location { - pub nservers: ::aya_ebpf::cty::c_uint, - pub servers: [nfs4_string; 10usize], - pub rootpath: nfs4_pathname, +pub struct dm_hw_stat_delta { + pub last_rx: ::aya_ebpf::cty::c_ulong, + pub last_drop_val: ::aya_ebpf::cty::c_ulong, + pub rcu: callback_head, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct 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], +pub struct btf_id_dtor_kfunc { + pub btf_id: u32_, + pub kfunc_btf_id: u32_, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct nfstime4 { - pub seconds: u64_, - pub nseconds: u32_, +#[derive(Debug)] +pub struct btf_struct_metas { + pub cnt: u32_, + pub types: __IncompleteArrayField, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct pnfs_commit_ops { - _unused: [u8; 0], +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) -> ::aya_ebpf::cty::c_int, + >, + pub unreg: ::core::option::Option, + pub update: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut ::aya_ebpf::cty::c_void, + arg2: *mut ::aya_ebpf::cty::c_void, + ) -> ::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 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, +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 nfs41_server_owner { - pub minor_id: u64, - pub major_id_sz: u32, - pub major_id: [::aya_ebpf::cty::c_char; 1024usize], +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 nfs41_server_scope { - pub server_scope_sz: u32, - pub server_scope: [::aya_ebpf::cty::c_char; 1024usize], +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 nfs41_impl_id { - pub domain: [::aya_ebpf::cty::c_char; 1025usize], - pub name: [::aya_ebpf::cty::c_char; 1025usize], - pub date: nfstime4, +pub struct btf_kfunc_set_tab { + pub sets: [*mut btf_id_set8; 13usize], + pub hook_filters: [btf_kfunc_hook_filter; 13usize], } #[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], +#[derive(Debug)] +pub struct btf_id_dtor_kfunc_tab { + pub cnt: u32_, + pub dtors: __IncompleteArrayField, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct nfs_page { - _unused: [u8; 0], +#[derive(Debug)] +pub struct btf_struct_ops_tab { + pub cnt: u32_, + pub capacity: u32_, + pub ops: __IncompleteArrayField, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct nfs_rw_ops { +pub struct sfp { _unused: [u8; 0], } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct nfs_io_completion { - _unused: [u8; 0], +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 sfp_quirk: *const sfp_quirk, + 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_, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct nfs_direct_req { - _unused: [u8; 0], +#[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 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 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_, +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 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, +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 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 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 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 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 nfs_mds_commit_info { - pub rpcs_out: atomic_t, - pub ncommit: atomic_long_t, - pub list: list_head, +pub struct sfp_eeprom_base__bindgen_ty_1__bindgen_ty_2 { + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, } -#[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), - >, +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 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 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 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 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 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 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 + } } -#[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, +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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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(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, +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 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], +pub struct sfp_eeprom_id { + pub base: sfp_eeprom_base, + pub ext: sfp_eeprom_ext, } #[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: *mut nfs_fh, - arg4: *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, - ) -> ::aya_ebpf::cty::c_int, - >, - 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 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 commit_done: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut rpc_task, - arg2: *mut nfs_commit_data, - ) -> ::aya_ebpf::cty::c_int, + pub detach: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut ::aya_ebpf::cty::c_void, arg2: *mut sfp_bus), >, - pub lock: ::core::option::Option< + pub module_insert: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut file, - arg2: ::aya_ebpf::cty::c_int, - arg3: *mut file_lock, + arg1: *mut ::aya_ebpf::cty::c_void, + arg2: *const sfp_eeprom_id, ) -> ::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 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 open_context: ::core::option::Option< + 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 inode, - arg2: *mut nfs_open_context, - arg3: ::aya_ebpf::cty::c_int, - arg4: *mut iattr, - arg5: *mut ::aya_ebpf::cty::c_int, - ) -> *mut inode, + arg1: *mut ::aya_ebpf::cty::c_void, + arg2: *mut phy_device, + ) -> ::aya_ebpf::cty::c_int, >, - pub have_delegation: ::core::option::Option< - unsafe extern "C" fn(arg1: *mut inode, arg2: fmode_t) -> ::aya_ebpf::cty::c_int, + pub disconnect_phy: + ::core::option::Option, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sfp_quirk { + pub vendor: *const ::aya_ebpf::cty::c_char, + pub part: *const ::aya_ebpf::cty::c_char, + pub modes: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const sfp_eeprom_id, + arg2: *mut ::aya_ebpf::cty::c_ulong, + arg3: *mut ::aya_ebpf::cty::c_ulong, + ), >, - pub alloc_client: ::core::option::Option< - unsafe extern "C" fn(arg1: *const nfs_client_initdata) -> *mut nfs_client, + pub fixup: ::core::option::Option, +} +#[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 init_client: ::core::option::Option< + pub module_eeprom: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut nfs_client, - arg2: *const nfs_client_initdata, - ) -> *mut nfs_client, + arg1: *mut sfp, + arg2: *mut ethtool_eeprom, + arg3: *mut u8_, + ) -> ::aya_ebpf::cty::c_int, >, - pub free_client: ::core::option::Option, - pub create_server: - ::core::option::Option *mut nfs_server>, - pub clone_server: ::core::option::Option< + pub module_eeprom_by_page: ::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, + arg1: *mut sfp, + arg2: *const ethtool_module_eeprom, + arg3: *mut netlink_ext_ack, + ) -> ::aya_ebpf::cty::c_int, >, - pub enable_swap: ::core::option::Option, - pub disable_swap: ::core::option::Option, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct uncached_list { + pub lock: spinlock_t, + pub head: list_head, + pub quarantine: list_head, } #[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, +pub struct xdp_dev_bulk_queue { + pub q: [*mut xdp_frame; 16usize], + pub flush_node: list_head, + pub dev: *mut net_device, + pub dev_rx: *mut net_device, + pub xdp_prog: *mut bpf_prog, + pub count: ::aya_ebpf::cty::c_uint, } +pub 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 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< +pub struct eventfs_entry { + pub name: *const ::aya_ebpf::cty::c_char, + pub callback: eventfs_callback, + pub release: eventfs_release, +} +#[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, +} +#[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 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 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 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 bpf_prog_offload_ops { + pub insn_hook: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut nfs_server, - arg2: *mut nfs_fh, - arg3: *mut nfs_fsinfo, + arg1: *mut bpf_verifier_env, + arg2: ::aya_ebpf::cty::c_int, + arg3: ::aya_ebpf::cty::c_int, ) -> ::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 finalize: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut bpf_verifier_env) -> ::aya_ebpf::cty::c_int, >, - pub test_and_free_expired: ::core::option::Option< + pub replace_insn: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut nfs_server, - arg2: *mut nfs4_stateid, - arg3: *const cred, + arg1: *mut bpf_verifier_env, + arg2: u32_, + arg3: *mut bpf_insn, ) -> ::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< + pub remove_insns: ::core::option::Option< unsafe extern "C" fn( - arg1: *mut rpc_clnt, - arg2: *mut rpc_xprt, - arg3: *mut ::aya_ebpf::cty::c_void, - ), + arg1: *mut bpf_verifier_env, + arg2: u32_, + arg3: u32_, + ) -> ::aya_ebpf::cty::c_int, >, - 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, + 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(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, +#[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 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, +pub struct fscrypt_direct_key { + pub dk_sb: *mut super_block, + pub dk_node: hlist_node, + pub dk_refcount: refcount_t, + pub dk_mode: *const fscrypt_mode, + pub dk_key: fscrypt_prepared_key, + pub dk_descriptor: [u8_; 8usize], + pub dk_raw: [u8_; 64usize], } #[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, +pub struct throtl_service_queue { + pub parent_sq: *mut throtl_service_queue, + pub queued: [list_head; 2usize], + pub nr_queued: [::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 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), - >, +pub struct latency_bucket { + pub total_latency: ::aya_ebpf::cty::c_ulong, + pub samples: ::aya_ebpf::cty::c_int, } #[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, +pub struct avg_latency_bucket { + pub latency: ::aya_ebpf::cty::c_ulong, + pub valid: bool_, } #[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>, +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 limit_index: ::aya_ebpf::cty::c_uint, + pub limit_valid: [bool_; 2usize], + pub low_upgrade_time: ::aya_ebpf::cty::c_ulong, + pub low_downgrade_time: ::aya_ebpf::cty::c_ulong, + pub scale: ::aya_ebpf::cty::c_uint, + pub tmp_buckets: [latency_bucket; 18usize], + pub avg_buckets: [avg_latency_bucket; 18usize], + pub latency_buckets: [*mut latency_bucket; 2usize], + pub last_calculate_time: ::aya_ebpf::cty::c_ulong, + pub filtered_latency: ::aya_ebpf::cty::c_ulong, + pub track_bio_latency: bool_, } #[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_page: *mut page, - pub rq_res: xdr_buf, - pub rq_pages: [*mut page; 260usize], - 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_vec: [kvec; 259usize], - pub rq_bvec: [bio_vec; 259usize], - 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 bc_to_initval: ::aya_ebpf::cty::c_ulong, - pub bc_to_retries: ::aya_ebpf::cty::c_uint, - pub rq_lease_breaker: *mut *mut ::aya_ebpf::cty::c_void, - pub rq_status_counter: ::aya_ebpf::cty::c_uint, +#[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(Copy, Clone)] -pub struct svc_pool { - pub sp_id: ::aya_ebpf::cty::c_uint, - pub sp_xprts: lwq, - pub sp_nrthreads: atomic_t, - 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, +#[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 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, +pub struct audit_node { + pub list: list_head, + pub owner: *mut audit_tree, + pub index: ::aya_ebpf::cty::c_uint, } #[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>, +#[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 bpf_xdp_link { + pub link: bpf_link, + pub dev: *mut net_device, + pub flags: ::aya_ebpf::cty::c_int, +} +#[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(Copy, Clone)] -pub struct svc_process_info { - pub __bindgen_anon_1: svc_process_info__bindgen_ty_1, +#[derive(Debug, Copy, Clone)] +pub struct cpu_rmap__bindgen_ty_1 { + pub index: u16_, + pub dist: u16_, } #[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, +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 svc_process_info__bindgen_ty_1__bindgen_ty_1 { - pub lovers: ::aya_ebpf::cty::c_uint, - pub hivers: ::aya_ebpf::cty::c_uint, +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 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>, +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(Copy, Clone)] -pub struct nfs_seqid_counter { - pub create_time: ktime_t, - pub owner_id: ::aya_ebpf::cty::c_int, - pub flags: ::aya_ebpf::cty::c_int, - pub counter: u32_, - pub lock: spinlock_t, - pub list: list_head, - pub wait: rpc_wait_queue, +#[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(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, +pub struct dst_cache_pcpu { + pub refresh_ts: ::aya_ebpf::cty::c_ulong, + pub dst: *mut dst_entry, + pub cookie: u32_, + pub __bindgen_anon_1: dst_cache_pcpu__bindgen_ty_1, } #[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, - >, +#[derive(Copy, Clone)] +pub union dst_cache_pcpu__bindgen_ty_1 { + pub in_saddr: in_addr, + pub in6_saddr: in6_addr, } #[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, - >, +pub struct rcu_exp_work { + pub rew_s: ::aya_ebpf::cty::c_ulong, + pub rew_work: kthread_work, } #[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, - >, +#[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 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_reclaim_seqcount: seqcount_spinlock_t, - pub so_delegreturn_mutex: mutex, +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 prog_entry { - pub target: ::aya_ebpf::cty::c_int, - pub when_to_branch: ::aya_ebpf::cty::c_int, - pub pred: *mut filter_pred, +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, } -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, +#[derive(Copy, Clone)] +pub struct cpu_stop_done { + pub nr_todo: atomic_t, + pub ret: ::aya_ebpf::cty::c_int, + pub completion: completion, } -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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct uevent_sock { + pub list: list_head, + pub sk: *mut sock, } #[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, +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)] @@ -47167,6 +47506,79 @@ pub struct notification { pub next_id: u64_, pub notifications: list_head, } +pub mod ethtool_podl_pse_admin_state { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const ETHTOOL_PODL_PSE_ADMIN_STATE_UNKNOWN: Type = 1; + pub const ETHTOOL_PODL_PSE_ADMIN_STATE_DISABLED: Type = 2; + pub const ETHTOOL_PODL_PSE_ADMIN_STATE_ENABLED: Type = 3; +} +pub mod ethtool_podl_pse_pw_d_status { + pub type Type = ::aya_ebpf::cty::c_uint; + pub const ETHTOOL_PODL_PSE_PW_D_STATUS_UNKNOWN: Type = 1; + pub const ETHTOOL_PODL_PSE_PW_D_STATUS_DISABLED: Type = 2; + pub const ETHTOOL_PODL_PSE_PW_D_STATUS_SEARCHING: Type = 3; + pub const ETHTOOL_PODL_PSE_PW_D_STATUS_DELIVERING: Type = 4; + pub const ETHTOOL_PODL_PSE_PW_D_STATUS_SLEEP: Type = 5; + pub const ETHTOOL_PODL_PSE_PW_D_STATUS_IDLE: Type = 6; + pub const ETHTOOL_PODL_PSE_PW_D_STATUS_ERROR: Type = 7; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pse_control_config { + pub admin_cotrol: ethtool_podl_pse_admin_state::Type, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pse_control_status { + pub podl_admin_state: ethtool_podl_pse_admin_state::Type, + pub podl_pw_status: ethtool_podl_pse_pw_d_status::Type, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pse_controller_ops { + pub ethtool_get_status: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut pse_controller_dev, + arg2: ::aya_ebpf::cty::c_ulong, + arg3: *mut netlink_ext_ack, + arg4: *mut pse_control_status, + ) -> ::aya_ebpf::cty::c_int, + >, + pub ethtool_set_config: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut pse_controller_dev, + arg2: ::aya_ebpf::cty::c_ulong, + arg3: *mut netlink_ext_ack, + arg4: *const pse_control_config, + ) -> ::aya_ebpf::cty::c_int, + >, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct pse_controller_dev { + pub ops: *const pse_controller_ops, + pub owner: *mut module, + pub list: list_head, + pub pse_control_head: list_head, + pub dev: *mut device, + pub of_pse_n_cells: ::aya_ebpf::cty::c_int, + pub of_xlate: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut pse_controller_dev, + arg2: *const of_phandle_args, + ) -> ::aya_ebpf::cty::c_int, + >, + pub nr_lines: ::aya_ebpf::cty::c_uint, + pub lock: mutex, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pse_control { + pub pcdev: *mut pse_controller_dev, + pub list: list_head, + pub id: ::aya_ebpf::cty::c_uint, + pub refcnt: kref, +} pub mod nl80211_iftype { pub type Type = ::aya_ebpf::cty::c_uint; pub const NL80211_IFTYPE_UNSPECIFIED: Type = 0; @@ -47250,6 +47662,7 @@ pub struct cfg80211_chan_def { pub center_freq2: u32_, pub edmg: ieee80211_edmg, pub freq1_offset: u16_, + pub punctured: u16_, } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -48133,7 +48546,6 @@ pub struct cfg80211_match_set { pub ssid: cfg80211_ssid, pub bssid: [u8_; 6usize], pub rssi_thold: s32, - pub per_band_rssi_thold: [s32; 6usize], } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -48491,176 +48903,234 @@ pub struct wiphy_iftype_akm_suites { pub n_akm_suites: ::aya_ebpf::cty::c_int, } #[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, +#[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 struct iova_rcache { +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 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)] +pub struct pr_keys { + pub generation: u32_, + pub num_keys: u32_, + pub keys: __IncompleteArrayField, +} +#[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, Copy, Clone)] +pub struct iova_bitmap_map { + pub iova: ::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, + pub set_ahead_length: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +pub struct numa_group { + pub refcount: refcount_t, 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, + 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 iova_magazine { - pub __bindgen_anon_1: iova_magazine__bindgen_ty_1, - pub pfns: [::aya_ebpf::cty::c_ulong; 127usize], +#[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(Copy, Clone)] -pub union iova_magazine__bindgen_ty_1 { - pub size: ::aya_ebpf::cty::c_ulong, - pub next: *mut iova_magazine, +#[derive(Debug, Copy, Clone)] +pub struct module_sect_attr { + pub battr: bin_attribute, + pub address: ::aya_ebpf::cty::c_ulong, +} +#[repr(C)] +#[derive(Debug)] +pub struct module_sect_attrs { + pub grp: attribute_group, + pub nsections: ::aya_ebpf::cty::c_uint, + pub attrs: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug)] +pub struct module_notes_attrs { + pub dir: *mut kobject, + pub notes: ::aya_ebpf::cty::c_uint, + pub attrs: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct memcg_vmstats { + pub state: [::aya_ebpf::cty::c_long; 53usize], + pub events: [::aya_ebpf::cty::c_ulong; 22usize], + pub state_local: [::aya_ebpf::cty::c_long; 53usize], + pub events_local: [::aya_ebpf::cty::c_ulong; 22usize], + pub state_pending: [::aya_ebpf::cty::c_long; 53usize], + pub events_pending: [::aya_ebpf::cty::c_ulong; 22usize], + pub stats_updates: atomic64_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct memcg_vmstats_percpu { + pub stats_updates: ::aya_ebpf::cty::c_uint, + pub parent: *mut memcg_vmstats_percpu, + pub vmstats: *mut memcg_vmstats, + pub state: [::aya_ebpf::cty::c_long; 53usize], + pub events: [::aya_ebpf::cty::c_ulong; 22usize], + pub state_prev: [::aya_ebpf::cty::c_long; 53usize], + pub events_prev: [::aya_ebpf::cty::c_ulong; 22usize], + pub nr_page_events: ::aya_ebpf::cty::c_ulong, + pub targets: [::aya_ebpf::cty::c_ulong; 2usize], + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 32usize]>, +} +impl memcg_vmstats_percpu { + #[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 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 pse_controller_ops { - pub ethtool_get_status: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut pse_controller_dev, - arg2: ::aya_ebpf::cty::c_ulong, - arg3: *mut netlink_ext_ack, - arg4: *mut pse_control_status, - ) -> ::aya_ebpf::cty::c_int, - >, - pub ethtool_set_config: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut pse_controller_dev, - arg2: ::aya_ebpf::cty::c_ulong, - arg3: *mut netlink_ext_ack, - arg4: *const pse_control_config, - ) -> ::aya_ebpf::cty::c_int, - >, +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: *mut uprobe_consumer, + pub inode: *mut inode, + 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 struct pse_controller_dev { - pub ops: *const pse_controller_ops, - pub owner: *mut module, - pub list: list_head, - pub pse_control_head: list_head, - pub dev: *mut device, - pub of_pse_n_cells: ::aya_ebpf::cty::c_int, - pub of_xlate: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut pse_controller_dev, - arg2: *const of_phandle_args, - ) -> ::aya_ebpf::cty::c_int, - >, - pub nr_lines: ::aya_ebpf::cty::c_uint, - pub lock: mutex, +pub struct xol_area { + pub wq: wait_queue_head_t, + pub slot_count: atomic_t, + pub bitmap: *mut ::aya_ebpf::cty::c_ulong, + pub xol_mapping: vm_special_mapping, + pub pages: [*mut page; 2usize], + pub vaddr: ::aya_ebpf::cty::c_ulong, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct pse_control { - pub pcdev: *mut pse_controller_dev, - pub list: list_head, - pub id: ::aya_ebpf::cty::c_uint, - pub refcnt: kref, +#[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 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 pfn_t, - ) -> ::aya_ebpf::cty::c_long, - >, - pub dax_supported: ::core::option::Option< - unsafe extern "C" fn( - arg1: *mut dax_device, - arg2: *mut block_device, - arg3: ::aya_ebpf::cty::c_int, - arg4: sector_t, - arg5: sector_t, - ) -> bool_, - >, - 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, - >, +#[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 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, +#[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 tcpvegas_info { - pub tcpv_enabled: __u32, - pub tcpv_rttcnt: __u32, - pub tcpv_rtt: __u32, - pub tcpv_minrtt: __u32, +#[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_lock_t, } #[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(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 tcp_bbr_info { - pub bbr_bw_lo: __u32, - pub bbr_bw_hi: __u32, - pub bbr_min_rtt: __u32, - pub bbr_pacing_gain: __u32, - pub bbr_cwnd_gain: __u32, +pub 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, } #[repr(C)] #[derive(Copy, Clone)] -pub union tcp_cc_info { - pub vegas: tcpvegas_info, - pub dctcp: tcp_dctcp_info, - pub bbr: tcp_bbr_info, +pub struct kmem_cache_node { + pub list_lock: spinlock_t, + pub nr_partial: ::aya_ebpf::cty::c_ulong, + pub partial: list_head, + pub nr_slabs: atomic_long_t, + pub total_objects: atomic_long_t, + pub full: list_head, } #[repr(C)] #[derive(Copy, Clone)] @@ -48692,175 +49162,228 @@ pub struct swap_iocb { } #[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, +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(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 rcu_exp_work { - pub rew_s: ::aya_ebpf::cty::c_ulong, - pub rew_work: work_struct, +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, } +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(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 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 boost_kthread_mutex: mutex, - pub boost_kthread_task: *mut task_struct, - pub boost_kthread_status: ::aya_ebpf::cty::c_uint, - pub n_boosts: ::aya_ebpf::cty::c_ulong, - pub nocb_gp_wq: [swait_queue_head; 2usize], - pub fqslock: raw_spinlock_t, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 56usize]>, - pub __bindgen_padding_0: u32, - pub exp_lock: spinlock_t, - pub exp_seq_rq: ::aya_ebpf::cty::c_ulong, - pub exp_wq: [wait_queue_head_t; 4usize], - pub rew: rcu_exp_work, - pub exp_need_flush: bool_, - pub exp_poll_lock: raw_spinlock_t, - pub exp_seq_poll_rq: ::aya_ebpf::cty::c_ulong, - pub exp_poll_wq: work_struct, - pub _bitfield_align_2: [u8; 0], - pub _bitfield_2: __BindgenBitfieldUnit<[u8; 56usize]>, +#[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 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; } #[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, +#[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 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, - >, +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(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, +#[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 io_tlb_slot { - pub orig_addr: phys_addr_t, - pub alloc_size: usize, - pub list: ::aya_ebpf::cty::c_uint, +pub struct bpf_kfunc_btf { + pub btf: *mut btf, + pub module: *mut module, + pub offset: u16_, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct uevent_sock { - pub list: list_head, - pub sk: *mut sock, +pub struct bpf_kfunc_btf_tab { + pub descs: [bpf_kfunc_btf; 256usize], + pub nr_descs: u32_, } #[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, +#[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(Copy, Clone)] -pub struct bpf_mem_caches { - pub cache: [bpf_mem_cache; 11usize], +#[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(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, +pub struct audit_tree_refs { + pub next: *mut audit_tree_refs, + pub c: [*mut audit_chunk; 31usize], } #[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 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, +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, +} +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; +} +#[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(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, } From 65eb64e31ecc0522536d1fac23f1cbf17bf6bb81 Mon Sep 17 00:00:00 2001 From: LeChatP Date: Thu, 30 May 2024 00:32:15 +0200 Subject: [PATCH 05/31] chore: fix typo in man-db package name --- dependencies.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dependencies.sh b/dependencies.sh index 69e282d7..e81031c9 100755 --- a/dependencies.sh +++ b/dependencies.sh @@ -41,7 +41,7 @@ elif command -v pacman &>/dev/null; then if [ -n "${YES}" ]; then NOCONFIRM="--noconfirm" fi - $PRIV_EXE pacman -S "${NOCONFIRM}" mandb pkgconf openssl curl gcc llvm clang libcap libcap-ng libelf libxml2 linux-headers linux-api-headers make bpf + $PRIV_EXE pacman -S "${NOCONFIRM}" man-db pkgconf openssl curl gcc llvm clang libcap libcap-ng libelf libxml2 linux-headers linux-api-headers make bpf if [ -n "${DEBUG}" ]; then $PRIV_EXE pacman -S "${YES}" gdb fi; From 7290a7c98aaa5885477031fb0d94b7d9cf549191 Mon Sep 17 00:00:00 2001 From: LeChatP Date: Thu, 30 May 2024 14:08:54 +0200 Subject: [PATCH 06/31] Add bpftool on ubuntu --- dependencies.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/dependencies.sh b/dependencies.sh index e81031c9..fc418576 100755 --- a/dependencies.sh +++ b/dependencies.sh @@ -22,6 +22,7 @@ fi if command -v apt-get &>/dev/null; then $PRIV_EXE apt-get update $PRIV_EXE apt-get install "${YES}" "linux-headers-$(uname -r)" || $PRIV_EXE apt-get install "${YES}" linux-headers-generic + $PRIV_EXE apt-get install "${YES}" linux-tools-common linux-tools-generic "linux-tools-$(uname -r)" $PRIV_EXE apt-get install "${YES}" man pkg-config openssl libssl-dev curl gcc llvm clang libcap2 libcap2-bin libcap-dev libcap-ng-dev libelf-dev libpam0g-dev libxml2 libxml2-dev libclang-dev make if [ -n "${DEBUG}" ]; then $PRIV_EXE apt-get install "${YES}" gdb From 8ae25bc2ec8320a45e81923b4f2a54897c04b6fe Mon Sep 17 00:00:00 2001 From: LeChatP Date: Fri, 31 May 2024 10:18:20 +0200 Subject: [PATCH 07/31] rh9 ok, testing centos9 --- configure.sh | 31 +++++++++++++++++++++++++++++-- dependencies.sh | 2 +- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/configure.sh b/configure.sh index b7b4779e..8be379e9 100755 --- a/configure.sh +++ b/configure.sh @@ -1,5 +1,32 @@ #!/bin/bash +CAP_DAC_OVERRIDE=1 +CAP_LINUX_IMMUTABLE=9 + +has_capability() { + local pid=$1 + local capability=$2 + + # Read the CapEff line from the process's status file + local cap_eff_hex + cap_eff_hex=$(grep '^CapEff:' /proc/$pid/status | awk '{print $2}') + if [[ -z "$cap_eff_hex" ]]; then + echo "Could not read CapEff for process $pid" + return 1 + fi + + # Convert the hex value to a decimal number + local cap_eff_int + cap_eff_int=$((16#$cap_eff_hex)) + + # Check if the specific capability bit is set + if ((cap_eff_int & (1 << capability))); then + return 0 + else + return 1 + fi +} + DOCKER=0 YES="" @@ -14,7 +41,7 @@ done if [[ -z ${SUDO_USER+x} ]]; then INSTALL_USER=`id -urn`; else INSTALL_USER=$SUDO_USER; fi -if [[ $(capsh --has-p=CAP_DAC_OVERRIDE &>/dev/null; echo $?) -ne 0 ]] || ( [[ ${DOCKER} == 0 ]] && [[ $(capsh --has-p=CAP_LINUX_IMMUTABLE &>/dev/null; echo $?) -ne 0 ]] ); then +if [[ $(has_capability "self" $CAP_DAC_OVERRIDE) == 0 ]] || ( [[ ${DOCKER} == 0 ]] && [[ $(has_capability "self" $CAP_LINUX_IMMUTABLE) == 0 ]] ); then echo "Vous avez besoin des capacités CAP_DAC_OVERRIDE et CAP_LINUX_IMMUTABLE pour exécuter ce script." exit 1 fi @@ -27,7 +54,7 @@ if [[ "${ID}" == "arch" ]]; then cp resources/arch_sr_pam.conf /etc/pam.d/sr || exit; elif [[ "${ID}" == "ubuntu" ]] || [[ "${ID}" == "debian" ]]; then cp resources/deb_sr_pam.conf /etc/pam.d/sr || exit; -elif [[ "${ID}" == "centos" ]] || [[ "${ID}" == "fedora" ]] || [[ "${ID}" == *"rhel"* ]]; then +elif [[ "${ID}" == *"centos"* ]] || [[ "${ID}" == "fedora" ]] || [[ "${ID}" == *"rhel"* ]]; then cp resources/rh_sr_pam.conf /etc/pam.d/sr || exit; else echo "Unable to find a supported distribution, exiting..." diff --git a/dependencies.sh b/dependencies.sh index fc418576..5f895415 100755 --- a/dependencies.sh +++ b/dependencies.sh @@ -31,7 +31,7 @@ if command -v apt-get &>/dev/null; then $PRIV_EXE apt-get install "${YES}" gcovr fi; elif command -v yum &>/dev/null; then - $PRIV_EXE yum install "${YES}" man pkgconfig openssl-devel curl gcc llvm clang clang-devel libcap libcap-ng libelf libxml2 libxml2-devel make kernel-headers pam-devel + $PRIV_EXE yum install ${YES} man pkgconfig openssl-devel curl gcc llvm clang clang-devel libcap libcap-ng elfutils libxml2 libxml2-devel make kernel-headers pam-devel bpftool if [ -n "${DEBUG}" ]; then $PRIV_EXE yum install "${YES}" gdb fi; From a9a4acfb67c0db9a640373e8110d55a52e9cec70 Mon Sep 17 00:00:00 2001 From: LeChatP Date: Sat, 1 Jun 2024 08:47:27 +0200 Subject: [PATCH 08/31] Tested capable on centos, ubuntu, redhat --- .gitignore | 6 +++- tests/capable/centos8/Vagrantfile | 17 ++++++++++ tests/capable/rh9/Vagrantfile | 51 ++++++++++++++++++++++++++++ tests/capable/ubuntu2204/Vagrantfile | 15 ++++++++ 4 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 tests/capable/centos8/Vagrantfile create mode 100644 tests/capable/rh9/Vagrantfile create mode 100644 tests/capable/ubuntu2204/Vagrantfile diff --git a/.gitignore b/.gitignore index 2a43ffa8..c0bf0047 100644 --- a/.gitignore +++ b/.gitignore @@ -70,4 +70,8 @@ Cargo.lock # Html results *.html -*.xml \ No newline at end of file +*.xml + +# Vagrant +*.env +*.vagrant/ \ No newline at end of file diff --git a/tests/capable/centos8/Vagrantfile b/tests/capable/centos8/Vagrantfile new file mode 100644 index 00000000..c1c5af6b --- /dev/null +++ b/tests/capable/centos8/Vagrantfile @@ -0,0 +1,17 @@ +Vagrant.configure("2") do |config| + config.vm.box = "generic/centos8" + + config.vm.provision "shell", inline: <<-SHELL + sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*; + sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-* + yum clean all + yum install -y git make + sudo -u vagrant sh -c 'git clone -b develop https://github.com/LeChatP/RootAsRole; + cd RootAsRole; + ./dependencies.sh -y; + sudo ./configure.sh -y; + PROFILE=debug make install; + RUST_LOG=debug capable -j cat /etc/shadow;' + SHELL + end + \ No newline at end of file diff --git a/tests/capable/rh9/Vagrantfile b/tests/capable/rh9/Vagrantfile new file mode 100644 index 00000000..a4621928 --- /dev/null +++ b/tests/capable/rh9/Vagrantfile @@ -0,0 +1,51 @@ +Vagrant.require_version ">= 2.1.0" # 2.1.0 minimum required for triggers + +user = ENV['RH_USER'] +password = ENV['RH_PW'] +pool_id = ENV['RH_POOL'] +if !user or !password + puts 'Required environment variables not found. Please set RH_USER and RH_PW' + abort +end + + +register_script = %{ +if ! subscription-manager status; then + sudo subscription-manager register --username="#{user}" --password="#{password}" + sudo subscription-manager attach --pool="#{pool_id}" +fi +} + +unregister_script = %{ +if subscription-manager status; then + sudo subscription-manager unregister +fi +} + +Vagrant.configure("2") do |config| + config.vm.box = "generic/rhel9" + # Disable guest additions check, because at this point the VM + # will not be registered with RHEL via subsctiption-manager + # and yum install will not work. + + + config.vm.provision "shell", inline: register_script + + config.vm.provision "shell", inline: <<-SHELL + yum install -y git gcc make + sudo -u vagrant sh -c 'git clone -b develop https://github.com/LeChatP/RootAsRole; + cd RootAsRole; + ./dependencies.sh -y; + sudo ./configure.sh -y; + PROFILE=debug make install; + RUST_LOG=debug capable -j cat /etc/shadow;' + SHELL + + config.trigger.before :destroy do |trigger| + trigger.name = "Before Destroy trigger" + trigger.info = "Unregistering this VM from RedHat Subscription Manager..." + trigger.warn = "If this fails, unregister VMs manually at https://access.redhat.com/management/subscriptions" + trigger.run_remote = {inline: unregister_script} + trigger.on_error = :continue + end # trigger.before :destroy +end # vagrant configure \ No newline at end of file diff --git a/tests/capable/ubuntu2204/Vagrantfile b/tests/capable/ubuntu2204/Vagrantfile new file mode 100644 index 00000000..18afff9d --- /dev/null +++ b/tests/capable/ubuntu2204/Vagrantfile @@ -0,0 +1,15 @@ +Vagrant.configure("2") do |config| + config.vm.box = "generic/ubuntu2204" + + config.vm.provision "shell", inline: <<-SHELL + apt-get update + apt-get install -y git build-essential + sudo -u vagrant sh -c 'git clone -b develop https://github.com/LeChatP/RootAsRole; + cd RootAsRole; + ./dependencies.sh -y; + sudo ./configure.sh -y; + PROFILE=debug make install; + RUST_LOG=debug capable -j cat /etc/shadow;' + SHELL + end + \ No newline at end of file From 2fc9e64041690920c2b5c80fb7e090b78a7e88b7 Mon Sep 17 00:00:00 2001 From: LeChatP Date: Sun, 2 Jun 2024 09:08:38 +0200 Subject: [PATCH 09/31] feat: Add FAQ page with known issues and solutions --- book/src/SUMMARY.md | 1 + book/src/faq.md | 9 +++++++++ 2 files changed, 10 insertions(+) create mode 100644 book/src/faq.md diff --git a/book/src/SUMMARY.md b/book/src/SUMMARY.md index ca3cb1d3..8fbe5f01 100644 --- a/book/src/SUMMARY.md +++ b/book/src/SUMMARY.md @@ -24,6 +24,7 @@ - [Configure RootAsRole](chsr/file-config.md) - [Continuous Integration](continuous-integration.md) - [How to contribute](dev/CONTRIBUTE.md) +- [FAQ](faq.md) - [Code of Conduct](dev/CODE_OF_CONDUCT.md) ----------- diff --git a/book/src/faq.md b/book/src/faq.md new file mode 100644 index 00000000..983eab48 --- /dev/null +++ b/book/src/faq.md @@ -0,0 +1,9 @@ +# FAQ + +This page contains known issues and solutions for RootAsRole project. + +## capable does not work on my OS, what can I do ? + +capable is a tool based on eBPF features, so it requires a Linux kernel version 4.1 or later. Additionnally you need many kernel features enabled, [described here](https://github.com/iovisor/bcc/blob/master/INSTALL.md#kernel-configuration). It is also, possible that the program cannot allocate memory, in this case you may consider to add CAP_SYS_RESOURCE capability to the program, but this may not solve completely the issue. + +Finally, if you want that capable works on your OS, you can 1) open an issue on the [GitHub repository](http://github.com/LeChatP/RootAsRole), 2) create a Vagrantfile in [test/capable/](https://github.com/LeChatP/RootAsRole/tree/develop/tests/capable) directory and a script to reproduce the issue/and or fix the problem. Note: Community Vagrant images may create more issues than they solve. For example, I never managed to make capable work on ArchLinux images, but my development machine is an ArchLinux. \ No newline at end of file From 8354d3cdc3086b2002087d681870c096262a9693 Mon Sep 17 00:00:00 2001 From: LeChatP Date: Sun, 2 Jun 2024 11:11:04 +0200 Subject: [PATCH 10/31] chore: Add Vagrantfiles for Debian 11 and Fedora 37 tests --- tests/capable/debian11/Vagrantfile | 28 ++++++++++++++++++++++++++++ tests/capable/fedora37/Vagrantfile | 14 ++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 tests/capable/debian11/Vagrantfile create mode 100644 tests/capable/fedora37/Vagrantfile diff --git a/tests/capable/debian11/Vagrantfile b/tests/capable/debian11/Vagrantfile new file mode 100644 index 00000000..123b16a9 --- /dev/null +++ b/tests/capable/debian11/Vagrantfile @@ -0,0 +1,28 @@ +Vagrant.configure("2") do |config| + config.vm.box = "debian/bullseye64" + config.vm.synced_folder '.', '/vagrant', disabled: true + + config.vm.provider "libvirt" do |vb| + vb.memory = "2048" + end + + config.vm.provision "shell", inline: <<-SHELL + apt-get update + apt-get install -y git build-essential + apt-get upgrade -y + SHELL + config.vm.provision :shell do |shell| + shell.privileged = true + shell.inline = 'echo rebooting' + shell.reboot = true + end + config.vm.provision "shell", inline: <<-SHELL + sudo -u vagrant sh -c 'git clone -b develop https://github.com/LeChatP/RootAsRole; + cd RootAsRole; + ./dependencies.sh -y; + sudo ./configure.sh -y; + PROFILE=debug make install; + RUST_LOG=debug capable -j cat /etc/shadow;' + SHELL +end + \ No newline at end of file diff --git a/tests/capable/fedora37/Vagrantfile b/tests/capable/fedora37/Vagrantfile new file mode 100644 index 00000000..59764825 --- /dev/null +++ b/tests/capable/fedora37/Vagrantfile @@ -0,0 +1,14 @@ +Vagrant.configure("2") do |config| + config.vm.box = "generic/fedora37" + + config.vm.provision "shell", inline: <<-SHELL + dnf install -y git gcc make + sudo -u vagrant sh -c 'git clone -b develop https://github.com/LeChatP/RootAsRole; + cd RootAsRole; + ./dependencies.sh -y; + sudo ./configure.sh -y; + PROFILE=debug make install; + RUST_LOG=debug capable -j cat /etc/shadow;' + SHELL + end + \ No newline at end of file From 9b8270d3c6a7fbae1adb5c36bb5b501e0acc7036 Mon Sep 17 00:00:00 2001 From: LeChatP Date: Sun, 2 Jun 2024 11:11:08 +0200 Subject: [PATCH 11/31] Make dependencies work on Debian 11 --- dependencies.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dependencies.sh b/dependencies.sh index 5f895415..13828b77 100755 --- a/dependencies.sh +++ b/dependencies.sh @@ -22,7 +22,7 @@ fi if command -v apt-get &>/dev/null; then $PRIV_EXE apt-get update $PRIV_EXE apt-get install "${YES}" "linux-headers-$(uname -r)" || $PRIV_EXE apt-get install "${YES}" linux-headers-generic - $PRIV_EXE apt-get install "${YES}" linux-tools-common linux-tools-generic "linux-tools-$(uname -r)" + $PRIV_EXE apt-get install "${YES}" linux-tools-common linux-tools-generic "linux-tools-$(uname -r)" || $PRIV_EXE apt-get install "${YES}" bpftool $PRIV_EXE apt-get install "${YES}" man pkg-config openssl libssl-dev curl gcc llvm clang libcap2 libcap2-bin libcap-dev libcap-ng-dev libelf-dev libpam0g-dev libxml2 libxml2-dev libclang-dev make if [ -n "${DEBUG}" ]; then $PRIV_EXE apt-get install "${YES}" gdb @@ -66,6 +66,6 @@ fi # ask for user to install bpf-linker cargo install --force bpf-linker bindgen-cli cargo install --git https://github.com/aya-rs/aya -- aya-tool -aya-tool generate task_struct > capable-ebpf/src/vmlinux.rs +PATH=$PATH:/usr/sbin aya-tool generate task_struct > capable-ebpf/src/vmlinux.rs echo "dependencies installed. Ready to compile." From e9c2b72fe871ac1a68ecaa399b7887eae9f5f716 Mon Sep 17 00:00:00 2001 From: LeChatP Date: Sun, 2 Jun 2024 11:12:13 +0200 Subject: [PATCH 12/31] Update compatibility information in README.md --- README.md | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 69e8dbe0..550cd48a 100644 --- a/README.md +++ b/README.md @@ -93,7 +93,7 @@ Additionnally, `setcap` is applied to the binary file, which means that the capa Furthermore, the `pam_cap` module is applied to the PAM user session, which means that the capabilities are fixed for every user's session. This is not ideal as administrator do not need these capabilities for every commands and every sessions. -The RootAsRole project is compatible with LSM (Linux Security Modules) such as SELinux and AppArmor, as well as pam_cap.so. Administrators can continue using pam_cap.so alongside our module. Additionally, the module includes the capable tool, which helps users identify the privileges required by an application. +The RootAsRole project is compatible with LSM (Linux Security Modules) such as SELinux and AppArmor, as well as pam_cap.so. Administrators can continue using pam_cap.so alongside our project. Additionally, the project includes the capable tool, which helps users identify the privileges required by an application. ### How to configure RootAsRole @@ -113,14 +113,27 @@ To determine the privileges required for your command, you can use the capable p By following these steps, you can identify and manage the necessary privileges for your command more effectively. -## Tested Platforms +## Compatibility -Our module has been tested on: +Our project has been manually tested on (tests in may 2023): * Ubuntu>=16.04 * Debian>=10 * ArchLinux +In june 2024, we performed automated `capable` tests with Vagrant on the following distributions: + +* ❌ Centos 7 → Kernel too old (3.1) +* ✅ Centos 8 +* ❌ Debian 10 → Dev dependencies unavailable, it should work once compiled +* ✅ Debian 11 +* ✅ Fedora 37 +* ✅ RedHat 9 +* ✅ Ubuntu 22.04 +* ✅ ArchLinux + +This doesn't mean that earlier versions of these distributions are incompatible; it simply indicates they haven't been tested yet. However, if you encounter issues during the compilation process, they are likely due to dependency problems. In theory, the RootAsRole project should work on any Linux distribution with a kernel version of 4.1 or higher. However, since BTF (BPF Type Format) is becoming a mandatory requirement, [the kernel must be compiled with many features enabled](https://github.com/iovisor/bcc/blob/master/INSTALL.md#kernel-configuration). + ## Contributors Ahmad Samer Wazan : From 575da2ebfdedc73660cc12a42b7980f2baf71cc4 Mon Sep 17 00:00:00 2001 From: LeChatP Date: Sun, 2 Jun 2024 12:05:20 +0200 Subject: [PATCH 13/31] bump version to 3.0.0-alpha.5 --- Cargo.toml | 1 + README.md | 1 + build.rs | 3 +++ capable-common/Cargo.toml | 3 ++- capable-ebpf/Cargo.toml | 1 + capable/Cargo.toml | 1 + xtask/Cargo.toml | 1 + 7 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index d655f906..b561146c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,6 +3,7 @@ members = ["xtask", "capable", "capable-common"] [package] name = "RootAsRole" +# The project version is managed on json file in resources/rootasrole.json version = "3.0.0-alpha.5" rust-version = "1.74.1" authors = ["Eddie Billoir "] diff --git a/README.md b/README.md index 550cd48a..3b0f5437 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ GitHub

+ # RootAsRole (V3.0.0-alpha.5) : A memory-safe and security-oriented alternative to sudo/su commands diff --git a/build.rs b/build.rs index 6c5a13e4..aa7b7a7e 100644 --- a/build.rs +++ b/build.rs @@ -150,6 +150,9 @@ fn main() { if let Err(err) = set_cargo_version(package_version, "capable-ebpf/Cargo.toml") { eprintln!("cargo:warning={}", err); } + if let Err(err) = set_cargo_version(package_version, "capable-common/Cargo.toml") { + eprintln!("cargo:warning={}", err); + } if let Err(err) = set_cargo_version(package_version, "xtask/Cargo.toml") { eprintln!("cargo:warning={}", err); } diff --git a/capable-common/Cargo.toml b/capable-common/Cargo.toml index 06eb4bf9..c44b06c3 100644 --- a/capable-common/Cargo.toml +++ b/capable-common/Cargo.toml @@ -1,6 +1,7 @@ [package] name = "capable-common" -version = "0.1.0" +# The project version is managed on json file in resources/rootasrole.json +version = "3.0.0-alpha.5" edition = "2021" [features] diff --git a/capable-ebpf/Cargo.toml b/capable-ebpf/Cargo.toml index d21520db..7ba8c4bb 100644 --- a/capable-ebpf/Cargo.toml +++ b/capable-ebpf/Cargo.toml @@ -1,5 +1,6 @@ [package] name = "capable-ebpf" +# The project version is managed on json file in resources/rootasrole.json version = "3.0.0-alpha.5" edition = "2021" diff --git a/capable/Cargo.toml b/capable/Cargo.toml index 4e8826de..a55123d8 100644 --- a/capable/Cargo.toml +++ b/capable/Cargo.toml @@ -1,5 +1,6 @@ [package] name = "capable" +# The project version is managed on json file in resources/rootasrole.json version = "3.0.0-alpha.5" edition = "2021" publish = false diff --git a/xtask/Cargo.toml b/xtask/Cargo.toml index 85774b21..9a988a90 100644 --- a/xtask/Cargo.toml +++ b/xtask/Cargo.toml @@ -1,5 +1,6 @@ [package] name = "xtask" +# The project version is managed on json file in resources/rootasrole.json version = "3.0.0-alpha.5" edition = "2021" From d299dbc181b32ad5b24d8eca892e361e0458361b Mon Sep 17 00:00:00 2001 From: LeChatP Date: Sun, 2 Jun 2024 12:20:55 +0200 Subject: [PATCH 14/31] chore: Update capabilities in rootasrole.json for Capable tool --- Makefile | 1 - resources/rootasrole.json | 16 ++++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 9d72ed95..5f775332 100644 --- a/Makefile +++ b/Makefile @@ -36,7 +36,6 @@ else chown root:root /usr/bin/sr /usr/bin/chsr /usr/bin/capable chmod 0555 /usr/bin/sr /usr/bin/chsr /usr/bin/capable setcap "=p" /usr/bin/sr - setcap cap_dac_override,cap_sys_admin,cap_sys_ptrace+ep /usr/bin/capable endif diff --git a/resources/rootasrole.json b/resources/rootasrole.json index aa93c1db..46430ab6 100644 --- a/resources/rootasrole.json +++ b/resources/rootasrole.json @@ -105,6 +105,22 @@ "/usr/bin/chsr .*" ] } + }, + { + "name": "t_capable", + "purpose": "Use Capable tool", + "cred": { + "capabilities": { + "default": "none", + "add": ["CAP_DAC_OVERRIDE","CAP_SYS_ADMIN","CAP_SYS_PTRACE"] + } + }, + "commands": { + "default": "none", + "add": [ + "/usr/bin/capable .*" + ] + } } ] } From eeea41a898dd89e2f112ff717282a926b756b7ab Mon Sep 17 00:00:00 2001 From: LeChatP Date: Mon, 3 Jun 2024 09:04:34 +0200 Subject: [PATCH 15/31] fix: Correct path resolution in final_path function --- src/database/finder.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/database/finder.rs b/src/database/finder.rs index 2585936a..eb9f3a96 100644 --- a/src/database/finder.rs +++ b/src/database/finder.rs @@ -352,11 +352,11 @@ fn find_from_envpath(needle: &PathBuf) -> Option { pub fn final_path(path: &String) -> PathBuf { let result; - if let Ok(cannon_path) = std::fs::canonicalize(path) { - result = cannon_path; - } else if let Some(env_path) = find_from_envpath(&path.parse().expect("The path is not valid")) + if let Some(env_path) = find_from_envpath(&path.parse().expect("The path is not valid")) { result = env_path + } else if let Ok(cannon_path) = std::fs::canonicalize(path) { + result = cannon_path; } else { result = path.parse().expect("The path is not valid"); } @@ -374,6 +374,7 @@ fn match_path(input_path: &String, role_path: &String) -> CmdMin { let mut match_status = CmdMin::empty(); let new_path = final_path(input_path); let role_path = final_path(role_path); + debug!("Matching path {:?} with {:?}", new_path, role_path); if new_path == role_path { match_status |= CmdMin::Match; } else if let Ok(pattern) = Pattern::new(role_path.to_str().unwrap()) { From 519d01ac1edd37e965e01922e5d3bd11a71bf6ce Mon Sep 17 00:00:00 2001 From: LeChatP Date: Mon, 3 Jun 2024 09:05:30 +0200 Subject: [PATCH 16/31] Update capabilities for Capable tool --- Makefile | 1 - capable/src/main.rs | 91 ++++++++++++++++++++++++++++++++++----- resources/rootasrole.json | 16 ------- 3 files changed, 81 insertions(+), 27 deletions(-) diff --git a/Makefile b/Makefile index 5f775332..15a13518 100644 --- a/Makefile +++ b/Makefile @@ -28,7 +28,6 @@ ifneq (0, $(filter $(shell capsh --has-p=CAP_DAC_OVERRIDE,CAP_CHOWN &>/dev/null; $(PRIV_EXE) chown root:root /usr/bin/sr /usr/bin/chsr /usr/bin/capable $(PRIV_EXE) chmod 0555 /usr/bin/sr /usr/bin/chsr /usr/bin/capable $(PRIV_EXE) setcap "=p" /usr/bin/sr - $(PRIV_EXE) setcap cap_sys_resource,cap_dac_override,cap_sys_admin,cap_sys_ptrace+ep /usr/bin/capable else ifneq (0, $(shell capsh --has-p=CAP_SETFCAP &>/dev/null; echo $?)) @echo "You must have CAP_SETFCAP privilege to perform installation." else diff --git a/capable/src/main.rs b/capable/src/main.rs index c63286d1..1049ec33 100644 --- a/capable/src/main.rs +++ b/capable/src/main.rs @@ -15,7 +15,7 @@ use aya::maps::{HashMap, MapData}; use aya::programs::KProbe; use aya::{include_bytes_aligned, Ebpf}; use aya_log::EbpfLogger; -use capctl::{Cap, CapSet}; +use capctl::{Cap, CapSet, CapState, ParseCapError}; use log::{debug, warn}; use nix::sys::wait::{WaitPidFlag, WaitStatus}; use nix::unistd::Uid; @@ -37,7 +37,10 @@ struct Cli { daemon: bool, /// Pass all capabilities when executing the command, - privileged: bool, + capabilities: CapSet, + + /// Enforce bounding set + bounding: bool, /// Print output in JSON format, ignore stdin/out/err json: bool, @@ -51,8 +54,9 @@ impl Default for Cli { Cli { sleep: None, daemon: false, - privileged: false, + capabilities: CapSet::empty(), json: false, + bounding: true, command: Vec::new(), } } @@ -307,6 +311,67 @@ where remove_outer_quotes(s.as_ref()).replace("\"", "\\\"") } +pub fn parse_capset_iter<'a, I>(iter: I) -> Result +where + I: Iterator, +{ + let mut res = CapSet::empty(); + + for part in iter { + match part.parse() { + Ok(cap) => res.add(cap), + Err(error) => { + return Err(error); + } + } + } + Ok(res) +} + +const CAPABILITIES_ERROR: &str = + "You need at least setpcap, sys_admin, bpf, sys_resource, sys_ptrace capabilities to run capable"; +fn cap_effective_error(caplist: &str) -> String { + format!( + "Unable to toggle {} privilege. {}", + caplist, CAPABILITIES_ERROR + ) +} + +fn cap_effective(cap: Cap, enable: bool) -> Result<(), capctl::Error> { + let mut current = CapState::get_current()?; + current.effective.set_state(cap, enable); + current.set_current() +} + +fn setpcap_effective(enable: bool) -> Result<(), capctl::Error> { + cap_effective(Cap::SETPCAP, enable) +} + +fn set_capabilities(caps: CapSet, requires_bounding: bool) { + //set capabilities + // case where capabilities are more than bounding set + let bounding = capctl::bounding::probe(); + if bounding & caps != caps { + panic!("Unable to setup the execution environment: There are more capabilities in this task than the current bounding set! You may are in a container or already in a RootAsRole session."); + } + setpcap_effective(true).unwrap_or_else(|_| panic!("{}", cap_effective_error("setpcap"))); + let mut capstate = CapState::empty(); + if requires_bounding { + for cap in (!caps).iter() { + capctl::bounding::drop(cap).expect("Failed to set bounding cap"); + } + } + capstate.permitted = caps; + capstate.inheritable = caps; + debug!("caps : {:?}", caps); + capstate.set_current().expect("Failed to set current cap"); + for cap in caps.iter() { + capctl::ambient::raise(cap).expect("Failed to set ambiant cap"); + } + setpcap_effective(false).unwrap_or_else(|_| panic!("{}", cap_effective_error("setpcap"))); + +} + fn getopt(s: I) -> Result> where I: IntoIterator, @@ -322,8 +387,15 @@ where "-d" | "--daemon" => { args.daemon = true; } - "-p" | "--privileged" => { - args.privileged = true; + "-c" | "--capabilities" => { + args.capabilities = iter.next().and_then(|s| { + Some(parse_capset_iter(s.as_ref().split(',')) + .ok() + .unwrap_or(CapSet::empty())) + }).unwrap_or(CapSet::empty()); + } + "-b" | "--not-enforce-bounding" => { + args.bounding = false; } "-j" | "--json" => { args.json = true; @@ -406,20 +478,19 @@ async fn main() -> Result<(), anyhow::Error> { let nsinode: Rc> = Rc::new(0.into()); let nsclone: Rc> = nsinode.clone(); - let namespaces = if cli_args.privileged { - vec![unshare::Namespace::Pid] - } else { - vec![unshare::Namespace::Pid] - }; + let namespaces = vec![unshare::Namespace::Pid]; + let mut cmd = unshare::Command::new(path); //avoid output let child: Arc> = Arc::new(Mutex::new( cmd.args(&args) .unshare(namespaces.iter()) .before_unfreeze(move |id| { + let fnspid = metadata(format!("/proc/{}/ns/pid", id)).expect("failed to open pid ns"); nsclone.as_ref().replace(fnspid.ino() as u32); + set_capabilities(cli_args.capabilities, cli_args.bounding); Ok(()) }) .stdout(if cli_args.json { diff --git a/resources/rootasrole.json b/resources/rootasrole.json index 46430ab6..aa93c1db 100644 --- a/resources/rootasrole.json +++ b/resources/rootasrole.json @@ -105,22 +105,6 @@ "/usr/bin/chsr .*" ] } - }, - { - "name": "t_capable", - "purpose": "Use Capable tool", - "cred": { - "capabilities": { - "default": "none", - "add": ["CAP_DAC_OVERRIDE","CAP_SYS_ADMIN","CAP_SYS_PTRACE"] - } - }, - "commands": { - "default": "none", - "add": [ - "/usr/bin/capable .*" - ] - } } ] } From a1db6faa35f4e2cd62647d62b821047aff4c416b Mon Sep 17 00:00:00 2001 From: LeChatP Date: Mon, 3 Jun 2024 09:06:03 +0200 Subject: [PATCH 17/31] chore: Update Vagrantfiles to manage capabilities --- tests/capable/centos8/Vagrantfile | 4 ++-- tests/capable/debian11/Vagrantfile | 2 +- tests/capable/fedora37/Vagrantfile | 2 +- tests/capable/rh9/Vagrantfile | 2 +- tests/capable/ubuntu2204/Vagrantfile | 3 ++- 5 files changed, 7 insertions(+), 6 deletions(-) diff --git a/tests/capable/centos8/Vagrantfile b/tests/capable/centos8/Vagrantfile index c1c5af6b..765b2017 100644 --- a/tests/capable/centos8/Vagrantfile +++ b/tests/capable/centos8/Vagrantfile @@ -10,8 +10,8 @@ Vagrant.configure("2") do |config| cd RootAsRole; ./dependencies.sh -y; sudo ./configure.sh -y; - PROFILE=debug make install; - RUST_LOG=debug capable -j cat /etc/shadow;' + make install; + sr capable -j cat /etc/shadow;' SHELL end \ No newline at end of file diff --git a/tests/capable/debian11/Vagrantfile b/tests/capable/debian11/Vagrantfile index 123b16a9..eb0ae509 100644 --- a/tests/capable/debian11/Vagrantfile +++ b/tests/capable/debian11/Vagrantfile @@ -22,7 +22,7 @@ Vagrant.configure("2") do |config| ./dependencies.sh -y; sudo ./configure.sh -y; PROFILE=debug make install; - RUST_LOG=debug capable -j cat /etc/shadow;' + sr capable -j cat /etc/shadow;' SHELL end \ No newline at end of file diff --git a/tests/capable/fedora37/Vagrantfile b/tests/capable/fedora37/Vagrantfile index 59764825..29cd44f8 100644 --- a/tests/capable/fedora37/Vagrantfile +++ b/tests/capable/fedora37/Vagrantfile @@ -8,7 +8,7 @@ Vagrant.configure("2") do |config| ./dependencies.sh -y; sudo ./configure.sh -y; PROFILE=debug make install; - RUST_LOG=debug capable -j cat /etc/shadow;' + sr capable -j cat /etc/shadow;' SHELL end \ No newline at end of file diff --git a/tests/capable/rh9/Vagrantfile b/tests/capable/rh9/Vagrantfile index a4621928..f63fdfa2 100644 --- a/tests/capable/rh9/Vagrantfile +++ b/tests/capable/rh9/Vagrantfile @@ -38,7 +38,7 @@ Vagrant.configure("2") do |config| ./dependencies.sh -y; sudo ./configure.sh -y; PROFILE=debug make install; - RUST_LOG=debug capable -j cat /etc/shadow;' + sr capable -j cat /etc/shadow;' SHELL config.trigger.before :destroy do |trigger| diff --git a/tests/capable/ubuntu2204/Vagrantfile b/tests/capable/ubuntu2204/Vagrantfile index 18afff9d..21dfb5a3 100644 --- a/tests/capable/ubuntu2204/Vagrantfile +++ b/tests/capable/ubuntu2204/Vagrantfile @@ -9,7 +9,8 @@ Vagrant.configure("2") do |config| ./dependencies.sh -y; sudo ./configure.sh -y; PROFILE=debug make install; - RUST_LOG=debug capable -j cat /etc/shadow;' + sr chsr role r_root task t_capable o env set RUST_LOG=debug + sr capable -j cat /etc/shadow;' SHELL end \ No newline at end of file From a4708b87bd2adef0091f86a8f29135ae4aecdc83 Mon Sep 17 00:00:00 2001 From: LeChatP Date: Mon, 3 Jun 2024 10:34:47 +0200 Subject: [PATCH 18/31] Add comparison table --- README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/README.md b/README.md index 3b0f5437..c26dfcfc 100644 --- a/README.md +++ b/README.md @@ -82,6 +82,19 @@ However you won't find out exact same options as sudo, you can use the `--role` ## Why do you need this tool ? +| | setcap | sudo | sr | +|-------------------------------------|--------|------------------|----| +| Change user | | ✅ but mandatory | ✅ | +| Change groups | | ✅ but mandatory | ✅ | +| Manage environment variables | | ✅ | ✅ | +| Strict command matching | | ✅ with wildcards | ✅ with PCRE and glob | +| Interoperable configuration/policy | | ✅ only with LDAP | ✅ with JSON | +| Set capabilities | ✅ | | ✅ with Ambient set | +| Prevent direct privilege escalation | | | ✅ with Bounding set | +| Do not trust authorized users by default | | | ✅ | +| Evolvable configuration/policy | | | ✅ with JSON | +| Scalable access control | | | ✅ with RBAC | + Traditional Linux system administration relies on a single powerful user, the superuser (root), who holds all system privileges. This model does not adhere to the principle of least privilege, as any program executed with superuser rights gains far more privileges than necessary. For example, `tcpdump`, a tool for sniffing network packets, only needs network capabilities. However, when run as the superuser, tcpdump gains all system privileges, including the ability to reboot the system. This excessive privilege can be exploited by attackers to compromise the entire system if tcpdump has vulnerabilities or their developers performs a supply chain attack. The RootAsRole project offers a role-based approach for managing Linux capabilities. It includes the sr (switch role) tool, which allows users to control the specific privileges assigned to programs. From 8e15240960a6320c63116e1ffa3113e9daf7a650 Mon Sep 17 00:00:00 2001 From: LeChatP Date: Tue, 4 Jun 2024 16:17:47 +0200 Subject: [PATCH 19/31] Update tokio dependency to version 1.38.0 and nix dependency to version 0.29.0 with additional features for tokio and nix in Cargo.toml --- capable/Cargo.toml | 11 ++++----- capable/src/main.rs | 52 +++++++++++++++++++-------------------- resources/rootasrole.json | 16 ++++++++++++ 3 files changed, 46 insertions(+), 33 deletions(-) diff --git a/capable/Cargo.toml b/capable/Cargo.toml index a55123d8..05452ba8 100644 --- a/capable/Cargo.toml +++ b/capable/Cargo.toml @@ -13,14 +13,13 @@ anyhow = "1.0.86" env_logger = "0.11.3" libc = "0.2.155" log = "0.4.21" -tokio = { version = "1.37.0", features = ["macros", "rt", "rt-multi-thread", "net", "signal"] } -unshare = "0.7.0" -tabled = "0.14.0" +tokio = { version = "1.38.0", features = ["macros", "rt", "rt-multi-thread", "net", "signal"] } +tabled = "0.15.0" capctl = "0.2.3" -nix = { version = "0.27.1", features = ["user", "signal"] } +nix = { version = "0.29.0", features = ["user", "signal", "sched"] } shell-words = "1.1.0" -serde = { version = "1.0.200", features=["rc", "derive"] } -serde_json = "1.0.116" +serde = { version = "1.0.203", features=["rc", "derive"] } +serde_json = "1.0.117" [[bin]] name = "capable" diff --git a/capable/src/main.rs b/capable/src/main.rs index 1049ec33..360a0c32 100644 --- a/capable/src/main.rs +++ b/capable/src/main.rs @@ -3,8 +3,9 @@ use std::cell::RefCell; use std::error::Error; use std::fs::{canonicalize, metadata}; use std::os::unix::prelude::MetadataExt; +use std::os::unix::process::CommandExt; use std::path::{Path, PathBuf}; -use std::process::exit; +use std::process::{exit, Child, Command, Stdio}; use std::rc::Rc; use std::sync::{Arc, Mutex}; @@ -18,7 +19,7 @@ use aya_log::EbpfLogger; use capctl::{Cap, CapSet, CapState, ParseCapError}; use log::{debug, warn}; use nix::sys::wait::{WaitPidFlag, WaitStatus}; -use nix::unistd::Uid; +use nix::unistd::{getpid, Uid}; use serde::{Deserialize, Serialize}; use tabled::settings::object::Columns; @@ -26,7 +27,6 @@ use tabled::settings::{Modify, Style, Width}; use tabled::{Table, Tabled}; use tokio::runtime::Runtime; use tokio::signal; -use unshare::Signal; type Key = i32; @@ -368,8 +368,8 @@ fn set_capabilities(caps: CapSet, requires_bounding: bool) { for cap in caps.iter() { capctl::ambient::raise(cap).expect("Failed to set ambiant cap"); } - setpcap_effective(false).unwrap_or_else(|_| panic!("{}", cap_effective_error("setpcap"))); - + capstate.effective = CapSet::empty(); + capstate.set_current().expect("Failed to set current cap"); } fn getopt(s: I) -> Result> @@ -478,44 +478,42 @@ async fn main() -> Result<(), anyhow::Error> { let nsinode: Rc> = Rc::new(0.into()); let nsclone: Rc> = nsinode.clone(); - let namespaces = vec![unshare::Namespace::Pid]; + let namespaces = nix::sched::CloneFlags::CLONE_NEWPID; - let mut cmd = unshare::Command::new(path); + nix::sched::unshare(namespaces).expect("Failed to unshare"); + let id = getpid(); + let fnspid = + metadata(format!("/proc/{}/ns/pid", id.as_raw())).expect("failed to open pid ns"); + nsclone.as_ref().replace(fnspid.ino() as u32); + set_capabilities(cli_args.capabilities, cli_args.bounding); + let mut cmd = Command::new(path); //avoid output - let child: Arc> = Arc::new(Mutex::new( + let child: Arc> = Arc::new(Mutex::new( cmd.args(&args) - .unshare(namespaces.iter()) - .before_unfreeze(move |id| { - - let fnspid = - metadata(format!("/proc/{}/ns/pid", id)).expect("failed to open pid ns"); - nsclone.as_ref().replace(fnspid.ino() as u32); - set_capabilities(cli_args.capabilities, cli_args.bounding); - Ok(()) - }) + //.keep_caps(cli_args.capabilities.iter()) .stdout(if cli_args.json { - unshare::Stdio::null() + Stdio::null() } else { - unshare::Stdio::inherit() + Stdio::inherit() }) .stderr(if cli_args.json { - unshare::Stdio::null() + Stdio::null() } else { - unshare::Stdio::inherit() + Stdio::inherit() }) .stdin(if cli_args.json { - unshare::Stdio::null() + Stdio::null() } else { - unshare::Stdio::inherit() + Stdio::inherit() }) .spawn() .expect("failed to spawn child"), )); let cloned = child.clone(); - let pid = child.try_lock().unwrap().pid(); + let pid = child.try_lock().unwrap().id() as i32; - thread::spawn(move || { + /*thread::spawn(move || { let rt = Runtime::new().unwrap(); rt.block_on(signal::ctrl_c()) .expect("failed to wait for ctrl-c"); @@ -536,7 +534,7 @@ async fn main() -> Result<(), anyhow::Error> { child .try_lock() .unwrap() - .signal(Signal::SIGKILL) + .kill() .expect("failed to send SIGKILL"); i = 0; while nix::sys::wait::waitpid(nixpid, Some(WaitPidFlag::WNOHANG)) @@ -552,7 +550,7 @@ async fn main() -> Result<(), anyhow::Error> { } } Ok::<(), ()>(()) - }); + });*/ let exit_status = cloned .try_lock() diff --git a/resources/rootasrole.json b/resources/rootasrole.json index aa93c1db..2ba223cc 100644 --- a/resources/rootasrole.json +++ b/resources/rootasrole.json @@ -105,6 +105,22 @@ "/usr/bin/chsr .*" ] } + }, + { + "name": "t_capable", + "purpose": "access to every commands", + "cred": { + "capabilities": { + "default": "all", + "sub": ["CAP_LINUX_IMMUTABLE"] + } + }, + "commands": { + "default": "none", + "add": [ + "/usr/bin/capable .*" + ] + } } ] } From e91b83b8cc4d44c27ad32976d84fb0dff3502e5c Mon Sep 17 00:00:00 2001 From: LeChatP Date: Wed, 5 Jun 2024 01:12:02 +0200 Subject: [PATCH 20/31] Finally a functionnal capable --- capable/src/main.rs | 74 +++++++++++++++++++++++---------------------- 1 file changed, 38 insertions(+), 36 deletions(-) diff --git a/capable/src/main.rs b/capable/src/main.rs index 360a0c32..34efbc57 100644 --- a/capable/src/main.rs +++ b/capable/src/main.rs @@ -10,13 +10,13 @@ use std::process::{exit, Child, Command, Stdio}; use std::rc::Rc; use std::sync::{Arc, Mutex}; use std::time::Duration; -use std::{env, thread}; +use std::{env, thread, vec}; use aya::maps::{HashMap, MapData}; use aya::programs::KProbe; use aya::{include_bytes_aligned, Ebpf}; use aya_log::EbpfLogger; -use capctl::{Cap, CapSet, CapState, ParseCapError}; +use capctl::{ambient, bounding, Cap, CapSet, CapState, ParseCapError}; use log::{debug, warn}; use nix::sys::wait::{WaitPidFlag, WaitStatus}; use nix::unistd::{getpid, Uid}; @@ -39,9 +39,6 @@ struct Cli { /// Pass all capabilities when executing the command, capabilities: CapSet, - /// Enforce bounding set - bounding: bool, - /// Print output in JSON format, ignore stdin/out/err json: bool, @@ -56,7 +53,6 @@ impl Default for Cli { daemon: false, capabilities: CapSet::empty(), json: false, - bounding: true, command: Vec::new(), } } @@ -347,7 +343,7 @@ fn setpcap_effective(enable: bool) -> Result<(), capctl::Error> { cap_effective(Cap::SETPCAP, enable) } -fn set_capabilities(caps: CapSet, requires_bounding: bool) { +fn set_capabilities(caps: CapSet) { //set capabilities // case where capabilities are more than bounding set let bounding = capctl::bounding::probe(); @@ -355,21 +351,17 @@ fn set_capabilities(caps: CapSet, requires_bounding: bool) { panic!("Unable to setup the execution environment: There are more capabilities in this task than the current bounding set! You may are in a container or already in a RootAsRole session."); } setpcap_effective(true).unwrap_or_else(|_| panic!("{}", cap_effective_error("setpcap"))); - let mut capstate = CapState::empty(); - if requires_bounding { - for cap in (!caps).iter() { - capctl::bounding::drop(cap).expect("Failed to set bounding cap"); - } - } - capstate.permitted = caps; + capctl::ambient::clear().expect("Failed to clear ambiant caps"); + let mut capstate = CapState::get_current().expect("Failed to get current cap"); capstate.inheritable = caps; debug!("caps : {:?}", caps); capstate.set_current().expect("Failed to set current cap"); for cap in caps.iter() { capctl::ambient::raise(cap).expect("Failed to set ambiant cap"); } - capstate.effective = CapSet::empty(); - capstate.set_current().expect("Failed to set current cap"); + setpcap_effective(false).unwrap_or_else(|_| panic!("{}", cap_effective_error("setpcap"))); + // read /proc/self/status to check if capabilities are set + } fn getopt(s: I) -> Result> @@ -394,9 +386,6 @@ where .unwrap_or(CapSet::empty())) }).unwrap_or(CapSet::empty()); } - "-b" | "--not-enforce-bounding" => { - args.bounding = false; - } "-j" | "--json" => { args.json = true; } @@ -478,33 +467,46 @@ async fn main() -> Result<(), anyhow::Error> { let nsinode: Rc> = Rc::new(0.into()); let nsclone: Rc> = nsinode.clone(); - let namespaces = nix::sched::CloneFlags::CLONE_NEWPID; - - nix::sched::unshare(namespaces).expect("Failed to unshare"); - let id = getpid(); - let fnspid = - metadata(format!("/proc/{}/ns/pid", id.as_raw())).expect("failed to open pid ns"); - nsclone.as_ref().replace(fnspid.ino() as u32); - set_capabilities(cli_args.capabilities, cli_args.bounding); - let mut cmd = Command::new(path); + let namespaces = vec![&unshare::Namespace::Pid]; + let mut cmd = unshare::Command::new(path); + unsafe { cmd.pre_exec(move || { + let mut capstate = CapState::empty(); + nix::sys::prctl::set_keepcaps(false).expect("Failed to set keepcaps"); + ambient::clear().expect("Failed to clear ambiant caps"); + capstate.inheritable = cli_args.capabilities; + capstate.permitted = cli_args.capabilities; + capstate.effective = cli_args.capabilities; + capstate.set_current().expect("Failed to set current cap"); + let status = std::fs::read_to_string("/proc/self/status").expect("Failed to read status"); + debug!("status: {}", status); + + Ok(()) + }) }; //avoid output - let child: Arc> = Arc::new(Mutex::new( + let child: Arc> = Arc::new(Mutex::new( cmd.args(&args) - //.keep_caps(cli_args.capabilities.iter()) + .before_unfreeze(move |id| { + + let fnspid = + metadata(format!("/proc/{}/ns/pid", id)).expect("failed to open pid ns"); + nsclone.as_ref().replace(fnspid.ino() as u32); + Ok(()) + }) + .unshare(namespaces) .stdout(if cli_args.json { - Stdio::null() + unshare::Stdio::null() } else { - Stdio::inherit() + unshare::Stdio::inherit() }) .stderr(if cli_args.json { - Stdio::null() + unshare::Stdio::null() } else { - Stdio::inherit() + unshare::Stdio::inherit() }) .stdin(if cli_args.json { - Stdio::null() + unshare::Stdio::null() } else { - Stdio::inherit() + unshare::Stdio::inherit() }) .spawn() .expect("failed to spawn child"), From 886e23aaae165cb3185dfef4fa7e685f16f222b8 Mon Sep 17 00:00:00 2001 From: LeChatP Date: Wed, 5 Jun 2024 01:17:16 +0200 Subject: [PATCH 21/31] miss to readd unshare lib --- capable/Cargo.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/capable/Cargo.toml b/capable/Cargo.toml index 05452ba8..56821f7a 100644 --- a/capable/Cargo.toml +++ b/capable/Cargo.toml @@ -20,6 +20,7 @@ nix = { version = "0.29.0", features = ["user", "signal", "sched"] } shell-words = "1.1.0" serde = { version = "1.0.203", features=["rc", "derive"] } serde_json = "1.0.117" +unshare = { version = "0.7.0" } [[bin]] name = "capable" From 35c270f02c23653d134bd3589e6149904f521495 Mon Sep 17 00:00:00 2001 From: LeChatP Date: Fri, 7 Jun 2024 11:52:47 +0200 Subject: [PATCH 22/31] cargo fmt --- capable/src/main.rs | 48 +++++++++++++++++++++++------------------ src/database/finder.rs | 3 +-- src/database/version.rs | 14 ++++++------ src/util.rs | 13 ++++++++--- 4 files changed, 44 insertions(+), 34 deletions(-) diff --git a/capable/src/main.rs b/capable/src/main.rs index 34efbc57..df195242 100644 --- a/capable/src/main.rs +++ b/capable/src/main.rs @@ -361,7 +361,6 @@ fn set_capabilities(caps: CapSet) { } setpcap_effective(false).unwrap_or_else(|_| panic!("{}", cap_effective_error("setpcap"))); // read /proc/self/status to check if capabilities are set - } fn getopt(s: I) -> Result> @@ -380,11 +379,16 @@ where args.daemon = true; } "-c" | "--capabilities" => { - args.capabilities = iter.next().and_then(|s| { - Some(parse_capset_iter(s.as_ref().split(',')) - .ok() - .unwrap_or(CapSet::empty())) - }).unwrap_or(CapSet::empty()); + args.capabilities = iter + .next() + .and_then(|s| { + Some( + parse_capset_iter(s.as_ref().split(',')) + .ok() + .unwrap_or(CapSet::empty()), + ) + }) + .unwrap_or(CapSet::empty()); } "-j" | "--json" => { args.json = true; @@ -469,26 +473,28 @@ async fn main() -> Result<(), anyhow::Error> { let nsclone: Rc> = nsinode.clone(); let namespaces = vec![&unshare::Namespace::Pid]; let mut cmd = unshare::Command::new(path); - unsafe { cmd.pre_exec(move || { - let mut capstate = CapState::empty(); - nix::sys::prctl::set_keepcaps(false).expect("Failed to set keepcaps"); - ambient::clear().expect("Failed to clear ambiant caps"); - capstate.inheritable = cli_args.capabilities; - capstate.permitted = cli_args.capabilities; - capstate.effective = cli_args.capabilities; - capstate.set_current().expect("Failed to set current cap"); - let status = std::fs::read_to_string("/proc/self/status").expect("Failed to read status"); - debug!("status: {}", status); - - Ok(()) - }) }; + unsafe { + cmd.pre_exec(move || { + let mut capstate = CapState::empty(); + nix::sys::prctl::set_keepcaps(false).expect("Failed to set keepcaps"); + ambient::clear().expect("Failed to clear ambiant caps"); + capstate.inheritable = cli_args.capabilities; + capstate.permitted = cli_args.capabilities; + capstate.effective = cli_args.capabilities; + capstate.set_current().expect("Failed to set current cap"); + let status = + std::fs::read_to_string("/proc/self/status").expect("Failed to read status"); + debug!("status: {}", status); + + Ok(()) + }) + }; //avoid output let child: Arc> = Arc::new(Mutex::new( cmd.args(&args) .before_unfreeze(move |id| { - let fnspid = - metadata(format!("/proc/{}/ns/pid", id)).expect("failed to open pid ns"); + metadata(format!("/proc/{}/ns/pid", id)).expect("failed to open pid ns"); nsclone.as_ref().replace(fnspid.ino() as u32); Ok(()) }) diff --git a/src/database/finder.rs b/src/database/finder.rs index eb9f3a96..8446d963 100644 --- a/src/database/finder.rs +++ b/src/database/finder.rs @@ -352,8 +352,7 @@ fn find_from_envpath(needle: &PathBuf) -> Option { pub fn final_path(path: &String) -> PathBuf { let result; - if let Some(env_path) = find_from_envpath(&path.parse().expect("The path is not valid")) - { + if let Some(env_path) = find_from_envpath(&path.parse().expect("The path is not valid")) { result = env_path } else if let Ok(cannon_path) = std::fs::canonicalize(path) { result = cannon_path; diff --git a/src/database/version.rs b/src/database/version.rs index 1b8e5466..adc59736 100644 --- a/src/database/version.rs +++ b/src/database/version.rs @@ -40,11 +40,9 @@ pub(crate) const JSON_MIGRATIONS: &[Migration] = &[Migration { down: |_, _| Ok(()), }]; -pub(crate) const SETTINGS_MIGRATIONS: &[Migration] = &[ - Migration { - from: || Version::parse("3.0.0-alpha.4").unwrap(), - to: || Version::parse("3.0.0-alpha.5").unwrap(), - up: |_, _| Ok(()), - down: |_, _| Ok(()), - } -]; +pub(crate) const SETTINGS_MIGRATIONS: &[Migration] = &[Migration { + from: || Version::parse("3.0.0-alpha.4").unwrap(), + to: || Version::parse("3.0.0-alpha.5").unwrap(), + up: |_, _| Ok(()), + down: |_, _| Ok(()), +}]; diff --git a/src/util.rs b/src/util.rs index 90bf9afa..150deb05 100644 --- a/src/util.rs +++ b/src/util.rs @@ -5,7 +5,10 @@ use libc::{FS_IOC_GETFLAGS, FS_IOC_SETFLAGS}; use pest::{error::LineColLocation, RuleType}; use tracing::{debug, warn}; -use crate::common::{dac_override_effective, fowner_effective, immutable_effective, open_with_privileges, read_effective}; +use crate::common::{ + dac_override_effective, fowner_effective, immutable_effective, open_with_privileges, + read_effective, +}; pub const RST: &str = "\x1B[0m"; pub const BOLD: &str = "\x1B[1m"; @@ -60,7 +63,9 @@ pub fn toggle_lock_config(file: &PathBuf, lock: bool) -> Result<(), String> { debug!("Setting immutable privilege"); immutable_effective(true).map_err(|e| e.to_string())?; debug!("Setting dac override privilege"); - read_effective(true).or(dac_override_effective(true)).map_err(|e| e.to_string())?; + read_effective(true) + .or(dac_override_effective(true)) + .map_err(|e| e.to_string())?; fowner_effective(true).map_err(|e| e.to_string())?; debug!("Setting immutable flag"); if unsafe { nix::libc::ioctl(fd, FS_IOC_SETFLAGS, &mut val) } < 0 { @@ -68,7 +73,9 @@ pub fn toggle_lock_config(file: &PathBuf, lock: bool) -> Result<(), String> { } debug!("Resetting immutable privilege"); immutable_effective(false).map_err(|e| e.to_string())?; - read_effective(false).and(dac_override_effective(false)).map_err(|e| e.to_string())?; + read_effective(false) + .and(dac_override_effective(false)) + .map_err(|e| e.to_string())?; fowner_effective(false).map_err(|e| e.to_string())?; Ok(()) } From 614f81bb12755b8ff90e20fddb211fdb9597058a Mon Sep 17 00:00:00 2001 From: LeChatP Date: Sat, 8 Jun 2024 19:31:56 +0200 Subject: [PATCH 23/31] Apply more least privilege on eBPF. Also unload it when program ends. --- capable/src/main.rs | 291 +++++++++++++++++++++++++++++--------------- 1 file changed, 191 insertions(+), 100 deletions(-) diff --git a/capable/src/main.rs b/capable/src/main.rs index df195242..21c380df 100644 --- a/capable/src/main.rs +++ b/capable/src/main.rs @@ -13,6 +13,7 @@ use std::time::Duration; use std::{env, thread, vec}; use aya::maps::{HashMap, MapData}; +use aya::programs::kprobe::KProbeLinkId; use aya::programs::KProbe; use aya::{include_bytes_aligned, Ebpf}; use aya_log::EbpfLogger; @@ -340,27 +341,33 @@ fn cap_effective(cap: Cap, enable: bool) -> Result<(), capctl::Error> { } fn setpcap_effective(enable: bool) -> Result<(), capctl::Error> { - cap_effective(Cap::SETPCAP, enable) + cap_effective(Cap::SETPCAP, enable).inspect_err(|_| { + eprintln!("{}", cap_effective_error("SETPCAP")); + }) } -fn set_capabilities(caps: CapSet) { - //set capabilities - // case where capabilities are more than bounding set - let bounding = capctl::bounding::probe(); - if bounding & caps != caps { - panic!("Unable to setup the execution environment: There are more capabilities in this task than the current bounding set! You may are in a container or already in a RootAsRole session."); - } - setpcap_effective(true).unwrap_or_else(|_| panic!("{}", cap_effective_error("setpcap"))); - capctl::ambient::clear().expect("Failed to clear ambiant caps"); - let mut capstate = CapState::get_current().expect("Failed to get current cap"); - capstate.inheritable = caps; - debug!("caps : {:?}", caps); - capstate.set_current().expect("Failed to set current cap"); - for cap in caps.iter() { - capctl::ambient::raise(cap).expect("Failed to set ambiant cap"); - } - setpcap_effective(false).unwrap_or_else(|_| panic!("{}", cap_effective_error("setpcap"))); - // read /proc/self/status to check if capabilities are set +fn setbpf_effective(enable: bool) -> Result<(), capctl::Error> { + cap_effective(Cap::BPF, enable).inspect_err(|_| { + eprintln!("{}", cap_effective_error("BPF")); + }) +} + +fn setadmin_effective(enable: bool) -> Result<(), capctl::Error> { + cap_effective(Cap::SYS_ADMIN, enable).inspect_err(|_| { + eprintln!("{}", cap_effective_error("SYS_ADMIN")); + }) +} + +fn setresource_effective(enable: bool) -> Result<(), capctl::Error> { + cap_effective(Cap::SYS_RESOURCE, enable).inspect_err(|_| { + eprintln!("{}", cap_effective_error("SYS_RESOURCE")); + }) +} + +fn setptrace_effective(enable: bool) -> Result<(), capctl::Error> { + cap_effective(Cap::SYS_PTRACE, enable).inspect_err(|_| { + eprintln!("{}", cap_effective_error("SYS_PTRACE")); + }) } fn getopt(s: I) -> Result> @@ -409,92 +416,33 @@ where Ok(args) } -#[tokio::main] -async fn main() -> Result<(), anyhow::Error> { - env_logger::init(); - - // Bump the memlock rlimit. This is needed for older kernels that don't use the - // new memcg based accounting, see https://lwn.net/Articles/837122/ - let rlim = libc::rlimit { - rlim_cur: libc::RLIM_INFINITY, - rlim_max: libc::RLIM_INFINITY, - }; - let ret = unsafe { libc::setrlimit(libc::RLIMIT_MEMLOCK, &rlim) }; - if ret != 0 { - debug!("remove limit on locked memory failed, ret is: {}", ret); - } - - // This will include your eBPF object file as raw bytes at compile-time and load it at - // runtime. This approach is recommended for most real-world use cases. If you would - // like to specify the eBPF program at runtime rather than at compile-time, you can - // reach for `Bpf::load_file` instead. - #[cfg(debug_assertions)] - let mut bpf = Ebpf::load(include_bytes_aligned!( - "../../target/bpfel-unknown-none/debug/capable" - ))?; - #[cfg(not(debug_assertions))] - let mut bpf = Ebpf::load(include_bytes_aligned!( - "../../target/bpfel-unknown-none/release/capable" - ))?; - if let Err(e) = EbpfLogger::init(&mut bpf) { - // This can happen if you remove all log statements from your eBPF program. - warn!("failed to initialize eBPF {}", e); - } - let program: &mut KProbe = bpf.program_mut("capable").unwrap().try_into()?; - program.load()?; - program.attach("cap_capable", 0)?; - - let mut cli_args = getopt(std::env::args()) - .map_err(|e| { - eprintln!("{}", e); - exit(-1); - }) - .unwrap(); - let capabilities_map: HashMap<_, Key, u64> = - HashMap::try_from(bpf.map("CAPABILITIES_MAP").unwrap())?; - let pnsid_nsid_map: HashMap<_, Key, u64> = - HashMap::try_from(bpf.map("PNSID_NSID_MAP").unwrap())?; - let uid_gid_map: HashMap<_, Key, u64> = HashMap::try_from(bpf.map("UID_GID_MAP").unwrap())?; - let ppid_map: HashMap<_, Key, i32> = HashMap::try_from(bpf.map("PPID_MAP").unwrap())?; - if cli_args.daemon || cli_args.command.is_empty() { - println!("Waiting for Ctrl-C..."); - signal::ctrl_c().await?; - print_all( - &capabilities_map, - &pnsid_nsid_map, - &uid_gid_map, - &ppid_map, - cli_args.json, - )?; - } else { - let (path, args) = get_exec_and_args(&mut cli_args.command); - - let nsinode: Rc> = Rc::new(0.into()); - let nsclone: Rc> = nsinode.clone(); +fn run_command(cli_args : &mut Cli, nsclone: Rc>) -> Result { + let (path, args) = get_exec_and_args(&mut cli_args.command); let namespaces = vec![&unshare::Namespace::Pid]; + let capabilities = cli_args.capabilities.clone(); let mut cmd = unshare::Command::new(path); unsafe { cmd.pre_exec(move || { let mut capstate = CapState::empty(); nix::sys::prctl::set_keepcaps(false).expect("Failed to set keepcaps"); + setpcap_effective(true).expect("Failed to setpcap effective"); ambient::clear().expect("Failed to clear ambiant caps"); - capstate.inheritable = cli_args.capabilities; - capstate.permitted = cli_args.capabilities; - capstate.effective = cli_args.capabilities; + capstate.inheritable = capabilities; + capstate.permitted = capabilities; + capstate.effective = capabilities; capstate.set_current().expect("Failed to set current cap"); - let status = - std::fs::read_to_string("/proc/self/status").expect("Failed to read status"); - debug!("status: {}", status); - Ok(()) }) }; + setadmin_effective(true)?; //avoid output let child: Arc> = Arc::new(Mutex::new( cmd.args(&args) .before_unfreeze(move |id| { + setptrace_effective(true)?; let fnspid = metadata(format!("/proc/{}/ns/pid", id)).expect("failed to open pid ns"); + setptrace_effective(false)?; nsclone.as_ref().replace(fnspid.ino() as u32); Ok(()) }) @@ -517,11 +465,11 @@ async fn main() -> Result<(), anyhow::Error> { .spawn() .expect("failed to spawn child"), )); - + setadmin_effective(false)?; let cloned = child.clone(); let pid = child.try_lock().unwrap().id() as i32; - /*thread::spawn(move || { + thread::spawn(move || { let rt = Runtime::new().unwrap(); rt.block_on(signal::ctrl_c()) .expect("failed to wait for ctrl-c"); @@ -558,7 +506,7 @@ async fn main() -> Result<(), anyhow::Error> { } } Ok::<(), ()>(()) - });*/ + }); let exit_status = cloned .try_lock() @@ -567,19 +515,162 @@ async fn main() -> Result<(), anyhow::Error> { .expect("failed to wait on child"); debug!("child exited with {:?}", exit_status); //print_all(&capabilities_map, &pnsid_nsid_map, &uid_gid_map, &ppid_map)?; - print_program_capabilities( - &nsinode.as_ref().borrow(), - &capabilities_map, - &pnsid_nsid_map, - cli_args.json, - ) - .expect("failed to print capabilities"); + if exit_status.success() { - exit(0); + Ok(0) } else { - exit(exit_status.code().unwrap_or(-1)); + Ok(exit_status.code().unwrap_or(-1)) } +} + +fn unload_program(bpf: &Rc>) -> Result<(), anyhow::Error> { + setbpf_effective(true)?; + setadmin_effective(true)?; + let mut binding = bpf.as_ref().borrow_mut(); + let program: &mut KProbe = binding.program_mut("capable").unwrap().try_into()?; + program.unload()?; + setbpf_effective(false)?; + setadmin_effective(false)?; + Ok(()) +} + +#[tokio::main] +async fn main() -> Result<(), anyhow::Error> { + env_logger::init(); + ambient::clear().expect("Failed to clear ambiant caps"); + let mut capstate = CapState::get_current().expect("Failed to get current cap"); + capstate.inheritable = CapSet::empty(); + capstate.effective = CapSet::empty(); + capstate.set_current().expect("Failed to set current cap"); + + // Bump the memlock rlimit. This is needed for older kernels that don't use the + // new memcg based accounting, see https://lwn.net/Articles/837122/ + let rlim = libc::rlimit { + rlim_cur: libc::RLIM_INFINITY, + rlim_max: libc::RLIM_INFINITY, + }; + setresource_effective(true)?; + let ret = unsafe { libc::setrlimit(libc::RLIMIT_MEMLOCK, &rlim) }; + setresource_effective(false)?; + if ret != 0 { + debug!("remove limit on locked memory failed, ret is: {}", ret); + } + + setbpf_effective(true)?; + setadmin_effective(true)?; + + // This will include your eBPF object file as raw bytes at compile-time and load it at + // runtime. This approach is recommended for most real-world use cases. If you would + // like to specify the eBPF program at runtime rather than at compile-time, you can + // reach for `Bpf::load_file` instead. + #[cfg(debug_assertions)] + let bpf = Rc::new(RefCell::new(Ebpf::load(include_bytes_aligned!( + "../../target/bpfel-unknown-none/debug/capable" + ))?)); + #[cfg(not(debug_assertions))] + let bpf = Rc::new(RefCell::new(Ebpf::load(include_bytes_aligned!( + "../../target/bpfel-unknown-none/release/capable" + ))?)); + + + + if let Err(e) = EbpfLogger::init(&mut bpf.as_ref().borrow_mut()) { + // This can happen if you remove all log statements from your eBPF program. + warn!("failed to initialize eBPF {}", e); } + let link = { + let mut binding = bpf.as_ref().borrow_mut(); + let program: &mut KProbe = binding.program_mut("capable").unwrap().try_into()?; + program.load()?; + program.attach("cap_capable", 0)? + }; + let err_bpf = bpf.clone(); + setbpf_effective(false).inspect_err(move |_| { + unload_program(&err_bpf).expect("failed to unload program"); + })?; + let err_bpf = bpf.clone(); + setadmin_effective(false).inspect_err(move |_| { + unload_program(&err_bpf).expect("failed to unload program"); + })?; + let err_bpf = bpf.clone(); + let mut cli_args = getopt(std::env::args()) + .inspect_err(move |_| { + unload_program(&err_bpf).expect("failed to unload program"); + }) + .map_err(|e| { + eprintln!("{}", e); + + exit(-1); + }) + .unwrap(); + + { + let binding = bpf.as_ref().borrow(); + let err_bpf = bpf.clone(); + let capabilities_map: HashMap<_, Key, u64> = + HashMap::try_from(binding.map("CAPABILITIES_MAP").unwrap()) + .inspect_err(move |_| { + unload_program(&err_bpf).expect("failed to unload program"); + })?; + let err_bpf = bpf.clone(); + let pnsid_nsid_map: HashMap<_, Key, u64> = + HashMap::try_from(binding.map("PNSID_NSID_MAP").unwrap()) + .inspect_err(move |_| { + unload_program(&err_bpf).expect("failed to unload program"); + })?; + let err_bpf = bpf.clone(); + let uid_gid_map: HashMap<_, Key, u64> = HashMap::try_from(binding.map("UID_GID_MAP").unwrap()) + .inspect_err(move |_| { + unload_program(&err_bpf).expect("failed to unload program"); + })?; + let err_bpf = bpf.clone(); + let ppid_map: HashMap<_, Key, i32> = HashMap::try_from(binding.map("PPID_MAP").unwrap()) + .inspect_err(move |_| { + unload_program(&err_bpf).expect("failed to unload program"); + })?; + if cli_args.daemon || cli_args.command.is_empty() { + println!("Waiting for Ctrl-C..."); + let err_bpf = bpf.clone(); + signal::ctrl_c().await.inspect_err(move |_| { + unload_program(&err_bpf).expect("failed to unload program"); + })?; + let err_bpf = bpf.clone(); + print_all( + &capabilities_map, + &pnsid_nsid_map, + &uid_gid_map, + &ppid_map, + cli_args.json, + ).inspect_err(move |_| { + unload_program(&err_bpf).expect("failed to unload program"); + })?; + } else { + let nsinode: Rc> = Rc::new(0.into()); + let err_bpf = bpf.clone(); + run_command(&mut cli_args, nsinode.clone()).inspect_err(move |_| { + unload_program(&err_bpf).expect("failed to unload program"); + })?; + let err_bpf = bpf.clone(); + print_program_capabilities( + &nsinode.as_ref().borrow(), + &capabilities_map, + &pnsid_nsid_map, + cli_args.json, + ).inspect_err(move |_| { + unload_program(&err_bpf).expect("failed to unload program"); + }) + .expect("failed to print capabilities"); + } + + } + debug!("unloading program"); + let mut binding = bpf.as_ref().borrow_mut(); + let err_bpf = bpf.clone(); + let program: &mut KProbe = binding.program_mut("capable").unwrap().try_into().inspect_err(move |_| { + unload_program(&err_bpf).expect("failed to unload program"); + })?; + program.detach(link)?; + program.unload()?; Ok(()) } From bacd02668d3ed127f442716e23eac42e05880b8e Mon Sep 17 00:00:00 2001 From: LeChatP Date: Sat, 8 Jun 2024 19:34:00 +0200 Subject: [PATCH 24/31] cargo fix fmt --- capable/src/main.rs | 240 ++++++++++++++++++++++---------------------- 1 file changed, 119 insertions(+), 121 deletions(-) diff --git a/capable/src/main.rs b/capable/src/main.rs index 21c380df..a3c3725c 100644 --- a/capable/src/main.rs +++ b/capable/src/main.rs @@ -3,9 +3,8 @@ use std::cell::RefCell; use std::error::Error; use std::fs::{canonicalize, metadata}; use std::os::unix::prelude::MetadataExt; -use std::os::unix::process::CommandExt; use std::path::{Path, PathBuf}; -use std::process::{exit, Child, Command, Stdio}; +use std::process::exit; use std::rc::Rc; use std::sync::{Arc, Mutex}; @@ -13,14 +12,13 @@ use std::time::Duration; use std::{env, thread, vec}; use aya::maps::{HashMap, MapData}; -use aya::programs::kprobe::KProbeLinkId; use aya::programs::KProbe; use aya::{include_bytes_aligned, Ebpf}; use aya_log::EbpfLogger; -use capctl::{ambient, bounding, Cap, CapSet, CapState, ParseCapError}; +use capctl::{ambient, Cap, CapSet, CapState, ParseCapError}; use log::{debug, warn}; use nix::sys::wait::{WaitPidFlag, WaitStatus}; -use nix::unistd::{getpid, Uid}; +use nix::unistd::Uid; use serde::{Deserialize, Serialize}; use tabled::settings::object::Columns; @@ -416,111 +414,110 @@ where Ok(args) } -fn run_command(cli_args : &mut Cli, nsclone: Rc>) -> Result { +fn run_command(cli_args: &mut Cli, nsclone: Rc>) -> Result { let (path, args) = get_exec_and_args(&mut cli_args.command); - let namespaces = vec![&unshare::Namespace::Pid]; - let capabilities = cli_args.capabilities.clone(); - let mut cmd = unshare::Command::new(path); - unsafe { - cmd.pre_exec(move || { - let mut capstate = CapState::empty(); - nix::sys::prctl::set_keepcaps(false).expect("Failed to set keepcaps"); - setpcap_effective(true).expect("Failed to setpcap effective"); - ambient::clear().expect("Failed to clear ambiant caps"); - capstate.inheritable = capabilities; - capstate.permitted = capabilities; - capstate.effective = capabilities; - capstate.set_current().expect("Failed to set current cap"); + let namespaces = vec![&unshare::Namespace::Pid]; + let capabilities = cli_args.capabilities.clone(); + let mut cmd = unshare::Command::new(path); + unsafe { + cmd.pre_exec(move || { + let mut capstate = CapState::empty(); + nix::sys::prctl::set_keepcaps(false).expect("Failed to set keepcaps"); + setpcap_effective(true).expect("Failed to setpcap effective"); + ambient::clear().expect("Failed to clear ambiant caps"); + capstate.inheritable = capabilities; + capstate.permitted = capabilities; + capstate.effective = capabilities; + capstate.set_current().expect("Failed to set current cap"); + Ok(()) + }) + }; + setadmin_effective(true)?; + //avoid output + let child: Arc> = Arc::new(Mutex::new( + cmd.args(&args) + .before_unfreeze(move |id| { + setptrace_effective(true)?; + let fnspid = + metadata(format!("/proc/{}/ns/pid", id)).expect("failed to open pid ns"); + setptrace_effective(false)?; + nsclone.as_ref().replace(fnspid.ino() as u32); Ok(()) }) - }; - setadmin_effective(true)?; - //avoid output - let child: Arc> = Arc::new(Mutex::new( - cmd.args(&args) - .before_unfreeze(move |id| { - setptrace_effective(true)?; - let fnspid = - metadata(format!("/proc/{}/ns/pid", id)).expect("failed to open pid ns"); - setptrace_effective(false)?; - nsclone.as_ref().replace(fnspid.ino() as u32); - Ok(()) - }) - .unshare(namespaces) - .stdout(if cli_args.json { - unshare::Stdio::null() - } else { - unshare::Stdio::inherit() - }) - .stderr(if cli_args.json { - unshare::Stdio::null() - } else { - unshare::Stdio::inherit() - }) - .stdin(if cli_args.json { - unshare::Stdio::null() - } else { - unshare::Stdio::inherit() - }) - .spawn() - .expect("failed to spawn child"), - )); - setadmin_effective(false)?; - let cloned = child.clone(); - let pid = child.try_lock().unwrap().id() as i32; - - thread::spawn(move || { - let rt = Runtime::new().unwrap(); - rt.block_on(signal::ctrl_c()) - .expect("failed to wait for ctrl-c"); - let nixpid = nix::unistd::Pid::from_raw(pid); - nix::sys::signal::kill(nixpid, nix::sys::signal::Signal::SIGINT) - .expect("failed to send SIGINT"); - let mut i = 0; - if nix::sys::wait::waitpid(nixpid, Some(WaitPidFlag::WNOHANG)) + .unshare(namespaces) + .stdout(if cli_args.json { + unshare::Stdio::null() + } else { + unshare::Stdio::inherit() + }) + .stderr(if cli_args.json { + unshare::Stdio::null() + } else { + unshare::Stdio::inherit() + }) + .stdin(if cli_args.json { + unshare::Stdio::null() + } else { + unshare::Stdio::inherit() + }) + .spawn() + .expect("failed to spawn child"), + )); + setadmin_effective(false)?; + let cloned = child.clone(); + let pid = child.try_lock().unwrap().id() as i32; + + thread::spawn(move || { + let rt = Runtime::new().unwrap(); + rt.block_on(signal::ctrl_c()) + .expect("failed to wait for ctrl-c"); + let nixpid = nix::unistd::Pid::from_raw(pid); + nix::sys::signal::kill(nixpid, nix::sys::signal::Signal::SIGINT) + .expect("failed to send SIGINT"); + let mut i = 0; + if nix::sys::wait::waitpid(nixpid, Some(WaitPidFlag::WNOHANG)).expect("Fail to wait pid") + == WaitStatus::StillAlive + && i < MAX_CHECK + { + i += 1; + thread::sleep(Duration::from_millis(100)); + } + if i >= MAX_CHECK { + eprintln!("SIGINT wait is timed-out\n"); + child + .try_lock() + .unwrap() + .kill() + .expect("failed to send SIGKILL"); + i = 0; + while nix::sys::wait::waitpid(nixpid, Some(WaitPidFlag::WNOHANG)) .expect("Fail to wait pid") == WaitStatus::StillAlive && i < MAX_CHECK { - i += 1; thread::sleep(Duration::from_millis(100)); + i += 1; } if i >= MAX_CHECK { - eprintln!("SIGINT wait is timed-out\n"); - child - .try_lock() - .unwrap() - .kill() - .expect("failed to send SIGKILL"); - i = 0; - while nix::sys::wait::waitpid(nixpid, Some(WaitPidFlag::WNOHANG)) - .expect("Fail to wait pid") - == WaitStatus::StillAlive - && i < MAX_CHECK - { - thread::sleep(Duration::from_millis(100)); - i += 1; - } - if i >= MAX_CHECK { - exit(-1); - } + exit(-1); } - Ok::<(), ()>(()) - }); - - let exit_status = cloned - .try_lock() - .unwrap() - .wait() - .expect("failed to wait on child"); - debug!("child exited with {:?}", exit_status); - //print_all(&capabilities_map, &pnsid_nsid_map, &uid_gid_map, &ppid_map)?; - - if exit_status.success() { - Ok(0) - } else { - Ok(exit_status.code().unwrap_or(-1)) } + Ok::<(), ()>(()) + }); + + let exit_status = cloned + .try_lock() + .unwrap() + .wait() + .expect("failed to wait on child"); + debug!("child exited with {:?}", exit_status); + //print_all(&capabilities_map, &pnsid_nsid_map, &uid_gid_map, &ppid_map)?; + + if exit_status.success() { + Ok(0) + } else { + Ok(exit_status.code().unwrap_or(-1)) + } } fn unload_program(bpf: &Rc>) -> Result<(), anyhow::Error> { @@ -572,18 +569,16 @@ async fn main() -> Result<(), anyhow::Error> { "../../target/bpfel-unknown-none/release/capable" ))?)); - - if let Err(e) = EbpfLogger::init(&mut bpf.as_ref().borrow_mut()) { // This can happen if you remove all log statements from your eBPF program. warn!("failed to initialize eBPF {}", e); } let link = { - let mut binding = bpf.as_ref().borrow_mut(); - let program: &mut KProbe = binding.program_mut("capable").unwrap().try_into()?; - program.load()?; - program.attach("cap_capable", 0)? + let mut binding = bpf.as_ref().borrow_mut(); + let program: &mut KProbe = binding.program_mut("capable").unwrap().try_into()?; + program.load()?; + program.attach("cap_capable", 0)? }; let err_bpf = bpf.clone(); setbpf_effective(false).inspect_err(move |_| { @@ -600,35 +595,33 @@ async fn main() -> Result<(), anyhow::Error> { }) .map_err(|e| { eprintln!("{}", e); - + exit(-1); }) .unwrap(); - + { let binding = bpf.as_ref().borrow(); let err_bpf = bpf.clone(); let capabilities_map: HashMap<_, Key, u64> = - HashMap::try_from(binding.map("CAPABILITIES_MAP").unwrap()) - .inspect_err(move |_| { + HashMap::try_from(binding.map("CAPABILITIES_MAP").unwrap()).inspect_err(move |_| { unload_program(&err_bpf).expect("failed to unload program"); })?; let err_bpf = bpf.clone(); let pnsid_nsid_map: HashMap<_, Key, u64> = - HashMap::try_from(binding.map("PNSID_NSID_MAP").unwrap()) - .inspect_err(move |_| { + HashMap::try_from(binding.map("PNSID_NSID_MAP").unwrap()).inspect_err(move |_| { unload_program(&err_bpf).expect("failed to unload program"); })?; let err_bpf = bpf.clone(); - let uid_gid_map: HashMap<_, Key, u64> = HashMap::try_from(binding.map("UID_GID_MAP").unwrap()) - .inspect_err(move |_| { + let uid_gid_map: HashMap<_, Key, u64> = + HashMap::try_from(binding.map("UID_GID_MAP").unwrap()).inspect_err(move |_| { unload_program(&err_bpf).expect("failed to unload program"); })?; let err_bpf = bpf.clone(); let ppid_map: HashMap<_, Key, i32> = HashMap::try_from(binding.map("PPID_MAP").unwrap()) - .inspect_err(move |_| { - unload_program(&err_bpf).expect("failed to unload program"); - })?; + .inspect_err(move |_| { + unload_program(&err_bpf).expect("failed to unload program"); + })?; if cli_args.daemon || cli_args.command.is_empty() { println!("Waiting for Ctrl-C..."); let err_bpf = bpf.clone(); @@ -642,7 +635,8 @@ async fn main() -> Result<(), anyhow::Error> { &uid_gid_map, &ppid_map, cli_args.json, - ).inspect_err(move |_| { + ) + .inspect_err(move |_| { unload_program(&err_bpf).expect("failed to unload program"); })?; } else { @@ -657,19 +651,23 @@ async fn main() -> Result<(), anyhow::Error> { &capabilities_map, &pnsid_nsid_map, cli_args.json, - ).inspect_err(move |_| { + ) + .inspect_err(move |_| { unload_program(&err_bpf).expect("failed to unload program"); }) .expect("failed to print capabilities"); } - } debug!("unloading program"); let mut binding = bpf.as_ref().borrow_mut(); let err_bpf = bpf.clone(); - let program: &mut KProbe = binding.program_mut("capable").unwrap().try_into().inspect_err(move |_| { - unload_program(&err_bpf).expect("failed to unload program"); - })?; + let program: &mut KProbe = binding + .program_mut("capable") + .unwrap() + .try_into() + .inspect_err(move |_| { + unload_program(&err_bpf).expect("failed to unload program"); + })?; program.detach(link)?; program.unload()?; Ok(()) From 62c5fdfc72e9122ad1f275d45ba5208fa275f0be Mon Sep 17 00:00:00 2001 From: LeChatP Date: Sat, 8 Jun 2024 19:34:44 +0200 Subject: [PATCH 25/31] ebpf fix and fmt --- capable-ebpf/src/main.rs | 89 ++++++++++++++++++++++------------------ 1 file changed, 48 insertions(+), 41 deletions(-) diff --git a/capable-ebpf/src/main.rs b/capable-ebpf/src/main.rs index 9082590a..c9cf3002 100644 --- a/capable-ebpf/src/main.rs +++ b/capable-ebpf/src/main.rs @@ -1,32 +1,36 @@ #![no_std] #![no_main] - #[allow(non_upper_case_globals)] #[allow(non_snake_case)] #[allow(non_camel_case_types)] #[allow(dead_code)] mod vmlinux; -use aya_ebpf::{macros::{kprobe,map}, maps::HashMap, programs::ProbeContext, helpers::{bpf_get_current_task, bpf_get_current_uid_gid, bpf_probe_read_kernel}}; -use vmlinux::{task_struct, nsproxy, pid_namespace, ns_common}; -use aya_log_ebpf::{debug,info,error}; +use aya_ebpf::{ + helpers::{bpf_get_current_task, bpf_get_current_uid_gid, bpf_probe_read_kernel}, + macros::{kprobe, map}, + maps::HashMap, + programs::ProbeContext, +}; +use aya_log_ebpf::{debug, info}; +use vmlinux::{ns_common, nsproxy, pid_namespace, task_struct}; -const MAX_PID : u32 = 4*1024*1024; +const MAX_PID: u32 = 4 * 1024 * 1024; type Key = i32; type TaskStructPtr = *mut task_struct; #[map] -static mut KALLSYMS_MAP: HashMap = HashMap::with_max_entries(MAX_PID,0); +static mut KALLSYMS_MAP: HashMap = HashMap::with_max_entries(MAX_PID, 0); #[map] -static mut CAPABILITIES_MAP: HashMap = HashMap::with_max_entries(MAX_PID,0); +static mut CAPABILITIES_MAP: HashMap = HashMap::with_max_entries(MAX_PID, 0); #[map] -static mut UID_GID_MAP: HashMap = HashMap::with_max_entries(MAX_PID,0); +static mut UID_GID_MAP: HashMap = HashMap::with_max_entries(MAX_PID, 0); #[map] -static mut PPID_MAP: HashMap = HashMap::with_max_entries(MAX_PID,0); +static mut PPID_MAP: HashMap = HashMap::with_max_entries(MAX_PID, 0); #[map] -static mut PNSID_NSID_MAP: HashMap = HashMap::with_max_entries(MAX_PID,0); +static mut PNSID_NSID_MAP: HashMap = HashMap::with_max_entries(MAX_PID, 0); #[kprobe] pub fn capable(ctx: ProbeContext) -> u32 { @@ -37,61 +41,64 @@ pub fn capable(ctx: ProbeContext) -> u32 { } fn try_capable(ctx: &ProbeContext) -> Result { - info!(ctx,"capable"); + info!(ctx, "capable"); unsafe { let task: TaskStructPtr = bpf_get_current_task() as TaskStructPtr; - debug!(ctx,"debug1"); + debug!(ctx, "debug1"); let task = bpf_probe_read_kernel(&task)?; - debug!(ctx,"debug2"); + debug!(ctx, "debug2"); let ppid: i32 = get_ppid(task)?; - debug!(ctx,"debug3"); + debug!(ctx, "debug3"); let pid: i32 = bpf_probe_read_kernel(&(*task).pid)? as i32; - debug!(ctx,"debug4"); + debug!(ctx, "debug4"); let cap: u64 = (1 << ctx.arg::(2).unwrap()) as u64; - debug!(ctx,"debug5"); + debug!(ctx, "debug5"); let uid: u64 = bpf_get_current_uid_gid(); - debug!(ctx,"debug6"); + debug!(ctx, "debug6"); let zero = 0; let capval: u64 = *CAPABILITIES_MAP.get(&pid).unwrap_or(&zero); - debug!(ctx,"debug7"); - let pinum_inum :u64 = Into::::into(get_parent_ns_inode(task)?)<<32 | Into::::into(get_ns_inode(task)?); - debug!(ctx,"debug8"); - UID_GID_MAP.insert(&pid, &uid,0).expect("failed to insert uid"); - debug!(ctx,"debug9"); - PNSID_NSID_MAP.insert(&pid, &pinum_inum,0).expect("failed to insert pnsid"); - debug!(ctx,"debug10"); - PPID_MAP.insert(&pid, &ppid,0).expect("failed to insert ppid"); - debug!(ctx,"debug11"); - CAPABILITIES_MAP.insert(&pid, &(capval|cap),0).expect("failed to insert cap"); + debug!(ctx, "debug7"); + let pinum_inum: u64 = Into::::into(get_parent_ns_inode(task)?) << 32 + | Into::::into(get_ns_inode(task)?); + debug!(ctx, "debug8"); + UID_GID_MAP + .insert(&pid, &uid, 0) + .expect("failed to insert uid"); + debug!(ctx, "debug9"); + PNSID_NSID_MAP + .insert(&pid, &pinum_inum, 0) + .expect("failed to insert pnsid"); + debug!(ctx, "debug10"); + PPID_MAP + .insert(&pid, &ppid, 0) + .expect("failed to insert ppid"); + debug!(ctx, "debug11"); + CAPABILITIES_MAP + .insert(&pid, &(capval | cap), 0) + .expect("failed to insert cap"); } Ok(0) - } -unsafe fn get_ppid(task : TaskStructPtr) -> Result { +unsafe fn get_ppid(task: TaskStructPtr) -> Result { let parent_task: TaskStructPtr = get_parent_task(task)?; bpf_probe_read_kernel(&(*parent_task).pid) } -unsafe fn get_parent_task(task : TaskStructPtr) -> Result { +unsafe fn get_parent_task(task: TaskStructPtr) -> Result { bpf_probe_read_kernel(&(*task).parent) } -unsafe fn get_parent_ns_inode(task : TaskStructPtr) -> Result { +unsafe fn get_parent_ns_inode(task: TaskStructPtr) -> Result { let parent_task: TaskStructPtr = get_parent_task(task)?; get_ns_inode(parent_task) } -unsafe fn get_ns_inode(task : TaskStructPtr) -> Result { - let nsp: *mut nsproxy = bpf_probe_read_kernel(&(*task).nsproxy).map_err(|e| { - e as u32 - })?; - let pns: *mut pid_namespace = bpf_probe_read_kernel(&(*nsp).pid_ns_for_children).map_err(|e| { - e as u32 - })?; - let nsc: ns_common = bpf_probe_read_kernel(&(*pns).ns).map_err(|e| { - e as u32 - })?; +unsafe fn get_ns_inode(task: TaskStructPtr) -> Result { + let nsp: *mut nsproxy = bpf_probe_read_kernel(&(*task).nsproxy).map_err(|e| e as u32)?; + let pns: *mut pid_namespace = + bpf_probe_read_kernel(&(*nsp).pid_ns_for_children).map_err(|e| e as u32)?; + let nsc: ns_common = bpf_probe_read_kernel(&(*pns).ns).map_err(|e| e as u32)?; bpf_probe_read_kernel(&nsc.inum) } From 63c196a2c3a1136c15ea4fe4d631beb797b2be5d Mon Sep 17 00:00:00 2001 From: LeChatP Date: Sat, 8 Jun 2024 22:02:56 +0200 Subject: [PATCH 26/31] some tests --- src/chsr/cli/mod.rs | 2 +- src/chsr/cli/pair.rs | 3 +- src/chsr/cli/usage.rs | 5 +- src/chsr/main.rs | 1 + src/chsr/util.rs | 71 +++++++++++++++++++ src/util.rs | 154 +++++++++++++++++++++++------------------- 6 files changed, 164 insertions(+), 72 deletions(-) create mode 100644 src/chsr/util.rs diff --git a/src/chsr/cli/mod.rs b/src/chsr/cli/mod.rs index 52b06faa..c16300b1 100644 --- a/src/chsr/cli/mod.rs +++ b/src/chsr/cli/mod.rs @@ -13,7 +13,7 @@ use process::process_input; use tracing::debug; use usage::print_usage; -use crate::common::{config::Storage, util::escape_parser_string_vec}; +use crate::{common::config::Storage, util::escape_parser_string_vec}; pub fn main(storage: &Storage, args: I) -> Result> where diff --git a/src/chsr/cli/pair.rs b/src/chsr/cli/pair.rs index 86ce1883..4d011027 100644 --- a/src/chsr/cli/pair.rs +++ b/src/chsr/cli/pair.rs @@ -425,8 +425,9 @@ mod test { }, common::{ database::structs::SActor, - util::{underline, BOLD, RED, RST}, + util::{BOLD, RED, RST}, }, + util::underline, }; use super::Inputs; diff --git a/src/chsr/cli/usage.rs b/src/chsr/cli/usage.rs index 1cd92fc3..3af27183 100644 --- a/src/chsr/cli/usage.rs +++ b/src/chsr/cli/usage.rs @@ -4,7 +4,10 @@ use const_format::formatcp; use tracing::debug; use super::data::Rule; -use crate::common::util::{underline, BOLD, RED, RST, UNDERLINE}; +use crate::{ + common::util::{BOLD, RED, RST, UNDERLINE}, + util::underline, +}; const LONG_ABOUT: &str = "Role Manager is a tool to configure RBAC for RootAsRole. A role is a set of tasks that can be executed by a user or a group of users. diff --git a/src/chsr/main.rs b/src/chsr/main.rs index 8daa24ff..660ba584 100644 --- a/src/chsr/main.rs +++ b/src/chsr/main.rs @@ -13,6 +13,7 @@ use tracing::{debug, error}; mod cli; #[path = "../mod.rs"] mod common; +mod util; #[cfg(not(tarpaulin_include))] fn main() -> Result<(), Box> { diff --git a/src/chsr/util.rs b/src/chsr/util.rs new file mode 100644 index 00000000..c9e1a87d --- /dev/null +++ b/src/chsr/util.rs @@ -0,0 +1,71 @@ +use std::mem; + +use pest::{error::LineColLocation, RuleType}; + +use crate::common::util::escape_parser_string; + +fn start(error: &pest::error::Error) -> (usize, usize) +where + R: RuleType, +{ + match error.line_col { + LineColLocation::Pos(line_col) => line_col, + LineColLocation::Span(start_line_col, _) => start_line_col, + } +} + +pub fn underline(error: &pest::error::Error) -> String +where + R: RuleType, +{ + let mut underline = String::new(); + + let mut start = start(error).1; + let end = match error.line_col { + LineColLocation::Span(_, (_, mut end)) => { + let inverted_cols = start > end; + if inverted_cols { + mem::swap(&mut start, &mut end); + start -= 1; + end += 1; + } + + Some(end) + } + _ => None, + }; + let offset = start - 1; + let line_chars = error.line().chars(); + + for c in line_chars.take(offset) { + match c { + '\t' => underline.push('\t'), + _ => underline.push(' '), + } + } + + if let Some(end) = end { + underline.push('^'); + if end - start > 1 { + for _ in 2..(end - start) { + underline.push('-'); + } + underline.push('^'); + } + } else { + underline.push_str("^---") + } + + underline +} + +pub fn escape_parser_string_vec(s: I) -> String +where + I: IntoIterator, + S: AsRef, +{ + s.into_iter() + .map(|s| escape_parser_string(s)) + .collect::>() + .join(" ") +} diff --git a/src/util.rs b/src/util.rs index 150deb05..a94770fd 100644 --- a/src/util.rs +++ b/src/util.rs @@ -1,8 +1,7 @@ -use std::{error::Error, fs::File, mem, os::fd::AsRawFd, path::PathBuf}; +use std::{error::Error, fs::File, os::fd::AsRawFd, path::PathBuf}; use capctl::{Cap, CapSet, ParseCapError}; use libc::{FS_IOC_GETFLAGS, FS_IOC_SETFLAGS}; -use pest::{error::LineColLocation, RuleType}; use tracing::{debug, warn}; use crate::common::{ @@ -134,17 +133,6 @@ pub fn capabilities_are_exploitable(caps: &CapSet) -> bool { || caps.has(Cap::MKNOD) } -pub fn escape_parser_string_vec(s: I) -> String -where - I: IntoIterator, - S: AsRef, -{ - s.into_iter() - .map(|s| escape_parser_string(s)) - .collect::>() - .join(" ") -} - pub fn escape_parser_string(s: S) -> String where S: AsRef, @@ -164,68 +152,96 @@ fn remove_outer_quotes(input: &str) -> String { } #[cfg(test)] -pub(super) mod test { - pub fn test_resources_folder() -> std::path::PathBuf { - std::path::PathBuf::from(env!("CARGO_MANIFEST_DIR")) - .join("tests") - .join("resources") - } - pub fn test_resources_file(filename: &str) -> String { - test_resources_folder().join(filename).display().to_string() - } -} +mod test { + use std::fs; -fn start(error: &pest::error::Error) -> (usize, usize) -where - R: RuleType, -{ - match error.line_col { - LineColLocation::Pos(line_col) => line_col, - LineColLocation::Span(start_line_col, _) => start_line_col, - } -} + use capctl::CapState; -pub fn underline(error: &pest::error::Error) -> String -where - R: RuleType, -{ - let mut underline = String::new(); - - let mut start = start(error).1; - let end = match error.line_col { - LineColLocation::Span(_, (_, mut end)) => { - let inverted_cols = start > end; - if inverted_cols { - mem::swap(&mut start, &mut end); - start -= 1; - end += 1; - } + use super::*; - Some(end) - } - _ => None, - }; - let offset = start - 1; - let line_chars = error.line().chars(); + #[test] + fn test_remove_outer_quotes() { + assert_eq!(remove_outer_quotes("'test'"), "test"); + assert_eq!(remove_outer_quotes("\"test\""), "test"); + assert_eq!(remove_outer_quotes("test"), "test"); + assert_eq!(remove_outer_quotes("t'est"), "t'est"); + assert_eq!(remove_outer_quotes("t\"est"), "t\"est"); + } - for c in line_chars.take(offset) { - match c { - '\t' => underline.push('\t'), - _ => underline.push(' '), - } + #[test] + fn test_parse_capset_iter() { + let capset = parse_capset_iter( + vec!["CAP_SYS_ADMIN", "CAP_SYS_PTRACE", "CAP_DAC_READ_SEARCH"].into_iter(), + ) + .expect("Failed to parse capset"); + assert!(capset.has(Cap::SYS_ADMIN)); + assert!(capset.has(Cap::SYS_PTRACE)); + assert!(capset.has(Cap::DAC_READ_SEARCH)); } - if let Some(end) = end { - underline.push('^'); - if end - start > 1 { - for _ in 2..(end - start) { - underline.push('-'); - } - underline.push('^'); - } - } else { - underline.push_str("^---") + #[test] + fn test_capabilities_are_exploitable() { + let mut capset = CapSet::empty(); + capset.add(Cap::SYS_ADMIN); + assert!(capabilities_are_exploitable(&capset)); + capset.clear(); + capset.add(Cap::SYS_PTRACE); + assert!(capabilities_are_exploitable(&capset)); + capset.clear(); + capset.add(Cap::SYS_MODULE); + assert!(capabilities_are_exploitable(&capset)); + capset.clear(); + capset.add(Cap::DAC_READ_SEARCH); + assert!(capabilities_are_exploitable(&capset)); + capset.clear(); + capset.add(Cap::DAC_OVERRIDE); + assert!(capabilities_are_exploitable(&capset)); + capset.clear(); + capset.add(Cap::FOWNER); + assert!(capabilities_are_exploitable(&capset)); + capset.clear(); + capset.add(Cap::CHOWN); + assert!(capabilities_are_exploitable(&capset)); + capset.clear(); + capset.add(Cap::SETUID); + assert!(capabilities_are_exploitable(&capset)); + capset.clear(); + capset.add(Cap::SETGID); + assert!(capabilities_are_exploitable(&capset)); + capset.clear(); + capset.add(Cap::SETFCAP); + assert!(capabilities_are_exploitable(&capset)); + capset.clear(); + capset.add(Cap::SYS_RAWIO); + assert!(capabilities_are_exploitable(&capset)); + capset.clear(); + capset.add(Cap::LINUX_IMMUTABLE); + assert!(capabilities_are_exploitable(&capset)); + capset.clear(); + capset.add(Cap::SYS_CHROOT); + assert!(capabilities_are_exploitable(&capset)); + capset.clear(); + capset.add(Cap::SYS_BOOT); + assert!(capabilities_are_exploitable(&capset)); + capset.clear(); + capset.add(Cap::MKNOD); + assert!(capabilities_are_exploitable(&capset)); + capset.clear(); + capset.add(Cap::WAKE_ALARM); + assert!(!capabilities_are_exploitable(&capset)); } - underline + #[test] + fn test_toggle_lock_config() { + let path = PathBuf::from("/tmp/test"); + File::create(&path).expect("Failed to create file"); + let res = toggle_lock_config(&path, true); + let capstate = CapState::get_current().expect("Failed to get current capstate"); + if capstate.effective.has(Cap::LINUX_IMMUTABLE) { + assert!(res.is_ok()); + } else { + assert!(res.is_err()); + } + fs::remove_file(&path).expect("Failed to remove file"); + } } From 98a55353857beda1c4ecbc8072c160eb3c110335 Mon Sep 17 00:00:00 2001 From: LeChatP Date: Mon, 10 Jun 2024 10:22:23 +0200 Subject: [PATCH 27/31] Add tests privileged --- .github/workflows/tests.yml | 11 +++++++++ src/config.rs | 6 ++--- src/database/mod.rs | 6 ++--- src/util.rs | 49 +++++++++++++++++++++++++++++++------ 4 files changed, 59 insertions(+), 13 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 9093aabf..f7c72107 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -40,3 +40,14 @@ jobs: with: file: cobertura.xml flags: unittests + + - name: run tests with coverage as Admin + run: sudo -E cargo +nightly tarpaulin --verbose --all-features --workspace --timeout 120 --bin chsr --bin sr --exclude-files capable* capable-ebpf/src/vmlinux.rs capable/src/main.rs build.rs --out Xml + + - name: Upload coverage reports to Codecov as Admin + uses: codecov/codecov-action@v3 + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + with: + file: cobertura.xml + flags: admin-unittests \ No newline at end of file diff --git a/src/config.rs b/src/config.rs index f3089614..91e98574 100644 --- a/src/config.rs +++ b/src/config.rs @@ -59,7 +59,7 @@ use tracing::debug; use crate::{ common::{ - dac_override_effective, open_with_privileges, read_effective, util::toggle_lock_config, + dac_override_effective, open_with_privileges, read_effective, util::{toggle_lock_config, ImmutableLock}, write_json_config, }, rc_refcell, @@ -218,7 +218,7 @@ pub fn save_settings(settings: Rc>) -> Result<(), Box>) -> Result<(), Box Result<(), String> { +#[derive(Debug, EnumIs)] +pub enum ImmutableLock { + Set, + Unset, +} + + +/// Set or unset the immutable flag on a file +/// # Arguments +/// * `file` - The file to set the immutable flag on +/// * `lock` - Whether to set or unset the immutable flag +pub fn toggle_lock_config(file: &PathBuf, lock: ImmutableLock) -> Result<(), String> { let file = match open_with_privileges(file) { Err(e) => return Err(e.to_string()), Ok(f) => f, @@ -54,7 +66,7 @@ pub fn toggle_lock_config(file: &PathBuf, lock: bool) -> Result<(), String> { if unsafe { nix::libc::ioctl(fd, FS_IOC_GETFLAGS, &mut val) } < 0 { return Err(std::io::Error::last_os_error().to_string()); } - if lock { + if lock.is_unset() { val &= !(FS_IMMUTABLE_FL); } else { val |= FS_IMMUTABLE_FL; @@ -234,14 +246,37 @@ mod test { #[test] fn test_toggle_lock_config() { let path = PathBuf::from("/tmp/test"); - File::create(&path).expect("Failed to create file"); - let res = toggle_lock_config(&path, true); - let capstate = CapState::get_current().expect("Failed to get current capstate"); - if capstate.effective.has(Cap::LINUX_IMMUTABLE) { + let file = File::create(&path).expect("Failed to create file"); + let res = toggle_lock_config(&path, ImmutableLock::Set); + let status = fs::read_to_string("/proc/self/status").unwrap(); + let capeff = status + .lines() + .find(|line| line.starts_with("CapEff:")) + .expect("Failed to find CapEff line"); + let effhex = capeff.split(':').last().expect("Failed to get effective capabilities").trim(); + let eff = u64::from_str_radix(effhex, 16).expect("Failed to parse effective capabilities"); + if eff & ((1 << Cap::LINUX_IMMUTABLE as u8) as u64) != 0 { assert!(res.is_ok()); } else { assert!(res.is_err()); + // stop test + return; } - fs::remove_file(&path).expect("Failed to remove file"); + let mut val = 0; + let fd = file.as_raw_fd(); + if unsafe { nix::libc::ioctl(fd, FS_IOC_GETFLAGS, &mut val) } < 0 { + panic!("Failed to get flags"); + } + assert_eq!(val & FS_IMMUTABLE_FL, FS_IMMUTABLE_FL); + //test to write on file + let file = File::create(&path); + assert!(file.is_err()); + let res = toggle_lock_config(&path, ImmutableLock::Unset); + assert!(res.is_ok()); + let file = File::create(&path); + assert!(file.is_ok()); + let res = fs::remove_file(&path); + assert!(res.is_ok()); + } } From b3892a9ae737be313fc0d1dd00e0bc5d362b5d50 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 08:25:48 +0000 Subject: [PATCH 28/31] Format Rust code using rustfmt --- src/config.rs | 3 ++- src/util.rs | 8 +++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/config.rs b/src/config.rs index 91e98574..a0532a77 100644 --- a/src/config.rs +++ b/src/config.rs @@ -59,7 +59,8 @@ use tracing::debug; use crate::{ common::{ - dac_override_effective, open_with_privileges, read_effective, util::{toggle_lock_config, ImmutableLock}, + dac_override_effective, open_with_privileges, read_effective, + util::{toggle_lock_config, ImmutableLock}, write_json_config, }, rc_refcell, diff --git a/src/util.rs b/src/util.rs index c37b442e..11ea73a4 100644 --- a/src/util.rs +++ b/src/util.rs @@ -51,7 +51,6 @@ pub enum ImmutableLock { Unset, } - /// Set or unset the immutable flag on a file /// # Arguments /// * `file` - The file to set the immutable flag on @@ -253,7 +252,11 @@ mod test { .lines() .find(|line| line.starts_with("CapEff:")) .expect("Failed to find CapEff line"); - let effhex = capeff.split(':').last().expect("Failed to get effective capabilities").trim(); + let effhex = capeff + .split(':') + .last() + .expect("Failed to get effective capabilities") + .trim(); let eff = u64::from_str_radix(effhex, 16).expect("Failed to parse effective capabilities"); if eff & ((1 << Cap::LINUX_IMMUTABLE as u8) as u64) != 0 { assert!(res.is_ok()); @@ -277,6 +280,5 @@ mod test { assert!(file.is_ok()); let res = fs::remove_file(&path); assert!(res.is_ok()); - } } From 3859991bb46a2381b4d493e3a801d97749cc9113 Mon Sep 17 00:00:00 2001 From: LeChatP Date: Mon, 10 Jun 2024 12:23:08 +0200 Subject: [PATCH 29/31] chore: Update tests.yml to install dependencies as root for admin tests --- .github/workflows/tests.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index f7c72107..2856504f 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -27,6 +27,9 @@ jobs: - name: Install Dependencies run: ./dependencies.sh -yd + - name: Install Dependencies as root (for tests as admin) + run: sudo ./dependencies.sh -yd + - name: Install file configuration run: sudo bash ./configure.sh -yd From feb6cc0db437bcc57a29a32b8dce863a91b895fe Mon Sep 17 00:00:00 2001 From: LeChatP Date: Mon, 10 Jun 2024 13:10:37 +0200 Subject: [PATCH 30/31] Use absolute path instead of reinstalling rust as root --- .github/workflows/tests.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 2856504f..275a0a21 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -27,9 +27,6 @@ jobs: - name: Install Dependencies run: ./dependencies.sh -yd - - name: Install Dependencies as root (for tests as admin) - run: sudo ./dependencies.sh -yd - - name: Install file configuration run: sudo bash ./configure.sh -yd @@ -45,7 +42,7 @@ jobs: flags: unittests - name: run tests with coverage as Admin - run: sudo -E cargo +nightly tarpaulin --verbose --all-features --workspace --timeout 120 --bin chsr --bin sr --exclude-files capable* capable-ebpf/src/vmlinux.rs capable/src/main.rs build.rs --out Xml + run: sudo -E /github/home/.cargo/bin/cargo +nightly tarpaulin --verbose --all-features --workspace --timeout 120 --bin chsr --bin sr --exclude-files capable* capable-ebpf/src/vmlinux.rs capable/src/main.rs build.rs --out Xml - name: Upload coverage reports to Codecov as Admin uses: codecov/codecov-action@v3 From 25cae4341a3f53a833479e1c1a0d6902a8b05d7f Mon Sep 17 00:00:00 2001 From: LeChatP Date: Mon, 10 Jun 2024 14:02:29 +0200 Subject: [PATCH 31/31] fix path for cargo --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 275a0a21..0dcb81b0 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -42,7 +42,7 @@ jobs: flags: unittests - name: run tests with coverage as Admin - run: sudo -E /github/home/.cargo/bin/cargo +nightly tarpaulin --verbose --all-features --workspace --timeout 120 --bin chsr --bin sr --exclude-files capable* capable-ebpf/src/vmlinux.rs capable/src/main.rs build.rs --out Xml + run: sudo -E /usr/local/cargo/bin/cargo +nightly tarpaulin --verbose --all-features --workspace --timeout 120 --bin chsr --bin sr --exclude-files capable* capable-ebpf/src/vmlinux.rs capable/src/main.rs build.rs --out Xml - name: Upload coverage reports to Codecov as Admin uses: codecov/codecov-action@v3