Struct zircon_object::dev::pci::PCIeBusDriver
source · [−]pub struct PCIeBusDriver { /* private fields */ }
Expand description
PCIE Bus Driver.
Implementations
sourceimpl PCIeBusDriver
impl PCIeBusDriver
sourcepub fn add_bus_region(base: u64, size: u64, aspace: PciAddrSpace) -> ZxResult
pub fn add_bus_region(base: u64, size: u64, aspace: PciAddrSpace) -> ZxResult
Add bus region.
sourcepub fn sub_bus_region(base: u64, size: u64, aspace: PciAddrSpace) -> ZxResult
pub fn sub_bus_region(base: u64, size: u64, aspace: PciAddrSpace) -> ZxResult
Subtract bus region.
sourcepub fn set_address_translation_provider(
provider: Arc<dyn PCIeAddressProvider>
) -> ZxResult
pub fn set_address_translation_provider(
provider: Arc<dyn PCIeAddressProvider>
) -> ZxResult
A PcieAddressProvider translates a BDF address to an address that the system can use to access ECAMs.
sourcepub fn add_root(bus_id: usize, lut: PciIrqSwizzleLut) -> ZxResult
pub fn add_root(bus_id: usize, lut: PciIrqSwizzleLut) -> ZxResult
Add a root bus to the driver and attempt to scan it for devices.
sourcepub fn start_bus_driver() -> ZxResult
pub fn start_bus_driver() -> ZxResult
Start the bus driver.
sourcepub fn get_nth_device(
n: usize
) -> ZxResult<(PcieDeviceInfo, Arc<PcieDeviceKObject>)>
pub fn get_nth_device(
n: usize
) -> ZxResult<(PcieDeviceInfo, Arc<PcieDeviceKObject>)>
Get the “Nth” device.
sourceimpl PCIeBusDriver
impl PCIeBusDriver
sourcepub fn get_config(
&self,
bus_id: usize,
dev_id: usize,
func_id: usize
) -> Option<(Arc<PciConfig>, PhysAddr)>
pub fn get_config(
&self,
bus_id: usize,
dev_id: usize,
func_id: usize
) -> Option<(Arc<PciConfig>, PhysAddr)>
Get a device’s config.
sourcepub fn link_device_to_upstream(
&self,
down: Arc<dyn IPciNode>,
up: Weak<dyn IPciNode>
)
pub fn link_device_to_upstream(
&self,
down: Arc<dyn IPciNode>,
up: Weak<dyn IPciNode>
)
Link a device to an upstream node.
sourcepub fn find_legacy_irq_handler(
&self,
irq_id: usize
) -> ZxResult<Arc<SharedLegacyIrqHandler>>
pub fn find_legacy_irq_handler(
&self,
irq_id: usize
) -> ZxResult<Arc<SharedLegacyIrqHandler>>
Find the legacy IRQ handler.
Auto Trait Implementations
impl !RefUnwindSafe for PCIeBusDriver
impl Send for PCIeBusDriver
impl Sync for PCIeBusDriver
impl Unpin for PCIeBusDriver
impl !UnwindSafe for PCIeBusDriver
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> CheckedAs for T
impl<T> CheckedAs for T
sourcefn checked_as<Dst>(self) -> Option<Dst> where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst> where
T: CheckedCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> CheckedCastFrom<Src> for Dst where
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dst where
Src: CheckedCast<Dst>,
sourcefn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Casts the value.
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Convert Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
. Read more
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read more
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert &mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more
sourceimpl<T> OverflowingAs for T
impl<T> OverflowingAs for T
sourcefn overflowing_as<Dst>(self) -> (Dst, bool) where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool) where
T: OverflowingCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> OverflowingCastFrom<Src> for Dst where
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dst where
Src: OverflowingCast<Dst>,
sourcefn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
Casts the value.
sourceimpl<T> SaturatingAs for T
impl<T> SaturatingAs for T
sourcefn saturating_as<Dst>(self) -> Dst where
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dst where
T: SaturatingCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> SaturatingCastFrom<Src> for Dst where
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dst where
Src: SaturatingCast<Dst>,
sourcefn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
Casts the value.
sourceimpl<T> UnwrappedAs for T
impl<T> UnwrappedAs for T
sourcefn unwrapped_as<Dst>(self) -> Dst where
T: UnwrappedCast<Dst>,
fn unwrapped_as<Dst>(self) -> Dst where
T: UnwrappedCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> UnwrappedCastFrom<Src> for Dst where
Src: UnwrappedCast<Dst>,
impl<Src, Dst> UnwrappedCastFrom<Src> for Dst where
Src: UnwrappedCast<Dst>,
sourcefn unwrapped_cast_from(src: Src) -> Dst
fn unwrapped_cast_from(src: Src) -> Dst
Casts the value.
sourceimpl<T> WrappingAs for T
impl<T> WrappingAs for T
sourcefn wrapping_as<Dst>(self) -> Dst where
T: WrappingCast<Dst>,
fn wrapping_as<Dst>(self) -> Dst where
T: WrappingCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> WrappingCastFrom<Src> for Dst where
Src: WrappingCast<Dst>,
impl<Src, Dst> WrappingCastFrom<Src> for Dst where
Src: WrappingCast<Dst>,
sourcefn wrapping_cast_from(src: Src) -> Dst
fn wrapping_cast_from(src: Src) -> Dst
Casts the value.