Changeset 13203
- Timestamp:
- 10/13/08 12:02:04 (3 months ago)
- Files:
-
- trunk/include/VBox/hwacc_vmx.h (modified) (1 diff)
- trunk/src/VBox/VMM/VMMAll/PGMAllBth.h (modified) (2 diffs)
- trunk/src/VBox/VMM/VMMAll/PGMAllShw.h (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/include/VBox/hwacc_vmx.h
r13197 r13203 235 235 uint64_t u1IgnorePAT : 1; 236 236 /** Big page (must be 1 here). */ 237 uint64_t u1 Big: 1;237 uint64_t u1Size : 1; 238 238 /** Available for software. */ 239 239 uint64_t u4Available : 4; trunk/src/VBox/VMM/VMMAll/PGMAllBth.h
r13188 r13203 1437 1437 PteDst.n.u1IgnorePAT = 1; 1438 1438 PteDst.n.u3EMT = VMX_EPT_MEMTYPE_WB; 1439 /* PteDst.n.u1Write = 0 && PteDst.n.u1 Big= 0 */1439 /* PteDst.n.u1Write = 0 && PteDst.n.u1Size = 0 */ 1440 1440 #else 1441 1441 PteDst.u = (PteSrc.u & ~(X86_PTE_PAE_PG_MASK | X86_PTE_AVL_MASK | X86_PTE_PAT | X86_PTE_PCD | X86_PTE_PWT | X86_PTE_RW)) … … 1486 1486 PteDst.n.u1IgnorePAT = 1; 1487 1487 PteDst.n.u3EMT = VMX_EPT_MEMTYPE_WB; 1488 /* PteDst.n.u1 Big= 0 */1488 /* PteDst.n.u1Size = 0 */ 1489 1489 #else 1490 1490 PteDst.u = (PteSrc.u & ~(X86_PTE_PAE_PG_MASK | X86_PTE_AVL_MASK | X86_PTE_PAT | X86_PTE_PCD | X86_PTE_PWT)) trunk/src/VBox/VMM/VMMAll/PGMAllShw.h
r13019 r13203 135 135 PGM_SHW_DECL(int, GetPage)(PVM pVM, RTGCUINTPTR GCPtr, uint64_t *pfFlags, PRTHCPHYS pHCPhys) 136 136 { 137 #if PGM_SHW_TYPE == PGM_TYPE_NESTED || PGM_SHW_TYPE == PGM_TYPE_EPT137 #if PGM_SHW_TYPE == PGM_TYPE_NESTED 138 138 return VERR_PAGE_TABLE_NOT_PRESENT; 139 139 … … 181 181 const unsigned iPd = (GCPtr >> X86_PD_PAE_SHIFT) & X86_PD_PAE_MASK; 182 182 X86PDEPAE Pde = CTXMID(pVM->pgm.s.ap,PaePDs)[iPDPT]->a[iPd]; 183 183 # elif PGM_SHW_TYPE == PGM_TYPE_EPT 184 const unsigned iPd = ((GCPtr >> SHW_PD_SHIFT) & SHW_PD_MASK); 185 PEPTPD pPDDst; 186 EPTPDE Pde; 187 188 int rc = PGMShwGetEPTPDPtr(pVM, GCPtr, NULL, &pPDDst); 189 if (rc != VINF_SUCCESS) 190 { 191 AssertRC(rc); 192 return rc; 193 } 194 Assert(pPDDst); 195 Pde = pPDDst->a[iPd]; 184 196 # else /* PGM_TYPE_32BIT */ 185 197 const unsigned iPd = (GCPtr >> X86_PD_SHIFT) & X86_PD_MASK; … … 203 215 else /* mapping: */ 204 216 { 205 # if PGM_SHW_TYPE == PGM_TYPE_AMD64 217 # if PGM_SHW_TYPE == PGM_TYPE_AMD64 \ 218 || PGM_SHW_TYPE == PGM_TYPE_EPT 206 219 AssertFailed(); /* can't happen */ 207 220 # else … … 242 255 243 256 return VINF_SUCCESS; 244 #endif /* PGM_SHW_TYPE != PGM_TYPE_NESTED && PGM_SHW_TYPE != PGM_TYPE_EPT*/257 #endif /* PGM_SHW_TYPE != PGM_TYPE_NESTED */ 245 258 } 246 259 … … 262 275 PGM_SHW_DECL(int, ModifyPage)(PVM pVM, RTGCUINTPTR GCPtr, size_t cb, uint64_t fFlags, uint64_t fMask) 263 276 { 264 # if PGM_SHW_TYPE == PGM_TYPE_NESTED || PGM_SHW_TYPE == PGM_TYPE_EPT277 # if PGM_SHW_TYPE == PGM_TYPE_NESTED 265 278 return VERR_PAGE_TABLE_NOT_PRESENT; 266 279 … … 307 320 X86PDEPAE Pde = CTXMID(pVM->pgm.s.ap,PaePDs)[iPDPT]->a[iPd]; 308 321 322 # elif PGM_SHW_TYPE == PGM_TYPE_EPT 323 const unsigned iPd = ((GCPtr >> SHW_PD_SHIFT) & SHW_PD_MASK); 324 PEPTPD pPDDst; 325 EPTPDE Pde; 326 327 rc = PGMShwGetEPTPDPtr(pVM, GCPtr, NULL, &pPDDst); 328 if (rc != VINF_SUCCESS) 329 { 330 AssertRC(rc); 331 return rc; 332 } 333 Assert(pPDDst); 334 Pde = pPDDst->a[iPd]; 309 335 # else /* PGM_TYPE_32BIT */ 310 336 const unsigned iPd = (GCPtr >> X86_PD_SHIFT) & X86_PD_MASK; … … 329 355 pPT->a[iPTE].u = (pPT->a[iPTE].u & (fMask | SHW_PTE_PG_MASK)) | (fFlags & ~SHW_PTE_PG_MASK); 330 356 Assert(pPT->a[iPTE].n.u1Present); 357 # if PGM_SHW_TYPE == PGM_TYPE_EPT 358 HWACCMInvalidatePhysPage(pVM, (RTGCPHYS)GCPtr); 359 # else 331 360 PGM_INVL_PG(GCPtr); 361 # endif 332 362 } 333 363 … … 340 370 } 341 371 } 342 # endif /* PGM_SHW_TYPE != PGM_TYPE_NESTED && PGM_SHW_TYPE != PGM_TYPE_EPT*/372 # endif /* PGM_SHW_TYPE != PGM_TYPE_NESTED */ 343 373 } 344 374

