Clean up disk layer.
[pintos-anon] / src / threads / mmu.h
index 87933f19a397d19acdfa23d71cc980e646253c0b..5cdda6fa933c5f1248a8e1595ce6e1f78018683e 100644 (file)
@@ -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. */