diff --git a/src/vmm/cpuid.rs b/src/vmm/cpuid.rs index 063a3b4..a44084f 100644 --- a/src/vmm/cpuid.rs +++ b/src/vmm/cpuid.rs @@ -4,7 +4,9 @@ use super::{vcpu::VCpu, vmcs::VmxLeaf}; pub fn handle_cpuid_exit(vcpu: &mut VCpu) { let regs = &mut vcpu.guest_registers; - let vendor: &[u8; 12] = b"miHypervisor"; + //let vendor: &[u8; 12] = b"miHypervisor"; + let vendor: &[u8; 12] = b"KVMKVMKVMKVM"; + let vendor = unsafe { core::mem::transmute::<&[u8; 12], &[u32; 3]>(vendor) }; match VmxLeaf::from(regs.rax) { VmxLeaf::EXTENDED_FEATURE => match regs.rcx { diff --git a/src/vmm/vcpu.rs b/src/vmm/vcpu.rs index f33c07d..8a4d254 100644 --- a/src/vmm/vcpu.rs +++ b/src/vmm/vcpu.rs @@ -632,22 +632,18 @@ impl VCpu { info!("HLT instruction executed"); } VmxExitReason::CPUID => { - info!("CPUID instruction executed"); cpuid::handle_cpuid_exit(self); self.step_next_inst().unwrap(); } VmxExitReason::RDMSR => { - info!("RDMSR instruction executed"); msr::ShadowMsr::handle_rdmsr_vmexit(self); self.step_next_inst().unwrap(); } VmxExitReason::WRMSR => { - info!("WRMSR instruction executed"); msr::ShadowMsr::handle_wrmsr_vmexit(self); self.step_next_inst().unwrap(); } VmxExitReason::CONTROL_REGISTER_ACCESSES => { - info!("Control register access"); let qual = unsafe { vmread(vmcs::ro::EXIT_QUALIFICATION).unwrap() }; let qual = QualCr(qual); cr::handle_cr_access(self, &qual);