+ // Spawn root application
+ if( rootapp )
+ {
+ int pid;
+ int argcount = 0;
+ char *args[7+rootapp_argc+1+1];
+
+ #if VALGRIND_CLIENT
+ 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";
+ for( i = 0; i < rootapp_argc; i ++ )
+ args[argcount+i] = rootapp[i];
+ args[argcount+rootapp_argc] = NULL;
+
+ pid = fork();
+ 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);
+ }
+
+ UI_MainLoop();
+