Syscalls: Cleanup headers, add names, add NotImplemented

This commit is contained in:
Stefanos Kornilios Mitsis Poiitidis committed 2020-06-19 13:07:07 +03:00
1 parent 86f03d25aa
commit 7c2efe0155
6 files changed
+877 -470

No files matched your search

+1
View File
@@ -161,6 +161,7 @@ set (SRCS
Interface/HLE/Syscalls/Thread.cpp
Interface/HLE/Syscalls/Time.cpp
Interface/HLE/Syscalls/Timer.cpp
Interface/HLE/Syscalls/NotImplemented.cpp
Interface/Memory/MemMapper.cpp
Interface/Memory/SharedMem.cpp
Interface/IR/IR.cpp
@@ -0,0 +1,38 @@
#include "Interface/HLE/Syscalls.h"
#include "Interface/HLE/x64/Syscalls.h"
#include "LogManager.h"
#include <stdint.h>
#include <sys/epoll.h>
namespace FEXCore::Core {
struct InternalThreadState;
}
#define REGISTER_SYSCALL_NOT_IMPL(name) REGISTER_SYSCALL_IMPL(name, [](FEXCore::Core::InternalThreadState *Thread) -> uint64_t { \
LogMan::Msg::D("Using deprecated/removed syscall: " #name); \
return -ENOSYS; \
});
namespace FEXCore::HLE {
// these are removed/not implemented in the linux kernel we present
void RegisterNotImplemented() {
REGISTER_SYSCALL_NOT_IMPL(uselib);
REGISTER_SYSCALL_NOT_IMPL(create_module);
REGISTER_SYSCALL_NOT_IMPL(get_kernel_syms);
REGISTER_SYSCALL_NOT_IMPL(query_module);
REGISTER_SYSCALL_NOT_IMPL(nfsservctl);
REGISTER_SYSCALL_NOT_IMPL(getpmsg);
REGISTER_SYSCALL_NOT_IMPL(putpmsg);
REGISTER_SYSCALL_NOT_IMPL(afs_syscall);
REGISTER_SYSCALL_NOT_IMPL(tuxcall);
REGISTER_SYSCALL_NOT_IMPL(security);
REGISTER_SYSCALL_NOT_IMPL(set_thread_area);
REGISTER_SYSCALL_NOT_IMPL(get_thread_area);
REGISTER_SYSCALL_NOT_IMPL(epoll_ctl_old);
REGISTER_SYSCALL_NOT_IMPL(epoll_wait_old);
REGISTER_SYSCALL_NOT_IMPL(vserver);
}
}
+135 -117
View File
@@ -1,3 +1,5 @@
#include <map>
#include "Interface/HLE/Syscalls.h"
#include "Interface/HLE/x64/Syscalls.h"
@@ -19,133 +21,149 @@ namespace FEXCore::HLE {
void RegisterThread();
void RegisterTime();
void RegisterTimer();
}
namespace {
uint64_t Unimplemented(FEXCore::Core::InternalThreadState *Thread, uint64_t SyscallNumber) {
ERROR_AND_DIE("Unhandled system call: %d", SyscallNumber);
return -1;
}
uint64_t NopSuccess(FEXCore::Core::InternalThreadState *Thread) {
return 0;
}
uint64_t NopFail(FEXCore::Core::InternalThreadState *Thread) {
return -1ULL;
}
uint64_t NopPerm(FEXCore::Core::InternalThreadState *Thread) {
return -EPERM;
}
void RegisterNotImplemented();
}
namespace FEXCore::HLE::x64 {
std::vector<std::tuple<int, void*, int, std::string>> syscalls_x64;
void RegisterSyscallInternal(int SyscallNumber, const std::string& TraceFormatString, void* SyscallHandler, int ArgumentCount) {
syscalls_x64.push_back({SyscallNumber, SyscallHandler, ArgumentCount, TraceFormatString});
}
class x64SyscallHandler final : public FEXCore::SyscallHandler {
public:
x64SyscallHandler(FEXCore::Context::Context *ctx);
// In the case that the syscall doesn't hit the optimized path then we still need to go here
uint64_t HandleSyscall(FEXCore::Core::InternalThreadState *Thread, FEXCore::HLE::SyscallArguments *Args) override;
#ifdef DEBUG_STRACE
void Strace(FEXCore::HLE::SyscallArguments *Args, uint64_t Ret) override;
#endif
private:
void RegisterSyscallHandlers();
};
#ifdef DEBUG_STRACE
void x64SyscallHandler::Strace(FEXCore::HLE::SyscallArguments *Args, uint64_t Ret) {
auto &Def = Definitions[Args->Argument[0]];
switch (Def.NumArgs) {
case 0: LogMan::Msg::D(Def.StraceFmt.c_str(), Ret); break;
case 1: LogMan::Msg::D(Def.StraceFmt.c_str(), Args->Argument[1], Ret); break;
case 2: LogMan::Msg::D(Def.StraceFmt.c_str(), Args->Argument[1], Args->Argument[2], Ret); break;
case 3: LogMan::Msg::D(Def.StraceFmt.c_str(), Args->Argument[1], Args->Argument[2], Args->Argument[3], Ret); break;
case 4: LogMan::Msg::D(Def.StraceFmt.c_str(), Args->Argument[1], Args->Argument[2], Args->Argument[3], Args->Argument[4], Ret); break;
case 5: LogMan::Msg::D(Def.StraceFmt.c_str(), Args->Argument[1], Args->Argument[2], Args->Argument[3], Args->Argument[4], Args->Argument[5], Ret); break;
case 6: LogMan::Msg::D(Def.StraceFmt.c_str(), Args->Argument[1], Args->Argument[2], Args->Argument[3], Args->Argument[4], Args->Argument[5], Args->Argument[6], Ret); break;
default: break;
}
}
#endif
x64SyscallHandler::x64SyscallHandler(FEXCore::Context::Context *ctx)
: SyscallHandler {ctx} {
RegisterSyscallHandlers();
}
void x64SyscallHandler::RegisterSyscallHandlers() {
Definitions.resize(FEXCore::HLE::x64::SYSCALL_MAX);
auto cvt = [](auto in) {
union {
decltype(in) val;
void *raw;
} raw;
raw.val = in;
return raw.raw;
std::map<int, const char*> SyscallNames = {
#include "SyscallsNames.inl"
};
// Clear all definitions
for (auto &Def : Definitions) {
Def.NumArgs = 255;
Def.Ptr = cvt(&Unimplemented);
const char* GetSyscallName(int SyscallNumber) {
const char* name = "[unknown syscall]";
if (SyscallNames.count(SyscallNumber))
name = SyscallNames[SyscallNumber];
return name;
}
RegisterEpoll();
RegisterFD();
RegisterFS();
RegisterInfo();
RegisterIoctl();
RegisterMemory();
RegisterSched();
RegisterSemaphore();
RegisterSHM();
RegisterSignals();
RegisterSocket();
RegisterThread();
RegisterTime();
RegisterTimer();
std::vector<std::tuple<int, void*, int, std::string>> syscalls_x64;
// Set all the new definitions
for (auto &Syscall : syscalls_x64) {
auto &Def = Definitions.at(std::get<0>(Syscall));
LogMan::Throw::A(Def.Ptr == cvt(&Unimplemented), "Oops overwriting sysall problem");
Def.Ptr = std::get<1>(Syscall);
Def.NumArgs = std::get<2>(Syscall);
Def.StraceFmt = std::get<3>(Syscall);
}
}
uint64_t x64SyscallHandler::HandleSyscall(FEXCore::Core::InternalThreadState *Thread, FEXCore::HLE::SyscallArguments *Args) {
auto &Def = Definitions[Args->Argument[0]];
switch (Def.NumArgs) {
case 0: return std::invoke(Def.Ptr0, Thread);
case 1: return std::invoke(Def.Ptr1, Thread, Args->Argument[1]);
case 2: return std::invoke(Def.Ptr2, Thread, Args->Argument[1], Args->Argument[2]);
case 3: return std::invoke(Def.Ptr3, Thread, Args->Argument[1], Args->Argument[2], Args->Argument[3]);
case 4: return std::invoke(Def.Ptr4, Thread, Args->Argument[1], Args->Argument[2], Args->Argument[3], Args->Argument[4]);
case 5: return std::invoke(Def.Ptr5, Thread, Args->Argument[1], Args->Argument[2], Args->Argument[3], Args->Argument[4], Args->Argument[5]);
case 6: return std::invoke(Def.Ptr6, Thread, Args->Argument[1], Args->Argument[2], Args->Argument[3], Args->Argument[4], Args->Argument[5], Args->Argument[6]);
// for missing syscalls
case 255: return std::invoke(Def.Ptr1, Thread, Args->Argument[0]);
default: break;
void RegisterSyscallInternal(int SyscallNumber, const std::string& TraceFormatString, void* SyscallHandler, int ArgumentCount) {
syscalls_x64.push_back({SyscallNumber, SyscallHandler, ArgumentCount, TraceFormatString});
}
LogMan::Msg::A("Unhandled syscall");
return -1;
}
class x64SyscallHandler final : public FEXCore::SyscallHandler {
public:
x64SyscallHandler(FEXCore::Context::Context *ctx);
FEXCore::SyscallHandler *CreateHandler(FEXCore::Context::Context *ctx) {
return new x64SyscallHandler(ctx);
}
// In the case that the syscall doesn't hit the optimized path then we still need to go here
uint64_t HandleSyscall(FEXCore::Core::InternalThreadState *Thread, FEXCore::HLE::SyscallArguments *Args) override;
#ifdef DEBUG_STRACE
void Strace(FEXCore::HLE::SyscallArguments *Args, uint64_t Ret) override;
#endif
private:
void RegisterSyscallHandlers();
};
#ifdef DEBUG_STRACE
void x64SyscallHandler::Strace(FEXCore::HLE::SyscallArguments *Args, uint64_t Ret) {
auto &Def = Definitions[Args->Argument[0]];
switch (Def.NumArgs) {
case 0: LogMan::Msg::D(Def.StraceFmt.c_str(), Ret); break;
case 1: LogMan::Msg::D(Def.StraceFmt.c_str(), Args->Argument[1], Ret); break;
case 2: LogMan::Msg::D(Def.StraceFmt.c_str(), Args->Argument[1], Args->Argument[2], Ret); break;
case 3: LogMan::Msg::D(Def.StraceFmt.c_str(), Args->Argument[1], Args->Argument[2], Args->Argument[3], Ret); break;
case 4: LogMan::Msg::D(Def.StraceFmt.c_str(), Args->Argument[1], Args->Argument[2], Args->Argument[3], Args->Argument[4], Ret); break;
case 5: LogMan::Msg::D(Def.StraceFmt.c_str(), Args->Argument[1], Args->Argument[2], Args->Argument[3], Args->Argument[4], Args->Argument[5], Ret); break;
case 6: LogMan::Msg::D(Def.StraceFmt.c_str(), Args->Argument[1], Args->Argument[2], Args->Argument[3], Args->Argument[4], Args->Argument[5], Args->Argument[6], Ret); break;
default: break;
}
}
#endif
uint64_t Unimplemented(FEXCore::Core::InternalThreadState *Thread, uint64_t SyscallNumber) {
auto name = GetSyscallName(SyscallNumber);
ERROR_AND_DIE("Unhandled system call: %d, %s", SyscallNumber, name);
return -1;
}
x64SyscallHandler::x64SyscallHandler(FEXCore::Context::Context *ctx)
: SyscallHandler {ctx} {
RegisterSyscallHandlers();
}
void x64SyscallHandler::RegisterSyscallHandlers() {
Definitions.resize(FEXCore::HLE::x64::SYSCALL_MAX);
auto cvt = [](auto in) {
union {
decltype(in) val;
void *raw;
} raw;
raw.val = in;
return raw.raw;
};
// Clear all definitions
for (auto &Def : Definitions) {
Def.NumArgs = 255;
Def.Ptr = cvt(&Unimplemented);
}
RegisterEpoll();
RegisterFD();
RegisterFS();
RegisterInfo();
RegisterIoctl();
RegisterMemory();
RegisterSched();
RegisterSemaphore();
RegisterSHM();
RegisterSignals();
RegisterSocket();
RegisterThread();
RegisterTime();
RegisterTimer();
RegisterNotImplemented();
// Set all the new definitions
for (auto &Syscall : syscalls_x64) {
auto SyscallNumber = std::get<0>(Syscall);
auto Name = GetSyscallName(SyscallNumber);
auto &Def = Definitions.at(SyscallNumber);
LogMan::Throw::A(Def.Ptr == cvt(&Unimplemented), "Oops overwriting sysall problem, %d, %s", SyscallNumber, Name);
Def.Ptr = std::get<1>(Syscall);
Def.NumArgs = std::get<2>(Syscall);
Def.StraceFmt = std::get<3>(Syscall);
}
#if 0
for (auto &Syscall: SyscallNames) {
if (Definitions[Syscall.first].Ptr == cvt(&Unimplemented)) {
LogMan::Msg::D("Unimplemented syscall: %s", Syscall.second);
}
}
#endif
}
uint64_t x64SyscallHandler::HandleSyscall(FEXCore::Core::InternalThreadState *Thread, FEXCore::HLE::SyscallArguments *Args) {
auto &Def = Definitions[Args->Argument[0]];
switch (Def.NumArgs) {
case 0: return std::invoke(Def.Ptr0, Thread);
case 1: return std::invoke(Def.Ptr1, Thread, Args->Argument[1]);
case 2: return std::invoke(Def.Ptr2, Thread, Args->Argument[1], Args->Argument[2]);
case 3: return std::invoke(Def.Ptr3, Thread, Args->Argument[1], Args->Argument[2], Args->Argument[3]);
case 4: return std::invoke(Def.Ptr4, Thread, Args->Argument[1], Args->Argument[2], Args->Argument[3], Args->Argument[4]);
case 5: return std::invoke(Def.Ptr5, Thread, Args->Argument[1], Args->Argument[2], Args->Argument[3], Args->Argument[4], Args->Argument[5]);
case 6: return std::invoke(Def.Ptr6, Thread, Args->Argument[1], Args->Argument[2], Args->Argument[3], Args->Argument[4], Args->Argument[5], Args->Argument[6]);
// for missing syscalls
case 255: return std::invoke(Def.Ptr1, Thread, Args->Argument[0]);
default: break;
}
LogMan::Msg::A("Unhandled syscall");
return -1;
}
FEXCore::SyscallHandler *CreateHandler(FEXCore::Context::Context *ctx) {
return new x64SyscallHandler(ctx);
}
}
+1 -353
View File
@@ -18,359 +18,7 @@ class SyscallHandler;
namespace FEXCore::HLE::x64 {
///< Enum containing all support x86-64 linux syscalls that we support
enum Syscalls {
SYSCALL_x64_read = 0,
SYSCALL_x64_write = 1,
SYSCALL_x64_open = 2,
SYSCALL_x64_close = 3,
SYSCALL_x64_stat = 4,
SYSCALL_x64_fstat = 5,
SYSCALL_x64_lstat = 6,
SYSCALL_x64_poll = 7,
SYSCALL_x64_lseek = 8,
SYSCALL_x64_mmap = 9,
SYSCALL_x64_mprotect = 10,
SYSCALL_x64_munmap = 11,
SYSCALL_x64_brk = 12,
SYSCALL_x64_rt_sigaction = 13,
SYSCALL_x64_rt_sigprocmask = 14,
SYSCALL_x64_rt_sigreturn = 15,
SYSCALL_x64_ioctl = 16,
SYSCALL_x64_pread64 = 17,
SYSCALL_x64_pwrite64 = 18,
SYSCALL_x64_readv = 19,
SYSCALL_x64_writev = 20,
SYSCALL_x64_access = 21,
SYSCALL_x64_pipe = 22,
SYSCALL_x64_select = 23,
SYSCALL_x64_sched_yield = 24,
SYSCALL_x64_mremap = 25,
SYSCALL_x64_msync = 26,
SYSCALL_x64_mincore = 27,
SYSCALL_x64_madvise = 28,
SYSCALL_x64_shmget = 29,
SYSCALL_x64_shmat = 30,
SYSCALL_x64_shmctl = 31,
SYSCALL_x64_dup = 32,
SYSCALL_x64_dup2 = 33,
SYSCALL_x64_pause = 34,
SYSCALL_x64_nanosleep = 35,
SYSCALL_x64_getitimer = 36,
SYSCALL_x64_alarm = 37,
SYSCALL_x64_setitimer = 38,
SYSCALL_x64_getpid = 39,
SYSCALL_x64_sendfile = 40,
SYSCALL_x64_socket = 41,
SYSCALL_x64_connect = 42,
SYSCALL_x64_accept = 43,
SYSCALL_x64_sendto = 44,
SYSCALL_x64_recvfrom = 45,
SYSCALL_x64_sendmsg = 46,
SYSCALL_x64_recvmsg = 47,
SYSCALL_x64_shutdown = 48,
SYSCALL_x64_bind = 49,
SYSCALL_x64_listen = 50,
SYSCALL_x64_getsockname = 51,
SYSCALL_x64_getpeername = 52,
SYSCALL_x64_socketpair = 53,
SYSCALL_x64_setsockopt = 54,
SYSCALL_x64_getsockopt = 55,
SYSCALL_x64_clone = 56,
SYSCALL_x64_fork = 57,
SYSCALL_x64_vfork = 58,
SYSCALL_x64_execve = 59,
SYSCALL_x64_exit = 60,
SYSCALL_x64_wait4 = 61,
SYSCALL_x64_kill = 62,
SYSCALL_x64_uname = 63,
SYSCALL_x64_semget = 64,
SYSCALL_x64_semop = 65,
SYSCALL_x64_semctl = 66,
SYSCALL_x64_shmdt = 67,
SYSCALL_x64_msgget = 68,
SYSCALL_x64_msgsnd = 69,
SYSCALL_x64_msgrcv = 70,
SYSCALL_x64_msgctl = 71,
SYSCALL_x64_fcntl = 72,
SYSCALL_x64_flock = 73,
SYSCALL_x64_fsync = 74,
SYSCALL_x64_fdatasync = 75,
SYSCALL_x64_truncate = 76,
SYSCALL_x64_ftruncate = 77,
SYSCALL_x64_getdents = 78,
SYSCALL_x64_getcwd = 79,
SYSCALL_x64_chdir = 80,
SYSCALL_x64_fchdir = 81,
SYSCALL_x64_rename = 82,
SYSCALL_x64_mkdir = 83,
SYSCALL_x64_rmdir = 84,
SYSCALL_x64_creat = 85,
SYSCALL_x64_link = 86,
SYSCALL_x64_unlink = 87,
SYSCALL_x64_symlink = 88,
SYSCALL_x64_readlink = 89,
SYSCALL_x64_chmod = 90,
SYSCALL_x64_fchmod = 91,
SYSCALL_x64_chown = 92,
SYSCALL_x64_fchown = 93,
SYSCALL_x64_lchown = 94,
SYSCALL_x64_umask = 95,
SYSCALL_x64_gettimeofday = 96,
SYSCALL_x64_getrlimit = 97,
SYSCALL_x64_getrusage = 98,
SYSCALL_x64_sysinfo = 99,
SYSCALL_x64_times = 100,
SYSCALL_x64_ptrace = 101,
SYSCALL_x64_getuid = 102,
SYSCALL_x64_syslog = 103,
SYSCALL_x64_getgid = 104,
SYSCALL_x64_setuid = 105,
SYSCALL_x64_setgid = 106,
SYSCALL_x64_geteuid = 107,
SYSCALL_x64_getegid = 108,
SYSCALL_x64_setpgid = 109,
SYSCALL_x64_getppid = 110,
SYSCALL_x64_getpgrp = 111,
SYSCALL_x64_setsid = 112,
SYSCALL_x64_setreuid = 113,
SYSCALL_x64_setregid = 114,
SYSCALL_x64_getgroups = 115,
SYSCALL_x64_setgroups = 116,
SYSCALL_x64_setresuid = 117,
SYSCALL_x64_getresuid = 118,
SYSCALL_x64_setresgid = 119,
SYSCALL_x64_getresgid = 120,
SYSCALL_x64_getpgid = 121,
SYSCALL_x64_setfsuid = 122,
SYSCALL_x64_setfsgid = 123,
SYSCALL_x64_getsid = 124,
SYSCALL_x64_capget = 125,
SYSCALL_x64_capset = 126,
SYSCALL_x64_rt_sigpending = 127,
SYSCALL_x64_rt_sigtimedwait = 128,
SYSCALL_x64_rt_sigqueueinfo = 129,
SYSCALL_x64_rt_sigsuspend = 130,
SYSCALL_x64_sigaltstack = 131,
SYSCALL_x64_utime = 132,
SYSCALL_x64_mknod = 133,
SYSCALL_x64_uselib = 134,
SYSCALL_x64_personality = 135,
SYSCALL_x64_ustat = 136,
SYSCALL_x64_statfs = 137,
SYSCALL_x64_fstatfs = 138,
SYSCALL_x64_sysfs = 139,
SYSCALL_x64_getpriority = 140,
SYSCALL_x64_setpriority = 141,
SYSCALL_x64_sched_setparam = 142,
SYSCALL_x64_sched_getparam = 143,
SYSCALL_x64_sched_setscheduler = 144,
SYSCALL_x64_sched_getscheduler = 145,
SYSCALL_x64_sched_get_priority_max = 146,
SYSCALL_x64_sched_get_priority_min = 147,
SYSCALL_x64_sched_rr_get_interval = 148,
SYSCALL_x64_mlock = 149,
SYSCALL_x64_munlock = 150,
SYSCALL_x64_mlockall = 151,
SYSCALL_x64_munlockall = 152,
SYSCALL_x64_vhangup = 153,
SYSCALL_x64_modify_ldt = 154,
SYSCALL_x64_pivot_root = 155,
SYSCALL_x64__sysctl = 156,
SYSCALL_x64_prctl = 157,
SYSCALL_x64_arch_prctl = 158,
SYSCALL_x64_adjtimex = 159,
SYSCALL_x64_setrlimit = 160,
SYSCALL_x64_chroot = 161,
SYSCALL_x64_sync = 162,
SYSCALL_x64_acct = 163,
SYSCALL_x64_settimeofday = 164,
SYSCALL_x64_mount = 165,
SYSCALL_x64_umount2 = 166,
SYSCALL_x64_swapon = 167,
SYSCALL_x64_swapoff = 168,
SYSCALL_x64_reboot = 169,
SYSCALL_x64_sethostname = 170,
SYSCALL_x64_setdomainname = 171,
SYSCALL_x64_iopl = 172,
SYSCALL_x64_ioperm = 173,
SYSCALL_x64_create_module = 174,
SYSCALL_x64_init_module = 175,
SYSCALL_x64_delete_module = 176,
SYSCALL_x64_get_kernel_syms = 177,
SYSCALL_x64_query_module = 178,
SYSCALL_x64_quotactl = 179,
SYSCALL_x64_nfsservctl = 180,
SYSCALL_x64_getpmsg = 181,
SYSCALL_x64_putpmsg = 182,
SYSCALL_x64_afs_syscall = 183,
SYSCALL_x64_tuxcall = 184,
SYSCALL_x64_security = 185,
SYSCALL_x64_gettid = 186,
SYSCALL_x64_readahead = 187,
SYSCALL_x64_setxattr = 188,
SYSCALL_x64_lsetxattr = 189,
SYSCALL_x64_fsetxattr = 190,
SYSCALL_x64_getxattr = 191,
SYSCALL_x64_lgetxattr = 192,
SYSCALL_x64_fgetxattr = 193,
SYSCALL_x64_listxattr = 194,
SYSCALL_x64_llistxattr = 195,
SYSCALL_x64_flistxattr = 196,
SYSCALL_x64_removexattr = 197,
SYSCALL_x64_lremovexattr = 198,
SYSCALL_x64_fremovexattr = 199,
SYSCALL_x64_tkill = 200,
SYSCALL_x64_time = 201,
SYSCALL_x64_futex = 202,
SYSCALL_x64_sched_setaffinity = 203,
SYSCALL_x64_sched_getaffinity = 204,
SYSCALL_x64_set_thread_area = 205,
SYSCALL_x64_io_setup = 206,
SYSCALL_x64_io_destroy = 207,
SYSCALL_x64_io_getevents = 208,
SYSCALL_x64_io_submit = 209,
SYSCALL_x64_io_cancel = 210,
SYSCALL_x64_get_thread_area = 211,
SYSCALL_x64_lookup_dcookie = 212,
SYSCALL_x64_epoll_create = 213,
SYSCALL_x64_epoll_ctl_old = 214,
SYSCALL_x64_epoll_wait_old = 215,
SYSCALL_x64_remap_file_pages = 216,
SYSCALL_x64_getdents64 = 217,
SYSCALL_x64_set_tid_address = 218,
SYSCALL_x64_restart_syscall = 219,
SYSCALL_x64_semtimedop = 220,
SYSCALL_x64_fadvise64 = 221,
SYSCALL_x64_timer_create = 222,
SYSCALL_x64_timer_settime = 223,
SYSCALL_x64_timer_gettime = 224,
SYSCALL_x64_timer_getoverrun = 225,
SYSCALL_x64_timer_delete = 226,
SYSCALL_x64_clock_settime = 227,
SYSCALL_x64_clock_gettime = 228,
SYSCALL_x64_clock_getres = 229,
SYSCALL_x64_clock_nanosleep = 230,
SYSCALL_x64_exit_group = 231,
SYSCALL_x64_epoll_wait = 232,
SYSCALL_x64_epoll_ctl = 233,
SYSCALL_x64_tgkill = 234,
SYSCALL_x64_utimes = 235,
SYSCALL_x64_vserver = 236,
SYSCALL_x64_mbind = 237,
SYSCALL_x64_set_mempolicy = 238,
SYSCALL_x64_get_mempolicy = 239,
SYSCALL_x64_mq_open = 240,
SYSCALL_x64_mq_unlink = 241,
SYSCALL_x64_mq_timedsend = 242,
SYSCALL_x64_mq_timedreceive = 243,
SYSCALL_x64_mq_notify = 244,
SYSCALL_x64_mq_getsetattr = 245,
SYSCALL_x64_kexec_load = 246,
SYSCALL_x64_waitid = 247,
SYSCALL_x64_add_key = 248,
SYSCALL_x64_request_key = 249,
SYSCALL_x64_keyctl = 250,
SYSCALL_x64_ioprio_set = 251,
SYSCALL_x64_ioprio_get = 252,
SYSCALL_x64_inotify_init = 253,
SYSCALL_x64_inotify_add_watch = 254,
SYSCALL_x64_inotify_rm_watch = 255,
SYSCALL_x64_migrate_pages = 256,
SYSCALL_x64_openat = 257,
SYSCALL_x64_mkdirat = 258,
SYSCALL_x64_mknodat = 259,
SYSCALL_x64_fchownat = 260,
SYSCALL_x64_futimesat = 261,
SYSCALL_x64_newfstatat = 262,
SYSCALL_x64_unlinkat = 263,
SYSCALL_x64_renameat = 264,
SYSCALL_x64_linkat = 265,
SYSCALL_x64_symlinkat = 266,
SYSCALL_x64_readlinkat = 267,
SYSCALL_x64_fchmodat = 268,
SYSCALL_x64_faccessat = 269,
SYSCALL_x64_pselect6 = 270,
SYSCALL_x64_ppoll = 271,
SYSCALL_x64_unshare = 272,
SYSCALL_x64_set_robust_list = 273,
SYSCALL_x64_get_robust_list = 274,
SYSCALL_x64_splice = 275,
SYSCALL_x64_tee = 276,
SYSCALL_x64_sync_file_range = 277,
SYSCALL_x64_vmsplice = 278,
SYSCALL_x64_move_pages = 279,
SYSCALL_x64_utimensat = 280,
SYSCALL_x64_epoll_pwait = 281,
SYSCALL_x64_signalfd = 282,
SYSCALL_x64_timerfd_create = 283,
SYSCALL_x64_eventfd = 284,
SYSCALL_x64_fallocate = 285,
SYSCALL_x64_timerfd_settime = 286,
SYSCALL_x64_timerfd_gettime = 287,
SYSCALL_x64_accept4 = 288,
SYSCALL_x64_signalfd4 = 289,
SYSCALL_x64_eventfd2 = 290,
SYSCALL_x64_epoll_create1 = 291,
SYSCALL_x64_dup3 = 292,
SYSCALL_x64_pipe2 = 293,
SYSCALL_x64_inotify_init1 = 294,
SYSCALL_x64_preadv = 295,
SYSCALL_x64_pwritev = 296,
SYSCALL_x64_rt_tgsigqueueinfo = 297,
SYSCALL_x64_perf_event_open = 298,
SYSCALL_x64_recvmmsg = 299,
SYSCALL_x64_fanotify_init = 300,
SYSCALL_x64_fanotify_mark = 301,
SYSCALL_x64_prlimit64 = 302,
SYSCALL_x64_name_to_handle_at = 303,
SYSCALL_x64_open_by_handle_at = 304,
SYSCALL_x64_clock_adjtime = 305,
SYSCALL_x64_syncfs = 306,
SYSCALL_x64_sendmmsg = 307,
SYSCALL_x64_setns = 308,
SYSCALL_x64_getcpu = 309,
SYSCALL_x64_process_vm_readv = 310,
SYSCALL_x64_process_vm_writev = 311,
SYSCALL_x64_kcmp = 312,
SYSCALL_x64_finit_module = 313,
SYSCALL_x64_sched_setattr = 314,
SYSCALL_x64_sched_getattr = 315,
SYSCALL_x64_renameat2 = 316,
SYSCALL_x64_seccomp = 317,
SYSCALL_x64_getrandom = 318,
SYSCALL_x64_memfd_create = 319,
SYSCALL_x64_kexec_file_load = 320,
SYSCALL_x64_bpf = 321,
SYSCALL_x64_execveat = 322,
SYSCALL_x64_userfaultfd = 323,
SYSCALL_x64_membarrier = 324,
SYSCALL_x64_mlock2 = 325,
SYSCALL_x64_copy_file_range = 326,
SYSCALL_x64_preadv2 = 327,
SYSCALL_x64_pwritev2 = 328,
SYSCALL_x64_pkey_mprotect = 329,
SYSCALL_x64_pkey_alloc = 330,
SYSCALL_x64_pkey_free = 331,
SYSCALL_x64_statx = 332,
SYSCALL_x64_io_pgetevents = 333,
SYSCALL_x64_rseq = 334,
SYSCALL_x64_pidfd_send_signal = 424,
SYSCALL_x64_io_uring_setup = 425,
SYSCALL_x64_io_uring_enter = 426,
SYSCALL_x64_io_uring_register = 427,
SYSCALL_x64_open_tree = 428,
SYSCALL_x64_move_mount = 429,
SYSCALL_x64_fsopen = 430,
SYSCALL_x64_fsconfig = 431,
SYSCALL_x64_fsmount = 432,
SYSCALL_x64_fspick = 433,
SYSCALL_x64_pidfd_open = 434,
SYSCALL_x64_clone3 = 435,
SYSCALL_x64_openat2 = 437,
SYSCALL_x64_pidfd_getfd = 438,
SYSCALL_MAX = 512,
};
#include "SyscallsEnum.h"
FEXCore::SyscallHandler *CreateHandler(FEXCore::Context::Context *ctx);
void RegisterSyscallInternal(int SyscallNumber, const std::string& TraceFormatString, void* SyscallHandler, int ArgumentCount);
+353
View File
@@ -0,0 +1,353 @@
///< Enum containing all x86-64 linux syscalls for the guest kernel version
enum Syscalls {
SYSCALL_x64_read = 0,
SYSCALL_x64_write = 1,
SYSCALL_x64_open = 2,
SYSCALL_x64_close = 3,
SYSCALL_x64_stat = 4,
SYSCALL_x64_fstat = 5,
SYSCALL_x64_lstat = 6,
SYSCALL_x64_poll = 7,
SYSCALL_x64_lseek = 8,
SYSCALL_x64_mmap = 9,
SYSCALL_x64_mprotect = 10,
SYSCALL_x64_munmap = 11,
SYSCALL_x64_brk = 12,
SYSCALL_x64_rt_sigaction = 13,
SYSCALL_x64_rt_sigprocmask = 14,
SYSCALL_x64_rt_sigreturn = 15,
SYSCALL_x64_ioctl = 16,
SYSCALL_x64_pread64 = 17,
SYSCALL_x64_pwrite64 = 18,
SYSCALL_x64_readv = 19,
SYSCALL_x64_writev = 20,
SYSCALL_x64_access = 21,
SYSCALL_x64_pipe = 22,
SYSCALL_x64_select = 23,
SYSCALL_x64_sched_yield = 24,
SYSCALL_x64_mremap = 25,
SYSCALL_x64_msync = 26,
SYSCALL_x64_mincore = 27,
SYSCALL_x64_madvise = 28,
SYSCALL_x64_shmget = 29,
SYSCALL_x64_shmat = 30,
SYSCALL_x64_shmctl = 31,
SYSCALL_x64_dup = 32,
SYSCALL_x64_dup2 = 33,
SYSCALL_x64_pause = 34,
SYSCALL_x64_nanosleep = 35,
SYSCALL_x64_getitimer = 36,
SYSCALL_x64_alarm = 37,
SYSCALL_x64_setitimer = 38,
SYSCALL_x64_getpid = 39,
SYSCALL_x64_sendfile = 40,
SYSCALL_x64_socket = 41,
SYSCALL_x64_connect = 42,
SYSCALL_x64_accept = 43,
SYSCALL_x64_sendto = 44,
SYSCALL_x64_recvfrom = 45,
SYSCALL_x64_sendmsg = 46,
SYSCALL_x64_recvmsg = 47,
SYSCALL_x64_shutdown = 48,
SYSCALL_x64_bind = 49,
SYSCALL_x64_listen = 50,
SYSCALL_x64_getsockname = 51,
SYSCALL_x64_getpeername = 52,
SYSCALL_x64_socketpair = 53,
SYSCALL_x64_setsockopt = 54,
SYSCALL_x64_getsockopt = 55,
SYSCALL_x64_clone = 56,
SYSCALL_x64_fork = 57,
SYSCALL_x64_vfork = 58,
SYSCALL_x64_execve = 59,
SYSCALL_x64_exit = 60,
SYSCALL_x64_wait4 = 61,
SYSCALL_x64_kill = 62,
SYSCALL_x64_uname = 63,
SYSCALL_x64_semget = 64,
SYSCALL_x64_semop = 65,
SYSCALL_x64_semctl = 66,
SYSCALL_x64_shmdt = 67,
SYSCALL_x64_msgget = 68,
SYSCALL_x64_msgsnd = 69,
SYSCALL_x64_msgrcv = 70,
SYSCALL_x64_msgctl = 71,
SYSCALL_x64_fcntl = 72,
SYSCALL_x64_flock = 73,
SYSCALL_x64_fsync = 74,
SYSCALL_x64_fdatasync = 75,
SYSCALL_x64_truncate = 76,
SYSCALL_x64_ftruncate = 77,
SYSCALL_x64_getdents = 78,
SYSCALL_x64_getcwd = 79,
SYSCALL_x64_chdir = 80,
SYSCALL_x64_fchdir = 81,
SYSCALL_x64_rename = 82,
SYSCALL_x64_mkdir = 83,
SYSCALL_x64_rmdir = 84,
SYSCALL_x64_creat = 85,
SYSCALL_x64_link = 86,
SYSCALL_x64_unlink = 87,
SYSCALL_x64_symlink = 88,
SYSCALL_x64_readlink = 89,
SYSCALL_x64_chmod = 90,
SYSCALL_x64_fchmod = 91,
SYSCALL_x64_chown = 92,
SYSCALL_x64_fchown = 93,
SYSCALL_x64_lchown = 94,
SYSCALL_x64_umask = 95,
SYSCALL_x64_gettimeofday = 96,
SYSCALL_x64_getrlimit = 97,
SYSCALL_x64_getrusage = 98,
SYSCALL_x64_sysinfo = 99,
SYSCALL_x64_times = 100,
SYSCALL_x64_ptrace = 101,
SYSCALL_x64_getuid = 102,
SYSCALL_x64_syslog = 103,
SYSCALL_x64_getgid = 104,
SYSCALL_x64_setuid = 105,
SYSCALL_x64_setgid = 106,
SYSCALL_x64_geteuid = 107,
SYSCALL_x64_getegid = 108,
SYSCALL_x64_setpgid = 109,
SYSCALL_x64_getppid = 110,
SYSCALL_x64_getpgrp = 111,
SYSCALL_x64_setsid = 112,
SYSCALL_x64_setreuid = 113,
SYSCALL_x64_setregid = 114,
SYSCALL_x64_getgroups = 115,
SYSCALL_x64_setgroups = 116,
SYSCALL_x64_setresuid = 117,
SYSCALL_x64_getresuid = 118,
SYSCALL_x64_setresgid = 119,
SYSCALL_x64_getresgid = 120,
SYSCALL_x64_getpgid = 121,
SYSCALL_x64_setfsuid = 122,
SYSCALL_x64_setfsgid = 123,
SYSCALL_x64_getsid = 124,
SYSCALL_x64_capget = 125,
SYSCALL_x64_capset = 126,
SYSCALL_x64_rt_sigpending = 127,
SYSCALL_x64_rt_sigtimedwait = 128,
SYSCALL_x64_rt_sigqueueinfo = 129,
SYSCALL_x64_rt_sigsuspend = 130,
SYSCALL_x64_sigaltstack = 131,
SYSCALL_x64_utime = 132,
SYSCALL_x64_mknod = 133,
SYSCALL_x64_uselib = 134,
SYSCALL_x64_personality = 135,
SYSCALL_x64_ustat = 136,
SYSCALL_x64_statfs = 137,
SYSCALL_x64_fstatfs = 138,
SYSCALL_x64_sysfs = 139,
SYSCALL_x64_getpriority = 140,
SYSCALL_x64_setpriority = 141,
SYSCALL_x64_sched_setparam = 142,
SYSCALL_x64_sched_getparam = 143,
SYSCALL_x64_sched_setscheduler = 144,
SYSCALL_x64_sched_getscheduler = 145,
SYSCALL_x64_sched_get_priority_max = 146,
SYSCALL_x64_sched_get_priority_min = 147,
SYSCALL_x64_sched_rr_get_interval = 148,
SYSCALL_x64_mlock = 149,
SYSCALL_x64_munlock = 150,
SYSCALL_x64_mlockall = 151,
SYSCALL_x64_munlockall = 152,
SYSCALL_x64_vhangup = 153,
SYSCALL_x64_modify_ldt = 154,
SYSCALL_x64_pivot_root = 155,
SYSCALL_x64__sysctl = 156,
SYSCALL_x64_prctl = 157,
SYSCALL_x64_arch_prctl = 158,
SYSCALL_x64_adjtimex = 159,
SYSCALL_x64_setrlimit = 160,
SYSCALL_x64_chroot = 161,
SYSCALL_x64_sync = 162,
SYSCALL_x64_acct = 163,
SYSCALL_x64_settimeofday = 164,
SYSCALL_x64_mount = 165,
SYSCALL_x64_umount2 = 166,
SYSCALL_x64_swapon = 167,
SYSCALL_x64_swapoff = 168,
SYSCALL_x64_reboot = 169,
SYSCALL_x64_sethostname = 170,
SYSCALL_x64_setdomainname = 171,
SYSCALL_x64_iopl = 172,
SYSCALL_x64_ioperm = 173,
SYSCALL_x64_create_module = 174,
SYSCALL_x64_init_module = 175,
SYSCALL_x64_delete_module = 176,
SYSCALL_x64_get_kernel_syms = 177,
SYSCALL_x64_query_module = 178,
SYSCALL_x64_quotactl = 179,
SYSCALL_x64_nfsservctl = 180,
SYSCALL_x64_getpmsg = 181,
SYSCALL_x64_putpmsg = 182,
SYSCALL_x64_afs_syscall = 183,
SYSCALL_x64_tuxcall = 184,
SYSCALL_x64_security = 185,
SYSCALL_x64_gettid = 186,
SYSCALL_x64_readahead = 187,
SYSCALL_x64_setxattr = 188,
SYSCALL_x64_lsetxattr = 189,
SYSCALL_x64_fsetxattr = 190,
SYSCALL_x64_getxattr = 191,
SYSCALL_x64_lgetxattr = 192,
SYSCALL_x64_fgetxattr = 193,
SYSCALL_x64_listxattr = 194,
SYSCALL_x64_llistxattr = 195,
SYSCALL_x64_flistxattr = 196,
SYSCALL_x64_removexattr = 197,
SYSCALL_x64_lremovexattr = 198,
SYSCALL_x64_fremovexattr = 199,
SYSCALL_x64_tkill = 200,
SYSCALL_x64_time = 201,
SYSCALL_x64_futex = 202,
SYSCALL_x64_sched_setaffinity = 203,
SYSCALL_x64_sched_getaffinity = 204,
SYSCALL_x64_set_thread_area = 205,
SYSCALL_x64_io_setup = 206,
SYSCALL_x64_io_destroy = 207,
SYSCALL_x64_io_getevents = 208,
SYSCALL_x64_io_submit = 209,
SYSCALL_x64_io_cancel = 210,
SYSCALL_x64_get_thread_area = 211,
SYSCALL_x64_lookup_dcookie = 212,
SYSCALL_x64_epoll_create = 213,
SYSCALL_x64_epoll_ctl_old = 214,
SYSCALL_x64_epoll_wait_old = 215,
SYSCALL_x64_remap_file_pages = 216,
SYSCALL_x64_getdents64 = 217,
SYSCALL_x64_set_tid_address = 218,
SYSCALL_x64_restart_syscall = 219,
SYSCALL_x64_semtimedop = 220,
SYSCALL_x64_fadvise64 = 221,
SYSCALL_x64_timer_create = 222,
SYSCALL_x64_timer_settime = 223,
SYSCALL_x64_timer_gettime = 224,
SYSCALL_x64_timer_getoverrun = 225,
SYSCALL_x64_timer_delete = 226,
SYSCALL_x64_clock_settime = 227,
SYSCALL_x64_clock_gettime = 228,
SYSCALL_x64_clock_getres = 229,
SYSCALL_x64_clock_nanosleep = 230,
SYSCALL_x64_exit_group = 231,
SYSCALL_x64_epoll_wait = 232,
SYSCALL_x64_epoll_ctl = 233,
SYSCALL_x64_tgkill = 234,
SYSCALL_x64_utimes = 235,
SYSCALL_x64_vserver = 236,
SYSCALL_x64_mbind = 237,
SYSCALL_x64_set_mempolicy = 238,
SYSCALL_x64_get_mempolicy = 239,
SYSCALL_x64_mq_open = 240,
SYSCALL_x64_mq_unlink = 241,
SYSCALL_x64_mq_timedsend = 242,
SYSCALL_x64_mq_timedreceive = 243,
SYSCALL_x64_mq_notify = 244,
SYSCALL_x64_mq_getsetattr = 245,
SYSCALL_x64_kexec_load = 246,
SYSCALL_x64_waitid = 247,
SYSCALL_x64_add_key = 248,
SYSCALL_x64_request_key = 249,
SYSCALL_x64_keyctl = 250,
SYSCALL_x64_ioprio_set = 251,
SYSCALL_x64_ioprio_get = 252,
SYSCALL_x64_inotify_init = 253,
SYSCALL_x64_inotify_add_watch = 254,
SYSCALL_x64_inotify_rm_watch = 255,
SYSCALL_x64_migrate_pages = 256,
SYSCALL_x64_openat = 257,
SYSCALL_x64_mkdirat = 258,
SYSCALL_x64_mknodat = 259,
SYSCALL_x64_fchownat = 260,
SYSCALL_x64_futimesat = 261,
SYSCALL_x64_newfstatat = 262,
SYSCALL_x64_unlinkat = 263,
SYSCALL_x64_renameat = 264,
SYSCALL_x64_linkat = 265,
SYSCALL_x64_symlinkat = 266,
SYSCALL_x64_readlinkat = 267,
SYSCALL_x64_fchmodat = 268,
SYSCALL_x64_faccessat = 269,
SYSCALL_x64_pselect6 = 270,
SYSCALL_x64_ppoll = 271,
SYSCALL_x64_unshare = 272,
SYSCALL_x64_set_robust_list = 273,
SYSCALL_x64_get_robust_list = 274,
SYSCALL_x64_splice = 275,
SYSCALL_x64_tee = 276,
SYSCALL_x64_sync_file_range = 277,
SYSCALL_x64_vmsplice = 278,
SYSCALL_x64_move_pages = 279,
SYSCALL_x64_utimensat = 280,
SYSCALL_x64_epoll_pwait = 281,
SYSCALL_x64_signalfd = 282,
SYSCALL_x64_timerfd_create = 283,
SYSCALL_x64_eventfd = 284,
SYSCALL_x64_fallocate = 285,
SYSCALL_x64_timerfd_settime = 286,
SYSCALL_x64_timerfd_gettime = 287,
SYSCALL_x64_accept4 = 288,
SYSCALL_x64_signalfd4 = 289,
SYSCALL_x64_eventfd2 = 290,
SYSCALL_x64_epoll_create1 = 291,
SYSCALL_x64_dup3 = 292,
SYSCALL_x64_pipe2 = 293,
SYSCALL_x64_inotify_init1 = 294,
SYSCALL_x64_preadv = 295,
SYSCALL_x64_pwritev = 296,
SYSCALL_x64_rt_tgsigqueueinfo = 297,
SYSCALL_x64_perf_event_open = 298,
SYSCALL_x64_recvmmsg = 299,
SYSCALL_x64_fanotify_init = 300,
SYSCALL_x64_fanotify_mark = 301,
SYSCALL_x64_prlimit64 = 302,
SYSCALL_x64_name_to_handle_at = 303,
SYSCALL_x64_open_by_handle_at = 304,
SYSCALL_x64_clock_adjtime = 305,
SYSCALL_x64_syncfs = 306,
SYSCALL_x64_sendmmsg = 307,
SYSCALL_x64_setns = 308,
SYSCALL_x64_getcpu = 309,
SYSCALL_x64_process_vm_readv = 310,
SYSCALL_x64_process_vm_writev = 311,
SYSCALL_x64_kcmp = 312,
SYSCALL_x64_finit_module = 313,
SYSCALL_x64_sched_setattr = 314,
SYSCALL_x64_sched_getattr = 315,
SYSCALL_x64_renameat2 = 316,
SYSCALL_x64_seccomp = 317,
SYSCALL_x64_getrandom = 318,
SYSCALL_x64_memfd_create = 319,
SYSCALL_x64_kexec_file_load = 320,
SYSCALL_x64_bpf = 321,
SYSCALL_x64_execveat = 322,
SYSCALL_x64_userfaultfd = 323,
SYSCALL_x64_membarrier = 324,
SYSCALL_x64_mlock2 = 325,
SYSCALL_x64_copy_file_range = 326,
SYSCALL_x64_preadv2 = 327,
SYSCALL_x64_pwritev2 = 328,
SYSCALL_x64_pkey_mprotect = 329,
SYSCALL_x64_pkey_alloc = 330,
SYSCALL_x64_pkey_free = 331,
SYSCALL_x64_statx = 332,
SYSCALL_x64_io_pgetevents = 333,
SYSCALL_x64_rseq = 334,
SYSCALL_x64_pidfd_send_signal = 424,
SYSCALL_x64_io_uring_setup = 425,
SYSCALL_x64_io_uring_enter = 426,
SYSCALL_x64_io_uring_register = 427,
SYSCALL_x64_open_tree = 428,
SYSCALL_x64_move_mount = 429,
SYSCALL_x64_fsopen = 430,
SYSCALL_x64_fsconfig = 431,
SYSCALL_x64_fsmount = 432,
SYSCALL_x64_fspick = 433,
SYSCALL_x64_pidfd_open = 434,
SYSCALL_x64_clone3 = 435,
SYSCALL_x64_openat2 = 437,
SYSCALL_x64_pidfd_getfd = 438,
SYSCALL_MAX = 512,
};
@@ -0,0 +1,349 @@
{ 0, "read"},
{ 1, "write"},
{ 2, "open"},
{ 3, "close"},
{ 4, "stat"},
{ 5, "fstat"},
{ 6, "lstat"},
{ 7, "poll"},
{ 8, "lseek"},
{ 9, "mmap"},
{ 10, "mprotect"},
{ 11, "munmap"},
{ 12, "brk"},
{ 13, "rt_sigaction"},
{ 14, "rt_sigprocmask"},
{ 15, "rt_sigreturn"},
{ 16, "ioctl"},
{ 17, "pread64"},
{ 18, "pwrite64"},
{ 19, "readv"},
{ 20, "writev"},
{ 21, "access"},
{ 22, "pipe"},
{ 23, "select"},
{ 24, "sched_yield"},
{ 25, "mremap"},
{ 26, "msync"},
{ 27, "mincore"},
{ 28, "madvise"},
{ 29, "shmget"},
{ 30, "shmat"},
{ 31, "shmctl"},
{ 32, "dup"},
{ 33, "dup2"},
{ 34, "pause"},
{ 35, "nanosleep"},
{ 36, "getitimer"},
{ 37, "alarm"},
{ 38, "setitimer"},
{ 39, "getpid"},
{ 40, "sendfile"},
{ 41, "socket"},
{ 42, "connect"},
{ 43, "accept"},
{ 44, "sendto"},
{ 45, "recvfrom"},
{ 46, "sendmsg"},
{ 47, "recvmsg"},
{ 48, "shutdown"},
{ 49, "bind"},
{ 50, "listen"},
{ 51, "getsockname"},
{ 52, "getpeername"},
{ 53, "socketpair"},
{ 54, "setsockopt"},
{ 55, "getsockopt"},
{ 56, "clone"},
{ 57, "fork"},
{ 58, "vfork"},
{ 59, "execve"},
{ 60, "exit"},
{ 61, "wait4"},
{ 62, "kill"},
{ 63, "uname"},
{ 64, "semget"},
{ 65, "semop"},
{ 66, "semctl"},
{ 67, "shmdt"},
{ 68, "msgget"},
{ 69, "msgsnd"},
{ 70, "msgrcv"},
{ 71, "msgctl"},
{ 72, "fcntl"},
{ 73, "flock"},
{ 74, "fsync"},
{ 75, "fdatasync"},
{ 76, "truncate"},
{ 77, "ftruncate"},
{ 78, "getdents"},
{ 79, "getcwd"},
{ 80, "chdir"},
{ 81, "fchdir"},
{ 82, "rename"},
{ 83, "mkdir"},
{ 84, "rmdir"},
{ 85, "creat"},
{ 86, "link"},
{ 87, "unlink"},
{ 88, "symlink"},
{ 89, "readlink"},
{ 90, "chmod"},
{ 91, "fchmod"},
{ 92, "chown"},
{ 93, "fchown"},
{ 94, "lchown"},
{ 95, "umask"},
{ 96, "gettimeofday"},
{ 97, "getrlimit"},
{ 98, "getrusage"},
{ 99, "sysinfo"},
{ 100, "times"},
{ 101, "ptrace"},
{ 102, "getuid"},
{ 103, "syslog"},
{ 104, "getgid"},
{ 105, "setuid"},
{ 106, "setgid"},
{ 107, "geteuid"},
{ 108, "getegid"},
{ 109, "setpgid"},
{ 110, "getppid"},
{ 111, "getpgrp"},
{ 112, "setsid"},
{ 113, "setreuid"},
{ 114, "setregid"},
{ 115, "getgroups"},
{ 116, "setgroups"},
{ 117, "setresuid"},
{ 118, "getresuid"},
{ 119, "setresgid"},
{ 120, "getresgid"},
{ 121, "getpgid"},
{ 122, "setfsuid"},
{ 123, "setfsgid"},
{ 124, "getsid"},
{ 125, "capget"},
{ 126, "capset"},
{ 127, "rt_sigpending"},
{ 128, "rt_sigtimedwait"},
{ 129, "rt_sigqueueinfo"},
{ 130, "rt_sigsuspend"},
{ 131, "sigaltstack"},
{ 132, "utime"},
{ 133, "mknod"},
{ 134, "uselib"},
{ 135, "personality"},
{ 136, "ustat"},
{ 137, "statfs"},
{ 138, "fstatfs"},
{ 139, "sysfs"},
{ 140, "getpriority"},
{ 141, "setpriority"},
{ 142, "sched_setparam"},
{ 143, "sched_getparam"},
{ 144, "sched_setscheduler"},
{ 145, "sched_getscheduler"},
{ 146, "sched_get_priority_max"},
{ 147, "sched_get_priority_min"},
{ 148, "sched_rr_get_interval"},
{ 149, "mlock"},
{ 150, "munlock"},
{ 151, "mlockall"},
{ 152, "munlockall"},
{ 153, "vhangup"},
{ 154, "modify_ldt"},
{ 155, "pivot_root"},
{ 156, "_sysctl"},
{ 157, "prctl"},
{ 158, "arch_prctl"},
{ 159, "adjtimex"},
{ 160, "setrlimit"},
{ 161, "chroot"},
{ 162, "sync"},
{ 163, "acct"},
{ 164, "settimeofday"},
{ 165, "mount"},
{ 166, "umount2"},
{ 167, "swapon"},
{ 168, "swapoff"},
{ 169, "reboot"},
{ 170, "sethostname"},
{ 171, "setdomainname"},
{ 172, "iopl"},
{ 173, "ioperm"},
{ 174, "create_module"},
{ 175, "init_module"},
{ 176, "delete_module"},
{ 177, "get_kernel_syms"},
{ 178, "query_module"},
{ 179, "quotactl"},
{ 180, "nfsservctl"},
{ 181, "getpmsg"},
{ 182, "putpmsg"},
{ 183, "afs_syscall"},
{ 184, "tuxcall"},
{ 185, "security"},
{ 186, "gettid"},
{ 187, "readahead"},
{ 188, "setxattr"},
{ 189, "lsetxattr"},
{ 190, "fsetxattr"},
{ 191, "getxattr"},
{ 192, "lgetxattr"},
{ 193, "fgetxattr"},
{ 194, "listxattr"},
{ 195, "llistxattr"},
{ 196, "flistxattr"},
{ 197, "removexattr"},
{ 198, "lremovexattr"},
{ 199, "fremovexattr"},
{ 200, "tkill"},
{ 201, "time"},
{ 202, "futex"},
{ 203, "sched_setaffinity"},
{ 204, "sched_getaffinity"},
{ 205, "set_thread_area"},
{ 206, "io_setup"},
{ 207, "io_destroy"},
{ 208, "io_getevents"},
{ 209, "io_submit"},
{ 210, "io_cancel"},
{ 211, "get_thread_area"},
{ 212, "lookup_dcookie"},
{ 213, "epoll_create"},
{ 214, "epoll_ctl_old"},
{ 215, "epoll_wait_old"},
{ 216, "remap_file_pages"},
{ 217, "getdents64"},
{ 218, "set_tid_address"},
{ 219, "restart_syscall"},
{ 220, "semtimedop"},
{ 221, "fadvise64"},
{ 222, "timer_create"},
{ 223, "timer_settime"},
{ 224, "timer_gettime"},
{ 225, "timer_getoverrun"},
{ 226, "timer_delete"},
{ 227, "clock_settime"},
{ 228, "clock_gettime"},
{ 229, "clock_getres"},
{ 230, "clock_nanosleep"},
{ 231, "exit_group"},
{ 232, "epoll_wait"},
{ 233, "epoll_ctl"},
{ 234, "tgkill"},
{ 235, "utimes"},
{ 236, "vserver"},
{ 237, "mbind"},
{ 238, "set_mempolicy"},
{ 239, "get_mempolicy"},
{ 240, "mq_open"},
{ 241, "mq_unlink"},
{ 242, "mq_timedsend"},
{ 243, "mq_timedreceive"},
{ 244, "mq_notify"},
{ 245, "mq_getsetattr"},
{ 246, "kexec_load"},
{ 247, "waitid"},
{ 248, "add_key"},
{ 249, "request_key"},
{ 250, "keyctl"},
{ 251, "ioprio_set"},
{ 252, "ioprio_get"},
{ 253, "inotify_init"},
{ 254, "inotify_add_watch"},
{ 255, "inotify_rm_watch"},
{ 256, "migrate_pages"},
{ 257, "openat"},
{ 258, "mkdirat"},
{ 259, "mknodat"},
{ 260, "fchownat"},
{ 261, "futimesat"},
{ 262, "newfstatat"},
{ 263, "unlinkat"},
{ 264, "renameat"},
{ 265, "linkat"},
{ 266, "symlinkat"},
{ 267, "readlinkat"},
{ 268, "fchmodat"},
{ 269, "faccessat"},
{ 270, "pselect6"},
{ 271, "ppoll"},
{ 272, "unshare"},
{ 273, "set_robust_list"},
{ 274, "get_robust_list"},
{ 275, "splice"},
{ 276, "tee"},
{ 277, "sync_file_range"},
{ 278, "vmsplice"},
{ 279, "move_pages"},
{ 280, "utimensat"},
{ 281, "epoll_pwait"},
{ 282, "signalfd"},
{ 283, "timerfd_create"},
{ 284, "eventfd"},
{ 285, "fallocate"},
{ 286, "timerfd_settime"},
{ 287, "timerfd_gettime"},
{ 288, "accept4"},
{ 289, "signalfd4"},
{ 290, "eventfd2"},
{ 291, "epoll_create1"},
{ 292, "dup3"},
{ 293, "pipe2"},
{ 294, "inotify_init1"},
{ 295, "preadv"},
{ 296, "pwritev"},
{ 297, "rt_tgsigqueueinfo"},
{ 298, "perf_event_open"},
{ 299, "recvmmsg"},
{ 300, "fanotify_init"},
{ 301, "fanotify_mark"},
{ 302, "prlimit64"},
{ 303, "name_to_handle_at"},
{ 304, "open_by_handle_at"},
{ 305, "clock_adjtime"},
{ 306, "syncfs"},
{ 307, "sendmmsg"},
{ 308, "setns"},
{ 309, "getcpu"},
{ 310, "process_vm_readv"},
{ 311, "process_vm_writev"},
{ 312, "kcmp"},
{ 313, "finit_module"},
{ 314, "sched_setattr"},
{ 315, "sched_getattr"},
{ 316, "renameat2"},
{ 317, "seccomp"},
{ 318, "getrandom"},
{ 319, "memfd_create"},
{ 320, "kexec_file_load"},
{ 321, "bpf"},
{ 322, "execveat"},
{ 323, "userfaultfd"},
{ 324, "membarrier"},
{ 325, "mlock2"},
{ 326, "copy_file_range"},
{ 327, "preadv2"},
{ 328, "pwritev2"},
{ 329, "pkey_mprotect"},
{ 330, "pkey_alloc"},
{ 331, "pkey_free"},
{ 332, "statx"},
{ 333, "io_pgetevents"},
{ 334, "rseq"},
{ 424, "pidfd_send_signal"},
{ 425, "io_uring_setup"},
{ 426, "io_uring_enter"},
{ 427, "io_uring_register"},
{ 428, "open_tree"},
{ 429, "move_mount"},
{ 430, "fsopen"},
{ 431, "fsconfig"},
{ 432, "fsmount"},
{ 433, "fspick"},
{ 434, "pidfd_open"},
{ 435, "clone3"},
{ 437, "openat2"},
{ 438, "pidfd_getfd"}