pub trait TapController {
type Driver: VmiDriver;
// Required methods
fn new() -> Self;
fn check_event(
&self,
event: &VmiEvent<<Self::Driver as VmiDriver>::Architecture>,
) -> Option<(View, Gfn)>;
fn insert_breakpoint(
&mut self,
vmi: &VmiCore<Self::Driver>,
pa: Pa,
view: View,
) -> Result<(), VmiError>;
fn remove_breakpoint(
&mut self,
vmi: &VmiCore<Self::Driver>,
pa: Pa,
view: View,
) -> Result<(), VmiError>;
fn monitor(
&mut self,
vmi: &VmiCore<Self::Driver>,
gfn: Gfn,
view: View,
) -> Result<(), VmiError>;
fn unmonitor(
&mut self,
vmi: &VmiCore<Self::Driver>,
gfn: Gfn,
view: View,
) -> Result<(), VmiError>;
}Expand description
Trait for breakpoint controller implementations.
Required Associated Types§
Required Methods§
Sourcefn check_event(
&self,
event: &VmiEvent<<Self::Driver as VmiDriver>::Architecture>,
) -> Option<(View, Gfn)>
fn check_event( &self, event: &VmiEvent<<Self::Driver as VmiDriver>::Architecture>, ) -> Option<(View, Gfn)>
Checks if the given event was caused by a breakpoint.
Sourcefn insert_breakpoint(
&mut self,
vmi: &VmiCore<Self::Driver>,
pa: Pa,
view: View,
) -> Result<(), VmiError>
fn insert_breakpoint( &mut self, vmi: &VmiCore<Self::Driver>, pa: Pa, view: View, ) -> Result<(), VmiError>
Inserts a breakpoint at the given physical address.
Sourcefn remove_breakpoint(
&mut self,
vmi: &VmiCore<Self::Driver>,
pa: Pa,
view: View,
) -> Result<(), VmiError>
fn remove_breakpoint( &mut self, vmi: &VmiCore<Self::Driver>, pa: Pa, view: View, ) -> Result<(), VmiError>
Removes a breakpoint at the given physical address.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.