主要看了下hypervisor部分
tour/h_1_0部分的vmexit_handler只处理了Shutdown vm
exercise/simplehv处理了IllegalInstruction, LoadGuestPageFault,VirtualSupervisorEnvCall
IllegalInstruction处理部分
1 | Trap::Exception(Exception::IllegalInstruction) => { |
guest_regs.sepc代表返回guest模式后的pc值
guest_regs.gprs.set_reg设置guest模式的reg值设置guest模式的reg值
hyper模式可以接管guest模式的寄存器并在相应事件发生时设置回调函