VirtualBox

Changeset 87515 in vbox for trunk/src/VBox/VMM/include


Ignore:
Timestamp:
Feb 1, 2021 7:13:42 PM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
142540
Message:

VMM/HM: Make a R0 copy of HM::fNestedPaging on setup. Moved pGuestPatchMem and friends down to the patching array. bugref:9217

File:
1 edited

Legend:

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

    r87512 r87515  
    430430typedef struct HM
    431431{
    432     /** Set if nested paging is enabled. */
    433     bool                        fNestedPaging;
     432    /** Set if nested paging is enabled.
     433     * Config value that is copied to HMR0PERVM::fNestedPaging on setup. */
     434    bool                        fNestedPagingCfg;
    434435    /** Set when we've initialized VMX or SVM. */
    435436    bool                        fInitialized;
     
    466467    bool                        fMdsClearOnSched;
    467468    /** Alignment padding. */
    468     bool                        afPaddingMinus1[7];
    469 
    470     /** Maximum ASID allowed. */
    471     uint32_t                    uMaxAsid;
     469    bool                        afPaddingMinus1[3];
     470
    472471    /** The maximum number of resumes loops allowed in ring-0 (safety precaution).
    473472     * This number is set much higher when RTThreadPreemptIsPending is reliable. */
    474473    uint32_t                    cMaxResumeLoops;
    475474
     475    /** Maximum ASID allowed. */
     476    uint32_t                    uMaxAsid;
     477
    476478    /** Host kernel flags that HM might need to know (SUPKERNELFEATURES_XXX). */
    477479    uint32_t                    fHostKernelFeatures;
    478 
    479     /** Size of the guest patch memory block. */
    480     uint32_t                    cbGuestPatchMem;
    481     /** Guest allocated memory for patching purposes. */
    482     RTGCPTR                     pGuestPatchMem;
    483     /** Current free pointer inside the patch block. */
    484     RTGCPTR                     pFreeGuestPatchMem;
    485480
    486481    struct
     
    632627    HMTPRPATCH                  aPatches[64];
    633628
     629    /** Guest allocated memory for patching purposes. */
     630    RTGCPTR                     pGuestPatchMem;
     631    /** Current free pointer inside the patch block. */
     632    RTGCPTR                     pFreeGuestPatchMem;
     633    /** Size of the guest patch memory block. */
     634    uint32_t                    cbGuestPatchMem;
     635
    634636    /** Last recorded error code during HM ring-0 init. */
    635637    int32_t                     rcInit;
    636     uint32_t                    u32Alignment2;
    637638
    638639    STAMCOUNTER                 StatTprPatchSuccess;
     
    654655typedef struct HMR0PERVM
    655656{
     657    /** Set if nested paging is enabled. */
     658    bool                        fNestedPaging;
     659
     660    bool                        afAlignment0[7];
     661
    656662    /** SVM specific data. */
    657663    struct HMR0SVMVM
Note: See TracChangeset for help on using the changeset viewer.

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