Browse Source

xtask: Generate new bindings

Kevin Ji 11 months ago
parent
commit
b06ff40278

+ 1 - 1
aya-obj/src/generated/btf_internal_bindings.rs

@@ -1,4 +1,4 @@
-/* automatically generated by rust-bindgen 0.65.1 */
+/* automatically generated by rust-bindgen 0.69.4 */
 
 pub type __u8 = ::core::ffi::c_uchar;
 pub type __u16 = ::core::ffi::c_ushort;

+ 401 - 164
aya-obj/src/generated/linux_bindings_aarch64.rs

@@ -1,4 +1,4 @@
-/* automatically generated by rust-bindgen 0.65.1 */
+/* automatically generated by rust-bindgen 0.69.4 */
 
 #[repr(C)]
 #[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
@@ -110,6 +110,8 @@ impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
         fmt.write_str("__IncompleteArrayField")
     }
 }
+pub const SO_ATTACH_BPF: u32 = 50;
+pub const SO_DETACH_BPF: u32 = 27;
 pub const BPF_LD: u32 = 0;
 pub const BPF_LDX: u32 = 1;
 pub const BPF_ST: u32 = 2;
@@ -126,6 +128,9 @@ pub const BPF_CALL: u32 = 128;
 pub const BPF_F_ALLOW_OVERRIDE: u32 = 1;
 pub const BPF_F_ALLOW_MULTI: u32 = 2;
 pub const BPF_F_REPLACE: u32 = 4;
+pub const BPF_F_BEFORE: u32 = 8;
+pub const BPF_F_AFTER: u32 = 16;
+pub const BPF_F_ID: u32 = 32;
 pub const BPF_F_STRICT_ALIGNMENT: u32 = 1;
 pub const BPF_F_ANY_ALIGNMENT: u32 = 2;
 pub const BPF_F_TEST_RND_HI32: u32 = 4;
@@ -133,7 +138,8 @@ 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_XDP_DEV_BOUND_ONLY: u32 = 64;
-pub const BPF_F_KPROBE_MULTI_RETURN: u32 = 1;
+pub const BPF_F_TEST_REG_INVARIANTS: u32 = 128;
+pub const BPF_F_NETFILTER_IP_DEFRAG: 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;
@@ -148,12 +154,6 @@ 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;
-pub const PERF_MAX_STACK_DEPTH: u32 = 127;
-pub const PERF_MAX_CONTEXTS_PER_STACK: u32 = 8;
-pub const PERF_FLAG_FD_NO_GROUP: u32 = 1;
-pub const PERF_FLAG_FD_OUTPUT: u32 = 2;
-pub const PERF_FLAG_PID_CGROUP: u32 = 4;
-pub const PERF_FLAG_FD_CLOEXEC: u32 = 8;
 pub const NLMSG_ALIGNTO: u32 = 4;
 pub const XDP_FLAGS_UPDATE_IF_NOEXIST: u32 = 1;
 pub const XDP_FLAGS_SKB_MODE: u32 = 2;
@@ -162,8 +162,12 @@ pub const XDP_FLAGS_HW_MODE: u32 = 8;
 pub const XDP_FLAGS_REPLACE: u32 = 16;
 pub const XDP_FLAGS_MODES: u32 = 14;
 pub const XDP_FLAGS_MASK: u32 = 31;
-pub const SO_ATTACH_BPF: u32 = 50;
-pub const SO_DETACH_BPF: u32 = 27;
+pub const PERF_MAX_STACK_DEPTH: u32 = 127;
+pub const PERF_MAX_CONTEXTS_PER_STACK: u32 = 8;
+pub const PERF_FLAG_FD_NO_GROUP: u32 = 1;
+pub const PERF_FLAG_FD_OUTPUT: u32 = 2;
+pub const PERF_FLAG_PID_CGROUP: u32 = 4;
+pub const PERF_FLAG_FD_CLOEXEC: u32 = 8;
 pub const TC_H_MAJ_MASK: u32 = 4294901760;
 pub const TC_H_MIN_MASK: u32 = 65535;
 pub const TC_H_UNSPEC: u32 = 0;
@@ -275,11 +279,17 @@ pub enum bpf_cmd {
     BPF_ITER_CREATE = 33,
     BPF_LINK_DETACH = 34,
     BPF_PROG_BIND_MAP = 35,
+    BPF_TOKEN_CREATE = 36,
+    __MAX_BPF_CMD = 37,
 }
 impl bpf_map_type {
     pub const BPF_MAP_TYPE_CGROUP_STORAGE: bpf_map_type =
         bpf_map_type::BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED;
 }
+impl bpf_map_type {
+    pub const BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE: bpf_map_type =
+        bpf_map_type::BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED;
+}
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
 pub enum bpf_map_type {
@@ -304,7 +314,7 @@ pub enum bpf_map_type {
     BPF_MAP_TYPE_SOCKHASH = 18,
     BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED = 19,
     BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 20,
-    BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 21,
+    BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED = 21,
     BPF_MAP_TYPE_QUEUE = 22,
     BPF_MAP_TYPE_STACK = 23,
     BPF_MAP_TYPE_SK_STORAGE = 24,
@@ -316,6 +326,8 @@ pub enum bpf_map_type {
     BPF_MAP_TYPE_BLOOM_FILTER = 30,
     BPF_MAP_TYPE_USER_RINGBUF = 31,
     BPF_MAP_TYPE_CGRP_STORAGE = 32,
+    BPF_MAP_TYPE_ARENA = 33,
+    __MAX_BPF_MAP_TYPE = 34,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
@@ -353,6 +365,7 @@ pub enum bpf_prog_type {
     BPF_PROG_TYPE_SK_LOOKUP = 30,
     BPF_PROG_TYPE_SYSCALL = 31,
     BPF_PROG_TYPE_NETFILTER = 32,
+    __MAX_BPF_PROG_TYPE = 33,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
@@ -402,7 +415,18 @@ pub enum bpf_attach_type {
     BPF_TRACE_KPROBE_MULTI = 42,
     BPF_LSM_CGROUP = 43,
     BPF_STRUCT_OPS = 44,
-    __MAX_BPF_ATTACH_TYPE = 45,
+    BPF_NETFILTER = 45,
+    BPF_TCX_INGRESS = 46,
+    BPF_TCX_EGRESS = 47,
+    BPF_TRACE_UPROBE_MULTI = 48,
+    BPF_CGROUP_UNIX_CONNECT = 49,
+    BPF_CGROUP_UNIX_SENDMSG = 50,
+    BPF_CGROUP_UNIX_RECVMSG = 51,
+    BPF_CGROUP_UNIX_GETPEERNAME = 52,
+    BPF_CGROUP_UNIX_GETSOCKNAME = 53,
+    BPF_NETKIT_PRIMARY = 54,
+    BPF_NETKIT_PEER = 55,
+    __MAX_BPF_ATTACH_TYPE = 56,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
@@ -418,29 +442,40 @@ pub enum bpf_link_type {
     BPF_LINK_TYPE_KPROBE_MULTI = 8,
     BPF_LINK_TYPE_STRUCT_OPS = 9,
     BPF_LINK_TYPE_NETFILTER = 10,
-    MAX_BPF_LINK_TYPE = 11,
+    BPF_LINK_TYPE_TCX = 11,
+    BPF_LINK_TYPE_UPROBE_MULTI = 12,
+    BPF_LINK_TYPE_NETKIT = 13,
+    __MAX_BPF_LINK_TYPE = 14,
 }
-pub const BPF_ANY: _bindgen_ty_2 = 0;
-pub const BPF_NOEXIST: _bindgen_ty_2 = 1;
-pub const BPF_EXIST: _bindgen_ty_2 = 2;
-pub const BPF_F_LOCK: _bindgen_ty_2 = 4;
+pub const BPF_F_KPROBE_MULTI_RETURN: _bindgen_ty_2 = 1;
 pub type _bindgen_ty_2 = ::core::ffi::c_uint;
-pub const BPF_F_NO_PREALLOC: _bindgen_ty_3 = 1;
-pub const BPF_F_NO_COMMON_LRU: _bindgen_ty_3 = 2;
-pub const BPF_F_NUMA_NODE: _bindgen_ty_3 = 4;
-pub const BPF_F_RDONLY: _bindgen_ty_3 = 8;
-pub const BPF_F_WRONLY: _bindgen_ty_3 = 16;
-pub const BPF_F_STACK_BUILD_ID: _bindgen_ty_3 = 32;
-pub const BPF_F_ZERO_SEED: _bindgen_ty_3 = 64;
-pub const BPF_F_RDONLY_PROG: _bindgen_ty_3 = 128;
-pub const BPF_F_WRONLY_PROG: _bindgen_ty_3 = 256;
-pub const BPF_F_CLONE: _bindgen_ty_3 = 512;
-pub const BPF_F_MMAPABLE: _bindgen_ty_3 = 1024;
-pub const BPF_F_PRESERVE_ELEMS: _bindgen_ty_3 = 2048;
-pub const BPF_F_INNER_MAP: _bindgen_ty_3 = 4096;
-pub const BPF_F_LINK: _bindgen_ty_3 = 8192;
-pub const BPF_F_PATH_FD: _bindgen_ty_3 = 16384;
+pub const BPF_F_UPROBE_MULTI_RETURN: _bindgen_ty_3 = 1;
 pub type _bindgen_ty_3 = ::core::ffi::c_uint;
+pub const BPF_ANY: _bindgen_ty_4 = 0;
+pub const BPF_NOEXIST: _bindgen_ty_4 = 1;
+pub const BPF_EXIST: _bindgen_ty_4 = 2;
+pub const BPF_F_LOCK: _bindgen_ty_4 = 4;
+pub type _bindgen_ty_4 = ::core::ffi::c_uint;
+pub const BPF_F_NO_PREALLOC: _bindgen_ty_5 = 1;
+pub const BPF_F_NO_COMMON_LRU: _bindgen_ty_5 = 2;
+pub const BPF_F_NUMA_NODE: _bindgen_ty_5 = 4;
+pub const BPF_F_RDONLY: _bindgen_ty_5 = 8;
+pub const BPF_F_WRONLY: _bindgen_ty_5 = 16;
+pub const BPF_F_STACK_BUILD_ID: _bindgen_ty_5 = 32;
+pub const BPF_F_ZERO_SEED: _bindgen_ty_5 = 64;
+pub const BPF_F_RDONLY_PROG: _bindgen_ty_5 = 128;
+pub const BPF_F_WRONLY_PROG: _bindgen_ty_5 = 256;
+pub const BPF_F_CLONE: _bindgen_ty_5 = 512;
+pub const BPF_F_MMAPABLE: _bindgen_ty_5 = 1024;
+pub const BPF_F_PRESERVE_ELEMS: _bindgen_ty_5 = 2048;
+pub const BPF_F_INNER_MAP: _bindgen_ty_5 = 4096;
+pub const BPF_F_LINK: _bindgen_ty_5 = 8192;
+pub const BPF_F_PATH_FD: _bindgen_ty_5 = 16384;
+pub const BPF_F_VTYPE_BTF_OBJ_FD: _bindgen_ty_5 = 32768;
+pub const BPF_F_TOKEN_FD: _bindgen_ty_5 = 65536;
+pub const BPF_F_SEGV_ON_FAULT: _bindgen_ty_5 = 131072;
+pub const BPF_F_NO_USER_CONV: _bindgen_ty_5 = 262144;
+pub type _bindgen_ty_5 = ::core::ffi::c_uint;
 #[repr(C)]
 #[derive(Copy, Clone)]
 pub union bpf_attr {
@@ -463,6 +498,7 @@ pub union bpf_attr {
     pub enable_stats: bpf_attr__bindgen_ty_17,
     pub iter_create: bpf_attr__bindgen_ty_18,
     pub prog_bind_map: bpf_attr__bindgen_ty_19,
+    pub token_create: bpf_attr__bindgen_ty_20,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -481,6 +517,8 @@ pub struct bpf_attr__bindgen_ty_1 {
     pub btf_value_type_id: __u32,
     pub btf_vmlinux_value_type_id: __u32,
     pub map_extra: __u64,
+    pub value_type_btf_obj_fd: __s32,
+    pub map_token_fd: __s32,
 }
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -537,6 +575,7 @@ pub struct bpf_attr__bindgen_ty_4 {
     pub core_relos: __u64,
     pub core_relo_rec_size: __u32,
     pub log_true_size: __u32,
+    pub prog_token_fd: __s32,
 }
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -553,13 +592,27 @@ pub struct bpf_attr__bindgen_ty_5 {
     pub path_fd: __s32,
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_attr__bindgen_ty_6 {
-    pub target_fd: __u32,
+    pub __bindgen_anon_1: bpf_attr__bindgen_ty_6__bindgen_ty_1,
     pub attach_bpf_fd: __u32,
     pub attach_type: __u32,
     pub attach_flags: __u32,
     pub replace_bpf_fd: __u32,
+    pub __bindgen_anon_2: bpf_attr__bindgen_ty_6__bindgen_ty_2,
+    pub expected_revision: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_6__bindgen_ty_1 {
+    pub target_fd: __u32,
+    pub target_ifindex: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_6__bindgen_ty_2 {
+    pub relative_fd: __u32,
+    pub relative_id: __u32,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -604,21 +657,55 @@ pub struct bpf_attr__bindgen_ty_9 {
     pub info: __u64,
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_attr__bindgen_ty_10 {
-    pub target_fd: __u32,
+    pub __bindgen_anon_1: bpf_attr__bindgen_ty_10__bindgen_ty_1,
     pub attach_type: __u32,
     pub query_flags: __u32,
     pub attach_flags: __u32,
     pub prog_ids: __u64,
-    pub prog_cnt: __u32,
+    pub __bindgen_anon_2: bpf_attr__bindgen_ty_10__bindgen_ty_2,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
     pub prog_attach_flags: __u64,
+    pub link_ids: __u64,
+    pub link_attach_flags: __u64,
+    pub revision: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_10__bindgen_ty_1 {
+    pub target_fd: __u32,
+    pub target_ifindex: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_10__bindgen_ty_2 {
+    pub prog_cnt: __u32,
+    pub count: __u32,
+}
+impl bpf_attr__bindgen_ty_10 {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct bpf_attr__bindgen_ty_11 {
     pub name: __u64,
     pub prog_fd: __u32,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+    pub cookie: __u64,
+}
+impl bpf_attr__bindgen_ty_11 {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -629,6 +716,8 @@ pub struct bpf_attr__bindgen_ty_12 {
     pub btf_log_size: __u32,
     pub btf_log_level: __u32,
     pub btf_log_true_size: __u32,
+    pub btf_flags: __u32,
+    pub btf_token_fd: __s32,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -673,6 +762,9 @@ pub union bpf_attr__bindgen_ty_14__bindgen_ty_3 {
     pub kprobe_multi: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_3,
     pub tracing: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_4,
     pub netfilter: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_5,
+    pub tcx: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6,
+    pub uprobe_multi: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_7,
+    pub netkit: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -710,6 +802,41 @@ pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_5 {
 }
 #[repr(C)]
 #[derive(Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6 {
+    pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6__bindgen_ty_1,
+    pub expected_revision: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6__bindgen_ty_1 {
+    pub relative_fd: __u32,
+    pub relative_id: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_7 {
+    pub path: __u64,
+    pub offsets: __u64,
+    pub ref_ctr_offsets: __u64,
+    pub cookies: __u64,
+    pub cnt: __u32,
+    pub flags: __u32,
+    pub pid: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8 {
+    pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8__bindgen_ty_1,
+    pub expected_revision: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8__bindgen_ty_1 {
+    pub relative_fd: __u32,
+    pub relative_id: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
 pub struct bpf_attr__bindgen_ty_15 {
     pub link_fd: __u32,
     pub __bindgen_anon_1: bpf_attr__bindgen_ty_15__bindgen_ty_1,
@@ -751,61 +878,67 @@ pub struct bpf_attr__bindgen_ty_19 {
     pub map_fd: __u32,
     pub flags: __u32,
 }
-pub const BPF_F_RECOMPUTE_CSUM: _bindgen_ty_4 = 1;
-pub const BPF_F_INVALIDATE_HASH: _bindgen_ty_4 = 2;
-pub type _bindgen_ty_4 = ::core::ffi::c_uint;
-pub const BPF_F_HDR_FIELD_MASK: _bindgen_ty_5 = 15;
-pub type _bindgen_ty_5 = ::core::ffi::c_uint;
-pub const BPF_F_PSEUDO_HDR: _bindgen_ty_6 = 16;
-pub const BPF_F_MARK_MANGLED_0: _bindgen_ty_6 = 32;
-pub const BPF_F_MARK_ENFORCE: _bindgen_ty_6 = 64;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_20 {
+    pub flags: __u32,
+    pub bpffs_fd: __u32,
+}
+pub const BPF_F_RECOMPUTE_CSUM: _bindgen_ty_6 = 1;
+pub const BPF_F_INVALIDATE_HASH: _bindgen_ty_6 = 2;
 pub type _bindgen_ty_6 = ::core::ffi::c_uint;
-pub const BPF_F_INGRESS: _bindgen_ty_7 = 1;
+pub const BPF_F_HDR_FIELD_MASK: _bindgen_ty_7 = 15;
 pub type _bindgen_ty_7 = ::core::ffi::c_uint;
-pub const BPF_F_TUNINFO_IPV6: _bindgen_ty_8 = 1;
+pub const BPF_F_PSEUDO_HDR: _bindgen_ty_8 = 16;
+pub const BPF_F_MARK_MANGLED_0: _bindgen_ty_8 = 32;
+pub const BPF_F_MARK_ENFORCE: _bindgen_ty_8 = 64;
 pub type _bindgen_ty_8 = ::core::ffi::c_uint;
-pub const BPF_F_SKIP_FIELD_MASK: _bindgen_ty_9 = 255;
-pub const BPF_F_USER_STACK: _bindgen_ty_9 = 256;
-pub const BPF_F_FAST_STACK_CMP: _bindgen_ty_9 = 512;
-pub const BPF_F_REUSE_STACKID: _bindgen_ty_9 = 1024;
-pub const BPF_F_USER_BUILD_ID: _bindgen_ty_9 = 2048;
+pub const BPF_F_INGRESS: _bindgen_ty_9 = 1;
 pub type _bindgen_ty_9 = ::core::ffi::c_uint;
-pub const BPF_F_ZERO_CSUM_TX: _bindgen_ty_10 = 2;
-pub const BPF_F_DONT_FRAGMENT: _bindgen_ty_10 = 4;
-pub const BPF_F_SEQ_NUMBER: _bindgen_ty_10 = 8;
-pub const BPF_F_NO_TUNNEL_KEY: _bindgen_ty_10 = 16;
+pub const BPF_F_TUNINFO_IPV6: _bindgen_ty_10 = 1;
 pub type _bindgen_ty_10 = ::core::ffi::c_uint;
-pub const BPF_F_TUNINFO_FLAGS: _bindgen_ty_11 = 16;
+pub const BPF_F_SKIP_FIELD_MASK: _bindgen_ty_11 = 255;
+pub const BPF_F_USER_STACK: _bindgen_ty_11 = 256;
+pub const BPF_F_FAST_STACK_CMP: _bindgen_ty_11 = 512;
+pub const BPF_F_REUSE_STACKID: _bindgen_ty_11 = 1024;
+pub const BPF_F_USER_BUILD_ID: _bindgen_ty_11 = 2048;
 pub type _bindgen_ty_11 = ::core::ffi::c_uint;
-pub const BPF_F_INDEX_MASK: _bindgen_ty_12 = 4294967295;
-pub const BPF_F_CURRENT_CPU: _bindgen_ty_12 = 4294967295;
-pub const BPF_F_CTXLEN_MASK: _bindgen_ty_12 = 4503595332403200;
-pub type _bindgen_ty_12 = ::core::ffi::c_ulong;
-pub const BPF_F_CURRENT_NETNS: _bindgen_ty_13 = -1;
-pub type _bindgen_ty_13 = ::core::ffi::c_int;
-pub const BPF_F_ADJ_ROOM_FIXED_GSO: _bindgen_ty_15 = 1;
-pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: _bindgen_ty_15 = 2;
-pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: _bindgen_ty_15 = 4;
-pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: _bindgen_ty_15 = 8;
-pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: _bindgen_ty_15 = 16;
-pub const BPF_F_ADJ_ROOM_NO_CSUM_RESET: _bindgen_ty_15 = 32;
-pub const BPF_F_ADJ_ROOM_ENCAP_L2_ETH: _bindgen_ty_15 = 64;
-pub const BPF_F_ADJ_ROOM_DECAP_L3_IPV4: _bindgen_ty_15 = 128;
-pub const BPF_F_ADJ_ROOM_DECAP_L3_IPV6: _bindgen_ty_15 = 256;
-pub type _bindgen_ty_15 = ::core::ffi::c_uint;
-pub const BPF_F_SYSCTL_BASE_NAME: _bindgen_ty_17 = 1;
+pub const BPF_F_ZERO_CSUM_TX: _bindgen_ty_12 = 2;
+pub const BPF_F_DONT_FRAGMENT: _bindgen_ty_12 = 4;
+pub const BPF_F_SEQ_NUMBER: _bindgen_ty_12 = 8;
+pub const BPF_F_NO_TUNNEL_KEY: _bindgen_ty_12 = 16;
+pub type _bindgen_ty_12 = ::core::ffi::c_uint;
+pub const BPF_F_TUNINFO_FLAGS: _bindgen_ty_13 = 16;
+pub type _bindgen_ty_13 = ::core::ffi::c_uint;
+pub const BPF_F_INDEX_MASK: _bindgen_ty_14 = 4294967295;
+pub const BPF_F_CURRENT_CPU: _bindgen_ty_14 = 4294967295;
+pub const BPF_F_CTXLEN_MASK: _bindgen_ty_14 = 4503595332403200;
+pub type _bindgen_ty_14 = ::core::ffi::c_ulong;
+pub const BPF_F_CURRENT_NETNS: _bindgen_ty_15 = -1;
+pub type _bindgen_ty_15 = ::core::ffi::c_int;
+pub const BPF_F_ADJ_ROOM_FIXED_GSO: _bindgen_ty_17 = 1;
+pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: _bindgen_ty_17 = 2;
+pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: _bindgen_ty_17 = 4;
+pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: _bindgen_ty_17 = 8;
+pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: _bindgen_ty_17 = 16;
+pub const BPF_F_ADJ_ROOM_NO_CSUM_RESET: _bindgen_ty_17 = 32;
+pub const BPF_F_ADJ_ROOM_ENCAP_L2_ETH: _bindgen_ty_17 = 64;
+pub const BPF_F_ADJ_ROOM_DECAP_L3_IPV4: _bindgen_ty_17 = 128;
+pub const BPF_F_ADJ_ROOM_DECAP_L3_IPV6: _bindgen_ty_17 = 256;
 pub type _bindgen_ty_17 = ::core::ffi::c_uint;
-pub const BPF_F_GET_BRANCH_RECORDS_SIZE: _bindgen_ty_19 = 1;
+pub const BPF_F_SYSCTL_BASE_NAME: _bindgen_ty_19 = 1;
 pub type _bindgen_ty_19 = ::core::ffi::c_uint;
-pub const BPF_RINGBUF_BUSY_BIT: _bindgen_ty_22 = 2147483648;
-pub const BPF_RINGBUF_DISCARD_BIT: _bindgen_ty_22 = 1073741824;
-pub const BPF_RINGBUF_HDR_SZ: _bindgen_ty_22 = 8;
-pub type _bindgen_ty_22 = ::core::ffi::c_uint;
-pub const BPF_F_BPRM_SECUREEXEC: _bindgen_ty_24 = 1;
+pub const BPF_F_GET_BRANCH_RECORDS_SIZE: _bindgen_ty_21 = 1;
+pub type _bindgen_ty_21 = ::core::ffi::c_uint;
+pub const BPF_RINGBUF_BUSY_BIT: _bindgen_ty_24 = 2147483648;
+pub const BPF_RINGBUF_DISCARD_BIT: _bindgen_ty_24 = 1073741824;
+pub const BPF_RINGBUF_HDR_SZ: _bindgen_ty_24 = 8;
 pub type _bindgen_ty_24 = ::core::ffi::c_uint;
-pub const BPF_F_BROADCAST: _bindgen_ty_25 = 8;
-pub const BPF_F_EXCLUDE_INGRESS: _bindgen_ty_25 = 16;
-pub type _bindgen_ty_25 = ::core::ffi::c_uint;
+pub const BPF_F_BPRM_SECUREEXEC: _bindgen_ty_26 = 1;
+pub type _bindgen_ty_26 = ::core::ffi::c_uint;
+pub const BPF_F_BROADCAST: _bindgen_ty_27 = 8;
+pub const BPF_F_EXCLUDE_INGRESS: _bindgen_ty_27 = 16;
+pub type _bindgen_ty_27 = ::core::ffi::c_uint;
 #[repr(C)]
 #[derive(Copy, Clone)]
 pub struct bpf_devmap_val {
@@ -912,17 +1045,9 @@ pub struct bpf_map_info {
     pub btf_id: __u32,
     pub btf_key_type_id: __u32,
     pub btf_value_type_id: __u32,
-    pub _bitfield_align_1: [u8; 0],
-    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+    pub btf_vmlinux_id: __u32,
     pub map_extra: __u64,
 }
-impl bpf_map_info {
-    #[inline]
-    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
-        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
-        __bindgen_bitfield_unit
-    }
-}
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct bpf_btf_info {
@@ -952,6 +1077,11 @@ pub union bpf_link_info__bindgen_ty_1 {
     pub xdp: bpf_link_info__bindgen_ty_1__bindgen_ty_6,
     pub struct_ops: bpf_link_info__bindgen_ty_1__bindgen_ty_7,
     pub netfilter: bpf_link_info__bindgen_ty_1__bindgen_ty_8,
+    pub kprobe_multi: bpf_link_info__bindgen_ty_1__bindgen_ty_9,
+    pub uprobe_multi: bpf_link_info__bindgen_ty_1__bindgen_ty_10,
+    pub perf_event: bpf_link_info__bindgen_ty_1__bindgen_ty_11,
+    pub tcx: bpf_link_info__bindgen_ty_1__bindgen_ty_12,
+    pub netkit: bpf_link_info__bindgen_ty_1__bindgen_ty_13,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -1034,6 +1164,112 @@ pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_8 {
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_9 {
+    pub addrs: __u64,
+    pub count: __u32,
+    pub flags: __u32,
+    pub missed: __u64,
+    pub cookies: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_10 {
+    pub path: __u64,
+    pub offsets: __u64,
+    pub ref_ctr_offsets: __u64,
+    pub cookies: __u64,
+    pub path_size: __u32,
+    pub count: __u32,
+    pub flags: __u32,
+    pub pid: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11 {
+    pub type_: __u32,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+    pub __bindgen_anon_1: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1 {
+    pub uprobe: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_1,
+    pub kprobe: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_2,
+    pub tracepoint: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_3,
+    pub event: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_4,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_1 {
+    pub file_name: __u64,
+    pub name_len: __u32,
+    pub offset: __u32,
+    pub cookie: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_2 {
+    pub func_name: __u64,
+    pub name_len: __u32,
+    pub offset: __u32,
+    pub addr: __u64,
+    pub missed: __u64,
+    pub cookie: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_3 {
+    pub tp_name: __u64,
+    pub name_len: __u32,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+    pub cookie: __u64,
+}
+impl bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_3 {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_4 {
+    pub config: __u64,
+    pub type_: __u32,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+    pub cookie: __u64,
+}
+impl bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_4 {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+impl bpf_link_info__bindgen_ty_1__bindgen_ty_11 {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_12 {
+    pub ifindex: __u32,
+    pub attach_type: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_13 {
+    pub ifindex: __u32,
+    pub attach_type: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
 pub struct bpf_func_info {
     pub insn_off: __u32,
     pub type_id: __u32,
@@ -1046,8 +1282,9 @@ pub struct bpf_line_info {
     pub line_off: __u32,
     pub line_col: __u32,
 }
-pub const BPF_F_TIMER_ABS: _bindgen_ty_39 = 1;
-pub type _bindgen_ty_39 = ::core::ffi::c_uint;
+pub const BPF_F_TIMER_ABS: _bindgen_ty_41 = 1;
+pub const BPF_F_TIMER_CPU_PIN: _bindgen_ty_41 = 2;
+pub type _bindgen_ty_41 = ::core::ffi::c_uint;
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct btf_header {
@@ -1073,29 +1310,29 @@ pub union btf_type__bindgen_ty_1 {
     pub size: __u32,
     pub type_: __u32,
 }
-pub const BTF_KIND_UNKN: _bindgen_ty_40 = 0;
-pub const BTF_KIND_INT: _bindgen_ty_40 = 1;
-pub const BTF_KIND_PTR: _bindgen_ty_40 = 2;
-pub const BTF_KIND_ARRAY: _bindgen_ty_40 = 3;
-pub const BTF_KIND_STRUCT: _bindgen_ty_40 = 4;
-pub const BTF_KIND_UNION: _bindgen_ty_40 = 5;
-pub const BTF_KIND_ENUM: _bindgen_ty_40 = 6;
-pub const BTF_KIND_FWD: _bindgen_ty_40 = 7;
-pub const BTF_KIND_TYPEDEF: _bindgen_ty_40 = 8;
-pub const BTF_KIND_VOLATILE: _bindgen_ty_40 = 9;
-pub const BTF_KIND_CONST: _bindgen_ty_40 = 10;
-pub const BTF_KIND_RESTRICT: _bindgen_ty_40 = 11;
-pub const BTF_KIND_FUNC: _bindgen_ty_40 = 12;
-pub const BTF_KIND_FUNC_PROTO: _bindgen_ty_40 = 13;
-pub const BTF_KIND_VAR: _bindgen_ty_40 = 14;
-pub const BTF_KIND_DATASEC: _bindgen_ty_40 = 15;
-pub const BTF_KIND_FLOAT: _bindgen_ty_40 = 16;
-pub const BTF_KIND_DECL_TAG: _bindgen_ty_40 = 17;
-pub const BTF_KIND_TYPE_TAG: _bindgen_ty_40 = 18;
-pub const BTF_KIND_ENUM64: _bindgen_ty_40 = 19;
-pub const NR_BTF_KINDS: _bindgen_ty_40 = 20;
-pub const BTF_KIND_MAX: _bindgen_ty_40 = 19;
-pub type _bindgen_ty_40 = ::core::ffi::c_uint;
+pub const BTF_KIND_UNKN: _bindgen_ty_42 = 0;
+pub const BTF_KIND_INT: _bindgen_ty_42 = 1;
+pub const BTF_KIND_PTR: _bindgen_ty_42 = 2;
+pub const BTF_KIND_ARRAY: _bindgen_ty_42 = 3;
+pub const BTF_KIND_STRUCT: _bindgen_ty_42 = 4;
+pub const BTF_KIND_UNION: _bindgen_ty_42 = 5;
+pub const BTF_KIND_ENUM: _bindgen_ty_42 = 6;
+pub const BTF_KIND_FWD: _bindgen_ty_42 = 7;
+pub const BTF_KIND_TYPEDEF: _bindgen_ty_42 = 8;
+pub const BTF_KIND_VOLATILE: _bindgen_ty_42 = 9;
+pub const BTF_KIND_CONST: _bindgen_ty_42 = 10;
+pub const BTF_KIND_RESTRICT: _bindgen_ty_42 = 11;
+pub const BTF_KIND_FUNC: _bindgen_ty_42 = 12;
+pub const BTF_KIND_FUNC_PROTO: _bindgen_ty_42 = 13;
+pub const BTF_KIND_VAR: _bindgen_ty_42 = 14;
+pub const BTF_KIND_DATASEC: _bindgen_ty_42 = 15;
+pub const BTF_KIND_FLOAT: _bindgen_ty_42 = 16;
+pub const BTF_KIND_DECL_TAG: _bindgen_ty_42 = 17;
+pub const BTF_KIND_TYPE_TAG: _bindgen_ty_42 = 18;
+pub const BTF_KIND_ENUM64: _bindgen_ty_42 = 19;
+pub const NR_BTF_KINDS: _bindgen_ty_42 = 20;
+pub const BTF_KIND_MAX: _bindgen_ty_42 = 19;
+pub type _bindgen_ty_42 = ::core::ffi::c_uint;
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct btf_enum {
@@ -1122,10 +1359,10 @@ pub struct btf_param {
     pub name_off: __u32,
     pub type_: __u32,
 }
-pub const BTF_VAR_STATIC: _bindgen_ty_41 = 0;
-pub const BTF_VAR_GLOBAL_ALLOCATED: _bindgen_ty_41 = 1;
-pub const BTF_VAR_GLOBAL_EXTERN: _bindgen_ty_41 = 2;
-pub type _bindgen_ty_41 = ::core::ffi::c_uint;
+pub const BTF_VAR_STATIC: _bindgen_ty_43 = 0;
+pub const BTF_VAR_GLOBAL_ALLOCATED: _bindgen_ty_43 = 1;
+pub const BTF_VAR_GLOBAL_EXTERN: _bindgen_ty_43 = 2;
+pub type _bindgen_ty_43 = ::core::ffi::c_uint;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
 pub enum btf_func_linkage {
@@ -1150,6 +1387,17 @@ pub struct btf_var_secinfo {
 pub struct btf_decl_tag {
     pub component_idx: __s32,
 }
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_92 = 0;
+pub const IFLA_XDP_FD: _bindgen_ty_92 = 1;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_92 = 2;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_92 = 3;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_92 = 4;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_92 = 5;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_92 = 6;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_92 = 7;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_92 = 8;
+pub const __IFLA_XDP_MAX: _bindgen_ty_92 = 9;
+pub type _bindgen_ty_92 = ::core::ffi::c_uint;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
 pub enum perf_type_id {
@@ -1961,7 +2209,6 @@ pub union perf_event_mmap_page__bindgen_ty_1 {
     pub __bindgen_anon_1: perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1,
 }
 #[repr(C)]
-#[repr(align(8))]
 #[derive(Debug, Copy, Clone)]
 pub struct perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1 {
     pub _bitfield_align_1: [u64; 0],
@@ -2121,17 +2368,20 @@ pub enum perf_event_type {
     PERF_RECORD_AUX_OUTPUT_HW_ID = 21,
     PERF_RECORD_MAX = 22,
 }
-pub const IFLA_XDP_UNSPEC: _bindgen_ty_90 = 0;
-pub const IFLA_XDP_FD: _bindgen_ty_90 = 1;
-pub const IFLA_XDP_ATTACHED: _bindgen_ty_90 = 2;
-pub const IFLA_XDP_FLAGS: _bindgen_ty_90 = 3;
-pub const IFLA_XDP_PROG_ID: _bindgen_ty_90 = 4;
-pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_90 = 5;
-pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_90 = 6;
-pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_90 = 7;
-pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_90 = 8;
-pub const __IFLA_XDP_MAX: _bindgen_ty_90 = 9;
-pub type _bindgen_ty_90 = ::core::ffi::c_uint;
+pub const TCA_BPF_UNSPEC: _bindgen_ty_152 = 0;
+pub const TCA_BPF_ACT: _bindgen_ty_152 = 1;
+pub const TCA_BPF_POLICE: _bindgen_ty_152 = 2;
+pub const TCA_BPF_CLASSID: _bindgen_ty_152 = 3;
+pub const TCA_BPF_OPS_LEN: _bindgen_ty_152 = 4;
+pub const TCA_BPF_OPS: _bindgen_ty_152 = 5;
+pub const TCA_BPF_FD: _bindgen_ty_152 = 6;
+pub const TCA_BPF_NAME: _bindgen_ty_152 = 7;
+pub const TCA_BPF_FLAGS: _bindgen_ty_152 = 8;
+pub const TCA_BPF_FLAGS_GEN: _bindgen_ty_152 = 9;
+pub const TCA_BPF_TAG: _bindgen_ty_152 = 10;
+pub const TCA_BPF_ID: _bindgen_ty_152 = 11;
+pub const __TCA_BPF_MAX: _bindgen_ty_152 = 12;
+pub type _bindgen_ty_152 = ::core::ffi::c_uint;
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct ifinfomsg {
@@ -2153,37 +2403,24 @@ pub struct tcmsg {
     pub tcm_parent: __u32,
     pub tcm_info: __u32,
 }
-pub const TCA_UNSPEC: _bindgen_ty_103 = 0;
-pub const TCA_KIND: _bindgen_ty_103 = 1;
-pub const TCA_OPTIONS: _bindgen_ty_103 = 2;
-pub const TCA_STATS: _bindgen_ty_103 = 3;
-pub const TCA_XSTATS: _bindgen_ty_103 = 4;
-pub const TCA_RATE: _bindgen_ty_103 = 5;
-pub const TCA_FCNT: _bindgen_ty_103 = 6;
-pub const TCA_STATS2: _bindgen_ty_103 = 7;
-pub const TCA_STAB: _bindgen_ty_103 = 8;
-pub const TCA_PAD: _bindgen_ty_103 = 9;
-pub const TCA_DUMP_INVISIBLE: _bindgen_ty_103 = 10;
-pub const TCA_CHAIN: _bindgen_ty_103 = 11;
-pub const TCA_HW_OFFLOAD: _bindgen_ty_103 = 12;
-pub const TCA_INGRESS_BLOCK: _bindgen_ty_103 = 13;
-pub const TCA_EGRESS_BLOCK: _bindgen_ty_103 = 14;
-pub const __TCA_MAX: _bindgen_ty_103 = 15;
-pub type _bindgen_ty_103 = ::core::ffi::c_uint;
-pub const TCA_BPF_UNSPEC: _bindgen_ty_159 = 0;
-pub const TCA_BPF_ACT: _bindgen_ty_159 = 1;
-pub const TCA_BPF_POLICE: _bindgen_ty_159 = 2;
-pub const TCA_BPF_CLASSID: _bindgen_ty_159 = 3;
-pub const TCA_BPF_OPS_LEN: _bindgen_ty_159 = 4;
-pub const TCA_BPF_OPS: _bindgen_ty_159 = 5;
-pub const TCA_BPF_FD: _bindgen_ty_159 = 6;
-pub const TCA_BPF_NAME: _bindgen_ty_159 = 7;
-pub const TCA_BPF_FLAGS: _bindgen_ty_159 = 8;
-pub const TCA_BPF_FLAGS_GEN: _bindgen_ty_159 = 9;
-pub const TCA_BPF_TAG: _bindgen_ty_159 = 10;
-pub const TCA_BPF_ID: _bindgen_ty_159 = 11;
-pub const __TCA_BPF_MAX: _bindgen_ty_159 = 12;
-pub type _bindgen_ty_159 = ::core::ffi::c_uint;
+pub const TCA_UNSPEC: _bindgen_ty_172 = 0;
+pub const TCA_KIND: _bindgen_ty_172 = 1;
+pub const TCA_OPTIONS: _bindgen_ty_172 = 2;
+pub const TCA_STATS: _bindgen_ty_172 = 3;
+pub const TCA_XSTATS: _bindgen_ty_172 = 4;
+pub const TCA_RATE: _bindgen_ty_172 = 5;
+pub const TCA_FCNT: _bindgen_ty_172 = 6;
+pub const TCA_STATS2: _bindgen_ty_172 = 7;
+pub const TCA_STAB: _bindgen_ty_172 = 8;
+pub const TCA_PAD: _bindgen_ty_172 = 9;
+pub const TCA_DUMP_INVISIBLE: _bindgen_ty_172 = 10;
+pub const TCA_CHAIN: _bindgen_ty_172 = 11;
+pub const TCA_HW_OFFLOAD: _bindgen_ty_172 = 12;
+pub const TCA_INGRESS_BLOCK: _bindgen_ty_172 = 13;
+pub const TCA_EGRESS_BLOCK: _bindgen_ty_172 = 14;
+pub const TCA_DUMP_FLAGS: _bindgen_ty_172 = 15;
+pub const __TCA_MAX: _bindgen_ty_172 = 16;
+pub type _bindgen_ty_172 = ::core::ffi::c_uint;
 pub const AYA_PERF_EVENT_IOC_ENABLE: ::core::ffi::c_int = 9216;
 pub const AYA_PERF_EVENT_IOC_DISABLE: ::core::ffi::c_int = 9217;
 pub const AYA_PERF_EVENT_IOC_SET_BPF: ::core::ffi::c_int = 1074013192;

+ 401 - 164
aya-obj/src/generated/linux_bindings_armv7.rs

@@ -1,4 +1,4 @@
-/* automatically generated by rust-bindgen 0.65.1 */
+/* automatically generated by rust-bindgen 0.69.4 */
 
 #[repr(C)]
 #[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
@@ -110,6 +110,8 @@ impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
         fmt.write_str("__IncompleteArrayField")
     }
 }
+pub const SO_ATTACH_BPF: u32 = 50;
+pub const SO_DETACH_BPF: u32 = 27;
 pub const BPF_LD: u32 = 0;
 pub const BPF_LDX: u32 = 1;
 pub const BPF_ST: u32 = 2;
@@ -126,6 +128,9 @@ pub const BPF_CALL: u32 = 128;
 pub const BPF_F_ALLOW_OVERRIDE: u32 = 1;
 pub const BPF_F_ALLOW_MULTI: u32 = 2;
 pub const BPF_F_REPLACE: u32 = 4;
+pub const BPF_F_BEFORE: u32 = 8;
+pub const BPF_F_AFTER: u32 = 16;
+pub const BPF_F_ID: u32 = 32;
 pub const BPF_F_STRICT_ALIGNMENT: u32 = 1;
 pub const BPF_F_ANY_ALIGNMENT: u32 = 2;
 pub const BPF_F_TEST_RND_HI32: u32 = 4;
@@ -133,7 +138,8 @@ 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_XDP_DEV_BOUND_ONLY: u32 = 64;
-pub const BPF_F_KPROBE_MULTI_RETURN: u32 = 1;
+pub const BPF_F_TEST_REG_INVARIANTS: u32 = 128;
+pub const BPF_F_NETFILTER_IP_DEFRAG: 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;
@@ -148,12 +154,6 @@ 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;
-pub const PERF_MAX_STACK_DEPTH: u32 = 127;
-pub const PERF_MAX_CONTEXTS_PER_STACK: u32 = 8;
-pub const PERF_FLAG_FD_NO_GROUP: u32 = 1;
-pub const PERF_FLAG_FD_OUTPUT: u32 = 2;
-pub const PERF_FLAG_PID_CGROUP: u32 = 4;
-pub const PERF_FLAG_FD_CLOEXEC: u32 = 8;
 pub const NLMSG_ALIGNTO: u32 = 4;
 pub const XDP_FLAGS_UPDATE_IF_NOEXIST: u32 = 1;
 pub const XDP_FLAGS_SKB_MODE: u32 = 2;
@@ -162,8 +162,12 @@ pub const XDP_FLAGS_HW_MODE: u32 = 8;
 pub const XDP_FLAGS_REPLACE: u32 = 16;
 pub const XDP_FLAGS_MODES: u32 = 14;
 pub const XDP_FLAGS_MASK: u32 = 31;
-pub const SO_ATTACH_BPF: u32 = 50;
-pub const SO_DETACH_BPF: u32 = 27;
+pub const PERF_MAX_STACK_DEPTH: u32 = 127;
+pub const PERF_MAX_CONTEXTS_PER_STACK: u32 = 8;
+pub const PERF_FLAG_FD_NO_GROUP: u32 = 1;
+pub const PERF_FLAG_FD_OUTPUT: u32 = 2;
+pub const PERF_FLAG_PID_CGROUP: u32 = 4;
+pub const PERF_FLAG_FD_CLOEXEC: u32 = 8;
 pub const TC_H_MAJ_MASK: u32 = 4294901760;
 pub const TC_H_MIN_MASK: u32 = 65535;
 pub const TC_H_UNSPEC: u32 = 0;
@@ -275,11 +279,17 @@ pub enum bpf_cmd {
     BPF_ITER_CREATE = 33,
     BPF_LINK_DETACH = 34,
     BPF_PROG_BIND_MAP = 35,
+    BPF_TOKEN_CREATE = 36,
+    __MAX_BPF_CMD = 37,
 }
 impl bpf_map_type {
     pub const BPF_MAP_TYPE_CGROUP_STORAGE: bpf_map_type =
         bpf_map_type::BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED;
 }
+impl bpf_map_type {
+    pub const BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE: bpf_map_type =
+        bpf_map_type::BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED;
+}
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
 pub enum bpf_map_type {
@@ -304,7 +314,7 @@ pub enum bpf_map_type {
     BPF_MAP_TYPE_SOCKHASH = 18,
     BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED = 19,
     BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 20,
-    BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 21,
+    BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED = 21,
     BPF_MAP_TYPE_QUEUE = 22,
     BPF_MAP_TYPE_STACK = 23,
     BPF_MAP_TYPE_SK_STORAGE = 24,
@@ -316,6 +326,8 @@ pub enum bpf_map_type {
     BPF_MAP_TYPE_BLOOM_FILTER = 30,
     BPF_MAP_TYPE_USER_RINGBUF = 31,
     BPF_MAP_TYPE_CGRP_STORAGE = 32,
+    BPF_MAP_TYPE_ARENA = 33,
+    __MAX_BPF_MAP_TYPE = 34,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
@@ -353,6 +365,7 @@ pub enum bpf_prog_type {
     BPF_PROG_TYPE_SK_LOOKUP = 30,
     BPF_PROG_TYPE_SYSCALL = 31,
     BPF_PROG_TYPE_NETFILTER = 32,
+    __MAX_BPF_PROG_TYPE = 33,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
@@ -402,7 +415,18 @@ pub enum bpf_attach_type {
     BPF_TRACE_KPROBE_MULTI = 42,
     BPF_LSM_CGROUP = 43,
     BPF_STRUCT_OPS = 44,
-    __MAX_BPF_ATTACH_TYPE = 45,
+    BPF_NETFILTER = 45,
+    BPF_TCX_INGRESS = 46,
+    BPF_TCX_EGRESS = 47,
+    BPF_TRACE_UPROBE_MULTI = 48,
+    BPF_CGROUP_UNIX_CONNECT = 49,
+    BPF_CGROUP_UNIX_SENDMSG = 50,
+    BPF_CGROUP_UNIX_RECVMSG = 51,
+    BPF_CGROUP_UNIX_GETPEERNAME = 52,
+    BPF_CGROUP_UNIX_GETSOCKNAME = 53,
+    BPF_NETKIT_PRIMARY = 54,
+    BPF_NETKIT_PEER = 55,
+    __MAX_BPF_ATTACH_TYPE = 56,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
@@ -418,29 +442,40 @@ pub enum bpf_link_type {
     BPF_LINK_TYPE_KPROBE_MULTI = 8,
     BPF_LINK_TYPE_STRUCT_OPS = 9,
     BPF_LINK_TYPE_NETFILTER = 10,
-    MAX_BPF_LINK_TYPE = 11,
+    BPF_LINK_TYPE_TCX = 11,
+    BPF_LINK_TYPE_UPROBE_MULTI = 12,
+    BPF_LINK_TYPE_NETKIT = 13,
+    __MAX_BPF_LINK_TYPE = 14,
 }
-pub const BPF_ANY: _bindgen_ty_2 = 0;
-pub const BPF_NOEXIST: _bindgen_ty_2 = 1;
-pub const BPF_EXIST: _bindgen_ty_2 = 2;
-pub const BPF_F_LOCK: _bindgen_ty_2 = 4;
+pub const BPF_F_KPROBE_MULTI_RETURN: _bindgen_ty_2 = 1;
 pub type _bindgen_ty_2 = ::core::ffi::c_uint;
-pub const BPF_F_NO_PREALLOC: _bindgen_ty_3 = 1;
-pub const BPF_F_NO_COMMON_LRU: _bindgen_ty_3 = 2;
-pub const BPF_F_NUMA_NODE: _bindgen_ty_3 = 4;
-pub const BPF_F_RDONLY: _bindgen_ty_3 = 8;
-pub const BPF_F_WRONLY: _bindgen_ty_3 = 16;
-pub const BPF_F_STACK_BUILD_ID: _bindgen_ty_3 = 32;
-pub const BPF_F_ZERO_SEED: _bindgen_ty_3 = 64;
-pub const BPF_F_RDONLY_PROG: _bindgen_ty_3 = 128;
-pub const BPF_F_WRONLY_PROG: _bindgen_ty_3 = 256;
-pub const BPF_F_CLONE: _bindgen_ty_3 = 512;
-pub const BPF_F_MMAPABLE: _bindgen_ty_3 = 1024;
-pub const BPF_F_PRESERVE_ELEMS: _bindgen_ty_3 = 2048;
-pub const BPF_F_INNER_MAP: _bindgen_ty_3 = 4096;
-pub const BPF_F_LINK: _bindgen_ty_3 = 8192;
-pub const BPF_F_PATH_FD: _bindgen_ty_3 = 16384;
+pub const BPF_F_UPROBE_MULTI_RETURN: _bindgen_ty_3 = 1;
 pub type _bindgen_ty_3 = ::core::ffi::c_uint;
+pub const BPF_ANY: _bindgen_ty_4 = 0;
+pub const BPF_NOEXIST: _bindgen_ty_4 = 1;
+pub const BPF_EXIST: _bindgen_ty_4 = 2;
+pub const BPF_F_LOCK: _bindgen_ty_4 = 4;
+pub type _bindgen_ty_4 = ::core::ffi::c_uint;
+pub const BPF_F_NO_PREALLOC: _bindgen_ty_5 = 1;
+pub const BPF_F_NO_COMMON_LRU: _bindgen_ty_5 = 2;
+pub const BPF_F_NUMA_NODE: _bindgen_ty_5 = 4;
+pub const BPF_F_RDONLY: _bindgen_ty_5 = 8;
+pub const BPF_F_WRONLY: _bindgen_ty_5 = 16;
+pub const BPF_F_STACK_BUILD_ID: _bindgen_ty_5 = 32;
+pub const BPF_F_ZERO_SEED: _bindgen_ty_5 = 64;
+pub const BPF_F_RDONLY_PROG: _bindgen_ty_5 = 128;
+pub const BPF_F_WRONLY_PROG: _bindgen_ty_5 = 256;
+pub const BPF_F_CLONE: _bindgen_ty_5 = 512;
+pub const BPF_F_MMAPABLE: _bindgen_ty_5 = 1024;
+pub const BPF_F_PRESERVE_ELEMS: _bindgen_ty_5 = 2048;
+pub const BPF_F_INNER_MAP: _bindgen_ty_5 = 4096;
+pub const BPF_F_LINK: _bindgen_ty_5 = 8192;
+pub const BPF_F_PATH_FD: _bindgen_ty_5 = 16384;
+pub const BPF_F_VTYPE_BTF_OBJ_FD: _bindgen_ty_5 = 32768;
+pub const BPF_F_TOKEN_FD: _bindgen_ty_5 = 65536;
+pub const BPF_F_SEGV_ON_FAULT: _bindgen_ty_5 = 131072;
+pub const BPF_F_NO_USER_CONV: _bindgen_ty_5 = 262144;
+pub type _bindgen_ty_5 = ::core::ffi::c_uint;
 #[repr(C)]
 #[derive(Copy, Clone)]
 pub union bpf_attr {
@@ -463,6 +498,7 @@ pub union bpf_attr {
     pub enable_stats: bpf_attr__bindgen_ty_17,
     pub iter_create: bpf_attr__bindgen_ty_18,
     pub prog_bind_map: bpf_attr__bindgen_ty_19,
+    pub token_create: bpf_attr__bindgen_ty_20,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -481,6 +517,8 @@ pub struct bpf_attr__bindgen_ty_1 {
     pub btf_value_type_id: __u32,
     pub btf_vmlinux_value_type_id: __u32,
     pub map_extra: __u64,
+    pub value_type_btf_obj_fd: __s32,
+    pub map_token_fd: __s32,
 }
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -537,6 +575,7 @@ pub struct bpf_attr__bindgen_ty_4 {
     pub core_relos: __u64,
     pub core_relo_rec_size: __u32,
     pub log_true_size: __u32,
+    pub prog_token_fd: __s32,
 }
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -553,13 +592,27 @@ pub struct bpf_attr__bindgen_ty_5 {
     pub path_fd: __s32,
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_attr__bindgen_ty_6 {
-    pub target_fd: __u32,
+    pub __bindgen_anon_1: bpf_attr__bindgen_ty_6__bindgen_ty_1,
     pub attach_bpf_fd: __u32,
     pub attach_type: __u32,
     pub attach_flags: __u32,
     pub replace_bpf_fd: __u32,
+    pub __bindgen_anon_2: bpf_attr__bindgen_ty_6__bindgen_ty_2,
+    pub expected_revision: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_6__bindgen_ty_1 {
+    pub target_fd: __u32,
+    pub target_ifindex: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_6__bindgen_ty_2 {
+    pub relative_fd: __u32,
+    pub relative_id: __u32,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -604,21 +657,55 @@ pub struct bpf_attr__bindgen_ty_9 {
     pub info: __u64,
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_attr__bindgen_ty_10 {
-    pub target_fd: __u32,
+    pub __bindgen_anon_1: bpf_attr__bindgen_ty_10__bindgen_ty_1,
     pub attach_type: __u32,
     pub query_flags: __u32,
     pub attach_flags: __u32,
     pub prog_ids: __u64,
-    pub prog_cnt: __u32,
+    pub __bindgen_anon_2: bpf_attr__bindgen_ty_10__bindgen_ty_2,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
     pub prog_attach_flags: __u64,
+    pub link_ids: __u64,
+    pub link_attach_flags: __u64,
+    pub revision: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_10__bindgen_ty_1 {
+    pub target_fd: __u32,
+    pub target_ifindex: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_10__bindgen_ty_2 {
+    pub prog_cnt: __u32,
+    pub count: __u32,
+}
+impl bpf_attr__bindgen_ty_10 {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct bpf_attr__bindgen_ty_11 {
     pub name: __u64,
     pub prog_fd: __u32,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+    pub cookie: __u64,
+}
+impl bpf_attr__bindgen_ty_11 {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -629,6 +716,8 @@ pub struct bpf_attr__bindgen_ty_12 {
     pub btf_log_size: __u32,
     pub btf_log_level: __u32,
     pub btf_log_true_size: __u32,
+    pub btf_flags: __u32,
+    pub btf_token_fd: __s32,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -673,6 +762,9 @@ pub union bpf_attr__bindgen_ty_14__bindgen_ty_3 {
     pub kprobe_multi: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_3,
     pub tracing: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_4,
     pub netfilter: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_5,
+    pub tcx: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6,
+    pub uprobe_multi: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_7,
+    pub netkit: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -710,6 +802,41 @@ pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_5 {
 }
 #[repr(C)]
 #[derive(Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6 {
+    pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6__bindgen_ty_1,
+    pub expected_revision: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6__bindgen_ty_1 {
+    pub relative_fd: __u32,
+    pub relative_id: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_7 {
+    pub path: __u64,
+    pub offsets: __u64,
+    pub ref_ctr_offsets: __u64,
+    pub cookies: __u64,
+    pub cnt: __u32,
+    pub flags: __u32,
+    pub pid: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8 {
+    pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8__bindgen_ty_1,
+    pub expected_revision: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8__bindgen_ty_1 {
+    pub relative_fd: __u32,
+    pub relative_id: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
 pub struct bpf_attr__bindgen_ty_15 {
     pub link_fd: __u32,
     pub __bindgen_anon_1: bpf_attr__bindgen_ty_15__bindgen_ty_1,
@@ -751,61 +878,67 @@ pub struct bpf_attr__bindgen_ty_19 {
     pub map_fd: __u32,
     pub flags: __u32,
 }
-pub const BPF_F_RECOMPUTE_CSUM: _bindgen_ty_4 = 1;
-pub const BPF_F_INVALIDATE_HASH: _bindgen_ty_4 = 2;
-pub type _bindgen_ty_4 = ::core::ffi::c_uint;
-pub const BPF_F_HDR_FIELD_MASK: _bindgen_ty_5 = 15;
-pub type _bindgen_ty_5 = ::core::ffi::c_uint;
-pub const BPF_F_PSEUDO_HDR: _bindgen_ty_6 = 16;
-pub const BPF_F_MARK_MANGLED_0: _bindgen_ty_6 = 32;
-pub const BPF_F_MARK_ENFORCE: _bindgen_ty_6 = 64;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_20 {
+    pub flags: __u32,
+    pub bpffs_fd: __u32,
+}
+pub const BPF_F_RECOMPUTE_CSUM: _bindgen_ty_6 = 1;
+pub const BPF_F_INVALIDATE_HASH: _bindgen_ty_6 = 2;
 pub type _bindgen_ty_6 = ::core::ffi::c_uint;
-pub const BPF_F_INGRESS: _bindgen_ty_7 = 1;
+pub const BPF_F_HDR_FIELD_MASK: _bindgen_ty_7 = 15;
 pub type _bindgen_ty_7 = ::core::ffi::c_uint;
-pub const BPF_F_TUNINFO_IPV6: _bindgen_ty_8 = 1;
+pub const BPF_F_PSEUDO_HDR: _bindgen_ty_8 = 16;
+pub const BPF_F_MARK_MANGLED_0: _bindgen_ty_8 = 32;
+pub const BPF_F_MARK_ENFORCE: _bindgen_ty_8 = 64;
 pub type _bindgen_ty_8 = ::core::ffi::c_uint;
-pub const BPF_F_SKIP_FIELD_MASK: _bindgen_ty_9 = 255;
-pub const BPF_F_USER_STACK: _bindgen_ty_9 = 256;
-pub const BPF_F_FAST_STACK_CMP: _bindgen_ty_9 = 512;
-pub const BPF_F_REUSE_STACKID: _bindgen_ty_9 = 1024;
-pub const BPF_F_USER_BUILD_ID: _bindgen_ty_9 = 2048;
+pub const BPF_F_INGRESS: _bindgen_ty_9 = 1;
 pub type _bindgen_ty_9 = ::core::ffi::c_uint;
-pub const BPF_F_ZERO_CSUM_TX: _bindgen_ty_10 = 2;
-pub const BPF_F_DONT_FRAGMENT: _bindgen_ty_10 = 4;
-pub const BPF_F_SEQ_NUMBER: _bindgen_ty_10 = 8;
-pub const BPF_F_NO_TUNNEL_KEY: _bindgen_ty_10 = 16;
+pub const BPF_F_TUNINFO_IPV6: _bindgen_ty_10 = 1;
 pub type _bindgen_ty_10 = ::core::ffi::c_uint;
-pub const BPF_F_TUNINFO_FLAGS: _bindgen_ty_11 = 16;
+pub const BPF_F_SKIP_FIELD_MASK: _bindgen_ty_11 = 255;
+pub const BPF_F_USER_STACK: _bindgen_ty_11 = 256;
+pub const BPF_F_FAST_STACK_CMP: _bindgen_ty_11 = 512;
+pub const BPF_F_REUSE_STACKID: _bindgen_ty_11 = 1024;
+pub const BPF_F_USER_BUILD_ID: _bindgen_ty_11 = 2048;
 pub type _bindgen_ty_11 = ::core::ffi::c_uint;
-pub const BPF_F_INDEX_MASK: _bindgen_ty_12 = 4294967295;
-pub const BPF_F_CURRENT_CPU: _bindgen_ty_12 = 4294967295;
-pub const BPF_F_CTXLEN_MASK: _bindgen_ty_12 = 4503595332403200;
-pub type _bindgen_ty_12 = ::core::ffi::c_ulonglong;
-pub const BPF_F_CURRENT_NETNS: _bindgen_ty_13 = -1;
-pub type _bindgen_ty_13 = ::core::ffi::c_int;
-pub const BPF_F_ADJ_ROOM_FIXED_GSO: _bindgen_ty_15 = 1;
-pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: _bindgen_ty_15 = 2;
-pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: _bindgen_ty_15 = 4;
-pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: _bindgen_ty_15 = 8;
-pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: _bindgen_ty_15 = 16;
-pub const BPF_F_ADJ_ROOM_NO_CSUM_RESET: _bindgen_ty_15 = 32;
-pub const BPF_F_ADJ_ROOM_ENCAP_L2_ETH: _bindgen_ty_15 = 64;
-pub const BPF_F_ADJ_ROOM_DECAP_L3_IPV4: _bindgen_ty_15 = 128;
-pub const BPF_F_ADJ_ROOM_DECAP_L3_IPV6: _bindgen_ty_15 = 256;
-pub type _bindgen_ty_15 = ::core::ffi::c_uint;
-pub const BPF_F_SYSCTL_BASE_NAME: _bindgen_ty_17 = 1;
+pub const BPF_F_ZERO_CSUM_TX: _bindgen_ty_12 = 2;
+pub const BPF_F_DONT_FRAGMENT: _bindgen_ty_12 = 4;
+pub const BPF_F_SEQ_NUMBER: _bindgen_ty_12 = 8;
+pub const BPF_F_NO_TUNNEL_KEY: _bindgen_ty_12 = 16;
+pub type _bindgen_ty_12 = ::core::ffi::c_uint;
+pub const BPF_F_TUNINFO_FLAGS: _bindgen_ty_13 = 16;
+pub type _bindgen_ty_13 = ::core::ffi::c_uint;
+pub const BPF_F_INDEX_MASK: _bindgen_ty_14 = 4294967295;
+pub const BPF_F_CURRENT_CPU: _bindgen_ty_14 = 4294967295;
+pub const BPF_F_CTXLEN_MASK: _bindgen_ty_14 = 4503595332403200;
+pub type _bindgen_ty_14 = ::core::ffi::c_ulonglong;
+pub const BPF_F_CURRENT_NETNS: _bindgen_ty_15 = -1;
+pub type _bindgen_ty_15 = ::core::ffi::c_int;
+pub const BPF_F_ADJ_ROOM_FIXED_GSO: _bindgen_ty_17 = 1;
+pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: _bindgen_ty_17 = 2;
+pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: _bindgen_ty_17 = 4;
+pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: _bindgen_ty_17 = 8;
+pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: _bindgen_ty_17 = 16;
+pub const BPF_F_ADJ_ROOM_NO_CSUM_RESET: _bindgen_ty_17 = 32;
+pub const BPF_F_ADJ_ROOM_ENCAP_L2_ETH: _bindgen_ty_17 = 64;
+pub const BPF_F_ADJ_ROOM_DECAP_L3_IPV4: _bindgen_ty_17 = 128;
+pub const BPF_F_ADJ_ROOM_DECAP_L3_IPV6: _bindgen_ty_17 = 256;
 pub type _bindgen_ty_17 = ::core::ffi::c_uint;
-pub const BPF_F_GET_BRANCH_RECORDS_SIZE: _bindgen_ty_19 = 1;
+pub const BPF_F_SYSCTL_BASE_NAME: _bindgen_ty_19 = 1;
 pub type _bindgen_ty_19 = ::core::ffi::c_uint;
-pub const BPF_RINGBUF_BUSY_BIT: _bindgen_ty_22 = 2147483648;
-pub const BPF_RINGBUF_DISCARD_BIT: _bindgen_ty_22 = 1073741824;
-pub const BPF_RINGBUF_HDR_SZ: _bindgen_ty_22 = 8;
-pub type _bindgen_ty_22 = ::core::ffi::c_uint;
-pub const BPF_F_BPRM_SECUREEXEC: _bindgen_ty_24 = 1;
+pub const BPF_F_GET_BRANCH_RECORDS_SIZE: _bindgen_ty_21 = 1;
+pub type _bindgen_ty_21 = ::core::ffi::c_uint;
+pub const BPF_RINGBUF_BUSY_BIT: _bindgen_ty_24 = 2147483648;
+pub const BPF_RINGBUF_DISCARD_BIT: _bindgen_ty_24 = 1073741824;
+pub const BPF_RINGBUF_HDR_SZ: _bindgen_ty_24 = 8;
 pub type _bindgen_ty_24 = ::core::ffi::c_uint;
-pub const BPF_F_BROADCAST: _bindgen_ty_25 = 8;
-pub const BPF_F_EXCLUDE_INGRESS: _bindgen_ty_25 = 16;
-pub type _bindgen_ty_25 = ::core::ffi::c_uint;
+pub const BPF_F_BPRM_SECUREEXEC: _bindgen_ty_26 = 1;
+pub type _bindgen_ty_26 = ::core::ffi::c_uint;
+pub const BPF_F_BROADCAST: _bindgen_ty_27 = 8;
+pub const BPF_F_EXCLUDE_INGRESS: _bindgen_ty_27 = 16;
+pub type _bindgen_ty_27 = ::core::ffi::c_uint;
 #[repr(C)]
 #[derive(Copy, Clone)]
 pub struct bpf_devmap_val {
@@ -912,17 +1045,9 @@ pub struct bpf_map_info {
     pub btf_id: __u32,
     pub btf_key_type_id: __u32,
     pub btf_value_type_id: __u32,
-    pub _bitfield_align_1: [u8; 0],
-    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+    pub btf_vmlinux_id: __u32,
     pub map_extra: __u64,
 }
-impl bpf_map_info {
-    #[inline]
-    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
-        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
-        __bindgen_bitfield_unit
-    }
-}
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct bpf_btf_info {
@@ -952,6 +1077,11 @@ pub union bpf_link_info__bindgen_ty_1 {
     pub xdp: bpf_link_info__bindgen_ty_1__bindgen_ty_6,
     pub struct_ops: bpf_link_info__bindgen_ty_1__bindgen_ty_7,
     pub netfilter: bpf_link_info__bindgen_ty_1__bindgen_ty_8,
+    pub kprobe_multi: bpf_link_info__bindgen_ty_1__bindgen_ty_9,
+    pub uprobe_multi: bpf_link_info__bindgen_ty_1__bindgen_ty_10,
+    pub perf_event: bpf_link_info__bindgen_ty_1__bindgen_ty_11,
+    pub tcx: bpf_link_info__bindgen_ty_1__bindgen_ty_12,
+    pub netkit: bpf_link_info__bindgen_ty_1__bindgen_ty_13,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -1034,6 +1164,112 @@ pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_8 {
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_9 {
+    pub addrs: __u64,
+    pub count: __u32,
+    pub flags: __u32,
+    pub missed: __u64,
+    pub cookies: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_10 {
+    pub path: __u64,
+    pub offsets: __u64,
+    pub ref_ctr_offsets: __u64,
+    pub cookies: __u64,
+    pub path_size: __u32,
+    pub count: __u32,
+    pub flags: __u32,
+    pub pid: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11 {
+    pub type_: __u32,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+    pub __bindgen_anon_1: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1 {
+    pub uprobe: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_1,
+    pub kprobe: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_2,
+    pub tracepoint: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_3,
+    pub event: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_4,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_1 {
+    pub file_name: __u64,
+    pub name_len: __u32,
+    pub offset: __u32,
+    pub cookie: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_2 {
+    pub func_name: __u64,
+    pub name_len: __u32,
+    pub offset: __u32,
+    pub addr: __u64,
+    pub missed: __u64,
+    pub cookie: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_3 {
+    pub tp_name: __u64,
+    pub name_len: __u32,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+    pub cookie: __u64,
+}
+impl bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_3 {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_4 {
+    pub config: __u64,
+    pub type_: __u32,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+    pub cookie: __u64,
+}
+impl bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_4 {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+impl bpf_link_info__bindgen_ty_1__bindgen_ty_11 {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_12 {
+    pub ifindex: __u32,
+    pub attach_type: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_13 {
+    pub ifindex: __u32,
+    pub attach_type: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
 pub struct bpf_func_info {
     pub insn_off: __u32,
     pub type_id: __u32,
@@ -1046,8 +1282,9 @@ pub struct bpf_line_info {
     pub line_off: __u32,
     pub line_col: __u32,
 }
-pub const BPF_F_TIMER_ABS: _bindgen_ty_39 = 1;
-pub type _bindgen_ty_39 = ::core::ffi::c_uint;
+pub const BPF_F_TIMER_ABS: _bindgen_ty_41 = 1;
+pub const BPF_F_TIMER_CPU_PIN: _bindgen_ty_41 = 2;
+pub type _bindgen_ty_41 = ::core::ffi::c_uint;
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct btf_header {
@@ -1073,29 +1310,29 @@ pub union btf_type__bindgen_ty_1 {
     pub size: __u32,
     pub type_: __u32,
 }
-pub const BTF_KIND_UNKN: _bindgen_ty_40 = 0;
-pub const BTF_KIND_INT: _bindgen_ty_40 = 1;
-pub const BTF_KIND_PTR: _bindgen_ty_40 = 2;
-pub const BTF_KIND_ARRAY: _bindgen_ty_40 = 3;
-pub const BTF_KIND_STRUCT: _bindgen_ty_40 = 4;
-pub const BTF_KIND_UNION: _bindgen_ty_40 = 5;
-pub const BTF_KIND_ENUM: _bindgen_ty_40 = 6;
-pub const BTF_KIND_FWD: _bindgen_ty_40 = 7;
-pub const BTF_KIND_TYPEDEF: _bindgen_ty_40 = 8;
-pub const BTF_KIND_VOLATILE: _bindgen_ty_40 = 9;
-pub const BTF_KIND_CONST: _bindgen_ty_40 = 10;
-pub const BTF_KIND_RESTRICT: _bindgen_ty_40 = 11;
-pub const BTF_KIND_FUNC: _bindgen_ty_40 = 12;
-pub const BTF_KIND_FUNC_PROTO: _bindgen_ty_40 = 13;
-pub const BTF_KIND_VAR: _bindgen_ty_40 = 14;
-pub const BTF_KIND_DATASEC: _bindgen_ty_40 = 15;
-pub const BTF_KIND_FLOAT: _bindgen_ty_40 = 16;
-pub const BTF_KIND_DECL_TAG: _bindgen_ty_40 = 17;
-pub const BTF_KIND_TYPE_TAG: _bindgen_ty_40 = 18;
-pub const BTF_KIND_ENUM64: _bindgen_ty_40 = 19;
-pub const NR_BTF_KINDS: _bindgen_ty_40 = 20;
-pub const BTF_KIND_MAX: _bindgen_ty_40 = 19;
-pub type _bindgen_ty_40 = ::core::ffi::c_uint;
+pub const BTF_KIND_UNKN: _bindgen_ty_42 = 0;
+pub const BTF_KIND_INT: _bindgen_ty_42 = 1;
+pub const BTF_KIND_PTR: _bindgen_ty_42 = 2;
+pub const BTF_KIND_ARRAY: _bindgen_ty_42 = 3;
+pub const BTF_KIND_STRUCT: _bindgen_ty_42 = 4;
+pub const BTF_KIND_UNION: _bindgen_ty_42 = 5;
+pub const BTF_KIND_ENUM: _bindgen_ty_42 = 6;
+pub const BTF_KIND_FWD: _bindgen_ty_42 = 7;
+pub const BTF_KIND_TYPEDEF: _bindgen_ty_42 = 8;
+pub const BTF_KIND_VOLATILE: _bindgen_ty_42 = 9;
+pub const BTF_KIND_CONST: _bindgen_ty_42 = 10;
+pub const BTF_KIND_RESTRICT: _bindgen_ty_42 = 11;
+pub const BTF_KIND_FUNC: _bindgen_ty_42 = 12;
+pub const BTF_KIND_FUNC_PROTO: _bindgen_ty_42 = 13;
+pub const BTF_KIND_VAR: _bindgen_ty_42 = 14;
+pub const BTF_KIND_DATASEC: _bindgen_ty_42 = 15;
+pub const BTF_KIND_FLOAT: _bindgen_ty_42 = 16;
+pub const BTF_KIND_DECL_TAG: _bindgen_ty_42 = 17;
+pub const BTF_KIND_TYPE_TAG: _bindgen_ty_42 = 18;
+pub const BTF_KIND_ENUM64: _bindgen_ty_42 = 19;
+pub const NR_BTF_KINDS: _bindgen_ty_42 = 20;
+pub const BTF_KIND_MAX: _bindgen_ty_42 = 19;
+pub type _bindgen_ty_42 = ::core::ffi::c_uint;
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct btf_enum {
@@ -1122,10 +1359,10 @@ pub struct btf_param {
     pub name_off: __u32,
     pub type_: __u32,
 }
-pub const BTF_VAR_STATIC: _bindgen_ty_41 = 0;
-pub const BTF_VAR_GLOBAL_ALLOCATED: _bindgen_ty_41 = 1;
-pub const BTF_VAR_GLOBAL_EXTERN: _bindgen_ty_41 = 2;
-pub type _bindgen_ty_41 = ::core::ffi::c_uint;
+pub const BTF_VAR_STATIC: _bindgen_ty_43 = 0;
+pub const BTF_VAR_GLOBAL_ALLOCATED: _bindgen_ty_43 = 1;
+pub const BTF_VAR_GLOBAL_EXTERN: _bindgen_ty_43 = 2;
+pub type _bindgen_ty_43 = ::core::ffi::c_uint;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
 pub enum btf_func_linkage {
@@ -1150,6 +1387,17 @@ pub struct btf_var_secinfo {
 pub struct btf_decl_tag {
     pub component_idx: __s32,
 }
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_92 = 0;
+pub const IFLA_XDP_FD: _bindgen_ty_92 = 1;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_92 = 2;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_92 = 3;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_92 = 4;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_92 = 5;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_92 = 6;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_92 = 7;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_92 = 8;
+pub const __IFLA_XDP_MAX: _bindgen_ty_92 = 9;
+pub type _bindgen_ty_92 = ::core::ffi::c_uint;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
 pub enum perf_type_id {
@@ -1961,7 +2209,6 @@ pub union perf_event_mmap_page__bindgen_ty_1 {
     pub __bindgen_anon_1: perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1,
 }
 #[repr(C)]
-#[repr(align(8))]
 #[derive(Debug, Copy, Clone)]
 pub struct perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1 {
     pub _bitfield_align_1: [u64; 0],
@@ -2121,17 +2368,20 @@ pub enum perf_event_type {
     PERF_RECORD_AUX_OUTPUT_HW_ID = 21,
     PERF_RECORD_MAX = 22,
 }
-pub const IFLA_XDP_UNSPEC: _bindgen_ty_90 = 0;
-pub const IFLA_XDP_FD: _bindgen_ty_90 = 1;
-pub const IFLA_XDP_ATTACHED: _bindgen_ty_90 = 2;
-pub const IFLA_XDP_FLAGS: _bindgen_ty_90 = 3;
-pub const IFLA_XDP_PROG_ID: _bindgen_ty_90 = 4;
-pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_90 = 5;
-pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_90 = 6;
-pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_90 = 7;
-pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_90 = 8;
-pub const __IFLA_XDP_MAX: _bindgen_ty_90 = 9;
-pub type _bindgen_ty_90 = ::core::ffi::c_uint;
+pub const TCA_BPF_UNSPEC: _bindgen_ty_152 = 0;
+pub const TCA_BPF_ACT: _bindgen_ty_152 = 1;
+pub const TCA_BPF_POLICE: _bindgen_ty_152 = 2;
+pub const TCA_BPF_CLASSID: _bindgen_ty_152 = 3;
+pub const TCA_BPF_OPS_LEN: _bindgen_ty_152 = 4;
+pub const TCA_BPF_OPS: _bindgen_ty_152 = 5;
+pub const TCA_BPF_FD: _bindgen_ty_152 = 6;
+pub const TCA_BPF_NAME: _bindgen_ty_152 = 7;
+pub const TCA_BPF_FLAGS: _bindgen_ty_152 = 8;
+pub const TCA_BPF_FLAGS_GEN: _bindgen_ty_152 = 9;
+pub const TCA_BPF_TAG: _bindgen_ty_152 = 10;
+pub const TCA_BPF_ID: _bindgen_ty_152 = 11;
+pub const __TCA_BPF_MAX: _bindgen_ty_152 = 12;
+pub type _bindgen_ty_152 = ::core::ffi::c_uint;
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct ifinfomsg {
@@ -2153,37 +2403,24 @@ pub struct tcmsg {
     pub tcm_parent: __u32,
     pub tcm_info: __u32,
 }
-pub const TCA_UNSPEC: _bindgen_ty_103 = 0;
-pub const TCA_KIND: _bindgen_ty_103 = 1;
-pub const TCA_OPTIONS: _bindgen_ty_103 = 2;
-pub const TCA_STATS: _bindgen_ty_103 = 3;
-pub const TCA_XSTATS: _bindgen_ty_103 = 4;
-pub const TCA_RATE: _bindgen_ty_103 = 5;
-pub const TCA_FCNT: _bindgen_ty_103 = 6;
-pub const TCA_STATS2: _bindgen_ty_103 = 7;
-pub const TCA_STAB: _bindgen_ty_103 = 8;
-pub const TCA_PAD: _bindgen_ty_103 = 9;
-pub const TCA_DUMP_INVISIBLE: _bindgen_ty_103 = 10;
-pub const TCA_CHAIN: _bindgen_ty_103 = 11;
-pub const TCA_HW_OFFLOAD: _bindgen_ty_103 = 12;
-pub const TCA_INGRESS_BLOCK: _bindgen_ty_103 = 13;
-pub const TCA_EGRESS_BLOCK: _bindgen_ty_103 = 14;
-pub const __TCA_MAX: _bindgen_ty_103 = 15;
-pub type _bindgen_ty_103 = ::core::ffi::c_uint;
-pub const TCA_BPF_UNSPEC: _bindgen_ty_159 = 0;
-pub const TCA_BPF_ACT: _bindgen_ty_159 = 1;
-pub const TCA_BPF_POLICE: _bindgen_ty_159 = 2;
-pub const TCA_BPF_CLASSID: _bindgen_ty_159 = 3;
-pub const TCA_BPF_OPS_LEN: _bindgen_ty_159 = 4;
-pub const TCA_BPF_OPS: _bindgen_ty_159 = 5;
-pub const TCA_BPF_FD: _bindgen_ty_159 = 6;
-pub const TCA_BPF_NAME: _bindgen_ty_159 = 7;
-pub const TCA_BPF_FLAGS: _bindgen_ty_159 = 8;
-pub const TCA_BPF_FLAGS_GEN: _bindgen_ty_159 = 9;
-pub const TCA_BPF_TAG: _bindgen_ty_159 = 10;
-pub const TCA_BPF_ID: _bindgen_ty_159 = 11;
-pub const __TCA_BPF_MAX: _bindgen_ty_159 = 12;
-pub type _bindgen_ty_159 = ::core::ffi::c_uint;
+pub const TCA_UNSPEC: _bindgen_ty_172 = 0;
+pub const TCA_KIND: _bindgen_ty_172 = 1;
+pub const TCA_OPTIONS: _bindgen_ty_172 = 2;
+pub const TCA_STATS: _bindgen_ty_172 = 3;
+pub const TCA_XSTATS: _bindgen_ty_172 = 4;
+pub const TCA_RATE: _bindgen_ty_172 = 5;
+pub const TCA_FCNT: _bindgen_ty_172 = 6;
+pub const TCA_STATS2: _bindgen_ty_172 = 7;
+pub const TCA_STAB: _bindgen_ty_172 = 8;
+pub const TCA_PAD: _bindgen_ty_172 = 9;
+pub const TCA_DUMP_INVISIBLE: _bindgen_ty_172 = 10;
+pub const TCA_CHAIN: _bindgen_ty_172 = 11;
+pub const TCA_HW_OFFLOAD: _bindgen_ty_172 = 12;
+pub const TCA_INGRESS_BLOCK: _bindgen_ty_172 = 13;
+pub const TCA_EGRESS_BLOCK: _bindgen_ty_172 = 14;
+pub const TCA_DUMP_FLAGS: _bindgen_ty_172 = 15;
+pub const __TCA_MAX: _bindgen_ty_172 = 16;
+pub type _bindgen_ty_172 = ::core::ffi::c_uint;
 pub const AYA_PERF_EVENT_IOC_ENABLE: ::core::ffi::c_int = 9216;
 pub const AYA_PERF_EVENT_IOC_DISABLE: ::core::ffi::c_int = 9217;
 pub const AYA_PERF_EVENT_IOC_SET_BPF: ::core::ffi::c_int = 1074013192;

+ 401 - 164
aya-obj/src/generated/linux_bindings_riscv64.rs

@@ -1,4 +1,4 @@
-/* automatically generated by rust-bindgen 0.65.1 */
+/* automatically generated by rust-bindgen 0.69.4 */
 
 #[repr(C)]
 #[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
@@ -110,6 +110,8 @@ impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
         fmt.write_str("__IncompleteArrayField")
     }
 }
+pub const SO_ATTACH_BPF: u32 = 50;
+pub const SO_DETACH_BPF: u32 = 27;
 pub const BPF_LD: u32 = 0;
 pub const BPF_LDX: u32 = 1;
 pub const BPF_ST: u32 = 2;
@@ -126,6 +128,9 @@ pub const BPF_CALL: u32 = 128;
 pub const BPF_F_ALLOW_OVERRIDE: u32 = 1;
 pub const BPF_F_ALLOW_MULTI: u32 = 2;
 pub const BPF_F_REPLACE: u32 = 4;
+pub const BPF_F_BEFORE: u32 = 8;
+pub const BPF_F_AFTER: u32 = 16;
+pub const BPF_F_ID: u32 = 32;
 pub const BPF_F_STRICT_ALIGNMENT: u32 = 1;
 pub const BPF_F_ANY_ALIGNMENT: u32 = 2;
 pub const BPF_F_TEST_RND_HI32: u32 = 4;
@@ -133,7 +138,8 @@ 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_XDP_DEV_BOUND_ONLY: u32 = 64;
-pub const BPF_F_KPROBE_MULTI_RETURN: u32 = 1;
+pub const BPF_F_TEST_REG_INVARIANTS: u32 = 128;
+pub const BPF_F_NETFILTER_IP_DEFRAG: 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;
@@ -148,12 +154,6 @@ 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;
-pub const PERF_MAX_STACK_DEPTH: u32 = 127;
-pub const PERF_MAX_CONTEXTS_PER_STACK: u32 = 8;
-pub const PERF_FLAG_FD_NO_GROUP: u32 = 1;
-pub const PERF_FLAG_FD_OUTPUT: u32 = 2;
-pub const PERF_FLAG_PID_CGROUP: u32 = 4;
-pub const PERF_FLAG_FD_CLOEXEC: u32 = 8;
 pub const NLMSG_ALIGNTO: u32 = 4;
 pub const XDP_FLAGS_UPDATE_IF_NOEXIST: u32 = 1;
 pub const XDP_FLAGS_SKB_MODE: u32 = 2;
@@ -162,8 +162,12 @@ pub const XDP_FLAGS_HW_MODE: u32 = 8;
 pub const XDP_FLAGS_REPLACE: u32 = 16;
 pub const XDP_FLAGS_MODES: u32 = 14;
 pub const XDP_FLAGS_MASK: u32 = 31;
-pub const SO_ATTACH_BPF: u32 = 50;
-pub const SO_DETACH_BPF: u32 = 27;
+pub const PERF_MAX_STACK_DEPTH: u32 = 127;
+pub const PERF_MAX_CONTEXTS_PER_STACK: u32 = 8;
+pub const PERF_FLAG_FD_NO_GROUP: u32 = 1;
+pub const PERF_FLAG_FD_OUTPUT: u32 = 2;
+pub const PERF_FLAG_PID_CGROUP: u32 = 4;
+pub const PERF_FLAG_FD_CLOEXEC: u32 = 8;
 pub const TC_H_MAJ_MASK: u32 = 4294901760;
 pub const TC_H_MIN_MASK: u32 = 65535;
 pub const TC_H_UNSPEC: u32 = 0;
@@ -275,11 +279,17 @@ pub enum bpf_cmd {
     BPF_ITER_CREATE = 33,
     BPF_LINK_DETACH = 34,
     BPF_PROG_BIND_MAP = 35,
+    BPF_TOKEN_CREATE = 36,
+    __MAX_BPF_CMD = 37,
 }
 impl bpf_map_type {
     pub const BPF_MAP_TYPE_CGROUP_STORAGE: bpf_map_type =
         bpf_map_type::BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED;
 }
+impl bpf_map_type {
+    pub const BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE: bpf_map_type =
+        bpf_map_type::BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED;
+}
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
 pub enum bpf_map_type {
@@ -304,7 +314,7 @@ pub enum bpf_map_type {
     BPF_MAP_TYPE_SOCKHASH = 18,
     BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED = 19,
     BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 20,
-    BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 21,
+    BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED = 21,
     BPF_MAP_TYPE_QUEUE = 22,
     BPF_MAP_TYPE_STACK = 23,
     BPF_MAP_TYPE_SK_STORAGE = 24,
@@ -316,6 +326,8 @@ pub enum bpf_map_type {
     BPF_MAP_TYPE_BLOOM_FILTER = 30,
     BPF_MAP_TYPE_USER_RINGBUF = 31,
     BPF_MAP_TYPE_CGRP_STORAGE = 32,
+    BPF_MAP_TYPE_ARENA = 33,
+    __MAX_BPF_MAP_TYPE = 34,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
@@ -353,6 +365,7 @@ pub enum bpf_prog_type {
     BPF_PROG_TYPE_SK_LOOKUP = 30,
     BPF_PROG_TYPE_SYSCALL = 31,
     BPF_PROG_TYPE_NETFILTER = 32,
+    __MAX_BPF_PROG_TYPE = 33,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
@@ -402,7 +415,18 @@ pub enum bpf_attach_type {
     BPF_TRACE_KPROBE_MULTI = 42,
     BPF_LSM_CGROUP = 43,
     BPF_STRUCT_OPS = 44,
-    __MAX_BPF_ATTACH_TYPE = 45,
+    BPF_NETFILTER = 45,
+    BPF_TCX_INGRESS = 46,
+    BPF_TCX_EGRESS = 47,
+    BPF_TRACE_UPROBE_MULTI = 48,
+    BPF_CGROUP_UNIX_CONNECT = 49,
+    BPF_CGROUP_UNIX_SENDMSG = 50,
+    BPF_CGROUP_UNIX_RECVMSG = 51,
+    BPF_CGROUP_UNIX_GETPEERNAME = 52,
+    BPF_CGROUP_UNIX_GETSOCKNAME = 53,
+    BPF_NETKIT_PRIMARY = 54,
+    BPF_NETKIT_PEER = 55,
+    __MAX_BPF_ATTACH_TYPE = 56,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
@@ -418,29 +442,40 @@ pub enum bpf_link_type {
     BPF_LINK_TYPE_KPROBE_MULTI = 8,
     BPF_LINK_TYPE_STRUCT_OPS = 9,
     BPF_LINK_TYPE_NETFILTER = 10,
-    MAX_BPF_LINK_TYPE = 11,
+    BPF_LINK_TYPE_TCX = 11,
+    BPF_LINK_TYPE_UPROBE_MULTI = 12,
+    BPF_LINK_TYPE_NETKIT = 13,
+    __MAX_BPF_LINK_TYPE = 14,
 }
-pub const BPF_ANY: _bindgen_ty_2 = 0;
-pub const BPF_NOEXIST: _bindgen_ty_2 = 1;
-pub const BPF_EXIST: _bindgen_ty_2 = 2;
-pub const BPF_F_LOCK: _bindgen_ty_2 = 4;
+pub const BPF_F_KPROBE_MULTI_RETURN: _bindgen_ty_2 = 1;
 pub type _bindgen_ty_2 = ::core::ffi::c_uint;
-pub const BPF_F_NO_PREALLOC: _bindgen_ty_3 = 1;
-pub const BPF_F_NO_COMMON_LRU: _bindgen_ty_3 = 2;
-pub const BPF_F_NUMA_NODE: _bindgen_ty_3 = 4;
-pub const BPF_F_RDONLY: _bindgen_ty_3 = 8;
-pub const BPF_F_WRONLY: _bindgen_ty_3 = 16;
-pub const BPF_F_STACK_BUILD_ID: _bindgen_ty_3 = 32;
-pub const BPF_F_ZERO_SEED: _bindgen_ty_3 = 64;
-pub const BPF_F_RDONLY_PROG: _bindgen_ty_3 = 128;
-pub const BPF_F_WRONLY_PROG: _bindgen_ty_3 = 256;
-pub const BPF_F_CLONE: _bindgen_ty_3 = 512;
-pub const BPF_F_MMAPABLE: _bindgen_ty_3 = 1024;
-pub const BPF_F_PRESERVE_ELEMS: _bindgen_ty_3 = 2048;
-pub const BPF_F_INNER_MAP: _bindgen_ty_3 = 4096;
-pub const BPF_F_LINK: _bindgen_ty_3 = 8192;
-pub const BPF_F_PATH_FD: _bindgen_ty_3 = 16384;
+pub const BPF_F_UPROBE_MULTI_RETURN: _bindgen_ty_3 = 1;
 pub type _bindgen_ty_3 = ::core::ffi::c_uint;
+pub const BPF_ANY: _bindgen_ty_4 = 0;
+pub const BPF_NOEXIST: _bindgen_ty_4 = 1;
+pub const BPF_EXIST: _bindgen_ty_4 = 2;
+pub const BPF_F_LOCK: _bindgen_ty_4 = 4;
+pub type _bindgen_ty_4 = ::core::ffi::c_uint;
+pub const BPF_F_NO_PREALLOC: _bindgen_ty_5 = 1;
+pub const BPF_F_NO_COMMON_LRU: _bindgen_ty_5 = 2;
+pub const BPF_F_NUMA_NODE: _bindgen_ty_5 = 4;
+pub const BPF_F_RDONLY: _bindgen_ty_5 = 8;
+pub const BPF_F_WRONLY: _bindgen_ty_5 = 16;
+pub const BPF_F_STACK_BUILD_ID: _bindgen_ty_5 = 32;
+pub const BPF_F_ZERO_SEED: _bindgen_ty_5 = 64;
+pub const BPF_F_RDONLY_PROG: _bindgen_ty_5 = 128;
+pub const BPF_F_WRONLY_PROG: _bindgen_ty_5 = 256;
+pub const BPF_F_CLONE: _bindgen_ty_5 = 512;
+pub const BPF_F_MMAPABLE: _bindgen_ty_5 = 1024;
+pub const BPF_F_PRESERVE_ELEMS: _bindgen_ty_5 = 2048;
+pub const BPF_F_INNER_MAP: _bindgen_ty_5 = 4096;
+pub const BPF_F_LINK: _bindgen_ty_5 = 8192;
+pub const BPF_F_PATH_FD: _bindgen_ty_5 = 16384;
+pub const BPF_F_VTYPE_BTF_OBJ_FD: _bindgen_ty_5 = 32768;
+pub const BPF_F_TOKEN_FD: _bindgen_ty_5 = 65536;
+pub const BPF_F_SEGV_ON_FAULT: _bindgen_ty_5 = 131072;
+pub const BPF_F_NO_USER_CONV: _bindgen_ty_5 = 262144;
+pub type _bindgen_ty_5 = ::core::ffi::c_uint;
 #[repr(C)]
 #[derive(Copy, Clone)]
 pub union bpf_attr {
@@ -463,6 +498,7 @@ pub union bpf_attr {
     pub enable_stats: bpf_attr__bindgen_ty_17,
     pub iter_create: bpf_attr__bindgen_ty_18,
     pub prog_bind_map: bpf_attr__bindgen_ty_19,
+    pub token_create: bpf_attr__bindgen_ty_20,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -481,6 +517,8 @@ pub struct bpf_attr__bindgen_ty_1 {
     pub btf_value_type_id: __u32,
     pub btf_vmlinux_value_type_id: __u32,
     pub map_extra: __u64,
+    pub value_type_btf_obj_fd: __s32,
+    pub map_token_fd: __s32,
 }
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -537,6 +575,7 @@ pub struct bpf_attr__bindgen_ty_4 {
     pub core_relos: __u64,
     pub core_relo_rec_size: __u32,
     pub log_true_size: __u32,
+    pub prog_token_fd: __s32,
 }
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -553,13 +592,27 @@ pub struct bpf_attr__bindgen_ty_5 {
     pub path_fd: __s32,
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_attr__bindgen_ty_6 {
-    pub target_fd: __u32,
+    pub __bindgen_anon_1: bpf_attr__bindgen_ty_6__bindgen_ty_1,
     pub attach_bpf_fd: __u32,
     pub attach_type: __u32,
     pub attach_flags: __u32,
     pub replace_bpf_fd: __u32,
+    pub __bindgen_anon_2: bpf_attr__bindgen_ty_6__bindgen_ty_2,
+    pub expected_revision: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_6__bindgen_ty_1 {
+    pub target_fd: __u32,
+    pub target_ifindex: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_6__bindgen_ty_2 {
+    pub relative_fd: __u32,
+    pub relative_id: __u32,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -604,21 +657,55 @@ pub struct bpf_attr__bindgen_ty_9 {
     pub info: __u64,
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_attr__bindgen_ty_10 {
-    pub target_fd: __u32,
+    pub __bindgen_anon_1: bpf_attr__bindgen_ty_10__bindgen_ty_1,
     pub attach_type: __u32,
     pub query_flags: __u32,
     pub attach_flags: __u32,
     pub prog_ids: __u64,
-    pub prog_cnt: __u32,
+    pub __bindgen_anon_2: bpf_attr__bindgen_ty_10__bindgen_ty_2,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
     pub prog_attach_flags: __u64,
+    pub link_ids: __u64,
+    pub link_attach_flags: __u64,
+    pub revision: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_10__bindgen_ty_1 {
+    pub target_fd: __u32,
+    pub target_ifindex: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_10__bindgen_ty_2 {
+    pub prog_cnt: __u32,
+    pub count: __u32,
+}
+impl bpf_attr__bindgen_ty_10 {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct bpf_attr__bindgen_ty_11 {
     pub name: __u64,
     pub prog_fd: __u32,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+    pub cookie: __u64,
+}
+impl bpf_attr__bindgen_ty_11 {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -629,6 +716,8 @@ pub struct bpf_attr__bindgen_ty_12 {
     pub btf_log_size: __u32,
     pub btf_log_level: __u32,
     pub btf_log_true_size: __u32,
+    pub btf_flags: __u32,
+    pub btf_token_fd: __s32,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -673,6 +762,9 @@ pub union bpf_attr__bindgen_ty_14__bindgen_ty_3 {
     pub kprobe_multi: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_3,
     pub tracing: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_4,
     pub netfilter: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_5,
+    pub tcx: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6,
+    pub uprobe_multi: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_7,
+    pub netkit: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -710,6 +802,41 @@ pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_5 {
 }
 #[repr(C)]
 #[derive(Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6 {
+    pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6__bindgen_ty_1,
+    pub expected_revision: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6__bindgen_ty_1 {
+    pub relative_fd: __u32,
+    pub relative_id: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_7 {
+    pub path: __u64,
+    pub offsets: __u64,
+    pub ref_ctr_offsets: __u64,
+    pub cookies: __u64,
+    pub cnt: __u32,
+    pub flags: __u32,
+    pub pid: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8 {
+    pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8__bindgen_ty_1,
+    pub expected_revision: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8__bindgen_ty_1 {
+    pub relative_fd: __u32,
+    pub relative_id: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
 pub struct bpf_attr__bindgen_ty_15 {
     pub link_fd: __u32,
     pub __bindgen_anon_1: bpf_attr__bindgen_ty_15__bindgen_ty_1,
@@ -751,61 +878,67 @@ pub struct bpf_attr__bindgen_ty_19 {
     pub map_fd: __u32,
     pub flags: __u32,
 }
-pub const BPF_F_RECOMPUTE_CSUM: _bindgen_ty_4 = 1;
-pub const BPF_F_INVALIDATE_HASH: _bindgen_ty_4 = 2;
-pub type _bindgen_ty_4 = ::core::ffi::c_uint;
-pub const BPF_F_HDR_FIELD_MASK: _bindgen_ty_5 = 15;
-pub type _bindgen_ty_5 = ::core::ffi::c_uint;
-pub const BPF_F_PSEUDO_HDR: _bindgen_ty_6 = 16;
-pub const BPF_F_MARK_MANGLED_0: _bindgen_ty_6 = 32;
-pub const BPF_F_MARK_ENFORCE: _bindgen_ty_6 = 64;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_20 {
+    pub flags: __u32,
+    pub bpffs_fd: __u32,
+}
+pub const BPF_F_RECOMPUTE_CSUM: _bindgen_ty_6 = 1;
+pub const BPF_F_INVALIDATE_HASH: _bindgen_ty_6 = 2;
 pub type _bindgen_ty_6 = ::core::ffi::c_uint;
-pub const BPF_F_INGRESS: _bindgen_ty_7 = 1;
+pub const BPF_F_HDR_FIELD_MASK: _bindgen_ty_7 = 15;
 pub type _bindgen_ty_7 = ::core::ffi::c_uint;
-pub const BPF_F_TUNINFO_IPV6: _bindgen_ty_8 = 1;
+pub const BPF_F_PSEUDO_HDR: _bindgen_ty_8 = 16;
+pub const BPF_F_MARK_MANGLED_0: _bindgen_ty_8 = 32;
+pub const BPF_F_MARK_ENFORCE: _bindgen_ty_8 = 64;
 pub type _bindgen_ty_8 = ::core::ffi::c_uint;
-pub const BPF_F_SKIP_FIELD_MASK: _bindgen_ty_9 = 255;
-pub const BPF_F_USER_STACK: _bindgen_ty_9 = 256;
-pub const BPF_F_FAST_STACK_CMP: _bindgen_ty_9 = 512;
-pub const BPF_F_REUSE_STACKID: _bindgen_ty_9 = 1024;
-pub const BPF_F_USER_BUILD_ID: _bindgen_ty_9 = 2048;
+pub const BPF_F_INGRESS: _bindgen_ty_9 = 1;
 pub type _bindgen_ty_9 = ::core::ffi::c_uint;
-pub const BPF_F_ZERO_CSUM_TX: _bindgen_ty_10 = 2;
-pub const BPF_F_DONT_FRAGMENT: _bindgen_ty_10 = 4;
-pub const BPF_F_SEQ_NUMBER: _bindgen_ty_10 = 8;
-pub const BPF_F_NO_TUNNEL_KEY: _bindgen_ty_10 = 16;
+pub const BPF_F_TUNINFO_IPV6: _bindgen_ty_10 = 1;
 pub type _bindgen_ty_10 = ::core::ffi::c_uint;
-pub const BPF_F_TUNINFO_FLAGS: _bindgen_ty_11 = 16;
+pub const BPF_F_SKIP_FIELD_MASK: _bindgen_ty_11 = 255;
+pub const BPF_F_USER_STACK: _bindgen_ty_11 = 256;
+pub const BPF_F_FAST_STACK_CMP: _bindgen_ty_11 = 512;
+pub const BPF_F_REUSE_STACKID: _bindgen_ty_11 = 1024;
+pub const BPF_F_USER_BUILD_ID: _bindgen_ty_11 = 2048;
 pub type _bindgen_ty_11 = ::core::ffi::c_uint;
-pub const BPF_F_INDEX_MASK: _bindgen_ty_12 = 4294967295;
-pub const BPF_F_CURRENT_CPU: _bindgen_ty_12 = 4294967295;
-pub const BPF_F_CTXLEN_MASK: _bindgen_ty_12 = 4503595332403200;
-pub type _bindgen_ty_12 = ::core::ffi::c_ulong;
-pub const BPF_F_CURRENT_NETNS: _bindgen_ty_13 = -1;
-pub type _bindgen_ty_13 = ::core::ffi::c_int;
-pub const BPF_F_ADJ_ROOM_FIXED_GSO: _bindgen_ty_15 = 1;
-pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: _bindgen_ty_15 = 2;
-pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: _bindgen_ty_15 = 4;
-pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: _bindgen_ty_15 = 8;
-pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: _bindgen_ty_15 = 16;
-pub const BPF_F_ADJ_ROOM_NO_CSUM_RESET: _bindgen_ty_15 = 32;
-pub const BPF_F_ADJ_ROOM_ENCAP_L2_ETH: _bindgen_ty_15 = 64;
-pub const BPF_F_ADJ_ROOM_DECAP_L3_IPV4: _bindgen_ty_15 = 128;
-pub const BPF_F_ADJ_ROOM_DECAP_L3_IPV6: _bindgen_ty_15 = 256;
-pub type _bindgen_ty_15 = ::core::ffi::c_uint;
-pub const BPF_F_SYSCTL_BASE_NAME: _bindgen_ty_17 = 1;
+pub const BPF_F_ZERO_CSUM_TX: _bindgen_ty_12 = 2;
+pub const BPF_F_DONT_FRAGMENT: _bindgen_ty_12 = 4;
+pub const BPF_F_SEQ_NUMBER: _bindgen_ty_12 = 8;
+pub const BPF_F_NO_TUNNEL_KEY: _bindgen_ty_12 = 16;
+pub type _bindgen_ty_12 = ::core::ffi::c_uint;
+pub const BPF_F_TUNINFO_FLAGS: _bindgen_ty_13 = 16;
+pub type _bindgen_ty_13 = ::core::ffi::c_uint;
+pub const BPF_F_INDEX_MASK: _bindgen_ty_14 = 4294967295;
+pub const BPF_F_CURRENT_CPU: _bindgen_ty_14 = 4294967295;
+pub const BPF_F_CTXLEN_MASK: _bindgen_ty_14 = 4503595332403200;
+pub type _bindgen_ty_14 = ::core::ffi::c_ulong;
+pub const BPF_F_CURRENT_NETNS: _bindgen_ty_15 = -1;
+pub type _bindgen_ty_15 = ::core::ffi::c_int;
+pub const BPF_F_ADJ_ROOM_FIXED_GSO: _bindgen_ty_17 = 1;
+pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: _bindgen_ty_17 = 2;
+pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: _bindgen_ty_17 = 4;
+pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: _bindgen_ty_17 = 8;
+pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: _bindgen_ty_17 = 16;
+pub const BPF_F_ADJ_ROOM_NO_CSUM_RESET: _bindgen_ty_17 = 32;
+pub const BPF_F_ADJ_ROOM_ENCAP_L2_ETH: _bindgen_ty_17 = 64;
+pub const BPF_F_ADJ_ROOM_DECAP_L3_IPV4: _bindgen_ty_17 = 128;
+pub const BPF_F_ADJ_ROOM_DECAP_L3_IPV6: _bindgen_ty_17 = 256;
 pub type _bindgen_ty_17 = ::core::ffi::c_uint;
-pub const BPF_F_GET_BRANCH_RECORDS_SIZE: _bindgen_ty_19 = 1;
+pub const BPF_F_SYSCTL_BASE_NAME: _bindgen_ty_19 = 1;
 pub type _bindgen_ty_19 = ::core::ffi::c_uint;
-pub const BPF_RINGBUF_BUSY_BIT: _bindgen_ty_22 = 2147483648;
-pub const BPF_RINGBUF_DISCARD_BIT: _bindgen_ty_22 = 1073741824;
-pub const BPF_RINGBUF_HDR_SZ: _bindgen_ty_22 = 8;
-pub type _bindgen_ty_22 = ::core::ffi::c_uint;
-pub const BPF_F_BPRM_SECUREEXEC: _bindgen_ty_24 = 1;
+pub const BPF_F_GET_BRANCH_RECORDS_SIZE: _bindgen_ty_21 = 1;
+pub type _bindgen_ty_21 = ::core::ffi::c_uint;
+pub const BPF_RINGBUF_BUSY_BIT: _bindgen_ty_24 = 2147483648;
+pub const BPF_RINGBUF_DISCARD_BIT: _bindgen_ty_24 = 1073741824;
+pub const BPF_RINGBUF_HDR_SZ: _bindgen_ty_24 = 8;
 pub type _bindgen_ty_24 = ::core::ffi::c_uint;
-pub const BPF_F_BROADCAST: _bindgen_ty_25 = 8;
-pub const BPF_F_EXCLUDE_INGRESS: _bindgen_ty_25 = 16;
-pub type _bindgen_ty_25 = ::core::ffi::c_uint;
+pub const BPF_F_BPRM_SECUREEXEC: _bindgen_ty_26 = 1;
+pub type _bindgen_ty_26 = ::core::ffi::c_uint;
+pub const BPF_F_BROADCAST: _bindgen_ty_27 = 8;
+pub const BPF_F_EXCLUDE_INGRESS: _bindgen_ty_27 = 16;
+pub type _bindgen_ty_27 = ::core::ffi::c_uint;
 #[repr(C)]
 #[derive(Copy, Clone)]
 pub struct bpf_devmap_val {
@@ -912,17 +1045,9 @@ pub struct bpf_map_info {
     pub btf_id: __u32,
     pub btf_key_type_id: __u32,
     pub btf_value_type_id: __u32,
-    pub _bitfield_align_1: [u8; 0],
-    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+    pub btf_vmlinux_id: __u32,
     pub map_extra: __u64,
 }
-impl bpf_map_info {
-    #[inline]
-    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
-        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
-        __bindgen_bitfield_unit
-    }
-}
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct bpf_btf_info {
@@ -952,6 +1077,11 @@ pub union bpf_link_info__bindgen_ty_1 {
     pub xdp: bpf_link_info__bindgen_ty_1__bindgen_ty_6,
     pub struct_ops: bpf_link_info__bindgen_ty_1__bindgen_ty_7,
     pub netfilter: bpf_link_info__bindgen_ty_1__bindgen_ty_8,
+    pub kprobe_multi: bpf_link_info__bindgen_ty_1__bindgen_ty_9,
+    pub uprobe_multi: bpf_link_info__bindgen_ty_1__bindgen_ty_10,
+    pub perf_event: bpf_link_info__bindgen_ty_1__bindgen_ty_11,
+    pub tcx: bpf_link_info__bindgen_ty_1__bindgen_ty_12,
+    pub netkit: bpf_link_info__bindgen_ty_1__bindgen_ty_13,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -1034,6 +1164,112 @@ pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_8 {
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_9 {
+    pub addrs: __u64,
+    pub count: __u32,
+    pub flags: __u32,
+    pub missed: __u64,
+    pub cookies: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_10 {
+    pub path: __u64,
+    pub offsets: __u64,
+    pub ref_ctr_offsets: __u64,
+    pub cookies: __u64,
+    pub path_size: __u32,
+    pub count: __u32,
+    pub flags: __u32,
+    pub pid: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11 {
+    pub type_: __u32,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+    pub __bindgen_anon_1: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1 {
+    pub uprobe: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_1,
+    pub kprobe: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_2,
+    pub tracepoint: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_3,
+    pub event: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_4,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_1 {
+    pub file_name: __u64,
+    pub name_len: __u32,
+    pub offset: __u32,
+    pub cookie: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_2 {
+    pub func_name: __u64,
+    pub name_len: __u32,
+    pub offset: __u32,
+    pub addr: __u64,
+    pub missed: __u64,
+    pub cookie: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_3 {
+    pub tp_name: __u64,
+    pub name_len: __u32,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+    pub cookie: __u64,
+}
+impl bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_3 {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_4 {
+    pub config: __u64,
+    pub type_: __u32,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+    pub cookie: __u64,
+}
+impl bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_4 {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+impl bpf_link_info__bindgen_ty_1__bindgen_ty_11 {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_12 {
+    pub ifindex: __u32,
+    pub attach_type: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_13 {
+    pub ifindex: __u32,
+    pub attach_type: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
 pub struct bpf_func_info {
     pub insn_off: __u32,
     pub type_id: __u32,
@@ -1046,8 +1282,9 @@ pub struct bpf_line_info {
     pub line_off: __u32,
     pub line_col: __u32,
 }
-pub const BPF_F_TIMER_ABS: _bindgen_ty_39 = 1;
-pub type _bindgen_ty_39 = ::core::ffi::c_uint;
+pub const BPF_F_TIMER_ABS: _bindgen_ty_41 = 1;
+pub const BPF_F_TIMER_CPU_PIN: _bindgen_ty_41 = 2;
+pub type _bindgen_ty_41 = ::core::ffi::c_uint;
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct btf_header {
@@ -1073,29 +1310,29 @@ pub union btf_type__bindgen_ty_1 {
     pub size: __u32,
     pub type_: __u32,
 }
-pub const BTF_KIND_UNKN: _bindgen_ty_40 = 0;
-pub const BTF_KIND_INT: _bindgen_ty_40 = 1;
-pub const BTF_KIND_PTR: _bindgen_ty_40 = 2;
-pub const BTF_KIND_ARRAY: _bindgen_ty_40 = 3;
-pub const BTF_KIND_STRUCT: _bindgen_ty_40 = 4;
-pub const BTF_KIND_UNION: _bindgen_ty_40 = 5;
-pub const BTF_KIND_ENUM: _bindgen_ty_40 = 6;
-pub const BTF_KIND_FWD: _bindgen_ty_40 = 7;
-pub const BTF_KIND_TYPEDEF: _bindgen_ty_40 = 8;
-pub const BTF_KIND_VOLATILE: _bindgen_ty_40 = 9;
-pub const BTF_KIND_CONST: _bindgen_ty_40 = 10;
-pub const BTF_KIND_RESTRICT: _bindgen_ty_40 = 11;
-pub const BTF_KIND_FUNC: _bindgen_ty_40 = 12;
-pub const BTF_KIND_FUNC_PROTO: _bindgen_ty_40 = 13;
-pub const BTF_KIND_VAR: _bindgen_ty_40 = 14;
-pub const BTF_KIND_DATASEC: _bindgen_ty_40 = 15;
-pub const BTF_KIND_FLOAT: _bindgen_ty_40 = 16;
-pub const BTF_KIND_DECL_TAG: _bindgen_ty_40 = 17;
-pub const BTF_KIND_TYPE_TAG: _bindgen_ty_40 = 18;
-pub const BTF_KIND_ENUM64: _bindgen_ty_40 = 19;
-pub const NR_BTF_KINDS: _bindgen_ty_40 = 20;
-pub const BTF_KIND_MAX: _bindgen_ty_40 = 19;
-pub type _bindgen_ty_40 = ::core::ffi::c_uint;
+pub const BTF_KIND_UNKN: _bindgen_ty_42 = 0;
+pub const BTF_KIND_INT: _bindgen_ty_42 = 1;
+pub const BTF_KIND_PTR: _bindgen_ty_42 = 2;
+pub const BTF_KIND_ARRAY: _bindgen_ty_42 = 3;
+pub const BTF_KIND_STRUCT: _bindgen_ty_42 = 4;
+pub const BTF_KIND_UNION: _bindgen_ty_42 = 5;
+pub const BTF_KIND_ENUM: _bindgen_ty_42 = 6;
+pub const BTF_KIND_FWD: _bindgen_ty_42 = 7;
+pub const BTF_KIND_TYPEDEF: _bindgen_ty_42 = 8;
+pub const BTF_KIND_VOLATILE: _bindgen_ty_42 = 9;
+pub const BTF_KIND_CONST: _bindgen_ty_42 = 10;
+pub const BTF_KIND_RESTRICT: _bindgen_ty_42 = 11;
+pub const BTF_KIND_FUNC: _bindgen_ty_42 = 12;
+pub const BTF_KIND_FUNC_PROTO: _bindgen_ty_42 = 13;
+pub const BTF_KIND_VAR: _bindgen_ty_42 = 14;
+pub const BTF_KIND_DATASEC: _bindgen_ty_42 = 15;
+pub const BTF_KIND_FLOAT: _bindgen_ty_42 = 16;
+pub const BTF_KIND_DECL_TAG: _bindgen_ty_42 = 17;
+pub const BTF_KIND_TYPE_TAG: _bindgen_ty_42 = 18;
+pub const BTF_KIND_ENUM64: _bindgen_ty_42 = 19;
+pub const NR_BTF_KINDS: _bindgen_ty_42 = 20;
+pub const BTF_KIND_MAX: _bindgen_ty_42 = 19;
+pub type _bindgen_ty_42 = ::core::ffi::c_uint;
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct btf_enum {
@@ -1122,10 +1359,10 @@ pub struct btf_param {
     pub name_off: __u32,
     pub type_: __u32,
 }
-pub const BTF_VAR_STATIC: _bindgen_ty_41 = 0;
-pub const BTF_VAR_GLOBAL_ALLOCATED: _bindgen_ty_41 = 1;
-pub const BTF_VAR_GLOBAL_EXTERN: _bindgen_ty_41 = 2;
-pub type _bindgen_ty_41 = ::core::ffi::c_uint;
+pub const BTF_VAR_STATIC: _bindgen_ty_43 = 0;
+pub const BTF_VAR_GLOBAL_ALLOCATED: _bindgen_ty_43 = 1;
+pub const BTF_VAR_GLOBAL_EXTERN: _bindgen_ty_43 = 2;
+pub type _bindgen_ty_43 = ::core::ffi::c_uint;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
 pub enum btf_func_linkage {
@@ -1150,6 +1387,17 @@ pub struct btf_var_secinfo {
 pub struct btf_decl_tag {
     pub component_idx: __s32,
 }
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_92 = 0;
+pub const IFLA_XDP_FD: _bindgen_ty_92 = 1;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_92 = 2;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_92 = 3;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_92 = 4;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_92 = 5;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_92 = 6;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_92 = 7;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_92 = 8;
+pub const __IFLA_XDP_MAX: _bindgen_ty_92 = 9;
+pub type _bindgen_ty_92 = ::core::ffi::c_uint;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
 pub enum perf_type_id {
@@ -1961,7 +2209,6 @@ pub union perf_event_mmap_page__bindgen_ty_1 {
     pub __bindgen_anon_1: perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1,
 }
 #[repr(C)]
-#[repr(align(8))]
 #[derive(Debug, Copy, Clone)]
 pub struct perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1 {
     pub _bitfield_align_1: [u64; 0],
@@ -2121,17 +2368,20 @@ pub enum perf_event_type {
     PERF_RECORD_AUX_OUTPUT_HW_ID = 21,
     PERF_RECORD_MAX = 22,
 }
-pub const IFLA_XDP_UNSPEC: _bindgen_ty_90 = 0;
-pub const IFLA_XDP_FD: _bindgen_ty_90 = 1;
-pub const IFLA_XDP_ATTACHED: _bindgen_ty_90 = 2;
-pub const IFLA_XDP_FLAGS: _bindgen_ty_90 = 3;
-pub const IFLA_XDP_PROG_ID: _bindgen_ty_90 = 4;
-pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_90 = 5;
-pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_90 = 6;
-pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_90 = 7;
-pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_90 = 8;
-pub const __IFLA_XDP_MAX: _bindgen_ty_90 = 9;
-pub type _bindgen_ty_90 = ::core::ffi::c_uint;
+pub const TCA_BPF_UNSPEC: _bindgen_ty_152 = 0;
+pub const TCA_BPF_ACT: _bindgen_ty_152 = 1;
+pub const TCA_BPF_POLICE: _bindgen_ty_152 = 2;
+pub const TCA_BPF_CLASSID: _bindgen_ty_152 = 3;
+pub const TCA_BPF_OPS_LEN: _bindgen_ty_152 = 4;
+pub const TCA_BPF_OPS: _bindgen_ty_152 = 5;
+pub const TCA_BPF_FD: _bindgen_ty_152 = 6;
+pub const TCA_BPF_NAME: _bindgen_ty_152 = 7;
+pub const TCA_BPF_FLAGS: _bindgen_ty_152 = 8;
+pub const TCA_BPF_FLAGS_GEN: _bindgen_ty_152 = 9;
+pub const TCA_BPF_TAG: _bindgen_ty_152 = 10;
+pub const TCA_BPF_ID: _bindgen_ty_152 = 11;
+pub const __TCA_BPF_MAX: _bindgen_ty_152 = 12;
+pub type _bindgen_ty_152 = ::core::ffi::c_uint;
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct ifinfomsg {
@@ -2153,37 +2403,24 @@ pub struct tcmsg {
     pub tcm_parent: __u32,
     pub tcm_info: __u32,
 }
-pub const TCA_UNSPEC: _bindgen_ty_103 = 0;
-pub const TCA_KIND: _bindgen_ty_103 = 1;
-pub const TCA_OPTIONS: _bindgen_ty_103 = 2;
-pub const TCA_STATS: _bindgen_ty_103 = 3;
-pub const TCA_XSTATS: _bindgen_ty_103 = 4;
-pub const TCA_RATE: _bindgen_ty_103 = 5;
-pub const TCA_FCNT: _bindgen_ty_103 = 6;
-pub const TCA_STATS2: _bindgen_ty_103 = 7;
-pub const TCA_STAB: _bindgen_ty_103 = 8;
-pub const TCA_PAD: _bindgen_ty_103 = 9;
-pub const TCA_DUMP_INVISIBLE: _bindgen_ty_103 = 10;
-pub const TCA_CHAIN: _bindgen_ty_103 = 11;
-pub const TCA_HW_OFFLOAD: _bindgen_ty_103 = 12;
-pub const TCA_INGRESS_BLOCK: _bindgen_ty_103 = 13;
-pub const TCA_EGRESS_BLOCK: _bindgen_ty_103 = 14;
-pub const __TCA_MAX: _bindgen_ty_103 = 15;
-pub type _bindgen_ty_103 = ::core::ffi::c_uint;
-pub const TCA_BPF_UNSPEC: _bindgen_ty_159 = 0;
-pub const TCA_BPF_ACT: _bindgen_ty_159 = 1;
-pub const TCA_BPF_POLICE: _bindgen_ty_159 = 2;
-pub const TCA_BPF_CLASSID: _bindgen_ty_159 = 3;
-pub const TCA_BPF_OPS_LEN: _bindgen_ty_159 = 4;
-pub const TCA_BPF_OPS: _bindgen_ty_159 = 5;
-pub const TCA_BPF_FD: _bindgen_ty_159 = 6;
-pub const TCA_BPF_NAME: _bindgen_ty_159 = 7;
-pub const TCA_BPF_FLAGS: _bindgen_ty_159 = 8;
-pub const TCA_BPF_FLAGS_GEN: _bindgen_ty_159 = 9;
-pub const TCA_BPF_TAG: _bindgen_ty_159 = 10;
-pub const TCA_BPF_ID: _bindgen_ty_159 = 11;
-pub const __TCA_BPF_MAX: _bindgen_ty_159 = 12;
-pub type _bindgen_ty_159 = ::core::ffi::c_uint;
+pub const TCA_UNSPEC: _bindgen_ty_172 = 0;
+pub const TCA_KIND: _bindgen_ty_172 = 1;
+pub const TCA_OPTIONS: _bindgen_ty_172 = 2;
+pub const TCA_STATS: _bindgen_ty_172 = 3;
+pub const TCA_XSTATS: _bindgen_ty_172 = 4;
+pub const TCA_RATE: _bindgen_ty_172 = 5;
+pub const TCA_FCNT: _bindgen_ty_172 = 6;
+pub const TCA_STATS2: _bindgen_ty_172 = 7;
+pub const TCA_STAB: _bindgen_ty_172 = 8;
+pub const TCA_PAD: _bindgen_ty_172 = 9;
+pub const TCA_DUMP_INVISIBLE: _bindgen_ty_172 = 10;
+pub const TCA_CHAIN: _bindgen_ty_172 = 11;
+pub const TCA_HW_OFFLOAD: _bindgen_ty_172 = 12;
+pub const TCA_INGRESS_BLOCK: _bindgen_ty_172 = 13;
+pub const TCA_EGRESS_BLOCK: _bindgen_ty_172 = 14;
+pub const TCA_DUMP_FLAGS: _bindgen_ty_172 = 15;
+pub const __TCA_MAX: _bindgen_ty_172 = 16;
+pub type _bindgen_ty_172 = ::core::ffi::c_uint;
 pub const AYA_PERF_EVENT_IOC_ENABLE: ::core::ffi::c_int = 9216;
 pub const AYA_PERF_EVENT_IOC_DISABLE: ::core::ffi::c_int = 9217;
 pub const AYA_PERF_EVENT_IOC_SET_BPF: ::core::ffi::c_int = 1074013192;

+ 401 - 164
aya-obj/src/generated/linux_bindings_x86_64.rs

@@ -1,4 +1,4 @@
-/* automatically generated by rust-bindgen 0.65.1 */
+/* automatically generated by rust-bindgen 0.69.4 */
 
 #[repr(C)]
 #[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
@@ -110,6 +110,8 @@ impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
         fmt.write_str("__IncompleteArrayField")
     }
 }
+pub const SO_ATTACH_BPF: u32 = 50;
+pub const SO_DETACH_BPF: u32 = 27;
 pub const BPF_LD: u32 = 0;
 pub const BPF_LDX: u32 = 1;
 pub const BPF_ST: u32 = 2;
@@ -126,6 +128,9 @@ pub const BPF_CALL: u32 = 128;
 pub const BPF_F_ALLOW_OVERRIDE: u32 = 1;
 pub const BPF_F_ALLOW_MULTI: u32 = 2;
 pub const BPF_F_REPLACE: u32 = 4;
+pub const BPF_F_BEFORE: u32 = 8;
+pub const BPF_F_AFTER: u32 = 16;
+pub const BPF_F_ID: u32 = 32;
 pub const BPF_F_STRICT_ALIGNMENT: u32 = 1;
 pub const BPF_F_ANY_ALIGNMENT: u32 = 2;
 pub const BPF_F_TEST_RND_HI32: u32 = 4;
@@ -133,7 +138,8 @@ 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_XDP_DEV_BOUND_ONLY: u32 = 64;
-pub const BPF_F_KPROBE_MULTI_RETURN: u32 = 1;
+pub const BPF_F_TEST_REG_INVARIANTS: u32 = 128;
+pub const BPF_F_NETFILTER_IP_DEFRAG: 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;
@@ -148,12 +154,6 @@ 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;
-pub const PERF_MAX_STACK_DEPTH: u32 = 127;
-pub const PERF_MAX_CONTEXTS_PER_STACK: u32 = 8;
-pub const PERF_FLAG_FD_NO_GROUP: u32 = 1;
-pub const PERF_FLAG_FD_OUTPUT: u32 = 2;
-pub const PERF_FLAG_PID_CGROUP: u32 = 4;
-pub const PERF_FLAG_FD_CLOEXEC: u32 = 8;
 pub const NLMSG_ALIGNTO: u32 = 4;
 pub const XDP_FLAGS_UPDATE_IF_NOEXIST: u32 = 1;
 pub const XDP_FLAGS_SKB_MODE: u32 = 2;
@@ -162,8 +162,12 @@ pub const XDP_FLAGS_HW_MODE: u32 = 8;
 pub const XDP_FLAGS_REPLACE: u32 = 16;
 pub const XDP_FLAGS_MODES: u32 = 14;
 pub const XDP_FLAGS_MASK: u32 = 31;
-pub const SO_ATTACH_BPF: u32 = 50;
-pub const SO_DETACH_BPF: u32 = 27;
+pub const PERF_MAX_STACK_DEPTH: u32 = 127;
+pub const PERF_MAX_CONTEXTS_PER_STACK: u32 = 8;
+pub const PERF_FLAG_FD_NO_GROUP: u32 = 1;
+pub const PERF_FLAG_FD_OUTPUT: u32 = 2;
+pub const PERF_FLAG_PID_CGROUP: u32 = 4;
+pub const PERF_FLAG_FD_CLOEXEC: u32 = 8;
 pub const TC_H_MAJ_MASK: u32 = 4294901760;
 pub const TC_H_MIN_MASK: u32 = 65535;
 pub const TC_H_UNSPEC: u32 = 0;
@@ -275,11 +279,17 @@ pub enum bpf_cmd {
     BPF_ITER_CREATE = 33,
     BPF_LINK_DETACH = 34,
     BPF_PROG_BIND_MAP = 35,
+    BPF_TOKEN_CREATE = 36,
+    __MAX_BPF_CMD = 37,
 }
 impl bpf_map_type {
     pub const BPF_MAP_TYPE_CGROUP_STORAGE: bpf_map_type =
         bpf_map_type::BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED;
 }
+impl bpf_map_type {
+    pub const BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE: bpf_map_type =
+        bpf_map_type::BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED;
+}
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
 pub enum bpf_map_type {
@@ -304,7 +314,7 @@ pub enum bpf_map_type {
     BPF_MAP_TYPE_SOCKHASH = 18,
     BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED = 19,
     BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 20,
-    BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 21,
+    BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED = 21,
     BPF_MAP_TYPE_QUEUE = 22,
     BPF_MAP_TYPE_STACK = 23,
     BPF_MAP_TYPE_SK_STORAGE = 24,
@@ -316,6 +326,8 @@ pub enum bpf_map_type {
     BPF_MAP_TYPE_BLOOM_FILTER = 30,
     BPF_MAP_TYPE_USER_RINGBUF = 31,
     BPF_MAP_TYPE_CGRP_STORAGE = 32,
+    BPF_MAP_TYPE_ARENA = 33,
+    __MAX_BPF_MAP_TYPE = 34,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
@@ -353,6 +365,7 @@ pub enum bpf_prog_type {
     BPF_PROG_TYPE_SK_LOOKUP = 30,
     BPF_PROG_TYPE_SYSCALL = 31,
     BPF_PROG_TYPE_NETFILTER = 32,
+    __MAX_BPF_PROG_TYPE = 33,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
@@ -402,7 +415,18 @@ pub enum bpf_attach_type {
     BPF_TRACE_KPROBE_MULTI = 42,
     BPF_LSM_CGROUP = 43,
     BPF_STRUCT_OPS = 44,
-    __MAX_BPF_ATTACH_TYPE = 45,
+    BPF_NETFILTER = 45,
+    BPF_TCX_INGRESS = 46,
+    BPF_TCX_EGRESS = 47,
+    BPF_TRACE_UPROBE_MULTI = 48,
+    BPF_CGROUP_UNIX_CONNECT = 49,
+    BPF_CGROUP_UNIX_SENDMSG = 50,
+    BPF_CGROUP_UNIX_RECVMSG = 51,
+    BPF_CGROUP_UNIX_GETPEERNAME = 52,
+    BPF_CGROUP_UNIX_GETSOCKNAME = 53,
+    BPF_NETKIT_PRIMARY = 54,
+    BPF_NETKIT_PEER = 55,
+    __MAX_BPF_ATTACH_TYPE = 56,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
@@ -418,29 +442,40 @@ pub enum bpf_link_type {
     BPF_LINK_TYPE_KPROBE_MULTI = 8,
     BPF_LINK_TYPE_STRUCT_OPS = 9,
     BPF_LINK_TYPE_NETFILTER = 10,
-    MAX_BPF_LINK_TYPE = 11,
+    BPF_LINK_TYPE_TCX = 11,
+    BPF_LINK_TYPE_UPROBE_MULTI = 12,
+    BPF_LINK_TYPE_NETKIT = 13,
+    __MAX_BPF_LINK_TYPE = 14,
 }
-pub const BPF_ANY: _bindgen_ty_2 = 0;
-pub const BPF_NOEXIST: _bindgen_ty_2 = 1;
-pub const BPF_EXIST: _bindgen_ty_2 = 2;
-pub const BPF_F_LOCK: _bindgen_ty_2 = 4;
+pub const BPF_F_KPROBE_MULTI_RETURN: _bindgen_ty_2 = 1;
 pub type _bindgen_ty_2 = ::core::ffi::c_uint;
-pub const BPF_F_NO_PREALLOC: _bindgen_ty_3 = 1;
-pub const BPF_F_NO_COMMON_LRU: _bindgen_ty_3 = 2;
-pub const BPF_F_NUMA_NODE: _bindgen_ty_3 = 4;
-pub const BPF_F_RDONLY: _bindgen_ty_3 = 8;
-pub const BPF_F_WRONLY: _bindgen_ty_3 = 16;
-pub const BPF_F_STACK_BUILD_ID: _bindgen_ty_3 = 32;
-pub const BPF_F_ZERO_SEED: _bindgen_ty_3 = 64;
-pub const BPF_F_RDONLY_PROG: _bindgen_ty_3 = 128;
-pub const BPF_F_WRONLY_PROG: _bindgen_ty_3 = 256;
-pub const BPF_F_CLONE: _bindgen_ty_3 = 512;
-pub const BPF_F_MMAPABLE: _bindgen_ty_3 = 1024;
-pub const BPF_F_PRESERVE_ELEMS: _bindgen_ty_3 = 2048;
-pub const BPF_F_INNER_MAP: _bindgen_ty_3 = 4096;
-pub const BPF_F_LINK: _bindgen_ty_3 = 8192;
-pub const BPF_F_PATH_FD: _bindgen_ty_3 = 16384;
+pub const BPF_F_UPROBE_MULTI_RETURN: _bindgen_ty_3 = 1;
 pub type _bindgen_ty_3 = ::core::ffi::c_uint;
+pub const BPF_ANY: _bindgen_ty_4 = 0;
+pub const BPF_NOEXIST: _bindgen_ty_4 = 1;
+pub const BPF_EXIST: _bindgen_ty_4 = 2;
+pub const BPF_F_LOCK: _bindgen_ty_4 = 4;
+pub type _bindgen_ty_4 = ::core::ffi::c_uint;
+pub const BPF_F_NO_PREALLOC: _bindgen_ty_5 = 1;
+pub const BPF_F_NO_COMMON_LRU: _bindgen_ty_5 = 2;
+pub const BPF_F_NUMA_NODE: _bindgen_ty_5 = 4;
+pub const BPF_F_RDONLY: _bindgen_ty_5 = 8;
+pub const BPF_F_WRONLY: _bindgen_ty_5 = 16;
+pub const BPF_F_STACK_BUILD_ID: _bindgen_ty_5 = 32;
+pub const BPF_F_ZERO_SEED: _bindgen_ty_5 = 64;
+pub const BPF_F_RDONLY_PROG: _bindgen_ty_5 = 128;
+pub const BPF_F_WRONLY_PROG: _bindgen_ty_5 = 256;
+pub const BPF_F_CLONE: _bindgen_ty_5 = 512;
+pub const BPF_F_MMAPABLE: _bindgen_ty_5 = 1024;
+pub const BPF_F_PRESERVE_ELEMS: _bindgen_ty_5 = 2048;
+pub const BPF_F_INNER_MAP: _bindgen_ty_5 = 4096;
+pub const BPF_F_LINK: _bindgen_ty_5 = 8192;
+pub const BPF_F_PATH_FD: _bindgen_ty_5 = 16384;
+pub const BPF_F_VTYPE_BTF_OBJ_FD: _bindgen_ty_5 = 32768;
+pub const BPF_F_TOKEN_FD: _bindgen_ty_5 = 65536;
+pub const BPF_F_SEGV_ON_FAULT: _bindgen_ty_5 = 131072;
+pub const BPF_F_NO_USER_CONV: _bindgen_ty_5 = 262144;
+pub type _bindgen_ty_5 = ::core::ffi::c_uint;
 #[repr(C)]
 #[derive(Copy, Clone)]
 pub union bpf_attr {
@@ -463,6 +498,7 @@ pub union bpf_attr {
     pub enable_stats: bpf_attr__bindgen_ty_17,
     pub iter_create: bpf_attr__bindgen_ty_18,
     pub prog_bind_map: bpf_attr__bindgen_ty_19,
+    pub token_create: bpf_attr__bindgen_ty_20,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -481,6 +517,8 @@ pub struct bpf_attr__bindgen_ty_1 {
     pub btf_value_type_id: __u32,
     pub btf_vmlinux_value_type_id: __u32,
     pub map_extra: __u64,
+    pub value_type_btf_obj_fd: __s32,
+    pub map_token_fd: __s32,
 }
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -537,6 +575,7 @@ pub struct bpf_attr__bindgen_ty_4 {
     pub core_relos: __u64,
     pub core_relo_rec_size: __u32,
     pub log_true_size: __u32,
+    pub prog_token_fd: __s32,
 }
 #[repr(C)]
 #[derive(Copy, Clone)]
@@ -553,13 +592,27 @@ pub struct bpf_attr__bindgen_ty_5 {
     pub path_fd: __s32,
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_attr__bindgen_ty_6 {
-    pub target_fd: __u32,
+    pub __bindgen_anon_1: bpf_attr__bindgen_ty_6__bindgen_ty_1,
     pub attach_bpf_fd: __u32,
     pub attach_type: __u32,
     pub attach_flags: __u32,
     pub replace_bpf_fd: __u32,
+    pub __bindgen_anon_2: bpf_attr__bindgen_ty_6__bindgen_ty_2,
+    pub expected_revision: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_6__bindgen_ty_1 {
+    pub target_fd: __u32,
+    pub target_ifindex: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_6__bindgen_ty_2 {
+    pub relative_fd: __u32,
+    pub relative_id: __u32,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -604,21 +657,55 @@ pub struct bpf_attr__bindgen_ty_9 {
     pub info: __u64,
 }
 #[repr(C)]
-#[derive(Debug, Copy, Clone)]
+#[derive(Copy, Clone)]
 pub struct bpf_attr__bindgen_ty_10 {
-    pub target_fd: __u32,
+    pub __bindgen_anon_1: bpf_attr__bindgen_ty_10__bindgen_ty_1,
     pub attach_type: __u32,
     pub query_flags: __u32,
     pub attach_flags: __u32,
     pub prog_ids: __u64,
-    pub prog_cnt: __u32,
+    pub __bindgen_anon_2: bpf_attr__bindgen_ty_10__bindgen_ty_2,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
     pub prog_attach_flags: __u64,
+    pub link_ids: __u64,
+    pub link_attach_flags: __u64,
+    pub revision: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_10__bindgen_ty_1 {
+    pub target_fd: __u32,
+    pub target_ifindex: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_10__bindgen_ty_2 {
+    pub prog_cnt: __u32,
+    pub count: __u32,
+}
+impl bpf_attr__bindgen_ty_10 {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct bpf_attr__bindgen_ty_11 {
     pub name: __u64,
     pub prog_fd: __u32,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+    pub cookie: __u64,
+}
+impl bpf_attr__bindgen_ty_11 {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -629,6 +716,8 @@ pub struct bpf_attr__bindgen_ty_12 {
     pub btf_log_size: __u32,
     pub btf_log_level: __u32,
     pub btf_log_true_size: __u32,
+    pub btf_flags: __u32,
+    pub btf_token_fd: __s32,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -673,6 +762,9 @@ pub union bpf_attr__bindgen_ty_14__bindgen_ty_3 {
     pub kprobe_multi: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_3,
     pub tracing: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_4,
     pub netfilter: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_5,
+    pub tcx: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6,
+    pub uprobe_multi: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_7,
+    pub netkit: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -710,6 +802,41 @@ pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_5 {
 }
 #[repr(C)]
 #[derive(Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6 {
+    pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6__bindgen_ty_1,
+    pub expected_revision: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6__bindgen_ty_1 {
+    pub relative_fd: __u32,
+    pub relative_id: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_7 {
+    pub path: __u64,
+    pub offsets: __u64,
+    pub ref_ctr_offsets: __u64,
+    pub cookies: __u64,
+    pub cnt: __u32,
+    pub flags: __u32,
+    pub pid: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8 {
+    pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8__bindgen_ty_1,
+    pub expected_revision: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8__bindgen_ty_1 {
+    pub relative_fd: __u32,
+    pub relative_id: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
 pub struct bpf_attr__bindgen_ty_15 {
     pub link_fd: __u32,
     pub __bindgen_anon_1: bpf_attr__bindgen_ty_15__bindgen_ty_1,
@@ -751,61 +878,67 @@ pub struct bpf_attr__bindgen_ty_19 {
     pub map_fd: __u32,
     pub flags: __u32,
 }
-pub const BPF_F_RECOMPUTE_CSUM: _bindgen_ty_4 = 1;
-pub const BPF_F_INVALIDATE_HASH: _bindgen_ty_4 = 2;
-pub type _bindgen_ty_4 = ::core::ffi::c_uint;
-pub const BPF_F_HDR_FIELD_MASK: _bindgen_ty_5 = 15;
-pub type _bindgen_ty_5 = ::core::ffi::c_uint;
-pub const BPF_F_PSEUDO_HDR: _bindgen_ty_6 = 16;
-pub const BPF_F_MARK_MANGLED_0: _bindgen_ty_6 = 32;
-pub const BPF_F_MARK_ENFORCE: _bindgen_ty_6 = 64;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_20 {
+    pub flags: __u32,
+    pub bpffs_fd: __u32,
+}
+pub const BPF_F_RECOMPUTE_CSUM: _bindgen_ty_6 = 1;
+pub const BPF_F_INVALIDATE_HASH: _bindgen_ty_6 = 2;
 pub type _bindgen_ty_6 = ::core::ffi::c_uint;
-pub const BPF_F_INGRESS: _bindgen_ty_7 = 1;
+pub const BPF_F_HDR_FIELD_MASK: _bindgen_ty_7 = 15;
 pub type _bindgen_ty_7 = ::core::ffi::c_uint;
-pub const BPF_F_TUNINFO_IPV6: _bindgen_ty_8 = 1;
+pub const BPF_F_PSEUDO_HDR: _bindgen_ty_8 = 16;
+pub const BPF_F_MARK_MANGLED_0: _bindgen_ty_8 = 32;
+pub const BPF_F_MARK_ENFORCE: _bindgen_ty_8 = 64;
 pub type _bindgen_ty_8 = ::core::ffi::c_uint;
-pub const BPF_F_SKIP_FIELD_MASK: _bindgen_ty_9 = 255;
-pub const BPF_F_USER_STACK: _bindgen_ty_9 = 256;
-pub const BPF_F_FAST_STACK_CMP: _bindgen_ty_9 = 512;
-pub const BPF_F_REUSE_STACKID: _bindgen_ty_9 = 1024;
-pub const BPF_F_USER_BUILD_ID: _bindgen_ty_9 = 2048;
+pub const BPF_F_INGRESS: _bindgen_ty_9 = 1;
 pub type _bindgen_ty_9 = ::core::ffi::c_uint;
-pub const BPF_F_ZERO_CSUM_TX: _bindgen_ty_10 = 2;
-pub const BPF_F_DONT_FRAGMENT: _bindgen_ty_10 = 4;
-pub const BPF_F_SEQ_NUMBER: _bindgen_ty_10 = 8;
-pub const BPF_F_NO_TUNNEL_KEY: _bindgen_ty_10 = 16;
+pub const BPF_F_TUNINFO_IPV6: _bindgen_ty_10 = 1;
 pub type _bindgen_ty_10 = ::core::ffi::c_uint;
-pub const BPF_F_TUNINFO_FLAGS: _bindgen_ty_11 = 16;
+pub const BPF_F_SKIP_FIELD_MASK: _bindgen_ty_11 = 255;
+pub const BPF_F_USER_STACK: _bindgen_ty_11 = 256;
+pub const BPF_F_FAST_STACK_CMP: _bindgen_ty_11 = 512;
+pub const BPF_F_REUSE_STACKID: _bindgen_ty_11 = 1024;
+pub const BPF_F_USER_BUILD_ID: _bindgen_ty_11 = 2048;
 pub type _bindgen_ty_11 = ::core::ffi::c_uint;
-pub const BPF_F_INDEX_MASK: _bindgen_ty_12 = 4294967295;
-pub const BPF_F_CURRENT_CPU: _bindgen_ty_12 = 4294967295;
-pub const BPF_F_CTXLEN_MASK: _bindgen_ty_12 = 4503595332403200;
-pub type _bindgen_ty_12 = ::core::ffi::c_ulong;
-pub const BPF_F_CURRENT_NETNS: _bindgen_ty_13 = -1;
-pub type _bindgen_ty_13 = ::core::ffi::c_int;
-pub const BPF_F_ADJ_ROOM_FIXED_GSO: _bindgen_ty_15 = 1;
-pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: _bindgen_ty_15 = 2;
-pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: _bindgen_ty_15 = 4;
-pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: _bindgen_ty_15 = 8;
-pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: _bindgen_ty_15 = 16;
-pub const BPF_F_ADJ_ROOM_NO_CSUM_RESET: _bindgen_ty_15 = 32;
-pub const BPF_F_ADJ_ROOM_ENCAP_L2_ETH: _bindgen_ty_15 = 64;
-pub const BPF_F_ADJ_ROOM_DECAP_L3_IPV4: _bindgen_ty_15 = 128;
-pub const BPF_F_ADJ_ROOM_DECAP_L3_IPV6: _bindgen_ty_15 = 256;
-pub type _bindgen_ty_15 = ::core::ffi::c_uint;
-pub const BPF_F_SYSCTL_BASE_NAME: _bindgen_ty_17 = 1;
+pub const BPF_F_ZERO_CSUM_TX: _bindgen_ty_12 = 2;
+pub const BPF_F_DONT_FRAGMENT: _bindgen_ty_12 = 4;
+pub const BPF_F_SEQ_NUMBER: _bindgen_ty_12 = 8;
+pub const BPF_F_NO_TUNNEL_KEY: _bindgen_ty_12 = 16;
+pub type _bindgen_ty_12 = ::core::ffi::c_uint;
+pub const BPF_F_TUNINFO_FLAGS: _bindgen_ty_13 = 16;
+pub type _bindgen_ty_13 = ::core::ffi::c_uint;
+pub const BPF_F_INDEX_MASK: _bindgen_ty_14 = 4294967295;
+pub const BPF_F_CURRENT_CPU: _bindgen_ty_14 = 4294967295;
+pub const BPF_F_CTXLEN_MASK: _bindgen_ty_14 = 4503595332403200;
+pub type _bindgen_ty_14 = ::core::ffi::c_ulong;
+pub const BPF_F_CURRENT_NETNS: _bindgen_ty_15 = -1;
+pub type _bindgen_ty_15 = ::core::ffi::c_int;
+pub const BPF_F_ADJ_ROOM_FIXED_GSO: _bindgen_ty_17 = 1;
+pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: _bindgen_ty_17 = 2;
+pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: _bindgen_ty_17 = 4;
+pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: _bindgen_ty_17 = 8;
+pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: _bindgen_ty_17 = 16;
+pub const BPF_F_ADJ_ROOM_NO_CSUM_RESET: _bindgen_ty_17 = 32;
+pub const BPF_F_ADJ_ROOM_ENCAP_L2_ETH: _bindgen_ty_17 = 64;
+pub const BPF_F_ADJ_ROOM_DECAP_L3_IPV4: _bindgen_ty_17 = 128;
+pub const BPF_F_ADJ_ROOM_DECAP_L3_IPV6: _bindgen_ty_17 = 256;
 pub type _bindgen_ty_17 = ::core::ffi::c_uint;
-pub const BPF_F_GET_BRANCH_RECORDS_SIZE: _bindgen_ty_19 = 1;
+pub const BPF_F_SYSCTL_BASE_NAME: _bindgen_ty_19 = 1;
 pub type _bindgen_ty_19 = ::core::ffi::c_uint;
-pub const BPF_RINGBUF_BUSY_BIT: _bindgen_ty_22 = 2147483648;
-pub const BPF_RINGBUF_DISCARD_BIT: _bindgen_ty_22 = 1073741824;
-pub const BPF_RINGBUF_HDR_SZ: _bindgen_ty_22 = 8;
-pub type _bindgen_ty_22 = ::core::ffi::c_uint;
-pub const BPF_F_BPRM_SECUREEXEC: _bindgen_ty_24 = 1;
+pub const BPF_F_GET_BRANCH_RECORDS_SIZE: _bindgen_ty_21 = 1;
+pub type _bindgen_ty_21 = ::core::ffi::c_uint;
+pub const BPF_RINGBUF_BUSY_BIT: _bindgen_ty_24 = 2147483648;
+pub const BPF_RINGBUF_DISCARD_BIT: _bindgen_ty_24 = 1073741824;
+pub const BPF_RINGBUF_HDR_SZ: _bindgen_ty_24 = 8;
 pub type _bindgen_ty_24 = ::core::ffi::c_uint;
-pub const BPF_F_BROADCAST: _bindgen_ty_25 = 8;
-pub const BPF_F_EXCLUDE_INGRESS: _bindgen_ty_25 = 16;
-pub type _bindgen_ty_25 = ::core::ffi::c_uint;
+pub const BPF_F_BPRM_SECUREEXEC: _bindgen_ty_26 = 1;
+pub type _bindgen_ty_26 = ::core::ffi::c_uint;
+pub const BPF_F_BROADCAST: _bindgen_ty_27 = 8;
+pub const BPF_F_EXCLUDE_INGRESS: _bindgen_ty_27 = 16;
+pub type _bindgen_ty_27 = ::core::ffi::c_uint;
 #[repr(C)]
 #[derive(Copy, Clone)]
 pub struct bpf_devmap_val {
@@ -912,17 +1045,9 @@ pub struct bpf_map_info {
     pub btf_id: __u32,
     pub btf_key_type_id: __u32,
     pub btf_value_type_id: __u32,
-    pub _bitfield_align_1: [u8; 0],
-    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+    pub btf_vmlinux_id: __u32,
     pub map_extra: __u64,
 }
-impl bpf_map_info {
-    #[inline]
-    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
-        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
-        __bindgen_bitfield_unit
-    }
-}
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct bpf_btf_info {
@@ -952,6 +1077,11 @@ pub union bpf_link_info__bindgen_ty_1 {
     pub xdp: bpf_link_info__bindgen_ty_1__bindgen_ty_6,
     pub struct_ops: bpf_link_info__bindgen_ty_1__bindgen_ty_7,
     pub netfilter: bpf_link_info__bindgen_ty_1__bindgen_ty_8,
+    pub kprobe_multi: bpf_link_info__bindgen_ty_1__bindgen_ty_9,
+    pub uprobe_multi: bpf_link_info__bindgen_ty_1__bindgen_ty_10,
+    pub perf_event: bpf_link_info__bindgen_ty_1__bindgen_ty_11,
+    pub tcx: bpf_link_info__bindgen_ty_1__bindgen_ty_12,
+    pub netkit: bpf_link_info__bindgen_ty_1__bindgen_ty_13,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
@@ -1034,6 +1164,112 @@ pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_8 {
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_9 {
+    pub addrs: __u64,
+    pub count: __u32,
+    pub flags: __u32,
+    pub missed: __u64,
+    pub cookies: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_10 {
+    pub path: __u64,
+    pub offsets: __u64,
+    pub ref_ctr_offsets: __u64,
+    pub cookies: __u64,
+    pub path_size: __u32,
+    pub count: __u32,
+    pub flags: __u32,
+    pub pid: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11 {
+    pub type_: __u32,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+    pub __bindgen_anon_1: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1 {
+    pub uprobe: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_1,
+    pub kprobe: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_2,
+    pub tracepoint: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_3,
+    pub event: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_4,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_1 {
+    pub file_name: __u64,
+    pub name_len: __u32,
+    pub offset: __u32,
+    pub cookie: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_2 {
+    pub func_name: __u64,
+    pub name_len: __u32,
+    pub offset: __u32,
+    pub addr: __u64,
+    pub missed: __u64,
+    pub cookie: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_3 {
+    pub tp_name: __u64,
+    pub name_len: __u32,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+    pub cookie: __u64,
+}
+impl bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_3 {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_4 {
+    pub config: __u64,
+    pub type_: __u32,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+    pub cookie: __u64,
+}
+impl bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_4 {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+impl bpf_link_info__bindgen_ty_1__bindgen_ty_11 {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_12 {
+    pub ifindex: __u32,
+    pub attach_type: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_13 {
+    pub ifindex: __u32,
+    pub attach_type: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
 pub struct bpf_func_info {
     pub insn_off: __u32,
     pub type_id: __u32,
@@ -1046,8 +1282,9 @@ pub struct bpf_line_info {
     pub line_off: __u32,
     pub line_col: __u32,
 }
-pub const BPF_F_TIMER_ABS: _bindgen_ty_39 = 1;
-pub type _bindgen_ty_39 = ::core::ffi::c_uint;
+pub const BPF_F_TIMER_ABS: _bindgen_ty_41 = 1;
+pub const BPF_F_TIMER_CPU_PIN: _bindgen_ty_41 = 2;
+pub type _bindgen_ty_41 = ::core::ffi::c_uint;
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct btf_header {
@@ -1073,29 +1310,29 @@ pub union btf_type__bindgen_ty_1 {
     pub size: __u32,
     pub type_: __u32,
 }
-pub const BTF_KIND_UNKN: _bindgen_ty_40 = 0;
-pub const BTF_KIND_INT: _bindgen_ty_40 = 1;
-pub const BTF_KIND_PTR: _bindgen_ty_40 = 2;
-pub const BTF_KIND_ARRAY: _bindgen_ty_40 = 3;
-pub const BTF_KIND_STRUCT: _bindgen_ty_40 = 4;
-pub const BTF_KIND_UNION: _bindgen_ty_40 = 5;
-pub const BTF_KIND_ENUM: _bindgen_ty_40 = 6;
-pub const BTF_KIND_FWD: _bindgen_ty_40 = 7;
-pub const BTF_KIND_TYPEDEF: _bindgen_ty_40 = 8;
-pub const BTF_KIND_VOLATILE: _bindgen_ty_40 = 9;
-pub const BTF_KIND_CONST: _bindgen_ty_40 = 10;
-pub const BTF_KIND_RESTRICT: _bindgen_ty_40 = 11;
-pub const BTF_KIND_FUNC: _bindgen_ty_40 = 12;
-pub const BTF_KIND_FUNC_PROTO: _bindgen_ty_40 = 13;
-pub const BTF_KIND_VAR: _bindgen_ty_40 = 14;
-pub const BTF_KIND_DATASEC: _bindgen_ty_40 = 15;
-pub const BTF_KIND_FLOAT: _bindgen_ty_40 = 16;
-pub const BTF_KIND_DECL_TAG: _bindgen_ty_40 = 17;
-pub const BTF_KIND_TYPE_TAG: _bindgen_ty_40 = 18;
-pub const BTF_KIND_ENUM64: _bindgen_ty_40 = 19;
-pub const NR_BTF_KINDS: _bindgen_ty_40 = 20;
-pub const BTF_KIND_MAX: _bindgen_ty_40 = 19;
-pub type _bindgen_ty_40 = ::core::ffi::c_uint;
+pub const BTF_KIND_UNKN: _bindgen_ty_42 = 0;
+pub const BTF_KIND_INT: _bindgen_ty_42 = 1;
+pub const BTF_KIND_PTR: _bindgen_ty_42 = 2;
+pub const BTF_KIND_ARRAY: _bindgen_ty_42 = 3;
+pub const BTF_KIND_STRUCT: _bindgen_ty_42 = 4;
+pub const BTF_KIND_UNION: _bindgen_ty_42 = 5;
+pub const BTF_KIND_ENUM: _bindgen_ty_42 = 6;
+pub const BTF_KIND_FWD: _bindgen_ty_42 = 7;
+pub const BTF_KIND_TYPEDEF: _bindgen_ty_42 = 8;
+pub const BTF_KIND_VOLATILE: _bindgen_ty_42 = 9;
+pub const BTF_KIND_CONST: _bindgen_ty_42 = 10;
+pub const BTF_KIND_RESTRICT: _bindgen_ty_42 = 11;
+pub const BTF_KIND_FUNC: _bindgen_ty_42 = 12;
+pub const BTF_KIND_FUNC_PROTO: _bindgen_ty_42 = 13;
+pub const BTF_KIND_VAR: _bindgen_ty_42 = 14;
+pub const BTF_KIND_DATASEC: _bindgen_ty_42 = 15;
+pub const BTF_KIND_FLOAT: _bindgen_ty_42 = 16;
+pub const BTF_KIND_DECL_TAG: _bindgen_ty_42 = 17;
+pub const BTF_KIND_TYPE_TAG: _bindgen_ty_42 = 18;
+pub const BTF_KIND_ENUM64: _bindgen_ty_42 = 19;
+pub const NR_BTF_KINDS: _bindgen_ty_42 = 20;
+pub const BTF_KIND_MAX: _bindgen_ty_42 = 19;
+pub type _bindgen_ty_42 = ::core::ffi::c_uint;
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct btf_enum {
@@ -1122,10 +1359,10 @@ pub struct btf_param {
     pub name_off: __u32,
     pub type_: __u32,
 }
-pub const BTF_VAR_STATIC: _bindgen_ty_41 = 0;
-pub const BTF_VAR_GLOBAL_ALLOCATED: _bindgen_ty_41 = 1;
-pub const BTF_VAR_GLOBAL_EXTERN: _bindgen_ty_41 = 2;
-pub type _bindgen_ty_41 = ::core::ffi::c_uint;
+pub const BTF_VAR_STATIC: _bindgen_ty_43 = 0;
+pub const BTF_VAR_GLOBAL_ALLOCATED: _bindgen_ty_43 = 1;
+pub const BTF_VAR_GLOBAL_EXTERN: _bindgen_ty_43 = 2;
+pub type _bindgen_ty_43 = ::core::ffi::c_uint;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
 pub enum btf_func_linkage {
@@ -1150,6 +1387,17 @@ pub struct btf_var_secinfo {
 pub struct btf_decl_tag {
     pub component_idx: __s32,
 }
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_92 = 0;
+pub const IFLA_XDP_FD: _bindgen_ty_92 = 1;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_92 = 2;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_92 = 3;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_92 = 4;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_92 = 5;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_92 = 6;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_92 = 7;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_92 = 8;
+pub const __IFLA_XDP_MAX: _bindgen_ty_92 = 9;
+pub type _bindgen_ty_92 = ::core::ffi::c_uint;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
 pub enum perf_type_id {
@@ -1961,7 +2209,6 @@ pub union perf_event_mmap_page__bindgen_ty_1 {
     pub __bindgen_anon_1: perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1,
 }
 #[repr(C)]
-#[repr(align(8))]
 #[derive(Debug, Copy, Clone)]
 pub struct perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1 {
     pub _bitfield_align_1: [u64; 0],
@@ -2121,17 +2368,20 @@ pub enum perf_event_type {
     PERF_RECORD_AUX_OUTPUT_HW_ID = 21,
     PERF_RECORD_MAX = 22,
 }
-pub const IFLA_XDP_UNSPEC: _bindgen_ty_90 = 0;
-pub const IFLA_XDP_FD: _bindgen_ty_90 = 1;
-pub const IFLA_XDP_ATTACHED: _bindgen_ty_90 = 2;
-pub const IFLA_XDP_FLAGS: _bindgen_ty_90 = 3;
-pub const IFLA_XDP_PROG_ID: _bindgen_ty_90 = 4;
-pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_90 = 5;
-pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_90 = 6;
-pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_90 = 7;
-pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_90 = 8;
-pub const __IFLA_XDP_MAX: _bindgen_ty_90 = 9;
-pub type _bindgen_ty_90 = ::core::ffi::c_uint;
+pub const TCA_BPF_UNSPEC: _bindgen_ty_152 = 0;
+pub const TCA_BPF_ACT: _bindgen_ty_152 = 1;
+pub const TCA_BPF_POLICE: _bindgen_ty_152 = 2;
+pub const TCA_BPF_CLASSID: _bindgen_ty_152 = 3;
+pub const TCA_BPF_OPS_LEN: _bindgen_ty_152 = 4;
+pub const TCA_BPF_OPS: _bindgen_ty_152 = 5;
+pub const TCA_BPF_FD: _bindgen_ty_152 = 6;
+pub const TCA_BPF_NAME: _bindgen_ty_152 = 7;
+pub const TCA_BPF_FLAGS: _bindgen_ty_152 = 8;
+pub const TCA_BPF_FLAGS_GEN: _bindgen_ty_152 = 9;
+pub const TCA_BPF_TAG: _bindgen_ty_152 = 10;
+pub const TCA_BPF_ID: _bindgen_ty_152 = 11;
+pub const __TCA_BPF_MAX: _bindgen_ty_152 = 12;
+pub type _bindgen_ty_152 = ::core::ffi::c_uint;
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct ifinfomsg {
@@ -2153,37 +2403,24 @@ pub struct tcmsg {
     pub tcm_parent: __u32,
     pub tcm_info: __u32,
 }
-pub const TCA_UNSPEC: _bindgen_ty_103 = 0;
-pub const TCA_KIND: _bindgen_ty_103 = 1;
-pub const TCA_OPTIONS: _bindgen_ty_103 = 2;
-pub const TCA_STATS: _bindgen_ty_103 = 3;
-pub const TCA_XSTATS: _bindgen_ty_103 = 4;
-pub const TCA_RATE: _bindgen_ty_103 = 5;
-pub const TCA_FCNT: _bindgen_ty_103 = 6;
-pub const TCA_STATS2: _bindgen_ty_103 = 7;
-pub const TCA_STAB: _bindgen_ty_103 = 8;
-pub const TCA_PAD: _bindgen_ty_103 = 9;
-pub const TCA_DUMP_INVISIBLE: _bindgen_ty_103 = 10;
-pub const TCA_CHAIN: _bindgen_ty_103 = 11;
-pub const TCA_HW_OFFLOAD: _bindgen_ty_103 = 12;
-pub const TCA_INGRESS_BLOCK: _bindgen_ty_103 = 13;
-pub const TCA_EGRESS_BLOCK: _bindgen_ty_103 = 14;
-pub const __TCA_MAX: _bindgen_ty_103 = 15;
-pub type _bindgen_ty_103 = ::core::ffi::c_uint;
-pub const TCA_BPF_UNSPEC: _bindgen_ty_159 = 0;
-pub const TCA_BPF_ACT: _bindgen_ty_159 = 1;
-pub const TCA_BPF_POLICE: _bindgen_ty_159 = 2;
-pub const TCA_BPF_CLASSID: _bindgen_ty_159 = 3;
-pub const TCA_BPF_OPS_LEN: _bindgen_ty_159 = 4;
-pub const TCA_BPF_OPS: _bindgen_ty_159 = 5;
-pub const TCA_BPF_FD: _bindgen_ty_159 = 6;
-pub const TCA_BPF_NAME: _bindgen_ty_159 = 7;
-pub const TCA_BPF_FLAGS: _bindgen_ty_159 = 8;
-pub const TCA_BPF_FLAGS_GEN: _bindgen_ty_159 = 9;
-pub const TCA_BPF_TAG: _bindgen_ty_159 = 10;
-pub const TCA_BPF_ID: _bindgen_ty_159 = 11;
-pub const __TCA_BPF_MAX: _bindgen_ty_159 = 12;
-pub type _bindgen_ty_159 = ::core::ffi::c_uint;
+pub const TCA_UNSPEC: _bindgen_ty_172 = 0;
+pub const TCA_KIND: _bindgen_ty_172 = 1;
+pub const TCA_OPTIONS: _bindgen_ty_172 = 2;
+pub const TCA_STATS: _bindgen_ty_172 = 3;
+pub const TCA_XSTATS: _bindgen_ty_172 = 4;
+pub const TCA_RATE: _bindgen_ty_172 = 5;
+pub const TCA_FCNT: _bindgen_ty_172 = 6;
+pub const TCA_STATS2: _bindgen_ty_172 = 7;
+pub const TCA_STAB: _bindgen_ty_172 = 8;
+pub const TCA_PAD: _bindgen_ty_172 = 9;
+pub const TCA_DUMP_INVISIBLE: _bindgen_ty_172 = 10;
+pub const TCA_CHAIN: _bindgen_ty_172 = 11;
+pub const TCA_HW_OFFLOAD: _bindgen_ty_172 = 12;
+pub const TCA_INGRESS_BLOCK: _bindgen_ty_172 = 13;
+pub const TCA_EGRESS_BLOCK: _bindgen_ty_172 = 14;
+pub const TCA_DUMP_FLAGS: _bindgen_ty_172 = 15;
+pub const __TCA_MAX: _bindgen_ty_172 = 16;
+pub type _bindgen_ty_172 = ::core::ffi::c_uint;
 pub const AYA_PERF_EVENT_IOC_ENABLE: ::core::ffi::c_int = 9216;
 pub const AYA_PERF_EVENT_IOC_DISABLE: ::core::ffi::c_int = 9217;
 pub const AYA_PERF_EVENT_IOC_SET_BPF: ::core::ffi::c_int = 1074013192;

+ 2 - 2
aya-obj/src/maps.rs

@@ -44,8 +44,8 @@ impl TryFrom<u32> for crate::generated::bpf_map_type {
             }
             x if x == BPF_MAP_TYPE_CGRP_STORAGE as u32 => BPF_MAP_TYPE_CGRP_STORAGE,
             x if x == BPF_MAP_TYPE_REUSEPORT_SOCKARRAY as u32 => BPF_MAP_TYPE_REUSEPORT_SOCKARRAY,
-            x if x == BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE as u32 => {
-                BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE
+            x if x == BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED as u32 => {
+                BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED
             }
             x if x == BPF_MAP_TYPE_QUEUE as u32 => BPF_MAP_TYPE_QUEUE,
             x if x == BPF_MAP_TYPE_STACK as u32 => BPF_MAP_TYPE_STACK,

+ 5 - 5
aya/src/sys/bpf.rs

@@ -435,7 +435,7 @@ pub(crate) fn bpf_prog_attach(
     let mut attr = unsafe { mem::zeroed::<bpf_attr>() };
 
     attr.__bindgen_anon_5.attach_bpf_fd = prog_fd.as_raw_fd() as u32;
-    attr.__bindgen_anon_5.target_fd = target_fd.as_raw_fd() as u32;
+    attr.__bindgen_anon_5.__bindgen_anon_1.target_fd = target_fd.as_raw_fd() as u32;
     attr.__bindgen_anon_5.attach_type = attach_type as u32;
 
     let ret = sys_bpf(bpf_cmd::BPF_PROG_ATTACH, &mut attr).map_err(|(code, io_error)| {
@@ -457,7 +457,7 @@ pub(crate) fn bpf_prog_detach(
     let mut attr = unsafe { mem::zeroed::<bpf_attr>() };
 
     attr.__bindgen_anon_5.attach_bpf_fd = prog_fd.as_raw_fd() as u32;
-    attr.__bindgen_anon_5.target_fd = target_fd.as_raw_fd() as u32;
+    attr.__bindgen_anon_5.__bindgen_anon_1.target_fd = target_fd.as_raw_fd() as u32;
     attr.__bindgen_anon_5.attach_type = attach_type as u32;
 
     let ret = sys_bpf(bpf_cmd::BPF_PROG_DETACH, &mut attr).map_err(|(code, io_error)| {
@@ -481,15 +481,15 @@ pub(crate) fn bpf_prog_query(
 ) -> SysResult<c_long> {
     let mut attr = unsafe { mem::zeroed::<bpf_attr>() };
 
-    attr.query.target_fd = target_fd as u32;
+    attr.query.__bindgen_anon_1.target_fd = target_fd as u32;
     attr.query.attach_type = attach_type as u32;
     attr.query.query_flags = query_flags;
-    attr.query.prog_cnt = prog_ids.len() as u32;
+    attr.query.__bindgen_anon_2.prog_cnt = prog_ids.len() as u32;
     attr.query.prog_ids = prog_ids.as_mut_ptr() as u64;
 
     let ret = sys_bpf(bpf_cmd::BPF_PROG_QUERY, &mut attr);
 
-    *prog_cnt = unsafe { attr.query.prog_cnt };
+    *prog_cnt = unsafe { attr.query.__bindgen_anon_2.prog_cnt };
 
     if let Some(attach_flags) = attach_flags {
         *attach_flags = unsafe { attr.query.attach_flags };

File diff suppressed because it is too large
+ 564 - 176
ebpf/aya-ebpf-bindings/src/aarch64/bindings.rs


File diff suppressed because it is too large
+ 559 - 176
ebpf/aya-ebpf-bindings/src/armv7/bindings.rs


File diff suppressed because it is too large
+ 564 - 176
ebpf/aya-ebpf-bindings/src/riscv64/bindings.rs


File diff suppressed because it is too large
+ 559 - 176
ebpf/aya-ebpf-bindings/src/x86_64/bindings.rs


+ 1 - 1
xtask/libbpf

@@ -1 +1 @@
-Subproject commit a2258003f21d9d52afd48aa64787b65ef80bd355
+Subproject commit 20ea95b4505c477af3b6ff6ce9d19cee868ddc5d

Some files were not shown because too many files changed in this diff