#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)
{
int (*appMain)(int, char *[], char **);
void *base;
int rv;
+
+ gEnvP = envp;
+ Request_Preinit();
+
// int syscall_handle = -1;
for( i = 1; i < argc; i ++ )
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];
}
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;
}
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");
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);