pub struct MemAccessCtx {
pub privileged: bool,
pub strict: bool,
pub io_effects: bool,
pub track_access: bool,
}
Expand description
Context behind a memory access.
This struct is used by Simulator::read_mem
and Simulator::write_mem
to perform checks against memory accesses.
A default memory access context for the given simulator can be constructed with Simulator::default_mem_ctx
.
Fields§
§privileged: bool
Whether this access is privileged (false = user, true = supervisor).
strict: bool
Whether writes to memory should follow strict rules (no writing partially or fully uninitialized data).
This does not affect Simulator::read_mem
.
io_effects: bool
Whether a read to memory-mapped IO should cause side effects.
This can be set to false to observe the value of IO.
This does not affect Simulator::write_mem
.
track_access: bool
Whether an access should be tracked in the Simulator’s observer::AccessObserver
.
This typically should be disabled if some sort of system (e.g., autograder or program setup) is reading/writing and enabled during program execution.
Implementations§
Source§impl MemAccessCtx
impl MemAccessCtx
Sourcepub fn omnipotent() -> Self
pub fn omnipotent() -> Self
Allows accessing memory and (effectless) IO without causing any IO updates or access observer updates.
Useful for accessing memory + IO states.
Trait Implementations§
Source§impl Clone for MemAccessCtx
impl Clone for MemAccessCtx
Source§fn clone(&self) -> MemAccessCtx
fn clone(&self) -> MemAccessCtx
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more