+#include "synch.h"
+#include "lib/debug.h"
+#include "lib/lib.h"
+#include "lib/list.h"
+
+/* Page allocator. Hands out memory in page-size chunks.
+ See malloc.h for an allocator that hands out smaller
+ chunks.
+
+ We simply use a linked list of free pages. It would be
+ straightforward to add all available memory to this free list
+ at initialization time. In practice, though, that's really
+ slow because it causes the emulator we're running under to
+ have to fault in every page of memory. So instead we only add
+ pages to the free list as needed. */