git.ucc.asn.au
/
tpg
/
acess2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Tools/NetTest - Add TCP retransmit test
[tpg/acess2.git]
/
AcessNative
/
acesskernel_src
/
main.c
diff --git
a/AcessNative/acesskernel_src/main.c
b/AcessNative/acesskernel_src/main.c
index
8f03f9a
..
4f5de23
100644
(file)
--- a/
AcessNative/acesskernel_src/main.c
+++ b/
AcessNative/acesskernel_src/main.c
@@
-13,6
+13,8
@@
#endif
#include <unistd.h>
#include <string.h>
#endif
#include <unistd.h>
#include <string.h>
+#include <stdbool.h>
+#include "../../KernelLand/Kernel/include/logdebug.h"
#define VALGRIND_CLIENT 0
#define VALGRIND_CLIENT 0
@@
-20,22
+22,40
@@
extern int UI_Initialise(int Width, int Height);
extern void UI_MainLoop(void);
extern int VFS_Init(void);
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 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);
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;
// === GLOBALS ===
extern const char gsKernelVersion[];
extern const char gsGitHash[];
extern int giBuildNumber;
// === GLOBALS ===
-const char *gsAcessDir = "../Usermode/Output/
x86_64
";
+const char *gsAcessDir = "../Usermode/Output/
native
";
// === CODE ===
// === 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;
int main(int argc, char *argv[])
{
char **rootapp = NULL;
@@
-65,7
+85,9
@@
int main(int argc, char *argv[])
UI_Initialise(800, 480);
// - Ignore SIGUSR1 (used to wake threads)
UI_Initialise(800, 480);
// - Ignore SIGUSR1 (used to wake threads)
+ #ifdef SIGUSR1
signal(SIGUSR1, SIG_IGN);
signal(SIGUSR1, SIG_IGN);
+ #endif
// Initialise VFS
VFS_Init();
// Initialise VFS
VFS_Init();
@@
-77,6
+99,10
@@
int main(int argc, char *argv[])
Log_Error("Init", "Unable to load NativeKeyboard");
}
NativeFS_Install(NULL);
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[] = {
// - Start VTerm
{
char *args[] = {
@@
-90,7
+116,7
@@
int main(int argc, char *argv[])
VFS_MkDir("/Acess");
VFS_Mount(gsAcessDir, "/Acess", "nativefs", "");
VFS_MkDir("/Acess");
VFS_Mount(gsAcessDir, "/Acess", "nativefs", "");
- Debug_SetKTerminal("/Devices/
VTerm/8
");
+ Debug_SetKTerminal("/Devices/
pts/vt7
");
// Start syscall server
SyscallServer();
// Start syscall server
SyscallServer();
@@
-100,35
+126,23
@@
int main(int argc, char *argv[])
{
int pid;
int argcount = 0;
{
int pid;
int argcount = 0;
- c
har
*args[7+rootapp_argc+1+1];
+ c
onst char
*args[7+rootapp_argc+1+1];
#if VALGRIND_CLIENT
args[argcount++] = "valgrind";
#endif
args[argcount++] = "./ld-acess";
#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";
+ args[argcount++] = "--open"; args[argcount++] = "/Devices/
pts/vt
0";
+ args[argcount++] = "--open"; args[argcount++] = "/Devices/
pts/vt
0";
+ args[argcount++] = "--open"; args[argcount++] = "/Devices/
pts/vt
0";
for( i = 0; i < rootapp_argc; i ++ )
args[argcount+i] = rootapp[i];
args[argcount+rootapp_argc] = NULL;
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", (char *const*)args);
if(pid < 0) {
perror("Starting root application [fork(2)]");
return 1;
}
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);
}
printf("Root application running as PID %i\n", pid);
}
@@
-140,6
+154,7
@@
int main(int argc, char *argv[])
void AcessNative_Exit(void)
{
// TODO: Close client applications too
void AcessNative_Exit(void)
{
// TODO: Close client applications too
+ Server_Shutdown();
exit(0);
}
exit(0);
}
@@
-154,3
+169,8
@@
int Module_EnsureLoaded(const char *Name)
return 0;
}
return 0;
}
+void Proc_PrintBacktrace(void)
+{
+
+}
+
UCC
git Repository :: git.ucc.asn.au