#ifndef KMM_H #define KMM_H #include #define PAGE_PRESENT 0x1 #define PAGE_WRITABLE 0x2 #define PAGE_USER 0x4 #define PAGE_SIZE 4096 typedef struct __attribute__((packed)) { uint32_t addr; } mem_page_t; void init_pmm(void* mmap_base, uint32_t mmap_limit); void init_page_tables(); void* p_alloc_frame(); uint32_t total_free_memory(); void* create_task_pd(); void map_page(uint32_t vaddr, uint32_t paddr, uint32_t flags); #endif