xref: /aosp_15_r20/external/bcc/libbpf-tools/syscall_helpers.c (revision 387f9dfdfa2baef462e92476d413c7bc2470293e)
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