Files
RockOS/kernel/memory/mm.h

33 lines
526 B
C

#ifndef KMM_H
#define KMM_H
#include <stdint.h>
#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);
void load_pd(void* paddr);
void flush_tlb();
void disable_pae();
#endif