pub struct Offset<H> { /* private fields */ }Expand description
An MMIO handler that applies an offset to operations before dispatching the call to the next handler.
Use this combinator so that the inner handlers can operate in relative
address spaces. For example, if a register bank is defined in an offset in
conjunction with mmio::MmioSplit, it is desirable to reuse the same
mmio::Register implementations in the fakes.
Implementations§
Trait Implementations§
Source§impl<H: VmoMemoryHandler> GenericVmoMemoryHandler for Offset<H>
impl<H: VmoMemoryHandler> GenericVmoMemoryHandler for Offset<H>
Source§fn load<T: MmioOperand>(&self, op: VmoOpHelper<'_, T>) -> T
fn load<T: MmioOperand>(&self, op: VmoOpHelper<'_, T>) -> T
Handles an MMIO load operation for type
T.Source§fn store<T: MmioOperand>(&self, op: VmoOpHelper<'_, T>, value: T)
fn store<T: MmioOperand>(&self, op: VmoOpHelper<'_, T>, value: T)
Handles an MMIO store operation for type
T.Source§impl<H: MaybeVmoMemoryHandler> MaybeVmoMemoryHandler for Offset<H>
impl<H: MaybeVmoMemoryHandler> MaybeVmoMemoryHandler for Offset<H>
Source§fn get_handler(
&self,
range: Range<usize>,
) -> Option<&(impl VmoMemoryHandler + ?Sized)>
fn get_handler( &self, range: Range<usize>, ) -> Option<&(impl VmoMemoryHandler + ?Sized)>
Returns a
VmoMemoryHandler if range can be operated on by the
implementer.Auto Trait Implementations§
impl<H> Freeze for Offset<H>where
H: Freeze,
impl<H> RefUnwindSafe for Offset<H>where
H: RefUnwindSafe,
impl<H> Send for Offset<H>where
H: Send,
impl<H> Sync for Offset<H>where
H: Sync,
impl<H> Unpin for Offset<H>where
H: Unpin,
impl<H> UnsafeUnpin for Offset<H>where
H: UnsafeUnpin,
impl<H> UnwindSafe for Offset<H>where
H: UnwindSafe,
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