--- a/kernel/eka/memmodel/epoc/flexible/mmu/mpagearray.h Wed Jun 23 11:59:44 2010 +0100
+++ b/kernel/eka/memmodel/epoc/flexible/mmu/mpagearray.h Wed Jun 23 12:52:28 2010 +0100
@@ -165,18 +165,6 @@
}
/**
- Page moving has ended so set the page back to committed if no other
- operation has occurred/is occurring.
-
- @param aEntry A reference to the entry to update.
- */
- static FORCE_INLINE void MovePageEnd(TPhysAddr& aEntry)
- {
- if (State(aEntry) == EMoving)
- aEntry = (aEntry & ~EStateMask) | ECommitted;
- }
-
- /**
Update the physical address in the array entry \a aEntry.
@param aEntry A reference to the entry to update.
@param aPhysAddr The new physical address.
@@ -416,6 +404,17 @@
*/
TPhysAddr* MovePageStart(TUint aIndex, TIter& aPageList);
+
+ /**
+ Page moving has ended so set the page back to committed if no other
+ operation has occurred/is occurring.
+
+ @param aEntry A reference to the entry to update.
+ @param aIndex The index of the page that was moved.
+ */
+ void MovePageEnd(TPhysAddr& aEntry, TUint aIndex);
+
+
/**
Return the array entry for index \a aIndex.
*/
@@ -543,7 +542,7 @@
@param aCount The number of pages to add.
@param aPages Pointer to list of \a aCount physical page addresses to add.
*/
- void Add(TUint aCount, TPhysAddr* aPages);
+ void Add(TUint aCount, const TPhysAddr* aPages);
/**
Add contiguous pages to the array, setting each entry state as ECommitted.
@@ -861,4 +860,12 @@
MmuLock::Unlock();
}
+FORCE_INLINE void RPageArray::MovePageEnd(TPhysAddr& aEntry, TUint aIndex)
+ {
+ __NK_ASSERT_DEBUG(PageEntry(aIndex) == &aEntry);
+ if (State(aEntry) == EMoving)
+ aEntry = (aEntry & ~EStateMask) | ECommitted;
+ ReleasePage(aIndex, 0);
+ }
+
#endif