MCPcopy Create free account
hub / github.com/Simple-XX/SimpleKernel / syscall_dispatcher

Function syscall_dispatcher

src/syscall.cpp:17–83  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

15} // namespace
16
17auto syscall_dispatcher(int64_t syscall_id, uint64_t args[6]) -> int {
18 int64_t ret = 0;
19 switch (syscall_id) {
20 case kSyscallWrite:
21 ret = sys_write(static_cast<int>(args[0]),
22 reinterpret_cast<const char*>(args[1]),
23 static_cast<size_t>(args[2]));
24 break;
25 case kSyscallExit:
26 ret = sys_exit(static_cast<int>(args[0]));
27 break;
28 case kSyscallYield:
29 ret = sys_yield();
30 break;
31 case kSyscallClone:
32 ret = sys_clone(args[0], reinterpret_cast<void*>(args[1]),
33 reinterpret_cast<int*>(args[2]),
34 reinterpret_cast<int*>(args[3]),
35 reinterpret_cast<void*>(args[4]));
36 break;
37 case kSyscallFork:
38 ret = sys_fork();
39 break;
40 case kSyscallGettid:
41 ret = sys_gettid();
42 break;
43 case kSyscallSetTidAddress:
44 ret = sys_set_tid_address(reinterpret_cast<int*>(args[0]));
45 break;
46 case kSyscallFutex:
47 ret = sys_futex(
48 reinterpret_cast<int*>(args[0]), static_cast<int>(args[1]),
49 static_cast<int>(args[2]), reinterpret_cast<const void*>(args[3]),
50 reinterpret_cast<int*>(args[4]), static_cast<int>(args[5]));
51 break;
52 case kSyscallSleep:
53 ret = sys_sleep(args[0]);
54 break;
55 case kSyscallKill:
56 ret = sys_kill(static_cast<int>(args[0]), static_cast<int>(args[1]));
57 break;
58 case kSyscallSigaction:
59 ret = sys_sigaction(static_cast<int>(args[0]),
60 reinterpret_cast<SignalHandler>(args[1]));
61 break;
62 case kSyscallSigprocmask:
63 ret = sys_sigprocmask(static_cast<int>(args[0]),
64 static_cast<uint32_t>(args[1]),
65 reinterpret_cast<uint32_t*>(args[2]));
66 break;
67 case kSyscallSchedGetaffinity:
68 ret = sys_sched_getaffinity(static_cast<int>(args[0]),
69 static_cast<size_t>(args[1]),
70 reinterpret_cast<uint64_t*>(args[2]));
71 break;
72 case kSyscallSchedSetaffinity:
73 ret = sys_sched_setaffinity(static_cast<int>(args[0]),
74 static_cast<size_t>(args[1]),

Callers 2

SyscallFunction · 0.85
SyscallFunction · 0.85

Calls 15

sys_writeFunction · 0.85
sys_exitFunction · 0.85
sys_yieldFunction · 0.85
sys_cloneFunction · 0.85
sys_forkFunction · 0.85
sys_gettidFunction · 0.85
sys_set_tid_addressFunction · 0.85
sys_futexFunction · 0.85
sys_sleepFunction · 0.85
sys_killFunction · 0.85
sys_sigactionFunction · 0.85
sys_sigprocmaskFunction · 0.85

Tested by

no test coverage detected