kernel/eka/memmodel/epoc/flexible/mmu/mrom.cpp
branchRCL_3
changeset 41 0ffb4e86fcc9
parent 28 5b5d147c7838
child 42 a179b74831c9
equal deleted inserted replaced
39:2bb754abd467 41:0ffb4e86fcc9
   954 		return r;
   954 		return r;
   955 
   955 
   956 	RamAllocLock::Lock();
   956 	RamAllocLock::Lock();
   957 
   957 
   958 	Mmu& m = TheMmu;
   958 	Mmu& m = TheMmu;
   959 	r = m.AllocRam(&iNewPage, 1, aMemory->RamAllocFlags(), EPageFixed);
   959 	// Allocate a page to shadow to allowing the allocation to steal pages from the paging cache.
       
   960 	r = m.AllocRam(	&iNewPage, 
       
   961 					1, 
       
   962 					(Mmu::TRamAllocFlags)(aMemory->RamAllocFlags() & ~Mmu::EAllocNoPagerReclaim), 
       
   963 					EPageFixed);
   960 	if(r==KErrNone)
   964 	if(r==KErrNone)
   961 		{
   965 		{
   962 		TLinAddr dst = m.MapTemp(iNewPage,aIndex,0);
   966 		TLinAddr dst = m.MapTemp(iNewPage,aIndex,0);
   963 		TLinAddr src = m.MapTemp(iOriginalPage,aIndex,1);
   967 		TLinAddr src = m.MapTemp(iOriginalPage,aIndex,1);
   964 		pagecpy((TAny*)dst,(TAny*)src);
   968 		pagecpy((TAny*)dst,(TAny*)src);