diff -r 0ff03867bdb6 -r 39b39e1a406e kernel/eka/memmodel/epoc/flexible/mmu/mmu.h --- a/kernel/eka/memmodel/epoc/flexible/mmu/mmu.h Wed Jul 21 14:46:58 2010 +0100 +++ b/kernel/eka/memmodel/epoc/flexible/mmu/mmu.h Thu Jul 22 16:46:39 2010 +0100 @@ -571,6 +571,23 @@ } /** + Mark this page as an oldest old page. + + This does not mark the object as modified as conceptually it's still an oldest page. This means + that if a page goes from young -> old -> oldest the second transition will not interrupt the + page restriction that happens on the first. + + @pre #MmuLock held. + */ + FORCE_INLINE void SetOldestPage(TPagedState aPagedState) + { + CheckAccess("SetPagedState"); + __NK_ASSERT_DEBUG(iPagedState==EPagedOld); + __NK_ASSERT_DEBUG(aPagedState==EPagedOldestClean || aPagedState==EPagedOldestDirty); + iPagedState = aPagedState; + } + + /** Set the page's #iModifier value. #iModifier is cleared to zero whenever the usage or paging state of the page @@ -1962,6 +1979,7 @@ TInt AllocRam( TPhysAddr* aPages, TUint aCount, TRamAllocFlags aFlags, TZonePageType aZonePageType, TUint aBlockZoneId=KRamZoneInvalidId, TBool aBlockRest=EFalse); + void MarkPageAllocated(TPhysAddr aPhysAddr, TZonePageType aZonePageType); void FreeRam(TPhysAddr* aPages, TUint aCount, TZonePageType aZonePageType); TInt AllocContiguousRam(TPhysAddr& aPhysAddr, TUint aCount, TUint aAlign, TRamAllocFlags aFlags); void FreeContiguousRam(TPhysAddr aPhysAddr, TUint aCount);