kernel/eka/memmodel/epoc/flexible/mmu/mm.cpp
changeset 109 b3a1d9898418
parent 102 ef2a444a7410
equal deleted inserted replaced
102:ef2a444a7410 109:b3a1d9898418
   783 	process->CloseOsAsid();
   783 	process->CloseOsAsid();
   784 	return r;
   784 	return r;
   785 	}
   785 	}
   786 
   786 
   787 
   787 
       
   788 DMemoryMapping* MM::FindMappingInProcess(DMemModelProcess* aProcess, TLinAddr aAddr, TUint aSize, 
       
   789 										 TUint& aOffsetInMapping, TUint& aInstanceCount)
       
   790 	{
       
   791 	if(aAddr>=KGlobalMemoryBase)
       
   792 		{
       
   793 		// Address in global region, so look it up in kernel's address space...
       
   794 		return MM::FindMappingInAddressSpace(KKernelOsAsid, aAddr, aSize, aOffsetInMapping, aInstanceCount);
       
   795 		}
       
   796 
       
   797 	// Address in thread's process address space so open a reference to its os asid
       
   798 	// so that it remains valid for FindMappingInAddressSpace() call.
       
   799 	TInt osAsid = aProcess->TryOpenOsAsid();
       
   800 	if (osAsid < 0)
       
   801 		{// The process no longer owns an address space so can't have any mappings.
       
   802 		return NULL;
       
   803 		}
       
   804 
       
   805 	DMemoryMapping* r = MM::FindMappingInAddressSpace(osAsid, aAddr, aSize, aOffsetInMapping, aInstanceCount);
       
   806 
       
   807 	aProcess->CloseOsAsid();
       
   808 	return r;
       
   809 	}
       
   810 
       
   811 
   788 DMemoryMapping* MM::FindMappingInAddressSpace(	TUint aOsAsid, TLinAddr aAddr, TUint aSize, 
   812 DMemoryMapping* MM::FindMappingInAddressSpace(	TUint aOsAsid, TLinAddr aAddr, TUint aSize, 
   789 												TUint& aOffsetInMapping, TUint& aInstanceCount)
   813 												TUint& aOffsetInMapping, TUint& aInstanceCount)
   790 	{
   814 	{
   791 	return AddressSpace[aOsAsid]->FindMapping(aAddr, aSize, aOffsetInMapping, aInstanceCount);
   815 	return AddressSpace[aOsAsid]->FindMapping(aAddr, aSize, aOffsetInMapping, aInstanceCount);
   792 	}
   816 	}
  1115 		aPermissions&EExecute,
  1139 		aPermissions&EExecute,
  1116 		attr&EMemoryAttributeShareable,
  1140 		attr&EMemoryAttributeShareable,
  1117 		attr&EMemoryAttributeUseECC
  1141 		attr&EMemoryAttributeUseECC
  1118 		);
  1142 		);
  1119 	}
  1143 	}
  1120 
       
  1121