Round buddy map size up to nearest power of 2

This commit is contained in:
2023-08-30 20:35:33 -05:00
parent 62612f8348
commit 9f41a1bd7f

View File

@@ -49,7 +49,7 @@ static void insert_block(buddy_descriptor_t *heap, unsigned long index,
unsigned long buddy_map_size(const memory_map_t *map, unsigned long block_size) unsigned long buddy_map_size(const memory_map_t *map, unsigned long block_size)
{ {
unsigned long memory_size = compute_memory_size(map); unsigned long memory_size = compute_memory_size(map);
return sizeof(buddy_block_t) * memory_size / block_size; return 1UL << llog2(sizeof(buddy_block_t) * memory_size / block_size);
} }
unsigned long buddy_reserve(buddy_descriptor_t *heap, unsigned long size) unsigned long buddy_reserve(buddy_descriptor_t *heap, unsigned long size)