pub struct IdeDevice { /* private fields */ }
Expand description
PCI-based IDE controller
Implementations§
Source§impl IdeDevice
impl IdeDevice
Sourcepub fn new(
guest_memory: GuestMemory,
register_pio: &mut dyn RegisterPortIoIntercept,
primary_channel_drives: [Option<DriveMedia>; 2],
secondary_channel_drives: [Option<DriveMedia>; 2],
primary_line_interrupt: LineInterrupt,
secondary_line_interrupt: LineInterrupt,
) -> Result<Self, NewDeviceError>
pub fn new( guest_memory: GuestMemory, register_pio: &mut dyn RegisterPortIoIntercept, primary_channel_drives: [Option<DriveMedia>; 2], secondary_channel_drives: [Option<DriveMedia>; 2], primary_line_interrupt: LineInterrupt, secondary_line_interrupt: LineInterrupt, ) -> Result<Self, NewDeviceError>
Creates an IDE device from the provided channel drive configuration.
Trait Implementations§
Source§impl ChipsetDevice for IdeDevice
impl ChipsetDevice for IdeDevice
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_pci(&mut self) -> Option<&mut dyn PciConfigSpace>
fn supports_pci(&mut self) -> Option<&mut dyn PciConfigSpace>
Optionally returns a trait object to send PCI config space accesses 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_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 IdeDevice
impl InspectMut for IdeDevice
Source§fn inspect_mut(&mut self, req: Request<'_>)
fn inspect_mut(&mut self, req: Request<'_>)
Inspects the object.
Source§impl PciConfigSpace for IdeDevice
impl PciConfigSpace for IdeDevice
Source§fn pci_cfg_read(&mut self, offset: u16, value: &mut u32) -> IoResult
fn pci_cfg_read(&mut self, offset: u16, value: &mut u32) -> IoResult
Dispatch a PCI config space read to the device with the given address.
Source§fn pci_cfg_write(&mut self, offset: u16, value: u32) -> IoResult
fn pci_cfg_write(&mut self, offset: u16, value: u32) -> IoResult
Dispatch a PCI config space write to the device with the given address.
Source§impl PollDevice for IdeDevice
impl PollDevice for IdeDevice
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 PortIoIntercept for IdeDevice
impl PortIoIntercept for IdeDevice
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.
Source§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
Auto Trait Implementations§
impl Freeze for IdeDevice
impl !RefUnwindSafe for IdeDevice
impl Send for IdeDevice
impl !Sync for IdeDevice
impl Unpin for IdeDevice
impl !UnwindSafe for IdeDevice
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> PciChipsetDeviceExt for Twhere
T: ChipsetDevice + PciConfigSpace + ?Sized,
impl<T> PciChipsetDeviceExt for Twhere
T: ChipsetDevice + PciConfigSpace + ?Sized,
§fn probe_bar_masks(&mut self) -> [u32; 6]
fn probe_bar_masks(&mut self) -> [u32; 6]
Probe the PCI device’s BAR registers to retrieve the BAR masks.
§fn probe_hardware_ids(&mut self) -> HardwareIds
fn probe_hardware_ids(&mut self) -> HardwareIds
Probe the PCI device’s configuration space registers to obtain the
device’s hardware ID values.