1*ec63e07aSXin Li #include "sandboxed_api/sandbox2/syscall_defs.h"
2*ec63e07aSXin Li
3*ec63e07aSXin Li #include <sys/types.h>
4*ec63e07aSXin Li
5*ec63e07aSXin Li #include <array>
6*ec63e07aSXin Li #include <cstdint>
7*ec63e07aSXin Li #include <string>
8*ec63e07aSXin Li #include <vector>
9*ec63e07aSXin Li
10*ec63e07aSXin Li #include "absl/algorithm/container.h"
11*ec63e07aSXin Li #include "absl/status/status.h"
12*ec63e07aSXin Li #include "absl/status/statusor.h"
13*ec63e07aSXin Li #include "absl/strings/escaping.h"
14*ec63e07aSXin Li #include "absl/strings/str_cat.h"
15*ec63e07aSXin Li #include "absl/strings/str_format.h"
16*ec63e07aSXin Li #include "absl/strings/string_view.h"
17*ec63e07aSXin Li #include "sandboxed_api/config.h"
18*ec63e07aSXin Li #include "sandboxed_api/sandbox2/util.h"
19*ec63e07aSXin Li
20*ec63e07aSXin Li namespace sandbox2 {
21*ec63e07aSXin Li
GetArgumentDescription(uint64_t value,syscalls::ArgType type,pid_t pid)22*ec63e07aSXin Li std::string SyscallTable::Entry::GetArgumentDescription(uint64_t value,
23*ec63e07aSXin Li syscalls::ArgType type,
24*ec63e07aSXin Li pid_t pid) {
25*ec63e07aSXin Li std::string ret = absl::StrFormat("%#x", value);
26*ec63e07aSXin Li switch (type) {
27*ec63e07aSXin Li case syscalls::kOct:
28*ec63e07aSXin Li absl::StrAppendFormat(&ret, " [\\0%o]", value);
29*ec63e07aSXin Li break;
30*ec63e07aSXin Li case syscalls::kPath:
31*ec63e07aSXin Li if (auto path_or = util::ReadCPathFromPid(pid, value); path_or.ok()) {
32*ec63e07aSXin Li absl::StrAppendFormat(&ret, " ['%s']",
33*ec63e07aSXin Li absl::CHexEscape(path_or.value()));
34*ec63e07aSXin Li } else {
35*ec63e07aSXin Li absl::StrAppend(&ret, " [unreadable path]");
36*ec63e07aSXin Li }
37*ec63e07aSXin Li break;
38*ec63e07aSXin Li case syscalls::kInt:
39*ec63e07aSXin Li absl::StrAppendFormat(&ret, " [%d]", value);
40*ec63e07aSXin Li break;
41*ec63e07aSXin Li default:
42*ec63e07aSXin Li break;
43*ec63e07aSXin Li }
44*ec63e07aSXin Li return ret;
45*ec63e07aSXin Li }
46*ec63e07aSXin Li
GetName(int syscall) const47*ec63e07aSXin Li absl::string_view SyscallTable::GetName(int syscall) const {
48*ec63e07aSXin Li auto entry = GetEntry(syscall);
49*ec63e07aSXin Li if (!entry.ok()) {
50*ec63e07aSXin Li return "";
51*ec63e07aSXin Li }
52*ec63e07aSXin Li return entry->name;
53*ec63e07aSXin Li }
54*ec63e07aSXin Li
55*ec63e07aSXin Li namespace {
56*ec63e07aSXin Li
57*ec63e07aSXin Li template <typename... ArgTypes>
MakeEntry(int nr,absl::string_view name,ArgTypes...arg_types)58*ec63e07aSXin Li constexpr SyscallTable::Entry MakeEntry(int nr, absl::string_view name,
59*ec63e07aSXin Li ArgTypes... arg_types) {
60*ec63e07aSXin Li static_assert(sizeof...(arg_types) <= syscalls::kMaxArgs,
61*ec63e07aSXin Li "Too many arguments for syscall");
62*ec63e07aSXin Li return {nr, name, sizeof...(arg_types), {arg_types...}};
63*ec63e07aSXin Li }
64*ec63e07aSXin Li
65*ec63e07aSXin Li struct UnknownArguments {};
MakeEntry(int nr,absl::string_view name,UnknownArguments)66*ec63e07aSXin Li constexpr SyscallTable::Entry MakeEntry(int nr, absl::string_view name,
67*ec63e07aSXin Li UnknownArguments) {
68*ec63e07aSXin Li return {nr,
69*ec63e07aSXin Li name,
70*ec63e07aSXin Li -1,
71*ec63e07aSXin Li {syscalls::kGen, syscalls::kGen, syscalls::kGen, syscalls::kGen,
72*ec63e07aSXin Li syscalls::kGen, syscalls::kGen}};
73*ec63e07aSXin Li }
74*ec63e07aSXin Li
75*ec63e07aSXin Li } // namespace
76*ec63e07aSXin Li
GetEntry(int syscall) const77*ec63e07aSXin Li absl::StatusOr<SyscallTable::Entry> SyscallTable::GetEntry(int syscall) const {
78*ec63e07aSXin Li auto it = absl::c_lower_bound(
79*ec63e07aSXin Li data_, syscall, [](const SyscallTable::Entry& entry, int syscall) {
80*ec63e07aSXin Li return entry.nr < syscall;
81*ec63e07aSXin Li });
82*ec63e07aSXin Li if (it == data_.end() || it->nr != syscall) {
83*ec63e07aSXin Li return absl::NotFoundError(absl::StrCat("Syscall not found: ", syscall));
84*ec63e07aSXin Li }
85*ec63e07aSXin Li return *it;
86*ec63e07aSXin Li }
87*ec63e07aSXin Li
GetEntry(absl::string_view name) const88*ec63e07aSXin Li absl::StatusOr<SyscallTable::Entry> SyscallTable::GetEntry(
89*ec63e07aSXin Li absl::string_view name) const {
90*ec63e07aSXin Li // Note: There's no uniqueness guarantee of syscall names in the table, but
91*ec63e07aSXin Li // other than typos it's likely safe to assume uniqueness.
92*ec63e07aSXin Li auto filter = [name](const SyscallTable::Entry& entry) {
93*ec63e07aSXin Li return entry.name == name;
94*ec63e07aSXin Li };
95*ec63e07aSXin Li auto it = absl::c_find_if(data_, filter);
96*ec63e07aSXin Li if (it != data_.end()) {
97*ec63e07aSXin Li return *it;
98*ec63e07aSXin Li } else {
99*ec63e07aSXin Li return absl::NotFoundError(absl::StrCat("Name not found: ", name));
100*ec63e07aSXin Li }
101*ec63e07aSXin Li }
102*ec63e07aSXin Li
GetArgumentsDescription(int syscall,const uint64_t values[],pid_t pid) const103*ec63e07aSXin Li std::vector<std::string> SyscallTable::GetArgumentsDescription(
104*ec63e07aSXin Li int syscall, const uint64_t values[], pid_t pid) const {
105*ec63e07aSXin Li static SyscallTable::Entry kInvalidEntry =
106*ec63e07aSXin Li MakeEntry(-1, "", UnknownArguments());
107*ec63e07aSXin Li auto entry = GetEntry(syscall);
108*ec63e07aSXin Li if (!entry.ok()) {
109*ec63e07aSXin Li entry = kInvalidEntry;
110*ec63e07aSXin Li }
111*ec63e07aSXin Li
112*ec63e07aSXin Li int num_args = entry->GetNumArgs();
113*ec63e07aSXin Li std::vector<std::string> rv;
114*ec63e07aSXin Li rv.reserve(num_args);
115*ec63e07aSXin Li for (int i = 0; i < num_args; ++i) {
116*ec63e07aSXin Li rv.push_back(SyscallTable::Entry::GetArgumentDescription(
117*ec63e07aSXin Li values[i], entry->arg_types[i], pid));
118*ec63e07aSXin Li }
119*ec63e07aSXin Li return rv;
120*ec63e07aSXin Li }
121*ec63e07aSXin Li
122*ec63e07aSXin Li namespace syscalls {
123*ec63e07aSXin Li namespace {
124*ec63e07aSXin Li
125*ec63e07aSXin Li // TODO(C++20) Use std::is_sorted
126*ec63e07aSXin Li template <typename Container, typename Compare>
IsSorted(const Container & container,Compare comp)127*ec63e07aSXin Li constexpr bool IsSorted(const Container& container, Compare comp) {
128*ec63e07aSXin Li auto it = std::begin(container);
129*ec63e07aSXin Li if (it == std::end(container)) {
130*ec63e07aSXin Li return true;
131*ec63e07aSXin Li }
132*ec63e07aSXin Li auto last = it;
133*ec63e07aSXin Li for (++it; it != std::end(container); ++it) {
134*ec63e07aSXin Li if (!comp(*last, *it)) {
135*ec63e07aSXin Li return false;
136*ec63e07aSXin Li }
137*ec63e07aSXin Li last = it;
138*ec63e07aSXin Li }
139*ec63e07aSXin Li return true;
140*ec63e07aSXin Li }
141*ec63e07aSXin Li
142*ec63e07aSXin Li // Syscall description table for Linux x86_64
143*ec63e07aSXin Li constexpr std::array kSyscallDataX8664 = {
144*ec63e07aSXin Li // clang-format off
145*ec63e07aSXin Li MakeEntry(0, "read", kInt, kHex, kInt),
146*ec63e07aSXin Li MakeEntry(1, "write", kInt, kHex, kInt),
147*ec63e07aSXin Li MakeEntry(2, "open", kPath, kHex, kOct),
148*ec63e07aSXin Li MakeEntry(3, "close", kInt),
149*ec63e07aSXin Li MakeEntry(4, "stat", kPath, kGen),
150*ec63e07aSXin Li MakeEntry(5, "fstat", kInt, kHex),
151*ec63e07aSXin Li MakeEntry(6, "lstat", kPath, kGen),
152*ec63e07aSXin Li MakeEntry(7, "poll", kGen, kInt, kInt),
153*ec63e07aSXin Li MakeEntry(8, "lseek", kInt, kInt, kInt),
154*ec63e07aSXin Li MakeEntry(9, "mmap", kHex, kInt, kHex, kHex, kInt, kInt),
155*ec63e07aSXin Li MakeEntry(10, "mprotect", kHex, kInt, kHex),
156*ec63e07aSXin Li MakeEntry(11, "munmap", kHex, kInt),
157*ec63e07aSXin Li MakeEntry(12, "brk", kInt),
158*ec63e07aSXin Li MakeEntry(13, "rt_sigaction", kSignal, kHex, kHex, kInt),
159*ec63e07aSXin Li MakeEntry(14, "rt_sigprocmask", kInt, kHex, kHex, kInt),
160*ec63e07aSXin Li MakeEntry(15, "rt_sigreturn"),
161*ec63e07aSXin Li MakeEntry(16, "ioctl", kInt, kInt, kHex),
162*ec63e07aSXin Li MakeEntry(17, "pread64", kInt, kHex, kInt, kInt),
163*ec63e07aSXin Li MakeEntry(18, "pwrite64", kInt, kHex, kInt, kInt),
164*ec63e07aSXin Li MakeEntry(19, "readv", kInt, kHex, kInt),
165*ec63e07aSXin Li MakeEntry(20, "writev", kInt, kHex, kInt),
166*ec63e07aSXin Li MakeEntry(21, "access", kPath, kOct),
167*ec63e07aSXin Li MakeEntry(22, "pipe", kHex),
168*ec63e07aSXin Li MakeEntry(23, "select", kInt, kHex, kHex, kHex, kHex),
169*ec63e07aSXin Li MakeEntry(24, "sched_yield"),
170*ec63e07aSXin Li MakeEntry(25, "mremap", kHex, kInt, kInt, kInt, kHex),
171*ec63e07aSXin Li MakeEntry(26, "msync", kHex, kInt, kInt),
172*ec63e07aSXin Li MakeEntry(27, "mincore", kHex, kInt, kHex),
173*ec63e07aSXin Li MakeEntry(28, "madvise", kHex, kInt, kInt),
174*ec63e07aSXin Li MakeEntry(29, "shmget", kInt, kInt, kHex),
175*ec63e07aSXin Li MakeEntry(30, "shmat", kInt, kHex, kHex),
176*ec63e07aSXin Li MakeEntry(31, "shmctl", kInt, kInt, kHex),
177*ec63e07aSXin Li MakeEntry(32, "dup", kInt),
178*ec63e07aSXin Li MakeEntry(33, "dup2", kInt, kInt),
179*ec63e07aSXin Li MakeEntry(34, "pause"),
180*ec63e07aSXin Li MakeEntry(35, "nanosleep", kHex, kHex),
181*ec63e07aSXin Li MakeEntry(36, "getitimer", kInt, kHex),
182*ec63e07aSXin Li MakeEntry(37, "alarm", kInt),
183*ec63e07aSXin Li MakeEntry(38, "setitimer", kInt, kHex, kHex),
184*ec63e07aSXin Li MakeEntry(39, "getpid"),
185*ec63e07aSXin Li MakeEntry(40, "sendfile", kInt, kInt, kHex, kInt),
186*ec63e07aSXin Li MakeEntry(41, "socket", kAddressFamily, kInt, kInt),
187*ec63e07aSXin Li MakeEntry(42, "connect", kInt, kSockaddr, kInt),
188*ec63e07aSXin Li MakeEntry(43, "accept", kInt, kSockaddr, kHex),
189*ec63e07aSXin Li MakeEntry(44, "sendto", kInt, kHex, kInt, kHex, kSockaddr, kInt),
190*ec63e07aSXin Li MakeEntry(45, "recvfrom", kInt, kHex, kInt, kHex, kSockaddr, kHex),
191*ec63e07aSXin Li MakeEntry(46, "sendmsg", kInt, kSockmsghdr, kHex),
192*ec63e07aSXin Li MakeEntry(47, "recvmsg", kInt, kHex, kInt),
193*ec63e07aSXin Li MakeEntry(48, "shutdown", kInt, kInt),
194*ec63e07aSXin Li MakeEntry(49, "bind", kInt, kSockaddr, kInt),
195*ec63e07aSXin Li MakeEntry(50, "listen", kInt, kInt),
196*ec63e07aSXin Li MakeEntry(51, "getsockname", kInt, kSockaddr, kHex),
197*ec63e07aSXin Li MakeEntry(52, "getpeername", kInt, kSockaddr, kHex),
198*ec63e07aSXin Li MakeEntry(53, "socketpair", kAddressFamily, kInt, kInt, kHex),
199*ec63e07aSXin Li MakeEntry(54, "setsockopt", kInt, kInt, kInt, kHex, kHex),
200*ec63e07aSXin Li MakeEntry(55, "getsockopt", kInt, kInt, kInt, kHex, kInt),
201*ec63e07aSXin Li MakeEntry(56, "clone", kCloneFlag, kHex, kHex, kHex, kHex),
202*ec63e07aSXin Li MakeEntry(57, "fork"),
203*ec63e07aSXin Li MakeEntry(58, "vfork"),
204*ec63e07aSXin Li MakeEntry(59, "execve", kPath, kHex, kHex),
205*ec63e07aSXin Li MakeEntry(60, "exit", kInt),
206*ec63e07aSXin Li MakeEntry(61, "wait4", kInt, kHex, kHex, kHex),
207*ec63e07aSXin Li MakeEntry(62, "kill", kInt, kSignal),
208*ec63e07aSXin Li MakeEntry(63, "uname", kInt),
209*ec63e07aSXin Li MakeEntry(64, "semget", kInt, kInt, kHex),
210*ec63e07aSXin Li MakeEntry(65, "semop", kInt, kHex, kInt),
211*ec63e07aSXin Li MakeEntry(66, "semctl", kInt, kInt, kInt, kHex),
212*ec63e07aSXin Li MakeEntry(67, "shmdt", kHex),
213*ec63e07aSXin Li MakeEntry(68, "msgget", kInt, kHex),
214*ec63e07aSXin Li MakeEntry(69, "msgsnd", kInt, kHex, kInt, kHex),
215*ec63e07aSXin Li MakeEntry(70, "msgrcv", kInt, kHex, kInt, kInt, kHex),
216*ec63e07aSXin Li MakeEntry(71, "msgctl", kInt, kInt, kHex),
217*ec63e07aSXin Li MakeEntry(72, "fcntl", kInt, kInt, kHex),
218*ec63e07aSXin Li MakeEntry(73, "flock", kInt, kInt),
219*ec63e07aSXin Li MakeEntry(74, "fsync", kInt),
220*ec63e07aSXin Li MakeEntry(75, "fdatasync", kInt),
221*ec63e07aSXin Li MakeEntry(76, "truncate", kPath, kInt),
222*ec63e07aSXin Li MakeEntry(77, "ftruncate", kInt, kInt),
223*ec63e07aSXin Li MakeEntry(78, "getdents", kInt, kHex, kInt),
224*ec63e07aSXin Li MakeEntry(79, "getcwd", kHex, kInt),
225*ec63e07aSXin Li MakeEntry(80, "chdir", kPath),
226*ec63e07aSXin Li MakeEntry(81, "fchdir", kInt),
227*ec63e07aSXin Li MakeEntry(82, "rename", kPath, kPath),
228*ec63e07aSXin Li MakeEntry(83, "mkdir", kPath, kOct),
229*ec63e07aSXin Li MakeEntry(84, "rmdir", kPath),
230*ec63e07aSXin Li MakeEntry(85, "creat", kPath, kOct),
231*ec63e07aSXin Li MakeEntry(86, "link", kPath, kPath),
232*ec63e07aSXin Li MakeEntry(87, "unlink", kPath),
233*ec63e07aSXin Li MakeEntry(88, "symlink", kPath, kPath),
234*ec63e07aSXin Li MakeEntry(89, "readlink", kPath, kHex, kInt),
235*ec63e07aSXin Li MakeEntry(90, "chmod", kPath, kOct),
236*ec63e07aSXin Li MakeEntry(91, "fchmod", kInt, kOct),
237*ec63e07aSXin Li MakeEntry(92, "chown", kPath, kInt, kInt),
238*ec63e07aSXin Li MakeEntry(93, "fchown", kInt, kInt, kInt),
239*ec63e07aSXin Li MakeEntry(94, "lchown", kPath, kInt, kInt),
240*ec63e07aSXin Li MakeEntry(95, "umask", kHex),
241*ec63e07aSXin Li MakeEntry(96, "gettimeofday", kHex, kHex),
242*ec63e07aSXin Li MakeEntry(97, "getrlimit", kInt, kHex),
243*ec63e07aSXin Li MakeEntry(98, "getrusage", kInt, kHex),
244*ec63e07aSXin Li MakeEntry(99, "sysinfo", kHex),
245*ec63e07aSXin Li MakeEntry(100, "times", kHex),
246*ec63e07aSXin Li MakeEntry(101, "ptrace", kInt, kInt, kHex, kHex),
247*ec63e07aSXin Li MakeEntry(102, "getuid"),
248*ec63e07aSXin Li MakeEntry(103, "syslog", kInt, kHex, kInt),
249*ec63e07aSXin Li MakeEntry(104, "getgid"),
250*ec63e07aSXin Li MakeEntry(105, "setuid", kInt),
251*ec63e07aSXin Li MakeEntry(106, "setgid", kInt),
252*ec63e07aSXin Li MakeEntry(107, "geteuid"),
253*ec63e07aSXin Li MakeEntry(108, "getegid"),
254*ec63e07aSXin Li MakeEntry(109, "setpgid", kInt, kInt),
255*ec63e07aSXin Li MakeEntry(110, "getppid"),
256*ec63e07aSXin Li MakeEntry(111, "getpgrp"),
257*ec63e07aSXin Li MakeEntry(112, "setsid"),
258*ec63e07aSXin Li MakeEntry(113, "setreuid", kInt, kInt),
259*ec63e07aSXin Li MakeEntry(114, "setregid", kInt, kInt),
260*ec63e07aSXin Li MakeEntry(115, "getgroups", kInt, kHex),
261*ec63e07aSXin Li MakeEntry(116, "setgroups", kInt, kHex),
262*ec63e07aSXin Li MakeEntry(117, "setresuid", kInt, kInt, kInt),
263*ec63e07aSXin Li MakeEntry(118, "getresuid", kHex, kHex, kHex),
264*ec63e07aSXin Li MakeEntry(119, "setresgid", kInt, kInt, kInt),
265*ec63e07aSXin Li MakeEntry(120, "getresgid", kHex, kHex, kHex),
266*ec63e07aSXin Li MakeEntry(121, "getpgid", kInt),
267*ec63e07aSXin Li MakeEntry(122, "setfsuid", kInt),
268*ec63e07aSXin Li MakeEntry(123, "setfsgid", kInt),
269*ec63e07aSXin Li MakeEntry(124, "getsid", kInt),
270*ec63e07aSXin Li MakeEntry(125, "capget", kHex, kHex),
271*ec63e07aSXin Li MakeEntry(126, "capset", kHex, kHex),
272*ec63e07aSXin Li MakeEntry(127, "rt_sigpending", kHex, kInt),
273*ec63e07aSXin Li MakeEntry(128, "rt_sigtimedwait", kHex, kHex, kHex, kInt),
274*ec63e07aSXin Li MakeEntry(129, "rt_sigqueueinfo", kInt, kSignal, kHex),
275*ec63e07aSXin Li MakeEntry(130, "rt_sigsuspend", kHex, kInt),
276*ec63e07aSXin Li MakeEntry(131, "sigaltstack", kHex, kHex),
277*ec63e07aSXin Li MakeEntry(132, "utime", kPath, kHex),
278*ec63e07aSXin Li MakeEntry(133, "mknod", kPath, kOct, kHex),
279*ec63e07aSXin Li MakeEntry(134, "uselib", kPath),
280*ec63e07aSXin Li MakeEntry(135, "personality", kHex),
281*ec63e07aSXin Li MakeEntry(136, "ustat", kHex, kHex),
282*ec63e07aSXin Li MakeEntry(137, "statfs", kPath, kHex),
283*ec63e07aSXin Li MakeEntry(138, "fstatfs", kInt, kHex),
284*ec63e07aSXin Li MakeEntry(139, "sysfs", kInt, kInt, kInt),
285*ec63e07aSXin Li MakeEntry(140, "getpriority", kInt, kInt),
286*ec63e07aSXin Li MakeEntry(141, "setpriority", kInt, kInt, kInt),
287*ec63e07aSXin Li MakeEntry(142, "sched_setparam", kInt, kHex),
288*ec63e07aSXin Li MakeEntry(143, "sched_getparam", kInt, kHex),
289*ec63e07aSXin Li MakeEntry(144, "sched_setscheduler", kInt, kInt, kHex),
290*ec63e07aSXin Li MakeEntry(145, "sched_getscheduler", kInt),
291*ec63e07aSXin Li MakeEntry(146, "sched_get_priority_max", kInt),
292*ec63e07aSXin Li MakeEntry(147, "sched_get_priority_min", kInt),
293*ec63e07aSXin Li MakeEntry(148, "sched_rr_get_interval", kInt, kHex),
294*ec63e07aSXin Li MakeEntry(149, "mlock", kInt, kInt),
295*ec63e07aSXin Li MakeEntry(150, "munlock", kInt, kInt),
296*ec63e07aSXin Li MakeEntry(151, "mlockall", kHex),
297*ec63e07aSXin Li MakeEntry(152, "munlockall"),
298*ec63e07aSXin Li MakeEntry(153, "vhangup"),
299*ec63e07aSXin Li MakeEntry(154, "modify_ldt", kInt, kHex, kInt),
300*ec63e07aSXin Li MakeEntry(155, "pivot_root", kPath, kPath),
301*ec63e07aSXin Li MakeEntry(156, "_sysctl", kHex),
302*ec63e07aSXin Li MakeEntry(157, "prctl", kInt, kHex, kHex, kHex, kHex),
303*ec63e07aSXin Li MakeEntry(158, "arch_prctl", kInt, kHex),
304*ec63e07aSXin Li MakeEntry(159, "adjtimex", kHex),
305*ec63e07aSXin Li MakeEntry(160, "setrlimit", kInt, kHex),
306*ec63e07aSXin Li MakeEntry(161, "chroot", kPath),
307*ec63e07aSXin Li MakeEntry(162, "sync"),
308*ec63e07aSXin Li MakeEntry(163, "acct", kPath),
309*ec63e07aSXin Li MakeEntry(164, "settimeofday", kHex, kHex),
310*ec63e07aSXin Li MakeEntry(165, "mount", kPath, kPath, kString, kHex, kGen),
311*ec63e07aSXin Li MakeEntry(166, "umount2", kPath, kHex),
312*ec63e07aSXin Li MakeEntry(167, "swapon", kPath, kHex),
313*ec63e07aSXin Li MakeEntry(168, "swapoff", kPath),
314*ec63e07aSXin Li MakeEntry(169, "reboot", kInt, kHex, kHex, kGen),
315*ec63e07aSXin Li MakeEntry(170, "sethostname", kString, kInt),
316*ec63e07aSXin Li MakeEntry(171, "setdomainname", kString, kInt),
317*ec63e07aSXin Li MakeEntry(172, "iopl", kInt),
318*ec63e07aSXin Li MakeEntry(173, "ioperm", kInt, kInt, kInt),
319*ec63e07aSXin Li MakeEntry(174, "create_module", kString, kInt),
320*ec63e07aSXin Li MakeEntry(175, "init_module", kGen, kInt, kString),
321*ec63e07aSXin Li MakeEntry(176, "delete_module", kString, kHex),
322*ec63e07aSXin Li MakeEntry(177, "get_kernel_syms", kHex),
323*ec63e07aSXin Li MakeEntry(178, "query_module", kString, kInt, kGen, kInt, kGen),
324*ec63e07aSXin Li MakeEntry(179, "quotactl", kInt, kPath, kInt, kGen),
325*ec63e07aSXin Li MakeEntry(180, "nfsservctl", kInt, kGen, kGen),
326*ec63e07aSXin Li MakeEntry(181, "getpmsg", UnknownArguments()),
327*ec63e07aSXin Li MakeEntry(182, "putpmsg", UnknownArguments()),
328*ec63e07aSXin Li MakeEntry(183, "afs_syscall", UnknownArguments()),
329*ec63e07aSXin Li MakeEntry(184, "tuxcall", UnknownArguments()),
330*ec63e07aSXin Li MakeEntry(185, "security", UnknownArguments()),
331*ec63e07aSXin Li MakeEntry(186, "gettid"),
332*ec63e07aSXin Li MakeEntry(187, "readahead", kInt, kInt, kInt),
333*ec63e07aSXin Li MakeEntry(188, "setxattr", kPath, kString, kGen, kInt, kHex),
334*ec63e07aSXin Li MakeEntry(189, "lsetxattr", kPath, kString, kGen, kInt, kHex),
335*ec63e07aSXin Li MakeEntry(190, "fsetxattr", kInt, kString, kGen, kInt, kHex),
336*ec63e07aSXin Li MakeEntry(191, "getxattr", kPath, kString, kGen, kInt),
337*ec63e07aSXin Li MakeEntry(192, "lgetxattr", kPath, kString, kGen, kInt),
338*ec63e07aSXin Li MakeEntry(193, "fgetxattr", kInt, kString, kGen, kInt),
339*ec63e07aSXin Li MakeEntry(194, "listxattr", kPath, kGen, kInt),
340*ec63e07aSXin Li MakeEntry(195, "llistxattr", kPath, kGen, kInt),
341*ec63e07aSXin Li MakeEntry(196, "flistxattr", kInt, kGen, kInt),
342*ec63e07aSXin Li MakeEntry(197, "removexattr", kPath, kString),
343*ec63e07aSXin Li MakeEntry(198, "lremovexattr", kPath, kString),
344*ec63e07aSXin Li MakeEntry(199, "fremovexattr", kInt, kString),
345*ec63e07aSXin Li MakeEntry(200, "tkill", kInt, kSignal),
346*ec63e07aSXin Li MakeEntry(201, "time", kHex),
347*ec63e07aSXin Li MakeEntry(202, "futex", kGen, kInt, kInt, kGen, kGen, kInt),
348*ec63e07aSXin Li MakeEntry(203, "sched_setaffinity", kInt, kInt, kHex),
349*ec63e07aSXin Li MakeEntry(204, "sched_getaffinity", kInt, kInt, kHex),
350*ec63e07aSXin Li MakeEntry(205, "set_thread_area", kHex),
351*ec63e07aSXin Li MakeEntry(206, "io_setup", kInt, kHex),
352*ec63e07aSXin Li MakeEntry(207, "io_destroy", kInt),
353*ec63e07aSXin Li MakeEntry(208, "io_getevents", kInt, kInt, kInt, kHex, kHex),
354*ec63e07aSXin Li MakeEntry(209, "io_submit", kInt, kInt, kHex),
355*ec63e07aSXin Li MakeEntry(210, "io_cancel", kInt, kHex, kHex),
356*ec63e07aSXin Li MakeEntry(211, "get_thread_area", kHex),
357*ec63e07aSXin Li MakeEntry(212, "lookup_dcookie", kInt, kString, kInt),
358*ec63e07aSXin Li MakeEntry(213, "epoll_create", kInt),
359*ec63e07aSXin Li MakeEntry(214, "epoll_ctl_old", UnknownArguments()),
360*ec63e07aSXin Li MakeEntry(215, "epoll_wait_old", UnknownArguments()),
361*ec63e07aSXin Li MakeEntry(216, "remap_file_pages", kGen, kInt, kInt, kInt, kHex),
362*ec63e07aSXin Li MakeEntry(217, "getdents64", kInt, kHex, kInt),
363*ec63e07aSXin Li MakeEntry(218, "set_tid_address", kHex),
364*ec63e07aSXin Li MakeEntry(219, "restart_syscall"),
365*ec63e07aSXin Li MakeEntry(220, "semtimedop", kInt, kHex, kInt, kHex),
366*ec63e07aSXin Li MakeEntry(221, "fadvise64", kInt, kInt, kInt, kInt),
367*ec63e07aSXin Li MakeEntry(222, "timer_create", kInt, kHex, kHex),
368*ec63e07aSXin Li MakeEntry(223, "timer_settime", kInt, kHex, kHex, kHex),
369*ec63e07aSXin Li MakeEntry(224, "timer_gettime", kInt, kHex),
370*ec63e07aSXin Li MakeEntry(225, "timer_getoverrun", kInt),
371*ec63e07aSXin Li MakeEntry(226, "timer_delete", kInt),
372*ec63e07aSXin Li MakeEntry(227, "clock_settime", kInt, kHex),
373*ec63e07aSXin Li MakeEntry(228, "clock_gettime", kInt, kHex),
374*ec63e07aSXin Li MakeEntry(229, "clock_getres", kInt, kHex),
375*ec63e07aSXin Li MakeEntry(230, "clock_nanosleep", kInt, kHex, kHex, kHex),
376*ec63e07aSXin Li MakeEntry(231, "exit_group", kInt),
377*ec63e07aSXin Li MakeEntry(232, "epoll_wait", kInt, kHex, kInt, kInt),
378*ec63e07aSXin Li MakeEntry(233, "epoll_ctl", kInt, kInt, kInt, kHex),
379*ec63e07aSXin Li MakeEntry(234, "tgkill", kInt, kInt, kSignal),
380*ec63e07aSXin Li MakeEntry(235, "utimes", kPath, kHex),
381*ec63e07aSXin Li MakeEntry(236, "vserver", UnknownArguments()),
382*ec63e07aSXin Li MakeEntry(237, "mbind", kGen, kInt, kInt, kHex, kInt, kHex),
383*ec63e07aSXin Li MakeEntry(238, "set_mempolicy", kInt, kHex, kInt),
384*ec63e07aSXin Li MakeEntry(239, "get_mempolicy", kInt, kHex, kInt, kInt, kHex),
385*ec63e07aSXin Li MakeEntry(240, "mq_open", kString, kHex, kOct, kHex),
386*ec63e07aSXin Li MakeEntry(241, "mq_unlink", kString),
387*ec63e07aSXin Li MakeEntry(242, "mq_timedsend", kHex, kHex, kInt, kInt, kHex),
388*ec63e07aSXin Li MakeEntry(243, "mq_timedreceive", kHex, kHex, kInt, kHex, kHex),
389*ec63e07aSXin Li MakeEntry(244, "mq_notify", kHex, kHex),
390*ec63e07aSXin Li MakeEntry(245, "mq_getsetattr", kHex, kHex, kHex),
391*ec63e07aSXin Li MakeEntry(246, "kexec_load", kHex, kInt, kHex, kHex),
392*ec63e07aSXin Li MakeEntry(247, "waitid", kInt, kInt, kHex, kInt, kHex),
393*ec63e07aSXin Li MakeEntry(248, "add_key", kString, kString, kGen, kInt, kInt),
394*ec63e07aSXin Li MakeEntry(249, "request_key", kString, kString, kHex, kInt),
395*ec63e07aSXin Li MakeEntry(250, "keyctl", kInt, kInt, kInt, kInt, kInt),
396*ec63e07aSXin Li MakeEntry(251, "ioprio_set", kInt, kInt, kInt),
397*ec63e07aSXin Li MakeEntry(252, "ioprio_get", kInt, kInt),
398*ec63e07aSXin Li MakeEntry(253, "inotify_init"),
399*ec63e07aSXin Li MakeEntry(254, "inotify_add_watch", kInt, kPath, kHex),
400*ec63e07aSXin Li MakeEntry(255, "inotify_rm_watch", kInt, kInt),
401*ec63e07aSXin Li MakeEntry(256, "migrate_pages", kInt, kInt, kHex, kHex),
402*ec63e07aSXin Li MakeEntry(257, "openat", kInt, kPath, kHex, kOct),
403*ec63e07aSXin Li MakeEntry(258, "mkdirat", kInt, kPath, kOct),
404*ec63e07aSXin Li MakeEntry(259, "mknodat", kInt, kPath, kOct, kHex),
405*ec63e07aSXin Li MakeEntry(260, "fchownat", kInt, kPath, kInt, kInt, kHex),
406*ec63e07aSXin Li MakeEntry(261, "futimesat", kInt, kPath, kHex),
407*ec63e07aSXin Li MakeEntry(262, "newfstatat", kInt, kPath, kHex, kHex),
408*ec63e07aSXin Li MakeEntry(263, "unlinkat", kInt, kPath, kHex),
409*ec63e07aSXin Li MakeEntry(264, "renameat", kInt, kPath, kInt, kPath),
410*ec63e07aSXin Li MakeEntry(265, "linkat", kInt, kPath, kInt, kPath, kHex),
411*ec63e07aSXin Li MakeEntry(266, "symlinkat", kPath, kInt, kPath),
412*ec63e07aSXin Li MakeEntry(267, "readlinkat", kInt, kPath, kHex, kInt),
413*ec63e07aSXin Li MakeEntry(268, "fchmodat", kInt, kPath, kOct),
414*ec63e07aSXin Li MakeEntry(269, "faccessat", kInt, kPath, kInt, kHex),
415*ec63e07aSXin Li MakeEntry(270, "pselect6", kInt, kHex, kHex, kHex, kHex),
416*ec63e07aSXin Li MakeEntry(271, "ppoll", kHex, kInt, kHex, kHex, kInt),
417*ec63e07aSXin Li MakeEntry(272, "unshare", kHex),
418*ec63e07aSXin Li MakeEntry(273, "set_robust_list", kHex, kInt),
419*ec63e07aSXin Li MakeEntry(274, "get_robust_list", kInt, kHex, kHex),
420*ec63e07aSXin Li MakeEntry(275, "splice", kInt, kHex, kInt, kHex, kInt, kHex),
421*ec63e07aSXin Li MakeEntry(276, "tee", kInt, kInt, kInt, kHex),
422*ec63e07aSXin Li MakeEntry(277, "sync_file_range", kInt, kInt, kInt, kHex),
423*ec63e07aSXin Li MakeEntry(278, "vmsplice", kInt, kHex, kInt, kInt),
424*ec63e07aSXin Li MakeEntry(279, "move_pages", kInt, kInt, kHex, kHex, kHex, kHex),
425*ec63e07aSXin Li MakeEntry(280, "utimensat", kInt, kPath, kHex, kHex),
426*ec63e07aSXin Li MakeEntry(281, "epoll_pwait", kInt, kHex, kInt, kInt, kHex, kInt),
427*ec63e07aSXin Li MakeEntry(282, "signalfd", kInt, kHex, kHex),
428*ec63e07aSXin Li MakeEntry(283, "timerfd_create", kInt, kHex),
429*ec63e07aSXin Li MakeEntry(284, "eventfd", kInt),
430*ec63e07aSXin Li MakeEntry(285, "fallocate", kInt, kOct, kInt, kInt),
431*ec63e07aSXin Li MakeEntry(286, "timerfd_settime", kInt, kHex, kHex, kHex),
432*ec63e07aSXin Li MakeEntry(287, "timerfd_gettime", kInt, kHex),
433*ec63e07aSXin Li MakeEntry(288, "accept4", kInt, kHex, kHex, kInt),
434*ec63e07aSXin Li MakeEntry(289, "signalfd4", kInt, kHex, kHex, kHex),
435*ec63e07aSXin Li MakeEntry(290, "eventfd2", kInt, kHex),
436*ec63e07aSXin Li MakeEntry(291, "epoll_create1", kHex),
437*ec63e07aSXin Li MakeEntry(292, "dup3", kInt, kInt, kHex),
438*ec63e07aSXin Li MakeEntry(293, "pipe2", kHex, kHex),
439*ec63e07aSXin Li MakeEntry(294, "inotify_init1", kHex),
440*ec63e07aSXin Li MakeEntry(295, "preadv", kInt, kHex, kInt, kInt, kInt),
441*ec63e07aSXin Li MakeEntry(296, "pwritev", kInt, kHex, kInt, kInt, kInt),
442*ec63e07aSXin Li MakeEntry(297, "rt_tgsigqueueinfo", kInt, kInt, kInt, kHex),
443*ec63e07aSXin Li MakeEntry(298, "perf_event_open", kHex, kInt, kInt, kInt, kHex),
444*ec63e07aSXin Li MakeEntry(299, "recvmmsg", kInt, kHex, kInt, kHex, kHex),
445*ec63e07aSXin Li MakeEntry(300, "fanotify_init", kHex, kHex),
446*ec63e07aSXin Li MakeEntry(301, "fanotify_mark", kInt, kHex, kHex, kInt, kPath),
447*ec63e07aSXin Li MakeEntry(302, "prlimit64", kInt, kInt, kHex, kHex),
448*ec63e07aSXin Li MakeEntry(303, "name_to_handle_at", kInt, kPath, kHex, kHex, kHex),
449*ec63e07aSXin Li MakeEntry(304, "open_by_handle_at", kInt, kHex, kHex),
450*ec63e07aSXin Li MakeEntry(305, "clock_adjtime", kInt, kHex),
451*ec63e07aSXin Li MakeEntry(306, "syncfs", kInt),
452*ec63e07aSXin Li MakeEntry(307, "sendmmsg", kInt, kHex, kInt, kHex),
453*ec63e07aSXin Li MakeEntry(308, "setns", kInt, kHex),
454*ec63e07aSXin Li MakeEntry(309, "getcpu", kHex, kHex, kHex),
455*ec63e07aSXin Li MakeEntry(310, "process_vm_readv", kInt, kHex, kInt, kHex, kInt,
456*ec63e07aSXin Li kInt),
457*ec63e07aSXin Li MakeEntry(311, "process_vm_writev", kInt, kHex, kInt, kHex, kInt,
458*ec63e07aSXin Li kInt),
459*ec63e07aSXin Li MakeEntry(312, "kcmp", kInt, kInt, kInt, kInt, kInt),
460*ec63e07aSXin Li MakeEntry(313, "finit_module", kInt, kString, kHex),
461*ec63e07aSXin Li MakeEntry(314, "sched_setattr", kInt, kHex, kHex),
462*ec63e07aSXin Li MakeEntry(315, "sched_getattr", kInt, kHex, kInt, kHex),
463*ec63e07aSXin Li MakeEntry(316, "renameat2", kInt, kPath, kInt, kPath, kHex),
464*ec63e07aSXin Li MakeEntry(317, "seccomp", kInt, kHex, kHex),
465*ec63e07aSXin Li MakeEntry(318, "getrandom", kGen, kInt, kHex),
466*ec63e07aSXin Li MakeEntry(319, "memfd_create", kString, kHex),
467*ec63e07aSXin Li MakeEntry(320, "kexec_file_load", kInt, kInt, kInt, kString, kHex),
468*ec63e07aSXin Li MakeEntry(321, "bpf", kInt, kHex, kInt),
469*ec63e07aSXin Li MakeEntry(322, "execveat", kInt, kPath, kHex, kHex, kHex),
470*ec63e07aSXin Li MakeEntry(323, "userfaultfd", kHex),
471*ec63e07aSXin Li MakeEntry(324, "membarrier", kInt, kHex),
472*ec63e07aSXin Li MakeEntry(325, "mlock2", kHex, kInt, kHex),
473*ec63e07aSXin Li MakeEntry(326, "copy_file_range", kInt, kHex, kInt, kHex, kInt,
474*ec63e07aSXin Li kHex),
475*ec63e07aSXin Li MakeEntry(327, "preadv2", kInt, kHex, kInt, kInt, kInt, kHex),
476*ec63e07aSXin Li MakeEntry(328, "pwritev2", kInt, kHex, kInt, kInt, kInt, kHex),
477*ec63e07aSXin Li MakeEntry(329, "pkey_mprotect", kInt, kInt, kHex, kInt),
478*ec63e07aSXin Li MakeEntry(330, "pkey_alloc", kInt, kInt),
479*ec63e07aSXin Li MakeEntry(331, "pkey_free", kInt),
480*ec63e07aSXin Li MakeEntry(332, "statx", kInt, kPath, kHex, kHex, kHex),
481*ec63e07aSXin Li MakeEntry(333, "io_pgetevents", UnknownArguments()),
482*ec63e07aSXin Li MakeEntry(334, "rseq", kHex, kInt, kHex, kHex),
483*ec63e07aSXin Li MakeEntry(435, "clone3", kHex, kInt),
484*ec63e07aSXin Li MakeEntry(436, "close_range", kInt, kInt, kHex),
485*ec63e07aSXin Li MakeEntry(437, "openat2", kInt, kPath, kHex, kInt),
486*ec63e07aSXin Li MakeEntry(438, "pidfd_getfd", UnknownArguments()),
487*ec63e07aSXin Li MakeEntry(439, "faccessat2", kInt, kPath, kHex, kHex),
488*ec63e07aSXin Li MakeEntry(440, "process_madvise", UnknownArguments()),
489*ec63e07aSXin Li MakeEntry(441, "epoll_pwait2", UnknownArguments()),
490*ec63e07aSXin Li MakeEntry(442, "mount_setattr", UnknownArguments()),
491*ec63e07aSXin Li MakeEntry(443, "quotactl_fd", UnknownArguments()),
492*ec63e07aSXin Li MakeEntry(444, "landlock_create_ruleset", UnknownArguments()),
493*ec63e07aSXin Li MakeEntry(445, "landlock_add_rule", UnknownArguments()),
494*ec63e07aSXin Li MakeEntry(446, "landlock_restrict_self", UnknownArguments()),
495*ec63e07aSXin Li MakeEntry(447, "memfd_secret", UnknownArguments()),
496*ec63e07aSXin Li MakeEntry(448, "process_mrelease", UnknownArguments()),
497*ec63e07aSXin Li MakeEntry(449, "futex_waitv", UnknownArguments()),
498*ec63e07aSXin Li MakeEntry(450, "set_mempolicy_home_node", UnknownArguments()),
499*ec63e07aSXin Li MakeEntry(451, "cachestat", UnknownArguments()),
500*ec63e07aSXin Li MakeEntry(452, "fchmodat2", kInt, kPath, kHex, kHex),
501*ec63e07aSXin Li MakeEntry(453, "map_shadow_stack", UnknownArguments()),
502*ec63e07aSXin Li MakeEntry(454, "futex_wake", UnknownArguments()),
503*ec63e07aSXin Li MakeEntry(455, "futex_wait", UnknownArguments()),
504*ec63e07aSXin Li MakeEntry(456, "futex_requeue", UnknownArguments()),
505*ec63e07aSXin Li MakeEntry(457, "statmount", UnknownArguments()),
506*ec63e07aSXin Li MakeEntry(458, "listmount", UnknownArguments()),
507*ec63e07aSXin Li MakeEntry(459, "lsm_get_self_attr", UnknownArguments()),
508*ec63e07aSXin Li MakeEntry(460, "lsm_set_self_attr", UnknownArguments()),
509*ec63e07aSXin Li MakeEntry(461, "lsm_list_modules", UnknownArguments()),
510*ec63e07aSXin Li // clang-format on
511*ec63e07aSXin Li };
512*ec63e07aSXin Li
513*ec63e07aSXin Li static_assert(IsSorted(kSyscallDataX8664, SyscallTable::Entry::BySyscallNr),
514*ec63e07aSXin Li "Syscalls should be sorted");
515*ec63e07aSXin Li
516*ec63e07aSXin Li constexpr std::array kSyscallDataX8632 = {
517*ec63e07aSXin Li // clang-format off
518*ec63e07aSXin Li MakeEntry(0, "restart_syscall"),
519*ec63e07aSXin Li MakeEntry(1, "exit", kInt),
520*ec63e07aSXin Li MakeEntry(2, "fork"),
521*ec63e07aSXin Li MakeEntry(3, "read", kInt, kHex, kInt),
522*ec63e07aSXin Li MakeEntry(4, "write", kInt, kHex, kInt),
523*ec63e07aSXin Li MakeEntry(5, "open", kPath, kHex, kOct),
524*ec63e07aSXin Li MakeEntry(6, "close", kInt),
525*ec63e07aSXin Li MakeEntry(7, "waitpid", kInt, kHex, kHex),
526*ec63e07aSXin Li MakeEntry(8, "creat", kPath, kOct),
527*ec63e07aSXin Li MakeEntry(9, "link", kPath, kPath),
528*ec63e07aSXin Li MakeEntry(10, "unlink", kPath),
529*ec63e07aSXin Li MakeEntry(11, "execve", kPath, kHex, kHex),
530*ec63e07aSXin Li MakeEntry(12, "chdir", kPath),
531*ec63e07aSXin Li MakeEntry(13, "time", kHex),
532*ec63e07aSXin Li MakeEntry(14, "mknod", kPath, kOct, kHex),
533*ec63e07aSXin Li MakeEntry(15, "chmod", kPath, kOct),
534*ec63e07aSXin Li MakeEntry(16, "lchown", kPath, kInt, kInt),
535*ec63e07aSXin Li MakeEntry(17, "break", UnknownArguments()),
536*ec63e07aSXin Li MakeEntry(18, "oldstat", UnknownArguments()),
537*ec63e07aSXin Li MakeEntry(19, "lseek", kInt, kInt, kInt),
538*ec63e07aSXin Li MakeEntry(20, "getpid"),
539*ec63e07aSXin Li MakeEntry(21, "mount", kPath, kPath, kString, kHex, kGen),
540*ec63e07aSXin Li MakeEntry(22, "umount", UnknownArguments()),
541*ec63e07aSXin Li MakeEntry(23, "setuid", kInt),
542*ec63e07aSXin Li MakeEntry(24, "getuid"),
543*ec63e07aSXin Li MakeEntry(25, "stime", UnknownArguments()),
544*ec63e07aSXin Li MakeEntry(26, "ptrace", kHex, kHex, kHex, kHex),
545*ec63e07aSXin Li MakeEntry(27, "alarm", kInt),
546*ec63e07aSXin Li MakeEntry(28, "oldfstat", UnknownArguments()),
547*ec63e07aSXin Li MakeEntry(29, "pause"),
548*ec63e07aSXin Li MakeEntry(30, "utime", kPath, kHex),
549*ec63e07aSXin Li MakeEntry(31, "stty", UnknownArguments()),
550*ec63e07aSXin Li MakeEntry(32, "gtty", UnknownArguments()),
551*ec63e07aSXin Li MakeEntry(33, "access", kPath, kHex),
552*ec63e07aSXin Li MakeEntry(34, "nice", UnknownArguments()),
553*ec63e07aSXin Li MakeEntry(35, "ftime", UnknownArguments()),
554*ec63e07aSXin Li MakeEntry(36, "sync"),
555*ec63e07aSXin Li MakeEntry(37, "kill", kInt, kSignal),
556*ec63e07aSXin Li MakeEntry(38, "rename", kPath, kPath),
557*ec63e07aSXin Li MakeEntry(39, "mkdir", kPath, kOct),
558*ec63e07aSXin Li MakeEntry(40, "rmdir", kPath),
559*ec63e07aSXin Li MakeEntry(41, "dup", kInt),
560*ec63e07aSXin Li MakeEntry(42, "pipe", kHex),
561*ec63e07aSXin Li MakeEntry(43, "times", kHex),
562*ec63e07aSXin Li MakeEntry(44, "prof", UnknownArguments()),
563*ec63e07aSXin Li MakeEntry(45, "brk", kInt),
564*ec63e07aSXin Li MakeEntry(46, "setgid", kInt),
565*ec63e07aSXin Li MakeEntry(47, "getgid"),
566*ec63e07aSXin Li MakeEntry(48, "signal", UnknownArguments()),
567*ec63e07aSXin Li MakeEntry(49, "geteuid"),
568*ec63e07aSXin Li MakeEntry(50, "getegid"),
569*ec63e07aSXin Li MakeEntry(51, "acct", kPath),
570*ec63e07aSXin Li MakeEntry(52, "umount2", kPath, kHex),
571*ec63e07aSXin Li MakeEntry(53, "lock", UnknownArguments()),
572*ec63e07aSXin Li MakeEntry(54, "ioctl", kInt, kInt, kHex),
573*ec63e07aSXin Li MakeEntry(55, "fcntl", kInt, kInt, kHex),
574*ec63e07aSXin Li MakeEntry(56, "mpx", UnknownArguments()),
575*ec63e07aSXin Li MakeEntry(57, "setpgid", kInt, kInt),
576*ec63e07aSXin Li MakeEntry(58, "ulimit", UnknownArguments()),
577*ec63e07aSXin Li MakeEntry(59, "oldolduname", UnknownArguments()),
578*ec63e07aSXin Li MakeEntry(60, "umask", kHex),
579*ec63e07aSXin Li MakeEntry(61, "chroot", kPath),
580*ec63e07aSXin Li MakeEntry(62, "ustat", kHex, kHex),
581*ec63e07aSXin Li MakeEntry(63, "dup2", kInt, kInt),
582*ec63e07aSXin Li MakeEntry(64, "getppid"),
583*ec63e07aSXin Li MakeEntry(65, "getpgrp"),
584*ec63e07aSXin Li MakeEntry(66, "setsid"),
585*ec63e07aSXin Li MakeEntry(67, "sigaction", UnknownArguments()),
586*ec63e07aSXin Li MakeEntry(68, "sgetmask", UnknownArguments()),
587*ec63e07aSXin Li MakeEntry(69, "ssetmask", UnknownArguments()),
588*ec63e07aSXin Li MakeEntry(70, "setreuid", kInt, kInt),
589*ec63e07aSXin Li MakeEntry(71, "setregid", kInt, kInt),
590*ec63e07aSXin Li MakeEntry(72, "sigsuspend", UnknownArguments()),
591*ec63e07aSXin Li MakeEntry(73, "sigpending", UnknownArguments()),
592*ec63e07aSXin Li MakeEntry(74, "sethostname", kString, kInt),
593*ec63e07aSXin Li MakeEntry(75, "setrlimit", kInt, kHex),
594*ec63e07aSXin Li MakeEntry(76, "getrlimit", kInt, kHex),
595*ec63e07aSXin Li MakeEntry(77, "getrusage", kInt, kHex),
596*ec63e07aSXin Li MakeEntry(78, "gettimeofday", kHex, kHex),
597*ec63e07aSXin Li MakeEntry(79, "settimeofday", kHex, kHex),
598*ec63e07aSXin Li MakeEntry(80, "getgroups", kInt, kHex),
599*ec63e07aSXin Li MakeEntry(81, "setgroups", kInt, kHex),
600*ec63e07aSXin Li MakeEntry(82, "select", kInt, kHex, kHex, kHex, kHex),
601*ec63e07aSXin Li MakeEntry(83, "symlink", kPath, kPath),
602*ec63e07aSXin Li MakeEntry(84, "oldlstat", UnknownArguments()),
603*ec63e07aSXin Li MakeEntry(85, "readlink", kPath, kHex, kInt),
604*ec63e07aSXin Li MakeEntry(86, "uselib", kPath),
605*ec63e07aSXin Li MakeEntry(87, "swapon", kPath, kHex),
606*ec63e07aSXin Li MakeEntry(88, "reboot", kInt, kHex, kHex, kGen),
607*ec63e07aSXin Li MakeEntry(89, "readdir", UnknownArguments()),
608*ec63e07aSXin Li MakeEntry(90, "mmap", kHex, kInt, kHex, kHex, kInt, kInt),
609*ec63e07aSXin Li MakeEntry(91, "munmap", kHex, kInt),
610*ec63e07aSXin Li MakeEntry(92, "truncate", kPath, kInt),
611*ec63e07aSXin Li MakeEntry(93, "ftruncate", kInt, kInt),
612*ec63e07aSXin Li MakeEntry(94, "fchmod", kInt, kOct),
613*ec63e07aSXin Li MakeEntry(95, "fchown", kInt, kInt, kInt),
614*ec63e07aSXin Li MakeEntry(96, "getpriority", kInt, kInt),
615*ec63e07aSXin Li MakeEntry(97, "setpriority", kInt, kInt, kInt),
616*ec63e07aSXin Li MakeEntry(98, "profil", UnknownArguments()),
617*ec63e07aSXin Li MakeEntry(99, "statfs", kPath, kHex),
618*ec63e07aSXin Li MakeEntry(100, "fstatfs", kInt, kHex),
619*ec63e07aSXin Li MakeEntry(101, "ioperm", kInt, kInt, kInt),
620*ec63e07aSXin Li MakeEntry(102, "socketcall", UnknownArguments()),
621*ec63e07aSXin Li MakeEntry(103, "syslog", kInt, kHex, kInt),
622*ec63e07aSXin Li MakeEntry(104, "setitimer", kInt, kHex, kHex),
623*ec63e07aSXin Li MakeEntry(105, "getitimer", kInt, kHex),
624*ec63e07aSXin Li MakeEntry(106, "stat", kPath, kHex),
625*ec63e07aSXin Li MakeEntry(107, "lstat", kPath, kHex),
626*ec63e07aSXin Li MakeEntry(108, "fstat", kInt, kHex),
627*ec63e07aSXin Li MakeEntry(109, "olduname", UnknownArguments()),
628*ec63e07aSXin Li MakeEntry(110, "iopl", kInt),
629*ec63e07aSXin Li MakeEntry(111, "vhangup"),
630*ec63e07aSXin Li MakeEntry(112, "idle", UnknownArguments()),
631*ec63e07aSXin Li MakeEntry(113, "vm86old", UnknownArguments()),
632*ec63e07aSXin Li MakeEntry(114, "wait4", kInt, kHex, kHex, kHex),
633*ec63e07aSXin Li MakeEntry(115, "swapoff", kPath),
634*ec63e07aSXin Li MakeEntry(116, "sysinfo", kHex),
635*ec63e07aSXin Li MakeEntry(117, "ipc", UnknownArguments()),
636*ec63e07aSXin Li MakeEntry(118, "fsync", kInt),
637*ec63e07aSXin Li MakeEntry(119, "sigreturn", UnknownArguments()),
638*ec63e07aSXin Li MakeEntry(120, "clone", kCloneFlag, kHex, kHex, kHex, kHex),
639*ec63e07aSXin Li MakeEntry(121, "setdomainname", kString, kInt),
640*ec63e07aSXin Li MakeEntry(122, "uname", kInt),
641*ec63e07aSXin Li MakeEntry(123, "modify_ldt", kInt, kHex, kInt),
642*ec63e07aSXin Li MakeEntry(124, "adjtimex", kHex),
643*ec63e07aSXin Li MakeEntry(125, "mprotect", kHex, kInt, kHex),
644*ec63e07aSXin Li MakeEntry(126, "sigprocmask", UnknownArguments()),
645*ec63e07aSXin Li MakeEntry(127, "create_module", kString, kInt),
646*ec63e07aSXin Li MakeEntry(128, "init_module", kGen, kInt, kString),
647*ec63e07aSXin Li MakeEntry(129, "delete_module", kString, kHex),
648*ec63e07aSXin Li MakeEntry(130, "get_kernel_syms", kHex),
649*ec63e07aSXin Li MakeEntry(131, "quotactl", kInt, kPath, kInt, kGen),
650*ec63e07aSXin Li MakeEntry(132, "getpgid", kInt),
651*ec63e07aSXin Li MakeEntry(133, "fchdir", kInt),
652*ec63e07aSXin Li MakeEntry(134, "bdflush", UnknownArguments()),
653*ec63e07aSXin Li MakeEntry(135, "sysfs", kInt, kInt, kInt),
654*ec63e07aSXin Li MakeEntry(136, "personality", kHex),
655*ec63e07aSXin Li MakeEntry(137, "afs_syscall", UnknownArguments()),
656*ec63e07aSXin Li MakeEntry(138, "setfsuid", kInt),
657*ec63e07aSXin Li MakeEntry(139, "setfsgid", kInt),
658*ec63e07aSXin Li MakeEntry(140, "_llseek", UnknownArguments()),
659*ec63e07aSXin Li MakeEntry(141, "getdents", kInt, kHex, kInt),
660*ec63e07aSXin Li MakeEntry(142, "_newselect", UnknownArguments()),
661*ec63e07aSXin Li MakeEntry(143, "flock", kInt, kInt),
662*ec63e07aSXin Li MakeEntry(144, "msync", kHex, kInt, kInt),
663*ec63e07aSXin Li MakeEntry(145, "readv", kInt, kHex, kInt),
664*ec63e07aSXin Li MakeEntry(146, "writev", kInt, kHex, kInt),
665*ec63e07aSXin Li MakeEntry(147, "getsid", kInt),
666*ec63e07aSXin Li MakeEntry(148, "fdatasync", kInt),
667*ec63e07aSXin Li MakeEntry(149, "_sysctl", kHex),
668*ec63e07aSXin Li MakeEntry(150, "mlock", kInt, kInt),
669*ec63e07aSXin Li MakeEntry(151, "munlock", kInt, kInt),
670*ec63e07aSXin Li MakeEntry(152, "mlockall", kHex),
671*ec63e07aSXin Li MakeEntry(153, "munlockall"),
672*ec63e07aSXin Li MakeEntry(154, "sched_setparam", kInt, kHex),
673*ec63e07aSXin Li MakeEntry(155, "sched_getparam", kInt, kHex),
674*ec63e07aSXin Li MakeEntry(156, "sched_setscheduler", kInt, kInt, kHex),
675*ec63e07aSXin Li MakeEntry(157, "sched_getscheduler", kInt),
676*ec63e07aSXin Li MakeEntry(158, "sched_yield"),
677*ec63e07aSXin Li MakeEntry(159, "sched_get_priority_max", kHex),
678*ec63e07aSXin Li MakeEntry(160, "sched_get_priority_min", kHex),
679*ec63e07aSXin Li MakeEntry(161, "sched_rr_get_interval", kInt, kHex),
680*ec63e07aSXin Li MakeEntry(162, "nanosleep", kHex, kHex),
681*ec63e07aSXin Li MakeEntry(163, "mremap", kHex, kInt, kInt, kInt, kHex),
682*ec63e07aSXin Li MakeEntry(164, "setresuid", kInt, kInt, kInt),
683*ec63e07aSXin Li MakeEntry(165, "getresuid", kHex, kHex, kHex),
684*ec63e07aSXin Li MakeEntry(166, "vm86", UnknownArguments()),
685*ec63e07aSXin Li MakeEntry(167, "query_module", kString, kInt, kGen, kInt, kGen),
686*ec63e07aSXin Li MakeEntry(168, "poll", kGen, kInt, kInt),
687*ec63e07aSXin Li MakeEntry(169, "nfsservctl", kInt, kGen, kGen),
688*ec63e07aSXin Li MakeEntry(170, "setresgid", kInt, kInt, kInt),
689*ec63e07aSXin Li MakeEntry(171, "getresgid", kHex, kHex, kHex),
690*ec63e07aSXin Li MakeEntry(172, "prctl", kInt, kHex, kHex, kHex, kHex),
691*ec63e07aSXin Li MakeEntry(173, "rt_sigreturn"),
692*ec63e07aSXin Li MakeEntry(174, "rt_sigaction", kSignal, kHex, kHex, kInt),
693*ec63e07aSXin Li MakeEntry(175, "rt_sigprocmask", kInt, kHex, kHex, kInt),
694*ec63e07aSXin Li MakeEntry(176, "rt_sigpending", kHex, kInt),
695*ec63e07aSXin Li MakeEntry(177, "rt_sigtimedwait", kHex, kHex, kHex, kInt),
696*ec63e07aSXin Li MakeEntry(178, "rt_sigqueueinfo", kInt, kSignal, kHex),
697*ec63e07aSXin Li MakeEntry(179, "rt_sigsuspend", kHex, kInt),
698*ec63e07aSXin Li MakeEntry(180, "pread64", kInt, kHex, kInt, kInt),
699*ec63e07aSXin Li MakeEntry(181, "pwrite64", kInt, kHex, kInt, kInt),
700*ec63e07aSXin Li MakeEntry(182, "chown", kPath, kInt, kInt),
701*ec63e07aSXin Li MakeEntry(183, "getcwd", kHex, kInt),
702*ec63e07aSXin Li MakeEntry(184, "capget", kHex, kHex),
703*ec63e07aSXin Li MakeEntry(185, "capset", kHex, kHex),
704*ec63e07aSXin Li MakeEntry(186, "sigaltstack", kHex, kHex),
705*ec63e07aSXin Li MakeEntry(187, "sendfile", kInt, kInt, kHex, kInt),
706*ec63e07aSXin Li MakeEntry(188, "getpmsg", UnknownArguments()),
707*ec63e07aSXin Li MakeEntry(189, "putpmsg", UnknownArguments()),
708*ec63e07aSXin Li MakeEntry(190, "vfork"),
709*ec63e07aSXin Li MakeEntry(191, "ugetrlimit", UnknownArguments()),
710*ec63e07aSXin Li MakeEntry(192, "mmap2", UnknownArguments()),
711*ec63e07aSXin Li MakeEntry(193, "truncate64", kPath, kHex),
712*ec63e07aSXin Li MakeEntry(194, "ftruncate64", kInt, kHex),
713*ec63e07aSXin Li MakeEntry(195, "stat64", kPath, kHex),
714*ec63e07aSXin Li MakeEntry(196, "lstat64", kPath, kHex),
715*ec63e07aSXin Li MakeEntry(197, "fstat64", kInt, kHex),
716*ec63e07aSXin Li MakeEntry(198, "lchown32", kPath, kInt, kInt),
717*ec63e07aSXin Li MakeEntry(199, "getuid32", UnknownArguments()),
718*ec63e07aSXin Li MakeEntry(200, "getgid32", UnknownArguments()),
719*ec63e07aSXin Li MakeEntry(201, "geteuid32", UnknownArguments()),
720*ec63e07aSXin Li MakeEntry(202, "getegid32", UnknownArguments()),
721*ec63e07aSXin Li MakeEntry(203, "setreuid32", UnknownArguments()),
722*ec63e07aSXin Li MakeEntry(204, "setregid32", UnknownArguments()),
723*ec63e07aSXin Li MakeEntry(205, "getgroups32", UnknownArguments()),
724*ec63e07aSXin Li MakeEntry(206, "setgroups32", UnknownArguments()),
725*ec63e07aSXin Li MakeEntry(207, "fchown32", UnknownArguments()),
726*ec63e07aSXin Li MakeEntry(208, "setresuid32", UnknownArguments()),
727*ec63e07aSXin Li MakeEntry(209, "getresuid32", UnknownArguments()),
728*ec63e07aSXin Li MakeEntry(210, "setresgid32", UnknownArguments()),
729*ec63e07aSXin Li MakeEntry(211, "getresgid32", UnknownArguments()),
730*ec63e07aSXin Li MakeEntry(212, "chown32", UnknownArguments()),
731*ec63e07aSXin Li MakeEntry(213, "setuid32", UnknownArguments()),
732*ec63e07aSXin Li MakeEntry(214, "setgid32", UnknownArguments()),
733*ec63e07aSXin Li MakeEntry(215, "setfsuid32", UnknownArguments()),
734*ec63e07aSXin Li MakeEntry(216, "setfsgid32", UnknownArguments()),
735*ec63e07aSXin Li MakeEntry(217, "pivot_root", kPath, kPath),
736*ec63e07aSXin Li MakeEntry(218, "mincore", kHex, kInt, kHex),
737*ec63e07aSXin Li MakeEntry(219, "madvise", kHex, kInt, kInt),
738*ec63e07aSXin Li MakeEntry(220, "getdents64", kInt, kHex, kInt),
739*ec63e07aSXin Li MakeEntry(221, "fcntl64", UnknownArguments()),
740*ec63e07aSXin Li MakeEntry(222, "unused1-222", UnknownArguments()),
741*ec63e07aSXin Li MakeEntry(223, "unused2-223", UnknownArguments()),
742*ec63e07aSXin Li MakeEntry(224, "gettid"),
743*ec63e07aSXin Li MakeEntry(225, "readahead", kInt, kInt, kInt),
744*ec63e07aSXin Li MakeEntry(226, "setxattr", kPath, kString, kGen, kInt, kHex),
745*ec63e07aSXin Li MakeEntry(227, "lsetxattr", kPath, kString, kGen, kInt, kHex),
746*ec63e07aSXin Li MakeEntry(228, "fsetxattr", kInt, kString, kGen, kInt, kHex),
747*ec63e07aSXin Li MakeEntry(229, "getxattr", kPath, kString, kGen, kInt),
748*ec63e07aSXin Li MakeEntry(230, "lgetxattr", kPath, kString, kGen, kInt),
749*ec63e07aSXin Li MakeEntry(231, "fgetxattr", kInt, kString, kGen, kInt),
750*ec63e07aSXin Li MakeEntry(232, "listxattr", kPath, kGen, kInt),
751*ec63e07aSXin Li MakeEntry(233, "llistxattr", kPath, kGen, kInt),
752*ec63e07aSXin Li MakeEntry(234, "flistxattr", kInt, kGen, kInt),
753*ec63e07aSXin Li MakeEntry(235, "removexattr", kPath, kString),
754*ec63e07aSXin Li MakeEntry(236, "lremovexattr", kPath, kString),
755*ec63e07aSXin Li MakeEntry(237, "fremovexattr", kInt, kString),
756*ec63e07aSXin Li MakeEntry(238, "tkill", kInt, kSignal),
757*ec63e07aSXin Li MakeEntry(239, "sendfile64", UnknownArguments()),
758*ec63e07aSXin Li MakeEntry(240, "futex", kGen, kInt, kInt, kGen, kGen, kInt),
759*ec63e07aSXin Li MakeEntry(241, "sched_setaffinity", kInt, kInt, kHex),
760*ec63e07aSXin Li MakeEntry(242, "sched_getaffinity", kInt, kInt, kHex),
761*ec63e07aSXin Li MakeEntry(243, "set_thread_area", kHex),
762*ec63e07aSXin Li MakeEntry(244, "get_thread_area", kHex),
763*ec63e07aSXin Li MakeEntry(245, "io_setup", kInt, kHex),
764*ec63e07aSXin Li MakeEntry(246, "io_destroy", kInt),
765*ec63e07aSXin Li MakeEntry(247, "io_getevents", kInt, kInt, kInt, kHex, kHex),
766*ec63e07aSXin Li MakeEntry(248, "io_submit", kInt, kInt, kHex),
767*ec63e07aSXin Li MakeEntry(249, "io_cancel", kInt, kHex, kHex),
768*ec63e07aSXin Li MakeEntry(250, "fadvise64", kInt, kInt, kInt, kInt),
769*ec63e07aSXin Li MakeEntry(251, "251-old_sys_set_zone_reclaim", UnknownArguments()),
770*ec63e07aSXin Li MakeEntry(252, "exit_group", kInt),
771*ec63e07aSXin Li MakeEntry(253, "lookup_dcookie", kInt, kString, kInt),
772*ec63e07aSXin Li MakeEntry(254, "epoll_create", kInt),
773*ec63e07aSXin Li MakeEntry(255, "epoll_ctl", kInt, kInt, kInt, kHex),
774*ec63e07aSXin Li MakeEntry(256, "epoll_wait", kInt, kHex, kInt, kInt),
775*ec63e07aSXin Li MakeEntry(257, "remap_file_pages", kGen, kInt, kInt, kInt, kHex),
776*ec63e07aSXin Li MakeEntry(258, "set_tid_address", kHex),
777*ec63e07aSXin Li MakeEntry(259, "timer_create", kInt, kHex, kHex),
778*ec63e07aSXin Li MakeEntry(260, "timer_settime", kInt, kHex, kHex, kHex),
779*ec63e07aSXin Li MakeEntry(261, "timer_gettime", kInt, kHex),
780*ec63e07aSXin Li MakeEntry(262, "timer_getoverrun", kInt),
781*ec63e07aSXin Li MakeEntry(263, "timer_delete", kInt),
782*ec63e07aSXin Li MakeEntry(264, "clock_settime", kInt, kHex),
783*ec63e07aSXin Li MakeEntry(265, "clock_gettime", kInt, kHex),
784*ec63e07aSXin Li MakeEntry(266, "clock_getres", kInt, kHex),
785*ec63e07aSXin Li MakeEntry(267, "clock_nanosleep", kInt, kHex, kHex, kHex),
786*ec63e07aSXin Li MakeEntry(268, "statfs64", UnknownArguments()),
787*ec63e07aSXin Li MakeEntry(269, "fstatfs64", UnknownArguments()),
788*ec63e07aSXin Li MakeEntry(270, "tgkill", kInt, kInt, kSignal),
789*ec63e07aSXin Li MakeEntry(271, "utimes", kPath, kHex),
790*ec63e07aSXin Li MakeEntry(272, "fadvise64_64", UnknownArguments()),
791*ec63e07aSXin Li MakeEntry(273, "vserver", UnknownArguments()),
792*ec63e07aSXin Li MakeEntry(274, "mbind", kGen, kInt, kInt, kHex, kInt, kHex),
793*ec63e07aSXin Li MakeEntry(275, "get_mempolicy", kInt, kHex, kInt, kInt, kHex),
794*ec63e07aSXin Li MakeEntry(276, "set_mempolicy", kInt, kHex, kInt),
795*ec63e07aSXin Li MakeEntry(277, "mq_open", kString, kHex, kOct, kHex),
796*ec63e07aSXin Li MakeEntry(278, "mq_unlink", kString),
797*ec63e07aSXin Li MakeEntry(279, "mq_timedsend", kHex, kHex, kInt, kInt, kHex),
798*ec63e07aSXin Li MakeEntry(280, "mq_timedreceive", kHex, kHex, kInt, kHex, kHex),
799*ec63e07aSXin Li MakeEntry(281, "mq_notify", kHex, kHex),
800*ec63e07aSXin Li MakeEntry(282, "mq_getsetattr", kHex, kHex, kHex),
801*ec63e07aSXin Li MakeEntry(283, "kexec_load", kHex, kInt, kHex, kHex),
802*ec63e07aSXin Li MakeEntry(284, "waitid", kInt, kInt, kHex, kInt, kHex),
803*ec63e07aSXin Li MakeEntry(285, "285-old_sys_setaltroot", UnknownArguments()),
804*ec63e07aSXin Li MakeEntry(286, "add_key", kString, kString, kGen, kInt, kInt),
805*ec63e07aSXin Li MakeEntry(287, "request_key", kString, kString, kHex, kInt),
806*ec63e07aSXin Li MakeEntry(288, "keyctl", kInt, kInt, kInt, kInt, kInt),
807*ec63e07aSXin Li MakeEntry(289, "ioprio_set", kInt, kInt, kInt),
808*ec63e07aSXin Li MakeEntry(290, "ioprio_get", kInt, kInt),
809*ec63e07aSXin Li MakeEntry(291, "inotify_init"),
810*ec63e07aSXin Li MakeEntry(292, "inotify_add_watch", kInt, kPath, kHex),
811*ec63e07aSXin Li MakeEntry(293, "inotify_rm_watch", kInt, kInt),
812*ec63e07aSXin Li MakeEntry(294, "migrate_pages", kInt, kInt, kHex, kHex),
813*ec63e07aSXin Li MakeEntry(295, "openat", kInt, kPath, kOct),
814*ec63e07aSXin Li MakeEntry(296, "mkdirat", kInt, kPath, kOct),
815*ec63e07aSXin Li MakeEntry(297, "mknodat", kInt, kPath, kOct, kHex),
816*ec63e07aSXin Li MakeEntry(298, "fchownat", kInt, kPath, kInt, kInt, kHex),
817*ec63e07aSXin Li MakeEntry(299, "futimesat", kInt, kPath, kHex),
818*ec63e07aSXin Li MakeEntry(300, "fstatat64", UnknownArguments()),
819*ec63e07aSXin Li MakeEntry(301, "unlinkat", kInt, kPath, kHex),
820*ec63e07aSXin Li MakeEntry(302, "renameat", kInt, kPath, kInt, kPath),
821*ec63e07aSXin Li MakeEntry(303, "linkat", kInt, kPath, kInt, kPath, kHex),
822*ec63e07aSXin Li MakeEntry(304, "symlinkat", kPath, kInt, kPath),
823*ec63e07aSXin Li MakeEntry(305, "readlinkat", kInt, kPath, kHex, kInt),
824*ec63e07aSXin Li MakeEntry(306, "fchmodat", kInt, kPath, kOct, kHex),
825*ec63e07aSXin Li MakeEntry(307, "faccessat", kInt, kPath, kHex, kHex),
826*ec63e07aSXin Li MakeEntry(308, "pselect6", kInt, kHex, kHex, kHex, kHex),
827*ec63e07aSXin Li MakeEntry(309, "ppoll", kHex, kInt, kHex, kHex, kInt),
828*ec63e07aSXin Li MakeEntry(310, "unshare", kHex),
829*ec63e07aSXin Li MakeEntry(311, "set_robust_list", kHex, kInt),
830*ec63e07aSXin Li MakeEntry(312, "get_robust_list", kInt, kHex, kHex),
831*ec63e07aSXin Li MakeEntry(313, "splice", kInt, kHex, kInt, kHex, kInt, kHex),
832*ec63e07aSXin Li MakeEntry(314, "sync_file_range", kInt, kInt, kInt, kHex),
833*ec63e07aSXin Li MakeEntry(315, "tee", kInt, kInt, kInt, kHex),
834*ec63e07aSXin Li MakeEntry(316, "vmsplice", kInt, kHex, kInt, kInt),
835*ec63e07aSXin Li MakeEntry(317, "move_pages", kInt, kInt, kHex, kHex, kHex, kHex),
836*ec63e07aSXin Li MakeEntry(318, "getcpu", kHex, kHex, kHex),
837*ec63e07aSXin Li MakeEntry(319, "epoll_pwait", kInt, kHex, kInt, kInt, kHex, kInt),
838*ec63e07aSXin Li MakeEntry(320, "utimensat", kInt, kPath, kHex, kHex),
839*ec63e07aSXin Li MakeEntry(321, "signalfd", kInt, kHex, kHex),
840*ec63e07aSXin Li MakeEntry(322, "timerfd_create", kInt, kHex),
841*ec63e07aSXin Li MakeEntry(323, "eventfd", kInt),
842*ec63e07aSXin Li MakeEntry(324, "fallocate", kInt, kOct, kInt, kInt),
843*ec63e07aSXin Li MakeEntry(325, "timerfd_settime", kInt, kHex, kHex, kHex),
844*ec63e07aSXin Li MakeEntry(326, "timerfd_gettime", kInt, kHex),
845*ec63e07aSXin Li MakeEntry(327, "signalfd4", kInt, kHex, kHex, kHex),
846*ec63e07aSXin Li MakeEntry(328, "eventfd2", kInt, kHex),
847*ec63e07aSXin Li MakeEntry(329, "epoll_create1", kHex),
848*ec63e07aSXin Li MakeEntry(330, "dup3", kInt, kInt, kHex),
849*ec63e07aSXin Li MakeEntry(331, "pipe2", kHex, kHex),
850*ec63e07aSXin Li MakeEntry(332, "inotify_init1", kHex),
851*ec63e07aSXin Li MakeEntry(333, "preadv", kInt, kHex, kInt, kInt, kInt),
852*ec63e07aSXin Li MakeEntry(334, "pwritev", kInt, kHex, kInt, kInt, kInt),
853*ec63e07aSXin Li MakeEntry(335, "rt_tgsigqueueinfo", kInt, kInt, kInt, kHex),
854*ec63e07aSXin Li MakeEntry(336, "perf_event_open", kHex, kInt, kInt, kInt, kHex),
855*ec63e07aSXin Li MakeEntry(337, "recvmmsg", kInt, kHex, kInt, kHex, kHex),
856*ec63e07aSXin Li MakeEntry(338, "fanotify_init", kHex, kHex),
857*ec63e07aSXin Li MakeEntry(339, "fanotify_mark", kInt, kHex, kHex, kInt, kPath),
858*ec63e07aSXin Li MakeEntry(340, "prlimit64", kInt, kInt, kHex, kHex),
859*ec63e07aSXin Li MakeEntry(341, "name_to_handle_at", kInt, kPath, kHex, kHex, kHex),
860*ec63e07aSXin Li MakeEntry(342, "open_by_handle_at", kInt, kHex, kHex),
861*ec63e07aSXin Li MakeEntry(343, "clock_adjtime", kInt, kHex),
862*ec63e07aSXin Li MakeEntry(344, "syncfs", kInt),
863*ec63e07aSXin Li MakeEntry(345, "sendmmsg", kInt, kHex, kInt, kHex),
864*ec63e07aSXin Li MakeEntry(346, "setns", kInt, kHex),
865*ec63e07aSXin Li MakeEntry(347, "process_vm_readv", kInt, kHex, kInt, kHex, kInt, kInt),
866*ec63e07aSXin Li MakeEntry(348, "process_vm_writev", kInt, kHex, kInt, kHex, kInt, kInt),
867*ec63e07aSXin Li MakeEntry(349, "kcmp", kInt, kInt, kInt, kInt, kInt),
868*ec63e07aSXin Li MakeEntry(350, "finit_module", kInt, kString, kHex),
869*ec63e07aSXin Li MakeEntry(351, "sched_setattr", kInt, kHex, kHex),
870*ec63e07aSXin Li MakeEntry(352, "sched_getattr", kInt, kHex, kInt, kHex),
871*ec63e07aSXin Li MakeEntry(353, "renameat2", kHex, kPath, kHex, kPath, kHex, kHex),
872*ec63e07aSXin Li MakeEntry(354, "seccomp", kInt, kHex, kHex),
873*ec63e07aSXin Li MakeEntry(355, "getrandom", kGen, kInt, kHex),
874*ec63e07aSXin Li MakeEntry(356, "memfd_create", kString, kHex),
875*ec63e07aSXin Li MakeEntry(357, "bpf", kInt, kHex, kInt),
876*ec63e07aSXin Li MakeEntry(435, "clone3", kHex, kInt),
877*ec63e07aSXin Li MakeEntry(436, "close_range", kInt, kInt, kHex),
878*ec63e07aSXin Li MakeEntry(437, "openat2", kInt, kPath, kHex, kInt),
879*ec63e07aSXin Li MakeEntry(438, "pidfd_getfd", UnknownArguments()),
880*ec63e07aSXin Li MakeEntry(439, "faccessat2", kInt, kPath, kHex, kHex),
881*ec63e07aSXin Li MakeEntry(440, "process_madvise", UnknownArguments()),
882*ec63e07aSXin Li MakeEntry(441, "epoll_pwait2", UnknownArguments()),
883*ec63e07aSXin Li MakeEntry(442, "mount_setattr", UnknownArguments()),
884*ec63e07aSXin Li MakeEntry(443, "quotactl_fd", UnknownArguments()),
885*ec63e07aSXin Li MakeEntry(444, "landlock_create_ruleset", UnknownArguments()),
886*ec63e07aSXin Li MakeEntry(445, "landlock_add_rule", UnknownArguments()),
887*ec63e07aSXin Li MakeEntry(446, "landlock_restrict_self", UnknownArguments()),
888*ec63e07aSXin Li MakeEntry(447, "memfd_secret", UnknownArguments()),
889*ec63e07aSXin Li MakeEntry(448, "process_mrelease", UnknownArguments()),
890*ec63e07aSXin Li MakeEntry(449, "futex_waitv", UnknownArguments()),
891*ec63e07aSXin Li MakeEntry(450, "set_mempolicy_home_node", UnknownArguments()),
892*ec63e07aSXin Li MakeEntry(451, "cachestat", UnknownArguments()),
893*ec63e07aSXin Li MakeEntry(452, "fchmodat2", kInt, kPath, kHex, kHex),
894*ec63e07aSXin Li MakeEntry(453, "map_shadow_stack", UnknownArguments()),
895*ec63e07aSXin Li MakeEntry(454, "futex_wake", UnknownArguments()),
896*ec63e07aSXin Li MakeEntry(455, "futex_wait", UnknownArguments()),
897*ec63e07aSXin Li MakeEntry(456, "futex_requeue", UnknownArguments()),
898*ec63e07aSXin Li MakeEntry(457, "statmount", UnknownArguments()),
899*ec63e07aSXin Li MakeEntry(458, "listmount", UnknownArguments()),
900*ec63e07aSXin Li MakeEntry(459, "lsm_get_self_attr", UnknownArguments()),
901*ec63e07aSXin Li MakeEntry(460, "lsm_set_self_attr", UnknownArguments()),
902*ec63e07aSXin Li MakeEntry(461, "lsm_list_modules", UnknownArguments()),
903*ec63e07aSXin Li // clang-format on
904*ec63e07aSXin Li };
905*ec63e07aSXin Li
906*ec63e07aSXin Li static_assert(IsSorted(kSyscallDataX8632, SyscallTable::Entry::BySyscallNr),
907*ec63e07aSXin Li "Syscalls should be sorted");
908*ec63e07aSXin Li
909*ec63e07aSXin Li // http://lxr.free-electrons.com/source/arch/powerpc/include/uapi/asm/unistd.h
910*ec63e07aSXin Li // Note: PPC64 syscalls can have up to 7 register arguments, but nobody is
911*ec63e07aSXin Li // using the 7th argument - probably for x64 compatibility reasons.
912*ec63e07aSXin Li constexpr std::array kSyscallDataPPC64LE = {
913*ec63e07aSXin Li // clang-format off
914*ec63e07aSXin Li MakeEntry(0, "restart_syscall"),
915*ec63e07aSXin Li MakeEntry(1, "exit", kInt),
916*ec63e07aSXin Li MakeEntry(2, "fork"),
917*ec63e07aSXin Li MakeEntry(3, "read", kInt, kHex, kInt),
918*ec63e07aSXin Li MakeEntry(4, "write", kInt, kHex, kInt),
919*ec63e07aSXin Li MakeEntry(5, "open", kPath, kHex, kOct),
920*ec63e07aSXin Li MakeEntry(6, "close", kInt),
921*ec63e07aSXin Li MakeEntry(7, "waitpid", kInt, kHex, kHex),
922*ec63e07aSXin Li MakeEntry(8, "creat", kPath, kOct),
923*ec63e07aSXin Li MakeEntry(9, "link", kPath, kPath),
924*ec63e07aSXin Li MakeEntry(10, "unlink", kPath),
925*ec63e07aSXin Li MakeEntry(11, "execve", kPath, kHex, kHex),
926*ec63e07aSXin Li MakeEntry(12, "chdir", kPath),
927*ec63e07aSXin Li MakeEntry(13, "time", kHex),
928*ec63e07aSXin Li MakeEntry(14, "mknod", kPath, kOct, kHex),
929*ec63e07aSXin Li MakeEntry(15, "chmod", kPath, kOct),
930*ec63e07aSXin Li MakeEntry(16, "lchown", kPath, kInt, kInt),
931*ec63e07aSXin Li MakeEntry(17, "break", UnknownArguments()),
932*ec63e07aSXin Li MakeEntry(18, "oldstat", UnknownArguments()),
933*ec63e07aSXin Li MakeEntry(19, "lseek", kInt, kInt, kInt),
934*ec63e07aSXin Li MakeEntry(20, "getpid"),
935*ec63e07aSXin Li MakeEntry(21, "mount", kPath, kPath, kString, kHex, kGen),
936*ec63e07aSXin Li MakeEntry(22, "umount", UnknownArguments()),
937*ec63e07aSXin Li MakeEntry(23, "setuid", kInt),
938*ec63e07aSXin Li MakeEntry(24, "getuid"),
939*ec63e07aSXin Li MakeEntry(25, "stime", UnknownArguments()),
940*ec63e07aSXin Li MakeEntry(26, "ptrace", kInt, kInt, kHex, kHex),
941*ec63e07aSXin Li MakeEntry(27, "alarm", kInt),
942*ec63e07aSXin Li MakeEntry(28, "oldfstat", UnknownArguments()),
943*ec63e07aSXin Li MakeEntry(29, "pause"),
944*ec63e07aSXin Li MakeEntry(30, "utime", kPath, kHex),
945*ec63e07aSXin Li MakeEntry(31, "stty", UnknownArguments()),
946*ec63e07aSXin Li MakeEntry(32, "gtty", UnknownArguments()),
947*ec63e07aSXin Li MakeEntry(33, "access", kPath, kOct),
948*ec63e07aSXin Li MakeEntry(34, "nice", UnknownArguments()),
949*ec63e07aSXin Li MakeEntry(35, "ftime", UnknownArguments()),
950*ec63e07aSXin Li MakeEntry(36, "sync"),
951*ec63e07aSXin Li MakeEntry(37, "kill", kInt, kSignal),
952*ec63e07aSXin Li MakeEntry(38, "rename", kPath, kPath),
953*ec63e07aSXin Li MakeEntry(39, "mkdir", kPath, kOct),
954*ec63e07aSXin Li MakeEntry(40, "rmdir", kPath),
955*ec63e07aSXin Li MakeEntry(41, "dup", kInt),
956*ec63e07aSXin Li MakeEntry(42, "pipe", kHex),
957*ec63e07aSXin Li MakeEntry(43, "times", kHex),
958*ec63e07aSXin Li MakeEntry(44, "prof", UnknownArguments()),
959*ec63e07aSXin Li MakeEntry(45, "brk", kInt),
960*ec63e07aSXin Li MakeEntry(46, "setgid", kInt),
961*ec63e07aSXin Li MakeEntry(47, "getgid"),
962*ec63e07aSXin Li MakeEntry(48, "signal", UnknownArguments()),
963*ec63e07aSXin Li MakeEntry(49, "geteuid"),
964*ec63e07aSXin Li MakeEntry(50, "getegid"),
965*ec63e07aSXin Li MakeEntry(51, "acct", kPath),
966*ec63e07aSXin Li MakeEntry(52, "umount2", kPath, kHex),
967*ec63e07aSXin Li MakeEntry(53, "lock", UnknownArguments()),
968*ec63e07aSXin Li MakeEntry(54, "ioctl", kInt, kInt, kHex),
969*ec63e07aSXin Li MakeEntry(55, "fcntl", kInt, kInt, kHex),
970*ec63e07aSXin Li MakeEntry(56, "mpx", UnknownArguments()),
971*ec63e07aSXin Li MakeEntry(57, "setpgid", kInt, kInt),
972*ec63e07aSXin Li MakeEntry(58, "ulimit", UnknownArguments()),
973*ec63e07aSXin Li MakeEntry(59, "oldolduname", UnknownArguments()),
974*ec63e07aSXin Li MakeEntry(60, "umask", kHex),
975*ec63e07aSXin Li MakeEntry(61, "chroot", kPath),
976*ec63e07aSXin Li MakeEntry(62, "ustat", kHex, kHex),
977*ec63e07aSXin Li MakeEntry(63, "dup2", kInt, kInt),
978*ec63e07aSXin Li MakeEntry(64, "getppid"),
979*ec63e07aSXin Li MakeEntry(65, "getpgrp"),
980*ec63e07aSXin Li MakeEntry(66, "setsid"),
981*ec63e07aSXin Li MakeEntry(67, "sigaction", UnknownArguments()),
982*ec63e07aSXin Li MakeEntry(68, "sgetmask", UnknownArguments()),
983*ec63e07aSXin Li MakeEntry(69, "ssetmask", UnknownArguments()),
984*ec63e07aSXin Li MakeEntry(70, "setreuid", kInt, kInt),
985*ec63e07aSXin Li MakeEntry(71, "setregid", kInt, kInt),
986*ec63e07aSXin Li MakeEntry(72, "sigsuspend", UnknownArguments()),
987*ec63e07aSXin Li MakeEntry(73, "sigpending", UnknownArguments()),
988*ec63e07aSXin Li MakeEntry(74, "sethostname", kString, kInt),
989*ec63e07aSXin Li MakeEntry(75, "setrlimit", kInt, kHex),
990*ec63e07aSXin Li MakeEntry(76, "getrlimit", kInt, kHex),
991*ec63e07aSXin Li MakeEntry(77, "getrusage", kInt, kHex),
992*ec63e07aSXin Li MakeEntry(78, "gettimeofday", kHex, kHex),
993*ec63e07aSXin Li MakeEntry(79, "settimeofday", kHex, kHex),
994*ec63e07aSXin Li MakeEntry(80, "getgroups", kInt, kHex),
995*ec63e07aSXin Li MakeEntry(81, "setgroups", kInt, kHex),
996*ec63e07aSXin Li MakeEntry(82, "select", kInt, kHex, kHex, kHex, kHex),
997*ec63e07aSXin Li MakeEntry(83, "symlink", kPath, kPath),
998*ec63e07aSXin Li MakeEntry(84, "oldlstat", UnknownArguments()),
999*ec63e07aSXin Li MakeEntry(85, "readlink", kPath, kHex, kInt),
1000*ec63e07aSXin Li MakeEntry(86, "uselib", kPath),
1001*ec63e07aSXin Li MakeEntry(87, "swapon", kPath, kHex),
1002*ec63e07aSXin Li MakeEntry(88, "reboot", kInt, kHex, kHex, kGen),
1003*ec63e07aSXin Li MakeEntry(89, "readdir", UnknownArguments()),
1004*ec63e07aSXin Li MakeEntry(90, "mmap", kHex, kInt, kHex, kHex, kInt, kInt),
1005*ec63e07aSXin Li MakeEntry(91, "munmap", kHex, kInt),
1006*ec63e07aSXin Li MakeEntry(92, "truncate", kPath, kInt),
1007*ec63e07aSXin Li MakeEntry(93, "ftruncate", kInt, kInt),
1008*ec63e07aSXin Li MakeEntry(94, "fchmod", kInt, kOct),
1009*ec63e07aSXin Li MakeEntry(95, "fchown", kInt, kInt, kInt),
1010*ec63e07aSXin Li MakeEntry(96, "getpriority", kInt, kInt),
1011*ec63e07aSXin Li MakeEntry(97, "setpriority", kInt, kInt, kInt),
1012*ec63e07aSXin Li MakeEntry(98, "profil", UnknownArguments()),
1013*ec63e07aSXin Li MakeEntry(99, "statfs", kPath, kHex),
1014*ec63e07aSXin Li MakeEntry(100, "fstatfs", kInt, kHex),
1015*ec63e07aSXin Li MakeEntry(101, "ioperm", kInt, kInt, kInt),
1016*ec63e07aSXin Li MakeEntry(102, "socketcall", UnknownArguments()),
1017*ec63e07aSXin Li MakeEntry(103, "syslog", kInt, kHex, kInt),
1018*ec63e07aSXin Li MakeEntry(104, "setitimer", kInt, kHex, kHex),
1019*ec63e07aSXin Li MakeEntry(105, "getitimer", kInt, kHex),
1020*ec63e07aSXin Li MakeEntry(106, "stat", kPath, kGen),
1021*ec63e07aSXin Li MakeEntry(107, "lstat", kPath, kGen),
1022*ec63e07aSXin Li MakeEntry(108, "fstat", kInt, kHex),
1023*ec63e07aSXin Li MakeEntry(109, "olduname", UnknownArguments()),
1024*ec63e07aSXin Li MakeEntry(110, "iopl", kInt),
1025*ec63e07aSXin Li MakeEntry(111, "vhangup"),
1026*ec63e07aSXin Li MakeEntry(112, "idle", UnknownArguments()),
1027*ec63e07aSXin Li MakeEntry(113, "vm86", UnknownArguments()),
1028*ec63e07aSXin Li MakeEntry(114, "wait4", kInt, kHex, kHex, kHex),
1029*ec63e07aSXin Li MakeEntry(115, "swapoff", kPath),
1030*ec63e07aSXin Li MakeEntry(116, "sysinfo", kHex),
1031*ec63e07aSXin Li MakeEntry(117, "ipc", UnknownArguments()),
1032*ec63e07aSXin Li MakeEntry(118, "fsync", kInt),
1033*ec63e07aSXin Li MakeEntry(119, "sigreturn", UnknownArguments()),
1034*ec63e07aSXin Li MakeEntry(120, "clone", kCloneFlag, kHex, kHex, kHex, kHex),
1035*ec63e07aSXin Li MakeEntry(121, "setdomainname", kString, kInt),
1036*ec63e07aSXin Li MakeEntry(122, "uname", kInt),
1037*ec63e07aSXin Li MakeEntry(123, "modify_ldt", kInt, kHex, kInt),
1038*ec63e07aSXin Li MakeEntry(124, "adjtimex", kHex),
1039*ec63e07aSXin Li MakeEntry(125, "mprotect", kHex, kInt, kHex),
1040*ec63e07aSXin Li MakeEntry(126, "sigprocmask", UnknownArguments()),
1041*ec63e07aSXin Li MakeEntry(127, "create_module", kString, kInt),
1042*ec63e07aSXin Li MakeEntry(128, "init_module", kGen, kInt, kString),
1043*ec63e07aSXin Li MakeEntry(129, "delete_module", kString, kHex),
1044*ec63e07aSXin Li MakeEntry(130, "get_kernel_syms", kHex),
1045*ec63e07aSXin Li MakeEntry(131, "quotactl", kInt, kPath, kInt, kGen),
1046*ec63e07aSXin Li MakeEntry(132, "getpgid", kInt),
1047*ec63e07aSXin Li MakeEntry(133, "fchdir", kInt),
1048*ec63e07aSXin Li MakeEntry(134, "bdflush", UnknownArguments()),
1049*ec63e07aSXin Li MakeEntry(135, "sysfs", kInt, kInt, kInt),
1050*ec63e07aSXin Li MakeEntry(136, "personality", kHex),
1051*ec63e07aSXin Li MakeEntry(137, "afs_syscall", UnknownArguments()),
1052*ec63e07aSXin Li MakeEntry(138, "setfsuid", kInt),
1053*ec63e07aSXin Li MakeEntry(139, "setfsgid", kInt),
1054*ec63e07aSXin Li MakeEntry(140, "_llseek", UnknownArguments()),
1055*ec63e07aSXin Li MakeEntry(141, "getdents", kInt, kHex, kInt),
1056*ec63e07aSXin Li MakeEntry(142, "_newselect", UnknownArguments()),
1057*ec63e07aSXin Li MakeEntry(143, "flock", kInt, kInt),
1058*ec63e07aSXin Li MakeEntry(144, "msync", kHex, kInt, kInt),
1059*ec63e07aSXin Li MakeEntry(145, "readv", kInt, kHex, kInt),
1060*ec63e07aSXin Li MakeEntry(146, "writev", kInt, kHex, kInt),
1061*ec63e07aSXin Li MakeEntry(147, "getsid", kInt),
1062*ec63e07aSXin Li MakeEntry(148, "fdatasync", kInt),
1063*ec63e07aSXin Li MakeEntry(149, "_sysctl", kHex),
1064*ec63e07aSXin Li MakeEntry(150, "mlock", kInt, kInt),
1065*ec63e07aSXin Li MakeEntry(151, "munlock", kInt, kInt),
1066*ec63e07aSXin Li MakeEntry(152, "mlockall", kHex),
1067*ec63e07aSXin Li MakeEntry(153, "munlockall"),
1068*ec63e07aSXin Li MakeEntry(154, "sched_setparam", kInt, kHex),
1069*ec63e07aSXin Li MakeEntry(155, "sched_getparam", kInt, kHex),
1070*ec63e07aSXin Li MakeEntry(156, "sched_setscheduler", kInt, kInt, kHex),
1071*ec63e07aSXin Li MakeEntry(157, "sched_getscheduler", kInt),
1072*ec63e07aSXin Li MakeEntry(158, "sched_yield"),
1073*ec63e07aSXin Li MakeEntry(159, "sched_get_priority_max", kInt),
1074*ec63e07aSXin Li MakeEntry(160, "sched_get_priority_min", kInt),
1075*ec63e07aSXin Li MakeEntry(161, "sched_rr_get_interval", kInt, kHex),
1076*ec63e07aSXin Li MakeEntry(162, "nanosleep", kHex, kHex),
1077*ec63e07aSXin Li MakeEntry(163, "mremap", kHex, kInt, kInt, kInt, kHex),
1078*ec63e07aSXin Li MakeEntry(164, "setresuid", kInt, kInt, kInt),
1079*ec63e07aSXin Li MakeEntry(165, "getresuid", kHex, kHex, kHex),
1080*ec63e07aSXin Li MakeEntry(166, "query_module", kString, kInt, kGen, kInt, kGen),
1081*ec63e07aSXin Li MakeEntry(167, "poll", kGen, kInt, kInt),
1082*ec63e07aSXin Li MakeEntry(168, "nfsservctl", kInt, kGen, kGen),
1083*ec63e07aSXin Li MakeEntry(169, "setresgid", kInt, kInt, kInt),
1084*ec63e07aSXin Li MakeEntry(170, "getresgid", kHex, kHex, kHex),
1085*ec63e07aSXin Li MakeEntry(171, "prctl", kInt, kHex, kHex, kHex, kHex),
1086*ec63e07aSXin Li MakeEntry(172, "rt_sigreturn"),
1087*ec63e07aSXin Li MakeEntry(173, "rt_sigaction", kSignal, kHex, kHex, kInt),
1088*ec63e07aSXin Li MakeEntry(174, "rt_sigprocmask", kInt, kHex, kHex, kInt),
1089*ec63e07aSXin Li MakeEntry(175, "rt_sigpending", kHex, kInt),
1090*ec63e07aSXin Li MakeEntry(176, "rt_sigtimedwait", kHex, kHex, kHex, kInt),
1091*ec63e07aSXin Li MakeEntry(177, "rt_sigqueueinfo", kInt, kSignal, kHex),
1092*ec63e07aSXin Li MakeEntry(178, "rt_sigsuspend", kHex, kInt),
1093*ec63e07aSXin Li MakeEntry(179, "pread64", kInt, kHex, kInt, kInt),
1094*ec63e07aSXin Li MakeEntry(180, "pwrite64", kInt, kHex, kInt, kInt),
1095*ec63e07aSXin Li MakeEntry(181, "chown", kPath, kInt, kInt),
1096*ec63e07aSXin Li MakeEntry(182, "getcwd", kHex, kInt),
1097*ec63e07aSXin Li MakeEntry(183, "capget", kHex, kHex),
1098*ec63e07aSXin Li MakeEntry(184, "capset", kHex, kHex),
1099*ec63e07aSXin Li MakeEntry(185, "sigaltstack", kHex, kHex),
1100*ec63e07aSXin Li MakeEntry(186, "sendfile", kInt, kInt, kHex, kInt),
1101*ec63e07aSXin Li MakeEntry(187, "getpmsg", UnknownArguments()),
1102*ec63e07aSXin Li MakeEntry(188, "putpmsg", UnknownArguments()),
1103*ec63e07aSXin Li MakeEntry(189, "vfork"),
1104*ec63e07aSXin Li MakeEntry(190, "ugetrlimit", UnknownArguments()),
1105*ec63e07aSXin Li MakeEntry(191, "readahead", kInt, kInt, kInt),
1106*ec63e07aSXin Li MakeEntry(192, "mmap2", UnknownArguments()),
1107*ec63e07aSXin Li MakeEntry(193, "truncate64", UnknownArguments()),
1108*ec63e07aSXin Li MakeEntry(194, "ftruncate64", UnknownArguments()),
1109*ec63e07aSXin Li MakeEntry(195, "stat64", UnknownArguments()),
1110*ec63e07aSXin Li MakeEntry(196, "lstat64", UnknownArguments()),
1111*ec63e07aSXin Li MakeEntry(197, "fstat64", UnknownArguments()),
1112*ec63e07aSXin Li MakeEntry(198, "pciconfig_read", UnknownArguments()),
1113*ec63e07aSXin Li MakeEntry(199, "pciconfig_write", UnknownArguments()),
1114*ec63e07aSXin Li MakeEntry(200, "pciconfig_iobase", UnknownArguments()),
1115*ec63e07aSXin Li MakeEntry(201, "multiplexer", UnknownArguments()),
1116*ec63e07aSXin Li MakeEntry(202, "getdents64", kInt, kHex, kInt),
1117*ec63e07aSXin Li MakeEntry(203, "pivot_root", kPath, kPath),
1118*ec63e07aSXin Li MakeEntry(204, "fcntl64", UnknownArguments()),
1119*ec63e07aSXin Li MakeEntry(205, "madvise", kHex, kInt, kInt),
1120*ec63e07aSXin Li MakeEntry(206, "mincore", kHex, kInt, kHex),
1121*ec63e07aSXin Li MakeEntry(207, "gettid"),
1122*ec63e07aSXin Li MakeEntry(208, "tkill", kInt, kSignal),
1123*ec63e07aSXin Li MakeEntry(209, "setxattr", kPath, kString, kGen, kInt, kHex),
1124*ec63e07aSXin Li MakeEntry(210, "lsetxattr", kPath, kString, kGen, kInt, kHex),
1125*ec63e07aSXin Li MakeEntry(211, "fsetxattr", kInt, kString, kGen, kInt, kHex),
1126*ec63e07aSXin Li MakeEntry(212, "getxattr", kPath, kString, kGen, kInt),
1127*ec63e07aSXin Li MakeEntry(213, "lgetxattr", kPath, kString, kGen, kInt),
1128*ec63e07aSXin Li MakeEntry(214, "fgetxattr", kInt, kString, kGen, kInt),
1129*ec63e07aSXin Li MakeEntry(215, "listxattr", kPath, kGen, kInt),
1130*ec63e07aSXin Li MakeEntry(216, "llistxattr", kPath, kGen, kInt),
1131*ec63e07aSXin Li MakeEntry(217, "flistxattr", kInt, kGen, kInt),
1132*ec63e07aSXin Li MakeEntry(218, "removexattr", kPath, kString),
1133*ec63e07aSXin Li MakeEntry(219, "lremovexattr", kPath, kString),
1134*ec63e07aSXin Li MakeEntry(220, "fremovexattr", kInt, kString),
1135*ec63e07aSXin Li MakeEntry(221, "futex", kGen, kInt, kInt, kGen, kGen, kInt),
1136*ec63e07aSXin Li MakeEntry(222, "sched_setaffinity", kInt, kInt, kHex),
1137*ec63e07aSXin Li MakeEntry(223, "sched_getaffinity", kInt, kInt, kHex),
1138*ec63e07aSXin Li MakeEntry(225, "tuxcall", UnknownArguments()),
1139*ec63e07aSXin Li MakeEntry(226, "sendfile64", UnknownArguments()),
1140*ec63e07aSXin Li MakeEntry(227, "io_setup", kInt, kHex),
1141*ec63e07aSXin Li MakeEntry(228, "io_destroy", kInt),
1142*ec63e07aSXin Li MakeEntry(229, "io_getevents", kInt, kInt, kInt, kHex, kHex),
1143*ec63e07aSXin Li MakeEntry(230, "io_submit", kInt, kInt, kHex),
1144*ec63e07aSXin Li MakeEntry(231, "io_cancel", kInt, kHex, kHex),
1145*ec63e07aSXin Li MakeEntry(232, "set_tid_address", kHex),
1146*ec63e07aSXin Li MakeEntry(233, "fadvise64", kInt, kInt, kInt, kInt),
1147*ec63e07aSXin Li MakeEntry(234, "exit_group", kInt),
1148*ec63e07aSXin Li MakeEntry(235, "lookup_dcookie", kInt, kString, kInt),
1149*ec63e07aSXin Li MakeEntry(236, "epoll_create", kInt),
1150*ec63e07aSXin Li MakeEntry(237, "epoll_ctl", kInt, kInt, kInt, kHex),
1151*ec63e07aSXin Li MakeEntry(238, "epoll_wait", kInt, kHex, kInt, kInt),
1152*ec63e07aSXin Li MakeEntry(239, "remap_file_pages", kGen, kInt, kInt, kInt, kHex),
1153*ec63e07aSXin Li MakeEntry(240, "timer_create", kInt, kHex, kHex),
1154*ec63e07aSXin Li MakeEntry(241, "timer_settime", kInt, kHex, kHex, kHex),
1155*ec63e07aSXin Li MakeEntry(242, "timer_gettime", kInt, kHex),
1156*ec63e07aSXin Li MakeEntry(243, "timer_getoverrun", kInt),
1157*ec63e07aSXin Li MakeEntry(244, "timer_delete", kInt),
1158*ec63e07aSXin Li MakeEntry(245, "clock_settime", kInt, kHex),
1159*ec63e07aSXin Li MakeEntry(246, "clock_gettime", kInt, kHex),
1160*ec63e07aSXin Li MakeEntry(247, "clock_getres", kInt, kHex),
1161*ec63e07aSXin Li MakeEntry(248, "clock_nanosleep", kInt, kHex, kHex, kHex),
1162*ec63e07aSXin Li MakeEntry(249, "swapcontext", UnknownArguments()),
1163*ec63e07aSXin Li MakeEntry(250, "tgkill", kInt, kInt, kSignal),
1164*ec63e07aSXin Li MakeEntry(251, "utimes", kPath, kHex),
1165*ec63e07aSXin Li MakeEntry(252, "statfs64", UnknownArguments()),
1166*ec63e07aSXin Li MakeEntry(253, "fstatfs64", UnknownArguments()),
1167*ec63e07aSXin Li MakeEntry(254, "fadvise64_64", UnknownArguments()),
1168*ec63e07aSXin Li MakeEntry(255, "rtas", UnknownArguments()),
1169*ec63e07aSXin Li MakeEntry(256, "sys_debug_setcontext", kHex, kHex, kHex, kHex, kHex, kHex),
1170*ec63e07aSXin Li MakeEntry(258, "migrate_pages", kInt, kInt, kHex, kHex),
1171*ec63e07aSXin Li MakeEntry(259, "mbind", kGen, kInt, kInt, kHex, kInt, kHex),
1172*ec63e07aSXin Li MakeEntry(260, "get_mempolicy", kInt, kHex, kInt, kInt, kHex),
1173*ec63e07aSXin Li MakeEntry(261, "set_mempolicy", kInt, kHex, kInt),
1174*ec63e07aSXin Li MakeEntry(262, "mq_open", kString, kHex, kOct, kHex),
1175*ec63e07aSXin Li MakeEntry(263, "mq_unlink", kString),
1176*ec63e07aSXin Li MakeEntry(264, "mq_timedsend", kHex, kHex, kInt, kInt, kHex),
1177*ec63e07aSXin Li MakeEntry(265, "mq_timedreceive", kHex, kHex, kInt, kHex, kHex),
1178*ec63e07aSXin Li MakeEntry(266, "mq_notify", kHex, kHex),
1179*ec63e07aSXin Li MakeEntry(267, "mq_getsetattr", kHex, kHex, kHex),
1180*ec63e07aSXin Li MakeEntry(268, "kexec_load", kHex, kInt, kHex, kHex),
1181*ec63e07aSXin Li MakeEntry(269, "add_key", kString, kString, kGen, kInt, kInt),
1182*ec63e07aSXin Li MakeEntry(270, "request_key", kString, kString, kHex, kInt),
1183*ec63e07aSXin Li MakeEntry(271, "keyctl", kInt, kInt, kInt, kInt, kInt),
1184*ec63e07aSXin Li MakeEntry(272, "waitid", kInt, kInt, kHex, kInt, kHex),
1185*ec63e07aSXin Li MakeEntry(273, "ioprio_set", kInt, kInt, kInt),
1186*ec63e07aSXin Li MakeEntry(274, "ioprio_get", kInt, kInt),
1187*ec63e07aSXin Li MakeEntry(275, "inotify_init"),
1188*ec63e07aSXin Li MakeEntry(276, "inotify_add_watch", kInt, kPath, kHex),
1189*ec63e07aSXin Li MakeEntry(277, "inotify_rm_watch", kInt, kInt),
1190*ec63e07aSXin Li MakeEntry(278, "spu_run", UnknownArguments()),
1191*ec63e07aSXin Li MakeEntry(279, "spu_create", UnknownArguments()),
1192*ec63e07aSXin Li MakeEntry(280, "pselect6", kInt, kHex, kHex, kHex, kHex),
1193*ec63e07aSXin Li MakeEntry(281, "ppoll", kHex, kInt, kHex, kHex, kInt),
1194*ec63e07aSXin Li MakeEntry(282, "unshare", kHex),
1195*ec63e07aSXin Li MakeEntry(283, "splice", kInt, kHex, kInt, kHex, kInt, kHex),
1196*ec63e07aSXin Li MakeEntry(284, "tee", kInt, kInt, kInt, kHex),
1197*ec63e07aSXin Li MakeEntry(285, "vmsplice", kInt, kHex, kInt, kInt),
1198*ec63e07aSXin Li MakeEntry(286, "openat", kInt, kPath, kHex, kOct),
1199*ec63e07aSXin Li MakeEntry(287, "mkdirat", kInt, kPath, kOct),
1200*ec63e07aSXin Li MakeEntry(288, "mknodat", kInt, kPath, kOct, kHex),
1201*ec63e07aSXin Li MakeEntry(289, "fchownat", kInt, kPath, kInt, kInt, kHex),
1202*ec63e07aSXin Li MakeEntry(290, "futimesat", kInt, kPath, kHex),
1203*ec63e07aSXin Li MakeEntry(291, "newfstatat", kInt, kPath, kHex, kHex),
1204*ec63e07aSXin Li MakeEntry(292, "unlinkat", kInt, kPath, kHex),
1205*ec63e07aSXin Li MakeEntry(293, "renameat", kInt, kPath, kInt, kPath),
1206*ec63e07aSXin Li MakeEntry(294, "linkat", kInt, kPath, kInt, kPath, kHex),
1207*ec63e07aSXin Li MakeEntry(295, "symlinkat", kPath, kInt, kPath),
1208*ec63e07aSXin Li MakeEntry(296, "readlinkat", kInt, kPath, kHex, kInt),
1209*ec63e07aSXin Li MakeEntry(297, "fchmodat", kInt, kPath, kOct),
1210*ec63e07aSXin Li MakeEntry(298, "faccessat", kInt, kPath, kInt, kHex),
1211*ec63e07aSXin Li MakeEntry(299, "get_robust_list", kInt, kHex, kHex),
1212*ec63e07aSXin Li MakeEntry(300, "set_robust_list", kHex, kInt),
1213*ec63e07aSXin Li MakeEntry(301, "move_pages", kInt, kInt, kHex, kHex, kHex, kHex),
1214*ec63e07aSXin Li MakeEntry(302, "getcpu", kHex, kHex, kHex),
1215*ec63e07aSXin Li MakeEntry(303, "epoll_pwait", kInt, kHex, kInt, kInt, kHex, kInt),
1216*ec63e07aSXin Li MakeEntry(304, "utimensat", kInt, kPath, kHex, kHex),
1217*ec63e07aSXin Li MakeEntry(305, "signalfd", kInt, kHex, kHex),
1218*ec63e07aSXin Li MakeEntry(306, "timerfd_create", kInt, kHex),
1219*ec63e07aSXin Li MakeEntry(307, "eventfd", kInt),
1220*ec63e07aSXin Li MakeEntry(308, "sync_file_range2", UnknownArguments()),
1221*ec63e07aSXin Li MakeEntry(309, "fallocate", kInt, kOct, kInt, kInt),
1222*ec63e07aSXin Li MakeEntry(310, "subpage_prot", UnknownArguments()),
1223*ec63e07aSXin Li MakeEntry(311, "timerfd_settime", kInt, kHex, kHex, kHex),
1224*ec63e07aSXin Li MakeEntry(312, "timerfd_gettime", kInt, kHex),
1225*ec63e07aSXin Li MakeEntry(313, "signalfd4", kInt, kHex, kHex, kHex),
1226*ec63e07aSXin Li MakeEntry(314, "eventfd2", kInt, kHex),
1227*ec63e07aSXin Li MakeEntry(315, "epoll_create1", kHex),
1228*ec63e07aSXin Li MakeEntry(316, "dup3", kInt, kInt, kHex),
1229*ec63e07aSXin Li MakeEntry(317, "pipe2", kHex, kHex),
1230*ec63e07aSXin Li MakeEntry(318, "inotify_init1", kHex),
1231*ec63e07aSXin Li MakeEntry(319, "perf_event_open", kHex, kInt, kInt, kInt, kHex),
1232*ec63e07aSXin Li MakeEntry(320, "preadv", kInt, kHex, kInt, kInt, kInt),
1233*ec63e07aSXin Li MakeEntry(321, "pwritev", kInt, kHex, kInt, kInt, kInt),
1234*ec63e07aSXin Li MakeEntry(322, "rt_tgsigqueueinfo", kInt, kInt, kInt, kHex),
1235*ec63e07aSXin Li MakeEntry(323, "fanotify_init", kHex, kHex, kInt, kGen, kGen, kGen),
1236*ec63e07aSXin Li MakeEntry(324, "fanotify_mark", kInt, kHex, kHex, kInt, kPath),
1237*ec63e07aSXin Li MakeEntry(325, "prlimit64", kInt, kInt, kHex, kHex),
1238*ec63e07aSXin Li MakeEntry(326, "socket", kAddressFamily, kInt, kInt),
1239*ec63e07aSXin Li MakeEntry(327, "bind", kInt, kSockaddr, kInt),
1240*ec63e07aSXin Li MakeEntry(328, "connect", kInt, kSockaddr, kInt),
1241*ec63e07aSXin Li MakeEntry(329, "listen", kInt, kInt),
1242*ec63e07aSXin Li MakeEntry(330, "accept", kInt, kSockaddr, kHex),
1243*ec63e07aSXin Li MakeEntry(331, "getsockname", kInt, kSockaddr, kHex),
1244*ec63e07aSXin Li MakeEntry(332, "getpeername", kInt, kSockaddr, kHex),
1245*ec63e07aSXin Li MakeEntry(333, "socketpair", kAddressFamily, kInt, kInt, kHex),
1246*ec63e07aSXin Li MakeEntry(334, "send", UnknownArguments()),
1247*ec63e07aSXin Li MakeEntry(335, "sendto", kInt, kGen, kInt, kHex, kSockaddr, kInt),
1248*ec63e07aSXin Li MakeEntry(336, "recv", UnknownArguments()),
1249*ec63e07aSXin Li MakeEntry(337, "recvfrom", kInt, kHex, kInt, kHex, kSockaddr, kHex),
1250*ec63e07aSXin Li MakeEntry(338, "shutdown", kInt, kInt),
1251*ec63e07aSXin Li MakeEntry(339, "setsockopt", kInt, kInt, kInt, kHex, kHex),
1252*ec63e07aSXin Li MakeEntry(340, "getsockopt", kInt, kInt, kInt, kHex, kInt),
1253*ec63e07aSXin Li MakeEntry(341, "sendmsg", kInt, kSockmsghdr, kHex),
1254*ec63e07aSXin Li MakeEntry(342, "recvmsg", kInt, kHex, kInt),
1255*ec63e07aSXin Li MakeEntry(343, "recvmmsg", kInt, kHex, kInt, kHex, kHex),
1256*ec63e07aSXin Li MakeEntry(344, "accept4", kInt, kHex, kHex, kInt),
1257*ec63e07aSXin Li MakeEntry(345, "name_to_handle_at", kInt, kPath, kHex, kHex, kHex),
1258*ec63e07aSXin Li MakeEntry(346, "open_by_handle_at", kInt, kHex, kHex),
1259*ec63e07aSXin Li MakeEntry(347, "clock_adjtime", kInt, kHex),
1260*ec63e07aSXin Li MakeEntry(348, "syncfs", kInt),
1261*ec63e07aSXin Li MakeEntry(349, "sendmmsg", kInt, kHex, kInt, kHex),
1262*ec63e07aSXin Li MakeEntry(350, "setns", kInt, kHex),
1263*ec63e07aSXin Li MakeEntry(351, "process_vm_readv", kInt, kHex, kInt, kHex, kInt, kInt),
1264*ec63e07aSXin Li MakeEntry(352, "process_vm_writev", kInt, kHex, kInt, kHex, kInt, kInt),
1265*ec63e07aSXin Li MakeEntry(353, "finit_module", kInt, kString, kHex),
1266*ec63e07aSXin Li MakeEntry(354, "kcmp", kInt, kInt, kInt, kInt, kInt),
1267*ec63e07aSXin Li MakeEntry(355, "sched_setattr", kInt, kHex, kHex),
1268*ec63e07aSXin Li MakeEntry(356, "sched_getattr", kInt, kHex, kInt, kHex),
1269*ec63e07aSXin Li MakeEntry(357, "renameat2", kInt, kPath, kInt, kPath, kHex),
1270*ec63e07aSXin Li MakeEntry(358, "seccomp", kInt, kHex, kHex),
1271*ec63e07aSXin Li MakeEntry(359, "getrandom", kGen, kInt, kHex),
1272*ec63e07aSXin Li MakeEntry(360, "memfd_create", kString, kHex),
1273*ec63e07aSXin Li MakeEntry(361, "bpf", kInt, kHex, kInt),
1274*ec63e07aSXin Li MakeEntry(362, "execveat", kInt, kPath, kHex, kHex, kHex),
1275*ec63e07aSXin Li MakeEntry(363, "switch_endian", UnknownArguments()),
1276*ec63e07aSXin Li MakeEntry(364, "userfaultfd", kHex),
1277*ec63e07aSXin Li MakeEntry(365, "membarrier", kInt, kHex),
1278*ec63e07aSXin Li MakeEntry(378, "mlock2", kHex, kInt, kHex),
1279*ec63e07aSXin Li MakeEntry(379, "copy_file_range", kInt, kHex, kInt, kHex, kInt, kHex),
1280*ec63e07aSXin Li MakeEntry(380, "preadv2", kInt, kHex, kInt, kInt, kInt, kHex),
1281*ec63e07aSXin Li MakeEntry(381, "pwritev2", kInt, kHex, kInt, kInt, kInt, kHex),
1282*ec63e07aSXin Li MakeEntry(435, "clone3", kHex, kInt),
1283*ec63e07aSXin Li MakeEntry(436, "close_range", kInt, kInt, kHex),
1284*ec63e07aSXin Li MakeEntry(437, "openat2", kInt, kPath, kHex, kInt),
1285*ec63e07aSXin Li MakeEntry(438, "pidfd_getfd", UnknownArguments()),
1286*ec63e07aSXin Li MakeEntry(439, "faccessat2", kInt, kPath, kHex, kHex),
1287*ec63e07aSXin Li MakeEntry(440, "process_madvise", UnknownArguments()),
1288*ec63e07aSXin Li MakeEntry(441, "epoll_pwait2", UnknownArguments()),
1289*ec63e07aSXin Li MakeEntry(442, "mount_setattr", UnknownArguments()),
1290*ec63e07aSXin Li MakeEntry(443, "quotactl_fd", UnknownArguments()),
1291*ec63e07aSXin Li MakeEntry(444, "landlock_create_ruleset", UnknownArguments()),
1292*ec63e07aSXin Li MakeEntry(445, "landlock_add_rule", UnknownArguments()),
1293*ec63e07aSXin Li MakeEntry(446, "landlock_restrict_self", UnknownArguments()),
1294*ec63e07aSXin Li MakeEntry(448, "process_mrelease", UnknownArguments()),
1295*ec63e07aSXin Li MakeEntry(449, "futex_waitv", UnknownArguments()),
1296*ec63e07aSXin Li MakeEntry(450, "set_mempolicy_home_node", UnknownArguments()),
1297*ec63e07aSXin Li MakeEntry(451, "cachestat", UnknownArguments()),
1298*ec63e07aSXin Li MakeEntry(452, "fchmodat2", kInt, kPath, kHex, kHex),
1299*ec63e07aSXin Li MakeEntry(453, "map_shadow_stack", UnknownArguments()),
1300*ec63e07aSXin Li MakeEntry(454, "futex_wake", UnknownArguments()),
1301*ec63e07aSXin Li MakeEntry(455, "futex_wait", UnknownArguments()),
1302*ec63e07aSXin Li MakeEntry(456, "futex_requeue", UnknownArguments()),
1303*ec63e07aSXin Li MakeEntry(457, "statmount", UnknownArguments()),
1304*ec63e07aSXin Li MakeEntry(458, "listmount", UnknownArguments()),
1305*ec63e07aSXin Li MakeEntry(459, "lsm_get_self_attr", UnknownArguments()),
1306*ec63e07aSXin Li MakeEntry(460, "lsm_set_self_attr", UnknownArguments()),
1307*ec63e07aSXin Li MakeEntry(461, "lsm_list_modules", UnknownArguments()),
1308*ec63e07aSXin Li // clang-format on
1309*ec63e07aSXin Li };
1310*ec63e07aSXin Li
1311*ec63e07aSXin Li static_assert(IsSorted(kSyscallDataPPC64LE, SyscallTable::Entry::BySyscallNr),
1312*ec63e07aSXin Li "Syscalls should be sorted");
1313*ec63e07aSXin Li
1314*ec63e07aSXin Li // https://github.com/torvalds/linux/blob/v5.8/include/uapi/asm-generic/unistd.h
1315*ec63e07aSXin Li constexpr std::array kSyscallDataArm64 = {
1316*ec63e07aSXin Li // clang-format off
1317*ec63e07aSXin Li MakeEntry(0, "io_setup", kInt, kHex),
1318*ec63e07aSXin Li MakeEntry(1, "io_destroy", kInt),
1319*ec63e07aSXin Li MakeEntry(2, "io_submit", kInt, kInt, kHex),
1320*ec63e07aSXin Li MakeEntry(3, "io_cancel", kInt, kHex, kHex),
1321*ec63e07aSXin Li MakeEntry(4, "io_getevents", kInt, kInt, kInt, kHex, kHex),
1322*ec63e07aSXin Li MakeEntry(5, "setxattr", kPath, kString, kGen, kInt, kHex),
1323*ec63e07aSXin Li MakeEntry(6, "lsetxattr", kPath, kString, kGen, kInt, kHex),
1324*ec63e07aSXin Li MakeEntry(7, "fsetxattr", kInt, kString, kGen, kInt, kHex),
1325*ec63e07aSXin Li MakeEntry(8, "getxattr", kPath, kString, kGen, kInt),
1326*ec63e07aSXin Li MakeEntry(9, "lgetxattr", kPath, kString, kGen, kInt),
1327*ec63e07aSXin Li MakeEntry(10, "fgetxattr", kInt, kString, kGen, kInt),
1328*ec63e07aSXin Li MakeEntry(11, "listxattr", kPath, kGen, kInt),
1329*ec63e07aSXin Li MakeEntry(12, "llistxattr", kPath, kGen, kInt),
1330*ec63e07aSXin Li MakeEntry(13, "flistxattr", kInt, kGen, kInt),
1331*ec63e07aSXin Li MakeEntry(14, "removexattr", kPath, kString),
1332*ec63e07aSXin Li MakeEntry(15, "lremovexattr", kPath, kString),
1333*ec63e07aSXin Li MakeEntry(16, "fremovexattr", kInt, kString),
1334*ec63e07aSXin Li MakeEntry(17, "getcwd", kHex, kInt),
1335*ec63e07aSXin Li MakeEntry(18, "lookup_dcookie", kInt, kString, kInt),
1336*ec63e07aSXin Li MakeEntry(19, "eventfd2", kInt, kHex),
1337*ec63e07aSXin Li MakeEntry(20, "epoll_create1", kHex),
1338*ec63e07aSXin Li MakeEntry(21, "epoll_ctl", kInt, kInt, kInt, kHex),
1339*ec63e07aSXin Li MakeEntry(22, "epoll_pwait", kInt, kHex, kInt, kInt, kHex, kInt),
1340*ec63e07aSXin Li MakeEntry(23, "dup", kInt),
1341*ec63e07aSXin Li MakeEntry(24, "dup3", kInt, kInt, kHex),
1342*ec63e07aSXin Li MakeEntry(25, "fcntl", kInt, kInt, kHex),
1343*ec63e07aSXin Li MakeEntry(26, "inotify_init1", kHex),
1344*ec63e07aSXin Li MakeEntry(27, "inotify_add_watch", kInt, kPath, kHex),
1345*ec63e07aSXin Li MakeEntry(28, "inotify_rm_watch", kInt, kInt),
1346*ec63e07aSXin Li MakeEntry(29, "ioctl", kInt, kInt, kHex),
1347*ec63e07aSXin Li MakeEntry(30, "ioprio_set", kInt, kInt, kInt),
1348*ec63e07aSXin Li MakeEntry(31, "ioprio_get", kInt, kInt),
1349*ec63e07aSXin Li MakeEntry(32, "flock", kInt, kInt),
1350*ec63e07aSXin Li MakeEntry(33, "mknodat", kInt, kPath, kOct, kHex),
1351*ec63e07aSXin Li MakeEntry(34, "mkdirat", kInt, kPath, kOct),
1352*ec63e07aSXin Li MakeEntry(35, "unlinkat", kInt, kPath, kHex),
1353*ec63e07aSXin Li MakeEntry(36, "symlinkat", kPath, kInt, kPath),
1354*ec63e07aSXin Li MakeEntry(37, "linkat", kInt, kPath, kInt, kPath, kHex),
1355*ec63e07aSXin Li MakeEntry(38, "renameat", kInt, kPath, kInt, kPath),
1356*ec63e07aSXin Li MakeEntry(39, "umount2", kPath, kHex),
1357*ec63e07aSXin Li MakeEntry(40, "mount", kPath, kPath, kString, kHex, kGen),
1358*ec63e07aSXin Li MakeEntry(41, "pivot_root", kPath, kPath),
1359*ec63e07aSXin Li MakeEntry(42, "nfsservctl", kInt, kGen, kGen),
1360*ec63e07aSXin Li MakeEntry(43, "statfs", kPath, kHex),
1361*ec63e07aSXin Li MakeEntry(44, "fstatfs", kInt, kHex),
1362*ec63e07aSXin Li MakeEntry(45, "truncate", kPath, kInt),
1363*ec63e07aSXin Li MakeEntry(46, "ftruncate", kInt, kInt),
1364*ec63e07aSXin Li MakeEntry(47, "fallocate", kInt, kOct, kInt, kInt),
1365*ec63e07aSXin Li MakeEntry(48, "faccessat", kInt, kPath, kHex, kHex),
1366*ec63e07aSXin Li MakeEntry(49, "chdir", kPath),
1367*ec63e07aSXin Li MakeEntry(50, "fchdir", kInt),
1368*ec63e07aSXin Li MakeEntry(51, "chroot", kPath),
1369*ec63e07aSXin Li MakeEntry(52, "fchmod", kInt, kOct),
1370*ec63e07aSXin Li MakeEntry(53, "fchmodat", kInt, kPath, kOct, kHex),
1371*ec63e07aSXin Li MakeEntry(54, "fchownat", kInt, kPath, kInt, kInt, kHex),
1372*ec63e07aSXin Li MakeEntry(55, "fchown", kInt, kInt, kInt),
1373*ec63e07aSXin Li MakeEntry(56, "openat", kGen, kPath, kOct, kHex, kGen, kGen),
1374*ec63e07aSXin Li MakeEntry(57, "close", kInt),
1375*ec63e07aSXin Li MakeEntry(58, "vhangup"),
1376*ec63e07aSXin Li MakeEntry(59, "pipe2", kHex, kHex),
1377*ec63e07aSXin Li MakeEntry(60, "quotactl", kInt, kPath, kInt, kGen),
1378*ec63e07aSXin Li MakeEntry(61, "getdents64", kInt, kHex, kInt),
1379*ec63e07aSXin Li MakeEntry(62, "lseek", kInt, kInt, kInt),
1380*ec63e07aSXin Li MakeEntry(63, "read", kInt, kHex, kInt),
1381*ec63e07aSXin Li MakeEntry(64, "write", kInt, kHex, kInt),
1382*ec63e07aSXin Li MakeEntry(65, "readv", kInt, kHex, kInt),
1383*ec63e07aSXin Li MakeEntry(66, "writev", kInt, kHex, kInt),
1384*ec63e07aSXin Li MakeEntry(67, "pread64", kInt, kHex, kInt, kInt),
1385*ec63e07aSXin Li MakeEntry(68, "pwrite64", kInt, kHex, kInt, kInt),
1386*ec63e07aSXin Li MakeEntry(69, "preadv", kInt, kHex, kInt, kInt, kInt),
1387*ec63e07aSXin Li MakeEntry(70, "pwritev", kInt, kHex, kInt, kInt, kInt),
1388*ec63e07aSXin Li MakeEntry(71, "sendfile", kInt, kInt, kHex, kInt),
1389*ec63e07aSXin Li MakeEntry(72, "pselect6", kInt, kHex, kHex, kHex, kHex),
1390*ec63e07aSXin Li MakeEntry(73, "ppoll", kHex, kInt, kHex, kHex, kInt),
1391*ec63e07aSXin Li MakeEntry(74, "signalfd4", kInt, kHex, kHex, kHex),
1392*ec63e07aSXin Li MakeEntry(75, "vmsplice", kInt, kHex, kInt, kInt),
1393*ec63e07aSXin Li MakeEntry(76, "splice", kInt, kHex, kInt, kHex, kInt, kHex),
1394*ec63e07aSXin Li MakeEntry(77, "tee", kInt, kInt, kInt, kHex),
1395*ec63e07aSXin Li MakeEntry(78, "readlinkat", kInt, kPath, kHex, kInt),
1396*ec63e07aSXin Li MakeEntry(79, "newfstatat", kInt, kPath, kHex, kHex),
1397*ec63e07aSXin Li MakeEntry(80, "fstat", kInt, kHex),
1398*ec63e07aSXin Li MakeEntry(81, "sync"),
1399*ec63e07aSXin Li MakeEntry(82, "fsync", kInt),
1400*ec63e07aSXin Li MakeEntry(83, "fdatasync", kInt),
1401*ec63e07aSXin Li MakeEntry(84, "sync_file_range", kInt, kInt, kInt, kHex),
1402*ec63e07aSXin Li MakeEntry(85, "timerfd_create", kInt, kHex),
1403*ec63e07aSXin Li MakeEntry(86, "timerfd_settime", kInt, kHex, kHex, kHex),
1404*ec63e07aSXin Li MakeEntry(87, "timerfd_gettime", kInt, kHex),
1405*ec63e07aSXin Li MakeEntry(88, "utimensat", kInt, kPath, kHex, kHex),
1406*ec63e07aSXin Li MakeEntry(89, "acct", kPath),
1407*ec63e07aSXin Li MakeEntry(90, "capget", kHex, kHex),
1408*ec63e07aSXin Li MakeEntry(91, "capset", kHex, kHex),
1409*ec63e07aSXin Li MakeEntry(92, "personality", kHex),
1410*ec63e07aSXin Li MakeEntry(93, "exit", kInt),
1411*ec63e07aSXin Li MakeEntry(94, "exit_group", kInt),
1412*ec63e07aSXin Li MakeEntry(95, "waitid", kInt, kInt, kHex, kInt, kHex),
1413*ec63e07aSXin Li MakeEntry(96, "set_tid_address", kHex),
1414*ec63e07aSXin Li MakeEntry(97, "unshare", kHex),
1415*ec63e07aSXin Li MakeEntry(98, "futex", kGen, kInt, kInt, kGen, kGen, kInt),
1416*ec63e07aSXin Li MakeEntry(99, "set_robust_list", kHex, kInt),
1417*ec63e07aSXin Li MakeEntry(100, "get_robust_list", kInt, kHex, kHex),
1418*ec63e07aSXin Li MakeEntry(101, "nanosleep", kHex, kHex),
1419*ec63e07aSXin Li MakeEntry(102, "getitimer", kInt, kHex),
1420*ec63e07aSXin Li MakeEntry(103, "setitimer", kInt, kHex, kHex),
1421*ec63e07aSXin Li MakeEntry(104, "kexec_load", kHex, kInt, kHex, kHex),
1422*ec63e07aSXin Li MakeEntry(105, "init_module", kGen, kInt, kString),
1423*ec63e07aSXin Li MakeEntry(106, "delete_module", kString, kHex),
1424*ec63e07aSXin Li MakeEntry(107, "timer_create", kInt, kHex, kHex),
1425*ec63e07aSXin Li MakeEntry(108, "timer_gettime", kInt, kHex),
1426*ec63e07aSXin Li MakeEntry(109, "timer_getoverrun", kInt),
1427*ec63e07aSXin Li MakeEntry(110, "timer_settime", kInt, kHex, kHex, kHex),
1428*ec63e07aSXin Li MakeEntry(111, "timer_delete", kInt),
1429*ec63e07aSXin Li MakeEntry(112, "clock_settime", kInt, kHex),
1430*ec63e07aSXin Li MakeEntry(113, "clock_gettime", kInt, kHex),
1431*ec63e07aSXin Li MakeEntry(114, "clock_getres", kInt, kHex),
1432*ec63e07aSXin Li MakeEntry(115, "clock_nanosleep", kInt, kHex, kHex, kHex),
1433*ec63e07aSXin Li MakeEntry(116, "syslog", kInt, kHex, kInt),
1434*ec63e07aSXin Li MakeEntry(117, "ptrace", kHex, kHex, kHex, kHex),
1435*ec63e07aSXin Li MakeEntry(118, "sched_setparam", kInt, kHex),
1436*ec63e07aSXin Li MakeEntry(119, "sched_setscheduler", kInt, kInt, kHex),
1437*ec63e07aSXin Li MakeEntry(120, "sched_getscheduler", kInt),
1438*ec63e07aSXin Li MakeEntry(121, "sched_getparam", kInt, kHex),
1439*ec63e07aSXin Li MakeEntry(122, "sched_setaffinity", kInt, kInt, kHex),
1440*ec63e07aSXin Li MakeEntry(123, "sched_getaffinity", kInt, kInt, kHex),
1441*ec63e07aSXin Li MakeEntry(124, "sched_yield"),
1442*ec63e07aSXin Li MakeEntry(125, "sched_get_priority_max", kHex),
1443*ec63e07aSXin Li MakeEntry(126, "sched_get_priority_min", kHex),
1444*ec63e07aSXin Li MakeEntry(127, "sched_rr_get_interval", kInt, kHex),
1445*ec63e07aSXin Li MakeEntry(128, "restart_syscall"),
1446*ec63e07aSXin Li MakeEntry(129, "kill", kInt, kSignal),
1447*ec63e07aSXin Li MakeEntry(130, "tkill", kInt, kSignal),
1448*ec63e07aSXin Li MakeEntry(131, "tgkill", kInt, kInt, kSignal),
1449*ec63e07aSXin Li MakeEntry(132, "sigaltstack", kHex, kHex),
1450*ec63e07aSXin Li MakeEntry(133, "rt_sigsuspend", kHex, kInt),
1451*ec63e07aSXin Li MakeEntry(134, "rt_sigaction", kSignal, kHex, kHex, kInt),
1452*ec63e07aSXin Li MakeEntry(135, "rt_sigprocmask", kInt, kHex, kHex, kInt),
1453*ec63e07aSXin Li MakeEntry(136, "rt_sigpending", kHex, kInt),
1454*ec63e07aSXin Li MakeEntry(137, "rt_sigtimedwait", kHex, kHex, kHex, kInt),
1455*ec63e07aSXin Li MakeEntry(138, "rt_sigqueueinfo", kInt, kSignal, kHex),
1456*ec63e07aSXin Li MakeEntry(139, "rt_sigreturn"),
1457*ec63e07aSXin Li MakeEntry(140, "setpriority", kInt, kInt, kInt),
1458*ec63e07aSXin Li MakeEntry(141, "getpriority", kInt, kInt),
1459*ec63e07aSXin Li MakeEntry(142, "reboot", kInt, kHex, kHex, kGen),
1460*ec63e07aSXin Li MakeEntry(143, "setregid", kInt, kInt),
1461*ec63e07aSXin Li MakeEntry(144, "setgid", kInt),
1462*ec63e07aSXin Li MakeEntry(145, "setreuid", kInt, kInt),
1463*ec63e07aSXin Li MakeEntry(146, "setuid", kInt),
1464*ec63e07aSXin Li MakeEntry(147, "setresuid", kInt, kInt, kInt),
1465*ec63e07aSXin Li MakeEntry(148, "getresuid", kHex, kHex, kHex),
1466*ec63e07aSXin Li MakeEntry(149, "setresgid", kInt, kInt, kInt),
1467*ec63e07aSXin Li MakeEntry(150, "getresgid", kHex, kHex, kHex),
1468*ec63e07aSXin Li MakeEntry(151, "setfsuid", kInt),
1469*ec63e07aSXin Li MakeEntry(152, "setfsgid", kInt),
1470*ec63e07aSXin Li MakeEntry(153, "times", kHex),
1471*ec63e07aSXin Li MakeEntry(154, "setpgid", kInt, kInt),
1472*ec63e07aSXin Li MakeEntry(155, "getpgid", kInt),
1473*ec63e07aSXin Li MakeEntry(156, "getsid", kInt),
1474*ec63e07aSXin Li MakeEntry(157, "setsid"),
1475*ec63e07aSXin Li MakeEntry(158, "getgroups", kInt, kHex),
1476*ec63e07aSXin Li MakeEntry(159, "setgroups", kInt, kHex),
1477*ec63e07aSXin Li MakeEntry(160, "uname", kInt),
1478*ec63e07aSXin Li MakeEntry(161, "sethostname", kString, kInt),
1479*ec63e07aSXin Li MakeEntry(162, "setdomainname", kString, kInt),
1480*ec63e07aSXin Li MakeEntry(163, "getrlimit", kInt, kHex),
1481*ec63e07aSXin Li MakeEntry(164, "setrlimit", kInt, kHex),
1482*ec63e07aSXin Li MakeEntry(165, "getrusage", kInt, kHex),
1483*ec63e07aSXin Li MakeEntry(166, "umask", kHex),
1484*ec63e07aSXin Li MakeEntry(167, "prctl", kInt, kHex, kHex, kHex, kHex),
1485*ec63e07aSXin Li MakeEntry(168, "getcpu", kHex, kHex, kHex),
1486*ec63e07aSXin Li MakeEntry(169, "gettimeofday", kHex, kHex),
1487*ec63e07aSXin Li MakeEntry(170, "settimeofday", kHex, kHex),
1488*ec63e07aSXin Li MakeEntry(171, "adjtimex", kHex),
1489*ec63e07aSXin Li MakeEntry(172, "getpid"),
1490*ec63e07aSXin Li MakeEntry(173, "getppid"),
1491*ec63e07aSXin Li MakeEntry(174, "getuid"),
1492*ec63e07aSXin Li MakeEntry(175, "geteuid"),
1493*ec63e07aSXin Li MakeEntry(176, "getgid"),
1494*ec63e07aSXin Li MakeEntry(177, "getegid"),
1495*ec63e07aSXin Li MakeEntry(178, "gettid"),
1496*ec63e07aSXin Li MakeEntry(179, "sysinfo", kHex),
1497*ec63e07aSXin Li MakeEntry(180, "mq_open", kString, kHex, kOct, kHex),
1498*ec63e07aSXin Li MakeEntry(181, "mq_unlink", kString),
1499*ec63e07aSXin Li MakeEntry(182, "mq_timedsend", kHex, kHex, kInt, kInt, kHex),
1500*ec63e07aSXin Li MakeEntry(183, "mq_timedreceive", kHex, kHex, kInt, kHex, kHex),
1501*ec63e07aSXin Li MakeEntry(184, "mq_notify", kHex, kHex),
1502*ec63e07aSXin Li MakeEntry(185, "mq_getsetattr", kHex, kHex, kHex),
1503*ec63e07aSXin Li MakeEntry(186, "msgget", kInt, kHex),
1504*ec63e07aSXin Li MakeEntry(187, "msgctl", kInt, kInt, kHex),
1505*ec63e07aSXin Li MakeEntry(188, "msgrcv", kInt, kHex, kInt, kInt, kHex),
1506*ec63e07aSXin Li MakeEntry(189, "msgsnd", kInt, kHex, kInt, kHex),
1507*ec63e07aSXin Li MakeEntry(190, "semget", kInt, kInt, kHex),
1508*ec63e07aSXin Li MakeEntry(191, "semctl", kInt, kInt, kInt, kHex),
1509*ec63e07aSXin Li MakeEntry(192, "semtimedop", kInt, kHex, kInt, kHex),
1510*ec63e07aSXin Li MakeEntry(193, "semop", kInt, kHex, kInt),
1511*ec63e07aSXin Li MakeEntry(194, "shmget", kInt, kInt, kHex),
1512*ec63e07aSXin Li MakeEntry(195, "shmctl", kInt, kInt, kHex),
1513*ec63e07aSXin Li MakeEntry(196, "shmat", kInt, kHex, kHex),
1514*ec63e07aSXin Li MakeEntry(197, "shmdt", kHex),
1515*ec63e07aSXin Li MakeEntry(198, "socket", kAddressFamily, kInt, kInt),
1516*ec63e07aSXin Li MakeEntry(199, "socketpair", kAddressFamily, kInt, kInt, kHex),
1517*ec63e07aSXin Li MakeEntry(200, "bind", kInt, kSockaddr, kInt),
1518*ec63e07aSXin Li MakeEntry(201, "listen", kInt, kInt),
1519*ec63e07aSXin Li MakeEntry(202, "accept", kInt, kSockaddr, kHex),
1520*ec63e07aSXin Li MakeEntry(203, "connect", kInt, kSockaddr, kInt),
1521*ec63e07aSXin Li MakeEntry(204, "getsockname", kInt, kSockaddr, kHex),
1522*ec63e07aSXin Li MakeEntry(205, "getpeername", kInt, kSockaddr, kHex),
1523*ec63e07aSXin Li MakeEntry(206, "sendto", kInt, kGen, kInt, kHex, kSockaddr, kInt),
1524*ec63e07aSXin Li MakeEntry(207, "recvfrom", kInt, kHex, kInt, kHex, kSockaddr, kHex),
1525*ec63e07aSXin Li MakeEntry(208, "setsockopt", kInt, kInt, kInt, kHex, kHex),
1526*ec63e07aSXin Li MakeEntry(209, "getsockopt", kInt, kInt, kInt, kHex, kInt),
1527*ec63e07aSXin Li MakeEntry(210, "shutdown", kInt, kInt),
1528*ec63e07aSXin Li MakeEntry(211, "sendmsg", kInt, kSockmsghdr, kHex),
1529*ec63e07aSXin Li MakeEntry(212, "recvmsg", kInt, kHex, kInt),
1530*ec63e07aSXin Li MakeEntry(213, "readahead", kInt, kInt, kInt),
1531*ec63e07aSXin Li MakeEntry(214, "brk", kInt),
1532*ec63e07aSXin Li MakeEntry(215, "munmap", kHex, kInt),
1533*ec63e07aSXin Li MakeEntry(216, "mremap", kHex, kInt, kInt, kInt, kHex),
1534*ec63e07aSXin Li MakeEntry(217, "add_key", kString, kString, kGen, kInt, kInt),
1535*ec63e07aSXin Li MakeEntry(218, "request_key", kString, kString, kHex, kInt),
1536*ec63e07aSXin Li MakeEntry(219, "keyctl", kInt, kInt, kInt, kInt, kInt),
1537*ec63e07aSXin Li MakeEntry(220, "clone", kCloneFlag, kHex, kHex, kHex, kHex),
1538*ec63e07aSXin Li MakeEntry(221, "execve", kPath, kHex, kHex),
1539*ec63e07aSXin Li MakeEntry(222, "mmap", kHex, kInt, kHex, kHex, kInt, kInt),
1540*ec63e07aSXin Li MakeEntry(223, "fadvise64", kInt, kInt, kInt, kInt),
1541*ec63e07aSXin Li MakeEntry(224, "swapon", kPath, kHex),
1542*ec63e07aSXin Li MakeEntry(225, "swapoff", kPath),
1543*ec63e07aSXin Li MakeEntry(226, "mprotect", kHex, kInt, kHex),
1544*ec63e07aSXin Li MakeEntry(227, "msync", kHex, kInt, kInt),
1545*ec63e07aSXin Li MakeEntry(228, "mlock", kInt, kInt),
1546*ec63e07aSXin Li MakeEntry(229, "munlock", kInt, kInt),
1547*ec63e07aSXin Li MakeEntry(230, "mlockall", kHex),
1548*ec63e07aSXin Li MakeEntry(231, "munlockall"),
1549*ec63e07aSXin Li MakeEntry(232, "mincore", kHex, kInt, kHex),
1550*ec63e07aSXin Li MakeEntry(233, "madvise", kHex, kInt, kInt),
1551*ec63e07aSXin Li MakeEntry(234, "remap_file_pages", kGen, kInt, kInt, kInt, kHex),
1552*ec63e07aSXin Li MakeEntry(235, "mbind", kGen, kInt, kInt, kHex, kInt, kHex),
1553*ec63e07aSXin Li MakeEntry(236, "get_mempolicy", kInt, kHex, kInt, kInt, kHex),
1554*ec63e07aSXin Li MakeEntry(237, "set_mempolicy", kInt, kHex, kInt),
1555*ec63e07aSXin Li MakeEntry(238, "migrate_pages", kInt, kInt, kHex, kHex),
1556*ec63e07aSXin Li MakeEntry(239, "move_pages", kInt, kInt, kHex, kHex, kHex, kHex),
1557*ec63e07aSXin Li MakeEntry(240, "rt_tgsigqueueinfo", kInt, kInt, kInt, kHex),
1558*ec63e07aSXin Li MakeEntry(241, "perf_event_open", kHex, kInt, kInt, kInt, kHex),
1559*ec63e07aSXin Li MakeEntry(242, "accept4", kInt, kHex, kHex, kInt),
1560*ec63e07aSXin Li MakeEntry(243, "recvmmsg", kInt, kHex, kInt, kHex, kHex),
1561*ec63e07aSXin Li MakeEntry(260, "wait4", kInt, kHex, kHex, kHex),
1562*ec63e07aSXin Li MakeEntry(261, "prlimit64", kInt, kInt, kHex, kHex),
1563*ec63e07aSXin Li MakeEntry(262, "fanotify_init", kHex, kHex),
1564*ec63e07aSXin Li MakeEntry(263, "fanotify_mark", kInt, kHex, kHex, kInt, kPath),
1565*ec63e07aSXin Li MakeEntry(264, "name_to_handle_at", kInt, kPath, kHex, kHex, kHex),
1566*ec63e07aSXin Li MakeEntry(265, "open_by_handle_at", kInt, kHex, kHex),
1567*ec63e07aSXin Li MakeEntry(266, "clock_adjtime", kInt, kHex),
1568*ec63e07aSXin Li MakeEntry(267, "syncfs", kInt),
1569*ec63e07aSXin Li MakeEntry(268, "setns", kInt, kHex),
1570*ec63e07aSXin Li MakeEntry(269, "sendmmsg", kInt, kHex, kInt, kHex),
1571*ec63e07aSXin Li MakeEntry(270, "process_vm_readv", kInt, kHex, kInt, kHex, kInt, kInt),
1572*ec63e07aSXin Li MakeEntry(271, "process_vm_writev", kInt, kHex, kInt, kHex, kInt, kInt),
1573*ec63e07aSXin Li MakeEntry(272, "kcmp", kInt, kInt, kInt, kInt, kInt),
1574*ec63e07aSXin Li MakeEntry(273, "finit_module", kInt, kString, kHex),
1575*ec63e07aSXin Li MakeEntry(274, "sched_setattr", kInt, kHex, kHex),
1576*ec63e07aSXin Li MakeEntry(275, "sched_getattr", kInt, kHex, kInt, kHex),
1577*ec63e07aSXin Li MakeEntry(276, "renameat2", kGen, kPath, kGen, kPath, kGen, kGen),
1578*ec63e07aSXin Li MakeEntry(277, "seccomp", kInt, kHex, kHex),
1579*ec63e07aSXin Li MakeEntry(278, "getrandom", kGen, kInt, kHex),
1580*ec63e07aSXin Li MakeEntry(279, "memfd_create", kString, kHex),
1581*ec63e07aSXin Li MakeEntry(280, "bpf", kInt, kHex, kInt),
1582*ec63e07aSXin Li MakeEntry(281, "execveat", kInt, kPath, kHex, kHex, kHex),
1583*ec63e07aSXin Li MakeEntry(282, "userfaultfd", kHex),
1584*ec63e07aSXin Li MakeEntry(283, "membarrier", kInt, kHex),
1585*ec63e07aSXin Li MakeEntry(284, "mlock2", kHex, kInt, kHex),
1586*ec63e07aSXin Li MakeEntry(285, "copy_file_range", kInt, kHex, kInt, kHex, kInt, kHex),
1587*ec63e07aSXin Li MakeEntry(286, "preadv2", kInt, kHex, kInt, kInt, kInt, kHex),
1588*ec63e07aSXin Li MakeEntry(287, "pwritev2", kInt, kHex, kInt, kInt, kInt, kHex),
1589*ec63e07aSXin Li MakeEntry(435, "clone3", kHex, kInt),
1590*ec63e07aSXin Li MakeEntry(436, "close_range", kInt, kInt, kHex),
1591*ec63e07aSXin Li MakeEntry(437, "openat2", kInt, kPath, kHex, kInt),
1592*ec63e07aSXin Li MakeEntry(438, "pidfd_getfd", UnknownArguments()),
1593*ec63e07aSXin Li MakeEntry(439, "faccessat2", kInt, kPath, kHex, kHex),
1594*ec63e07aSXin Li MakeEntry(440, "process_madvise", UnknownArguments()),
1595*ec63e07aSXin Li MakeEntry(441, "epoll_pwait2", UnknownArguments()),
1596*ec63e07aSXin Li MakeEntry(442, "mount_setattr", UnknownArguments()),
1597*ec63e07aSXin Li MakeEntry(443, "quotactl_fd", UnknownArguments()),
1598*ec63e07aSXin Li MakeEntry(444, "landlock_create_ruleset", UnknownArguments()),
1599*ec63e07aSXin Li MakeEntry(445, "landlock_add_rule", UnknownArguments()),
1600*ec63e07aSXin Li MakeEntry(446, "landlock_restrict_self", UnknownArguments()),
1601*ec63e07aSXin Li MakeEntry(448, "process_mrelease", UnknownArguments()),
1602*ec63e07aSXin Li MakeEntry(449, "futex_waitv", UnknownArguments()),
1603*ec63e07aSXin Li MakeEntry(450, "set_mempolicy_home_node", UnknownArguments()),
1604*ec63e07aSXin Li MakeEntry(451, "cachestat", UnknownArguments()),
1605*ec63e07aSXin Li MakeEntry(452, "fchmodat2", kInt, kPath, kHex, kHex),
1606*ec63e07aSXin Li MakeEntry(453, "map_shadow_stack", UnknownArguments()),
1607*ec63e07aSXin Li MakeEntry(454, "futex_wake", UnknownArguments()),
1608*ec63e07aSXin Li MakeEntry(455, "futex_wait", UnknownArguments()),
1609*ec63e07aSXin Li MakeEntry(456, "futex_requeue", UnknownArguments()),
1610*ec63e07aSXin Li MakeEntry(457, "statmount", UnknownArguments()),
1611*ec63e07aSXin Li MakeEntry(458, "listmount", UnknownArguments()),
1612*ec63e07aSXin Li MakeEntry(459, "lsm_get_self_attr", UnknownArguments()),
1613*ec63e07aSXin Li MakeEntry(460, "lsm_set_self_attr", UnknownArguments()),
1614*ec63e07aSXin Li MakeEntry(461, "lsm_list_modules", UnknownArguments()),
1615*ec63e07aSXin Li // clang-format on
1616*ec63e07aSXin Li };
1617*ec63e07aSXin Li
1618*ec63e07aSXin Li static_assert(IsSorted(kSyscallDataArm64, SyscallTable::Entry::BySyscallNr),
1619*ec63e07aSXin Li "Syscalls should be sorted");
1620*ec63e07aSXin Li
1621*ec63e07aSXin Li constexpr std::array kSyscallDataArm32 = {
1622*ec63e07aSXin Li // clang-format off
1623*ec63e07aSXin Li MakeEntry(0, "restart_syscall"),
1624*ec63e07aSXin Li MakeEntry(1, "exit", kHex, kHex, kHex, kHex),
1625*ec63e07aSXin Li MakeEntry(2, "fork"),
1626*ec63e07aSXin Li MakeEntry(3, "read", kInt, kHex, kInt),
1627*ec63e07aSXin Li MakeEntry(4, "write", kHex, kHex, kHex, kHex),
1628*ec63e07aSXin Li MakeEntry(5, "open", kPath, kHex, kOct),
1629*ec63e07aSXin Li MakeEntry(6, "close", kHex, kHex, kHex, kHex),
1630*ec63e07aSXin Li MakeEntry(8, "creat", kPath, kHex, kHex, kHex),
1631*ec63e07aSXin Li MakeEntry(9, "link", kPath, kPath),
1632*ec63e07aSXin Li MakeEntry(10, "unlink", kPath),
1633*ec63e07aSXin Li MakeEntry(11, "execve", kPath, kHex, kHex),
1634*ec63e07aSXin Li MakeEntry(12, "chdir", kPath),
1635*ec63e07aSXin Li MakeEntry(14, "mknod", kPath, kOct, kHex),
1636*ec63e07aSXin Li MakeEntry(15, "chmod", kPath, kOct),
1637*ec63e07aSXin Li MakeEntry(16, "lchown", kPath, kInt, kInt),
1638*ec63e07aSXin Li MakeEntry(19, "lseek", kInt, kInt, kInt),
1639*ec63e07aSXin Li MakeEntry(20, "getpid"),
1640*ec63e07aSXin Li MakeEntry(21, "mount", kPath, kPath, kString, kHex, kGen),
1641*ec63e07aSXin Li MakeEntry(23, "setuid", kInt),
1642*ec63e07aSXin Li MakeEntry(24, "getuid"),
1643*ec63e07aSXin Li MakeEntry(26, "ptrace", kHex, kHex, kHex, kHex),
1644*ec63e07aSXin Li MakeEntry(29, "pause"),
1645*ec63e07aSXin Li MakeEntry(33, "access", kPath, kHex),
1646*ec63e07aSXin Li MakeEntry(34, "nice", kHex, kHex, kHex, kHex),
1647*ec63e07aSXin Li MakeEntry(36, "sync"),
1648*ec63e07aSXin Li MakeEntry(37, "kill", kHex, kHex, kHex, kHex),
1649*ec63e07aSXin Li MakeEntry(38, "rename", kPath, kPath),
1650*ec63e07aSXin Li MakeEntry(39, "mkdir", kPath, kHex, kHex, kHex),
1651*ec63e07aSXin Li MakeEntry(40, "rmdir", kHex, kHex, kHex, kHex),
1652*ec63e07aSXin Li MakeEntry(41, "dup", kInt),
1653*ec63e07aSXin Li MakeEntry(42, "pipe", kHex),
1654*ec63e07aSXin Li MakeEntry(43, "times", kHex),
1655*ec63e07aSXin Li MakeEntry(45, "brk", kHex),
1656*ec63e07aSXin Li MakeEntry(46, "setgid", kInt),
1657*ec63e07aSXin Li MakeEntry(47, "getgid"),
1658*ec63e07aSXin Li MakeEntry(49, "geteuid"),
1659*ec63e07aSXin Li MakeEntry(50, "getegid"),
1660*ec63e07aSXin Li MakeEntry(51, "acct", kHex, kHex, kHex, kHex),
1661*ec63e07aSXin Li MakeEntry(52, "umount2", kHex, kHex, kHex, kHex),
1662*ec63e07aSXin Li MakeEntry(54, "ioctl", kInt, kInt, kHex),
1663*ec63e07aSXin Li MakeEntry(55, "fcntl", kInt, kInt, kHex),
1664*ec63e07aSXin Li MakeEntry(57, "setpgid", kInt, kInt),
1665*ec63e07aSXin Li MakeEntry(60, "umask", kHex),
1666*ec63e07aSXin Li MakeEntry(61, "chroot", kHex, kHex, kHex, kHex),
1667*ec63e07aSXin Li MakeEntry(62, "ustat", kHex, kHex),
1668*ec63e07aSXin Li MakeEntry(63, "dup2", kGen, kGen),
1669*ec63e07aSXin Li MakeEntry(64, "getppid"),
1670*ec63e07aSXin Li MakeEntry(65, "getpgrp"),
1671*ec63e07aSXin Li MakeEntry(66, "setsid"),
1672*ec63e07aSXin Li MakeEntry(67, "sigaction", kHex, kHex, kHex, kHex),
1673*ec63e07aSXin Li MakeEntry(70, "setreuid", kInt, kInt),
1674*ec63e07aSXin Li MakeEntry(71, "setregid", kInt, kInt),
1675*ec63e07aSXin Li MakeEntry(72, "sigsuspend", kHex, kHex, kHex, kHex),
1676*ec63e07aSXin Li MakeEntry(73, "sigpending", kHex, kHex, kHex, kHex),
1677*ec63e07aSXin Li MakeEntry(74, "sethostname", kString, kInt),
1678*ec63e07aSXin Li MakeEntry(75, "setrlimit", kInt, kHex),
1679*ec63e07aSXin Li MakeEntry(77, "getrusage", kInt, kHex),
1680*ec63e07aSXin Li MakeEntry(78, "gettimeofday", kHex, kHex),
1681*ec63e07aSXin Li MakeEntry(79, "settimeofday", kHex, kHex),
1682*ec63e07aSXin Li MakeEntry(80, "getgroups", kInt, kHex),
1683*ec63e07aSXin Li MakeEntry(81, "setgroups", kInt, kHex),
1684*ec63e07aSXin Li MakeEntry(83, "symlink", kPath, kPath),
1685*ec63e07aSXin Li MakeEntry(85, "readlink", kPath, kGen, kInt),
1686*ec63e07aSXin Li MakeEntry(86, "uselib", kPath),
1687*ec63e07aSXin Li MakeEntry(87, "swapon", kHex, kHex, kHex, kHex),
1688*ec63e07aSXin Li MakeEntry(88, "reboot", kGen, kGen, kGen, kGen),
1689*ec63e07aSXin Li MakeEntry(91, "munmap", kHex, kHex),
1690*ec63e07aSXin Li MakeEntry(92, "truncate", kPath, kHex, kHex, kHex),
1691*ec63e07aSXin Li MakeEntry(93, "ftruncate", kInt, kInt),
1692*ec63e07aSXin Li MakeEntry(94, "fchmod", kInt, kOct),
1693*ec63e07aSXin Li MakeEntry(95, "fchown", kInt, kInt, kInt),
1694*ec63e07aSXin Li MakeEntry(96, "getpriority", kInt, kInt),
1695*ec63e07aSXin Li MakeEntry(97, "setpriority", kInt, kInt, kInt),
1696*ec63e07aSXin Li MakeEntry(99, "statfs", kPath, kHex),
1697*ec63e07aSXin Li MakeEntry(100, "fstatfs", kInt, kHex),
1698*ec63e07aSXin Li MakeEntry(103, "syslog", kInt, kHex, kInt),
1699*ec63e07aSXin Li MakeEntry(104, "setitimer", kInt, kHex, kHex),
1700*ec63e07aSXin Li MakeEntry(105, "getitimer", kInt, kHex),
1701*ec63e07aSXin Li MakeEntry(106, "stat", kPath, kGen),
1702*ec63e07aSXin Li MakeEntry(107, "lstat", kPath, kGen),
1703*ec63e07aSXin Li MakeEntry(108, "fstat", kHex, kHex, kHex, kHex),
1704*ec63e07aSXin Li MakeEntry(111, "vhangup"),
1705*ec63e07aSXin Li MakeEntry(114, "wait4", kHex, kHex, kHex, kHex),
1706*ec63e07aSXin Li MakeEntry(115, "swapoff", kHex, kHex, kHex, kHex),
1707*ec63e07aSXin Li MakeEntry(116, "sysinfo", kHex),
1708*ec63e07aSXin Li MakeEntry(118, "fsync", kInt),
1709*ec63e07aSXin Li MakeEntry(119, "sigreturn", kHex, kHex, kHex, kHex),
1710*ec63e07aSXin Li MakeEntry(120, "clone", kCloneFlag, kHex, kHex, kHex, kHex),
1711*ec63e07aSXin Li MakeEntry(121, "setdomainname", kString, kInt),
1712*ec63e07aSXin Li MakeEntry(122, "uname", kInt),
1713*ec63e07aSXin Li MakeEntry(124, "adjtimex", kHex),
1714*ec63e07aSXin Li MakeEntry(125, "mprotect", kHex, kHex, kHex),
1715*ec63e07aSXin Li MakeEntry(126, "sigprocmask", kHex, kHex, kHex, kHex),
1716*ec63e07aSXin Li MakeEntry(128, "init_module", kGen, kInt, kString),
1717*ec63e07aSXin Li MakeEntry(129, "delete_module", kString, kHex),
1718*ec63e07aSXin Li MakeEntry(131, "quotactl", kHex, kHex, kHex, kHex),
1719*ec63e07aSXin Li MakeEntry(132, "getpgid", kInt),
1720*ec63e07aSXin Li MakeEntry(133, "fchdir", kInt),
1721*ec63e07aSXin Li MakeEntry(134, "bdflush", kHex, kHex, kHex, kHex),
1722*ec63e07aSXin Li MakeEntry(135, "sysfs", kInt, kInt, kInt),
1723*ec63e07aSXin Li MakeEntry(136, "personality", kHex),
1724*ec63e07aSXin Li MakeEntry(138, "setfsuid", kInt),
1725*ec63e07aSXin Li MakeEntry(139, "setfsgid", kInt),
1726*ec63e07aSXin Li MakeEntry(140, "_llseek", kHex, kHex, kHex, kHex),
1727*ec63e07aSXin Li MakeEntry(141, "getdents", kInt, kHex, kInt),
1728*ec63e07aSXin Li MakeEntry(142, "_newselect", kHex, kHex, kHex, kHex),
1729*ec63e07aSXin Li MakeEntry(143, "flock", kInt, kInt),
1730*ec63e07aSXin Li MakeEntry(144, "msync", kHex, kInt, kInt),
1731*ec63e07aSXin Li MakeEntry(145, "readv", kInt, kHex, kInt),
1732*ec63e07aSXin Li MakeEntry(146, "writev", kInt, kHex, kInt),
1733*ec63e07aSXin Li MakeEntry(147, "getsid", kInt),
1734*ec63e07aSXin Li MakeEntry(148, "fdatasync", kInt),
1735*ec63e07aSXin Li MakeEntry(149, "_sysctl", kHex),
1736*ec63e07aSXin Li MakeEntry(150, "mlock", kInt, kInt),
1737*ec63e07aSXin Li MakeEntry(151, "munlock", kInt, kInt),
1738*ec63e07aSXin Li MakeEntry(152, "mlockall", kHex),
1739*ec63e07aSXin Li MakeEntry(153, "munlockall"),
1740*ec63e07aSXin Li MakeEntry(154, "sched_setparam", kInt, kHex),
1741*ec63e07aSXin Li MakeEntry(155, "sched_getparam", kInt, kHex),
1742*ec63e07aSXin Li MakeEntry(156, "sched_setscheduler", kInt, kInt, kHex),
1743*ec63e07aSXin Li MakeEntry(157, "sched_getscheduler", kInt),
1744*ec63e07aSXin Li MakeEntry(158, "sched_yield"),
1745*ec63e07aSXin Li MakeEntry(159, "sched_get_priority_max", kHex),
1746*ec63e07aSXin Li MakeEntry(160, "sched_get_priority_min", kHex),
1747*ec63e07aSXin Li MakeEntry(161, "sched_rr_get_interval", kInt, kHex),
1748*ec63e07aSXin Li MakeEntry(162, "nanosleep", kHex, kHex),
1749*ec63e07aSXin Li MakeEntry(163, "mremap", kHex, kInt, kInt, kInt, kHex),
1750*ec63e07aSXin Li MakeEntry(164, "setresuid", kInt, kInt, kInt),
1751*ec63e07aSXin Li MakeEntry(165, "getresuid", kHex, kHex, kHex),
1752*ec63e07aSXin Li MakeEntry(168, "poll", kGen, kInt, kInt),
1753*ec63e07aSXin Li MakeEntry(169, "nfsservctl", kInt, kGen, kGen),
1754*ec63e07aSXin Li MakeEntry(170, "setresgid", kInt, kInt, kInt),
1755*ec63e07aSXin Li MakeEntry(171, "getresgid", kHex, kHex, kHex),
1756*ec63e07aSXin Li MakeEntry(172, "prctl", kInt, kHex, kHex, kHex, kHex),
1757*ec63e07aSXin Li MakeEntry(173, "rt_sigreturn"),
1758*ec63e07aSXin Li MakeEntry(174, "rt_sigaction", kHex, kHex, kHex, kHex),
1759*ec63e07aSXin Li MakeEntry(175, "rt_sigprocmask", kGen, kGen, kGen, kGen),
1760*ec63e07aSXin Li MakeEntry(176, "rt_sigpending", kHex, kInt),
1761*ec63e07aSXin Li MakeEntry(177, "rt_sigtimedwait", kGen, kGen, kGen, kGen),
1762*ec63e07aSXin Li MakeEntry(178, "rt_sigqueueinfo", kInt, kSignal, kHex),
1763*ec63e07aSXin Li MakeEntry(179, "rt_sigsuspend", kHex, kInt),
1764*ec63e07aSXin Li MakeEntry(180, "pread64", kGen, kGen, kGen, kGen),
1765*ec63e07aSXin Li MakeEntry(181, "pwrite64", kGen, kGen, kGen, kGen),
1766*ec63e07aSXin Li MakeEntry(182, "chown", kHex, kHex, kHex, kHex),
1767*ec63e07aSXin Li MakeEntry(183, "getcwd", kHex, kInt),
1768*ec63e07aSXin Li MakeEntry(184, "capget", kHex, kHex),
1769*ec63e07aSXin Li MakeEntry(185, "capset", kHex, kHex),
1770*ec63e07aSXin Li MakeEntry(186, "sigaltstack", kHex, kHex),
1771*ec63e07aSXin Li MakeEntry(187, "sendfile", kGen, kGen, kGen, kGen),
1772*ec63e07aSXin Li MakeEntry(190, "vfork"),
1773*ec63e07aSXin Li MakeEntry(191, "ugetrlimit", kHex, kHex, kHex, kHex),
1774*ec63e07aSXin Li MakeEntry(192, "mmap2", kHex, kHex, kHex, kHex),
1775*ec63e07aSXin Li MakeEntry(193, "truncate64", kHex, kHex, kHex, kHex),
1776*ec63e07aSXin Li MakeEntry(194, "ftruncate64", kHex, kHex, kHex, kHex),
1777*ec63e07aSXin Li MakeEntry(195, "stat64", kHex, kHex, kHex, kHex),
1778*ec63e07aSXin Li MakeEntry(196, "lstat64", kHex, kHex, kHex, kHex),
1779*ec63e07aSXin Li MakeEntry(197, "fstat64", kHex, kHex, kHex, kHex),
1780*ec63e07aSXin Li MakeEntry(198, "lchown32", kHex, kHex, kHex, kHex),
1781*ec63e07aSXin Li MakeEntry(199, "getuid32", kHex, kHex, kHex, kHex),
1782*ec63e07aSXin Li MakeEntry(200, "getgid32", kHex, kHex, kHex, kHex),
1783*ec63e07aSXin Li MakeEntry(201, "geteuid32", kHex, kHex, kHex, kHex),
1784*ec63e07aSXin Li MakeEntry(202, "getegid32", kHex, kHex, kHex, kHex),
1785*ec63e07aSXin Li MakeEntry(203, "setreuid32", kHex, kHex, kHex, kHex),
1786*ec63e07aSXin Li MakeEntry(204, "setregid32", kHex, kHex, kHex, kHex),
1787*ec63e07aSXin Li MakeEntry(205, "getgroups32", kHex, kHex, kHex, kHex),
1788*ec63e07aSXin Li MakeEntry(206, "setgroups32", kHex, kHex, kHex, kHex),
1789*ec63e07aSXin Li MakeEntry(207, "fchown32", kHex, kHex, kHex, kHex),
1790*ec63e07aSXin Li MakeEntry(208, "setresuid32", kHex, kHex, kHex, kHex),
1791*ec63e07aSXin Li MakeEntry(209, "getresuid32", kHex, kHex, kHex, kHex),
1792*ec63e07aSXin Li MakeEntry(210, "setresgid32", kHex, kHex, kHex, kHex),
1793*ec63e07aSXin Li MakeEntry(211, "getresgid32", kHex, kHex, kHex, kHex),
1794*ec63e07aSXin Li MakeEntry(212, "chown32", kHex, kHex, kHex, kHex),
1795*ec63e07aSXin Li MakeEntry(213, "setuid32", kHex, kHex, kHex, kHex),
1796*ec63e07aSXin Li MakeEntry(214, "setgid32", kHex, kHex, kHex, kHex),
1797*ec63e07aSXin Li MakeEntry(215, "setfsuid32", kHex, kHex, kHex, kHex),
1798*ec63e07aSXin Li MakeEntry(216, "setfsgid32", kHex, kHex, kHex, kHex),
1799*ec63e07aSXin Li MakeEntry(217, "getdents64", kInt, kHex, kInt),
1800*ec63e07aSXin Li MakeEntry(218, "pivot_root", kHex, kHex, kHex, kHex),
1801*ec63e07aSXin Li MakeEntry(219, "mincore", kHex, kInt, kHex),
1802*ec63e07aSXin Li MakeEntry(220, "madvise", kHex, kInt, kInt),
1803*ec63e07aSXin Li MakeEntry(221, "fcntl64", kHex, kHex, kHex, kHex),
1804*ec63e07aSXin Li MakeEntry(224, "gettid"),
1805*ec63e07aSXin Li MakeEntry(225, "readahead", kInt, kInt, kInt),
1806*ec63e07aSXin Li MakeEntry(226, "setxattr", kPath, kString, kGen, kInt, kHex),
1807*ec63e07aSXin Li MakeEntry(227, "lsetxattr", kPath, kString, kGen, kInt, kHex),
1808*ec63e07aSXin Li MakeEntry(228, "fsetxattr", kInt, kString, kGen, kInt, kHex),
1809*ec63e07aSXin Li MakeEntry(229, "getxattr", kHex, kHex, kHex, kHex),
1810*ec63e07aSXin Li MakeEntry(230, "lgetxattr", kHex, kHex, kHex, kHex),
1811*ec63e07aSXin Li MakeEntry(231, "fgetxattr", kGen, kGen, kGen, kGen),
1812*ec63e07aSXin Li MakeEntry(232, "listxattr", kHex, kHex, kHex, kHex),
1813*ec63e07aSXin Li MakeEntry(233, "llistxattr", kHex, kHex, kHex, kHex),
1814*ec63e07aSXin Li MakeEntry(234, "flistxattr", kInt, kGen, kInt),
1815*ec63e07aSXin Li MakeEntry(235, "removexattr", kHex, kHex, kHex, kHex),
1816*ec63e07aSXin Li MakeEntry(236, "lremovexattr", kPath, kString),
1817*ec63e07aSXin Li MakeEntry(237, "fremovexattr", kInt, kString),
1818*ec63e07aSXin Li MakeEntry(238, "tkill", kHex, kHex, kHex, kHex),
1819*ec63e07aSXin Li MakeEntry(239, "sendfile64", kHex, kHex, kHex, kHex),
1820*ec63e07aSXin Li MakeEntry(240, "futex", kGen, kInt, kInt, kGen, kGen, kInt),
1821*ec63e07aSXin Li MakeEntry(241, "sched_setaffinity", kInt, kInt, kHex),
1822*ec63e07aSXin Li MakeEntry(242, "sched_getaffinity", kInt, kInt, kHex),
1823*ec63e07aSXin Li MakeEntry(243, "io_setup", kInt, kHex),
1824*ec63e07aSXin Li MakeEntry(244, "io_destroy", kInt),
1825*ec63e07aSXin Li MakeEntry(245, "io_getevents", kInt, kInt, kInt, kHex, kHex),
1826*ec63e07aSXin Li MakeEntry(246, "io_submit", kInt, kInt, kHex),
1827*ec63e07aSXin Li MakeEntry(247, "io_cancel", kInt, kHex, kHex),
1828*ec63e07aSXin Li MakeEntry(248, "exit_group", kHex, kHex, kHex, kHex),
1829*ec63e07aSXin Li MakeEntry(249, "lookup_dcookie", kInt, kString, kInt),
1830*ec63e07aSXin Li MakeEntry(250, "epoll_create", kInt),
1831*ec63e07aSXin Li MakeEntry(251, "epoll_ctl", kGen, kGen, kGen, kGen),
1832*ec63e07aSXin Li MakeEntry(252, "epoll_wait", kGen, kGen, kGen, kGen),
1833*ec63e07aSXin Li MakeEntry(253, "remap_file_pages", kGen, kInt, kInt, kInt, kHex),
1834*ec63e07aSXin Li MakeEntry(256, "set_tid_address", kHex),
1835*ec63e07aSXin Li MakeEntry(257, "timer_create", kInt, kHex, kHex),
1836*ec63e07aSXin Li MakeEntry(258, "timer_settime", kGen, kGen, kGen, kGen),
1837*ec63e07aSXin Li MakeEntry(259, "timer_gettime", kInt, kHex),
1838*ec63e07aSXin Li MakeEntry(260, "timer_getoverrun", kInt),
1839*ec63e07aSXin Li MakeEntry(261, "timer_delete", kInt),
1840*ec63e07aSXin Li MakeEntry(262, "clock_settime", kInt, kHex),
1841*ec63e07aSXin Li MakeEntry(263, "clock_gettime", kInt, kHex),
1842*ec63e07aSXin Li MakeEntry(264, "clock_getres", kInt, kHex),
1843*ec63e07aSXin Li MakeEntry(265, "clock_nanosleep", kGen, kGen, kGen, kGen),
1844*ec63e07aSXin Li MakeEntry(266, "statfs64", kHex, kHex, kHex, kHex),
1845*ec63e07aSXin Li MakeEntry(267, "fstatfs64", kHex, kHex, kHex, kHex),
1846*ec63e07aSXin Li MakeEntry(268, "tgkill", kHex, kHex, kHex, kHex),
1847*ec63e07aSXin Li MakeEntry(269, "utimes", kPath, kHex),
1848*ec63e07aSXin Li MakeEntry(271, "pciconfig_iobase", kHex, kHex, kHex, kHex),
1849*ec63e07aSXin Li MakeEntry(272, "pciconfig_read", kHex, kHex, kHex, kHex),
1850*ec63e07aSXin Li MakeEntry(273, "pciconfig_write", kHex, kHex, kHex, kHex),
1851*ec63e07aSXin Li MakeEntry(274, "mq_open", kGen, kGen, kGen, kGen),
1852*ec63e07aSXin Li MakeEntry(275, "mq_unlink", kString),
1853*ec63e07aSXin Li MakeEntry(276, "mq_timedsend", kHex, kHex, kInt, kInt, kHex),
1854*ec63e07aSXin Li MakeEntry(277, "mq_timedreceive", kHex, kHex, kInt, kHex, kHex),
1855*ec63e07aSXin Li MakeEntry(278, "mq_notify", kHex, kHex),
1856*ec63e07aSXin Li MakeEntry(279, "mq_getsetattr", kHex, kHex, kHex),
1857*ec63e07aSXin Li MakeEntry(280, "waitid", kInt, kInt, kHex, kInt, kHex),
1858*ec63e07aSXin Li MakeEntry(281, "socket", kAddressFamily, kInt, kInt),
1859*ec63e07aSXin Li MakeEntry(282, "bind", kInt, kSockaddr, kInt),
1860*ec63e07aSXin Li MakeEntry(283, "connect", kInt, kSockaddr, kInt),
1861*ec63e07aSXin Li MakeEntry(284, "listen", kInt, kInt),
1862*ec63e07aSXin Li MakeEntry(285, "accept", kInt, kSockaddr, kHex),
1863*ec63e07aSXin Li MakeEntry(286, "getsockname", kInt, kSockaddr, kHex),
1864*ec63e07aSXin Li MakeEntry(287, "getpeername", kInt, kSockaddr, kHex),
1865*ec63e07aSXin Li MakeEntry(288, "socketpair", kGen, kGen, kGen, kGen),
1866*ec63e07aSXin Li MakeEntry(289, "send", kHex, kHex, kHex, kHex),
1867*ec63e07aSXin Li MakeEntry(290, "sendto", kInt, kGen, kInt, kHex, kSockaddr, kInt),
1868*ec63e07aSXin Li MakeEntry(291, "recv", kHex, kHex, kHex, kHex),
1869*ec63e07aSXin Li MakeEntry(292, "recvfrom", kInt, kHex, kInt, kHex, kSockaddr, kHex),
1870*ec63e07aSXin Li MakeEntry(293, "shutdown", kInt, kInt),
1871*ec63e07aSXin Li MakeEntry(294, "setsockopt", kInt, kInt, kInt, kHex, kHex),
1872*ec63e07aSXin Li MakeEntry(295, "getsockopt", kInt, kInt, kInt, kHex, kInt),
1873*ec63e07aSXin Li MakeEntry(296, "sendmsg", kInt, kSockmsghdr, kHex),
1874*ec63e07aSXin Li MakeEntry(297, "recvmsg", kInt, kHex, kInt),
1875*ec63e07aSXin Li MakeEntry(298, "semop", kInt, kHex, kInt),
1876*ec63e07aSXin Li MakeEntry(299, "semget", kInt, kInt, kHex),
1877*ec63e07aSXin Li MakeEntry(300, "semctl", kInt, kInt, kInt, kHex),
1878*ec63e07aSXin Li MakeEntry(301, "msgsnd", kInt, kHex, kInt, kHex),
1879*ec63e07aSXin Li MakeEntry(302, "msgrcv", kInt, kHex, kInt, kInt, kHex),
1880*ec63e07aSXin Li MakeEntry(303, "msgget", kInt, kHex),
1881*ec63e07aSXin Li MakeEntry(304, "msgctl", kInt, kInt, kHex),
1882*ec63e07aSXin Li MakeEntry(305, "shmat", kInt, kHex, kHex),
1883*ec63e07aSXin Li MakeEntry(306, "shmdt", kHex),
1884*ec63e07aSXin Li MakeEntry(307, "shmget", kInt, kInt, kHex),
1885*ec63e07aSXin Li MakeEntry(308, "shmctl", kInt, kInt, kHex),
1886*ec63e07aSXin Li MakeEntry(309, "add_key", kString, kString, kGen, kInt, kInt),
1887*ec63e07aSXin Li MakeEntry(310, "request_key", kGen, kGen, kGen, kGen),
1888*ec63e07aSXin Li MakeEntry(311, "keyctl", kInt, kInt, kInt, kInt, kInt),
1889*ec63e07aSXin Li MakeEntry(312, "semtimedop", kInt, kHex, kInt, kHex),
1890*ec63e07aSXin Li MakeEntry(313, "vserver", kHex, kHex, kHex, kHex),
1891*ec63e07aSXin Li MakeEntry(314, "ioprio_set", kInt, kInt, kInt),
1892*ec63e07aSXin Li MakeEntry(315, "ioprio_get", kInt, kInt),
1893*ec63e07aSXin Li MakeEntry(316, "inotify_init"),
1894*ec63e07aSXin Li MakeEntry(317, "inotify_add_watch", kInt, kPath, kHex),
1895*ec63e07aSXin Li MakeEntry(318, "inotify_rm_watch", kInt, kInt),
1896*ec63e07aSXin Li MakeEntry(319, "mbind", kGen, kInt, kInt, kHex, kInt, kHex),
1897*ec63e07aSXin Li MakeEntry(320, "get_mempolicy", kInt, kHex, kInt, kInt, kHex),
1898*ec63e07aSXin Li MakeEntry(321, "set_mempolicy", kInt, kHex, kInt),
1899*ec63e07aSXin Li MakeEntry(322, "openat", kGen, kPath, kOct, kHex, kGen, kGen),
1900*ec63e07aSXin Li MakeEntry(323, "mkdirat", kInt, kPath, kOct),
1901*ec63e07aSXin Li MakeEntry(324, "mknodat", kInt, kPath, kOct, kHex),
1902*ec63e07aSXin Li MakeEntry(325, "fchownat", kInt, kPath, kInt, kInt, kHex),
1903*ec63e07aSXin Li MakeEntry(326, "futimesat", kInt, kPath, kHex),
1904*ec63e07aSXin Li MakeEntry(327, "fstatat64", kHex, kHex, kHex, kHex),
1905*ec63e07aSXin Li MakeEntry(328, "unlinkat", kInt, kPath, kHex),
1906*ec63e07aSXin Li MakeEntry(329, "renameat", kGen, kPath, kGen, kPath),
1907*ec63e07aSXin Li MakeEntry(330, "linkat", kInt, kPath, kInt, kPath, kHex),
1908*ec63e07aSXin Li MakeEntry(331, "symlinkat", kPath, kGen, kPath),
1909*ec63e07aSXin Li MakeEntry(332, "readlinkat", kInt, kPath, kHex, kInt),
1910*ec63e07aSXin Li MakeEntry(333, "fchmodat", kInt, kPath, kOct, kHex),
1911*ec63e07aSXin Li MakeEntry(334, "faccessat", kInt, kPath, kHex, kHex),
1912*ec63e07aSXin Li MakeEntry(335, "pselect6", kInt, kHex, kHex, kHex, kHex),
1913*ec63e07aSXin Li MakeEntry(336, "ppoll", kHex, kInt, kHex, kHex, kInt),
1914*ec63e07aSXin Li MakeEntry(337, "unshare", kHex),
1915*ec63e07aSXin Li MakeEntry(338, "set_robust_list", kGen, kGen),
1916*ec63e07aSXin Li MakeEntry(339, "get_robust_list", kInt, kHex, kHex),
1917*ec63e07aSXin Li MakeEntry(340, "splice", kInt, kHex, kInt, kHex, kInt, kHex),
1918*ec63e07aSXin Li MakeEntry(342, "tee", kGen, kGen, kGen, kGen),
1919*ec63e07aSXin Li MakeEntry(343, "vmsplice", kGen, kGen, kGen, kGen),
1920*ec63e07aSXin Li MakeEntry(344, "move_pages", kInt, kInt, kHex, kHex, kHex, kHex),
1921*ec63e07aSXin Li MakeEntry(345, "getcpu", kHex, kHex, kHex),
1922*ec63e07aSXin Li MakeEntry(346, "epoll_pwait", kInt, kHex, kInt, kInt, kHex, kInt),
1923*ec63e07aSXin Li MakeEntry(347, "kexec_load", kGen, kGen, kGen, kGen),
1924*ec63e07aSXin Li MakeEntry(348, "utimensat", kGen, kGen, kGen, kGen),
1925*ec63e07aSXin Li MakeEntry(349, "signalfd", kInt, kHex, kHex),
1926*ec63e07aSXin Li MakeEntry(350, "timerfd_create", kInt, kHex),
1927*ec63e07aSXin Li MakeEntry(351, "eventfd", kInt),
1928*ec63e07aSXin Li MakeEntry(352, "fallocate", kGen, kGen, kGen, kGen),
1929*ec63e07aSXin Li MakeEntry(353, "timerfd_settime", kGen, kGen, kGen, kGen),
1930*ec63e07aSXin Li MakeEntry(354, "timerfd_gettime", kInt, kHex),
1931*ec63e07aSXin Li MakeEntry(355, "signalfd4", kGen, kGen, kGen, kGen),
1932*ec63e07aSXin Li MakeEntry(356, "eventfd2", kInt, kHex),
1933*ec63e07aSXin Li MakeEntry(357, "epoll_create1", kHex),
1934*ec63e07aSXin Li MakeEntry(358, "dup3", kGen, kGen, kGen),
1935*ec63e07aSXin Li MakeEntry(359, "pipe2", kHex, kHex),
1936*ec63e07aSXin Li MakeEntry(360, "inotify_init1", kHex),
1937*ec63e07aSXin Li MakeEntry(361, "preadv", kInt, kHex, kInt, kInt, kInt),
1938*ec63e07aSXin Li MakeEntry(362, "pwritev", kInt, kHex, kInt, kInt, kInt),
1939*ec63e07aSXin Li MakeEntry(363, "rt_tgsigqueueinfo", kGen, kGen, kGen, kGen),
1940*ec63e07aSXin Li MakeEntry(364, "perf_event_open", kHex, kInt, kInt, kInt, kHex),
1941*ec63e07aSXin Li MakeEntry(365, "recvmmsg", kInt, kHex, kInt, kHex, kHex),
1942*ec63e07aSXin Li MakeEntry(366, "accept4", kGen, kGen, kGen, kGen),
1943*ec63e07aSXin Li MakeEntry(367, "fanotify_init", kHex, kHex, kHex, kHex),
1944*ec63e07aSXin Li MakeEntry(368, "fanotify_mark", kInt, kHex, kHex, kInt, kPath),
1945*ec63e07aSXin Li MakeEntry(369, "prlimit64", kHex, kHex, kHex, kHex),
1946*ec63e07aSXin Li MakeEntry(370, "name_to_handle_at", kInt, kPath, kHex, kHex, kHex),
1947*ec63e07aSXin Li MakeEntry(371, "open_by_handle_at", kHex, kHex, kHex, kHex),
1948*ec63e07aSXin Li MakeEntry(372, "clock_adjtime", kHex, kHex, kHex, kHex),
1949*ec63e07aSXin Li MakeEntry(373, "syncfs", kHex, kHex, kHex, kHex),
1950*ec63e07aSXin Li MakeEntry(374, "sendmmsg", kHex, kHex, kHex, kHex),
1951*ec63e07aSXin Li MakeEntry(375, "setns", kHex, kHex, kHex, kHex),
1952*ec63e07aSXin Li MakeEntry(376, "process_vm_readv", kInt, kHex, kInt, kHex, kInt, kInt),
1953*ec63e07aSXin Li MakeEntry(377, "process_vm_writev", kInt, kHex, kInt, kHex, kInt, kInt),
1954*ec63e07aSXin Li MakeEntry(378, "kcmp", kInt, kInt, kInt, kInt, kInt),
1955*ec63e07aSXin Li MakeEntry(379, "finit_module", kHex, kHex, kHex, kHex),
1956*ec63e07aSXin Li MakeEntry(380, "sched_setattr", kInt, kHex, kHex),
1957*ec63e07aSXin Li MakeEntry(381, "sched_getattr", kGen, kGen, kGen, kGen),
1958*ec63e07aSXin Li MakeEntry(382, "renameat2", kGen, kPath, kGen, kPath, kGen, kGen),
1959*ec63e07aSXin Li MakeEntry(383, "seccomp", kInt, kHex, kHex),
1960*ec63e07aSXin Li MakeEntry(384, "getrandom", kGen, kInt, kHex),
1961*ec63e07aSXin Li MakeEntry(385, "memfd_create", kString, kHex),
1962*ec63e07aSXin Li MakeEntry(386, "bpf", kHex, kHex, kHex, kHex),
1963*ec63e07aSXin Li MakeEntry(387, "execveat", kInt, kPath, kHex, kHex, kHex),
1964*ec63e07aSXin Li MakeEntry(388, "userfaultfd", kHex),
1965*ec63e07aSXin Li MakeEntry(389, "membarrier", kHex, kHex),
1966*ec63e07aSXin Li MakeEntry(390, "mlock2", kHex, kHex, kHex, kHex),
1967*ec63e07aSXin Li MakeEntry(391, "copy_file_range", kInt, kHex, kInt, kHex, kInt, kHex),
1968*ec63e07aSXin Li MakeEntry(392, "preadv2", kInt, kHex, kInt, kInt, kInt, kHex),
1969*ec63e07aSXin Li MakeEntry(393, "pwritev2", kInt, kHex, kInt, kInt, kInt, kHex),
1970*ec63e07aSXin Li MakeEntry(400, "migrate_pages", kGen, kGen, kGen, kGen),
1971*ec63e07aSXin Li MakeEntry(401, "kexec_file_load", kInt, kInt, kInt, kString, kHex),
1972*ec63e07aSXin Li MakeEntry(435, "clone3", kHex, kInt),
1973*ec63e07aSXin Li MakeEntry(436, "close_range", kInt, kInt, kHex),
1974*ec63e07aSXin Li MakeEntry(437, "openat2", kInt, kPath, kHex, kInt),
1975*ec63e07aSXin Li MakeEntry(438, "pidfd_getfd", UnknownArguments()),
1976*ec63e07aSXin Li MakeEntry(439, "faccessat2", kInt, kPath, kHex, kHex),
1977*ec63e07aSXin Li MakeEntry(440, "process_madvise", UnknownArguments()),
1978*ec63e07aSXin Li MakeEntry(441, "epoll_pwait2", UnknownArguments()),
1979*ec63e07aSXin Li MakeEntry(442, "mount_setattr", UnknownArguments()),
1980*ec63e07aSXin Li MakeEntry(443, "quotactl_fd", UnknownArguments()),
1981*ec63e07aSXin Li MakeEntry(444, "landlock_create_ruleset", UnknownArguments()),
1982*ec63e07aSXin Li MakeEntry(445, "landlock_add_rule", UnknownArguments()),
1983*ec63e07aSXin Li MakeEntry(446, "landlock_restrict_self", UnknownArguments()),
1984*ec63e07aSXin Li MakeEntry(448, "process_mrelease", UnknownArguments()),
1985*ec63e07aSXin Li MakeEntry(449, "futex_waitv", UnknownArguments()),
1986*ec63e07aSXin Li MakeEntry(450, "set_mempolicy_home_node", UnknownArguments()),
1987*ec63e07aSXin Li MakeEntry(451, "cachestat", UnknownArguments()),
1988*ec63e07aSXin Li MakeEntry(452, "fchmodat2", kInt, kPath, kHex, kHex),
1989*ec63e07aSXin Li MakeEntry(453, "map_shadow_stack", UnknownArguments()),
1990*ec63e07aSXin Li MakeEntry(454, "futex_wake", UnknownArguments()),
1991*ec63e07aSXin Li MakeEntry(455, "futex_wait", UnknownArguments()),
1992*ec63e07aSXin Li MakeEntry(456, "futex_requeue", UnknownArguments()),
1993*ec63e07aSXin Li MakeEntry(457, "statmount", UnknownArguments()),
1994*ec63e07aSXin Li MakeEntry(458, "listmount", UnknownArguments()),
1995*ec63e07aSXin Li MakeEntry(459, "lsm_get_self_attr", UnknownArguments()),
1996*ec63e07aSXin Li MakeEntry(460, "lsm_set_self_attr", UnknownArguments()),
1997*ec63e07aSXin Li MakeEntry(461, "lsm_list_modules", UnknownArguments()),
1998*ec63e07aSXin Li MakeEntry(0xf0001, "ARM_breakpoint", kHex, kHex, kHex, kHex),
1999*ec63e07aSXin Li MakeEntry(0xf0002, "ARM_cacheflush", kHex, kHex, kHex, kHex),
2000*ec63e07aSXin Li MakeEntry(0xf0003, "ARM_usr26", kHex, kHex, kHex, kHex),
2001*ec63e07aSXin Li MakeEntry(0xf0004, "ARM_usr32", kHex, kHex, kHex, kHex),
2002*ec63e07aSXin Li MakeEntry(0xf0005, "ARM_set_tls", kHex, kHex, kHex, kHex),
2003*ec63e07aSXin Li // clang-format on
2004*ec63e07aSXin Li };
2005*ec63e07aSXin Li
2006*ec63e07aSXin Li static_assert(IsSorted(kSyscallDataArm32, SyscallTable::Entry::BySyscallNr),
2007*ec63e07aSXin Li "Syscalls should be sorted");
2008*ec63e07aSXin Li
2009*ec63e07aSXin Li } // namespace
2010*ec63e07aSXin Li } // namespace syscalls
2011*ec63e07aSXin Li
get(sapi::cpu::Architecture arch)2012*ec63e07aSXin Li SyscallTable SyscallTable::get(sapi::cpu::Architecture arch) {
2013*ec63e07aSXin Li switch (arch) {
2014*ec63e07aSXin Li case sapi::cpu::kX8664:
2015*ec63e07aSXin Li return SyscallTable(syscalls::kSyscallDataX8664);
2016*ec63e07aSXin Li case sapi::cpu::kX86:
2017*ec63e07aSXin Li return SyscallTable(syscalls::kSyscallDataX8632);
2018*ec63e07aSXin Li case sapi::cpu::kPPC64LE:
2019*ec63e07aSXin Li return SyscallTable(syscalls::kSyscallDataPPC64LE);
2020*ec63e07aSXin Li case sapi::cpu::kArm64:
2021*ec63e07aSXin Li return SyscallTable(syscalls::kSyscallDataArm64);
2022*ec63e07aSXin Li case sapi::cpu::kArm:
2023*ec63e07aSXin Li return SyscallTable(syscalls::kSyscallDataArm32);
2024*ec63e07aSXin Li default:
2025*ec63e07aSXin Li return SyscallTable();
2026*ec63e07aSXin Li }
2027*ec63e07aSXin Li }
2028*ec63e07aSXin Li
2029*ec63e07aSXin Li } // namespace sandbox2
2030