pub struct Dma {
pub sp_addr: u32,
pub ram_addr: u32,
pub row_len: u32,
pub rows: u32,
pub skip: u32,
pub to_dram: bool,
}Expand description
A programmed DMA, latched from the address and length registers.
Returned to the Bus to execute rather than performed here: the RSP does not
own RDRAM, and a chip reaching back into its owner is the dependency cycle
docs/architecture.md exists to prevent. The PI engine returns a transfer
description for the same reason.
Fields§
§sp_addr: u32DMEM/IMEM byte offset, with bit 12 selecting IMEM.
ram_addr: u32RDRAM byte address.
row_len: u32Bytes per row. Already rounded up to a multiple of 8.
rows: u32Number of rows.
skip: u32Bytes skipped in RDRAM between rows. The SP side stays contiguous.
8-byte aligned: the field’s low three bits “are always 0”, so an unaligned value written by guest code cannot drag the RDRAM pointer off alignment mid-transfer.
to_dram: booltrue for DMEM/IMEM to RDRAM (SP_DMA_WRLEN).
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Dma
impl<'de> Deserialize<'de> for Dma
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Copy for Dma
impl Eq for Dma
impl StructuralPartialEq for Dma
Auto Trait Implementations§
impl Freeze for Dma
impl RefUnwindSafe for Dma
impl Send for Dma
impl Sync for Dma
impl Unpin for Dma
impl UnsafeUnpin for Dma
impl UnwindSafe for Dma
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