changeset 286 | 48e57fb1237e |
parent 0 | a41df078684a |
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 } |