X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=AcessNative%2Facesskernel_src%2Fsyscalls.c;h=d14a1d9f43df9019ea9f34744ea6ab1119f7f956;hb=9b61291b136d9fdc196ddab582cdb6cff8b70b09;hp=9cee8e360d2f0f617f1bcd57190225aedcb1e526;hpb=3404389a8118dee78c22e5fbbf04ed99094202ef;p=tpg%2Facess2.git diff --git a/AcessNative/acesskernel_src/syscalls.c b/AcessNative/acesskernel_src/syscalls.c index 9cee8e36..d14a1d9f 100644 --- a/AcessNative/acesskernel_src/syscalls.c +++ b/AcessNative/acesskernel_src/syscalls.c @@ -4,14 +4,18 @@ * * Syscall Distribution */ -#define DEBUG 1 +#define DEBUG 0 #include #include #include +#if DEBUG == 0 +# define DONT_INCLUDE_SYSCALL_NAMES +#endif #include "../syscalls.h" // === IMPORTS === extern int Threads_Fork(void); // AcessNative only function +extern int Threads_Spawn(int nFD, int FDs[], const void *info); // === TYPES === typedef int (*tSyscallHandler)(Uint *Errno, const char *Format, void *Args, int *Sizes); @@ -190,6 +194,13 @@ SYSCALL1(Syscall_AN_Fork, "d", int *, return *a0; ); +SYSCALL3(Syscall_AN_Spawn, "ddd", int *, int *, void *, + if(Sizes[0] < sizeof(int)) + return -1; + *a0 = Threads_Spawn(Sizes[1] / sizeof(int), a1, a2); + return *a0; +); + SYSCALL2(Syscall_SendMessage, "id", int, void *, return Proc_SendMessage(a0, Sizes[1], a1); ); @@ -244,6 +255,7 @@ const tSyscallHandler caSyscalls[] = { Syscall_Sleep, Syscall_AN_Fork, + Syscall_AN_Spawn, Syscall_SendMessage, Syscall_GetMessage, @@ -399,7 +411,7 @@ tRequestHeader *SyscallRecieve(tRequestHeader *Request, int *ReturnLength) *(Uint64*)inData = retVal; inData += sizeof(Uint64); - Log_Debug("Syscalls", "Return 0x%llx", retVal); + //Log_Debug("Syscalls", "Return 0x%llx", retVal); retValueCount = 1; for( i = 0; i < Request->NParams; i ++ )