Usermode/libc - Fixed some warnings in strtoi tests
[tpg/acess2.git] / Usermode / Libraries / libc.so_src / stub.c
index 20e796e..a1c67ff 100644 (file)
@@ -4,6 +4,7 @@
 #include "stdio_int.h"\r
 #include "lib.h"\r
 #include <stdio.h>\r
+#include <stdlib.h>\r
 #include <acess/sys.h>\r
 \r
 #define USE_CPUID      0\r
@@ -22,14 +23,12 @@ static void cpuid(uint32_t Num, uint32_t *EAX, uint32_t *EBX, uint32_t *EDX, uin
 \r
 // === IMPORTS ===\r
 extern tLoadedLib      gLoadedLibraries[64];\r
-extern int     _SysSetFaultHandler(int (*Handler)(int));\r
+extern void    *_crt0_exit_handler;\r
+extern void    _stdio_init(void);\r
+extern void    _call_atexit_handlers(void);\r
 \r
 // === GLOBALS ===\r
-extern char **_envp;\r
-extern struct sFILE    _iob[];\r
-extern struct sFILE    *stdin;\r
-extern struct sFILE    *stdout;\r
-extern struct sFILE    *stderr;\r
+extern char **environ;\r
 // --- CPU Features ---\r
 #if USE_CPUID\r
 tCPUID gCPU_Features;\r
@@ -47,7 +46,7 @@ tCPUID        gCPU_Features;
 int SoMain(UNUSED(uintptr_t, BaseAddress), UNUSED(int, argc), UNUSED(char **, argv), char **envp)\r
 {\r
        // Init for env.c\r
-       _envp = envp;\r
+       environ = envp;\r
 \r
        #if 0   \r
        {\r
@@ -60,14 +59,8 @@ int SoMain(UNUSED(uintptr_t, BaseAddress), UNUSED(int, argc), UNUSED(char **, ar
                }\r
        }\r
        #endif\r
-       \r
-       // Init FileIO Pointers\r
-       stdin = &_iob[0];\r
-       stdin->FD = 0;  stdin->Flags = FILE_FLAG_MODE_READ;\r
-       stdout = &_iob[1];\r
-       stdout->FD = 1; stdout->Flags = FILE_FLAG_MODE_WRITE;\r
-       stderr = &_iob[2];\r
-       stderr->FD = 2; stderr->Flags = FILE_FLAG_MODE_WRITE;\r
+\r
+       _stdio_init();  \r
        \r
        #if USE_CPUID\r
        {\r
@@ -78,6 +71,8 @@ int SoMain(UNUSED(uintptr_t, BaseAddress), UNUSED(int, argc), UNUSED(char **, ar
        }\r
        #endif\r
        \r
+       _crt0_exit_handler = _call_atexit_handlers;\r
+\r
        // Set Error handler\r
        _SysSetFaultHandler(ErrorHandler);\r
        \r
@@ -87,6 +82,10 @@ int SoMain(UNUSED(uintptr_t, BaseAddress), UNUSED(int, argc), UNUSED(char **, ar
 int ErrorHandler(int Fault)\r
 {\r
         int    i;\r
+\r
+       extern void ldacess_DumpLoadedLibraries(void);  \r
+       ldacess_DumpLoadedLibraries();\r
+\r
        fprintf(stderr, "ErrorHandler: (Fault = %i)\n", Fault);\r
        fprintf(stderr, "Loaded Libraries:\n");\r
        for( i = 0; i < 64; i ++ )\r

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