summaryrefslogtreecommitdiffstats
path: root/src/kernel/ptmgr.C
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/ptmgr.C')
-rw-r--r--src/kernel/ptmgr.C8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/kernel/ptmgr.C b/src/kernel/ptmgr.C
index 98d32035e..959e0c7dd 100644
--- a/src/kernel/ptmgr.C
+++ b/src/kernel/ptmgr.C
@@ -903,6 +903,12 @@ void PageTableManager::setAccessBits( PageTableEntry* o_pte,
// All others are set to 0b0010
o_pte->WIMG = 0b0010; // Memory Coherency Required
+ // Turn on the guarded access permission if requested
+ if(i_accessType & GUARDED)
+ {
+ o_pte->WIMG |= 0b0001;
+ }
+
if (i_accessType & READ_ONLY)
{
o_pte->pp1_2 = 0b01; // PP=001
@@ -940,7 +946,7 @@ uint64_t PageTableManager::getAccessType( const PageTableEntry* i_pte )
{
return SegmentManager::CI_ACCESS;
}
- else if (i_pte->WIMG == 0b0010)
+ else if ( (i_pte->WIMG & 0b1110) == 0b0010)
{
if (i_pte->pp1_2 == 0b00)
{
OpenPOWER on IntegriCloud