Module pci_driver::regions
source · [−]Expand description
Types representing PCI regions (config space, BARs, etc.) and other related types.
Base machinery
-
trait PciRegion. Sealed.&'a dyn PciRegionimplementsAsPciSubregion<'a>, for all'a.
-
PciSubregion<'a>implementsPciRegion, for all'a.PciSubregion<'a>implementsAsPciSubregion<'a>, for all'a.
-
trait AsPciSubregion<'a>. UnlikePciRegion, this trait is not sealed.- If
TimplementsAsPciSubregion<'a>, then&'b TimplementsAsPciSubregion<'a>, for all'a,'b,T. - If
TimplementsAsPciSubregion<'a> + Debug + Send + Sync, thenTimplementsPciRegion, for all'a,T.
- If
PciRegion implementations
-
struct OwningPciRegion. A region that somehow owns its backing resources, and so is not bound by the lifetime of aPciDevice.OwningPciRegionimplementsPciRegion.&'a OwningPciRegionimplementsAsPciSubregion<'a>, for all'a.
-
struct MappedOwningPciRegion. What you get by callingOwningPciRegion::map.MappedOwningPciRegionimplementsPciRegion.&'a MappedOwningPciRegionimplementsAsPciSubregion<'a>, for all'a.
-
struct PciMemoryRegion<'a>. A region backed by a&'a [u8],&'a mut [u8], or raw memory.PciMemoryRegion<'a>implementsPciRegion, for all'a.&'a PciMemoryRegion<'b>implementsAsPciSubregion<'a>, for all'a,'b.
-
PciRegionSnapshotimplementsPciRegion.&'a PciRegionSnapshotimplementsAsPciSubregion<'a>, for all'a.
And also
Modules
Structs
A memory-mapped OwningPciRegion. This is also a PciRegion. Dropping this unmaps the
region.
This is “owning” in the sense that it doesn’t borrow the PciDevice it came from.
Use this to take snapshots of anything that is an AsPciSubregion.
A contiguous part of a PciRegion, which is itself also a PciRegion.
Enums
Describes which operations may be performed on some piece of memory or other data region.
Traits
For when it is possible to obtain a PciSubregion representation of a value cheaply.
Something that is backed by a PciSubregion.
A region of PCI Configuration Space, or a BAR, or the Expansion ROM, or VGA Space, or some other device region, or maybe something else, as long it is safe to read and write to it concurrently with no data races.