pub struct AhciController {
abar_virt: u64,
ports: Vec<AhciPort>,
}Fields§
§abar_virt: u64§ports: Vec<AhciPort>Implementations§
Source§impl AhciController
impl AhciController
fn port_by_num(&self, port_num: u8) -> Option<&AhciPort>
Sourcepub unsafe fn init() -> Result<Self, AhciError>
pub unsafe fn init() -> Result<Self, AhciError>
Probe and initialise an AHCI controller from the PCI bus.
§Safety
Must be called once during single-threaded kernel init (MMIO mapping).
Sourcepub fn sector_count(&self) -> u64
pub fn sector_count(&self) -> u64
Return sector count of the first port.
Sourcepub fn first_port_num(&self) -> Option<u8>
pub fn first_port_num(&self) -> Option<u8>
Return the logical port number of the first usable port.
Sourcefn first_port(&self) -> Option<&AhciPort>
fn first_port(&self) -> Option<&AhciPort>
Performs the first port operation.
Trait Implementations§
Source§impl BlockDevice for AhciController
impl BlockDevice for AhciController
Source§fn read_sector(&self, sector: u64, buf: &mut [u8]) -> Result<(), BlockError>
fn read_sector(&self, sector: u64, buf: &mut [u8]) -> Result<(), BlockError>
Reads sector.
Source§fn write_sector(&self, sector: u64, buf: &[u8]) -> Result<(), BlockError>
fn write_sector(&self, sector: u64, buf: &[u8]) -> Result<(), BlockError>
Writes sector.
Source§fn sector_count(&self) -> u64
fn sector_count(&self) -> u64
Performs the sector count operation.
impl Send for AhciController
impl Sync for AhciController
Auto Trait Implementations§
impl Freeze for AhciController
impl RefUnwindSafe for AhciController
impl Unpin for AhciController
impl UnsafeUnpin for AhciController
impl UnwindSafe for AhciController
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more