X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Fsyscalls.c;h=96f1f854644c389450ae1a02f6d22262d6baddd8;hb=573469df47d366903d780ca563c9f2da18f2bf62;hp=85fbbf8c7882242b8465ac4bf60b41ff0cb125ad;hpb=97629e9f86a9cf7162649550b74b112a4fb1765f;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/syscalls.c b/KernelLand/Kernel/syscalls.c index 85fbbf8c..96f1f854 100644 --- a/KernelLand/Kernel/syscalls.c +++ b/KernelLand/Kernel/syscalls.c @@ -203,7 +203,20 @@ void SyscallHandler(tSyscallRegs *Regs) // Path, *Entrypoint ret = Binary_Load((char*)Regs->Arg1, (Uint*)Regs->Arg2); break; - + + // -- Load a kernel module + case SYS_LOADMOD: + CHECK_STR_NONULL( (const char *)Regs->Arg1 ); + if( Threads_GetUID() != 0 ) { + MERR("Not root"); + ret = EACCES; + } + else { + LOG("Module_LoadFile(\"%s\", NULL)", (const char *)Regs->Arg1); + ret = Module_LoadFile( (const char *)Regs->Arg1, NULL ); + } + break; + // --- // Virtual Filesystem // ---