summaryrefslogtreecommitdiff
path: root/kernel/page.s
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/page.s')
-rw-r--r--kernel/page.s55
1 files changed, 0 insertions, 55 deletions
diff --git a/kernel/page.s b/kernel/page.s
deleted file mode 100644
index 4e40822..0000000
--- a/kernel/page.s
+++ /dev/null
@@ -1,55 +0,0 @@
-global paging_init
-
-align 4096
-page_dir:
- times 4096 db 0
-
-align 4096
-page_tables:
- ; two page tables
- times 4096 db 0
- times 4096 db 0
-.end:
-
-; here, we initialize paging. since the IDT
-; has yet to be populated, we must take extra
-; care as we can't afford to trigger a page
-; fault.
-paging_init:
- push ebp
- mov ebp, esp
- push ebx
- ; populate the page directory
- mov eax, page_tables
- or eax, 0x007
- mov [page_dir], eax
- mov eax, (page_tables+4096)
- or eax, 0x007
- mov [page_dir+4], eax
- ; populate the page tables
- mov ebx, page_tables
- mov ecx, ((page_tables.end-page_tables)/4)
- mov edx, 0
-.loop:
- mov eax, edx
- or eax, 0x003
- cmp edx, 0x100000
- jb .skip
- or eax, 0x004
-.skip:
- mov [ebx], eax
- dec ecx
- jz .end
- add ebx, 4
- add edx, 4096
- jmp .loop
-.end:
- ; load the page directory and enable paging
- mov eax, page_dir
- mov cr3, eax
- mov eax, cr0
- or eax, 0x80000000
- mov cr0, eax
- pop ebx
- pop ebp
- ret