Rewrite palloc code so that it only touches the first 4 MB of RAM.
[pintos-anon] / src / threads / palloc.h
index ca7824e58c7c9282eda82f14b5b6a0cae6507561..44cfb0efb406c35d2046ebb75fe57cae0b1fa31f 100644 (file)
@@ -1,16 +1,23 @@
 #ifndef THREADS_PALLOC_H
 #define THREADS_PALLOC_H
 
-#include <stdint.h>
+#include <stddef.h>
 
+/* How to allocate pages. */
 enum palloc_flags
   {
     PAL_ASSERT = 001,           /* Panic on failure. */
-    PAL_ZERO = 002              /* Zero page contents. */
+    PAL_ZERO = 002,             /* Zero page contents. */
+    PAL_USER = 004              /* User page. */
   };
 
+/* Maximum number of pages to put in user pool. */
+extern size_t max_user_pages;
+
 void palloc_init (void);
-void *palloc_get (enum palloc_flags);
-void palloc_free (void *);
+void *palloc_get_page (enum palloc_flags);
+void *palloc_get_multiple (enum palloc_flags, size_t page_cnt);
+void palloc_free_page (void *);
+void palloc_free_multiple (void *, size_t page_cnt);
 
 #endif /* threads/palloc.h */