Move reset_cr3() to inline asm
authorJack Miller <jack@codezen.org>
Fri, 25 Mar 2016 18:42:07 +0000 (13:42 -0500)
committerJack Miller <jack@codezen.org>
Fri, 25 Mar 2016 21:59:18 +0000 (16:59 -0500)
asm/misc.asm
include/asm/regs.h
mm/map.c

index 2fe4546..7b1b051 100644 (file)
@@ -1,12 +1,3 @@
-GLOBAL reset_cr3
-
-/* Reset CR3 to itself to force page update */
-
-reset_cr3:
-    mov rax, cr3
-    mov cr3, rax
-    ret
-
 GLOBAL cpuid
 
 cpuid:
index 738af19..c1d9af1 100644 (file)
@@ -61,3 +61,11 @@ static inline u64 get_cr2(void)
 
     return ret;
 }
+
+/* Reset CR3 to itself to force page update */
+
+static inline void reset_cr3(void)
+{
+    asm volatile("mov %%cr3, %%rax \n"
+                                "mov %%rax, %%cr3" : : : "%rax");
+}
index 03f1e10..9c3daa6 100644 (file)
--- a/mm/map.c
+++ b/mm/map.c
@@ -1,11 +1,8 @@
 /* vim: set ts=4 sw=4 sts=4 noet : */
 
-#include <types.h>
-#include <errno.h>
-#include <memmap.h>
-#include <page_alloc.h>
-#include <console.h>
-#include <asm/misc.h>
+#include <kernel.h>
+
+#include <asm/regs.h>
 
 static void __early_map_check(u64 *entry, u64 *target, u64 *alloc_base)
 {