mirror of
https://github.com/Fennix-Project/Kernel.git
synced 2025-05-25 22:14:37 +00:00
35 lines
865 B
C++
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;
|
|
}
|