#include <stdio.h>
#define DECLARE_CACHE_COLORED_PAGE_LINK(_cache) \
- page_list_entry_t _cache##_cache_colored_page_link;
+ page_list_entry_t _cache##_cache_colored_pg_link;
#define DECLARE_CACHE_COLORED_PAGE_FREE_LIST(_cache) \
uint8_t _cache##_num_colors = 0; \
{ \
if(available_caches._cache == TRUE) { \
_cache##_num_colors = get_cache_num_page_colors(&(_cache)); \
- size_t list_size = _cache##_num_colors*sizeof(page_list_t); \
+ assert(((_cache##_num_colors) & ((_cache##_num_colors)-1)) == 0); \
+ size_t list_size = _cache##_num_colors*sizeof(page_list_t); \
_cache##_cache_colored_page_list \
= (page_list_t*) boot_alloc(list_size, PGSIZE); \
for(int i=0; i<_cache##_num_colors; i++) { \
#define REMOVE_CACHE_COLORING_PAGE_FROM_FREE_LIST(_page, _cache) \
if(available_caches._cache == TRUE) \
- LIST_REMOVE(*(_page), _cache##_cache_colored_page_link);
+ LIST_REMOVE(*(_page), _cache##_cache_colored_pg_link);
#define INSERT_CACHE_COLORING_PAGE_ONTO_FREE_LIST(_page, _cache) \
&(_cache##_cache_colored_page_list \
[get_page_color(page2ppn((_page)), &(_cache))]), \
(_page), \
- _cache##_cache_colored_page_link \
+ _cache##_cache_colored_pg_link \
); \
}