Changeset 75150 in vbox for trunk/src/VBox/VMM/VMMAll
- Timestamp:
- Oct 29, 2018 2:28:43 PM (6 years ago)
- Location:
- trunk/src/VBox/VMM/VMMAll
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAll.cpp
r75135 r75150 980 980 IEM_STATIC VBOXSTRICTRC iemVmxVmexitTripleFault(PVMCPU pVCpu); 981 981 IEM_STATIC VBOXSTRICTRC iemVmxVmexitExtInt(PVMCPU pVCpu, uint8_t uVector, bool fIntPending); 982 IEM_STATIC VBOXSTRICTRC iemVmxVmexitStartupIpi(PVMCPU pVCpu, uint8_t uVector); 983 IEM_STATIC VBOXSTRICTRC iemVmxVmexitInitIpi(PVMCPU pVCpu); 982 984 IEM_STATIC VBOXSTRICTRC iemVmxVmexitIntWindow(PVMCPU pVCpu); 983 985 #endif … … 15662 15664 15663 15665 /** 15666 * Interface for HM and EM to emulate VM-exit due to startup-IPI (SIPI). 15667 * 15668 * @returns Strict VBox status code. 15669 * @param pVCpu The cross context virtual CPU structure of the calling EMT. 15670 * @param uVector The SIPI vector. 15671 * @thread EMT(pVCpu) 15672 */ 15673 VMM_INT_DECL(VBOXSTRICTRC) IEMExecVmxVmexitStartupIpi(PVMCPU pVCpu, uint8_t uVector) 15674 { 15675 IEM_CTX_ASSERT(pVCpu, IEM_CPUMCTX_EXTRN_VMX_VMEXIT_MASK); 15676 VBOXSTRICTRC rcStrict = iemVmxVmexitStartupIpi(pVCpu, uVector); 15677 if (pVCpu->iem.s.cActiveMappings) 15678 iemMemRollback(pVCpu); 15679 return iemExecStatusCodeFiddling(pVCpu, rcStrict); 15680 } 15681 15682 15683 /** 15684 * Interface for HM and EM to emulate VM-exit due to init-IPI (INIT). 15685 * 15686 * @returns Strict VBox status code. 15687 * @param pVCpu The cross context virtual CPU structure of the calling EMT. 15688 * @thread EMT(pVCpu) 15689 */ 15690 VMM_INT_DECL(VBOXSTRICTRC) IEMExecVmxVmexitInitIpi(PVMCPU pVCpu) 15691 { 15692 IEM_CTX_ASSERT(pVCpu, IEM_CPUMCTX_EXTRN_VMX_VMEXIT_MASK); 15693 VBOXSTRICTRC rcStrict = iemVmxVmexitInitIpi(pVCpu); 15694 if (pVCpu->iem.s.cActiveMappings) 15695 iemMemRollback(pVCpu); 15696 return iemExecStatusCodeFiddling(pVCpu, rcStrict); 15697 } 15698 15699 15700 /** 15664 15701 * Interface for HM and EM to emulate VM-exits for interrupt-windows. 15665 15702 * -
trunk/src/VBox/VMM/VMMAll/IEMAllCImplVmxInstr.cpp.h
r75135 r75150 3779 3779 3780 3780 /** 3781 * VMX VM-exit handler for VM-exits due to startup-IPIs (SIPI). 3782 * 3783 * @returns VBox strict status code. 3784 * @param pVCpu The cross context virtual CPU structure. 3785 * @param uVector The SIPI vector. 3786 */ 3787 IEM_STATIC VBOXSTRICTRC iemVmxVmexitStartupIpi(PVMCPU pVCpu, uint8_t uVector) 3788 { 3789 PCVMXVVMCS pVmcs = pVCpu->cpum.GstCtx.hwvirt.vmx.CTX_SUFF(pVmcs); 3790 Assert(pVmcs); 3791 3792 iemVmxVmcsSetExitQual(pVCpu, uVector); 3793 return iemVmxVmexit(pVCpu, VMX_EXIT_SIPI); 3794 } 3795 3796 3797 /** 3798 * VMX VM-exit handler for VM-exits due to init-IPIs (INIT). 3799 * 3800 * @returns VBox strict status code. 3801 * @param pVCpu The cross context virtual CPU structure. 3802 */ 3803 IEM_STATIC VBOXSTRICTRC iemVmxVmexitInitIpi(PVMCPU pVCpu) 3804 { 3805 PCVMXVVMCS pVmcs = pVCpu->cpum.GstCtx.hwvirt.vmx.CTX_SUFF(pVmcs); 3806 Assert(pVmcs); 3807 3808 iemVmxVmcsSetExitQual(pVCpu, 0); 3809 return iemVmxVmexit(pVCpu, VMX_EXIT_INIT_SIGNAL); 3810 } 3811 3812 3813 /** 3781 3814 * VMX VM-exit handler for interrupt-window VM-exits. 3782 3815 *
Note:
See TracChangeset
for help on using the changeset viewer.