hypervisor: Add an API to create default StandardRegisters
This will be used to create StandardRegisters for a given vcpu in future. Signed-off-by: Jinank Jain <jinankjain@microsoft.com>
This commit is contained in:
parent
a229afbc24
commit
3645654c39
3 changed files with 20 additions and 0 deletions
|
|
@ -321,6 +321,12 @@ pub type Result<T> = anyhow::Result<T, HypervisorCpuError>;
|
|||
/// Trait to represent a generic Vcpu
|
||||
///
|
||||
pub trait Vcpu: Send + Sync {
|
||||
///
|
||||
/// Returns StandardRegisters with default value set
|
||||
///
|
||||
fn create_standard_regs(&self) -> StandardRegisters {
|
||||
unimplemented!();
|
||||
}
|
||||
///
|
||||
/// Returns the vCPU general purpose registers.
|
||||
///
|
||||
|
|
|
|||
|
|
@ -1190,6 +1190,13 @@ pub struct KvmVcpu {
|
|||
/// let vcpu = vm.create_vcpu(0, None).unwrap();
|
||||
/// ```
|
||||
impl cpu::Vcpu for KvmVcpu {
|
||||
///
|
||||
/// Returns StandardRegisters with default value set
|
||||
///
|
||||
#[cfg(target_arch = "x86_64")]
|
||||
fn create_standard_regs(&self) -> StandardRegisters {
|
||||
kvm_bindings::kvm_regs::default().into()
|
||||
}
|
||||
#[cfg(target_arch = "x86_64")]
|
||||
///
|
||||
/// Returns the vCPU general purpose registers.
|
||||
|
|
|
|||
|
|
@ -413,6 +413,13 @@ pub struct MshvVcpu {
|
|||
/// let vcpu = vm.create_vcpu(0, None).unwrap();
|
||||
/// ```
|
||||
impl cpu::Vcpu for MshvVcpu {
|
||||
///
|
||||
/// Returns StandardRegisters with default value set
|
||||
///
|
||||
#[cfg(target_arch = "x86_64")]
|
||||
fn create_standard_regs(&self) -> crate::arch::x86::StandardRegisters {
|
||||
mshv_bindings::StandardRegisters::default().into()
|
||||
}
|
||||
#[cfg(target_arch = "x86_64")]
|
||||
///
|
||||
/// Returns the vCPU general purpose registers.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue