Changeset 96746 in vbox for trunk/src/VBox/VMM/VMMR0
- Timestamp:
- Sep 15, 2022 4:45:53 PM (2 years ago)
- svn:sync-xref-src-repo-rev:
- 153633
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
r96407 r96746 4858 4858 { 4859 4859 AssertCompile(sizeof(fWhat) == sizeof(pVmxTransient->fVmcsFieldsRead)); 4860 fWhat &= ~pVmxTransient->fVmcsFieldsRead;4861 4860 4862 4861 /* The exit reason is always available. */ … … 4866 4865 { 4867 4866 vmxHCReadExitQualVmcs(pVCpu, pVmxTransient); 4867 pVmxExitAux->u64Qual = pVmxTransient->uExitQual; 4868 #ifdef VBOX_STRICT 4868 4869 fWhat &= ~HMVMX_READ_EXIT_QUALIFICATION; 4869 pVmxExitAux->u64Qual = pVmxTransient->uExitQual; 4870 #endif 4870 4871 } 4871 4872 … … 4873 4874 { 4874 4875 vmxHCReadIdtVectoringInfoVmcs(pVCpu, pVmxTransient); 4876 pVmxExitAux->uIdtVectoringInfo = pVmxTransient->uIdtVectoringInfo; 4877 #ifdef VBOX_STRICT 4875 4878 fWhat &= ~HMVMX_READ_IDT_VECTORING_INFO; 4876 pVmxExitAux->uIdtVectoringInfo = pVmxTransient->uIdtVectoringInfo; 4879 #endif 4877 4880 } 4878 4881 … … 4880 4883 { 4881 4884 vmxHCReadIdtVectoringErrorCodeVmcs(pVCpu, pVmxTransient); 4885 pVmxExitAux->uIdtVectoringErrCode = pVmxTransient->uIdtVectoringErrorCode; 4886 #ifdef VBOX_STRICT 4882 4887 fWhat &= ~HMVMX_READ_IDT_VECTORING_ERROR_CODE; 4883 pVmxExitAux->uIdtVectoringErrCode = pVmxTransient->uIdtVectoringErrorCode; 4888 #endif 4884 4889 } 4885 4890 … … 4887 4892 { 4888 4893 vmxHCReadExitInstrLenVmcs(pVCpu, pVmxTransient); 4894 pVmxExitAux->cbInstr = pVmxTransient->cbExitInstr; 4895 #ifdef VBOX_STRICT 4889 4896 fWhat &= ~HMVMX_READ_EXIT_INSTR_LEN; 4890 pVmxExitAux->cbInstr = pVmxTransient->cbExitInstr; 4897 #endif 4891 4898 } 4892 4899 … … 4894 4901 { 4895 4902 vmxHCReadExitIntInfoVmcs(pVCpu, pVmxTransient); 4903 pVmxExitAux->uExitIntInfo = pVmxTransient->uExitIntInfo; 4904 #ifdef VBOX_STRICT 4896 4905 fWhat &= ~HMVMX_READ_EXIT_INTERRUPTION_INFO; 4897 pVmxExitAux->uExitIntInfo = pVmxTransient->uExitIntInfo; 4906 #endif 4898 4907 } 4899 4908 … … 4901 4910 { 4902 4911 vmxHCReadExitIntErrorCodeVmcs(pVCpu, pVmxTransient); 4912 pVmxExitAux->uExitIntErrCode = pVmxTransient->uExitIntErrorCode; 4913 #ifdef VBOX_STRICT 4903 4914 fWhat &= ~HMVMX_READ_EXIT_INTERRUPTION_ERROR_CODE; 4904 pVmxExitAux->uExitIntErrCode = pVmxTransient->uExitIntErrorCode; 4915 #endif 4905 4916 } 4906 4917 … … 4908 4919 { 4909 4920 vmxHCReadExitInstrInfoVmcs(pVCpu, pVmxTransient); 4921 pVmxExitAux->InstrInfo.u = pVmxTransient->ExitInstrInfo.u; 4922 #ifdef VBOX_STRICT 4910 4923 fWhat &= ~HMVMX_READ_EXIT_INSTR_INFO; 4911 pVmxExitAux->InstrInfo.u = pVmxTransient->ExitInstrInfo.u; 4924 #endif 4912 4925 } 4913 4926 … … 4915 4928 { 4916 4929 vmxHCReadGuestLinearAddrVmcs(pVCpu, pVmxTransient); 4930 pVmxExitAux->u64GuestLinearAddr = pVmxTransient->uGuestLinearAddr; 4931 #ifdef VBOX_STRICT 4917 4932 fWhat &= ~HMVMX_READ_GUEST_LINEAR_ADDR; 4918 pVmxExitAux->u64GuestLinearAddr = pVmxTransient->uGuestLinearAddr; 4933 #endif 4919 4934 } 4920 4935 … … 4922 4937 { 4923 4938 vmxHCReadGuestPhysicalAddrVmcs(pVCpu, pVmxTransient); 4939 pVmxExitAux->u64GuestPhysAddr = pVmxTransient->uGuestPhysicalAddr; 4940 #ifdef VBOX_STRICT 4924 4941 fWhat &= ~HMVMX_READ_GUEST_PHYSICAL_ADDR; 4925 pVmxExitAux->u64GuestPhysAddr = pVmxTransient->uGuestPhysicalAddr; 4942 #endif 4926 4943 } 4927 4944 4928 4945 if (fWhat & HMVMX_READ_GUEST_PENDING_DBG_XCPTS) 4929 4946 { 4930 fWhat &= ~HMVMX_READ_GUEST_PENDING_DBG_XCPTS;4931 4947 #ifdef VBOX_WITH_NESTED_HWVIRT_VMX 4932 4948 vmxHCReadGuestPendingDbgXctps(pVCpu, pVmxTransient); … … 4934 4950 #else 4935 4951 pVmxExitAux->u64GuestPendingDbgXcpts = 0; 4952 #endif 4953 #ifdef VBOX_STRICT 4954 fWhat &= ~HMVMX_READ_GUEST_PENDING_DBG_XCPTS; 4936 4955 #endif 4937 4956 }
Note:
See TracChangeset
for help on using the changeset viewer.