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.