Struct rsim::processor::elements::cheri::IntegerModeCheriAggregateMemory [−][src]
pub struct IntegerModeCheriAggregateMemory<'a> { base_mem: &'a mut CheriAggregateMemory, base_cap: Cc128Cap, }
Wrapper for a reference to CheriAggregateMemory that allows integer-mode accesses. Exposes MemoryOf<{u8,u16,u32,u64}, TAddr=u64>.
Fields
base_mem: &'a mut CheriAggregateMemory
base_cap: Cc128Cap
Implementations
impl<'a> IntegerModeCheriAggregateMemory<'a>
[src]
impl<'a> IntegerModeCheriAggregateMemory<'a>
[src]pub fn wrap(base_mem: &'a mut CheriAggregateMemory, base_cap: Cc128Cap) -> Self
[src]
Trait Implementations
impl<'a> CheriMemory<u64> for IntegerModeCheriAggregateMemory<'a>
[src]
impl<'a> CheriMemory<u64> for IntegerModeCheriAggregateMemory<'a>
[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<'a> Memory<u64> for IntegerModeCheriAggregateMemory<'a>
[src]
impl<'a> Memory<u64> for IntegerModeCheriAggregateMemory<'a>
[src]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<'a, TData> MemoryOf<TData, u64> for IntegerModeCheriAggregateMemory<'a> where
CheriAggregateMemory: MemoryOf<TData, Cc128Cap>,
[src]
impl<'a, TData> MemoryOf<TData, u64> for IntegerModeCheriAggregateMemory<'a> where
CheriAggregateMemory: MemoryOf<TData, Cc128Cap>,
[src]Reimplement basic MemoryOf<TData, TAddr=u64> for the integer mode memory. Integer addresses are passed to the underlying CheriAggregateMemory inside the base capability, and all checking/security is done inside the CheriAggregateMemory.
fn read(&mut self, addr: u64) -> MemoryResult<TData>
[src]
fn write(&mut self, addr: u64, val: TData) -> MemoryResult<()>
[src]
impl<'a> VecMemInterface<u64, SafeTaggedCap> for IntegerModeCheriAggregateMemory<'a>
[src]
impl<'a> VecMemInterface<u64, SafeTaggedCap> for IntegerModeCheriAggregateMemory<'a>
[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<()>