Struct pager::nvme::controller::NvmeController
source · [−]pub struct NvmeController {
requester: RwLock<Vec<Requester<NvmeRequester>>>,
admin_requester: RwLock<Option<Arc<Requester<NvmeRequester>>>>,
int_tasks: Mutex<Vec<Task<()>>>,
device_ctrl: DeviceController,
dma_pool: DmaPool,
capacity: OnceLock<usize>,
block_size: OnceLock<usize>,
}
Fields
requester: RwLock<Vec<Requester<NvmeRequester>>>
admin_requester: RwLock<Option<Arc<Requester<NvmeRequester>>>>
int_tasks: Mutex<Vec<Task<()>>>
device_ctrl: DeviceController
dma_pool: DmaPool
capacity: OnceLock<usize>
block_size: OnceLock<usize>
Implementations
sourceimpl NvmeController
impl NvmeController
pub fn new(device_ctrl: DeviceController) -> Self
async fn create_queue_pair(
&self,
cqid: QueueId,
sqid: QueueId,
priority: QueuePriority,
queue_len: usize
) -> Requester<NvmeRequester>
pub async fn identify_controller(&self) -> IdentifyControllerDataStructure
pub async fn identify_namespace(&self) -> IdentifyNamespaceDataStructure
pub async fn flash_len(&self) -> usize
pub async fn read_page(
&self,
lba_start: u64,
out_buffer: &mut [u8],
offset: usize
) -> Result<(), ()>
pub async fn write_page(
&self,
lba_start: u64,
in_buffer: &[u8],
offset: usize
) -> Result<(), ()>
pub async fn get_lba_size(&self) -> usize
Auto Trait Implementations
impl !DeviceSync for NvmeController
impl !ObjSafe for NvmeController
impl RefUnwindSafe for NvmeController
impl Send for NvmeController
impl Sync for NvmeController
impl Unpin for NvmeController
impl UnwindSafe for NvmeController
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more