pub trait VmArchPerCpuOps: Sized {
// Required methods
fn new(cpu_id: usize) -> VmBackendResult<Self>;
fn is_enabled(&self) -> bool;
fn hardware_enable(&mut self) -> VmBackendResult;
fn hardware_disable(&mut self) -> VmBackendResult;
// Provided methods
fn max_guest_page_table_levels(&self) -> usize { ... }
fn guest_phys_addr_bits(&self) -> usize { ... }
}Expand description
Architecture-specific per-CPU virtualization state consumed by AxVM.
Required Methods§
Sourcefn new(cpu_id: usize) -> VmBackendResult<Self>
fn new(cpu_id: usize) -> VmBackendResult<Self>
Creates a new per-CPU state.
Sourcefn is_enabled(&self) -> bool
fn is_enabled(&self) -> bool
Whether virtualization is enabled on the current CPU.
Sourcefn hardware_enable(&mut self) -> VmBackendResult
fn hardware_enable(&mut self) -> VmBackendResult
Enables virtualization on the current CPU.
Sourcefn hardware_disable(&mut self) -> VmBackendResult
fn hardware_disable(&mut self) -> VmBackendResult
Disables virtualization on the current CPU.
Provided Methods§
Sourcefn max_guest_page_table_levels(&self) -> usize
fn max_guest_page_table_levels(&self) -> usize
Returns the max guest page table levels supported by this architecture.
Sourcefn guest_phys_addr_bits(&self) -> usize
fn guest_phys_addr_bits(&self) -> usize
Returns the guest physical address width supported by this CPU.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".