Changeset 36927 in vbox for trunk/src/VBox/VMM/include/PGMInternal.h
- Timestamp:
- May 3, 2011 11:08:35 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/include/PGMInternal.h
r36926 r36927 693 693 /** The physical address and the Page ID. */ 694 694 RTHCPHYS HCPhysAndPageID; 695 #define PGMPAGE_USE_MORE_BITFIELDS 695 696 #ifndef PGMPAGE_USE_MORE_BITFIELDS 696 697 /** Combination of: … … 699 700 * - [8-9]: u2HandlerVirtStateY - the virtual handler state 700 701 * (PGM_PAGE_HNDL_VIRT_STATE_*). 701 * - [10]: u1FTDirty - indicator of dirty page for fault tolerance tracking702 * - [10]: fFTDirtyY - indicator of dirty page for fault tolerance tracking. 702 703 * - [13-14]: u2PDEType - paging structure needed to map the page (PGM_PAGE_PDE_TYPE_*) 703 704 * - [15]: fWrittenToY - flag indicating that a write monitored page was … … 749 750 /** 10 - Indicator of dirty page for fault tolerance 750 751 * tracking. */ 751 uint32_t u1FTDirtyY : 1;752 uint32_t fFTDirtyY : 1; 752 753 /** 12:11 - Currently unused. */ 753 754 uint32_t u2Unused2 : 2; … … 992 993 * @param a_pPage Pointer to the physical guest page tracking structure. 993 994 */ 995 #ifdef PGMPAGE_USE_MORE_BITFIELDS 996 #define PGM_PAGE_CLEAR_WRITTEN_TO(a_pPage) do { (a_pPage)->u1.bit.fWrittenToY = 0; } while (0) 997 #else 994 998 #define PGM_PAGE_CLEAR_WRITTEN_TO(a_pPage) do { (a_pPage)->u1.au8[1] &= UINT8_C(0x7f); } while (0) 999 #endif 995 1000 996 1001 /** … … 999 1004 * @param a_pPage Pointer to the physical guest page tracking structure. 1000 1005 */ 1006 #ifdef PGMPAGE_USE_MORE_BITFIELDS 1007 #define PGM_PAGE_IS_WRITTEN_TO(a_pPage) ( (a_pPage)->u1.bit.fWrittenToY ) 1008 #else 1001 1009 #define PGM_PAGE_IS_WRITTEN_TO(a_pPage) ( !!((a_pPage)->u1.au8[1] & UINT8_C(0x80)) ) 1010 #endif 1002 1011 1003 1012 /** … … 1005 1014 * @param a_pPage Pointer to the physical guest page tracking structure. 1006 1015 */ 1016 #ifdef PGMPAGE_USE_MORE_BITFIELDS 1017 #define PGM_PAGE_SET_FT_DIRTY(a_pPage) do { (a_pPage)->u1.bit.fFTDirtyY = 1; } while (0) 1018 #else 1007 1019 #define PGM_PAGE_SET_FT_DIRTY(a_pPage) do { (a_pPage)->u1.au8[1] |= UINT8_C(0x04); } while (0) 1020 #endif 1008 1021 1009 1022 /** … … 1011 1024 * @param a_pPage Pointer to the physical guest page tracking structure. 1012 1025 */ 1026 #ifdef PGMPAGE_USE_MORE_BITFIELDS 1027 #define PGM_PAGE_CLEAR_FT_DIRTY(a_pPage) do { (a_pPage)->u1.bit.fFTDirtyY = 0; } while (0) 1028 #else 1013 1029 #define PGM_PAGE_CLEAR_FT_DIRTY(a_pPage) do { (a_pPage)->u1.au8[1] &= UINT8_C(0xfb); } while (0) 1030 #endif 1014 1031 1015 1032 /** … … 1018 1035 * @param a_pPage Pointer to the physical guest page tracking structure. 1019 1036 */ 1037 #ifdef PGMPAGE_USE_MORE_BITFIELDS 1038 #define PGM_PAGE_IS_FT_DIRTY(a_pPage) ( (a_pPage)->u1.bit.fFTDirtyY ) 1039 #else 1020 1040 #define PGM_PAGE_IS_FT_DIRTY(a_pPage) ( !!((a_pPage)->u1.au8[1] & UINT8_C(0x04)) ) 1041 #endif 1021 1042 1022 1043
Note:
See TracChangeset
for help on using the changeset viewer.