pub struct QemuForkExecutor<'a, C, CM, ED, EM, ET, H, I, OT, S, SM, SP, Z> { /* private fields */ }
Implementations§
Source§impl<'a, C, CM, ED, EM, ET, H, I, OT, S, SM, SP, Z> QemuForkExecutor<'a, C, CM, ED, EM, ET, H, I, OT, S, SM, SP, Z>where
EM: EventFirer<I, S> + EventRestarter<S>,
ET: EmulatorModuleTuple<I, S>,
OT: ObserversTuple<I, S>,
S: HasSolutions<I>,
SP: ShMemProvider,
Z: HasObjective,
Z::Objective: Feedback<EM, I, OT, S>,
impl<'a, C, CM, ED, EM, ET, H, I, OT, S, SM, SP, Z> QemuForkExecutor<'a, C, CM, ED, EM, ET, H, I, OT, S, SM, SP, Z>where
EM: EventFirer<I, S> + EventRestarter<S>,
ET: EmulatorModuleTuple<I, S>,
OT: ObserversTuple<I, S>,
S: HasSolutions<I>,
SP: ShMemProvider,
Z: HasObjective,
Z::Objective: Feedback<EM, I, OT, S>,
pub fn new( emulator: Emulator<C, CM, ED, ET, I, S, SM>, harness_fn: &'a mut H, observers: OT, fuzzer: &mut Z, state: &mut S, event_mgr: &mut EM, shmem_provider: SP, timeout: Duration, ) -> Result<Self, Error>
pub fn inner( &self, ) -> &QemuInProcessForkExecutor<'a, C, CM, ED, EM, ET, H, I, OT, S, SM, SP, Z>
pub fn inner_mut( &mut self, ) -> &mut QemuInProcessForkExecutor<'a, C, CM, ED, EM, ET, H, I, OT, S, SM, SP, Z>
pub fn emulator(&self) -> &Emulator<C, CM, ED, ET, I, S, SM>
pub fn emulator_mut(&mut self) -> &Emulator<C, CM, ED, ET, I, S, SM>
Trait Implementations§
Source§impl<C, CM, ED, EM, ET, H, I, OT, S, SM, SP, Z> Debug for QemuForkExecutor<'_, C, CM, ED, EM, ET, H, I, OT, S, SM, SP, Z>
impl<C, CM, ED, EM, ET, H, I, OT, S, SM, SP, Z> Debug for QemuForkExecutor<'_, C, CM, ED, EM, ET, H, I, OT, S, SM, SP, Z>
Source§impl<C, CM, ED, EM, ET, H, I, OF, OT, S, SM, SP, Z> Executor<EM, I, S, Z> for QemuForkExecutor<'_, C, CM, ED, EM, ET, H, I, OT, S, SM, SP, Z>where
C: Clone,
CM: CommandManager<C, ED, ET, I, S, SM, Commands = C>,
ED: EmulatorDriver<C, CM, ET, I, S, SM>,
EM: EventFirer<I, S> + EventRestarter<S>,
ET: EmulatorModuleTuple<I, S>,
H: FnMut(&mut Emulator<C, CM, ED, ET, I, S, SM>, &I) -> ExitKind,
OF: Feedback<EM, I, OT, S>,
OT: ObserversTuple<I, S> + Debug,
I: Input + Unpin,
S: HasExecutions + Unpin,
SP: ShMemProvider,
Z: HasObjective<Objective = OF>,
impl<C, CM, ED, EM, ET, H, I, OF, OT, S, SM, SP, Z> Executor<EM, I, S, Z> for QemuForkExecutor<'_, C, CM, ED, EM, ET, H, I, OT, S, SM, SP, Z>where
C: Clone,
CM: CommandManager<C, ED, ET, I, S, SM, Commands = C>,
ED: EmulatorDriver<C, CM, ET, I, S, SM>,
EM: EventFirer<I, S> + EventRestarter<S>,
ET: EmulatorModuleTuple<I, S>,
H: FnMut(&mut Emulator<C, CM, ED, ET, I, S, SM>, &I) -> ExitKind,
OF: Feedback<EM, I, OT, S>,
OT: ObserversTuple<I, S> + Debug,
I: Input + Unpin,
S: HasExecutions + Unpin,
SP: ShMemProvider,
Z: HasObjective<Objective = OF>,
Source§impl<C, CM, ED, EM, ET, H, I, OT, S, SM, SP, Z> HasObservers for QemuForkExecutor<'_, C, CM, ED, EM, ET, H, I, OT, S, SM, SP, Z>where
ET: EmulatorModuleTuple<I, S>,
OT: ObserversTuple<I, S>,
impl<C, CM, ED, EM, ET, H, I, OT, S, SM, SP, Z> HasObservers for QemuForkExecutor<'_, C, CM, ED, EM, ET, H, I, OT, S, SM, SP, Z>where
ET: EmulatorModuleTuple<I, S>,
OT: ObserversTuple<I, S>,
Source§fn observers(&self) -> RefIndexable<&Self::Observers, Self::Observers>
fn observers(&self) -> RefIndexable<&Self::Observers, Self::Observers>
Get the linked observers
Source§fn observers_mut(
&mut self,
) -> RefIndexable<&mut Self::Observers, Self::Observers>
fn observers_mut( &mut self, ) -> RefIndexable<&mut Self::Observers, Self::Observers>
Get the linked observers (mutable)
Auto Trait Implementations§
impl<'a, C, CM, ED, EM, ET, H, I, OT, S, SM, SP, Z> !Freeze for QemuForkExecutor<'a, C, CM, ED, EM, ET, H, I, OT, S, SM, SP, Z>
impl<'a, C, CM, ED, EM, ET, H, I, OT, S, SM, SP, Z> !RefUnwindSafe for QemuForkExecutor<'a, C, CM, ED, EM, ET, H, I, OT, S, SM, SP, Z>
impl<'a, C, CM, ED, EM, ET, H, I, OT, S, SM, SP, Z> !Send for QemuForkExecutor<'a, C, CM, ED, EM, ET, H, I, OT, S, SM, SP, Z>
impl<'a, C, CM, ED, EM, ET, H, I, OT, S, SM, SP, Z> !Sync for QemuForkExecutor<'a, C, CM, ED, EM, ET, H, I, OT, S, SM, SP, Z>
impl<'a, C, CM, ED, EM, ET, H, I, OT, S, SM, SP, Z> Unpin for QemuForkExecutor<'a, C, CM, ED, EM, ET, H, I, OT, S, SM, SP, Z>
impl<'a, C, CM, ED, EM, ET, H, I, OT, S, SM, SP, Z> !UnwindSafe for QemuForkExecutor<'a, C, CM, ED, EM, ET, H, I, OT, S, SM, SP, Z>
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