1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
#pragma once #include <types.h> struct mem_info { void* start; size_t size; }; enum PageStatus { MEMPAGE_FREE, MEMPAGE_USED }; struct page { struct page* next; size_t size; enum PageStatus status; }; void* kmalloc(size_t size); void* kzalloc(size_t size); void kfree(void* ptr); void km_init(struct mem_info *info);