aboutsummaryrefslogtreecommitdiff
path: root/i686/init.s
diff options
context:
space:
mode:
authoraqua <aqua@iserlohn-fortress.net>2022-10-29 15:27:06 +0300
committeraqua <aqua@iserlohn-fortress.net>2022-10-29 17:09:05 +0300
commit28fe545925732a5cadd1f5b55fe9324778da25e5 (patch)
tree025dca4c74b3b7721d1573e2d292ad6c9ae8b67a /i686/init.s
parentmakefile: add src/kernel.a target (diff)
downloadkernel-28fe545925732a5cadd1f5b55fe9324778da25e5.tar.xz
Remove meson.build files
Diffstat (limited to 'i686/init.s')
-rw-r--r--i686/init.s9
1 files changed, 9 insertions, 0 deletions
diff --git a/i686/init.s b/i686/init.s
index 92710df..c0c25c0 100644
--- a/i686/init.s
+++ b/i686/init.s
@@ -15,6 +15,9 @@ k_ptable0x300: .skip 1024 * 4
.section .text
.global k_init
.extern kmain
+.extern pic_init
+.extern gdt_install
+.extern idt_install
k_init:
# kernel entry point, higher half
@@ -33,6 +36,12 @@ k_init:
mov $k_stack, %esp # point stack pointer to the stack
+ # hardware init
+ call pic_init # Programmable Interrupt Controller
+ call gdt_install # Global Descriptor Table
+ call idt_install # Interrupt Descriptor Table
+
+ # jump into kernel
call kmain
/* If the system has nothing more to do, put it in an infinite loop */