VirtualBox

Changeset 61994 in vbox for trunk


Ignore:
Timestamp:
Jul 4, 2016 1:35:42 AM (8 years ago)
Author:
vboxsync
Message:

IEM: Uh, right.

File:
1 edited

Legend:

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

    r61993 r61994  
    292292     * - Bit  3 - pgm phys/virt - not directly writable.
    293293     * - Bit  4 - pgm phys page - not directly readable.
    294      * - Bit  5 - tlb entry     - HCPhys member not valid.
     294     * - Bit  5 - currently unused.
    295295     * - Bit  6 - page tables   - not dirty (complemented X86_PTE_D).
    296296     * - Bit  7 - tlb entry     - pMappingR3 member not valid.
     
    306306     */
    307307    uint64_t                fFlagsAndPhysRev;
    308     /** The host physical page address (for raw-mode and maybe ring-0). */
    309     RTHCPHYS                HCPhys;
    310     /** Pointer to the ring-3 mapping. */
     308    /** The guest physical page address. */
     309    uint64_t                GCPhys;
     310    /** Pointer to the ring-3 mapping (possibly also valid in ring-0). */
     311#ifdef VBOX_WITH_2X_4GB_ADDR_SPACE
    311312    R3PTRTYPE(uint8_t *)    pMappingR3;
     313#else
     314    R3R0PTRTYPE(uint8_t *)  pMappingR3;
     315#endif
    312316#if HC_ARCH_BITS == 32
    313317    uint32_t                u32Padding1;
     
    337341    uint64_t            uTlbRevision;
    338342    /** The TLB physical address revision - shadow of PGM variable.
     343     *
    339344     * This is actually only 56 bits wide (see IEMTLBENTRY::fFlagsAndPhysRev) and is
    340345     * incremented by adding RT_BIT_64(8).  When it wraps around and becomes zero,
    341      * a rendezvous is called and each CPU wipe the IEMTLBENTRY::pMappingR3,
    342      * IEMTLBENTRY::HCPhys and bits 3, 4 and 8-63 in IEMTLBENTRY::fFlagsAndPhysRev.
     346     * a rendezvous is called and each CPU wipe the IEMTLBENTRY::pMappingR3 as well
     347     * as IEMTLBENTRY::fFlagsAndPhysRev bits 63 thru 8, 4, and 3.
    343348     *
    344349     * The initial value is choosen to cause an early wraparound. */
     
    361366    /** TLB misses because of write access handlers. */
    362367    uint32_t            cTlbMissesWriteHandler;
     368    /** TLB misses because no r3(/r0) mapping. */
     369    uint32_t            cTlbMissesMapping;
    363370    /** Alignment padding. */
    364     uint32_t            au32Padding[4];
     371    uint32_t            au32Padding[3];
    365372} IEMTLB;
    366373AssertCompileSizeAlignment(IEMTLB, 64);
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