diff options
Diffstat (limited to 'src/include/kernel/vmmmgr.H')
-rw-r--r-- | src/include/kernel/vmmmgr.H | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/include/kernel/vmmmgr.H b/src/include/kernel/vmmmgr.H index 18897a6b5..9597aba57 100644 --- a/src/include/kernel/vmmmgr.H +++ b/src/include/kernel/vmmmgr.H @@ -58,8 +58,7 @@ class VmmManager /** We need to reserve a hole in heap memory for the page table, * etc. Use these constants to define the hole. */ FIRST_RESERVED_PAGE = INITIAL_PT_OFFSET, - END_RESERVED_PAGE = INITIAL_PT_OFFSET + - PTSIZE + MBOX_DMA_SIZE, + END_RESERVED_PAGE = INITIAL_PT_OFFSET + PTSIZE + MBOX_DMA_SIZE, // Tells processor to ignore HRMOR FORCE_PHYS_ADDR = 0x8000000000000000, @@ -226,9 +225,17 @@ class VmmManager static Spinlock* getLock(); private: + + // Partition Table + // 4K-aligned, each entry is 2 double words + // We only need one entry in the table + // So just use a 4K-aligned variable + static uint64_t g_patb[2] __attribute__ ((aligned (4096))); + Spinlock lock; void initPTEs(); + void initPartitionTable(); void initSDR1(); bool _pteMiss(task_t*, uint64_t, bool); @@ -236,7 +243,7 @@ class VmmManager /** See findPhysicalAddress */ uint64_t _findPhysicalAddress(uint64_t i_vaddr); - /* See mmSetPermission */ + /** See mmSetPermission */ int _mmSetPermission(void* i_va,uint64_t i_size, uint64_t i_access_type); /** See castOutPages */ |