feat: Allow conversions to Program from ProgramInfo

Allow for a ProgramInfo to be converted into one of the program types
that we support. This allows for a user of Aya access to reattach,
pin or unload a program that was either, previously loaded, or was
loaded by another process.

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
reviewable/pr1209/r2
Dave Tucker 1 month ago
parent 65489e1d4c
commit 7e54054307

@ -609,15 +609,15 @@ impl<'a> EbpfLoader<'a> {
}
ProgramSection::CgroupSkb => Program::CgroupSkb(CgroupSkb {
data: ProgramData::new(prog_name, obj, btf_fd, *verifier_log_level),
expected_attach_type: None,
attach_type: None,
}),
ProgramSection::CgroupSkbIngress => Program::CgroupSkb(CgroupSkb {
data: ProgramData::new(prog_name, obj, btf_fd, *verifier_log_level),
expected_attach_type: Some(CgroupSkbAttachType::Ingress),
attach_type: Some(CgroupSkbAttachType::Ingress),
}),
ProgramSection::CgroupSkbEgress => Program::CgroupSkb(CgroupSkb {
data: ProgramData::new(prog_name, obj, btf_fd, *verifier_log_level),
expected_attach_type: Some(CgroupSkbAttachType::Egress),
attach_type: Some(CgroupSkbAttachType::Egress),
}),
ProgramSection::CgroupSockAddr { attach_type, .. } => {
Program::CgroupSockAddr(CgroupSockAddr {

@ -57,18 +57,16 @@ use crate::{
#[doc(alias = "BPF_PROG_TYPE_CGROUP_SKB")]
pub struct CgroupSkb {
pub(crate) data: ProgramData<CgroupSkbLink>,
pub(crate) expected_attach_type: Option<CgroupSkbAttachType>,
pub(crate) attach_type: Option<CgroupSkbAttachType>,
}
impl CgroupSkb {
/// Loads the program inside the kernel.
pub fn load(&mut self) -> Result<(), ProgramError> {
self.data.expected_attach_type =
self.expected_attach_type
.map(|attach_type| match attach_type {
CgroupSkbAttachType::Ingress => BPF_CGROUP_INET_INGRESS,
CgroupSkbAttachType::Egress => BPF_CGROUP_INET_EGRESS,
});
self.data.expected_attach_type = self.attach_type.map(|attach_type| match attach_type {
CgroupSkbAttachType::Ingress => BPF_CGROUP_INET_INGRESS,
CgroupSkbAttachType::Egress => BPF_CGROUP_INET_EGRESS,
});
load_program(BPF_PROG_TYPE_CGROUP_SKB, &mut self.data)
}
@ -79,7 +77,7 @@ impl CgroupSkb {
/// method returns `None` for programs defined with the generic section
/// `cgroup/skb`.
pub fn expected_attach_type(&self) -> &Option<CgroupSkbAttachType> {
&self.expected_attach_type
&self.attach_type
}
/// Attaches the program to the given cgroup.
@ -138,7 +136,7 @@ impl CgroupSkb {
let data = ProgramData::from_pinned_path(path, VerifierLogLevel::default())?;
Ok(Self {
data,
expected_attach_type: Some(expected_attach_type),
attach_type: Some(expected_attach_type),
})
}
}

@ -83,6 +83,7 @@ use aya_obj::{
VerifierLog,
btf::BtfError,
generated::{bpf_attach_type, bpf_link_info, bpf_prog_info, bpf_prog_type},
programs::XdpAttachType,
};
use info::impl_info;
pub use info::{ProgramInfo, ProgramType, loaded_programs};
@ -991,6 +992,212 @@ impl_from_pin!(
Iter,
);
macro_rules! impl_from_prog_info {
($(($struct_name:ident, $prog_type:expr, $unsafe:ident $(, $var:ident, $var_ty:ty)?)),* $(,)?) => {
$(
impl_from_prog_info!($struct_name, $prog_type, $unsafe $(, $var, $var_ty)?);
)*
};
($struct_name:ident, $prog_type:expr, false) => {
impl $struct_name {
/// Constructs an instance of a Program from a [`ProgramInfo`].
///
/// This allows the caller to get a handle to an already loaded
/// program from the kernel without having to load it again.
///
/// # Errors
///
/// - If the program type reported by the kernel does not match
/// that of the type you're converting to.
/// - If the file descriptor of the program cannot be cloned.
pub fn from_program_info(
name: Option<&'static str>,
info: ProgramInfo,
) -> Result<Self, ProgramError> {
if info.program_type()? != $prog_type {
return Err(ProgramError::UnexpectedProgramType {});
}
let ProgramInfo { 0: bpf_progam_info} = info;
let fd = info.fd()?;
let fd = fd.as_fd().try_clone_to_owned()?;
Ok(Self {
data: ProgramData::from_bpf_prog_info(
name.map(|n| Cow::Borrowed(n)),
crate::MockableFd::from_fd(fd),
Path::new(""),
bpf_progam_info,
VerifierLogLevel::default(),
)?,
})
}
}
};
($struct_name:ident, $prog_type:expr, true) => {
impl $struct_name {
/// Constructs an instance of a Program from a [`ProgramInfo`].
///
/// This allows the caller to get a handle to an already loaded
/// program from the kernel without having to load it again.
///
/// # Errors
///
/// - If the program type reported by the kernel does not match
/// that of the type you're converting to.
/// - If the file descriptor of the program cannot be cloned.
///
/// # Safety
///
/// We can't safely cast to `ProgramInfo` since we don't know the
/// concrete type of the program. It's up to the caller to ensure
/// that the program type matches the type you're converting to.
/// Otherwise, the behavior is undefined.
pub unsafe fn from_program_info(
name: Option<&'static str>,
info: ProgramInfo,
) -> Result<Self, ProgramError> {
if info.program_type()? != $prog_type {
return Err(ProgramError::UnexpectedProgramType {});
}
let ProgramInfo { 0: bpf_progam_info} = info;
let fd = info.fd()?;
let fd = fd.as_fd().try_clone_to_owned()?;
Ok(Self {
data: ProgramData::from_bpf_prog_info(
name.map(|n| Cow::Borrowed(n)),
crate::MockableFd::from_fd(fd),
Path::new(""),
bpf_progam_info,
VerifierLogLevel::default(),
)?,
})
}
}
};
($struct_name:ident, $prog_type:expr, false, $var:ident, $var_ty:ty) => {
impl $struct_name {
/// Constructs an instance of a Program from a [`ProgramInfo`].
///
/// This allows the caller to get a handle to an already loaded
/// program from the kernel without having to load it again.
///
/// # Errors
///
/// - If the program type reported by the kernel does not match
/// that of the type you're converting to.
/// - If the file descriptor of the program cannot be cloned.
pub fn from_program_info(
name: Option<&'static str>,
info: ProgramInfo,
$var: $var_ty,
) -> Result<Self, ProgramError> {
if info.program_type()? != $prog_type {
return Err(ProgramError::UnexpectedProgramType {});
}
let ProgramInfo { 0: bpf_progam_info} = info;
let fd = info.fd()?;
let fd = fd.as_fd().try_clone_to_owned()?;
Ok(Self {
data: ProgramData::from_bpf_prog_info(
name.map(|n| Cow::Borrowed(n)),
crate::MockableFd::from_fd(fd),
Path::new(""),
bpf_progam_info,
VerifierLogLevel::default(),
)?,
$var,
})
}
}
};
($struct_name:ident, $prog_type:expr, true, $var:ident, $var_ty:ty) => {
impl $struct_name {
/// Constructs an instance of a Program from a [`ProgramInfo`].
///
/// This allows the caller to get a handle to an already loaded
/// program from the kernel without having to load it again.
///
/// # Errors
///
/// - If the program type reported by the kernel does not match
/// that of the type you're converting to.
/// - If the file descriptor of the program cannot be cloned.
///
/// # Safety
///
/// We can't safely cast to `ProgramInfo` since we don't know the
/// concrete type of the program. It's up to the caller to ensure
/// that the program type matches the type you're converting to.
/// Otherwise, the behavior is undefined.
pub unsafe fn from_program_info(
name: Option<&'static str>,
info: ProgramInfo,
$var: $var_ty,
) -> Result<Self, ProgramError> {
if info.program_type()? != $prog_type {
return Err(ProgramError::UnexpectedProgramType {});
}
let ProgramInfo { 0: bpf_progam_info} = info;
let fd = info.fd()?;
let fd = fd.as_fd().try_clone_to_owned()?;
Ok(Self {
data: ProgramData::from_bpf_prog_info(
name.map(|n| Cow::Borrowed(n)),
crate::MockableFd::from_fd(fd),
Path::new(""),
bpf_progam_info,
VerifierLogLevel::default(),
)?,
$var,
})
}
}
};
}
// Order of arguments is as follows:
// - Program, bpf_prog_type, unsafe
// - Program, bpf_prog_type, unsafe, additional variable, variable type
impl_from_prog_info!(
(KProbe, ProgramType::KProbe, true, kind, ProbeKind),
(UProbe, ProgramType::KProbe, true, kind, ProbeKind),
(TracePoint, ProgramType::TracePoint, false),
(SocketFilter, ProgramType::SocketFilter, false),
(Xdp, ProgramType::Xdp, false, attach_type, XdpAttachType),
(SkMsg, ProgramType::SkMsg, false),
(SkSkb, ProgramType::SkSkb, false, kind, SkSkbKind),
(SockOps, ProgramType::SockOps, false),
(SchedClassifier, ProgramType::SchedClassifier, false),
(
CgroupSkb,
ProgramType::CgroupSkb,
false,
attach_type,
Option<CgroupSkbAttachType>
),
(CgroupSysctl, ProgramType::CgroupSysctl, false),
(
CgroupSockopt,
ProgramType::CgroupSockopt,
false,
attach_type,
CgroupSockoptAttachType
),
(LircMode2, ProgramType::LircMode2, false),
(PerfEvent, ProgramType::PerfEvent, false),
(Lsm, ProgramType::Lsm, false),
(RawTracePoint, ProgramType::RawTracePoint, false),
(BtfTracePoint, ProgramType::Tracing, true),
(FEntry, ProgramType::Tracing, true),
(FExit, ProgramType::Tracing, true),
(Extension, ProgramType::Extension, false),
(SkLookup, ProgramType::SkLookup, false),
(CgroupDevice, ProgramType::CgroupDevice, false),
);
macro_rules! impl_try_from_program {
($($ty:ident),+ $(,)?) => {
$(

@ -10,7 +10,7 @@ use std::{fs, panic, path::Path, time::SystemTime};
use aya::{
Ebpf,
maps::{Array, HashMap, IterableMap as _, MapError, MapType, loaded_maps},
programs::{ProgramError, ProgramType, SocketFilter, TracePoint, loaded_programs},
programs::{ProgramError, ProgramType, SocketFilter, TracePoint, UProbe, loaded_programs},
sys::enable_stats,
util::KernelVersion,
};
@ -25,8 +25,8 @@ const BPF_STATS_ENABLED: &str = "/proc/sys/kernel/bpf_stats_enabled";
fn test_loaded_programs() {
// Load a program.
// Since we are only testing the programs for their metadata, there is no need to "attach" them.
let mut bpf = Ebpf::load(crate::SIMPLE_PROG).unwrap();
let prog: &mut SocketFilter = bpf.program_mut("simple_prog").unwrap().try_into().unwrap();
let mut bpf = Ebpf::load(crate::TEST).unwrap();
let prog: &mut UProbe = bpf.program_mut("test_uprobe").unwrap().try_into().unwrap();
prog.load().unwrap();
let test_prog = prog.info().unwrap();
@ -55,6 +55,27 @@ fn test_loaded_programs() {
programs.any(|prog| prog.id() == test_prog.id()),
KernelVersion::new(4, 13, 0)
);
// Iterate through loaded programs to exercise `from_program_info()`.
for program in loaded_programs() {
let program = program.unwrap();
let mut p: UProbe = unsafe {
UProbe::from_program_info(
Some("simple_prog"),
program,
aya::programs::ProbeKind::UProbe,
)
.unwrap()
};
// Ensure we can perform basic operations on the re-created program.
let res = p
.attach("uprobe_function", "/proc/self/exe", None, None)
.unwrap();
// Ensure the program can be detached
p.detach(res).unwrap();
}
}
#[test]

@ -2539,6 +2539,8 @@ pub fn aya::programs::cgroup_device::CgroupDevice::fd(&self) -> core::result::Re
impl aya::programs::cgroup_device::CgroupDevice
pub fn aya::programs::cgroup_device::CgroupDevice::from_pin<P: core::convert::AsRef<std::path::Path>>(path: P) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::cgroup_device::CgroupDevice
pub fn aya::programs::cgroup_device::CgroupDevice::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::cgroup_device::CgroupDevice
pub fn aya::programs::cgroup_device::CgroupDevice::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::cgroup_device::CgroupDevice
pub fn aya::programs::cgroup_device::CgroupDevice::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -2701,6 +2703,8 @@ pub fn aya::programs::cgroup_skb::CgroupSkb::take_link(&mut self, link_id: aya::
impl aya::programs::cgroup_skb::CgroupSkb
pub fn aya::programs::cgroup_skb::CgroupSkb::fd(&self) -> core::result::Result<&aya::programs::ProgramFd, aya::programs::ProgramError>
impl aya::programs::cgroup_skb::CgroupSkb
pub fn aya::programs::cgroup_skb::CgroupSkb::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo, attach_type: core::option::Option<aya::programs::cgroup_skb::CgroupSkbAttachType>) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::cgroup_skb::CgroupSkb
pub fn aya::programs::cgroup_skb::CgroupSkb::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::cgroup_skb::CgroupSkb
pub fn aya::programs::cgroup_skb::CgroupSkb::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -3079,6 +3083,8 @@ pub fn aya::programs::cgroup_sockopt::CgroupSockopt::take_link(&mut self, link_i
impl aya::programs::cgroup_sockopt::CgroupSockopt
pub fn aya::programs::cgroup_sockopt::CgroupSockopt::fd(&self) -> core::result::Result<&aya::programs::ProgramFd, aya::programs::ProgramError>
impl aya::programs::cgroup_sockopt::CgroupSockopt
pub fn aya::programs::cgroup_sockopt::CgroupSockopt::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo, attach_type: aya_obj::programs::cgroup_sockopt::CgroupSockoptAttachType) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::cgroup_sockopt::CgroupSockopt
pub fn aya::programs::cgroup_sockopt::CgroupSockopt::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::cgroup_sockopt::CgroupSockopt
pub fn aya::programs::cgroup_sockopt::CgroupSockopt::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -3205,6 +3211,8 @@ pub fn aya::programs::cgroup_sysctl::CgroupSysctl::fd(&self) -> core::result::Re
impl aya::programs::cgroup_sysctl::CgroupSysctl
pub fn aya::programs::cgroup_sysctl::CgroupSysctl::from_pin<P: core::convert::AsRef<std::path::Path>>(path: P) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::cgroup_sysctl::CgroupSysctl
pub fn aya::programs::cgroup_sysctl::CgroupSysctl::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::cgroup_sysctl::CgroupSysctl
pub fn aya::programs::cgroup_sysctl::CgroupSysctl::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::cgroup_sysctl::CgroupSysctl
pub fn aya::programs::cgroup_sysctl::CgroupSysctl::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -3365,6 +3373,8 @@ pub fn aya::programs::extension::Extension::fd(&self) -> core::result::Result<&a
impl aya::programs::extension::Extension
pub fn aya::programs::extension::Extension::from_pin<P: core::convert::AsRef<std::path::Path>>(path: P) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::extension::Extension
pub fn aya::programs::extension::Extension::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::extension::Extension
pub fn aya::programs::extension::Extension::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::extension::Extension
pub fn aya::programs::extension::Extension::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -3495,6 +3505,8 @@ pub fn aya::programs::fentry::FEntry::fd(&self) -> core::result::Result<&aya::pr
impl aya::programs::fentry::FEntry
pub fn aya::programs::fentry::FEntry::from_pin<P: core::convert::AsRef<std::path::Path>>(path: P) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::fentry::FEntry
pub unsafe fn aya::programs::fentry::FEntry::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::fentry::FEntry
pub fn aya::programs::fentry::FEntry::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::fentry::FEntry
pub fn aya::programs::fentry::FEntry::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -3625,6 +3637,8 @@ pub fn aya::programs::fexit::FExit::fd(&self) -> core::result::Result<&aya::prog
impl aya::programs::fexit::FExit
pub fn aya::programs::fexit::FExit::from_pin<P: core::convert::AsRef<std::path::Path>>(path: P) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::fexit::FExit
pub unsafe fn aya::programs::fexit::FExit::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::fexit::FExit
pub fn aya::programs::fexit::FExit::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::fexit::FExit
pub fn aya::programs::fexit::FExit::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -3952,6 +3966,8 @@ pub fn aya::programs::kprobe::KProbe::take_link(&mut self, link_id: aya::program
impl aya::programs::kprobe::KProbe
pub fn aya::programs::kprobe::KProbe::fd(&self) -> core::result::Result<&aya::programs::ProgramFd, aya::programs::ProgramError>
impl aya::programs::kprobe::KProbe
pub unsafe fn aya::programs::kprobe::KProbe::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo, kind: aya::programs::ProbeKind) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::kprobe::KProbe
pub fn aya::programs::kprobe::KProbe::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::kprobe::KProbe
pub fn aya::programs::kprobe::KProbe::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -4649,6 +4665,8 @@ pub fn aya::programs::lirc_mode2::LircMode2::fd(&self) -> core::result::Result<&
impl aya::programs::lirc_mode2::LircMode2
pub fn aya::programs::lirc_mode2::LircMode2::from_pin<P: core::convert::AsRef<std::path::Path>>(path: P) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::lirc_mode2::LircMode2
pub fn aya::programs::lirc_mode2::LircMode2::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::lirc_mode2::LircMode2
pub fn aya::programs::lirc_mode2::LircMode2::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::lirc_mode2::LircMode2
pub fn aya::programs::lirc_mode2::LircMode2::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -4700,6 +4718,8 @@ pub fn aya::programs::lsm::Lsm::fd(&self) -> core::result::Result<&aya::programs
impl aya::programs::lsm::Lsm
pub fn aya::programs::lsm::Lsm::from_pin<P: core::convert::AsRef<std::path::Path>>(path: P) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::lsm::Lsm
pub fn aya::programs::lsm::Lsm::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::lsm::Lsm
pub fn aya::programs::lsm::Lsm::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::lsm::Lsm
pub fn aya::programs::lsm::Lsm::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -5026,6 +5046,8 @@ pub fn aya::programs::perf_event::PerfEvent::fd(&self) -> core::result::Result<&
impl aya::programs::perf_event::PerfEvent
pub fn aya::programs::perf_event::PerfEvent::from_pin<P: core::convert::AsRef<std::path::Path>>(path: P) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::perf_event::PerfEvent
pub fn aya::programs::perf_event::PerfEvent::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::perf_event::PerfEvent
pub fn aya::programs::perf_event::PerfEvent::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::perf_event::PerfEvent
pub fn aya::programs::perf_event::PerfEvent::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -5158,6 +5180,8 @@ pub fn aya::programs::raw_trace_point::RawTracePoint::fd(&self) -> core::result:
impl aya::programs::raw_trace_point::RawTracePoint
pub fn aya::programs::raw_trace_point::RawTracePoint::from_pin<P: core::convert::AsRef<std::path::Path>>(path: P) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::raw_trace_point::RawTracePoint
pub fn aya::programs::raw_trace_point::RawTracePoint::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::raw_trace_point::RawTracePoint
pub fn aya::programs::raw_trace_point::RawTracePoint::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::raw_trace_point::RawTracePoint
pub fn aya::programs::raw_trace_point::RawTracePoint::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -5288,6 +5312,8 @@ pub fn aya::programs::sk_lookup::SkLookup::fd(&self) -> core::result::Result<&ay
impl aya::programs::sk_lookup::SkLookup
pub fn aya::programs::sk_lookup::SkLookup::from_pin<P: core::convert::AsRef<std::path::Path>>(path: P) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::sk_lookup::SkLookup
pub fn aya::programs::sk_lookup::SkLookup::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::sk_lookup::SkLookup
pub fn aya::programs::sk_lookup::SkLookup::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::sk_lookup::SkLookup
pub fn aya::programs::sk_lookup::SkLookup::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -5418,6 +5444,8 @@ pub fn aya::programs::sk_msg::SkMsg::fd(&self) -> core::result::Result<&aya::pro
impl aya::programs::sk_msg::SkMsg
pub fn aya::programs::sk_msg::SkMsg::from_pin<P: core::convert::AsRef<std::path::Path>>(path: P) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::sk_msg::SkMsg
pub fn aya::programs::sk_msg::SkMsg::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::sk_msg::SkMsg
pub fn aya::programs::sk_msg::SkMsg::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::sk_msg::SkMsg
pub fn aya::programs::sk_msg::SkMsg::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -5583,6 +5611,8 @@ pub fn aya::programs::sk_skb::SkSkb::take_link(&mut self, link_id: aya::programs
impl aya::programs::sk_skb::SkSkb
pub fn aya::programs::sk_skb::SkSkb::fd(&self) -> core::result::Result<&aya::programs::ProgramFd, aya::programs::ProgramError>
impl aya::programs::sk_skb::SkSkb
pub fn aya::programs::sk_skb::SkSkb::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo, kind: aya::programs::sk_skb::SkSkbKind) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::sk_skb::SkSkb
pub fn aya::programs::sk_skb::SkSkb::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::sk_skb::SkSkb
pub fn aya::programs::sk_skb::SkSkb::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -5713,6 +5743,8 @@ pub fn aya::programs::sock_ops::SockOps::fd(&self) -> core::result::Result<&aya:
impl aya::programs::sock_ops::SockOps
pub fn aya::programs::sock_ops::SockOps::from_pin<P: core::convert::AsRef<std::path::Path>>(path: P) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::sock_ops::SockOps
pub fn aya::programs::sock_ops::SockOps::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::sock_ops::SockOps
pub fn aya::programs::sock_ops::SockOps::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::sock_ops::SockOps
pub fn aya::programs::sock_ops::SockOps::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -5873,6 +5905,8 @@ pub fn aya::programs::socket_filter::SocketFilter::fd(&self) -> core::result::Re
impl aya::programs::socket_filter::SocketFilter
pub fn aya::programs::socket_filter::SocketFilter::from_pin<P: core::convert::AsRef<std::path::Path>>(path: P) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::socket_filter::SocketFilter
pub fn aya::programs::socket_filter::SocketFilter::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::socket_filter::SocketFilter
pub fn aya::programs::socket_filter::SocketFilter::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::socket_filter::SocketFilter
pub fn aya::programs::socket_filter::SocketFilter::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -6151,6 +6185,8 @@ pub fn aya::programs::tc::SchedClassifier::take_link(&mut self, link_id: aya::pr
impl aya::programs::tc::SchedClassifier
pub fn aya::programs::tc::SchedClassifier::fd(&self) -> core::result::Result<&aya::programs::ProgramFd, aya::programs::ProgramError>
impl aya::programs::tc::SchedClassifier
pub fn aya::programs::tc::SchedClassifier::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::tc::SchedClassifier
pub fn aya::programs::tc::SchedClassifier::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::tc::SchedClassifier
pub fn aya::programs::tc::SchedClassifier::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -6297,6 +6333,8 @@ pub fn aya::programs::tp_btf::BtfTracePoint::fd(&self) -> core::result::Result<&
impl aya::programs::tp_btf::BtfTracePoint
pub fn aya::programs::tp_btf::BtfTracePoint::from_pin<P: core::convert::AsRef<std::path::Path>>(path: P) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::tp_btf::BtfTracePoint
pub unsafe fn aya::programs::tp_btf::BtfTracePoint::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::tp_btf::BtfTracePoint
pub fn aya::programs::tp_btf::BtfTracePoint::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::tp_btf::BtfTracePoint
pub fn aya::programs::tp_btf::BtfTracePoint::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -6463,6 +6501,8 @@ pub fn aya::programs::trace_point::TracePoint::fd(&self) -> core::result::Result
impl aya::programs::trace_point::TracePoint
pub fn aya::programs::trace_point::TracePoint::from_pin<P: core::convert::AsRef<std::path::Path>>(path: P) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::trace_point::TracePoint
pub fn aya::programs::trace_point::TracePoint::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::trace_point::TracePoint
pub fn aya::programs::trace_point::TracePoint::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::trace_point::TracePoint
pub fn aya::programs::trace_point::TracePoint::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -6707,6 +6747,8 @@ pub fn aya::programs::uprobe::UProbe::take_link(&mut self, link_id: aya::program
impl aya::programs::uprobe::UProbe
pub fn aya::programs::uprobe::UProbe::fd(&self) -> core::result::Result<&aya::programs::ProgramFd, aya::programs::ProgramError>
impl aya::programs::uprobe::UProbe
pub unsafe fn aya::programs::uprobe::UProbe::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo, kind: aya::programs::ProbeKind) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::uprobe::UProbe
pub fn aya::programs::uprobe::UProbe::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::uprobe::UProbe
pub fn aya::programs::uprobe::UProbe::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -6874,6 +6916,8 @@ pub fn aya::programs::xdp::Xdp::take_link(&mut self, link_id: aya::programs::xdp
impl aya::programs::xdp::Xdp
pub fn aya::programs::xdp::Xdp::fd(&self) -> core::result::Result<&aya::programs::ProgramFd, aya::programs::ProgramError>
impl aya::programs::xdp::Xdp
pub fn aya::programs::xdp::Xdp::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo, attach_type: aya_obj::programs::xdp::XdpAttachType) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::xdp::Xdp
pub fn aya::programs::xdp::Xdp::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::xdp::Xdp
pub fn aya::programs::xdp::Xdp::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -8053,6 +8097,8 @@ pub fn aya::programs::tp_btf::BtfTracePoint::fd(&self) -> core::result::Result<&
impl aya::programs::tp_btf::BtfTracePoint
pub fn aya::programs::tp_btf::BtfTracePoint::from_pin<P: core::convert::AsRef<std::path::Path>>(path: P) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::tp_btf::BtfTracePoint
pub unsafe fn aya::programs::tp_btf::BtfTracePoint::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::tp_btf::BtfTracePoint
pub fn aya::programs::tp_btf::BtfTracePoint::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::tp_btf::BtfTracePoint
pub fn aya::programs::tp_btf::BtfTracePoint::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -8104,6 +8150,8 @@ pub fn aya::programs::cgroup_device::CgroupDevice::fd(&self) -> core::result::Re
impl aya::programs::cgroup_device::CgroupDevice
pub fn aya::programs::cgroup_device::CgroupDevice::from_pin<P: core::convert::AsRef<std::path::Path>>(path: P) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::cgroup_device::CgroupDevice
pub fn aya::programs::cgroup_device::CgroupDevice::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::cgroup_device::CgroupDevice
pub fn aya::programs::cgroup_device::CgroupDevice::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::cgroup_device::CgroupDevice
pub fn aya::programs::cgroup_device::CgroupDevice::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -8154,6 +8202,8 @@ pub fn aya::programs::cgroup_skb::CgroupSkb::take_link(&mut self, link_id: aya::
impl aya::programs::cgroup_skb::CgroupSkb
pub fn aya::programs::cgroup_skb::CgroupSkb::fd(&self) -> core::result::Result<&aya::programs::ProgramFd, aya::programs::ProgramError>
impl aya::programs::cgroup_skb::CgroupSkb
pub fn aya::programs::cgroup_skb::CgroupSkb::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo, attach_type: core::option::Option<aya::programs::cgroup_skb::CgroupSkbAttachType>) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::cgroup_skb::CgroupSkb
pub fn aya::programs::cgroup_skb::CgroupSkb::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::cgroup_skb::CgroupSkb
pub fn aya::programs::cgroup_skb::CgroupSkb::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -8301,6 +8351,8 @@ pub fn aya::programs::cgroup_sockopt::CgroupSockopt::take_link(&mut self, link_i
impl aya::programs::cgroup_sockopt::CgroupSockopt
pub fn aya::programs::cgroup_sockopt::CgroupSockopt::fd(&self) -> core::result::Result<&aya::programs::ProgramFd, aya::programs::ProgramError>
impl aya::programs::cgroup_sockopt::CgroupSockopt
pub fn aya::programs::cgroup_sockopt::CgroupSockopt::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo, attach_type: aya_obj::programs::cgroup_sockopt::CgroupSockoptAttachType) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::cgroup_sockopt::CgroupSockopt
pub fn aya::programs::cgroup_sockopt::CgroupSockopt::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::cgroup_sockopt::CgroupSockopt
pub fn aya::programs::cgroup_sockopt::CgroupSockopt::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -8351,6 +8403,8 @@ pub fn aya::programs::cgroup_sysctl::CgroupSysctl::fd(&self) -> core::result::Re
impl aya::programs::cgroup_sysctl::CgroupSysctl
pub fn aya::programs::cgroup_sysctl::CgroupSysctl::from_pin<P: core::convert::AsRef<std::path::Path>>(path: P) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::cgroup_sysctl::CgroupSysctl
pub fn aya::programs::cgroup_sysctl::CgroupSysctl::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::cgroup_sysctl::CgroupSysctl
pub fn aya::programs::cgroup_sysctl::CgroupSysctl::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::cgroup_sysctl::CgroupSysctl
pub fn aya::programs::cgroup_sysctl::CgroupSysctl::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -8402,6 +8456,8 @@ pub fn aya::programs::extension::Extension::fd(&self) -> core::result::Result<&a
impl aya::programs::extension::Extension
pub fn aya::programs::extension::Extension::from_pin<P: core::convert::AsRef<std::path::Path>>(path: P) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::extension::Extension
pub fn aya::programs::extension::Extension::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::extension::Extension
pub fn aya::programs::extension::Extension::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::extension::Extension
pub fn aya::programs::extension::Extension::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -8452,6 +8508,8 @@ pub fn aya::programs::fentry::FEntry::fd(&self) -> core::result::Result<&aya::pr
impl aya::programs::fentry::FEntry
pub fn aya::programs::fentry::FEntry::from_pin<P: core::convert::AsRef<std::path::Path>>(path: P) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::fentry::FEntry
pub unsafe fn aya::programs::fentry::FEntry::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::fentry::FEntry
pub fn aya::programs::fentry::FEntry::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::fentry::FEntry
pub fn aya::programs::fentry::FEntry::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -8502,6 +8560,8 @@ pub fn aya::programs::fexit::FExit::fd(&self) -> core::result::Result<&aya::prog
impl aya::programs::fexit::FExit
pub fn aya::programs::fexit::FExit::from_pin<P: core::convert::AsRef<std::path::Path>>(path: P) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::fexit::FExit
pub unsafe fn aya::programs::fexit::FExit::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::fexit::FExit
pub fn aya::programs::fexit::FExit::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::fexit::FExit
pub fn aya::programs::fexit::FExit::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -8602,6 +8662,8 @@ pub fn aya::programs::kprobe::KProbe::take_link(&mut self, link_id: aya::program
impl aya::programs::kprobe::KProbe
pub fn aya::programs::kprobe::KProbe::fd(&self) -> core::result::Result<&aya::programs::ProgramFd, aya::programs::ProgramError>
impl aya::programs::kprobe::KProbe
pub unsafe fn aya::programs::kprobe::KProbe::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo, kind: aya::programs::ProbeKind) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::kprobe::KProbe
pub fn aya::programs::kprobe::KProbe::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::kprobe::KProbe
pub fn aya::programs::kprobe::KProbe::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -8688,6 +8750,8 @@ pub fn aya::programs::lirc_mode2::LircMode2::fd(&self) -> core::result::Result<&
impl aya::programs::lirc_mode2::LircMode2
pub fn aya::programs::lirc_mode2::LircMode2::from_pin<P: core::convert::AsRef<std::path::Path>>(path: P) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::lirc_mode2::LircMode2
pub fn aya::programs::lirc_mode2::LircMode2::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::lirc_mode2::LircMode2
pub fn aya::programs::lirc_mode2::LircMode2::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::lirc_mode2::LircMode2
pub fn aya::programs::lirc_mode2::LircMode2::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -8738,6 +8802,8 @@ pub fn aya::programs::lsm::Lsm::fd(&self) -> core::result::Result<&aya::programs
impl aya::programs::lsm::Lsm
pub fn aya::programs::lsm::Lsm::from_pin<P: core::convert::AsRef<std::path::Path>>(path: P) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::lsm::Lsm
pub fn aya::programs::lsm::Lsm::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::lsm::Lsm
pub fn aya::programs::lsm::Lsm::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::lsm::Lsm
pub fn aya::programs::lsm::Lsm::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -8788,6 +8854,8 @@ pub fn aya::programs::perf_event::PerfEvent::fd(&self) -> core::result::Result<&
impl aya::programs::perf_event::PerfEvent
pub fn aya::programs::perf_event::PerfEvent::from_pin<P: core::convert::AsRef<std::path::Path>>(path: P) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::perf_event::PerfEvent
pub fn aya::programs::perf_event::PerfEvent::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::perf_event::PerfEvent
pub fn aya::programs::perf_event::PerfEvent::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::perf_event::PerfEvent
pub fn aya::programs::perf_event::PerfEvent::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -8936,6 +9004,8 @@ pub fn aya::programs::raw_trace_point::RawTracePoint::fd(&self) -> core::result:
impl aya::programs::raw_trace_point::RawTracePoint
pub fn aya::programs::raw_trace_point::RawTracePoint::from_pin<P: core::convert::AsRef<std::path::Path>>(path: P) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::raw_trace_point::RawTracePoint
pub fn aya::programs::raw_trace_point::RawTracePoint::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::raw_trace_point::RawTracePoint
pub fn aya::programs::raw_trace_point::RawTracePoint::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::raw_trace_point::RawTracePoint
pub fn aya::programs::raw_trace_point::RawTracePoint::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -8988,6 +9058,8 @@ pub fn aya::programs::tc::SchedClassifier::take_link(&mut self, link_id: aya::pr
impl aya::programs::tc::SchedClassifier
pub fn aya::programs::tc::SchedClassifier::fd(&self) -> core::result::Result<&aya::programs::ProgramFd, aya::programs::ProgramError>
impl aya::programs::tc::SchedClassifier
pub fn aya::programs::tc::SchedClassifier::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::tc::SchedClassifier
pub fn aya::programs::tc::SchedClassifier::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::tc::SchedClassifier
pub fn aya::programs::tc::SchedClassifier::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -9040,6 +9112,8 @@ pub fn aya::programs::sk_lookup::SkLookup::fd(&self) -> core::result::Result<&ay
impl aya::programs::sk_lookup::SkLookup
pub fn aya::programs::sk_lookup::SkLookup::from_pin<P: core::convert::AsRef<std::path::Path>>(path: P) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::sk_lookup::SkLookup
pub fn aya::programs::sk_lookup::SkLookup::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::sk_lookup::SkLookup
pub fn aya::programs::sk_lookup::SkLookup::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::sk_lookup::SkLookup
pub fn aya::programs::sk_lookup::SkLookup::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -9090,6 +9164,8 @@ pub fn aya::programs::sk_msg::SkMsg::fd(&self) -> core::result::Result<&aya::pro
impl aya::programs::sk_msg::SkMsg
pub fn aya::programs::sk_msg::SkMsg::from_pin<P: core::convert::AsRef<std::path::Path>>(path: P) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::sk_msg::SkMsg
pub fn aya::programs::sk_msg::SkMsg::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::sk_msg::SkMsg
pub fn aya::programs::sk_msg::SkMsg::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::sk_msg::SkMsg
pub fn aya::programs::sk_msg::SkMsg::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -9139,6 +9215,8 @@ pub fn aya::programs::sk_skb::SkSkb::take_link(&mut self, link_id: aya::programs
impl aya::programs::sk_skb::SkSkb
pub fn aya::programs::sk_skb::SkSkb::fd(&self) -> core::result::Result<&aya::programs::ProgramFd, aya::programs::ProgramError>
impl aya::programs::sk_skb::SkSkb
pub fn aya::programs::sk_skb::SkSkb::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo, kind: aya::programs::sk_skb::SkSkbKind) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::sk_skb::SkSkb
pub fn aya::programs::sk_skb::SkSkb::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::sk_skb::SkSkb
pub fn aya::programs::sk_skb::SkSkb::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -9189,6 +9267,8 @@ pub fn aya::programs::sock_ops::SockOps::fd(&self) -> core::result::Result<&aya:
impl aya::programs::sock_ops::SockOps
pub fn aya::programs::sock_ops::SockOps::from_pin<P: core::convert::AsRef<std::path::Path>>(path: P) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::sock_ops::SockOps
pub fn aya::programs::sock_ops::SockOps::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::sock_ops::SockOps
pub fn aya::programs::sock_ops::SockOps::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::sock_ops::SockOps
pub fn aya::programs::sock_ops::SockOps::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -9238,6 +9318,8 @@ pub fn aya::programs::socket_filter::SocketFilter::fd(&self) -> core::result::Re
impl aya::programs::socket_filter::SocketFilter
pub fn aya::programs::socket_filter::SocketFilter::from_pin<P: core::convert::AsRef<std::path::Path>>(path: P) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::socket_filter::SocketFilter
pub fn aya::programs::socket_filter::SocketFilter::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::socket_filter::SocketFilter
pub fn aya::programs::socket_filter::SocketFilter::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::socket_filter::SocketFilter
pub fn aya::programs::socket_filter::SocketFilter::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -9288,6 +9370,8 @@ pub fn aya::programs::trace_point::TracePoint::fd(&self) -> core::result::Result
impl aya::programs::trace_point::TracePoint
pub fn aya::programs::trace_point::TracePoint::from_pin<P: core::convert::AsRef<std::path::Path>>(path: P) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::trace_point::TracePoint
pub fn aya::programs::trace_point::TracePoint::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::trace_point::TracePoint
pub fn aya::programs::trace_point::TracePoint::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::trace_point::TracePoint
pub fn aya::programs::trace_point::TracePoint::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -9338,6 +9422,8 @@ pub fn aya::programs::uprobe::UProbe::take_link(&mut self, link_id: aya::program
impl aya::programs::uprobe::UProbe
pub fn aya::programs::uprobe::UProbe::fd(&self) -> core::result::Result<&aya::programs::ProgramFd, aya::programs::ProgramError>
impl aya::programs::uprobe::UProbe
pub unsafe fn aya::programs::uprobe::UProbe::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo, kind: aya::programs::ProbeKind) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::uprobe::UProbe
pub fn aya::programs::uprobe::UProbe::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::uprobe::UProbe
pub fn aya::programs::uprobe::UProbe::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>
@ -9389,6 +9475,8 @@ pub fn aya::programs::xdp::Xdp::take_link(&mut self, link_id: aya::programs::xdp
impl aya::programs::xdp::Xdp
pub fn aya::programs::xdp::Xdp::fd(&self) -> core::result::Result<&aya::programs::ProgramFd, aya::programs::ProgramError>
impl aya::programs::xdp::Xdp
pub fn aya::programs::xdp::Xdp::from_program_info(name: core::option::Option<&'static str>, info: aya::programs::ProgramInfo, attach_type: aya_obj::programs::xdp::XdpAttachType) -> core::result::Result<Self, aya::programs::ProgramError>
impl aya::programs::xdp::Xdp
pub fn aya::programs::xdp::Xdp::info(&self) -> core::result::Result<aya::programs::ProgramInfo, aya::programs::ProgramError>
impl aya::programs::xdp::Xdp
pub fn aya::programs::xdp::Xdp::pin<P: core::convert::AsRef<std::path::Path>>(&mut self, path: P) -> core::result::Result<(), aya::pin::PinError>

Loading…
Cancel
Save