pub struct Piix4PciBus { /* private fields */ }
Expand description
The PCI bus as implemented on the PIIX4 chipset.
Identical to a standard PCI bus, aside from the addition of the RESET_CF9
register, because for some reason, someone thought it’d be a great idea
to throw a one-byte register that performs a machine reset right in the
middle of the PCI addr register >:(
Implementations§
Source§impl Piix4PciBus
impl Piix4PciBus
Sourcepub fn new(
register_pio: &mut dyn RegisterPortIoIntercept,
reset_evt: Box<dyn Fn() + Send + Sync>,
) -> Self
pub fn new( register_pio: &mut dyn RegisterPortIoIntercept, reset_evt: Box<dyn Fn() + Send + Sync>, ) -> Self
Create a new Piix4PciBus
Sourcepub fn as_pci_bus(&mut self) -> &mut GenericPciBus
pub fn as_pci_bus(&mut self) -> &mut GenericPciBus
bypass the PIIX4 specific stuff, and get a handle to the underlying PCI bus implementation
Trait Implementations§
Source§impl ChangeDeviceState for Piix4PciBus
impl ChangeDeviceState for Piix4PciBus
Source§impl ChipsetDevice for Piix4PciBus
impl ChipsetDevice for Piix4PciBus
Source§fn supports_pio(&mut self) -> Option<&mut dyn PortIoIntercept>
fn supports_pio(&mut self) -> Option<&mut dyn PortIoIntercept>
Optionally returns a trait object to send IO port intercepts to.
Source§fn supports_poll_device(&mut self) -> Option<&mut dyn PollDevice>
fn supports_poll_device(&mut self) -> Option<&mut dyn PollDevice>
Optionally returns a trait object to send poll requests to.
§fn supports_mmio(&mut self) -> Option<&mut (dyn MmioIntercept + 'static)>
fn supports_mmio(&mut self) -> Option<&mut (dyn MmioIntercept + 'static)>
Optionally returns a trait object to send MMIO port intercepts to.
§fn supports_pci(&mut self) -> Option<&mut (dyn PciConfigSpace + 'static)>
fn supports_pci(&mut self) -> Option<&mut (dyn PciConfigSpace + 'static)>
Optionally returns a trait object to send PCI config space accesses to.
§fn supports_line_interrupt_target(
&mut self,
) -> Option<&mut dyn LineInterruptTarget>
fn supports_line_interrupt_target( &mut self, ) -> Option<&mut dyn LineInterruptTarget>
Optionally returns a trait object to send interrupt line changes to.
§fn supports_handle_eoi(&mut self) -> Option<&mut dyn HandleEoi>
fn supports_handle_eoi(&mut self) -> Option<&mut dyn HandleEoi>
Optionally returns a trait object to send EOI requests to.
§fn supports_acknowledge_pic_interrupt(
&mut self,
) -> Option<&mut dyn AcknowledgePicInterrupt>
fn supports_acknowledge_pic_interrupt( &mut self, ) -> Option<&mut dyn AcknowledgePicInterrupt>
Optionally returns a trait object with which to acknowledge PIC
interrupts.
Source§impl InspectMut for Piix4PciBus
impl InspectMut for Piix4PciBus
Source§fn inspect_mut(&mut self, req: Request<'_>)
fn inspect_mut(&mut self, req: Request<'_>)
Inspects the object.
Source§impl PortIoIntercept for Piix4PciBus
impl PortIoIntercept for Piix4PciBus
Source§fn io_read(&mut self, io_port: u16, data: &mut [u8]) -> IoResult
fn io_read(&mut self, io_port: u16, data: &mut [u8]) -> IoResult
Dispatch an IO port read to the device with the given address.
Source§fn io_write(&mut self, io_port: u16, data: &[u8]) -> IoResult
fn io_write(&mut self, io_port: u16, data: &[u8]) -> IoResult
Dispatch an IO port write to the device with the given address.
§fn get_static_regions(&mut self) -> &[(&str, RangeInclusive<u16>)]
fn get_static_regions(&mut self) -> &[(&str, RangeInclusive<u16>)]
Report a set of static io port regions (region_name, port_range) that
cannot be remapped at runtime and are always registered. Read more
Source§impl SaveRestore for Piix4PciBus
impl SaveRestore for Piix4PciBus
Auto Trait Implementations§
impl Freeze for Piix4PciBus
impl !RefUnwindSafe for Piix4PciBus
impl Send for Piix4PciBus
impl !Sync for Piix4PciBus
impl Unpin for Piix4PciBus
impl !UnwindSafe for Piix4PciBus
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