#include #include #include "bitmap/bitmap.h" #include "spinlock/spinlock.h" #include "bootinfo/bootinfo.h" #include "vmm.h" #include "kprintf.h" #include "util/util.h" #include "hal/hal.h" #include "pmm/pmm.h" VirtMem VIRT_MEM; void vmm_map_kern_page(uint64_t virtaddr, uint64_t physaddr, uint32_t flags) { #if defined(__x86_64__) hal_vmm_map_page(KERNEL_CR3, virtaddr, physaddr, flags); #else # error "arch" #endif } void vmm_unmap_kern_page(uint64_t virtaddr, uint64_t physaddr) { #if defined(__x86_64__) hal_vmm_unmap_page(KERNEL_CR3, virtaddr, physaddr); #else # error "arch" #endif } void vmm_init(void) { spinlock_init(&VIRT_MEM.spinlock); hal_vmm_init(); LOG("vmm", "init\n"); }