aboutsummaryrefslogtreecommitdiff
path: root/src/boot.s
diff options
context:
space:
mode:
Diffstat (limited to 'src/boot.s')
-rw-r--r--src/boot.s17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/boot.s b/src/boot.s
new file mode 100644
index 0000000..2530d18
--- /dev/null
+++ b/src/boot.s
@@ -0,0 +1,17 @@
+.global _start
+.type _start, @function
+
+.code32
+// Entry point. It puts the machine into a consistent state,
+// starts the kernel and then waits forever.
+_start:
+ mov _sstack, %esp // Setup the stack.
+
+ push %ebx // Pass multiboot info structure.
+ push %eax // Pass multiboot magic code.
+ call kmain // Call the kernel.
+
+ // Halt the CPU.
+ cli
+ hlt
+