MCPcopy Create free account
hub / github.com/cloud-hypervisor/cloud-hypervisor / AsyncIo

Interface AsyncIo

block/src/async_io.rs:85–112  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

83pub type AsyncIoResult<T> = std::result::Result<T, AsyncIoError>;
84
85pub trait AsyncIo: Send {
86 fn notifier(&self) -> &EventFd;
87 fn read_vectored(
88 &mut self,
89 offset: libc::off_t,
90 iovecs: &[libc::iovec],
91 user_data: u64,
92 ) -> AsyncIoResult<()>;
93 fn write_vectored(
94 &mut self,
95 offset: libc::off_t,
96 iovecs: &[libc::iovec],
97 user_data: u64,
98 ) -> AsyncIoResult<()>;
99 fn fsync(&mut self, user_data: Option<u64>) -> AsyncIoResult<()>;
100 fn punch_hole(&mut self, offset: u64, length: u64, user_data: u64) -> AsyncIoResult<()>;
101 fn write_zeroes(&mut self, offset: u64, length: u64, user_data: u64) -> AsyncIoResult<()>;
102 fn next_completed_request(&mut self) -> Option<(u64, i32)>;
103 fn batch_requests_enabled(&self) -> bool {
104 false
105 }
106 fn submit_batch_requests(&mut self, _batch_request: &[BatchRequest]) -> AsyncIoResult<()> {
107 Ok(())
108 }
109 fn alignment(&self) -> u64 {
110 SECTOR_SIZE
111 }
112}

Callers

nothing calls this directly

Implementers 8

fixed_vhd_async.rsblock/src/fixed_vhd_async.rs
fixed_vhd_sync.rsblock/src/fixed_vhd_sync.rs
vhdx_sync.rsblock/src/vhdx_sync.rs
qcow_async.rsblock/src/qcow_async.rs
raw_async_aio.rsblock/src/raw_async_aio.rs
qcow_sync.rsblock/src/qcow_sync.rs
raw_async.rsblock/src/raw_async.rs
raw_sync.rsblock/src/raw_sync.rs

Calls

no outgoing calls

Tested by

no test coverage detected