#endif
#include <unistd.h>
#include <string.h>
+#include "../../KernelLand/Kernel/include/logdebug.h"
#define VALGRIND_CLIENT 0
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);
+extern int Server_Shutdown(void);
extern const char gsKernelVersion[];
extern const char gsGitHash[];
extern int giBuildNumber;
UI_Initialise(800, 480);
// - Ignore SIGUSR1 (used to wake threads)
+ #ifdef SIGUSR1
signal(SIGUSR1, SIG_IGN);
+ #endif
// Initialise VFS
VFS_Init();
{
int pid;
int argcount = 0;
- char *args[7+rootapp_argc+1+1];
+ const char *args[7+rootapp_argc+1+1];
#if VALGRIND_CLIENT
args[argcount++] = "valgrind";
for( i = 0; i < rootapp_argc; i ++ )
args[argcount+i] = rootapp[i];
args[argcount+rootapp_argc] = NULL;
-
- pid = fork();
+ pid = spawnv(P_NOWAIT, "./ld-acess", args);
if(pid < 0) {
perror("Starting root application [fork(2)]");
return 1;
}
- if(pid == 0)
- {
- #ifdef __LINUX__
- prctl(PR_SET_PDEATHSIG, SIGHUP); // LINUX ONLY!
- #endif
- #if VALGRIND_CLIENT
- execv("valgrind", args);
- #else
- execv("./ld-acess", args);
- #endif
- }
printf("Root application running as PID %i\n", pid);
}
void AcessNative_Exit(void)
{
// TODO: Close client applications too
+ Server_Shutdown();
exit(0);
}