pub trait IPATranslation: Debug + Send + Sync {
// Required methods
fn get_base_address(&self) -> *const c_void;
fn ipa_to_pa(
&mut self,
guest: GuestPhysAddr,
level: usize
) -> Option<PhysAddr>;
fn ipa_to_pte(
&mut self,
guest: GuestPhysAddr,
level: usize
) -> Option<(u64, usize)>;
fn ipa_to_pte_set(
&mut self,
guest: GuestPhysAddr,
level: usize,
val: u64,
invalidate: Tlbi
) -> Result<(), Error>;
fn clean(&mut self, vmid: usize);
fn space_size(&self, level: usize) -> usize;
fn entries(
&self,
guest: GuestPhysAddr,
level: usize
) -> Result<(Iter<'_, Entry>, usize), Error>;
}