Externals - pkgconfig (compiles?)
[tpg/acess2.git] / AcessNative / ld-acess_src / main.c
index cbe0ac1..8f24db8 100644 (file)
@@ -7,12 +7,18 @@
 #include <string.h>
 
 // === IMPORTS ===
+extern int     gSocket;
 extern int     giSyscall_ClientID;
+extern int     gbSyscallDebugEnabled;
 extern void    acess__exit(int Status);
+extern void    Request_Preinit(void);
 
 // === PROTOTYPES ===
 void   CallUser(void *Entry, int argc, char *argv[], char **envp) __attribute__((noreturn));
 
+// === GLOBALS ===
+char   **gEnvP;
+
 // === CODE ===
 int main(int argc, char *argv[], char **envp)
 {
@@ -20,10 +26,14 @@ int main(int argc, char *argv[], char **envp)
         int    appArgc;
        char    **appArgv;
        char    *appPath = NULL;
-        int    (*appMain)(int, char *[], char **) __attribute__((cdecl));
+        int    (*appMain)(int, char *[], char **);
        void    *base;
         int    rv;
+
+       gEnvP = envp;
        
+       Request_Preinit();
+
 //      int    syscall_handle = -1;
        
        for( i = 1; i < argc; i ++ )
@@ -32,6 +42,11 @@ int main(int argc, char *argv[], char **envp)
                        giSyscall_ClientID = atoi(argv[++i]);
                        continue ;
                }
+
+               if(strcmp(argv[i], "--socket") == 0) {
+                       gSocket = atoi(argv[++i]);
+                       continue ;
+               }
                
                if(strcmp(argv[i], "--binary") == 0) {
                        appPath = argv[++i];
@@ -39,12 +54,16 @@ int main(int argc, char *argv[], char **envp)
                }
                
                if(strcmp(argv[i], "--open") == 0) {
-                       if( acess_open(argv[++i], 6) == -1 ) {  // Read/Write
+                       if( acess__SysOpen(argv[++i], 6) == -1 ) {      // Read/Write
                                fprintf(stderr, "Unable to open '%s'\n", argv[i]);
                                exit(1);
                        }
                        continue ;
                }
+               if( strcmp(argv[i], "--trace") == 0 ) {
+                       gbSyscallDebugEnabled = 1;
+                       continue ;
+               }
                
                if( argv[i][0] != '-' ) break;
        }
@@ -71,10 +90,13 @@ int main(int argc, char *argv[], char **envp)
 
        base = Binary_Load(appPath, (uintptr_t*)&appMain);
        printf("[DEBUG %i] base = %p\n", giSyscall_ClientID, base);
-       if( !base )     return 127;
+       if( !base )     {
+               *((char*)NULL) = 0;
+               return 127;
+       }
        
        printf("==============================\n");
-       printf("[DEBUG %i] %i %p ", giSyscall_ClientID, appArgc, appArgv);
+       printf("[DEBUG %i] %i ", giSyscall_ClientID, appArgc);
        for(i = 0; i < appArgc; i ++)
                printf("\"%s\" ", appArgv[i]);
        printf("\n");
@@ -123,7 +145,8 @@ void Notice(const char *Format, ...)
 void Debug(const char *Format, ...)
 {
        va_list args;
-       printf("[DEBUG  %i] ", giSyscall_ClientID);
+       printf("[DEBUG ");
+       printf("%2i] ", giSyscall_ClientID);
        va_start(args, Format);
        vprintf(Format, args);
        va_end(args);

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