> +use crate::driver::{block_driver, BdrvChild, BlockDriver, Mapping, > MappingTarget, Request}; > +use crate::SizedIoBuffer; > +use qemu_api::bindings;
it's better to list all items from bindings here, which helps in understanding which parts will need a wrapper added later. > +use qemu_api::errno::Errno; > +use qemu_api::futures::qemu_run_future; > +use std::cmp::min; > +use std::io::{self, Error, ErrorKind}; > +use std::mem::MaybeUninit; > +use std::ptr; > +use std::sync::Arc; nit: we can fix style by "cargo +nightly fmt" with latest toolchain. > +impl BlockDriver for BochsImage { ... > + async fn map(&self, req: &Request) -> io::Result<Mapping> { v1.63 doesn't support async fn in trait, do we have to involve async_trait crate? Regards, Zhao