VirtualBox

Changeset 6913 in vbox for trunk/src/VBox/VMM/VMMAll


Ignore:
Timestamp:
Feb 11, 2008 11:02:51 PM (17 years ago)
Author:
vboxsync
Message:

Separated the PGMVIRTHANDLERTYPE_HYPERVISOR kind of handlers from the others since to simplify the code a bit.

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/PGMAllBth.h

    r6911 r6913  
    197197                 * Check if the fault address is in a virtual page access handler range.
    198198                 */
    199                 PPGMVIRTHANDLER pCur = (PPGMVIRTHANDLER)RTAvlroGCPtrRangeGet(&CTXSUFF(pVM->pgm.s.pTrees)->VirtHandlers, pvFault);
     199                PPGMVIRTHANDLER pCur = (PPGMVIRTHANDLER)RTAvlroGCPtrRangeGet(&CTXSUFF(pVM->pgm.s.pTrees)->HyperVirtHandlers, pvFault);
    200200                if (    pCur
    201201                    &&  (RTGCUINTPTR)pvFault - (RTGCUINTPTR)pCur->GCPtr < pCur->cb
    202                     &&  (    uErr & X86_TRAP_PF_RW
    203                          ||  (   pCur->enmType != PGMVIRTHANDLERTYPE_WRITE
    204                               && pCur->enmType != PGMVIRTHANDLERTYPE_HYPERVISOR) ) ) /** r=bird: <- this is probably wrong. */
     202                    &&  uErr & X86_TRAP_PF_RW)
    205203                {
    206204#  ifdef IN_GC
     
    384382                            if (    (RTGCUINTPTR)pvFault - (RTGCUINTPTR)pCur->GCPtr < pCur->cb
    385383                                &&  (    uErr & X86_TRAP_PF_RW
    386                                      ||  (   pCur->enmType != PGMVIRTHANDLERTYPE_WRITE
    387                                           && pCur->enmType != PGMVIRTHANDLERTYPE_HYPERVISOR) ) ) /** @todo r=bird: _HYPERVISOR is impossible here because of mapping check. */
     384                                     ||  pCur->enmType != PGMVIRTHANDLERTYPE_WRITE ) )
    388385                            {
    389386#  ifdef IN_GC
     
    411408                            if (    pCur
    412409                                &&  (   uErr & X86_TRAP_PF_RW
    413                                     ||  (   pCur->enmType != PGMVIRTHANDLERTYPE_WRITE
    414                                         &&  pCur->enmType != PGMVIRTHANDLERTYPE_HYPERVISOR) ) )
     410                                     || pCur->enmType != PGMVIRTHANDLERTYPE_WRITE ) )
    415411                            {
    416412                                Assert((pCur->aPhysToVirt[iPage].Core.Key & X86_PTE_PAE_PG_MASK) == GCPhys);
     
    494490                        if (    (RTGCUINTPTR)pvFault - (RTGCUINTPTR)pCur->GCPtr < pCur->cb
    495491                            &&  (    uErr & X86_TRAP_PF_RW
    496                                  ||  (   pCur->enmType != PGMVIRTHANDLERTYPE_WRITE
    497                                       && pCur->enmType != PGMVIRTHANDLERTYPE_HYPERVISOR) ) ) /** @todo r=bird: _HYPERVISOR is impossible here because of mapping check. */
     492                                 ||  pCur->enmType != PGMVIRTHANDLERTYPE_WRITE ) )
    498493                        {
    499494#  ifdef IN_GC
  • trunk/src/VBox/VMM/VMMAll/PGMAllGst.h

    r6912 r6913  
    644644    PPGMVIRTHANDLER pCur  = (PPGMVIRTHANDLER)pNode;
    645645    PPGMHVUSTATE    pState = (PPGMHVUSTATE)pvUser;
     646    Assert(pCur->enmType != PGMVIRTHANDLERTYPE_HYPERVISOR);
    646647
    647648#if PGM_GST_TYPE == PGM_TYPE_32BIT
  • trunk/src/VBox/VMM/VMMAll/PGMAllHandler.cpp

    r6912 r6913  
    11001100     * Calc flags.
    11011101     */
     1102    Assert(pCur->enmType != PGMVIRTHANDLERTYPE_HYPERVISOR);
    11021103    unsigned        fFlags;
    11031104    switch (pCur->enmType)
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