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

Function async_write

block/src/qcow_async.rs:605–621  ·  view source on GitHub ↗
(disk: &QcowDisk, offset: u64, data: &[u8])

Source from the content-addressed store, hash-verified

603 }
604
605 fn async_write(disk: &QcowDisk, offset: u64, data: &[u8]) {
606 let mut async_io = disk.create_async_io(1).unwrap();
607 let iovec = libc::iovec {
608 iov_base: data.as_ptr().cast::<libc::c_void>().cast_mut(),
609 iov_len: data.len(),
610 };
611 async_io
612 .write_vectored(offset as libc::off_t, &[iovec], 2)
613 .unwrap();
614 let (user_data, result) = wait_for_completion(async_io.as_mut());
615 assert_eq!(user_data, 2);
616 assert_eq!(
617 result as usize,
618 data.len(),
619 "write should return requested length"
620 );
621 }
622
623 fn async_read(disk: &QcowDisk, offset: u64, len: usize) -> Vec<u8> {
624 let mut async_io = disk.create_async_io(1).unwrap();

Calls 4

wait_for_completionFunction · 0.85
create_async_ioMethod · 0.45
lenMethod · 0.45
write_vectoredMethod · 0.45