diff options
Diffstat (limited to 'kernel/memory/memory.c')
-rw-r--r-- | kernel/memory/memory.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/kernel/memory/memory.c b/kernel/memory/memory.c index de94fe3..1d10414 100644 --- a/kernel/memory/memory.c +++ b/kernel/memory/memory.c @@ -10,7 +10,7 @@ #include "physalloc.h" mem_ctx_t kernel_mem_ctx; -struct mem_ctx_s _kernel_mem_ctx; +static struct mem_ctx_s _kernel_mem_ctx; extern volatile char kernel_pml4[]; extern struct virt_ctx kernel_virt_ctx; @@ -64,6 +64,11 @@ void mem_ctx_free(mem_ctx_t ctx) panic("not yet implemented"); } +void mem_ctx_switch(mem_ctx_t ctx) +{ + __asm__ volatile("mov %0, %%cr3" ::"r"(ctx->pml4) : "memory"); +} + void memory_init(void) { struct memory_map mmap; |