X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=AcessNative%2Facesskernel_src%2Fmain.c;h=61ed0fd878a524b108f6b1c7a2a6b7de618fce4b;hb=2207af75e8ed7a19de57ec756ef849f41b67530f;hp=e5d8baba83a2c9e947c991deb2ca61b1a43dbe36;hpb=33de4e7776814ede6263b6563f5b8ff3ff20e33e;p=tpg%2Facess2.git diff --git a/AcessNative/acesskernel_src/main.c b/AcessNative/acesskernel_src/main.c index e5d8baba..61ed0fd8 100644 --- a/AcessNative/acesskernel_src/main.c +++ b/AcessNative/acesskernel_src/main.c @@ -21,11 +21,15 @@ extern int UI_Initialise(int Width, int Height); extern void UI_MainLoop(void); extern int VFS_Init(void); +extern int PTY_Install(char **Arguments); extern int Video_Install(char **Arguments); extern int NativeKeyboard_Install(char **Arguments); extern int NativeFS_Install(char **Arguments); extern void Debug_SetKTerminal(char *Path); extern int VT_Install(char **Arguments); +extern int Mouse_Install(char **Arguments); +extern int IPCPipe_Install(char **Arguments); +extern int Net_Install(char **Arguments); extern int VFS_Mount(const char *Device, const char *MountPoint, const char *Filesystem, const char *Options); extern int VFS_MkDir(const char *Path); extern int SyscallServer(void); @@ -38,6 +42,19 @@ extern int giBuildNumber; const char *gsAcessDir = "../Usermode/Output/x86_64"; // === CODE === +#ifndef __WIN32__ +#define P_NOWAIT 0 +int spawnv(int flags, const char *execuable, char * const argv[]) +{ + int pid = fork(); + if( pid != 0 ) return pid; + + execv(execuable, argv); + perror("spawnv - execve"); + for(;;); +} +#endif + int main(int argc, char *argv[]) { char **rootapp = NULL; @@ -81,6 +98,10 @@ int main(int argc, char *argv[]) Log_Error("Init", "Unable to load NativeKeyboard"); } NativeFS_Install(NULL); + Mouse_Install(NULL); + IPCPipe_Install(NULL); + PTY_Install(NULL); + Net_Install(NULL); // - Start VTerm { char *args[] = { @@ -94,7 +115,7 @@ int main(int argc, char *argv[]) VFS_MkDir("/Acess"); VFS_Mount(gsAcessDir, "/Acess", "nativefs", ""); - Debug_SetKTerminal("/Devices/VTerm/8"); + Debug_SetKTerminal("/Devices/pts/vt7c"); // Start syscall server SyscallServer(); @@ -110,13 +131,13 @@ int main(int argc, char *argv[]) args[argcount++] = "valgrind"; #endif args[argcount++] = "./ld-acess"; - args[argcount++] = "--open"; args[argcount++] = "/Devices/VTerm/0"; - args[argcount++] = "--open"; args[argcount++] = "/Devices/VTerm/0"; - args[argcount++] = "--open"; args[argcount++] = "/Devices/VTerm/0"; + args[argcount++] = "--open"; args[argcount++] = "/Devices/pts/vt0"; + args[argcount++] = "--open"; args[argcount++] = "/Devices/pts/vt0"; + args[argcount++] = "--open"; args[argcount++] = "/Devices/pts/vt0"; for( i = 0; i < rootapp_argc; i ++ ) args[argcount+i] = rootapp[i]; args[argcount+rootapp_argc] = NULL; - pid = spawnv(P_NOWAIT, "./ld-acess", args); + pid = spawnv(P_NOWAIT, "./ld-acess", (char *const*)args); if(pid < 0) { perror("Starting root application [fork(2)]"); return 1; @@ -147,3 +168,8 @@ int Module_EnsureLoaded(const char *Name) return 0; } +void Proc_PrintBacktrace(void) +{ + +} +