Trait xenplatform::boot::BootSetupPlatform
source · pub trait BootSetupPlatform: Clone {
Show 17 methods
// Required methods
fn create_domain(&self, enable_iommu: bool) -> CreateDomain;
fn page_size(&self) -> u64;
fn page_shift(&self) -> u64;
fn needs_early_kernel(&self) -> bool;
fn hvm(&self) -> bool;
fn initialize_early<'life0, 'life1, 'async_trait>(
&'life0 mut self,
domain: &'life1 mut BootDomain,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn initialize_memory<'life0, 'life1, 'async_trait>(
&'life0 mut self,
domain: &'life1 mut BootDomain,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn alloc_page_tables<'life0, 'life1, 'async_trait>(
&'life0 mut self,
domain: &'life1 mut BootDomain,
) -> Pin<Box<dyn Future<Output = Result<Option<DomainSegment>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn alloc_p2m_segment<'life0, 'life1, 'async_trait>(
&'life0 mut self,
domain: &'life1 mut BootDomain,
) -> Pin<Box<dyn Future<Output = Result<Option<DomainSegment>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn alloc_magic_pages<'life0, 'life1, 'async_trait>(
&'life0 mut self,
domain: &'life1 mut BootDomain,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn setup_page_tables<'life0, 'life1, 'async_trait>(
&'life0 mut self,
domain: &'life1 mut BootDomain,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn setup_shared_info<'life0, 'life1, 'async_trait>(
&'life0 mut self,
domain: &'life1 mut BootDomain,
shared_info_frame: u64,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn setup_start_info<'life0, 'life1, 'async_trait>(
&'life0 mut self,
domain: &'life1 mut BootDomain,
shared_info_frame: u64,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn bootlate<'life0, 'life1, 'async_trait>(
&'life0 mut self,
domain: &'life1 mut BootDomain,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn gnttab_seed<'life0, 'life1, 'async_trait>(
&'life0 mut self,
domain: &'life1 mut BootDomain,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn vcpu<'life0, 'life1, 'async_trait>(
&'life0 mut self,
domain: &'life1 mut BootDomain,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn setup_hypercall_page<'life0, 'life1, 'async_trait>(
&'life0 mut self,
domain: &'life1 mut BootDomain,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
}Required Methods§
fn create_domain(&self, enable_iommu: bool) -> CreateDomain
fn page_size(&self) -> u64
fn page_shift(&self) -> u64
fn needs_early_kernel(&self) -> bool
fn hvm(&self) -> bool
fn initialize_early<'life0, 'life1, 'async_trait>(
&'life0 mut self,
domain: &'life1 mut BootDomain,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn initialize_memory<'life0, 'life1, 'async_trait>(
&'life0 mut self,
domain: &'life1 mut BootDomain,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn alloc_page_tables<'life0, 'life1, 'async_trait>(
&'life0 mut self,
domain: &'life1 mut BootDomain,
) -> Pin<Box<dyn Future<Output = Result<Option<DomainSegment>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn alloc_p2m_segment<'life0, 'life1, 'async_trait>(
&'life0 mut self,
domain: &'life1 mut BootDomain,
) -> Pin<Box<dyn Future<Output = Result<Option<DomainSegment>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn alloc_magic_pages<'life0, 'life1, 'async_trait>(
&'life0 mut self,
domain: &'life1 mut BootDomain,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn setup_page_tables<'life0, 'life1, 'async_trait>(
&'life0 mut self,
domain: &'life1 mut BootDomain,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn setup_start_info<'life0, 'life1, 'async_trait>(
&'life0 mut self,
domain: &'life1 mut BootDomain,
shared_info_frame: u64,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn bootlate<'life0, 'life1, 'async_trait>(
&'life0 mut self,
domain: &'life1 mut BootDomain,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn gnttab_seed<'life0, 'life1, 'async_trait>(
&'life0 mut self,
domain: &'life1 mut BootDomain,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn vcpu<'life0, 'life1, 'async_trait>(
&'life0 mut self,
domain: &'life1 mut BootDomain,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn setup_hypercall_page<'life0, 'life1, 'async_trait>(
&'life0 mut self,
domain: &'life1 mut BootDomain,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Object Safety§
This trait is not object safe.