pub trait DeviceRegistersVolatileWideFieldAccess<'a, A> {
// Required methods
fn queue_desc(self) -> WideVolatilePtr<'a, le32, A::Restricted>
where A: RestrictAccess<WriteOnly>;
fn queue_driver(self) -> WideVolatilePtr<'a, le32, A::Restricted>
where A: RestrictAccess<WriteOnly>;
fn queue_device(self) -> WideVolatilePtr<'a, le32, A::Restricted>
where A: RestrictAccess<WriteOnly>;
fn shm_len(self) -> WideVolatilePtr<'a, le32, A::Restricted>
where A: RestrictAccess<ReadOnly>;
fn shm_base(self) -> WideVolatilePtr<'a, le32, A::Restricted>
where A: RestrictAccess<ReadOnly>;
}Expand description
MMIO Device Registers
Required Methods§
Sourcefn queue_desc(self) -> WideVolatilePtr<'a, le32, A::Restricted>where
A: RestrictAccess<WriteOnly>,
fn queue_desc(self) -> WideVolatilePtr<'a, le32, A::Restricted>where
A: RestrictAccess<WriteOnly>,
Virtual queue’s Descriptor Area 64 bit long physical address
Writing to these two registers (lower 32 bits of the address
to QueueDescLow, higher 32 bits to QueueDescHigh) notifies
the device about location of the Descriptor Area of the queue
selected by writing to QueueSel register.
Sourcefn queue_driver(self) -> WideVolatilePtr<'a, le32, A::Restricted>where
A: RestrictAccess<WriteOnly>,
fn queue_driver(self) -> WideVolatilePtr<'a, le32, A::Restricted>where
A: RestrictAccess<WriteOnly>,
Virtual queue’s Driver Area 64 bit long physical address
Writing to these two registers (lower 32 bits of the address
to QueueDriverLow, higher 32 bits to QueueDriverHigh) notifies
the device about location of the Driver Area of the queue
selected by writing to QueueSel.
Sourcefn queue_device(self) -> WideVolatilePtr<'a, le32, A::Restricted>where
A: RestrictAccess<WriteOnly>,
fn queue_device(self) -> WideVolatilePtr<'a, le32, A::Restricted>where
A: RestrictAccess<WriteOnly>,
Virtual queue’s Device Area 64 bit long physical address
Writing to these two registers (lower 32 bits of the address
to QueueDeviceLow, higher 32 bits to QueueDeviceHigh) notifies
the device about location of the Device Area of the queue
selected by writing to QueueSel.
Sourcefn shm_len(self) -> WideVolatilePtr<'a, le32, A::Restricted>where
A: RestrictAccess<ReadOnly>,
fn shm_len(self) -> WideVolatilePtr<'a, le32, A::Restricted>where
A: RestrictAccess<ReadOnly>,
Shared memory region 64 bit long length
These registers return the length of the shared memory
region in bytes, as defined by the device for the region selected by
the SHMSel register. The lower 32 bits of the length
are read from SHMLenLow and the higher 32 bits from
SHMLenHigh. Reading from a non-existent
region (i.e. where the ID written to SHMSel is unused)
results in a length of -1.
Sourcefn shm_base(self) -> WideVolatilePtr<'a, le32, A::Restricted>where
A: RestrictAccess<ReadOnly>,
fn shm_base(self) -> WideVolatilePtr<'a, le32, A::Restricted>where
A: RestrictAccess<ReadOnly>,
Shared memory region 64 bit long physical address
The driver reads these registers to discover the base address
of the region in physical address space. This address is
chosen by the device (or other part of the VMM).
The lower 32 bits of the address are read from SHMBaseLow
with the higher 32 bits from SHMBaseHigh. Reading
from a non-existent region (i.e. where the ID written to
SHMSel is unused) results in a base address of
0xffffffffffffffff.