fix warn
All checks were successful
Check / Build ISO (nightly-2025-04-27) (push) Successful in 43s
Release ISO / release (push) Successful in 57s

This commit is contained in:
Masato Imai
2025-08-22 12:29:01 +00:00
parent 94cbcd6a1f
commit ecad19bb5e
4 changed files with 8 additions and 15 deletions

View File

@@ -47,7 +47,7 @@ pub fn unsubscribe(callback: SubscriberCallback) -> Result<(), &'static str> {
for slot in subscribers.iter_mut() { for slot in subscribers.iter_mut() {
if let Some(subscriber) = slot { if let Some(subscriber) = slot {
if subscriber.callback == callback { if core::ptr::fn_addr_eq(subscriber.callback, callback) {
*slot = None; *slot = None;
return Ok(()); return Ok(());
} }

View File

@@ -10,11 +10,11 @@ use crate::vmm::x86_64::{
}; };
pub fn handle_cr_access(vcpu: &mut IntelVCpu, qual: &QualCr) -> Result<(), &'static str> { pub fn handle_cr_access(vcpu: &mut IntelVCpu, qual: &QualCr) -> Result<(), &'static str> {
match AccessType::try_from(qual.access_type()).unwrap() { match qual.access_type() {
AccessType::MovTo => match qual.index() { AccessType::MovTo => match qual.index() {
0 | 4 => { 0 | 4 => {
passthrough_write(vcpu, qual); passthrough_write(vcpu, qual)?;
update_ia32e(vcpu); update_ia32e(vcpu)?;
} }
_ => panic!("Unsupported CR index: {}", qual.index()), _ => panic!("Unsupported CR index: {}", qual.index()),
}, },
@@ -33,7 +33,7 @@ fn passthrough_read(vcpu: &mut IntelVCpu, qual: &QualCr) -> Result<(), &'static
_ => panic!("Unsupported CR index: {}", qual.index()), _ => panic!("Unsupported CR index: {}", qual.index()),
}; };
set_value(vcpu, qual, value); set_value(vcpu, qual, value)?;
Ok(()) Ok(())
} }
@@ -66,7 +66,7 @@ pub fn update_ia32e(vcpu: &mut IntelVCpu) -> Result<(), &'static str> {
let mut entry_ctrl = super::vmcs::controls::EntryControls::read()?; let mut entry_ctrl = super::vmcs::controls::EntryControls::read()?;
entry_ctrl.set_ia32e_mode_guest(ia32e_enabled); entry_ctrl.set_ia32e_mode_guest(ia32e_enabled);
entry_ctrl.write(); entry_ctrl.write()?;
let mut efer = vmread(x86::vmx::vmcs::guest::IA32_EFER_FULL)?; let mut efer = vmread(x86::vmx::vmcs::guest::IA32_EFER_FULL)?;

View File

@@ -7,14 +7,7 @@ use crate::{
vmm::x86_64::intel::{register::GuestRegisters, vmwrite}, vmm::x86_64::intel::{register::GuestRegisters, vmwrite},
}; };
#[derive(Default)]
pub struct Serial {
pub ier: u8,
pub mcr: u8,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)] #[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum InitPhase { pub enum InitPhase {
Uninitialized, Uninitialized,
Phase1, Phase1,
@@ -23,7 +16,7 @@ pub enum InitPhase {
Initialized, Initialized,
} }
enum ReadSel { pub enum ReadSel {
IRR, IRR,
ISR, ISR,
} }

View File

@@ -92,7 +92,7 @@ pub fn register_msrs(vcpu: &mut IntelVCpu) -> Result<(), MsrError> {
Ok(()) Ok(())
} }
pub fn update_msrs(vcpu: &mut IntelVCpu) -> Result<(), MsrError> { pub fn _update_msrs(vcpu: &mut IntelVCpu) -> Result<(), MsrError> {
info!("updating MSRs"); info!("updating MSRs");
let indices_to_update: alloc::vec::Vec<u32> = vcpu let indices_to_update: alloc::vec::Vec<u32> = vcpu
.host_msr .host_msr