X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=AcessNative%2Facesskernel_src%2Fsyscalls.c;h=d14a1d9f43df9019ea9f34744ea6ab1119f7f956;hb=68f8179ab9eb6380323dc4b19cf4cc1603b576f5;hp=886eb1bfc8cacd1f85598f691f8e94281b2d3850;hpb=9a0444cde872613a1fad42857506ae17dde4b2b8;p=tpg%2Facess2.git diff --git a/AcessNative/acesskernel_src/syscalls.c b/AcessNative/acesskernel_src/syscalls.c index 886eb1bf..d14a1d9f 100644 --- a/AcessNative/acesskernel_src/syscalls.c +++ b/AcessNative/acesskernel_src/syscalls.c @@ -15,6 +15,7 @@ // === 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); @@ -193,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); ); @@ -247,7 +255,7 @@ const tSyscallHandler caSyscalls[] = { Syscall_Sleep, Syscall_AN_Fork, - NULL, + Syscall_AN_Spawn, Syscall_SendMessage, Syscall_GetMessage,