26 lines
435 B
C
26 lines
435 B
C
#ifndef KMM_H
|
|
#define KMM_H
|
|
|
|
#include <stdint.h>
|
|
|
|
#define PAGE_PRESENT 0x1
|
|
#define PAGE_WRITABLE 0x2
|
|
#define PAGE_USER 0x4
|
|
|
|
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_user_pd();
|
|
|
|
void map_page(uint32_t vaddr, uint32_t paddr, uint32_t flags);
|
|
|
|
#endif
|