Changeset 87508 in vbox for trunk/include/VBox/vmm/hm_svm.h
- Timestamp:
- Feb 1, 2021 3:19:37 PM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 142532
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/hm_svm.h
r87504 r87508 1062 1062 1063 1063 /** 1064 * SVM nested-guest VMCB cache.1065 *1066 * Contains VMCB fields from the nested-guest VMCB before they're modified by1067 * SVM R0 code for hardware-assisted SVM execution of a nested-guest.1068 *1069 * A VMCB field needs to be cached when it needs to be modified for execution using1070 * hardware-assisted SVM and any of the following are true:1071 * - If the original field needs to be inspected during execution of the1072 * nested-guest or \#VMEXIT processing.1073 * - If the field is written back to memory on \#VMEXIT by the physical CPU.1074 *1075 * A VMCB field needs to be restored only when the field is written back to1076 * memory on \#VMEXIT by the physical CPU and thus would be visible to the1077 * guest.1078 *1079 * @remarks Please update hmR3InfoSvmNstGstVmcbCache() when changes are made to1080 * this structure.1081 * @todo r=bird: Why is this structure here? Looks 100% internal to me.1082 */1083 typedef struct SVMNESTEDVMCBCACHE1084 {1085 /** Cache of CRX read intercepts. */1086 uint16_t u16InterceptRdCRx;1087 /** Cache of CRX write intercepts. */1088 uint16_t u16InterceptWrCRx;1089 /** Cache of DRX read intercepts. */1090 uint16_t u16InterceptRdDRx;1091 /** Cache of DRX write intercepts. */1092 uint16_t u16InterceptWrDRx;1093 1094 /** Cache of the pause-filter threshold. */1095 uint16_t u16PauseFilterThreshold;1096 /** Cache of the pause-filter count. */1097 uint16_t u16PauseFilterCount;1098 1099 /** Cache of exception intercepts. */1100 uint32_t u32InterceptXcpt;1101 /** Cache of control intercepts. */1102 uint64_t u64InterceptCtrl;1103 1104 /** Cache of the TSC offset. */1105 uint64_t u64TSCOffset;1106 1107 /** Cache of V_INTR_MASKING bit. */1108 bool fVIntrMasking;1109 /** Cache of the nested-paging bit. */1110 bool fNestedPaging;1111 /** Cache of the LBR virtualization bit. */1112 bool fLbrVirt;1113 /** Whether the VMCB is cached by HM. */1114 bool fCacheValid;1115 /** Alignment. */1116 bool afPadding0[4];1117 } SVMNESTEDVMCBCACHE;1118 /** Pointer to the SVMNESTEDVMCBCACHE structure. */1119 typedef SVMNESTEDVMCBCACHE *PSVMNESTEDVMCBCACHE;1120 /** Pointer to a const SVMNESTEDVMCBCACHE structure. */1121 typedef const SVMNESTEDVMCBCACHE *PCSVMNESTEDVMCBCACHE;1122 AssertCompileSizeAlignment(SVMNESTEDVMCBCACHE, 8);1123 1124 /**1125 1064 * Segment attribute conversion between CPU and AMD-V VMCB format. 1126 1065 *
Note:
See TracChangeset
for help on using the changeset viewer.