| 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(); |