Changeset 45856 in vbox for trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
- Timestamp:
- Apr 30, 2013 11:12:38 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
r45855 r45856 4010 4010 return true; 4011 4011 } 4012 /* All readable fields should also be part of the VMCS write cache. */4012 /* Remaining readable fields should also be writable. */ 4013 4013 return hmR0VmxIsValidWriteField(idxField); 4014 4014 } … … 4563 4563 u32IntrInfo |= (VMX_EXIT_INTERRUPTION_INFO_TYPE_HW_XCPT << VMX_EXIT_INTERRUPTION_INFO_TYPE_SHIFT); 4564 4564 u32IntrInfo |= VMX_EXIT_INTERRUPTION_INFO_ERROR_CODE_VALID; 4565 STAM_COUNTER_INC(&pVCpu->hm.s.StatIntInject);4566 4565 hmR0VmxSetPendingEvent(pVCpu, u32IntrInfo, 0 /* cbInstr */, 0 /* u32ErrCode */, 0 /* GCPtrFaultAddress */); 4567 4566 } … … 5806 5805 AssertRCReturn(rc, rc); 5807 5806 pVCpu->hm.s.Event.fPending = false; 5807 STAM_COUNTER_INC(&pVCpu->hm.s.StatIntReinject); 5808 5808 } 5809 5809 else … … 5847 5847 rc = hmR0VmxInjectEventVmcs(pVCpu, pMixedCtx, u32IntrInfo, 0 /* cbInstr */, 0 /* u32ErrCode */, 5848 5848 0 /* GCPtrFaultAddress */, &uIntrState); 5849 STAM_COUNTER_INC(&pVCpu->hm.s.StatIntInject); 5849 5850 } 5850 5851 else … … 5913 5914 { 5914 5915 uint32_t u32IntrInfo = X86_XCPT_UD | (1 << VMX_EXIT_INTERRUPTION_INFO_VALID_SHIFT); 5915 STAM_COUNTER_INC(&pVCpu->hm.s.StatIntInject);5916 5916 hmR0VmxSetPendingEvent(pVCpu, u32IntrInfo, 0 /* cbInstr */, 0 /* u32ErrCode */, 0 /* GCPtrFaultAddress */); 5917 5917 } … … 5932 5932 u32IntrInfo |= (VMX_EXIT_INTERRUPTION_INFO_TYPE_HW_XCPT << VMX_EXIT_INTERRUPTION_INFO_TYPE_SHIFT); 5933 5933 u32IntrInfo |= VMX_EXIT_INTERRUPTION_INFO_ERROR_CODE_VALID; 5934 STAM_COUNTER_INC(&pVCpu->hm.s.StatIntInject);5935 5934 return hmR0VmxInjectEventVmcs(pVCpu, pMixedCtx, u32IntrInfo, 0 /* cbInstr */, 0 /* u32ErrCode */, 0 /* GCPtrFaultAddress */, 5936 5935 puIntrState); … … 5950 5949 uint32_t u32IntrInfo = X86_XCPT_DB | (1 << VMX_EXIT_INTERRUPTION_INFO_VALID_SHIFT); 5951 5950 u32IntrInfo |= (VMX_EXIT_INTERRUPTION_INFO_TYPE_HW_XCPT << VMX_EXIT_INTERRUPTION_INFO_TYPE_SHIFT); 5952 STAM_COUNTER_INC(&pVCpu->hm.s.StatIntInject);5953 5951 hmR0VmxSetPendingEvent(pVCpu, u32IntrInfo, 0 /* cbInstr */, 0 /* u32ErrCode */, 0 /* GCPtrFaultAddress */); 5954 5952 } … … 5969 5967 uint32_t u32IntrInfo = X86_XCPT_OF | (1 << VMX_EXIT_INTERRUPTION_INFO_VALID_SHIFT); 5970 5968 u32IntrInfo |= (VMX_EXIT_INTERRUPTION_INFO_TYPE_SW_INT << VMX_EXIT_INTERRUPTION_INFO_TYPE_SHIFT); 5971 STAM_COUNTER_INC(&pVCpu->hm.s.StatIntInject);5972 5969 hmR0VmxSetPendingEvent(pVCpu, u32IntrInfo, cbInstr, 0 /* u32ErrCode */, 0 /* GCPtrFaultAddress */); 5973 5970 } … … 5991 5988 if (fErrorCodeValid) 5992 5989 u32IntrInfo |= VMX_EXIT_INTERRUPTION_INFO_ERROR_CODE_VALID; 5993 STAM_COUNTER_INC(&pVCpu->hm.s.StatIntInject);5994 5990 return hmR0VmxInjectEventVmcs(pVCpu, pMixedCtx, u32IntrInfo, 0 /* cbInstr */, u32ErrorCode, 0 /* GCPtrFaultAddress */, 5995 5991 puIntrState); … … 6018 6014 else 6019 6015 u32IntrInfo |= (VMX_EXIT_INTERRUPTION_INFO_TYPE_SW_INT << VMX_EXIT_INTERRUPTION_INFO_TYPE_SHIFT); 6020 STAM_COUNTER_INC(&pVCpu->hm.s.StatIntInject);6021 6016 hmR0VmxSetPendingEvent(pVCpu, u32IntrInfo, cbInstr, 0 /* u32ErrCode */, 0 /* GCPtrFaultAddress */); 6022 6017 }
Note:
See TracChangeset
for help on using the changeset viewer.