#include "arch/x86_64/page-mapping.h" #include "arch/x86_64/page.h" #include "memory.h" #include "error.h" #include #include "print.h" void mapping_setup_init() { pml4_setup_init(); } void mapping_setup(objdir_entry_t *mapping) { pmle_t *pml4 = (pmle_t*)ko_entry_data(mapping); pml4_setup(pml4); } int mapping_try_map_obj(objdir_entry_t *mapping, uintptr_t vptr, objdir_entry_t *obj) { if(vptr & 0xFFFF800000000000) return KE_OOB; pmle_t *pml4 = (pmle_t*)ko_entry_data(mapping); uintptr_t pptr = (uintptr_t)ko_entry_data(obj); return pml4_try_map(pml4, pptr, vptr); }