VirtualBox

儲存庫 vbox 的更動 17290


忽略:
時間撮記:
2009-3-3 下午03:05:31 (16 年 以前)
作者:
vboxsync
訊息:

PGM: -MM_RAM_FLAGS_IDX_SHIFT, -MM_RAM_FLAGS_IDX_MASK

位置:
trunk
檔案:
修改 3 筆資料

圖例:

未更動
新增
刪除
  • trunk/include/VBox/mm.h

    r17286 r17290  
    8585/** Physical backing memory is allocated dynamically. Not set implies a one time static allocation. */
    8686#define MM_RAM_FLAGS_DYNAMIC_ALLOC      RT_BIT(11)
    87 
    88 /** The shift used to get the page pool idx. (Apply MM_RAM_FLAGS_IDX_MASK to the result when shifting down). */
    89 #define MM_RAM_FLAGS_IDX_SHIFT          48
    90 /** The mask applied to the the page pool idx after using MM_RAM_FLAGS_IDX_SHIFT to shift it down. */
    91 #define MM_RAM_FLAGS_IDX_MASK           0x3fff
    9287/** @} */
    9388
  • trunk/src/VBox/VMM/PGMInternal.h

    r17286 r17290  
    19741974/** @} */
    19751975
    1976 #ifdef MM_RAM_FLAGS_IDX_SHIFT
    1977 # if MM_RAM_FLAGS_IDX_SHIFT - 48 != PGMPOOL_TD_IDX_SHIFT
    1978 #  error "MM_RAM_FLAGS_IDX_SHIFT - 48 != PGMPOOL_TD_IDX_SHIFT"
    1979 # endif
    1980 #endif
    1981 #ifdef MM_RAM_FLAGS_IDX_MASK
    1982 # if MM_RAM_FLAGS_IDX_MASK != PGMPOOL_TD_IDX_MASK
    1983 #  error "MM_RAM_FLAGS_IDX_MASK != PGMPOOL_TD_IDX_MASK"
    1984 # endif
    1985 #endif
    1986 
    19871976
    19881977/**
  • trunk/src/VBox/VMM/VMMAll/PGMAllBth.h

    r17289 r17290  
    14711471             * Make page table entry.
    14721472             */
    1473             const RTHCPHYS HCPhys = pPage->HCPhys; /** @todo FLAGS */
    14741473            SHWPTE PteDst;
    14751474            if (PGM_PAGE_HAS_ACTIVE_HANDLERS(pPage))
     
    14871486#else
    14881487                    PteDst.u = (PteSrc.u & ~(X86_PTE_PAE_PG_MASK | X86_PTE_AVL_MASK | X86_PTE_PAT | X86_PTE_PCD | X86_PTE_PWT | X86_PTE_RW))
    1489                              | (HCPhys & X86_PTE_PAE_PG_MASK);
     1488                             | PGM_PAGE_GET_HCPHYS(pPage);
    14901489#endif
    14911490                }
    14921491                else
    14931492                {
    1494                     LogFlow(("SyncPageWorker: monitored page (%RHp) -> mark not present\n", HCPhys));
     1493                    LogFlow(("SyncPageWorker: monitored page (%RHp) -> mark not present\n", PGM_PAGE_GET_HCPHYS(pPage)));
    14951494                    PteDst.u = 0;
    14961495                }
     
    15191518                    STAM_COUNTER_INC(&pVM->pgm.s.CTX_MID_Z(Stat,DirtyPage));
    15201519                    PteDst.u = (PteSrc.u & ~(X86_PTE_PAE_PG_MASK | X86_PTE_AVL_MASK | X86_PTE_PAT | X86_PTE_PCD | X86_PTE_PWT | X86_PTE_RW))
    1521                              | (HCPhys & X86_PTE_PAE_PG_MASK)
     1520                             | PGM_PAGE_GET_HCPHYS(pPage)
    15221521                             | PGM_PTFLAGS_TRACK_DIRTY;
    15231522                }
     
    15361535#else
    15371536                    PteDst.u = (PteSrc.u & ~(X86_PTE_PAE_PG_MASK | X86_PTE_AVL_MASK | X86_PTE_PAT | X86_PTE_PCD | X86_PTE_PWT))
    1538                              | (HCPhys & X86_PTE_PAE_PG_MASK);
     1537                             | PGM_PAGE_GET_HCPHYS(pPage);
    15391538#endif
    15401539                }
     
    15481547            {
    15491548                if (!pPteDst->n.u1Present)
    1550                     PGM_BTH_NAME(SyncPageWorkerTrackAddref)(pVM, pShwPage, HCPhys >> MM_RAM_FLAGS_IDX_SHIFT, pPage, iPTDst);
     1549                    PGM_BTH_NAME(SyncPageWorkerTrackAddref)(pVM, pShwPage, PGM_PAGE_GET_TRACKING(pPage), pPage, iPTDst);
    15511550                else if ((pPteDst->u & SHW_PTE_PG_MASK) != (PteDst.u & SHW_PTE_PG_MASK))
    15521551                {
    15531552                    Log2(("SyncPageWorker: deref! *pPteDst=%RX64 PteDst=%RX64\n", (uint64_t)pPteDst->u, (uint64_t)PteDst.u));
    15541553                    PGM_BTH_NAME(SyncPageWorkerTrackDeref)(pVM, pShwPage, pPteDst->u & SHW_PTE_PG_MASK);
    1555                     PGM_BTH_NAME(SyncPageWorkerTrackAddref)(pVM, pShwPage, HCPhys >> MM_RAM_FLAGS_IDX_SHIFT, pPage, iPTDst);
     1554                    PGM_BTH_NAME(SyncPageWorkerTrackAddref)(pVM, pShwPage, PGM_PAGE_GET_TRACKING(pPage), pPage, iPTDst);
    15561555                }
    15571556            }
注意: 瀏覽 TracChangeset 來幫助您使用更動檢視器

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