Changeset 454 in vbox
- Timestamp:
- Jan 31, 2007 12:02:36 AM (18 years ago)
- svn:sync-xref-src-repo-rev:
- 18035
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/PGMInternal.h
r161 r454 643 643 /** AVL node code with the (HC) physical address of this page. */ 644 644 AVLOHCPHYSNODECORE Core; 645 #if HC_ARCH_BITS == 64 && GC_ARCH_BITS == 32 && defined(IN_GC) 646 uint32_t Alignment0; /**< Alignment. */ 647 #endif 648 /** Pointer to the HC mapping of the page. */ 649 HCPTRTYPE(void *) pvPageHC; 645 650 /** The guest physical address. */ 646 651 RTGCPHYS GCPhys; 647 /** Pointer to the HC mapping of the page. */648 HCPTRTYPE(void *) pvPageHC;649 652 /** The kind of page we're shadowing. (This is really a PGMPOOLKIND enum.) */ 650 653 uint8_t enmKind; … … 701 704 */ 702 705 bool fCR3Mix; 706 #if HC_ARCH_BITS == 64 || GC_ARCH_BITS == 64 707 bool Alignment[4]; /**< Align the structure size on a 64-bit boundrary. */ 708 #endif 703 709 } PGMPOOLPAGE, *PPGMPOOLPAGE, **PPPGMPOOLPAGE; 704 710 … … 740 746 /** The number of present page table entries in the entire pool. */ 741 747 uint32_t cPresent; 748 /** Pointer to the array of user nodes - GC pointer. */ 749 GCPTRTYPE(PPGMPOOLUSER) paUsersGC; 742 750 /** Pointer to the array of user nodes - HC pointer. */ 743 751 HCPTRTYPE(PPGMPOOLUSER) paUsersHC; 744 /** Pointer to the array of user nodes - GC pointer. */745 GCPTRTYPE(PPGMPOOLUSER) paUsersGC;746 752 #endif /* PGMPOOL_WITH_USER_TRACKING */ 747 753 #ifdef PGMPOOL_WITH_GCPHYS_TRACKING … … 750 756 /** The number of user nodes we've allocated. */ 751 757 uint16_t cMaxPhysExts; 758 /** Pointer to the array of physical xref extent - GC pointer. */ 759 GCPTRTYPE(PPGMPOOLPHYSEXT) paPhysExtsGC; 752 760 /** Pointer to the array of physical xref extent nodes - HC pointer. */ 753 761 HCPTRTYPE(PPGMPOOLPHYSEXT) paPhysExtsHC; 754 /** Pointer to the array of physical xref extent - GC pointer. */755 GCPTRTYPE(PPGMPOOLPHYSEXT) paPhysExtsGC;756 762 #endif /* PGMPOOL_WITH_GCPHYS_TRACKING */ 757 763 #ifdef PGMPOOL_WITH_CACHE … … 766 772 #endif /* PGMPOOL_WITH_CACHE */ 767 773 #ifdef PGMPOOL_WITH_MONITORING 774 /** Head of the list of modified pages. */ 775 uint16_t iModifiedHead; 776 /** The current number of modified pages. */ 777 uint16_t cModifiedPages; 768 778 /** Access handler, GC. */ 769 779 GCPTRTYPE(PFNPGMGCPHYSHANDLER) pfnAccessHandlerGC; … … 774 784 /** The access handler description (HC ptr). */ 775 785 HCPTRTYPE(const char *) pszAccessHandler; 776 /** Head of the list of modified pages. */777 uint16_t iModifiedHead;778 /** The current number of modified pages. */779 uint16_t cModifiedPages;780 786 #endif /* PGMPOOL_WITH_MONITORING */ 781 787 /** The number of pages currently in use. */ … … 784 790 /** The high wather mark for cUsedPages. */ 785 791 uint16_t cUsedPagesHigh; 792 uint32_t Alignment1; /**< Align the next member on a 64-bit boundrary. */ 786 793 /** Profiling pgmPoolAlloc(). */ 787 794 STAMPROFILEADV StatAlloc; … … 854 861 /** The high wather mark for cModifiedPages. */ 855 862 uint16_t cModifiedPagesHigh; 863 uint16_t Alignment2[3]; /**< Align the next member on a 64-bit boundrary. */ 856 864 # endif 857 865 # ifdef PGMPOOL_WITH_CACHE … … 872 880 /** The AVL tree for looking up a page by its HC physical address. */ 873 881 AVLOHCPHYSTREE HCPhysTree; 882 uint32_t Alignment3; /**< Align the next member on a 64-bit boundrary. */ 874 883 /** Array of pages. (cMaxPages in length) 875 884 * The Id is the index into thist array. -
trunk/src/VBox/VMM/testcase/tstVMStructGC.cpp
r443 r454 355 355 GEN_CHECK_OFF(PGMTREES, PhysToVirtHandlers); 356 356 GEN_CHECK_OFF(PGMTREES, auPadding); 357 GEN_CHECK_SIZE(PGMPOOLPAGE); 358 GEN_CHECK_OFF(PGMPOOLPAGE, Core); 359 GEN_CHECK_OFF(PGMPOOLPAGE, GCPhys); 360 GEN_CHECK_OFF(PGMPOOLPAGE, pvPageHC); 361 GEN_CHECK_OFF(PGMPOOLPAGE, enmKind); 362 GEN_CHECK_OFF(PGMPOOLPAGE, bPadding); 363 GEN_CHECK_OFF(PGMPOOLPAGE, idx); 364 GEN_CHECK_OFF(PGMPOOLPAGE, iNext); 365 #ifdef PGMPOOL_WITH_USER_TRACKING 366 GEN_CHECK_OFF(PGMPOOLPAGE, iUserHead); 367 GEN_CHECK_OFF(PGMPOOLPAGE, cPresent); 368 GEN_CHECK_OFF(PGMPOOLPAGE, iFirstPresent); 369 #endif 370 #ifdef PGMPOOL_WITH_MONITORING 371 GEN_CHECK_OFF(PGMPOOLPAGE, cModifications); 372 GEN_CHECK_OFF(PGMPOOLPAGE, iModifiedNext); 373 GEN_CHECK_OFF(PGMPOOLPAGE, iModifiedPrev); 374 GEN_CHECK_OFF(PGMPOOLPAGE, iMonitoredNext); 375 GEN_CHECK_OFF(PGMPOOLPAGE, iMonitoredPrev); 376 #endif 377 #ifdef PGMPOOL_WITH_CACHE 378 GEN_CHECK_OFF(PGMPOOLPAGE, iAgeNext); 379 GEN_CHECK_OFF(PGMPOOLPAGE, iAgePrev); 380 #endif 381 GEN_CHECK_OFF(PGMPOOLPAGE, fZeroed); 382 GEN_CHECK_OFF(PGMPOOLPAGE, fSeenNonGlobal); 383 GEN_CHECK_OFF(PGMPOOLPAGE, fMonitored); 384 GEN_CHECK_OFF(PGMPOOLPAGE, fCached); 385 GEN_CHECK_OFF(PGMPOOLPAGE, fReusedFlushPending); 386 GEN_CHECK_OFF(PGMPOOLPAGE, fCR3Mix); 387 GEN_CHECK_SIZE(PGMPOOL); 388 GEN_CHECK_OFF(PGMPOOL, pVMHC); 389 GEN_CHECK_OFF(PGMPOOL, pVMGC); 390 GEN_CHECK_OFF(PGMPOOL, cMaxPages); 391 GEN_CHECK_OFF(PGMPOOL, cCurPages); 392 GEN_CHECK_OFF(PGMPOOL, iFreeHead); 393 GEN_CHECK_OFF(PGMPOOL, u16Padding); 394 #ifdef PGMPOOL_WITH_USER_TRACKING 395 GEN_CHECK_OFF(PGMPOOL, iUserFreeHead); 396 GEN_CHECK_OFF(PGMPOOL, cMaxUsers); 397 GEN_CHECK_OFF(PGMPOOL, cPresent); 398 GEN_CHECK_OFF(PGMPOOL, paUsersHC); 399 GEN_CHECK_OFF(PGMPOOL, paUsersGC); 400 #endif /* PGMPOOL_WITH_USER_TRACKING */ 401 #ifdef PGMPOOL_WITH_GCPHYS_TRACKING 402 GEN_CHECK_OFF(PGMPOOL, iPhysExtFreeHead); 403 GEN_CHECK_OFF(PGMPOOL, cMaxPhysExts); 404 GEN_CHECK_OFF(PGMPOOL, paPhysExtsHC); 405 GEN_CHECK_OFF(PGMPOOL, paPhysExtsGC); 406 #endif 407 #ifdef PGMPOOL_WITH_CACHE 408 GEN_CHECK_OFF(PGMPOOL, aiHash); 409 GEN_CHECK_OFF(PGMPOOL, iAgeHead); 410 GEN_CHECK_OFF(PGMPOOL, iAgeTail); 411 GEN_CHECK_OFF(PGMPOOL, fCacheEnabled); 412 #endif 413 #ifdef PGMPOOL_WITH_MONITORING 414 GEN_CHECK_OFF(PGMPOOL, pfnAccessHandlerGC); 415 GEN_CHECK_OFF(PGMPOOL, pfnAccessHandlerR0); 416 GEN_CHECK_OFF(PGMPOOL, pfnAccessHandlerR3); 417 GEN_CHECK_OFF(PGMPOOL, pszAccessHandler); 418 GEN_CHECK_OFF(PGMPOOL, iModifiedHead); 419 GEN_CHECK_OFF(PGMPOOL, cModifiedPages); 420 #endif 421 GEN_CHECK_OFF(PGMPOOL, cUsedPages); 422 #ifdef VBOX_WITH_STATISTICS 423 GEN_CHECK_OFF(PGMPOOL, cUsedPagesHigh); 424 GEN_CHECK_OFF(PGMPOOL, StatAlloc); 425 GEN_CHECK_OFF(PGMPOOL, StatClearAll); 426 #endif 427 GEN_CHECK_OFF(PGMPOOL, HCPhysTree); 428 GEN_CHECK_OFF(PGMPOOL, aPages); 429 GEN_CHECK_OFF(PGMPOOL, aPages[1]); 430 GEN_CHECK_OFF(PGMPOOL, aPages[PGMPOOL_IDX_FIRST - 1]); 357 431 358 432 GEN_CHECK_SIZE(REM);
Note:
See TracChangeset
for help on using the changeset viewer.