VirtualBox

Changeset 45705 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Apr 24, 2013 2:37:42 PM (12 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
85251
Message:

Retired SELMR3DisableMonitoring.

Location:
trunk/src/VBox/VMM
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR3/HM.cpp

    r45701 r45705  
    839839#ifdef VBOX_WITH_RAW_MODE
    840840    /* Turn off IDT/LDT/GDT and TSS monitoring and sycing. */
    841     SELMR3DisableMonitoring(pVM);
    842841    TRPMR3DisableMonitoring(pVM);
    843842#endif
  • trunk/src/VBox/VMM/VMMR3/SELM.cpp

    r45701 r45705  
    179179    pVM->selm.s.GCSelTss           = RTSEL_MAX;
    180180
    181     pVM->selm.s.fDisableMonitoring = false;
    182181    pVM->selm.s.fSyncTSSRing0Stack = false;
    183182
     
    632631
    633632
    634 #ifdef VBOX_WITH_RAW_MODE
    635 /**
    636  * Disable GDT/LDT/TSS monitoring and syncing
    637  *
    638  * @param   pVM         Pointer to the VM.
    639  */
    640 VMMR3DECL(void) SELMR3DisableMonitoring(PVM pVM)
    641 {
    642     /*
    643      * Uninstall guest GDT/LDT/TSS write access handlers.
    644      */
    645     int rc;
    646     if (pVM->selm.s.GuestGdtr.pGdt != RTRCPTR_MAX && pVM->selm.s.fGDTRangeRegistered)
    647     {
    648 # ifdef SELM_TRACK_GUEST_GDT_CHANGES
    649         rc = PGMHandlerVirtualDeregister(pVM, pVM->selm.s.GuestGdtr.pGdt);
    650         AssertRC(rc);
    651 # endif
    652         pVM->selm.s.GuestGdtr.pGdt = RTRCPTR_MAX;
    653         pVM->selm.s.GuestGdtr.cbGdt = 0;
    654     }
    655     pVM->selm.s.fGDTRangeRegistered = false;
    656     if (pVM->selm.s.GCPtrGuestLdt != RTRCPTR_MAX)
    657     {
    658 # ifdef SELM_TRACK_GUEST_LDT_CHANGES
    659         rc = PGMHandlerVirtualDeregister(pVM, pVM->selm.s.GCPtrGuestLdt);
    660         AssertRC(rc);
    661 # endif
    662         pVM->selm.s.GCPtrGuestLdt = RTRCPTR_MAX;
    663     }
    664     if (pVM->selm.s.GCPtrGuestTss != RTRCPTR_MAX)
    665     {
    666 # ifdef SELM_TRACK_GUEST_TSS_CHANGES
    667         rc = PGMHandlerVirtualDeregister(pVM, pVM->selm.s.GCPtrGuestTss);
    668         AssertRC(rc);
    669 # endif
    670         pVM->selm.s.GCPtrGuestTss = RTRCPTR_MAX;
    671         pVM->selm.s.GCSelTss      = RTSEL_MAX;
    672     }
    673 
    674     /*
    675      * Unregister shadow GDT/LDT/TSS write access handlers.
    676      */
    677 # ifdef SELM_TRACK_SHADOW_GDT_CHANGES
    678     if (pVM->selm.s.paGdtRC != NIL_RTRCPTR)
    679     {
    680         rc = PGMHandlerVirtualDeregister(pVM, pVM->selm.s.paGdtRC);
    681         AssertRC(rc);
    682         pVM->selm.s.paGdtRC = NIL_RTRCPTR;
    683     }
    684 # endif
    685 # ifdef SELM_TRACK_SHADOW_TSS_CHANGES
    686     if (pVM->selm.s.pvMonShwTssRC != RTRCPTR_MAX)
    687     {
    688         rc = PGMHandlerVirtualDeregister(pVM, pVM->selm.s.pvMonShwTssRC);
    689         AssertRC(rc);
    690         pVM->selm.s.pvMonShwTssRC = RTRCPTR_MAX;
    691     }
    692 # endif
    693 # ifdef SELM_TRACK_SHADOW_LDT_CHANGES
    694     if (pVM->selm.s.pvLdtRC != RTRCPTR_MAX)
    695     {
    696         rc = PGMHandlerVirtualDeregister(pVM, pVM->selm.s.pvLdtRC);
    697         AssertRC(rc);
    698         pVM->selm.s.pvLdtRC = RTRCPTR_MAX;
    699     }
    700 # endif
    701 
    702     PVMCPU pVCpu = &pVM->aCpus[0];  /* raw mode implies on VCPU */
    703     VMCPU_FF_CLEAR(pVCpu, VMCPU_FF_SELM_SYNC_TSS);
    704     VMCPU_FF_CLEAR(pVCpu, VMCPU_FF_SELM_SYNC_GDT);
    705     VMCPU_FF_CLEAR(pVCpu, VMCPU_FF_SELM_SYNC_LDT);
    706 
    707     pVM->selm.s.fDisableMonitoring = true;
    708 }
    709 #endif /* VBOX_WITH_RAW_MODE */
    710 
    711 
    712633/**
    713634 * Execute state save operation.
     
    726647    PSELM pSelm = &pVM->selm.s;
    727648
    728     SSMR3PutBool(pSSM, pSelm->fDisableMonitoring);
     649    SSMR3PutBool(pSSM, HMIsEnabled(pVM));
    729650    SSMR3PutBool(pSSM, pSelm->fSyncTSSRing0Stack);
    730651    SSMR3PutSel(pSSM, pSelm->aHyperSel[SELM_HYPER_SEL_CS]);
     
    766687
    767688    /* Get the monitoring flag. */
    768     SSMR3GetBool(pSSM, &pVM->selm.s.fDisableMonitoring);
     689    bool fIgnored;
     690    SSMR3GetBool(pSSM, &fIgnored);
    769691
    770692    /* Get the TSS state flag. */
  • trunk/src/VBox/VMM/include/SELMInternal.h

    r45533 r45705  
    167167    bool                    fGDTRangeRegistered;
    168168
    169     /** Indicates whether LDT/GDT/TSS monitoring and syncing is disabled. */
    170     bool                    fDisableMonitoring;
    171 
    172169    /** Indicates whether the TSS stack selector & base address need to be refreshed.  */
    173170    bool                    fSyncTSSRing0Stack;
    174     bool                    fPadding2[1+2];
     171    bool                    fPadding2[4];
    175172
    176173    /** SELMR3UpdateFromCPUM() profiling. */
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