pub struct Bus {
blocks: Vec<Block>,
ignore_unmapped: bool,
watchers: Vec<Address>,
watcher_modified: bool,
}
Expand description
A bus-like collection of Addressable
Device
s mapped to different address ranges
This is the fundamental means of connecting devices together to a CPU implementation.
Fields§
§blocks: Vec<Block>
§ignore_unmapped: bool
§watchers: Vec<Address>
§watcher_modified: bool
Implementations§
source§impl Bus
impl Bus
pub fn set_ignore_unmapped(&mut self, ignore_unmapped: bool)
pub fn clear_all_bus_devices(&mut self)
pub fn insert(&mut self, base: Address, dev: Device)
pub fn get_device_at( &self, addr: Address, count: usize ) -> Result<(Device, Address), Error>
pub fn dump_memory(&mut self, clock: Instant, addr: Address, count: Address)
pub fn add_watcher(&mut self, addr: Address)
pub fn remove_watcher(&mut self, addr: Address)
pub fn check_and_reset_watcher_modified(&mut self) -> bool
Trait Implementations§
source§impl Addressable for Bus
impl Addressable for Bus
fn size(&self) -> usize
fn read( &mut self, clock: Instant, addr: Address, data: &mut [u8] ) -> Result<(), Error>
fn write( &mut self, clock: Instant, addr: Address, data: &[u8] ) -> Result<(), Error>
fn read_u8(&mut self, clock: Instant, addr: Address) -> Result<u8, Error>
fn read_beu16(&mut self, clock: Instant, addr: Address) -> Result<u16, Error>
fn read_leu16(&mut self, clock: Instant, addr: Address) -> Result<u16, Error>
fn read_beu32(&mut self, clock: Instant, addr: Address) -> Result<u32, Error>
fn read_leu32(&mut self, clock: Instant, addr: Address) -> Result<u32, Error>
fn write_u8( &mut self, clock: Instant, addr: Address, value: u8 ) -> Result<(), Error>
fn write_beu16( &mut self, clock: Instant, addr: Address, value: u16 ) -> Result<(), Error>
fn write_leu16( &mut self, clock: Instant, addr: Address, value: u16 ) -> Result<(), Error>
fn write_beu32( &mut self, clock: Instant, addr: Address, value: u32 ) -> Result<(), Error>
fn write_leu32( &mut self, clock: Instant, addr: Address, value: u32 ) -> Result<(), Error>
Auto Trait Implementations§
impl !RefUnwindSafe for Bus
impl !Send for Bus
impl !Sync for Bus
impl Unpin for Bus
impl !UnwindSafe for Bus
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