diff options
Diffstat (limited to 'kernel/page.s')
| -rw-r--r-- | kernel/page.s | 55 |
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 |
