Reinitialize paging in C
diff --git a/src/kernel/switch_table.s b/src/kernel/switch_table.s
index d04629b..c8e6260 100644
--- a/src/kernel/switch_table.s
+++ b/src/kernel/switch_table.s
@@ -1,25 +1,15 @@
[section .text]
[bits 32]
-;;; TODO: remove useless frame pointer stuff
-
[global load_page_directory]
load_page_directory:
- push ebp ; Save frame pointer
- mov ebp, esp
- mov eax, [esp + 8] ; Pointer to directory
- mov cr3, eax
- mov esp, ebp
- pop ebp
+ mov ecx, [esp + 4] ; Pointer to directory
+ mov cr3, ecx
ret
[global enable_paging]
enable_paging:
- push ebp
- mov ebp, esp
- mov eax, cr0
+ mov ecx, cr0
or eax, 0x80000000
- mov cr0, eax
- mov esp, ebp
- pop ebp
+ mov cr0, ecx
ret