Changeset 91712 in vbox
- Timestamp:
- Oct 13, 2021 11:33:18 AM (3 years ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 3 edited
-
VMMAll/PGMAll.cpp (modified) (6 diffs)
-
VMMAll/PGMAllGst.h (modified) (2 diffs)
-
include/PGMInternal.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/PGMAll.cpp
r91580 r91712 562 562 PGMMODEDATAGST const g_aPgmGuestModeData[PGM_GUEST_MODE_DATA_ARRAY_SIZE] = 563 563 { 564 { UINT32_MAX, NULL, NULL, NULL, NULL , NULL}, /* 0 */564 { UINT32_MAX, NULL, NULL, NULL, NULL }, /* 0 */ 565 565 { 566 566 PGM_TYPE_REAL, 567 567 PGM_GST_NAME_REAL(GetPage), 568 568 PGM_GST_NAME_REAL(ModifyPage), 569 PGM_GST_NAME_REAL(GetPDE),570 569 PGM_GST_NAME_REAL(Enter), 571 570 PGM_GST_NAME_REAL(Exit), … … 578 577 PGM_GST_NAME_PROT(GetPage), 579 578 PGM_GST_NAME_PROT(ModifyPage), 580 PGM_GST_NAME_PROT(GetPDE),581 579 PGM_GST_NAME_PROT(Enter), 582 580 PGM_GST_NAME_PROT(Exit), … … 589 587 PGM_GST_NAME_32BIT(GetPage), 590 588 PGM_GST_NAME_32BIT(ModifyPage), 591 PGM_GST_NAME_32BIT(GetPDE),592 589 PGM_GST_NAME_32BIT(Enter), 593 590 PGM_GST_NAME_32BIT(Exit), … … 600 597 PGM_GST_NAME_PAE(GetPage), 601 598 PGM_GST_NAME_PAE(ModifyPage), 602 PGM_GST_NAME_PAE(GetPDE),603 599 PGM_GST_NAME_PAE(Enter), 604 600 PGM_GST_NAME_PAE(Exit), … … 612 608 PGM_GST_NAME_AMD64(GetPage), 613 609 PGM_GST_NAME_AMD64(ModifyPage), 614 PGM_GST_NAME_AMD64(GetPDE),615 610 PGM_GST_NAME_AMD64(Enter), 616 611 PGM_GST_NAME_AMD64(Exit), … … 3211 3206 AssertPtrReturn(g_aPgmGuestModeData[idxNewGst].pfnGetPage, VERR_PGM_MODE_IPE); 3212 3207 AssertPtrReturn(g_aPgmGuestModeData[idxNewGst].pfnModifyPage, VERR_PGM_MODE_IPE); 3213 AssertPtrReturn(g_aPgmGuestModeData[idxNewGst].pfnGetPDE, VERR_PGM_MODE_IPE);3214 3208 AssertPtrReturn(g_aPgmGuestModeData[idxNewGst].pfnExit, VERR_PGM_MODE_IPE); 3215 3209 AssertPtrReturn(g_aPgmGuestModeData[idxNewGst].pfnEnter, VERR_PGM_MODE_IPE); -
trunk/src/VBox/VMM/VMMAll/PGMAllGst.h
r91580 r91712 28 28 PGM_GST_DECL(int, GetPage)(PVMCPUCC pVCpu, RTGCPTR GCPtr, uint64_t *pfFlags, PRTGCPHYS pGCPhys); 29 29 PGM_GST_DECL(int, ModifyPage)(PVMCPUCC pVCpu, RTGCPTR GCPtr, size_t cb, uint64_t fFlags, uint64_t fMask); 30 PGM_GST_DECL(int, GetPDE)(PVMCPUCC pVCpu, RTGCPTR GCPtr, PX86PDEPAE pPDE);31 30 32 31 #ifdef IN_RING3 /* r3 only for now. */ … … 456 455 457 456 458 /**459 * Retrieve guest PDE information.460 *461 * @returns VBox status code.462 * @param pVCpu The cross context virtual CPU structure.463 * @param GCPtr Guest context pointer.464 * @param pPDE Pointer to guest PDE structure.465 */466 PGM_GST_DECL(int, GetPDE)(PVMCPUCC pVCpu, RTGCPTR GCPtr, PX86PDEPAE pPDE)467 {468 #if PGM_GST_TYPE == PGM_TYPE_32BIT \469 || PGM_GST_TYPE == PGM_TYPE_PAE \470 || PGM_GST_TYPE == PGM_TYPE_AMD64471 472 # if PGM_GST_TYPE != PGM_TYPE_AMD64473 /* Boundary check. */474 if (RT_UNLIKELY(GCPtr >= _4G))475 return VERR_PAGE_TABLE_NOT_PRESENT;476 # endif477 478 # if PGM_GST_TYPE == PGM_TYPE_32BIT479 unsigned iPd = (GCPtr >> GST_PD_SHIFT) & GST_PD_MASK;480 PX86PD pPd = pgmGstGet32bitPDPtr(pVCpu);481 482 # elif PGM_GST_TYPE == PGM_TYPE_PAE483 unsigned iPd = 0; /* shut up gcc */484 PCX86PDPAE pPd = pgmGstGetPaePDPtr(pVCpu, GCPtr, &iPd, NULL);485 486 # elif PGM_GST_TYPE == PGM_TYPE_AMD64487 PX86PML4E pPml4eIgn;488 X86PDPE PdpeIgn;489 unsigned iPd = 0; /* shut up gcc */490 PCX86PDPAE pPd = pgmGstGetLongModePDPtr(pVCpu, GCPtr, &pPml4eIgn, &PdpeIgn, &iPd);491 /* Note! We do not return an effective PDE here like we do for the PTE in GetPage method. */492 # endif493 494 if (RT_LIKELY(pPd))495 pPDE->u = (X86PGPAEUINT)pPd->a[iPd].u;496 else497 pPDE->u = 0;498 return VINF_SUCCESS;499 500 #else501 NOREF(pVCpu); NOREF(GCPtr); NOREF(pPDE);502 AssertFailed();503 return VERR_NOT_IMPLEMENTED;504 #endif505 }506 507 508 457 #ifdef IN_RING3 509 458 /** -
trunk/src/VBox/VMM/include/PGMInternal.h
r91580 r91712 2743 2743 DECLCALLBACKMEMBER(int, pfnGetPage,(PVMCPUCC pVCpu, RTGCPTR GCPtr, uint64_t *pfFlags, PRTGCPHYS pGCPhys)); 2744 2744 DECLCALLBACKMEMBER(int, pfnModifyPage,(PVMCPUCC pVCpu, RTGCPTR GCPtr, size_t cbPages, uint64_t fFlags, uint64_t fMask)); 2745 DECLCALLBACKMEMBER(int, pfnGetPDE,(PVMCPUCC pVCpu, RTGCPTR GCPtr, PX86PDEPAE pPde));2746 2745 DECLCALLBACKMEMBER(int, pfnEnter,(PVMCPUCC pVCpu, RTGCPHYS GCPhysCR3)); 2747 2746 DECLCALLBACKMEMBER(int, pfnExit,(PVMCPUCC pVCpu));
Note:
See TracChangeset
for help on using the changeset viewer.

