summaryrefslogtreecommitdiff
path: root/kernel/memory/memory.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/memory/memory.c')
-rw-r--r--kernel/memory/memory.c7
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;