VirtualBox

Changeset 17616 in vbox for trunk


Ignore:
Timestamp:
Mar 10, 2009 11:08:39 AM (16 years ago)
Author:
vboxsync
Message:

Inform SELM about shadow CR3 changes.

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/selm.h

    r17035 r17616  
    5656VMMDECL(RTGCPTR)    SELMToFlat(PVM pVM, DIS_SELREG SelReg, PCPUMCTXCORE pCtxCore, RTGCPTR Addr);
    5757VMMDECL(RTGCPTR)    SELMToFlatBySel(PVM pVM, RTSEL Sel, RTGCPTR Addr);
     58VMMDECL(void)       SELMShadowCR3Changed(PVM pVM);
    5859
    5960/** Flags for SELMToFlatEx().
     
    135136VMMR3DECL(int)      SELMR3InitFinalize(PVM pVM);
    136137VMMR3DECL(void)     SELMR3Relocate(PVM pVM);
    137 VMMR3DECL(void)     SELMR3PagingModeChanged(PVM pVM);
    138138VMMR3DECL(int)      SELMR3Term(PVM pVM);
    139139VMMR3DECL(void)     SELMR3Reset(PVM pVM);
  • trunk/src/VBox/VMM/PGM.cpp

    r17586 r17616  
    34773477            rc = VINF_SUCCESS;
    34783478    }
    3479 
    3480     /*
    3481      * Notify SELM so it can update the TSSes with correct CR3s.
    3482      */
    3483     SELMR3PagingModeChanged(pVM);
    34843479
    34853480    /* Notify HWACCM as well. */
  • trunk/src/VBox/VMM/SELM.cpp

    r17107 r17616  
    496496#endif
    497497    }
    498 }
    499 
    500 
    501 /**
    502  * Notification callback which is called whenever there is a chance that a CR3
    503  * value might have changed.
    504  * This is called by PGM.
    505  *
    506  * @param   pVM       The VM handle
    507  */
    508 VMMR3DECL(void) SELMR3PagingModeChanged(PVM pVM)
    509 {
    510     pVM->selm.s.Tss.cr3       = PGMGetHyperCR3(pVM);
    511     pVM->selm.s.TssTrap08.cr3 = PGMGetInterRCCR3(pVM);
    512498}
    513499
  • trunk/src/VBox/VMM/VMMAll/PGMAllBth.h

    r17586 r17616  
    42824282    /* Set the current hypervisor CR3. */
    42834283    CPUMSetHyperCR3(pVM, PGMGetHyperCR3(pVM));
     4284    SELMShadowCR3Changed(pVM);
    42844285
    42854286#  ifdef IN_RC
  • trunk/src/VBox/VMM/VMMAll/SELMAll.cpp

    r17035 r17616  
    12051205}
    12061206
     1207
     1208
     1209/**
     1210 * Notification callback which is called whenever there is a chance that a CR3
     1211 * value might have changed.
     1212 * This is called by PGM.
     1213 *
     1214 * @param   pVM       The VM handle
     1215 */
     1216VMMDECL(void) SELMShadowCR3Changed(PVM pVM)
     1217{
     1218    pVM->selm.s.Tss.cr3 = PGMGetHyperCR3(pVM);
     1219    Assert(pVM->selm.s.TssTrap08.cr3 == PGMGetInterRCCR3(pVM));
     1220}
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