Struct ata::IdeController

source ·
pub struct IdeController {
    pub primary_master: Option<AtaDriveRef>,
    pub primary_slave: Option<AtaDriveRef>,
    pub secondary_master: Option<AtaDriveRef>,
    pub secondary_slave: Option<AtaDriveRef>,
}
Expand description

A single IDE controller has two buses with up to two drives attached to each bus, for a total of up to four drives.

Fields§

§primary_master: Option<AtaDriveRef>§primary_slave: Option<AtaDriveRef>§secondary_master: Option<AtaDriveRef>§secondary_slave: Option<AtaDriveRef>

Implementations§

source§

impl IdeController

source

pub fn new(pci_device: &PciDevice) -> Result<IdeController, &'static str>

Creates a new instance of an IDE controller based on the given PCI device.

source

pub fn iter(&self) -> IdeControllerIter<'_>

Returns an Iterator over all of the AtaDrives that exist (and are supported) in this IdeController. The order of iteration is: primary master, primary slave, secondary master, and secondary slave; any devices that do not exist are skipped.

Trait Implementations§

source§

impl Debug for IdeController

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl StorageController for IdeController

source§

fn devices<'c>(&'c self) -> Box<dyn Iterator<Item = StorageDeviceRef> + 'c>

Returns an iterator of references to all StorageDevices attached to this controller. The lifetime of the iterator and the device references it returns are both bound by the lifetime of this StorageController. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for Twhere T: Any,

§

fn into_any(self: Box<T, Global>) -> Box<dyn Any, 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.
§

fn into_any_rc(self: Rc<T, Global>) -> Rc<dyn Any, Global>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

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.
§

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.
§

impl<T> DowncastSync for Twhere T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T, Global>) -> Arc<dyn Any + Send + Sync, Global>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.