VirtualBox

Ignore:
Timestamp:
May 3, 2011 11:08:35 AM (14 years ago)
Author:
vboxsync
Message:

PGMPAGE: More bit fields.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/include/PGMInternal.h

    r36926 r36927  
    693693    /** The physical address and the Page ID. */
    694694    RTHCPHYS    HCPhysAndPageID;
     695#define PGMPAGE_USE_MORE_BITFIELDS
    695696#ifndef PGMPAGE_USE_MORE_BITFIELDS
    696697    /** Combination of:
     
    699700     *  - [8-9]: u2HandlerVirtStateY - the virtual handler state
    700701     *    (PGM_PAGE_HNDL_VIRT_STATE_*).
    701      *  - [10]:  u1FTDirty - indicator of dirty page for fault tolerance tracking
     702     *  - [10]:  fFTDirtyY - indicator of dirty page for fault tolerance tracking.
    702703     *  - [13-14]: u2PDEType  - paging structure needed to map the page (PGM_PAGE_PDE_TYPE_*)
    703704     *  - [15]:  fWrittenToY - flag indicating that a write monitored page was
     
    749750            /** 10    - Indicator of dirty page for fault tolerance
    750751             *  tracking. */
    751             uint32_t    u1FTDirtyY  : 1;
     752            uint32_t    fFTDirtyY  : 1;
    752753            /** 12:11 - Currently unused. */
    753754            uint32_t    u2Unused2   : 2;
     
    992993 * @param   a_pPage     Pointer to the physical guest page tracking structure.
    993994 */
     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
    994998#define PGM_PAGE_CLEAR_WRITTEN_TO(a_pPage)      do { (a_pPage)->u1.au8[1] &= UINT8_C(0x7f); } while (0)
     999#endif
    9951000
    9961001/**
     
    9991004 * @param   a_pPage     Pointer to the physical guest page tracking structure.
    10001005 */
     1006#ifdef PGMPAGE_USE_MORE_BITFIELDS
     1007#define PGM_PAGE_IS_WRITTEN_TO(a_pPage)         ( (a_pPage)->u1.bit.fWrittenToY )
     1008#else
    10011009#define PGM_PAGE_IS_WRITTEN_TO(a_pPage)         ( !!((a_pPage)->u1.au8[1] & UINT8_C(0x80)) )
     1010#endif
    10021011
    10031012/**
     
    10051014 * @param   a_pPage     Pointer to the physical guest page tracking structure.
    10061015 */
     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
    10071019#define PGM_PAGE_SET_FT_DIRTY(a_pPage)          do { (a_pPage)->u1.au8[1] |= UINT8_C(0x04); } while (0)
     1020#endif
    10081021
    10091022/**
     
    10111024 * @param   a_pPage     Pointer to the physical guest page tracking structure.
    10121025 */
     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
    10131029#define PGM_PAGE_CLEAR_FT_DIRTY(a_pPage)        do { (a_pPage)->u1.au8[1] &= UINT8_C(0xfb); } while (0)
     1030#endif
    10141031
    10151032/**
     
    10181035 * @param   a_pPage     Pointer to the physical guest page tracking structure.
    10191036 */
     1037#ifdef PGMPAGE_USE_MORE_BITFIELDS
     1038#define PGM_PAGE_IS_FT_DIRTY(a_pPage)           ( (a_pPage)->u1.bit.fFTDirtyY )
     1039#else
    10201040#define PGM_PAGE_IS_FT_DIRTY(a_pPage)           ( !!((a_pPage)->u1.au8[1] & UINT8_C(0x04)) )
     1041#endif
    10211042
    10221043
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette