summaryrefslogtreecommitdiff
path: root/arch/i386
diff options
context:
space:
mode:
Diffstat (limited to 'arch/i386')
-rw-r--r--arch/i386/boot/boot.s27
1 files changed, 27 insertions, 0 deletions
diff --git a/arch/i386/boot/boot.s b/arch/i386/boot/boot.s
index 4a6ddd1..48f9f29 100644
--- a/arch/i386/boot/boot.s
+++ b/arch/i386/boot/boot.s
@@ -76,6 +76,33 @@ _start:
1: hlt
jmp 1b
+.global load_page_dir
+.type load_page_dir, @function
+load_page_dir:
+ pushl %ebp
+ movl %esp, %ebp
+
+ movl 8(%ebp), %eax
+ movl %eax, %cr3
+
+ movl %ebp, %esp
+ popl %ebp
+ ret
+
+.global enable_paging
+.type enable_paging, @function
+enable_paging:
+ pushl %ebp
+ movl %esp, %ebp
+
+ movl %cr0, %eax
+ orl $0x80000001, %eax
+ movl %eax, %cr0
+
+ movl %ebp, %esp
+ popl %ebp
+ ret
+
.global flush_gdt
.type flush_gdt, @function
flush_gdt: