VirtualBox

儲存庫 vbox 的更動 30824


忽略:
時間撮記:
2010-7-14 下午12:25:12 (14 年 以前)
作者:
vboxsync
訊息:

Must also deal with zero cr3 translation ptrs in ring 0.

位置:
trunk/src/VBox/VMM
檔案:
修改 2 筆資料

圖例:

未更動
新增
刪除
  • trunk/src/VBox/VMM/PGMInline.h

    r28800 r30824  
    590590#else
    591591    PX86PD pGuestPD = pPGM->CTX_SUFF(pGst32BitPd);
    592 # ifdef IN_RING3
    593     if (!pGuestPD)
     592    if (RT_UNLIKELY(!pGuestPD))
    594593        pGuestPD = pgmGstLazyMap32BitPD(pPGM);
    595 # endif
    596594#endif
    597595    return pGuestPD->a[GCPtr >> X86_PD_SHIFT];
     
    614612#else
    615613    PX86PD pGuestPD = pPGM->CTX_SUFF(pGst32BitPd);
    616 # ifdef IN_RING3
    617     if (!pGuestPD)
     614    if (RT_UNLIKELY(!pGuestPD))
    618615        pGuestPD = pgmGstLazyMap32BitPD(pPGM);
    619 # endif
    620616#endif
    621617    return &pGuestPD->a[GCPtr >> X86_PD_SHIFT];
     
    637633#else
    638634    PX86PD pGuestPD = pPGM->CTX_SUFF(pGst32BitPd);
    639 # ifdef IN_RING3
    640     if (!pGuestPD)
     635    if (RT_UNLIKELY(!pGuestPD))
    641636        pGuestPD = pgmGstLazyMap32BitPD(pPGM);
    642 # endif
    643637#endif
    644638    return pGuestPD;
     
    661655#else
    662656    PX86PDPT pGuestPDPT = pPGM->CTX_SUFF(pGstPaePdpt);
    663 # ifdef IN_RING3
    664     if (!pGuestPDPT)
     657    if (RT_UNLIKELY(!pGuestPDPT))
    665658        pGuestPDPT = pgmGstLazyMapPaePDPT(pPGM);
    666 # endif
    667659#endif
    668660    return pGuestPDPT;
     
    688680#else
    689681    PX86PDPT pGuestPDPT = pPGM->CTX_SUFF(pGstPaePdpt);
    690 # ifdef IN_RING3
    691     if (!pGuestPDPT)
     682    if (RT_UNLIKELY(!pGuestPDPT))
    692683        pGuestPDPT = pgmGstLazyMapPaePDPT(pPGM);
    693 # endif
    694684#endif
    695685    return &pGuestPDPT->a[(GCPtr >> X86_PDPT_SHIFT) & X86_PDPT_MASK_PAE];
     
    858848#else
    859849    PX86PML4 pGuestPml4 = pPGM->CTX_SUFF(pGstAmd64Pml4);
    860 # ifdef VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R3
    861     if (!pGuestPml4)
     850    if (RT_UNLIKELY(!pGuestPml4))
    862851        pGuestPml4 = pgmGstLazyMapPml4(pPGM);
    863 # endif
    864852    Assert(pGuestPml4);
    865853#endif
     
    883871#else
    884872    PX86PML4 pGuestPml4 = pPGM->CTX_SUFF(pGstAmd64Pml4);
    885 # ifdef VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R3
    886     if (!pGuestPml4)
     873    if (RT_UNLIKELY(!pGuestPml4))
    887874        pGuestPml4 = pgmGstLazyMapPml4(pPGM);
    888 # endif
    889875    Assert(pGuestPml4);
    890876#endif
     
    912898#else
    913899    PX86PML4 pGuestPml4 = pPGM->CTX_SUFF(pGstAmd64Pml4);
    914 # ifdef VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R3
    915900    if (!pGuestPml4)
    916901        pGuestPml4 = pgmGstLazyMapPml4(pPGM);
    917 # endif
    918902    Assert(pGuestPml4);
    919903#endif
  • trunk/src/VBox/VMM/VMMAll/PGMAll.cpp

    r30326 r30824  
    13671367}
    13681368
    1369 #ifdef IN_RING3
    13701369
    13711370/**
     
    14261425}
    14271426
    1428 #endif /* IN_RING3  */
    14291427
    14301428#ifndef VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0
     
    14921490#endif /* !VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0 */
    14931491
    1494 
    1495 #ifdef VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R3
     1492#ifndef IN_RC
    14961493/**
    14971494 * Performs the lazy mapping of the 32-bit guest PD.
     
    15211518    return pPGM->CTX_SUFF(pGstAmd64Pml4);
    15221519}
    1523 #endif /* VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R3 */
    1524 
     1520#endif
    15251521
    15261522/**
注意: 瀏覽 TracChangeset 來幫助您使用更動檢視器

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