Skip to content

Buddy allocator

struct free_area {
struct buddy_page *next;
uint64_t nr_free;
};
void buddy_add_to_free_area(struct buddy_page *page, struct free_area *area);

buddy_add_to_free_area referenced types:

struct buddy_page * buddy_remove_from_free_area(struct free_area *area);

buddy_remove_from_free_area referenced types:

paddr_t buddy_alloc_pages_global(size_t count, enum alloc_flags flags);

buddy_alloc_pages_global referenced types:

void buddy_free_pages_global(paddr_t addr, uint64_t count);

buddy_free_pages_global referenced types:

void buddy_add_entry(struct page *page_array, struct limine_memmap_entry *entry, struct free_area *farea);

buddy_add_entry referenced types:

void buddy_reserve_range(uint64_t pfn, uint64_t pages);
paddr_t buddy_alloc_pages(struct free_area *free_area, size_t count);

buddy_alloc_pages referenced types:

void buddy_free_pages(paddr_t addr, size_t count, struct free_area *free_area, size_t total_pages);

buddy_free_pages referenced types:

void buddy_init(void);
#define MAX_ORDER 23