From c2a92f5125a516a6bc2305e08f97115aafd4ad1f Mon Sep 17 00:00:00 2001 From: Altug Bozkurt Date: Thu, 9 Jan 2025 16:39:43 +0300 Subject: [PATCH] lsm: cgroup attachment type support --- aya-ebpf-macros/src/lib.rs | 45 +++++ aya-ebpf-macros/src/lsm.rs | 2 +- aya-ebpf-macros/src/lsm_cgroup.rs | 87 +++++++++ aya-obj/src/obj.rs | 30 ++- aya/src/bpf.rs | 9 +- aya/src/programs/lsm_cgroup.rs | 105 +++++++++++ aya/src/programs/mod.rs | 17 +- init/src/main.rs | 8 + test/integration-ebpf/src/test.rs | 14 +- test/integration-test/src/tests.rs | 1 + test/integration-test/src/tests/lsm.rs | 69 +++++++ xtask/public-api/aya-ebpf-bindings.txt | 55 +++--- xtask/public-api/aya-ebpf-cty.txt | 2 +- xtask/public-api/aya-ebpf-macros.txt | 1 + xtask/public-api/aya-ebpf.txt | 152 ++++++++-------- xtask/public-api/aya-obj.txt | 2 + xtask/public-api/aya.txt | 241 ++++++++++++++++++++++--- xtask/src/run.rs | 2 + 18 files changed, 713 insertions(+), 129 deletions(-) create mode 100644 aya-ebpf-macros/src/lsm_cgroup.rs create mode 100644 aya/src/programs/lsm_cgroup.rs create mode 100644 test/integration-test/src/tests/lsm.rs diff --git a/aya-ebpf-macros/src/lib.rs b/aya-ebpf-macros/src/lib.rs index acb6fbd93..598a410cc 100644 --- a/aya-ebpf-macros/src/lib.rs +++ b/aya-ebpf-macros/src/lib.rs @@ -10,6 +10,7 @@ mod fentry; mod fexit; mod kprobe; mod lsm; +mod lsm_cgroup; mod map; mod perf_event; mod raw_tracepoint; @@ -34,6 +35,7 @@ use fentry::FEntry; use fexit::FExit; use kprobe::{KProbe, KProbeKind}; use lsm::Lsm; +use lsm_cgroup::LsmCgroup; use map::Map; use perf_event::PerfEvent; use proc_macro::TokenStream; @@ -326,6 +328,49 @@ pub fn lsm(attrs: TokenStream, item: TokenStream) -> TokenStream { .into() } +/// Marks a function as an LSM program that can be attached to cgroups. +/// This program will only trigger for workloads in the attached cgroups. +/// Used to implement security policy and audit logging. +/// +/// The hook name is the first and only argument to the macro. +/// +/// LSM probes can be attached to the kernel's security hooks to implement mandatory +/// access control policy and security auditing. +/// +/// LSM probes require a kernel compiled with `CONFIG_BPF_LSM=y` and `CONFIG_DEBUG_INFO_BTF=y`. +/// In order for the probes to fire, you also need the BPF LSM to be enabled through your +/// kernel's boot paramters (like `lsm=lockdown,yama,bpf`). +/// +/// # Minimum kernel version +/// +/// The minimum kernel version required to use this feature is 6.0. +/// +/// # Examples +/// +/// ```no_run +/// use aya_ebpf::{macros::lsm_cgroup, programs::LsmContext}; +/// +/// #[lsm_cgroup(hook = "file_open")] +/// pub fn file_open(ctx: LsmContext) -> i32 { +/// match unsafe { try_file_open(ctx) } { +/// Ok(ret) => ret, +/// Err(ret) => ret, +/// } +/// } +/// +/// unsafe fn try_file_open(_ctx: LsmContext) -> Result { +/// Err(0) +/// } +/// ``` +#[proc_macro_attribute] +pub fn lsm_cgroup(attrs: TokenStream, item: TokenStream) -> TokenStream { + match LsmCgroup::parse(attrs.into(), item.into()) { + Ok(prog) => prog.expand(), + Err(err) => err.into_compile_error(), + } + .into() +} + /// Marks a function as a [BTF-enabled raw tracepoint][1] eBPF program that can be attached at /// a pre-defined kernel trace point. /// diff --git a/aya-ebpf-macros/src/lsm.rs b/aya-ebpf-macros/src/lsm.rs index 2eb53dcd2..e8f077bf6 100644 --- a/aya-ebpf-macros/src/lsm.rs +++ b/aya-ebpf-macros/src/lsm.rs @@ -44,10 +44,10 @@ impl Lsm { } else { section_prefix.into() }; + let fn_name = &sig.ident; // LSM probes need to return an integer corresponding to the correct // policy decision. Therefore we do not simply default to a return value // of 0 as in other program types. - let fn_name = &sig.ident; quote! { #[no_mangle] #[link_section = #section_name] diff --git a/aya-ebpf-macros/src/lsm_cgroup.rs b/aya-ebpf-macros/src/lsm_cgroup.rs new file mode 100644 index 000000000..96040e5e8 --- /dev/null +++ b/aya-ebpf-macros/src/lsm_cgroup.rs @@ -0,0 +1,87 @@ +use std::borrow::Cow; + +use proc_macro2::TokenStream; +use quote::quote; +use syn::{ItemFn, Result}; + +use crate::args::{err_on_unknown_args, pop_string_arg}; + +pub(crate) struct LsmCgroup { + item: ItemFn, + hook: Option, +} + +impl LsmCgroup { + pub(crate) fn parse(attrs: TokenStream, item: TokenStream) -> Result { + let item = syn::parse2(item)?; + let mut args = syn::parse2(attrs)?; + let hook = pop_string_arg(&mut args, "hook"); + err_on_unknown_args(&args)?; + + Ok(Self { item, hook }) + } + + pub(crate) fn expand(&self) -> TokenStream { + let Self { item, hook } = self; + let ItemFn { + attrs: _, + vis, + sig, + block: _, + } = item; + let section_prefix = "lsm_cgroup"; + let section_name: Cow<'_, _> = if let Some(name) = hook { + format!("{}/{}", section_prefix, name).into() + } else { + section_prefix.into() + }; + let fn_name = &sig.ident; + // LSM probes need to return an integer corresponding to the correct + // policy decision. Therefore we do not simply default to a return value + // of 0 as in other program types. + quote! { + #[no_mangle] + #[link_section = #section_name] + #vis fn #fn_name(ctx: *mut ::core::ffi::c_void) -> i32 { + return #fn_name(::aya_ebpf::programs::LsmContext::new(ctx)); + + #item + } + } + } +} + +#[cfg(test)] +mod tests { + use syn::parse_quote; + + use super::*; + + #[test] + fn test_lsm_cgroup() { + let prog = LsmCgroup::parse( + parse_quote! { + hook = "bprm_committed_creds", + }, + parse_quote! { + fn bprm_committed_creds(ctx: &mut ::aya_ebpf::programs::LsmContext) -> i32 { + 0 + } + }, + ) + .unwrap(); + let expanded = prog.expand(); + let expected = quote! { + #[no_mangle] + #[link_section = "lsm_cgroup/bprm_committed_creds"] + fn bprm_committed_creds(ctx: *mut ::core::ffi::c_void) -> i32 { + return bprm_committed_creds(::aya_ebpf::programs::LsmContext::new(ctx)); + + fn bprm_committed_creds(ctx: &mut ::aya_ebpf::programs::LsmContext) -> i32 { + 0 + } + } + }; + assert_eq!(expected.to_string(), expanded.to_string()); + } +} diff --git a/aya-obj/src/obj.rs b/aya-obj/src/obj.rs index cfa3f613a..d052592ef 100644 --- a/aya-obj/src/obj.rs +++ b/aya-obj/src/obj.rs @@ -275,6 +275,7 @@ pub enum ProgramSection { Lsm { sleepable: bool, }, + LsmCgroup, BtfTracePoint, FEntry { sleepable: bool, @@ -436,6 +437,7 @@ impl FromStr for ProgramSection { "raw_tp" | "raw_tracepoint" => RawTracePoint, "lsm" => Lsm { sleepable: false }, "lsm.s" => Lsm { sleepable: true }, + "lsm_cgroup" => LsmCgroup, "fentry" => FEntry { sleepable: false }, "fentry.s" => FEntry { sleepable: true }, "fexit" => FExit { sleepable: false }, @@ -2188,10 +2190,7 @@ mod tests { assert_matches!( obj.programs.get("foo"), Some(Program { - section: ProgramSection::Lsm { - sleepable: false, - .. - }, + section: ProgramSection::Lsm { sleepable: false }, .. }) ); @@ -2223,6 +2222,29 @@ mod tests { ); } + #[test] + fn test_parse_section_lsm_cgroup() { + let mut obj = fake_obj(); + fake_sym(&mut obj, 0, 0, "foo", FAKE_INS_LEN); + + assert_matches!( + obj.parse_section(fake_section( + EbpfSectionKind::Program, + "lsm_cgroup/foo", + bytes_of(&fake_ins()), + None + )), + Ok(()) + ); + assert_matches!( + obj.programs.get("foo"), + Some(Program { + section: ProgramSection::LsmCgroup, + .. + }) + ); + } + #[test] fn test_parse_section_btf_tracepoint() { let mut obj = fake_obj(); diff --git a/aya/src/bpf.rs b/aya/src/bpf.rs index acce6c16c..1cb1d4dc9 100644 --- a/aya/src/bpf.rs +++ b/aya/src/bpf.rs @@ -30,8 +30,9 @@ use crate::{ programs::{ BtfTracePoint, CgroupDevice, CgroupSkb, CgroupSkbAttachType, CgroupSock, CgroupSockAddr, CgroupSockopt, CgroupSysctl, Extension, FEntry, FExit, Iter, KProbe, LircMode2, Lsm, - PerfEvent, ProbeKind, Program, ProgramData, ProgramError, RawTracePoint, SchedClassifier, - SkLookup, SkMsg, SkSkb, SkSkbKind, SockOps, SocketFilter, TracePoint, UProbe, Xdp, + LsmCgroup, PerfEvent, ProbeKind, Program, ProgramData, ProgramError, RawTracePoint, + SchedClassifier, SkLookup, SkMsg, SkSkb, SkSkbKind, SockOps, SocketFilter, TracePoint, + UProbe, Xdp, }, sys::{ bpf_load_btf, is_bpf_cookie_supported, is_bpf_global_data_supported, @@ -412,6 +413,7 @@ impl<'a> EbpfLoader<'a> { | ProgramSection::FEntry { sleepable: _ } | ProgramSection::FExit { sleepable: _ } | ProgramSection::Lsm { sleepable: _ } + | ProgramSection::LsmCgroup | ProgramSection::BtfTracePoint | ProgramSection::Iter { sleepable: _ } => { return Err(EbpfError::BtfError(err)) @@ -657,6 +659,9 @@ impl<'a> EbpfLoader<'a> { } Program::Lsm(Lsm { data }) } + ProgramSection::LsmCgroup => Program::LsmCgroup(LsmCgroup { + data: ProgramData::new(prog_name, obj, btf_fd, *verifier_log_level), + }), ProgramSection::BtfTracePoint => Program::BtfTracePoint(BtfTracePoint { data: ProgramData::new(prog_name, obj, btf_fd, *verifier_log_level), }), diff --git a/aya/src/programs/lsm_cgroup.rs b/aya/src/programs/lsm_cgroup.rs new file mode 100644 index 000000000..135a4801b --- /dev/null +++ b/aya/src/programs/lsm_cgroup.rs @@ -0,0 +1,105 @@ +//! LSM probes. + +use std::os::fd::AsFd; + +use crate::{ + generated::{bpf_attach_type::BPF_LSM_CGROUP, bpf_prog_type::BPF_PROG_TYPE_LSM}, + obj::btf::{Btf, BtfKind}, + programs::{define_link_wrapper, load_program, FdLink, FdLinkId, ProgramData, ProgramError}, + sys::{bpf_link_create, BpfLinkCreateArgs, LinkTarget, SyscallError}, +}; + +/// A program that attaches to Linux LSM hooks with per-cgroup attachment type. Used to implement security policy and +/// audit logging. +/// +/// LSM probes can be attached to the kernel's [security hooks][1] to implement mandatory +/// access control policy and security auditing. +/// +/// LSM probes require a kernel compiled with `CONFIG_BPF_LSM=y` and `CONFIG_DEBUG_INFO_BTF=y`. +/// In order for the probes to fire, you also need the BPF LSM to be enabled through your +/// kernel's boot paramters (like `lsm=lockdown,yama,bpf`). +/// +/// # Minimum kernel version +/// +/// The minimum kernel version required to use this feature is 6.0. +/// +/// # Examples +/// +/// ```no_run +/// # #[derive(thiserror::Error, Debug)] +/// # enum LsmError { +/// # #[error(transparent)] +/// # BtfError(#[from] aya::BtfError), +/// # #[error(transparent)] +/// # Program(#[from] aya::programs::ProgramError), +/// # #[error(transparent)] +/// # Ebpf(#[from] aya::EbpfError), +/// # } +/// # let mut bpf = Ebpf::load_file("ebpf_programs.o")?; +/// use aya::{Ebpf, programs::LsmCgroup, BtfError, Btf}; +/// use std::fs::File; +/// +/// let btf = Btf::from_sys_fs()?; +/// let file = File::open("/sys/fs/cgroup/unified").unwrap(); +/// let program: &mut LsmCgroup = bpf.program_mut("lsm_prog").unwrap().try_into()?; +/// program.load("security_bprm_exec", &btf)?; +/// program.attach(file)?; +/// # Ok::<(), LsmError>(()) +/// ``` +/// +/// [1]: https://elixir.bootlin.com/linux/latest/source/include/linux/lsm_hook_defs.h +#[derive(Debug)] +#[doc(alias = "BPF_PROG_TYPE_LSM")] +pub struct LsmCgroup { + pub(crate) data: ProgramData, +} + +impl LsmCgroup { + /// Loads the program inside the kernel. + /// + /// # Arguments + /// + /// * `lsm_hook_name` - full name of the LSM hook that the program should + /// be attached to + pub fn load(&mut self, lsm_hook_name: &str, btf: &Btf) -> Result<(), ProgramError> { + self.data.expected_attach_type = Some(BPF_LSM_CGROUP); + let type_name = format!("bpf_lsm_{lsm_hook_name}"); + self.data.attach_btf_id = + Some(btf.id_by_type_name_kind(type_name.as_str(), BtfKind::Func)?); + load_program(BPF_PROG_TYPE_LSM, &mut self.data) + } + + /// Attaches the program. + /// + /// The returned value can be used to detach, see [LsmCgroup::detach]. + pub fn attach(&mut self, cgroup: T) -> Result { + let prog_fd = self.fd()?; + let prog_fd = prog_fd.as_fd(); + let cgroup_fd = cgroup.as_fd(); + let attach_type = self.data.expected_attach_type.unwrap(); + let btf_id = self.data.attach_btf_id.ok_or(ProgramError::NotLoaded)?; + let link_fd = bpf_link_create( + prog_fd, + LinkTarget::Fd(cgroup_fd), + attach_type, + 0, + Some(BpfLinkCreateArgs::TargetBtfId(btf_id)), + ) + .map_err(|(_, io_error)| SyscallError { + call: "bpf_link_create", + io_error, + })?; + + self.data.links.insert(LsmLink::new(FdLink::new(link_fd))) + } +} + +define_link_wrapper!( + /// The link used by [LsmCgroup] programs. + LsmLink, + /// The type returned by [LsmCgroup::attach]. Can be passed to [LsmCgroup::detach]. + LsmLinkId, + FdLink, + FdLinkId, + LsmCgroup, +); diff --git a/aya/src/programs/mod.rs b/aya/src/programs/mod.rs index 835f53d36..593aa6020 100644 --- a/aya/src/programs/mod.rs +++ b/aya/src/programs/mod.rs @@ -56,6 +56,7 @@ pub mod kprobe; pub mod links; pub mod lirc_mode2; pub mod lsm; +pub mod lsm_cgroup; pub mod perf_attach; pub mod perf_event; pub mod raw_trace_point; @@ -100,6 +101,7 @@ pub use crate::programs::{ links::{CgroupAttachMode, Link, LinkOrder}, lirc_mode2::LircMode2, lsm::Lsm, + lsm_cgroup::LsmCgroup, perf_event::{PerfEvent, PerfEventScope, PerfTypeId, SamplePolicy}, probe::ProbeKind, raw_trace_point::RawTracePoint, @@ -300,6 +302,8 @@ pub enum Program { RawTracePoint(RawTracePoint), /// A [`Lsm`] program Lsm(Lsm), + /// A [`LsmCgroup`] program + LsmCgroup(LsmCgroup), /// A [`BtfTracePoint`] program BtfTracePoint(BtfTracePoint), /// A [`FEntry`] program @@ -337,6 +341,7 @@ impl Program { Self::PerfEvent(_) => ProgramType::PerfEvent, Self::RawTracePoint(_) => ProgramType::RawTracePoint, Self::Lsm(_) => ProgramType::Lsm, + Self::LsmCgroup(_) => ProgramType::Lsm, // The following program types are a subset of `TRACING` programs: // // - `BPF_TRACE_RAW_TP` (`BtfTracePoint`) @@ -376,6 +381,7 @@ impl Program { Self::PerfEvent(p) => p.pin(path), Self::RawTracePoint(p) => p.pin(path), Self::Lsm(p) => p.pin(path), + Self::LsmCgroup(p) => p.pin(path), Self::BtfTracePoint(p) => p.pin(path), Self::FEntry(p) => p.pin(path), Self::FExit(p) => p.pin(path), @@ -407,6 +413,7 @@ impl Program { Self::PerfEvent(mut p) => p.unload(), Self::RawTracePoint(mut p) => p.unload(), Self::Lsm(mut p) => p.unload(), + Self::LsmCgroup(mut p) => p.unload(), Self::BtfTracePoint(mut p) => p.unload(), Self::FEntry(mut p) => p.unload(), Self::FExit(mut p) => p.unload(), @@ -440,6 +447,7 @@ impl Program { Self::PerfEvent(p) => p.fd(), Self::RawTracePoint(p) => p.fd(), Self::Lsm(p) => p.fd(), + Self::LsmCgroup(p) => p.fd(), Self::BtfTracePoint(p) => p.fd(), Self::FEntry(p) => p.fd(), Self::FExit(p) => p.fd(), @@ -474,6 +482,7 @@ impl Program { Self::PerfEvent(p) => p.info(), Self::RawTracePoint(p) => p.info(), Self::Lsm(p) => p.info(), + Self::LsmCgroup(p) => p.info(), Self::BtfTracePoint(p) => p.info(), Self::FEntry(p) => p.info(), Self::FExit(p) => p.info(), @@ -785,6 +794,7 @@ impl_program_unload!( LircMode2, PerfEvent, Lsm, + LsmCgroup, RawTracePoint, BtfTracePoint, FEntry, @@ -826,6 +836,7 @@ impl_fd!( LircMode2, PerfEvent, Lsm, + LsmCgroup, RawTracePoint, BtfTracePoint, FEntry, @@ -932,6 +943,7 @@ impl_program_pin!( LircMode2, PerfEvent, Lsm, + LsmCgroup, RawTracePoint, BtfTracePoint, FEntry, @@ -971,8 +983,9 @@ impl_from_pin!( SkMsg, CgroupSysctl, LircMode2, - PerfEvent, Lsm, + LsmCgroup, + PerfEvent, RawTracePoint, BtfTracePoint, FEntry, @@ -1028,6 +1041,7 @@ impl_try_from_program!( LircMode2, PerfEvent, Lsm, + LsmCgroup, RawTracePoint, BtfTracePoint, FEntry, @@ -1055,6 +1069,7 @@ impl_info!( LircMode2, PerfEvent, Lsm, + LsmCgroup, RawTracePoint, BtfTracePoint, FEntry, diff --git a/init/src/main.rs b/init/src/main.rs index f5cfc93c3..26a1c14ae 100644 --- a/init/src/main.rs +++ b/init/src/main.rs @@ -81,6 +81,14 @@ fn run() -> anyhow::Result<()> { data: None, target_mode: None, }, + Mount { + source: "cgroup2", + target: "/sys/fs/cgroup", + fstype: "cgroup2", + flags: nix::mount::MsFlags::empty(), + data: None, + target_mode: None, + }, ] { match target_mode { None => { diff --git a/test/integration-ebpf/src/test.rs b/test/integration-ebpf/src/test.rs index 88f01e891..2a6507452 100644 --- a/test/integration-ebpf/src/test.rs +++ b/test/integration-ebpf/src/test.rs @@ -3,8 +3,8 @@ use aya_ebpf::{ bindings::xdp_action, - macros::{kprobe, kretprobe, tracepoint, uprobe, uretprobe, xdp}, - programs::{ProbeContext, RetProbeContext, TracePointContext, XdpContext}, + macros::{kprobe, kretprobe, lsm, lsm_cgroup, tracepoint, uprobe, uretprobe, xdp}, + programs::{LsmContext, ProbeContext, RetProbeContext, TracePointContext, XdpContext}, }; #[xdp] @@ -44,6 +44,16 @@ pub fn test_uretprobe(_ctx: RetProbeContext) -> u32 { 0 } +#[lsm_cgroup(hook = "socket_bind")] +pub fn test_lsmcgroup(_ctx: LsmContext) -> i32 { + 0 +} + +#[lsm(hook = "socket_bind")] +pub fn test_lsm(_ctx: LsmContext) -> i32 { + -1 +} + #[cfg(not(test))] #[panic_handler] fn panic(_info: &core::panic::PanicInfo) -> ! { diff --git a/test/integration-test/src/tests.rs b/test/integration-test/src/tests.rs index 9ca83669f..13d4ed9c3 100644 --- a/test/integration-test/src/tests.rs +++ b/test/integration-test/src/tests.rs @@ -5,6 +5,7 @@ mod info; mod iter; mod load; mod log; +mod lsm; mod raw_tracepoint; mod rbpf; mod relocations; diff --git a/test/integration-test/src/tests/lsm.rs b/test/integration-test/src/tests/lsm.rs new file mode 100644 index 000000000..cf7737122 --- /dev/null +++ b/test/integration-test/src/tests/lsm.rs @@ -0,0 +1,69 @@ +use std::{ + fs::{remove_file, File}, + io::{ErrorKind, Write}, + net::TcpListener, + path::Path, +}; + +use aya::{ + programs::{lsm_cgroup::LsmCgroup, Lsm}, + util::KernelVersion, + Btf, Ebpf, +}; + +#[test] +#[ignore = "LSM programs need a special kernel config, which is not supported by GitHub runners[waiting on PR: 1063]."] +fn lsm_cgroup() { + let kernel_version = KernelVersion::current().unwrap(); + if kernel_version < KernelVersion::new(6, 0, 0) { + eprintln!("skipping lsm_cgroup test on kernel {kernel_version:?}"); + return; + } + + let mut bpf: Ebpf = Ebpf::load(crate::TEST).unwrap(); + let prog: &mut LsmCgroup = bpf + .program_mut("test_lsmcgroup") + .unwrap() + .try_into() + .unwrap(); + let btf = Btf::from_sys_fs().expect("could not get btf from sys"); + prog.load("socket_bind", &btf).unwrap(); + + assert_matches::assert_matches!(TcpListener::bind("127.0.0.1:12345"), Ok(_)); + + let cgroup_path = Path::new("/sys/fs/cgroup/lsm_cgroup_test"); + prog.attach(File::open(cgroup_path).unwrap()).unwrap(); + + let pid = std::process::id(); + let cgroup_proc = cgroup_path.join("cgroup.procs"); + let mut f = File::create(cgroup_proc.clone()).expect("could not open cgroup procs"); + write!(&mut f, "{pid}").expect("could not write into procs file"); + + assert_matches::assert_matches!(TcpListener::bind("127.0.0.1:12345"), Err(e) => assert_eq!( + e.kind(), ErrorKind::PermissionDenied)); + + remove_file(cgroup_proc).unwrap(); +} + +#[test] +#[ignore = "LSM programs need a special kernel config, which is not supported by GitHub runners[waiting on PR: 1063]."] +fn lsm() { + let kernel_version = KernelVersion::current().unwrap(); + if kernel_version < KernelVersion::new(5, 7, 0) { + eprintln!("skipping lsm test on kernel {kernel_version:?}"); + return; + } + + let mut bpf: Ebpf = Ebpf::load(crate::TEST).unwrap(); + let prog: &mut Lsm = bpf.program_mut("test_lsm").unwrap().try_into().unwrap(); + let btf = Btf::from_sys_fs().expect("could not get btf from sys"); + prog.load("socket_bind", &btf).unwrap(); + + assert_matches::assert_matches!(TcpListener::bind("127.0.0.1:12345"), Ok(_)); + + prog.attach().unwrap(); + + assert_matches::assert_matches!(TcpListener::bind("127.0.0.1:12345"), Err(e) => assert_eq!( + e.kind(), ErrorKind::PermissionDenied) + ); +} diff --git a/xtask/public-api/aya-ebpf-bindings.txt b/xtask/public-api/aya-ebpf-bindings.txt index 616fcd248..f3226f09b 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, dst: *mu 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, dst: *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, dst: *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 fa53f659f..c0722f184 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-macros.txt b/xtask/public-api/aya-ebpf-macros.txt index 4ebcc5903..1b00727a4 100644 --- a/xtask/public-api/aya-ebpf-macros.txt +++ b/xtask/public-api/aya-ebpf-macros.txt @@ -12,6 +12,7 @@ pub proc macro aya_ebpf_macros::#[fexit] pub proc macro aya_ebpf_macros::#[kprobe] pub proc macro aya_ebpf_macros::#[kretprobe] pub proc macro aya_ebpf_macros::#[lsm] +pub proc macro aya_ebpf_macros::#[lsm_cgroup] pub proc macro aya_ebpf_macros::#[map] pub proc macro aya_ebpf_macros::#[perf_event] pub proc macro aya_ebpf_macros::#[raw_tracepoint] diff --git a/xtask/public-api/aya-ebpf.txt b/xtask/public-api/aya-ebpf.txt index 5d0ffdabb..3beb9727d 100644 --- a/xtask/public-api/aya-ebpf.txt +++ b/xtask/public-api/aya-ebpf.txt @@ -469,7 +469,7 @@ impl aya_ebpf::maps::ring_buf::RingBuf pub fn aya_ebpf::maps::ring_buf::RingBuf::output(&self, data: &T, flags: u64) -> core::result::Result<(), i64> pub const fn aya_ebpf::maps::ring_buf::RingBuf::pinned(byte_size: u32, flags: u32) -> Self pub fn aya_ebpf::maps::ring_buf::RingBuf::query(&self, flags: u64) -> u64 -pub fn aya_ebpf::maps::ring_buf::RingBuf::reserve(&self, flags: u64) -> core::option::Option> where aya_ebpf::maps::ring_buf::const_assert::Assert<{ _ }>: aya_ebpf::maps::ring_buf::const_assert::IsTrue +pub fn aya_ebpf::maps::ring_buf::RingBuf::reserve(&self, flags: u64) -> core::option::Option> where Assert<{ _ }>: IsTrue pub const fn aya_ebpf::maps::ring_buf::RingBuf::with_byte_size(byte_size: u32, flags: u32) -> Self impl core::marker::Sync for aya_ebpf::maps::ring_buf::RingBuf impl !core::marker::Freeze for aya_ebpf::maps::ring_buf::RingBuf @@ -533,7 +533,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 @@ -564,7 +564,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 @@ -675,7 +675,7 @@ impl core::convert::From for aya_ebpf::maps::CpuMap pub fn aya_ebpf::maps::CpuMap::from(t: T) -> T #[repr(transparent)] pub struct aya_ebpf::maps::xdp::DevMap impl aya_ebpf::maps::DevMap -pub fn aya_ebpf::maps::DevMap::get(&self, index: u32) -> core::option::Option +pub fn aya_ebpf::maps::DevMap::get(&self, index: u32) -> core::option::Option pub const fn aya_ebpf::maps::DevMap::pinned(max_entries: u32, flags: u32) -> aya_ebpf::maps::DevMap pub fn aya_ebpf::maps::DevMap::redirect(&self, index: u32, flags: u64) -> core::result::Result pub const fn aya_ebpf::maps::DevMap::with_max_entries(max_entries: u32, flags: u32) -> aya_ebpf::maps::DevMap @@ -703,7 +703,7 @@ impl core::convert::From for aya_ebpf::maps::DevMap pub fn aya_ebpf::maps::DevMap::from(t: T) -> T #[repr(transparent)] pub struct aya_ebpf::maps::xdp::DevMapHash impl aya_ebpf::maps::DevMapHash -pub fn aya_ebpf::maps::DevMapHash::get(&self, key: u32) -> core::option::Option +pub fn aya_ebpf::maps::DevMapHash::get(&self, key: u32) -> core::option::Option pub const fn aya_ebpf::maps::DevMapHash::pinned(max_entries: u32, flags: u32) -> aya_ebpf::maps::DevMapHash pub fn aya_ebpf::maps::DevMapHash::redirect(&self, key: u32, flags: u64) -> core::result::Result pub const fn aya_ebpf::maps::DevMapHash::with_max_entries(max_entries: u32, flags: u32) -> aya_ebpf::maps::DevMapHash @@ -843,7 +843,7 @@ impl core::convert::From for aya_ebpf::maps::CpuMap pub fn aya_ebpf::maps::CpuMap::from(t: T) -> T #[repr(transparent)] pub struct aya_ebpf::maps::DevMap impl aya_ebpf::maps::DevMap -pub fn aya_ebpf::maps::DevMap::get(&self, index: u32) -> core::option::Option +pub fn aya_ebpf::maps::DevMap::get(&self, index: u32) -> core::option::Option pub const fn aya_ebpf::maps::DevMap::pinned(max_entries: u32, flags: u32) -> aya_ebpf::maps::DevMap pub fn aya_ebpf::maps::DevMap::redirect(&self, index: u32, flags: u64) -> core::result::Result pub const fn aya_ebpf::maps::DevMap::with_max_entries(max_entries: u32, flags: u32) -> aya_ebpf::maps::DevMap @@ -871,7 +871,7 @@ impl core::convert::From for aya_ebpf::maps::DevMap pub fn aya_ebpf::maps::DevMap::from(t: T) -> T #[repr(transparent)] pub struct aya_ebpf::maps::DevMapHash impl aya_ebpf::maps::DevMapHash -pub fn aya_ebpf::maps::DevMapHash::get(&self, key: u32) -> core::option::Option +pub fn aya_ebpf::maps::DevMapHash::get(&self, key: u32) -> core::option::Option pub const fn aya_ebpf::maps::DevMapHash::pinned(max_entries: u32, flags: u32) -> aya_ebpf::maps::DevMapHash pub fn aya_ebpf::maps::DevMapHash::redirect(&self, key: u32, flags: u64) -> core::result::Result pub const fn aya_ebpf::maps::DevMapHash::with_max_entries(max_entries: u32, flags: u32) -> aya_ebpf::maps::DevMapHash @@ -1195,7 +1195,7 @@ impl aya_ebpf::maps::ring_buf::RingBuf pub fn aya_ebpf::maps::ring_buf::RingBuf::output(&self, data: &T, flags: u64) -> core::result::Result<(), i64> pub const fn aya_ebpf::maps::ring_buf::RingBuf::pinned(byte_size: u32, flags: u32) -> Self pub fn aya_ebpf::maps::ring_buf::RingBuf::query(&self, flags: u64) -> u64 -pub fn aya_ebpf::maps::ring_buf::RingBuf::reserve(&self, flags: u64) -> core::option::Option> where aya_ebpf::maps::ring_buf::const_assert::Assert<{ _ }>: aya_ebpf::maps::ring_buf::const_assert::IsTrue +pub fn aya_ebpf::maps::ring_buf::RingBuf::reserve(&self, flags: u64) -> core::option::Option> where Assert<{ _ }>: IsTrue pub const fn aya_ebpf::maps::ring_buf::RingBuf::with_byte_size(byte_size: u32, flags: u32) -> Self impl core::marker::Sync for aya_ebpf::maps::ring_buf::RingBuf impl !core::marker::Freeze for aya_ebpf::maps::ring_buf::RingBuf @@ -1225,7 +1225,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 @@ -1255,7 +1255,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 @@ -1365,9 +1365,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 @@ -1395,7 +1395,7 @@ pub fn aya_ebpf::programs::device::DeviceContext::from(t: T) -> T pub mod aya_ebpf::programs::fentry pub struct aya_ebpf::programs::fentry::FEntryContext impl aya_ebpf::programs::fentry::FEntryContext -pub unsafe fn aya_ebpf::programs::fentry::FEntryContext::arg(&self, n: usize) -> T +pub unsafe fn aya_ebpf::programs::fentry::FEntryContext::arg(&self, n: usize) -> T pub fn aya_ebpf::programs::fentry::FEntryContext::new(ctx: *mut core::ffi::c_void) -> aya_ebpf::programs::fentry::FEntryContext impl aya_ebpf::EbpfContext for aya_ebpf::programs::fentry::FEntryContext pub fn aya_ebpf::programs::fentry::FEntryContext::as_ptr(&self) -> *mut core::ffi::c_void @@ -1424,7 +1424,7 @@ pub fn aya_ebpf::programs::fentry::FEntryContext::from(t: T) -> T pub mod aya_ebpf::programs::fexit pub struct aya_ebpf::programs::fexit::FExitContext impl aya_ebpf::programs::fexit::FExitContext -pub unsafe fn aya_ebpf::programs::fexit::FExitContext::arg(&self, n: usize) -> T +pub unsafe fn aya_ebpf::programs::fexit::FExitContext::arg(&self, n: usize) -> T pub fn aya_ebpf::programs::fexit::FExitContext::new(ctx: *mut core::ffi::c_void) -> aya_ebpf::programs::fexit::FExitContext impl aya_ebpf::EbpfContext for aya_ebpf::programs::fexit::FExitContext pub fn aya_ebpf::programs::fexit::FExitContext::as_ptr(&self) -> *mut core::ffi::c_void @@ -1453,7 +1453,7 @@ pub fn aya_ebpf::programs::fexit::FExitContext::from(t: T) -> T pub mod aya_ebpf::programs::lsm pub struct aya_ebpf::programs::lsm::LsmContext impl aya_ebpf::programs::lsm::LsmContext -pub unsafe fn aya_ebpf::programs::lsm::LsmContext::arg(&self, n: usize) -> T +pub unsafe fn aya_ebpf::programs::lsm::LsmContext::arg(&self, n: usize) -> T pub fn aya_ebpf::programs::lsm::LsmContext::new(ctx: *mut core::ffi::c_void) -> aya_ebpf::programs::lsm::LsmContext impl aya_ebpf::EbpfContext for aya_ebpf::programs::lsm::LsmContext pub fn aya_ebpf::programs::lsm::LsmContext::as_ptr(&self) -> *mut core::ffi::c_void @@ -1509,9 +1509,9 @@ 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::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 impl aya_ebpf::EbpfContext for aya_ebpf::programs::probe::ProbeContext pub fn aya_ebpf::programs::probe::ProbeContext::as_ptr(&self) -> *mut core::ffi::c_void @@ -1540,7 +1540,7 @@ pub fn aya_ebpf::programs::probe::ProbeContext::from(t: T) -> T pub mod aya_ebpf::programs::raw_tracepoint pub struct aya_ebpf::programs::raw_tracepoint::RawTracePointContext impl aya_ebpf::programs::raw_tracepoint::RawTracePointContext -pub unsafe fn aya_ebpf::programs::raw_tracepoint::RawTracePointContext::arg(&self, n: usize) -> T +pub unsafe fn aya_ebpf::programs::raw_tracepoint::RawTracePointContext::arg(&self, n: usize) -> T pub fn aya_ebpf::programs::raw_tracepoint::RawTracePointContext::new(ctx: *mut core::ffi::c_void) -> aya_ebpf::programs::raw_tracepoint::RawTracePointContext impl aya_ebpf::EbpfContext for aya_ebpf::programs::raw_tracepoint::RawTracePointContext pub fn aya_ebpf::programs::raw_tracepoint::RawTracePointContext::as_ptr(&self) -> *mut core::ffi::c_void @@ -1568,10 +1568,10 @@ 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 +pub fn aya_ebpf::programs::retprobe::RetProbeContext::ret(&self) -> core::option::Option impl aya_ebpf::EbpfContext for aya_ebpf::programs::retprobe::RetProbeContext pub fn aya_ebpf::programs::retprobe::RetProbeContext::as_ptr(&self) -> *mut core::ffi::c_void impl core::marker::Freeze for aya_ebpf::programs::retprobe::RetProbeContext @@ -1598,7 +1598,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] @@ -1616,7 +1616,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 @@ -1660,7 +1660,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> @@ -1690,9 +1690,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 @@ -1719,11 +1719,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 @@ -1753,9 +1753,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 @@ -1782,9 +1782,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 @@ -1811,7 +1811,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 @@ -1819,7 +1819,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] @@ -1852,9 +1852,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 @@ -1881,9 +1881,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 @@ -1926,7 +1926,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> @@ -1957,7 +1957,7 @@ pub fn aya_ebpf::programs::tc::TcContext::from(t: T) -> T pub mod aya_ebpf::programs::tp_btf pub struct aya_ebpf::programs::tp_btf::BtfTracePointContext impl aya_ebpf::programs::tp_btf::BtfTracePointContext -pub unsafe fn aya_ebpf::programs::tp_btf::BtfTracePointContext::arg(&self, n: usize) -> T +pub unsafe fn aya_ebpf::programs::tp_btf::BtfTracePointContext::arg(&self, n: usize) -> T pub fn aya_ebpf::programs::tp_btf::BtfTracePointContext::new(ctx: *mut core::ffi::c_void) -> aya_ebpf::programs::tp_btf::BtfTracePointContext impl aya_ebpf::EbpfContext for aya_ebpf::programs::tp_btf::BtfTracePointContext pub fn aya_ebpf::programs::tp_btf::BtfTracePointContext::as_ptr(&self) -> *mut core::ffi::c_void @@ -2014,13 +2014,13 @@ 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::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 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 impl core::marker::Freeze for aya_ebpf::programs::xdp::XdpContext @@ -2047,7 +2047,7 @@ impl core::convert::From for aya_ebpf::programs::xdp::XdpContext pub fn aya_ebpf::programs::xdp::XdpContext::from(t: T) -> T pub struct aya_ebpf::programs::BtfTracePointContext impl aya_ebpf::programs::tp_btf::BtfTracePointContext -pub unsafe fn aya_ebpf::programs::tp_btf::BtfTracePointContext::arg(&self, n: usize) -> T +pub unsafe fn aya_ebpf::programs::tp_btf::BtfTracePointContext::arg(&self, n: usize) -> T pub fn aya_ebpf::programs::tp_btf::BtfTracePointContext::new(ctx: *mut core::ffi::c_void) -> aya_ebpf::programs::tp_btf::BtfTracePointContext impl aya_ebpf::EbpfContext for aya_ebpf::programs::tp_btf::BtfTracePointContext pub fn aya_ebpf::programs::tp_btf::BtfTracePointContext::as_ptr(&self) -> *mut core::ffi::c_void @@ -2074,9 +2074,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 @@ -2103,7 +2103,7 @@ impl core::convert::From for aya_ebpf::programs::device::DeviceContext pub fn aya_ebpf::programs::device::DeviceContext::from(t: T) -> T pub struct aya_ebpf::programs::FEntryContext impl aya_ebpf::programs::fentry::FEntryContext -pub unsafe fn aya_ebpf::programs::fentry::FEntryContext::arg(&self, n: usize) -> T +pub unsafe fn aya_ebpf::programs::fentry::FEntryContext::arg(&self, n: usize) -> T pub fn aya_ebpf::programs::fentry::FEntryContext::new(ctx: *mut core::ffi::c_void) -> aya_ebpf::programs::fentry::FEntryContext impl aya_ebpf::EbpfContext for aya_ebpf::programs::fentry::FEntryContext pub fn aya_ebpf::programs::fentry::FEntryContext::as_ptr(&self) -> *mut core::ffi::c_void @@ -2131,7 +2131,7 @@ impl core::convert::From for aya_ebpf::programs::fentry::FEntryContext pub fn aya_ebpf::programs::fentry::FEntryContext::from(t: T) -> T pub struct aya_ebpf::programs::FExitContext impl aya_ebpf::programs::fexit::FExitContext -pub unsafe fn aya_ebpf::programs::fexit::FExitContext::arg(&self, n: usize) -> T +pub unsafe fn aya_ebpf::programs::fexit::FExitContext::arg(&self, n: usize) -> T pub fn aya_ebpf::programs::fexit::FExitContext::new(ctx: *mut core::ffi::c_void) -> aya_ebpf::programs::fexit::FExitContext impl aya_ebpf::EbpfContext for aya_ebpf::programs::fexit::FExitContext pub fn aya_ebpf::programs::fexit::FExitContext::as_ptr(&self) -> *mut core::ffi::c_void @@ -2159,7 +2159,7 @@ impl core::convert::From for aya_ebpf::programs::fexit::FExitContext pub fn aya_ebpf::programs::fexit::FExitContext::from(t: T) -> T pub struct aya_ebpf::programs::LsmContext impl aya_ebpf::programs::lsm::LsmContext -pub unsafe fn aya_ebpf::programs::lsm::LsmContext::arg(&self, n: usize) -> T +pub unsafe fn aya_ebpf::programs::lsm::LsmContext::arg(&self, n: usize) -> T pub fn aya_ebpf::programs::lsm::LsmContext::new(ctx: *mut core::ffi::c_void) -> aya_ebpf::programs::lsm::LsmContext impl aya_ebpf::EbpfContext for aya_ebpf::programs::lsm::LsmContext pub fn aya_ebpf::programs::lsm::LsmContext::as_ptr(&self) -> *mut core::ffi::c_void @@ -2213,9 +2213,9 @@ 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::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 impl aya_ebpf::EbpfContext for aya_ebpf::programs::probe::ProbeContext pub fn aya_ebpf::programs::probe::ProbeContext::as_ptr(&self) -> *mut core::ffi::c_void @@ -2243,7 +2243,7 @@ impl core::convert::From for aya_ebpf::programs::probe::ProbeContext pub fn aya_ebpf::programs::probe::ProbeContext::from(t: T) -> T pub struct aya_ebpf::programs::RawTracePointContext impl aya_ebpf::programs::raw_tracepoint::RawTracePointContext -pub unsafe fn aya_ebpf::programs::raw_tracepoint::RawTracePointContext::arg(&self, n: usize) -> T +pub unsafe fn aya_ebpf::programs::raw_tracepoint::RawTracePointContext::arg(&self, n: usize) -> T pub fn aya_ebpf::programs::raw_tracepoint::RawTracePointContext::new(ctx: *mut core::ffi::c_void) -> aya_ebpf::programs::raw_tracepoint::RawTracePointContext impl aya_ebpf::EbpfContext for aya_ebpf::programs::raw_tracepoint::RawTracePointContext pub fn aya_ebpf::programs::raw_tracepoint::RawTracePointContext::as_ptr(&self) -> *mut core::ffi::c_void @@ -2270,10 +2270,10 @@ 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 +pub fn aya_ebpf::programs::retprobe::RetProbeContext::ret(&self) -> core::option::Option impl aya_ebpf::EbpfContext for aya_ebpf::programs::retprobe::RetProbeContext pub fn aya_ebpf::programs::retprobe::RetProbeContext::as_ptr(&self) -> *mut core::ffi::c_void impl core::marker::Freeze for aya_ebpf::programs::retprobe::RetProbeContext @@ -2312,7 +2312,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> @@ -2341,9 +2341,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 @@ -2369,11 +2369,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 @@ -2402,9 +2402,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 @@ -2430,9 +2430,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 @@ -2458,7 +2458,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 @@ -2466,7 +2466,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] @@ -2498,9 +2498,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 @@ -2526,9 +2526,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 @@ -2570,7 +2570,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> @@ -2627,13 +2627,13 @@ 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::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 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 impl core::marker::Freeze for aya_ebpf::programs::xdp::XdpContext @@ -2661,10 +2661,10 @@ pub fn aya_ebpf::programs::xdp::XdpContext::from(t: T) -> T pub macro aya_ebpf::bpf_printk! 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::ret(&self) -> core::option::Option +pub fn aya_ebpf::PtRegs::arg(&self, n: usize) -> core::option::Option +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 impl !core::marker::Sync for aya_ebpf::PtRegs @@ -2689,8 +2689,8 @@ impl core::convert::From for aya_ebpf::PtRegs 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) -> *const T -pub fn aya_ebpf::RawTracepointArgs::new(args: *mut aya_ebpf_bindings::x86_64::bindings::bpf_raw_tracepoint_args) -> Self +pub unsafe fn aya_ebpf::RawTracepointArgs::arg(&self, n: usize) -> *const T +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 diff --git a/xtask/public-api/aya-obj.txt b/xtask/public-api/aya-obj.txt index 956c3cd2a..87575d6e0 100644 --- a/xtask/public-api/aya-obj.txt +++ b/xtask/public-api/aya-obj.txt @@ -7402,6 +7402,7 @@ pub aya_obj::obj::ProgramSection::KRetProbe pub aya_obj::obj::ProgramSection::LircMode2 pub aya_obj::obj::ProgramSection::Lsm pub aya_obj::obj::ProgramSection::Lsm::sleepable: bool +pub aya_obj::obj::ProgramSection::LsmCgroup pub aya_obj::obj::ProgramSection::PerfEvent pub aya_obj::obj::ProgramSection::RawTracePoint pub aya_obj::obj::ProgramSection::SchedClassifier @@ -8264,6 +8265,7 @@ pub aya_obj::ProgramSection::KRetProbe pub aya_obj::ProgramSection::LircMode2 pub aya_obj::ProgramSection::Lsm pub aya_obj::ProgramSection::Lsm::sleepable: bool +pub aya_obj::ProgramSection::LsmCgroup pub aya_obj::ProgramSection::PerfEvent pub aya_obj::ProgramSection::RawTracePoint pub aya_obj::ProgramSection::SchedClassifier diff --git a/xtask/public-api/aya.txt b/xtask/public-api/aya.txt index cd2886d87..03e9bb73c 100644 --- a/xtask/public-api/aya.txt +++ b/xtask/public-api/aya.txt @@ -958,8 +958,8 @@ impl core::convert::From for aya::maps::xdp::XdpMapError pub fn aya::maps::xdp::XdpMapError::from(t: T) -> T pub struct aya::maps::xdp::CpuMap impl> aya::maps::CpuMap -pub fn aya::maps::CpuMap::get(&self, cpu_index: u32, flags: u64) -> core::result::Result -pub fn aya::maps::CpuMap::iter(&self) -> impl core::iter::traits::iterator::Iterator> + '_ +pub fn aya::maps::CpuMap::get(&self, cpu_index: u32, flags: u64) -> core::result::Result +pub fn aya::maps::CpuMap::iter(&self) -> impl core::iter::traits::iterator::Iterator> + '_ pub fn aya::maps::CpuMap::len(&self) -> u32 impl> aya::maps::CpuMap pub fn aya::maps::CpuMap::pin>(self, path: P) -> core::result::Result<(), aya::pin::PinError> @@ -998,8 +998,8 @@ impl core::convert::From for aya::maps::CpuMap pub fn aya::maps::CpuMap::from(t: T) -> T pub struct aya::maps::xdp::DevMap impl> aya::maps::DevMap -pub fn aya::maps::DevMap::get(&self, index: u32, flags: u64) -> core::result::Result -pub fn aya::maps::DevMap::iter(&self) -> impl core::iter::traits::iterator::Iterator> + '_ +pub fn aya::maps::DevMap::get(&self, index: u32, flags: u64) -> core::result::Result +pub fn aya::maps::DevMap::iter(&self) -> impl core::iter::traits::iterator::Iterator> + '_ pub fn aya::maps::DevMap::len(&self) -> u32 impl> aya::maps::DevMap pub fn aya::maps::DevMap::pin>(self, path: P) -> core::result::Result<(), aya::pin::PinError> @@ -1038,8 +1038,8 @@ impl core::convert::From for aya::maps::DevMap pub fn aya::maps::DevMap::from(t: T) -> T pub struct aya::maps::xdp::DevMapHash impl> aya::maps::DevMapHash -pub fn aya::maps::DevMapHash::get(&self, key: u32, flags: u64) -> core::result::Result -pub fn aya::maps::DevMapHash::iter(&self) -> aya::maps::MapIter<'_, u32, aya::maps::xdp::dev_map::DevMapValue, Self> +pub fn aya::maps::DevMapHash::get(&self, key: u32, flags: u64) -> core::result::Result +pub fn aya::maps::DevMapHash::iter(&self) -> aya::maps::MapIter<'_, u32, DevMapValue, Self> pub fn aya::maps::DevMapHash::keys(&self) -> aya::maps::MapKeys<'_, u32> impl> aya::maps::DevMapHash pub fn aya::maps::DevMapHash::pin>(self, path: P) -> core::result::Result<(), aya::pin::PinError> @@ -1362,7 +1362,7 @@ pub aya::maps::MapError::ProgIdNotSupported pub aya::maps::MapError::ProgramNotLoaded pub aya::maps::MapError::SyscallError(aya::sys::SyscallError) pub aya::maps::MapError::Unsupported -pub aya::maps::MapError::Unsupported::map_type: aya_obj::generated::linux_bindings_x86_64::bpf_map_type +pub aya::maps::MapError::Unsupported::map_type: aya_obj::generated::linux_bindings_aarch64::bpf_map_type pub aya::maps::MapError::Unsupported::name: alloc::string::String impl core::convert::From for aya::EbpfError pub fn aya::EbpfError::from(source: aya::maps::MapError) -> Self @@ -1445,9 +1445,9 @@ impl core::clone::Clone for aya::maps::MapType pub fn aya::maps::MapType::clone(&self) -> aya::maps::MapType impl core::cmp::PartialEq for aya::maps::MapType pub fn aya::maps::MapType::eq(&self, other: &aya::maps::MapType) -> bool -impl core::convert::TryFrom for aya::maps::MapType +impl core::convert::TryFrom for aya::maps::MapType pub type aya::maps::MapType::Error = aya::maps::MapError -pub fn aya::maps::MapType::try_from(map_type: aya_obj::generated::linux_bindings_x86_64::bpf_map_type) -> core::result::Result +pub fn aya::maps::MapType::try_from(map_type: aya_obj::generated::linux_bindings_aarch64::bpf_map_type) -> core::result::Result impl core::fmt::Debug for aya::maps::MapType pub fn aya::maps::MapType::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result impl core::marker::Copy for aya::maps::MapType @@ -1600,8 +1600,8 @@ impl core::convert::From for aya::maps::bloom_filter::BloomFilter pub fn aya::maps::bloom_filter::BloomFilter::from(t: T) -> T pub struct aya::maps::CpuMap impl> aya::maps::CpuMap -pub fn aya::maps::CpuMap::get(&self, cpu_index: u32, flags: u64) -> core::result::Result -pub fn aya::maps::CpuMap::iter(&self) -> impl core::iter::traits::iterator::Iterator> + '_ +pub fn aya::maps::CpuMap::get(&self, cpu_index: u32, flags: u64) -> core::result::Result +pub fn aya::maps::CpuMap::iter(&self) -> impl core::iter::traits::iterator::Iterator> + '_ pub fn aya::maps::CpuMap::len(&self) -> u32 impl> aya::maps::CpuMap pub fn aya::maps::CpuMap::pin>(self, path: P) -> core::result::Result<(), aya::pin::PinError> @@ -1640,8 +1640,8 @@ impl core::convert::From for aya::maps::CpuMap pub fn aya::maps::CpuMap::from(t: T) -> T pub struct aya::maps::DevMap impl> aya::maps::DevMap -pub fn aya::maps::DevMap::get(&self, index: u32, flags: u64) -> core::result::Result -pub fn aya::maps::DevMap::iter(&self) -> impl core::iter::traits::iterator::Iterator> + '_ +pub fn aya::maps::DevMap::get(&self, index: u32, flags: u64) -> core::result::Result +pub fn aya::maps::DevMap::iter(&self) -> impl core::iter::traits::iterator::Iterator> + '_ pub fn aya::maps::DevMap::len(&self) -> u32 impl> aya::maps::DevMap pub fn aya::maps::DevMap::pin>(self, path: P) -> core::result::Result<(), aya::pin::PinError> @@ -1680,8 +1680,8 @@ impl core::convert::From for aya::maps::DevMap pub fn aya::maps::DevMap::from(t: T) -> T pub struct aya::maps::DevMapHash impl> aya::maps::DevMapHash -pub fn aya::maps::DevMapHash::get(&self, key: u32, flags: u64) -> core::result::Result -pub fn aya::maps::DevMapHash::iter(&self) -> aya::maps::MapIter<'_, u32, aya::maps::xdp::dev_map::DevMapValue, Self> +pub fn aya::maps::DevMapHash::get(&self, key: u32, flags: u64) -> core::result::Result +pub fn aya::maps::DevMapHash::iter(&self) -> aya::maps::MapIter<'_, u32, DevMapValue, Self> pub fn aya::maps::DevMapHash::keys(&self) -> aya::maps::MapKeys<'_, u32> impl> aya::maps::DevMapHash pub fn aya::maps::DevMapHash::pin>(self, path: P) -> core::result::Result<(), aya::pin::PinError> @@ -4171,6 +4171,8 @@ impl core::convert::From for aya::programs::fexit: pub fn aya::programs::fexit::FExitLink::from(b: aya::programs::links::FdLink) -> aya::programs::fexit::FExitLink impl core::convert::From for aya::programs::lsm::LsmLink pub fn aya::programs::lsm::LsmLink::from(b: aya::programs::links::FdLink) -> aya::programs::lsm::LsmLink +impl core::convert::From for aya::programs::lsm_cgroup::LsmLink +pub fn aya::programs::lsm_cgroup::LsmLink::from(b: aya::programs::links::FdLink) -> aya::programs::lsm_cgroup::LsmLink impl core::convert::From for aya::programs::raw_trace_point::RawTracePointLink pub fn aya::programs::raw_trace_point::RawTracePointLink::from(b: aya::programs::links::FdLink) -> aya::programs::raw_trace_point::RawTracePointLink impl core::convert::From for aya::programs::sk_lookup::SkLookupLink @@ -4181,6 +4183,8 @@ impl core::convert::From for aya::programs::li pub fn aya::programs::links::FdLink::from(p: aya::programs::links::PinnedLink) -> Self impl core::convert::From for aya::programs::links::FdLink pub fn aya::programs::links::FdLink::from(w: aya::programs::lsm::LsmLink) -> aya::programs::links::FdLink +impl core::convert::From for aya::programs::links::FdLink +pub fn aya::programs::links::FdLink::from(w: aya::programs::lsm_cgroup::LsmLink) -> aya::programs::links::FdLink impl core::convert::From for aya::programs::links::FdLink pub fn aya::programs::links::FdLink::from(w: aya::programs::raw_trace_point::RawTracePointLink) -> aya::programs::links::FdLink impl core::convert::From for aya::programs::links::FdLink @@ -4508,6 +4512,10 @@ impl aya::programs::links::Link for aya::programs::lsm::LsmLink pub type aya::programs::lsm::LsmLink::Id = aya::programs::lsm::LsmLinkId pub fn aya::programs::lsm::LsmLink::detach(self) -> core::result::Result<(), aya::programs::ProgramError> pub fn aya::programs::lsm::LsmLink::id(&self) -> Self::Id +impl aya::programs::links::Link for aya::programs::lsm_cgroup::LsmLink +pub type aya::programs::lsm_cgroup::LsmLink::Id = aya::programs::lsm_cgroup::LsmLinkId +pub fn aya::programs::lsm_cgroup::LsmLink::detach(self) -> core::result::Result<(), aya::programs::ProgramError> +pub fn aya::programs::lsm_cgroup::LsmLink::id(&self) -> Self::Id impl aya::programs::links::Link for aya::programs::perf_attach::PerfLink pub type aya::programs::perf_attach::PerfLink::Id = aya::programs::perf_attach::PerfLinkId pub fn aya::programs::perf_attach::PerfLink::detach(self) -> core::result::Result<(), aya::programs::ProgramError> @@ -4816,6 +4824,136 @@ impl core::borrow::BorrowMut for aya::programs::lsm::LsmLinkId where T: ?c pub fn aya::programs::lsm::LsmLinkId::borrow_mut(&mut self) -> &mut T impl core::convert::From for aya::programs::lsm::LsmLinkId pub fn aya::programs::lsm::LsmLinkId::from(t: T) -> T +pub mod aya::programs::lsm_cgroup +pub struct aya::programs::lsm_cgroup::LsmCgroup +impl aya::programs::lsm_cgroup::LsmCgroup +pub fn aya::programs::lsm_cgroup::LsmCgroup::attach(&mut self, cgroup: T) -> core::result::Result +pub fn aya::programs::lsm_cgroup::LsmCgroup::load(&mut self, lsm_hook_name: &str, btf: &aya_obj::btf::btf::Btf) -> core::result::Result<(), aya::programs::ProgramError> +impl aya::programs::lsm_cgroup::LsmCgroup +pub fn aya::programs::lsm_cgroup::LsmCgroup::detach(&mut self, link_id: aya::programs::lsm_cgroup::LsmLinkId) -> core::result::Result<(), aya::programs::ProgramError> +pub fn aya::programs::lsm_cgroup::LsmCgroup::take_link(&mut self, link_id: aya::programs::lsm_cgroup::LsmLinkId) -> core::result::Result +impl aya::programs::lsm_cgroup::LsmCgroup +pub fn aya::programs::lsm_cgroup::LsmCgroup::fd(&self) -> core::result::Result<&aya::programs::ProgramFd, aya::programs::ProgramError> +impl aya::programs::lsm_cgroup::LsmCgroup +pub fn aya::programs::lsm_cgroup::LsmCgroup::from_pin>(path: P) -> core::result::Result +impl aya::programs::lsm_cgroup::LsmCgroup +pub fn aya::programs::lsm_cgroup::LsmCgroup::info(&self) -> core::result::Result +impl aya::programs::lsm_cgroup::LsmCgroup +pub fn aya::programs::lsm_cgroup::LsmCgroup::pin>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError> +pub fn aya::programs::lsm_cgroup::LsmCgroup::unpin(self) -> core::result::Result<(), std::io::error::Error> +impl aya::programs::lsm_cgroup::LsmCgroup +pub fn aya::programs::lsm_cgroup::LsmCgroup::unload(&mut self) -> core::result::Result<(), aya::programs::ProgramError> +impl core::fmt::Debug for aya::programs::lsm_cgroup::LsmCgroup +pub fn aya::programs::lsm_cgroup::LsmCgroup::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::ops::drop::Drop for aya::programs::lsm_cgroup::LsmCgroup +pub fn aya::programs::lsm_cgroup::LsmCgroup::drop(&mut self) +impl<'a> core::convert::TryFrom<&'a aya::programs::Program> for &'a aya::programs::lsm_cgroup::LsmCgroup +pub type &'a aya::programs::lsm_cgroup::LsmCgroup::Error = aya::programs::ProgramError +pub fn &'a aya::programs::lsm_cgroup::LsmCgroup::try_from(program: &'a aya::programs::Program) -> core::result::Result<&'a aya::programs::lsm_cgroup::LsmCgroup, aya::programs::ProgramError> +impl<'a> core::convert::TryFrom<&'a mut aya::programs::Program> for &'a mut aya::programs::lsm_cgroup::LsmCgroup +pub type &'a mut aya::programs::lsm_cgroup::LsmCgroup::Error = aya::programs::ProgramError +pub fn &'a mut aya::programs::lsm_cgroup::LsmCgroup::try_from(program: &'a mut aya::programs::Program) -> core::result::Result<&'a mut aya::programs::lsm_cgroup::LsmCgroup, aya::programs::ProgramError> +impl core::marker::Freeze for aya::programs::lsm_cgroup::LsmCgroup +impl core::marker::Send for aya::programs::lsm_cgroup::LsmCgroup +impl core::marker::Sync for aya::programs::lsm_cgroup::LsmCgroup +impl core::marker::Unpin for aya::programs::lsm_cgroup::LsmCgroup +impl core::panic::unwind_safe::RefUnwindSafe for aya::programs::lsm_cgroup::LsmCgroup +impl core::panic::unwind_safe::UnwindSafe for aya::programs::lsm_cgroup::LsmCgroup +impl core::convert::Into for aya::programs::lsm_cgroup::LsmCgroup where U: core::convert::From +pub fn aya::programs::lsm_cgroup::LsmCgroup::into(self) -> U +impl core::convert::TryFrom for aya::programs::lsm_cgroup::LsmCgroup where U: core::convert::Into +pub type aya::programs::lsm_cgroup::LsmCgroup::Error = core::convert::Infallible +pub fn aya::programs::lsm_cgroup::LsmCgroup::try_from(value: U) -> core::result::Result>::Error> +impl core::convert::TryInto for aya::programs::lsm_cgroup::LsmCgroup where U: core::convert::TryFrom +pub type aya::programs::lsm_cgroup::LsmCgroup::Error = >::Error +pub fn aya::programs::lsm_cgroup::LsmCgroup::try_into(self) -> core::result::Result>::Error> +impl core::any::Any for aya::programs::lsm_cgroup::LsmCgroup where T: 'static + ?core::marker::Sized +pub fn aya::programs::lsm_cgroup::LsmCgroup::type_id(&self) -> core::any::TypeId +impl core::borrow::Borrow for aya::programs::lsm_cgroup::LsmCgroup where T: ?core::marker::Sized +pub fn aya::programs::lsm_cgroup::LsmCgroup::borrow(&self) -> &T +impl core::borrow::BorrowMut for aya::programs::lsm_cgroup::LsmCgroup where T: ?core::marker::Sized +pub fn aya::programs::lsm_cgroup::LsmCgroup::borrow_mut(&mut self) -> &mut T +impl core::convert::From for aya::programs::lsm_cgroup::LsmCgroup +pub fn aya::programs::lsm_cgroup::LsmCgroup::from(t: T) -> T +pub struct aya::programs::lsm_cgroup::LsmLink(_) +impl aya::programs::links::Link for aya::programs::lsm_cgroup::LsmLink +pub type aya::programs::lsm_cgroup::LsmLink::Id = aya::programs::lsm_cgroup::LsmLinkId +pub fn aya::programs::lsm_cgroup::LsmLink::detach(self) -> core::result::Result<(), aya::programs::ProgramError> +pub fn aya::programs::lsm_cgroup::LsmLink::id(&self) -> Self::Id +impl core::cmp::Eq for aya::programs::lsm_cgroup::LsmLink +impl core::cmp::PartialEq for aya::programs::lsm_cgroup::LsmLink +pub fn aya::programs::lsm_cgroup::LsmLink::eq(&self, other: &Self) -> bool +impl core::convert::From for aya::programs::lsm_cgroup::LsmLink +pub fn aya::programs::lsm_cgroup::LsmLink::from(b: aya::programs::links::FdLink) -> aya::programs::lsm_cgroup::LsmLink +impl core::convert::From for aya::programs::links::FdLink +pub fn aya::programs::links::FdLink::from(w: aya::programs::lsm_cgroup::LsmLink) -> aya::programs::links::FdLink +impl core::fmt::Debug for aya::programs::lsm_cgroup::LsmLink +pub fn aya::programs::lsm_cgroup::LsmLink::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::hash::Hash for aya::programs::lsm_cgroup::LsmLink +pub fn aya::programs::lsm_cgroup::LsmLink::hash(&self, state: &mut H) +impl core::ops::drop::Drop for aya::programs::lsm_cgroup::LsmLink +pub fn aya::programs::lsm_cgroup::LsmLink::drop(&mut self) +impl equivalent::Equivalent for aya::programs::lsm_cgroup::LsmLinkId +pub fn aya::programs::lsm_cgroup::LsmLinkId::equivalent(&self, key: &aya::programs::lsm_cgroup::LsmLink) -> bool +impl core::marker::Freeze for aya::programs::lsm_cgroup::LsmLink +impl core::marker::Send for aya::programs::lsm_cgroup::LsmLink +impl core::marker::Sync for aya::programs::lsm_cgroup::LsmLink +impl core::marker::Unpin for aya::programs::lsm_cgroup::LsmLink +impl core::panic::unwind_safe::RefUnwindSafe for aya::programs::lsm_cgroup::LsmLink +impl core::panic::unwind_safe::UnwindSafe for aya::programs::lsm_cgroup::LsmLink +impl equivalent::Equivalent for aya::programs::lsm_cgroup::LsmLink where Q: core::cmp::Eq + ?core::marker::Sized, K: core::borrow::Borrow + ?core::marker::Sized +pub fn aya::programs::lsm_cgroup::LsmLink::equivalent(&self, key: &K) -> bool +impl core::convert::Into for aya::programs::lsm_cgroup::LsmLink where U: core::convert::From +pub fn aya::programs::lsm_cgroup::LsmLink::into(self) -> U +impl core::convert::TryFrom for aya::programs::lsm_cgroup::LsmLink where U: core::convert::Into +pub type aya::programs::lsm_cgroup::LsmLink::Error = core::convert::Infallible +pub fn aya::programs::lsm_cgroup::LsmLink::try_from(value: U) -> core::result::Result>::Error> +impl core::convert::TryInto for aya::programs::lsm_cgroup::LsmLink where U: core::convert::TryFrom +pub type aya::programs::lsm_cgroup::LsmLink::Error = >::Error +pub fn aya::programs::lsm_cgroup::LsmLink::try_into(self) -> core::result::Result>::Error> +impl core::any::Any for aya::programs::lsm_cgroup::LsmLink where T: 'static + ?core::marker::Sized +pub fn aya::programs::lsm_cgroup::LsmLink::type_id(&self) -> core::any::TypeId +impl core::borrow::Borrow for aya::programs::lsm_cgroup::LsmLink where T: ?core::marker::Sized +pub fn aya::programs::lsm_cgroup::LsmLink::borrow(&self) -> &T +impl core::borrow::BorrowMut for aya::programs::lsm_cgroup::LsmLink where T: ?core::marker::Sized +pub fn aya::programs::lsm_cgroup::LsmLink::borrow_mut(&mut self) -> &mut T +impl core::convert::From for aya::programs::lsm_cgroup::LsmLink +pub fn aya::programs::lsm_cgroup::LsmLink::from(t: T) -> T +pub struct aya::programs::lsm_cgroup::LsmLinkId(_) +impl core::cmp::Eq for aya::programs::lsm_cgroup::LsmLinkId +impl core::cmp::PartialEq for aya::programs::lsm_cgroup::LsmLinkId +pub fn aya::programs::lsm_cgroup::LsmLinkId::eq(&self, other: &aya::programs::lsm_cgroup::LsmLinkId) -> bool +impl core::fmt::Debug for aya::programs::lsm_cgroup::LsmLinkId +pub fn aya::programs::lsm_cgroup::LsmLinkId::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::hash::Hash for aya::programs::lsm_cgroup::LsmLinkId +pub fn aya::programs::lsm_cgroup::LsmLinkId::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +impl core::marker::StructuralPartialEq for aya::programs::lsm_cgroup::LsmLinkId +impl equivalent::Equivalent for aya::programs::lsm_cgroup::LsmLinkId +pub fn aya::programs::lsm_cgroup::LsmLinkId::equivalent(&self, key: &aya::programs::lsm_cgroup::LsmLink) -> bool +impl core::marker::Freeze for aya::programs::lsm_cgroup::LsmLinkId +impl core::marker::Send for aya::programs::lsm_cgroup::LsmLinkId +impl core::marker::Sync for aya::programs::lsm_cgroup::LsmLinkId +impl core::marker::Unpin for aya::programs::lsm_cgroup::LsmLinkId +impl core::panic::unwind_safe::RefUnwindSafe for aya::programs::lsm_cgroup::LsmLinkId +impl core::panic::unwind_safe::UnwindSafe for aya::programs::lsm_cgroup::LsmLinkId +impl equivalent::Equivalent for aya::programs::lsm_cgroup::LsmLinkId where Q: core::cmp::Eq + ?core::marker::Sized, K: core::borrow::Borrow + ?core::marker::Sized +pub fn aya::programs::lsm_cgroup::LsmLinkId::equivalent(&self, key: &K) -> bool +impl core::convert::Into for aya::programs::lsm_cgroup::LsmLinkId where U: core::convert::From +pub fn aya::programs::lsm_cgroup::LsmLinkId::into(self) -> U +impl core::convert::TryFrom for aya::programs::lsm_cgroup::LsmLinkId where U: core::convert::Into +pub type aya::programs::lsm_cgroup::LsmLinkId::Error = core::convert::Infallible +pub fn aya::programs::lsm_cgroup::LsmLinkId::try_from(value: U) -> core::result::Result>::Error> +impl core::convert::TryInto for aya::programs::lsm_cgroup::LsmLinkId where U: core::convert::TryFrom +pub type aya::programs::lsm_cgroup::LsmLinkId::Error = >::Error +pub fn aya::programs::lsm_cgroup::LsmLinkId::try_into(self) -> core::result::Result>::Error> +impl core::any::Any for aya::programs::lsm_cgroup::LsmLinkId where T: 'static + ?core::marker::Sized +pub fn aya::programs::lsm_cgroup::LsmLinkId::type_id(&self) -> core::any::TypeId +impl core::borrow::Borrow for aya::programs::lsm_cgroup::LsmLinkId where T: ?core::marker::Sized +pub fn aya::programs::lsm_cgroup::LsmLinkId::borrow(&self) -> &T +impl core::borrow::BorrowMut for aya::programs::lsm_cgroup::LsmLinkId where T: ?core::marker::Sized +pub fn aya::programs::lsm_cgroup::LsmLinkId::borrow_mut(&mut self) -> &mut T +impl core::convert::From for aya::programs::lsm_cgroup::LsmLinkId +pub fn aya::programs::lsm_cgroup::LsmLinkId::from(t: T) -> T pub mod aya::programs::perf_attach pub struct aya::programs::perf_attach::PerfLink impl aya::programs::links::Link for aya::programs::perf_attach::PerfLink @@ -7347,6 +7485,7 @@ pub aya::programs::Program::Iter(aya::programs::iter::Iter) pub aya::programs::Program::KProbe(aya::programs::kprobe::KProbe) pub aya::programs::Program::LircMode2(aya::programs::lirc_mode2::LircMode2) pub aya::programs::Program::Lsm(aya::programs::lsm::Lsm) +pub aya::programs::Program::LsmCgroup(aya::programs::lsm_cgroup::LsmCgroup) pub aya::programs::Program::PerfEvent(aya::programs::perf_event::PerfEvent) pub aya::programs::Program::RawTracePoint(aya::programs::raw_trace_point::RawTracePoint) pub aya::programs::Program::SchedClassifier(aya::programs::tc::SchedClassifier) @@ -7405,6 +7544,9 @@ pub fn &'a aya::programs::lirc_mode2::LircMode2::try_from(program: &'a aya::prog impl<'a> core::convert::TryFrom<&'a aya::programs::Program> for &'a aya::programs::lsm::Lsm pub type &'a aya::programs::lsm::Lsm::Error = aya::programs::ProgramError pub fn &'a aya::programs::lsm::Lsm::try_from(program: &'a aya::programs::Program) -> core::result::Result<&'a aya::programs::lsm::Lsm, aya::programs::ProgramError> +impl<'a> core::convert::TryFrom<&'a aya::programs::Program> for &'a aya::programs::lsm_cgroup::LsmCgroup +pub type &'a aya::programs::lsm_cgroup::LsmCgroup::Error = aya::programs::ProgramError +pub fn &'a aya::programs::lsm_cgroup::LsmCgroup::try_from(program: &'a aya::programs::Program) -> core::result::Result<&'a aya::programs::lsm_cgroup::LsmCgroup, aya::programs::ProgramError> impl<'a> core::convert::TryFrom<&'a aya::programs::Program> for &'a aya::programs::perf_event::PerfEvent pub type &'a aya::programs::perf_event::PerfEvent::Error = aya::programs::ProgramError pub fn &'a aya::programs::perf_event::PerfEvent::try_from(program: &'a aya::programs::Program) -> core::result::Result<&'a aya::programs::perf_event::PerfEvent, aya::programs::ProgramError> @@ -7480,6 +7622,9 @@ pub fn &'a mut aya::programs::lirc_mode2::LircMode2::try_from(program: &'a mut a impl<'a> core::convert::TryFrom<&'a mut aya::programs::Program> for &'a mut aya::programs::lsm::Lsm pub type &'a mut aya::programs::lsm::Lsm::Error = aya::programs::ProgramError pub fn &'a mut aya::programs::lsm::Lsm::try_from(program: &'a mut aya::programs::Program) -> core::result::Result<&'a mut aya::programs::lsm::Lsm, aya::programs::ProgramError> +impl<'a> core::convert::TryFrom<&'a mut aya::programs::Program> for &'a mut aya::programs::lsm_cgroup::LsmCgroup +pub type &'a mut aya::programs::lsm_cgroup::LsmCgroup::Error = aya::programs::ProgramError +pub fn &'a mut aya::programs::lsm_cgroup::LsmCgroup::try_from(program: &'a mut aya::programs::Program) -> core::result::Result<&'a mut aya::programs::lsm_cgroup::LsmCgroup, aya::programs::ProgramError> impl<'a> core::convert::TryFrom<&'a mut aya::programs::Program> for &'a mut aya::programs::perf_event::PerfEvent pub type &'a mut aya::programs::perf_event::PerfEvent::Error = aya::programs::ProgramError pub fn &'a mut aya::programs::perf_event::PerfEvent::try_from(program: &'a mut aya::programs::Program) -> core::result::Result<&'a mut aya::programs::perf_event::PerfEvent, aya::programs::ProgramError> @@ -7656,9 +7801,9 @@ impl core::clone::Clone for aya::programs::ProgramType pub fn aya::programs::ProgramType::clone(&self) -> aya::programs::ProgramType impl core::cmp::PartialEq for aya::programs::ProgramType pub fn aya::programs::ProgramType::eq(&self, other: &aya::programs::ProgramType) -> bool -impl core::convert::TryFrom for aya::programs::ProgramType +impl core::convert::TryFrom for aya::programs::ProgramType pub type aya::programs::ProgramType::Error = aya::programs::ProgramError -pub fn aya::programs::ProgramType::try_from(prog_type: aya_obj::generated::linux_bindings_x86_64::bpf_prog_type) -> core::result::Result +pub fn aya::programs::ProgramType::try_from(prog_type: aya_obj::generated::linux_bindings_aarch64::bpf_prog_type) -> core::result::Result impl core::fmt::Debug for aya::programs::ProgramType pub fn aya::programs::ProgramType::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result impl core::marker::Copy for aya::programs::ProgramType @@ -8733,6 +8878,56 @@ impl core::borrow::BorrowMut for aya::programs::lsm::Lsm where T: ?core::m pub fn aya::programs::lsm::Lsm::borrow_mut(&mut self) -> &mut T impl core::convert::From for aya::programs::lsm::Lsm pub fn aya::programs::lsm::Lsm::from(t: T) -> T +pub struct aya::programs::LsmCgroup +impl aya::programs::lsm_cgroup::LsmCgroup +pub fn aya::programs::lsm_cgroup::LsmCgroup::attach(&mut self, cgroup: T) -> core::result::Result +pub fn aya::programs::lsm_cgroup::LsmCgroup::load(&mut self, lsm_hook_name: &str, btf: &aya_obj::btf::btf::Btf) -> core::result::Result<(), aya::programs::ProgramError> +impl aya::programs::lsm_cgroup::LsmCgroup +pub fn aya::programs::lsm_cgroup::LsmCgroup::detach(&mut self, link_id: aya::programs::lsm_cgroup::LsmLinkId) -> core::result::Result<(), aya::programs::ProgramError> +pub fn aya::programs::lsm_cgroup::LsmCgroup::take_link(&mut self, link_id: aya::programs::lsm_cgroup::LsmLinkId) -> core::result::Result +impl aya::programs::lsm_cgroup::LsmCgroup +pub fn aya::programs::lsm_cgroup::LsmCgroup::fd(&self) -> core::result::Result<&aya::programs::ProgramFd, aya::programs::ProgramError> +impl aya::programs::lsm_cgroup::LsmCgroup +pub fn aya::programs::lsm_cgroup::LsmCgroup::from_pin>(path: P) -> core::result::Result +impl aya::programs::lsm_cgroup::LsmCgroup +pub fn aya::programs::lsm_cgroup::LsmCgroup::info(&self) -> core::result::Result +impl aya::programs::lsm_cgroup::LsmCgroup +pub fn aya::programs::lsm_cgroup::LsmCgroup::pin>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError> +pub fn aya::programs::lsm_cgroup::LsmCgroup::unpin(self) -> core::result::Result<(), std::io::error::Error> +impl aya::programs::lsm_cgroup::LsmCgroup +pub fn aya::programs::lsm_cgroup::LsmCgroup::unload(&mut self) -> core::result::Result<(), aya::programs::ProgramError> +impl core::fmt::Debug for aya::programs::lsm_cgroup::LsmCgroup +pub fn aya::programs::lsm_cgroup::LsmCgroup::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +impl core::ops::drop::Drop for aya::programs::lsm_cgroup::LsmCgroup +pub fn aya::programs::lsm_cgroup::LsmCgroup::drop(&mut self) +impl<'a> core::convert::TryFrom<&'a aya::programs::Program> for &'a aya::programs::lsm_cgroup::LsmCgroup +pub type &'a aya::programs::lsm_cgroup::LsmCgroup::Error = aya::programs::ProgramError +pub fn &'a aya::programs::lsm_cgroup::LsmCgroup::try_from(program: &'a aya::programs::Program) -> core::result::Result<&'a aya::programs::lsm_cgroup::LsmCgroup, aya::programs::ProgramError> +impl<'a> core::convert::TryFrom<&'a mut aya::programs::Program> for &'a mut aya::programs::lsm_cgroup::LsmCgroup +pub type &'a mut aya::programs::lsm_cgroup::LsmCgroup::Error = aya::programs::ProgramError +pub fn &'a mut aya::programs::lsm_cgroup::LsmCgroup::try_from(program: &'a mut aya::programs::Program) -> core::result::Result<&'a mut aya::programs::lsm_cgroup::LsmCgroup, aya::programs::ProgramError> +impl core::marker::Freeze for aya::programs::lsm_cgroup::LsmCgroup +impl core::marker::Send for aya::programs::lsm_cgroup::LsmCgroup +impl core::marker::Sync for aya::programs::lsm_cgroup::LsmCgroup +impl core::marker::Unpin for aya::programs::lsm_cgroup::LsmCgroup +impl core::panic::unwind_safe::RefUnwindSafe for aya::programs::lsm_cgroup::LsmCgroup +impl core::panic::unwind_safe::UnwindSafe for aya::programs::lsm_cgroup::LsmCgroup +impl core::convert::Into for aya::programs::lsm_cgroup::LsmCgroup where U: core::convert::From +pub fn aya::programs::lsm_cgroup::LsmCgroup::into(self) -> U +impl core::convert::TryFrom for aya::programs::lsm_cgroup::LsmCgroup where U: core::convert::Into +pub type aya::programs::lsm_cgroup::LsmCgroup::Error = core::convert::Infallible +pub fn aya::programs::lsm_cgroup::LsmCgroup::try_from(value: U) -> core::result::Result>::Error> +impl core::convert::TryInto for aya::programs::lsm_cgroup::LsmCgroup where U: core::convert::TryFrom +pub type aya::programs::lsm_cgroup::LsmCgroup::Error = >::Error +pub fn aya::programs::lsm_cgroup::LsmCgroup::try_into(self) -> core::result::Result>::Error> +impl core::any::Any for aya::programs::lsm_cgroup::LsmCgroup where T: 'static + ?core::marker::Sized +pub fn aya::programs::lsm_cgroup::LsmCgroup::type_id(&self) -> core::any::TypeId +impl core::borrow::Borrow for aya::programs::lsm_cgroup::LsmCgroup where T: ?core::marker::Sized +pub fn aya::programs::lsm_cgroup::LsmCgroup::borrow(&self) -> &T +impl core::borrow::BorrowMut for aya::programs::lsm_cgroup::LsmCgroup where T: ?core::marker::Sized +pub fn aya::programs::lsm_cgroup::LsmCgroup::borrow_mut(&mut self) -> &mut T +impl core::convert::From for aya::programs::lsm_cgroup::LsmCgroup +pub fn aya::programs::lsm_cgroup::LsmCgroup::from(t: T) -> T pub struct aya::programs::PerfEvent impl aya::programs::perf_event::PerfEvent pub fn aya::programs::perf_event::PerfEvent::attach(&mut self, perf_type: aya::programs::perf_event::PerfTypeId, config: u64, scope: aya::programs::perf_event::PerfEventScope, sample_policy: aya::programs::perf_event::SamplePolicy, inherit: bool) -> core::result::Result @@ -9561,6 +9756,10 @@ impl aya::programs::links::Link for aya::programs::lsm::LsmLink pub type aya::programs::lsm::LsmLink::Id = aya::programs::lsm::LsmLinkId pub fn aya::programs::lsm::LsmLink::detach(self) -> core::result::Result<(), aya::programs::ProgramError> pub fn aya::programs::lsm::LsmLink::id(&self) -> Self::Id +impl aya::programs::links::Link for aya::programs::lsm_cgroup::LsmLink +pub type aya::programs::lsm_cgroup::LsmLink::Id = aya::programs::lsm_cgroup::LsmLinkId +pub fn aya::programs::lsm_cgroup::LsmLink::detach(self) -> core::result::Result<(), aya::programs::ProgramError> +pub fn aya::programs::lsm_cgroup::LsmLink::id(&self) -> Self::Id impl aya::programs::links::Link for aya::programs::perf_attach::PerfLink pub type aya::programs::perf_attach::PerfLink::Id = aya::programs::perf_attach::PerfLinkId pub fn aya::programs::perf_attach::PerfLink::detach(self) -> core::result::Result<(), aya::programs::ProgramError> @@ -9627,8 +9826,8 @@ pub mod aya::sys pub aya::sys::Stats::RunTime impl core::clone::Clone for aya::sys::Stats pub fn aya::sys::Stats::clone(&self) -> aya::sys::Stats -impl core::convert::From for aya_obj::generated::linux_bindings_x86_64::bpf_stats_type -pub fn aya_obj::generated::linux_bindings_x86_64::bpf_stats_type::from(value: aya::sys::Stats) -> Self +impl core::convert::From for aya_obj::generated::linux_bindings_aarch64::bpf_stats_type +pub fn aya_obj::generated::linux_bindings_aarch64::bpf_stats_type::from(value: aya::sys::Stats) -> Self impl core::fmt::Debug for aya::sys::Stats pub fn aya::sys::Stats::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result impl core::marker::Copy for aya::sys::Stats @@ -10028,8 +10227,8 @@ pub unsafe fn aya::VerifierLogLevel::clone_to_uninit(&self, dst: *mut u8) impl core::convert::From for aya::VerifierLogLevel pub fn aya::VerifierLogLevel::from(t: T) -> T pub unsafe trait aya::Pod: core::marker::Copy + 'static -impl aya::Pod for aya_obj::generated::linux_bindings_x86_64::bpf_cpumap_val -impl aya::Pod for aya_obj::generated::linux_bindings_x86_64::bpf_devmap_val +impl aya::Pod for aya_obj::generated::linux_bindings_aarch64::bpf_cpumap_val +impl aya::Pod for aya_obj::generated::linux_bindings_aarch64::bpf_devmap_val impl aya::Pod for i128 impl aya::Pod for i16 impl aya::Pod for i32 diff --git a/xtask/src/run.rs b/xtask/src/run.rs index a6f919f5b..2cf211270 100644 --- a/xtask/src/run.rs +++ b/xtask/src/run.rs @@ -413,6 +413,8 @@ pub fn run(opts: Options) -> Result<()> { // // Heed the advice and boot with noapic. We don't know why this happens. kernel_args.push(" noapic"); + // We need to enable LSM bpf to be able to run lsm integration tests. + kernel_args.push(" lsm=lockdown,capability,bpf"); qemu.args(["-no-reboot", "-nographic", "-m", "512M", "-smp", "2"]) .arg("-append") .arg(kernel_args)