add CR handler
Some checks failed
Check / Build ISO (nightly-2025-04-27) (push) Failing after 44s

This commit is contained in:
Masato Imai
2025-08-22 09:07:00 +00:00
parent 4a44cdea8d
commit fc93be3043

View File

@ -13,6 +13,7 @@ use crate::{
intel::{
auditor, controls, cpuid, ept,
msr::{self, ShadowMsr},
qual::QualCr,
register::GuestRegisters,
vmcs::{
self,
@ -77,7 +78,6 @@ impl IntelVCpu {
self.step_next_inst()?;
}
VmxExitReason::CPUID => {
info!("VM exit reason: CPUID");
cpuid::handle_cpuid_vmexit(self);
self.step_next_inst()?;
}
@ -89,6 +89,14 @@ impl IntelVCpu {
msr::ShadowMsr::handle_wrmsr_vmexit(self);
self.step_next_inst()?;
}
VmxExitReason::CONTROL_REGISTER_ACCESSES => {
let qual = vmread(vmcs::ro::EXIT_QUALIFICATION)?;
let qual = QualCr::from(qual);
super::cr::handle_cr_access(self, &qual)?;
self.step_next_inst()?;
}
VmxExitReason::EPT_VIOLATION => {
let guest_address = vmread(vmcs::ro::GUEST_PHYSICAL_ADDR_FULL)?;
info!("EPT Violation at guest address: {:#x}", guest_address);