pub struct RelocatorRun<'cfg, T, Arch: RelocationArch = NativeArch, Obs = (), Tls: TlsResolver<Arch> = (), ScopeState = ModuleScopeBuilder<Arch, Tls>, Binder = ()> { /* private fields */ }Expand description
Per-image relocation run state.
A run owns the raw image being relocated and the scope being assembled for
that image. It consumes itself when relocate is called.
Implementations§
Source§impl<'cfg, T, Arch, Obs, Tls, ScopeState, Binder> RelocatorRun<'cfg, T, Arch, Obs, Tls, ScopeState, Binder>
impl<'cfg, T, Arch, Obs, Tls, ScopeState, Binder> RelocatorRun<'cfg, T, Arch, Obs, Tls, ScopeState, Binder>
Sourcepub fn observer<NewObs>(
self,
observer: NewObs,
) -> RelocatorRun<'cfg, T, Arch, NewObs, Tls, ScopeState, Binder>where
NewObs: RelocationObserver<Arch>,
pub fn observer<NewObs>(
self,
observer: NewObs,
) -> RelocatorRun<'cfg, T, Arch, NewObs, Tls, ScopeState, Binder>where
NewObs: RelocationObserver<Arch>,
Sets the runtime-linker observer used during relocation.
Sourcepub fn binding(self, binding: BindingMode) -> Self
pub fn binding(self, binding: BindingMode) -> Self
Overrides the relocation binding mode.
Sourcepub fn set_binding(&mut self, binding: BindingMode)
pub fn set_binding(&mut self, binding: BindingMode)
Updates the relocation binding mode in place.
Source§impl<'cfg, T, Arch, Obs, Tls, Binder> RelocatorRun<'cfg, T, Arch, Obs, Tls, ModuleScopeBuilder<Arch, Tls>, Binder>
impl<'cfg, T, Arch, Obs, Tls, Binder> RelocatorRun<'cfg, T, Arch, Obs, Tls, ModuleScopeBuilder<Arch, Tls>, Binder>
Sourcepub fn scope<I, R>(self, scope: I) -> Self
pub fn scope<I, R>(self, scope: I) -> Self
Replaces the current module scope used for symbol resolution.
Replaces the current module scope with a shared scope owner.
Sourcepub fn extend_scope<I, R>(self, scope: I) -> Self
pub fn extend_scope<I, R>(self, scope: I) -> Self
Appends more modules to the symbol-resolution scope.
Source§impl<'cfg, T, Arch, Obs, Tls, ScopeState, Binder> RelocatorRun<'cfg, T, Arch, Obs, Tls, ScopeState, Binder>
impl<'cfg, T, Arch, Obs, Tls, ScopeState, Binder> RelocatorRun<'cfg, T, Arch, Obs, Tls, ScopeState, Binder>
Source§impl<'cfg, T, Arch, Obs, Tls, Binder> RelocatorRun<'cfg, T, Arch, Obs, Tls, ModuleScopeBuilder<Arch, Tls>, Binder>where
Arch: RelocationArch,
Tls: TlsResolver<Arch>,
Obs: RelocationObserver<Arch>,
Binder: LazyBinder<Arch>,
impl<'cfg, T, Arch, Obs, Tls, Binder> RelocatorRun<'cfg, T, Arch, Obs, Tls, ModuleScopeBuilder<Arch, Tls>, Binder>where
Arch: RelocationArch,
Tls: TlsResolver<Arch>,
Obs: RelocationObserver<Arch>,
Binder: LazyBinder<Arch>,
Source§impl<'cfg, T, Arch, Obs, Tls, Binder> RelocatorRun<'cfg, T, Arch, Obs, Tls, ModuleScope<Arch, Tls>, Binder>where
Arch: RelocationArch,
Tls: TlsResolver<Arch>,
Obs: RelocationObserver<Arch>,
Binder: LazyBinder<Arch>,
impl<'cfg, T, Arch, Obs, Tls, Binder> RelocatorRun<'cfg, T, Arch, Obs, Tls, ModuleScope<Arch, Tls>, Binder>where
Arch: RelocationArch,
Tls: TlsResolver<Arch>,
Obs: RelocationObserver<Arch>,
Binder: LazyBinder<Arch>,
Trait Implementations§
Source§impl<'cfg, T, Arch, Obs, Tls, ScopeState, Binder> Clone for RelocatorRun<'cfg, T, Arch, Obs, Tls, ScopeState, Binder>
impl<'cfg, T, Arch, Obs, Tls, ScopeState, Binder> Clone for RelocatorRun<'cfg, T, Arch, Obs, Tls, ScopeState, Binder>
Auto Trait Implementations§
impl<'cfg, T, Arch, Obs, Tls, ScopeState, Binder> Freeze for RelocatorRun<'cfg, T, Arch, Obs, Tls, ScopeState, Binder>
impl<'cfg, T, Arch, Obs, Tls, ScopeState, Binder> RefUnwindSafe for RelocatorRun<'cfg, T, Arch, Obs, Tls, ScopeState, Binder>
impl<'cfg, T, Arch, Obs, Tls, ScopeState, Binder> Send for RelocatorRun<'cfg, T, Arch, Obs, Tls, ScopeState, Binder>
impl<'cfg, T, Arch, Obs, Tls, ScopeState, Binder> Sync for RelocatorRun<'cfg, T, Arch, Obs, Tls, ScopeState, Binder>
impl<'cfg, T, Arch, Obs, Tls, ScopeState, Binder> Unpin for RelocatorRun<'cfg, T, Arch, Obs, Tls, ScopeState, Binder>
impl<'cfg, T, Arch, Obs, Tls, ScopeState, Binder> UnsafeUnpin for RelocatorRun<'cfg, T, Arch, Obs, Tls, ScopeState, Binder>
impl<'cfg, T, Arch, Obs, Tls, ScopeState, Binder> UnwindSafe for RelocatorRun<'cfg, T, Arch, Obs, Tls, ScopeState, Binder>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more