pub struct Winbond83977FloppySioDevice<FDC: MaybeStubFloppyDiskController> { /* private fields */ }
Expand description
Combo Floppy controller + SuperIO config controller, as specified by the Winbond W83977ATF SIO chipset.
DEVNOTE: This device simply aggregates multiple sub-devices into a single
ChipsetDevice
, accounting for weird quirks like overlapping port-io and
shared interrupt lines.
Notably: this device contains no additional volatile state that needs to be saved/restored, outside of the state of its sub-devices.
Implementations§
Source§impl<FDC: MaybeStubFloppyDiskController> Winbond83977FloppySioDevice<FDC>
impl<FDC: MaybeStubFloppyDiskController> Winbond83977FloppySioDevice<FDC>
Sourcepub fn new(
guest_memory: GuestMemory,
interrupt: LineInterrupt,
register_pio: &mut dyn RegisterPortIoIntercept,
primary_disk_drive: DriveRibbon,
secondary_disk_drive: DriveRibbon,
primary_dma: Box<dyn IsaDmaChannel>,
secondary_dma: Box<dyn IsaDmaChannel>,
) -> Result<Self, NewWinbond83977FloppySioDeviceError<FDC::NewError>>
pub fn new( guest_memory: GuestMemory, interrupt: LineInterrupt, register_pio: &mut dyn RegisterPortIoIntercept, primary_disk_drive: DriveRibbon, secondary_disk_drive: DriveRibbon, primary_dma: Box<dyn IsaDmaChannel>, secondary_dma: Box<dyn IsaDmaChannel>, ) -> Result<Self, NewWinbond83977FloppySioDeviceError<FDC::NewError>>
Create a new Winbond83977FloppySioDevice
Trait Implementations§
Source§impl<FDC: MaybeStubFloppyDiskController> ChangeDeviceState for Winbond83977FloppySioDevice<FDC>
impl<FDC: MaybeStubFloppyDiskController> ChangeDeviceState for Winbond83977FloppySioDevice<FDC>
Source§impl<FDC: MaybeStubFloppyDiskController> ChipsetDevice for Winbond83977FloppySioDevice<FDC>
impl<FDC: MaybeStubFloppyDiskController> ChipsetDevice for Winbond83977FloppySioDevice<FDC>
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<FDC: MaybeStubFloppyDiskController> InspectMut for Winbond83977FloppySioDevice<FDC>
impl<FDC: MaybeStubFloppyDiskController> InspectMut for Winbond83977FloppySioDevice<FDC>
Source§fn inspect_mut(&mut self, req: Request<'_>)
fn inspect_mut(&mut self, req: Request<'_>)
Inspects the object.
Source§impl<FDC: MaybeStubFloppyDiskController> PollDevice for Winbond83977FloppySioDevice<FDC>
impl<FDC: MaybeStubFloppyDiskController> PollDevice for Winbond83977FloppySioDevice<FDC>
Source§fn poll_device(&mut self, cx: &mut Context<'_>)
fn poll_device(&mut self, cx: &mut Context<'_>)
Poll the device for asynchronous work. Read more
Source§impl<FDC: MaybeStubFloppyDiskController> PortIoIntercept for Winbond83977FloppySioDevice<FDC>
impl<FDC: MaybeStubFloppyDiskController> PortIoIntercept for Winbond83977FloppySioDevice<FDC>
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 Winbond83977FloppySioDevice<FloppyDiskController>
impl SaveRestore for Winbond83977FloppySioDevice<FloppyDiskController>
Source§impl SaveRestore for Winbond83977FloppySioDevice<StubFloppyDiskController>
impl SaveRestore for Winbond83977FloppySioDevice<StubFloppyDiskController>
Auto Trait Implementations§
impl<FDC> Freeze for Winbond83977FloppySioDevice<FDC>where
FDC: Freeze,
impl<FDC> RefUnwindSafe for Winbond83977FloppySioDevice<FDC>where
FDC: RefUnwindSafe,
impl<FDC> Send for Winbond83977FloppySioDevice<FDC>
impl<FDC> Sync for Winbond83977FloppySioDevice<FDC>where
FDC: Sync,
impl<FDC> Unpin for Winbond83977FloppySioDevice<FDC>where
FDC: Unpin,
impl<FDC> UnwindSafe for Winbond83977FloppySioDevice<FDC>where
FDC: UnwindSafe,
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