summaryrefslogtreecommitdiffstats
path: root/src/kernel/vmmmgr.C
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/vmmmgr.C')
-rw-r--r--src/kernel/vmmmgr.C25
1 files changed, 24 insertions, 1 deletions
diff --git a/src/kernel/vmmmgr.C b/src/kernel/vmmmgr.C
index 9902a0527..553fa3d34 100644
--- a/src/kernel/vmmmgr.C
+++ b/src/kernel/vmmmgr.C
@@ -33,6 +33,8 @@
#include <kernel/stacksegment.H>
#include <kernel/devicesegment.H>
#include <config.h>
+#include <kernel/bltohbdatamgr.H>
+#include <util/align.H>
extern void* data_load_address;
@@ -312,5 +314,26 @@ uint64_t VmmManager::pageTableOffset()
uint64_t VmmManager::_pageTableOffset() const
{
- return INITIAL_PT_OFFSET;
+ return ALIGN_X(_endPreservedOffset(), PT_ALIGNMENT);
+}
+
+uint64_t VmmManager::BlToHbPreserveDataOffset()
+{
+ return Singleton<VmmManager>::instance()._BlToHbPreserveDataOffset();
+}
+
+uint64_t VmmManager::_BlToHbPreserveDataOffset() const
+{
+ return ALIGN_8(MAX_HBB_SIZE + g_BlToHbDataManager.getBlToHbDataSize());
+}
+
+uint64_t VmmManager::endPreservedOffset()
+{
+ return Singleton<VmmManager>::instance()._endPreservedOffset();
+}
+
+uint64_t VmmManager::_endPreservedOffset() const
+{
+ return ALIGN_PAGE(_BlToHbPreserveDataOffset() +
+ g_BlToHbDataManager.getPreservedSize());
}
OpenPOWER on IntegriCloud