diff options
author | kaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk> | 2006-05-31 07:43:06 +0100 |
---|---|---|
committer | kaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk> | 2006-05-31 07:43:06 +0100 |
commit | 7469df6c08a7a60824187fa6b9d1a47af8f42fbd (patch) | |
tree | 83c9fd574f62f5047b59c49a12d4024e18ff65b5 /extras/mini-os/include/mm.h | |
parent | 7c5fa19f5038ad7b28696d37bf20f5aabb4dd863 (diff) | |
download | xen-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.h | 21 |
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; |