Changeset 94983 in vbox
- Timestamp:
- May 11, 2022 9:17:50 AM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/PGMAllGstSlatEpt.cpp.h
r94982 r94983 134 134 | PGM_PTATTRS_EPT_W_MASK 135 135 | PGM_PTATTRS_EPT_X_SUPER_MASK; 136 Assert(!(fCumulativeEpt & ~PGM_PTATTRS_EPT_MASK)); 136 137 137 138 /* … … 176 177 uint8_t const fExecute = RT_BF_GET(fEptAttrs, VMX_BF_EPT_PT_EXECUTE); 177 178 uint8_t const fAccessed = RT_BF_GET(fEptAttrs, VMX_BF_EPT_PT_ACCESSED); 178 uint64_t const fEffectiveEpt = (fEptAttrs << PGM_PTATTRS_EPT_SHIFT) & PGM_PTATTRS_EPT_MASK;179 uint64_t const fEffectiveEpt = (fEptAttrs << PGM_PTATTRS_EPT_SHIFT) & fCumulativeEpt; 179 180 fEffective = RT_BF_MAKE(PGM_PTATTRS_R, fRead) 180 181 | RT_BF_MAKE(PGM_PTATTRS_W, fWrite) … … 209 210 uint8_t const fExecute = RT_BF_GET(fEptAttrs, VMX_BF_EPT_PT_EXECUTE); 210 211 uint8_t const fAccessed = RT_BF_GET(fEptAttrs, VMX_BF_EPT_PT_ACCESSED); 211 uint64_t const fEffectiveEpt = (fEptAttrs << PGM_PTATTRS_EPT_SHIFT) & PGM_PTATTRS_EPT_MASK;212 uint64_t const fEffectiveEpt = (fEptAttrs << PGM_PTATTRS_EPT_SHIFT) & fCumulativeEpt; 212 213 fEffective &= RT_BF_MAKE(PGM_PTATTRS_R, fRead) 213 214 | RT_BF_MAKE(PGM_PTATTRS_W, fWrite) 214 215 | RT_BF_MAKE(PGM_PTATTRS_NX, !fExecute) 215 216 | RT_BF_MAKE(PGM_PTATTRS_A, fAccessed) 216 | (fEffectiveEpt & fCumulativeEpt);217 | fEffectiveEpt; 217 218 pWalk->fEffective = fEffective; 218 219 } … … 228 229 uint8_t const fDirty = RT_BF_GET(fEptAttrs, VMX_BF_EPT_PT_DIRTY); 229 230 uint8_t const fMemType = RT_BF_GET(fEptAttrs, VMX_BF_EPT_PT_MEMTYPE); 230 uint64_t const fEffectiveEpt = (fEptAttrs << PGM_PTATTRS_EPT_SHIFT) & PGM_PTATTRS_EPT_MASK;231 uint64_t const fEffectiveEpt = (fEptAttrs << PGM_PTATTRS_EPT_SHIFT) & fCumulativeEpt; 231 232 fEffective &= RT_BF_MAKE(PGM_PTATTRS_R, fRead) 232 233 | RT_BF_MAKE(PGM_PTATTRS_W, fWrite) 233 234 | RT_BF_MAKE(PGM_PTATTRS_NX, !fExecute) 234 235 | RT_BF_MAKE(PGM_PTATTRS_A, fAccessed) 235 | (fEffectiveEpt & fCumulativeEpt);236 | fEffectiveEpt; 236 237 fEffective |= RT_BF_MAKE(PGM_PTATTRS_D, fDirty) 237 238 | RT_BF_MAKE(PGM_PTATTRS_EPT_MEMTYPE, fMemType); … … 272 273 uint8_t const fExecute = RT_BF_GET(fEptAttrs, VMX_BF_EPT_PT_EXECUTE); 273 274 uint8_t const fAccessed = RT_BF_GET(fEptAttrs, VMX_BF_EPT_PT_ACCESSED); 274 uint64_t const fEffectiveEpt = (fEptAttrs << PGM_PTATTRS_EPT_SHIFT) & PGM_PTATTRS_EPT_MASK;275 uint64_t const fEffectiveEpt = (fEptAttrs << PGM_PTATTRS_EPT_SHIFT) & fCumulativeEpt; 275 276 fEffective &= RT_BF_MAKE(PGM_PTATTRS_R, fRead) 276 277 | RT_BF_MAKE(PGM_PTATTRS_W, fWrite) 277 278 | RT_BF_MAKE(PGM_PTATTRS_NX, !fExecute) 278 279 | RT_BF_MAKE(PGM_PTATTRS_A, fAccessed) 279 | (fEffectiveEpt & fCumulativeEpt);280 | fEffectiveEpt; 280 281 pWalk->fEffective = fEffective; 281 282 } … … 291 292 uint8_t const fDirty = RT_BF_GET(fEptAttrs, VMX_BF_EPT_PT_DIRTY); 292 293 uint8_t const fMemType = RT_BF_GET(fEptAttrs, VMX_BF_EPT_PT_MEMTYPE); 293 uint64_t const fEffectiveEpt = (fEptAttrs << PGM_PTATTRS_EPT_SHIFT) & PGM_PTATTRS_EPT_MASK;294 uint64_t const fEffectiveEpt = (fEptAttrs << PGM_PTATTRS_EPT_SHIFT) & fCumulativeEpt; 294 295 fEffective &= RT_BF_MAKE(PGM_PTATTRS_R, fRead) 295 296 | RT_BF_MAKE(PGM_PTATTRS_W, fWrite) 296 297 | RT_BF_MAKE(PGM_PTATTRS_NX, !fExecute) 297 298 | RT_BF_MAKE(PGM_PTATTRS_A, fAccessed) 298 | (fEffectiveEpt & fCumulativeEpt);299 | fEffectiveEpt; 299 300 fEffective |= RT_BF_MAKE(PGM_PTATTRS_D, fDirty) 300 301 | RT_BF_MAKE(PGM_PTATTRS_EPT_MEMTYPE, fMemType); … … 340 341 uint8_t const fDirty = RT_BF_GET(fEptAttrs, VMX_BF_EPT_PT_DIRTY); 341 342 uint8_t const fMemType = RT_BF_GET(fEptAttrs, VMX_BF_EPT_PT_MEMTYPE); 342 uint64_t const fEffectiveEpt = (fEptAttrs << PGM_PTATTRS_EPT_SHIFT) & PGM_PTATTRS_EPT_MASK;343 uint64_t const fEffectiveEpt = (fEptAttrs << PGM_PTATTRS_EPT_SHIFT) & fCumulativeEpt; 343 344 fEffective &= RT_BF_MAKE(PGM_PTATTRS_R, fRead) 344 345 | RT_BF_MAKE(PGM_PTATTRS_W, fWrite) 345 346 | RT_BF_MAKE(PGM_PTATTRS_NX, !fExecute) 346 347 | RT_BF_MAKE(PGM_PTATTRS_A, fAccessed) 347 | (fEffectiveEpt & fCumulativeEpt);348 | fEffectiveEpt; 348 349 fEffective |= RT_BF_MAKE(PGM_PTATTRS_D, fDirty) 349 350 | RT_BF_MAKE(PGM_PTATTRS_EPT_MEMTYPE, fMemType);
Note:
See TracChangeset
for help on using the changeset viewer.