mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2024-12-22 13:45:20 +00:00
hypervisor: Remove unused VmExit enum members
The members for {Io, Mmio}{Read, Write} are unused as instead exits of those types are handled through the VmOps interface. Removing these is also a prerequisite due to changes in the mutability of the VcpuFd::run() method. Signed-off-by: Rob Bradford <rbradford@rivosinc.com>
This commit is contained in:
parent
e6aa57e3b9
commit
c022063ae8
@ -300,15 +300,9 @@ pub enum HypervisorCpuError {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub enum VmExit<'a> {
|
pub enum VmExit {
|
||||||
#[cfg(target_arch = "x86_64")]
|
|
||||||
IoOut(u16 /* port */, &'a [u8] /* data */),
|
|
||||||
#[cfg(target_arch = "x86_64")]
|
|
||||||
IoIn(u16 /* port */, &'a mut [u8] /* data */),
|
|
||||||
#[cfg(target_arch = "x86_64")]
|
#[cfg(target_arch = "x86_64")]
|
||||||
IoapicEoi(u8 /* vector */),
|
IoapicEoi(u8 /* vector */),
|
||||||
MmioRead(u64 /* address */, &'a mut [u8]),
|
|
||||||
MmioWrite(u64 /* address */, &'a [u8]),
|
|
||||||
Ignore,
|
Ignore,
|
||||||
Reset,
|
Reset,
|
||||||
Shutdown,
|
Shutdown,
|
||||||
|
@ -1625,7 +1625,7 @@ impl cpu::Vcpu for KvmVcpu {
|
|||||||
.map_err(|e| cpu::HypervisorCpuError::RunVcpu(e.into()));
|
.map_err(|e| cpu::HypervisorCpuError::RunVcpu(e.into()));
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(cpu::VmExit::IoIn(addr, data))
|
Ok(cpu::VmExit::Ignore)
|
||||||
}
|
}
|
||||||
#[cfg(target_arch = "x86_64")]
|
#[cfg(target_arch = "x86_64")]
|
||||||
VcpuExit::IoOut(addr, data) => {
|
VcpuExit::IoOut(addr, data) => {
|
||||||
@ -1636,7 +1636,7 @@ impl cpu::Vcpu for KvmVcpu {
|
|||||||
.map_err(|e| cpu::HypervisorCpuError::RunVcpu(e.into()));
|
.map_err(|e| cpu::HypervisorCpuError::RunVcpu(e.into()));
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(cpu::VmExit::IoOut(addr, data))
|
Ok(cpu::VmExit::Ignore)
|
||||||
}
|
}
|
||||||
#[cfg(target_arch = "x86_64")]
|
#[cfg(target_arch = "x86_64")]
|
||||||
VcpuExit::IoapicEoi(vector) => Ok(cpu::VmExit::IoapicEoi(vector)),
|
VcpuExit::IoapicEoi(vector) => Ok(cpu::VmExit::IoapicEoi(vector)),
|
||||||
@ -1669,7 +1669,7 @@ impl cpu::Vcpu for KvmVcpu {
|
|||||||
.map_err(|e| cpu::HypervisorCpuError::RunVcpu(e.into()));
|
.map_err(|e| cpu::HypervisorCpuError::RunVcpu(e.into()));
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(cpu::VmExit::MmioRead(addr, data))
|
Ok(cpu::VmExit::Ignore)
|
||||||
}
|
}
|
||||||
VcpuExit::MmioWrite(addr, data) => {
|
VcpuExit::MmioWrite(addr, data) => {
|
||||||
if let Some(vm_ops) = &self.vm_ops {
|
if let Some(vm_ops) = &self.vm_ops {
|
||||||
@ -1679,7 +1679,7 @@ impl cpu::Vcpu for KvmVcpu {
|
|||||||
.map_err(|e| cpu::HypervisorCpuError::RunVcpu(e.into()));
|
.map_err(|e| cpu::HypervisorCpuError::RunVcpu(e.into()));
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(cpu::VmExit::MmioWrite(addr, data))
|
Ok(cpu::VmExit::Ignore)
|
||||||
}
|
}
|
||||||
VcpuExit::Hyperv => Ok(cpu::VmExit::Hyperv),
|
VcpuExit::Hyperv => Ok(cpu::VmExit::Hyperv),
|
||||||
#[cfg(feature = "tdx")]
|
#[cfg(feature = "tdx")]
|
||||||
|
@ -1147,15 +1147,6 @@ impl CpuManager {
|
|||||||
unreachable!("Couldn't get a mutable reference from Arc<dyn Vcpu> as there are multiple instances");
|
unreachable!("Couldn't get a mutable reference from Arc<dyn Vcpu> as there are multiple instances");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_ => {
|
|
||||||
error!(
|
|
||||||
"VCPU generated error: {:?}",
|
|
||||||
Error::UnexpectedVmExit
|
|
||||||
);
|
|
||||||
vcpu_run_interrupted.store(true, Ordering::SeqCst);
|
|
||||||
exit_evt.write(1).unwrap();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
|
@ -3246,17 +3246,11 @@ pub fn test_vm() {
|
|||||||
|
|
||||||
loop {
|
loop {
|
||||||
match vcpu.run().expect("run failed") {
|
match vcpu.run().expect("run failed") {
|
||||||
VmExit::IoOut(addr, data) => {
|
|
||||||
println!(
|
|
||||||
"IO out -- addr: {:#x} data [{:?}]",
|
|
||||||
addr,
|
|
||||||
str::from_utf8(data).unwrap()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
VmExit::Reset => {
|
VmExit::Reset => {
|
||||||
println!("HLT");
|
println!("HLT");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
VmExit::Ignore => {}
|
||||||
r => panic!("unexpected exit reason: {r:?}"),
|
r => panic!("unexpected exit reason: {r:?}"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user