Fixed Segfault if execve fails, fixed errors in LibC pertaining to stdin,... not...
[tpg/acess2.git] / Usermode / Libraries / libc.so_src / stub.c
1 /*\r
2  * AcessOS Basic C Library\r
3  */\r
4 #include "stdio_int.h"\r
5 \r
6 extern char **_envp;\r
7 extern struct sFILE     _iob[];\r
8 extern struct sFILE     *stdin;\r
9 extern struct sFILE     *stdout;\r
10 extern struct sFILE     *stderr;\r
11 \r
12 /**\r
13  * \fn int SoMain()\r
14  * \brief Stub Entrypoint\r
15  * \param BaseAddress   Unused - Load Address of libc\r
16  * \param argc  Unused - Argument Count (0 for current version of ld-acess)\r
17  * \param argv  Unused - Arguments (NULL for current version of ld-acess)\r
18  * \param envp  Environment Pointer\r
19  */\r
20 int SoMain(unsigned int BaseAddress, int argc, char **argv, char **envp)\r
21 {\r
22         // Init for env.c\r
23         _envp = envp;\r
24         \r
25         // Init FileIO Pointers\r
26         stdin = &_iob[0];\r
27         stdin->FD = 0;  stdin->Flags = FILE_FLAG_MODE_READ;\r
28         stdout = &_iob[1];\r
29         stdout->FD = 1; stdout->Flags = FILE_FLAG_MODE_WRITE;\r
30         stderr = &_iob[2];\r
31         stderr->FD = 2; stderr->Flags = FILE_FLAG_MODE_WRITE;\r
32         \r
33         return 1;\r
34 }\r

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