Struct rsim::memory::CheriAggregateMemory [−][src]
pub struct CheriAggregateMemory {
base_mem: AggregateMemory,
tag_mem: TagMemory,
}Wrapper for AggregateMemory64 that keeps tags, supports MemoryOf
Fields
base_mem: AggregateMemorytag_mem: TagMemoryImplementations
impl CheriAggregateMemory[src]
impl CheriAggregateMemory[src]pub fn from_base(base_mem: AggregateMemory) -> CheriAggregateMemory[src]
pub fn fetch_inst_u32(&mut self, cap: Cc128Cap) -> MemoryResult<u32>[src]
pub fn get_full_range_cap(&self) -> Cc128Cap[src]
pub fn get_io_values(&self) -> Vec<Option<u64>>[src]
Trait Implementations
impl CheriMemory<CcxCap<Cc128>> for CheriAggregateMemory[src]
impl CheriMemory<CcxCap<Cc128>> for CheriAggregateMemory[src]Combine MemoryOf<u8,u16,u32,u64> with MemoryOf
fn load_maybe_cap(&mut self, addr: TAddr) -> MemoryResult<SafeTaggedCap>[src]
fn store_maybe_cap(
&mut self,
addr: TAddr,
val: SafeTaggedCap
) -> MemoryResult<()>[src]
&mut self,
addr: TAddr,
val: SafeTaggedCap
) -> MemoryResult<()>
fn store_cap(&mut self, addr: TAddr, val: Cc128Cap) -> MemoryResult<()>[src]
impl Memory<CcxCap<Cc128>> for CheriAggregateMemory[src]
impl Memory<CcxCap<Cc128>> for CheriAggregateMemory[src]Now we’ve defined MemoryOf<u8,u16,u32,u64>, combine them into a single Memory trait
fn range(&self) -> Range<usize>[src]
fn as_any(&self) -> &dyn Any[src]
fn load_u8(&mut self, addr: TAddr) -> MemoryResult<u8>[src]
fn load_u16(&mut self, addr: TAddr) -> MemoryResult<u16>[src]
fn load_u32(&mut self, addr: TAddr) -> MemoryResult<u32>[src]
fn load_u64(&mut self, addr: TAddr) -> MemoryResult<u64>[src]
fn store_u8(&mut self, addr: TAddr, val: u8) -> MemoryResult<()>[src]
fn store_u16(&mut self, addr: TAddr, val: u16) -> MemoryResult<()>[src]
fn store_u32(&mut self, addr: TAddr, val: u32) -> MemoryResult<()>[src]
fn store_u64(&mut self, addr: TAddr, val: u64) -> MemoryResult<()>[src]
impl MemoryOf<SafeTaggedCap, CcxCap<Cc128>> for CheriAggregateMemory[src]
impl MemoryOf<SafeTaggedCap, CcxCap<Cc128>> for CheriAggregateMemory[src]Impl a capability-aware view of memory for CHERI instructions e.g. a CHERI Load instruction, which is allowed to load capabilities, would use this version.
fn read(&mut self, cap: Cc128Cap) -> MemoryResult<SafeTaggedCap>[src]
fn write(&mut self, cap: Cc128Cap, val: SafeTaggedCap) -> MemoryResult<()>[src]
impl<TData> MemoryOf<TData, CcxCap<Cc128>> for CheriAggregateMemory where
AggregateMemory: MemoryOf<TData, u64>, [src]
impl<TData> MemoryOf<TData, CcxCap<Cc128>> for CheriAggregateMemory where
AggregateMemory: MemoryOf<TData, u64>, [src]Implement MemoryOf
fn read(&mut self, cap: Cc128Cap) -> MemoryResult<TData>[src]
fn write(&mut self, cap: Cc128Cap, val: TData) -> MemoryResult<()>[src]
impl<'a> VecMemInterface<u64, SafeTaggedCap> for CheriAggregateMemory[src]
impl<'a> VecMemInterface<u64, SafeTaggedCap> for CheriAggregateMemory[src]fn load_from_memory(
&mut self,
eew: Sew,
addr_provenance: (u64, Provenance)
) -> Result<SafeTaggedCap>[src]
&mut self,
eew: Sew,
addr_provenance: (u64, Provenance)
) -> Result<SafeTaggedCap>
fn store_to_memory(
&mut self,
eew: Sew,
val: SafeTaggedCap,
addr_provenance: (u64, Provenance)
) -> Result<()>[src]
&mut self,
eew: Sew,
val: SafeTaggedCap,
addr_provenance: (u64, Provenance)
) -> Result<()>