Initial commit
This commit is contained in:
commit
ef80f65fbf
136 changed files with 13728 additions and 0 deletions
25
include/mm/vmm.h
Normal file
25
include/mm/vmm.h
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
|
||||
#include <stdint.h>
|
||||
|
||||
#define PTE_BIT_PRESENT 0x1 // Present bit
|
||||
#define PTE_BIT_RW 0x2 // Read/write bit
|
||||
#define PTE_BIT_US 0x4 // User and Supervisor bit
|
||||
#define PTE_BIT_NX 0x4000000000000000 // Non-executable bit
|
||||
#define PTE_BIT_UNCACHABLE (1 << 4)
|
||||
|
||||
#define PAGE_SIZE 4096
|
||||
|
||||
void tlb_flush(void);
|
||||
void vmm_map_page(uint64_t *page_map, uint64_t virt_address, uint64_t phys_address, uint64_t flags);
|
||||
int vmm_map_contigious_pages(uint64_t *page_map, uint64_t virt_addr, uint64_t phys_addr, uint64_t size, uint64_t flags);
|
||||
void vmm_free_page(uint64_t *page_map, uint64_t virt_addr);
|
||||
void vmm_init();
|
||||
void vmm_set_ctx(uint64_t *page_map);
|
||||
uint64_t vmm_get_phys_addr(uint64_t *page_map, uint64_t virt_addr);
|
||||
uint64_t kget_phys_addr(uint64_t *virt_addr);
|
||||
void *va_alloc_contigious_pages(uint64_t size);
|
||||
void kmap_pages(void *phys_addr, uint64_t size, uint64_t flags);
|
||||
void kunmap_pages(void *addr, uint64_t size);
|
||||
|
||||
typedef char link_symbol_ptr[];
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue