Terminate the backtrace that debug_backtrace() would output.
[pintos-anon] / src / threads / start.S
index 351b5e1532a95eb286d1c05c82509034cade63f2..68c604cc276b33a6701dab250d16784de3d45bd0 100644 (file)
@@ -1,9 +1,19 @@
-# This module gets linked first, so that the kernel entry point
-# is the very beginning of its binary image.  All we need to do is
-# jump to the real entry point.
+#### 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.
 
-       .globl start
+.section .start
+       
+.globl start
+.func start
+       # Terminate the backtrace that debug_backtrace() would output.
+       movl $0, %ebp
+
+       # Call main.
 start: call main
 
-       # If main returns, spin.
+       # main() should not return, but if it does, spin.
 1:     jmp 1b
+.endfunc