X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Fsyscalls.c;h=5f52e0ee3bca72698dd4742636611309e9d08972;hb=f8c904ed88c0722b1e99baaf2c6c0fb7597a3be9;hp=ccbe67740a08d691961dff8ba140b7e271f937cb;hpb=8e1a304d72208ce4f1aa9cd896a0ac1179d162a9;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/syscalls.c b/KernelLand/Kernel/syscalls.c index ccbe6774..5f52e0ee 100644 --- a/KernelLand/Kernel/syscalls.c +++ b/KernelLand/Kernel/syscalls.c @@ -293,6 +293,17 @@ void SyscallHandler(tSyscallRegs *Regs) #endif break; + case SYS_TRUNCATE: + ret = VFS_Truncate( + Regs->Arg1, + #if BITS == 32 + ARG64(2,3) + #else + Regs->Arg2 + #endif + ); + break; + case SYS_FINFO: CHECK_NUM_NONULL( (void*)Regs->Arg2, sizeof(tFInfo) + Regs->Arg3*sizeof(tVFS_ACL) ); // FP, Dest, MaxACLs @@ -394,6 +405,21 @@ void SyscallHandler(tSyscallRegs *Regs) ); break; + case SYS_MMAP: + ret = (tVAddr)VFS_MMap( + (void*)Regs->Arg1, Regs->Arg2, + Regs->Arg3&0xFFFF, Regs->Arg3>>16, + Regs->Arg4, + #if BITS == 32 + ARG64(5,6) + #else + Regs->Arg5 + #endif + ); + break; + case SYS_MUNMAP: + ret = VFS_MUnmap( (void*)Regs->Arg1, Regs->Arg2 ); + break; // Create a directory case SYS_MKDIR: @@ -403,7 +429,19 @@ void SyscallHandler(tSyscallRegs *Regs) case SYS_UNLINK: Log_Error("Syscalls", "TODO: Impliment SYS_UNLINK"); - // Fall + break; + + case SYS_MARSHALFD: + ret = VFS_MarshalHandle(Regs->Arg1); + break; + case SYS_UNMARSHALFD: + #if BITS == 64 + ret = VFS_UnmarshalHandle( Regs->Arg1 ); + #else + ret = VFS_UnmarshalHandle( ARG64(1,2) ); + #endif + break; + // -- Debug //#if DEBUG_BUILD case SYS_DEBUG: