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: boolWhether this access is privileged (false = user, true = supervisor).
strict: boolWhether writes to memory should follow strict rules (no writing partially or fully uninitialized data).
This does not affect Simulator::read_mem.
io_effects: boolWhether 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: boolWhether 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