merged in all changes done to the trunk up to Aug 28
[pintos-anon] / src / threads / palloc.c
index 22a6b15972de40c4bde0cc4dab622c40caf3d157..46bfefcafa029e5478a5049bbba7bd869d93a434 100644 (file)
@@ -7,10 +7,9 @@
 #include <stdint.h>
 #include <stdio.h>
 #include <string.h>
-#include "threads/init.h"
 #include "threads/loader.h"
-#include "threads/mmu.h"
 #include "threads/synch.h"
+#include "threads/vaddr.h"
 
 /* Page allocator.  Hands out memory in page-size (or
    page-multiple) chunks.  See malloc.h for an allocator that
@@ -48,12 +47,8 @@ static bool page_from_pool (const struct pool *, void *page);
 void
 palloc_init (void) 
 {
-  /* End of the kernel as recorded by the linker.
-     See kernel.lds.S. */
-  extern char _end;
-
-  /* Free memory. */
-  uint8_t *free_start = pg_round_up (&_end);
+  /* Free memory starts at 1 MB and runs to the end of RAM. */
+  uint8_t *free_start = ptov (1024 * 1024);
   uint8_t *free_end = ptov (ram_pages * PGSIZE);
   size_t free_pages = (free_end - free_start) / PGSIZE;
   size_t user_pages = free_pages / 2;