We don't refer to _bss and _ebss any more.
[people/xl0/gpxe.git] / src / arch / i386 / core / hooks.c
1 #include "registers.h"
2 #include "main.h"
3 #include "hooks.h"
4
5 /*
6  * This file provides the basic entry points from assembly code.  See
7  * README.i386 for a description of the entry code path.
8  *
9  */
10
11 /*
12  * arch_main() : call main() and then exit via whatever exit mechanism
13  * the prefix requested.
14  *
15  */
16 void arch_main ( struct i386_all_regs *regs ) {
17         void (*exit_path) ( struct i386_all_regs *regs );
18
19         /* Determine exit path requested by prefix */
20         exit_path = ( typeof ( exit_path ) ) regs->eax;
21
22         /* Call to main() */
23         regs->eax = main();
24
25         if ( exit_path ) {
26                 /* Prefix requested that we use a particular function
27                  * as the exit path, so we call this function, which
28                  * must not return.
29                  */
30                 exit_path ( regs );
31         }
32 }