pub trait KernelControl: Send {
// Required methods
fn arm(&mut self, cond: BreakCondition) -> BreakpointId;
fn disarm(&mut self, id: BreakpointId);
fn snapshot(&self) -> KernelSnapshot;
fn gvt(&self) -> SimTime;
fn checkpoint(&mut self) -> CheckpointHandle;
fn rewind(&mut self, cp: CheckpointHandle) -> Result<(), RewindError>;
fn set_speculation_bound(&mut self, bound: SpeculationBound);
}Expand description
Implemented BY the engine (sched+determinism), called by sv-sim-debug
(debugger.md: “Breakpoints/watchpoints are kernel-evaluated… Arming any
breakpoint bounds speculation to conservative for that session”; ledger
SC-094, SC-095, SC-097, SC-100, DB-002, DB-014, CheckpointHandle: SC-105,
DB-029, DB-030, DB-033, DB-046, DB-048).
Required Methods§
fn arm(&mut self, cond: BreakCondition) -> BreakpointId
fn disarm(&mut self, id: BreakpointId)
fn snapshot(&self) -> KernelSnapshot
fn gvt(&self) -> SimTime
fn checkpoint(&mut self) -> CheckpointHandle
fn rewind(&mut self, cp: CheckpointHandle) -> Result<(), RewindError>
fn set_speculation_bound(&mut self, bound: SpeculationBound)
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".