|  |  | @ -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 { | 
			
		
	
	
		
		
			
				
					|  |  | 
 |