瀏覽代碼

Merge pull request #251 from aya-rs/codegen

Update libbpf to 3a4e26307d0f9b227e3ebd28b443a1a715e4e17d
Dave Tucker 3 年之前
父節點
當前提交
e1f448e

+ 198 - 56
aya/src/generated/linux_bindings_aarch64.rs

@@ -131,6 +131,8 @@ 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_F_SLEEPABLE: u32 = 16;
+pub const BPF_F_XDP_HAS_FRAGS: u32 = 32;
+pub const BPF_F_KPROBE_MULTI_RETURN: u32 = 1;
 pub const BPF_PSEUDO_MAP_FD: u32 = 1;
 pub const BPF_PSEUDO_MAP_IDX: u32 = 5;
 pub const BPF_PSEUDO_MAP_VALUE: u32 = 2;
@@ -141,6 +143,7 @@ pub const BPF_PSEUDO_CALL: u32 = 1;
 pub const BPF_PSEUDO_KFUNC_CALL: u32 = 2;
 pub const BPF_F_QUERY_EFFECTIVE: u32 = 1;
 pub const BPF_F_TEST_RUN_ON_CPU: u32 = 1;
+pub const BPF_F_TEST_XDP_LIVE_FRAMES: u32 = 2;
 pub const BTF_INT_SIGNED: u32 = 1;
 pub const BTF_INT_CHAR: u32 = 2;
 pub const BTF_INT_BOOL: u32 = 4;
@@ -388,7 +391,8 @@ pub enum bpf_attach_type {
     BPF_SK_REUSEPORT_SELECT = 39,
     BPF_SK_REUSEPORT_SELECT_OR_MIGRATE = 40,
     BPF_PERF_EVENT = 41,
-    __MAX_BPF_ATTACH_TYPE = 42,
+    BPF_TRACE_KPROBE_MULTI = 42,
+    __MAX_BPF_ATTACH_TYPE = 43,
 }
 pub const BPF_ANY: ::std::os::raw::c_uint = 0;
 pub const BPF_NOEXIST: ::std::os::raw::c_uint = 1;
@@ -544,6 +548,7 @@ pub struct bpf_attr__bindgen_ty_7 {
     pub ctx_out: __u64,
     pub flags: __u32,
     pub cpu: __u32,
+    pub batch_size: __u32,
 }
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -627,6 +632,7 @@ pub union bpf_attr__bindgen_ty_14__bindgen_ty_2 {
     pub target_btf_id: __u32,
     pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_2__bindgen_ty_1,
     pub perf_event: bpf_attr__bindgen_ty_14__bindgen_ty_2__bindgen_ty_2,
+    pub kprobe_multi: bpf_attr__bindgen_ty_14__bindgen_ty_2__bindgen_ty_3,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -641,6 +647,15 @@ pub struct bpf_attr__bindgen_ty_14__bindgen_ty_2__bindgen_ty_2 {
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_14__bindgen_ty_2__bindgen_ty_3 {
+    pub flags: __u32,
+    pub cnt: __u32,
+    pub syms: __u64,
+    pub addrs: __u64,
+    pub cookies: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
 pub struct bpf_attr__bindgen_ty_15 {
     pub link_fd: __u32,
     pub new_prog_fd: __u32,
@@ -849,7 +864,7 @@ pub const BTF_KIND_DECL_TAG: ::std::os::raw::c_uint = 17;
 pub const BTF_KIND_TYPE_TAG: ::std::os::raw::c_uint = 18;
 pub const NR_BTF_KINDS: ::std::os::raw::c_uint = 19;
 pub const BTF_KIND_MAX: ::std::os::raw::c_uint = 18;
-pub type _bindgen_ty_37 = ::std::os::raw::c_uint;
+pub type _bindgen_ty_38 = ::std::os::raw::c_uint;
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct btf_enum {
@@ -879,7 +894,7 @@ pub struct btf_param {
 pub const BTF_VAR_STATIC: ::std::os::raw::c_uint = 0;
 pub const BTF_VAR_GLOBAL_ALLOCATED: ::std::os::raw::c_uint = 1;
 pub const BTF_VAR_GLOBAL_EXTERN: ::std::os::raw::c_uint = 2;
-pub type _bindgen_ty_38 = ::std::os::raw::c_uint;
+pub type _bindgen_ty_39 = ::std::os::raw::c_uint;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
 pub enum btf_func_linkage {
@@ -971,7 +986,8 @@ pub enum perf_sw_ids {
     PERF_COUNT_SW_EMULATION_FAULTS = 8,
     PERF_COUNT_SW_DUMMY = 9,
     PERF_COUNT_SW_BPF_OUTPUT = 10,
-    PERF_COUNT_SW_MAX = 11,
+    PERF_COUNT_SW_CGROUP_SWITCHES = 11,
+    PERF_COUNT_SW_MAX = 12,
 }
 #[repr(u64)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
@@ -996,7 +1012,12 @@ pub enum perf_event_sample_format {
     PERF_SAMPLE_TRANSACTION = 131072,
     PERF_SAMPLE_REGS_INTR = 262144,
     PERF_SAMPLE_PHYS_ADDR = 524288,
-    PERF_SAMPLE_MAX = 1048576,
+    PERF_SAMPLE_AUX = 1048576,
+    PERF_SAMPLE_CGROUP = 2097152,
+    PERF_SAMPLE_DATA_PAGE_SIZE = 4194304,
+    PERF_SAMPLE_CODE_PAGE_SIZE = 8388608,
+    PERF_SAMPLE_WEIGHT_STRUCT = 16777216,
+    PERF_SAMPLE_MAX = 33554432,
     __PERF_SAMPLE_CALLCHAIN_EARLY = 9223372036854775808,
 }
 #[repr(C)]
@@ -1022,6 +1043,9 @@ pub struct perf_event_attr {
     pub aux_watermark: __u32,
     pub sample_max_stack: __u16,
     pub __reserved_2: __u16,
+    pub aux_sample_size: __u32,
+    pub __reserved_3: __u32,
+    pub sig_data: __u64,
 }
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -1394,14 +1418,80 @@ impl perf_event_attr {
         }
     }
     #[inline]
+    pub fn cgroup(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_cgroup(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(32usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn text_poke(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(33usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_text_poke(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(33usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn build_id(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(34usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_build_id(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(34usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn inherit_thread(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(35usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_inherit_thread(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(35usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn remove_on_exec(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(36usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_remove_on_exec(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(36usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn sigtrap(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(37usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_sigtrap(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(37usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
     pub fn __reserved_1(&self) -> __u64 {
-        unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 32u8) as u64) }
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(38usize, 26u8) as u64) }
     }
     #[inline]
     pub fn set___reserved_1(&mut self, val: __u64) {
         unsafe {
             let val: u64 = ::std::mem::transmute(val);
-            self._bitfield_1.set(32usize, 32u8, val as u64)
+            self._bitfield_1.set(38usize, 26u8, val as u64)
         }
     }
     #[inline]
@@ -1437,6 +1527,12 @@ impl perf_event_attr {
         ksymbol: __u64,
         bpf_event: __u64,
         aux_output: __u64,
+        cgroup: __u64,
+        text_poke: __u64,
+        build_id: __u64,
+        inherit_thread: __u64,
+        remove_on_exec: __u64,
+        sigtrap: __u64,
         __reserved_1: __u64,
     ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
         let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
@@ -1566,7 +1662,31 @@ impl perf_event_attr {
             let aux_output: u64 = unsafe { ::std::mem::transmute(aux_output) };
             aux_output as u64
         });
-        __bindgen_bitfield_unit.set(32usize, 32u8, {
+        __bindgen_bitfield_unit.set(32usize, 1u8, {
+            let cgroup: u64 = unsafe { ::std::mem::transmute(cgroup) };
+            cgroup as u64
+        });
+        __bindgen_bitfield_unit.set(33usize, 1u8, {
+            let text_poke: u64 = unsafe { ::std::mem::transmute(text_poke) };
+            text_poke as u64
+        });
+        __bindgen_bitfield_unit.set(34usize, 1u8, {
+            let build_id: u64 = unsafe { ::std::mem::transmute(build_id) };
+            build_id as u64
+        });
+        __bindgen_bitfield_unit.set(35usize, 1u8, {
+            let inherit_thread: u64 = unsafe { ::std::mem::transmute(inherit_thread) };
+            inherit_thread as u64
+        });
+        __bindgen_bitfield_unit.set(36usize, 1u8, {
+            let remove_on_exec: u64 = unsafe { ::std::mem::transmute(remove_on_exec) };
+            remove_on_exec as u64
+        });
+        __bindgen_bitfield_unit.set(37usize, 1u8, {
+            let sigtrap: u64 = unsafe { ::std::mem::transmute(sigtrap) };
+            sigtrap as u64
+        });
+        __bindgen_bitfield_unit.set(38usize, 26u8, {
             let __reserved_1: u64 = unsafe { ::std::mem::transmute(__reserved_1) };
             __reserved_1 as u64
         });
@@ -1590,7 +1710,10 @@ pub struct perf_event_mmap_page {
     pub time_offset: __u64,
     pub time_zero: __u64,
     pub size: __u32,
-    pub __reserved: [__u8; 948usize],
+    pub __reserved_1: __u32,
+    pub time_cycles: __u64,
+    pub time_mask: __u64,
+    pub __reserved: [__u8; 928usize],
     pub data_head: __u64,
     pub data_tail: __u64,
     pub data_offset: __u64,
@@ -1670,14 +1793,25 @@ impl perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1 {
         }
     }
     #[inline]
+    pub fn cap_user_time_short(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_cap_user_time_short(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(5usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
     pub fn cap_____res(&self) -> __u64 {
-        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 59u8) as u64) }
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 58u8) as u64) }
     }
     #[inline]
     pub fn set_cap_____res(&mut self, val: __u64) {
         unsafe {
             let val: u64 = ::std::mem::transmute(val);
-            self._bitfield_1.set(5usize, 59u8, val as u64)
+            self._bitfield_1.set(6usize, 58u8, val as u64)
         }
     }
     #[inline]
@@ -1687,6 +1821,7 @@ impl perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1 {
         cap_user_rdpmc: __u64,
         cap_user_time: __u64,
         cap_user_time_zero: __u64,
+        cap_user_time_short: __u64,
         cap_____res: __u64,
     ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
         let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
@@ -1711,7 +1846,11 @@ impl perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1 {
             let cap_user_time_zero: u64 = unsafe { ::std::mem::transmute(cap_user_time_zero) };
             cap_user_time_zero as u64
         });
-        __bindgen_bitfield_unit.set(5usize, 59u8, {
+        __bindgen_bitfield_unit.set(5usize, 1u8, {
+            let cap_user_time_short: u64 = unsafe { ::std::mem::transmute(cap_user_time_short) };
+            cap_user_time_short as u64
+        });
+        __bindgen_bitfield_unit.set(6usize, 58u8, {
             let cap_____res: u64 = unsafe { ::std::mem::transmute(cap_____res) };
             cap_____res as u64
         });
@@ -1746,21 +1885,24 @@ pub enum perf_event_type {
     PERF_RECORD_NAMESPACES = 16,
     PERF_RECORD_KSYMBOL = 17,
     PERF_RECORD_BPF_EVENT = 18,
-    PERF_RECORD_MAX = 19,
-}
-pub const IFLA_XDP_UNSPEC: _bindgen_ty_84 = _bindgen_ty_84::IFLA_XDP_UNSPEC;
-pub const IFLA_XDP_FD: _bindgen_ty_84 = _bindgen_ty_84::IFLA_XDP_FD;
-pub const IFLA_XDP_ATTACHED: _bindgen_ty_84 = _bindgen_ty_84::IFLA_XDP_ATTACHED;
-pub const IFLA_XDP_FLAGS: _bindgen_ty_84 = _bindgen_ty_84::IFLA_XDP_FLAGS;
-pub const IFLA_XDP_PROG_ID: _bindgen_ty_84 = _bindgen_ty_84::IFLA_XDP_PROG_ID;
-pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_84 = _bindgen_ty_84::IFLA_XDP_DRV_PROG_ID;
-pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_84 = _bindgen_ty_84::IFLA_XDP_SKB_PROG_ID;
-pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_84 = _bindgen_ty_84::IFLA_XDP_HW_PROG_ID;
-pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_84 = _bindgen_ty_84::IFLA_XDP_EXPECTED_FD;
-pub const __IFLA_XDP_MAX: _bindgen_ty_84 = _bindgen_ty_84::__IFLA_XDP_MAX;
+    PERF_RECORD_CGROUP = 19,
+    PERF_RECORD_TEXT_POKE = 20,
+    PERF_RECORD_AUX_OUTPUT_HW_ID = 21,
+    PERF_RECORD_MAX = 22,
+}
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_85 = _bindgen_ty_85::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_85 = _bindgen_ty_85::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_85 = _bindgen_ty_85::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_85 = _bindgen_ty_85::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_85 = _bindgen_ty_85::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_85 = _bindgen_ty_85::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_85 = _bindgen_ty_85::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_85 = _bindgen_ty_85::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_85 = _bindgen_ty_85::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_85 = _bindgen_ty_85::__IFLA_XDP_MAX;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
-pub enum _bindgen_ty_84 {
+pub enum _bindgen_ty_85 {
     IFLA_XDP_UNSPEC = 0,
     IFLA_XDP_FD = 1,
     IFLA_XDP_ATTACHED = 2,
@@ -1793,25 +1935,25 @@ pub struct tcmsg {
     pub tcm_parent: __u32,
     pub tcm_info: __u32,
 }
-pub const TCA_UNSPEC: _bindgen_ty_97 = _bindgen_ty_97::TCA_UNSPEC;
-pub const TCA_KIND: _bindgen_ty_97 = _bindgen_ty_97::TCA_KIND;
-pub const TCA_OPTIONS: _bindgen_ty_97 = _bindgen_ty_97::TCA_OPTIONS;
-pub const TCA_STATS: _bindgen_ty_97 = _bindgen_ty_97::TCA_STATS;
-pub const TCA_XSTATS: _bindgen_ty_97 = _bindgen_ty_97::TCA_XSTATS;
-pub const TCA_RATE: _bindgen_ty_97 = _bindgen_ty_97::TCA_RATE;
-pub const TCA_FCNT: _bindgen_ty_97 = _bindgen_ty_97::TCA_FCNT;
-pub const TCA_STATS2: _bindgen_ty_97 = _bindgen_ty_97::TCA_STATS2;
-pub const TCA_STAB: _bindgen_ty_97 = _bindgen_ty_97::TCA_STAB;
-pub const TCA_PAD: _bindgen_ty_97 = _bindgen_ty_97::TCA_PAD;
-pub const TCA_DUMP_INVISIBLE: _bindgen_ty_97 = _bindgen_ty_97::TCA_DUMP_INVISIBLE;
-pub const TCA_CHAIN: _bindgen_ty_97 = _bindgen_ty_97::TCA_CHAIN;
-pub const TCA_HW_OFFLOAD: _bindgen_ty_97 = _bindgen_ty_97::TCA_HW_OFFLOAD;
-pub const TCA_INGRESS_BLOCK: _bindgen_ty_97 = _bindgen_ty_97::TCA_INGRESS_BLOCK;
-pub const TCA_EGRESS_BLOCK: _bindgen_ty_97 = _bindgen_ty_97::TCA_EGRESS_BLOCK;
-pub const __TCA_MAX: _bindgen_ty_97 = _bindgen_ty_97::__TCA_MAX;
+pub const TCA_UNSPEC: _bindgen_ty_98 = _bindgen_ty_98::TCA_UNSPEC;
+pub const TCA_KIND: _bindgen_ty_98 = _bindgen_ty_98::TCA_KIND;
+pub const TCA_OPTIONS: _bindgen_ty_98 = _bindgen_ty_98::TCA_OPTIONS;
+pub const TCA_STATS: _bindgen_ty_98 = _bindgen_ty_98::TCA_STATS;
+pub const TCA_XSTATS: _bindgen_ty_98 = _bindgen_ty_98::TCA_XSTATS;
+pub const TCA_RATE: _bindgen_ty_98 = _bindgen_ty_98::TCA_RATE;
+pub const TCA_FCNT: _bindgen_ty_98 = _bindgen_ty_98::TCA_FCNT;
+pub const TCA_STATS2: _bindgen_ty_98 = _bindgen_ty_98::TCA_STATS2;
+pub const TCA_STAB: _bindgen_ty_98 = _bindgen_ty_98::TCA_STAB;
+pub const TCA_PAD: _bindgen_ty_98 = _bindgen_ty_98::TCA_PAD;
+pub const TCA_DUMP_INVISIBLE: _bindgen_ty_98 = _bindgen_ty_98::TCA_DUMP_INVISIBLE;
+pub const TCA_CHAIN: _bindgen_ty_98 = _bindgen_ty_98::TCA_CHAIN;
+pub const TCA_HW_OFFLOAD: _bindgen_ty_98 = _bindgen_ty_98::TCA_HW_OFFLOAD;
+pub const TCA_INGRESS_BLOCK: _bindgen_ty_98 = _bindgen_ty_98::TCA_INGRESS_BLOCK;
+pub const TCA_EGRESS_BLOCK: _bindgen_ty_98 = _bindgen_ty_98::TCA_EGRESS_BLOCK;
+pub const __TCA_MAX: _bindgen_ty_98 = _bindgen_ty_98::__TCA_MAX;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
-pub enum _bindgen_ty_97 {
+pub enum _bindgen_ty_98 {
     TCA_UNSPEC = 0,
     TCA_KIND = 1,
     TCA_OPTIONS = 2,
@@ -1829,22 +1971,22 @@ pub enum _bindgen_ty_97 {
     TCA_EGRESS_BLOCK = 14,
     __TCA_MAX = 15,
 }
-pub const TCA_BPF_UNSPEC: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_UNSPEC;
-pub const TCA_BPF_ACT: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_ACT;
-pub const TCA_BPF_POLICE: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_POLICE;
-pub const TCA_BPF_CLASSID: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_CLASSID;
-pub const TCA_BPF_OPS_LEN: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_OPS_LEN;
-pub const TCA_BPF_OPS: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_OPS;
-pub const TCA_BPF_FD: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_FD;
-pub const TCA_BPF_NAME: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_NAME;
-pub const TCA_BPF_FLAGS: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_FLAGS;
-pub const TCA_BPF_FLAGS_GEN: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_FLAGS_GEN;
-pub const TCA_BPF_TAG: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_TAG;
-pub const TCA_BPF_ID: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_ID;
-pub const __TCA_BPF_MAX: _bindgen_ty_153 = _bindgen_ty_153::__TCA_BPF_MAX;
+pub const TCA_BPF_UNSPEC: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_UNSPEC;
+pub const TCA_BPF_ACT: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_ACT;
+pub const TCA_BPF_POLICE: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_POLICE;
+pub const TCA_BPF_CLASSID: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_CLASSID;
+pub const TCA_BPF_OPS_LEN: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_OPS_LEN;
+pub const TCA_BPF_OPS: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_OPS;
+pub const TCA_BPF_FD: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_FD;
+pub const TCA_BPF_NAME: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_NAME;
+pub const TCA_BPF_FLAGS: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_FLAGS;
+pub const TCA_BPF_FLAGS_GEN: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_FLAGS_GEN;
+pub const TCA_BPF_TAG: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_TAG;
+pub const TCA_BPF_ID: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_ID;
+pub const __TCA_BPF_MAX: _bindgen_ty_154 = _bindgen_ty_154::__TCA_BPF_MAX;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
-pub enum _bindgen_ty_153 {
+pub enum _bindgen_ty_154 {
     TCA_BPF_UNSPEC = 0,
     TCA_BPF_ACT = 1,
     TCA_BPF_POLICE = 2,

+ 198 - 56
aya/src/generated/linux_bindings_armv7.rs

@@ -131,6 +131,8 @@ 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_F_SLEEPABLE: u32 = 16;
+pub const BPF_F_XDP_HAS_FRAGS: u32 = 32;
+pub const BPF_F_KPROBE_MULTI_RETURN: u32 = 1;
 pub const BPF_PSEUDO_MAP_FD: u32 = 1;
 pub const BPF_PSEUDO_MAP_IDX: u32 = 5;
 pub const BPF_PSEUDO_MAP_VALUE: u32 = 2;
@@ -141,6 +143,7 @@ pub const BPF_PSEUDO_CALL: u32 = 1;
 pub const BPF_PSEUDO_KFUNC_CALL: u32 = 2;
 pub const BPF_F_QUERY_EFFECTIVE: u32 = 1;
 pub const BPF_F_TEST_RUN_ON_CPU: u32 = 1;
+pub const BPF_F_TEST_XDP_LIVE_FRAMES: u32 = 2;
 pub const BTF_INT_SIGNED: u32 = 1;
 pub const BTF_INT_CHAR: u32 = 2;
 pub const BTF_INT_BOOL: u32 = 4;
@@ -388,7 +391,8 @@ pub enum bpf_attach_type {
     BPF_SK_REUSEPORT_SELECT = 39,
     BPF_SK_REUSEPORT_SELECT_OR_MIGRATE = 40,
     BPF_PERF_EVENT = 41,
-    __MAX_BPF_ATTACH_TYPE = 42,
+    BPF_TRACE_KPROBE_MULTI = 42,
+    __MAX_BPF_ATTACH_TYPE = 43,
 }
 pub const BPF_ANY: ::std::os::raw::c_uint = 0;
 pub const BPF_NOEXIST: ::std::os::raw::c_uint = 1;
@@ -544,6 +548,7 @@ pub struct bpf_attr__bindgen_ty_7 {
     pub ctx_out: __u64,
     pub flags: __u32,
     pub cpu: __u32,
+    pub batch_size: __u32,
 }
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -627,6 +632,7 @@ pub union bpf_attr__bindgen_ty_14__bindgen_ty_2 {
     pub target_btf_id: __u32,
     pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_2__bindgen_ty_1,
     pub perf_event: bpf_attr__bindgen_ty_14__bindgen_ty_2__bindgen_ty_2,
+    pub kprobe_multi: bpf_attr__bindgen_ty_14__bindgen_ty_2__bindgen_ty_3,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -641,6 +647,15 @@ pub struct bpf_attr__bindgen_ty_14__bindgen_ty_2__bindgen_ty_2 {
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_14__bindgen_ty_2__bindgen_ty_3 {
+    pub flags: __u32,
+    pub cnt: __u32,
+    pub syms: __u64,
+    pub addrs: __u64,
+    pub cookies: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
 pub struct bpf_attr__bindgen_ty_15 {
     pub link_fd: __u32,
     pub new_prog_fd: __u32,
@@ -849,7 +864,7 @@ pub const BTF_KIND_DECL_TAG: ::std::os::raw::c_uint = 17;
 pub const BTF_KIND_TYPE_TAG: ::std::os::raw::c_uint = 18;
 pub const NR_BTF_KINDS: ::std::os::raw::c_uint = 19;
 pub const BTF_KIND_MAX: ::std::os::raw::c_uint = 18;
-pub type _bindgen_ty_37 = ::std::os::raw::c_uint;
+pub type _bindgen_ty_38 = ::std::os::raw::c_uint;
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct btf_enum {
@@ -879,7 +894,7 @@ pub struct btf_param {
 pub const BTF_VAR_STATIC: ::std::os::raw::c_uint = 0;
 pub const BTF_VAR_GLOBAL_ALLOCATED: ::std::os::raw::c_uint = 1;
 pub const BTF_VAR_GLOBAL_EXTERN: ::std::os::raw::c_uint = 2;
-pub type _bindgen_ty_38 = ::std::os::raw::c_uint;
+pub type _bindgen_ty_39 = ::std::os::raw::c_uint;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
 pub enum btf_func_linkage {
@@ -971,7 +986,8 @@ pub enum perf_sw_ids {
     PERF_COUNT_SW_EMULATION_FAULTS = 8,
     PERF_COUNT_SW_DUMMY = 9,
     PERF_COUNT_SW_BPF_OUTPUT = 10,
-    PERF_COUNT_SW_MAX = 11,
+    PERF_COUNT_SW_CGROUP_SWITCHES = 11,
+    PERF_COUNT_SW_MAX = 12,
 }
 #[repr(u64)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
@@ -996,7 +1012,12 @@ pub enum perf_event_sample_format {
     PERF_SAMPLE_TRANSACTION = 131072,
     PERF_SAMPLE_REGS_INTR = 262144,
     PERF_SAMPLE_PHYS_ADDR = 524288,
-    PERF_SAMPLE_MAX = 1048576,
+    PERF_SAMPLE_AUX = 1048576,
+    PERF_SAMPLE_CGROUP = 2097152,
+    PERF_SAMPLE_DATA_PAGE_SIZE = 4194304,
+    PERF_SAMPLE_CODE_PAGE_SIZE = 8388608,
+    PERF_SAMPLE_WEIGHT_STRUCT = 16777216,
+    PERF_SAMPLE_MAX = 33554432,
     __PERF_SAMPLE_CALLCHAIN_EARLY = 9223372036854775808,
 }
 #[repr(C)]
@@ -1022,6 +1043,9 @@ pub struct perf_event_attr {
     pub aux_watermark: __u32,
     pub sample_max_stack: __u16,
     pub __reserved_2: __u16,
+    pub aux_sample_size: __u32,
+    pub __reserved_3: __u32,
+    pub sig_data: __u64,
 }
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -1394,14 +1418,80 @@ impl perf_event_attr {
         }
     }
     #[inline]
+    pub fn cgroup(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_cgroup(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(32usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn text_poke(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(33usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_text_poke(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(33usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn build_id(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(34usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_build_id(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(34usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn inherit_thread(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(35usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_inherit_thread(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(35usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn remove_on_exec(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(36usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_remove_on_exec(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(36usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn sigtrap(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(37usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_sigtrap(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(37usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
     pub fn __reserved_1(&self) -> __u64 {
-        unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 32u8) as u64) }
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(38usize, 26u8) as u64) }
     }
     #[inline]
     pub fn set___reserved_1(&mut self, val: __u64) {
         unsafe {
             let val: u64 = ::std::mem::transmute(val);
-            self._bitfield_1.set(32usize, 32u8, val as u64)
+            self._bitfield_1.set(38usize, 26u8, val as u64)
         }
     }
     #[inline]
@@ -1437,6 +1527,12 @@ impl perf_event_attr {
         ksymbol: __u64,
         bpf_event: __u64,
         aux_output: __u64,
+        cgroup: __u64,
+        text_poke: __u64,
+        build_id: __u64,
+        inherit_thread: __u64,
+        remove_on_exec: __u64,
+        sigtrap: __u64,
         __reserved_1: __u64,
     ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
         let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
@@ -1566,7 +1662,31 @@ impl perf_event_attr {
             let aux_output: u64 = unsafe { ::std::mem::transmute(aux_output) };
             aux_output as u64
         });
-        __bindgen_bitfield_unit.set(32usize, 32u8, {
+        __bindgen_bitfield_unit.set(32usize, 1u8, {
+            let cgroup: u64 = unsafe { ::std::mem::transmute(cgroup) };
+            cgroup as u64
+        });
+        __bindgen_bitfield_unit.set(33usize, 1u8, {
+            let text_poke: u64 = unsafe { ::std::mem::transmute(text_poke) };
+            text_poke as u64
+        });
+        __bindgen_bitfield_unit.set(34usize, 1u8, {
+            let build_id: u64 = unsafe { ::std::mem::transmute(build_id) };
+            build_id as u64
+        });
+        __bindgen_bitfield_unit.set(35usize, 1u8, {
+            let inherit_thread: u64 = unsafe { ::std::mem::transmute(inherit_thread) };
+            inherit_thread as u64
+        });
+        __bindgen_bitfield_unit.set(36usize, 1u8, {
+            let remove_on_exec: u64 = unsafe { ::std::mem::transmute(remove_on_exec) };
+            remove_on_exec as u64
+        });
+        __bindgen_bitfield_unit.set(37usize, 1u8, {
+            let sigtrap: u64 = unsafe { ::std::mem::transmute(sigtrap) };
+            sigtrap as u64
+        });
+        __bindgen_bitfield_unit.set(38usize, 26u8, {
             let __reserved_1: u64 = unsafe { ::std::mem::transmute(__reserved_1) };
             __reserved_1 as u64
         });
@@ -1590,7 +1710,10 @@ pub struct perf_event_mmap_page {
     pub time_offset: __u64,
     pub time_zero: __u64,
     pub size: __u32,
-    pub __reserved: [__u8; 948usize],
+    pub __reserved_1: __u32,
+    pub time_cycles: __u64,
+    pub time_mask: __u64,
+    pub __reserved: [__u8; 928usize],
     pub data_head: __u64,
     pub data_tail: __u64,
     pub data_offset: __u64,
@@ -1670,14 +1793,25 @@ impl perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1 {
         }
     }
     #[inline]
+    pub fn cap_user_time_short(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_cap_user_time_short(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(5usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
     pub fn cap_____res(&self) -> __u64 {
-        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 59u8) as u64) }
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 58u8) as u64) }
     }
     #[inline]
     pub fn set_cap_____res(&mut self, val: __u64) {
         unsafe {
             let val: u64 = ::std::mem::transmute(val);
-            self._bitfield_1.set(5usize, 59u8, val as u64)
+            self._bitfield_1.set(6usize, 58u8, val as u64)
         }
     }
     #[inline]
@@ -1687,6 +1821,7 @@ impl perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1 {
         cap_user_rdpmc: __u64,
         cap_user_time: __u64,
         cap_user_time_zero: __u64,
+        cap_user_time_short: __u64,
         cap_____res: __u64,
     ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
         let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
@@ -1711,7 +1846,11 @@ impl perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1 {
             let cap_user_time_zero: u64 = unsafe { ::std::mem::transmute(cap_user_time_zero) };
             cap_user_time_zero as u64
         });
-        __bindgen_bitfield_unit.set(5usize, 59u8, {
+        __bindgen_bitfield_unit.set(5usize, 1u8, {
+            let cap_user_time_short: u64 = unsafe { ::std::mem::transmute(cap_user_time_short) };
+            cap_user_time_short as u64
+        });
+        __bindgen_bitfield_unit.set(6usize, 58u8, {
             let cap_____res: u64 = unsafe { ::std::mem::transmute(cap_____res) };
             cap_____res as u64
         });
@@ -1746,21 +1885,24 @@ pub enum perf_event_type {
     PERF_RECORD_NAMESPACES = 16,
     PERF_RECORD_KSYMBOL = 17,
     PERF_RECORD_BPF_EVENT = 18,
-    PERF_RECORD_MAX = 19,
-}
-pub const IFLA_XDP_UNSPEC: _bindgen_ty_84 = _bindgen_ty_84::IFLA_XDP_UNSPEC;
-pub const IFLA_XDP_FD: _bindgen_ty_84 = _bindgen_ty_84::IFLA_XDP_FD;
-pub const IFLA_XDP_ATTACHED: _bindgen_ty_84 = _bindgen_ty_84::IFLA_XDP_ATTACHED;
-pub const IFLA_XDP_FLAGS: _bindgen_ty_84 = _bindgen_ty_84::IFLA_XDP_FLAGS;
-pub const IFLA_XDP_PROG_ID: _bindgen_ty_84 = _bindgen_ty_84::IFLA_XDP_PROG_ID;
-pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_84 = _bindgen_ty_84::IFLA_XDP_DRV_PROG_ID;
-pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_84 = _bindgen_ty_84::IFLA_XDP_SKB_PROG_ID;
-pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_84 = _bindgen_ty_84::IFLA_XDP_HW_PROG_ID;
-pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_84 = _bindgen_ty_84::IFLA_XDP_EXPECTED_FD;
-pub const __IFLA_XDP_MAX: _bindgen_ty_84 = _bindgen_ty_84::__IFLA_XDP_MAX;
+    PERF_RECORD_CGROUP = 19,
+    PERF_RECORD_TEXT_POKE = 20,
+    PERF_RECORD_AUX_OUTPUT_HW_ID = 21,
+    PERF_RECORD_MAX = 22,
+}
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_85 = _bindgen_ty_85::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_85 = _bindgen_ty_85::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_85 = _bindgen_ty_85::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_85 = _bindgen_ty_85::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_85 = _bindgen_ty_85::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_85 = _bindgen_ty_85::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_85 = _bindgen_ty_85::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_85 = _bindgen_ty_85::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_85 = _bindgen_ty_85::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_85 = _bindgen_ty_85::__IFLA_XDP_MAX;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
-pub enum _bindgen_ty_84 {
+pub enum _bindgen_ty_85 {
     IFLA_XDP_UNSPEC = 0,
     IFLA_XDP_FD = 1,
     IFLA_XDP_ATTACHED = 2,
@@ -1793,25 +1935,25 @@ pub struct tcmsg {
     pub tcm_parent: __u32,
     pub tcm_info: __u32,
 }
-pub const TCA_UNSPEC: _bindgen_ty_97 = _bindgen_ty_97::TCA_UNSPEC;
-pub const TCA_KIND: _bindgen_ty_97 = _bindgen_ty_97::TCA_KIND;
-pub const TCA_OPTIONS: _bindgen_ty_97 = _bindgen_ty_97::TCA_OPTIONS;
-pub const TCA_STATS: _bindgen_ty_97 = _bindgen_ty_97::TCA_STATS;
-pub const TCA_XSTATS: _bindgen_ty_97 = _bindgen_ty_97::TCA_XSTATS;
-pub const TCA_RATE: _bindgen_ty_97 = _bindgen_ty_97::TCA_RATE;
-pub const TCA_FCNT: _bindgen_ty_97 = _bindgen_ty_97::TCA_FCNT;
-pub const TCA_STATS2: _bindgen_ty_97 = _bindgen_ty_97::TCA_STATS2;
-pub const TCA_STAB: _bindgen_ty_97 = _bindgen_ty_97::TCA_STAB;
-pub const TCA_PAD: _bindgen_ty_97 = _bindgen_ty_97::TCA_PAD;
-pub const TCA_DUMP_INVISIBLE: _bindgen_ty_97 = _bindgen_ty_97::TCA_DUMP_INVISIBLE;
-pub const TCA_CHAIN: _bindgen_ty_97 = _bindgen_ty_97::TCA_CHAIN;
-pub const TCA_HW_OFFLOAD: _bindgen_ty_97 = _bindgen_ty_97::TCA_HW_OFFLOAD;
-pub const TCA_INGRESS_BLOCK: _bindgen_ty_97 = _bindgen_ty_97::TCA_INGRESS_BLOCK;
-pub const TCA_EGRESS_BLOCK: _bindgen_ty_97 = _bindgen_ty_97::TCA_EGRESS_BLOCK;
-pub const __TCA_MAX: _bindgen_ty_97 = _bindgen_ty_97::__TCA_MAX;
+pub const TCA_UNSPEC: _bindgen_ty_98 = _bindgen_ty_98::TCA_UNSPEC;
+pub const TCA_KIND: _bindgen_ty_98 = _bindgen_ty_98::TCA_KIND;
+pub const TCA_OPTIONS: _bindgen_ty_98 = _bindgen_ty_98::TCA_OPTIONS;
+pub const TCA_STATS: _bindgen_ty_98 = _bindgen_ty_98::TCA_STATS;
+pub const TCA_XSTATS: _bindgen_ty_98 = _bindgen_ty_98::TCA_XSTATS;
+pub const TCA_RATE: _bindgen_ty_98 = _bindgen_ty_98::TCA_RATE;
+pub const TCA_FCNT: _bindgen_ty_98 = _bindgen_ty_98::TCA_FCNT;
+pub const TCA_STATS2: _bindgen_ty_98 = _bindgen_ty_98::TCA_STATS2;
+pub const TCA_STAB: _bindgen_ty_98 = _bindgen_ty_98::TCA_STAB;
+pub const TCA_PAD: _bindgen_ty_98 = _bindgen_ty_98::TCA_PAD;
+pub const TCA_DUMP_INVISIBLE: _bindgen_ty_98 = _bindgen_ty_98::TCA_DUMP_INVISIBLE;
+pub const TCA_CHAIN: _bindgen_ty_98 = _bindgen_ty_98::TCA_CHAIN;
+pub const TCA_HW_OFFLOAD: _bindgen_ty_98 = _bindgen_ty_98::TCA_HW_OFFLOAD;
+pub const TCA_INGRESS_BLOCK: _bindgen_ty_98 = _bindgen_ty_98::TCA_INGRESS_BLOCK;
+pub const TCA_EGRESS_BLOCK: _bindgen_ty_98 = _bindgen_ty_98::TCA_EGRESS_BLOCK;
+pub const __TCA_MAX: _bindgen_ty_98 = _bindgen_ty_98::__TCA_MAX;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
-pub enum _bindgen_ty_97 {
+pub enum _bindgen_ty_98 {
     TCA_UNSPEC = 0,
     TCA_KIND = 1,
     TCA_OPTIONS = 2,
@@ -1829,22 +1971,22 @@ pub enum _bindgen_ty_97 {
     TCA_EGRESS_BLOCK = 14,
     __TCA_MAX = 15,
 }
-pub const TCA_BPF_UNSPEC: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_UNSPEC;
-pub const TCA_BPF_ACT: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_ACT;
-pub const TCA_BPF_POLICE: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_POLICE;
-pub const TCA_BPF_CLASSID: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_CLASSID;
-pub const TCA_BPF_OPS_LEN: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_OPS_LEN;
-pub const TCA_BPF_OPS: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_OPS;
-pub const TCA_BPF_FD: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_FD;
-pub const TCA_BPF_NAME: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_NAME;
-pub const TCA_BPF_FLAGS: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_FLAGS;
-pub const TCA_BPF_FLAGS_GEN: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_FLAGS_GEN;
-pub const TCA_BPF_TAG: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_TAG;
-pub const TCA_BPF_ID: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_ID;
-pub const __TCA_BPF_MAX: _bindgen_ty_153 = _bindgen_ty_153::__TCA_BPF_MAX;
+pub const TCA_BPF_UNSPEC: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_UNSPEC;
+pub const TCA_BPF_ACT: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_ACT;
+pub const TCA_BPF_POLICE: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_POLICE;
+pub const TCA_BPF_CLASSID: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_CLASSID;
+pub const TCA_BPF_OPS_LEN: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_OPS_LEN;
+pub const TCA_BPF_OPS: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_OPS;
+pub const TCA_BPF_FD: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_FD;
+pub const TCA_BPF_NAME: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_NAME;
+pub const TCA_BPF_FLAGS: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_FLAGS;
+pub const TCA_BPF_FLAGS_GEN: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_FLAGS_GEN;
+pub const TCA_BPF_TAG: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_TAG;
+pub const TCA_BPF_ID: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_ID;
+pub const __TCA_BPF_MAX: _bindgen_ty_154 = _bindgen_ty_154::__TCA_BPF_MAX;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
-pub enum _bindgen_ty_153 {
+pub enum _bindgen_ty_154 {
     TCA_BPF_UNSPEC = 0,
     TCA_BPF_ACT = 1,
     TCA_BPF_POLICE = 2,

+ 198 - 56
aya/src/generated/linux_bindings_x86_64.rs

@@ -131,6 +131,8 @@ 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_F_SLEEPABLE: u32 = 16;
+pub const BPF_F_XDP_HAS_FRAGS: u32 = 32;
+pub const BPF_F_KPROBE_MULTI_RETURN: u32 = 1;
 pub const BPF_PSEUDO_MAP_FD: u32 = 1;
 pub const BPF_PSEUDO_MAP_IDX: u32 = 5;
 pub const BPF_PSEUDO_MAP_VALUE: u32 = 2;
@@ -141,6 +143,7 @@ pub const BPF_PSEUDO_CALL: u32 = 1;
 pub const BPF_PSEUDO_KFUNC_CALL: u32 = 2;
 pub const BPF_F_QUERY_EFFECTIVE: u32 = 1;
 pub const BPF_F_TEST_RUN_ON_CPU: u32 = 1;
+pub const BPF_F_TEST_XDP_LIVE_FRAMES: u32 = 2;
 pub const BTF_INT_SIGNED: u32 = 1;
 pub const BTF_INT_CHAR: u32 = 2;
 pub const BTF_INT_BOOL: u32 = 4;
@@ -388,7 +391,8 @@ pub enum bpf_attach_type {
     BPF_SK_REUSEPORT_SELECT = 39,
     BPF_SK_REUSEPORT_SELECT_OR_MIGRATE = 40,
     BPF_PERF_EVENT = 41,
-    __MAX_BPF_ATTACH_TYPE = 42,
+    BPF_TRACE_KPROBE_MULTI = 42,
+    __MAX_BPF_ATTACH_TYPE = 43,
 }
 pub const BPF_ANY: ::std::os::raw::c_uint = 0;
 pub const BPF_NOEXIST: ::std::os::raw::c_uint = 1;
@@ -544,6 +548,7 @@ pub struct bpf_attr__bindgen_ty_7 {
     pub ctx_out: __u64,
     pub flags: __u32,
     pub cpu: __u32,
+    pub batch_size: __u32,
 }
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -627,6 +632,7 @@ pub union bpf_attr__bindgen_ty_14__bindgen_ty_2 {
     pub target_btf_id: __u32,
     pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_2__bindgen_ty_1,
     pub perf_event: bpf_attr__bindgen_ty_14__bindgen_ty_2__bindgen_ty_2,
+    pub kprobe_multi: bpf_attr__bindgen_ty_14__bindgen_ty_2__bindgen_ty_3,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -641,6 +647,15 @@ pub struct bpf_attr__bindgen_ty_14__bindgen_ty_2__bindgen_ty_2 {
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_14__bindgen_ty_2__bindgen_ty_3 {
+    pub flags: __u32,
+    pub cnt: __u32,
+    pub syms: __u64,
+    pub addrs: __u64,
+    pub cookies: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
 pub struct bpf_attr__bindgen_ty_15 {
     pub link_fd: __u32,
     pub new_prog_fd: __u32,
@@ -849,7 +864,7 @@ pub const BTF_KIND_DECL_TAG: ::std::os::raw::c_uint = 17;
 pub const BTF_KIND_TYPE_TAG: ::std::os::raw::c_uint = 18;
 pub const NR_BTF_KINDS: ::std::os::raw::c_uint = 19;
 pub const BTF_KIND_MAX: ::std::os::raw::c_uint = 18;
-pub type _bindgen_ty_37 = ::std::os::raw::c_uint;
+pub type _bindgen_ty_38 = ::std::os::raw::c_uint;
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct btf_enum {
@@ -879,7 +894,7 @@ pub struct btf_param {
 pub const BTF_VAR_STATIC: ::std::os::raw::c_uint = 0;
 pub const BTF_VAR_GLOBAL_ALLOCATED: ::std::os::raw::c_uint = 1;
 pub const BTF_VAR_GLOBAL_EXTERN: ::std::os::raw::c_uint = 2;
-pub type _bindgen_ty_38 = ::std::os::raw::c_uint;
+pub type _bindgen_ty_39 = ::std::os::raw::c_uint;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
 pub enum btf_func_linkage {
@@ -971,7 +986,8 @@ pub enum perf_sw_ids {
     PERF_COUNT_SW_EMULATION_FAULTS = 8,
     PERF_COUNT_SW_DUMMY = 9,
     PERF_COUNT_SW_BPF_OUTPUT = 10,
-    PERF_COUNT_SW_MAX = 11,
+    PERF_COUNT_SW_CGROUP_SWITCHES = 11,
+    PERF_COUNT_SW_MAX = 12,
 }
 #[repr(u64)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
@@ -996,7 +1012,12 @@ pub enum perf_event_sample_format {
     PERF_SAMPLE_TRANSACTION = 131072,
     PERF_SAMPLE_REGS_INTR = 262144,
     PERF_SAMPLE_PHYS_ADDR = 524288,
-    PERF_SAMPLE_MAX = 1048576,
+    PERF_SAMPLE_AUX = 1048576,
+    PERF_SAMPLE_CGROUP = 2097152,
+    PERF_SAMPLE_DATA_PAGE_SIZE = 4194304,
+    PERF_SAMPLE_CODE_PAGE_SIZE = 8388608,
+    PERF_SAMPLE_WEIGHT_STRUCT = 16777216,
+    PERF_SAMPLE_MAX = 33554432,
     __PERF_SAMPLE_CALLCHAIN_EARLY = 9223372036854775808,
 }
 #[repr(C)]
@@ -1022,6 +1043,9 @@ pub struct perf_event_attr {
     pub aux_watermark: __u32,
     pub sample_max_stack: __u16,
     pub __reserved_2: __u16,
+    pub aux_sample_size: __u32,
+    pub __reserved_3: __u32,
+    pub sig_data: __u64,
 }
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -1394,14 +1418,80 @@ impl perf_event_attr {
         }
     }
     #[inline]
+    pub fn cgroup(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_cgroup(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(32usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn text_poke(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(33usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_text_poke(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(33usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn build_id(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(34usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_build_id(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(34usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn inherit_thread(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(35usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_inherit_thread(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(35usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn remove_on_exec(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(36usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_remove_on_exec(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(36usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn sigtrap(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(37usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_sigtrap(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(37usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
     pub fn __reserved_1(&self) -> __u64 {
-        unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 32u8) as u64) }
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(38usize, 26u8) as u64) }
     }
     #[inline]
     pub fn set___reserved_1(&mut self, val: __u64) {
         unsafe {
             let val: u64 = ::std::mem::transmute(val);
-            self._bitfield_1.set(32usize, 32u8, val as u64)
+            self._bitfield_1.set(38usize, 26u8, val as u64)
         }
     }
     #[inline]
@@ -1437,6 +1527,12 @@ impl perf_event_attr {
         ksymbol: __u64,
         bpf_event: __u64,
         aux_output: __u64,
+        cgroup: __u64,
+        text_poke: __u64,
+        build_id: __u64,
+        inherit_thread: __u64,
+        remove_on_exec: __u64,
+        sigtrap: __u64,
         __reserved_1: __u64,
     ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
         let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
@@ -1566,7 +1662,31 @@ impl perf_event_attr {
             let aux_output: u64 = unsafe { ::std::mem::transmute(aux_output) };
             aux_output as u64
         });
-        __bindgen_bitfield_unit.set(32usize, 32u8, {
+        __bindgen_bitfield_unit.set(32usize, 1u8, {
+            let cgroup: u64 = unsafe { ::std::mem::transmute(cgroup) };
+            cgroup as u64
+        });
+        __bindgen_bitfield_unit.set(33usize, 1u8, {
+            let text_poke: u64 = unsafe { ::std::mem::transmute(text_poke) };
+            text_poke as u64
+        });
+        __bindgen_bitfield_unit.set(34usize, 1u8, {
+            let build_id: u64 = unsafe { ::std::mem::transmute(build_id) };
+            build_id as u64
+        });
+        __bindgen_bitfield_unit.set(35usize, 1u8, {
+            let inherit_thread: u64 = unsafe { ::std::mem::transmute(inherit_thread) };
+            inherit_thread as u64
+        });
+        __bindgen_bitfield_unit.set(36usize, 1u8, {
+            let remove_on_exec: u64 = unsafe { ::std::mem::transmute(remove_on_exec) };
+            remove_on_exec as u64
+        });
+        __bindgen_bitfield_unit.set(37usize, 1u8, {
+            let sigtrap: u64 = unsafe { ::std::mem::transmute(sigtrap) };
+            sigtrap as u64
+        });
+        __bindgen_bitfield_unit.set(38usize, 26u8, {
             let __reserved_1: u64 = unsafe { ::std::mem::transmute(__reserved_1) };
             __reserved_1 as u64
         });
@@ -1590,7 +1710,10 @@ pub struct perf_event_mmap_page {
     pub time_offset: __u64,
     pub time_zero: __u64,
     pub size: __u32,
-    pub __reserved: [__u8; 948usize],
+    pub __reserved_1: __u32,
+    pub time_cycles: __u64,
+    pub time_mask: __u64,
+    pub __reserved: [__u8; 928usize],
     pub data_head: __u64,
     pub data_tail: __u64,
     pub data_offset: __u64,
@@ -1670,14 +1793,25 @@ impl perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1 {
         }
     }
     #[inline]
+    pub fn cap_user_time_short(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_cap_user_time_short(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(5usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
     pub fn cap_____res(&self) -> __u64 {
-        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 59u8) as u64) }
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 58u8) as u64) }
     }
     #[inline]
     pub fn set_cap_____res(&mut self, val: __u64) {
         unsafe {
             let val: u64 = ::std::mem::transmute(val);
-            self._bitfield_1.set(5usize, 59u8, val as u64)
+            self._bitfield_1.set(6usize, 58u8, val as u64)
         }
     }
     #[inline]
@@ -1687,6 +1821,7 @@ impl perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1 {
         cap_user_rdpmc: __u64,
         cap_user_time: __u64,
         cap_user_time_zero: __u64,
+        cap_user_time_short: __u64,
         cap_____res: __u64,
     ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
         let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
@@ -1711,7 +1846,11 @@ impl perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1 {
             let cap_user_time_zero: u64 = unsafe { ::std::mem::transmute(cap_user_time_zero) };
             cap_user_time_zero as u64
         });
-        __bindgen_bitfield_unit.set(5usize, 59u8, {
+        __bindgen_bitfield_unit.set(5usize, 1u8, {
+            let cap_user_time_short: u64 = unsafe { ::std::mem::transmute(cap_user_time_short) };
+            cap_user_time_short as u64
+        });
+        __bindgen_bitfield_unit.set(6usize, 58u8, {
             let cap_____res: u64 = unsafe { ::std::mem::transmute(cap_____res) };
             cap_____res as u64
         });
@@ -1746,21 +1885,24 @@ pub enum perf_event_type {
     PERF_RECORD_NAMESPACES = 16,
     PERF_RECORD_KSYMBOL = 17,
     PERF_RECORD_BPF_EVENT = 18,
-    PERF_RECORD_MAX = 19,
-}
-pub const IFLA_XDP_UNSPEC: _bindgen_ty_84 = _bindgen_ty_84::IFLA_XDP_UNSPEC;
-pub const IFLA_XDP_FD: _bindgen_ty_84 = _bindgen_ty_84::IFLA_XDP_FD;
-pub const IFLA_XDP_ATTACHED: _bindgen_ty_84 = _bindgen_ty_84::IFLA_XDP_ATTACHED;
-pub const IFLA_XDP_FLAGS: _bindgen_ty_84 = _bindgen_ty_84::IFLA_XDP_FLAGS;
-pub const IFLA_XDP_PROG_ID: _bindgen_ty_84 = _bindgen_ty_84::IFLA_XDP_PROG_ID;
-pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_84 = _bindgen_ty_84::IFLA_XDP_DRV_PROG_ID;
-pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_84 = _bindgen_ty_84::IFLA_XDP_SKB_PROG_ID;
-pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_84 = _bindgen_ty_84::IFLA_XDP_HW_PROG_ID;
-pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_84 = _bindgen_ty_84::IFLA_XDP_EXPECTED_FD;
-pub const __IFLA_XDP_MAX: _bindgen_ty_84 = _bindgen_ty_84::__IFLA_XDP_MAX;
+    PERF_RECORD_CGROUP = 19,
+    PERF_RECORD_TEXT_POKE = 20,
+    PERF_RECORD_AUX_OUTPUT_HW_ID = 21,
+    PERF_RECORD_MAX = 22,
+}
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_85 = _bindgen_ty_85::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_85 = _bindgen_ty_85::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_85 = _bindgen_ty_85::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_85 = _bindgen_ty_85::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_85 = _bindgen_ty_85::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_85 = _bindgen_ty_85::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_85 = _bindgen_ty_85::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_85 = _bindgen_ty_85::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_85 = _bindgen_ty_85::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_85 = _bindgen_ty_85::__IFLA_XDP_MAX;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
-pub enum _bindgen_ty_84 {
+pub enum _bindgen_ty_85 {
     IFLA_XDP_UNSPEC = 0,
     IFLA_XDP_FD = 1,
     IFLA_XDP_ATTACHED = 2,
@@ -1793,25 +1935,25 @@ pub struct tcmsg {
     pub tcm_parent: __u32,
     pub tcm_info: __u32,
 }
-pub const TCA_UNSPEC: _bindgen_ty_97 = _bindgen_ty_97::TCA_UNSPEC;
-pub const TCA_KIND: _bindgen_ty_97 = _bindgen_ty_97::TCA_KIND;
-pub const TCA_OPTIONS: _bindgen_ty_97 = _bindgen_ty_97::TCA_OPTIONS;
-pub const TCA_STATS: _bindgen_ty_97 = _bindgen_ty_97::TCA_STATS;
-pub const TCA_XSTATS: _bindgen_ty_97 = _bindgen_ty_97::TCA_XSTATS;
-pub const TCA_RATE: _bindgen_ty_97 = _bindgen_ty_97::TCA_RATE;
-pub const TCA_FCNT: _bindgen_ty_97 = _bindgen_ty_97::TCA_FCNT;
-pub const TCA_STATS2: _bindgen_ty_97 = _bindgen_ty_97::TCA_STATS2;
-pub const TCA_STAB: _bindgen_ty_97 = _bindgen_ty_97::TCA_STAB;
-pub const TCA_PAD: _bindgen_ty_97 = _bindgen_ty_97::TCA_PAD;
-pub const TCA_DUMP_INVISIBLE: _bindgen_ty_97 = _bindgen_ty_97::TCA_DUMP_INVISIBLE;
-pub const TCA_CHAIN: _bindgen_ty_97 = _bindgen_ty_97::TCA_CHAIN;
-pub const TCA_HW_OFFLOAD: _bindgen_ty_97 = _bindgen_ty_97::TCA_HW_OFFLOAD;
-pub const TCA_INGRESS_BLOCK: _bindgen_ty_97 = _bindgen_ty_97::TCA_INGRESS_BLOCK;
-pub const TCA_EGRESS_BLOCK: _bindgen_ty_97 = _bindgen_ty_97::TCA_EGRESS_BLOCK;
-pub const __TCA_MAX: _bindgen_ty_97 = _bindgen_ty_97::__TCA_MAX;
+pub const TCA_UNSPEC: _bindgen_ty_98 = _bindgen_ty_98::TCA_UNSPEC;
+pub const TCA_KIND: _bindgen_ty_98 = _bindgen_ty_98::TCA_KIND;
+pub const TCA_OPTIONS: _bindgen_ty_98 = _bindgen_ty_98::TCA_OPTIONS;
+pub const TCA_STATS: _bindgen_ty_98 = _bindgen_ty_98::TCA_STATS;
+pub const TCA_XSTATS: _bindgen_ty_98 = _bindgen_ty_98::TCA_XSTATS;
+pub const TCA_RATE: _bindgen_ty_98 = _bindgen_ty_98::TCA_RATE;
+pub const TCA_FCNT: _bindgen_ty_98 = _bindgen_ty_98::TCA_FCNT;
+pub const TCA_STATS2: _bindgen_ty_98 = _bindgen_ty_98::TCA_STATS2;
+pub const TCA_STAB: _bindgen_ty_98 = _bindgen_ty_98::TCA_STAB;
+pub const TCA_PAD: _bindgen_ty_98 = _bindgen_ty_98::TCA_PAD;
+pub const TCA_DUMP_INVISIBLE: _bindgen_ty_98 = _bindgen_ty_98::TCA_DUMP_INVISIBLE;
+pub const TCA_CHAIN: _bindgen_ty_98 = _bindgen_ty_98::TCA_CHAIN;
+pub const TCA_HW_OFFLOAD: _bindgen_ty_98 = _bindgen_ty_98::TCA_HW_OFFLOAD;
+pub const TCA_INGRESS_BLOCK: _bindgen_ty_98 = _bindgen_ty_98::TCA_INGRESS_BLOCK;
+pub const TCA_EGRESS_BLOCK: _bindgen_ty_98 = _bindgen_ty_98::TCA_EGRESS_BLOCK;
+pub const __TCA_MAX: _bindgen_ty_98 = _bindgen_ty_98::__TCA_MAX;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
-pub enum _bindgen_ty_97 {
+pub enum _bindgen_ty_98 {
     TCA_UNSPEC = 0,
     TCA_KIND = 1,
     TCA_OPTIONS = 2,
@@ -1829,22 +1971,22 @@ pub enum _bindgen_ty_97 {
     TCA_EGRESS_BLOCK = 14,
     __TCA_MAX = 15,
 }
-pub const TCA_BPF_UNSPEC: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_UNSPEC;
-pub const TCA_BPF_ACT: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_ACT;
-pub const TCA_BPF_POLICE: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_POLICE;
-pub const TCA_BPF_CLASSID: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_CLASSID;
-pub const TCA_BPF_OPS_LEN: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_OPS_LEN;
-pub const TCA_BPF_OPS: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_OPS;
-pub const TCA_BPF_FD: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_FD;
-pub const TCA_BPF_NAME: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_NAME;
-pub const TCA_BPF_FLAGS: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_FLAGS;
-pub const TCA_BPF_FLAGS_GEN: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_FLAGS_GEN;
-pub const TCA_BPF_TAG: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_TAG;
-pub const TCA_BPF_ID: _bindgen_ty_153 = _bindgen_ty_153::TCA_BPF_ID;
-pub const __TCA_BPF_MAX: _bindgen_ty_153 = _bindgen_ty_153::__TCA_BPF_MAX;
+pub const TCA_BPF_UNSPEC: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_UNSPEC;
+pub const TCA_BPF_ACT: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_ACT;
+pub const TCA_BPF_POLICE: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_POLICE;
+pub const TCA_BPF_CLASSID: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_CLASSID;
+pub const TCA_BPF_OPS_LEN: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_OPS_LEN;
+pub const TCA_BPF_OPS: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_OPS;
+pub const TCA_BPF_FD: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_FD;
+pub const TCA_BPF_NAME: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_NAME;
+pub const TCA_BPF_FLAGS: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_FLAGS;
+pub const TCA_BPF_FLAGS_GEN: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_FLAGS_GEN;
+pub const TCA_BPF_TAG: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_TAG;
+pub const TCA_BPF_ID: _bindgen_ty_154 = _bindgen_ty_154::TCA_BPF_ID;
+pub const __TCA_BPF_MAX: _bindgen_ty_154 = _bindgen_ty_154::__TCA_BPF_MAX;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
-pub enum _bindgen_ty_153 {
+pub enum _bindgen_ty_154 {
     TCA_BPF_UNSPEC = 0,
     TCA_BPF_ACT = 1,
     TCA_BPF_POLICE = 2,

+ 64 - 46
bpf/aya-bpf-bindings/src/aarch64/bindings.rs

@@ -146,6 +146,8 @@ 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_F_SLEEPABLE: u32 = 16;
+pub const BPF_F_XDP_HAS_FRAGS: u32 = 32;
+pub const BPF_F_KPROBE_MULTI_RETURN: u32 = 1;
 pub const BPF_PSEUDO_MAP_FD: u32 = 1;
 pub const BPF_PSEUDO_MAP_IDX: u32 = 5;
 pub const BPF_PSEUDO_MAP_VALUE: u32 = 2;
@@ -156,6 +158,7 @@ pub const BPF_PSEUDO_CALL: u32 = 1;
 pub const BPF_PSEUDO_KFUNC_CALL: u32 = 2;
 pub const BPF_F_QUERY_EFFECTIVE: u32 = 1;
 pub const BPF_F_TEST_RUN_ON_CPU: u32 = 1;
+pub const BPF_F_TEST_XDP_LIVE_FRAMES: u32 = 2;
 pub const BPF_BUILD_ID_SIZE: u32 = 20;
 pub const BPF_OBJ_NAME_LEN: u32 = 16;
 pub const BPF_TAG_SIZE: u32 = 8;
@@ -397,6 +400,11 @@ pub type _bindgen_ty_23 = ::aya_bpf_cty::c_uint;
 pub const BPF_F_BROADCAST: ::aya_bpf_cty::c_uint = 8;
 pub const BPF_F_EXCLUDE_INGRESS: ::aya_bpf_cty::c_uint = 16;
 pub type _bindgen_ty_24 = ::aya_bpf_cty::c_uint;
+pub mod _bindgen_ty_25 {
+    pub type Type = ::aya_bpf_cty::c_uint;
+    pub const BPF_SKB_TSTAMP_UNSPEC: Type = 0;
+    pub const BPF_SKB_TSTAMP_DELIVERY_MONO: Type = 1;
+}
 #[repr(C)]
 #[derive(Copy, Clone)]
 pub struct __sk_buff {
@@ -432,8 +440,9 @@ pub struct __sk_buff {
     pub gso_segs: __u32,
     pub __bindgen_anon_2: __sk_buff__bindgen_ty_2,
     pub gso_size: __u32,
+    pub tstamp_type: __u8,
     pub _bitfield_align_1: [u8; 0],
-    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>,
     pub hwtstamp: __u64,
 }
 #[repr(C)]
@@ -466,8 +475,8 @@ impl __sk_buff__bindgen_ty_2 {
 }
 impl __sk_buff {
     #[inline]
-    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
-        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 3usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize]> = Default::default();
         __bindgen_bitfield_unit
     }
 }
@@ -503,7 +512,7 @@ pub union bpf_xfrm_state__bindgen_ty_1 {
     pub remote_ipv6: [__u32; 4usize],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_sock {
     pub bound_dev_if: __u32,
     pub family: __u32,
@@ -514,14 +523,23 @@ pub struct bpf_sock {
     pub src_ip4: __u32,
     pub src_ip6: [__u32; 4usize],
     pub src_port: __u32,
-    pub dst_port: __u32,
+    pub dst_port: __be16,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
     pub dst_ip4: __u32,
     pub dst_ip6: [__u32; 4usize],
     pub state: __u32,
     pub rx_queue_mapping: __s32,
 }
+impl bpf_sock {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 2usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_tcp_sock {
     pub snd_cwnd: __u32,
     pub srtt_us: __u32,
@@ -562,7 +580,7 @@ pub union bpf_sock_tuple__bindgen_ty_1 {
     pub ipv6: bpf_sock_tuple__bindgen_ty_1__bindgen_ty_2,
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_sock_tuple__bindgen_ty_1__bindgen_ty_1 {
     pub saddr: __be32,
     pub daddr: __be32,
@@ -570,7 +588,7 @@ pub struct bpf_sock_tuple__bindgen_ty_1__bindgen_ty_1 {
     pub dport: __be16,
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_sock_tuple__bindgen_ty_1__bindgen_ty_2 {
     pub saddr: [__be32; 4usize],
     pub daddr: [__be32; 4usize],
@@ -586,7 +604,7 @@ pub mod xdp_action {
     pub const XDP_REDIRECT: Type = 4;
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct xdp_md {
     pub data: __u32,
     pub data_end: __u32,
@@ -727,7 +745,7 @@ impl sk_reuseport_md__bindgen_ty_4 {
     }
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_map_info {
     pub type_: __u32,
     pub id: __u32,
@@ -883,7 +901,7 @@ pub const BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG: ::aya_bpf_cty::c_uint = 16;
 pub const BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG: ::aya_bpf_cty::c_uint = 32;
 pub const BPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG: ::aya_bpf_cty::c_uint = 64;
 pub const BPF_SOCK_OPS_ALL_CB_FLAGS: ::aya_bpf_cty::c_uint = 127;
-pub type _bindgen_ty_25 = ::aya_bpf_cty::c_uint;
+pub type _bindgen_ty_26 = ::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;
@@ -900,7 +918,7 @@ pub const BPF_SOCK_OPS_RTT_CB: ::aya_bpf_cty::c_uint = 12;
 pub const BPF_SOCK_OPS_PARSE_HDR_OPT_CB: ::aya_bpf_cty::c_uint = 13;
 pub const BPF_SOCK_OPS_HDR_OPT_LEN_CB: ::aya_bpf_cty::c_uint = 14;
 pub const BPF_SOCK_OPS_WRITE_HDR_OPT_CB: ::aya_bpf_cty::c_uint = 15;
-pub type _bindgen_ty_26 = ::aya_bpf_cty::c_uint;
+pub type _bindgen_ty_27 = ::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;
@@ -914,18 +932,18 @@ 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_27 = ::aya_bpf_cty::c_uint;
-pub mod _bindgen_ty_29 {
+pub type _bindgen_ty_28 = ::aya_bpf_cty::c_uint;
+pub mod _bindgen_ty_30 {
     pub type Type = ::aya_bpf_cty::c_uint;
     pub const BPF_LOAD_HDR_OPT_TCP_SYN: Type = 1;
 }
-pub mod _bindgen_ty_30 {
+pub mod _bindgen_ty_31 {
     pub type Type = ::aya_bpf_cty::c_uint;
     pub const BPF_WRITE_HDR_TCP_CURRENT_MSS: Type = 1;
     pub const BPF_WRITE_HDR_TCP_SYNACK_COOKIE: Type = 2;
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_perf_event_value {
     pub counter: __u64,
     pub enabled: __u64,
@@ -934,13 +952,13 @@ pub struct bpf_perf_event_value {
 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_31 = ::aya_bpf_cty::c_uint;
+pub type _bindgen_ty_32 = ::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_32 = ::aya_bpf_cty::c_uint;
+pub type _bindgen_ty_33 = ::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_33 = ::aya_bpf_cty::c_uint;
+pub type _bindgen_ty_34 = ::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;
@@ -950,7 +968,7 @@ 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_34 = ::aya_bpf_cty::c_uint;
+pub type _bindgen_ty_35 = ::aya_bpf_cty::c_uint;
 #[repr(C)]
 #[derive(Copy, Clone)]
 pub struct bpf_fib_lookup {
@@ -1008,7 +1026,7 @@ pub union bpf_redir_neigh__bindgen_ty_1 {
 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_35 = ::aya_bpf_cty::c_uint;
+pub type _bindgen_ty_36 = ::aya_bpf_cty::c_uint;
 #[repr(C)]
 #[derive(Copy, Clone)]
 pub struct bpf_flow_keys {
@@ -1033,25 +1051,25 @@ pub union bpf_flow_keys__bindgen_ty_1 {
     pub __bindgen_anon_2: bpf_flow_keys__bindgen_ty_1__bindgen_ty_2,
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(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)]
+#[derive(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)]
+#[derive(Copy, Clone)]
 pub struct bpf_spin_lock {
     pub val: __u32,
 }
 #[repr(C)]
 #[repr(align(8))]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_timer {
     pub _bitfield_align_1: [u8; 0],
     pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>,
@@ -1064,26 +1082,26 @@ impl bpf_timer {
     }
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_sysctl {
     pub write: __u32,
     pub file_pos: __u32,
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_pidns_info {
     pub pid: __u32,
     pub tgid: __u32,
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct btf_ptr {
     pub ptr: *mut ::aya_bpf_cty::c_void,
     pub type_id: __u32,
     pub flags: __u32,
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct user_pt_regs {
     pub regs: [__u64; 31usize],
     pub sp: __u64,
@@ -1092,88 +1110,88 @@ pub struct user_pt_regs {
 }
 pub type sa_family_t = ::aya_bpf_cty::c_ushort;
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct sockaddr {
     pub sa_family: sa_family_t,
     pub sa_data: [::aya_bpf_cty::c_char; 14usize],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_perf_event_data {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct linux_binprm {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct pt_regs {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct tcphdr {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct seq_file {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct tcp6_sock {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct tcp_sock {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct tcp_timewait_sock {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct tcp_request_sock {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct udp6_sock {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct unix_sock {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct task_struct {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct path {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct inode {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct socket {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct file {
     _unused: [u8; 0],
 }

+ 4 - 1
bpf/aya-bpf-bindings/src/aarch64/getters.rs

@@ -107,6 +107,9 @@ impl __sk_buff {
     pub fn gso_size(&self) -> Option<__u32> {
         unsafe { crate::bpf_probe_read(&self.gso_size) }.ok()
     }
+    pub fn tstamp_type(&self) -> Option<__u8> {
+        unsafe { crate::bpf_probe_read(&self.tstamp_type) }.ok()
+    }
     pub fn hwtstamp(&self) -> Option<__u64> {
         unsafe { crate::bpf_probe_read(&self.hwtstamp) }.ok()
     }
@@ -218,7 +221,7 @@ impl bpf_sock {
     pub fn src_port(&self) -> Option<__u32> {
         unsafe { crate::bpf_probe_read(&self.src_port) }.ok()
     }
-    pub fn dst_port(&self) -> Option<__u32> {
+    pub fn dst_port(&self) -> Option<__be16> {
         unsafe { crate::bpf_probe_read(&self.dst_port) }.ok()
     }
     pub fn dst_ip4(&self) -> Option<__u32> {

+ 91 - 0
bpf/aya-bpf-bindings/src/aarch64/helpers.rs

@@ -1878,3 +1878,94 @@ pub unsafe fn bpf_get_func_arg_cnt(ctx: *mut ::aya_bpf_cty::c_void) -> ::aya_bpf
         ::core::mem::transmute(185usize);
     fun(ctx)
 }
+pub unsafe fn bpf_get_retval() -> ::aya_bpf_cty::c_int {
+    let fun: unsafe extern "C" fn() -> ::aya_bpf_cty::c_int = ::core::mem::transmute(186usize);
+    fun()
+}
+pub unsafe fn bpf_set_retval(retval: ::aya_bpf_cty::c_int) -> ::aya_bpf_cty::c_int {
+    let fun: unsafe extern "C" fn(retval: ::aya_bpf_cty::c_int) -> ::aya_bpf_cty::c_int =
+        ::core::mem::transmute(187usize);
+    fun(retval)
+}
+pub unsafe fn bpf_xdp_get_buff_len(xdp_md: *mut xdp_md) -> __u64 {
+    let fun: unsafe extern "C" fn(xdp_md: *mut xdp_md) -> __u64 = ::core::mem::transmute(188usize);
+    fun(xdp_md)
+}
+pub unsafe fn bpf_xdp_load_bytes(
+    xdp_md: *mut xdp_md,
+    offset: __u32,
+    buf: *mut ::aya_bpf_cty::c_void,
+    len: __u32,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(
+        xdp_md: *mut xdp_md,
+        offset: __u32,
+        buf: *mut ::aya_bpf_cty::c_void,
+        len: __u32,
+    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(189usize);
+    fun(xdp_md, offset, buf, len)
+}
+pub unsafe fn bpf_xdp_store_bytes(
+    xdp_md: *mut xdp_md,
+    offset: __u32,
+    buf: *mut ::aya_bpf_cty::c_void,
+    len: __u32,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(
+        xdp_md: *mut xdp_md,
+        offset: __u32,
+        buf: *mut ::aya_bpf_cty::c_void,
+        len: __u32,
+    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(190usize);
+    fun(xdp_md, offset, buf, len)
+}
+pub unsafe fn bpf_copy_from_user_task(
+    dst: *mut ::aya_bpf_cty::c_void,
+    size: __u32,
+    user_ptr: *const ::aya_bpf_cty::c_void,
+    tsk: *mut task_struct,
+    flags: __u64,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(
+        dst: *mut ::aya_bpf_cty::c_void,
+        size: __u32,
+        user_ptr: *const ::aya_bpf_cty::c_void,
+        tsk: *mut task_struct,
+        flags: __u64,
+    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(191usize);
+    fun(dst, size, user_ptr, tsk, flags)
+}
+pub unsafe fn bpf_skb_set_tstamp(
+    skb: *mut __sk_buff,
+    tstamp: __u64,
+    tstamp_type: __u32,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(
+        skb: *mut __sk_buff,
+        tstamp: __u64,
+        tstamp_type: __u32,
+    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(192usize);
+    fun(skb, tstamp, tstamp_type)
+}
+pub unsafe fn bpf_ima_file_hash(
+    file: *mut file,
+    dst: *mut ::aya_bpf_cty::c_void,
+    size: __u32,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(
+        file: *mut file,
+        dst: *mut ::aya_bpf_cty::c_void,
+        size: __u32,
+    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(193usize);
+    fun(file, dst, size)
+}
+pub unsafe fn bpf_kptr_xchg(
+    map_value: *mut ::aya_bpf_cty::c_void,
+    ptr: *mut ::aya_bpf_cty::c_void,
+) -> *mut ::aya_bpf_cty::c_void {
+    let fun: unsafe extern "C" fn(
+        map_value: *mut ::aya_bpf_cty::c_void,
+        ptr: *mut ::aya_bpf_cty::c_void,
+    ) -> *mut ::aya_bpf_cty::c_void = ::core::mem::transmute(194usize);
+    fun(map_value, ptr)
+}

+ 63 - 45
bpf/aya-bpf-bindings/src/armv7/bindings.rs

@@ -146,6 +146,8 @@ 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_F_SLEEPABLE: u32 = 16;
+pub const BPF_F_XDP_HAS_FRAGS: u32 = 32;
+pub const BPF_F_KPROBE_MULTI_RETURN: u32 = 1;
 pub const BPF_PSEUDO_MAP_FD: u32 = 1;
 pub const BPF_PSEUDO_MAP_IDX: u32 = 5;
 pub const BPF_PSEUDO_MAP_VALUE: u32 = 2;
@@ -156,6 +158,7 @@ pub const BPF_PSEUDO_CALL: u32 = 1;
 pub const BPF_PSEUDO_KFUNC_CALL: u32 = 2;
 pub const BPF_F_QUERY_EFFECTIVE: u32 = 1;
 pub const BPF_F_TEST_RUN_ON_CPU: u32 = 1;
+pub const BPF_F_TEST_XDP_LIVE_FRAMES: u32 = 2;
 pub const BPF_BUILD_ID_SIZE: u32 = 20;
 pub const BPF_OBJ_NAME_LEN: u32 = 16;
 pub const BPF_TAG_SIZE: u32 = 8;
@@ -392,6 +395,11 @@ pub type _bindgen_ty_23 = ::aya_bpf_cty::c_uint;
 pub const BPF_F_BROADCAST: ::aya_bpf_cty::c_uint = 8;
 pub const BPF_F_EXCLUDE_INGRESS: ::aya_bpf_cty::c_uint = 16;
 pub type _bindgen_ty_24 = ::aya_bpf_cty::c_uint;
+pub mod _bindgen_ty_25 {
+    pub type Type = ::aya_bpf_cty::c_uint;
+    pub const BPF_SKB_TSTAMP_UNSPEC: Type = 0;
+    pub const BPF_SKB_TSTAMP_DELIVERY_MONO: Type = 1;
+}
 #[repr(C)]
 #[derive(Copy, Clone)]
 pub struct __sk_buff {
@@ -427,8 +435,9 @@ pub struct __sk_buff {
     pub gso_segs: __u32,
     pub __bindgen_anon_2: __sk_buff__bindgen_ty_2,
     pub gso_size: __u32,
+    pub tstamp_type: __u8,
     pub _bitfield_align_1: [u8; 0],
-    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>,
     pub hwtstamp: __u64,
 }
 #[repr(C)]
@@ -463,8 +472,8 @@ impl __sk_buff__bindgen_ty_2 {
 }
 impl __sk_buff {
     #[inline]
-    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
-        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 3usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize]> = Default::default();
         __bindgen_bitfield_unit
     }
 }
@@ -500,7 +509,7 @@ pub union bpf_xfrm_state__bindgen_ty_1 {
     pub remote_ipv6: [__u32; 4usize],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_sock {
     pub bound_dev_if: __u32,
     pub family: __u32,
@@ -511,14 +520,23 @@ pub struct bpf_sock {
     pub src_ip4: __u32,
     pub src_ip6: [__u32; 4usize],
     pub src_port: __u32,
-    pub dst_port: __u32,
+    pub dst_port: __be16,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
     pub dst_ip4: __u32,
     pub dst_ip6: [__u32; 4usize],
     pub state: __u32,
     pub rx_queue_mapping: __s32,
 }
+impl bpf_sock {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 2usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_tcp_sock {
     pub snd_cwnd: __u32,
     pub srtt_us: __u32,
@@ -559,7 +577,7 @@ pub union bpf_sock_tuple__bindgen_ty_1 {
     pub ipv6: bpf_sock_tuple__bindgen_ty_1__bindgen_ty_2,
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_sock_tuple__bindgen_ty_1__bindgen_ty_1 {
     pub saddr: __be32,
     pub daddr: __be32,
@@ -567,7 +585,7 @@ pub struct bpf_sock_tuple__bindgen_ty_1__bindgen_ty_1 {
     pub dport: __be16,
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_sock_tuple__bindgen_ty_1__bindgen_ty_2 {
     pub saddr: [__be32; 4usize],
     pub daddr: [__be32; 4usize],
@@ -583,7 +601,7 @@ pub mod xdp_action {
     pub const XDP_REDIRECT: Type = 4;
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct xdp_md {
     pub data: __u32,
     pub data_end: __u32,
@@ -731,7 +749,7 @@ impl sk_reuseport_md__bindgen_ty_4 {
     }
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_map_info {
     pub type_: __u32,
     pub id: __u32,
@@ -891,7 +909,7 @@ pub const BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG: ::aya_bpf_cty::c_uint = 16;
 pub const BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG: ::aya_bpf_cty::c_uint = 32;
 pub const BPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG: ::aya_bpf_cty::c_uint = 64;
 pub const BPF_SOCK_OPS_ALL_CB_FLAGS: ::aya_bpf_cty::c_uint = 127;
-pub type _bindgen_ty_25 = ::aya_bpf_cty::c_uint;
+pub type _bindgen_ty_26 = ::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;
@@ -908,7 +926,7 @@ pub const BPF_SOCK_OPS_RTT_CB: ::aya_bpf_cty::c_uint = 12;
 pub const BPF_SOCK_OPS_PARSE_HDR_OPT_CB: ::aya_bpf_cty::c_uint = 13;
 pub const BPF_SOCK_OPS_HDR_OPT_LEN_CB: ::aya_bpf_cty::c_uint = 14;
 pub const BPF_SOCK_OPS_WRITE_HDR_OPT_CB: ::aya_bpf_cty::c_uint = 15;
-pub type _bindgen_ty_26 = ::aya_bpf_cty::c_uint;
+pub type _bindgen_ty_27 = ::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;
@@ -922,18 +940,18 @@ 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_27 = ::aya_bpf_cty::c_uint;
-pub mod _bindgen_ty_29 {
+pub type _bindgen_ty_28 = ::aya_bpf_cty::c_uint;
+pub mod _bindgen_ty_30 {
     pub type Type = ::aya_bpf_cty::c_uint;
     pub const BPF_LOAD_HDR_OPT_TCP_SYN: Type = 1;
 }
-pub mod _bindgen_ty_30 {
+pub mod _bindgen_ty_31 {
     pub type Type = ::aya_bpf_cty::c_uint;
     pub const BPF_WRITE_HDR_TCP_CURRENT_MSS: Type = 1;
     pub const BPF_WRITE_HDR_TCP_SYNACK_COOKIE: Type = 2;
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_perf_event_value {
     pub counter: __u64,
     pub enabled: __u64,
@@ -942,13 +960,13 @@ pub struct bpf_perf_event_value {
 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_31 = ::aya_bpf_cty::c_uint;
+pub type _bindgen_ty_32 = ::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_32 = ::aya_bpf_cty::c_uint;
+pub type _bindgen_ty_33 = ::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_33 = ::aya_bpf_cty::c_uint;
+pub type _bindgen_ty_34 = ::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;
@@ -958,7 +976,7 @@ 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_34 = ::aya_bpf_cty::c_uint;
+pub type _bindgen_ty_35 = ::aya_bpf_cty::c_uint;
 #[repr(C)]
 #[derive(Copy, Clone)]
 pub struct bpf_fib_lookup {
@@ -1016,7 +1034,7 @@ pub union bpf_redir_neigh__bindgen_ty_1 {
 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_35 = ::aya_bpf_cty::c_uint;
+pub type _bindgen_ty_36 = ::aya_bpf_cty::c_uint;
 #[repr(C)]
 #[derive(Copy, Clone)]
 pub struct bpf_flow_keys {
@@ -1041,25 +1059,25 @@ pub union bpf_flow_keys__bindgen_ty_1 {
     pub __bindgen_anon_2: bpf_flow_keys__bindgen_ty_1__bindgen_ty_2,
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(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)]
+#[derive(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)]
+#[derive(Copy, Clone)]
 pub struct bpf_spin_lock {
     pub val: __u32,
 }
 #[repr(C)]
 #[repr(align(8))]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_timer {
     pub _bitfield_align_1: [u8; 0],
     pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>,
@@ -1072,108 +1090,108 @@ impl bpf_timer {
     }
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_sysctl {
     pub write: __u32,
     pub file_pos: __u32,
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_pidns_info {
     pub pid: __u32,
     pub tgid: __u32,
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct btf_ptr {
     pub ptr: *mut ::aya_bpf_cty::c_void,
     pub type_id: __u32,
     pub flags: __u32,
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct pt_regs {
     pub uregs: [::aya_bpf_cty::c_long; 18usize],
 }
 pub type sa_family_t = ::aya_bpf_cty::c_ushort;
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct sockaddr {
     pub sa_family: sa_family_t,
     pub sa_data: [::aya_bpf_cty::c_char; 14usize],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_perf_event_data {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct linux_binprm {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct tcphdr {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct seq_file {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct tcp6_sock {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct tcp_sock {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct tcp_timewait_sock {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct tcp_request_sock {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct udp6_sock {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct unix_sock {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct task_struct {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct path {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct inode {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct socket {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct file {
     _unused: [u8; 0],
 }

+ 4 - 1
bpf/aya-bpf-bindings/src/armv7/getters.rs

@@ -107,6 +107,9 @@ impl __sk_buff {
     pub fn gso_size(&self) -> Option<__u32> {
         unsafe { crate::bpf_probe_read(&self.gso_size) }.ok()
     }
+    pub fn tstamp_type(&self) -> Option<__u8> {
+        unsafe { crate::bpf_probe_read(&self.tstamp_type) }.ok()
+    }
     pub fn hwtstamp(&self) -> Option<__u64> {
         unsafe { crate::bpf_probe_read(&self.hwtstamp) }.ok()
     }
@@ -218,7 +221,7 @@ impl bpf_sock {
     pub fn src_port(&self) -> Option<__u32> {
         unsafe { crate::bpf_probe_read(&self.src_port) }.ok()
     }
-    pub fn dst_port(&self) -> Option<__u32> {
+    pub fn dst_port(&self) -> Option<__be16> {
         unsafe { crate::bpf_probe_read(&self.dst_port) }.ok()
     }
     pub fn dst_ip4(&self) -> Option<__u32> {

+ 91 - 0
bpf/aya-bpf-bindings/src/armv7/helpers.rs

@@ -1878,3 +1878,94 @@ pub unsafe fn bpf_get_func_arg_cnt(ctx: *mut ::aya_bpf_cty::c_void) -> ::aya_bpf
         ::core::mem::transmute(185usize);
     fun(ctx)
 }
+pub unsafe fn bpf_get_retval() -> ::aya_bpf_cty::c_int {
+    let fun: unsafe extern "C" fn() -> ::aya_bpf_cty::c_int = ::core::mem::transmute(186usize);
+    fun()
+}
+pub unsafe fn bpf_set_retval(retval: ::aya_bpf_cty::c_int) -> ::aya_bpf_cty::c_int {
+    let fun: unsafe extern "C" fn(retval: ::aya_bpf_cty::c_int) -> ::aya_bpf_cty::c_int =
+        ::core::mem::transmute(187usize);
+    fun(retval)
+}
+pub unsafe fn bpf_xdp_get_buff_len(xdp_md: *mut xdp_md) -> __u64 {
+    let fun: unsafe extern "C" fn(xdp_md: *mut xdp_md) -> __u64 = ::core::mem::transmute(188usize);
+    fun(xdp_md)
+}
+pub unsafe fn bpf_xdp_load_bytes(
+    xdp_md: *mut xdp_md,
+    offset: __u32,
+    buf: *mut ::aya_bpf_cty::c_void,
+    len: __u32,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(
+        xdp_md: *mut xdp_md,
+        offset: __u32,
+        buf: *mut ::aya_bpf_cty::c_void,
+        len: __u32,
+    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(189usize);
+    fun(xdp_md, offset, buf, len)
+}
+pub unsafe fn bpf_xdp_store_bytes(
+    xdp_md: *mut xdp_md,
+    offset: __u32,
+    buf: *mut ::aya_bpf_cty::c_void,
+    len: __u32,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(
+        xdp_md: *mut xdp_md,
+        offset: __u32,
+        buf: *mut ::aya_bpf_cty::c_void,
+        len: __u32,
+    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(190usize);
+    fun(xdp_md, offset, buf, len)
+}
+pub unsafe fn bpf_copy_from_user_task(
+    dst: *mut ::aya_bpf_cty::c_void,
+    size: __u32,
+    user_ptr: *const ::aya_bpf_cty::c_void,
+    tsk: *mut task_struct,
+    flags: __u64,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(
+        dst: *mut ::aya_bpf_cty::c_void,
+        size: __u32,
+        user_ptr: *const ::aya_bpf_cty::c_void,
+        tsk: *mut task_struct,
+        flags: __u64,
+    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(191usize);
+    fun(dst, size, user_ptr, tsk, flags)
+}
+pub unsafe fn bpf_skb_set_tstamp(
+    skb: *mut __sk_buff,
+    tstamp: __u64,
+    tstamp_type: __u32,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(
+        skb: *mut __sk_buff,
+        tstamp: __u64,
+        tstamp_type: __u32,
+    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(192usize);
+    fun(skb, tstamp, tstamp_type)
+}
+pub unsafe fn bpf_ima_file_hash(
+    file: *mut file,
+    dst: *mut ::aya_bpf_cty::c_void,
+    size: __u32,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(
+        file: *mut file,
+        dst: *mut ::aya_bpf_cty::c_void,
+        size: __u32,
+    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(193usize);
+    fun(file, dst, size)
+}
+pub unsafe fn bpf_kptr_xchg(
+    map_value: *mut ::aya_bpf_cty::c_void,
+    ptr: *mut ::aya_bpf_cty::c_void,
+) -> *mut ::aya_bpf_cty::c_void {
+    let fun: unsafe extern "C" fn(
+        map_value: *mut ::aya_bpf_cty::c_void,
+        ptr: *mut ::aya_bpf_cty::c_void,
+    ) -> *mut ::aya_bpf_cty::c_void = ::core::mem::transmute(194usize);
+    fun(map_value, ptr)
+}

+ 63 - 45
bpf/aya-bpf-bindings/src/x86_64/bindings.rs

@@ -146,6 +146,8 @@ 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_F_SLEEPABLE: u32 = 16;
+pub const BPF_F_XDP_HAS_FRAGS: u32 = 32;
+pub const BPF_F_KPROBE_MULTI_RETURN: u32 = 1;
 pub const BPF_PSEUDO_MAP_FD: u32 = 1;
 pub const BPF_PSEUDO_MAP_IDX: u32 = 5;
 pub const BPF_PSEUDO_MAP_VALUE: u32 = 2;
@@ -156,6 +158,7 @@ pub const BPF_PSEUDO_CALL: u32 = 1;
 pub const BPF_PSEUDO_KFUNC_CALL: u32 = 2;
 pub const BPF_F_QUERY_EFFECTIVE: u32 = 1;
 pub const BPF_F_TEST_RUN_ON_CPU: u32 = 1;
+pub const BPF_F_TEST_XDP_LIVE_FRAMES: u32 = 2;
 pub const BPF_BUILD_ID_SIZE: u32 = 20;
 pub const BPF_OBJ_NAME_LEN: u32 = 16;
 pub const BPF_TAG_SIZE: u32 = 8;
@@ -397,6 +400,11 @@ pub type _bindgen_ty_23 = ::aya_bpf_cty::c_uint;
 pub const BPF_F_BROADCAST: ::aya_bpf_cty::c_uint = 8;
 pub const BPF_F_EXCLUDE_INGRESS: ::aya_bpf_cty::c_uint = 16;
 pub type _bindgen_ty_24 = ::aya_bpf_cty::c_uint;
+pub mod _bindgen_ty_25 {
+    pub type Type = ::aya_bpf_cty::c_uint;
+    pub const BPF_SKB_TSTAMP_UNSPEC: Type = 0;
+    pub const BPF_SKB_TSTAMP_DELIVERY_MONO: Type = 1;
+}
 #[repr(C)]
 #[derive(Copy, Clone)]
 pub struct __sk_buff {
@@ -432,8 +440,9 @@ pub struct __sk_buff {
     pub gso_segs: __u32,
     pub __bindgen_anon_2: __sk_buff__bindgen_ty_2,
     pub gso_size: __u32,
+    pub tstamp_type: __u8,
     pub _bitfield_align_1: [u8; 0],
-    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>,
     pub hwtstamp: __u64,
 }
 #[repr(C)]
@@ -466,8 +475,8 @@ impl __sk_buff__bindgen_ty_2 {
 }
 impl __sk_buff {
     #[inline]
-    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
-        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 3usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize]> = Default::default();
         __bindgen_bitfield_unit
     }
 }
@@ -503,7 +512,7 @@ pub union bpf_xfrm_state__bindgen_ty_1 {
     pub remote_ipv6: [__u32; 4usize],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_sock {
     pub bound_dev_if: __u32,
     pub family: __u32,
@@ -514,14 +523,23 @@ pub struct bpf_sock {
     pub src_ip4: __u32,
     pub src_ip6: [__u32; 4usize],
     pub src_port: __u32,
-    pub dst_port: __u32,
+    pub dst_port: __be16,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
     pub dst_ip4: __u32,
     pub dst_ip6: [__u32; 4usize],
     pub state: __u32,
     pub rx_queue_mapping: __s32,
 }
+impl bpf_sock {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 2usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_tcp_sock {
     pub snd_cwnd: __u32,
     pub srtt_us: __u32,
@@ -562,7 +580,7 @@ pub union bpf_sock_tuple__bindgen_ty_1 {
     pub ipv6: bpf_sock_tuple__bindgen_ty_1__bindgen_ty_2,
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_sock_tuple__bindgen_ty_1__bindgen_ty_1 {
     pub saddr: __be32,
     pub daddr: __be32,
@@ -570,7 +588,7 @@ pub struct bpf_sock_tuple__bindgen_ty_1__bindgen_ty_1 {
     pub dport: __be16,
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_sock_tuple__bindgen_ty_1__bindgen_ty_2 {
     pub saddr: [__be32; 4usize],
     pub daddr: [__be32; 4usize],
@@ -586,7 +604,7 @@ pub mod xdp_action {
     pub const XDP_REDIRECT: Type = 4;
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct xdp_md {
     pub data: __u32,
     pub data_end: __u32,
@@ -727,7 +745,7 @@ impl sk_reuseport_md__bindgen_ty_4 {
     }
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_map_info {
     pub type_: __u32,
     pub id: __u32,
@@ -883,7 +901,7 @@ pub const BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG: ::aya_bpf_cty::c_uint = 16;
 pub const BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG: ::aya_bpf_cty::c_uint = 32;
 pub const BPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG: ::aya_bpf_cty::c_uint = 64;
 pub const BPF_SOCK_OPS_ALL_CB_FLAGS: ::aya_bpf_cty::c_uint = 127;
-pub type _bindgen_ty_25 = ::aya_bpf_cty::c_uint;
+pub type _bindgen_ty_26 = ::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;
@@ -900,7 +918,7 @@ pub const BPF_SOCK_OPS_RTT_CB: ::aya_bpf_cty::c_uint = 12;
 pub const BPF_SOCK_OPS_PARSE_HDR_OPT_CB: ::aya_bpf_cty::c_uint = 13;
 pub const BPF_SOCK_OPS_HDR_OPT_LEN_CB: ::aya_bpf_cty::c_uint = 14;
 pub const BPF_SOCK_OPS_WRITE_HDR_OPT_CB: ::aya_bpf_cty::c_uint = 15;
-pub type _bindgen_ty_26 = ::aya_bpf_cty::c_uint;
+pub type _bindgen_ty_27 = ::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;
@@ -914,18 +932,18 @@ 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_27 = ::aya_bpf_cty::c_uint;
-pub mod _bindgen_ty_29 {
+pub type _bindgen_ty_28 = ::aya_bpf_cty::c_uint;
+pub mod _bindgen_ty_30 {
     pub type Type = ::aya_bpf_cty::c_uint;
     pub const BPF_LOAD_HDR_OPT_TCP_SYN: Type = 1;
 }
-pub mod _bindgen_ty_30 {
+pub mod _bindgen_ty_31 {
     pub type Type = ::aya_bpf_cty::c_uint;
     pub const BPF_WRITE_HDR_TCP_CURRENT_MSS: Type = 1;
     pub const BPF_WRITE_HDR_TCP_SYNACK_COOKIE: Type = 2;
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_perf_event_value {
     pub counter: __u64,
     pub enabled: __u64,
@@ -934,13 +952,13 @@ pub struct bpf_perf_event_value {
 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_31 = ::aya_bpf_cty::c_uint;
+pub type _bindgen_ty_32 = ::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_32 = ::aya_bpf_cty::c_uint;
+pub type _bindgen_ty_33 = ::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_33 = ::aya_bpf_cty::c_uint;
+pub type _bindgen_ty_34 = ::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;
@@ -950,7 +968,7 @@ 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_34 = ::aya_bpf_cty::c_uint;
+pub type _bindgen_ty_35 = ::aya_bpf_cty::c_uint;
 #[repr(C)]
 #[derive(Copy, Clone)]
 pub struct bpf_fib_lookup {
@@ -1008,7 +1026,7 @@ pub union bpf_redir_neigh__bindgen_ty_1 {
 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_35 = ::aya_bpf_cty::c_uint;
+pub type _bindgen_ty_36 = ::aya_bpf_cty::c_uint;
 #[repr(C)]
 #[derive(Copy, Clone)]
 pub struct bpf_flow_keys {
@@ -1033,25 +1051,25 @@ pub union bpf_flow_keys__bindgen_ty_1 {
     pub __bindgen_anon_2: bpf_flow_keys__bindgen_ty_1__bindgen_ty_2,
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(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)]
+#[derive(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)]
+#[derive(Copy, Clone)]
 pub struct bpf_spin_lock {
     pub val: __u32,
 }
 #[repr(C)]
 #[repr(align(8))]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_timer {
     pub _bitfield_align_1: [u8; 0],
     pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>,
@@ -1064,26 +1082,26 @@ impl bpf_timer {
     }
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_sysctl {
     pub write: __u32,
     pub file_pos: __u32,
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_pidns_info {
     pub pid: __u32,
     pub tgid: __u32,
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct btf_ptr {
     pub ptr: *mut ::aya_bpf_cty::c_void,
     pub type_id: __u32,
     pub flags: __u32,
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct pt_regs {
     pub r15: ::aya_bpf_cty::c_ulong,
     pub r14: ::aya_bpf_cty::c_ulong,
@@ -1109,83 +1127,83 @@ pub struct pt_regs {
 }
 pub type sa_family_t = ::aya_bpf_cty::c_ushort;
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct sockaddr {
     pub sa_family: sa_family_t,
     pub sa_data: [::aya_bpf_cty::c_char; 14usize],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_perf_event_data {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct linux_binprm {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct tcphdr {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct seq_file {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct tcp6_sock {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct tcp_sock {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct tcp_timewait_sock {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct tcp_request_sock {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct udp6_sock {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct unix_sock {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct task_struct {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct path {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct inode {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct socket {
     _unused: [u8; 0],
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct file {
     _unused: [u8; 0],
 }

+ 4 - 1
bpf/aya-bpf-bindings/src/x86_64/getters.rs

@@ -107,6 +107,9 @@ impl __sk_buff {
     pub fn gso_size(&self) -> Option<__u32> {
         unsafe { crate::bpf_probe_read(&self.gso_size) }.ok()
     }
+    pub fn tstamp_type(&self) -> Option<__u8> {
+        unsafe { crate::bpf_probe_read(&self.tstamp_type) }.ok()
+    }
     pub fn hwtstamp(&self) -> Option<__u64> {
         unsafe { crate::bpf_probe_read(&self.hwtstamp) }.ok()
     }
@@ -218,7 +221,7 @@ impl bpf_sock {
     pub fn src_port(&self) -> Option<__u32> {
         unsafe { crate::bpf_probe_read(&self.src_port) }.ok()
     }
-    pub fn dst_port(&self) -> Option<__u32> {
+    pub fn dst_port(&self) -> Option<__be16> {
         unsafe { crate::bpf_probe_read(&self.dst_port) }.ok()
     }
     pub fn dst_ip4(&self) -> Option<__u32> {

+ 91 - 0
bpf/aya-bpf-bindings/src/x86_64/helpers.rs

@@ -1878,3 +1878,94 @@ pub unsafe fn bpf_get_func_arg_cnt(ctx: *mut ::aya_bpf_cty::c_void) -> ::aya_bpf
         ::core::mem::transmute(185usize);
     fun(ctx)
 }
+pub unsafe fn bpf_get_retval() -> ::aya_bpf_cty::c_int {
+    let fun: unsafe extern "C" fn() -> ::aya_bpf_cty::c_int = ::core::mem::transmute(186usize);
+    fun()
+}
+pub unsafe fn bpf_set_retval(retval: ::aya_bpf_cty::c_int) -> ::aya_bpf_cty::c_int {
+    let fun: unsafe extern "C" fn(retval: ::aya_bpf_cty::c_int) -> ::aya_bpf_cty::c_int =
+        ::core::mem::transmute(187usize);
+    fun(retval)
+}
+pub unsafe fn bpf_xdp_get_buff_len(xdp_md: *mut xdp_md) -> __u64 {
+    let fun: unsafe extern "C" fn(xdp_md: *mut xdp_md) -> __u64 = ::core::mem::transmute(188usize);
+    fun(xdp_md)
+}
+pub unsafe fn bpf_xdp_load_bytes(
+    xdp_md: *mut xdp_md,
+    offset: __u32,
+    buf: *mut ::aya_bpf_cty::c_void,
+    len: __u32,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(
+        xdp_md: *mut xdp_md,
+        offset: __u32,
+        buf: *mut ::aya_bpf_cty::c_void,
+        len: __u32,
+    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(189usize);
+    fun(xdp_md, offset, buf, len)
+}
+pub unsafe fn bpf_xdp_store_bytes(
+    xdp_md: *mut xdp_md,
+    offset: __u32,
+    buf: *mut ::aya_bpf_cty::c_void,
+    len: __u32,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(
+        xdp_md: *mut xdp_md,
+        offset: __u32,
+        buf: *mut ::aya_bpf_cty::c_void,
+        len: __u32,
+    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(190usize);
+    fun(xdp_md, offset, buf, len)
+}
+pub unsafe fn bpf_copy_from_user_task(
+    dst: *mut ::aya_bpf_cty::c_void,
+    size: __u32,
+    user_ptr: *const ::aya_bpf_cty::c_void,
+    tsk: *mut task_struct,
+    flags: __u64,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(
+        dst: *mut ::aya_bpf_cty::c_void,
+        size: __u32,
+        user_ptr: *const ::aya_bpf_cty::c_void,
+        tsk: *mut task_struct,
+        flags: __u64,
+    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(191usize);
+    fun(dst, size, user_ptr, tsk, flags)
+}
+pub unsafe fn bpf_skb_set_tstamp(
+    skb: *mut __sk_buff,
+    tstamp: __u64,
+    tstamp_type: __u32,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(
+        skb: *mut __sk_buff,
+        tstamp: __u64,
+        tstamp_type: __u32,
+    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(192usize);
+    fun(skb, tstamp, tstamp_type)
+}
+pub unsafe fn bpf_ima_file_hash(
+    file: *mut file,
+    dst: *mut ::aya_bpf_cty::c_void,
+    size: __u32,
+) -> ::aya_bpf_cty::c_long {
+    let fun: unsafe extern "C" fn(
+        file: *mut file,
+        dst: *mut ::aya_bpf_cty::c_void,
+        size: __u32,
+    ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(193usize);
+    fun(file, dst, size)
+}
+pub unsafe fn bpf_kptr_xchg(
+    map_value: *mut ::aya_bpf_cty::c_void,
+    ptr: *mut ::aya_bpf_cty::c_void,
+) -> *mut ::aya_bpf_cty::c_void {
+    let fun: unsafe extern "C" fn(
+        map_value: *mut ::aya_bpf_cty::c_void,
+        ptr: *mut ::aya_bpf_cty::c_void,
+    ) -> *mut ::aya_bpf_cty::c_void = ::core::mem::transmute(194usize);
+    fun(map_value, ptr)
+}