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 Threads_SetName(char *NewName);
extern int Threads_GetPID();
extern int Threads_GetTID();
extern int Threads_GetGID();
// === CODE ===
+// TODO: Do sanity checking on arguments, ATM the user can really fuck with the kernel
void SyscallHandler(tSyscallRegs *Regs)
{
Uint64 ret = 0;
Uint err = 0;
#if DEBUG
- ENTER("iThread iNum", gCurrentThread->TID, Regs->Num);
+ ENTER("iThread iNum", Threads_GetTID(), Regs->Num);
if(Regs->Num < NUM_SYSCALLS)
LOG("Syscall %s", cSYSCALL_NAMES[Regs->Num]);
LOG("Arg1: 0x%x, Arg2: 0x%x, Arg3: 0x%x", Regs->Arg1, Regs->Arg2, Regs->Arg3);
ret = VFS_FInfo( Regs->Arg1, (void*)Regs->Arg2, Regs->Arg3 );
break;
+ case SYS_GETACL:
+ ret = VFS_GetACL( Regs->Arg1, (void*)Regs->Arg2 );
+ break;
+
case SYS_READDIR:
ret = VFS_ReadDir( Regs->Arg1, (void*)Regs->Arg2 );
break;