Added support for dynamic registration of module loaders
[tpg/acess2.git] / Kernel / syscalls.c
index 8770187..ba9051a 100644 (file)
@@ -4,7 +4,7 @@
  */
 #define DEBUG  0
 
-#include <common.h>
+#include <acess.h>
 #include <syscalls.h>
 #include <proc.h>
 #include <errno.h>
@@ -25,9 +25,6 @@ extern Uint   Proc_SendMessage(Uint *Err, Uint Dest, Uint Length, void *Data);
 extern int     Proc_GetMessage(Uint *Err, Uint *Source, void *Buffer);
 extern int     Proc_Execve(char *File, char **ArgV, char **EnvP);
 extern Uint    Binary_Load(char *file, Uint *entryPoint);
-extern int     VFS_FInfo(int FD, void *Dest, int MaxACLs);
-extern int     VFS_GetACL(int FD, void *Dest);
-extern int     VFS_ChDir(char *Dest);
 extern int     Threads_SetName(char *NewName);
 extern int     Threads_GetPID();
 extern int     Threads_GetTID();
@@ -49,7 +46,6 @@ void SyscallHandler(tSyscallRegs *Regs)
        if(Regs->Num < NUM_SYSCALLS)
                LOG("Syscall %s", cSYSCALL_NAMES[Regs->Num]);
        LOG("Arg1: 0x%x, Arg2: 0x%x, Arg3: 0x%x, Arg4: 0x%x", Regs->Arg1, Regs->Arg2, Regs->Arg3, Regs->Arg4);
-       //#endif
        
        switch(Regs->Num)
        {
@@ -161,6 +157,7 @@ void SyscallHandler(tSyscallRegs *Regs)
                                }
                        }
                }
+               LEAVE('s', "Assuming 0");
                // Path, **Argv, **Envp
                ret = Proc_Execve((char*)Regs->Arg1, (char**)Regs->Arg2, (char**)Regs->Arg3);
                break;
@@ -210,7 +207,7 @@ void SyscallHandler(tSyscallRegs *Regs)
                break;
        
        case SYS_FINFO:
-               CHECK_NUM_NONULL( Regs->Arg2, sizeof(struct s_sysFInfo) + Regs->Arg3*sizeof(tVFS_ACL) );
+               CHECK_NUM_NONULL( Regs->Arg2, sizeof(tFInfo) + Regs->Arg3*sizeof(tVFS_ACL) );
                // FP, Dest, MaxACLs
                ret = VFS_FInfo( Regs->Arg1, (void*)Regs->Arg2, Regs->Arg3 );
                break;
@@ -307,7 +304,10 @@ void SyscallHandler(tSyscallRegs *Regs)
        Regs->Error = err;
        #if DEBUG
        LOG("err = %i", err);
-       LEAVE('x', ret);
+       if(Regs->Num != SYS_EXECVE)
+               LEAVE('x', ret);
+       else
+               LOG("Actual %i", ret);
        #endif
 }
 

UCC git Repository :: git.ucc.asn.au