aboutsummaryrefslogtreecommitdiffstats
path: root/extras/mini-os/include/mm.h
diff options
context:
space:
mode:
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>2006-05-31 07:43:06 +0100
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>2006-05-31 07:43:06 +0100
commit7469df6c08a7a60824187fa6b9d1a47af8f42fbd (patch)
tree83c9fd574f62f5047b59c49a12d4024e18ff65b5 /extras/mini-os/include/mm.h
parent7c5fa19f5038ad7b28696d37bf20f5aabb4dd863 (diff)
downloadxen-7469df6c08a7a60824187fa6b9d1a47af8f42fbd.tar.gz
xen-7469df6c08a7a60824187fa6b9d1a47af8f42fbd.tar.bz2
xen-7469df6c08a7a60824187fa6b9d1a47af8f42fbd.zip
[MINIOS] Various address-space fixes.
1. Make Mini-OS start from 0x0. 2. Fixes the pagetable builder to handle half full, but already mapped pt frames.=20 3. Add a bounds check to ensure than Mini-OS does not try to use Xen virtual space. Signed-off-by: Grzegorz Milos <gm281@cam.ac.uk> Signed-off-by: Aravindh Puthiyaparambil <aravindh.puthiyaparambil@unisys.com>
Diffstat (limited to 'extras/mini-os/include/mm.h')
-rw-r--r--extras/mini-os/include/mm.h21
1 files changed, 8 insertions, 13 deletions
diff --git a/extras/mini-os/include/mm.h b/extras/mini-os/include/mm.h
index 7d91471bb1..331b5b178c 100644
--- a/extras/mini-os/include/mm.h
+++ b/extras/mini-os/include/mm.h
@@ -53,7 +53,7 @@
#define PADDR_BITS 32
#define PADDR_MASK (~0UL)
-#define UNMAPPED_PT_FRAMES 1
+#define NOT_L1_FRAMES 1
#define PRIpte "08lx"
typedef unsigned long pgentry_t;
@@ -71,7 +71,12 @@ typedef unsigned long pgentry_t;
#define L2_MASK ((1UL << L3_PAGETABLE_SHIFT) - 1)
-#define UNMAPPED_PT_FRAMES 2
+/*
+ * If starting from virtual address greater than 0xc0000000,
+ * this value will be 2 to account for final mid-level page
+ * directory which is always mapped in at this location.
+ */
+#define NOT_L1_FRAMES 3
#define PRIpte "016llx"
typedef uint64_t pgentry_t;
@@ -94,20 +99,10 @@ typedef uint64_t pgentry_t;
#define PADDR_MASK ((1UL << PADDR_BITS)-1)
#define VADDR_MASK ((1UL << VADDR_BITS)-1)
-/* Get physical address of page mapped by pte (paddr_t). */
-#define l1e_get_paddr(x) \
- ((unsigned long)(((x) & (PADDR_MASK&PAGE_MASK))))
-#define l2e_get_paddr(x) \
- ((unsigned long)(((x) & (PADDR_MASK&PAGE_MASK))))
-#define l3e_get_paddr(x) \
- ((unsigned long)(((x) & (PADDR_MASK&PAGE_MASK))))
-#define l4e_get_paddr(x) \
- ((unsigned long)(((x) & (PADDR_MASK&PAGE_MASK))))
-
#define L2_MASK ((1UL << L3_PAGETABLE_SHIFT) - 1)
#define L3_MASK ((1UL << L4_PAGETABLE_SHIFT) - 1)
-#define UNMAPPED_PT_FRAMES 3
+#define NOT_L1_FRAMES 3
#define PRIpte "016lx"
typedef unsigned long pgentry_t;