#pragma once #include #define PRESENT (1 << 0) #define RW (1 << 1) #define SUPERVISOR (0 << 2) #define ACCESSED (1 << 4) #define INIT_FLAGS (PRESENT | RW | SUPERVISOR) #define PAGE_SIZE 4096 #define PAGE_MASK 0xFFFFF000 #define HEAP_END 0xC0000000 void init_memory(void); void *alloc_frames(size_t size); int free_frames(void *frame_ptr, size_t size); void *alloc_pages(size_t size); int free_pages(void *page_ptr, size_t size);