Rename KMALLOC_* -> MEM_* [2/2]
[akaros.git] / kern / src / colored_caches.c
index d765151..354a61e 100644 (file)
@@ -5,34 +5,34 @@
  * Kevin Klues <klueska@cs.berkeley.edu>    
  */
 
-#ifdef __SHARC__
-#pragma nosharc
-#define SINIT(x) x
-#endif
-
 #include <ros/common.h>
 #include <arch/mmu.h>
-#include <arch/bitmask.h>
+#include <bitmask.h>
 #include <colored_caches.h>
 #include <stdio.h>
 #include <atomic.h>
 #include <kmalloc.h>
+#include <page_alloc.h>
 
 #define l1 (available_caches.l1)
 #define l2 (available_caches.l2)
 #define l3 (available_caches.l3)
 
-spinlock_t cache_colors_lock;
+spinlock_t cache_colors_lock = SPINLOCK_INITIALIZER_IRQSAVE;
 
 /************** Cache Related Functions  *****************/
 inline void init_cache_properties(cache_t *c, size_t sz_k, size_t wa, size_t clsz) {
-       c->wa = SINIT(wa);
-       c->sz_k = SINIT(sz_k);
-       c->clsz = SINIT(clsz);
+       c->wa = wa;
+       c->sz_k = sz_k;
+       c->clsz = clsz;
 
+#ifdef CONFIG_PAGE_COLORING
        //Added as optimization (derived from above);
        size_t nc = get_cache_num_page_colors(c);
-       c->num_colors = SINIT(nc);
+       c->num_colors = nc;
+#else
+       c->num_colors = 1;
+#endif
 }
 
 inline void init_free_cache_colors_map(cache_t* c) 
@@ -42,14 +42,11 @@ inline void init_free_cache_colors_map(cache_t* c)
        FILL_BITMASK(c->free_colors_map, c->num_colors);
 }
 
-inline size_t get_page_color(uintptr_t page, cache_t *c) {
-    return (page % c->num_colors);
-}
 inline size_t get_offset_in_cache_line(uintptr_t addr, cache_t *c) {
     return (addr % get_cache_bytes_per_line(c));
 }
 
-void print_cache_properties(char *NT lstring, cache_t *c)
+void print_cache_properties(char *lstring, cache_t *c)
 {
        printk("%s_WAYS_ASSOCIATIVE: %ld\n", lstring, get_cache_ways_associative(c));
        printk("%s_LINE_SIZE_BYTES: %ld\n", lstring, get_cache_line_size_bytes(c));
@@ -240,14 +237,20 @@ static inline void __cache_color_free(cache_t* c, uint8_t* colors_map)
 }
 
 uint8_t* cache_colors_map_alloc() {
+#ifdef CONFIG_PAGE_COLORING
        uint8_t* colors_map = kmalloc(llc_cache->num_colors, 0);
        if(colors_map)
                CLR_BITMASK(colors_map, llc_cache->num_colors);
        return colors_map;
+#else
+       return global_cache_colors_map;
+#endif
 }
 
 void cache_colors_map_free(uint8_t* colors_map) {
+#ifdef CONFIG_PAGE_COLORING
        kfree(colors_map);
+#endif
 }
 
 error_t cache_color_alloc(cache_t* c, uint8_t* colors_map)