kernel/eka/memmodel/epoc/multiple/x86/xmmu.cpp
changeset 286 48e57fb1237e
parent 0 a41df078684a
equal deleted inserted replaced
285:ff5437e4337c 286:48e57fb1237e
  1321 	{FBLK,FBLK,FBLK,FBLK,WTRA,WTRA,WBWA,WBWA,FBLK,FBLK,FBLK,FBLK,FBLK,FBLK,FBLK,WBWA};
  1321 	{FBLK,FBLK,FBLK,FBLK,WTRA,WTRA,WBWA,WBWA,FBLK,FBLK,FBLK,FBLK,FBLK,FBLK,FBLK,WBWA};
  1322 
  1322 
  1323 static const TUint8 ActualReadPrivilegeLevel[4]={1,1,4,4};	// RONO,RWNO,RORO,RWRW
  1323 static const TUint8 ActualReadPrivilegeLevel[4]={1,1,4,4};	// RONO,RWNO,RORO,RWRW
  1324 static const TUint8 ActualWritePrivilegeLevel[4]={0,1,0,4};	// RONO,RWNO,RORO,RWRW
  1324 static const TUint8 ActualWritePrivilegeLevel[4]={0,1,0,4};	// RONO,RWNO,RORO,RWRW
  1325 
  1325 
  1326 TInt X86Mmu::PdePtePermissions(TUint& aMapAttr, TPde& aPde, TPte& aPte)
  1326 TInt X86Mmu::PdePtePermissions(TUint& aMapAttr, TPde& aPde, TPte& aPte, TBool aGlobal)
  1327 	{
  1327 	{
  1328 	__KTRACE_OPT(KMMU,Kern::Printf(">X86Mmu::PdePtePermissions, mapattr=%08x",aMapAttr));
  1328 	__KTRACE_OPT(KMMU,Kern::Printf(">X86Mmu::PdePtePermissions, mapattr=%08x",aMapAttr));
  1329 	TUint read=aMapAttr & EMapAttrReadMask;
  1329 	TUint read=aMapAttr & EMapAttrReadMask;
  1330 	TUint write=(aMapAttr & EMapAttrWriteMask)>>4;
  1330 	TUint write=(aMapAttr & EMapAttrWriteMask)>>4;
  1331 	TUint exec=(aMapAttr & EMapAttrExecMask)>>8;
  1331 	TUint exec=(aMapAttr & EMapAttrExecMask)>>8;
  1361 	TInt r=KErrNone;
  1361 	TInt r=KErrNone;
  1362 	if (cbatt==UNS)
  1362 	if (cbatt==UNS)
  1363 		r=KErrNotSupported;
  1363 		r=KErrNotSupported;
  1364 	if (r==KErrNone)
  1364 	if (r==KErrNone)
  1365 		{
  1365 		{
  1366 		cache=CacheBuffActual[cache];
  1366 		cache = CacheBuffActual[cache];
  1367 		aPde=KPdePtePresent|KPdePteWrite|KPdePteUser;
  1367 		aPde = KPdePtePresent | KPdePteWrite | KPdePteUser;
  1368 		aPte=pte|cbatt|iPteGlobal;		// HW chunks can always be global
  1368 		aPte = pte | cbatt | ((aGlobal)? iPteGlobal : 0);
  1369 		aMapAttr=read|(write<<4)|(read<<8)|(cache<<12);
  1369 		aMapAttr = read | (write<<4) | (read<<8) | (cache<<12);
  1370 		}
  1370 		}
  1371 	__KTRACE_OPT(KMMU,Kern::Printf("<X86Mmu::PdePtePermissions, r=%d, mapattr=%08x, pde=%08x, pte=%08x",
  1371 	__KTRACE_OPT(KMMU,Kern::Printf("<X86Mmu::PdePtePermissions, r=%d, mapattr=%08x, pde=%08x, pte=%08x",
  1372 								r,aMapAttr,aPde,aPte));
  1372 								r,aMapAttr,aPde,aPte));
  1373 	return r;
  1373 	return r;
  1374 	}
  1374 	}