|
|
@ -397,19 +397,6 @@ pub enum LinkError {
|
|
|
|
SyscallError(#[from] SyscallError),
|
|
|
|
SyscallError(#[from] SyscallError),
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// A [`Link`] identifier.
|
|
|
|
|
|
|
|
pub struct LinkId(u32);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
impl LinkId {
|
|
|
|
|
|
|
|
/// Create a new [`LinkId`] from its kernel id.
|
|
|
|
|
|
|
|
///
|
|
|
|
|
|
|
|
/// This method is unsafe since it doesn't check that the given `id` is a an
|
|
|
|
|
|
|
|
/// existing link id.
|
|
|
|
|
|
|
|
pub unsafe fn new(id: u32) -> Self {
|
|
|
|
|
|
|
|
Self(id)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#[derive(Debug)]
|
|
|
|
#[derive(Debug)]
|
|
|
|
pub(crate) enum LinkRef {
|
|
|
|
pub(crate) enum LinkRef {
|
|
|
|
Id(u32),
|
|
|
|
Id(u32),
|
|
|
@ -496,22 +483,6 @@ impl LinkOrder {
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// Attach before the link with the given id.
|
|
|
|
|
|
|
|
pub fn before_link_id(id: LinkId) -> Result<Self, LinkError> {
|
|
|
|
|
|
|
|
Ok(Self {
|
|
|
|
|
|
|
|
link_ref: LinkRef::Id(id.0),
|
|
|
|
|
|
|
|
flags: MprogFlags::BEFORE | MprogFlags::LINK | MprogFlags::ID,
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// Attach after the link with the given id.
|
|
|
|
|
|
|
|
pub fn after_link_id(id: LinkId) -> Result<Self, LinkError> {
|
|
|
|
|
|
|
|
Ok(Self {
|
|
|
|
|
|
|
|
link_ref: LinkRef::Id(id.0),
|
|
|
|
|
|
|
|
flags: MprogFlags::AFTER | MprogFlags::LINK | MprogFlags::ID,
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// Attach before the given program.
|
|
|
|
/// Attach before the given program.
|
|
|
|
pub fn before_program<P: MultiProgProgram>(program: &P) -> Result<Self, ProgramError> {
|
|
|
|
pub fn before_program<P: MultiProgProgram>(program: &P) -> Result<Self, ProgramError> {
|
|
|
|
Ok(Self {
|
|
|
|
Ok(Self {
|
|
|
|