X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fthreads%2Fstart.S;h=5a495c4651fecd6bf3d920130123f47f55f6588e;hb=d51aeb9e448d8a05d4263a7459c857ff2fb9d3b2;hp=351b5e1532a95eb286d1c05c82509034cade63f2;hpb=750d21936d284127e265d050ccbce76fca1ece1a;p=pintos-anon diff --git a/src/threads/start.S b/src/threads/start.S index 351b5e1..5a495c4 100644 --- a/src/threads/start.S +++ b/src/threads/start.S @@ -1,9 +1,16 @@ -# 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 + # Call main. start: call main - # If main returns, spin. + # main() should not return, but if it does, spin. 1: jmp 1b +.endfunc