From 092622e8720786f0d850e03d1f8d98f5a7f35918 Mon Sep 17 00:00:00 2001 From: Ershaad Basheer Date: Mon, 11 Aug 2025 15:02:38 -0700 Subject: [PATCH] aya: allow specifying a pin path for a named map This commit extends the EbpfLoader with set_map_pin_path that allows the caller to associate a named map with a pin path. One note is that this path is an absolute path, not relative to `map_pin_path`, and it forces the map to be loaded from that path. --- aya/src/bpf.rs | 59 ++++++++++--- aya/src/maps/mod.rs | 7 +- xtask/public-api/aya-ebpf-bindings.txt | 55 +++++++----- xtask/public-api/aya-ebpf-cty.txt | 2 +- xtask/public-api/aya-ebpf.txt | 114 ++++++++++++------------- 5 files changed, 146 insertions(+), 91 deletions(-) diff --git a/aya/src/bpf.rs b/aya/src/bpf.rs index c1b67955..61063970 100644 --- a/aya/src/bpf.rs +++ b/aya/src/bpf.rs @@ -119,7 +119,13 @@ pub struct EbpfLoader<'a> { btf: Option>, map_pin_path: Option, globals: HashMap<&'a str, (&'a [u8], bool)>, + // Max entries overrides the max_entries field of the map that matches the provided name + // before the map is created. max_entries: HashMap<&'a str, u32>, + // Map pin path overrides the pin path of the map that matches the provided name before + // it is created. + map_pin_path_by_name: HashMap<&'a str, std::borrow::Cow<'a, Path>>, + extensions: HashSet<&'a str>, verifier_log_level: VerifierLogLevel, allow_unsupported_maps: bool, @@ -158,6 +164,7 @@ impl<'a> EbpfLoader<'a> { map_pin_path: None, globals: HashMap::new(), max_entries: HashMap::new(), + map_pin_path_by_name: HashMap::new(), extensions: HashSet::new(), verifier_log_level: VerifierLogLevel::default(), allow_unsupported_maps: false, @@ -301,6 +308,32 @@ impl<'a> EbpfLoader<'a> { self } + /// Set the pin path for the map that matches the provided name. + /// + /// Note that this is an absolute path to the pinned map; it is not a prefix + /// to be combined with the map name, and it is not relative to the + /// configured base directory for pinned maps. + /// + /// # Example + /// + /// ```no_run + /// use aya::EbpfLoader; + /// + /// let bpf = EbpfLoader::new() + /// .set_map_pin_path("map", "/sys/fs/bpf/my-pinned-map") + /// .load_file("file.o")?; + /// # Ok::<(), aya::EbpfError>(()) + /// ``` + /// + pub fn set_map_pin_path>>( + &mut self, + name: &'a str, + path: P, + ) -> &mut Self { + self.map_pin_path_by_name.insert(name, path.into()); + self + } + /// Treat the provided program as an [`Extension`] /// /// When attempting to load the program with the provided `name` @@ -384,6 +417,7 @@ impl<'a> EbpfLoader<'a> { extensions, verifier_log_level, allow_unsupported_maps, + map_pin_path_by_name, } = self; let mut obj = Object::parse(data)?; obj.patch_map_data(globals.clone())?; @@ -483,16 +517,21 @@ impl<'a> EbpfLoader<'a> { _ => (), } let btf_fd = btf_fd.as_deref().map(|fd| fd.as_fd()); - let mut map = match obj.pinning() { - PinningType::None => MapData::create(obj, &name, btf_fd)?, - PinningType::ByName => { - // pin maps in /sys/fs/bpf by default to align with libbpf - // behavior https://github.com/libbpf/libbpf/blob/v1.2.2/src/libbpf.c#L2161. - let path = map_pin_path - .as_deref() - .unwrap_or_else(|| Path::new("/sys/fs/bpf")); - - MapData::create_pinned_by_name(path, obj, &name, btf_fd)? + let mut map = if let Some(pin_path) = map_pin_path_by_name.get(name.as_str()) { + MapData::create_pinned_by_name(pin_path, obj, &name, btf_fd)? + } else { + match obj.pinning() { + PinningType::None => MapData::create(obj, &name, btf_fd)?, + PinningType::ByName => { + // pin maps in /sys/fs/bpf by default to align with libbpf + // behavior https://github.com/libbpf/libbpf/blob/v1.2.2/src/libbpf.c#L2161. + let path = map_pin_path + .as_deref() + .unwrap_or_else(|| Path::new("/sys/fs/bpf")); + let path = path.join(&name); + + MapData::create_pinned_by_name(path, obj, &name, btf_fd)? + } } }; map.finalize()?; diff --git a/aya/src/maps/mod.rs b/aya/src/maps/mod.rs index d8593a40..d24c845b 100644 --- a/aya/src/maps/mod.rs +++ b/aya/src/maps/mod.rs @@ -649,13 +649,16 @@ impl MapData { use std::os::unix::ffi::OsStrExt as _; // try to open map in case it's already pinned - let path = path.as_ref().join(name); + let path = path.as_ref(); let path_string = match CString::new(path.as_os_str().as_bytes()) { Ok(path) => path, Err(error) => { return Err(MapError::PinError { name: Some(name.into()), - error: PinError::InvalidPinPath { path, error }, + error: PinError::InvalidPinPath { + path: path.to_path_buf(), + error, + }, }); } }; diff --git a/xtask/public-api/aya-ebpf-bindings.txt b/xtask/public-api/aya-ebpf-bindings.txt index 7a38ec39..7c5e693c 100644 --- a/xtask/public-api/aya-ebpf-bindings.txt +++ b/xtask/public-api/aya-ebpf-bindings.txt @@ -6173,27 +6173,6 @@ pub unsafe fn aya_ebpf_bindings::bindings::path::clone_to_uninit(&self, dest: *m impl core::convert::From for aya_ebpf_bindings::bindings::path pub fn aya_ebpf_bindings::bindings::path::from(t: T) -> T #[repr(C)] pub struct aya_ebpf_bindings::bindings::pt_regs -pub aya_ebpf_bindings::bindings::pt_regs::cs: aya_ebpf_cty::od::c_ulong -pub aya_ebpf_bindings::bindings::pt_regs::eflags: aya_ebpf_cty::od::c_ulong -pub aya_ebpf_bindings::bindings::pt_regs::orig_rax: aya_ebpf_cty::od::c_ulong -pub aya_ebpf_bindings::bindings::pt_regs::r10: aya_ebpf_cty::od::c_ulong -pub aya_ebpf_bindings::bindings::pt_regs::r11: aya_ebpf_cty::od::c_ulong -pub aya_ebpf_bindings::bindings::pt_regs::r12: aya_ebpf_cty::od::c_ulong -pub aya_ebpf_bindings::bindings::pt_regs::r13: aya_ebpf_cty::od::c_ulong -pub aya_ebpf_bindings::bindings::pt_regs::r14: aya_ebpf_cty::od::c_ulong -pub aya_ebpf_bindings::bindings::pt_regs::r15: aya_ebpf_cty::od::c_ulong -pub aya_ebpf_bindings::bindings::pt_regs::r8: aya_ebpf_cty::od::c_ulong -pub aya_ebpf_bindings::bindings::pt_regs::r9: aya_ebpf_cty::od::c_ulong -pub aya_ebpf_bindings::bindings::pt_regs::rax: aya_ebpf_cty::od::c_ulong -pub aya_ebpf_bindings::bindings::pt_regs::rbp: aya_ebpf_cty::od::c_ulong -pub aya_ebpf_bindings::bindings::pt_regs::rbx: aya_ebpf_cty::od::c_ulong -pub aya_ebpf_bindings::bindings::pt_regs::rcx: aya_ebpf_cty::od::c_ulong -pub aya_ebpf_bindings::bindings::pt_regs::rdi: aya_ebpf_cty::od::c_ulong -pub aya_ebpf_bindings::bindings::pt_regs::rdx: aya_ebpf_cty::od::c_ulong -pub aya_ebpf_bindings::bindings::pt_regs::rip: aya_ebpf_cty::od::c_ulong -pub aya_ebpf_bindings::bindings::pt_regs::rsi: aya_ebpf_cty::od::c_ulong -pub aya_ebpf_bindings::bindings::pt_regs::rsp: aya_ebpf_cty::od::c_ulong -pub aya_ebpf_bindings::bindings::pt_regs::ss: aya_ebpf_cty::od::c_ulong impl core::clone::Clone for aya_ebpf_bindings::bindings::pt_regs pub fn aya_ebpf_bindings::bindings::pt_regs::clone(&self) -> aya_ebpf_bindings::bindings::pt_regs impl core::fmt::Debug for aya_ebpf_bindings::bindings::pt_regs @@ -6631,6 +6610,40 @@ impl core::clone::CloneToUninit for aya_ebpf_bindings::bindings::unix_sock wh pub unsafe fn aya_ebpf_bindings::bindings::unix_sock::clone_to_uninit(&self, dest: *mut u8) impl core::convert::From for aya_ebpf_bindings::bindings::unix_sock pub fn aya_ebpf_bindings::bindings::unix_sock::from(t: T) -> T +#[repr(C)] pub struct aya_ebpf_bindings::bindings::user_pt_regs +pub aya_ebpf_bindings::bindings::user_pt_regs::pc: aya_ebpf_bindings::bindings::__u64 +pub aya_ebpf_bindings::bindings::user_pt_regs::pstate: aya_ebpf_bindings::bindings::__u64 +pub aya_ebpf_bindings::bindings::user_pt_regs::regs: [aya_ebpf_bindings::bindings::__u64; 31] +pub aya_ebpf_bindings::bindings::user_pt_regs::sp: aya_ebpf_bindings::bindings::__u64 +impl core::clone::Clone for aya_ebpf_bindings::bindings::user_pt_regs +pub fn aya_ebpf_bindings::bindings::user_pt_regs::clone(&self) -> aya_ebpf_bindings::bindings::user_pt_regs +impl core::fmt::Debug for aya_ebpf_bindings::bindings::user_pt_regs +pub fn aya_ebpf_bindings::bindings::user_pt_regs::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::marker::Copy for aya_ebpf_bindings::bindings::user_pt_regs +impl core::marker::Freeze for aya_ebpf_bindings::bindings::user_pt_regs +impl core::marker::Send for aya_ebpf_bindings::bindings::user_pt_regs +impl core::marker::Sync for aya_ebpf_bindings::bindings::user_pt_regs +impl core::marker::Unpin for aya_ebpf_bindings::bindings::user_pt_regs +impl core::panic::unwind_safe::RefUnwindSafe for aya_ebpf_bindings::bindings::user_pt_regs +impl core::panic::unwind_safe::UnwindSafe for aya_ebpf_bindings::bindings::user_pt_regs +impl core::convert::Into for aya_ebpf_bindings::bindings::user_pt_regs where U: core::convert::From +pub fn aya_ebpf_bindings::bindings::user_pt_regs::into(self) -> U +impl core::convert::TryFrom for aya_ebpf_bindings::bindings::user_pt_regs where U: core::convert::Into +pub type aya_ebpf_bindings::bindings::user_pt_regs::Error = core::convert::Infallible +pub fn aya_ebpf_bindings::bindings::user_pt_regs::try_from(value: U) -> core::result::Result>::Error> +impl core::convert::TryInto for aya_ebpf_bindings::bindings::user_pt_regs where U: core::convert::TryFrom +pub type aya_ebpf_bindings::bindings::user_pt_regs::Error = >::Error +pub fn aya_ebpf_bindings::bindings::user_pt_regs::try_into(self) -> core::result::Result>::Error> +impl core::any::Any for aya_ebpf_bindings::bindings::user_pt_regs where T: 'static + ?core::marker::Sized +pub fn aya_ebpf_bindings::bindings::user_pt_regs::type_id(&self) -> core::any::TypeId +impl core::borrow::Borrow for aya_ebpf_bindings::bindings::user_pt_regs where T: ?core::marker::Sized +pub fn aya_ebpf_bindings::bindings::user_pt_regs::borrow(&self) -> &T +impl core::borrow::BorrowMut for aya_ebpf_bindings::bindings::user_pt_regs where T: ?core::marker::Sized +pub fn aya_ebpf_bindings::bindings::user_pt_regs::borrow_mut(&mut self) -> &mut T +impl core::clone::CloneToUninit for aya_ebpf_bindings::bindings::user_pt_regs where T: core::clone::Clone +pub unsafe fn aya_ebpf_bindings::bindings::user_pt_regs::clone_to_uninit(&self, dest: *mut u8) +impl core::convert::From for aya_ebpf_bindings::bindings::user_pt_regs +pub fn aya_ebpf_bindings::bindings::user_pt_regs::from(t: T) -> T #[repr(C)] pub struct aya_ebpf_bindings::bindings::xdp_md pub aya_ebpf_bindings::bindings::xdp_md::data: aya_ebpf_bindings::bindings::__u32 pub aya_ebpf_bindings::bindings::xdp_md::data_end: aya_ebpf_bindings::bindings::__u32 diff --git a/xtask/public-api/aya-ebpf-cty.txt b/xtask/public-api/aya-ebpf-cty.txt index fa53f659..c0722f18 100644 --- a/xtask/public-api/aya-ebpf-cty.txt +++ b/xtask/public-api/aya-ebpf-cty.txt @@ -1,5 +1,5 @@ pub mod aya_ebpf_cty -pub type aya_ebpf_cty::c_char = aya_ebpf_cty::c_schar +pub type aya_ebpf_cty::c_char = aya_ebpf_cty::c_uchar pub type aya_ebpf_cty::c_double = f64 pub type aya_ebpf_cty::c_float = f32 pub type aya_ebpf_cty::c_int = i32 diff --git a/xtask/public-api/aya-ebpf.txt b/xtask/public-api/aya-ebpf.txt index 664f3550..3fb3630f 100644 --- a/xtask/public-api/aya-ebpf.txt +++ b/xtask/public-api/aya-ebpf.txt @@ -654,7 +654,7 @@ pub const fn aya_ebpf::maps::sock_hash::SockHash::pinned(max_entries: u32, fl pub fn aya_ebpf::maps::sock_hash::SockHash::redirect_msg(&self, ctx: &aya_ebpf::programs::sk_msg::SkMsgContext, key: &mut K, flags: u64) -> i64 pub fn aya_ebpf::maps::sock_hash::SockHash::redirect_sk_lookup(&mut self, ctx: &aya_ebpf::programs::sk_lookup::SkLookupContext, key: impl core::borrow::Borrow, flags: u64) -> core::result::Result<(), u32> pub fn aya_ebpf::maps::sock_hash::SockHash::redirect_skb(&self, ctx: &aya_ebpf::programs::sk_buff::SkBuffContext, key: &mut K, flags: u64) -> i64 -pub fn aya_ebpf::maps::sock_hash::SockHash::update(&self, key: &mut K, sk_ops: &mut aya_ebpf_bindings::x86_64::bindings::bpf_sock_ops, flags: u64) -> core::result::Result<(), i64> +pub fn aya_ebpf::maps::sock_hash::SockHash::update(&self, key: &mut K, sk_ops: &mut aya_ebpf_bindings::aarch64::bindings::bpf_sock_ops, flags: u64) -> core::result::Result<(), i64> pub const fn aya_ebpf::maps::sock_hash::SockHash::with_max_entries(max_entries: u32, flags: u32) -> aya_ebpf::maps::sock_hash::SockHash impl core::marker::Sync for aya_ebpf::maps::sock_hash::SockHash impl !core::marker::Freeze for aya_ebpf::maps::sock_hash::SockHash @@ -685,7 +685,7 @@ pub const fn aya_ebpf::maps::sock_map::SockMap::pinned(max_entries: u32, flags: pub unsafe fn aya_ebpf::maps::sock_map::SockMap::redirect_msg(&self, ctx: &aya_ebpf::programs::sk_msg::SkMsgContext, index: u32, flags: u64) -> i64 pub fn aya_ebpf::maps::sock_map::SockMap::redirect_sk_lookup(&mut self, ctx: &aya_ebpf::programs::sk_lookup::SkLookupContext, index: u32, flags: u64) -> core::result::Result<(), u32> pub unsafe fn aya_ebpf::maps::sock_map::SockMap::redirect_skb(&self, ctx: &aya_ebpf::programs::sk_buff::SkBuffContext, index: u32, flags: u64) -> i64 -pub unsafe fn aya_ebpf::maps::sock_map::SockMap::update(&self, index: u32, sk_ops: *mut aya_ebpf_bindings::x86_64::bindings::bpf_sock_ops, flags: u64) -> core::result::Result<(), i64> +pub unsafe fn aya_ebpf::maps::sock_map::SockMap::update(&self, index: u32, sk_ops: *mut aya_ebpf_bindings::aarch64::bindings::bpf_sock_ops, flags: u64) -> core::result::Result<(), i64> pub const fn aya_ebpf::maps::sock_map::SockMap::with_max_entries(max_entries: u32, flags: u32) -> aya_ebpf::maps::sock_map::SockMap impl core::marker::Sync for aya_ebpf::maps::sock_map::SockMap impl !core::marker::Freeze for aya_ebpf::maps::sock_map::SockMap @@ -1350,7 +1350,7 @@ pub const fn aya_ebpf::maps::sock_hash::SockHash::pinned(max_entries: u32, fl pub fn aya_ebpf::maps::sock_hash::SockHash::redirect_msg(&self, ctx: &aya_ebpf::programs::sk_msg::SkMsgContext, key: &mut K, flags: u64) -> i64 pub fn aya_ebpf::maps::sock_hash::SockHash::redirect_sk_lookup(&mut self, ctx: &aya_ebpf::programs::sk_lookup::SkLookupContext, key: impl core::borrow::Borrow, flags: u64) -> core::result::Result<(), u32> pub fn aya_ebpf::maps::sock_hash::SockHash::redirect_skb(&self, ctx: &aya_ebpf::programs::sk_buff::SkBuffContext, key: &mut K, flags: u64) -> i64 -pub fn aya_ebpf::maps::sock_hash::SockHash::update(&self, key: &mut K, sk_ops: &mut aya_ebpf_bindings::x86_64::bindings::bpf_sock_ops, flags: u64) -> core::result::Result<(), i64> +pub fn aya_ebpf::maps::sock_hash::SockHash::update(&self, key: &mut K, sk_ops: &mut aya_ebpf_bindings::aarch64::bindings::bpf_sock_ops, flags: u64) -> core::result::Result<(), i64> pub const fn aya_ebpf::maps::sock_hash::SockHash::with_max_entries(max_entries: u32, flags: u32) -> aya_ebpf::maps::sock_hash::SockHash impl core::marker::Sync for aya_ebpf::maps::sock_hash::SockHash impl !core::marker::Freeze for aya_ebpf::maps::sock_hash::SockHash @@ -1380,7 +1380,7 @@ pub const fn aya_ebpf::maps::sock_map::SockMap::pinned(max_entries: u32, flags: pub unsafe fn aya_ebpf::maps::sock_map::SockMap::redirect_msg(&self, ctx: &aya_ebpf::programs::sk_msg::SkMsgContext, index: u32, flags: u64) -> i64 pub fn aya_ebpf::maps::sock_map::SockMap::redirect_sk_lookup(&mut self, ctx: &aya_ebpf::programs::sk_lookup::SkLookupContext, index: u32, flags: u64) -> core::result::Result<(), u32> pub unsafe fn aya_ebpf::maps::sock_map::SockMap::redirect_skb(&self, ctx: &aya_ebpf::programs::sk_buff::SkBuffContext, index: u32, flags: u64) -> i64 -pub unsafe fn aya_ebpf::maps::sock_map::SockMap::update(&self, index: u32, sk_ops: *mut aya_ebpf_bindings::x86_64::bindings::bpf_sock_ops, flags: u64) -> core::result::Result<(), i64> +pub unsafe fn aya_ebpf::maps::sock_map::SockMap::update(&self, index: u32, sk_ops: *mut aya_ebpf_bindings::aarch64::bindings::bpf_sock_ops, flags: u64) -> core::result::Result<(), i64> pub const fn aya_ebpf::maps::sock_map::SockMap::with_max_entries(max_entries: u32, flags: u32) -> aya_ebpf::maps::sock_map::SockMap impl core::marker::Sync for aya_ebpf::maps::sock_map::SockMap impl !core::marker::Freeze for aya_ebpf::maps::sock_map::SockMap @@ -1491,9 +1491,9 @@ pub fn aya_ebpf::maps::XskMap::from(t: T) -> T pub mod aya_ebpf::programs pub mod aya_ebpf::programs::device pub struct aya_ebpf::programs::device::DeviceContext -pub aya_ebpf::programs::device::DeviceContext::device: *mut aya_ebpf_bindings::x86_64::bindings::bpf_cgroup_dev_ctx +pub aya_ebpf::programs::device::DeviceContext::device: *mut aya_ebpf_bindings::aarch64::bindings::bpf_cgroup_dev_ctx impl aya_ebpf::programs::device::DeviceContext -pub fn aya_ebpf::programs::device::DeviceContext::new(device: *mut aya_ebpf_bindings::x86_64::bindings::bpf_cgroup_dev_ctx) -> aya_ebpf::programs::device::DeviceContext +pub fn aya_ebpf::programs::device::DeviceContext::new(device: *mut aya_ebpf_bindings::aarch64::bindings::bpf_cgroup_dev_ctx) -> aya_ebpf::programs::device::DeviceContext impl aya_ebpf::EbpfContext for aya_ebpf::programs::device::DeviceContext pub fn aya_ebpf::programs::device::DeviceContext::as_ptr(&self) -> *mut core::ffi::c_void impl core::marker::Freeze for aya_ebpf::programs::device::DeviceContext @@ -1581,9 +1581,9 @@ pub struct aya_ebpf::programs::flow_dissector::FlowDissectorContext impl aya_ebpf::programs::flow_dissector::FlowDissectorContext pub fn aya_ebpf::programs::flow_dissector::FlowDissectorContext::data(&self) -> usize pub fn aya_ebpf::programs::flow_dissector::FlowDissectorContext::data_end(&self) -> usize -pub fn aya_ebpf::programs::flow_dissector::FlowDissectorContext::flow_keys(&mut self) -> &mut aya_ebpf_bindings::x86_64::bindings::bpf_flow_keys +pub fn aya_ebpf::programs::flow_dissector::FlowDissectorContext::flow_keys(&mut self) -> &mut aya_ebpf_bindings::aarch64::bindings::bpf_flow_keys pub fn aya_ebpf::programs::flow_dissector::FlowDissectorContext::load_bytes(&self, offset: usize, dst: &mut [u8]) -> core::result::Result -pub fn aya_ebpf::programs::flow_dissector::FlowDissectorContext::new(skb: *mut aya_ebpf_bindings::x86_64::bindings::__sk_buff) -> aya_ebpf::programs::flow_dissector::FlowDissectorContext +pub fn aya_ebpf::programs::flow_dissector::FlowDissectorContext::new(skb: *mut aya_ebpf_bindings::aarch64::bindings::__sk_buff) -> aya_ebpf::programs::flow_dissector::FlowDissectorContext impl aya_ebpf::EbpfContext for aya_ebpf::programs::flow_dissector::FlowDissectorContext pub fn aya_ebpf::programs::flow_dissector::FlowDissectorContext::as_ptr(&self) -> *mut aya_ebpf_cty::c_void impl core::marker::Freeze for aya_ebpf::programs::flow_dissector::FlowDissectorContext @@ -1667,7 +1667,7 @@ impl core::convert::From for aya_ebpf::programs::perf_event::PerfEventCont pub fn aya_ebpf::programs::perf_event::PerfEventContext::from(t: T) -> T pub mod aya_ebpf::programs::probe pub struct aya_ebpf::programs::probe::ProbeContext -pub aya_ebpf::programs::probe::ProbeContext::regs: *mut aya_ebpf_bindings::x86_64::bindings::pt_regs +pub aya_ebpf::programs::probe::ProbeContext::regs: *mut aya_ebpf_bindings::aarch64::bindings::user_pt_regs impl aya_ebpf::programs::probe::ProbeContext pub fn aya_ebpf::programs::probe::ProbeContext::arg(&self, n: usize) -> core::option::Option pub fn aya_ebpf::programs::probe::ProbeContext::new(ctx: *mut core::ffi::c_void) -> aya_ebpf::programs::probe::ProbeContext @@ -1726,7 +1726,7 @@ impl core::convert::From for aya_ebpf::programs::raw_tracepoint::RawTraceP pub fn aya_ebpf::programs::raw_tracepoint::RawTracePointContext::from(t: T) -> T pub mod aya_ebpf::programs::retprobe pub struct aya_ebpf::programs::retprobe::RetProbeContext -pub aya_ebpf::programs::retprobe::RetProbeContext::regs: *mut aya_ebpf_bindings::x86_64::bindings::pt_regs +pub aya_ebpf::programs::retprobe::RetProbeContext::regs: *mut aya_ebpf_bindings::aarch64::bindings::user_pt_regs impl aya_ebpf::programs::retprobe::RetProbeContext pub fn aya_ebpf::programs::retprobe::RetProbeContext::new(ctx: *mut core::ffi::c_void) -> aya_ebpf::programs::retprobe::RetProbeContext pub fn aya_ebpf::programs::retprobe::RetProbeContext::ret(&self) -> core::option::Option @@ -1756,7 +1756,7 @@ impl core::convert::From for aya_ebpf::programs::retprobe::RetProbeContext pub fn aya_ebpf::programs::retprobe::RetProbeContext::from(t: T) -> T pub mod aya_ebpf::programs::sk_buff pub struct aya_ebpf::programs::sk_buff::SkBuff -pub aya_ebpf::programs::sk_buff::SkBuff::skb: *mut aya_ebpf_bindings::x86_64::bindings::__sk_buff +pub aya_ebpf::programs::sk_buff::SkBuff::skb: *mut aya_ebpf_bindings::aarch64::bindings::__sk_buff impl aya_ebpf::programs::sk_buff::SkBuff pub fn aya_ebpf::programs::sk_buff::SkBuff::adjust_room(&self, len_diff: i32, mode: u32, flags: u64) -> core::result::Result<(), aya_ebpf_cty::od::c_long> pub fn aya_ebpf::programs::sk_buff::SkBuff::cb(&self) -> &[u32] @@ -1774,7 +1774,7 @@ pub fn aya_ebpf::programs::sk_buff::SkBuff::load_bytes(&self, offset: usize, dst pub fn aya_ebpf::programs::sk_buff::SkBuff::local_ipv4(&self) -> u32 pub fn aya_ebpf::programs::sk_buff::SkBuff::local_ipv6(&self) -> &[u32; 4] pub fn aya_ebpf::programs::sk_buff::SkBuff::local_port(&self) -> u32 -pub fn aya_ebpf::programs::sk_buff::SkBuff::new(skb: *mut aya_ebpf_bindings::x86_64::bindings::__sk_buff) -> aya_ebpf::programs::sk_buff::SkBuff +pub fn aya_ebpf::programs::sk_buff::SkBuff::new(skb: *mut aya_ebpf_bindings::aarch64::bindings::__sk_buff) -> aya_ebpf::programs::sk_buff::SkBuff pub fn aya_ebpf::programs::sk_buff::SkBuff::protocol(&self) -> u32 pub fn aya_ebpf::programs::sk_buff::SkBuff::pull_data(&self, len: u32) -> core::result::Result<(), aya_ebpf_cty::od::c_long> pub fn aya_ebpf::programs::sk_buff::SkBuff::remote_ipv4(&self) -> u32 @@ -1818,7 +1818,7 @@ pub fn aya_ebpf::programs::sk_buff::SkBuffContext::l4_csum_replace(&self, offset pub fn aya_ebpf::programs::sk_buff::SkBuffContext::len(&self) -> u32 pub fn aya_ebpf::programs::sk_buff::SkBuffContext::load(&self, offset: usize) -> core::result::Result pub fn aya_ebpf::programs::sk_buff::SkBuffContext::load_bytes(&self, offset: usize, dst: &mut [u8]) -> core::result::Result -pub fn aya_ebpf::programs::sk_buff::SkBuffContext::new(skb: *mut aya_ebpf_bindings::x86_64::bindings::__sk_buff) -> aya_ebpf::programs::sk_buff::SkBuffContext +pub fn aya_ebpf::programs::sk_buff::SkBuffContext::new(skb: *mut aya_ebpf_bindings::aarch64::bindings::__sk_buff) -> aya_ebpf::programs::sk_buff::SkBuffContext pub fn aya_ebpf::programs::sk_buff::SkBuffContext::pull_data(&self, len: u32) -> core::result::Result<(), aya_ebpf_cty::od::c_long> pub fn aya_ebpf::programs::sk_buff::SkBuffContext::set_mark(&mut self, mark: u32) pub fn aya_ebpf::programs::sk_buff::SkBuffContext::store(&mut self, offset: usize, v: &T, flags: u64) -> core::result::Result<(), aya_ebpf_cty::od::c_long> @@ -1848,9 +1848,9 @@ impl core::convert::From for aya_ebpf::programs::sk_buff::SkBuffContext pub fn aya_ebpf::programs::sk_buff::SkBuffContext::from(t: T) -> T pub mod aya_ebpf::programs::sk_lookup pub struct aya_ebpf::programs::sk_lookup::SkLookupContext -pub aya_ebpf::programs::sk_lookup::SkLookupContext::lookup: *mut aya_ebpf_bindings::x86_64::bindings::bpf_sk_lookup +pub aya_ebpf::programs::sk_lookup::SkLookupContext::lookup: *mut aya_ebpf_bindings::aarch64::bindings::bpf_sk_lookup impl aya_ebpf::programs::sk_lookup::SkLookupContext -pub fn aya_ebpf::programs::sk_lookup::SkLookupContext::new(lookup: *mut aya_ebpf_bindings::x86_64::bindings::bpf_sk_lookup) -> aya_ebpf::programs::sk_lookup::SkLookupContext +pub fn aya_ebpf::programs::sk_lookup::SkLookupContext::new(lookup: *mut aya_ebpf_bindings::aarch64::bindings::bpf_sk_lookup) -> aya_ebpf::programs::sk_lookup::SkLookupContext impl aya_ebpf::EbpfContext for aya_ebpf::programs::sk_lookup::SkLookupContext pub fn aya_ebpf::programs::sk_lookup::SkLookupContext::as_ptr(&self) -> *mut core::ffi::c_void impl core::marker::Freeze for aya_ebpf::programs::sk_lookup::SkLookupContext @@ -1877,11 +1877,11 @@ impl core::convert::From for aya_ebpf::programs::sk_lookup::SkLookupContex pub fn aya_ebpf::programs::sk_lookup::SkLookupContext::from(t: T) -> T pub mod aya_ebpf::programs::sk_msg pub struct aya_ebpf::programs::sk_msg::SkMsgContext -pub aya_ebpf::programs::sk_msg::SkMsgContext::msg: *mut aya_ebpf_bindings::x86_64::bindings::sk_msg_md +pub aya_ebpf::programs::sk_msg::SkMsgContext::msg: *mut aya_ebpf_bindings::aarch64::bindings::sk_msg_md impl aya_ebpf::programs::sk_msg::SkMsgContext pub fn aya_ebpf::programs::sk_msg::SkMsgContext::data(&self) -> usize pub fn aya_ebpf::programs::sk_msg::SkMsgContext::data_end(&self) -> usize -pub fn aya_ebpf::programs::sk_msg::SkMsgContext::new(msg: *mut aya_ebpf_bindings::x86_64::bindings::sk_msg_md) -> aya_ebpf::programs::sk_msg::SkMsgContext +pub fn aya_ebpf::programs::sk_msg::SkMsgContext::new(msg: *mut aya_ebpf_bindings::aarch64::bindings::sk_msg_md) -> aya_ebpf::programs::sk_msg::SkMsgContext pub fn aya_ebpf::programs::sk_msg::SkMsgContext::pop_data(&self, start: u32, len: u32, flags: u64) -> core::result::Result<(), i64> pub fn aya_ebpf::programs::sk_msg::SkMsgContext::push_data(&self, start: u32, len: u32, flags: u64) -> core::result::Result<(), i64> pub fn aya_ebpf::programs::sk_msg::SkMsgContext::size(&self) -> u32 @@ -1911,9 +1911,9 @@ impl core::convert::From for aya_ebpf::programs::sk_msg::SkMsgContext pub fn aya_ebpf::programs::sk_msg::SkMsgContext::from(t: T) -> T pub mod aya_ebpf::programs::sock pub struct aya_ebpf::programs::sock::SockContext -pub aya_ebpf::programs::sock::SockContext::sock: *mut aya_ebpf_bindings::x86_64::bindings::bpf_sock +pub aya_ebpf::programs::sock::SockContext::sock: *mut aya_ebpf_bindings::aarch64::bindings::bpf_sock impl aya_ebpf::programs::sock::SockContext -pub fn aya_ebpf::programs::sock::SockContext::new(sock: *mut aya_ebpf_bindings::x86_64::bindings::bpf_sock) -> aya_ebpf::programs::sock::SockContext +pub fn aya_ebpf::programs::sock::SockContext::new(sock: *mut aya_ebpf_bindings::aarch64::bindings::bpf_sock) -> aya_ebpf::programs::sock::SockContext impl aya_ebpf::EbpfContext for aya_ebpf::programs::sock::SockContext pub fn aya_ebpf::programs::sock::SockContext::as_ptr(&self) -> *mut core::ffi::c_void impl core::marker::Freeze for aya_ebpf::programs::sock::SockContext @@ -1940,9 +1940,9 @@ impl core::convert::From for aya_ebpf::programs::sock::SockContext pub fn aya_ebpf::programs::sock::SockContext::from(t: T) -> T pub mod aya_ebpf::programs::sock_addr pub struct aya_ebpf::programs::sock_addr::SockAddrContext -pub aya_ebpf::programs::sock_addr::SockAddrContext::sock_addr: *mut aya_ebpf_bindings::x86_64::bindings::bpf_sock_addr +pub aya_ebpf::programs::sock_addr::SockAddrContext::sock_addr: *mut aya_ebpf_bindings::aarch64::bindings::bpf_sock_addr impl aya_ebpf::programs::sock_addr::SockAddrContext -pub fn aya_ebpf::programs::sock_addr::SockAddrContext::new(sock_addr: *mut aya_ebpf_bindings::x86_64::bindings::bpf_sock_addr) -> aya_ebpf::programs::sock_addr::SockAddrContext +pub fn aya_ebpf::programs::sock_addr::SockAddrContext::new(sock_addr: *mut aya_ebpf_bindings::aarch64::bindings::bpf_sock_addr) -> aya_ebpf::programs::sock_addr::SockAddrContext impl aya_ebpf::EbpfContext for aya_ebpf::programs::sock_addr::SockAddrContext pub fn aya_ebpf::programs::sock_addr::SockAddrContext::as_ptr(&self) -> *mut core::ffi::c_void impl core::marker::Freeze for aya_ebpf::programs::sock_addr::SockAddrContext @@ -1969,7 +1969,7 @@ impl core::convert::From for aya_ebpf::programs::sock_addr::SockAddrContex pub fn aya_ebpf::programs::sock_addr::SockAddrContext::from(t: T) -> T pub mod aya_ebpf::programs::sock_ops pub struct aya_ebpf::programs::sock_ops::SockOpsContext -pub aya_ebpf::programs::sock_ops::SockOpsContext::ops: *mut aya_ebpf_bindings::x86_64::bindings::bpf_sock_ops +pub aya_ebpf::programs::sock_ops::SockOpsContext::ops: *mut aya_ebpf_bindings::aarch64::bindings::bpf_sock_ops impl aya_ebpf::programs::sock_ops::SockOpsContext pub fn aya_ebpf::programs::sock_ops::SockOpsContext::arg(&self, n: usize) -> u32 pub fn aya_ebpf::programs::sock_ops::SockOpsContext::cb_flags(&self) -> u32 @@ -1977,7 +1977,7 @@ pub fn aya_ebpf::programs::sock_ops::SockOpsContext::family(&self) -> u32 pub fn aya_ebpf::programs::sock_ops::SockOpsContext::local_ip4(&self) -> u32 pub fn aya_ebpf::programs::sock_ops::SockOpsContext::local_ip6(&self) -> [u32; 4] pub fn aya_ebpf::programs::sock_ops::SockOpsContext::local_port(&self) -> u32 -pub fn aya_ebpf::programs::sock_ops::SockOpsContext::new(ops: *mut aya_ebpf_bindings::x86_64::bindings::bpf_sock_ops) -> aya_ebpf::programs::sock_ops::SockOpsContext +pub fn aya_ebpf::programs::sock_ops::SockOpsContext::new(ops: *mut aya_ebpf_bindings::aarch64::bindings::bpf_sock_ops) -> aya_ebpf::programs::sock_ops::SockOpsContext pub fn aya_ebpf::programs::sock_ops::SockOpsContext::op(&self) -> u32 pub fn aya_ebpf::programs::sock_ops::SockOpsContext::remote_ip4(&self) -> u32 pub fn aya_ebpf::programs::sock_ops::SockOpsContext::remote_ip6(&self) -> [u32; 4] @@ -2010,9 +2010,9 @@ impl core::convert::From for aya_ebpf::programs::sock_ops::SockOpsContext pub fn aya_ebpf::programs::sock_ops::SockOpsContext::from(t: T) -> T pub mod aya_ebpf::programs::sockopt pub struct aya_ebpf::programs::sockopt::SockoptContext -pub aya_ebpf::programs::sockopt::SockoptContext::sockopt: *mut aya_ebpf_bindings::x86_64::bindings::bpf_sockopt +pub aya_ebpf::programs::sockopt::SockoptContext::sockopt: *mut aya_ebpf_bindings::aarch64::bindings::bpf_sockopt impl aya_ebpf::programs::sockopt::SockoptContext -pub fn aya_ebpf::programs::sockopt::SockoptContext::new(sockopt: *mut aya_ebpf_bindings::x86_64::bindings::bpf_sockopt) -> aya_ebpf::programs::sockopt::SockoptContext +pub fn aya_ebpf::programs::sockopt::SockoptContext::new(sockopt: *mut aya_ebpf_bindings::aarch64::bindings::bpf_sockopt) -> aya_ebpf::programs::sockopt::SockoptContext impl aya_ebpf::EbpfContext for aya_ebpf::programs::sockopt::SockoptContext pub fn aya_ebpf::programs::sockopt::SockoptContext::as_ptr(&self) -> *mut core::ffi::c_void impl core::marker::Freeze for aya_ebpf::programs::sockopt::SockoptContext @@ -2039,9 +2039,9 @@ impl core::convert::From for aya_ebpf::programs::sockopt::SockoptContext pub fn aya_ebpf::programs::sockopt::SockoptContext::from(t: T) -> T pub mod aya_ebpf::programs::sysctl pub struct aya_ebpf::programs::sysctl::SysctlContext -pub aya_ebpf::programs::sysctl::SysctlContext::sysctl: *mut aya_ebpf_bindings::x86_64::bindings::bpf_sysctl +pub aya_ebpf::programs::sysctl::SysctlContext::sysctl: *mut aya_ebpf_bindings::aarch64::bindings::bpf_sysctl impl aya_ebpf::programs::sysctl::SysctlContext -pub fn aya_ebpf::programs::sysctl::SysctlContext::new(sysctl: *mut aya_ebpf_bindings::x86_64::bindings::bpf_sysctl) -> aya_ebpf::programs::sysctl::SysctlContext +pub fn aya_ebpf::programs::sysctl::SysctlContext::new(sysctl: *mut aya_ebpf_bindings::aarch64::bindings::bpf_sysctl) -> aya_ebpf::programs::sysctl::SysctlContext impl aya_ebpf::EbpfContext for aya_ebpf::programs::sysctl::SysctlContext pub fn aya_ebpf::programs::sysctl::SysctlContext::as_ptr(&self) -> *mut core::ffi::c_void impl core::marker::Freeze for aya_ebpf::programs::sysctl::SysctlContext @@ -2084,7 +2084,7 @@ pub fn aya_ebpf::programs::tc::TcContext::l4_csum_replace(&self, offset: usize, pub fn aya_ebpf::programs::tc::TcContext::len(&self) -> u32 pub fn aya_ebpf::programs::tc::TcContext::load(&self, offset: usize) -> core::result::Result pub fn aya_ebpf::programs::tc::TcContext::load_bytes(&self, offset: usize, dst: &mut [u8]) -> core::result::Result -pub fn aya_ebpf::programs::tc::TcContext::new(skb: *mut aya_ebpf_bindings::x86_64::bindings::__sk_buff) -> aya_ebpf::programs::tc::TcContext +pub fn aya_ebpf::programs::tc::TcContext::new(skb: *mut aya_ebpf_bindings::aarch64::bindings::__sk_buff) -> aya_ebpf::programs::tc::TcContext pub fn aya_ebpf::programs::tc::TcContext::pull_data(&self, len: u32) -> core::result::Result<(), aya_ebpf_cty::od::c_long> pub fn aya_ebpf::programs::tc::TcContext::set_mark(&mut self, mark: u32) pub fn aya_ebpf::programs::tc::TcContext::store(&mut self, offset: usize, v: &T, flags: u64) -> core::result::Result<(), aya_ebpf_cty::od::c_long> @@ -2172,14 +2172,14 @@ impl core::convert::From for aya_ebpf::programs::tracepoint::TracePointCon pub fn aya_ebpf::programs::tracepoint::TracePointContext::from(t: T) -> T pub mod aya_ebpf::programs::xdp pub struct aya_ebpf::programs::xdp::XdpContext -pub aya_ebpf::programs::xdp::XdpContext::ctx: *mut aya_ebpf_bindings::x86_64::bindings::xdp_md +pub aya_ebpf::programs::xdp::XdpContext::ctx: *mut aya_ebpf_bindings::aarch64::bindings::xdp_md impl aya_ebpf::programs::xdp::XdpContext pub fn aya_ebpf::programs::xdp::XdpContext::data(&self) -> usize pub fn aya_ebpf::programs::xdp::XdpContext::data_end(&self) -> usize pub fn aya_ebpf::programs::xdp::XdpContext::ingress_ifindex(&self) -> usize pub fn aya_ebpf::programs::xdp::XdpContext::metadata(&self) -> usize pub fn aya_ebpf::programs::xdp::XdpContext::metadata_end(&self) -> usize -pub fn aya_ebpf::programs::xdp::XdpContext::new(ctx: *mut aya_ebpf_bindings::x86_64::bindings::xdp_md) -> aya_ebpf::programs::xdp::XdpContext +pub fn aya_ebpf::programs::xdp::XdpContext::new(ctx: *mut aya_ebpf_bindings::aarch64::bindings::xdp_md) -> aya_ebpf::programs::xdp::XdpContext pub fn aya_ebpf::programs::xdp::XdpContext::rx_queue_index(&self) -> u32 impl aya_ebpf::EbpfContext for aya_ebpf::programs::xdp::XdpContext pub fn aya_ebpf::programs::xdp::XdpContext::as_ptr(&self) -> *mut core::ffi::c_void @@ -2234,9 +2234,9 @@ pub fn aya_ebpf::programs::tp_btf::BtfTracePointContext::borrow_mut(&mut self) - impl core::convert::From for aya_ebpf::programs::tp_btf::BtfTracePointContext pub fn aya_ebpf::programs::tp_btf::BtfTracePointContext::from(t: T) -> T pub struct aya_ebpf::programs::DeviceContext -pub aya_ebpf::programs::DeviceContext::device: *mut aya_ebpf_bindings::x86_64::bindings::bpf_cgroup_dev_ctx +pub aya_ebpf::programs::DeviceContext::device: *mut aya_ebpf_bindings::aarch64::bindings::bpf_cgroup_dev_ctx impl aya_ebpf::programs::device::DeviceContext -pub fn aya_ebpf::programs::device::DeviceContext::new(device: *mut aya_ebpf_bindings::x86_64::bindings::bpf_cgroup_dev_ctx) -> aya_ebpf::programs::device::DeviceContext +pub fn aya_ebpf::programs::device::DeviceContext::new(device: *mut aya_ebpf_bindings::aarch64::bindings::bpf_cgroup_dev_ctx) -> aya_ebpf::programs::device::DeviceContext impl aya_ebpf::EbpfContext for aya_ebpf::programs::device::DeviceContext pub fn aya_ebpf::programs::device::DeviceContext::as_ptr(&self) -> *mut core::ffi::c_void impl core::marker::Freeze for aya_ebpf::programs::device::DeviceContext @@ -2321,9 +2321,9 @@ pub struct aya_ebpf::programs::FlowDissectorContext impl aya_ebpf::programs::flow_dissector::FlowDissectorContext pub fn aya_ebpf::programs::flow_dissector::FlowDissectorContext::data(&self) -> usize pub fn aya_ebpf::programs::flow_dissector::FlowDissectorContext::data_end(&self) -> usize -pub fn aya_ebpf::programs::flow_dissector::FlowDissectorContext::flow_keys(&mut self) -> &mut aya_ebpf_bindings::x86_64::bindings::bpf_flow_keys +pub fn aya_ebpf::programs::flow_dissector::FlowDissectorContext::flow_keys(&mut self) -> &mut aya_ebpf_bindings::aarch64::bindings::bpf_flow_keys pub fn aya_ebpf::programs::flow_dissector::FlowDissectorContext::load_bytes(&self, offset: usize, dst: &mut [u8]) -> core::result::Result -pub fn aya_ebpf::programs::flow_dissector::FlowDissectorContext::new(skb: *mut aya_ebpf_bindings::x86_64::bindings::__sk_buff) -> aya_ebpf::programs::flow_dissector::FlowDissectorContext +pub fn aya_ebpf::programs::flow_dissector::FlowDissectorContext::new(skb: *mut aya_ebpf_bindings::aarch64::bindings::__sk_buff) -> aya_ebpf::programs::flow_dissector::FlowDissectorContext impl aya_ebpf::EbpfContext for aya_ebpf::programs::flow_dissector::FlowDissectorContext pub fn aya_ebpf::programs::flow_dissector::FlowDissectorContext::as_ptr(&self) -> *mut aya_ebpf_cty::c_void impl core::marker::Freeze for aya_ebpf::programs::flow_dissector::FlowDissectorContext @@ -2404,7 +2404,7 @@ pub fn aya_ebpf::programs::perf_event::PerfEventContext::borrow_mut(&mut self) - impl core::convert::From for aya_ebpf::programs::perf_event::PerfEventContext pub fn aya_ebpf::programs::perf_event::PerfEventContext::from(t: T) -> T pub struct aya_ebpf::programs::ProbeContext -pub aya_ebpf::programs::ProbeContext::regs: *mut aya_ebpf_bindings::x86_64::bindings::pt_regs +pub aya_ebpf::programs::ProbeContext::regs: *mut aya_ebpf_bindings::aarch64::bindings::user_pt_regs impl aya_ebpf::programs::probe::ProbeContext pub fn aya_ebpf::programs::probe::ProbeContext::arg(&self, n: usize) -> core::option::Option pub fn aya_ebpf::programs::probe::ProbeContext::new(ctx: *mut core::ffi::c_void) -> aya_ebpf::programs::probe::ProbeContext @@ -2461,7 +2461,7 @@ pub fn aya_ebpf::programs::raw_tracepoint::RawTracePointContext::borrow_mut(&mut impl core::convert::From for aya_ebpf::programs::raw_tracepoint::RawTracePointContext pub fn aya_ebpf::programs::raw_tracepoint::RawTracePointContext::from(t: T) -> T pub struct aya_ebpf::programs::RetProbeContext -pub aya_ebpf::programs::RetProbeContext::regs: *mut aya_ebpf_bindings::x86_64::bindings::pt_regs +pub aya_ebpf::programs::RetProbeContext::regs: *mut aya_ebpf_bindings::aarch64::bindings::user_pt_regs impl aya_ebpf::programs::retprobe::RetProbeContext pub fn aya_ebpf::programs::retprobe::RetProbeContext::new(ctx: *mut core::ffi::c_void) -> aya_ebpf::programs::retprobe::RetProbeContext pub fn aya_ebpf::programs::retprobe::RetProbeContext::ret(&self) -> core::option::Option @@ -2503,7 +2503,7 @@ pub fn aya_ebpf::programs::sk_buff::SkBuffContext::l4_csum_replace(&self, offset pub fn aya_ebpf::programs::sk_buff::SkBuffContext::len(&self) -> u32 pub fn aya_ebpf::programs::sk_buff::SkBuffContext::load(&self, offset: usize) -> core::result::Result pub fn aya_ebpf::programs::sk_buff::SkBuffContext::load_bytes(&self, offset: usize, dst: &mut [u8]) -> core::result::Result -pub fn aya_ebpf::programs::sk_buff::SkBuffContext::new(skb: *mut aya_ebpf_bindings::x86_64::bindings::__sk_buff) -> aya_ebpf::programs::sk_buff::SkBuffContext +pub fn aya_ebpf::programs::sk_buff::SkBuffContext::new(skb: *mut aya_ebpf_bindings::aarch64::bindings::__sk_buff) -> aya_ebpf::programs::sk_buff::SkBuffContext pub fn aya_ebpf::programs::sk_buff::SkBuffContext::pull_data(&self, len: u32) -> core::result::Result<(), aya_ebpf_cty::od::c_long> pub fn aya_ebpf::programs::sk_buff::SkBuffContext::set_mark(&mut self, mark: u32) pub fn aya_ebpf::programs::sk_buff::SkBuffContext::store(&mut self, offset: usize, v: &T, flags: u64) -> core::result::Result<(), aya_ebpf_cty::od::c_long> @@ -2532,9 +2532,9 @@ pub fn aya_ebpf::programs::sk_buff::SkBuffContext::borrow_mut(&mut self) -> &mut impl core::convert::From for aya_ebpf::programs::sk_buff::SkBuffContext pub fn aya_ebpf::programs::sk_buff::SkBuffContext::from(t: T) -> T pub struct aya_ebpf::programs::SkLookupContext -pub aya_ebpf::programs::SkLookupContext::lookup: *mut aya_ebpf_bindings::x86_64::bindings::bpf_sk_lookup +pub aya_ebpf::programs::SkLookupContext::lookup: *mut aya_ebpf_bindings::aarch64::bindings::bpf_sk_lookup impl aya_ebpf::programs::sk_lookup::SkLookupContext -pub fn aya_ebpf::programs::sk_lookup::SkLookupContext::new(lookup: *mut aya_ebpf_bindings::x86_64::bindings::bpf_sk_lookup) -> aya_ebpf::programs::sk_lookup::SkLookupContext +pub fn aya_ebpf::programs::sk_lookup::SkLookupContext::new(lookup: *mut aya_ebpf_bindings::aarch64::bindings::bpf_sk_lookup) -> aya_ebpf::programs::sk_lookup::SkLookupContext impl aya_ebpf::EbpfContext for aya_ebpf::programs::sk_lookup::SkLookupContext pub fn aya_ebpf::programs::sk_lookup::SkLookupContext::as_ptr(&self) -> *mut core::ffi::c_void impl core::marker::Freeze for aya_ebpf::programs::sk_lookup::SkLookupContext @@ -2560,11 +2560,11 @@ pub fn aya_ebpf::programs::sk_lookup::SkLookupContext::borrow_mut(&mut self) -> impl core::convert::From for aya_ebpf::programs::sk_lookup::SkLookupContext pub fn aya_ebpf::programs::sk_lookup::SkLookupContext::from(t: T) -> T pub struct aya_ebpf::programs::SkMsgContext -pub aya_ebpf::programs::SkMsgContext::msg: *mut aya_ebpf_bindings::x86_64::bindings::sk_msg_md +pub aya_ebpf::programs::SkMsgContext::msg: *mut aya_ebpf_bindings::aarch64::bindings::sk_msg_md impl aya_ebpf::programs::sk_msg::SkMsgContext pub fn aya_ebpf::programs::sk_msg::SkMsgContext::data(&self) -> usize pub fn aya_ebpf::programs::sk_msg::SkMsgContext::data_end(&self) -> usize -pub fn aya_ebpf::programs::sk_msg::SkMsgContext::new(msg: *mut aya_ebpf_bindings::x86_64::bindings::sk_msg_md) -> aya_ebpf::programs::sk_msg::SkMsgContext +pub fn aya_ebpf::programs::sk_msg::SkMsgContext::new(msg: *mut aya_ebpf_bindings::aarch64::bindings::sk_msg_md) -> aya_ebpf::programs::sk_msg::SkMsgContext pub fn aya_ebpf::programs::sk_msg::SkMsgContext::pop_data(&self, start: u32, len: u32, flags: u64) -> core::result::Result<(), i64> pub fn aya_ebpf::programs::sk_msg::SkMsgContext::push_data(&self, start: u32, len: u32, flags: u64) -> core::result::Result<(), i64> pub fn aya_ebpf::programs::sk_msg::SkMsgContext::size(&self) -> u32 @@ -2593,9 +2593,9 @@ pub fn aya_ebpf::programs::sk_msg::SkMsgContext::borrow_mut(&mut self) -> &mut T impl core::convert::From for aya_ebpf::programs::sk_msg::SkMsgContext pub fn aya_ebpf::programs::sk_msg::SkMsgContext::from(t: T) -> T pub struct aya_ebpf::programs::SockAddrContext -pub aya_ebpf::programs::SockAddrContext::sock_addr: *mut aya_ebpf_bindings::x86_64::bindings::bpf_sock_addr +pub aya_ebpf::programs::SockAddrContext::sock_addr: *mut aya_ebpf_bindings::aarch64::bindings::bpf_sock_addr impl aya_ebpf::programs::sock_addr::SockAddrContext -pub fn aya_ebpf::programs::sock_addr::SockAddrContext::new(sock_addr: *mut aya_ebpf_bindings::x86_64::bindings::bpf_sock_addr) -> aya_ebpf::programs::sock_addr::SockAddrContext +pub fn aya_ebpf::programs::sock_addr::SockAddrContext::new(sock_addr: *mut aya_ebpf_bindings::aarch64::bindings::bpf_sock_addr) -> aya_ebpf::programs::sock_addr::SockAddrContext impl aya_ebpf::EbpfContext for aya_ebpf::programs::sock_addr::SockAddrContext pub fn aya_ebpf::programs::sock_addr::SockAddrContext::as_ptr(&self) -> *mut core::ffi::c_void impl core::marker::Freeze for aya_ebpf::programs::sock_addr::SockAddrContext @@ -2621,9 +2621,9 @@ pub fn aya_ebpf::programs::sock_addr::SockAddrContext::borrow_mut(&mut self) -> impl core::convert::From for aya_ebpf::programs::sock_addr::SockAddrContext pub fn aya_ebpf::programs::sock_addr::SockAddrContext::from(t: T) -> T pub struct aya_ebpf::programs::SockContext -pub aya_ebpf::programs::SockContext::sock: *mut aya_ebpf_bindings::x86_64::bindings::bpf_sock +pub aya_ebpf::programs::SockContext::sock: *mut aya_ebpf_bindings::aarch64::bindings::bpf_sock impl aya_ebpf::programs::sock::SockContext -pub fn aya_ebpf::programs::sock::SockContext::new(sock: *mut aya_ebpf_bindings::x86_64::bindings::bpf_sock) -> aya_ebpf::programs::sock::SockContext +pub fn aya_ebpf::programs::sock::SockContext::new(sock: *mut aya_ebpf_bindings::aarch64::bindings::bpf_sock) -> aya_ebpf::programs::sock::SockContext impl aya_ebpf::EbpfContext for aya_ebpf::programs::sock::SockContext pub fn aya_ebpf::programs::sock::SockContext::as_ptr(&self) -> *mut core::ffi::c_void impl core::marker::Freeze for aya_ebpf::programs::sock::SockContext @@ -2649,7 +2649,7 @@ pub fn aya_ebpf::programs::sock::SockContext::borrow_mut(&mut self) -> &mut T impl core::convert::From for aya_ebpf::programs::sock::SockContext pub fn aya_ebpf::programs::sock::SockContext::from(t: T) -> T pub struct aya_ebpf::programs::SockOpsContext -pub aya_ebpf::programs::SockOpsContext::ops: *mut aya_ebpf_bindings::x86_64::bindings::bpf_sock_ops +pub aya_ebpf::programs::SockOpsContext::ops: *mut aya_ebpf_bindings::aarch64::bindings::bpf_sock_ops impl aya_ebpf::programs::sock_ops::SockOpsContext pub fn aya_ebpf::programs::sock_ops::SockOpsContext::arg(&self, n: usize) -> u32 pub fn aya_ebpf::programs::sock_ops::SockOpsContext::cb_flags(&self) -> u32 @@ -2657,7 +2657,7 @@ pub fn aya_ebpf::programs::sock_ops::SockOpsContext::family(&self) -> u32 pub fn aya_ebpf::programs::sock_ops::SockOpsContext::local_ip4(&self) -> u32 pub fn aya_ebpf::programs::sock_ops::SockOpsContext::local_ip6(&self) -> [u32; 4] pub fn aya_ebpf::programs::sock_ops::SockOpsContext::local_port(&self) -> u32 -pub fn aya_ebpf::programs::sock_ops::SockOpsContext::new(ops: *mut aya_ebpf_bindings::x86_64::bindings::bpf_sock_ops) -> aya_ebpf::programs::sock_ops::SockOpsContext +pub fn aya_ebpf::programs::sock_ops::SockOpsContext::new(ops: *mut aya_ebpf_bindings::aarch64::bindings::bpf_sock_ops) -> aya_ebpf::programs::sock_ops::SockOpsContext pub fn aya_ebpf::programs::sock_ops::SockOpsContext::op(&self) -> u32 pub fn aya_ebpf::programs::sock_ops::SockOpsContext::remote_ip4(&self) -> u32 pub fn aya_ebpf::programs::sock_ops::SockOpsContext::remote_ip6(&self) -> [u32; 4] @@ -2689,9 +2689,9 @@ pub fn aya_ebpf::programs::sock_ops::SockOpsContext::borrow_mut(&mut self) -> &m impl core::convert::From for aya_ebpf::programs::sock_ops::SockOpsContext pub fn aya_ebpf::programs::sock_ops::SockOpsContext::from(t: T) -> T pub struct aya_ebpf::programs::SockoptContext -pub aya_ebpf::programs::SockoptContext::sockopt: *mut aya_ebpf_bindings::x86_64::bindings::bpf_sockopt +pub aya_ebpf::programs::SockoptContext::sockopt: *mut aya_ebpf_bindings::aarch64::bindings::bpf_sockopt impl aya_ebpf::programs::sockopt::SockoptContext -pub fn aya_ebpf::programs::sockopt::SockoptContext::new(sockopt: *mut aya_ebpf_bindings::x86_64::bindings::bpf_sockopt) -> aya_ebpf::programs::sockopt::SockoptContext +pub fn aya_ebpf::programs::sockopt::SockoptContext::new(sockopt: *mut aya_ebpf_bindings::aarch64::bindings::bpf_sockopt) -> aya_ebpf::programs::sockopt::SockoptContext impl aya_ebpf::EbpfContext for aya_ebpf::programs::sockopt::SockoptContext pub fn aya_ebpf::programs::sockopt::SockoptContext::as_ptr(&self) -> *mut core::ffi::c_void impl core::marker::Freeze for aya_ebpf::programs::sockopt::SockoptContext @@ -2717,9 +2717,9 @@ pub fn aya_ebpf::programs::sockopt::SockoptContext::borrow_mut(&mut self) -> &mu impl core::convert::From for aya_ebpf::programs::sockopt::SockoptContext pub fn aya_ebpf::programs::sockopt::SockoptContext::from(t: T) -> T pub struct aya_ebpf::programs::SysctlContext -pub aya_ebpf::programs::SysctlContext::sysctl: *mut aya_ebpf_bindings::x86_64::bindings::bpf_sysctl +pub aya_ebpf::programs::SysctlContext::sysctl: *mut aya_ebpf_bindings::aarch64::bindings::bpf_sysctl impl aya_ebpf::programs::sysctl::SysctlContext -pub fn aya_ebpf::programs::sysctl::SysctlContext::new(sysctl: *mut aya_ebpf_bindings::x86_64::bindings::bpf_sysctl) -> aya_ebpf::programs::sysctl::SysctlContext +pub fn aya_ebpf::programs::sysctl::SysctlContext::new(sysctl: *mut aya_ebpf_bindings::aarch64::bindings::bpf_sysctl) -> aya_ebpf::programs::sysctl::SysctlContext impl aya_ebpf::EbpfContext for aya_ebpf::programs::sysctl::SysctlContext pub fn aya_ebpf::programs::sysctl::SysctlContext::as_ptr(&self) -> *mut core::ffi::c_void impl core::marker::Freeze for aya_ebpf::programs::sysctl::SysctlContext @@ -2761,7 +2761,7 @@ pub fn aya_ebpf::programs::tc::TcContext::l4_csum_replace(&self, offset: usize, pub fn aya_ebpf::programs::tc::TcContext::len(&self) -> u32 pub fn aya_ebpf::programs::tc::TcContext::load(&self, offset: usize) -> core::result::Result pub fn aya_ebpf::programs::tc::TcContext::load_bytes(&self, offset: usize, dst: &mut [u8]) -> core::result::Result -pub fn aya_ebpf::programs::tc::TcContext::new(skb: *mut aya_ebpf_bindings::x86_64::bindings::__sk_buff) -> aya_ebpf::programs::tc::TcContext +pub fn aya_ebpf::programs::tc::TcContext::new(skb: *mut aya_ebpf_bindings::aarch64::bindings::__sk_buff) -> aya_ebpf::programs::tc::TcContext pub fn aya_ebpf::programs::tc::TcContext::pull_data(&self, len: u32) -> core::result::Result<(), aya_ebpf_cty::od::c_long> pub fn aya_ebpf::programs::tc::TcContext::set_mark(&mut self, mark: u32) pub fn aya_ebpf::programs::tc::TcContext::store(&mut self, offset: usize, v: &T, flags: u64) -> core::result::Result<(), aya_ebpf_cty::od::c_long> @@ -2818,14 +2818,14 @@ pub fn aya_ebpf::programs::tracepoint::TracePointContext::borrow_mut(&mut self) impl core::convert::From for aya_ebpf::programs::tracepoint::TracePointContext pub fn aya_ebpf::programs::tracepoint::TracePointContext::from(t: T) -> T pub struct aya_ebpf::programs::XdpContext -pub aya_ebpf::programs::XdpContext::ctx: *mut aya_ebpf_bindings::x86_64::bindings::xdp_md +pub aya_ebpf::programs::XdpContext::ctx: *mut aya_ebpf_bindings::aarch64::bindings::xdp_md impl aya_ebpf::programs::xdp::XdpContext pub fn aya_ebpf::programs::xdp::XdpContext::data(&self) -> usize pub fn aya_ebpf::programs::xdp::XdpContext::data_end(&self) -> usize pub fn aya_ebpf::programs::xdp::XdpContext::ingress_ifindex(&self) -> usize pub fn aya_ebpf::programs::xdp::XdpContext::metadata(&self) -> usize pub fn aya_ebpf::programs::xdp::XdpContext::metadata_end(&self) -> usize -pub fn aya_ebpf::programs::xdp::XdpContext::new(ctx: *mut aya_ebpf_bindings::x86_64::bindings::xdp_md) -> aya_ebpf::programs::xdp::XdpContext +pub fn aya_ebpf::programs::xdp::XdpContext::new(ctx: *mut aya_ebpf_bindings::aarch64::bindings::xdp_md) -> aya_ebpf::programs::xdp::XdpContext pub fn aya_ebpf::programs::xdp::XdpContext::rx_queue_index(&self) -> u32 impl aya_ebpf::EbpfContext for aya_ebpf::programs::xdp::XdpContext pub fn aya_ebpf::programs::xdp::XdpContext::as_ptr(&self) -> *mut core::ffi::c_void @@ -2856,8 +2856,8 @@ pub macro aya_ebpf::btf_map_def! pub struct aya_ebpf::PtRegs impl aya_ebpf::PtRegs pub fn aya_ebpf::PtRegs::arg(&self, n: usize) -> core::option::Option -pub fn aya_ebpf::PtRegs::as_ptr(&self) -> *mut aya_ebpf_bindings::x86_64::bindings::pt_regs -pub fn aya_ebpf::PtRegs::new(regs: *mut aya_ebpf_bindings::x86_64::bindings::pt_regs) -> Self +pub fn aya_ebpf::PtRegs::as_ptr(&self) -> *mut aya_ebpf_bindings::aarch64::bindings::user_pt_regs +pub fn aya_ebpf::PtRegs::new(regs: *mut aya_ebpf_bindings::aarch64::bindings::user_pt_regs) -> Self pub fn aya_ebpf::PtRegs::ret(&self) -> core::option::Option impl core::marker::Freeze for aya_ebpf::PtRegs impl !core::marker::Send for aya_ebpf::PtRegs @@ -2884,7 +2884,7 @@ pub fn aya_ebpf::PtRegs::from(t: T) -> T pub struct aya_ebpf::RawTracepointArgs impl aya_ebpf::RawTracepointArgs pub unsafe fn aya_ebpf::RawTracepointArgs::arg(&self, n: usize) -> T -pub fn aya_ebpf::RawTracepointArgs::new(args: *mut aya_ebpf_bindings::x86_64::bindings::bpf_raw_tracepoint_args) -> Self +pub fn aya_ebpf::RawTracepointArgs::new(args: *mut aya_ebpf_bindings::aarch64::bindings::bpf_raw_tracepoint_args) -> Self impl core::marker::Freeze for aya_ebpf::RawTracepointArgs impl !core::marker::Send for aya_ebpf::RawTracepointArgs impl !core::marker::Sync for aya_ebpf::RawTracepointArgs