wip
This commit is contained in:
@ -158,7 +158,7 @@ pub extern "sysv64" fn main(boot_info: &nel_os_common::BootInfo) {
|
||||
info!("Interrupts enabled");
|
||||
|
||||
let mut vcpu = vmm::get_vcpu(&mut bitmap_table).unwrap();
|
||||
vcpu.run();
|
||||
vcpu.run().unwrap();
|
||||
|
||||
info!("VCpu initialized");
|
||||
|
||||
|
@ -18,7 +18,7 @@ pub fn setup_exec_controls() -> Result<(), &'static str> {
|
||||
let mut pin_exec_ctrl = vmcs::controls::PinBasedVmExecutionControls::from(raw_pin_exec_ctrl);
|
||||
pin_exec_ctrl.set_external_interrupt_exiting(false);
|
||||
|
||||
pin_exec_ctrl.write();
|
||||
pin_exec_ctrl.write()?;
|
||||
|
||||
let mut raw_primary_exec_ctrl =
|
||||
u32::from(vmcs::controls::PrimaryProcessorBasedVmExecutionControls::read()?);
|
||||
@ -40,7 +40,7 @@ pub fn setup_exec_controls() -> Result<(), &'static str> {
|
||||
primary_exec_ctrl.set_unconditional_io(false);
|
||||
primary_exec_ctrl.set_use_io_bitmap(false); // TODO: true
|
||||
|
||||
primary_exec_ctrl.write();
|
||||
primary_exec_ctrl.write()?;
|
||||
|
||||
let mut raw_secondary_exec_ctrl =
|
||||
u32::from(vmcs::controls::SecondaryProcessorBasedVmExecutionControls::read()?);
|
||||
@ -59,7 +59,7 @@ pub fn setup_exec_controls() -> Result<(), &'static str> {
|
||||
secondary_exec_ctrl.set_unrestricted_guest(false); //TODO: true
|
||||
secondary_exec_ctrl.set_virtualize_apic_accesses(false); // TODO: true
|
||||
|
||||
secondary_exec_ctrl.write();
|
||||
secondary_exec_ctrl.write()?;
|
||||
|
||||
vmwrite(0x6000, u64::MAX)?;
|
||||
vmwrite(0x6002, u64::MAX)?;
|
||||
@ -84,7 +84,7 @@ pub fn setup_entry_controls() -> Result<(), &'static str> {
|
||||
entry_ctrl.set_load_ia32_efer(true);
|
||||
entry_ctrl.set_load_ia32_pat(true);
|
||||
|
||||
entry_ctrl.write();
|
||||
entry_ctrl.write()?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
@ -108,7 +108,7 @@ pub fn setup_exit_controls() -> Result<(), &'static str> {
|
||||
exit_ctrl.set_load_ia32_efer(true);
|
||||
exit_ctrl.set_load_ia32_pat(true);
|
||||
|
||||
exit_ctrl.write();
|
||||
exit_ctrl.write()?;
|
||||
|
||||
vmwrite(0x4004, 1u64 << 6)?; // EXCEPTION_BITMAP
|
||||
|
||||
|
@ -25,7 +25,7 @@ impl IntelVCpu {
|
||||
fn activate(&mut self) -> Result<(), &'static str> {
|
||||
let revision_id = common::read_msr(0x480) as u32;
|
||||
self.vmcs.write_revision_id(revision_id);
|
||||
self.vmcs.reset();
|
||||
self.vmcs.reset()?;
|
||||
controls::setup_exec_controls()?;
|
||||
controls::setup_entry_controls()?;
|
||||
controls::setup_exit_controls()?;
|
||||
|
Reference in New Issue
Block a user