Merge branch 'master' of git://localhost/acess2
[tpg/acess2.git] / Usermode / Libraries / ld-acess.so_src / main.c
index ccdf6b4..985f9c8 100644 (file)
@@ -3,17 +3,18 @@
  By thePowersGang\r
 */\r
 #include <stdint.h>\r
+#include <stddef.h>\r
 #include "common.h"\r
 \r
 // === PROTOTYPES ===\r
 void   *DoRelocate(void *base, char **envp, const char *Filename);\r
  int   CallUser(void *Entry, void *SP);\r
-void   *ElfRelocate(void *Base, char **envp, const char *Filename);\r
-void   *PE_Relocate(void *Base, char **envp, const char *Filename);\r
 \r
 // === Imports ===\r
-extern void    gLinkedBase;\r
+extern char    gLinkedBase[];\r
 extern tLoadedLib      gLoadedLibraries[];\r
+char   **gEnvP;\r
+extern int     memcmp(const void *m1, const void *m2, size_t size);\r
  \r
 // === CODE ===\r
 /**\r
@@ -21,10 +22,12 @@ extern tLoadedLib   gLoadedLibraries[];
  \brief Library entry point\r
  \note This is the entrypoint for the library\r
 */\r
-void *SoMain(void *base)\r
+void *SoMain(void *base, int argc, char **argv, char **envp)\r
 {\r
        void    *ret;\r
         \r
+       gEnvP = envp;\r
+\r
        // - Assume that the file pointer will be less than 4096\r
        if((intptr_t)base < 0x1000) {\r
                SysDebug("ld-acess - SoMain: Passed file pointer %i\n", base);\r
@@ -61,7 +64,7 @@ void *SoMain(void *base)
 */\r
 void *DoRelocate(void *base, char **envp, const char *Filename)\r
 {\r
-       Uint8   *hdr = base;\r
+       uint8_t *hdr = base;\r
        // Load Executable\r
        if(memcmp(base, "\x7F""ELF", 4) == 0)\r
                return ElfRelocate(base, envp, Filename);\r
@@ -98,3 +101,8 @@ int CallUser(void *entry, void *sp)
        #endif\r
        for(;;);\r
 }\r
+\r
+void abort(void)\r
+{\r
+       _exit(-4);\r
+}\r

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