Merge remote branch 'origin/sparc-dev'
[akaros.git] / kern / include / page_alloc.h
index 5094058..46e797b 100644 (file)
@@ -13,6 +13,7 @@
 #include <ros/error.h>
 #include <arch/mmu.h>
 #include <colored_page_alloc.h>
+#include <process.h>
 
 /****************** Page Structures *********************/
 struct Page;
@@ -31,25 +32,30 @@ struct Page {
 
 
 /******** Externally visible global variables ************/
-extern uint16_t RO llc_num_colors;
+extern uint8_t* global_cache_colors_map;
 extern spinlock_t colored_page_free_list_lock;
 extern page_list_t LCKD(&colored_page_free_list_lock) * RO CT(llc_num_colors)
     colored_page_free_list;
 
 /*************** Functional Interface *******************/
 void page_alloc_init(void);
-error_t page_alloc(page_t *SAFE *page);
+void colored_page_alloc_init(void);
+
+error_t upage_alloc(struct proc* p, page_t *SAFE *page);
+error_t kpage_alloc(page_t *SAFE *page);
+error_t upage_alloc_specific(struct proc* p, page_t *SAFE *page, size_t ppn);
+error_t kpage_alloc_specific(page_t *SAFE *page, size_t ppn);
+error_t colored_upage_alloc(uint8_t* map, page_t *SAFE *page, size_t color);
+error_t page_free(page_t *SAFE page);
+
 void *CT(1 << order) get_cont_pages(size_t order, int flags);
 void free_cont_pages(void *buf, size_t order);
-error_t page_alloc_specific(page_t *SAFE *page, size_t ppn);
-error_t l1_page_alloc(page_t *SAFE *page, size_t color);
-error_t l2_page_alloc(page_t *SAFE *page, size_t color);
-error_t l3_page_alloc(page_t *SAFE *page, size_t color);
-error_t page_free(page_t *SAFE page);
+
 void page_incref(page_t *SAFE page);
 void page_decref(page_t *SAFE page);
 size_t page_getref(page_t *SAFE page);
 void page_setref(page_t *SAFE page, size_t val);
+
 int page_is_free(size_t ppn);
 
 #endif //PAGE_ALLOC_H