diff options
Diffstat (limited to 'arch/x86_64/memory/message.c')
-rw-r--r-- | arch/x86_64/memory/message.c | 40 |
1 files changed, 0 insertions, 40 deletions
diff --git a/arch/x86_64/memory/message.c b/arch/x86_64/memory/message.c index 1fbdfc8..d5bedb7 100644 --- a/arch/x86_64/memory/message.c +++ b/arch/x86_64/memory/message.c @@ -6,43 +6,3 @@ #include "arch/x86_64/page-mapping.h" #include "print.h" -int -ko_message_unmap(objdir_entry_t *message, uintptr_t *saveptr) -{ - /* message data should point to the virtual address. */ - /* If it doesn't, fail*/ - if(!(message->extra & KODE_EX_MESSAGE_MAPPED)) return KE_BADCALL; - uintptr_t vptr = message->data; - - processor_t *cproc = processor_current(); - pmle_t *pml4 = vmem_phys_tovirt(cproc->pdir); - - pmle_t *message_pmle = mem_mapping_vptr_mapping(pml4, 4, vptr); - *saveptr = (uintptr_t)vmem_phys_tovirt(message_pmle->paddr << 12); - - message_pmle->p = 0; - __asm__ volatile("invlpg (%0)":: "r"(vptr): "memory"); - - message->extra &= ~KODE_EX_MESSAGE_MAPPED; - return 0; -} - -int -ko_message_remap(objdir_entry_t *message) -{ - if(message->extra & KODE_EX_MESSAGE_MAPPED) return KE_BADCALL; - uintptr_t vptr = message->data; - - processor_t *cproc = processor_current(); - pmle_t *pml4 = vmem_phys_tovirt(cproc->pdir); - - pmle_t *message_pmle = mem_mapping_vptr_mapping(pml4, 4, vptr); - - message_pmle->p = 1; - __asm__ volatile("invlpg (%0)":: "r"(vptr): "memory"); - - message->extra |= KODE_EX_MESSAGE_MAPPED; - return 0; -} - -void ko_message_move(objdir_entry_t *message, uintptr_t vptr); |