Browse Source

bpf: add aya-bpf-bindings

Move the generated bindings to aya-bpf-bindings.
Alessandro Decina 4 years ago
parent
commit
7815711196

+ 1 - 1
bpf/Cargo.toml

@@ -1,2 +1,2 @@
 [workspace]
-members = ["aya-bpf", "aya-bpf-macros"]
+members = ["aya-bpf", "aya-bpf-macros", "aya-bpf-bindings"]

+ 9 - 0
bpf/aya-bpf-bindings/Cargo.toml

@@ -0,0 +1,9 @@
+[package]
+name = "aya-bpf-bindings"
+version = "0.1.0"
+authors = ["Alessandro Decina <[email protected]>"]
+edition = "2018"
+
+[dependencies]
+aya-bpf-cty = { path = "../aya-bpf-cty" }
+

+ 9 - 0
bpf/aya-bpf-bindings/build.rs

@@ -0,0 +1,9 @@
+use std::env;
+
+fn main() {
+    if !env::var("CARGO_CFG_BPF_TARGET_ARCH").is_ok() {
+        let arch = env::var("HOST").unwrap();
+        let arch = arch.splitn(2, "-").next().unwrap();
+        println!("cargo:rustc-cfg=bpf_target_arch=\"{}\"", arch);
+    }
+}

+ 0 - 0
bpf/aya-bpf/include/aya_bpf_bindings.h → bpf/aya-bpf-bindings/include/bindings.h


+ 21 - 0
bpf/aya-bpf-bindings/src/aarch64/mod.rs

@@ -0,0 +1,21 @@
+pub mod bindings;
+pub mod getters;
+pub mod helpers;
+
+use aya_bpf_cty::{c_long, c_void};
+use core::mem::{self, MaybeUninit};
+
+#[inline]
+unsafe fn bpf_probe_read<T>(src: *const T) -> Result<T, c_long> {
+    let mut v: MaybeUninit<T> = MaybeUninit::uninit();
+    let ret = helpers::bpf_probe_read(
+        v.as_mut_ptr() as *mut c_void,
+        mem::size_of::<T>() as u32,
+        src as *const c_void,
+    );
+    if ret < 0 {
+        return Err(ret);
+    }
+
+    Ok(v.assume_init())
+}

+ 32 - 0
bpf/aya-bpf-bindings/src/lib.rs

@@ -0,0 +1,32 @@
+#![no_std]
+#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
+
+#[cfg(bpf_target_arch = "x86_64")]
+mod x86_64;
+
+#[cfg(bpf_target_arch = "aarch64")]
+mod aarch64;
+
+#[cfg(bpf_target_arch = "x86_64")]
+pub use x86_64::*;
+
+#[cfg(bpf_target_arch = "aarch64")]
+pub use aarch64::*;
+
+use aya_bpf_cty::{c_long, c_void};
+use core::mem::{self, MaybeUninit};
+
+#[inline]
+unsafe fn bpf_probe_read<T>(src: *const T) -> Result<T, c_long> {
+    let mut v: MaybeUninit<T> = MaybeUninit::uninit();
+    let ret = helpers::bpf_probe_read(
+        v.as_mut_ptr() as *mut c_void,
+        mem::size_of::<T>() as u32,
+        src as *const c_void,
+    );
+    if ret < 0 {
+        return Err(ret);
+    }
+
+    Ok(v.assume_init())
+}

+ 3 - 0
bpf/aya-bpf-bindings/src/x86_64/mod.rs

@@ -0,0 +1,3 @@
+pub mod bindings;
+pub mod getters;
+pub mod helpers;

+ 1 - 0
bpf/aya-bpf/Cargo.toml

@@ -7,3 +7,4 @@ edition = "2018"
 [dependencies]
 aya-bpf-cty = { path = "../aya-bpf-cty" }
 aya-bpf-macros = { path = "../aya-bpf-macros" }
+aya-bpf-bindings = { path = "../aya-bpf-bindings" }

+ 0 - 932
bpf/aya-bpf/src/bpf/generated/bindings.rs

@@ -1,932 +0,0 @@
-#[repr(C)]
-#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
-pub struct __BindgenBitfieldUnit<Storage> {
-    storage: Storage,
-}
-impl<Storage> __BindgenBitfieldUnit<Storage> {
-    #[inline]
-    pub const fn new(storage: Storage) -> Self {
-        Self { storage }
-    }
-}
-impl<Storage> __BindgenBitfieldUnit<Storage>
-where
-    Storage: AsRef<[u8]> + AsMut<[u8]>,
-{
-    #[inline]
-    pub fn get_bit(&self, index: usize) -> bool {
-        debug_assert!(index / 8 < self.storage.as_ref().len());
-        let byte_index = index / 8;
-        let byte = self.storage.as_ref()[byte_index];
-        let bit_index = if cfg!(target_endian = "big") {
-            7 - (index % 8)
-        } else {
-            index % 8
-        };
-        let mask = 1 << bit_index;
-        byte & mask == mask
-    }
-    #[inline]
-    pub fn set_bit(&mut self, index: usize, val: bool) {
-        debug_assert!(index / 8 < self.storage.as_ref().len());
-        let byte_index = index / 8;
-        let byte = &mut self.storage.as_mut()[byte_index];
-        let bit_index = if cfg!(target_endian = "big") {
-            7 - (index % 8)
-        } else {
-            index % 8
-        };
-        let mask = 1 << bit_index;
-        if val {
-            *byte |= mask;
-        } else {
-            *byte &= !mask;
-        }
-    }
-    #[inline]
-    pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
-        debug_assert!(bit_width <= 64);
-        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
-        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
-        let mut val = 0;
-        for i in 0..(bit_width as usize) {
-            if self.get_bit(i + bit_offset) {
-                let index = if cfg!(target_endian = "big") {
-                    bit_width as usize - 1 - i
-                } else {
-                    i
-                };
-                val |= 1 << index;
-            }
-        }
-        val
-    }
-    #[inline]
-    pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
-        debug_assert!(bit_width <= 64);
-        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
-        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
-        for i in 0..(bit_width as usize) {
-            let mask = 1 << i;
-            let val_bit_is_set = val & mask == mask;
-            let index = if cfg!(target_endian = "big") {
-                bit_width as usize - 1 - i
-            } else {
-                i
-            };
-            self.set_bit(index + bit_offset, val_bit_is_set);
-        }
-    }
-}
-pub const BPF_LD: u32 = 0;
-pub const BPF_LDX: u32 = 1;
-pub const BPF_ST: u32 = 2;
-pub const BPF_STX: u32 = 3;
-pub const BPF_ALU: u32 = 4;
-pub const BPF_JMP: u32 = 5;
-pub const BPF_RET: u32 = 6;
-pub const BPF_MISC: u32 = 7;
-pub const BPF_W: u32 = 0;
-pub const BPF_H: u32 = 8;
-pub const BPF_B: u32 = 16;
-pub const BPF_IMM: u32 = 0;
-pub const BPF_ABS: u32 = 32;
-pub const BPF_IND: u32 = 64;
-pub const BPF_MEM: u32 = 96;
-pub const BPF_LEN: u32 = 128;
-pub const BPF_MSH: u32 = 160;
-pub const BPF_ADD: u32 = 0;
-pub const BPF_SUB: u32 = 16;
-pub const BPF_MUL: u32 = 32;
-pub const BPF_DIV: u32 = 48;
-pub const BPF_OR: u32 = 64;
-pub const BPF_AND: u32 = 80;
-pub const BPF_LSH: u32 = 96;
-pub const BPF_RSH: u32 = 112;
-pub const BPF_NEG: u32 = 128;
-pub const BPF_MOD: u32 = 144;
-pub const BPF_XOR: u32 = 160;
-pub const BPF_JA: u32 = 0;
-pub const BPF_JEQ: u32 = 16;
-pub const BPF_JGT: u32 = 32;
-pub const BPF_JGE: u32 = 48;
-pub const BPF_JSET: u32 = 64;
-pub const BPF_K: u32 = 0;
-pub const BPF_X: u32 = 8;
-pub const BPF_MAXINSNS: u32 = 4096;
-pub const BPF_JMP32: u32 = 6;
-pub const BPF_ALU64: u32 = 7;
-pub const BPF_DW: u32 = 24;
-pub const BPF_XADD: u32 = 192;
-pub const BPF_MOV: u32 = 176;
-pub const BPF_ARSH: u32 = 192;
-pub const BPF_END: u32 = 208;
-pub const BPF_TO_LE: u32 = 0;
-pub const BPF_TO_BE: u32 = 8;
-pub const BPF_FROM_LE: u32 = 0;
-pub const BPF_FROM_BE: u32 = 8;
-pub const BPF_JNE: u32 = 80;
-pub const BPF_JLT: u32 = 160;
-pub const BPF_JLE: u32 = 176;
-pub const BPF_JSGT: u32 = 96;
-pub const BPF_JSGE: u32 = 112;
-pub const BPF_JSLT: u32 = 192;
-pub const BPF_JSLE: u32 = 208;
-pub const BPF_CALL: u32 = 128;
-pub const BPF_EXIT: u32 = 144;
-pub const BPF_F_ALLOW_OVERRIDE: u32 = 1;
-pub const BPF_F_ALLOW_MULTI: u32 = 2;
-pub const BPF_F_REPLACE: u32 = 4;
-pub const BPF_F_STRICT_ALIGNMENT: u32 = 1;
-pub const BPF_F_ANY_ALIGNMENT: u32 = 2;
-pub const BPF_F_TEST_RND_HI32: u32 = 4;
-pub const BPF_F_TEST_STATE_FREQ: u32 = 8;
-pub const BPF_PSEUDO_MAP_FD: u32 = 1;
-pub const BPF_PSEUDO_MAP_VALUE: u32 = 2;
-pub const BPF_PSEUDO_CALL: u32 = 1;
-pub const BPF_F_QUERY_EFFECTIVE: u32 = 1;
-pub const BPF_BUILD_ID_SIZE: u32 = 20;
-pub const BPF_OBJ_NAME_LEN: u32 = 16;
-pub const BPF_TAG_SIZE: u32 = 8;
-pub type __u8 = ::aya_bpf_cty::c_uchar;
-pub type __u16 = ::aya_bpf_cty::c_ushort;
-pub type __s32 = ::aya_bpf_cty::c_int;
-pub type __u32 = ::aya_bpf_cty::c_uint;
-pub type __s64 = ::aya_bpf_cty::c_longlong;
-pub type __u64 = ::aya_bpf_cty::c_ulonglong;
-pub type __be16 = __u16;
-pub type __be32 = __u32;
-pub type __wsum = __u32;
-pub const BPF_REG_0: ::aya_bpf_cty::c_uint = 0;
-pub const BPF_REG_1: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_REG_2: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_REG_3: ::aya_bpf_cty::c_uint = 3;
-pub const BPF_REG_4: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_REG_5: ::aya_bpf_cty::c_uint = 5;
-pub const BPF_REG_6: ::aya_bpf_cty::c_uint = 6;
-pub const BPF_REG_7: ::aya_bpf_cty::c_uint = 7;
-pub const BPF_REG_8: ::aya_bpf_cty::c_uint = 8;
-pub const BPF_REG_9: ::aya_bpf_cty::c_uint = 9;
-pub const BPF_REG_10: ::aya_bpf_cty::c_uint = 10;
-pub const __MAX_BPF_REG: ::aya_bpf_cty::c_uint = 11;
-pub type _bindgen_ty_1 = ::aya_bpf_cty::c_uint;
-pub const BPF_MAP_TYPE_UNSPEC: bpf_map_type = 0;
-pub const BPF_MAP_TYPE_HASH: bpf_map_type = 1;
-pub const BPF_MAP_TYPE_ARRAY: bpf_map_type = 2;
-pub const BPF_MAP_TYPE_PROG_ARRAY: bpf_map_type = 3;
-pub const BPF_MAP_TYPE_PERF_EVENT_ARRAY: bpf_map_type = 4;
-pub const BPF_MAP_TYPE_PERCPU_HASH: bpf_map_type = 5;
-pub const BPF_MAP_TYPE_PERCPU_ARRAY: bpf_map_type = 6;
-pub const BPF_MAP_TYPE_STACK_TRACE: bpf_map_type = 7;
-pub const BPF_MAP_TYPE_CGROUP_ARRAY: bpf_map_type = 8;
-pub const BPF_MAP_TYPE_LRU_HASH: bpf_map_type = 9;
-pub const BPF_MAP_TYPE_LRU_PERCPU_HASH: bpf_map_type = 10;
-pub const BPF_MAP_TYPE_LPM_TRIE: bpf_map_type = 11;
-pub const BPF_MAP_TYPE_ARRAY_OF_MAPS: bpf_map_type = 12;
-pub const BPF_MAP_TYPE_HASH_OF_MAPS: bpf_map_type = 13;
-pub const BPF_MAP_TYPE_DEVMAP: bpf_map_type = 14;
-pub const BPF_MAP_TYPE_SOCKMAP: bpf_map_type = 15;
-pub const BPF_MAP_TYPE_CPUMAP: bpf_map_type = 16;
-pub const BPF_MAP_TYPE_XSKMAP: bpf_map_type = 17;
-pub const BPF_MAP_TYPE_SOCKHASH: bpf_map_type = 18;
-pub const BPF_MAP_TYPE_CGROUP_STORAGE: bpf_map_type = 19;
-pub const BPF_MAP_TYPE_REUSEPORT_SOCKARRAY: bpf_map_type = 20;
-pub const BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE: bpf_map_type = 21;
-pub const BPF_MAP_TYPE_QUEUE: bpf_map_type = 22;
-pub const BPF_MAP_TYPE_STACK: bpf_map_type = 23;
-pub const BPF_MAP_TYPE_SK_STORAGE: bpf_map_type = 24;
-pub const BPF_MAP_TYPE_DEVMAP_HASH: bpf_map_type = 25;
-pub const BPF_MAP_TYPE_STRUCT_OPS: bpf_map_type = 26;
-pub const BPF_MAP_TYPE_RINGBUF: bpf_map_type = 27;
-pub type bpf_map_type = ::aya_bpf_cty::c_uint;
-pub const BPF_ANY: ::aya_bpf_cty::c_uint = 0;
-pub const BPF_NOEXIST: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_EXIST: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_F_LOCK: ::aya_bpf_cty::c_uint = 4;
-pub type _bindgen_ty_2 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_NO_PREALLOC: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_F_NO_COMMON_LRU: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_F_NUMA_NODE: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_F_RDONLY: ::aya_bpf_cty::c_uint = 8;
-pub const BPF_F_WRONLY: ::aya_bpf_cty::c_uint = 16;
-pub const BPF_F_STACK_BUILD_ID: ::aya_bpf_cty::c_uint = 32;
-pub const BPF_F_ZERO_SEED: ::aya_bpf_cty::c_uint = 64;
-pub const BPF_F_RDONLY_PROG: ::aya_bpf_cty::c_uint = 128;
-pub const BPF_F_WRONLY_PROG: ::aya_bpf_cty::c_uint = 256;
-pub const BPF_F_CLONE: ::aya_bpf_cty::c_uint = 512;
-pub const BPF_F_MMAPABLE: ::aya_bpf_cty::c_uint = 1024;
-pub type _bindgen_ty_3 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_RECOMPUTE_CSUM: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_F_INVALIDATE_HASH: ::aya_bpf_cty::c_uint = 2;
-pub type _bindgen_ty_4 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_HDR_FIELD_MASK: ::aya_bpf_cty::c_uint = 15;
-pub type _bindgen_ty_5 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_PSEUDO_HDR: ::aya_bpf_cty::c_uint = 16;
-pub const BPF_F_MARK_MANGLED_0: ::aya_bpf_cty::c_uint = 32;
-pub const BPF_F_MARK_ENFORCE: ::aya_bpf_cty::c_uint = 64;
-pub type _bindgen_ty_6 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_INGRESS: ::aya_bpf_cty::c_uint = 1;
-pub type _bindgen_ty_7 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_TUNINFO_IPV6: ::aya_bpf_cty::c_uint = 1;
-pub type _bindgen_ty_8 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_SKIP_FIELD_MASK: ::aya_bpf_cty::c_uint = 255;
-pub const BPF_F_USER_STACK: ::aya_bpf_cty::c_uint = 256;
-pub const BPF_F_FAST_STACK_CMP: ::aya_bpf_cty::c_uint = 512;
-pub const BPF_F_REUSE_STACKID: ::aya_bpf_cty::c_uint = 1024;
-pub const BPF_F_USER_BUILD_ID: ::aya_bpf_cty::c_uint = 2048;
-pub type _bindgen_ty_9 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_ZERO_CSUM_TX: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_F_DONT_FRAGMENT: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_F_SEQ_NUMBER: ::aya_bpf_cty::c_uint = 8;
-pub type _bindgen_ty_10 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_INDEX_MASK: ::aya_bpf_cty::c_ulong = 4294967295;
-pub const BPF_F_CURRENT_CPU: ::aya_bpf_cty::c_ulong = 4294967295;
-pub const BPF_F_CTXLEN_MASK: ::aya_bpf_cty::c_ulong = 4503595332403200;
-pub type _bindgen_ty_11 = ::aya_bpf_cty::c_ulong;
-pub const BPF_F_CURRENT_NETNS: ::aya_bpf_cty::c_int = -1;
-pub type _bindgen_ty_12 = ::aya_bpf_cty::c_int;
-pub const BPF_CSUM_LEVEL_QUERY: ::aya_bpf_cty::c_uint = 0;
-pub const BPF_CSUM_LEVEL_INC: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_CSUM_LEVEL_DEC: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_CSUM_LEVEL_RESET: ::aya_bpf_cty::c_uint = 3;
-pub type _bindgen_ty_13 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_ADJ_ROOM_FIXED_GSO: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: ::aya_bpf_cty::c_uint = 8;
-pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: ::aya_bpf_cty::c_uint = 16;
-pub const BPF_F_ADJ_ROOM_NO_CSUM_RESET: ::aya_bpf_cty::c_uint = 32;
-pub type _bindgen_ty_14 = ::aya_bpf_cty::c_uint;
-pub const BPF_ADJ_ROOM_ENCAP_L2_MASK: ::aya_bpf_cty::c_uint = 255;
-pub const BPF_ADJ_ROOM_ENCAP_L2_SHIFT: ::aya_bpf_cty::c_uint = 56;
-pub type _bindgen_ty_15 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_SYSCTL_BASE_NAME: ::aya_bpf_cty::c_uint = 1;
-pub type _bindgen_ty_16 = ::aya_bpf_cty::c_uint;
-pub const BPF_SK_STORAGE_GET_F_CREATE: ::aya_bpf_cty::c_uint = 1;
-pub type _bindgen_ty_17 = ::aya_bpf_cty::c_uint;
-pub const BPF_F_GET_BRANCH_RECORDS_SIZE: ::aya_bpf_cty::c_uint = 1;
-pub type _bindgen_ty_18 = ::aya_bpf_cty::c_uint;
-pub const BPF_RB_NO_WAKEUP: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_RB_FORCE_WAKEUP: ::aya_bpf_cty::c_uint = 2;
-pub type _bindgen_ty_19 = ::aya_bpf_cty::c_uint;
-pub const BPF_RB_AVAIL_DATA: ::aya_bpf_cty::c_uint = 0;
-pub const BPF_RB_RING_SIZE: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_RB_CONS_POS: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_RB_PROD_POS: ::aya_bpf_cty::c_uint = 3;
-pub type _bindgen_ty_20 = ::aya_bpf_cty::c_uint;
-pub const BPF_RINGBUF_BUSY_BIT: ::aya_bpf_cty::c_uint = 2147483648;
-pub const BPF_RINGBUF_DISCARD_BIT: ::aya_bpf_cty::c_uint = 1073741824;
-pub const BPF_RINGBUF_HDR_SZ: ::aya_bpf_cty::c_uint = 8;
-pub type _bindgen_ty_21 = ::aya_bpf_cty::c_uint;
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct __sk_buff {
-    pub len: __u32,
-    pub pkt_type: __u32,
-    pub mark: __u32,
-    pub queue_mapping: __u32,
-    pub protocol: __u32,
-    pub vlan_present: __u32,
-    pub vlan_tci: __u32,
-    pub vlan_proto: __u32,
-    pub priority: __u32,
-    pub ingress_ifindex: __u32,
-    pub ifindex: __u32,
-    pub tc_index: __u32,
-    pub cb: [__u32; 5usize],
-    pub hash: __u32,
-    pub tc_classid: __u32,
-    pub data: __u32,
-    pub data_end: __u32,
-    pub napi_id: __u32,
-    pub family: __u32,
-    pub remote_ip4: __u32,
-    pub local_ip4: __u32,
-    pub remote_ip6: [__u32; 4usize],
-    pub local_ip6: [__u32; 4usize],
-    pub remote_port: __u32,
-    pub local_port: __u32,
-    pub data_meta: __u32,
-    pub __bindgen_anon_1: __sk_buff__bindgen_ty_1,
-    pub tstamp: __u64,
-    pub wire_len: __u32,
-    pub gso_segs: __u32,
-    pub __bindgen_anon_2: __sk_buff__bindgen_ty_2,
-    pub gso_size: __u32,
-}
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub union __sk_buff__bindgen_ty_1 {
-    pub flow_keys: *mut bpf_flow_keys,
-    pub _bitfield_align_1: [u8; 0],
-    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
-    _bindgen_union_align: u64,
-}
-impl __sk_buff__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(Copy, Clone)]
-pub union __sk_buff__bindgen_ty_2 {
-    pub sk: *mut bpf_sock,
-    pub _bitfield_align_1: [u8; 0],
-    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
-    _bindgen_union_align: u64,
-}
-impl __sk_buff__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(Copy, Clone)]
-pub struct bpf_tunnel_key {
-    pub tunnel_id: __u32,
-    pub __bindgen_anon_1: bpf_tunnel_key__bindgen_ty_1,
-    pub tunnel_tos: __u8,
-    pub tunnel_ttl: __u8,
-    pub tunnel_ext: __u16,
-    pub tunnel_label: __u32,
-}
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub union bpf_tunnel_key__bindgen_ty_1 {
-    pub remote_ipv4: __u32,
-    pub remote_ipv6: [__u32; 4usize],
-    _bindgen_union_align: [u32; 4usize],
-}
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct bpf_xfrm_state {
-    pub reqid: __u32,
-    pub spi: __u32,
-    pub family: __u16,
-    pub ext: __u16,
-    pub __bindgen_anon_1: bpf_xfrm_state__bindgen_ty_1,
-}
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub union bpf_xfrm_state__bindgen_ty_1 {
-    pub remote_ipv4: __u32,
-    pub remote_ipv6: [__u32; 4usize],
-    _bindgen_union_align: [u32; 4usize],
-}
-#[repr(C)]
-#[derive(Debug, Copy, Clone)]
-pub struct bpf_sock {
-    pub bound_dev_if: __u32,
-    pub family: __u32,
-    pub type_: __u32,
-    pub protocol: __u32,
-    pub mark: __u32,
-    pub priority: __u32,
-    pub src_ip4: __u32,
-    pub src_ip6: [__u32; 4usize],
-    pub src_port: __u32,
-    pub dst_port: __u32,
-    pub dst_ip4: __u32,
-    pub dst_ip6: [__u32; 4usize],
-    pub state: __u32,
-    pub rx_queue_mapping: __s32,
-}
-#[repr(C)]
-#[derive(Debug, Copy, Clone)]
-pub struct bpf_tcp_sock {
-    pub snd_cwnd: __u32,
-    pub srtt_us: __u32,
-    pub rtt_min: __u32,
-    pub snd_ssthresh: __u32,
-    pub rcv_nxt: __u32,
-    pub snd_nxt: __u32,
-    pub snd_una: __u32,
-    pub mss_cache: __u32,
-    pub ecn_flags: __u32,
-    pub rate_delivered: __u32,
-    pub rate_interval_us: __u32,
-    pub packets_out: __u32,
-    pub retrans_out: __u32,
-    pub total_retrans: __u32,
-    pub segs_in: __u32,
-    pub data_segs_in: __u32,
-    pub segs_out: __u32,
-    pub data_segs_out: __u32,
-    pub lost_out: __u32,
-    pub sacked_out: __u32,
-    pub bytes_received: __u64,
-    pub bytes_acked: __u64,
-    pub dsack_dups: __u32,
-    pub delivered: __u32,
-    pub delivered_ce: __u32,
-    pub icsk_retransmits: __u32,
-}
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct bpf_sock_tuple {
-    pub __bindgen_anon_1: bpf_sock_tuple__bindgen_ty_1,
-}
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub union bpf_sock_tuple__bindgen_ty_1 {
-    pub ipv4: bpf_sock_tuple__bindgen_ty_1__bindgen_ty_1,
-    pub ipv6: bpf_sock_tuple__bindgen_ty_1__bindgen_ty_2,
-    _bindgen_union_align: [u32; 9usize],
-}
-#[repr(C)]
-#[derive(Debug, Copy, Clone)]
-pub struct bpf_sock_tuple__bindgen_ty_1__bindgen_ty_1 {
-    pub saddr: __be32,
-    pub daddr: __be32,
-    pub sport: __be16,
-    pub dport: __be16,
-}
-#[repr(C)]
-#[derive(Debug, Copy, Clone)]
-pub struct bpf_sock_tuple__bindgen_ty_1__bindgen_ty_2 {
-    pub saddr: [__be32; 4usize],
-    pub daddr: [__be32; 4usize],
-    pub sport: __be16,
-    pub dport: __be16,
-}
-#[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 sk_msg_md {
-    pub __bindgen_anon_1: sk_msg_md__bindgen_ty_1,
-    pub __bindgen_anon_2: sk_msg_md__bindgen_ty_2,
-    pub family: __u32,
-    pub remote_ip4: __u32,
-    pub local_ip4: __u32,
-    pub remote_ip6: [__u32; 4usize],
-    pub local_ip6: [__u32; 4usize],
-    pub remote_port: __u32,
-    pub local_port: __u32,
-    pub size: __u32,
-    pub __bindgen_anon_3: sk_msg_md__bindgen_ty_3,
-}
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub union sk_msg_md__bindgen_ty_1 {
-    pub data: *mut ::aya_bpf_cty::c_void,
-    pub _bitfield_align_1: [u8; 0],
-    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
-    _bindgen_union_align: u64,
-}
-impl sk_msg_md__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(Copy, Clone)]
-pub union sk_msg_md__bindgen_ty_2 {
-    pub data_end: *mut ::aya_bpf_cty::c_void,
-    pub _bitfield_align_1: [u8; 0],
-    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
-    _bindgen_union_align: u64,
-}
-impl sk_msg_md__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(Copy, Clone)]
-pub union sk_msg_md__bindgen_ty_3 {
-    pub sk: *mut bpf_sock,
-    pub _bitfield_align_1: [u8; 0],
-    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
-    _bindgen_union_align: u64,
-}
-impl sk_msg_md__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 sk_reuseport_md {
-    pub __bindgen_anon_1: sk_reuseport_md__bindgen_ty_1,
-    pub __bindgen_anon_2: sk_reuseport_md__bindgen_ty_2,
-    pub len: __u32,
-    pub eth_protocol: __u32,
-    pub ip_protocol: __u32,
-    pub bind_inany: __u32,
-    pub hash: __u32,
-}
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub union sk_reuseport_md__bindgen_ty_1 {
-    pub data: *mut ::aya_bpf_cty::c_void,
-    pub _bitfield_align_1: [u8; 0],
-    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
-    _bindgen_union_align: u64,
-}
-impl sk_reuseport_md__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(Copy, Clone)]
-pub union sk_reuseport_md__bindgen_ty_2 {
-    pub data_end: *mut ::aya_bpf_cty::c_void,
-    pub _bitfield_align_1: [u8; 0],
-    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
-    _bindgen_union_align: u64,
-}
-impl sk_reuseport_md__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 bpf_map_info {
-    pub type_: __u32,
-    pub id: __u32,
-    pub key_size: __u32,
-    pub value_size: __u32,
-    pub max_entries: __u32,
-    pub map_flags: __u32,
-    pub name: [::aya_bpf_cty::c_char; 16usize],
-    pub ifindex: __u32,
-    pub btf_vmlinux_value_type_id: __u32,
-    pub netns_dev: __u64,
-    pub netns_ino: __u64,
-    pub btf_id: __u32,
-    pub btf_key_type_id: __u32,
-    pub btf_value_type_id: __u32,
-}
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct bpf_sock_addr {
-    pub user_family: __u32,
-    pub user_ip4: __u32,
-    pub user_ip6: [__u32; 4usize],
-    pub user_port: __u32,
-    pub family: __u32,
-    pub type_: __u32,
-    pub protocol: __u32,
-    pub msg_src_ip4: __u32,
-    pub msg_src_ip6: [__u32; 4usize],
-    pub __bindgen_anon_1: bpf_sock_addr__bindgen_ty_1,
-}
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub union bpf_sock_addr__bindgen_ty_1 {
-    pub sk: *mut bpf_sock,
-    pub _bitfield_align_1: [u8; 0],
-    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
-    _bindgen_union_align: u64,
-}
-impl bpf_sock_addr__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(Copy, Clone)]
-pub struct bpf_sock_ops {
-    pub op: __u32,
-    pub __bindgen_anon_1: bpf_sock_ops__bindgen_ty_1,
-    pub family: __u32,
-    pub remote_ip4: __u32,
-    pub local_ip4: __u32,
-    pub remote_ip6: [__u32; 4usize],
-    pub local_ip6: [__u32; 4usize],
-    pub remote_port: __u32,
-    pub local_port: __u32,
-    pub is_fullsock: __u32,
-    pub snd_cwnd: __u32,
-    pub srtt_us: __u32,
-    pub bpf_sock_ops_cb_flags: __u32,
-    pub state: __u32,
-    pub rtt_min: __u32,
-    pub snd_ssthresh: __u32,
-    pub rcv_nxt: __u32,
-    pub snd_nxt: __u32,
-    pub snd_una: __u32,
-    pub mss_cache: __u32,
-    pub ecn_flags: __u32,
-    pub rate_delivered: __u32,
-    pub rate_interval_us: __u32,
-    pub packets_out: __u32,
-    pub retrans_out: __u32,
-    pub total_retrans: __u32,
-    pub segs_in: __u32,
-    pub data_segs_in: __u32,
-    pub segs_out: __u32,
-    pub data_segs_out: __u32,
-    pub lost_out: __u32,
-    pub sacked_out: __u32,
-    pub sk_txhash: __u32,
-    pub bytes_received: __u64,
-    pub bytes_acked: __u64,
-    pub __bindgen_anon_2: bpf_sock_ops__bindgen_ty_2,
-}
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub union bpf_sock_ops__bindgen_ty_1 {
-    pub args: [__u32; 4usize],
-    pub reply: __u32,
-    pub replylong: [__u32; 4usize],
-    _bindgen_union_align: [u32; 4usize],
-}
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub union bpf_sock_ops__bindgen_ty_2 {
-    pub sk: *mut bpf_sock,
-    pub _bitfield_align_1: [u8; 0],
-    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
-    _bindgen_union_align: u64,
-}
-impl bpf_sock_ops__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
-    }
-}
-pub const BPF_SOCK_OPS_RTO_CB_FLAG: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_SOCK_OPS_RETRANS_CB_FLAG: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_SOCK_OPS_STATE_CB_FLAG: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_SOCK_OPS_RTT_CB_FLAG: ::aya_bpf_cty::c_uint = 8;
-pub const BPF_SOCK_OPS_ALL_CB_FLAGS: ::aya_bpf_cty::c_uint = 15;
-pub type _bindgen_ty_22 = ::aya_bpf_cty::c_uint;
-pub const BPF_SOCK_OPS_VOID: ::aya_bpf_cty::c_uint = 0;
-pub const BPF_SOCK_OPS_TIMEOUT_INIT: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_SOCK_OPS_RWND_INIT: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_SOCK_OPS_TCP_CONNECT_CB: ::aya_bpf_cty::c_uint = 3;
-pub const BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB: ::aya_bpf_cty::c_uint = 5;
-pub const BPF_SOCK_OPS_NEEDS_ECN: ::aya_bpf_cty::c_uint = 6;
-pub const BPF_SOCK_OPS_BASE_RTT: ::aya_bpf_cty::c_uint = 7;
-pub const BPF_SOCK_OPS_RTO_CB: ::aya_bpf_cty::c_uint = 8;
-pub const BPF_SOCK_OPS_RETRANS_CB: ::aya_bpf_cty::c_uint = 9;
-pub const BPF_SOCK_OPS_STATE_CB: ::aya_bpf_cty::c_uint = 10;
-pub const BPF_SOCK_OPS_TCP_LISTEN_CB: ::aya_bpf_cty::c_uint = 11;
-pub const BPF_SOCK_OPS_RTT_CB: ::aya_bpf_cty::c_uint = 12;
-pub type _bindgen_ty_23 = ::aya_bpf_cty::c_uint;
-pub const BPF_TCP_ESTABLISHED: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_TCP_SYN_SENT: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_TCP_SYN_RECV: ::aya_bpf_cty::c_uint = 3;
-pub const BPF_TCP_FIN_WAIT1: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_TCP_FIN_WAIT2: ::aya_bpf_cty::c_uint = 5;
-pub const BPF_TCP_TIME_WAIT: ::aya_bpf_cty::c_uint = 6;
-pub const BPF_TCP_CLOSE: ::aya_bpf_cty::c_uint = 7;
-pub const BPF_TCP_CLOSE_WAIT: ::aya_bpf_cty::c_uint = 8;
-pub const BPF_TCP_LAST_ACK: ::aya_bpf_cty::c_uint = 9;
-pub const BPF_TCP_LISTEN: ::aya_bpf_cty::c_uint = 10;
-pub const BPF_TCP_CLOSING: ::aya_bpf_cty::c_uint = 11;
-pub const BPF_TCP_NEW_SYN_RECV: ::aya_bpf_cty::c_uint = 12;
-pub const BPF_TCP_MAX_STATES: ::aya_bpf_cty::c_uint = 13;
-pub type _bindgen_ty_24 = ::aya_bpf_cty::c_uint;
-#[repr(C)]
-#[derive(Debug, Copy, Clone)]
-pub struct bpf_perf_event_value {
-    pub counter: __u64,
-    pub enabled: __u64,
-    pub running: __u64,
-}
-pub const BPF_DEVCG_ACC_MKNOD: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_DEVCG_ACC_READ: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_DEVCG_ACC_WRITE: ::aya_bpf_cty::c_uint = 4;
-pub type _bindgen_ty_26 = ::aya_bpf_cty::c_uint;
-pub const BPF_DEVCG_DEV_BLOCK: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_DEVCG_DEV_CHAR: ::aya_bpf_cty::c_uint = 2;
-pub type _bindgen_ty_27 = ::aya_bpf_cty::c_uint;
-pub const BPF_FIB_LOOKUP_DIRECT: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_FIB_LOOKUP_OUTPUT: ::aya_bpf_cty::c_uint = 2;
-pub type _bindgen_ty_28 = ::aya_bpf_cty::c_uint;
-pub const BPF_FIB_LKUP_RET_SUCCESS: ::aya_bpf_cty::c_uint = 0;
-pub const BPF_FIB_LKUP_RET_BLACKHOLE: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_FIB_LKUP_RET_UNREACHABLE: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_FIB_LKUP_RET_PROHIBIT: ::aya_bpf_cty::c_uint = 3;
-pub const BPF_FIB_LKUP_RET_NOT_FWDED: ::aya_bpf_cty::c_uint = 4;
-pub const BPF_FIB_LKUP_RET_FWD_DISABLED: ::aya_bpf_cty::c_uint = 5;
-pub const BPF_FIB_LKUP_RET_UNSUPP_LWT: ::aya_bpf_cty::c_uint = 6;
-pub const BPF_FIB_LKUP_RET_NO_NEIGH: ::aya_bpf_cty::c_uint = 7;
-pub const BPF_FIB_LKUP_RET_FRAG_NEEDED: ::aya_bpf_cty::c_uint = 8;
-pub type _bindgen_ty_29 = ::aya_bpf_cty::c_uint;
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct bpf_fib_lookup {
-    pub family: __u8,
-    pub l4_protocol: __u8,
-    pub sport: __be16,
-    pub dport: __be16,
-    pub tot_len: __u16,
-    pub ifindex: __u32,
-    pub __bindgen_anon_1: bpf_fib_lookup__bindgen_ty_1,
-    pub __bindgen_anon_2: bpf_fib_lookup__bindgen_ty_2,
-    pub __bindgen_anon_3: bpf_fib_lookup__bindgen_ty_3,
-    pub h_vlan_proto: __be16,
-    pub h_vlan_TCI: __be16,
-    pub smac: [__u8; 6usize],
-    pub dmac: [__u8; 6usize],
-}
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub union bpf_fib_lookup__bindgen_ty_1 {
-    pub tos: __u8,
-    pub flowinfo: __be32,
-    pub rt_metric: __u32,
-    _bindgen_union_align: u32,
-}
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub union bpf_fib_lookup__bindgen_ty_2 {
-    pub ipv4_src: __be32,
-    pub ipv6_src: [__u32; 4usize],
-    _bindgen_union_align: [u32; 4usize],
-}
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub union bpf_fib_lookup__bindgen_ty_3 {
-    pub ipv4_dst: __be32,
-    pub ipv6_dst: [__u32; 4usize],
-    _bindgen_union_align: [u32; 4usize],
-}
-pub const BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG: ::aya_bpf_cty::c_uint = 1;
-pub const BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL: ::aya_bpf_cty::c_uint = 2;
-pub const BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP: ::aya_bpf_cty::c_uint = 4;
-pub type _bindgen_ty_30 = ::aya_bpf_cty::c_uint;
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct bpf_flow_keys {
-    pub nhoff: __u16,
-    pub thoff: __u16,
-    pub addr_proto: __u16,
-    pub is_frag: __u8,
-    pub is_first_frag: __u8,
-    pub is_encap: __u8,
-    pub ip_proto: __u8,
-    pub n_proto: __be16,
-    pub sport: __be16,
-    pub dport: __be16,
-    pub __bindgen_anon_1: bpf_flow_keys__bindgen_ty_1,
-    pub flags: __u32,
-    pub flow_label: __be32,
-}
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub union bpf_flow_keys__bindgen_ty_1 {
-    pub __bindgen_anon_1: bpf_flow_keys__bindgen_ty_1__bindgen_ty_1,
-    pub __bindgen_anon_2: bpf_flow_keys__bindgen_ty_1__bindgen_ty_2,
-    _bindgen_union_align: [u32; 8usize],
-}
-#[repr(C)]
-#[derive(Debug, Copy, Clone)]
-pub struct bpf_flow_keys__bindgen_ty_1__bindgen_ty_1 {
-    pub ipv4_src: __be32,
-    pub ipv4_dst: __be32,
-}
-#[repr(C)]
-#[derive(Debug, Copy, Clone)]
-pub struct bpf_flow_keys__bindgen_ty_1__bindgen_ty_2 {
-    pub ipv6_src: [__u32; 4usize],
-    pub ipv6_dst: [__u32; 4usize],
-}
-#[repr(C)]
-#[derive(Debug, Copy, Clone)]
-pub struct bpf_spin_lock {
-    pub val: __u32,
-}
-#[repr(C)]
-#[derive(Debug, Copy, Clone)]
-pub struct bpf_sysctl {
-    pub write: __u32,
-    pub file_pos: __u32,
-}
-#[repr(C)]
-#[derive(Debug, Copy, Clone)]
-pub struct bpf_pidns_info {
-    pub pid: __u32,
-    pub tgid: __u32,
-}
-#[repr(C)]
-#[derive(Debug, Copy, Clone)]
-pub struct bpf_perf_event_data {
-    _unused: [u8; 0],
-}
-#[repr(C)]
-#[derive(Debug, Copy, Clone)]
-pub struct bpf_redir_neigh {
-    _unused: [u8; 0],
-}
-#[repr(C)]
-#[derive(Debug, Copy, Clone)]
-pub struct linux_binprm {
-    _unused: [u8; 0],
-}
-#[repr(C)]
-#[derive(Debug, Copy, Clone)]
-pub struct pt_regs {
-    _unused: [u8; 0],
-}
-#[repr(C)]
-#[derive(Debug, Copy, Clone)]
-pub struct sockaddr {
-    _unused: [u8; 0],
-}
-#[repr(C)]
-#[derive(Debug, Copy, Clone)]
-pub struct tcphdr {
-    _unused: [u8; 0],
-}
-#[repr(C)]
-#[derive(Debug, Copy, Clone)]
-pub struct seq_file {
-    _unused: [u8; 0],
-}
-#[repr(C)]
-#[derive(Debug, Copy, Clone)]
-pub struct tcp6_sock {
-    _unused: [u8; 0],
-}
-#[repr(C)]
-#[derive(Debug, Copy, Clone)]
-pub struct tcp_sock {
-    _unused: [u8; 0],
-}
-#[repr(C)]
-#[derive(Debug, Copy, Clone)]
-pub struct tcp_timewait_sock {
-    _unused: [u8; 0],
-}
-#[repr(C)]
-#[derive(Debug, Copy, Clone)]
-pub struct tcp_request_sock {
-    _unused: [u8; 0],
-}
-#[repr(C)]
-#[derive(Debug, Copy, Clone)]
-pub struct udp6_sock {
-    _unused: [u8; 0],
-}
-#[repr(C)]
-#[derive(Debug, Copy, Clone)]
-pub struct task_struct {
-    _unused: [u8; 0],
-}
-#[repr(C)]
-#[derive(Debug, Copy, Clone)]
-pub struct path {
-    _unused: [u8; 0],
-}
-#[repr(C)]
-#[derive(Debug, Copy, Clone)]
-pub struct btf_ptr {
-    _unused: [u8; 0],
-}
-#[repr(C)]
-#[derive(Debug, Copy, Clone)]
-pub struct inode {
-    _unused: [u8; 0],
-}
-#[repr(C)]
-#[derive(Debug, Copy, Clone)]
-pub struct socket {
-    _unused: [u8; 0],
-}
-#[repr(C)]
-#[derive(Debug, Copy, Clone)]
-pub struct file {
-    _unused: [u8; 0],
-}
-#[repr(C)]
-#[derive(Debug, Copy, Clone)]
-pub struct bpf_map_def {
-    pub type_: ::aya_bpf_cty::c_uint,
-    pub key_size: ::aya_bpf_cty::c_uint,
-    pub value_size: ::aya_bpf_cty::c_uint,
-    pub max_entries: ::aya_bpf_cty::c_uint,
-    pub map_flags: ::aya_bpf_cty::c_uint,
-}

+ 0 - 985
bpf/aya-bpf/src/bpf/generated/getters.rs

@@ -1,985 +0,0 @@
-use crate::bpf::generated::bindings::*;
-impl<Storage> __BindgenBitfieldUnit<Storage> {}
-impl __sk_buff {
-    pub fn len(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.len) }.ok()
-    }
-    pub fn pkt_type(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.pkt_type) }.ok()
-    }
-    pub fn mark(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.mark) }.ok()
-    }
-    pub fn queue_mapping(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.queue_mapping) }.ok()
-    }
-    pub fn protocol(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.protocol) }.ok()
-    }
-    pub fn vlan_present(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.vlan_present) }.ok()
-    }
-    pub fn vlan_tci(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.vlan_tci) }.ok()
-    }
-    pub fn vlan_proto(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.vlan_proto) }.ok()
-    }
-    pub fn priority(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.priority) }.ok()
-    }
-    pub fn ingress_ifindex(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.ingress_ifindex) }.ok()
-    }
-    pub fn ifindex(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.ifindex) }.ok()
-    }
-    pub fn tc_index(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.tc_index) }.ok()
-    }
-    pub fn cb(&self) -> Option<[__u32; 5usize]> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.cb) }.ok()
-    }
-    pub fn hash(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.hash) }.ok()
-    }
-    pub fn tc_classid(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.tc_classid) }.ok()
-    }
-    pub fn data(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.data) }.ok()
-    }
-    pub fn data_end(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.data_end) }.ok()
-    }
-    pub fn napi_id(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.napi_id) }.ok()
-    }
-    pub fn family(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.family) }.ok()
-    }
-    pub fn remote_ip4(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.remote_ip4) }.ok()
-    }
-    pub fn local_ip4(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.local_ip4) }.ok()
-    }
-    pub fn remote_ip6(&self) -> Option<[__u32; 4usize]> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.remote_ip6) }.ok()
-    }
-    pub fn local_ip6(&self) -> Option<[__u32; 4usize]> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.local_ip6) }.ok()
-    }
-    pub fn remote_port(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.remote_port) }.ok()
-    }
-    pub fn local_port(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.local_port) }.ok()
-    }
-    pub fn data_meta(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.data_meta) }.ok()
-    }
-    pub fn flow_keys(&self) -> Option<*mut bpf_flow_keys> {
-        let v = unsafe { crate::bpf::helpers::bpf_probe_read(&self.__bindgen_anon_1.flow_keys) }
-            .ok()?;
-        if v.is_null() {
-            None
-        } else {
-            Some(v)
-        }
-    }
-    pub fn tstamp(&self) -> Option<__u64> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.tstamp) }.ok()
-    }
-    pub fn wire_len(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.wire_len) }.ok()
-    }
-    pub fn gso_segs(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.gso_segs) }.ok()
-    }
-    pub fn sk(&self) -> Option<*mut bpf_sock> {
-        let v = unsafe { crate::bpf::helpers::bpf_probe_read(&self.__bindgen_anon_2.sk) }.ok()?;
-        if v.is_null() {
-            None
-        } else {
-            Some(v)
-        }
-    }
-    pub fn gso_size(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.gso_size) }.ok()
-    }
-}
-impl __sk_buff__bindgen_ty_1 {
-    pub fn flow_keys(&self) -> Option<*mut bpf_flow_keys> {
-        let v = unsafe { crate::bpf::helpers::bpf_probe_read(&self.flow_keys) }.ok()?;
-        if v.is_null() {
-            None
-        } else {
-            Some(v)
-        }
-    }
-}
-impl __sk_buff__bindgen_ty_2 {
-    pub fn sk(&self) -> Option<*mut bpf_sock> {
-        let v = unsafe { crate::bpf::helpers::bpf_probe_read(&self.sk) }.ok()?;
-        if v.is_null() {
-            None
-        } else {
-            Some(v)
-        }
-    }
-}
-impl bpf_tunnel_key {
-    pub fn tunnel_id(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.tunnel_id) }.ok()
-    }
-    pub fn remote_ipv4(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.__bindgen_anon_1.remote_ipv4) }.ok()
-    }
-    pub fn remote_ipv6(&self) -> Option<[__u32; 4usize]> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.__bindgen_anon_1.remote_ipv6) }.ok()
-    }
-    pub fn tunnel_tos(&self) -> Option<__u8> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.tunnel_tos) }.ok()
-    }
-    pub fn tunnel_ttl(&self) -> Option<__u8> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.tunnel_ttl) }.ok()
-    }
-    pub fn tunnel_ext(&self) -> Option<__u16> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.tunnel_ext) }.ok()
-    }
-    pub fn tunnel_label(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.tunnel_label) }.ok()
-    }
-}
-impl bpf_tunnel_key__bindgen_ty_1 {
-    pub fn remote_ipv4(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.remote_ipv4) }.ok()
-    }
-    pub fn remote_ipv6(&self) -> Option<[__u32; 4usize]> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.remote_ipv6) }.ok()
-    }
-}
-impl bpf_xfrm_state {
-    pub fn reqid(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.reqid) }.ok()
-    }
-    pub fn spi(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.spi) }.ok()
-    }
-    pub fn family(&self) -> Option<__u16> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.family) }.ok()
-    }
-    pub fn ext(&self) -> Option<__u16> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.ext) }.ok()
-    }
-    pub fn remote_ipv4(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.__bindgen_anon_1.remote_ipv4) }.ok()
-    }
-    pub fn remote_ipv6(&self) -> Option<[__u32; 4usize]> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.__bindgen_anon_1.remote_ipv6) }.ok()
-    }
-}
-impl bpf_xfrm_state__bindgen_ty_1 {
-    pub fn remote_ipv4(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.remote_ipv4) }.ok()
-    }
-    pub fn remote_ipv6(&self) -> Option<[__u32; 4usize]> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.remote_ipv6) }.ok()
-    }
-}
-impl bpf_sock {
-    pub fn bound_dev_if(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.bound_dev_if) }.ok()
-    }
-    pub fn family(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.family) }.ok()
-    }
-    pub fn type_(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.type_) }.ok()
-    }
-    pub fn protocol(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.protocol) }.ok()
-    }
-    pub fn mark(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.mark) }.ok()
-    }
-    pub fn priority(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.priority) }.ok()
-    }
-    pub fn src_ip4(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.src_ip4) }.ok()
-    }
-    pub fn src_ip6(&self) -> Option<[__u32; 4usize]> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.src_ip6) }.ok()
-    }
-    pub fn src_port(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.src_port) }.ok()
-    }
-    pub fn dst_port(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.dst_port) }.ok()
-    }
-    pub fn dst_ip4(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.dst_ip4) }.ok()
-    }
-    pub fn dst_ip6(&self) -> Option<[__u32; 4usize]> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.dst_ip6) }.ok()
-    }
-    pub fn state(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.state) }.ok()
-    }
-    pub fn rx_queue_mapping(&self) -> Option<__s32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.rx_queue_mapping) }.ok()
-    }
-}
-impl bpf_tcp_sock {
-    pub fn snd_cwnd(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.snd_cwnd) }.ok()
-    }
-    pub fn srtt_us(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.srtt_us) }.ok()
-    }
-    pub fn rtt_min(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.rtt_min) }.ok()
-    }
-    pub fn snd_ssthresh(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.snd_ssthresh) }.ok()
-    }
-    pub fn rcv_nxt(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.rcv_nxt) }.ok()
-    }
-    pub fn snd_nxt(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.snd_nxt) }.ok()
-    }
-    pub fn snd_una(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.snd_una) }.ok()
-    }
-    pub fn mss_cache(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.mss_cache) }.ok()
-    }
-    pub fn ecn_flags(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.ecn_flags) }.ok()
-    }
-    pub fn rate_delivered(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.rate_delivered) }.ok()
-    }
-    pub fn rate_interval_us(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.rate_interval_us) }.ok()
-    }
-    pub fn packets_out(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.packets_out) }.ok()
-    }
-    pub fn retrans_out(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.retrans_out) }.ok()
-    }
-    pub fn total_retrans(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.total_retrans) }.ok()
-    }
-    pub fn segs_in(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.segs_in) }.ok()
-    }
-    pub fn data_segs_in(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.data_segs_in) }.ok()
-    }
-    pub fn segs_out(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.segs_out) }.ok()
-    }
-    pub fn data_segs_out(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.data_segs_out) }.ok()
-    }
-    pub fn lost_out(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.lost_out) }.ok()
-    }
-    pub fn sacked_out(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.sacked_out) }.ok()
-    }
-    pub fn bytes_received(&self) -> Option<__u64> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.bytes_received) }.ok()
-    }
-    pub fn bytes_acked(&self) -> Option<__u64> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.bytes_acked) }.ok()
-    }
-    pub fn dsack_dups(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.dsack_dups) }.ok()
-    }
-    pub fn delivered(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.delivered) }.ok()
-    }
-    pub fn delivered_ce(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.delivered_ce) }.ok()
-    }
-    pub fn icsk_retransmits(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.icsk_retransmits) }.ok()
-    }
-}
-impl bpf_sock_tuple {
-    pub fn ipv4(&self) -> Option<bpf_sock_tuple__bindgen_ty_1__bindgen_ty_1> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.__bindgen_anon_1.ipv4) }.ok()
-    }
-    pub fn ipv6(&self) -> Option<bpf_sock_tuple__bindgen_ty_1__bindgen_ty_2> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.__bindgen_anon_1.ipv6) }.ok()
-    }
-}
-impl bpf_sock_tuple__bindgen_ty_1 {
-    pub fn ipv4(&self) -> Option<bpf_sock_tuple__bindgen_ty_1__bindgen_ty_1> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.ipv4) }.ok()
-    }
-    pub fn ipv6(&self) -> Option<bpf_sock_tuple__bindgen_ty_1__bindgen_ty_2> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.ipv6) }.ok()
-    }
-}
-impl bpf_sock_tuple__bindgen_ty_1__bindgen_ty_1 {
-    pub fn saddr(&self) -> Option<__be32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.saddr) }.ok()
-    }
-    pub fn daddr(&self) -> Option<__be32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.daddr) }.ok()
-    }
-    pub fn sport(&self) -> Option<__be16> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.sport) }.ok()
-    }
-    pub fn dport(&self) -> Option<__be16> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.dport) }.ok()
-    }
-}
-impl bpf_sock_tuple__bindgen_ty_1__bindgen_ty_2 {
-    pub fn saddr(&self) -> Option<[__be32; 4usize]> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.saddr) }.ok()
-    }
-    pub fn daddr(&self) -> Option<[__be32; 4usize]> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.daddr) }.ok()
-    }
-    pub fn sport(&self) -> Option<__be16> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.sport) }.ok()
-    }
-    pub fn dport(&self) -> Option<__be16> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.dport) }.ok()
-    }
-}
-impl xdp_md {
-    pub fn data(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.data) }.ok()
-    }
-    pub fn data_end(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.data_end) }.ok()
-    }
-    pub fn data_meta(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.data_meta) }.ok()
-    }
-    pub fn ingress_ifindex(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.ingress_ifindex) }.ok()
-    }
-    pub fn rx_queue_index(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.rx_queue_index) }.ok()
-    }
-    pub fn egress_ifindex(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.egress_ifindex) }.ok()
-    }
-}
-impl sk_msg_md {
-    pub fn data(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
-        let v = unsafe { crate::bpf::helpers::bpf_probe_read(&self.__bindgen_anon_1.data) }.ok()?;
-        if v.is_null() {
-            None
-        } else {
-            Some(v)
-        }
-    }
-    pub fn data_end(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
-        let v =
-            unsafe { crate::bpf::helpers::bpf_probe_read(&self.__bindgen_anon_2.data_end) }.ok()?;
-        if v.is_null() {
-            None
-        } else {
-            Some(v)
-        }
-    }
-    pub fn family(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.family) }.ok()
-    }
-    pub fn remote_ip4(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.remote_ip4) }.ok()
-    }
-    pub fn local_ip4(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.local_ip4) }.ok()
-    }
-    pub fn remote_ip6(&self) -> Option<[__u32; 4usize]> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.remote_ip6) }.ok()
-    }
-    pub fn local_ip6(&self) -> Option<[__u32; 4usize]> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.local_ip6) }.ok()
-    }
-    pub fn remote_port(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.remote_port) }.ok()
-    }
-    pub fn local_port(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.local_port) }.ok()
-    }
-    pub fn size(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.size) }.ok()
-    }
-    pub fn sk(&self) -> Option<*mut bpf_sock> {
-        let v = unsafe { crate::bpf::helpers::bpf_probe_read(&self.__bindgen_anon_3.sk) }.ok()?;
-        if v.is_null() {
-            None
-        } else {
-            Some(v)
-        }
-    }
-}
-impl sk_msg_md__bindgen_ty_1 {
-    pub fn data(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
-        let v = unsafe { crate::bpf::helpers::bpf_probe_read(&self.data) }.ok()?;
-        if v.is_null() {
-            None
-        } else {
-            Some(v)
-        }
-    }
-}
-impl sk_msg_md__bindgen_ty_2 {
-    pub fn data_end(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
-        let v = unsafe { crate::bpf::helpers::bpf_probe_read(&self.data_end) }.ok()?;
-        if v.is_null() {
-            None
-        } else {
-            Some(v)
-        }
-    }
-}
-impl sk_msg_md__bindgen_ty_3 {
-    pub fn sk(&self) -> Option<*mut bpf_sock> {
-        let v = unsafe { crate::bpf::helpers::bpf_probe_read(&self.sk) }.ok()?;
-        if v.is_null() {
-            None
-        } else {
-            Some(v)
-        }
-    }
-}
-impl sk_reuseport_md {
-    pub fn data(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
-        let v = unsafe { crate::bpf::helpers::bpf_probe_read(&self.__bindgen_anon_1.data) }.ok()?;
-        if v.is_null() {
-            None
-        } else {
-            Some(v)
-        }
-    }
-    pub fn data_end(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
-        let v =
-            unsafe { crate::bpf::helpers::bpf_probe_read(&self.__bindgen_anon_2.data_end) }.ok()?;
-        if v.is_null() {
-            None
-        } else {
-            Some(v)
-        }
-    }
-    pub fn len(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.len) }.ok()
-    }
-    pub fn eth_protocol(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.eth_protocol) }.ok()
-    }
-    pub fn ip_protocol(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.ip_protocol) }.ok()
-    }
-    pub fn bind_inany(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.bind_inany) }.ok()
-    }
-    pub fn hash(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.hash) }.ok()
-    }
-}
-impl sk_reuseport_md__bindgen_ty_1 {
-    pub fn data(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
-        let v = unsafe { crate::bpf::helpers::bpf_probe_read(&self.data) }.ok()?;
-        if v.is_null() {
-            None
-        } else {
-            Some(v)
-        }
-    }
-}
-impl sk_reuseport_md__bindgen_ty_2 {
-    pub fn data_end(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
-        let v = unsafe { crate::bpf::helpers::bpf_probe_read(&self.data_end) }.ok()?;
-        if v.is_null() {
-            None
-        } else {
-            Some(v)
-        }
-    }
-}
-impl bpf_map_info {
-    pub fn type_(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.type_) }.ok()
-    }
-    pub fn id(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.id) }.ok()
-    }
-    pub fn key_size(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.key_size) }.ok()
-    }
-    pub fn value_size(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.value_size) }.ok()
-    }
-    pub fn max_entries(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.max_entries) }.ok()
-    }
-    pub fn map_flags(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.map_flags) }.ok()
-    }
-    pub fn name(&self) -> Option<[::aya_bpf_cty::c_char; 16usize]> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.name) }.ok()
-    }
-    pub fn ifindex(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.ifindex) }.ok()
-    }
-    pub fn btf_vmlinux_value_type_id(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.btf_vmlinux_value_type_id) }.ok()
-    }
-    pub fn netns_dev(&self) -> Option<__u64> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.netns_dev) }.ok()
-    }
-    pub fn netns_ino(&self) -> Option<__u64> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.netns_ino) }.ok()
-    }
-    pub fn btf_id(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.btf_id) }.ok()
-    }
-    pub fn btf_key_type_id(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.btf_key_type_id) }.ok()
-    }
-    pub fn btf_value_type_id(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.btf_value_type_id) }.ok()
-    }
-}
-impl bpf_sock_addr {
-    pub fn user_family(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.user_family) }.ok()
-    }
-    pub fn user_ip4(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.user_ip4) }.ok()
-    }
-    pub fn user_ip6(&self) -> Option<[__u32; 4usize]> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.user_ip6) }.ok()
-    }
-    pub fn user_port(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.user_port) }.ok()
-    }
-    pub fn family(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.family) }.ok()
-    }
-    pub fn type_(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.type_) }.ok()
-    }
-    pub fn protocol(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.protocol) }.ok()
-    }
-    pub fn msg_src_ip4(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.msg_src_ip4) }.ok()
-    }
-    pub fn msg_src_ip6(&self) -> Option<[__u32; 4usize]> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.msg_src_ip6) }.ok()
-    }
-    pub fn sk(&self) -> Option<*mut bpf_sock> {
-        let v = unsafe { crate::bpf::helpers::bpf_probe_read(&self.__bindgen_anon_1.sk) }.ok()?;
-        if v.is_null() {
-            None
-        } else {
-            Some(v)
-        }
-    }
-}
-impl bpf_sock_addr__bindgen_ty_1 {
-    pub fn sk(&self) -> Option<*mut bpf_sock> {
-        let v = unsafe { crate::bpf::helpers::bpf_probe_read(&self.sk) }.ok()?;
-        if v.is_null() {
-            None
-        } else {
-            Some(v)
-        }
-    }
-}
-impl bpf_sock_ops {
-    pub fn op(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.op) }.ok()
-    }
-    pub fn args(&self) -> Option<[__u32; 4usize]> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.__bindgen_anon_1.args) }.ok()
-    }
-    pub fn reply(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.__bindgen_anon_1.reply) }.ok()
-    }
-    pub fn replylong(&self) -> Option<[__u32; 4usize]> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.__bindgen_anon_1.replylong) }.ok()
-    }
-    pub fn family(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.family) }.ok()
-    }
-    pub fn remote_ip4(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.remote_ip4) }.ok()
-    }
-    pub fn local_ip4(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.local_ip4) }.ok()
-    }
-    pub fn remote_ip6(&self) -> Option<[__u32; 4usize]> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.remote_ip6) }.ok()
-    }
-    pub fn local_ip6(&self) -> Option<[__u32; 4usize]> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.local_ip6) }.ok()
-    }
-    pub fn remote_port(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.remote_port) }.ok()
-    }
-    pub fn local_port(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.local_port) }.ok()
-    }
-    pub fn is_fullsock(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.is_fullsock) }.ok()
-    }
-    pub fn snd_cwnd(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.snd_cwnd) }.ok()
-    }
-    pub fn srtt_us(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.srtt_us) }.ok()
-    }
-    pub fn bpf_sock_ops_cb_flags(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.bpf_sock_ops_cb_flags) }.ok()
-    }
-    pub fn state(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.state) }.ok()
-    }
-    pub fn rtt_min(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.rtt_min) }.ok()
-    }
-    pub fn snd_ssthresh(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.snd_ssthresh) }.ok()
-    }
-    pub fn rcv_nxt(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.rcv_nxt) }.ok()
-    }
-    pub fn snd_nxt(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.snd_nxt) }.ok()
-    }
-    pub fn snd_una(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.snd_una) }.ok()
-    }
-    pub fn mss_cache(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.mss_cache) }.ok()
-    }
-    pub fn ecn_flags(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.ecn_flags) }.ok()
-    }
-    pub fn rate_delivered(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.rate_delivered) }.ok()
-    }
-    pub fn rate_interval_us(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.rate_interval_us) }.ok()
-    }
-    pub fn packets_out(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.packets_out) }.ok()
-    }
-    pub fn retrans_out(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.retrans_out) }.ok()
-    }
-    pub fn total_retrans(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.total_retrans) }.ok()
-    }
-    pub fn segs_in(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.segs_in) }.ok()
-    }
-    pub fn data_segs_in(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.data_segs_in) }.ok()
-    }
-    pub fn segs_out(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.segs_out) }.ok()
-    }
-    pub fn data_segs_out(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.data_segs_out) }.ok()
-    }
-    pub fn lost_out(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.lost_out) }.ok()
-    }
-    pub fn sacked_out(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.sacked_out) }.ok()
-    }
-    pub fn sk_txhash(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.sk_txhash) }.ok()
-    }
-    pub fn bytes_received(&self) -> Option<__u64> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.bytes_received) }.ok()
-    }
-    pub fn bytes_acked(&self) -> Option<__u64> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.bytes_acked) }.ok()
-    }
-    pub fn sk(&self) -> Option<*mut bpf_sock> {
-        let v = unsafe { crate::bpf::helpers::bpf_probe_read(&self.__bindgen_anon_2.sk) }.ok()?;
-        if v.is_null() {
-            None
-        } else {
-            Some(v)
-        }
-    }
-}
-impl bpf_sock_ops__bindgen_ty_1 {
-    pub fn args(&self) -> Option<[__u32; 4usize]> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.args) }.ok()
-    }
-    pub fn reply(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.reply) }.ok()
-    }
-    pub fn replylong(&self) -> Option<[__u32; 4usize]> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.replylong) }.ok()
-    }
-}
-impl bpf_sock_ops__bindgen_ty_2 {
-    pub fn sk(&self) -> Option<*mut bpf_sock> {
-        let v = unsafe { crate::bpf::helpers::bpf_probe_read(&self.sk) }.ok()?;
-        if v.is_null() {
-            None
-        } else {
-            Some(v)
-        }
-    }
-}
-impl bpf_perf_event_value {
-    pub fn counter(&self) -> Option<__u64> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.counter) }.ok()
-    }
-    pub fn enabled(&self) -> Option<__u64> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.enabled) }.ok()
-    }
-    pub fn running(&self) -> Option<__u64> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.running) }.ok()
-    }
-}
-impl bpf_fib_lookup {
-    pub fn family(&self) -> Option<__u8> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.family) }.ok()
-    }
-    pub fn l4_protocol(&self) -> Option<__u8> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.l4_protocol) }.ok()
-    }
-    pub fn sport(&self) -> Option<__be16> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.sport) }.ok()
-    }
-    pub fn dport(&self) -> Option<__be16> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.dport) }.ok()
-    }
-    pub fn tot_len(&self) -> Option<__u16> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.tot_len) }.ok()
-    }
-    pub fn ifindex(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.ifindex) }.ok()
-    }
-    pub fn tos(&self) -> Option<__u8> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.__bindgen_anon_1.tos) }.ok()
-    }
-    pub fn flowinfo(&self) -> Option<__be32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.__bindgen_anon_1.flowinfo) }.ok()
-    }
-    pub fn rt_metric(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.__bindgen_anon_1.rt_metric) }.ok()
-    }
-    pub fn ipv4_src(&self) -> Option<__be32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.__bindgen_anon_2.ipv4_src) }.ok()
-    }
-    pub fn ipv6_src(&self) -> Option<[__u32; 4usize]> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.__bindgen_anon_2.ipv6_src) }.ok()
-    }
-    pub fn ipv4_dst(&self) -> Option<__be32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.__bindgen_anon_3.ipv4_dst) }.ok()
-    }
-    pub fn ipv6_dst(&self) -> Option<[__u32; 4usize]> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.__bindgen_anon_3.ipv6_dst) }.ok()
-    }
-    pub fn h_vlan_proto(&self) -> Option<__be16> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.h_vlan_proto) }.ok()
-    }
-    pub fn h_vlan_TCI(&self) -> Option<__be16> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.h_vlan_TCI) }.ok()
-    }
-    pub fn smac(&self) -> Option<[__u8; 6usize]> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.smac) }.ok()
-    }
-    pub fn dmac(&self) -> Option<[__u8; 6usize]> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.dmac) }.ok()
-    }
-}
-impl bpf_fib_lookup__bindgen_ty_1 {
-    pub fn tos(&self) -> Option<__u8> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.tos) }.ok()
-    }
-    pub fn flowinfo(&self) -> Option<__be32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.flowinfo) }.ok()
-    }
-    pub fn rt_metric(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.rt_metric) }.ok()
-    }
-}
-impl bpf_fib_lookup__bindgen_ty_2 {
-    pub fn ipv4_src(&self) -> Option<__be32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.ipv4_src) }.ok()
-    }
-    pub fn ipv6_src(&self) -> Option<[__u32; 4usize]> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.ipv6_src) }.ok()
-    }
-}
-impl bpf_fib_lookup__bindgen_ty_3 {
-    pub fn ipv4_dst(&self) -> Option<__be32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.ipv4_dst) }.ok()
-    }
-    pub fn ipv6_dst(&self) -> Option<[__u32; 4usize]> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.ipv6_dst) }.ok()
-    }
-}
-impl bpf_flow_keys {
-    pub fn nhoff(&self) -> Option<__u16> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.nhoff) }.ok()
-    }
-    pub fn thoff(&self) -> Option<__u16> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.thoff) }.ok()
-    }
-    pub fn addr_proto(&self) -> Option<__u16> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.addr_proto) }.ok()
-    }
-    pub fn is_frag(&self) -> Option<__u8> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.is_frag) }.ok()
-    }
-    pub fn is_first_frag(&self) -> Option<__u8> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.is_first_frag) }.ok()
-    }
-    pub fn is_encap(&self) -> Option<__u8> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.is_encap) }.ok()
-    }
-    pub fn ip_proto(&self) -> Option<__u8> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.ip_proto) }.ok()
-    }
-    pub fn n_proto(&self) -> Option<__be16> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.n_proto) }.ok()
-    }
-    pub fn sport(&self) -> Option<__be16> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.sport) }.ok()
-    }
-    pub fn dport(&self) -> Option<__be16> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.dport) }.ok()
-    }
-    pub fn ipv4_src(&self) -> Option<__be32> {
-        unsafe {
-            crate::bpf::helpers::bpf_probe_read(&self.__bindgen_anon_1.__bindgen_anon_1.ipv4_src)
-        }
-        .ok()
-    }
-    pub fn ipv4_dst(&self) -> Option<__be32> {
-        unsafe {
-            crate::bpf::helpers::bpf_probe_read(&self.__bindgen_anon_1.__bindgen_anon_1.ipv4_dst)
-        }
-        .ok()
-    }
-    pub fn ipv6_src(&self) -> Option<[__u32; 4usize]> {
-        unsafe {
-            crate::bpf::helpers::bpf_probe_read(&self.__bindgen_anon_1.__bindgen_anon_2.ipv6_src)
-        }
-        .ok()
-    }
-    pub fn ipv6_dst(&self) -> Option<[__u32; 4usize]> {
-        unsafe {
-            crate::bpf::helpers::bpf_probe_read(&self.__bindgen_anon_1.__bindgen_anon_2.ipv6_dst)
-        }
-        .ok()
-    }
-    pub fn flags(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.flags) }.ok()
-    }
-    pub fn flow_label(&self) -> Option<__be32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.flow_label) }.ok()
-    }
-}
-impl bpf_flow_keys__bindgen_ty_1 {
-    pub fn ipv4_src(&self) -> Option<__be32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.__bindgen_anon_1.ipv4_src) }.ok()
-    }
-    pub fn ipv4_dst(&self) -> Option<__be32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.__bindgen_anon_1.ipv4_dst) }.ok()
-    }
-    pub fn ipv6_src(&self) -> Option<[__u32; 4usize]> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.__bindgen_anon_2.ipv6_src) }.ok()
-    }
-    pub fn ipv6_dst(&self) -> Option<[__u32; 4usize]> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.__bindgen_anon_2.ipv6_dst) }.ok()
-    }
-}
-impl bpf_flow_keys__bindgen_ty_1__bindgen_ty_1 {
-    pub fn ipv4_src(&self) -> Option<__be32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.ipv4_src) }.ok()
-    }
-    pub fn ipv4_dst(&self) -> Option<__be32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.ipv4_dst) }.ok()
-    }
-}
-impl bpf_flow_keys__bindgen_ty_1__bindgen_ty_2 {
-    pub fn ipv6_src(&self) -> Option<[__u32; 4usize]> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.ipv6_src) }.ok()
-    }
-    pub fn ipv6_dst(&self) -> Option<[__u32; 4usize]> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.ipv6_dst) }.ok()
-    }
-}
-impl bpf_spin_lock {
-    pub fn val(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.val) }.ok()
-    }
-}
-impl bpf_sysctl {
-    pub fn write(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.write) }.ok()
-    }
-    pub fn file_pos(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.file_pos) }.ok()
-    }
-}
-impl bpf_pidns_info {
-    pub fn pid(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.pid) }.ok()
-    }
-    pub fn tgid(&self) -> Option<__u32> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.tgid) }.ok()
-    }
-}
-impl bpf_perf_event_data {}
-impl bpf_redir_neigh {}
-impl linux_binprm {}
-impl pt_regs {}
-impl sockaddr {}
-impl tcphdr {}
-impl seq_file {}
-impl tcp6_sock {}
-impl tcp_sock {}
-impl tcp_timewait_sock {}
-impl tcp_request_sock {}
-impl udp6_sock {}
-impl task_struct {}
-impl path {}
-impl btf_ptr {}
-impl inode {}
-impl socket {}
-impl file {}
-impl bpf_map_def {
-    pub fn type_(&self) -> Option<::aya_bpf_cty::c_uint> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.type_) }.ok()
-    }
-    pub fn key_size(&self) -> Option<::aya_bpf_cty::c_uint> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.key_size) }.ok()
-    }
-    pub fn value_size(&self) -> Option<::aya_bpf_cty::c_uint> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.value_size) }.ok()
-    }
-    pub fn max_entries(&self) -> Option<::aya_bpf_cty::c_uint> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.max_entries) }.ok()
-    }
-    pub fn map_flags(&self) -> Option<::aya_bpf_cty::c_uint> {
-        unsafe { crate::bpf::helpers::bpf_probe_read(&self.map_flags) }.ok()
-    }
-}

+ 0 - 1826
bpf/aya-bpf/src/bpf/generated/helpers.rs

@@ -1,1826 +0,0 @@
-use crate::bpf::generated::bindings::*;
-#[inline(always)]
-pub unsafe extern "C" fn bpf_map_lookup_elem(
-    map: *mut ::aya_bpf_cty::c_void,
-    key: *const ::aya_bpf_cty::c_void,
-) -> *mut ::aya_bpf_cty::c_void {
-    let f: unsafe extern "C" fn(
-        map: *mut ::aya_bpf_cty::c_void,
-        key: *const ::aya_bpf_cty::c_void,
-    ) -> *mut ::aya_bpf_cty::c_void = ::core::mem::transmute(1usize);
-    f(map, key)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_map_update_elem(
-    map: *mut ::aya_bpf_cty::c_void,
-    key: *const ::aya_bpf_cty::c_void,
-    value: *const ::aya_bpf_cty::c_void,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        map: *mut ::aya_bpf_cty::c_void,
-        key: *const ::aya_bpf_cty::c_void,
-        value: *const ::aya_bpf_cty::c_void,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(2usize);
-    f(map, key, value, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_map_delete_elem(
-    map: *mut ::aya_bpf_cty::c_void,
-    key: *const ::aya_bpf_cty::c_void,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        map: *mut ::aya_bpf_cty::c_void,
-        key: *const ::aya_bpf_cty::c_void,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(3usize);
-    f(map, key)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_probe_read(
-    dst: *mut ::aya_bpf_cty::c_void,
-    size: __u32,
-    unsafe_ptr: *const ::aya_bpf_cty::c_void,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        dst: *mut ::aya_bpf_cty::c_void,
-        size: __u32,
-        unsafe_ptr: *const ::aya_bpf_cty::c_void,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(4usize);
-    f(dst, size, unsafe_ptr)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_ktime_get_ns() -> __u64 {
-    let f: unsafe extern "C" fn() -> __u64 = ::core::mem::transmute(5usize);
-    f()
-} /* # [inline (always)] pub unsafe extern "C" fn bpf_trace_printk (fmt : * const :: aya_bpf_cty :: c_char , fmt_size : __u32 , ...) -> :: aya_bpf_cty :: c_long{ let f : unsafe extern "C" fn (fmt : * const :: aya_bpf_cty :: c_char , fmt_size : __u32 , ...) -> :: aya_bpf_cty :: c_long = :: core :: mem :: transmute (6usize) ; f (fmt , fmt_size) } */
-#[inline(always)]
-pub unsafe extern "C" fn bpf_get_prandom_u32() -> __u32 {
-    let f: unsafe extern "C" fn() -> __u32 = ::core::mem::transmute(7usize);
-    f()
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_get_smp_processor_id() -> __u32 {
-    let f: unsafe extern "C" fn() -> __u32 = ::core::mem::transmute(8usize);
-    f()
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_skb_store_bytes(
-    skb: *mut __sk_buff,
-    offset: __u32,
-    from: *const ::aya_bpf_cty::c_void,
-    len: __u32,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        skb: *mut __sk_buff,
-        offset: __u32,
-        from: *const ::aya_bpf_cty::c_void,
-        len: __u32,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(9usize);
-    f(skb, offset, from, len, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_l3_csum_replace(
-    skb: *mut __sk_buff,
-    offset: __u32,
-    from: __u64,
-    to: __u64,
-    size: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        skb: *mut __sk_buff,
-        offset: __u32,
-        from: __u64,
-        to: __u64,
-        size: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(10usize);
-    f(skb, offset, from, to, size)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_l4_csum_replace(
-    skb: *mut __sk_buff,
-    offset: __u32,
-    from: __u64,
-    to: __u64,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        skb: *mut __sk_buff,
-        offset: __u32,
-        from: __u64,
-        to: __u64,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(11usize);
-    f(skb, offset, from, to, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_tail_call(
-    ctx: *mut ::aya_bpf_cty::c_void,
-    prog_array_map: *mut ::aya_bpf_cty::c_void,
-    index: __u32,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        ctx: *mut ::aya_bpf_cty::c_void,
-        prog_array_map: *mut ::aya_bpf_cty::c_void,
-        index: __u32,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(12usize);
-    f(ctx, prog_array_map, index)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_clone_redirect(
-    skb: *mut __sk_buff,
-    ifindex: __u32,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        skb: *mut __sk_buff,
-        ifindex: __u32,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(13usize);
-    f(skb, ifindex, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_get_current_pid_tgid() -> __u64 {
-    let f: unsafe extern "C" fn() -> __u64 = ::core::mem::transmute(14usize);
-    f()
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_get_current_uid_gid() -> __u64 {
-    let f: unsafe extern "C" fn() -> __u64 = ::core::mem::transmute(15usize);
-    f()
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_get_current_comm(
-    buf: *mut ::aya_bpf_cty::c_void,
-    size_of_buf: __u32,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        buf: *mut ::aya_bpf_cty::c_void,
-        size_of_buf: __u32,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(16usize);
-    f(buf, size_of_buf)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_get_cgroup_classid(skb: *mut __sk_buff) -> __u32 {
-    let f: unsafe extern "C" fn(skb: *mut __sk_buff) -> __u32 = ::core::mem::transmute(17usize);
-    f(skb)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_skb_vlan_push(
-    skb: *mut __sk_buff,
-    vlan_proto: __be16,
-    vlan_tci: __u16,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        skb: *mut __sk_buff,
-        vlan_proto: __be16,
-        vlan_tci: __u16,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(18usize);
-    f(skb, vlan_proto, vlan_tci)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_skb_vlan_pop(skb: *mut __sk_buff) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(skb: *mut __sk_buff) -> ::aya_bpf_cty::c_long =
-        ::core::mem::transmute(19usize);
-    f(skb)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_skb_get_tunnel_key(
-    skb: *mut __sk_buff,
-    key: *mut bpf_tunnel_key,
-    size: __u32,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        skb: *mut __sk_buff,
-        key: *mut bpf_tunnel_key,
-        size: __u32,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(20usize);
-    f(skb, key, size, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_skb_set_tunnel_key(
-    skb: *mut __sk_buff,
-    key: *mut bpf_tunnel_key,
-    size: __u32,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        skb: *mut __sk_buff,
-        key: *mut bpf_tunnel_key,
-        size: __u32,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(21usize);
-    f(skb, key, size, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_perf_event_read(
-    map: *mut ::aya_bpf_cty::c_void,
-    flags: __u64,
-) -> __u64 {
-    let f: unsafe extern "C" fn(map: *mut ::aya_bpf_cty::c_void, flags: __u64) -> __u64 =
-        ::core::mem::transmute(22usize);
-    f(map, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_redirect(ifindex: __u32, flags: __u64) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(ifindex: __u32, flags: __u64) -> ::aya_bpf_cty::c_long =
-        ::core::mem::transmute(23usize);
-    f(ifindex, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_get_route_realm(skb: *mut __sk_buff) -> __u32 {
-    let f: unsafe extern "C" fn(skb: *mut __sk_buff) -> __u32 = ::core::mem::transmute(24usize);
-    f(skb)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_perf_event_output(
-    ctx: *mut ::aya_bpf_cty::c_void,
-    map: *mut ::aya_bpf_cty::c_void,
-    flags: __u64,
-    data: *mut ::aya_bpf_cty::c_void,
-    size: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        ctx: *mut ::aya_bpf_cty::c_void,
-        map: *mut ::aya_bpf_cty::c_void,
-        flags: __u64,
-        data: *mut ::aya_bpf_cty::c_void,
-        size: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(25usize);
-    f(ctx, map, flags, data, size)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_skb_load_bytes(
-    skb: *const ::aya_bpf_cty::c_void,
-    offset: __u32,
-    to: *mut ::aya_bpf_cty::c_void,
-    len: __u32,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        skb: *const ::aya_bpf_cty::c_void,
-        offset: __u32,
-        to: *mut ::aya_bpf_cty::c_void,
-        len: __u32,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(26usize);
-    f(skb, offset, to, len)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_get_stackid(
-    ctx: *mut ::aya_bpf_cty::c_void,
-    map: *mut ::aya_bpf_cty::c_void,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        ctx: *mut ::aya_bpf_cty::c_void,
-        map: *mut ::aya_bpf_cty::c_void,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(27usize);
-    f(ctx, map, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_csum_diff(
-    from: *mut __be32,
-    from_size: __u32,
-    to: *mut __be32,
-    to_size: __u32,
-    seed: __wsum,
-) -> __s64 {
-    let f: unsafe extern "C" fn(
-        from: *mut __be32,
-        from_size: __u32,
-        to: *mut __be32,
-        to_size: __u32,
-        seed: __wsum,
-    ) -> __s64 = ::core::mem::transmute(28usize);
-    f(from, from_size, to, to_size, seed)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_skb_get_tunnel_opt(
-    skb: *mut __sk_buff,
-    opt: *mut ::aya_bpf_cty::c_void,
-    size: __u32,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        skb: *mut __sk_buff,
-        opt: *mut ::aya_bpf_cty::c_void,
-        size: __u32,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(29usize);
-    f(skb, opt, size)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_skb_set_tunnel_opt(
-    skb: *mut __sk_buff,
-    opt: *mut ::aya_bpf_cty::c_void,
-    size: __u32,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        skb: *mut __sk_buff,
-        opt: *mut ::aya_bpf_cty::c_void,
-        size: __u32,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(30usize);
-    f(skb, opt, size)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_skb_change_proto(
-    skb: *mut __sk_buff,
-    proto: __be16,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        skb: *mut __sk_buff,
-        proto: __be16,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(31usize);
-    f(skb, proto, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_skb_change_type(
-    skb: *mut __sk_buff,
-    type_: __u32,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(skb: *mut __sk_buff, type_: __u32) -> ::aya_bpf_cty::c_long =
-        ::core::mem::transmute(32usize);
-    f(skb, type_)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_skb_under_cgroup(
-    skb: *mut __sk_buff,
-    map: *mut ::aya_bpf_cty::c_void,
-    index: __u32,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        skb: *mut __sk_buff,
-        map: *mut ::aya_bpf_cty::c_void,
-        index: __u32,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(33usize);
-    f(skb, map, index)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_get_hash_recalc(skb: *mut __sk_buff) -> __u32 {
-    let f: unsafe extern "C" fn(skb: *mut __sk_buff) -> __u32 = ::core::mem::transmute(34usize);
-    f(skb)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_get_current_task() -> __u64 {
-    let f: unsafe extern "C" fn() -> __u64 = ::core::mem::transmute(35usize);
-    f()
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_probe_write_user(
-    dst: *mut ::aya_bpf_cty::c_void,
-    src: *const ::aya_bpf_cty::c_void,
-    len: __u32,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        dst: *mut ::aya_bpf_cty::c_void,
-        src: *const ::aya_bpf_cty::c_void,
-        len: __u32,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(36usize);
-    f(dst, src, len)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_current_task_under_cgroup(
-    map: *mut ::aya_bpf_cty::c_void,
-    index: __u32,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        map: *mut ::aya_bpf_cty::c_void,
-        index: __u32,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(37usize);
-    f(map, index)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_skb_change_tail(
-    skb: *mut __sk_buff,
-    len: __u32,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        skb: *mut __sk_buff,
-        len: __u32,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(38usize);
-    f(skb, len, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_skb_pull_data(
-    skb: *mut __sk_buff,
-    len: __u32,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(skb: *mut __sk_buff, len: __u32) -> ::aya_bpf_cty::c_long =
-        ::core::mem::transmute(39usize);
-    f(skb, len)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_csum_update(skb: *mut __sk_buff, csum: __wsum) -> __s64 {
-    let f: unsafe extern "C" fn(skb: *mut __sk_buff, csum: __wsum) -> __s64 =
-        ::core::mem::transmute(40usize);
-    f(skb, csum)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_set_hash_invalid(skb: *mut __sk_buff) {
-    let f: unsafe extern "C" fn(skb: *mut __sk_buff) = ::core::mem::transmute(41usize);
-    f(skb)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_get_numa_node_id() -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn() -> ::aya_bpf_cty::c_long = ::core::mem::transmute(42usize);
-    f()
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_skb_change_head(
-    skb: *mut __sk_buff,
-    len: __u32,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        skb: *mut __sk_buff,
-        len: __u32,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(43usize);
-    f(skb, len, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_xdp_adjust_head(
-    xdp_md: *mut xdp_md,
-    delta: ::aya_bpf_cty::c_int,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        xdp_md: *mut xdp_md,
-        delta: ::aya_bpf_cty::c_int,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(44usize);
-    f(xdp_md, delta)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_probe_read_str(
-    dst: *mut ::aya_bpf_cty::c_void,
-    size: __u32,
-    unsafe_ptr: *const ::aya_bpf_cty::c_void,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        dst: *mut ::aya_bpf_cty::c_void,
-        size: __u32,
-        unsafe_ptr: *const ::aya_bpf_cty::c_void,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(45usize);
-    f(dst, size, unsafe_ptr)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_get_socket_cookie(ctx: *mut ::aya_bpf_cty::c_void) -> __u64 {
-    let f: unsafe extern "C" fn(ctx: *mut ::aya_bpf_cty::c_void) -> __u64 =
-        ::core::mem::transmute(46usize);
-    f(ctx)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_get_socket_uid(skb: *mut __sk_buff) -> __u32 {
-    let f: unsafe extern "C" fn(skb: *mut __sk_buff) -> __u32 = ::core::mem::transmute(47usize);
-    f(skb)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_set_hash(skb: *mut __sk_buff, hash: __u32) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(skb: *mut __sk_buff, hash: __u32) -> ::aya_bpf_cty::c_long =
-        ::core::mem::transmute(48usize);
-    f(skb, hash)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_setsockopt(
-    bpf_socket: *mut ::aya_bpf_cty::c_void,
-    level: ::aya_bpf_cty::c_int,
-    optname: ::aya_bpf_cty::c_int,
-    optval: *mut ::aya_bpf_cty::c_void,
-    optlen: ::aya_bpf_cty::c_int,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        bpf_socket: *mut ::aya_bpf_cty::c_void,
-        level: ::aya_bpf_cty::c_int,
-        optname: ::aya_bpf_cty::c_int,
-        optval: *mut ::aya_bpf_cty::c_void,
-        optlen: ::aya_bpf_cty::c_int,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(49usize);
-    f(bpf_socket, level, optname, optval, optlen)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_skb_adjust_room(
-    skb: *mut __sk_buff,
-    len_diff: __s32,
-    mode: __u32,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        skb: *mut __sk_buff,
-        len_diff: __s32,
-        mode: __u32,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(50usize);
-    f(skb, len_diff, mode, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_redirect_map(
-    map: *mut ::aya_bpf_cty::c_void,
-    key: __u32,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        map: *mut ::aya_bpf_cty::c_void,
-        key: __u32,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(51usize);
-    f(map, key, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_sk_redirect_map(
-    skb: *mut __sk_buff,
-    map: *mut ::aya_bpf_cty::c_void,
-    key: __u32,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        skb: *mut __sk_buff,
-        map: *mut ::aya_bpf_cty::c_void,
-        key: __u32,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(52usize);
-    f(skb, map, key, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_sock_map_update(
-    skops: *mut bpf_sock_ops,
-    map: *mut ::aya_bpf_cty::c_void,
-    key: *mut ::aya_bpf_cty::c_void,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        skops: *mut bpf_sock_ops,
-        map: *mut ::aya_bpf_cty::c_void,
-        key: *mut ::aya_bpf_cty::c_void,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(53usize);
-    f(skops, map, key, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_xdp_adjust_meta(
-    xdp_md: *mut xdp_md,
-    delta: ::aya_bpf_cty::c_int,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        xdp_md: *mut xdp_md,
-        delta: ::aya_bpf_cty::c_int,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(54usize);
-    f(xdp_md, delta)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_perf_event_read_value(
-    map: *mut ::aya_bpf_cty::c_void,
-    flags: __u64,
-    buf: *mut bpf_perf_event_value,
-    buf_size: __u32,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        map: *mut ::aya_bpf_cty::c_void,
-        flags: __u64,
-        buf: *mut bpf_perf_event_value,
-        buf_size: __u32,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(55usize);
-    f(map, flags, buf, buf_size)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_perf_prog_read_value(
-    ctx: *mut bpf_perf_event_data,
-    buf: *mut bpf_perf_event_value,
-    buf_size: __u32,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        ctx: *mut bpf_perf_event_data,
-        buf: *mut bpf_perf_event_value,
-        buf_size: __u32,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(56usize);
-    f(ctx, buf, buf_size)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_getsockopt(
-    bpf_socket: *mut ::aya_bpf_cty::c_void,
-    level: ::aya_bpf_cty::c_int,
-    optname: ::aya_bpf_cty::c_int,
-    optval: *mut ::aya_bpf_cty::c_void,
-    optlen: ::aya_bpf_cty::c_int,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        bpf_socket: *mut ::aya_bpf_cty::c_void,
-        level: ::aya_bpf_cty::c_int,
-        optname: ::aya_bpf_cty::c_int,
-        optval: *mut ::aya_bpf_cty::c_void,
-        optlen: ::aya_bpf_cty::c_int,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(57usize);
-    f(bpf_socket, level, optname, optval, optlen)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_override_return(
-    regs: *mut pt_regs,
-    rc: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(regs: *mut pt_regs, rc: __u64) -> ::aya_bpf_cty::c_long =
-        ::core::mem::transmute(58usize);
-    f(regs, rc)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_sock_ops_cb_flags_set(
-    bpf_sock: *mut bpf_sock_ops,
-    argval: ::aya_bpf_cty::c_int,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        bpf_sock: *mut bpf_sock_ops,
-        argval: ::aya_bpf_cty::c_int,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(59usize);
-    f(bpf_sock, argval)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_msg_redirect_map(
-    msg: *mut sk_msg_md,
-    map: *mut ::aya_bpf_cty::c_void,
-    key: __u32,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        msg: *mut sk_msg_md,
-        map: *mut ::aya_bpf_cty::c_void,
-        key: __u32,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(60usize);
-    f(msg, map, key, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_msg_apply_bytes(
-    msg: *mut sk_msg_md,
-    bytes: __u32,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(msg: *mut sk_msg_md, bytes: __u32) -> ::aya_bpf_cty::c_long =
-        ::core::mem::transmute(61usize);
-    f(msg, bytes)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_msg_cork_bytes(
-    msg: *mut sk_msg_md,
-    bytes: __u32,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(msg: *mut sk_msg_md, bytes: __u32) -> ::aya_bpf_cty::c_long =
-        ::core::mem::transmute(62usize);
-    f(msg, bytes)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_msg_pull_data(
-    msg: *mut sk_msg_md,
-    start: __u32,
-    end: __u32,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        msg: *mut sk_msg_md,
-        start: __u32,
-        end: __u32,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(63usize);
-    f(msg, start, end, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_bind(
-    ctx: *mut bpf_sock_addr,
-    addr: *mut sockaddr,
-    addr_len: ::aya_bpf_cty::c_int,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        ctx: *mut bpf_sock_addr,
-        addr: *mut sockaddr,
-        addr_len: ::aya_bpf_cty::c_int,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(64usize);
-    f(ctx, addr, addr_len)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_xdp_adjust_tail(
-    xdp_md: *mut xdp_md,
-    delta: ::aya_bpf_cty::c_int,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        xdp_md: *mut xdp_md,
-        delta: ::aya_bpf_cty::c_int,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(65usize);
-    f(xdp_md, delta)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_skb_get_xfrm_state(
-    skb: *mut __sk_buff,
-    index: __u32,
-    xfrm_state: *mut bpf_xfrm_state,
-    size: __u32,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        skb: *mut __sk_buff,
-        index: __u32,
-        xfrm_state: *mut bpf_xfrm_state,
-        size: __u32,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(66usize);
-    f(skb, index, xfrm_state, size, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_get_stack(
-    ctx: *mut ::aya_bpf_cty::c_void,
-    buf: *mut ::aya_bpf_cty::c_void,
-    size: __u32,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        ctx: *mut ::aya_bpf_cty::c_void,
-        buf: *mut ::aya_bpf_cty::c_void,
-        size: __u32,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(67usize);
-    f(ctx, buf, size, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_skb_load_bytes_relative(
-    skb: *const ::aya_bpf_cty::c_void,
-    offset: __u32,
-    to: *mut ::aya_bpf_cty::c_void,
-    len: __u32,
-    start_header: __u32,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        skb: *const ::aya_bpf_cty::c_void,
-        offset: __u32,
-        to: *mut ::aya_bpf_cty::c_void,
-        len: __u32,
-        start_header: __u32,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(68usize);
-    f(skb, offset, to, len, start_header)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_fib_lookup(
-    ctx: *mut ::aya_bpf_cty::c_void,
-    params: *mut bpf_fib_lookup,
-    plen: ::aya_bpf_cty::c_int,
-    flags: __u32,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        ctx: *mut ::aya_bpf_cty::c_void,
-        params: *mut bpf_fib_lookup,
-        plen: ::aya_bpf_cty::c_int,
-        flags: __u32,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(69usize);
-    f(ctx, params, plen, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_sock_hash_update(
-    skops: *mut bpf_sock_ops,
-    map: *mut ::aya_bpf_cty::c_void,
-    key: *mut ::aya_bpf_cty::c_void,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        skops: *mut bpf_sock_ops,
-        map: *mut ::aya_bpf_cty::c_void,
-        key: *mut ::aya_bpf_cty::c_void,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(70usize);
-    f(skops, map, key, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_msg_redirect_hash(
-    msg: *mut sk_msg_md,
-    map: *mut ::aya_bpf_cty::c_void,
-    key: *mut ::aya_bpf_cty::c_void,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        msg: *mut sk_msg_md,
-        map: *mut ::aya_bpf_cty::c_void,
-        key: *mut ::aya_bpf_cty::c_void,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(71usize);
-    f(msg, map, key, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_sk_redirect_hash(
-    skb: *mut __sk_buff,
-    map: *mut ::aya_bpf_cty::c_void,
-    key: *mut ::aya_bpf_cty::c_void,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        skb: *mut __sk_buff,
-        map: *mut ::aya_bpf_cty::c_void,
-        key: *mut ::aya_bpf_cty::c_void,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(72usize);
-    f(skb, map, key, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_lwt_push_encap(
-    skb: *mut __sk_buff,
-    type_: __u32,
-    hdr: *mut ::aya_bpf_cty::c_void,
-    len: __u32,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        skb: *mut __sk_buff,
-        type_: __u32,
-        hdr: *mut ::aya_bpf_cty::c_void,
-        len: __u32,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(73usize);
-    f(skb, type_, hdr, len)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_lwt_seg6_store_bytes(
-    skb: *mut __sk_buff,
-    offset: __u32,
-    from: *const ::aya_bpf_cty::c_void,
-    len: __u32,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        skb: *mut __sk_buff,
-        offset: __u32,
-        from: *const ::aya_bpf_cty::c_void,
-        len: __u32,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(74usize);
-    f(skb, offset, from, len)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_lwt_seg6_adjust_srh(
-    skb: *mut __sk_buff,
-    offset: __u32,
-    delta: __s32,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        skb: *mut __sk_buff,
-        offset: __u32,
-        delta: __s32,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(75usize);
-    f(skb, offset, delta)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_lwt_seg6_action(
-    skb: *mut __sk_buff,
-    action: __u32,
-    param: *mut ::aya_bpf_cty::c_void,
-    param_len: __u32,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        skb: *mut __sk_buff,
-        action: __u32,
-        param: *mut ::aya_bpf_cty::c_void,
-        param_len: __u32,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(76usize);
-    f(skb, action, param, param_len)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_rc_repeat(ctx: *mut ::aya_bpf_cty::c_void) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(ctx: *mut ::aya_bpf_cty::c_void) -> ::aya_bpf_cty::c_long =
-        ::core::mem::transmute(77usize);
-    f(ctx)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_rc_keydown(
-    ctx: *mut ::aya_bpf_cty::c_void,
-    protocol: __u32,
-    scancode: __u64,
-    toggle: __u32,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        ctx: *mut ::aya_bpf_cty::c_void,
-        protocol: __u32,
-        scancode: __u64,
-        toggle: __u32,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(78usize);
-    f(ctx, protocol, scancode, toggle)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_skb_cgroup_id(skb: *mut __sk_buff) -> __u64 {
-    let f: unsafe extern "C" fn(skb: *mut __sk_buff) -> __u64 = ::core::mem::transmute(79usize);
-    f(skb)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_get_current_cgroup_id() -> __u64 {
-    let f: unsafe extern "C" fn() -> __u64 = ::core::mem::transmute(80usize);
-    f()
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_get_local_storage(
-    map: *mut ::aya_bpf_cty::c_void,
-    flags: __u64,
-) -> *mut ::aya_bpf_cty::c_void {
-    let f: unsafe extern "C" fn(
-        map: *mut ::aya_bpf_cty::c_void,
-        flags: __u64,
-    ) -> *mut ::aya_bpf_cty::c_void = ::core::mem::transmute(81usize);
-    f(map, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_sk_select_reuseport(
-    reuse: *mut sk_reuseport_md,
-    map: *mut ::aya_bpf_cty::c_void,
-    key: *mut ::aya_bpf_cty::c_void,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        reuse: *mut sk_reuseport_md,
-        map: *mut ::aya_bpf_cty::c_void,
-        key: *mut ::aya_bpf_cty::c_void,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(82usize);
-    f(reuse, map, key, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_skb_ancestor_cgroup_id(
-    skb: *mut __sk_buff,
-    ancestor_level: ::aya_bpf_cty::c_int,
-) -> __u64 {
-    let f: unsafe extern "C" fn(
-        skb: *mut __sk_buff,
-        ancestor_level: ::aya_bpf_cty::c_int,
-    ) -> __u64 = ::core::mem::transmute(83usize);
-    f(skb, ancestor_level)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_sk_lookup_tcp(
-    ctx: *mut ::aya_bpf_cty::c_void,
-    tuple: *mut bpf_sock_tuple,
-    tuple_size: __u32,
-    netns: __u64,
-    flags: __u64,
-) -> *mut bpf_sock {
-    let f: unsafe extern "C" fn(
-        ctx: *mut ::aya_bpf_cty::c_void,
-        tuple: *mut bpf_sock_tuple,
-        tuple_size: __u32,
-        netns: __u64,
-        flags: __u64,
-    ) -> *mut bpf_sock = ::core::mem::transmute(84usize);
-    f(ctx, tuple, tuple_size, netns, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_sk_lookup_udp(
-    ctx: *mut ::aya_bpf_cty::c_void,
-    tuple: *mut bpf_sock_tuple,
-    tuple_size: __u32,
-    netns: __u64,
-    flags: __u64,
-) -> *mut bpf_sock {
-    let f: unsafe extern "C" fn(
-        ctx: *mut ::aya_bpf_cty::c_void,
-        tuple: *mut bpf_sock_tuple,
-        tuple_size: __u32,
-        netns: __u64,
-        flags: __u64,
-    ) -> *mut bpf_sock = ::core::mem::transmute(85usize);
-    f(ctx, tuple, tuple_size, netns, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_sk_release(sock: *mut ::aya_bpf_cty::c_void) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(sock: *mut ::aya_bpf_cty::c_void) -> ::aya_bpf_cty::c_long =
-        ::core::mem::transmute(86usize);
-    f(sock)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_map_push_elem(
-    map: *mut ::aya_bpf_cty::c_void,
-    value: *const ::aya_bpf_cty::c_void,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        map: *mut ::aya_bpf_cty::c_void,
-        value: *const ::aya_bpf_cty::c_void,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(87usize);
-    f(map, value, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_map_pop_elem(
-    map: *mut ::aya_bpf_cty::c_void,
-    value: *mut ::aya_bpf_cty::c_void,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        map: *mut ::aya_bpf_cty::c_void,
-        value: *mut ::aya_bpf_cty::c_void,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(88usize);
-    f(map, value)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_map_peek_elem(
-    map: *mut ::aya_bpf_cty::c_void,
-    value: *mut ::aya_bpf_cty::c_void,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        map: *mut ::aya_bpf_cty::c_void,
-        value: *mut ::aya_bpf_cty::c_void,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(89usize);
-    f(map, value)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_msg_push_data(
-    msg: *mut sk_msg_md,
-    start: __u32,
-    len: __u32,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        msg: *mut sk_msg_md,
-        start: __u32,
-        len: __u32,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(90usize);
-    f(msg, start, len, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_msg_pop_data(
-    msg: *mut sk_msg_md,
-    start: __u32,
-    len: __u32,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        msg: *mut sk_msg_md,
-        start: __u32,
-        len: __u32,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(91usize);
-    f(msg, start, len, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_rc_pointer_rel(
-    ctx: *mut ::aya_bpf_cty::c_void,
-    rel_x: __s32,
-    rel_y: __s32,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        ctx: *mut ::aya_bpf_cty::c_void,
-        rel_x: __s32,
-        rel_y: __s32,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(92usize);
-    f(ctx, rel_x, rel_y)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_spin_lock(lock: *mut bpf_spin_lock) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(lock: *mut bpf_spin_lock) -> ::aya_bpf_cty::c_long =
-        ::core::mem::transmute(93usize);
-    f(lock)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_spin_unlock(lock: *mut bpf_spin_lock) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(lock: *mut bpf_spin_lock) -> ::aya_bpf_cty::c_long =
-        ::core::mem::transmute(94usize);
-    f(lock)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_sk_fullsock(sk: *mut bpf_sock) -> *mut bpf_sock {
-    let f: unsafe extern "C" fn(sk: *mut bpf_sock) -> *mut bpf_sock =
-        ::core::mem::transmute(95usize);
-    f(sk)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_tcp_sock(sk: *mut bpf_sock) -> *mut bpf_tcp_sock {
-    let f: unsafe extern "C" fn(sk: *mut bpf_sock) -> *mut bpf_tcp_sock =
-        ::core::mem::transmute(96usize);
-    f(sk)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_skb_ecn_set_ce(skb: *mut __sk_buff) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(skb: *mut __sk_buff) -> ::aya_bpf_cty::c_long =
-        ::core::mem::transmute(97usize);
-    f(skb)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_get_listener_sock(sk: *mut bpf_sock) -> *mut bpf_sock {
-    let f: unsafe extern "C" fn(sk: *mut bpf_sock) -> *mut bpf_sock =
-        ::core::mem::transmute(98usize);
-    f(sk)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_skc_lookup_tcp(
-    ctx: *mut ::aya_bpf_cty::c_void,
-    tuple: *mut bpf_sock_tuple,
-    tuple_size: __u32,
-    netns: __u64,
-    flags: __u64,
-) -> *mut bpf_sock {
-    let f: unsafe extern "C" fn(
-        ctx: *mut ::aya_bpf_cty::c_void,
-        tuple: *mut bpf_sock_tuple,
-        tuple_size: __u32,
-        netns: __u64,
-        flags: __u64,
-    ) -> *mut bpf_sock = ::core::mem::transmute(99usize);
-    f(ctx, tuple, tuple_size, netns, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_tcp_check_syncookie(
-    sk: *mut ::aya_bpf_cty::c_void,
-    iph: *mut ::aya_bpf_cty::c_void,
-    iph_len: __u32,
-    th: *mut tcphdr,
-    th_len: __u32,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        sk: *mut ::aya_bpf_cty::c_void,
-        iph: *mut ::aya_bpf_cty::c_void,
-        iph_len: __u32,
-        th: *mut tcphdr,
-        th_len: __u32,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(100usize);
-    f(sk, iph, iph_len, th, th_len)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_sysctl_get_name(
-    ctx: *mut bpf_sysctl,
-    buf: *mut ::aya_bpf_cty::c_char,
-    buf_len: ::aya_bpf_cty::c_ulong,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        ctx: *mut bpf_sysctl,
-        buf: *mut ::aya_bpf_cty::c_char,
-        buf_len: ::aya_bpf_cty::c_ulong,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(101usize);
-    f(ctx, buf, buf_len, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_sysctl_get_current_value(
-    ctx: *mut bpf_sysctl,
-    buf: *mut ::aya_bpf_cty::c_char,
-    buf_len: ::aya_bpf_cty::c_ulong,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        ctx: *mut bpf_sysctl,
-        buf: *mut ::aya_bpf_cty::c_char,
-        buf_len: ::aya_bpf_cty::c_ulong,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(102usize);
-    f(ctx, buf, buf_len)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_sysctl_get_new_value(
-    ctx: *mut bpf_sysctl,
-    buf: *mut ::aya_bpf_cty::c_char,
-    buf_len: ::aya_bpf_cty::c_ulong,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        ctx: *mut bpf_sysctl,
-        buf: *mut ::aya_bpf_cty::c_char,
-        buf_len: ::aya_bpf_cty::c_ulong,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(103usize);
-    f(ctx, buf, buf_len)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_sysctl_set_new_value(
-    ctx: *mut bpf_sysctl,
-    buf: *const ::aya_bpf_cty::c_char,
-    buf_len: ::aya_bpf_cty::c_ulong,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        ctx: *mut bpf_sysctl,
-        buf: *const ::aya_bpf_cty::c_char,
-        buf_len: ::aya_bpf_cty::c_ulong,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(104usize);
-    f(ctx, buf, buf_len)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_strtol(
-    buf: *const ::aya_bpf_cty::c_char,
-    buf_len: ::aya_bpf_cty::c_ulong,
-    flags: __u64,
-    res: *mut ::aya_bpf_cty::c_long,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        buf: *const ::aya_bpf_cty::c_char,
-        buf_len: ::aya_bpf_cty::c_ulong,
-        flags: __u64,
-        res: *mut ::aya_bpf_cty::c_long,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(105usize);
-    f(buf, buf_len, flags, res)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_strtoul(
-    buf: *const ::aya_bpf_cty::c_char,
-    buf_len: ::aya_bpf_cty::c_ulong,
-    flags: __u64,
-    res: *mut ::aya_bpf_cty::c_ulong,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        buf: *const ::aya_bpf_cty::c_char,
-        buf_len: ::aya_bpf_cty::c_ulong,
-        flags: __u64,
-        res: *mut ::aya_bpf_cty::c_ulong,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(106usize);
-    f(buf, buf_len, flags, res)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_sk_storage_get(
-    map: *mut ::aya_bpf_cty::c_void,
-    sk: *mut ::aya_bpf_cty::c_void,
-    value: *mut ::aya_bpf_cty::c_void,
-    flags: __u64,
-) -> *mut ::aya_bpf_cty::c_void {
-    let f: unsafe extern "C" fn(
-        map: *mut ::aya_bpf_cty::c_void,
-        sk: *mut ::aya_bpf_cty::c_void,
-        value: *mut ::aya_bpf_cty::c_void,
-        flags: __u64,
-    ) -> *mut ::aya_bpf_cty::c_void = ::core::mem::transmute(107usize);
-    f(map, sk, value, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_sk_storage_delete(
-    map: *mut ::aya_bpf_cty::c_void,
-    sk: *mut ::aya_bpf_cty::c_void,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        map: *mut ::aya_bpf_cty::c_void,
-        sk: *mut ::aya_bpf_cty::c_void,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(108usize);
-    f(map, sk)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_send_signal(sig: __u32) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(sig: __u32) -> ::aya_bpf_cty::c_long =
-        ::core::mem::transmute(109usize);
-    f(sig)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_tcp_gen_syncookie(
-    sk: *mut ::aya_bpf_cty::c_void,
-    iph: *mut ::aya_bpf_cty::c_void,
-    iph_len: __u32,
-    th: *mut tcphdr,
-    th_len: __u32,
-) -> __s64 {
-    let f: unsafe extern "C" fn(
-        sk: *mut ::aya_bpf_cty::c_void,
-        iph: *mut ::aya_bpf_cty::c_void,
-        iph_len: __u32,
-        th: *mut tcphdr,
-        th_len: __u32,
-    ) -> __s64 = ::core::mem::transmute(110usize);
-    f(sk, iph, iph_len, th, th_len)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_skb_output(
-    ctx: *mut ::aya_bpf_cty::c_void,
-    map: *mut ::aya_bpf_cty::c_void,
-    flags: __u64,
-    data: *mut ::aya_bpf_cty::c_void,
-    size: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        ctx: *mut ::aya_bpf_cty::c_void,
-        map: *mut ::aya_bpf_cty::c_void,
-        flags: __u64,
-        data: *mut ::aya_bpf_cty::c_void,
-        size: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(111usize);
-    f(ctx, map, flags, data, size)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_probe_read_user(
-    dst: *mut ::aya_bpf_cty::c_void,
-    size: __u32,
-    unsafe_ptr: *const ::aya_bpf_cty::c_void,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        dst: *mut ::aya_bpf_cty::c_void,
-        size: __u32,
-        unsafe_ptr: *const ::aya_bpf_cty::c_void,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(112usize);
-    f(dst, size, unsafe_ptr)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_probe_read_kernel(
-    dst: *mut ::aya_bpf_cty::c_void,
-    size: __u32,
-    unsafe_ptr: *const ::aya_bpf_cty::c_void,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        dst: *mut ::aya_bpf_cty::c_void,
-        size: __u32,
-        unsafe_ptr: *const ::aya_bpf_cty::c_void,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(113usize);
-    f(dst, size, unsafe_ptr)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_probe_read_user_str(
-    dst: *mut ::aya_bpf_cty::c_void,
-    size: __u32,
-    unsafe_ptr: *const ::aya_bpf_cty::c_void,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        dst: *mut ::aya_bpf_cty::c_void,
-        size: __u32,
-        unsafe_ptr: *const ::aya_bpf_cty::c_void,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(114usize);
-    f(dst, size, unsafe_ptr)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_probe_read_kernel_str(
-    dst: *mut ::aya_bpf_cty::c_void,
-    size: __u32,
-    unsafe_ptr: *const ::aya_bpf_cty::c_void,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        dst: *mut ::aya_bpf_cty::c_void,
-        size: __u32,
-        unsafe_ptr: *const ::aya_bpf_cty::c_void,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(115usize);
-    f(dst, size, unsafe_ptr)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_tcp_send_ack(
-    tp: *mut ::aya_bpf_cty::c_void,
-    rcv_nxt: __u32,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        tp: *mut ::aya_bpf_cty::c_void,
-        rcv_nxt: __u32,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(116usize);
-    f(tp, rcv_nxt)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_send_signal_thread(sig: __u32) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(sig: __u32) -> ::aya_bpf_cty::c_long =
-        ::core::mem::transmute(117usize);
-    f(sig)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_jiffies64() -> __u64 {
-    let f: unsafe extern "C" fn() -> __u64 = ::core::mem::transmute(118usize);
-    f()
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_read_branch_records(
-    ctx: *mut bpf_perf_event_data,
-    buf: *mut ::aya_bpf_cty::c_void,
-    size: __u32,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        ctx: *mut bpf_perf_event_data,
-        buf: *mut ::aya_bpf_cty::c_void,
-        size: __u32,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(119usize);
-    f(ctx, buf, size, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_get_ns_current_pid_tgid(
-    dev: __u64,
-    ino: __u64,
-    nsdata: *mut bpf_pidns_info,
-    size: __u32,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        dev: __u64,
-        ino: __u64,
-        nsdata: *mut bpf_pidns_info,
-        size: __u32,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(120usize);
-    f(dev, ino, nsdata, size)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_xdp_output(
-    ctx: *mut ::aya_bpf_cty::c_void,
-    map: *mut ::aya_bpf_cty::c_void,
-    flags: __u64,
-    data: *mut ::aya_bpf_cty::c_void,
-    size: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        ctx: *mut ::aya_bpf_cty::c_void,
-        map: *mut ::aya_bpf_cty::c_void,
-        flags: __u64,
-        data: *mut ::aya_bpf_cty::c_void,
-        size: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(121usize);
-    f(ctx, map, flags, data, size)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_get_netns_cookie(ctx: *mut ::aya_bpf_cty::c_void) -> __u64 {
-    let f: unsafe extern "C" fn(ctx: *mut ::aya_bpf_cty::c_void) -> __u64 =
-        ::core::mem::transmute(122usize);
-    f(ctx)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_get_current_ancestor_cgroup_id(
-    ancestor_level: ::aya_bpf_cty::c_int,
-) -> __u64 {
-    let f: unsafe extern "C" fn(ancestor_level: ::aya_bpf_cty::c_int) -> __u64 =
-        ::core::mem::transmute(123usize);
-    f(ancestor_level)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_sk_assign(
-    ctx: *mut ::aya_bpf_cty::c_void,
-    sk: *mut ::aya_bpf_cty::c_void,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        ctx: *mut ::aya_bpf_cty::c_void,
-        sk: *mut ::aya_bpf_cty::c_void,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(124usize);
-    f(ctx, sk, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_ktime_get_boot_ns() -> __u64 {
-    let f: unsafe extern "C" fn() -> __u64 = ::core::mem::transmute(125usize);
-    f()
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_seq_printf(
-    m: *mut seq_file,
-    fmt: *const ::aya_bpf_cty::c_char,
-    fmt_size: __u32,
-    data: *const ::aya_bpf_cty::c_void,
-    data_len: __u32,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        m: *mut seq_file,
-        fmt: *const ::aya_bpf_cty::c_char,
-        fmt_size: __u32,
-        data: *const ::aya_bpf_cty::c_void,
-        data_len: __u32,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(126usize);
-    f(m, fmt, fmt_size, data, data_len)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_seq_write(
-    m: *mut seq_file,
-    data: *const ::aya_bpf_cty::c_void,
-    len: __u32,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        m: *mut seq_file,
-        data: *const ::aya_bpf_cty::c_void,
-        len: __u32,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(127usize);
-    f(m, data, len)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_sk_cgroup_id(sk: *mut ::aya_bpf_cty::c_void) -> __u64 {
-    let f: unsafe extern "C" fn(sk: *mut ::aya_bpf_cty::c_void) -> __u64 =
-        ::core::mem::transmute(128usize);
-    f(sk)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_sk_ancestor_cgroup_id(
-    sk: *mut ::aya_bpf_cty::c_void,
-    ancestor_level: ::aya_bpf_cty::c_int,
-) -> __u64 {
-    let f: unsafe extern "C" fn(
-        sk: *mut ::aya_bpf_cty::c_void,
-        ancestor_level: ::aya_bpf_cty::c_int,
-    ) -> __u64 = ::core::mem::transmute(129usize);
-    f(sk, ancestor_level)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_ringbuf_output(
-    ringbuf: *mut ::aya_bpf_cty::c_void,
-    data: *mut ::aya_bpf_cty::c_void,
-    size: __u64,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        ringbuf: *mut ::aya_bpf_cty::c_void,
-        data: *mut ::aya_bpf_cty::c_void,
-        size: __u64,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(130usize);
-    f(ringbuf, data, size, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_ringbuf_reserve(
-    ringbuf: *mut ::aya_bpf_cty::c_void,
-    size: __u64,
-    flags: __u64,
-) -> *mut ::aya_bpf_cty::c_void {
-    let f: unsafe extern "C" fn(
-        ringbuf: *mut ::aya_bpf_cty::c_void,
-        size: __u64,
-        flags: __u64,
-    ) -> *mut ::aya_bpf_cty::c_void = ::core::mem::transmute(131usize);
-    f(ringbuf, size, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_ringbuf_submit(data: *mut ::aya_bpf_cty::c_void, flags: __u64) {
-    let f: unsafe extern "C" fn(data: *mut ::aya_bpf_cty::c_void, flags: __u64) =
-        ::core::mem::transmute(132usize);
-    f(data, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_ringbuf_discard(data: *mut ::aya_bpf_cty::c_void, flags: __u64) {
-    let f: unsafe extern "C" fn(data: *mut ::aya_bpf_cty::c_void, flags: __u64) =
-        ::core::mem::transmute(133usize);
-    f(data, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_ringbuf_query(
-    ringbuf: *mut ::aya_bpf_cty::c_void,
-    flags: __u64,
-) -> __u64 {
-    let f: unsafe extern "C" fn(ringbuf: *mut ::aya_bpf_cty::c_void, flags: __u64) -> __u64 =
-        ::core::mem::transmute(134usize);
-    f(ringbuf, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_csum_level(
-    skb: *mut __sk_buff,
-    level: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(skb: *mut __sk_buff, level: __u64) -> ::aya_bpf_cty::c_long =
-        ::core::mem::transmute(135usize);
-    f(skb, level)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_skc_to_tcp6_sock(sk: *mut ::aya_bpf_cty::c_void) -> *mut tcp6_sock {
-    let f: unsafe extern "C" fn(sk: *mut ::aya_bpf_cty::c_void) -> *mut tcp6_sock =
-        ::core::mem::transmute(136usize);
-    f(sk)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_skc_to_tcp_sock(sk: *mut ::aya_bpf_cty::c_void) -> *mut tcp_sock {
-    let f: unsafe extern "C" fn(sk: *mut ::aya_bpf_cty::c_void) -> *mut tcp_sock =
-        ::core::mem::transmute(137usize);
-    f(sk)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_skc_to_tcp_timewait_sock(
-    sk: *mut ::aya_bpf_cty::c_void,
-) -> *mut tcp_timewait_sock {
-    let f: unsafe extern "C" fn(sk: *mut ::aya_bpf_cty::c_void) -> *mut tcp_timewait_sock =
-        ::core::mem::transmute(138usize);
-    f(sk)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_skc_to_tcp_request_sock(
-    sk: *mut ::aya_bpf_cty::c_void,
-) -> *mut tcp_request_sock {
-    let f: unsafe extern "C" fn(sk: *mut ::aya_bpf_cty::c_void) -> *mut tcp_request_sock =
-        ::core::mem::transmute(139usize);
-    f(sk)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_skc_to_udp6_sock(sk: *mut ::aya_bpf_cty::c_void) -> *mut udp6_sock {
-    let f: unsafe extern "C" fn(sk: *mut ::aya_bpf_cty::c_void) -> *mut udp6_sock =
-        ::core::mem::transmute(140usize);
-    f(sk)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_get_task_stack(
-    task: *mut task_struct,
-    buf: *mut ::aya_bpf_cty::c_void,
-    size: __u32,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        task: *mut task_struct,
-        buf: *mut ::aya_bpf_cty::c_void,
-        size: __u32,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(141usize);
-    f(task, buf, size, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_load_hdr_opt(
-    skops: *mut bpf_sock_ops,
-    searchby_res: *mut ::aya_bpf_cty::c_void,
-    len: __u32,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        skops: *mut bpf_sock_ops,
-        searchby_res: *mut ::aya_bpf_cty::c_void,
-        len: __u32,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(142usize);
-    f(skops, searchby_res, len, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_store_hdr_opt(
-    skops: *mut bpf_sock_ops,
-    from: *const ::aya_bpf_cty::c_void,
-    len: __u32,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        skops: *mut bpf_sock_ops,
-        from: *const ::aya_bpf_cty::c_void,
-        len: __u32,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(143usize);
-    f(skops, from, len, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_reserve_hdr_opt(
-    skops: *mut bpf_sock_ops,
-    len: __u32,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        skops: *mut bpf_sock_ops,
-        len: __u32,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(144usize);
-    f(skops, len, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_inode_storage_get(
-    map: *mut ::aya_bpf_cty::c_void,
-    inode: *mut ::aya_bpf_cty::c_void,
-    value: *mut ::aya_bpf_cty::c_void,
-    flags: __u64,
-) -> *mut ::aya_bpf_cty::c_void {
-    let f: unsafe extern "C" fn(
-        map: *mut ::aya_bpf_cty::c_void,
-        inode: *mut ::aya_bpf_cty::c_void,
-        value: *mut ::aya_bpf_cty::c_void,
-        flags: __u64,
-    ) -> *mut ::aya_bpf_cty::c_void = ::core::mem::transmute(145usize);
-    f(map, inode, value, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_inode_storage_delete(
-    map: *mut ::aya_bpf_cty::c_void,
-    inode: *mut ::aya_bpf_cty::c_void,
-) -> ::aya_bpf_cty::c_int {
-    let f: unsafe extern "C" fn(
-        map: *mut ::aya_bpf_cty::c_void,
-        inode: *mut ::aya_bpf_cty::c_void,
-    ) -> ::aya_bpf_cty::c_int = ::core::mem::transmute(146usize);
-    f(map, inode)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_d_path(
-    path: *mut path,
-    buf: *mut ::aya_bpf_cty::c_char,
-    sz: __u32,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        path: *mut path,
-        buf: *mut ::aya_bpf_cty::c_char,
-        sz: __u32,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(147usize);
-    f(path, buf, sz)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_copy_from_user(
-    dst: *mut ::aya_bpf_cty::c_void,
-    size: __u32,
-    user_ptr: *const ::aya_bpf_cty::c_void,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        dst: *mut ::aya_bpf_cty::c_void,
-        size: __u32,
-        user_ptr: *const ::aya_bpf_cty::c_void,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(148usize);
-    f(dst, size, user_ptr)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_snprintf_btf(
-    str_: *mut ::aya_bpf_cty::c_char,
-    str_size: __u32,
-    ptr: *mut btf_ptr,
-    btf_ptr_size: __u32,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        str_: *mut ::aya_bpf_cty::c_char,
-        str_size: __u32,
-        ptr: *mut btf_ptr,
-        btf_ptr_size: __u32,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(149usize);
-    f(str_, str_size, ptr, btf_ptr_size, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_seq_printf_btf(
-    m: *mut seq_file,
-    ptr: *mut btf_ptr,
-    ptr_size: __u32,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        m: *mut seq_file,
-        ptr: *mut btf_ptr,
-        ptr_size: __u32,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(150usize);
-    f(m, ptr, ptr_size, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_skb_cgroup_classid(skb: *mut __sk_buff) -> __u64 {
-    let f: unsafe extern "C" fn(skb: *mut __sk_buff) -> __u64 = ::core::mem::transmute(151usize);
-    f(skb)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_redirect_neigh(
-    ifindex: __u32,
-    params: *mut bpf_redir_neigh,
-    plen: ::aya_bpf_cty::c_int,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        ifindex: __u32,
-        params: *mut bpf_redir_neigh,
-        plen: ::aya_bpf_cty::c_int,
-        flags: __u64,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(152usize);
-    f(ifindex, params, plen, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_per_cpu_ptr(
-    percpu_ptr: *const ::aya_bpf_cty::c_void,
-    cpu: __u32,
-) -> *mut ::aya_bpf_cty::c_void {
-    let f: unsafe extern "C" fn(
-        percpu_ptr: *const ::aya_bpf_cty::c_void,
-        cpu: __u32,
-    ) -> *mut ::aya_bpf_cty::c_void = ::core::mem::transmute(153usize);
-    f(percpu_ptr, cpu)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_this_cpu_ptr(
-    percpu_ptr: *const ::aya_bpf_cty::c_void,
-) -> *mut ::aya_bpf_cty::c_void {
-    let f: unsafe extern "C" fn(
-        percpu_ptr: *const ::aya_bpf_cty::c_void,
-    ) -> *mut ::aya_bpf_cty::c_void = ::core::mem::transmute(154usize);
-    f(percpu_ptr)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_redirect_peer(ifindex: __u32, flags: __u64) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(ifindex: __u32, flags: __u64) -> ::aya_bpf_cty::c_long =
-        ::core::mem::transmute(155usize);
-    f(ifindex, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_task_storage_get(
-    map: *mut ::aya_bpf_cty::c_void,
-    task: *mut task_struct,
-    value: *mut ::aya_bpf_cty::c_void,
-    flags: __u64,
-) -> *mut ::aya_bpf_cty::c_void {
-    let f: unsafe extern "C" fn(
-        map: *mut ::aya_bpf_cty::c_void,
-        task: *mut task_struct,
-        value: *mut ::aya_bpf_cty::c_void,
-        flags: __u64,
-    ) -> *mut ::aya_bpf_cty::c_void = ::core::mem::transmute(156usize);
-    f(map, task, value, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_task_storage_delete(
-    map: *mut ::aya_bpf_cty::c_void,
-    task: *mut task_struct,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        map: *mut ::aya_bpf_cty::c_void,
-        task: *mut task_struct,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(157usize);
-    f(map, task)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_get_current_task_btf() -> *mut task_struct {
-    let f: unsafe extern "C" fn() -> *mut task_struct = ::core::mem::transmute(158usize);
-    f()
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_bprm_opts_set(
-    bprm: *mut linux_binprm,
-    flags: __u64,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(bprm: *mut linux_binprm, flags: __u64) -> ::aya_bpf_cty::c_long =
-        ::core::mem::transmute(159usize);
-    f(bprm, flags)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_ktime_get_coarse_ns() -> __u64 {
-    let f: unsafe extern "C" fn() -> __u64 = ::core::mem::transmute(160usize);
-    f()
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_ima_inode_hash(
-    inode: *mut inode,
-    dst: *mut ::aya_bpf_cty::c_void,
-    size: __u32,
-) -> ::aya_bpf_cty::c_long {
-    let f: unsafe extern "C" fn(
-        inode: *mut inode,
-        dst: *mut ::aya_bpf_cty::c_void,
-        size: __u32,
-    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(161usize);
-    f(inode, dst, size)
-}
-#[inline(always)]
-pub unsafe extern "C" fn bpf_sock_from_file(file: *mut file) -> *mut socket {
-    let f: unsafe extern "C" fn(file: *mut file) -> *mut socket = ::core::mem::transmute(162usize);
-    f(file)
-}

+ 0 - 5
bpf/aya-bpf/src/bpf/generated/mod.rs

@@ -1,5 +0,0 @@
-#![allow(dead_code, non_camel_case_types, non_snake_case)]
-
-pub(crate) mod bindings;
-pub(crate) mod getters;
-pub(crate) mod helpers;

+ 0 - 4
bpf/aya-bpf/src/bpf/mod.rs

@@ -1,4 +0,0 @@
-mod generated;
-
-pub mod helpers;
-pub use generated::bindings::*;

+ 3 - 4
bpf/aya-bpf/src/bpf/helpers.rs → bpf/aya-bpf/src/helpers.rs

@@ -1,11 +1,10 @@
 use core::mem::{self, MaybeUninit};
 
-use crate::{
-    bpf::generated::helpers as gen,
-    cty::{c_char, c_long, c_void},
-};
+use aya_bpf_bindings::helpers as gen;
 pub use gen::*;
 
+use crate::cty::{c_char, c_long, c_void};
+
 #[inline]
 pub unsafe fn bpf_probe_read<T>(src: *const T) -> Result<T, c_long> {
     let mut v: MaybeUninit<T> = MaybeUninit::uninit();

+ 4 - 2
bpf/aya-bpf/src/lib.rs

@@ -1,14 +1,16 @@
 #![no_std]
 
-pub mod bpf;
+pub use aya_bpf_bindings::bindings;
+
+pub mod helpers;
 pub mod maps;
 pub mod programs;
 
 pub use aya_bpf_cty as cty;
 
-use bpf::helpers::{bpf_get_current_comm, bpf_get_current_pid_tgid};
 use core::ffi::c_void;
 use cty::c_char;
+use helpers::{bpf_get_current_comm, bpf_get_current_pid_tgid};
 
 pub use aya_bpf_macros as macros;
 

+ 2 - 4
bpf/aya-bpf/src/maps/perf_map.rs

@@ -1,10 +1,8 @@
 use core::{marker::PhantomData, mem};
 
 use crate::{
-    bpf::{
-        bpf_map_def, helpers::bpf_perf_event_output, BPF_F_CURRENT_CPU,
-        BPF_MAP_TYPE_PERF_EVENT_ARRAY,
-    },
+    bindings::{bpf_map_def, BPF_F_CURRENT_CPU, BPF_MAP_TYPE_PERF_EVENT_ARRAY},
+    helpers::bpf_perf_event_output,
     BpfContext,
 };
 

+ 1 - 1
bpf/aya-bpf/src/programs/probe.rs

@@ -1,6 +1,6 @@
 use core::ffi::c_void;
 
-use crate::{bpf::pt_regs, BpfContext};
+use crate::{bindings::pt_regs, BpfContext};
 
 pub struct ProbeContext {
     regs: *mut pt_regs,

+ 11 - 7
xtask/src/codegen/aya_bpf.rs → xtask/src/codegen/aya_bpf_bindings.rs

@@ -17,22 +17,26 @@ use syn::{
 use crate::codegen::{
     bindings::{self, bindgen},
     getters::{generate_getters_for_items, Getter},
+    Architecture,
 };
 
 #[derive(StructOpt)]
 pub struct CodegenOptions {
+    #[structopt(long)]
+    arch: Architecture,
+
     #[structopt(long)]
     libbpf_dir: PathBuf,
 }
 
 pub fn codegen(opts: CodegenOptions) -> Result<(), anyhow::Error> {
-    let dir = PathBuf::from("bpf/aya-bpf");
-    let generated = dir.join("src/bpf/generated");
+    let dir = PathBuf::from("bpf/aya-bpf-bindings");
+    let generated = dir.join("src").join(opts.arch.to_string());
 
     let types = ["bpf_map_.*"];
     let vars = ["BPF_.*", "bpf_.*"];
     let mut cmd = bindgen(&types, &vars);
-    cmd.arg(&*dir.join("include/aya_bpf_bindings.h").to_string_lossy());
+    cmd.arg(&*dir.join("include/bindings.h").to_string_lossy());
     cmd.arg("--");
     cmd.arg("-I").arg(opts.libbpf_dir.join("src"));
 
@@ -60,13 +64,13 @@ pub fn codegen(opts: CodegenOptions) -> Result<(), anyhow::Error> {
 
     bindings::write(
         &tx.helpers.join(""),
-        "use crate::bpf::generated::bindings::*;",
+        "use super::bindings::*;",
         &generated.join("helpers.rs"),
     )?;
 
     bindings::write(
         &generate_getters_for_items(&tree.items, gen_probe_read_getter).to_string(),
-        "use crate::bpf::generated::bindings::*;",
+        "use super::bindings::*;",
         &generated.join("getters.rs"),
     )?;
 
@@ -81,7 +85,7 @@ fn gen_probe_read_getter(getter: &Getter<'_>) -> TokenStream {
         Type::Ptr(_) => {
             quote! {
                 pub fn #ident(&self) -> Option<#ty> {
-                    let v = unsafe { crate::bpf::helpers::bpf_probe_read(&#(#prefix).*.#ident) }.ok()?;
+                    let v = unsafe { crate::bpf_probe_read(&#(#prefix).*.#ident) }.ok()?;
                     if v.is_null() {
                         None
                     } else {
@@ -93,7 +97,7 @@ fn gen_probe_read_getter(getter: &Getter<'_>) -> TokenStream {
         _ => {
             quote! {
                 pub fn #ident(&self) -> Option<#ty> {
-                    unsafe { crate::bpf::helpers::bpf_probe_read(&#(#prefix).*.#ident) }.ok()
+                    unsafe { crate::bpf_probe_read(&#(#prefix).*.#ident) }.ok()
                 }
             }
         }

+ 31 - 4
xtask/src/codegen/mod.rs

@@ -1,9 +1,36 @@
-mod aya_bpf;
+mod aya_bpf_bindings;
 mod bindings;
 pub mod getters;
 
 use structopt::StructOpt;
 
+#[derive(Debug, Copy, Clone)]
+pub enum Architecture {
+    X86_64,
+    AArch64,
+}
+
+impl std::str::FromStr for Architecture {
+    type Err = String;
+
+    fn from_str(s: &str) -> Result<Self, Self::Err> {
+        Ok(match s {
+            "x86_64" => Architecture::X86_64,
+            "aarch64" => Architecture::AArch64,
+            _ => return Err("invalid architecture".to_owned()),
+        })
+    }
+}
+
+impl std::fmt::Display for Architecture {
+    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+        f.write_str(match self {
+            Architecture::X86_64 => "x86_64",
+            Architecture::AArch64 => "aarch64",
+        })
+    }
+}
+
 #[derive(StructOpt)]
 pub struct Options {
     #[structopt(subcommand)]
@@ -12,13 +39,13 @@ pub struct Options {
 
 #[derive(StructOpt)]
 enum Command {
-    #[structopt(name = "aya-bpf")]
-    AyaBpf(aya_bpf::CodegenOptions),
+    #[structopt(name = "aya-bpf-bindings")]
+    AyaBpfBindings(aya_bpf_bindings::CodegenOptions),
 }
 
 pub fn codegen(opts: Options) -> Result<(), anyhow::Error> {
     use Command::*;
     match opts.command {
-        AyaBpf(opts) => aya_bpf::codegen(opts),
+        AyaBpfBindings(opts) => aya_bpf_bindings::codegen(opts),
     }
 }