Kernel/SystemCalls/Syscalls.cpp
2022-11-14 14:54:18 +02:00

35 lines
865 B
C++

#include <syscalls.hpp>
#include <debug.h>
#include "../kernel.h"
extern "C" uint64_t SystemCallsHandler(SyscallsFrame *Frame)
{
#if defined(__amd64__)
switch (TaskManager->GetCurrentThread()->Info.Compatibility)
{
case Tasking::TaskCompatibility::Native:
return HandleNativeSyscalls(Frame);
case Tasking::TaskCompatibility::Linux:
return HandleLinuxSyscalls(Frame);
case Tasking::TaskCompatibility::Windows:
{
error("Windows compatibility not implemented yet.");
break;
}
default:
{
error("Unknown compatibility mode! Killing thread...");
TaskManager->KillThread(TaskManager->GetCurrentThread(), -0xCA11);
break;
}
}
#elif defined(__i386__)
fixme("System call %lld", Frame->eax);
#elif defined(__aarch64__)
fixme("System call");
#endif
return -1;
}