pub trait GuestMemory: Send + Sync {
// Required methods
fn read(
&self,
addr: GuestAddress,
buf: &mut [u8],
) -> Result<(), HypervisorError>;
fn write(
&self,
addr: GuestAddress,
buf: &[u8],
) -> Result<(), HypervisorError>;
fn get_host_address(
&self,
addr: GuestAddress,
) -> Result<*mut u8, HypervisorError>;
fn size(&self) -> u64;
fn enable_dirty_tracking(&mut self) -> Result<(), HypervisorError>;
fn disable_dirty_tracking(&mut self) -> Result<(), HypervisorError>;
fn get_dirty_pages(&mut self) -> Result<Vec<DirtyPageInfo>, HypervisorError>;
fn dump_all(&self, buf: &mut [u8]) -> Result<(), HypervisorError>;
}Expand description
Guest memory trait for reading/writing guest physical memory.
Required Methods§
Sourcefn read(
&self,
addr: GuestAddress,
buf: &mut [u8],
) -> Result<(), HypervisorError>
fn read( &self, addr: GuestAddress, buf: &mut [u8], ) -> Result<(), HypervisorError>
Sourcefn write(&self, addr: GuestAddress, buf: &[u8]) -> Result<(), HypervisorError>
fn write(&self, addr: GuestAddress, buf: &[u8]) -> Result<(), HypervisorError>
Sourcefn get_host_address(
&self,
addr: GuestAddress,
) -> Result<*mut u8, HypervisorError>
fn get_host_address( &self, addr: GuestAddress, ) -> Result<*mut u8, HypervisorError>
Sourcefn enable_dirty_tracking(&mut self) -> Result<(), HypervisorError>
fn enable_dirty_tracking(&mut self) -> Result<(), HypervisorError>
Enables dirty page tracking.
After enabling, use get_dirty_pages() to retrieve modified pages.
§Errors
Returns an error if dirty tracking cannot be enabled.
Sourcefn disable_dirty_tracking(&mut self) -> Result<(), HypervisorError>
fn disable_dirty_tracking(&mut self) -> Result<(), HypervisorError>
Sourcefn get_dirty_pages(&mut self) -> Result<Vec<DirtyPageInfo>, HypervisorError>
fn get_dirty_pages(&mut self) -> Result<Vec<DirtyPageInfo>, HypervisorError>
Gets and clears the list of dirty pages since the last call.
This resets the dirty bitmap after returning.
§Errors
Returns an error if dirty pages cannot be retrieved.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".