[][src]Trait riscv_sandbox::memory::Memory

pub trait Memory {
    fn get_8(&self, addr: usize) -> u8;
fn get_16(&self, addr: usize) -> u16;
fn get_32(&self, addr: usize) -> u32;
fn set_8(&mut self, addr: usize, value: u8);
fn set_16(&mut self, addr: usize, value: u16);
fn set_32(&mut self, addr: usize, value: u32); }

Represents the main memory. It can be implemented by any structure which can handle loads and stores.

Using a trait enables us to implement direct-mapped memory, RAM with MMU, or any other kind of memory interface.

Required methods

fn get_8(&self, addr: usize) -> u8

fn get_16(&self, addr: usize) -> u16

fn get_32(&self, addr: usize) -> u32

fn set_8(&mut self, addr: usize, value: u8)

fn set_16(&mut self, addr: usize, value: u16)

fn set_32(&mut self, addr: usize, value: u32)

Loading content...

Implementations on Foreign Types

impl<'a> Memory for &'a mut [u8][src]

Simple Memory implementation for u8 slices

impl Memory for Vec<u8>[src]

Simple Memory implementation for u8 dynamic arrays (Vec)

impl Memory for Vec<u32>[src]

Simple Memory implementation for u32 dynamic arrays (Vec)

impl Memory for HashMap<usize, u32>[src]

Loading content...

Implementors

Loading content...