1*387f9dfdSAndroid Build Coastguard Worker // SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause)
2*387f9dfdSAndroid Build Coastguard Worker // Copyright (c) 2020 Anton Protopopov
3*387f9dfdSAndroid Build Coastguard Worker #include <stdlib.h>
4*387f9dfdSAndroid Build Coastguard Worker #include <string.h>
5*387f9dfdSAndroid Build Coastguard Worker #include <limits.h>
6*387f9dfdSAndroid Build Coastguard Worker #include <stdio.h>
7*387f9dfdSAndroid Build Coastguard Worker #include <errno.h>
8*387f9dfdSAndroid Build Coastguard Worker
9*387f9dfdSAndroid Build Coastguard Worker static const char **syscall_names;
10*387f9dfdSAndroid Build Coastguard Worker static size_t syscall_names_size;
11*387f9dfdSAndroid Build Coastguard Worker
12*387f9dfdSAndroid Build Coastguard Worker #define warn(...) fprintf(stderr, __VA_ARGS__)
13*387f9dfdSAndroid Build Coastguard Worker #define MAX(x, y) (((x) > (y)) ? (x) : (y))
14*387f9dfdSAndroid Build Coastguard Worker
parse_syscall(const char * buf,int * number)15*387f9dfdSAndroid Build Coastguard Worker static const char *parse_syscall(const char *buf, int *number)
16*387f9dfdSAndroid Build Coastguard Worker {
17*387f9dfdSAndroid Build Coastguard Worker char *end;
18*387f9dfdSAndroid Build Coastguard Worker long x;
19*387f9dfdSAndroid Build Coastguard Worker
20*387f9dfdSAndroid Build Coastguard Worker errno = 0;
21*387f9dfdSAndroid Build Coastguard Worker x = strtol(buf, &end, 10);
22*387f9dfdSAndroid Build Coastguard Worker if (errno) {
23*387f9dfdSAndroid Build Coastguard Worker warn("strtol(%s): %s\n", buf, strerror(errno));
24*387f9dfdSAndroid Build Coastguard Worker return NULL;
25*387f9dfdSAndroid Build Coastguard Worker } else if (end == buf) {
26*387f9dfdSAndroid Build Coastguard Worker warn("strtol(%s): no digits found\n", buf);
27*387f9dfdSAndroid Build Coastguard Worker return NULL;
28*387f9dfdSAndroid Build Coastguard Worker } else if (x < 0 || x > INT_MAX) {
29*387f9dfdSAndroid Build Coastguard Worker warn("strtol(%s): bad syscall number: %ld\n", buf, x);
30*387f9dfdSAndroid Build Coastguard Worker return NULL;
31*387f9dfdSAndroid Build Coastguard Worker }
32*387f9dfdSAndroid Build Coastguard Worker if (*end != '\t') {
33*387f9dfdSAndroid Build Coastguard Worker warn("bad input: %s (expected <num>\t<name>)\n", buf);
34*387f9dfdSAndroid Build Coastguard Worker return NULL;
35*387f9dfdSAndroid Build Coastguard Worker }
36*387f9dfdSAndroid Build Coastguard Worker
37*387f9dfdSAndroid Build Coastguard Worker *number = x;
38*387f9dfdSAndroid Build Coastguard Worker return ++end;
39*387f9dfdSAndroid Build Coastguard Worker }
40*387f9dfdSAndroid Build Coastguard Worker
init_syscall_names(void)41*387f9dfdSAndroid Build Coastguard Worker void init_syscall_names(void)
42*387f9dfdSAndroid Build Coastguard Worker {
43*387f9dfdSAndroid Build Coastguard Worker size_t old_size, size = 1024;
44*387f9dfdSAndroid Build Coastguard Worker const char *name;
45*387f9dfdSAndroid Build Coastguard Worker char buf[64];
46*387f9dfdSAndroid Build Coastguard Worker int number;
47*387f9dfdSAndroid Build Coastguard Worker int err;
48*387f9dfdSAndroid Build Coastguard Worker FILE *f;
49*387f9dfdSAndroid Build Coastguard Worker
50*387f9dfdSAndroid Build Coastguard Worker f = popen("ausyscall --dump 2>/dev/null", "r");
51*387f9dfdSAndroid Build Coastguard Worker if (!f) {
52*387f9dfdSAndroid Build Coastguard Worker warn("popen: ausyscall --dump: %s\n", strerror(errno));
53*387f9dfdSAndroid Build Coastguard Worker return;
54*387f9dfdSAndroid Build Coastguard Worker }
55*387f9dfdSAndroid Build Coastguard Worker
56*387f9dfdSAndroid Build Coastguard Worker syscall_names = calloc(size, sizeof(char *));
57*387f9dfdSAndroid Build Coastguard Worker if (!syscall_names) {
58*387f9dfdSAndroid Build Coastguard Worker warn("calloc: %s\n", strerror(errno));
59*387f9dfdSAndroid Build Coastguard Worker goto close;
60*387f9dfdSAndroid Build Coastguard Worker }
61*387f9dfdSAndroid Build Coastguard Worker
62*387f9dfdSAndroid Build Coastguard Worker /* skip the header, ignore the result of fgets, outwit the comiler */
63*387f9dfdSAndroid Build Coastguard Worker (void) !!fgets(buf, sizeof(buf), f);
64*387f9dfdSAndroid Build Coastguard Worker
65*387f9dfdSAndroid Build Coastguard Worker while (fgets(buf, sizeof(buf), f)) {
66*387f9dfdSAndroid Build Coastguard Worker if (buf[strlen(buf) - 1] == '\n')
67*387f9dfdSAndroid Build Coastguard Worker buf[strlen(buf) - 1] = '\0';
68*387f9dfdSAndroid Build Coastguard Worker
69*387f9dfdSAndroid Build Coastguard Worker name = parse_syscall(buf, &number);
70*387f9dfdSAndroid Build Coastguard Worker if (!name || !name[0])
71*387f9dfdSAndroid Build Coastguard Worker goto close;
72*387f9dfdSAndroid Build Coastguard Worker
73*387f9dfdSAndroid Build Coastguard Worker /* In a rare case when syscall number is > than initial 1024 */
74*387f9dfdSAndroid Build Coastguard Worker if (number >= size) {
75*387f9dfdSAndroid Build Coastguard Worker old_size = size;
76*387f9dfdSAndroid Build Coastguard Worker size = 1024 * (1 + number / 1024);
77*387f9dfdSAndroid Build Coastguard Worker syscall_names = realloc(syscall_names,
78*387f9dfdSAndroid Build Coastguard Worker size * sizeof(char *));
79*387f9dfdSAndroid Build Coastguard Worker if (!syscall_names) {
80*387f9dfdSAndroid Build Coastguard Worker warn("realloc: %s\n", strerror(errno));
81*387f9dfdSAndroid Build Coastguard Worker goto close;
82*387f9dfdSAndroid Build Coastguard Worker }
83*387f9dfdSAndroid Build Coastguard Worker memset(syscall_names+old_size, 0,
84*387f9dfdSAndroid Build Coastguard Worker (size - old_size) * sizeof(char *));
85*387f9dfdSAndroid Build Coastguard Worker }
86*387f9dfdSAndroid Build Coastguard Worker
87*387f9dfdSAndroid Build Coastguard Worker if (syscall_names[number]) {
88*387f9dfdSAndroid Build Coastguard Worker warn("duplicate number: %d (stored: %s)",
89*387f9dfdSAndroid Build Coastguard Worker number, syscall_names[number]);
90*387f9dfdSAndroid Build Coastguard Worker goto close;
91*387f9dfdSAndroid Build Coastguard Worker }
92*387f9dfdSAndroid Build Coastguard Worker
93*387f9dfdSAndroid Build Coastguard Worker syscall_names[number] = strdup(name);
94*387f9dfdSAndroid Build Coastguard Worker if (!syscall_names[number]) {
95*387f9dfdSAndroid Build Coastguard Worker warn("strdup: %s\n", strerror(errno));
96*387f9dfdSAndroid Build Coastguard Worker goto close;
97*387f9dfdSAndroid Build Coastguard Worker }
98*387f9dfdSAndroid Build Coastguard Worker syscall_names_size = MAX(number+1, syscall_names_size);
99*387f9dfdSAndroid Build Coastguard Worker }
100*387f9dfdSAndroid Build Coastguard Worker
101*387f9dfdSAndroid Build Coastguard Worker if (ferror(f))
102*387f9dfdSAndroid Build Coastguard Worker warn("fgets: %s\n", strerror(errno));
103*387f9dfdSAndroid Build Coastguard Worker close:
104*387f9dfdSAndroid Build Coastguard Worker err = pclose(f);
105*387f9dfdSAndroid Build Coastguard Worker if (err < 0)
106*387f9dfdSAndroid Build Coastguard Worker warn("pclose: %s\n", strerror(errno));
107*387f9dfdSAndroid Build Coastguard Worker #if !defined(__x86_64__) && !defined(__aarch64__) && !defined(__riscv)
108*387f9dfdSAndroid Build Coastguard Worker /* Ignore the error for x86_64/arm64/riscv where we have a table compiled in */
109*387f9dfdSAndroid Build Coastguard Worker else if (err && WEXITSTATUS(err) == 127) {
110*387f9dfdSAndroid Build Coastguard Worker warn("ausyscall required for syscalls number/name mapping\n");
111*387f9dfdSAndroid Build Coastguard Worker } else if (err) {
112*387f9dfdSAndroid Build Coastguard Worker warn("ausyscall exit status (see wait(2)): 0x%x\n", err);
113*387f9dfdSAndroid Build Coastguard Worker }
114*387f9dfdSAndroid Build Coastguard Worker #endif
115*387f9dfdSAndroid Build Coastguard Worker }
116*387f9dfdSAndroid Build Coastguard Worker
free_syscall_names(void)117*387f9dfdSAndroid Build Coastguard Worker void free_syscall_names(void)
118*387f9dfdSAndroid Build Coastguard Worker {
119*387f9dfdSAndroid Build Coastguard Worker size_t i;
120*387f9dfdSAndroid Build Coastguard Worker
121*387f9dfdSAndroid Build Coastguard Worker for (i = 0; i < syscall_names_size; i++)
122*387f9dfdSAndroid Build Coastguard Worker free((void *) syscall_names[i]);
123*387f9dfdSAndroid Build Coastguard Worker free(syscall_names);
124*387f9dfdSAndroid Build Coastguard Worker }
125*387f9dfdSAndroid Build Coastguard Worker
126*387f9dfdSAndroid Build Coastguard Worker /*
127*387f9dfdSAndroid Build Coastguard Worker * Syscall table for Linux x86_64.
128*387f9dfdSAndroid Build Coastguard Worker *
129*387f9dfdSAndroid Build Coastguard Worker * Semi-automatically generated from strace/linux/x86_64/syscallent.h and
130*387f9dfdSAndroid Build Coastguard Worker * linux/syscallent-common.h using the following commands:
131*387f9dfdSAndroid Build Coastguard Worker *
132*387f9dfdSAndroid Build Coastguard Worker * awk -F\" '/SEN/{printf("%d %s\n", substr($0,2,3), $(NF-1));}' syscallent.h
133*387f9dfdSAndroid Build Coastguard Worker * awk '/SEN/ { printf("%d %s\n", $3, $9); }' syscallent-common.h
134*387f9dfdSAndroid Build Coastguard Worker *
135*387f9dfdSAndroid Build Coastguard Worker * (The idea is taken from src/python/bcc/syscall.py.)
136*387f9dfdSAndroid Build Coastguard Worker */
137*387f9dfdSAndroid Build Coastguard Worker #ifdef __x86_64__
138*387f9dfdSAndroid Build Coastguard Worker static const char *syscall_names_x86_64[] = {
139*387f9dfdSAndroid Build Coastguard Worker [0] = "read",
140*387f9dfdSAndroid Build Coastguard Worker [1] = "write",
141*387f9dfdSAndroid Build Coastguard Worker [2] = "open",
142*387f9dfdSAndroid Build Coastguard Worker [3] = "close",
143*387f9dfdSAndroid Build Coastguard Worker [4] = "stat",
144*387f9dfdSAndroid Build Coastguard Worker [5] = "fstat",
145*387f9dfdSAndroid Build Coastguard Worker [6] = "lstat",
146*387f9dfdSAndroid Build Coastguard Worker [7] = "poll",
147*387f9dfdSAndroid Build Coastguard Worker [8] = "lseek",
148*387f9dfdSAndroid Build Coastguard Worker [9] = "mmap",
149*387f9dfdSAndroid Build Coastguard Worker [10] = "mprotect",
150*387f9dfdSAndroid Build Coastguard Worker [11] = "munmap",
151*387f9dfdSAndroid Build Coastguard Worker [12] = "brk",
152*387f9dfdSAndroid Build Coastguard Worker [13] = "rt_sigaction",
153*387f9dfdSAndroid Build Coastguard Worker [14] = "rt_sigprocmask",
154*387f9dfdSAndroid Build Coastguard Worker [15] = "rt_sigreturn",
155*387f9dfdSAndroid Build Coastguard Worker [16] = "ioctl",
156*387f9dfdSAndroid Build Coastguard Worker [17] = "pread64",
157*387f9dfdSAndroid Build Coastguard Worker [18] = "pwrite64",
158*387f9dfdSAndroid Build Coastguard Worker [19] = "readv",
159*387f9dfdSAndroid Build Coastguard Worker [20] = "writev",
160*387f9dfdSAndroid Build Coastguard Worker [21] = "access",
161*387f9dfdSAndroid Build Coastguard Worker [22] = "pipe",
162*387f9dfdSAndroid Build Coastguard Worker [23] = "select",
163*387f9dfdSAndroid Build Coastguard Worker [24] = "sched_yield",
164*387f9dfdSAndroid Build Coastguard Worker [25] = "mremap",
165*387f9dfdSAndroid Build Coastguard Worker [26] = "msync",
166*387f9dfdSAndroid Build Coastguard Worker [27] = "mincore",
167*387f9dfdSAndroid Build Coastguard Worker [28] = "madvise",
168*387f9dfdSAndroid Build Coastguard Worker [29] = "shmget",
169*387f9dfdSAndroid Build Coastguard Worker [30] = "shmat",
170*387f9dfdSAndroid Build Coastguard Worker [31] = "shmctl",
171*387f9dfdSAndroid Build Coastguard Worker [32] = "dup",
172*387f9dfdSAndroid Build Coastguard Worker [33] = "dup2",
173*387f9dfdSAndroid Build Coastguard Worker [34] = "pause",
174*387f9dfdSAndroid Build Coastguard Worker [35] = "nanosleep",
175*387f9dfdSAndroid Build Coastguard Worker [36] = "getitimer",
176*387f9dfdSAndroid Build Coastguard Worker [37] = "alarm",
177*387f9dfdSAndroid Build Coastguard Worker [38] = "setitimer",
178*387f9dfdSAndroid Build Coastguard Worker [39] = "getpid",
179*387f9dfdSAndroid Build Coastguard Worker [40] = "sendfile",
180*387f9dfdSAndroid Build Coastguard Worker [41] = "socket",
181*387f9dfdSAndroid Build Coastguard Worker [42] = "connect",
182*387f9dfdSAndroid Build Coastguard Worker [43] = "accept",
183*387f9dfdSAndroid Build Coastguard Worker [44] = "sendto",
184*387f9dfdSAndroid Build Coastguard Worker [45] = "recvfrom",
185*387f9dfdSAndroid Build Coastguard Worker [46] = "sendmsg",
186*387f9dfdSAndroid Build Coastguard Worker [47] = "recvmsg",
187*387f9dfdSAndroid Build Coastguard Worker [48] = "shutdown",
188*387f9dfdSAndroid Build Coastguard Worker [49] = "bind",
189*387f9dfdSAndroid Build Coastguard Worker [50] = "listen",
190*387f9dfdSAndroid Build Coastguard Worker [51] = "getsockname",
191*387f9dfdSAndroid Build Coastguard Worker [52] = "getpeername",
192*387f9dfdSAndroid Build Coastguard Worker [53] = "socketpair",
193*387f9dfdSAndroid Build Coastguard Worker [54] = "setsockopt",
194*387f9dfdSAndroid Build Coastguard Worker [55] = "getsockopt",
195*387f9dfdSAndroid Build Coastguard Worker [56] = "clone",
196*387f9dfdSAndroid Build Coastguard Worker [57] = "fork",
197*387f9dfdSAndroid Build Coastguard Worker [58] = "vfork",
198*387f9dfdSAndroid Build Coastguard Worker [59] = "execve",
199*387f9dfdSAndroid Build Coastguard Worker [60] = "exit",
200*387f9dfdSAndroid Build Coastguard Worker [61] = "wait4",
201*387f9dfdSAndroid Build Coastguard Worker [62] = "kill",
202*387f9dfdSAndroid Build Coastguard Worker [63] = "uname",
203*387f9dfdSAndroid Build Coastguard Worker [64] = "semget",
204*387f9dfdSAndroid Build Coastguard Worker [65] = "semop",
205*387f9dfdSAndroid Build Coastguard Worker [66] = "semctl",
206*387f9dfdSAndroid Build Coastguard Worker [67] = "shmdt",
207*387f9dfdSAndroid Build Coastguard Worker [68] = "msgget",
208*387f9dfdSAndroid Build Coastguard Worker [69] = "msgsnd",
209*387f9dfdSAndroid Build Coastguard Worker [70] = "msgrcv",
210*387f9dfdSAndroid Build Coastguard Worker [71] = "msgctl",
211*387f9dfdSAndroid Build Coastguard Worker [72] = "fcntl",
212*387f9dfdSAndroid Build Coastguard Worker [73] = "flock",
213*387f9dfdSAndroid Build Coastguard Worker [74] = "fsync",
214*387f9dfdSAndroid Build Coastguard Worker [75] = "fdatasync",
215*387f9dfdSAndroid Build Coastguard Worker [76] = "truncate",
216*387f9dfdSAndroid Build Coastguard Worker [77] = "ftruncate",
217*387f9dfdSAndroid Build Coastguard Worker [78] = "getdents",
218*387f9dfdSAndroid Build Coastguard Worker [79] = "getcwd",
219*387f9dfdSAndroid Build Coastguard Worker [80] = "chdir",
220*387f9dfdSAndroid Build Coastguard Worker [81] = "fchdir",
221*387f9dfdSAndroid Build Coastguard Worker [82] = "rename",
222*387f9dfdSAndroid Build Coastguard Worker [83] = "mkdir",
223*387f9dfdSAndroid Build Coastguard Worker [84] = "rmdir",
224*387f9dfdSAndroid Build Coastguard Worker [85] = "creat",
225*387f9dfdSAndroid Build Coastguard Worker [86] = "link",
226*387f9dfdSAndroid Build Coastguard Worker [87] = "unlink",
227*387f9dfdSAndroid Build Coastguard Worker [88] = "symlink",
228*387f9dfdSAndroid Build Coastguard Worker [89] = "readlink",
229*387f9dfdSAndroid Build Coastguard Worker [90] = "chmod",
230*387f9dfdSAndroid Build Coastguard Worker [91] = "fchmod",
231*387f9dfdSAndroid Build Coastguard Worker [92] = "chown",
232*387f9dfdSAndroid Build Coastguard Worker [93] = "fchown",
233*387f9dfdSAndroid Build Coastguard Worker [94] = "lchown",
234*387f9dfdSAndroid Build Coastguard Worker [95] = "umask",
235*387f9dfdSAndroid Build Coastguard Worker [96] = "gettimeofday",
236*387f9dfdSAndroid Build Coastguard Worker [97] = "getrlimit",
237*387f9dfdSAndroid Build Coastguard Worker [98] = "getrusage",
238*387f9dfdSAndroid Build Coastguard Worker [99] = "sysinfo",
239*387f9dfdSAndroid Build Coastguard Worker [100] = "times",
240*387f9dfdSAndroid Build Coastguard Worker [101] = "ptrace",
241*387f9dfdSAndroid Build Coastguard Worker [102] = "getuid",
242*387f9dfdSAndroid Build Coastguard Worker [103] = "syslog",
243*387f9dfdSAndroid Build Coastguard Worker [104] = "getgid",
244*387f9dfdSAndroid Build Coastguard Worker [105] = "setuid",
245*387f9dfdSAndroid Build Coastguard Worker [106] = "setgid",
246*387f9dfdSAndroid Build Coastguard Worker [107] = "geteuid",
247*387f9dfdSAndroid Build Coastguard Worker [108] = "getegid",
248*387f9dfdSAndroid Build Coastguard Worker [109] = "setpgid",
249*387f9dfdSAndroid Build Coastguard Worker [110] = "getppid",
250*387f9dfdSAndroid Build Coastguard Worker [111] = "getpgrp",
251*387f9dfdSAndroid Build Coastguard Worker [112] = "setsid",
252*387f9dfdSAndroid Build Coastguard Worker [113] = "setreuid",
253*387f9dfdSAndroid Build Coastguard Worker [114] = "setregid",
254*387f9dfdSAndroid Build Coastguard Worker [115] = "getgroups",
255*387f9dfdSAndroid Build Coastguard Worker [116] = "setgroups",
256*387f9dfdSAndroid Build Coastguard Worker [117] = "setresuid",
257*387f9dfdSAndroid Build Coastguard Worker [118] = "getresuid",
258*387f9dfdSAndroid Build Coastguard Worker [119] = "setresgid",
259*387f9dfdSAndroid Build Coastguard Worker [120] = "getresgid",
260*387f9dfdSAndroid Build Coastguard Worker [121] = "getpgid",
261*387f9dfdSAndroid Build Coastguard Worker [122] = "setfsuid",
262*387f9dfdSAndroid Build Coastguard Worker [123] = "setfsgid",
263*387f9dfdSAndroid Build Coastguard Worker [124] = "getsid",
264*387f9dfdSAndroid Build Coastguard Worker [125] = "capget",
265*387f9dfdSAndroid Build Coastguard Worker [126] = "capset",
266*387f9dfdSAndroid Build Coastguard Worker [127] = "rt_sigpending",
267*387f9dfdSAndroid Build Coastguard Worker [128] = "rt_sigtimedwait",
268*387f9dfdSAndroid Build Coastguard Worker [129] = "rt_sigqueueinfo",
269*387f9dfdSAndroid Build Coastguard Worker [130] = "rt_sigsuspend",
270*387f9dfdSAndroid Build Coastguard Worker [131] = "sigaltstack",
271*387f9dfdSAndroid Build Coastguard Worker [132] = "utime",
272*387f9dfdSAndroid Build Coastguard Worker [133] = "mknod",
273*387f9dfdSAndroid Build Coastguard Worker [134] = "uselib",
274*387f9dfdSAndroid Build Coastguard Worker [135] = "personality",
275*387f9dfdSAndroid Build Coastguard Worker [136] = "ustat",
276*387f9dfdSAndroid Build Coastguard Worker [137] = "statfs",
277*387f9dfdSAndroid Build Coastguard Worker [138] = "fstatfs",
278*387f9dfdSAndroid Build Coastguard Worker [139] = "sysfs",
279*387f9dfdSAndroid Build Coastguard Worker [140] = "getpriority",
280*387f9dfdSAndroid Build Coastguard Worker [141] = "setpriority",
281*387f9dfdSAndroid Build Coastguard Worker [142] = "sched_setparam",
282*387f9dfdSAndroid Build Coastguard Worker [143] = "sched_getparam",
283*387f9dfdSAndroid Build Coastguard Worker [144] = "sched_setscheduler",
284*387f9dfdSAndroid Build Coastguard Worker [145] = "sched_getscheduler",
285*387f9dfdSAndroid Build Coastguard Worker [146] = "sched_get_priority_max",
286*387f9dfdSAndroid Build Coastguard Worker [147] = "sched_get_priority_min",
287*387f9dfdSAndroid Build Coastguard Worker [148] = "sched_rr_get_interval",
288*387f9dfdSAndroid Build Coastguard Worker [149] = "mlock",
289*387f9dfdSAndroid Build Coastguard Worker [150] = "munlock",
290*387f9dfdSAndroid Build Coastguard Worker [151] = "mlockall",
291*387f9dfdSAndroid Build Coastguard Worker [152] = "munlockall",
292*387f9dfdSAndroid Build Coastguard Worker [153] = "vhangup",
293*387f9dfdSAndroid Build Coastguard Worker [154] = "modify_ldt",
294*387f9dfdSAndroid Build Coastguard Worker [155] = "pivot_root",
295*387f9dfdSAndroid Build Coastguard Worker [156] = "_sysctl",
296*387f9dfdSAndroid Build Coastguard Worker [157] = "prctl",
297*387f9dfdSAndroid Build Coastguard Worker [158] = "arch_prctl",
298*387f9dfdSAndroid Build Coastguard Worker [159] = "adjtimex",
299*387f9dfdSAndroid Build Coastguard Worker [160] = "setrlimit",
300*387f9dfdSAndroid Build Coastguard Worker [161] = "chroot",
301*387f9dfdSAndroid Build Coastguard Worker [162] = "sync",
302*387f9dfdSAndroid Build Coastguard Worker [163] = "acct",
303*387f9dfdSAndroid Build Coastguard Worker [164] = "settimeofday",
304*387f9dfdSAndroid Build Coastguard Worker [165] = "mount",
305*387f9dfdSAndroid Build Coastguard Worker [166] = "umount2",
306*387f9dfdSAndroid Build Coastguard Worker [167] = "swapon",
307*387f9dfdSAndroid Build Coastguard Worker [168] = "swapoff",
308*387f9dfdSAndroid Build Coastguard Worker [169] = "reboot",
309*387f9dfdSAndroid Build Coastguard Worker [170] = "sethostname",
310*387f9dfdSAndroid Build Coastguard Worker [171] = "setdomainname",
311*387f9dfdSAndroid Build Coastguard Worker [172] = "iopl",
312*387f9dfdSAndroid Build Coastguard Worker [173] = "ioperm",
313*387f9dfdSAndroid Build Coastguard Worker [174] = "create_module",
314*387f9dfdSAndroid Build Coastguard Worker [175] = "init_module",
315*387f9dfdSAndroid Build Coastguard Worker [176] = "delete_module",
316*387f9dfdSAndroid Build Coastguard Worker [177] = "get_kernel_syms",
317*387f9dfdSAndroid Build Coastguard Worker [178] = "query_module",
318*387f9dfdSAndroid Build Coastguard Worker [179] = "quotactl",
319*387f9dfdSAndroid Build Coastguard Worker [180] = "nfsservctl",
320*387f9dfdSAndroid Build Coastguard Worker [181] = "getpmsg",
321*387f9dfdSAndroid Build Coastguard Worker [182] = "putpmsg",
322*387f9dfdSAndroid Build Coastguard Worker [183] = "afs_syscall",
323*387f9dfdSAndroid Build Coastguard Worker [184] = "tuxcall",
324*387f9dfdSAndroid Build Coastguard Worker [185] = "security",
325*387f9dfdSAndroid Build Coastguard Worker [186] = "gettid",
326*387f9dfdSAndroid Build Coastguard Worker [187] = "readahead",
327*387f9dfdSAndroid Build Coastguard Worker [188] = "setxattr",
328*387f9dfdSAndroid Build Coastguard Worker [189] = "lsetxattr",
329*387f9dfdSAndroid Build Coastguard Worker [190] = "fsetxattr",
330*387f9dfdSAndroid Build Coastguard Worker [191] = "getxattr",
331*387f9dfdSAndroid Build Coastguard Worker [192] = "lgetxattr",
332*387f9dfdSAndroid Build Coastguard Worker [193] = "fgetxattr",
333*387f9dfdSAndroid Build Coastguard Worker [194] = "listxattr",
334*387f9dfdSAndroid Build Coastguard Worker [195] = "llistxattr",
335*387f9dfdSAndroid Build Coastguard Worker [196] = "flistxattr",
336*387f9dfdSAndroid Build Coastguard Worker [197] = "removexattr",
337*387f9dfdSAndroid Build Coastguard Worker [198] = "lremovexattr",
338*387f9dfdSAndroid Build Coastguard Worker [199] = "fremovexattr",
339*387f9dfdSAndroid Build Coastguard Worker [200] = "tkill",
340*387f9dfdSAndroid Build Coastguard Worker [201] = "time",
341*387f9dfdSAndroid Build Coastguard Worker [202] = "futex",
342*387f9dfdSAndroid Build Coastguard Worker [203] = "sched_setaffinity",
343*387f9dfdSAndroid Build Coastguard Worker [204] = "sched_getaffinity",
344*387f9dfdSAndroid Build Coastguard Worker [205] = "set_thread_area",
345*387f9dfdSAndroid Build Coastguard Worker [206] = "io_setup",
346*387f9dfdSAndroid Build Coastguard Worker [207] = "io_destroy",
347*387f9dfdSAndroid Build Coastguard Worker [208] = "io_getevents",
348*387f9dfdSAndroid Build Coastguard Worker [209] = "io_submit",
349*387f9dfdSAndroid Build Coastguard Worker [210] = "io_cancel",
350*387f9dfdSAndroid Build Coastguard Worker [211] = "get_thread_area",
351*387f9dfdSAndroid Build Coastguard Worker [212] = "lookup_dcookie",
352*387f9dfdSAndroid Build Coastguard Worker [213] = "epoll_create",
353*387f9dfdSAndroid Build Coastguard Worker [214] = "epoll_ctl_old",
354*387f9dfdSAndroid Build Coastguard Worker [215] = "epoll_wait_old",
355*387f9dfdSAndroid Build Coastguard Worker [216] = "remap_file_pages",
356*387f9dfdSAndroid Build Coastguard Worker [217] = "getdents64",
357*387f9dfdSAndroid Build Coastguard Worker [218] = "set_tid_address",
358*387f9dfdSAndroid Build Coastguard Worker [219] = "restart_syscall",
359*387f9dfdSAndroid Build Coastguard Worker [220] = "semtimedop",
360*387f9dfdSAndroid Build Coastguard Worker [221] = "fadvise64",
361*387f9dfdSAndroid Build Coastguard Worker [222] = "timer_create",
362*387f9dfdSAndroid Build Coastguard Worker [223] = "timer_settime",
363*387f9dfdSAndroid Build Coastguard Worker [224] = "timer_gettime",
364*387f9dfdSAndroid Build Coastguard Worker [225] = "timer_getoverrun",
365*387f9dfdSAndroid Build Coastguard Worker [226] = "timer_delete",
366*387f9dfdSAndroid Build Coastguard Worker [227] = "clock_settime",
367*387f9dfdSAndroid Build Coastguard Worker [228] = "clock_gettime",
368*387f9dfdSAndroid Build Coastguard Worker [229] = "clock_getres",
369*387f9dfdSAndroid Build Coastguard Worker [230] = "clock_nanosleep",
370*387f9dfdSAndroid Build Coastguard Worker [231] = "exit_group",
371*387f9dfdSAndroid Build Coastguard Worker [232] = "epoll_wait",
372*387f9dfdSAndroid Build Coastguard Worker [233] = "epoll_ctl",
373*387f9dfdSAndroid Build Coastguard Worker [234] = "tgkill",
374*387f9dfdSAndroid Build Coastguard Worker [235] = "utimes",
375*387f9dfdSAndroid Build Coastguard Worker [236] = "vserver",
376*387f9dfdSAndroid Build Coastguard Worker [237] = "mbind",
377*387f9dfdSAndroid Build Coastguard Worker [238] = "set_mempolicy",
378*387f9dfdSAndroid Build Coastguard Worker [239] = "get_mempolicy",
379*387f9dfdSAndroid Build Coastguard Worker [240] = "mq_open",
380*387f9dfdSAndroid Build Coastguard Worker [241] = "mq_unlink",
381*387f9dfdSAndroid Build Coastguard Worker [242] = "mq_timedsend",
382*387f9dfdSAndroid Build Coastguard Worker [243] = "mq_timedreceive",
383*387f9dfdSAndroid Build Coastguard Worker [244] = "mq_notify",
384*387f9dfdSAndroid Build Coastguard Worker [245] = "mq_getsetattr",
385*387f9dfdSAndroid Build Coastguard Worker [246] = "kexec_load",
386*387f9dfdSAndroid Build Coastguard Worker [247] = "waitid",
387*387f9dfdSAndroid Build Coastguard Worker [248] = "add_key",
388*387f9dfdSAndroid Build Coastguard Worker [249] = "request_key",
389*387f9dfdSAndroid Build Coastguard Worker [250] = "keyctl",
390*387f9dfdSAndroid Build Coastguard Worker [251] = "ioprio_set",
391*387f9dfdSAndroid Build Coastguard Worker [252] = "ioprio_get",
392*387f9dfdSAndroid Build Coastguard Worker [253] = "inotify_init",
393*387f9dfdSAndroid Build Coastguard Worker [254] = "inotify_add_watch",
394*387f9dfdSAndroid Build Coastguard Worker [255] = "inotify_rm_watch",
395*387f9dfdSAndroid Build Coastguard Worker [256] = "migrate_pages",
396*387f9dfdSAndroid Build Coastguard Worker [257] = "openat",
397*387f9dfdSAndroid Build Coastguard Worker [258] = "mkdirat",
398*387f9dfdSAndroid Build Coastguard Worker [259] = "mknodat",
399*387f9dfdSAndroid Build Coastguard Worker [260] = "fchownat",
400*387f9dfdSAndroid Build Coastguard Worker [261] = "futimesat",
401*387f9dfdSAndroid Build Coastguard Worker [262] = "newfstatat",
402*387f9dfdSAndroid Build Coastguard Worker [263] = "unlinkat",
403*387f9dfdSAndroid Build Coastguard Worker [264] = "renameat",
404*387f9dfdSAndroid Build Coastguard Worker [265] = "linkat",
405*387f9dfdSAndroid Build Coastguard Worker [266] = "symlinkat",
406*387f9dfdSAndroid Build Coastguard Worker [267] = "readlinkat",
407*387f9dfdSAndroid Build Coastguard Worker [268] = "fchmodat",
408*387f9dfdSAndroid Build Coastguard Worker [269] = "faccessat",
409*387f9dfdSAndroid Build Coastguard Worker [270] = "pselect6",
410*387f9dfdSAndroid Build Coastguard Worker [271] = "ppoll",
411*387f9dfdSAndroid Build Coastguard Worker [272] = "unshare",
412*387f9dfdSAndroid Build Coastguard Worker [273] = "set_robust_list",
413*387f9dfdSAndroid Build Coastguard Worker [274] = "get_robust_list",
414*387f9dfdSAndroid Build Coastguard Worker [275] = "splice",
415*387f9dfdSAndroid Build Coastguard Worker [276] = "tee",
416*387f9dfdSAndroid Build Coastguard Worker [277] = "sync_file_range",
417*387f9dfdSAndroid Build Coastguard Worker [278] = "vmsplice",
418*387f9dfdSAndroid Build Coastguard Worker [279] = "move_pages",
419*387f9dfdSAndroid Build Coastguard Worker [280] = "utimensat",
420*387f9dfdSAndroid Build Coastguard Worker [281] = "epoll_pwait",
421*387f9dfdSAndroid Build Coastguard Worker [282] = "signalfd",
422*387f9dfdSAndroid Build Coastguard Worker [283] = "timerfd_create",
423*387f9dfdSAndroid Build Coastguard Worker [284] = "eventfd",
424*387f9dfdSAndroid Build Coastguard Worker [285] = "fallocate",
425*387f9dfdSAndroid Build Coastguard Worker [286] = "timerfd_settime",
426*387f9dfdSAndroid Build Coastguard Worker [287] = "timerfd_gettime",
427*387f9dfdSAndroid Build Coastguard Worker [288] = "accept4",
428*387f9dfdSAndroid Build Coastguard Worker [289] = "signalfd4",
429*387f9dfdSAndroid Build Coastguard Worker [290] = "eventfd2",
430*387f9dfdSAndroid Build Coastguard Worker [291] = "epoll_create1",
431*387f9dfdSAndroid Build Coastguard Worker [292] = "dup3",
432*387f9dfdSAndroid Build Coastguard Worker [293] = "pipe2",
433*387f9dfdSAndroid Build Coastguard Worker [294] = "inotify_init1",
434*387f9dfdSAndroid Build Coastguard Worker [295] = "preadv",
435*387f9dfdSAndroid Build Coastguard Worker [296] = "pwritev",
436*387f9dfdSAndroid Build Coastguard Worker [297] = "rt_tgsigqueueinfo",
437*387f9dfdSAndroid Build Coastguard Worker [298] = "perf_event_open",
438*387f9dfdSAndroid Build Coastguard Worker [299] = "recvmmsg",
439*387f9dfdSAndroid Build Coastguard Worker [300] = "fanotify_init",
440*387f9dfdSAndroid Build Coastguard Worker [301] = "fanotify_mark",
441*387f9dfdSAndroid Build Coastguard Worker [302] = "prlimit64",
442*387f9dfdSAndroid Build Coastguard Worker [303] = "name_to_handle_at",
443*387f9dfdSAndroid Build Coastguard Worker [304] = "open_by_handle_at",
444*387f9dfdSAndroid Build Coastguard Worker [305] = "clock_adjtime",
445*387f9dfdSAndroid Build Coastguard Worker [306] = "syncfs",
446*387f9dfdSAndroid Build Coastguard Worker [307] = "sendmmsg",
447*387f9dfdSAndroid Build Coastguard Worker [308] = "setns",
448*387f9dfdSAndroid Build Coastguard Worker [309] = "getcpu",
449*387f9dfdSAndroid Build Coastguard Worker [310] = "process_vm_readv",
450*387f9dfdSAndroid Build Coastguard Worker [311] = "process_vm_writev",
451*387f9dfdSAndroid Build Coastguard Worker [312] = "kcmp",
452*387f9dfdSAndroid Build Coastguard Worker [313] = "finit_module",
453*387f9dfdSAndroid Build Coastguard Worker [314] = "sched_setattr",
454*387f9dfdSAndroid Build Coastguard Worker [315] = "sched_getattr",
455*387f9dfdSAndroid Build Coastguard Worker [316] = "renameat2",
456*387f9dfdSAndroid Build Coastguard Worker [317] = "seccomp",
457*387f9dfdSAndroid Build Coastguard Worker [318] = "getrandom",
458*387f9dfdSAndroid Build Coastguard Worker [319] = "memfd_create",
459*387f9dfdSAndroid Build Coastguard Worker [320] = "kexec_file_load",
460*387f9dfdSAndroid Build Coastguard Worker [321] = "bpf",
461*387f9dfdSAndroid Build Coastguard Worker [322] = "execveat",
462*387f9dfdSAndroid Build Coastguard Worker [323] = "userfaultfd",
463*387f9dfdSAndroid Build Coastguard Worker [324] = "membarrier",
464*387f9dfdSAndroid Build Coastguard Worker [325] = "mlock2",
465*387f9dfdSAndroid Build Coastguard Worker [326] = "copy_file_range",
466*387f9dfdSAndroid Build Coastguard Worker [327] = "preadv2",
467*387f9dfdSAndroid Build Coastguard Worker [328] = "pwritev2",
468*387f9dfdSAndroid Build Coastguard Worker [329] = "pkey_mprotect",
469*387f9dfdSAndroid Build Coastguard Worker [330] = "pkey_alloc",
470*387f9dfdSAndroid Build Coastguard Worker [331] = "pkey_free",
471*387f9dfdSAndroid Build Coastguard Worker [332] = "statx",
472*387f9dfdSAndroid Build Coastguard Worker [333] = "io_pgetevents",
473*387f9dfdSAndroid Build Coastguard Worker [334] = "rseq",
474*387f9dfdSAndroid Build Coastguard Worker [424] = "pidfd_send_signal",
475*387f9dfdSAndroid Build Coastguard Worker [425] = "io_uring_setup",
476*387f9dfdSAndroid Build Coastguard Worker [426] = "io_uring_enter",
477*387f9dfdSAndroid Build Coastguard Worker [427] = "io_uring_register",
478*387f9dfdSAndroid Build Coastguard Worker [428] = "open_tree",
479*387f9dfdSAndroid Build Coastguard Worker [429] = "move_mount",
480*387f9dfdSAndroid Build Coastguard Worker [430] = "fsopen",
481*387f9dfdSAndroid Build Coastguard Worker [431] = "fsconfig",
482*387f9dfdSAndroid Build Coastguard Worker [432] = "fsmount",
483*387f9dfdSAndroid Build Coastguard Worker [433] = "fspick",
484*387f9dfdSAndroid Build Coastguard Worker [434] = "pidfd_open",
485*387f9dfdSAndroid Build Coastguard Worker [435] = "clone3",
486*387f9dfdSAndroid Build Coastguard Worker [437] = "openat2",
487*387f9dfdSAndroid Build Coastguard Worker [438] = "pidfd_getfd",
488*387f9dfdSAndroid Build Coastguard Worker };
489*387f9dfdSAndroid Build Coastguard Worker size_t syscall_names_x86_64_size = sizeof(syscall_names_x86_64)/sizeof(char*);
490*387f9dfdSAndroid Build Coastguard Worker #elif defined(__aarch64__) || defined(__riscv)
491*387f9dfdSAndroid Build Coastguard Worker static const char *syscall_names_generic[] = {
492*387f9dfdSAndroid Build Coastguard Worker [0] = "io_setup",
493*387f9dfdSAndroid Build Coastguard Worker [1] = "io_destroy",
494*387f9dfdSAndroid Build Coastguard Worker [2] = "io_submit",
495*387f9dfdSAndroid Build Coastguard Worker [3] = "io_cancel",
496*387f9dfdSAndroid Build Coastguard Worker [4] = "io_getevents",
497*387f9dfdSAndroid Build Coastguard Worker [5] = "setxattr",
498*387f9dfdSAndroid Build Coastguard Worker [6] = "lsetxattr",
499*387f9dfdSAndroid Build Coastguard Worker [7] = "fsetxattr",
500*387f9dfdSAndroid Build Coastguard Worker [8] = "getxattr",
501*387f9dfdSAndroid Build Coastguard Worker [9] = "lgetxattr",
502*387f9dfdSAndroid Build Coastguard Worker [10] = "fgetxattr",
503*387f9dfdSAndroid Build Coastguard Worker [11] = "listxattr",
504*387f9dfdSAndroid Build Coastguard Worker [12] = "llistxattr",
505*387f9dfdSAndroid Build Coastguard Worker [13] = "flistxattr",
506*387f9dfdSAndroid Build Coastguard Worker [14] = "removexattr",
507*387f9dfdSAndroid Build Coastguard Worker [15] = "lremovexattr",
508*387f9dfdSAndroid Build Coastguard Worker [16] = "fremovexattr",
509*387f9dfdSAndroid Build Coastguard Worker [17] = "getcwd",
510*387f9dfdSAndroid Build Coastguard Worker [18] = "lookup_dcookie",
511*387f9dfdSAndroid Build Coastguard Worker [19] = "eventfd2",
512*387f9dfdSAndroid Build Coastguard Worker [20] = "epoll_create1",
513*387f9dfdSAndroid Build Coastguard Worker [21] = "epoll_ctl",
514*387f9dfdSAndroid Build Coastguard Worker [22] = "epoll_pwait",
515*387f9dfdSAndroid Build Coastguard Worker [23] = "dup",
516*387f9dfdSAndroid Build Coastguard Worker [24] = "dup3",
517*387f9dfdSAndroid Build Coastguard Worker [25] = "fcntl",
518*387f9dfdSAndroid Build Coastguard Worker [26] = "inotify_init1",
519*387f9dfdSAndroid Build Coastguard Worker [27] = "inotify_add_watch",
520*387f9dfdSAndroid Build Coastguard Worker [28] = "inotify_rm_watch",
521*387f9dfdSAndroid Build Coastguard Worker [29] = "ioctl",
522*387f9dfdSAndroid Build Coastguard Worker [30] = "ioprio_set",
523*387f9dfdSAndroid Build Coastguard Worker [31] = "ioprio_get",
524*387f9dfdSAndroid Build Coastguard Worker [32] = "flock",
525*387f9dfdSAndroid Build Coastguard Worker [33] = "mknodat",
526*387f9dfdSAndroid Build Coastguard Worker [34] = "mkdirat",
527*387f9dfdSAndroid Build Coastguard Worker [35] = "unlinkat",
528*387f9dfdSAndroid Build Coastguard Worker [36] = "symlinkat",
529*387f9dfdSAndroid Build Coastguard Worker [37] = "linkat",
530*387f9dfdSAndroid Build Coastguard Worker [38] = "renameat",
531*387f9dfdSAndroid Build Coastguard Worker [39] = "umount2",
532*387f9dfdSAndroid Build Coastguard Worker [40] = "mount",
533*387f9dfdSAndroid Build Coastguard Worker [41] = "pivot_root",
534*387f9dfdSAndroid Build Coastguard Worker [42] = "nfsservctl",
535*387f9dfdSAndroid Build Coastguard Worker [43] = "statfs",
536*387f9dfdSAndroid Build Coastguard Worker [44] = "fstatfs",
537*387f9dfdSAndroid Build Coastguard Worker [45] = "truncate",
538*387f9dfdSAndroid Build Coastguard Worker [46] = "ftruncate",
539*387f9dfdSAndroid Build Coastguard Worker [47] = "fallocate",
540*387f9dfdSAndroid Build Coastguard Worker [48] = "faccessat",
541*387f9dfdSAndroid Build Coastguard Worker [49] = "chdir",
542*387f9dfdSAndroid Build Coastguard Worker [50] = "fchdir",
543*387f9dfdSAndroid Build Coastguard Worker [51] = "chroot",
544*387f9dfdSAndroid Build Coastguard Worker [52] = "fchmod",
545*387f9dfdSAndroid Build Coastguard Worker [53] = "fchmodat",
546*387f9dfdSAndroid Build Coastguard Worker [54] = "fchownat",
547*387f9dfdSAndroid Build Coastguard Worker [55] = "fchown",
548*387f9dfdSAndroid Build Coastguard Worker [56] = "openat",
549*387f9dfdSAndroid Build Coastguard Worker [57] = "close",
550*387f9dfdSAndroid Build Coastguard Worker [58] = "vhangup",
551*387f9dfdSAndroid Build Coastguard Worker [59] = "pipe2",
552*387f9dfdSAndroid Build Coastguard Worker [60] = "quotactl",
553*387f9dfdSAndroid Build Coastguard Worker [61] = "getdents64",
554*387f9dfdSAndroid Build Coastguard Worker [62] = "lseek",
555*387f9dfdSAndroid Build Coastguard Worker [63] = "read",
556*387f9dfdSAndroid Build Coastguard Worker [64] = "write",
557*387f9dfdSAndroid Build Coastguard Worker [65] = "readv",
558*387f9dfdSAndroid Build Coastguard Worker [66] = "writev",
559*387f9dfdSAndroid Build Coastguard Worker [67] = "pread64",
560*387f9dfdSAndroid Build Coastguard Worker [68] = "pwrite64",
561*387f9dfdSAndroid Build Coastguard Worker [69] = "preadv",
562*387f9dfdSAndroid Build Coastguard Worker [70] = "pwritev",
563*387f9dfdSAndroid Build Coastguard Worker [71] = "sendfile",
564*387f9dfdSAndroid Build Coastguard Worker [72] = "pselect6",
565*387f9dfdSAndroid Build Coastguard Worker [73] = "ppoll",
566*387f9dfdSAndroid Build Coastguard Worker [74] = "signalfd4",
567*387f9dfdSAndroid Build Coastguard Worker [75] = "vmsplice",
568*387f9dfdSAndroid Build Coastguard Worker [76] = "splice",
569*387f9dfdSAndroid Build Coastguard Worker [77] = "tee",
570*387f9dfdSAndroid Build Coastguard Worker [78] = "readlinkat",
571*387f9dfdSAndroid Build Coastguard Worker [79] = "newfstatat",
572*387f9dfdSAndroid Build Coastguard Worker [80] = "fstat",
573*387f9dfdSAndroid Build Coastguard Worker [81] = "sync",
574*387f9dfdSAndroid Build Coastguard Worker [82] = "fsync",
575*387f9dfdSAndroid Build Coastguard Worker [83] = "fdatasync",
576*387f9dfdSAndroid Build Coastguard Worker [84] = "sync_file_range",
577*387f9dfdSAndroid Build Coastguard Worker [85] = "timerfd_create",
578*387f9dfdSAndroid Build Coastguard Worker [86] = "timerfd_settime",
579*387f9dfdSAndroid Build Coastguard Worker [87] = "timerfd_gettime",
580*387f9dfdSAndroid Build Coastguard Worker [88] = "utimensat",
581*387f9dfdSAndroid Build Coastguard Worker [89] = "acct",
582*387f9dfdSAndroid Build Coastguard Worker [90] = "capget",
583*387f9dfdSAndroid Build Coastguard Worker [91] = "capset",
584*387f9dfdSAndroid Build Coastguard Worker [92] = "personality",
585*387f9dfdSAndroid Build Coastguard Worker [93] = "exit",
586*387f9dfdSAndroid Build Coastguard Worker [94] = "exit_group",
587*387f9dfdSAndroid Build Coastguard Worker [95] = "waitid",
588*387f9dfdSAndroid Build Coastguard Worker [96] = "set_tid_address",
589*387f9dfdSAndroid Build Coastguard Worker [97] = "unshare",
590*387f9dfdSAndroid Build Coastguard Worker [98] = "futex",
591*387f9dfdSAndroid Build Coastguard Worker [99] = "set_robust_list",
592*387f9dfdSAndroid Build Coastguard Worker [100] = "get_robust_list",
593*387f9dfdSAndroid Build Coastguard Worker [101] = "nanosleep",
594*387f9dfdSAndroid Build Coastguard Worker [102] = "getitimer",
595*387f9dfdSAndroid Build Coastguard Worker [103] = "setitimer",
596*387f9dfdSAndroid Build Coastguard Worker [104] = "kexec_load",
597*387f9dfdSAndroid Build Coastguard Worker [105] = "init_module",
598*387f9dfdSAndroid Build Coastguard Worker [106] = "delete_module",
599*387f9dfdSAndroid Build Coastguard Worker [107] = "timer_create",
600*387f9dfdSAndroid Build Coastguard Worker [108] = "timer_gettime",
601*387f9dfdSAndroid Build Coastguard Worker [109] = "timer_getoverrun",
602*387f9dfdSAndroid Build Coastguard Worker [110] = "timer_settime",
603*387f9dfdSAndroid Build Coastguard Worker [111] = "timer_delete",
604*387f9dfdSAndroid Build Coastguard Worker [112] = "clock_settime",
605*387f9dfdSAndroid Build Coastguard Worker [113] = "clock_gettime",
606*387f9dfdSAndroid Build Coastguard Worker [114] = "clock_getres",
607*387f9dfdSAndroid Build Coastguard Worker [115] = "clock_nanosleep",
608*387f9dfdSAndroid Build Coastguard Worker [116] = "syslog",
609*387f9dfdSAndroid Build Coastguard Worker [117] = "ptrace",
610*387f9dfdSAndroid Build Coastguard Worker [118] = "sched_setparam",
611*387f9dfdSAndroid Build Coastguard Worker [119] = "sched_setscheduler",
612*387f9dfdSAndroid Build Coastguard Worker [120] = "sched_getscheduler",
613*387f9dfdSAndroid Build Coastguard Worker [121] = "sched_getparam",
614*387f9dfdSAndroid Build Coastguard Worker [122] = "sched_setaffinity",
615*387f9dfdSAndroid Build Coastguard Worker [123] = "sched_getaffinity",
616*387f9dfdSAndroid Build Coastguard Worker [124] = "sched_yield",
617*387f9dfdSAndroid Build Coastguard Worker [125] = "sched_get_priority_max",
618*387f9dfdSAndroid Build Coastguard Worker [126] = "sched_get_priority_min",
619*387f9dfdSAndroid Build Coastguard Worker [127] = "sched_rr_get_interval",
620*387f9dfdSAndroid Build Coastguard Worker [128] = "restart_syscall",
621*387f9dfdSAndroid Build Coastguard Worker [129] = "kill",
622*387f9dfdSAndroid Build Coastguard Worker [130] = "tkill",
623*387f9dfdSAndroid Build Coastguard Worker [131] = "tgkill",
624*387f9dfdSAndroid Build Coastguard Worker [132] = "sigaltstack",
625*387f9dfdSAndroid Build Coastguard Worker [133] = "rt_sigsuspend",
626*387f9dfdSAndroid Build Coastguard Worker [134] = "rt_sigaction",
627*387f9dfdSAndroid Build Coastguard Worker [135] = "rt_sigprocmask",
628*387f9dfdSAndroid Build Coastguard Worker [136] = "rt_sigpending",
629*387f9dfdSAndroid Build Coastguard Worker [137] = "rt_sigtimedwait",
630*387f9dfdSAndroid Build Coastguard Worker [138] = "rt_sigqueueinfo",
631*387f9dfdSAndroid Build Coastguard Worker [139] = "rt_sigreturn",
632*387f9dfdSAndroid Build Coastguard Worker [140] = "setpriority",
633*387f9dfdSAndroid Build Coastguard Worker [141] = "getpriority",
634*387f9dfdSAndroid Build Coastguard Worker [142] = "reboot",
635*387f9dfdSAndroid Build Coastguard Worker [143] = "setregid",
636*387f9dfdSAndroid Build Coastguard Worker [144] = "setgid",
637*387f9dfdSAndroid Build Coastguard Worker [145] = "setreuid",
638*387f9dfdSAndroid Build Coastguard Worker [146] = "setuid",
639*387f9dfdSAndroid Build Coastguard Worker [147] = "setresuid",
640*387f9dfdSAndroid Build Coastguard Worker [148] = "getresuid",
641*387f9dfdSAndroid Build Coastguard Worker [149] = "setresgid",
642*387f9dfdSAndroid Build Coastguard Worker [150] = "getresgid",
643*387f9dfdSAndroid Build Coastguard Worker [151] = "setfsuid",
644*387f9dfdSAndroid Build Coastguard Worker [152] = "setfsgid",
645*387f9dfdSAndroid Build Coastguard Worker [153] = "times",
646*387f9dfdSAndroid Build Coastguard Worker [154] = "setpgid",
647*387f9dfdSAndroid Build Coastguard Worker [155] = "getpgid",
648*387f9dfdSAndroid Build Coastguard Worker [156] = "getsid",
649*387f9dfdSAndroid Build Coastguard Worker [157] = "setsid",
650*387f9dfdSAndroid Build Coastguard Worker [158] = "getgroups",
651*387f9dfdSAndroid Build Coastguard Worker [159] = "setgroups",
652*387f9dfdSAndroid Build Coastguard Worker [160] = "uname",
653*387f9dfdSAndroid Build Coastguard Worker [161] = "sethostname",
654*387f9dfdSAndroid Build Coastguard Worker [162] = "setdomainname",
655*387f9dfdSAndroid Build Coastguard Worker [163] = "getrlimit",
656*387f9dfdSAndroid Build Coastguard Worker [164] = "setrlimit",
657*387f9dfdSAndroid Build Coastguard Worker [165] = "getrusage",
658*387f9dfdSAndroid Build Coastguard Worker [166] = "umask",
659*387f9dfdSAndroid Build Coastguard Worker [167] = "prctl",
660*387f9dfdSAndroid Build Coastguard Worker [168] = "getcpu",
661*387f9dfdSAndroid Build Coastguard Worker [169] = "gettimeofday",
662*387f9dfdSAndroid Build Coastguard Worker [170] = "settimeofday",
663*387f9dfdSAndroid Build Coastguard Worker [171] = "adjtimex",
664*387f9dfdSAndroid Build Coastguard Worker [172] = "getpid",
665*387f9dfdSAndroid Build Coastguard Worker [173] = "getppid",
666*387f9dfdSAndroid Build Coastguard Worker [174] = "getuid",
667*387f9dfdSAndroid Build Coastguard Worker [175] = "geteuid",
668*387f9dfdSAndroid Build Coastguard Worker [176] = "getgid",
669*387f9dfdSAndroid Build Coastguard Worker [177] = "getegid",
670*387f9dfdSAndroid Build Coastguard Worker [178] = "gettid",
671*387f9dfdSAndroid Build Coastguard Worker [179] = "sysinfo",
672*387f9dfdSAndroid Build Coastguard Worker [180] = "mq_open",
673*387f9dfdSAndroid Build Coastguard Worker [181] = "mq_unlink",
674*387f9dfdSAndroid Build Coastguard Worker [182] = "mq_timedsend",
675*387f9dfdSAndroid Build Coastguard Worker [183] = "mq_timedreceive",
676*387f9dfdSAndroid Build Coastguard Worker [184] = "mq_notify",
677*387f9dfdSAndroid Build Coastguard Worker [185] = "mq_getsetattr",
678*387f9dfdSAndroid Build Coastguard Worker [186] = "msgget",
679*387f9dfdSAndroid Build Coastguard Worker [187] = "msgctl",
680*387f9dfdSAndroid Build Coastguard Worker [188] = "msgrcv",
681*387f9dfdSAndroid Build Coastguard Worker [189] = "msgsnd",
682*387f9dfdSAndroid Build Coastguard Worker [190] = "semget",
683*387f9dfdSAndroid Build Coastguard Worker [191] = "semctl",
684*387f9dfdSAndroid Build Coastguard Worker [192] = "semtimedop",
685*387f9dfdSAndroid Build Coastguard Worker [193] = "semop",
686*387f9dfdSAndroid Build Coastguard Worker [194] = "shmget",
687*387f9dfdSAndroid Build Coastguard Worker [195] = "shmctl",
688*387f9dfdSAndroid Build Coastguard Worker [196] = "shmat",
689*387f9dfdSAndroid Build Coastguard Worker [197] = "shmdt",
690*387f9dfdSAndroid Build Coastguard Worker [198] = "socket",
691*387f9dfdSAndroid Build Coastguard Worker [199] = "socketpair",
692*387f9dfdSAndroid Build Coastguard Worker [200] = "bind",
693*387f9dfdSAndroid Build Coastguard Worker [201] = "listen",
694*387f9dfdSAndroid Build Coastguard Worker [202] = "accept",
695*387f9dfdSAndroid Build Coastguard Worker [203] = "connect",
696*387f9dfdSAndroid Build Coastguard Worker [204] = "getsockname",
697*387f9dfdSAndroid Build Coastguard Worker [205] = "getpeername",
698*387f9dfdSAndroid Build Coastguard Worker [206] = "sendto",
699*387f9dfdSAndroid Build Coastguard Worker [207] = "recvfrom",
700*387f9dfdSAndroid Build Coastguard Worker [208] = "setsockopt",
701*387f9dfdSAndroid Build Coastguard Worker [209] = "getsockopt",
702*387f9dfdSAndroid Build Coastguard Worker [210] = "shutdown",
703*387f9dfdSAndroid Build Coastguard Worker [211] = "sendmsg",
704*387f9dfdSAndroid Build Coastguard Worker [212] = "recvmsg",
705*387f9dfdSAndroid Build Coastguard Worker [213] = "readahead",
706*387f9dfdSAndroid Build Coastguard Worker [214] = "brk",
707*387f9dfdSAndroid Build Coastguard Worker [215] = "munmap",
708*387f9dfdSAndroid Build Coastguard Worker [216] = "mremap",
709*387f9dfdSAndroid Build Coastguard Worker [217] = "add_key",
710*387f9dfdSAndroid Build Coastguard Worker [218] = "request_key",
711*387f9dfdSAndroid Build Coastguard Worker [219] = "keyctl",
712*387f9dfdSAndroid Build Coastguard Worker [220] = "clone",
713*387f9dfdSAndroid Build Coastguard Worker [221] = "execve",
714*387f9dfdSAndroid Build Coastguard Worker [222] = "mmap",
715*387f9dfdSAndroid Build Coastguard Worker [223] = "fadvise64",
716*387f9dfdSAndroid Build Coastguard Worker [224] = "swapon",
717*387f9dfdSAndroid Build Coastguard Worker [225] = "swapoff",
718*387f9dfdSAndroid Build Coastguard Worker [226] = "mprotect",
719*387f9dfdSAndroid Build Coastguard Worker [227] = "msync",
720*387f9dfdSAndroid Build Coastguard Worker [228] = "mlock",
721*387f9dfdSAndroid Build Coastguard Worker [229] = "munlock",
722*387f9dfdSAndroid Build Coastguard Worker [230] = "mlockall",
723*387f9dfdSAndroid Build Coastguard Worker [231] = "munlockall",
724*387f9dfdSAndroid Build Coastguard Worker [232] = "mincore",
725*387f9dfdSAndroid Build Coastguard Worker [233] = "madvise",
726*387f9dfdSAndroid Build Coastguard Worker [234] = "remap_file_pages",
727*387f9dfdSAndroid Build Coastguard Worker [235] = "mbind",
728*387f9dfdSAndroid Build Coastguard Worker [236] = "get_mempolicy",
729*387f9dfdSAndroid Build Coastguard Worker [237] = "set_mempolicy",
730*387f9dfdSAndroid Build Coastguard Worker [238] = "migrate_pages",
731*387f9dfdSAndroid Build Coastguard Worker [239] = "move_pages",
732*387f9dfdSAndroid Build Coastguard Worker [240] = "rt_tgsigqueueinfo",
733*387f9dfdSAndroid Build Coastguard Worker [241] = "perf_event_open",
734*387f9dfdSAndroid Build Coastguard Worker [242] = "accept4",
735*387f9dfdSAndroid Build Coastguard Worker [243] = "recvmmsg",
736*387f9dfdSAndroid Build Coastguard Worker [244] = "arch_specific_syscall",
737*387f9dfdSAndroid Build Coastguard Worker #if defined(__riscv)
738*387f9dfdSAndroid Build Coastguard Worker [258] = "riscv_hwprobe",
739*387f9dfdSAndroid Build Coastguard Worker [259] = "riscv_flush_icache",
740*387f9dfdSAndroid Build Coastguard Worker #endif
741*387f9dfdSAndroid Build Coastguard Worker [260] = "wait4",
742*387f9dfdSAndroid Build Coastguard Worker [261] = "prlimit64",
743*387f9dfdSAndroid Build Coastguard Worker [262] = "fanotify_init",
744*387f9dfdSAndroid Build Coastguard Worker [263] = "fanotify_mark",
745*387f9dfdSAndroid Build Coastguard Worker [264] = "name_to_handle_at",
746*387f9dfdSAndroid Build Coastguard Worker [265] = "open_by_handle_at",
747*387f9dfdSAndroid Build Coastguard Worker [266] = "clock_adjtime",
748*387f9dfdSAndroid Build Coastguard Worker [267] = "syncfs",
749*387f9dfdSAndroid Build Coastguard Worker [268] = "setns",
750*387f9dfdSAndroid Build Coastguard Worker [269] = "sendmmsg",
751*387f9dfdSAndroid Build Coastguard Worker [270] = "process_vm_readv",
752*387f9dfdSAndroid Build Coastguard Worker [271] = "process_vm_writev",
753*387f9dfdSAndroid Build Coastguard Worker [272] = "kcmp",
754*387f9dfdSAndroid Build Coastguard Worker [273] = "finit_module",
755*387f9dfdSAndroid Build Coastguard Worker [274] = "sched_setattr",
756*387f9dfdSAndroid Build Coastguard Worker [275] = "sched_getattr",
757*387f9dfdSAndroid Build Coastguard Worker [276] = "renameat2",
758*387f9dfdSAndroid Build Coastguard Worker [277] = "seccomp",
759*387f9dfdSAndroid Build Coastguard Worker [278] = "getrandom",
760*387f9dfdSAndroid Build Coastguard Worker [279] = "memfd_create",
761*387f9dfdSAndroid Build Coastguard Worker [280] = "bpf",
762*387f9dfdSAndroid Build Coastguard Worker [281] = "execveat",
763*387f9dfdSAndroid Build Coastguard Worker [282] = "userfaultfd",
764*387f9dfdSAndroid Build Coastguard Worker [283] = "membarrier",
765*387f9dfdSAndroid Build Coastguard Worker [284] = "mlock2",
766*387f9dfdSAndroid Build Coastguard Worker [285] = "copy_file_range",
767*387f9dfdSAndroid Build Coastguard Worker [286] = "preadv2",
768*387f9dfdSAndroid Build Coastguard Worker [287] = "pwritev2",
769*387f9dfdSAndroid Build Coastguard Worker [288] = "pkey_mprotect",
770*387f9dfdSAndroid Build Coastguard Worker [289] = "pkey_alloc",
771*387f9dfdSAndroid Build Coastguard Worker [290] = "pkey_free",
772*387f9dfdSAndroid Build Coastguard Worker [291] = "statx",
773*387f9dfdSAndroid Build Coastguard Worker [292] = "io_pgetevents",
774*387f9dfdSAndroid Build Coastguard Worker [293] = "rseq",
775*387f9dfdSAndroid Build Coastguard Worker [294] = "kexec_file_load",
776*387f9dfdSAndroid Build Coastguard Worker [424] = "pidfd_send_signal",
777*387f9dfdSAndroid Build Coastguard Worker [425] = "io_uring_setup",
778*387f9dfdSAndroid Build Coastguard Worker [426] = "io_uring_enter",
779*387f9dfdSAndroid Build Coastguard Worker [427] = "io_uring_register",
780*387f9dfdSAndroid Build Coastguard Worker [428] = "open_tree",
781*387f9dfdSAndroid Build Coastguard Worker [429] = "move_mount",
782*387f9dfdSAndroid Build Coastguard Worker [430] = "fsopen",
783*387f9dfdSAndroid Build Coastguard Worker [431] = "fsconfig",
784*387f9dfdSAndroid Build Coastguard Worker [432] = "fsmount",
785*387f9dfdSAndroid Build Coastguard Worker [433] = "fspick",
786*387f9dfdSAndroid Build Coastguard Worker [434] = "pidfd_open",
787*387f9dfdSAndroid Build Coastguard Worker [435] = "clone3",
788*387f9dfdSAndroid Build Coastguard Worker [436] = "close_range",
789*387f9dfdSAndroid Build Coastguard Worker [437] = "openat2",
790*387f9dfdSAndroid Build Coastguard Worker [438] = "pidfd_getfd",
791*387f9dfdSAndroid Build Coastguard Worker [439] = "faccessat2",
792*387f9dfdSAndroid Build Coastguard Worker [440] = "process_madvise",
793*387f9dfdSAndroid Build Coastguard Worker [441] = "syscalls",
794*387f9dfdSAndroid Build Coastguard Worker [442] = "mount_setattr",
795*387f9dfdSAndroid Build Coastguard Worker [443] = "quotactl_fd",
796*387f9dfdSAndroid Build Coastguard Worker [444] = "landlock_create_ruleset",
797*387f9dfdSAndroid Build Coastguard Worker [445] = "landlock_add_rule",
798*387f9dfdSAndroid Build Coastguard Worker [446] = "landlock_restrict_self",
799*387f9dfdSAndroid Build Coastguard Worker [447] = "memfd_secret",
800*387f9dfdSAndroid Build Coastguard Worker [448] = "process_mrelease",
801*387f9dfdSAndroid Build Coastguard Worker [449] = "futex_waitv",
802*387f9dfdSAndroid Build Coastguard Worker [450] = "set_mempolicy_home_node",
803*387f9dfdSAndroid Build Coastguard Worker };
804*387f9dfdSAndroid Build Coastguard Worker size_t syscall_names_generic_size = sizeof(syscall_names_generic)/sizeof(char*);
805*387f9dfdSAndroid Build Coastguard Worker #endif
806*387f9dfdSAndroid Build Coastguard Worker
syscall_name(unsigned n,char * buf,size_t size)807*387f9dfdSAndroid Build Coastguard Worker void syscall_name(unsigned n, char *buf, size_t size)
808*387f9dfdSAndroid Build Coastguard Worker {
809*387f9dfdSAndroid Build Coastguard Worker const char *name = NULL;
810*387f9dfdSAndroid Build Coastguard Worker
811*387f9dfdSAndroid Build Coastguard Worker if (n < syscall_names_size)
812*387f9dfdSAndroid Build Coastguard Worker name = syscall_names[n];
813*387f9dfdSAndroid Build Coastguard Worker #ifdef __x86_64__
814*387f9dfdSAndroid Build Coastguard Worker else if (n < syscall_names_x86_64_size)
815*387f9dfdSAndroid Build Coastguard Worker name = syscall_names_x86_64[n];
816*387f9dfdSAndroid Build Coastguard Worker #elif defined(__aarch64__) || defined(__riscv)
817*387f9dfdSAndroid Build Coastguard Worker else if (n < syscall_names_generic_size)
818*387f9dfdSAndroid Build Coastguard Worker name = syscall_names_generic[n];
819*387f9dfdSAndroid Build Coastguard Worker #endif
820*387f9dfdSAndroid Build Coastguard Worker
821*387f9dfdSAndroid Build Coastguard Worker if (name)
822*387f9dfdSAndroid Build Coastguard Worker strncpy(buf, name, size-1);
823*387f9dfdSAndroid Build Coastguard Worker else
824*387f9dfdSAndroid Build Coastguard Worker snprintf(buf, size, "[unknown: %u]", n);
825*387f9dfdSAndroid Build Coastguard Worker }
826*387f9dfdSAndroid Build Coastguard Worker
list_syscalls(void)827*387f9dfdSAndroid Build Coastguard Worker int list_syscalls(void)
828*387f9dfdSAndroid Build Coastguard Worker {
829*387f9dfdSAndroid Build Coastguard Worker const char **list = syscall_names;
830*387f9dfdSAndroid Build Coastguard Worker size_t i, size = syscall_names_size;
831*387f9dfdSAndroid Build Coastguard Worker
832*387f9dfdSAndroid Build Coastguard Worker #ifdef __x86_64__
833*387f9dfdSAndroid Build Coastguard Worker if (!size) {
834*387f9dfdSAndroid Build Coastguard Worker size = syscall_names_x86_64_size;
835*387f9dfdSAndroid Build Coastguard Worker list = syscall_names_x86_64;
836*387f9dfdSAndroid Build Coastguard Worker }
837*387f9dfdSAndroid Build Coastguard Worker #elif defined(__aarch64__) || defined(__riscv)
838*387f9dfdSAndroid Build Coastguard Worker if (!size) {
839*387f9dfdSAndroid Build Coastguard Worker size = syscall_names_generic_size;
840*387f9dfdSAndroid Build Coastguard Worker list = syscall_names_generic;
841*387f9dfdSAndroid Build Coastguard Worker }
842*387f9dfdSAndroid Build Coastguard Worker #endif
843*387f9dfdSAndroid Build Coastguard Worker
844*387f9dfdSAndroid Build Coastguard Worker for (i = 0; i < size; i++) {
845*387f9dfdSAndroid Build Coastguard Worker if (list[i])
846*387f9dfdSAndroid Build Coastguard Worker printf("%3zd: %s\n", i, list[i]);
847*387f9dfdSAndroid Build Coastguard Worker }
848*387f9dfdSAndroid Build Coastguard Worker
849*387f9dfdSAndroid Build Coastguard Worker return (!list || !size);
850*387f9dfdSAndroid Build Coastguard Worker }
851*387f9dfdSAndroid Build Coastguard Worker
852