X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fthreads%2Fmmu.h;h=5cdda6fa933c5f1248a8e1595ce6e1f78018683e;hb=994aa9cbadb9bb822df3adfffad8de40997fc562;hp=87933f19a397d19acdfa23d71cc980e646253c0b;hpb=a98578bf3b6b5c946713654b404a886a7199dbee;p=pintos-anon diff --git a/src/threads/mmu.h b/src/threads/mmu.h index 87933f1..5cdda6f 100644 --- a/src/threads/mmu.h +++ b/src/threads/mmu.h @@ -43,6 +43,8 @@ #include "debug.h" #endif +#include "loader.h" + #define MASK(SHIFT, CNT) (((1ul << (CNT)) - 1) << (SHIFT)) /* Page offset (bits 0:11). */ @@ -86,8 +88,7 @@ static inline void *pg_round_down (void *va) { return (void *) ((uintptr_t) va & ~PGMASK); } -#define PHYS_BASE ((void *) 0xc0000000) /* Physical memory mapped here. */ -#define KERN_BASE ((void *) 0xc0100000) /* Kernel loaded here. */ +#define PHYS_BASE ((void *) LOADER_PHYS_BASE) /* Returns kernel virtual address at which physical address PADDR is mapped. */ @@ -193,8 +194,8 @@ vtop (void *vaddr) #define SEL_NULL 0x00 /* Null selector. */ #define SEL_KCSEG 0x08 /* Kernel code selector. */ #define SEL_KDSEG 0x10 /* Kernel data selector. */ -#define SEL_UCSEG 0x18 /* Kernel code selector. */ -#define SEL_UDSEG 0x20 /* Kernel data selector. */ +#define SEL_UCSEG 0x1B /* User code selector. */ +#define SEL_UDSEG 0x23 /* User data selector. */ #define SEL_TSS 0x28 /* Task-state segment. */ #define SEL_CNT 6 /* Number of segments. */