X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fthreads%2Fstart.S;h=68c604cc276b33a6701dab250d16784de3d45bd0;hb=41f912229e43e5436dd9040809afe33d228b0a95;hp=351b5e1532a95eb286d1c05c82509034cade63f2;hpb=750d21936d284127e265d050ccbce76fca1ece1a;p=pintos-anon diff --git a/src/threads/start.S b/src/threads/start.S index 351b5e1..68c604c 100644 --- a/src/threads/start.S +++ b/src/threads/start.S @@ -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