summaryrefslogtreecommitdiffstats
path: root/src/threads/start.S
diff options
context:
space:
mode:
Diffstat (limited to 'src/threads/start.S')
-rw-r--r--src/threads/start.S16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/threads/start.S b/src/threads/start.S
new file mode 100644
index 0000000..5a495c4
--- /dev/null
+++ b/src/threads/start.S
@@ -0,0 +1,16 @@
+#### The loader needs to have some way to know the kernel's entry
+#### point, that is, the address to which it should jump to start the
+#### kernel. We handle this by writing the linker script kernel.lds.S
+#### so that this module appears at the very beginning of the kernel
+#### image, and then using that as the entry point.
+
+.section .start
+
+.globl start
+.func start
+ # Call main.
+start: call main
+
+ # main() should not return, but if it does, spin.
+1: jmp 1b
+.endfunc