f506d72bb195ff4fdc5fc14c9e7deb15ede0adb2
[tpg/acess2.git] / Usermode / Libraries / crt0.o_src / crt0.c
1 /*
2  * Acess2
3  * - C Runtime 0 Common Code
4  */
5
6 typedef void    (*exithandler_t)(void);
7 typedef void    (*constructor_t)(void);
8
9 exithandler_t   _crt0_exit_handler;
10 extern constructor_t    _crtbegin_ctors[];
11 extern void     _exit(int status) __attribute__((noreturn));
12 extern int      main(int argc, char *argv[], char **envp);
13
14 void start(int argc, char *argv[], char **envp)
15 {
16          int    i;
17          int    rv;
18         
19         for( i = 0; _crtbegin_ctors[i]; i ++ )
20                 _crtbegin_ctors[i]();
21
22         rv = main(argc, argv, envp);
23         
24         if( _crt0_exit_handler )
25                 _crt0_exit_handler();
26
27         _exit(rv);
28 }

UCC git Repository :: git.ucc.asn.au