pub trait MaybeStubFloppyDiskController:
Sized
+ ChipsetDevice
+ ChangeDeviceState
+ InspectMut
+ PollDevice
+ PortIoIntercept
+ SaveRestore {
type NewError: Error + Send + Sync + 'static;
// Required methods
fn new(
guest_memory: GuestMemory,
interrupt: LineInterrupt,
register_pio: &mut dyn RegisterPortIoIntercept,
pio_base_addr: u16,
disk_drive: DriveRibbon,
dma: Box<dyn IsaDmaChannel>,
) -> Result<Self, Self::NewError>;
fn offset_of(&self, io_port: u16) -> Option<u16>;
}
Expand description
Trait that abstracts over different floppy controller implementations.
This trait allows re-using the same code for both the fully-featured floppy controller, and the stub floppy controller (which is required when booting via BIOS using the Microsoft PCAT firmware blob).
Required Associated Types§
Required Methods§
sourcefn new(
guest_memory: GuestMemory,
interrupt: LineInterrupt,
register_pio: &mut dyn RegisterPortIoIntercept,
pio_base_addr: u16,
disk_drive: DriveRibbon,
dma: Box<dyn IsaDmaChannel>,
) -> Result<Self, Self::NewError>
fn new( guest_memory: GuestMemory, interrupt: LineInterrupt, register_pio: &mut dyn RegisterPortIoIntercept, pio_base_addr: u16, disk_drive: DriveRibbon, dma: Box<dyn IsaDmaChannel>, ) -> Result<Self, Self::NewError>
Create a new FloppyDiskController
Object Safety§
This trait is not object safe.