From ad446b9cbe61a73e68c1359c152306d06970e6dd Mon Sep 17 00:00:00 2001 From: Dave Tucker Date: Mon, 6 Dec 2021 18:16:54 +0000 Subject: [PATCH] codegen: regenerate against libbpf v0.6.0 This commit regenerates the bindings against libbpf v0.6.0 Signed-off-by: Dave Tucker --- aya/src/generated/linux_bindings_aarch64.rs | 219 +++++++++++++++---- aya/src/generated/linux_bindings_armv7.rs | 219 +++++++++++++++---- aya/src/generated/linux_bindings_x86_64.rs | 219 +++++++++++++++---- bpf/aya-bpf-bindings/src/aarch64/bindings.rs | 41 ++-- bpf/aya-bpf-bindings/src/aarch64/getters.rs | 70 +++++- bpf/aya-bpf-bindings/src/aarch64/helpers.rs | 16 ++ bpf/aya-bpf-bindings/src/armv7/bindings.rs | 26 ++- bpf/aya-bpf-bindings/src/armv7/getters.rs | 64 +++++- bpf/aya-bpf-bindings/src/armv7/helpers.rs | 16 ++ bpf/aya-bpf-bindings/src/x86_64/bindings.rs | 4 + bpf/aya-bpf-bindings/src/x86_64/helpers.rs | 16 ++ 11 files changed, 747 insertions(+), 163 deletions(-) diff --git a/aya/src/generated/linux_bindings_aarch64.rs b/aya/src/generated/linux_bindings_aarch64.rs index a86e49f8..c4680a84 100644 --- a/aya/src/generated/linux_bindings_aarch64.rs +++ b/aya/src/generated/linux_bindings_aarch64.rs @@ -717,8 +717,9 @@ pub const BTF_KIND_VAR: ::std::os::raw::c_uint = 14; pub const BTF_KIND_DATASEC: ::std::os::raw::c_uint = 15; pub const BTF_KIND_FLOAT: ::std::os::raw::c_uint = 16; pub const BTF_KIND_DECL_TAG: ::std::os::raw::c_uint = 17; -pub const NR_BTF_KINDS: ::std::os::raw::c_uint = 18; -pub const BTF_KIND_MAX: ::std::os::raw::c_uint = 17; +pub const BTF_KIND_TYPE_TAG: ::std::os::raw::c_uint = 18; +pub const NR_BTF_KINDS: ::std::os::raw::c_uint = 19; +pub const BTF_KIND_MAX: ::std::os::raw::c_uint = 18; pub type _bindgen_ty_37 = ::std::os::raw::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -825,7 +826,8 @@ pub enum perf_sw_ids { PERF_COUNT_SW_EMULATION_FAULTS = 8, PERF_COUNT_SW_DUMMY = 9, PERF_COUNT_SW_BPF_OUTPUT = 10, - PERF_COUNT_SW_MAX = 11, + PERF_COUNT_SW_CGROUP_SWITCHES = 11, + PERF_COUNT_SW_MAX = 12, } #[repr(u64)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] @@ -850,7 +852,12 @@ pub enum perf_event_sample_format { PERF_SAMPLE_TRANSACTION = 131072, PERF_SAMPLE_REGS_INTR = 262144, PERF_SAMPLE_PHYS_ADDR = 524288, - PERF_SAMPLE_MAX = 1048576, + PERF_SAMPLE_AUX = 1048576, + PERF_SAMPLE_CGROUP = 2097152, + PERF_SAMPLE_DATA_PAGE_SIZE = 4194304, + PERF_SAMPLE_CODE_PAGE_SIZE = 8388608, + PERF_SAMPLE_WEIGHT_STRUCT = 16777216, + PERF_SAMPLE_MAX = 33554432, __PERF_SAMPLE_CALLCHAIN_EARLY = 9223372036854775808, } #[repr(C)] @@ -876,6 +883,9 @@ pub struct perf_event_attr { pub aux_watermark: __u32, pub sample_max_stack: __u16, pub __reserved_2: __u16, + pub aux_sample_size: __u32, + pub __reserved_3: __u32, + pub sig_data: __u64, } #[repr(C)] #[derive(Copy, Clone)] @@ -1248,14 +1258,80 @@ impl perf_event_attr { } } #[inline] + pub fn cgroup(&self) -> __u64 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 1u8) as u64) } + } + #[inline] + pub fn set_cgroup(&mut self, val: __u64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(32usize, 1u8, val as u64) + } + } + #[inline] + pub fn text_poke(&self) -> __u64 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(33usize, 1u8) as u64) } + } + #[inline] + pub fn set_text_poke(&mut self, val: __u64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(33usize, 1u8, val as u64) + } + } + #[inline] + pub fn build_id(&self) -> __u64 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(34usize, 1u8) as u64) } + } + #[inline] + pub fn set_build_id(&mut self, val: __u64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(34usize, 1u8, val as u64) + } + } + #[inline] + pub fn inherit_thread(&self) -> __u64 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(35usize, 1u8) as u64) } + } + #[inline] + pub fn set_inherit_thread(&mut self, val: __u64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(35usize, 1u8, val as u64) + } + } + #[inline] + pub fn remove_on_exec(&self) -> __u64 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(36usize, 1u8) as u64) } + } + #[inline] + pub fn set_remove_on_exec(&mut self, val: __u64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(36usize, 1u8, val as u64) + } + } + #[inline] + pub fn sigtrap(&self) -> __u64 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(37usize, 1u8) as u64) } + } + #[inline] + pub fn set_sigtrap(&mut self, val: __u64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(37usize, 1u8, val as u64) + } + } + #[inline] pub fn __reserved_1(&self) -> __u64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 32u8) as u64) } + unsafe { ::std::mem::transmute(self._bitfield_1.get(38usize, 26u8) as u64) } } #[inline] pub fn set___reserved_1(&mut self, val: __u64) { unsafe { let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(32usize, 32u8, val as u64) + self._bitfield_1.set(38usize, 26u8, val as u64) } } #[inline] @@ -1291,6 +1367,12 @@ impl perf_event_attr { ksymbol: __u64, bpf_event: __u64, aux_output: __u64, + cgroup: __u64, + text_poke: __u64, + build_id: __u64, + inherit_thread: __u64, + remove_on_exec: __u64, + sigtrap: __u64, __reserved_1: __u64, ) -> __BindgenBitfieldUnit<[u8; 8usize]> { let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); @@ -1420,7 +1502,31 @@ impl perf_event_attr { let aux_output: u64 = unsafe { ::std::mem::transmute(aux_output) }; aux_output as u64 }); - __bindgen_bitfield_unit.set(32usize, 32u8, { + __bindgen_bitfield_unit.set(32usize, 1u8, { + let cgroup: u64 = unsafe { ::std::mem::transmute(cgroup) }; + cgroup as u64 + }); + __bindgen_bitfield_unit.set(33usize, 1u8, { + let text_poke: u64 = unsafe { ::std::mem::transmute(text_poke) }; + text_poke as u64 + }); + __bindgen_bitfield_unit.set(34usize, 1u8, { + let build_id: u64 = unsafe { ::std::mem::transmute(build_id) }; + build_id as u64 + }); + __bindgen_bitfield_unit.set(35usize, 1u8, { + let inherit_thread: u64 = unsafe { ::std::mem::transmute(inherit_thread) }; + inherit_thread as u64 + }); + __bindgen_bitfield_unit.set(36usize, 1u8, { + let remove_on_exec: u64 = unsafe { ::std::mem::transmute(remove_on_exec) }; + remove_on_exec as u64 + }); + __bindgen_bitfield_unit.set(37usize, 1u8, { + let sigtrap: u64 = unsafe { ::std::mem::transmute(sigtrap) }; + sigtrap as u64 + }); + __bindgen_bitfield_unit.set(38usize, 26u8, { let __reserved_1: u64 = unsafe { ::std::mem::transmute(__reserved_1) }; __reserved_1 as u64 }); @@ -1444,7 +1550,10 @@ pub struct perf_event_mmap_page { pub time_offset: __u64, pub time_zero: __u64, pub size: __u32, - pub __reserved: [__u8; 948usize], + pub __reserved_1: __u32, + pub time_cycles: __u64, + pub time_mask: __u64, + pub __reserved: [__u8; 928usize], pub data_head: __u64, pub data_tail: __u64, pub data_offset: __u64, @@ -1524,14 +1633,25 @@ impl perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1 { } } #[inline] + pub fn cap_user_time_short(&self) -> __u64 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u64) } + } + #[inline] + pub fn set_cap_user_time_short(&mut self, val: __u64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] pub fn cap_____res(&self) -> __u64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 59u8) as u64) } + unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 58u8) as u64) } } #[inline] pub fn set_cap_____res(&mut self, val: __u64) { unsafe { let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(5usize, 59u8, val as u64) + self._bitfield_1.set(6usize, 58u8, val as u64) } } #[inline] @@ -1541,6 +1661,7 @@ impl perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1 { cap_user_rdpmc: __u64, cap_user_time: __u64, cap_user_time_zero: __u64, + cap_user_time_short: __u64, cap_____res: __u64, ) -> __BindgenBitfieldUnit<[u8; 8usize]> { let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); @@ -1565,7 +1686,11 @@ impl perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1 { let cap_user_time_zero: u64 = unsafe { ::std::mem::transmute(cap_user_time_zero) }; cap_user_time_zero as u64 }); - __bindgen_bitfield_unit.set(5usize, 59u8, { + __bindgen_bitfield_unit.set(5usize, 1u8, { + let cap_user_time_short: u64 = unsafe { ::std::mem::transmute(cap_user_time_short) }; + cap_user_time_short as u64 + }); + __bindgen_bitfield_unit.set(6usize, 58u8, { let cap_____res: u64 = unsafe { ::std::mem::transmute(cap_____res) }; cap_____res as u64 }); @@ -1600,7 +1725,9 @@ pub enum perf_event_type { PERF_RECORD_NAMESPACES = 16, PERF_RECORD_KSYMBOL = 17, PERF_RECORD_BPF_EVENT = 18, - PERF_RECORD_MAX = 19, + PERF_RECORD_CGROUP = 19, + PERF_RECORD_TEXT_POKE = 20, + PERF_RECORD_MAX = 21, } pub const IFLA_XDP_UNSPEC: _bindgen_ty_81 = _bindgen_ty_81::IFLA_XDP_UNSPEC; pub const IFLA_XDP_FD: _bindgen_ty_81 = _bindgen_ty_81::IFLA_XDP_FD; @@ -1647,25 +1774,26 @@ pub struct tcmsg { pub tcm_parent: __u32, pub tcm_info: __u32, } -pub const TCA_UNSPEC: _bindgen_ty_93 = _bindgen_ty_93::TCA_UNSPEC; -pub const TCA_KIND: _bindgen_ty_93 = _bindgen_ty_93::TCA_KIND; -pub const TCA_OPTIONS: _bindgen_ty_93 = _bindgen_ty_93::TCA_OPTIONS; -pub const TCA_STATS: _bindgen_ty_93 = _bindgen_ty_93::TCA_STATS; -pub const TCA_XSTATS: _bindgen_ty_93 = _bindgen_ty_93::TCA_XSTATS; -pub const TCA_RATE: _bindgen_ty_93 = _bindgen_ty_93::TCA_RATE; -pub const TCA_FCNT: _bindgen_ty_93 = _bindgen_ty_93::TCA_FCNT; -pub const TCA_STATS2: _bindgen_ty_93 = _bindgen_ty_93::TCA_STATS2; -pub const TCA_STAB: _bindgen_ty_93 = _bindgen_ty_93::TCA_STAB; -pub const TCA_PAD: _bindgen_ty_93 = _bindgen_ty_93::TCA_PAD; -pub const TCA_DUMP_INVISIBLE: _bindgen_ty_93 = _bindgen_ty_93::TCA_DUMP_INVISIBLE; -pub const TCA_CHAIN: _bindgen_ty_93 = _bindgen_ty_93::TCA_CHAIN; -pub const TCA_HW_OFFLOAD: _bindgen_ty_93 = _bindgen_ty_93::TCA_HW_OFFLOAD; -pub const TCA_INGRESS_BLOCK: _bindgen_ty_93 = _bindgen_ty_93::TCA_INGRESS_BLOCK; -pub const TCA_EGRESS_BLOCK: _bindgen_ty_93 = _bindgen_ty_93::TCA_EGRESS_BLOCK; -pub const __TCA_MAX: _bindgen_ty_93 = _bindgen_ty_93::__TCA_MAX; +pub const TCA_UNSPEC: _bindgen_ty_95 = _bindgen_ty_95::TCA_UNSPEC; +pub const TCA_KIND: _bindgen_ty_95 = _bindgen_ty_95::TCA_KIND; +pub const TCA_OPTIONS: _bindgen_ty_95 = _bindgen_ty_95::TCA_OPTIONS; +pub const TCA_STATS: _bindgen_ty_95 = _bindgen_ty_95::TCA_STATS; +pub const TCA_XSTATS: _bindgen_ty_95 = _bindgen_ty_95::TCA_XSTATS; +pub const TCA_RATE: _bindgen_ty_95 = _bindgen_ty_95::TCA_RATE; +pub const TCA_FCNT: _bindgen_ty_95 = _bindgen_ty_95::TCA_FCNT; +pub const TCA_STATS2: _bindgen_ty_95 = _bindgen_ty_95::TCA_STATS2; +pub const TCA_STAB: _bindgen_ty_95 = _bindgen_ty_95::TCA_STAB; +pub const TCA_PAD: _bindgen_ty_95 = _bindgen_ty_95::TCA_PAD; +pub const TCA_DUMP_INVISIBLE: _bindgen_ty_95 = _bindgen_ty_95::TCA_DUMP_INVISIBLE; +pub const TCA_CHAIN: _bindgen_ty_95 = _bindgen_ty_95::TCA_CHAIN; +pub const TCA_HW_OFFLOAD: _bindgen_ty_95 = _bindgen_ty_95::TCA_HW_OFFLOAD; +pub const TCA_INGRESS_BLOCK: _bindgen_ty_95 = _bindgen_ty_95::TCA_INGRESS_BLOCK; +pub const TCA_EGRESS_BLOCK: _bindgen_ty_95 = _bindgen_ty_95::TCA_EGRESS_BLOCK; +pub const TCA_DUMP_FLAGS: _bindgen_ty_95 = _bindgen_ty_95::TCA_DUMP_FLAGS; +pub const __TCA_MAX: _bindgen_ty_95 = _bindgen_ty_95::__TCA_MAX; #[repr(u32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub enum _bindgen_ty_93 { +pub enum _bindgen_ty_95 { TCA_UNSPEC = 0, TCA_KIND = 1, TCA_OPTIONS = 2, @@ -1681,24 +1809,25 @@ pub enum _bindgen_ty_93 { TCA_HW_OFFLOAD = 12, TCA_INGRESS_BLOCK = 13, TCA_EGRESS_BLOCK = 14, - __TCA_MAX = 15, -} -pub const TCA_BPF_UNSPEC: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_UNSPEC; -pub const TCA_BPF_ACT: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_ACT; -pub const TCA_BPF_POLICE: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_POLICE; -pub const TCA_BPF_CLASSID: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_CLASSID; -pub const TCA_BPF_OPS_LEN: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_OPS_LEN; -pub const TCA_BPF_OPS: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_OPS; -pub const TCA_BPF_FD: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_FD; -pub const TCA_BPF_NAME: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_NAME; -pub const TCA_BPF_FLAGS: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_FLAGS; -pub const TCA_BPF_FLAGS_GEN: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_FLAGS_GEN; -pub const TCA_BPF_TAG: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_TAG; -pub const TCA_BPF_ID: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_ID; -pub const __TCA_BPF_MAX: _bindgen_ty_149 = _bindgen_ty_149::__TCA_BPF_MAX; + TCA_DUMP_FLAGS = 15, + __TCA_MAX = 16, +} +pub const TCA_BPF_UNSPEC: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_UNSPEC; +pub const TCA_BPF_ACT: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_ACT; +pub const TCA_BPF_POLICE: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_POLICE; +pub const TCA_BPF_CLASSID: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_CLASSID; +pub const TCA_BPF_OPS_LEN: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_OPS_LEN; +pub const TCA_BPF_OPS: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_OPS; +pub const TCA_BPF_FD: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_FD; +pub const TCA_BPF_NAME: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_NAME; +pub const TCA_BPF_FLAGS: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_FLAGS; +pub const TCA_BPF_FLAGS_GEN: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_FLAGS_GEN; +pub const TCA_BPF_TAG: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_TAG; +pub const TCA_BPF_ID: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_ID; +pub const __TCA_BPF_MAX: _bindgen_ty_151 = _bindgen_ty_151::__TCA_BPF_MAX; #[repr(u32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub enum _bindgen_ty_149 { +pub enum _bindgen_ty_151 { TCA_BPF_UNSPEC = 0, TCA_BPF_ACT = 1, TCA_BPF_POLICE = 2, diff --git a/aya/src/generated/linux_bindings_armv7.rs b/aya/src/generated/linux_bindings_armv7.rs index a86e49f8..c4680a84 100644 --- a/aya/src/generated/linux_bindings_armv7.rs +++ b/aya/src/generated/linux_bindings_armv7.rs @@ -717,8 +717,9 @@ pub const BTF_KIND_VAR: ::std::os::raw::c_uint = 14; pub const BTF_KIND_DATASEC: ::std::os::raw::c_uint = 15; pub const BTF_KIND_FLOAT: ::std::os::raw::c_uint = 16; pub const BTF_KIND_DECL_TAG: ::std::os::raw::c_uint = 17; -pub const NR_BTF_KINDS: ::std::os::raw::c_uint = 18; -pub const BTF_KIND_MAX: ::std::os::raw::c_uint = 17; +pub const BTF_KIND_TYPE_TAG: ::std::os::raw::c_uint = 18; +pub const NR_BTF_KINDS: ::std::os::raw::c_uint = 19; +pub const BTF_KIND_MAX: ::std::os::raw::c_uint = 18; pub type _bindgen_ty_37 = ::std::os::raw::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -825,7 +826,8 @@ pub enum perf_sw_ids { PERF_COUNT_SW_EMULATION_FAULTS = 8, PERF_COUNT_SW_DUMMY = 9, PERF_COUNT_SW_BPF_OUTPUT = 10, - PERF_COUNT_SW_MAX = 11, + PERF_COUNT_SW_CGROUP_SWITCHES = 11, + PERF_COUNT_SW_MAX = 12, } #[repr(u64)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] @@ -850,7 +852,12 @@ pub enum perf_event_sample_format { PERF_SAMPLE_TRANSACTION = 131072, PERF_SAMPLE_REGS_INTR = 262144, PERF_SAMPLE_PHYS_ADDR = 524288, - PERF_SAMPLE_MAX = 1048576, + PERF_SAMPLE_AUX = 1048576, + PERF_SAMPLE_CGROUP = 2097152, + PERF_SAMPLE_DATA_PAGE_SIZE = 4194304, + PERF_SAMPLE_CODE_PAGE_SIZE = 8388608, + PERF_SAMPLE_WEIGHT_STRUCT = 16777216, + PERF_SAMPLE_MAX = 33554432, __PERF_SAMPLE_CALLCHAIN_EARLY = 9223372036854775808, } #[repr(C)] @@ -876,6 +883,9 @@ pub struct perf_event_attr { pub aux_watermark: __u32, pub sample_max_stack: __u16, pub __reserved_2: __u16, + pub aux_sample_size: __u32, + pub __reserved_3: __u32, + pub sig_data: __u64, } #[repr(C)] #[derive(Copy, Clone)] @@ -1248,14 +1258,80 @@ impl perf_event_attr { } } #[inline] + pub fn cgroup(&self) -> __u64 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 1u8) as u64) } + } + #[inline] + pub fn set_cgroup(&mut self, val: __u64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(32usize, 1u8, val as u64) + } + } + #[inline] + pub fn text_poke(&self) -> __u64 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(33usize, 1u8) as u64) } + } + #[inline] + pub fn set_text_poke(&mut self, val: __u64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(33usize, 1u8, val as u64) + } + } + #[inline] + pub fn build_id(&self) -> __u64 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(34usize, 1u8) as u64) } + } + #[inline] + pub fn set_build_id(&mut self, val: __u64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(34usize, 1u8, val as u64) + } + } + #[inline] + pub fn inherit_thread(&self) -> __u64 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(35usize, 1u8) as u64) } + } + #[inline] + pub fn set_inherit_thread(&mut self, val: __u64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(35usize, 1u8, val as u64) + } + } + #[inline] + pub fn remove_on_exec(&self) -> __u64 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(36usize, 1u8) as u64) } + } + #[inline] + pub fn set_remove_on_exec(&mut self, val: __u64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(36usize, 1u8, val as u64) + } + } + #[inline] + pub fn sigtrap(&self) -> __u64 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(37usize, 1u8) as u64) } + } + #[inline] + pub fn set_sigtrap(&mut self, val: __u64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(37usize, 1u8, val as u64) + } + } + #[inline] pub fn __reserved_1(&self) -> __u64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 32u8) as u64) } + unsafe { ::std::mem::transmute(self._bitfield_1.get(38usize, 26u8) as u64) } } #[inline] pub fn set___reserved_1(&mut self, val: __u64) { unsafe { let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(32usize, 32u8, val as u64) + self._bitfield_1.set(38usize, 26u8, val as u64) } } #[inline] @@ -1291,6 +1367,12 @@ impl perf_event_attr { ksymbol: __u64, bpf_event: __u64, aux_output: __u64, + cgroup: __u64, + text_poke: __u64, + build_id: __u64, + inherit_thread: __u64, + remove_on_exec: __u64, + sigtrap: __u64, __reserved_1: __u64, ) -> __BindgenBitfieldUnit<[u8; 8usize]> { let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); @@ -1420,7 +1502,31 @@ impl perf_event_attr { let aux_output: u64 = unsafe { ::std::mem::transmute(aux_output) }; aux_output as u64 }); - __bindgen_bitfield_unit.set(32usize, 32u8, { + __bindgen_bitfield_unit.set(32usize, 1u8, { + let cgroup: u64 = unsafe { ::std::mem::transmute(cgroup) }; + cgroup as u64 + }); + __bindgen_bitfield_unit.set(33usize, 1u8, { + let text_poke: u64 = unsafe { ::std::mem::transmute(text_poke) }; + text_poke as u64 + }); + __bindgen_bitfield_unit.set(34usize, 1u8, { + let build_id: u64 = unsafe { ::std::mem::transmute(build_id) }; + build_id as u64 + }); + __bindgen_bitfield_unit.set(35usize, 1u8, { + let inherit_thread: u64 = unsafe { ::std::mem::transmute(inherit_thread) }; + inherit_thread as u64 + }); + __bindgen_bitfield_unit.set(36usize, 1u8, { + let remove_on_exec: u64 = unsafe { ::std::mem::transmute(remove_on_exec) }; + remove_on_exec as u64 + }); + __bindgen_bitfield_unit.set(37usize, 1u8, { + let sigtrap: u64 = unsafe { ::std::mem::transmute(sigtrap) }; + sigtrap as u64 + }); + __bindgen_bitfield_unit.set(38usize, 26u8, { let __reserved_1: u64 = unsafe { ::std::mem::transmute(__reserved_1) }; __reserved_1 as u64 }); @@ -1444,7 +1550,10 @@ pub struct perf_event_mmap_page { pub time_offset: __u64, pub time_zero: __u64, pub size: __u32, - pub __reserved: [__u8; 948usize], + pub __reserved_1: __u32, + pub time_cycles: __u64, + pub time_mask: __u64, + pub __reserved: [__u8; 928usize], pub data_head: __u64, pub data_tail: __u64, pub data_offset: __u64, @@ -1524,14 +1633,25 @@ impl perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1 { } } #[inline] + pub fn cap_user_time_short(&self) -> __u64 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u64) } + } + #[inline] + pub fn set_cap_user_time_short(&mut self, val: __u64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] pub fn cap_____res(&self) -> __u64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 59u8) as u64) } + unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 58u8) as u64) } } #[inline] pub fn set_cap_____res(&mut self, val: __u64) { unsafe { let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(5usize, 59u8, val as u64) + self._bitfield_1.set(6usize, 58u8, val as u64) } } #[inline] @@ -1541,6 +1661,7 @@ impl perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1 { cap_user_rdpmc: __u64, cap_user_time: __u64, cap_user_time_zero: __u64, + cap_user_time_short: __u64, cap_____res: __u64, ) -> __BindgenBitfieldUnit<[u8; 8usize]> { let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); @@ -1565,7 +1686,11 @@ impl perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1 { let cap_user_time_zero: u64 = unsafe { ::std::mem::transmute(cap_user_time_zero) }; cap_user_time_zero as u64 }); - __bindgen_bitfield_unit.set(5usize, 59u8, { + __bindgen_bitfield_unit.set(5usize, 1u8, { + let cap_user_time_short: u64 = unsafe { ::std::mem::transmute(cap_user_time_short) }; + cap_user_time_short as u64 + }); + __bindgen_bitfield_unit.set(6usize, 58u8, { let cap_____res: u64 = unsafe { ::std::mem::transmute(cap_____res) }; cap_____res as u64 }); @@ -1600,7 +1725,9 @@ pub enum perf_event_type { PERF_RECORD_NAMESPACES = 16, PERF_RECORD_KSYMBOL = 17, PERF_RECORD_BPF_EVENT = 18, - PERF_RECORD_MAX = 19, + PERF_RECORD_CGROUP = 19, + PERF_RECORD_TEXT_POKE = 20, + PERF_RECORD_MAX = 21, } pub const IFLA_XDP_UNSPEC: _bindgen_ty_81 = _bindgen_ty_81::IFLA_XDP_UNSPEC; pub const IFLA_XDP_FD: _bindgen_ty_81 = _bindgen_ty_81::IFLA_XDP_FD; @@ -1647,25 +1774,26 @@ pub struct tcmsg { pub tcm_parent: __u32, pub tcm_info: __u32, } -pub const TCA_UNSPEC: _bindgen_ty_93 = _bindgen_ty_93::TCA_UNSPEC; -pub const TCA_KIND: _bindgen_ty_93 = _bindgen_ty_93::TCA_KIND; -pub const TCA_OPTIONS: _bindgen_ty_93 = _bindgen_ty_93::TCA_OPTIONS; -pub const TCA_STATS: _bindgen_ty_93 = _bindgen_ty_93::TCA_STATS; -pub const TCA_XSTATS: _bindgen_ty_93 = _bindgen_ty_93::TCA_XSTATS; -pub const TCA_RATE: _bindgen_ty_93 = _bindgen_ty_93::TCA_RATE; -pub const TCA_FCNT: _bindgen_ty_93 = _bindgen_ty_93::TCA_FCNT; -pub const TCA_STATS2: _bindgen_ty_93 = _bindgen_ty_93::TCA_STATS2; -pub const TCA_STAB: _bindgen_ty_93 = _bindgen_ty_93::TCA_STAB; -pub const TCA_PAD: _bindgen_ty_93 = _bindgen_ty_93::TCA_PAD; -pub const TCA_DUMP_INVISIBLE: _bindgen_ty_93 = _bindgen_ty_93::TCA_DUMP_INVISIBLE; -pub const TCA_CHAIN: _bindgen_ty_93 = _bindgen_ty_93::TCA_CHAIN; -pub const TCA_HW_OFFLOAD: _bindgen_ty_93 = _bindgen_ty_93::TCA_HW_OFFLOAD; -pub const TCA_INGRESS_BLOCK: _bindgen_ty_93 = _bindgen_ty_93::TCA_INGRESS_BLOCK; -pub const TCA_EGRESS_BLOCK: _bindgen_ty_93 = _bindgen_ty_93::TCA_EGRESS_BLOCK; -pub const __TCA_MAX: _bindgen_ty_93 = _bindgen_ty_93::__TCA_MAX; +pub const TCA_UNSPEC: _bindgen_ty_95 = _bindgen_ty_95::TCA_UNSPEC; +pub const TCA_KIND: _bindgen_ty_95 = _bindgen_ty_95::TCA_KIND; +pub const TCA_OPTIONS: _bindgen_ty_95 = _bindgen_ty_95::TCA_OPTIONS; +pub const TCA_STATS: _bindgen_ty_95 = _bindgen_ty_95::TCA_STATS; +pub const TCA_XSTATS: _bindgen_ty_95 = _bindgen_ty_95::TCA_XSTATS; +pub const TCA_RATE: _bindgen_ty_95 = _bindgen_ty_95::TCA_RATE; +pub const TCA_FCNT: _bindgen_ty_95 = _bindgen_ty_95::TCA_FCNT; +pub const TCA_STATS2: _bindgen_ty_95 = _bindgen_ty_95::TCA_STATS2; +pub const TCA_STAB: _bindgen_ty_95 = _bindgen_ty_95::TCA_STAB; +pub const TCA_PAD: _bindgen_ty_95 = _bindgen_ty_95::TCA_PAD; +pub const TCA_DUMP_INVISIBLE: _bindgen_ty_95 = _bindgen_ty_95::TCA_DUMP_INVISIBLE; +pub const TCA_CHAIN: _bindgen_ty_95 = _bindgen_ty_95::TCA_CHAIN; +pub const TCA_HW_OFFLOAD: _bindgen_ty_95 = _bindgen_ty_95::TCA_HW_OFFLOAD; +pub const TCA_INGRESS_BLOCK: _bindgen_ty_95 = _bindgen_ty_95::TCA_INGRESS_BLOCK; +pub const TCA_EGRESS_BLOCK: _bindgen_ty_95 = _bindgen_ty_95::TCA_EGRESS_BLOCK; +pub const TCA_DUMP_FLAGS: _bindgen_ty_95 = _bindgen_ty_95::TCA_DUMP_FLAGS; +pub const __TCA_MAX: _bindgen_ty_95 = _bindgen_ty_95::__TCA_MAX; #[repr(u32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub enum _bindgen_ty_93 { +pub enum _bindgen_ty_95 { TCA_UNSPEC = 0, TCA_KIND = 1, TCA_OPTIONS = 2, @@ -1681,24 +1809,25 @@ pub enum _bindgen_ty_93 { TCA_HW_OFFLOAD = 12, TCA_INGRESS_BLOCK = 13, TCA_EGRESS_BLOCK = 14, - __TCA_MAX = 15, -} -pub const TCA_BPF_UNSPEC: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_UNSPEC; -pub const TCA_BPF_ACT: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_ACT; -pub const TCA_BPF_POLICE: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_POLICE; -pub const TCA_BPF_CLASSID: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_CLASSID; -pub const TCA_BPF_OPS_LEN: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_OPS_LEN; -pub const TCA_BPF_OPS: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_OPS; -pub const TCA_BPF_FD: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_FD; -pub const TCA_BPF_NAME: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_NAME; -pub const TCA_BPF_FLAGS: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_FLAGS; -pub const TCA_BPF_FLAGS_GEN: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_FLAGS_GEN; -pub const TCA_BPF_TAG: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_TAG; -pub const TCA_BPF_ID: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_ID; -pub const __TCA_BPF_MAX: _bindgen_ty_149 = _bindgen_ty_149::__TCA_BPF_MAX; + TCA_DUMP_FLAGS = 15, + __TCA_MAX = 16, +} +pub const TCA_BPF_UNSPEC: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_UNSPEC; +pub const TCA_BPF_ACT: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_ACT; +pub const TCA_BPF_POLICE: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_POLICE; +pub const TCA_BPF_CLASSID: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_CLASSID; +pub const TCA_BPF_OPS_LEN: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_OPS_LEN; +pub const TCA_BPF_OPS: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_OPS; +pub const TCA_BPF_FD: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_FD; +pub const TCA_BPF_NAME: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_NAME; +pub const TCA_BPF_FLAGS: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_FLAGS; +pub const TCA_BPF_FLAGS_GEN: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_FLAGS_GEN; +pub const TCA_BPF_TAG: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_TAG; +pub const TCA_BPF_ID: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_ID; +pub const __TCA_BPF_MAX: _bindgen_ty_151 = _bindgen_ty_151::__TCA_BPF_MAX; #[repr(u32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub enum _bindgen_ty_149 { +pub enum _bindgen_ty_151 { TCA_BPF_UNSPEC = 0, TCA_BPF_ACT = 1, TCA_BPF_POLICE = 2, diff --git a/aya/src/generated/linux_bindings_x86_64.rs b/aya/src/generated/linux_bindings_x86_64.rs index a86e49f8..c4680a84 100644 --- a/aya/src/generated/linux_bindings_x86_64.rs +++ b/aya/src/generated/linux_bindings_x86_64.rs @@ -717,8 +717,9 @@ pub const BTF_KIND_VAR: ::std::os::raw::c_uint = 14; pub const BTF_KIND_DATASEC: ::std::os::raw::c_uint = 15; pub const BTF_KIND_FLOAT: ::std::os::raw::c_uint = 16; pub const BTF_KIND_DECL_TAG: ::std::os::raw::c_uint = 17; -pub const NR_BTF_KINDS: ::std::os::raw::c_uint = 18; -pub const BTF_KIND_MAX: ::std::os::raw::c_uint = 17; +pub const BTF_KIND_TYPE_TAG: ::std::os::raw::c_uint = 18; +pub const NR_BTF_KINDS: ::std::os::raw::c_uint = 19; +pub const BTF_KIND_MAX: ::std::os::raw::c_uint = 18; pub type _bindgen_ty_37 = ::std::os::raw::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -825,7 +826,8 @@ pub enum perf_sw_ids { PERF_COUNT_SW_EMULATION_FAULTS = 8, PERF_COUNT_SW_DUMMY = 9, PERF_COUNT_SW_BPF_OUTPUT = 10, - PERF_COUNT_SW_MAX = 11, + PERF_COUNT_SW_CGROUP_SWITCHES = 11, + PERF_COUNT_SW_MAX = 12, } #[repr(u64)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] @@ -850,7 +852,12 @@ pub enum perf_event_sample_format { PERF_SAMPLE_TRANSACTION = 131072, PERF_SAMPLE_REGS_INTR = 262144, PERF_SAMPLE_PHYS_ADDR = 524288, - PERF_SAMPLE_MAX = 1048576, + PERF_SAMPLE_AUX = 1048576, + PERF_SAMPLE_CGROUP = 2097152, + PERF_SAMPLE_DATA_PAGE_SIZE = 4194304, + PERF_SAMPLE_CODE_PAGE_SIZE = 8388608, + PERF_SAMPLE_WEIGHT_STRUCT = 16777216, + PERF_SAMPLE_MAX = 33554432, __PERF_SAMPLE_CALLCHAIN_EARLY = 9223372036854775808, } #[repr(C)] @@ -876,6 +883,9 @@ pub struct perf_event_attr { pub aux_watermark: __u32, pub sample_max_stack: __u16, pub __reserved_2: __u16, + pub aux_sample_size: __u32, + pub __reserved_3: __u32, + pub sig_data: __u64, } #[repr(C)] #[derive(Copy, Clone)] @@ -1248,14 +1258,80 @@ impl perf_event_attr { } } #[inline] + pub fn cgroup(&self) -> __u64 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 1u8) as u64) } + } + #[inline] + pub fn set_cgroup(&mut self, val: __u64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(32usize, 1u8, val as u64) + } + } + #[inline] + pub fn text_poke(&self) -> __u64 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(33usize, 1u8) as u64) } + } + #[inline] + pub fn set_text_poke(&mut self, val: __u64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(33usize, 1u8, val as u64) + } + } + #[inline] + pub fn build_id(&self) -> __u64 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(34usize, 1u8) as u64) } + } + #[inline] + pub fn set_build_id(&mut self, val: __u64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(34usize, 1u8, val as u64) + } + } + #[inline] + pub fn inherit_thread(&self) -> __u64 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(35usize, 1u8) as u64) } + } + #[inline] + pub fn set_inherit_thread(&mut self, val: __u64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(35usize, 1u8, val as u64) + } + } + #[inline] + pub fn remove_on_exec(&self) -> __u64 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(36usize, 1u8) as u64) } + } + #[inline] + pub fn set_remove_on_exec(&mut self, val: __u64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(36usize, 1u8, val as u64) + } + } + #[inline] + pub fn sigtrap(&self) -> __u64 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(37usize, 1u8) as u64) } + } + #[inline] + pub fn set_sigtrap(&mut self, val: __u64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(37usize, 1u8, val as u64) + } + } + #[inline] pub fn __reserved_1(&self) -> __u64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 32u8) as u64) } + unsafe { ::std::mem::transmute(self._bitfield_1.get(38usize, 26u8) as u64) } } #[inline] pub fn set___reserved_1(&mut self, val: __u64) { unsafe { let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(32usize, 32u8, val as u64) + self._bitfield_1.set(38usize, 26u8, val as u64) } } #[inline] @@ -1291,6 +1367,12 @@ impl perf_event_attr { ksymbol: __u64, bpf_event: __u64, aux_output: __u64, + cgroup: __u64, + text_poke: __u64, + build_id: __u64, + inherit_thread: __u64, + remove_on_exec: __u64, + sigtrap: __u64, __reserved_1: __u64, ) -> __BindgenBitfieldUnit<[u8; 8usize]> { let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); @@ -1420,7 +1502,31 @@ impl perf_event_attr { let aux_output: u64 = unsafe { ::std::mem::transmute(aux_output) }; aux_output as u64 }); - __bindgen_bitfield_unit.set(32usize, 32u8, { + __bindgen_bitfield_unit.set(32usize, 1u8, { + let cgroup: u64 = unsafe { ::std::mem::transmute(cgroup) }; + cgroup as u64 + }); + __bindgen_bitfield_unit.set(33usize, 1u8, { + let text_poke: u64 = unsafe { ::std::mem::transmute(text_poke) }; + text_poke as u64 + }); + __bindgen_bitfield_unit.set(34usize, 1u8, { + let build_id: u64 = unsafe { ::std::mem::transmute(build_id) }; + build_id as u64 + }); + __bindgen_bitfield_unit.set(35usize, 1u8, { + let inherit_thread: u64 = unsafe { ::std::mem::transmute(inherit_thread) }; + inherit_thread as u64 + }); + __bindgen_bitfield_unit.set(36usize, 1u8, { + let remove_on_exec: u64 = unsafe { ::std::mem::transmute(remove_on_exec) }; + remove_on_exec as u64 + }); + __bindgen_bitfield_unit.set(37usize, 1u8, { + let sigtrap: u64 = unsafe { ::std::mem::transmute(sigtrap) }; + sigtrap as u64 + }); + __bindgen_bitfield_unit.set(38usize, 26u8, { let __reserved_1: u64 = unsafe { ::std::mem::transmute(__reserved_1) }; __reserved_1 as u64 }); @@ -1444,7 +1550,10 @@ pub struct perf_event_mmap_page { pub time_offset: __u64, pub time_zero: __u64, pub size: __u32, - pub __reserved: [__u8; 948usize], + pub __reserved_1: __u32, + pub time_cycles: __u64, + pub time_mask: __u64, + pub __reserved: [__u8; 928usize], pub data_head: __u64, pub data_tail: __u64, pub data_offset: __u64, @@ -1524,14 +1633,25 @@ impl perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1 { } } #[inline] + pub fn cap_user_time_short(&self) -> __u64 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u64) } + } + #[inline] + pub fn set_cap_user_time_short(&mut self, val: __u64) { + unsafe { + let val: u64 = ::std::mem::transmute(val); + self._bitfield_1.set(5usize, 1u8, val as u64) + } + } + #[inline] pub fn cap_____res(&self) -> __u64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 59u8) as u64) } + unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 58u8) as u64) } } #[inline] pub fn set_cap_____res(&mut self, val: __u64) { unsafe { let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(5usize, 59u8, val as u64) + self._bitfield_1.set(6usize, 58u8, val as u64) } } #[inline] @@ -1541,6 +1661,7 @@ impl perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1 { cap_user_rdpmc: __u64, cap_user_time: __u64, cap_user_time_zero: __u64, + cap_user_time_short: __u64, cap_____res: __u64, ) -> __BindgenBitfieldUnit<[u8; 8usize]> { let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default(); @@ -1565,7 +1686,11 @@ impl perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1 { let cap_user_time_zero: u64 = unsafe { ::std::mem::transmute(cap_user_time_zero) }; cap_user_time_zero as u64 }); - __bindgen_bitfield_unit.set(5usize, 59u8, { + __bindgen_bitfield_unit.set(5usize, 1u8, { + let cap_user_time_short: u64 = unsafe { ::std::mem::transmute(cap_user_time_short) }; + cap_user_time_short as u64 + }); + __bindgen_bitfield_unit.set(6usize, 58u8, { let cap_____res: u64 = unsafe { ::std::mem::transmute(cap_____res) }; cap_____res as u64 }); @@ -1600,7 +1725,9 @@ pub enum perf_event_type { PERF_RECORD_NAMESPACES = 16, PERF_RECORD_KSYMBOL = 17, PERF_RECORD_BPF_EVENT = 18, - PERF_RECORD_MAX = 19, + PERF_RECORD_CGROUP = 19, + PERF_RECORD_TEXT_POKE = 20, + PERF_RECORD_MAX = 21, } pub const IFLA_XDP_UNSPEC: _bindgen_ty_81 = _bindgen_ty_81::IFLA_XDP_UNSPEC; pub const IFLA_XDP_FD: _bindgen_ty_81 = _bindgen_ty_81::IFLA_XDP_FD; @@ -1647,25 +1774,26 @@ pub struct tcmsg { pub tcm_parent: __u32, pub tcm_info: __u32, } -pub const TCA_UNSPEC: _bindgen_ty_93 = _bindgen_ty_93::TCA_UNSPEC; -pub const TCA_KIND: _bindgen_ty_93 = _bindgen_ty_93::TCA_KIND; -pub const TCA_OPTIONS: _bindgen_ty_93 = _bindgen_ty_93::TCA_OPTIONS; -pub const TCA_STATS: _bindgen_ty_93 = _bindgen_ty_93::TCA_STATS; -pub const TCA_XSTATS: _bindgen_ty_93 = _bindgen_ty_93::TCA_XSTATS; -pub const TCA_RATE: _bindgen_ty_93 = _bindgen_ty_93::TCA_RATE; -pub const TCA_FCNT: _bindgen_ty_93 = _bindgen_ty_93::TCA_FCNT; -pub const TCA_STATS2: _bindgen_ty_93 = _bindgen_ty_93::TCA_STATS2; -pub const TCA_STAB: _bindgen_ty_93 = _bindgen_ty_93::TCA_STAB; -pub const TCA_PAD: _bindgen_ty_93 = _bindgen_ty_93::TCA_PAD; -pub const TCA_DUMP_INVISIBLE: _bindgen_ty_93 = _bindgen_ty_93::TCA_DUMP_INVISIBLE; -pub const TCA_CHAIN: _bindgen_ty_93 = _bindgen_ty_93::TCA_CHAIN; -pub const TCA_HW_OFFLOAD: _bindgen_ty_93 = _bindgen_ty_93::TCA_HW_OFFLOAD; -pub const TCA_INGRESS_BLOCK: _bindgen_ty_93 = _bindgen_ty_93::TCA_INGRESS_BLOCK; -pub const TCA_EGRESS_BLOCK: _bindgen_ty_93 = _bindgen_ty_93::TCA_EGRESS_BLOCK; -pub const __TCA_MAX: _bindgen_ty_93 = _bindgen_ty_93::__TCA_MAX; +pub const TCA_UNSPEC: _bindgen_ty_95 = _bindgen_ty_95::TCA_UNSPEC; +pub const TCA_KIND: _bindgen_ty_95 = _bindgen_ty_95::TCA_KIND; +pub const TCA_OPTIONS: _bindgen_ty_95 = _bindgen_ty_95::TCA_OPTIONS; +pub const TCA_STATS: _bindgen_ty_95 = _bindgen_ty_95::TCA_STATS; +pub const TCA_XSTATS: _bindgen_ty_95 = _bindgen_ty_95::TCA_XSTATS; +pub const TCA_RATE: _bindgen_ty_95 = _bindgen_ty_95::TCA_RATE; +pub const TCA_FCNT: _bindgen_ty_95 = _bindgen_ty_95::TCA_FCNT; +pub const TCA_STATS2: _bindgen_ty_95 = _bindgen_ty_95::TCA_STATS2; +pub const TCA_STAB: _bindgen_ty_95 = _bindgen_ty_95::TCA_STAB; +pub const TCA_PAD: _bindgen_ty_95 = _bindgen_ty_95::TCA_PAD; +pub const TCA_DUMP_INVISIBLE: _bindgen_ty_95 = _bindgen_ty_95::TCA_DUMP_INVISIBLE; +pub const TCA_CHAIN: _bindgen_ty_95 = _bindgen_ty_95::TCA_CHAIN; +pub const TCA_HW_OFFLOAD: _bindgen_ty_95 = _bindgen_ty_95::TCA_HW_OFFLOAD; +pub const TCA_INGRESS_BLOCK: _bindgen_ty_95 = _bindgen_ty_95::TCA_INGRESS_BLOCK; +pub const TCA_EGRESS_BLOCK: _bindgen_ty_95 = _bindgen_ty_95::TCA_EGRESS_BLOCK; +pub const TCA_DUMP_FLAGS: _bindgen_ty_95 = _bindgen_ty_95::TCA_DUMP_FLAGS; +pub const __TCA_MAX: _bindgen_ty_95 = _bindgen_ty_95::__TCA_MAX; #[repr(u32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub enum _bindgen_ty_93 { +pub enum _bindgen_ty_95 { TCA_UNSPEC = 0, TCA_KIND = 1, TCA_OPTIONS = 2, @@ -1681,24 +1809,25 @@ pub enum _bindgen_ty_93 { TCA_HW_OFFLOAD = 12, TCA_INGRESS_BLOCK = 13, TCA_EGRESS_BLOCK = 14, - __TCA_MAX = 15, -} -pub const TCA_BPF_UNSPEC: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_UNSPEC; -pub const TCA_BPF_ACT: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_ACT; -pub const TCA_BPF_POLICE: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_POLICE; -pub const TCA_BPF_CLASSID: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_CLASSID; -pub const TCA_BPF_OPS_LEN: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_OPS_LEN; -pub const TCA_BPF_OPS: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_OPS; -pub const TCA_BPF_FD: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_FD; -pub const TCA_BPF_NAME: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_NAME; -pub const TCA_BPF_FLAGS: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_FLAGS; -pub const TCA_BPF_FLAGS_GEN: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_FLAGS_GEN; -pub const TCA_BPF_TAG: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_TAG; -pub const TCA_BPF_ID: _bindgen_ty_149 = _bindgen_ty_149::TCA_BPF_ID; -pub const __TCA_BPF_MAX: _bindgen_ty_149 = _bindgen_ty_149::__TCA_BPF_MAX; + TCA_DUMP_FLAGS = 15, + __TCA_MAX = 16, +} +pub const TCA_BPF_UNSPEC: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_UNSPEC; +pub const TCA_BPF_ACT: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_ACT; +pub const TCA_BPF_POLICE: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_POLICE; +pub const TCA_BPF_CLASSID: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_CLASSID; +pub const TCA_BPF_OPS_LEN: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_OPS_LEN; +pub const TCA_BPF_OPS: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_OPS; +pub const TCA_BPF_FD: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_FD; +pub const TCA_BPF_NAME: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_NAME; +pub const TCA_BPF_FLAGS: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_FLAGS; +pub const TCA_BPF_FLAGS_GEN: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_FLAGS_GEN; +pub const TCA_BPF_TAG: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_TAG; +pub const TCA_BPF_ID: _bindgen_ty_151 = _bindgen_ty_151::TCA_BPF_ID; +pub const __TCA_BPF_MAX: _bindgen_ty_151 = _bindgen_ty_151::__TCA_BPF_MAX; #[repr(u32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub enum _bindgen_ty_149 { +pub enum _bindgen_ty_151 { TCA_BPF_UNSPEC = 0, TCA_BPF_ACT = 1, TCA_BPF_POLICE = 2, diff --git a/bpf/aya-bpf-bindings/src/aarch64/bindings.rs b/bpf/aya-bpf-bindings/src/aarch64/bindings.rs index fc1f25e3..8aad4181 100644 --- a/bpf/aya-bpf-bindings/src/aarch64/bindings.rs +++ b/bpf/aya-bpf-bindings/src/aarch64/bindings.rs @@ -228,11 +228,10 @@ pub const SO_TIMESTAMPING_NEW: u32 = 65; pub const SO_RCVTIMEO_NEW: u32 = 66; pub const SO_SNDTIMEO_NEW: u32 = 67; pub const SO_DETACH_REUSEPORT_BPF: u32 = 68; -pub const SO_TIMESTAMP: u32 = 29; -pub const SO_TIMESTAMPNS: u32 = 35; -pub const SO_TIMESTAMPING: u32 = 37; -pub const SO_RCVTIMEO: u32 = 20; -pub const SO_SNDTIMEO: u32 = 21; +pub const SO_PREFER_BUSY_POLL: u32 = 69; +pub const SO_BUSY_POLL_BUDGET: u32 = 70; +pub const SO_NETNS_COOKIE: u32 = 71; +pub const SO_BUF_LOCK: u32 = 72; pub const TC_ACT_UNSPEC: i32 = -1; pub const TC_ACT_OK: u32 = 0; pub const TC_ACT_RECLASSIFY: u32 = 1; @@ -1084,11 +1083,28 @@ pub struct btf_ptr { } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct user_pt_regs { - pub regs: [__u64; 31usize], - pub sp: __u64, - pub pc: __u64, - pub pstate: __u64, +pub struct pt_regs { + pub r15: ::aya_bpf_cty::c_ulong, + pub r14: ::aya_bpf_cty::c_ulong, + pub r13: ::aya_bpf_cty::c_ulong, + pub r12: ::aya_bpf_cty::c_ulong, + pub rbp: ::aya_bpf_cty::c_ulong, + pub rbx: ::aya_bpf_cty::c_ulong, + pub r11: ::aya_bpf_cty::c_ulong, + pub r10: ::aya_bpf_cty::c_ulong, + pub r9: ::aya_bpf_cty::c_ulong, + pub r8: ::aya_bpf_cty::c_ulong, + pub rax: ::aya_bpf_cty::c_ulong, + pub rcx: ::aya_bpf_cty::c_ulong, + pub rdx: ::aya_bpf_cty::c_ulong, + pub rsi: ::aya_bpf_cty::c_ulong, + pub rdi: ::aya_bpf_cty::c_ulong, + pub orig_rax: ::aya_bpf_cty::c_ulong, + pub rip: ::aya_bpf_cty::c_ulong, + pub cs: ::aya_bpf_cty::c_ulong, + pub eflags: ::aya_bpf_cty::c_ulong, + pub rsp: ::aya_bpf_cty::c_ulong, + pub ss: ::aya_bpf_cty::c_ulong, } pub type sa_family_t = ::aya_bpf_cty::c_ushort; #[repr(C)] @@ -1109,11 +1125,6 @@ pub struct linux_binprm { } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct pt_regs { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] pub struct tcphdr { _unused: [u8; 0], } diff --git a/bpf/aya-bpf-bindings/src/aarch64/getters.rs b/bpf/aya-bpf-bindings/src/aarch64/getters.rs index e3f26626..ef78ab3b 100644 --- a/bpf/aya-bpf-bindings/src/aarch64/getters.rs +++ b/bpf/aya-bpf-bindings/src/aarch64/getters.rs @@ -1064,18 +1064,69 @@ impl btf_ptr { unsafe { crate::bpf_probe_read(&self.flags) }.ok() } } -impl user_pt_regs { - pub fn regs(&self) -> Option<[__u64; 31usize]> { - unsafe { crate::bpf_probe_read(&self.regs) }.ok() +impl pt_regs { + pub fn r15(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.r15) }.ok() } - pub fn sp(&self) -> Option<__u64> { - unsafe { crate::bpf_probe_read(&self.sp) }.ok() + pub fn r14(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.r14) }.ok() } - pub fn pc(&self) -> Option<__u64> { - unsafe { crate::bpf_probe_read(&self.pc) }.ok() + pub fn r13(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.r13) }.ok() } - pub fn pstate(&self) -> Option<__u64> { - unsafe { crate::bpf_probe_read(&self.pstate) }.ok() + pub fn r12(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.r12) }.ok() + } + pub fn rbp(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.rbp) }.ok() + } + pub fn rbx(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.rbx) }.ok() + } + pub fn r11(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.r11) }.ok() + } + pub fn r10(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.r10) }.ok() + } + pub fn r9(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.r9) }.ok() + } + pub fn r8(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.r8) }.ok() + } + pub fn rax(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.rax) }.ok() + } + pub fn rcx(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.rcx) }.ok() + } + pub fn rdx(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.rdx) }.ok() + } + pub fn rsi(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.rsi) }.ok() + } + pub fn rdi(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.rdi) }.ok() + } + pub fn orig_rax(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.orig_rax) }.ok() + } + pub fn rip(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.rip) }.ok() + } + pub fn cs(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.cs) }.ok() + } + pub fn eflags(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.eflags) }.ok() + } + pub fn rsp(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.rsp) }.ok() + } + pub fn ss(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.ss) }.ok() } } impl sockaddr { @@ -1088,7 +1139,6 @@ impl sockaddr { } impl bpf_perf_event_data {} impl linux_binprm {} -impl pt_regs {} impl tcphdr {} impl seq_file {} impl tcp6_sock {} diff --git a/bpf/aya-bpf-bindings/src/aarch64/helpers.rs b/bpf/aya-bpf-bindings/src/aarch64/helpers.rs index 57b1a4c4..78389469 100644 --- a/bpf/aya-bpf-bindings/src/aarch64/helpers.rs +++ b/bpf/aya-bpf-bindings/src/aarch64/helpers.rs @@ -1809,3 +1809,19 @@ pub unsafe fn bpf_kallsyms_lookup_name( ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(179usize); fun(name, name_sz, flags, res) } +pub unsafe fn bpf_find_vma( + task: *mut task_struct, + addr: __u64, + callback_fn: *mut ::aya_bpf_cty::c_void, + callback_ctx: *mut ::aya_bpf_cty::c_void, + flags: __u64, +) -> ::aya_bpf_cty::c_long { + let fun: unsafe extern "C" fn( + task: *mut task_struct, + addr: __u64, + callback_fn: *mut ::aya_bpf_cty::c_void, + callback_ctx: *mut ::aya_bpf_cty::c_void, + flags: __u64, + ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(180usize); + fun(task, addr, callback_fn, callback_ctx, flags) +} diff --git a/bpf/aya-bpf-bindings/src/armv7/bindings.rs b/bpf/aya-bpf-bindings/src/armv7/bindings.rs index 1ac01794..c1e3ef1e 100644 --- a/bpf/aya-bpf-bindings/src/armv7/bindings.rs +++ b/bpf/aya-bpf-bindings/src/armv7/bindings.rs @@ -228,6 +228,10 @@ pub const SO_TIMESTAMPING_NEW: u32 = 65; pub const SO_RCVTIMEO_NEW: u32 = 66; pub const SO_SNDTIMEO_NEW: u32 = 67; pub const SO_DETACH_REUSEPORT_BPF: u32 = 68; +pub const SO_PREFER_BUSY_POLL: u32 = 69; +pub const SO_BUSY_POLL_BUDGET: u32 = 70; +pub const SO_NETNS_COOKIE: u32 = 71; +pub const SO_BUF_LOCK: u32 = 72; pub const TC_ACT_UNSPEC: i32 = -1; pub const TC_ACT_OK: u32 = 0; pub const TC_ACT_RECLASSIFY: u32 = 1; @@ -1093,7 +1097,27 @@ pub struct btf_ptr { #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct pt_regs { - pub uregs: [::aya_bpf_cty::c_long; 18usize], + pub r15: ::aya_bpf_cty::c_ulong, + pub r14: ::aya_bpf_cty::c_ulong, + pub r13: ::aya_bpf_cty::c_ulong, + pub r12: ::aya_bpf_cty::c_ulong, + pub rbp: ::aya_bpf_cty::c_ulong, + pub rbx: ::aya_bpf_cty::c_ulong, + pub r11: ::aya_bpf_cty::c_ulong, + pub r10: ::aya_bpf_cty::c_ulong, + pub r9: ::aya_bpf_cty::c_ulong, + pub r8: ::aya_bpf_cty::c_ulong, + pub rax: ::aya_bpf_cty::c_ulong, + pub rcx: ::aya_bpf_cty::c_ulong, + pub rdx: ::aya_bpf_cty::c_ulong, + pub rsi: ::aya_bpf_cty::c_ulong, + pub rdi: ::aya_bpf_cty::c_ulong, + pub orig_rax: ::aya_bpf_cty::c_ulong, + pub rip: ::aya_bpf_cty::c_ulong, + pub cs: ::aya_bpf_cty::c_ulong, + pub eflags: ::aya_bpf_cty::c_ulong, + pub rsp: ::aya_bpf_cty::c_ulong, + pub ss: ::aya_bpf_cty::c_ulong, } pub type sa_family_t = ::aya_bpf_cty::c_ushort; #[repr(C)] diff --git a/bpf/aya-bpf-bindings/src/armv7/getters.rs b/bpf/aya-bpf-bindings/src/armv7/getters.rs index ca7f1c89..ef78ab3b 100644 --- a/bpf/aya-bpf-bindings/src/armv7/getters.rs +++ b/bpf/aya-bpf-bindings/src/armv7/getters.rs @@ -1065,8 +1065,68 @@ impl btf_ptr { } } impl pt_regs { - pub fn uregs(&self) -> Option<[::aya_bpf_cty::c_long; 18usize]> { - unsafe { crate::bpf_probe_read(&self.uregs) }.ok() + pub fn r15(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.r15) }.ok() + } + pub fn r14(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.r14) }.ok() + } + pub fn r13(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.r13) }.ok() + } + pub fn r12(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.r12) }.ok() + } + pub fn rbp(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.rbp) }.ok() + } + pub fn rbx(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.rbx) }.ok() + } + pub fn r11(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.r11) }.ok() + } + pub fn r10(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.r10) }.ok() + } + pub fn r9(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.r9) }.ok() + } + pub fn r8(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.r8) }.ok() + } + pub fn rax(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.rax) }.ok() + } + pub fn rcx(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.rcx) }.ok() + } + pub fn rdx(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.rdx) }.ok() + } + pub fn rsi(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.rsi) }.ok() + } + pub fn rdi(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.rdi) }.ok() + } + pub fn orig_rax(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.orig_rax) }.ok() + } + pub fn rip(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.rip) }.ok() + } + pub fn cs(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.cs) }.ok() + } + pub fn eflags(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.eflags) }.ok() + } + pub fn rsp(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.rsp) }.ok() + } + pub fn ss(&self) -> Option<::aya_bpf_cty::c_ulong> { + unsafe { crate::bpf_probe_read(&self.ss) }.ok() } } impl sockaddr { diff --git a/bpf/aya-bpf-bindings/src/armv7/helpers.rs b/bpf/aya-bpf-bindings/src/armv7/helpers.rs index 57b1a4c4..78389469 100644 --- a/bpf/aya-bpf-bindings/src/armv7/helpers.rs +++ b/bpf/aya-bpf-bindings/src/armv7/helpers.rs @@ -1809,3 +1809,19 @@ pub unsafe fn bpf_kallsyms_lookup_name( ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(179usize); fun(name, name_sz, flags, res) } +pub unsafe fn bpf_find_vma( + task: *mut task_struct, + addr: __u64, + callback_fn: *mut ::aya_bpf_cty::c_void, + callback_ctx: *mut ::aya_bpf_cty::c_void, + flags: __u64, +) -> ::aya_bpf_cty::c_long { + let fun: unsafe extern "C" fn( + task: *mut task_struct, + addr: __u64, + callback_fn: *mut ::aya_bpf_cty::c_void, + callback_ctx: *mut ::aya_bpf_cty::c_void, + flags: __u64, + ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(180usize); + fun(task, addr, callback_fn, callback_ctx, flags) +} diff --git a/bpf/aya-bpf-bindings/src/x86_64/bindings.rs b/bpf/aya-bpf-bindings/src/x86_64/bindings.rs index 974b0df9..a7b18605 100644 --- a/bpf/aya-bpf-bindings/src/x86_64/bindings.rs +++ b/bpf/aya-bpf-bindings/src/x86_64/bindings.rs @@ -228,6 +228,10 @@ pub const SO_TIMESTAMPING_NEW: u32 = 65; pub const SO_RCVTIMEO_NEW: u32 = 66; pub const SO_SNDTIMEO_NEW: u32 = 67; pub const SO_DETACH_REUSEPORT_BPF: u32 = 68; +pub const SO_PREFER_BUSY_POLL: u32 = 69; +pub const SO_BUSY_POLL_BUDGET: u32 = 70; +pub const SO_NETNS_COOKIE: u32 = 71; +pub const SO_BUF_LOCK: u32 = 72; pub const SO_TIMESTAMP: u32 = 29; pub const SO_TIMESTAMPNS: u32 = 35; pub const SO_TIMESTAMPING: u32 = 37; diff --git a/bpf/aya-bpf-bindings/src/x86_64/helpers.rs b/bpf/aya-bpf-bindings/src/x86_64/helpers.rs index 57b1a4c4..78389469 100644 --- a/bpf/aya-bpf-bindings/src/x86_64/helpers.rs +++ b/bpf/aya-bpf-bindings/src/x86_64/helpers.rs @@ -1809,3 +1809,19 @@ pub unsafe fn bpf_kallsyms_lookup_name( ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(179usize); fun(name, name_sz, flags, res) } +pub unsafe fn bpf_find_vma( + task: *mut task_struct, + addr: __u64, + callback_fn: *mut ::aya_bpf_cty::c_void, + callback_ctx: *mut ::aya_bpf_cty::c_void, + flags: __u64, +) -> ::aya_bpf_cty::c_long { + let fun: unsafe extern "C" fn( + task: *mut task_struct, + addr: __u64, + callback_fn: *mut ::aya_bpf_cty::c_void, + callback_ctx: *mut ::aya_bpf_cty::c_void, + flags: __u64, + ) -> ::aya_bpf_cty::c_long = ::core::mem::transmute(180usize); + fun(task, addr, callback_fn, callback_ctx, flags) +}