pub struct MemorySpace { /* private fields */ }
Expand description
A Memory that represents an address space forwarding reads and writes to other inner memories.
When reads and writes are forwarded to an inner memory the base address is adjusted appropriate
(e.g. a Memory added with MemorySpace::add_memory at address 0x100000
will get a read at
address 0x0
if the MemorySpace gets a read at 0x100000
The inner memory regions cannot overlap and base addresses must be 32-bit aligned.
Implementations§
Source§impl MemorySpace
impl MemorySpace
pub fn new() -> Self
Sourcepub fn add_memory(
&mut self,
base: u32,
size: u32,
memory: Box<dyn Memory>,
) -> Result<usize, MemorySpaceError>
pub fn add_memory( &mut self, base: u32, size: u32, memory: Box<dyn Memory>, ) -> Result<usize, MemorySpaceError>
Add an inner memory.
When Ok
is returned a memory index is provided which can be used with
MemorySpace::get_memory_ref and MemorySpace::get_memory_mut to get a reference to that
memory.
Trait Implementations§
Source§impl Default for MemorySpace
impl Default for MemorySpace
Auto Trait Implementations§
impl Freeze for MemorySpace
impl !RefUnwindSafe for MemorySpace
impl !Send for MemorySpace
impl !Sync for MemorySpace
impl Unpin for MemorySpace
impl !UnwindSafe for MemorySpace
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.