X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Fsyscalls.c;h=7a960114b731e5178b9754d46f07b7edc908b7da;hb=383e0a7b0f5f23bea1b9712abc1060798d20bb3a;hp=34a35c5f095263ab98cc9e3861007d0a05bae3d7;hpb=c34752b7ccc945a70a2d9b1e505aa4a4de43163b;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/syscalls.c b/KernelLand/Kernel/syscalls.c index 34a35c5f..7a960114 100644 --- a/KernelLand/Kernel/syscalls.c +++ b/KernelLand/Kernel/syscalls.c @@ -315,14 +315,10 @@ void SyscallHandler(tSyscallRegs *Regs) else { // Sanity check the paths - if(!Syscall_ValidString((char*)Regs->Arg1) - || !Syscall_ValidString((char*)Regs->Arg2) - || (Regs->Arg3 && !Syscall_ValidString((char*)Regs->Arg3)) - || !Syscall_ValidString((char*)Regs->Arg4) ) { - err = -EINVAL; - ret = -1; - break; - } + CHECK_STR_NONULL((char*)Regs->Arg1); + CHECK_STR_NONULL((char*)Regs->Arg2); + CHECK_STR_NULLOK((char*)Regs->Arg3); + CHECK_STR_NONULL((char*)Regs->Arg4); ret = VFS_Mount( (char*)Regs->Arg1, // Device (char*)Regs->Arg2, // Mount point @@ -355,7 +351,17 @@ void SyscallHandler(tSyscallRegs *Regs) 0 // User handles ); break; + + + // Create a directory + case SYS_MKDIR: + CHECK_STR_NONULL( (char*)Regs->Arg1 ); + ret = VFS_MkDir( (char*)Regs->Arg1 ); + break; + case SYS_UNLINK: + Log_Error("Syscalls", "TODO: Impliment SYS_UNLINK"); + // Fall // -- Debug //#if DEBUG_BUILD case SYS_DEBUG: