authorgravatar for dev@sgregoratto.meStephen Gregoratto <dev@sgregoratto.me> 2022-05-14 19:42:31+10:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-05-16 23:55:11-04:00
loga4369918b19e4920f51f40a2b05781dda45462f7
tree191bce0ce71a418575909ea73b6e193d5f4a800f
parent6d27341b96240a4ae70c794eb05dec452fd31451

Generate linux syscalls via. the linux source tree

Previously, updating the `SYS` enum for each architecture required manually looking at the syscall tables and inserting any new additions. This commit adds a tool, `generate_linux_syscalls.zig`, that automates this process using the syscall tables in the Linux source tree. On architectures without a table, it runs `zig cc` as a pre-processor to extract the system-call numbers from the Linux headers.

12 files changed, 3872 insertions(+), 3476 deletions(-)

lib/std/os/linux.zig+14-1
......@@ -67,7 +67,6 @@ pub const LOCK = arch_bits.LOCK;
6767pub const MMAP2_UNIT = arch_bits.MMAP2_UNIT;
6868pub const REG = arch_bits.REG;
6969pub const SC = arch_bits.SC;
70pub const SYS = arch_bits.SYS;
7170pub const Stat = arch_bits.Stat;
7271pub const VDSO = arch_bits.VDSO;
7372pub const blkcnt_t = arch_bits.blkcnt_t;
......@@ -93,6 +92,20 @@ pub const BPF = @import("linux/bpf.zig");
9392pub const IOCTL = @import("linux/ioctl.zig");
9493pub const SECCOMP = @import("linux/seccomp.zig");
9594
95pub const syscalls = @import("linux/syscalls.zig");
96pub const SYS = switch (@import("builtin").cpu.arch) {
97 .i386 => syscalls.X86,
98 .x86_64 => syscalls.X64,
99 .aarch64 => syscalls.Arm64,
100 .arm, .thumb => syscalls.Arm,
101 .riscv64 => syscalls.RiscV64,
102 .sparc64 => syscalls.Sparc64,
103 .mips, .mipsel => syscalls.Mips,
104 .powerpc => syscalls.PowerPC,
105 .powerpc64, .powerpc64le => syscalls.PowerPC64,
106 else => @compileError("The Zig Standard Library is missing syscall definitions for the target CPU architecture"),
107};
108
96109pub const MAP = struct {
97110 pub usingnamespace arch_bits.MAP;
98111
lib/std/os/linux/arm-eabi.zig+1-411
......@@ -1,6 +1,7 @@
11const std = @import("../../std.zig");
22const maxInt = std.math.maxInt;
33const linux = std.os.linux;
4const SYS = linux.SYS;
45const iovec = std.os.iovec;
56const iovec_const = std.os.iovec_const;
67const socklen_t = linux.socklen_t;
......@@ -127,417 +128,6 @@ pub fn restore_rt() callconv(.Naked) void {
127128 );
128129}
129130
130pub const SYS = enum(usize) {
131 restart_syscall = 0,
132 exit = 1,
133 fork = 2,
134 read = 3,
135 write = 4,
136 open = 5,
137 close = 6,
138 creat = 8,
139 link = 9,
140 unlink = 10,
141 execve = 11,
142 chdir = 12,
143 mknod = 14,
144 chmod = 15,
145 lchown = 16,
146 lseek = 19,
147 getpid = 20,
148 mount = 21,
149 setuid = 23,
150 getuid = 24,
151 ptrace = 26,
152 pause = 29,
153 access = 33,
154 nice = 34,
155 sync = 36,
156 kill = 37,
157 rename = 38,
158 mkdir = 39,
159 rmdir = 40,
160 dup = 41,
161 pipe = 42,
162 times = 43,
163 brk = 45,
164 setgid = 46,
165 getgid = 47,
166 geteuid = 49,
167 getegid = 50,
168 acct = 51,
169 umount2 = 52,
170 ioctl = 54,
171 fcntl = 55,
172 setpgid = 57,
173 umask = 60,
174 chroot = 61,
175 ustat = 62,
176 dup2 = 63,
177 getppid = 64,
178 getpgrp = 65,
179 setsid = 66,
180 sigaction = 67,
181 setreuid = 70,
182 setregid = 71,
183 sigsuspend = 72,
184 sigpending = 73,
185 sethostname = 74,
186 setrlimit = 75,
187 getrusage = 77,
188 gettimeofday = 78,
189 settimeofday = 79,
190 getgroups = 80,
191 setgroups = 81,
192 symlink = 83,
193 readlink = 85,
194 uselib = 86,
195 swapon = 87,
196 reboot = 88,
197 munmap = 91,
198 truncate = 92,
199 ftruncate = 93,
200 fchmod = 94,
201 fchown = 95,
202 getpriority = 96,
203 setpriority = 97,
204 statfs = 99,
205 fstatfs = 100,
206 syslog = 103,
207 setitimer = 104,
208 getitimer = 105,
209 stat = 106,
210 lstat = 107,
211 fstat = 108,
212 vhangup = 111,
213 wait4 = 114,
214 swapoff = 115,
215 sysinfo = 116,
216 fsync = 118,
217 sigreturn = 119,
218 clone = 120,
219 setdomainname = 121,
220 uname = 122,
221 adjtimex = 124,
222 mprotect = 125,
223 sigprocmask = 126,
224 init_module = 128,
225 delete_module = 129,
226 quotactl = 131,
227 getpgid = 132,
228 fchdir = 133,
229 bdflush = 134,
230 sysfs = 135,
231 personality = 136,
232 setfsuid = 138,
233 setfsgid = 139,
234 _llseek = 140,
235 getdents = 141,
236 _newselect = 142,
237 flock = 143,
238 msync = 144,
239 readv = 145,
240 writev = 146,
241 getsid = 147,
242 fdatasync = 148,
243 _sysctl = 149,
244 mlock = 150,
245 munlock = 151,
246 mlockall = 152,
247 munlockall = 153,
248 sched_setparam = 154,
249 sched_getparam = 155,
250 sched_setscheduler = 156,
251 sched_getscheduler = 157,
252 sched_yield = 158,
253 sched_get_priority_max = 159,
254 sched_get_priority_min = 160,
255 sched_rr_get_interval = 161,
256 nanosleep = 162,
257 mremap = 163,
258 setresuid = 164,
259 getresuid = 165,
260 poll = 168,
261 nfsservctl = 169,
262 setresgid = 170,
263 getresgid = 171,
264 prctl = 172,
265 rt_sigreturn = 173,
266 rt_sigaction = 174,
267 rt_sigprocmask = 175,
268 rt_sigpending = 176,
269 rt_sigtimedwait = 177,
270 rt_sigqueueinfo = 178,
271 rt_sigsuspend = 179,
272 pread64 = 180,
273 pwrite64 = 181,
274 chown = 182,
275 getcwd = 183,
276 capget = 184,
277 capset = 185,
278 sigaltstack = 186,
279 sendfile = 187,
280 vfork = 190,
281 ugetrlimit = 191,
282 mmap2 = 192,
283 truncate64 = 193,
284 ftruncate64 = 194,
285 stat64 = 195,
286 lstat64 = 196,
287 fstat64 = 197,
288 lchown32 = 198,
289 getuid32 = 199,
290 getgid32 = 200,
291 geteuid32 = 201,
292 getegid32 = 202,
293 setreuid32 = 203,
294 setregid32 = 204,
295 getgroups32 = 205,
296 setgroups32 = 206,
297 fchown32 = 207,
298 setresuid32 = 208,
299 getresuid32 = 209,
300 setresgid32 = 210,
301 getresgid32 = 211,
302 chown32 = 212,
303 setuid32 = 213,
304 setgid32 = 214,
305 setfsuid32 = 215,
306 setfsgid32 = 216,
307 getdents64 = 217,
308 pivot_root = 218,
309 mincore = 219,
310 madvise = 220,
311 fcntl64 = 221,
312 gettid = 224,
313 readahead = 225,
314 setxattr = 226,
315 lsetxattr = 227,
316 fsetxattr = 228,
317 getxattr = 229,
318 lgetxattr = 230,
319 fgetxattr = 231,
320 listxattr = 232,
321 llistxattr = 233,
322 flistxattr = 234,
323 removexattr = 235,
324 lremovexattr = 236,
325 fremovexattr = 237,
326 tkill = 238,
327 sendfile64 = 239,
328 futex = 240,
329 sched_setaffinity = 241,
330 sched_getaffinity = 242,
331 io_setup = 243,
332 io_destroy = 244,
333 io_getevents = 245,
334 io_submit = 246,
335 io_cancel = 247,
336 exit_group = 248,
337 lookup_dcookie = 249,
338 epoll_create = 250,
339 epoll_ctl = 251,
340 epoll_wait = 252,
341 remap_file_pages = 253,
342 set_tid_address = 256,
343 timer_create = 257,
344 timer_settime = 258,
345 timer_gettime = 259,
346 timer_getoverrun = 260,
347 timer_delete = 261,
348 clock_settime = 262,
349 clock_gettime = 263,
350 clock_getres = 264,
351 clock_nanosleep = 265,
352 statfs64 = 266,
353 fstatfs64 = 267,
354 tgkill = 268,
355 utimes = 269,
356 fadvise64_64 = 270,
357 pciconfig_iobase = 271,
358 pciconfig_read = 272,
359 pciconfig_write = 273,
360 mq_open = 274,
361 mq_unlink = 275,
362 mq_timedsend = 276,
363 mq_timedreceive = 277,
364 mq_notify = 278,
365 mq_getsetattr = 279,
366 waitid = 280,
367 socket = 281,
368 bind = 282,
369 connect = 283,
370 listen = 284,
371 accept = 285,
372 getsockname = 286,
373 getpeername = 287,
374 socketpair = 288,
375 send = 289,
376 sendto = 290,
377 recv = 291,
378 recvfrom = 292,
379 shutdown = 293,
380 setsockopt = 294,
381 getsockopt = 295,
382 sendmsg = 296,
383 recvmsg = 297,
384 semop = 298,
385 semget = 299,
386 semctl = 300,
387 msgsnd = 301,
388 msgrcv = 302,
389 msgget = 303,
390 msgctl = 304,
391 shmat = 305,
392 shmdt = 306,
393 shmget = 307,
394 shmctl = 308,
395 add_key = 309,
396 request_key = 310,
397 keyctl = 311,
398 semtimedop = 312,
399 vserver = 313,
400 ioprio_set = 314,
401 ioprio_get = 315,
402 inotify_init = 316,
403 inotify_add_watch = 317,
404 inotify_rm_watch = 318,
405 mbind = 319,
406 get_mempolicy = 320,
407 set_mempolicy = 321,
408 openat = 322,
409 mkdirat = 323,
410 mknodat = 324,
411 fchownat = 325,
412 futimesat = 326,
413 fstatat64 = 327,
414 unlinkat = 328,
415 renameat = 329,
416 linkat = 330,
417 symlinkat = 331,
418 readlinkat = 332,
419 fchmodat = 333,
420 faccessat = 334,
421 pselect6 = 335,
422 ppoll = 336,
423 unshare = 337,
424 set_robust_list = 338,
425 get_robust_list = 339,
426 splice = 340,
427 sync_file_range = 341,
428 tee = 342,
429 vmsplice = 343,
430 move_pages = 344,
431 getcpu = 345,
432 epoll_pwait = 346,
433 kexec_load = 347,
434 utimensat = 348,
435 signalfd = 349,
436 timerfd_create = 350,
437 eventfd = 351,
438 fallocate = 352,
439 timerfd_settime = 353,
440 timerfd_gettime = 354,
441 signalfd4 = 355,
442 eventfd2 = 356,
443 epoll_create1 = 357,
444 dup3 = 358,
445 pipe2 = 359,
446 inotify_init1 = 360,
447 preadv = 361,
448 pwritev = 362,
449 rt_tgsigqueueinfo = 363,
450 perf_event_open = 364,
451 recvmmsg = 365,
452 accept4 = 366,
453 fanotify_init = 367,
454 fanotify_mark = 368,
455 prlimit64 = 369,
456 name_to_handle_at = 370,
457 open_by_handle_at = 371,
458 clock_adjtime = 372,
459 syncfs = 373,
460 sendmmsg = 374,
461 setns = 375,
462 process_vm_readv = 376,
463 process_vm_writev = 377,
464 kcmp = 378,
465 finit_module = 379,
466 sched_setattr = 380,
467 sched_getattr = 381,
468 renameat2 = 382,
469 seccomp = 383,
470 getrandom = 384,
471 memfd_create = 385,
472 bpf = 386,
473 execveat = 387,
474 userfaultfd = 388,
475 membarrier = 389,
476 mlock2 = 390,
477 copy_file_range = 391,
478 preadv2 = 392,
479 pwritev2 = 393,
480 pkey_mprotect = 394,
481 pkey_alloc = 395,
482 pkey_free = 396,
483 statx = 397,
484 rseq = 398,
485 io_pgetevents = 399,
486 migrate_pages = 400,
487 kexec_file_load = 401,
488 clock_gettime64 = 403,
489 clock_settime64 = 404,
490 clock_adjtime64 = 405,
491 clock_getres_time64 = 406,
492 clock_nanosleep_time64 = 407,
493 timer_gettime64 = 408,
494 timer_settime64 = 409,
495 timerfd_gettime64 = 410,
496 timerfd_settime64 = 411,
497 utimensat_time64 = 412,
498 pselect6_time64 = 413,
499 ppoll_time64 = 414,
500 io_pgetevents_time64 = 416,
501 recvmmsg_time64 = 417,
502 mq_timedsend_time64 = 418,
503 mq_timedreceive_time64 = 419,
504 semtimedop_time64 = 420,
505 rt_sigtimedwait_time64 = 421,
506 futex_time64 = 422,
507 sched_rr_get_interval_time64 = 423,
508 pidfd_send_signal = 424,
509 io_uring_setup = 425,
510 io_uring_enter = 426,
511 io_uring_register = 427,
512 open_tree = 428,
513 move_mount = 429,
514 fsopen = 430,
515 fsconfig = 431,
516 fsmount = 432,
517 fspick = 433,
518 pidfd_open = 434,
519 clone3 = 435,
520 close_range = 436,
521 openat2 = 437,
522 pidfd_getfd = 438,
523 faccessat2 = 439,
524 process_madvise = 440,
525 epoll_pwait2 = 441,
526 mount_setattr = 442,
527 landlock_create_ruleset = 444,
528 landlock_add_rule = 445,
529 landlock_restrict_self = 446,
530
531 breakpoint = 0x0f0001,
532 cacheflush = 0x0f0002,
533 usr26 = 0x0f0003,
534 usr32 = 0x0f0004,
535 set_tls = 0x0f0005,
536 get_tls = 0x0f0006,
537
538 _,
539};
540
541131pub const MMAP2_UNIT = 4096;
542132
543133pub const O = struct {
lib/std/os/linux/arm64.zig+1-305
......@@ -1,6 +1,7 @@
11const std = @import("../../std.zig");
22const maxInt = std.math.maxInt;
33const linux = std.os.linux;
4const SYS = linux.SYS;
45const socklen_t = linux.socklen_t;
56const sockaddr = linux.sockaddr;
67const iovec = std.os.iovec;
......@@ -110,311 +111,6 @@ pub fn restore_rt() callconv(.Naked) void {
110111 );
111112}
112113
113pub const SYS = enum(usize) {
114 io_setup = 0,
115 io_destroy = 1,
116 io_submit = 2,
117 io_cancel = 3,
118 io_getevents = 4,
119 setxattr = 5,
120 lsetxattr = 6,
121 fsetxattr = 7,
122 getxattr = 8,
123 lgetxattr = 9,
124 fgetxattr = 10,
125 listxattr = 11,
126 llistxattr = 12,
127 flistxattr = 13,
128 removexattr = 14,
129 lremovexattr = 15,
130 fremovexattr = 16,
131 getcwd = 17,
132 lookup_dcookie = 18,
133 eventfd2 = 19,
134 epoll_create1 = 20,
135 epoll_ctl = 21,
136 epoll_pwait = 22,
137 dup = 23,
138 dup3 = 24,
139 fcntl = 25,
140 inotify_init1 = 26,
141 inotify_add_watch = 27,
142 inotify_rm_watch = 28,
143 ioctl = 29,
144 ioprio_set = 30,
145 ioprio_get = 31,
146 flock = 32,
147 mknodat = 33,
148 mkdirat = 34,
149 unlinkat = 35,
150 symlinkat = 36,
151 linkat = 37,
152 renameat = 38,
153 umount2 = 39,
154 mount = 40,
155 pivot_root = 41,
156 nfsservctl = 42,
157 statfs = 43,
158 fstatfs = 44,
159 truncate = 45,
160 ftruncate = 46,
161 fallocate = 47,
162 faccessat = 48,
163 chdir = 49,
164 fchdir = 50,
165 chroot = 51,
166 fchmod = 52,
167 fchmodat = 53,
168 fchownat = 54,
169 fchown = 55,
170 openat = 56,
171 close = 57,
172 vhangup = 58,
173 pipe2 = 59,
174 quotactl = 60,
175 getdents64 = 61,
176 lseek = 62,
177 read = 63,
178 write = 64,
179 readv = 65,
180 writev = 66,
181 pread64 = 67,
182 pwrite64 = 68,
183 preadv = 69,
184 pwritev = 70,
185 sendfile = 71,
186 pselect6 = 72,
187 ppoll = 73,
188 signalfd4 = 74,
189 vmsplice = 75,
190 splice = 76,
191 tee = 77,
192 readlinkat = 78,
193 fstatat = 79,
194 fstat = 80,
195 sync = 81,
196 fsync = 82,
197 fdatasync = 83,
198 sync_file_range = 84,
199 timerfd_create = 85,
200 timerfd_settime = 86,
201 timerfd_gettime = 87,
202 utimensat = 88,
203 acct = 89,
204 capget = 90,
205 capset = 91,
206 personality = 92,
207 exit = 93,
208 exit_group = 94,
209 waitid = 95,
210 set_tid_address = 96,
211 unshare = 97,
212 futex = 98,
213 set_robust_list = 99,
214 get_robust_list = 100,
215 nanosleep = 101,
216 getitimer = 102,
217 setitimer = 103,
218 kexec_load = 104,
219 init_module = 105,
220 delete_module = 106,
221 timer_create = 107,
222 timer_gettime = 108,
223 timer_getoverrun = 109,
224 timer_settime = 110,
225 timer_delete = 111,
226 clock_settime = 112,
227 clock_gettime = 113,
228 clock_getres = 114,
229 clock_nanosleep = 115,
230 syslog = 116,
231 ptrace = 117,
232 sched_setparam = 118,
233 sched_setscheduler = 119,
234 sched_getscheduler = 120,
235 sched_getparam = 121,
236 sched_setaffinity = 122,
237 sched_getaffinity = 123,
238 sched_yield = 124,
239 sched_get_priority_max = 125,
240 sched_get_priority_min = 126,
241 sched_rr_get_interval = 127,
242 restart_syscall = 128,
243 kill = 129,
244 tkill = 130,
245 tgkill = 131,
246 sigaltstack = 132,
247 rt_sigsuspend = 133,
248 rt_sigaction = 134,
249 rt_sigprocmask = 135,
250 rt_sigpending = 136,
251 rt_sigtimedwait = 137,
252 rt_sigqueueinfo = 138,
253 rt_sigreturn = 139,
254 setpriority = 140,
255 getpriority = 141,
256 reboot = 142,
257 setregid = 143,
258 setgid = 144,
259 setreuid = 145,
260 setuid = 146,
261 setresuid = 147,
262 getresuid = 148,
263 setresgid = 149,
264 getresgid = 150,
265 setfsuid = 151,
266 setfsgid = 152,
267 times = 153,
268 setpgid = 154,
269 getpgid = 155,
270 getsid = 156,
271 setsid = 157,
272 getgroups = 158,
273 setgroups = 159,
274 uname = 160,
275 sethostname = 161,
276 setdomainname = 162,
277 getrlimit = 163,
278 setrlimit = 164,
279 getrusage = 165,
280 umask = 166,
281 prctl = 167,
282 getcpu = 168,
283 gettimeofday = 169,
284 settimeofday = 170,
285 adjtimex = 171,
286 getpid = 172,
287 getppid = 173,
288 getuid = 174,
289 geteuid = 175,
290 getgid = 176,
291 getegid = 177,
292 gettid = 178,
293 sysinfo = 179,
294 mq_open = 180,
295 mq_unlink = 181,
296 mq_timedsend = 182,
297 mq_timedreceive = 183,
298 mq_notify = 184,
299 mq_getsetattr = 185,
300 msgget = 186,
301 msgctl = 187,
302 msgrcv = 188,
303 msgsnd = 189,
304 semget = 190,
305 semctl = 191,
306 semtimedop = 192,
307 semop = 193,
308 shmget = 194,
309 shmctl = 195,
310 shmat = 196,
311 shmdt = 197,
312 socket = 198,
313 socketpair = 199,
314 bind = 200,
315 listen = 201,
316 accept = 202,
317 connect = 203,
318 getsockname = 204,
319 getpeername = 205,
320 sendto = 206,
321 recvfrom = 207,
322 setsockopt = 208,
323 getsockopt = 209,
324 shutdown = 210,
325 sendmsg = 211,
326 recvmsg = 212,
327 readahead = 213,
328 brk = 214,
329 munmap = 215,
330 mremap = 216,
331 add_key = 217,
332 request_key = 218,
333 keyctl = 219,
334 clone = 220,
335 execve = 221,
336 mmap = 222,
337 fadvise64 = 223,
338 swapon = 224,
339 swapoff = 225,
340 mprotect = 226,
341 msync = 227,
342 mlock = 228,
343 munlock = 229,
344 mlockall = 230,
345 munlockall = 231,
346 mincore = 232,
347 madvise = 233,
348 remap_file_pages = 234,
349 mbind = 235,
350 get_mempolicy = 236,
351 set_mempolicy = 237,
352 migrate_pages = 238,
353 move_pages = 239,
354 rt_tgsigqueueinfo = 240,
355 perf_event_open = 241,
356 accept4 = 242,
357 recvmmsg = 243,
358 arch_specific_syscall = 244,
359 wait4 = 260,
360 prlimit64 = 261,
361 fanotify_init = 262,
362 fanotify_mark = 263,
363 clock_adjtime = 266,
364 syncfs = 267,
365 setns = 268,
366 sendmmsg = 269,
367 process_vm_readv = 270,
368 process_vm_writev = 271,
369 kcmp = 272,
370 finit_module = 273,
371 sched_setattr = 274,
372 sched_getattr = 275,
373 renameat2 = 276,
374 seccomp = 277,
375 getrandom = 278,
376 memfd_create = 279,
377 bpf = 280,
378 execveat = 281,
379 userfaultfd = 282,
380 membarrier = 283,
381 mlock2 = 284,
382 copy_file_range = 285,
383 preadv2 = 286,
384 pwritev2 = 287,
385 pkey_mprotect = 288,
386 pkey_alloc = 289,
387 pkey_free = 290,
388 statx = 291,
389 io_pgetevents = 292,
390 rseq = 293,
391 kexec_file_load = 294,
392 pidfd_send_signal = 424,
393 io_uring_setup = 425,
394 io_uring_enter = 426,
395 io_uring_register = 427,
396 open_tree = 428,
397 move_mount = 429,
398 fsopen = 430,
399 fsconfig = 431,
400 fsmount = 432,
401 fspick = 433,
402 pidfd_open = 434,
403 clone3 = 435,
404 close_range = 436,
405 openat2 = 437,
406 pidfd_getfd = 438,
407 faccessat2 = 439,
408 process_madvise = 440,
409 epoll_pwait2 = 441,
410 mount_setattr = 442,
411 landlock_create_ruleset = 444,
412 landlock_add_rule = 445,
413 landlock_restrict_self = 446,
414
415 _,
416};
417
418114pub const O = struct {
419115 pub const CREAT = 0o100;
420116 pub const EXCL = 0o200;
lib/std/os/linux/i386.zig+1-441
......@@ -1,6 +1,7 @@
11const std = @import("../../std.zig");
22const maxInt = std.math.maxInt;
33const linux = std.os.linux;
4const SYS = linux.SYS;
45const socklen_t = linux.socklen_t;
56const iovec = std.os.iovec;
67const iovec_const = std.os.iovec_const;
......@@ -136,447 +137,6 @@ pub fn restore_rt() callconv(.Naked) void {
136137 );
137138}
138139
139pub const SYS = enum(usize) {
140 restart_syscall = 0,
141 exit = 1,
142 fork = 2,
143 read = 3,
144 write = 4,
145 open = 5,
146 close = 6,
147 waitpid = 7,
148 creat = 8,
149 link = 9,
150 unlink = 10,
151 execve = 11,
152 chdir = 12,
153 time = 13,
154 mknod = 14,
155 chmod = 15,
156 lchown = 16,
157 @"break" = 17,
158 oldstat = 18,
159 lseek = 19,
160 getpid = 20,
161 mount = 21,
162 umount = 22,
163 setuid = 23,
164 getuid = 24,
165 stime = 25,
166 ptrace = 26,
167 alarm = 27,
168 oldfstat = 28,
169 pause = 29,
170 utime = 30,
171 stty = 31,
172 gtty = 32,
173 access = 33,
174 nice = 34,
175 ftime = 35,
176 sync = 36,
177 kill = 37,
178 rename = 38,
179 mkdir = 39,
180 rmdir = 40,
181 dup = 41,
182 pipe = 42,
183 times = 43,
184 prof = 44,
185 brk = 45,
186 setgid = 46,
187 getgid = 47,
188 signal = 48,
189 geteuid = 49,
190 getegid = 50,
191 acct = 51,
192 umount2 = 52,
193 lock = 53,
194 ioctl = 54,
195 fcntl = 55,
196 mpx = 56,
197 setpgid = 57,
198 ulimit = 58,
199 oldolduname = 59,
200 umask = 60,
201 chroot = 61,
202 ustat = 62,
203 dup2 = 63,
204 getppid = 64,
205 getpgrp = 65,
206 setsid = 66,
207 sigaction = 67,
208 sgetmask = 68,
209 ssetmask = 69,
210 setreuid = 70,
211 setregid = 71,
212 sigsuspend = 72,
213 sigpending = 73,
214 sethostname = 74,
215 setrlimit = 75,
216 getrlimit = 76,
217 getrusage = 77,
218 gettimeofday = 78,
219 settimeofday = 79,
220 getgroups = 80,
221 setgroups = 81,
222 select = 82,
223 symlink = 83,
224 oldlstat = 84,
225 readlink = 85,
226 uselib = 86,
227 swapon = 87,
228 reboot = 88,
229 readdir = 89,
230 mmap = 90,
231 munmap = 91,
232 truncate = 92,
233 ftruncate = 93,
234 fchmod = 94,
235 fchown = 95,
236 getpriority = 96,
237 setpriority = 97,
238 profil = 98,
239 statfs = 99,
240 fstatfs = 100,
241 ioperm = 101,
242 socketcall = 102,
243 syslog = 103,
244 setitimer = 104,
245 getitimer = 105,
246 stat = 106,
247 lstat = 107,
248 fstat = 108,
249 olduname = 109,
250 iopl = 110,
251 vhangup = 111,
252 idle = 112,
253 vm86old = 113,
254 wait4 = 114,
255 swapoff = 115,
256 sysinfo = 116,
257 ipc = 117,
258 fsync = 118,
259 sigreturn = 119,
260 clone = 120,
261 setdomainname = 121,
262 uname = 122,
263 modify_ldt = 123,
264 adjtimex = 124,
265 mprotect = 125,
266 sigprocmask = 126,
267 create_module = 127,
268 init_module = 128,
269 delete_module = 129,
270 get_kernel_syms = 130,
271 quotactl = 131,
272 getpgid = 132,
273 fchdir = 133,
274 bdflush = 134,
275 sysfs = 135,
276 personality = 136,
277 afs_syscall = 137,
278 setfsuid = 138,
279 setfsgid = 139,
280 _llseek = 140,
281 getdents = 141,
282 _newselect = 142,
283 flock = 143,
284 msync = 144,
285 readv = 145,
286 writev = 146,
287 getsid = 147,
288 fdatasync = 148,
289 _sysctl = 149,
290 mlock = 150,
291 munlock = 151,
292 mlockall = 152,
293 munlockall = 153,
294 sched_setparam = 154,
295 sched_getparam = 155,
296 sched_setscheduler = 156,
297 sched_getscheduler = 157,
298 sched_yield = 158,
299 sched_get_priority_max = 159,
300 sched_get_priority_min = 160,
301 sched_rr_get_interval = 161,
302 nanosleep = 162,
303 mremap = 163,
304 setresuid = 164,
305 getresuid = 165,
306 vm86 = 166,
307 query_module = 167,
308 poll = 168,
309 nfsservctl = 169,
310 setresgid = 170,
311 getresgid = 171,
312 prctl = 172,
313 rt_sigreturn = 173,
314 rt_sigaction = 174,
315 rt_sigprocmask = 175,
316 rt_sigpending = 176,
317 rt_sigtimedwait = 177,
318 rt_sigqueueinfo = 178,
319 rt_sigsuspend = 179,
320 pread64 = 180,
321 pwrite64 = 181,
322 chown = 182,
323 getcwd = 183,
324 capget = 184,
325 capset = 185,
326 sigaltstack = 186,
327 sendfile = 187,
328 getpmsg = 188,
329 putpmsg = 189,
330 vfork = 190,
331 ugetrlimit = 191,
332 mmap2 = 192,
333 truncate64 = 193,
334 ftruncate64 = 194,
335 stat64 = 195,
336 lstat64 = 196,
337 fstat64 = 197,
338 lchown32 = 198,
339 getuid32 = 199,
340 getgid32 = 200,
341 geteuid32 = 201,
342 getegid32 = 202,
343 setreuid32 = 203,
344 setregid32 = 204,
345 getgroups32 = 205,
346 setgroups32 = 206,
347 fchown32 = 207,
348 setresuid32 = 208,
349 getresuid32 = 209,
350 setresgid32 = 210,
351 getresgid32 = 211,
352 chown32 = 212,
353 setuid32 = 213,
354 setgid32 = 214,
355 setfsuid32 = 215,
356 setfsgid32 = 216,
357 pivot_root = 217,
358 mincore = 218,
359 madvise = 219,
360 getdents64 = 220,
361 fcntl64 = 221,
362 gettid = 224,
363 readahead = 225,
364 setxattr = 226,
365 lsetxattr = 227,
366 fsetxattr = 228,
367 getxattr = 229,
368 lgetxattr = 230,
369 fgetxattr = 231,
370 listxattr = 232,
371 llistxattr = 233,
372 flistxattr = 234,
373 removexattr = 235,
374 lremovexattr = 236,
375 fremovexattr = 237,
376 tkill = 238,
377 sendfile64 = 239,
378 futex = 240,
379 sched_setaffinity = 241,
380 sched_getaffinity = 242,
381 set_thread_area = 243,
382 get_thread_area = 244,
383 io_setup = 245,
384 io_destroy = 246,
385 io_getevents = 247,
386 io_submit = 248,
387 io_cancel = 249,
388 fadvise64 = 250,
389 exit_group = 252,
390 lookup_dcookie = 253,
391 epoll_create = 254,
392 epoll_ctl = 255,
393 epoll_wait = 256,
394 remap_file_pages = 257,
395 set_tid_address = 258,
396 timer_create = 259,
397 timer_settime, // SYS_timer_create + 1
398 timer_gettime, // SYS_timer_create + 2
399 timer_getoverrun, // SYS_timer_create + 3
400 timer_delete, // SYS_timer_create + 4
401 clock_settime, // SYS_timer_create + 5
402 clock_gettime, // SYS_timer_create + 6
403 clock_getres, // SYS_timer_create + 7
404 clock_nanosleep, // SYS_timer_create + 8
405 statfs64 = 268,
406 fstatfs64 = 269,
407 tgkill = 270,
408 utimes = 271,
409 fadvise64_64 = 272,
410 vserver = 273,
411 mbind = 274,
412 get_mempolicy = 275,
413 set_mempolicy = 276,
414 mq_open = 277,
415 mq_unlink, // SYS_mq_open + 1
416 mq_timedsend, // SYS_mq_open + 2
417 mq_timedreceive, // SYS_mq_open + 3
418 mq_notify, // SYS_mq_open + 4
419 mq_getsetattr, // SYS_mq_open + 5
420 kexec_load = 283,
421 waitid = 284,
422 add_key = 286,
423 request_key = 287,
424 keyctl = 288,
425 ioprio_set = 289,
426 ioprio_get = 290,
427 inotify_init = 291,
428 inotify_add_watch = 292,
429 inotify_rm_watch = 293,
430 migrate_pages = 294,
431 openat = 295,
432 mkdirat = 296,
433 mknodat = 297,
434 fchownat = 298,
435 futimesat = 299,
436 fstatat64 = 300,
437 unlinkat = 301,
438 renameat = 302,
439 linkat = 303,
440 symlinkat = 304,
441 readlinkat = 305,
442 fchmodat = 306,
443 faccessat = 307,
444 pselect6 = 308,
445 ppoll = 309,
446 unshare = 310,
447 set_robust_list = 311,
448 get_robust_list = 312,
449 splice = 313,
450 sync_file_range = 314,
451 tee = 315,
452 vmsplice = 316,
453 move_pages = 317,
454 getcpu = 318,
455 epoll_pwait = 319,
456 utimensat = 320,
457 signalfd = 321,
458 timerfd_create = 322,
459 eventfd = 323,
460 fallocate = 324,
461 timerfd_settime = 325,
462 timerfd_gettime = 326,
463 signalfd4 = 327,
464 eventfd2 = 328,
465 epoll_create1 = 329,
466 dup3 = 330,
467 pipe2 = 331,
468 inotify_init1 = 332,
469 preadv = 333,
470 pwritev = 334,
471 rt_tgsigqueueinfo = 335,
472 perf_event_open = 336,
473 recvmmsg = 337,
474 fanotify_init = 338,
475 fanotify_mark = 339,
476 prlimit64 = 340,
477 name_to_handle_at = 341,
478 open_by_handle_at = 342,
479 clock_adjtime = 343,
480 syncfs = 344,
481 sendmmsg = 345,
482 setns = 346,
483 process_vm_readv = 347,
484 process_vm_writev = 348,
485 kcmp = 349,
486 finit_module = 350,
487 sched_setattr = 351,
488 sched_getattr = 352,
489 renameat2 = 353,
490 seccomp = 354,
491 getrandom = 355,
492 memfd_create = 356,
493 bpf = 357,
494 execveat = 358,
495 socket = 359,
496 socketpair = 360,
497 bind = 361,
498 connect = 362,
499 listen = 363,
500 accept4 = 364,
501 getsockopt = 365,
502 setsockopt = 366,
503 getsockname = 367,
504 getpeername = 368,
505 sendto = 369,
506 sendmsg = 370,
507 recvfrom = 371,
508 recvmsg = 372,
509 shutdown = 373,
510 userfaultfd = 374,
511 membarrier = 375,
512 mlock2 = 376,
513 copy_file_range = 377,
514 preadv2 = 378,
515 pwritev2 = 379,
516 pkey_mprotect = 380,
517 pkey_alloc = 381,
518 pkey_free = 382,
519 statx = 383,
520 arch_prctl = 384,
521 io_pgetevents = 385,
522 rseq = 386,
523 semget = 393,
524 semctl = 394,
525 shmget = 395,
526 shmctl = 396,
527 shmat = 397,
528 shmdt = 398,
529 msgget = 399,
530 msgsnd = 400,
531 msgrcv = 401,
532 msgctl = 402,
533 clock_gettime64 = 403,
534 clock_settime64 = 404,
535 clock_adjtime64 = 405,
536 clock_getres_time64 = 406,
537 clock_nanosleep_time64 = 407,
538 timer_gettime64 = 408,
539 timer_settime64 = 409,
540 timerfd_gettime64 = 410,
541 timerfd_settime64 = 411,
542 utimensat_time64 = 412,
543 pselect6_time64 = 413,
544 ppoll_time64 = 414,
545 io_pgetevents_time64 = 416,
546 recvmmsg_time64 = 417,
547 mq_timedsend_time64 = 418,
548 mq_timedreceive_time64 = 419,
549 semtimedop_time64 = 420,
550 rt_sigtimedwait_time64 = 421,
551 futex_time64 = 422,
552 sched_rr_get_interval_time64 = 423,
553 pidfd_send_signal = 424,
554 io_uring_setup = 425,
555 io_uring_enter = 426,
556 io_uring_register = 427,
557 open_tree = 428,
558 move_mount = 429,
559 fsopen = 430,
560 fsconfig = 431,
561 fsmount = 432,
562 fspick = 433,
563 pidfd_open = 434,
564 clone3 = 435,
565 close_range = 436,
566 openat2 = 437,
567 pidfd_getfd = 438,
568 faccessat2 = 439,
569 process_madvise = 440,
570 epoll_pwait2 = 441,
571 mount_setattr = 442,
572 landlock_create_ruleset = 444,
573 landlock_add_rule = 445,
574 landlock_restrict_self = 446,
575 memfd_secret = 447,
576
577 _,
578};
579
580140pub const O = struct {
581141 pub const CREAT = 0o100;
582142 pub const EXCL = 0o200;
lib/std/os/linux/mips.zig+1-427
......@@ -1,6 +1,7 @@
11const std = @import("../../std.zig");
22const maxInt = std.math.maxInt;
33const linux = std.os.linux;
4const SYS = linux.SYS;
45const socklen_t = linux.socklen_t;
56const iovec = std.os.iovec;
67const iovec_const = std.os.iovec_const;
......@@ -208,433 +209,6 @@ pub fn restore_rt() callconv(.Naked) void {
208209 );
209210}
210211
211pub const SYS = enum(usize) {
212 pub const Linux = 4000;
213
214 syscall = Linux + 0,
215 exit = Linux + 1,
216 fork = Linux + 2,
217 read = Linux + 3,
218 write = Linux + 4,
219 open = Linux + 5,
220 close = Linux + 6,
221 waitpid = Linux + 7,
222 creat = Linux + 8,
223 link = Linux + 9,
224 unlink = Linux + 10,
225 execve = Linux + 11,
226 chdir = Linux + 12,
227 time = Linux + 13,
228 mknod = Linux + 14,
229 chmod = Linux + 15,
230 lchown = Linux + 16,
231 @"break" = Linux + 17,
232 unused18 = Linux + 18,
233 lseek = Linux + 19,
234 getpid = Linux + 20,
235 mount = Linux + 21,
236 umount = Linux + 22,
237 setuid = Linux + 23,
238 getuid = Linux + 24,
239 stime = Linux + 25,
240 ptrace = Linux + 26,
241 alarm = Linux + 27,
242 unused28 = Linux + 28,
243 pause = Linux + 29,
244 utime = Linux + 30,
245 stty = Linux + 31,
246 gtty = Linux + 32,
247 access = Linux + 33,
248 nice = Linux + 34,
249 ftime = Linux + 35,
250 sync = Linux + 36,
251 kill = Linux + 37,
252 rename = Linux + 38,
253 mkdir = Linux + 39,
254 rmdir = Linux + 40,
255 dup = Linux + 41,
256 pipe = Linux + 42,
257 times = Linux + 43,
258 prof = Linux + 44,
259 brk = Linux + 45,
260 setgid = Linux + 46,
261 getgid = Linux + 47,
262 signal = Linux + 48,
263 geteuid = Linux + 49,
264 getegid = Linux + 50,
265 acct = Linux + 51,
266 umount2 = Linux + 52,
267 lock = Linux + 53,
268 ioctl = Linux + 54,
269 fcntl = Linux + 55,
270 mpx = Linux + 56,
271 setpgid = Linux + 57,
272 ulimit = Linux + 58,
273 unused59 = Linux + 59,
274 umask = Linux + 60,
275 chroot = Linux + 61,
276 ustat = Linux + 62,
277 dup2 = Linux + 63,
278 getppid = Linux + 64,
279 getpgrp = Linux + 65,
280 setsid = Linux + 66,
281 sigaction = Linux + 67,
282 sgetmask = Linux + 68,
283 ssetmask = Linux + 69,
284 setreuid = Linux + 70,
285 setregid = Linux + 71,
286 sigsuspend = Linux + 72,
287 sigpending = Linux + 73,
288 sethostname = Linux + 74,
289 setrlimit = Linux + 75,
290 getrlimit = Linux + 76,
291 getrusage = Linux + 77,
292 gettimeofday = Linux + 78,
293 settimeofday = Linux + 79,
294 getgroups = Linux + 80,
295 setgroups = Linux + 81,
296 reserved82 = Linux + 82,
297 symlink = Linux + 83,
298 unused84 = Linux + 84,
299 readlink = Linux + 85,
300 uselib = Linux + 86,
301 swapon = Linux + 87,
302 reboot = Linux + 88,
303 readdir = Linux + 89,
304 mmap = Linux + 90,
305 munmap = Linux + 91,
306 truncate = Linux + 92,
307 ftruncate = Linux + 93,
308 fchmod = Linux + 94,
309 fchown = Linux + 95,
310 getpriority = Linux + 96,
311 setpriority = Linux + 97,
312 profil = Linux + 98,
313 statfs = Linux + 99,
314 fstatfs = Linux + 100,
315 ioperm = Linux + 101,
316 socketcall = Linux + 102,
317 syslog = Linux + 103,
318 setitimer = Linux + 104,
319 getitimer = Linux + 105,
320 stat = Linux + 106,
321 lstat = Linux + 107,
322 fstat = Linux + 108,
323 unused109 = Linux + 109,
324 iopl = Linux + 110,
325 vhangup = Linux + 111,
326 idle = Linux + 112,
327 vm86 = Linux + 113,
328 wait4 = Linux + 114,
329 swapoff = Linux + 115,
330 sysinfo = Linux + 116,
331 ipc = Linux + 117,
332 fsync = Linux + 118,
333 sigreturn = Linux + 119,
334 clone = Linux + 120,
335 setdomainname = Linux + 121,
336 uname = Linux + 122,
337 modify_ldt = Linux + 123,
338 adjtimex = Linux + 124,
339 mprotect = Linux + 125,
340 sigprocmask = Linux + 126,
341 create_module = Linux + 127,
342 init_module = Linux + 128,
343 delete_module = Linux + 129,
344 get_kernel_syms = Linux + 130,
345 quotactl = Linux + 131,
346 getpgid = Linux + 132,
347 fchdir = Linux + 133,
348 bdflush = Linux + 134,
349 sysfs = Linux + 135,
350 personality = Linux + 136,
351 afs_syscall = Linux + 137,
352 setfsuid = Linux + 138,
353 setfsgid = Linux + 139,
354 _llseek = Linux + 140,
355 getdents = Linux + 141,
356 _newselect = Linux + 142,
357 flock = Linux + 143,
358 msync = Linux + 144,
359 readv = Linux + 145,
360 writev = Linux + 146,
361 cacheflush = Linux + 147,
362 cachectl = Linux + 148,
363 sysmips = Linux + 149,
364 unused150 = Linux + 150,
365 getsid = Linux + 151,
366 fdatasync = Linux + 152,
367 _sysctl = Linux + 153,
368 mlock = Linux + 154,
369 munlock = Linux + 155,
370 mlockall = Linux + 156,
371 munlockall = Linux + 157,
372 sched_setparam = Linux + 158,
373 sched_getparam = Linux + 159,
374 sched_setscheduler = Linux + 160,
375 sched_getscheduler = Linux + 161,
376 sched_yield = Linux + 162,
377 sched_get_priority_max = Linux + 163,
378 sched_get_priority_min = Linux + 164,
379 sched_rr_get_interval = Linux + 165,
380 nanosleep = Linux + 166,
381 mremap = Linux + 167,
382 accept = Linux + 168,
383 bind = Linux + 169,
384 connect = Linux + 170,
385 getpeername = Linux + 171,
386 getsockname = Linux + 172,
387 getsockopt = Linux + 173,
388 listen = Linux + 174,
389 recv = Linux + 175,
390 recvfrom = Linux + 176,
391 recvmsg = Linux + 177,
392 send = Linux + 178,
393 sendmsg = Linux + 179,
394 sendto = Linux + 180,
395 setsockopt = Linux + 181,
396 shutdown = Linux + 182,
397 socket = Linux + 183,
398 socketpair = Linux + 184,
399 setresuid = Linux + 185,
400 getresuid = Linux + 186,
401 query_module = Linux + 187,
402 poll = Linux + 188,
403 nfsservctl = Linux + 189,
404 setresgid = Linux + 190,
405 getresgid = Linux + 191,
406 prctl = Linux + 192,
407 rt_sigreturn = Linux + 193,
408 rt_sigaction = Linux + 194,
409 rt_sigprocmask = Linux + 195,
410 rt_sigpending = Linux + 196,
411 rt_sigtimedwait = Linux + 197,
412 rt_sigqueueinfo = Linux + 198,
413 rt_sigsuspend = Linux + 199,
414 pread64 = Linux + 200,
415 pwrite64 = Linux + 201,
416 chown = Linux + 202,
417 getcwd = Linux + 203,
418 capget = Linux + 204,
419 capset = Linux + 205,
420 sigaltstack = Linux + 206,
421 sendfile = Linux + 207,
422 getpmsg = Linux + 208,
423 putpmsg = Linux + 209,
424 mmap2 = Linux + 210,
425 truncate64 = Linux + 211,
426 ftruncate64 = Linux + 212,
427 stat64 = Linux + 213,
428 lstat64 = Linux + 214,
429 fstat64 = Linux + 215,
430 pivot_root = Linux + 216,
431 mincore = Linux + 217,
432 madvise = Linux + 218,
433 getdents64 = Linux + 219,
434 fcntl64 = Linux + 220,
435 reserved221 = Linux + 221,
436 gettid = Linux + 222,
437 readahead = Linux + 223,
438 setxattr = Linux + 224,
439 lsetxattr = Linux + 225,
440 fsetxattr = Linux + 226,
441 getxattr = Linux + 227,
442 lgetxattr = Linux + 228,
443 fgetxattr = Linux + 229,
444 listxattr = Linux + 230,
445 llistxattr = Linux + 231,
446 flistxattr = Linux + 232,
447 removexattr = Linux + 233,
448 lremovexattr = Linux + 234,
449 fremovexattr = Linux + 235,
450 tkill = Linux + 236,
451 sendfile64 = Linux + 237,
452 futex = Linux + 238,
453 sched_setaffinity = Linux + 239,
454 sched_getaffinity = Linux + 240,
455 io_setup = Linux + 241,
456 io_destroy = Linux + 242,
457 io_getevents = Linux + 243,
458 io_submit = Linux + 244,
459 io_cancel = Linux + 245,
460 exit_group = Linux + 246,
461 lookup_dcookie = Linux + 247,
462 epoll_create = Linux + 248,
463 epoll_ctl = Linux + 249,
464 epoll_wait = Linux + 250,
465 remap_file_pages = Linux + 251,
466 set_tid_address = Linux + 252,
467 restart_syscall = Linux + 253,
468 fadvise64 = Linux + 254,
469 statfs64 = Linux + 255,
470 fstatfs64 = Linux + 256,
471 timer_create = Linux + 257,
472 timer_settime = Linux + 258,
473 timer_gettime = Linux + 259,
474 timer_getoverrun = Linux + 260,
475 timer_delete = Linux + 261,
476 clock_settime = Linux + 262,
477 clock_gettime = Linux + 263,
478 clock_getres = Linux + 264,
479 clock_nanosleep = Linux + 265,
480 tgkill = Linux + 266,
481 utimes = Linux + 267,
482 mbind = Linux + 268,
483 get_mempolicy = Linux + 269,
484 set_mempolicy = Linux + 270,
485 mq_open = Linux + 271,
486 mq_unlink = Linux + 272,
487 mq_timedsend = Linux + 273,
488 mq_timedreceive = Linux + 274,
489 mq_notify = Linux + 275,
490 mq_getsetattr = Linux + 276,
491 vserver = Linux + 277,
492 waitid = Linux + 278,
493 add_key = Linux + 280,
494 request_key = Linux + 281,
495 keyctl = Linux + 282,
496 set_thread_area = Linux + 283,
497 inotify_init = Linux + 284,
498 inotify_add_watch = Linux + 285,
499 inotify_rm_watch = Linux + 286,
500 migrate_pages = Linux + 287,
501 openat = Linux + 288,
502 mkdirat = Linux + 289,
503 mknodat = Linux + 290,
504 fchownat = Linux + 291,
505 futimesat = Linux + 292,
506 fstatat64 = Linux + 293,
507 unlinkat = Linux + 294,
508 renameat = Linux + 295,
509 linkat = Linux + 296,
510 symlinkat = Linux + 297,
511 readlinkat = Linux + 298,
512 fchmodat = Linux + 299,
513 faccessat = Linux + 300,
514 pselect6 = Linux + 301,
515 ppoll = Linux + 302,
516 unshare = Linux + 303,
517 splice = Linux + 304,
518 sync_file_range = Linux + 305,
519 tee = Linux + 306,
520 vmsplice = Linux + 307,
521 move_pages = Linux + 308,
522 set_robust_list = Linux + 309,
523 get_robust_list = Linux + 310,
524 kexec_load = Linux + 311,
525 getcpu = Linux + 312,
526 epoll_pwait = Linux + 313,
527 ioprio_set = Linux + 314,
528 ioprio_get = Linux + 315,
529 utimensat = Linux + 316,
530 signalfd = Linux + 317,
531 timerfd = Linux + 318,
532 eventfd = Linux + 319,
533 fallocate = Linux + 320,
534 timerfd_create = Linux + 321,
535 timerfd_gettime = Linux + 322,
536 timerfd_settime = Linux + 323,
537 signalfd4 = Linux + 324,
538 eventfd2 = Linux + 325,
539 epoll_create1 = Linux + 326,
540 dup3 = Linux + 327,
541 pipe2 = Linux + 328,
542 inotify_init1 = Linux + 329,
543 preadv = Linux + 330,
544 pwritev = Linux + 331,
545 rt_tgsigqueueinfo = Linux + 332,
546 perf_event_open = Linux + 333,
547 accept4 = Linux + 334,
548 recvmmsg = Linux + 335,
549 fanotify_init = Linux + 336,
550 fanotify_mark = Linux + 337,
551 prlimit64 = Linux + 338,
552 name_to_handle_at = Linux + 339,
553 open_by_handle_at = Linux + 340,
554 clock_adjtime = Linux + 341,
555 syncfs = Linux + 342,
556 sendmmsg = Linux + 343,
557 setns = Linux + 344,
558 process_vm_readv = Linux + 345,
559 process_vm_writev = Linux + 346,
560 kcmp = Linux + 347,
561 finit_module = Linux + 348,
562 sched_setattr = Linux + 349,
563 sched_getattr = Linux + 350,
564 renameat2 = Linux + 351,
565 seccomp = Linux + 352,
566 getrandom = Linux + 353,
567 memfd_create = Linux + 354,
568 bpf = Linux + 355,
569 execveat = Linux + 356,
570 userfaultfd = Linux + 357,
571 membarrier = Linux + 358,
572 mlock2 = Linux + 359,
573 copy_file_range = Linux + 360,
574 preadv2 = Linux + 361,
575 pwritev2 = Linux + 362,
576 pkey_mprotect = Linux + 363,
577 pkey_alloc = Linux + 364,
578 pkey_free = Linux + 365,
579 statx = Linux + 366,
580 rseq = Linux + 367,
581 io_pgetevents = Linux + 368,
582 semget = Linux + 393,
583 semctl = Linux + 394,
584 shmget = Linux + 395,
585 shmctl = Linux + 396,
586 shmat = Linux + 397,
587 shmdt = Linux + 398,
588 msgget = Linux + 399,
589 msgsnd = Linux + 400,
590 msgrcv = Linux + 401,
591 msgctl = Linux + 402,
592 clock_gettime64 = Linux + 403,
593 clock_settime64 = Linux + 404,
594 clock_adjtime64 = Linux + 405,
595 clock_getres_time64 = Linux + 406,
596 clock_nanosleep_time64 = Linux + 407,
597 timer_gettime64 = Linux + 408,
598 timer_settime64 = Linux + 409,
599 timerfd_gettime64 = Linux + 410,
600 timerfd_settime64 = Linux + 411,
601 utimensat_time64 = Linux + 412,
602 pselect6_time64 = Linux + 413,
603 ppoll_time64 = Linux + 414,
604 io_pgetevents_time64 = Linux + 416,
605 recvmmsg_time64 = Linux + 417,
606 mq_timedsend_time64 = Linux + 418,
607 mq_timedreceive_time64 = Linux + 419,
608 semtimedop_time64 = Linux + 420,
609 rt_sigtimedwait_time64 = Linux + 421,
610 futex_time64 = Linux + 422,
611 sched_rr_get_interval_time64 = Linux + 423,
612 pidfd_send_signal = Linux + 424,
613 io_uring_setup = Linux + 425,
614 io_uring_enter = Linux + 426,
615 io_uring_register = Linux + 427,
616 open_tree = Linux + 428,
617 move_mount = Linux + 429,
618 fsopen = Linux + 430,
619 fsconfig = Linux + 431,
620 fsmount = Linux + 432,
621 fspick = Linux + 433,
622 pidfd_open = Linux + 434,
623 clone3 = Linux + 435,
624 close_range = Linux + 436,
625 openat2 = Linux + 437,
626 pidfd_getfd = Linux + 438,
627 faccessat2 = Linux + 439,
628 process_madvise = Linux + 440,
629 epoll_pwait2 = Linux + 441,
630 mount_setattr = Linux + 442,
631 landlock_create_ruleset = Linux + 444,
632 landlock_add_rule = Linux + 445,
633 landlock_restrict_self = Linux + 446,
634
635 _,
636};
637
638212pub const O = struct {
639213 pub const CREAT = 0o0400;
640214 pub const EXCL = 0o02000;
lib/std/os/linux/powerpc.zig+1-430
......@@ -1,6 +1,7 @@
11const std = @import("../../std.zig");
22const maxInt = std.math.maxInt;
33const linux = std.os.linux;
4const SYS = linux.SYS;
45const socklen_t = linux.socklen_t;
56const iovec = std.os.iovec;
67const iovec_const = std.os.iovec_const;
......@@ -138,436 +139,6 @@ pub fn restore_rt() callconv(.Naked) void {
138139 );
139140}
140141
141pub const SYS = enum(usize) {
142 restart_syscall = 0,
143 exit = 1,
144 fork = 2,
145 read = 3,
146 write = 4,
147 open = 5,
148 close = 6,
149 waitpid = 7,
150 creat = 8,
151 link = 9,
152 unlink = 10,
153 execve = 11,
154 chdir = 12,
155 time = 13,
156 mknod = 14,
157 chmod = 15,
158 lchown = 16,
159 @"break" = 17,
160 oldstat = 18,
161 lseek = 19,
162 getpid = 20,
163 mount = 21,
164 umount = 22,
165 setuid = 23,
166 getuid = 24,
167 stime = 25,
168 ptrace = 26,
169 alarm = 27,
170 oldfstat = 28,
171 pause = 29,
172 utime = 30,
173 stty = 31,
174 gtty = 32,
175 access = 33,
176 nice = 34,
177 ftime = 35,
178 sync = 36,
179 kill = 37,
180 rename = 38,
181 mkdir = 39,
182 rmdir = 40,
183 dup = 41,
184 pipe = 42,
185 times = 43,
186 prof = 44,
187 brk = 45,
188 setgid = 46,
189 getgid = 47,
190 signal = 48,
191 geteuid = 49,
192 getegid = 50,
193 acct = 51,
194 umount2 = 52,
195 lock = 53,
196 ioctl = 54,
197 fcntl = 55,
198 mpx = 56,
199 setpgid = 57,
200 ulimit = 58,
201 oldolduname = 59,
202 umask = 60,
203 chroot = 61,
204 ustat = 62,
205 dup2 = 63,
206 getppid = 64,
207 getpgrp = 65,
208 setsid = 66,
209 sigaction = 67,
210 sgetmask = 68,
211 ssetmask = 69,
212 setreuid = 70,
213 setregid = 71,
214 sigsuspend = 72,
215 sigpending = 73,
216 sethostname = 74,
217 setrlimit = 75,
218 getrlimit = 76,
219 getrusage = 77,
220 gettimeofday = 78,
221 settimeofday = 79,
222 getgroups = 80,
223 setgroups = 81,
224 select = 82,
225 symlink = 83,
226 oldlstat = 84,
227 readlink = 85,
228 uselib = 86,
229 swapon = 87,
230 reboot = 88,
231 readdir = 89,
232 mmap = 90,
233 munmap = 91,
234 truncate = 92,
235 ftruncate = 93,
236 fchmod = 94,
237 fchown = 95,
238 getpriority = 96,
239 setpriority = 97,
240 profil = 98,
241 statfs = 99,
242 fstatfs = 100,
243 ioperm = 101,
244 socketcall = 102,
245 syslog = 103,
246 setitimer = 104,
247 getitimer = 105,
248 stat = 106,
249 lstat = 107,
250 fstat = 108,
251 olduname = 109,
252 iopl = 110,
253 vhangup = 111,
254 idle = 112,
255 vm86 = 113,
256 wait4 = 114,
257 swapoff = 115,
258 sysinfo = 116,
259 ipc = 117,
260 fsync = 118,
261 sigreturn = 119,
262 clone = 120,
263 setdomainname = 121,
264 uname = 122,
265 modify_ldt = 123,
266 adjtimex = 124,
267 mprotect = 125,
268 sigprocmask = 126,
269 create_module = 127,
270 init_module = 128,
271 delete_module = 129,
272 get_kernel_syms = 130,
273 quotactl = 131,
274 getpgid = 132,
275 fchdir = 133,
276 bdflush = 134,
277 sysfs = 135,
278 personality = 136,
279 afs_syscall = 137,
280 setfsuid = 138,
281 setfsgid = 139,
282 _llseek = 140,
283 getdents = 141,
284 _newselect = 142,
285 flock = 143,
286 msync = 144,
287 readv = 145,
288 writev = 146,
289 getsid = 147,
290 fdatasync = 148,
291 _sysctl = 149,
292 mlock = 150,
293 munlock = 151,
294 mlockall = 152,
295 munlockall = 153,
296 sched_setparam = 154,
297 sched_getparam = 155,
298 sched_setscheduler = 156,
299 sched_getscheduler = 157,
300 sched_yield = 158,
301 sched_get_priority_max = 159,
302 sched_get_priority_min = 160,
303 sched_rr_get_interval = 161,
304 nanosleep = 162,
305 mremap = 163,
306 setresuid = 164,
307 getresuid = 165,
308 query_module = 166,
309 poll = 167,
310 nfsservctl = 168,
311 setresgid = 169,
312 getresgid = 170,
313 prctl = 171,
314 rt_sigreturn = 172,
315 rt_sigaction = 173,
316 rt_sigprocmask = 174,
317 rt_sigpending = 175,
318 rt_sigtimedwait = 176,
319 rt_sigqueueinfo = 177,
320 rt_sigsuspend = 178,
321 pread64 = 179,
322 pwrite64 = 180,
323 chown = 181,
324 getcwd = 182,
325 capget = 183,
326 capset = 184,
327 sigaltstack = 185,
328 sendfile = 186,
329 getpmsg = 187,
330 putpmsg = 188,
331 vfork = 189,
332 ugetrlimit = 190,
333 readahead = 191,
334 mmap2 = 192,
335 truncate64 = 193,
336 ftruncate64 = 194,
337 stat64 = 195,
338 lstat64 = 196,
339 fstat64 = 197,
340 pciconfig_read = 198,
341 pciconfig_write = 199,
342 pciconfig_iobase = 200,
343 multiplexer = 201,
344 getdents64 = 202,
345 pivot_root = 203,
346 fcntl64 = 204,
347 madvise = 205,
348 mincore = 206,
349 gettid = 207,
350 tkill = 208,
351 setxattr = 209,
352 lsetxattr = 210,
353 fsetxattr = 211,
354 getxattr = 212,
355 lgetxattr = 213,
356 fgetxattr = 214,
357 listxattr = 215,
358 llistxattr = 216,
359 flistxattr = 217,
360 removexattr = 218,
361 lremovexattr = 219,
362 fremovexattr = 220,
363 futex = 221,
364 sched_setaffinity = 222,
365 sched_getaffinity = 223,
366 tuxcall = 225,
367 sendfile64 = 226,
368 io_setup = 227,
369 io_destroy = 228,
370 io_getevents = 229,
371 io_submit = 230,
372 io_cancel = 231,
373 set_tid_address = 232,
374 fadvise64 = 233,
375 exit_group = 234,
376 lookup_dcookie = 235,
377 epoll_create = 236,
378 epoll_ctl = 237,
379 epoll_wait = 238,
380 remap_file_pages = 239,
381 timer_create = 240,
382 timer_settime = 241,
383 timer_gettime = 242,
384 timer_getoverrun = 243,
385 timer_delete = 244,
386 clock_settime = 245,
387 clock_gettime = 246,
388 clock_getres = 247,
389 clock_nanosleep = 248,
390 swapcontext = 249,
391 tgkill = 250,
392 utimes = 251,
393 statfs64 = 252,
394 fstatfs64 = 253,
395 fadvise64_64 = 254,
396 rtas = 255,
397 sys_debug_setcontext = 256,
398 migrate_pages = 258,
399 mbind = 259,
400 get_mempolicy = 260,
401 set_mempolicy = 261,
402 mq_open = 262,
403 mq_unlink = 263,
404 mq_timedsend = 264,
405 mq_timedreceive = 265,
406 mq_notify = 266,
407 mq_getsetattr = 267,
408 kexec_load = 268,
409 add_key = 269,
410 request_key = 270,
411 keyctl = 271,
412 waitid = 272,
413 ioprio_set = 273,
414 ioprio_get = 274,
415 inotify_init = 275,
416 inotify_add_watch = 276,
417 inotify_rm_watch = 277,
418 spu_run = 278,
419 spu_create = 279,
420 pselect6 = 280,
421 ppoll = 281,
422 unshare = 282,
423 splice = 283,
424 tee = 284,
425 vmsplice = 285,
426 openat = 286,
427 mkdirat = 287,
428 mknodat = 288,
429 fchownat = 289,
430 futimesat = 290,
431 fstatat64 = 291,
432 unlinkat = 292,
433 renameat = 293,
434 linkat = 294,
435 symlinkat = 295,
436 readlinkat = 296,
437 fchmodat = 297,
438 faccessat = 298,
439 get_robust_list = 299,
440 set_robust_list = 300,
441 move_pages = 301,
442 getcpu = 302,
443 epoll_pwait = 303,
444 utimensat = 304,
445 signalfd = 305,
446 timerfd_create = 306,
447 eventfd = 307,
448 sync_file_range = 308,
449 fallocate = 309,
450 subpage_prot = 310,
451 timerfd_settime = 311,
452 timerfd_gettime = 312,
453 signalfd4 = 313,
454 eventfd2 = 314,
455 epoll_create1 = 315,
456 dup3 = 316,
457 pipe2 = 317,
458 inotify_init1 = 318,
459 perf_event_open = 319,
460 preadv = 320,
461 pwritev = 321,
462 rt_tgsigqueueinfo = 322,
463 fanotify_init = 323,
464 fanotify_mark = 324,
465 prlimit64 = 325,
466 socket = 326,
467 bind = 327,
468 connect = 328,
469 listen = 329,
470 accept = 330,
471 getsockname = 331,
472 getpeername = 332,
473 socketpair = 333,
474 send = 334,
475 sendto = 335,
476 recv = 336,
477 recvfrom = 337,
478 shutdown = 338,
479 setsockopt = 339,
480 getsockopt = 340,
481 sendmsg = 341,
482 recvmsg = 342,
483 recvmmsg = 343,
484 accept4 = 344,
485 name_to_handle_at = 345,
486 open_by_handle_at = 346,
487 clock_adjtime = 347,
488 syncfs = 348,
489 sendmmsg = 349,
490 setns = 350,
491 process_vm_readv = 351,
492 process_vm_writev = 352,
493 finit_module = 353,
494 kcmp = 354,
495 sched_setattr = 355,
496 sched_getattr = 356,
497 renameat2 = 357,
498 seccomp = 358,
499 getrandom = 359,
500 memfd_create = 360,
501 bpf = 361,
502 execveat = 362,
503 switch_endian = 363,
504 userfaultfd = 364,
505 membarrier = 365,
506 mlock2 = 378,
507 copy_file_range = 379,
508 preadv2 = 380,
509 pwritev2 = 381,
510 kexec_file_load = 382,
511 statx = 383,
512 pkey_alloc = 384,
513 pkey_free = 385,
514 pkey_mprotect = 386,
515 rseq = 387,
516 io_pgetevents = 388,
517 semget = 393,
518 semctl = 394,
519 shmget = 395,
520 shmctl = 396,
521 shmat = 397,
522 shmdt = 398,
523 msgget = 399,
524 msgsnd = 400,
525 msgrcv = 401,
526 msgctl = 402,
527 clock_gettime64 = 403,
528 clock_settime64 = 404,
529 clock_adjtime64 = 405,
530 clock_getres_time64 = 406,
531 clock_nanosleep_time64 = 407,
532 timer_gettime64 = 408,
533 timer_settime64 = 409,
534 timerfd_gettime64 = 410,
535 timerfd_settime64 = 411,
536 utimensat_time64 = 412,
537 pselect6_time64 = 413,
538 ppoll_time64 = 414,
539 io_pgetevents_time64 = 416,
540 recvmmsg_time64 = 417,
541 mq_timedsend_time64 = 418,
542 mq_timedreceive_time64 = 419,
543 semtimedop_time64 = 420,
544 rt_sigtimedwait_time64 = 421,
545 futex_time64 = 422,
546 sched_rr_get_interval_time64 = 423,
547 pidfd_send_signal = 424,
548 io_uring_setup = 425,
549 io_uring_enter = 426,
550 io_uring_register = 427,
551 open_tree = 428,
552 move_mount = 429,
553 fsopen = 430,
554 fsconfig = 431,
555 fsmount = 432,
556 fspick = 433,
557 pidfd_open = 434,
558 clone3 = 435,
559 close_range = 436,
560 openat2 = 437,
561 pidfd_getfd = 438,
562 faccessat2 = 439,
563 process_madvise = 440,
564 epoll_pwait2 = 441,
565 mount_setattr = 442,
566 landlock_create_ruleset = 444,
567 landlock_add_rule = 445,
568 landlock_restrict_self = 446,
569};
570
571142pub const O = struct {
572143 pub const CREAT = 0o100;
573144 pub const EXCL = 0o200;
lib/std/os/linux/powerpc64.zig+1-404
......@@ -1,6 +1,7 @@
11const std = @import("../../std.zig");
22const maxInt = std.math.maxInt;
33const linux = std.os.linux;
4const SYS = linux.SYS;
45const socklen_t = linux.socklen_t;
56const iovec = std.os.iovec;
67const iovec_const = std.os.iovec_const;
......@@ -138,410 +139,6 @@ pub fn restore_rt() callconv(.Naked) void {
138139 );
139140}
140141
141pub const SYS = enum(usize) {
142 restart_syscall = 0,
143 exit = 1,
144 fork = 2,
145 read = 3,
146 write = 4,
147 open = 5,
148 close = 6,
149 waitpid = 7,
150 creat = 8,
151 link = 9,
152 unlink = 10,
153 execve = 11,
154 chdir = 12,
155 time = 13,
156 mknod = 14,
157 chmod = 15,
158 lchown = 16,
159 @"break" = 17,
160 oldstat = 18,
161 lseek = 19,
162 getpid = 20,
163 mount = 21,
164 umount = 22,
165 setuid = 23,
166 getuid = 24,
167 stime = 25,
168 ptrace = 26,
169 alarm = 27,
170 oldfstat = 28,
171 pause = 29,
172 utime = 30,
173 stty = 31,
174 gtty = 32,
175 access = 33,
176 nice = 34,
177 ftime = 35,
178 sync = 36,
179 kill = 37,
180 rename = 38,
181 mkdir = 39,
182 rmdir = 40,
183 dup = 41,
184 pipe = 42,
185 times = 43,
186 prof = 44,
187 brk = 45,
188 setgid = 46,
189 getgid = 47,
190 signal = 48,
191 geteuid = 49,
192 getegid = 50,
193 acct = 51,
194 umount2 = 52,
195 lock = 53,
196 ioctl = 54,
197 fcntl = 55,
198 mpx = 56,
199 setpgid = 57,
200 ulimit = 58,
201 oldolduname = 59,
202 umask = 60,
203 chroot = 61,
204 ustat = 62,
205 dup2 = 63,
206 getppid = 64,
207 getpgrp = 65,
208 setsid = 66,
209 sigaction = 67,
210 sgetmask = 68,
211 ssetmask = 69,
212 setreuid = 70,
213 setregid = 71,
214 sigsuspend = 72,
215 sigpending = 73,
216 sethostname = 74,
217 setrlimit = 75,
218 getrlimit = 76,
219 getrusage = 77,
220 gettimeofday = 78,
221 settimeofday = 79,
222 getgroups = 80,
223 setgroups = 81,
224 select = 82,
225 symlink = 83,
226 oldlstat = 84,
227 readlink = 85,
228 uselib = 86,
229 swapon = 87,
230 reboot = 88,
231 readdir = 89,
232 mmap = 90,
233 munmap = 91,
234 truncate = 92,
235 ftruncate = 93,
236 fchmod = 94,
237 fchown = 95,
238 getpriority = 96,
239 setpriority = 97,
240 profil = 98,
241 statfs = 99,
242 fstatfs = 100,
243 ioperm = 101,
244 socketcall = 102,
245 syslog = 103,
246 setitimer = 104,
247 getitimer = 105,
248 stat = 106,
249 lstat = 107,
250 fstat = 108,
251 olduname = 109,
252 iopl = 110,
253 vhangup = 111,
254 idle = 112,
255 vm86 = 113,
256 wait4 = 114,
257 swapoff = 115,
258 sysinfo = 116,
259 ipc = 117,
260 fsync = 118,
261 sigreturn = 119,
262 clone = 120,
263 setdomainname = 121,
264 uname = 122,
265 modify_ldt = 123,
266 adjtimex = 124,
267 mprotect = 125,
268 sigprocmask = 126,
269 create_module = 127,
270 init_module = 128,
271 delete_module = 129,
272 get_kernel_syms = 130,
273 quotactl = 131,
274 getpgid = 132,
275 fchdir = 133,
276 bdflush = 134,
277 sysfs = 135,
278 personality = 136,
279 afs_syscall = 137,
280 setfsuid = 138,
281 setfsgid = 139,
282 _llseek = 140,
283 getdents = 141,
284 _newselect = 142,
285 flock = 143,
286 msync = 144,
287 readv = 145,
288 writev = 146,
289 getsid = 147,
290 fdatasync = 148,
291 _sysctl = 149,
292 mlock = 150,
293 munlock = 151,
294 mlockall = 152,
295 munlockall = 153,
296 sched_setparam = 154,
297 sched_getparam = 155,
298 sched_setscheduler = 156,
299 sched_getscheduler = 157,
300 sched_yield = 158,
301 sched_get_priority_max = 159,
302 sched_get_priority_min = 160,
303 sched_rr_get_interval = 161,
304 nanosleep = 162,
305 mremap = 163,
306 setresuid = 164,
307 getresuid = 165,
308 query_module = 166,
309 poll = 167,
310 nfsservctl = 168,
311 setresgid = 169,
312 getresgid = 170,
313 prctl = 171,
314 rt_sigreturn = 172,
315 rt_sigaction = 173,
316 rt_sigprocmask = 174,
317 rt_sigpending = 175,
318 rt_sigtimedwait = 176,
319 rt_sigqueueinfo = 177,
320 rt_sigsuspend = 178,
321 pread64 = 179,
322 pwrite64 = 180,
323 chown = 181,
324 getcwd = 182,
325 capget = 183,
326 capset = 184,
327 sigaltstack = 185,
328 sendfile = 186,
329 getpmsg = 187,
330 putpmsg = 188,
331 vfork = 189,
332 ugetrlimit = 190,
333 readahead = 191,
334 pciconfig_read = 198,
335 pciconfig_write = 199,
336 pciconfig_iobase = 200,
337 multiplexer = 201,
338 getdents64 = 202,
339 pivot_root = 203,
340 madvise = 205,
341 mincore = 206,
342 gettid = 207,
343 tkill = 208,
344 setxattr = 209,
345 lsetxattr = 210,
346 fsetxattr = 211,
347 getxattr = 212,
348 lgetxattr = 213,
349 fgetxattr = 214,
350 listxattr = 215,
351 llistxattr = 216,
352 flistxattr = 217,
353 removexattr = 218,
354 lremovexattr = 219,
355 fremovexattr = 220,
356 futex = 221,
357 sched_setaffinity = 222,
358 sched_getaffinity = 223,
359 tuxcall = 225,
360 io_setup = 227,
361 io_destroy = 228,
362 io_getevents = 229,
363 io_submit = 230,
364 io_cancel = 231,
365 set_tid_address = 232,
366 fadvise64 = 233,
367 exit_group = 234,
368 lookup_dcookie = 235,
369 epoll_create = 236,
370 epoll_ctl = 237,
371 epoll_wait = 238,
372 remap_file_pages = 239,
373 timer_create = 240,
374 timer_settime = 241,
375 timer_gettime = 242,
376 timer_getoverrun = 243,
377 timer_delete = 244,
378 clock_settime = 245,
379 clock_gettime = 246,
380 clock_getres = 247,
381 clock_nanosleep = 248,
382 swapcontext = 249,
383 tgkill = 250,
384 utimes = 251,
385 statfs64 = 252,
386 fstatfs64 = 253,
387 rtas = 255,
388 sys_debug_setcontext = 256,
389 migrate_pages = 258,
390 mbind = 259,
391 get_mempolicy = 260,
392 set_mempolicy = 261,
393 mq_open = 262,
394 mq_unlink = 263,
395 mq_timedsend = 264,
396 mq_timedreceive = 265,
397 mq_notify = 266,
398 mq_getsetattr = 267,
399 kexec_load = 268,
400 add_key = 269,
401 request_key = 270,
402 keyctl = 271,
403 waitid = 272,
404 ioprio_set = 273,
405 ioprio_get = 274,
406 inotify_init = 275,
407 inotify_add_watch = 276,
408 inotify_rm_watch = 277,
409 spu_run = 278,
410 spu_create = 279,
411 pselect6 = 280,
412 ppoll = 281,
413 unshare = 282,
414 splice = 283,
415 tee = 284,
416 vmsplice = 285,
417 openat = 286,
418 mkdirat = 287,
419 mknodat = 288,
420 fchownat = 289,
421 futimesat = 290,
422 fstatat = 291,
423 unlinkat = 292,
424 renameat = 293,
425 linkat = 294,
426 symlinkat = 295,
427 readlinkat = 296,
428 fchmodat = 297,
429 faccessat = 298,
430 get_robust_list = 299,
431 set_robust_list = 300,
432 move_pages = 301,
433 getcpu = 302,
434 epoll_pwait = 303,
435 utimensat = 304,
436 signalfd = 305,
437 timerfd_create = 306,
438 eventfd = 307,
439 sync_file_range = 308,
440 fallocate = 309,
441 subpage_prot = 310,
442 timerfd_settime = 311,
443 timerfd_gettime = 312,
444 signalfd4 = 313,
445 eventfd2 = 314,
446 epoll_create1 = 315,
447 dup3 = 316,
448 pipe2 = 317,
449 inotify_init1 = 318,
450 perf_event_open = 319,
451 preadv = 320,
452 pwritev = 321,
453 rt_tgsigqueueinfo = 322,
454 fanotify_init = 323,
455 fanotify_mark = 324,
456 prlimit64 = 325,
457 socket = 326,
458 bind = 327,
459 connect = 328,
460 listen = 329,
461 accept = 330,
462 getsockname = 331,
463 getpeername = 332,
464 socketpair = 333,
465 send = 334,
466 sendto = 335,
467 recv = 336,
468 recvfrom = 337,
469 shutdown = 338,
470 setsockopt = 339,
471 getsockopt = 340,
472 sendmsg = 341,
473 recvmsg = 342,
474 recvmmsg = 343,
475 accept4 = 344,
476 name_to_handle_at = 345,
477 open_by_handle_at = 346,
478 clock_adjtime = 347,
479 syncfs = 348,
480 sendmmsg = 349,
481 setns = 350,
482 process_vm_readv = 351,
483 process_vm_writev = 352,
484 finit_module = 353,
485 kcmp = 354,
486 sched_setattr = 355,
487 sched_getattr = 356,
488 renameat2 = 357,
489 seccomp = 358,
490 getrandom = 359,
491 memfd_create = 360,
492 bpf = 361,
493 execveat = 362,
494 switch_endian = 363,
495 userfaultfd = 364,
496 membarrier = 365,
497 mlock2 = 378,
498 copy_file_range = 379,
499 preadv2 = 380,
500 pwritev2 = 381,
501 kexec_file_load = 382,
502 statx = 383,
503 pkey_alloc = 384,
504 pkey_free = 385,
505 pkey_mprotect = 386,
506 rseq = 387,
507 io_pgetevents = 388,
508 semtimedop = 392,
509 semget = 393,
510 semctl = 394,
511 shmget = 395,
512 shmctl = 396,
513 shmat = 397,
514 shmdt = 398,
515 msgget = 399,
516 msgsnd = 400,
517 msgrcv = 401,
518 msgctl = 402,
519 pidfd_send_signal = 424,
520 io_uring_setup = 425,
521 io_uring_enter = 426,
522 io_uring_register = 427,
523 open_tree = 428,
524 move_mount = 429,
525 fsopen = 430,
526 fsconfig = 431,
527 fsmount = 432,
528 fspick = 433,
529 pidfd_open = 434,
530 clone3 = 435,
531 close_range = 436,
532 openat2 = 437,
533 pidfd_getfd = 438,
534 faccessat2 = 439,
535 process_madvise = 440,
536 epoll_pwait2 = 441,
537 mount_setattr = 442,
538 landlock_create_ruleset = 444,
539 landlock_add_rule = 445,
540 landlock_restrict_self = 446,
541
542 _,
543};
544
545142pub const O = struct {
546143 pub const CREAT = 0o100;
547144 pub const EXCL = 0o200;
lib/std/os/linux/riscv64.zig+1-310
......@@ -2,6 +2,7 @@ const std = @import("../../std.zig");
22const iovec = std.os.iovec;
33const iovec_const = std.os.iovec_const;
44const linux = std.os.linux;
5const SYS = linux.SYS;
56const uid_t = std.os.linux.uid_t;
67const gid_t = std.os.linux.gid_t;
78const pid_t = std.os.linux.pid_t;
......@@ -106,316 +107,6 @@ pub fn restore_rt() callconv(.Naked) void {
106107 );
107108}
108109
109pub const SYS = enum(usize) {
110 pub const arch_specific_syscall = 244;
111
112 io_setup = 0,
113 io_destroy = 1,
114 io_submit = 2,
115 io_cancel = 3,
116 io_getevents = 4,
117 setxattr = 5,
118 lsetxattr = 6,
119 fsetxattr = 7,
120 getxattr = 8,
121 lgetxattr = 9,
122 fgetxattr = 10,
123 listxattr = 11,
124 llistxattr = 12,
125 flistxattr = 13,
126 removexattr = 14,
127 lremovexattr = 15,
128 fremovexattr = 16,
129 getcwd = 17,
130 lookup_dcookie = 18,
131 eventfd2 = 19,
132 epoll_create1 = 20,
133 epoll_ctl = 21,
134 epoll_pwait = 22,
135 dup = 23,
136 dup3 = 24,
137 fcntl = 25,
138 inotify_init1 = 26,
139 inotify_add_watch = 27,
140 inotify_rm_watch = 28,
141 ioctl = 29,
142 ioprio_set = 30,
143 ioprio_get = 31,
144 flock = 32,
145 mknodat = 33,
146 mkdirat = 34,
147 unlinkat = 35,
148 symlinkat = 36,
149 linkat = 37,
150 umount2 = 39,
151 mount = 40,
152 pivot_root = 41,
153 nfsservctl = 42,
154 statfs = 43,
155 fstatfs = 44,
156 truncate = 45,
157 ftruncate = 46,
158 fallocate = 47,
159 faccessat = 48,
160 chdir = 49,
161 fchdir = 50,
162 chroot = 51,
163 fchmod = 52,
164 fchmodat = 53,
165 fchownat = 54,
166 fchown = 55,
167 openat = 56,
168 close = 57,
169 vhangup = 58,
170 pipe2 = 59,
171 quotactl = 60,
172 getdents64 = 61,
173 lseek = 62,
174 read = 63,
175 write = 64,
176 readv = 65,
177 writev = 66,
178 pread64 = 67,
179 pwrite64 = 68,
180 preadv = 69,
181 pwritev = 70,
182 sendfile = 71,
183 pselect6 = 72,
184 ppoll = 73,
185 signalfd4 = 74,
186 vmsplice = 75,
187 splice = 76,
188 tee = 77,
189 readlinkat = 78,
190 fstatat = 79,
191 fstat = 80,
192 sync = 81,
193 fsync = 82,
194 fdatasync = 83,
195 sync_file_range = 84,
196 timerfd_create = 85,
197 timerfd_settime = 86,
198 timerfd_gettime = 87,
199 utimensat = 88,
200 acct = 89,
201 capget = 90,
202 capset = 91,
203 personality = 92,
204 exit = 93,
205 exit_group = 94,
206 waitid = 95,
207 set_tid_address = 96,
208 unshare = 97,
209 futex = 98,
210 set_robust_list = 99,
211 get_robust_list = 100,
212 nanosleep = 101,
213 getitimer = 102,
214 setitimer = 103,
215 kexec_load = 104,
216 init_module = 105,
217 delete_module = 106,
218 timer_create = 107,
219 timer_gettime = 108,
220 timer_getoverrun = 109,
221 timer_settime = 110,
222 timer_delete = 111,
223 clock_settime = 112,
224 clock_gettime = 113,
225 clock_getres = 114,
226 clock_nanosleep = 115,
227 syslog = 116,
228 ptrace = 117,
229 sched_setparam = 118,
230 sched_setscheduler = 119,
231 sched_getscheduler = 120,
232 sched_getparam = 121,
233 sched_setaffinity = 122,
234 sched_getaffinity = 123,
235 sched_yield = 124,
236 sched_get_priority_max = 125,
237 sched_get_priority_min = 126,
238 sched_rr_get_interval = 127,
239 restart_syscall = 128,
240 kill = 129,
241 tkill = 130,
242 tgkill = 131,
243 sigaltstack = 132,
244 rt_sigsuspend = 133,
245 rt_sigaction = 134,
246 rt_sigprocmask = 135,
247 rt_sigpending = 136,
248 rt_sigtimedwait = 137,
249 rt_sigqueueinfo = 138,
250 rt_sigreturn = 139,
251 setpriority = 140,
252 getpriority = 141,
253 reboot = 142,
254 setregid = 143,
255 setgid = 144,
256 setreuid = 145,
257 setuid = 146,
258 setresuid = 147,
259 getresuid = 148,
260 setresgid = 149,
261 getresgid = 150,
262 setfsuid = 151,
263 setfsgid = 152,
264 times = 153,
265 setpgid = 154,
266 getpgid = 155,
267 getsid = 156,
268 setsid = 157,
269 getgroups = 158,
270 setgroups = 159,
271 uname = 160,
272 sethostname = 161,
273 setdomainname = 162,
274 getrlimit = 163,
275 setrlimit = 164,
276 getrusage = 165,
277 umask = 166,
278 prctl = 167,
279 getcpu = 168,
280 gettimeofday = 169,
281 settimeofday = 170,
282 adjtimex = 171,
283 getpid = 172,
284 getppid = 173,
285 getuid = 174,
286 geteuid = 175,
287 getgid = 176,
288 getegid = 177,
289 gettid = 178,
290 sysinfo = 179,
291 mq_open = 180,
292 mq_unlink = 181,
293 mq_timedsend = 182,
294 mq_timedreceive = 183,
295 mq_notify = 184,
296 mq_getsetattr = 185,
297 msgget = 186,
298 msgctl = 187,
299 msgrcv = 188,
300 msgsnd = 189,
301 semget = 190,
302 semctl = 191,
303 semtimedop = 192,
304 semop = 193,
305 shmget = 194,
306 shmctl = 195,
307 shmat = 196,
308 shmdt = 197,
309 socket = 198,
310 socketpair = 199,
311 bind = 200,
312 listen = 201,
313 accept = 202,
314 connect = 203,
315 getsockname = 204,
316 getpeername = 205,
317 sendto = 206,
318 recvfrom = 207,
319 setsockopt = 208,
320 getsockopt = 209,
321 shutdown = 210,
322 sendmsg = 211,
323 recvmsg = 212,
324 readahead = 213,
325 brk = 214,
326 munmap = 215,
327 mremap = 216,
328 add_key = 217,
329 request_key = 218,
330 keyctl = 219,
331 clone = 220,
332 execve = 221,
333 mmap = 222,
334 fadvise64 = 223,
335 swapon = 224,
336 swapoff = 225,
337 mprotect = 226,
338 msync = 227,
339 mlock = 228,
340 munlock = 229,
341 mlockall = 230,
342 munlockall = 231,
343 mincore = 232,
344 madvise = 233,
345 remap_file_pages = 234,
346 mbind = 235,
347 get_mempolicy = 236,
348 set_mempolicy = 237,
349 migrate_pages = 238,
350 move_pages = 239,
351 rt_tgsigqueueinfo = 240,
352 perf_event_open = 241,
353 accept4 = 242,
354 recvmmsg = 243,
355
356 riscv_flush_icache = arch_specific_syscall + 15,
357
358 wait4 = 260,
359 prlimit64 = 261,
360 fanotify_init = 262,
361 fanotify_mark = 263,
362 name_to_handle_at = 264,
363 open_by_handle_at = 265,
364 clock_adjtime = 266,
365 syncfs = 267,
366 setns = 268,
367 sendmmsg = 269,
368 process_vm_readv = 270,
369 process_vm_writev = 271,
370 kcmp = 272,
371 finit_module = 273,
372 sched_setattr = 274,
373 sched_getattr = 275,
374 renameat2 = 276,
375 seccomp = 277,
376 getrandom = 278,
377 memfd_create = 279,
378 bpf = 280,
379 execveat = 281,
380 userfaultfd = 282,
381 membarrier = 283,
382 mlock2 = 284,
383 copy_file_range = 285,
384 preadv2 = 286,
385 pwritev2 = 287,
386 pkey_mprotect = 288,
387 pkey_alloc = 289,
388 pkey_free = 290,
389 statx = 291,
390 io_pgetevents = 292,
391 rseq = 293,
392 kexec_file_load = 294,
393 pidfd_send_signal = 424,
394 io_uring_setup = 425,
395 io_uring_enter = 426,
396 io_uring_register = 427,
397 open_tree = 428,
398 move_mount = 429,
399 fsopen = 430,
400 fsconfig = 431,
401 fsmount = 432,
402 fspick = 433,
403 pidfd_open = 434,
404 clone3 = 435,
405 close_range = 436,
406 openat2 = 437,
407 pidfd_getfd = 438,
408 faccessat2 = 439,
409 process_madvise = 440,
410 epoll_pwait2 = 441,
411 mount_setattr = 442,
412 landlock_create_ruleset = 444,
413 landlock_add_rule = 445,
414 landlock_restrict_self = 446,
415
416 _,
417};
418
419110pub const O = struct {
420111 pub const CREAT = 0o100;
421112 pub const EXCL = 0o200;
lib/std/os/linux/sparc64.zig+1-384
......@@ -7,6 +7,7 @@ const stack_t = linux.stack_t;
77const sigset_t = linux.sigset_t;
88
99const linux = std.os.linux;
10const SYS = linux.SYS;
1011const sockaddr = linux.sockaddr;
1112const socklen_t = linux.socklen_t;
1213const iovec = std.os.iovec;
......@@ -192,390 +193,6 @@ pub fn restore_rt() callconv(.C) void {
192193 );
193194}
194195
195pub const SYS = enum(usize) {
196 restart_syscall = 0,
197 exit = 1,
198 fork = 2,
199 read = 3,
200 write = 4,
201 open = 5,
202 close = 6,
203 wait4 = 7,
204 creat = 8,
205 link = 9,
206 unlink = 10,
207 execv = 11,
208 chdir = 12,
209 chown = 13,
210 mknod = 14,
211 chmod = 15,
212 lchown = 16,
213 brk = 17,
214 perfctr = 18,
215 lseek = 19,
216 getpid = 20,
217 capget = 21,
218 capset = 22,
219 setuid = 23,
220 getuid = 24,
221 vmsplice = 25,
222 ptrace = 26,
223 alarm = 27,
224 sigaltstack = 28,
225 pause = 29,
226 utime = 30,
227 access = 33,
228 nice = 34,
229 sync = 36,
230 kill = 37,
231 stat = 38,
232 sendfile = 39,
233 lstat = 40,
234 dup = 41,
235 pipe = 42,
236 times = 43,
237 umount2 = 45,
238 setgid = 46,
239 getgid = 47,
240 signal = 48,
241 geteuid = 49,
242 getegid = 50,
243 acct = 51,
244 memory_ordering = 52,
245 ioctl = 54,
246 reboot = 55,
247 symlink = 57,
248 readlink = 58,
249 execve = 59,
250 umask = 60,
251 chroot = 61,
252 fstat = 62,
253 fstat64 = 63,
254 getpagesize = 64,
255 msync = 65,
256 vfork = 66,
257 pread64 = 67,
258 pwrite64 = 68,
259 mmap = 71,
260 munmap = 73,
261 mprotect = 74,
262 madvise = 75,
263 vhangup = 76,
264 mincore = 78,
265 getgroups = 79,
266 setgroups = 80,
267 getpgrp = 81,
268 setitimer = 83,
269 swapon = 85,
270 getitimer = 86,
271 sethostname = 88,
272 dup2 = 90,
273 fcntl = 92,
274 select = 93,
275 fsync = 95,
276 setpriority = 96,
277 socket = 97,
278 connect = 98,
279 accept = 99,
280 getpriority = 100,
281 rt_sigreturn = 101,
282 rt_sigaction = 102,
283 rt_sigprocmask = 103,
284 rt_sigpending = 104,
285 rt_sigtimedwait = 105,
286 rt_sigqueueinfo = 106,
287 rt_sigsuspend = 107,
288 setresuid = 108,
289 getresuid = 109,
290 setresgid = 110,
291 getresgid = 111,
292 recvmsg = 113,
293 sendmsg = 114,
294 gettimeofday = 116,
295 getrusage = 117,
296 getsockopt = 118,
297 getcwd = 119,
298 readv = 120,
299 writev = 121,
300 settimeofday = 122,
301 fchown = 123,
302 fchmod = 124,
303 recvfrom = 125,
304 setreuid = 126,
305 setregid = 127,
306 rename = 128,
307 truncate = 129,
308 ftruncate = 130,
309 flock = 131,
310 lstat64 = 132,
311 sendto = 133,
312 shutdown = 134,
313 socketpair = 135,
314 mkdir = 136,
315 rmdir = 137,
316 utimes = 138,
317 stat64 = 139,
318 sendfile64 = 140,
319 getpeername = 141,
320 futex = 142,
321 gettid = 143,
322 getrlimit = 144,
323 setrlimit = 145,
324 pivot_root = 146,
325 prctl = 147,
326 pciconfig_read = 148,
327 pciconfig_write = 149,
328 getsockname = 150,
329 inotify_init = 151,
330 inotify_add_watch = 152,
331 poll = 153,
332 getdents64 = 154,
333 inotify_rm_watch = 156,
334 statfs = 157,
335 fstatfs = 158,
336 umount = 159,
337 sched_set_affinity = 160,
338 sched_get_affinity = 161,
339 getdomainname = 162,
340 setdomainname = 163,
341 utrap_install = 164,
342 quotactl = 165,
343 set_tid_address = 166,
344 mount = 167,
345 ustat = 168,
346 setxattr = 169,
347 lsetxattr = 170,
348 fsetxattr = 171,
349 getxattr = 172,
350 lgetxattr = 173,
351 getdents = 174,
352 setsid = 175,
353 fchdir = 176,
354 fgetxattr = 177,
355 listxattr = 178,
356 llistxattr = 179,
357 flistxattr = 180,
358 removexattr = 181,
359 lremovexattr = 182,
360 sigpending = 183,
361 query_module = 184,
362 setpgid = 185,
363 fremovexattr = 186,
364 tkill = 187,
365 exit_group = 188,
366 uname = 189,
367 init_module = 190,
368 personality = 191,
369 remap_file_pages = 192,
370 epoll_create = 193,
371 epoll_ctl = 194,
372 epoll_wait = 195,
373 ioprio_set = 196,
374 getppid = 197,
375 sigaction = 198,
376 sgetmask = 199,
377 ssetmask = 200,
378 sigsuspend = 201,
379 oldlstat = 202,
380 uselib = 203,
381 readdir = 204,
382 readahead = 205,
383 socketcall = 206,
384 syslog = 207,
385 lookup_dcookie = 208,
386 fadvise64 = 209,
387 fadvise64_64 = 210,
388 tgkill = 211,
389 waitpid = 212,
390 swapoff = 213,
391 sysinfo = 214,
392 ipc = 215,
393 sigreturn = 216,
394 clone = 217,
395 ioprio_get = 218,
396 adjtimex = 219,
397 sigprocmask = 220,
398 create_module = 221,
399 delete_module = 222,
400 get_kernel_syms = 223,
401 getpgid = 224,
402 bdflush = 225,
403 sysfs = 226,
404 afs_syscall = 227,
405 setfsuid = 228,
406 setfsgid = 229,
407 _newselect = 230,
408 splice = 232,
409 stime = 233,
410 statfs64 = 234,
411 fstatfs64 = 235,
412 _llseek = 236,
413 mlock = 237,
414 munlock = 238,
415 mlockall = 239,
416 munlockall = 240,
417 sched_setparam = 241,
418 sched_getparam = 242,
419 sched_setscheduler = 243,
420 sched_getscheduler = 244,
421 sched_yield = 245,
422 sched_get_priority_max = 246,
423 sched_get_priority_min = 247,
424 sched_rr_get_interval = 248,
425 nanosleep = 249,
426 mremap = 250,
427 _sysctl = 251,
428 getsid = 252,
429 fdatasync = 253,
430 nfsservctl = 254,
431 sync_file_range = 255,
432 clock_settime = 256,
433 clock_gettime = 257,
434 clock_getres = 258,
435 clock_nanosleep = 259,
436 sched_getaffinity = 260,
437 sched_setaffinity = 261,
438 timer_settime = 262,
439 timer_gettime = 263,
440 timer_getoverrun = 264,
441 timer_delete = 265,
442 timer_create = 266,
443 vserver = 267,
444 io_setup = 268,
445 io_destroy = 269,
446 io_submit = 270,
447 io_cancel = 271,
448 io_getevents = 272,
449 mq_open = 273,
450 mq_unlink = 274,
451 mq_timedsend = 275,
452 mq_timedreceive = 276,
453 mq_notify = 277,
454 mq_getsetattr = 278,
455 waitid = 279,
456 tee = 280,
457 add_key = 281,
458 request_key = 282,
459 keyctl = 283,
460 openat = 284,
461 mkdirat = 285,
462 mknodat = 286,
463 fchownat = 287,
464 futimesat = 288,
465 fstatat64 = 289,
466 unlinkat = 290,
467 renameat = 291,
468 linkat = 292,
469 symlinkat = 293,
470 readlinkat = 294,
471 fchmodat = 295,
472 faccessat = 296,
473 pselect6 = 297,
474 ppoll = 298,
475 unshare = 299,
476 set_robust_list = 300,
477 get_robust_list = 301,
478 migrate_pages = 302,
479 mbind = 303,
480 get_mempolicy = 304,
481 set_mempolicy = 305,
482 kexec_load = 306,
483 move_pages = 307,
484 getcpu = 308,
485 epoll_pwait = 309,
486 utimensat = 310,
487 signalfd = 311,
488 timerfd_create = 312,
489 eventfd = 313,
490 fallocate = 314,
491 timerfd_settime = 315,
492 timerfd_gettime = 316,
493 signalfd4 = 317,
494 eventfd2 = 318,
495 epoll_create1 = 319,
496 dup3 = 320,
497 pipe2 = 321,
498 inotify_init1 = 322,
499 accept4 = 323,
500 preadv = 324,
501 pwritev = 325,
502 rt_tgsigqueueinfo = 326,
503 perf_event_open = 327,
504 recvmmsg = 328,
505 fanotify_init = 329,
506 fanotify_mark = 330,
507 prlimit64 = 331,
508 name_to_handle_at = 332,
509 open_by_handle_at = 333,
510 clock_adjtime = 334,
511 syncfs = 335,
512 sendmmsg = 336,
513 setns = 337,
514 process_vm_readv = 338,
515 process_vm_writev = 339,
516 kern_features = 340,
517 kcmp = 341,
518 finit_module = 342,
519 sched_setattr = 343,
520 sched_getattr = 344,
521 renameat2 = 345,
522 seccomp = 346,
523 getrandom = 347,
524 memfd_create = 348,
525 bpf = 349,
526 execveat = 350,
527 membarrier = 351,
528 userfaultfd = 352,
529 bind = 353,
530 listen = 354,
531 setsockopt = 355,
532 mlock2 = 356,
533 copy_file_range = 357,
534 preadv2 = 358,
535 pwritev2 = 359,
536 statx = 360,
537 io_pgetevents = 361,
538 pkey_mprotect = 362,
539 pkey_alloc = 363,
540 pkey_free = 364,
541 rseq = 365,
542 semtimedop = 392,
543 semget = 393,
544 semctl = 394,
545 shmget = 395,
546 shmctl = 396,
547 shmat = 397,
548 shmdt = 398,
549 msgget = 399,
550 msgsnd = 400,
551 msgrcv = 401,
552 msgctl = 402,
553 pidfd_send_signal = 424,
554 io_uring_setup = 425,
555 io_uring_enter = 426,
556 io_uring_register = 427,
557 open_tree = 428,
558 move_mount = 429,
559 fsopen = 430,
560 fsconfig = 431,
561 fsmount = 432,
562 fspick = 433,
563 pidfd_open = 434,
564 clone3 = 435,
565 close_range = 436,
566 openat2 = 437,
567 pidfd_getfd = 438,
568 faccessat2 = 439,
569 process_madvise = 440,
570 epoll_pwait2 = 441,
571 mount_setattr = 442,
572 landlock_create_ruleset = 444,
573 landlock_add_rule = 445,
574 landlock_restrict_self = 446,
575
576 _,
577};
578
579196pub const O = struct {
580197 pub const CREAT = 0x200;
581198 pub const EXCL = 0x800;
lib/std/os/linux/syscalls.zig created+3493
......@@ -0,0 +1,3493 @@
1// This file is automatically generated.
2// See tools/generate_linux_syscalls.zig for more info.
3
4pub const X86 = enum(usize) {
5 restart_syscall = 0,
6 exit = 1,
7 fork = 2,
8 read = 3,
9 write = 4,
10 open = 5,
11 close = 6,
12 waitpid = 7,
13 creat = 8,
14 link = 9,
15 unlink = 10,
16 execve = 11,
17 chdir = 12,
18 time = 13,
19 mknod = 14,
20 chmod = 15,
21 lchown = 16,
22 @"break" = 17,
23 oldstat = 18,
24 lseek = 19,
25 getpid = 20,
26 mount = 21,
27 umount = 22,
28 setuid = 23,
29 getuid = 24,
30 stime = 25,
31 ptrace = 26,
32 alarm = 27,
33 oldfstat = 28,
34 pause = 29,
35 utime = 30,
36 stty = 31,
37 gtty = 32,
38 access = 33,
39 nice = 34,
40 ftime = 35,
41 sync = 36,
42 kill = 37,
43 rename = 38,
44 mkdir = 39,
45 rmdir = 40,
46 dup = 41,
47 pipe = 42,
48 times = 43,
49 prof = 44,
50 brk = 45,
51 setgid = 46,
52 getgid = 47,
53 signal = 48,
54 geteuid = 49,
55 getegid = 50,
56 acct = 51,
57 umount2 = 52,
58 lock = 53,
59 ioctl = 54,
60 fcntl = 55,
61 mpx = 56,
62 setpgid = 57,
63 ulimit = 58,
64 oldolduname = 59,
65 umask = 60,
66 chroot = 61,
67 ustat = 62,
68 dup2 = 63,
69 getppid = 64,
70 getpgrp = 65,
71 setsid = 66,
72 sigaction = 67,
73 sgetmask = 68,
74 ssetmask = 69,
75 setreuid = 70,
76 setregid = 71,
77 sigsuspend = 72,
78 sigpending = 73,
79 sethostname = 74,
80 setrlimit = 75,
81 getrlimit = 76,
82 getrusage = 77,
83 gettimeofday = 78,
84 settimeofday = 79,
85 getgroups = 80,
86 setgroups = 81,
87 select = 82,
88 symlink = 83,
89 oldlstat = 84,
90 readlink = 85,
91 uselib = 86,
92 swapon = 87,
93 reboot = 88,
94 readdir = 89,
95 mmap = 90,
96 munmap = 91,
97 truncate = 92,
98 ftruncate = 93,
99 fchmod = 94,
100 fchown = 95,
101 getpriority = 96,
102 setpriority = 97,
103 profil = 98,
104 statfs = 99,
105 fstatfs = 100,
106 ioperm = 101,
107 socketcall = 102,
108 syslog = 103,
109 setitimer = 104,
110 getitimer = 105,
111 stat = 106,
112 lstat = 107,
113 fstat = 108,
114 olduname = 109,
115 iopl = 110,
116 vhangup = 111,
117 idle = 112,
118 vm86old = 113,
119 wait4 = 114,
120 swapoff = 115,
121 sysinfo = 116,
122 ipc = 117,
123 fsync = 118,
124 sigreturn = 119,
125 clone = 120,
126 setdomainname = 121,
127 uname = 122,
128 modify_ldt = 123,
129 adjtimex = 124,
130 mprotect = 125,
131 sigprocmask = 126,
132 create_module = 127,
133 init_module = 128,
134 delete_module = 129,
135 get_kernel_syms = 130,
136 quotactl = 131,
137 getpgid = 132,
138 fchdir = 133,
139 bdflush = 134,
140 sysfs = 135,
141 personality = 136,
142 afs_syscall = 137,
143 setfsuid = 138,
144 setfsgid = 139,
145 _llseek = 140,
146 getdents = 141,
147 _newselect = 142,
148 flock = 143,
149 msync = 144,
150 readv = 145,
151 writev = 146,
152 getsid = 147,
153 fdatasync = 148,
154 _sysctl = 149,
155 mlock = 150,
156 munlock = 151,
157 mlockall = 152,
158 munlockall = 153,
159 sched_setparam = 154,
160 sched_getparam = 155,
161 sched_setscheduler = 156,
162 sched_getscheduler = 157,
163 sched_yield = 158,
164 sched_get_priority_max = 159,
165 sched_get_priority_min = 160,
166 sched_rr_get_interval = 161,
167 nanosleep = 162,
168 mremap = 163,
169 setresuid = 164,
170 getresuid = 165,
171 vm86 = 166,
172 query_module = 167,
173 poll = 168,
174 nfsservctl = 169,
175 setresgid = 170,
176 getresgid = 171,
177 prctl = 172,
178 rt_sigreturn = 173,
179 rt_sigaction = 174,
180 rt_sigprocmask = 175,
181 rt_sigpending = 176,
182 rt_sigtimedwait = 177,
183 rt_sigqueueinfo = 178,
184 rt_sigsuspend = 179,
185 pread64 = 180,
186 pwrite64 = 181,
187 chown = 182,
188 getcwd = 183,
189 capget = 184,
190 capset = 185,
191 sigaltstack = 186,
192 sendfile = 187,
193 getpmsg = 188,
194 putpmsg = 189,
195 vfork = 190,
196 ugetrlimit = 191,
197 mmap2 = 192,
198 truncate64 = 193,
199 ftruncate64 = 194,
200 stat64 = 195,
201 lstat64 = 196,
202 fstat64 = 197,
203 lchown32 = 198,
204 getuid32 = 199,
205 getgid32 = 200,
206 geteuid32 = 201,
207 getegid32 = 202,
208 setreuid32 = 203,
209 setregid32 = 204,
210 getgroups32 = 205,
211 setgroups32 = 206,
212 fchown32 = 207,
213 setresuid32 = 208,
214 getresuid32 = 209,
215 setresgid32 = 210,
216 getresgid32 = 211,
217 chown32 = 212,
218 setuid32 = 213,
219 setgid32 = 214,
220 setfsuid32 = 215,
221 setfsgid32 = 216,
222 pivot_root = 217,
223 mincore = 218,
224 madvise = 219,
225 getdents64 = 220,
226 fcntl64 = 221,
227 gettid = 224,
228 readahead = 225,
229 setxattr = 226,
230 lsetxattr = 227,
231 fsetxattr = 228,
232 getxattr = 229,
233 lgetxattr = 230,
234 fgetxattr = 231,
235 listxattr = 232,
236 llistxattr = 233,
237 flistxattr = 234,
238 removexattr = 235,
239 lremovexattr = 236,
240 fremovexattr = 237,
241 tkill = 238,
242 sendfile64 = 239,
243 futex = 240,
244 sched_setaffinity = 241,
245 sched_getaffinity = 242,
246 set_thread_area = 243,
247 get_thread_area = 244,
248 io_setup = 245,
249 io_destroy = 246,
250 io_getevents = 247,
251 io_submit = 248,
252 io_cancel = 249,
253 fadvise64 = 250,
254 exit_group = 252,
255 lookup_dcookie = 253,
256 epoll_create = 254,
257 epoll_ctl = 255,
258 epoll_wait = 256,
259 remap_file_pages = 257,
260 set_tid_address = 258,
261 timer_create = 259,
262 timer_settime = 260,
263 timer_gettime = 261,
264 timer_getoverrun = 262,
265 timer_delete = 263,
266 clock_settime = 264,
267 clock_gettime = 265,
268 clock_getres = 266,
269 clock_nanosleep = 267,
270 statfs64 = 268,
271 fstatfs64 = 269,
272 tgkill = 270,
273 utimes = 271,
274 fadvise64_64 = 272,
275 vserver = 273,
276 mbind = 274,
277 get_mempolicy = 275,
278 set_mempolicy = 276,
279 mq_open = 277,
280 mq_unlink = 278,
281 mq_timedsend = 279,
282 mq_timedreceive = 280,
283 mq_notify = 281,
284 mq_getsetattr = 282,
285 kexec_load = 283,
286 waitid = 284,
287 add_key = 286,
288 request_key = 287,
289 keyctl = 288,
290 ioprio_set = 289,
291 ioprio_get = 290,
292 inotify_init = 291,
293 inotify_add_watch = 292,
294 inotify_rm_watch = 293,
295 migrate_pages = 294,
296 openat = 295,
297 mkdirat = 296,
298 mknodat = 297,
299 fchownat = 298,
300 futimesat = 299,
301 fstatat64 = 300,
302 unlinkat = 301,
303 renameat = 302,
304 linkat = 303,
305 symlinkat = 304,
306 readlinkat = 305,
307 fchmodat = 306,
308 faccessat = 307,
309 pselect6 = 308,
310 ppoll = 309,
311 unshare = 310,
312 set_robust_list = 311,
313 get_robust_list = 312,
314 splice = 313,
315 sync_file_range = 314,
316 tee = 315,
317 vmsplice = 316,
318 move_pages = 317,
319 getcpu = 318,
320 epoll_pwait = 319,
321 utimensat = 320,
322 signalfd = 321,
323 timerfd_create = 322,
324 eventfd = 323,
325 fallocate = 324,
326 timerfd_settime = 325,
327 timerfd_gettime = 326,
328 signalfd4 = 327,
329 eventfd2 = 328,
330 epoll_create1 = 329,
331 dup3 = 330,
332 pipe2 = 331,
333 inotify_init1 = 332,
334 preadv = 333,
335 pwritev = 334,
336 rt_tgsigqueueinfo = 335,
337 perf_event_open = 336,
338 recvmmsg = 337,
339 fanotify_init = 338,
340 fanotify_mark = 339,
341 prlimit64 = 340,
342 name_to_handle_at = 341,
343 open_by_handle_at = 342,
344 clock_adjtime = 343,
345 syncfs = 344,
346 sendmmsg = 345,
347 setns = 346,
348 process_vm_readv = 347,
349 process_vm_writev = 348,
350 kcmp = 349,
351 finit_module = 350,
352 sched_setattr = 351,
353 sched_getattr = 352,
354 renameat2 = 353,
355 seccomp = 354,
356 getrandom = 355,
357 memfd_create = 356,
358 bpf = 357,
359 execveat = 358,
360 socket = 359,
361 socketpair = 360,
362 bind = 361,
363 connect = 362,
364 listen = 363,
365 accept4 = 364,
366 getsockopt = 365,
367 setsockopt = 366,
368 getsockname = 367,
369 getpeername = 368,
370 sendto = 369,
371 sendmsg = 370,
372 recvfrom = 371,
373 recvmsg = 372,
374 shutdown = 373,
375 userfaultfd = 374,
376 membarrier = 375,
377 mlock2 = 376,
378 copy_file_range = 377,
379 preadv2 = 378,
380 pwritev2 = 379,
381 pkey_mprotect = 380,
382 pkey_alloc = 381,
383 pkey_free = 382,
384 statx = 383,
385 arch_prctl = 384,
386 io_pgetevents = 385,
387 rseq = 386,
388 semget = 393,
389 semctl = 394,
390 shmget = 395,
391 shmctl = 396,
392 shmat = 397,
393 shmdt = 398,
394 msgget = 399,
395 msgsnd = 400,
396 msgrcv = 401,
397 msgctl = 402,
398 clock_gettime64 = 403,
399 clock_settime64 = 404,
400 clock_adjtime64 = 405,
401 clock_getres_time64 = 406,
402 clock_nanosleep_time64 = 407,
403 timer_gettime64 = 408,
404 timer_settime64 = 409,
405 timerfd_gettime64 = 410,
406 timerfd_settime64 = 411,
407 utimensat_time64 = 412,
408 pselect6_time64 = 413,
409 ppoll_time64 = 414,
410 io_pgetevents_time64 = 416,
411 recvmmsg_time64 = 417,
412 mq_timedsend_time64 = 418,
413 mq_timedreceive_time64 = 419,
414 semtimedop_time64 = 420,
415 rt_sigtimedwait_time64 = 421,
416 futex_time64 = 422,
417 sched_rr_get_interval_time64 = 423,
418 pidfd_send_signal = 424,
419 io_uring_setup = 425,
420 io_uring_enter = 426,
421 io_uring_register = 427,
422 open_tree = 428,
423 move_mount = 429,
424 fsopen = 430,
425 fsconfig = 431,
426 fsmount = 432,
427 fspick = 433,
428 pidfd_open = 434,
429 clone3 = 435,
430 close_range = 436,
431 openat2 = 437,
432 pidfd_getfd = 438,
433 faccessat2 = 439,
434 process_madvise = 440,
435 epoll_pwait2 = 441,
436 mount_setattr = 442,
437 quotactl_fd = 443,
438 landlock_create_ruleset = 444,
439 landlock_add_rule = 445,
440 landlock_restrict_self = 446,
441 memfd_secret = 447,
442 process_mrelease = 448,
443 futex_waitv = 449,
444 set_mempolicy_home_node = 450,
445};
446
447pub const X64 = enum(usize) {
448 read = 0,
449 write = 1,
450 open = 2,
451 close = 3,
452 stat = 4,
453 fstat = 5,
454 lstat = 6,
455 poll = 7,
456 lseek = 8,
457 mmap = 9,
458 mprotect = 10,
459 munmap = 11,
460 brk = 12,
461 rt_sigaction = 13,
462 rt_sigprocmask = 14,
463 rt_sigreturn = 15,
464 ioctl = 16,
465 pread64 = 17,
466 pwrite64 = 18,
467 readv = 19,
468 writev = 20,
469 access = 21,
470 pipe = 22,
471 select = 23,
472 sched_yield = 24,
473 mremap = 25,
474 msync = 26,
475 mincore = 27,
476 madvise = 28,
477 shmget = 29,
478 shmat = 30,
479 shmctl = 31,
480 dup = 32,
481 dup2 = 33,
482 pause = 34,
483 nanosleep = 35,
484 getitimer = 36,
485 alarm = 37,
486 setitimer = 38,
487 getpid = 39,
488 sendfile = 40,
489 socket = 41,
490 connect = 42,
491 accept = 43,
492 sendto = 44,
493 recvfrom = 45,
494 sendmsg = 46,
495 recvmsg = 47,
496 shutdown = 48,
497 bind = 49,
498 listen = 50,
499 getsockname = 51,
500 getpeername = 52,
501 socketpair = 53,
502 setsockopt = 54,
503 getsockopt = 55,
504 clone = 56,
505 fork = 57,
506 vfork = 58,
507 execve = 59,
508 exit = 60,
509 wait4 = 61,
510 kill = 62,
511 uname = 63,
512 semget = 64,
513 semop = 65,
514 semctl = 66,
515 shmdt = 67,
516 msgget = 68,
517 msgsnd = 69,
518 msgrcv = 70,
519 msgctl = 71,
520 fcntl = 72,
521 flock = 73,
522 fsync = 74,
523 fdatasync = 75,
524 truncate = 76,
525 ftruncate = 77,
526 getdents = 78,
527 getcwd = 79,
528 chdir = 80,
529 fchdir = 81,
530 rename = 82,
531 mkdir = 83,
532 rmdir = 84,
533 creat = 85,
534 link = 86,
535 unlink = 87,
536 symlink = 88,
537 readlink = 89,
538 chmod = 90,
539 fchmod = 91,
540 chown = 92,
541 fchown = 93,
542 lchown = 94,
543 umask = 95,
544 gettimeofday = 96,
545 getrlimit = 97,
546 getrusage = 98,
547 sysinfo = 99,
548 times = 100,
549 ptrace = 101,
550 getuid = 102,
551 syslog = 103,
552 getgid = 104,
553 setuid = 105,
554 setgid = 106,
555 geteuid = 107,
556 getegid = 108,
557 setpgid = 109,
558 getppid = 110,
559 getpgrp = 111,
560 setsid = 112,
561 setreuid = 113,
562 setregid = 114,
563 getgroups = 115,
564 setgroups = 116,
565 setresuid = 117,
566 getresuid = 118,
567 setresgid = 119,
568 getresgid = 120,
569 getpgid = 121,
570 setfsuid = 122,
571 setfsgid = 123,
572 getsid = 124,
573 capget = 125,
574 capset = 126,
575 rt_sigpending = 127,
576 rt_sigtimedwait = 128,
577 rt_sigqueueinfo = 129,
578 rt_sigsuspend = 130,
579 sigaltstack = 131,
580 utime = 132,
581 mknod = 133,
582 uselib = 134,
583 personality = 135,
584 ustat = 136,
585 statfs = 137,
586 fstatfs = 138,
587 sysfs = 139,
588 getpriority = 140,
589 setpriority = 141,
590 sched_setparam = 142,
591 sched_getparam = 143,
592 sched_setscheduler = 144,
593 sched_getscheduler = 145,
594 sched_get_priority_max = 146,
595 sched_get_priority_min = 147,
596 sched_rr_get_interval = 148,
597 mlock = 149,
598 munlock = 150,
599 mlockall = 151,
600 munlockall = 152,
601 vhangup = 153,
602 modify_ldt = 154,
603 pivot_root = 155,
604 _sysctl = 156,
605 prctl = 157,
606 arch_prctl = 158,
607 adjtimex = 159,
608 setrlimit = 160,
609 chroot = 161,
610 sync = 162,
611 acct = 163,
612 settimeofday = 164,
613 mount = 165,
614 umount2 = 166,
615 swapon = 167,
616 swapoff = 168,
617 reboot = 169,
618 sethostname = 170,
619 setdomainname = 171,
620 iopl = 172,
621 ioperm = 173,
622 create_module = 174,
623 init_module = 175,
624 delete_module = 176,
625 get_kernel_syms = 177,
626 query_module = 178,
627 quotactl = 179,
628 nfsservctl = 180,
629 getpmsg = 181,
630 putpmsg = 182,
631 afs_syscall = 183,
632 tuxcall = 184,
633 security = 185,
634 gettid = 186,
635 readahead = 187,
636 setxattr = 188,
637 lsetxattr = 189,
638 fsetxattr = 190,
639 getxattr = 191,
640 lgetxattr = 192,
641 fgetxattr = 193,
642 listxattr = 194,
643 llistxattr = 195,
644 flistxattr = 196,
645 removexattr = 197,
646 lremovexattr = 198,
647 fremovexattr = 199,
648 tkill = 200,
649 time = 201,
650 futex = 202,
651 sched_setaffinity = 203,
652 sched_getaffinity = 204,
653 set_thread_area = 205,
654 io_setup = 206,
655 io_destroy = 207,
656 io_getevents = 208,
657 io_submit = 209,
658 io_cancel = 210,
659 get_thread_area = 211,
660 lookup_dcookie = 212,
661 epoll_create = 213,
662 epoll_ctl_old = 214,
663 epoll_wait_old = 215,
664 remap_file_pages = 216,
665 getdents64 = 217,
666 set_tid_address = 218,
667 restart_syscall = 219,
668 semtimedop = 220,
669 fadvise64 = 221,
670 timer_create = 222,
671 timer_settime = 223,
672 timer_gettime = 224,
673 timer_getoverrun = 225,
674 timer_delete = 226,
675 clock_settime = 227,
676 clock_gettime = 228,
677 clock_getres = 229,
678 clock_nanosleep = 230,
679 exit_group = 231,
680 epoll_wait = 232,
681 epoll_ctl = 233,
682 tgkill = 234,
683 utimes = 235,
684 vserver = 236,
685 mbind = 237,
686 set_mempolicy = 238,
687 get_mempolicy = 239,
688 mq_open = 240,
689 mq_unlink = 241,
690 mq_timedsend = 242,
691 mq_timedreceive = 243,
692 mq_notify = 244,
693 mq_getsetattr = 245,
694 kexec_load = 246,
695 waitid = 247,
696 add_key = 248,
697 request_key = 249,
698 keyctl = 250,
699 ioprio_set = 251,
700 ioprio_get = 252,
701 inotify_init = 253,
702 inotify_add_watch = 254,
703 inotify_rm_watch = 255,
704 migrate_pages = 256,
705 openat = 257,
706 mkdirat = 258,
707 mknodat = 259,
708 fchownat = 260,
709 futimesat = 261,
710 fstatat64 = 262,
711 unlinkat = 263,
712 renameat = 264,
713 linkat = 265,
714 symlinkat = 266,
715 readlinkat = 267,
716 fchmodat = 268,
717 faccessat = 269,
718 pselect6 = 270,
719 ppoll = 271,
720 unshare = 272,
721 set_robust_list = 273,
722 get_robust_list = 274,
723 splice = 275,
724 tee = 276,
725 sync_file_range = 277,
726 vmsplice = 278,
727 move_pages = 279,
728 utimensat = 280,
729 epoll_pwait = 281,
730 signalfd = 282,
731 timerfd_create = 283,
732 eventfd = 284,
733 fallocate = 285,
734 timerfd_settime = 286,
735 timerfd_gettime = 287,
736 accept4 = 288,
737 signalfd4 = 289,
738 eventfd2 = 290,
739 epoll_create1 = 291,
740 dup3 = 292,
741 pipe2 = 293,
742 inotify_init1 = 294,
743 preadv = 295,
744 pwritev = 296,
745 rt_tgsigqueueinfo = 297,
746 perf_event_open = 298,
747 recvmmsg = 299,
748 fanotify_init = 300,
749 fanotify_mark = 301,
750 prlimit64 = 302,
751 name_to_handle_at = 303,
752 open_by_handle_at = 304,
753 clock_adjtime = 305,
754 syncfs = 306,
755 sendmmsg = 307,
756 setns = 308,
757 getcpu = 309,
758 process_vm_readv = 310,
759 process_vm_writev = 311,
760 kcmp = 312,
761 finit_module = 313,
762 sched_setattr = 314,
763 sched_getattr = 315,
764 renameat2 = 316,
765 seccomp = 317,
766 getrandom = 318,
767 memfd_create = 319,
768 kexec_file_load = 320,
769 bpf = 321,
770 execveat = 322,
771 userfaultfd = 323,
772 membarrier = 324,
773 mlock2 = 325,
774 copy_file_range = 326,
775 preadv2 = 327,
776 pwritev2 = 328,
777 pkey_mprotect = 329,
778 pkey_alloc = 330,
779 pkey_free = 331,
780 statx = 332,
781 io_pgetevents = 333,
782 rseq = 334,
783 pidfd_send_signal = 424,
784 io_uring_setup = 425,
785 io_uring_enter = 426,
786 io_uring_register = 427,
787 open_tree = 428,
788 move_mount = 429,
789 fsopen = 430,
790 fsconfig = 431,
791 fsmount = 432,
792 fspick = 433,
793 pidfd_open = 434,
794 clone3 = 435,
795 close_range = 436,
796 openat2 = 437,
797 pidfd_getfd = 438,
798 faccessat2 = 439,
799 process_madvise = 440,
800 epoll_pwait2 = 441,
801 mount_setattr = 442,
802 quotactl_fd = 443,
803 landlock_create_ruleset = 444,
804 landlock_add_rule = 445,
805 landlock_restrict_self = 446,
806 memfd_secret = 447,
807 process_mrelease = 448,
808 futex_waitv = 449,
809 set_mempolicy_home_node = 450,
810};
811
812pub const Arm = enum(usize) {
813 const arm_base = 0x0f0000;
814
815 restart_syscall = 0,
816 exit = 1,
817 fork = 2,
818 read = 3,
819 write = 4,
820 open = 5,
821 close = 6,
822 creat = 8,
823 link = 9,
824 unlink = 10,
825 execve = 11,
826 chdir = 12,
827 mknod = 14,
828 chmod = 15,
829 lchown = 16,
830 lseek = 19,
831 getpid = 20,
832 mount = 21,
833 setuid = 23,
834 getuid = 24,
835 ptrace = 26,
836 pause = 29,
837 access = 33,
838 nice = 34,
839 sync = 36,
840 kill = 37,
841 rename = 38,
842 mkdir = 39,
843 rmdir = 40,
844 dup = 41,
845 pipe = 42,
846 times = 43,
847 brk = 45,
848 setgid = 46,
849 getgid = 47,
850 geteuid = 49,
851 getegid = 50,
852 acct = 51,
853 umount2 = 52,
854 ioctl = 54,
855 fcntl = 55,
856 setpgid = 57,
857 umask = 60,
858 chroot = 61,
859 ustat = 62,
860 dup2 = 63,
861 getppid = 64,
862 getpgrp = 65,
863 setsid = 66,
864 sigaction = 67,
865 setreuid = 70,
866 setregid = 71,
867 sigsuspend = 72,
868 sigpending = 73,
869 sethostname = 74,
870 setrlimit = 75,
871 getrusage = 77,
872 gettimeofday = 78,
873 settimeofday = 79,
874 getgroups = 80,
875 setgroups = 81,
876 symlink = 83,
877 readlink = 85,
878 uselib = 86,
879 swapon = 87,
880 reboot = 88,
881 munmap = 91,
882 truncate = 92,
883 ftruncate = 93,
884 fchmod = 94,
885 fchown = 95,
886 getpriority = 96,
887 setpriority = 97,
888 statfs = 99,
889 fstatfs = 100,
890 syslog = 103,
891 setitimer = 104,
892 getitimer = 105,
893 stat = 106,
894 lstat = 107,
895 fstat = 108,
896 vhangup = 111,
897 wait4 = 114,
898 swapoff = 115,
899 sysinfo = 116,
900 fsync = 118,
901 sigreturn = 119,
902 clone = 120,
903 setdomainname = 121,
904 uname = 122,
905 adjtimex = 124,
906 mprotect = 125,
907 sigprocmask = 126,
908 init_module = 128,
909 delete_module = 129,
910 quotactl = 131,
911 getpgid = 132,
912 fchdir = 133,
913 bdflush = 134,
914 sysfs = 135,
915 personality = 136,
916 setfsuid = 138,
917 setfsgid = 139,
918 _llseek = 140,
919 getdents = 141,
920 _newselect = 142,
921 flock = 143,
922 msync = 144,
923 readv = 145,
924 writev = 146,
925 getsid = 147,
926 fdatasync = 148,
927 _sysctl = 149,
928 mlock = 150,
929 munlock = 151,
930 mlockall = 152,
931 munlockall = 153,
932 sched_setparam = 154,
933 sched_getparam = 155,
934 sched_setscheduler = 156,
935 sched_getscheduler = 157,
936 sched_yield = 158,
937 sched_get_priority_max = 159,
938 sched_get_priority_min = 160,
939 sched_rr_get_interval = 161,
940 nanosleep = 162,
941 mremap = 163,
942 setresuid = 164,
943 getresuid = 165,
944 poll = 168,
945 nfsservctl = 169,
946 setresgid = 170,
947 getresgid = 171,
948 prctl = 172,
949 rt_sigreturn = 173,
950 rt_sigaction = 174,
951 rt_sigprocmask = 175,
952 rt_sigpending = 176,
953 rt_sigtimedwait = 177,
954 rt_sigqueueinfo = 178,
955 rt_sigsuspend = 179,
956 pread64 = 180,
957 pwrite64 = 181,
958 chown = 182,
959 getcwd = 183,
960 capget = 184,
961 capset = 185,
962 sigaltstack = 186,
963 sendfile = 187,
964 vfork = 190,
965 ugetrlimit = 191,
966 mmap2 = 192,
967 truncate64 = 193,
968 ftruncate64 = 194,
969 stat64 = 195,
970 lstat64 = 196,
971 fstat64 = 197,
972 lchown32 = 198,
973 getuid32 = 199,
974 getgid32 = 200,
975 geteuid32 = 201,
976 getegid32 = 202,
977 setreuid32 = 203,
978 setregid32 = 204,
979 getgroups32 = 205,
980 setgroups32 = 206,
981 fchown32 = 207,
982 setresuid32 = 208,
983 getresuid32 = 209,
984 setresgid32 = 210,
985 getresgid32 = 211,
986 chown32 = 212,
987 setuid32 = 213,
988 setgid32 = 214,
989 setfsuid32 = 215,
990 setfsgid32 = 216,
991 getdents64 = 217,
992 pivot_root = 218,
993 mincore = 219,
994 madvise = 220,
995 fcntl64 = 221,
996 gettid = 224,
997 readahead = 225,
998 setxattr = 226,
999 lsetxattr = 227,
1000 fsetxattr = 228,
1001 getxattr = 229,
1002 lgetxattr = 230,
1003 fgetxattr = 231,
1004 listxattr = 232,
1005 llistxattr = 233,
1006 flistxattr = 234,
1007 removexattr = 235,
1008 lremovexattr = 236,
1009 fremovexattr = 237,
1010 tkill = 238,
1011 sendfile64 = 239,
1012 futex = 240,
1013 sched_setaffinity = 241,
1014 sched_getaffinity = 242,
1015 io_setup = 243,
1016 io_destroy = 244,
1017 io_getevents = 245,
1018 io_submit = 246,
1019 io_cancel = 247,
1020 exit_group = 248,
1021 lookup_dcookie = 249,
1022 epoll_create = 250,
1023 epoll_ctl = 251,
1024 epoll_wait = 252,
1025 remap_file_pages = 253,
1026 set_tid_address = 256,
1027 timer_create = 257,
1028 timer_settime = 258,
1029 timer_gettime = 259,
1030 timer_getoverrun = 260,
1031 timer_delete = 261,
1032 clock_settime = 262,
1033 clock_gettime = 263,
1034 clock_getres = 264,
1035 clock_nanosleep = 265,
1036 statfs64 = 266,
1037 fstatfs64 = 267,
1038 tgkill = 268,
1039 utimes = 269,
1040 fadvise64_64 = 270,
1041 pciconfig_iobase = 271,
1042 pciconfig_read = 272,
1043 pciconfig_write = 273,
1044 mq_open = 274,
1045 mq_unlink = 275,
1046 mq_timedsend = 276,
1047 mq_timedreceive = 277,
1048 mq_notify = 278,
1049 mq_getsetattr = 279,
1050 waitid = 280,
1051 socket = 281,
1052 bind = 282,
1053 connect = 283,
1054 listen = 284,
1055 accept = 285,
1056 getsockname = 286,
1057 getpeername = 287,
1058 socketpair = 288,
1059 send = 289,
1060 sendto = 290,
1061 recv = 291,
1062 recvfrom = 292,
1063 shutdown = 293,
1064 setsockopt = 294,
1065 getsockopt = 295,
1066 sendmsg = 296,
1067 recvmsg = 297,
1068 semop = 298,
1069 semget = 299,
1070 semctl = 300,
1071 msgsnd = 301,
1072 msgrcv = 302,
1073 msgget = 303,
1074 msgctl = 304,
1075 shmat = 305,
1076 shmdt = 306,
1077 shmget = 307,
1078 shmctl = 308,
1079 add_key = 309,
1080 request_key = 310,
1081 keyctl = 311,
1082 semtimedop = 312,
1083 vserver = 313,
1084 ioprio_set = 314,
1085 ioprio_get = 315,
1086 inotify_init = 316,
1087 inotify_add_watch = 317,
1088 inotify_rm_watch = 318,
1089 mbind = 319,
1090 get_mempolicy = 320,
1091 set_mempolicy = 321,
1092 openat = 322,
1093 mkdirat = 323,
1094 mknodat = 324,
1095 fchownat = 325,
1096 futimesat = 326,
1097 fstatat64 = 327,
1098 unlinkat = 328,
1099 renameat = 329,
1100 linkat = 330,
1101 symlinkat = 331,
1102 readlinkat = 332,
1103 fchmodat = 333,
1104 faccessat = 334,
1105 pselect6 = 335,
1106 ppoll = 336,
1107 unshare = 337,
1108 set_robust_list = 338,
1109 get_robust_list = 339,
1110 splice = 340,
1111 sync_file_range = 341,
1112 tee = 342,
1113 vmsplice = 343,
1114 move_pages = 344,
1115 getcpu = 345,
1116 epoll_pwait = 346,
1117 kexec_load = 347,
1118 utimensat = 348,
1119 signalfd = 349,
1120 timerfd_create = 350,
1121 eventfd = 351,
1122 fallocate = 352,
1123 timerfd_settime = 353,
1124 timerfd_gettime = 354,
1125 signalfd4 = 355,
1126 eventfd2 = 356,
1127 epoll_create1 = 357,
1128 dup3 = 358,
1129 pipe2 = 359,
1130 inotify_init1 = 360,
1131 preadv = 361,
1132 pwritev = 362,
1133 rt_tgsigqueueinfo = 363,
1134 perf_event_open = 364,
1135 recvmmsg = 365,
1136 accept4 = 366,
1137 fanotify_init = 367,
1138 fanotify_mark = 368,
1139 prlimit64 = 369,
1140 name_to_handle_at = 370,
1141 open_by_handle_at = 371,
1142 clock_adjtime = 372,
1143 syncfs = 373,
1144 sendmmsg = 374,
1145 setns = 375,
1146 process_vm_readv = 376,
1147 process_vm_writev = 377,
1148 kcmp = 378,
1149 finit_module = 379,
1150 sched_setattr = 380,
1151 sched_getattr = 381,
1152 renameat2 = 382,
1153 seccomp = 383,
1154 getrandom = 384,
1155 memfd_create = 385,
1156 bpf = 386,
1157 execveat = 387,
1158 userfaultfd = 388,
1159 membarrier = 389,
1160 mlock2 = 390,
1161 copy_file_range = 391,
1162 preadv2 = 392,
1163 pwritev2 = 393,
1164 pkey_mprotect = 394,
1165 pkey_alloc = 395,
1166 pkey_free = 396,
1167 statx = 397,
1168 rseq = 398,
1169 io_pgetevents = 399,
1170 migrate_pages = 400,
1171 kexec_file_load = 401,
1172 clock_gettime64 = 403,
1173 clock_settime64 = 404,
1174 clock_adjtime64 = 405,
1175 clock_getres_time64 = 406,
1176 clock_nanosleep_time64 = 407,
1177 timer_gettime64 = 408,
1178 timer_settime64 = 409,
1179 timerfd_gettime64 = 410,
1180 timerfd_settime64 = 411,
1181 utimensat_time64 = 412,
1182 pselect6_time64 = 413,
1183 ppoll_time64 = 414,
1184 io_pgetevents_time64 = 416,
1185 recvmmsg_time64 = 417,
1186 mq_timedsend_time64 = 418,
1187 mq_timedreceive_time64 = 419,
1188 semtimedop_time64 = 420,
1189 rt_sigtimedwait_time64 = 421,
1190 futex_time64 = 422,
1191 sched_rr_get_interval_time64 = 423,
1192 pidfd_send_signal = 424,
1193 io_uring_setup = 425,
1194 io_uring_enter = 426,
1195 io_uring_register = 427,
1196 open_tree = 428,
1197 move_mount = 429,
1198 fsopen = 430,
1199 fsconfig = 431,
1200 fsmount = 432,
1201 fspick = 433,
1202 pidfd_open = 434,
1203 clone3 = 435,
1204 close_range = 436,
1205 openat2 = 437,
1206 pidfd_getfd = 438,
1207 faccessat2 = 439,
1208 process_madvise = 440,
1209 epoll_pwait2 = 441,
1210 mount_setattr = 442,
1211 quotactl_fd = 443,
1212 landlock_create_ruleset = 444,
1213 landlock_add_rule = 445,
1214 landlock_restrict_self = 446,
1215 process_mrelease = 448,
1216 futex_waitv = 449,
1217 set_mempolicy_home_node = 450,
1218
1219 breakpoint = arm_base + 1,
1220 cacheflush = arm_base + 2,
1221 usr26 = arm_base + 3,
1222 usr32 = arm_base + 4,
1223 set_tls = arm_base + 5,
1224 get_tls = arm_base + 6,
1225};
1226
1227pub const Sparc64 = enum(usize) {
1228 restart_syscall = 0,
1229 exit = 1,
1230 fork = 2,
1231 read = 3,
1232 write = 4,
1233 open = 5,
1234 close = 6,
1235 wait4 = 7,
1236 creat = 8,
1237 link = 9,
1238 unlink = 10,
1239 execv = 11,
1240 chdir = 12,
1241 chown = 13,
1242 mknod = 14,
1243 chmod = 15,
1244 lchown = 16,
1245 brk = 17,
1246 perfctr = 18,
1247 lseek = 19,
1248 getpid = 20,
1249 capget = 21,
1250 capset = 22,
1251 setuid = 23,
1252 getuid = 24,
1253 vmsplice = 25,
1254 ptrace = 26,
1255 alarm = 27,
1256 sigaltstack = 28,
1257 pause = 29,
1258 utime = 30,
1259 access = 33,
1260 nice = 34,
1261 sync = 36,
1262 kill = 37,
1263 stat = 38,
1264 sendfile = 39,
1265 lstat = 40,
1266 dup = 41,
1267 pipe = 42,
1268 times = 43,
1269 umount2 = 45,
1270 setgid = 46,
1271 getgid = 47,
1272 signal = 48,
1273 geteuid = 49,
1274 getegid = 50,
1275 acct = 51,
1276 memory_ordering = 52,
1277 ioctl = 54,
1278 reboot = 55,
1279 symlink = 57,
1280 readlink = 58,
1281 execve = 59,
1282 umask = 60,
1283 chroot = 61,
1284 fstat = 62,
1285 fstat64 = 63,
1286 getpagesize = 64,
1287 msync = 65,
1288 vfork = 66,
1289 pread64 = 67,
1290 pwrite64 = 68,
1291 mmap = 71,
1292 munmap = 73,
1293 mprotect = 74,
1294 madvise = 75,
1295 vhangup = 76,
1296 mincore = 78,
1297 getgroups = 79,
1298 setgroups = 80,
1299 getpgrp = 81,
1300 setitimer = 83,
1301 swapon = 85,
1302 getitimer = 86,
1303 sethostname = 88,
1304 dup2 = 90,
1305 fcntl = 92,
1306 select = 93,
1307 fsync = 95,
1308 setpriority = 96,
1309 socket = 97,
1310 connect = 98,
1311 accept = 99,
1312 getpriority = 100,
1313 rt_sigreturn = 101,
1314 rt_sigaction = 102,
1315 rt_sigprocmask = 103,
1316 rt_sigpending = 104,
1317 rt_sigtimedwait = 105,
1318 rt_sigqueueinfo = 106,
1319 rt_sigsuspend = 107,
1320 setresuid = 108,
1321 getresuid = 109,
1322 setresgid = 110,
1323 getresgid = 111,
1324 recvmsg = 113,
1325 sendmsg = 114,
1326 gettimeofday = 116,
1327 getrusage = 117,
1328 getsockopt = 118,
1329 getcwd = 119,
1330 readv = 120,
1331 writev = 121,
1332 settimeofday = 122,
1333 fchown = 123,
1334 fchmod = 124,
1335 recvfrom = 125,
1336 setreuid = 126,
1337 setregid = 127,
1338 rename = 128,
1339 truncate = 129,
1340 ftruncate = 130,
1341 flock = 131,
1342 lstat64 = 132,
1343 sendto = 133,
1344 shutdown = 134,
1345 socketpair = 135,
1346 mkdir = 136,
1347 rmdir = 137,
1348 utimes = 138,
1349 stat64 = 139,
1350 sendfile64 = 140,
1351 getpeername = 141,
1352 futex = 142,
1353 gettid = 143,
1354 getrlimit = 144,
1355 setrlimit = 145,
1356 pivot_root = 146,
1357 prctl = 147,
1358 pciconfig_read = 148,
1359 pciconfig_write = 149,
1360 getsockname = 150,
1361 inotify_init = 151,
1362 inotify_add_watch = 152,
1363 poll = 153,
1364 getdents64 = 154,
1365 inotify_rm_watch = 156,
1366 statfs = 157,
1367 fstatfs = 158,
1368 umount = 159,
1369 sched_set_affinity = 160,
1370 sched_get_affinity = 161,
1371 getdomainname = 162,
1372 setdomainname = 163,
1373 utrap_install = 164,
1374 quotactl = 165,
1375 set_tid_address = 166,
1376 mount = 167,
1377 ustat = 168,
1378 setxattr = 169,
1379 lsetxattr = 170,
1380 fsetxattr = 171,
1381 getxattr = 172,
1382 lgetxattr = 173,
1383 getdents = 174,
1384 setsid = 175,
1385 fchdir = 176,
1386 fgetxattr = 177,
1387 listxattr = 178,
1388 llistxattr = 179,
1389 flistxattr = 180,
1390 removexattr = 181,
1391 lremovexattr = 182,
1392 sigpending = 183,
1393 query_module = 184,
1394 setpgid = 185,
1395 fremovexattr = 186,
1396 tkill = 187,
1397 exit_group = 188,
1398 uname = 189,
1399 init_module = 190,
1400 personality = 191,
1401 remap_file_pages = 192,
1402 epoll_create = 193,
1403 epoll_ctl = 194,
1404 epoll_wait = 195,
1405 ioprio_set = 196,
1406 getppid = 197,
1407 sigaction = 198,
1408 sgetmask = 199,
1409 ssetmask = 200,
1410 sigsuspend = 201,
1411 oldlstat = 202,
1412 uselib = 203,
1413 readdir = 204,
1414 readahead = 205,
1415 socketcall = 206,
1416 syslog = 207,
1417 lookup_dcookie = 208,
1418 fadvise64 = 209,
1419 fadvise64_64 = 210,
1420 tgkill = 211,
1421 waitpid = 212,
1422 swapoff = 213,
1423 sysinfo = 214,
1424 ipc = 215,
1425 sigreturn = 216,
1426 clone = 217,
1427 ioprio_get = 218,
1428 adjtimex = 219,
1429 sigprocmask = 220,
1430 create_module = 221,
1431 delete_module = 222,
1432 get_kernel_syms = 223,
1433 getpgid = 224,
1434 bdflush = 225,
1435 sysfs = 226,
1436 afs_syscall = 227,
1437 setfsuid = 228,
1438 setfsgid = 229,
1439 _newselect = 230,
1440 splice = 232,
1441 stime = 233,
1442 statfs64 = 234,
1443 fstatfs64 = 235,
1444 _llseek = 236,
1445 mlock = 237,
1446 munlock = 238,
1447 mlockall = 239,
1448 munlockall = 240,
1449 sched_setparam = 241,
1450 sched_getparam = 242,
1451 sched_setscheduler = 243,
1452 sched_getscheduler = 244,
1453 sched_yield = 245,
1454 sched_get_priority_max = 246,
1455 sched_get_priority_min = 247,
1456 sched_rr_get_interval = 248,
1457 nanosleep = 249,
1458 mremap = 250,
1459 _sysctl = 251,
1460 getsid = 252,
1461 fdatasync = 253,
1462 nfsservctl = 254,
1463 sync_file_range = 255,
1464 clock_settime = 256,
1465 clock_gettime = 257,
1466 clock_getres = 258,
1467 clock_nanosleep = 259,
1468 sched_getaffinity = 260,
1469 sched_setaffinity = 261,
1470 timer_settime = 262,
1471 timer_gettime = 263,
1472 timer_getoverrun = 264,
1473 timer_delete = 265,
1474 timer_create = 266,
1475 vserver = 267,
1476 io_setup = 268,
1477 io_destroy = 269,
1478 io_submit = 270,
1479 io_cancel = 271,
1480 io_getevents = 272,
1481 mq_open = 273,
1482 mq_unlink = 274,
1483 mq_timedsend = 275,
1484 mq_timedreceive = 276,
1485 mq_notify = 277,
1486 mq_getsetattr = 278,
1487 waitid = 279,
1488 tee = 280,
1489 add_key = 281,
1490 request_key = 282,
1491 keyctl = 283,
1492 openat = 284,
1493 mkdirat = 285,
1494 mknodat = 286,
1495 fchownat = 287,
1496 futimesat = 288,
1497 fstatat64 = 289,
1498 unlinkat = 290,
1499 renameat = 291,
1500 linkat = 292,
1501 symlinkat = 293,
1502 readlinkat = 294,
1503 fchmodat = 295,
1504 faccessat = 296,
1505 pselect6 = 297,
1506 ppoll = 298,
1507 unshare = 299,
1508 set_robust_list = 300,
1509 get_robust_list = 301,
1510 migrate_pages = 302,
1511 mbind = 303,
1512 get_mempolicy = 304,
1513 set_mempolicy = 305,
1514 kexec_load = 306,
1515 move_pages = 307,
1516 getcpu = 308,
1517 epoll_pwait = 309,
1518 utimensat = 310,
1519 signalfd = 311,
1520 timerfd_create = 312,
1521 eventfd = 313,
1522 fallocate = 314,
1523 timerfd_settime = 315,
1524 timerfd_gettime = 316,
1525 signalfd4 = 317,
1526 eventfd2 = 318,
1527 epoll_create1 = 319,
1528 dup3 = 320,
1529 pipe2 = 321,
1530 inotify_init1 = 322,
1531 accept4 = 323,
1532 preadv = 324,
1533 pwritev = 325,
1534 rt_tgsigqueueinfo = 326,
1535 perf_event_open = 327,
1536 recvmmsg = 328,
1537 fanotify_init = 329,
1538 fanotify_mark = 330,
1539 prlimit64 = 331,
1540 name_to_handle_at = 332,
1541 open_by_handle_at = 333,
1542 clock_adjtime = 334,
1543 syncfs = 335,
1544 sendmmsg = 336,
1545 setns = 337,
1546 process_vm_readv = 338,
1547 process_vm_writev = 339,
1548 kern_features = 340,
1549 kcmp = 341,
1550 finit_module = 342,
1551 sched_setattr = 343,
1552 sched_getattr = 344,
1553 renameat2 = 345,
1554 seccomp = 346,
1555 getrandom = 347,
1556 memfd_create = 348,
1557 bpf = 349,
1558 execveat = 350,
1559 membarrier = 351,
1560 userfaultfd = 352,
1561 bind = 353,
1562 listen = 354,
1563 setsockopt = 355,
1564 mlock2 = 356,
1565 copy_file_range = 357,
1566 preadv2 = 358,
1567 pwritev2 = 359,
1568 statx = 360,
1569 io_pgetevents = 361,
1570 pkey_mprotect = 362,
1571 pkey_alloc = 363,
1572 pkey_free = 364,
1573 rseq = 365,
1574 semtimedop = 392,
1575 semget = 393,
1576 semctl = 394,
1577 shmget = 395,
1578 shmctl = 396,
1579 shmat = 397,
1580 shmdt = 398,
1581 msgget = 399,
1582 msgsnd = 400,
1583 msgrcv = 401,
1584 msgctl = 402,
1585 pidfd_send_signal = 424,
1586 io_uring_setup = 425,
1587 io_uring_enter = 426,
1588 io_uring_register = 427,
1589 open_tree = 428,
1590 move_mount = 429,
1591 fsopen = 430,
1592 fsconfig = 431,
1593 fsmount = 432,
1594 fspick = 433,
1595 pidfd_open = 434,
1596 close_range = 436,
1597 openat2 = 437,
1598 pidfd_getfd = 438,
1599 faccessat2 = 439,
1600 process_madvise = 440,
1601 epoll_pwait2 = 441,
1602 mount_setattr = 442,
1603 quotactl_fd = 443,
1604 landlock_create_ruleset = 444,
1605 landlock_add_rule = 445,
1606 landlock_restrict_self = 446,
1607 process_mrelease = 448,
1608 futex_waitv = 449,
1609 set_mempolicy_home_node = 450,
1610};
1611
1612pub const Mips = enum(usize) {
1613 pub const Linux = 4000;
1614
1615 syscall = Linux + 0,
1616 exit = Linux + 1,
1617 fork = Linux + 2,
1618 read = Linux + 3,
1619 write = Linux + 4,
1620 open = Linux + 5,
1621 close = Linux + 6,
1622 waitpid = Linux + 7,
1623 creat = Linux + 8,
1624 link = Linux + 9,
1625 unlink = Linux + 10,
1626 execve = Linux + 11,
1627 chdir = Linux + 12,
1628 time = Linux + 13,
1629 mknod = Linux + 14,
1630 chmod = Linux + 15,
1631 lchown = Linux + 16,
1632 @"break" = Linux + 17,
1633 lseek = Linux + 19,
1634 getpid = Linux + 20,
1635 mount = Linux + 21,
1636 umount = Linux + 22,
1637 setuid = Linux + 23,
1638 getuid = Linux + 24,
1639 stime = Linux + 25,
1640 ptrace = Linux + 26,
1641 alarm = Linux + 27,
1642 pause = Linux + 29,
1643 utime = Linux + 30,
1644 stty = Linux + 31,
1645 gtty = Linux + 32,
1646 access = Linux + 33,
1647 nice = Linux + 34,
1648 ftime = Linux + 35,
1649 sync = Linux + 36,
1650 kill = Linux + 37,
1651 rename = Linux + 38,
1652 mkdir = Linux + 39,
1653 rmdir = Linux + 40,
1654 dup = Linux + 41,
1655 pipe = Linux + 42,
1656 times = Linux + 43,
1657 prof = Linux + 44,
1658 brk = Linux + 45,
1659 setgid = Linux + 46,
1660 getgid = Linux + 47,
1661 signal = Linux + 48,
1662 geteuid = Linux + 49,
1663 getegid = Linux + 50,
1664 acct = Linux + 51,
1665 umount2 = Linux + 52,
1666 lock = Linux + 53,
1667 ioctl = Linux + 54,
1668 fcntl = Linux + 55,
1669 mpx = Linux + 56,
1670 setpgid = Linux + 57,
1671 ulimit = Linux + 58,
1672 umask = Linux + 60,
1673 chroot = Linux + 61,
1674 ustat = Linux + 62,
1675 dup2 = Linux + 63,
1676 getppid = Linux + 64,
1677 getpgrp = Linux + 65,
1678 setsid = Linux + 66,
1679 sigaction = Linux + 67,
1680 sgetmask = Linux + 68,
1681 ssetmask = Linux + 69,
1682 setreuid = Linux + 70,
1683 setregid = Linux + 71,
1684 sigsuspend = Linux + 72,
1685 sigpending = Linux + 73,
1686 sethostname = Linux + 74,
1687 setrlimit = Linux + 75,
1688 getrlimit = Linux + 76,
1689 getrusage = Linux + 77,
1690 gettimeofday = Linux + 78,
1691 settimeofday = Linux + 79,
1692 getgroups = Linux + 80,
1693 setgroups = Linux + 81,
1694 reserved82 = Linux + 82,
1695 symlink = Linux + 83,
1696 readlink = Linux + 85,
1697 uselib = Linux + 86,
1698 swapon = Linux + 87,
1699 reboot = Linux + 88,
1700 readdir = Linux + 89,
1701 mmap = Linux + 90,
1702 munmap = Linux + 91,
1703 truncate = Linux + 92,
1704 ftruncate = Linux + 93,
1705 fchmod = Linux + 94,
1706 fchown = Linux + 95,
1707 getpriority = Linux + 96,
1708 setpriority = Linux + 97,
1709 profil = Linux + 98,
1710 statfs = Linux + 99,
1711 fstatfs = Linux + 100,
1712 ioperm = Linux + 101,
1713 socketcall = Linux + 102,
1714 syslog = Linux + 103,
1715 setitimer = Linux + 104,
1716 getitimer = Linux + 105,
1717 stat = Linux + 106,
1718 lstat = Linux + 107,
1719 fstat = Linux + 108,
1720 iopl = Linux + 110,
1721 vhangup = Linux + 111,
1722 idle = Linux + 112,
1723 vm86 = Linux + 113,
1724 wait4 = Linux + 114,
1725 swapoff = Linux + 115,
1726 sysinfo = Linux + 116,
1727 ipc = Linux + 117,
1728 fsync = Linux + 118,
1729 sigreturn = Linux + 119,
1730 clone = Linux + 120,
1731 setdomainname = Linux + 121,
1732 uname = Linux + 122,
1733 modify_ldt = Linux + 123,
1734 adjtimex = Linux + 124,
1735 mprotect = Linux + 125,
1736 sigprocmask = Linux + 126,
1737 create_module = Linux + 127,
1738 init_module = Linux + 128,
1739 delete_module = Linux + 129,
1740 get_kernel_syms = Linux + 130,
1741 quotactl = Linux + 131,
1742 getpgid = Linux + 132,
1743 fchdir = Linux + 133,
1744 bdflush = Linux + 134,
1745 sysfs = Linux + 135,
1746 personality = Linux + 136,
1747 afs_syscall = Linux + 137,
1748 setfsuid = Linux + 138,
1749 setfsgid = Linux + 139,
1750 _llseek = Linux + 140,
1751 getdents = Linux + 141,
1752 _newselect = Linux + 142,
1753 flock = Linux + 143,
1754 msync = Linux + 144,
1755 readv = Linux + 145,
1756 writev = Linux + 146,
1757 cacheflush = Linux + 147,
1758 cachectl = Linux + 148,
1759 sysmips = Linux + 149,
1760 getsid = Linux + 151,
1761 fdatasync = Linux + 152,
1762 _sysctl = Linux + 153,
1763 mlock = Linux + 154,
1764 munlock = Linux + 155,
1765 mlockall = Linux + 156,
1766 munlockall = Linux + 157,
1767 sched_setparam = Linux + 158,
1768 sched_getparam = Linux + 159,
1769 sched_setscheduler = Linux + 160,
1770 sched_getscheduler = Linux + 161,
1771 sched_yield = Linux + 162,
1772 sched_get_priority_max = Linux + 163,
1773 sched_get_priority_min = Linux + 164,
1774 sched_rr_get_interval = Linux + 165,
1775 nanosleep = Linux + 166,
1776 mremap = Linux + 167,
1777 accept = Linux + 168,
1778 bind = Linux + 169,
1779 connect = Linux + 170,
1780 getpeername = Linux + 171,
1781 getsockname = Linux + 172,
1782 getsockopt = Linux + 173,
1783 listen = Linux + 174,
1784 recv = Linux + 175,
1785 recvfrom = Linux + 176,
1786 recvmsg = Linux + 177,
1787 send = Linux + 178,
1788 sendmsg = Linux + 179,
1789 sendto = Linux + 180,
1790 setsockopt = Linux + 181,
1791 shutdown = Linux + 182,
1792 socket = Linux + 183,
1793 socketpair = Linux + 184,
1794 setresuid = Linux + 185,
1795 getresuid = Linux + 186,
1796 query_module = Linux + 187,
1797 poll = Linux + 188,
1798 nfsservctl = Linux + 189,
1799 setresgid = Linux + 190,
1800 getresgid = Linux + 191,
1801 prctl = Linux + 192,
1802 rt_sigreturn = Linux + 193,
1803 rt_sigaction = Linux + 194,
1804 rt_sigprocmask = Linux + 195,
1805 rt_sigpending = Linux + 196,
1806 rt_sigtimedwait = Linux + 197,
1807 rt_sigqueueinfo = Linux + 198,
1808 rt_sigsuspend = Linux + 199,
1809 pread64 = Linux + 200,
1810 pwrite64 = Linux + 201,
1811 chown = Linux + 202,
1812 getcwd = Linux + 203,
1813 capget = Linux + 204,
1814 capset = Linux + 205,
1815 sigaltstack = Linux + 206,
1816 sendfile = Linux + 207,
1817 getpmsg = Linux + 208,
1818 putpmsg = Linux + 209,
1819 mmap2 = Linux + 210,
1820 truncate64 = Linux + 211,
1821 ftruncate64 = Linux + 212,
1822 stat64 = Linux + 213,
1823 lstat64 = Linux + 214,
1824 fstat64 = Linux + 215,
1825 pivot_root = Linux + 216,
1826 mincore = Linux + 217,
1827 madvise = Linux + 218,
1828 getdents64 = Linux + 219,
1829 fcntl64 = Linux + 220,
1830 reserved221 = Linux + 221,
1831 gettid = Linux + 222,
1832 readahead = Linux + 223,
1833 setxattr = Linux + 224,
1834 lsetxattr = Linux + 225,
1835 fsetxattr = Linux + 226,
1836 getxattr = Linux + 227,
1837 lgetxattr = Linux + 228,
1838 fgetxattr = Linux + 229,
1839 listxattr = Linux + 230,
1840 llistxattr = Linux + 231,
1841 flistxattr = Linux + 232,
1842 removexattr = Linux + 233,
1843 lremovexattr = Linux + 234,
1844 fremovexattr = Linux + 235,
1845 tkill = Linux + 236,
1846 sendfile64 = Linux + 237,
1847 futex = Linux + 238,
1848 sched_setaffinity = Linux + 239,
1849 sched_getaffinity = Linux + 240,
1850 io_setup = Linux + 241,
1851 io_destroy = Linux + 242,
1852 io_getevents = Linux + 243,
1853 io_submit = Linux + 244,
1854 io_cancel = Linux + 245,
1855 exit_group = Linux + 246,
1856 lookup_dcookie = Linux + 247,
1857 epoll_create = Linux + 248,
1858 epoll_ctl = Linux + 249,
1859 epoll_wait = Linux + 250,
1860 remap_file_pages = Linux + 251,
1861 set_tid_address = Linux + 252,
1862 restart_syscall = Linux + 253,
1863 fadvise64 = Linux + 254,
1864 statfs64 = Linux + 255,
1865 fstatfs64 = Linux + 256,
1866 timer_create = Linux + 257,
1867 timer_settime = Linux + 258,
1868 timer_gettime = Linux + 259,
1869 timer_getoverrun = Linux + 260,
1870 timer_delete = Linux + 261,
1871 clock_settime = Linux + 262,
1872 clock_gettime = Linux + 263,
1873 clock_getres = Linux + 264,
1874 clock_nanosleep = Linux + 265,
1875 tgkill = Linux + 266,
1876 utimes = Linux + 267,
1877 mbind = Linux + 268,
1878 get_mempolicy = Linux + 269,
1879 set_mempolicy = Linux + 270,
1880 mq_open = Linux + 271,
1881 mq_unlink = Linux + 272,
1882 mq_timedsend = Linux + 273,
1883 mq_timedreceive = Linux + 274,
1884 mq_notify = Linux + 275,
1885 mq_getsetattr = Linux + 276,
1886 vserver = Linux + 277,
1887 waitid = Linux + 278,
1888 add_key = Linux + 280,
1889 request_key = Linux + 281,
1890 keyctl = Linux + 282,
1891 set_thread_area = Linux + 283,
1892 inotify_init = Linux + 284,
1893 inotify_add_watch = Linux + 285,
1894 inotify_rm_watch = Linux + 286,
1895 migrate_pages = Linux + 287,
1896 openat = Linux + 288,
1897 mkdirat = Linux + 289,
1898 mknodat = Linux + 290,
1899 fchownat = Linux + 291,
1900 futimesat = Linux + 292,
1901 fstatat64 = Linux + 293,
1902 unlinkat = Linux + 294,
1903 renameat = Linux + 295,
1904 linkat = Linux + 296,
1905 symlinkat = Linux + 297,
1906 readlinkat = Linux + 298,
1907 fchmodat = Linux + 299,
1908 faccessat = Linux + 300,
1909 pselect6 = Linux + 301,
1910 ppoll = Linux + 302,
1911 unshare = Linux + 303,
1912 splice = Linux + 304,
1913 sync_file_range = Linux + 305,
1914 tee = Linux + 306,
1915 vmsplice = Linux + 307,
1916 move_pages = Linux + 308,
1917 set_robust_list = Linux + 309,
1918 get_robust_list = Linux + 310,
1919 kexec_load = Linux + 311,
1920 getcpu = Linux + 312,
1921 epoll_pwait = Linux + 313,
1922 ioprio_set = Linux + 314,
1923 ioprio_get = Linux + 315,
1924 utimensat = Linux + 316,
1925 signalfd = Linux + 317,
1926 timerfd = Linux + 318,
1927 eventfd = Linux + 319,
1928 fallocate = Linux + 320,
1929 timerfd_create = Linux + 321,
1930 timerfd_gettime = Linux + 322,
1931 timerfd_settime = Linux + 323,
1932 signalfd4 = Linux + 324,
1933 eventfd2 = Linux + 325,
1934 epoll_create1 = Linux + 326,
1935 dup3 = Linux + 327,
1936 pipe2 = Linux + 328,
1937 inotify_init1 = Linux + 329,
1938 preadv = Linux + 330,
1939 pwritev = Linux + 331,
1940 rt_tgsigqueueinfo = Linux + 332,
1941 perf_event_open = Linux + 333,
1942 accept4 = Linux + 334,
1943 recvmmsg = Linux + 335,
1944 fanotify_init = Linux + 336,
1945 fanotify_mark = Linux + 337,
1946 prlimit64 = Linux + 338,
1947 name_to_handle_at = Linux + 339,
1948 open_by_handle_at = Linux + 340,
1949 clock_adjtime = Linux + 341,
1950 syncfs = Linux + 342,
1951 sendmmsg = Linux + 343,
1952 setns = Linux + 344,
1953 process_vm_readv = Linux + 345,
1954 process_vm_writev = Linux + 346,
1955 kcmp = Linux + 347,
1956 finit_module = Linux + 348,
1957 sched_setattr = Linux + 349,
1958 sched_getattr = Linux + 350,
1959 renameat2 = Linux + 351,
1960 seccomp = Linux + 352,
1961 getrandom = Linux + 353,
1962 memfd_create = Linux + 354,
1963 bpf = Linux + 355,
1964 execveat = Linux + 356,
1965 userfaultfd = Linux + 357,
1966 membarrier = Linux + 358,
1967 mlock2 = Linux + 359,
1968 copy_file_range = Linux + 360,
1969 preadv2 = Linux + 361,
1970 pwritev2 = Linux + 362,
1971 pkey_mprotect = Linux + 363,
1972 pkey_alloc = Linux + 364,
1973 pkey_free = Linux + 365,
1974 statx = Linux + 366,
1975 rseq = Linux + 367,
1976 io_pgetevents = Linux + 368,
1977 semget = Linux + 393,
1978 semctl = Linux + 394,
1979 shmget = Linux + 395,
1980 shmctl = Linux + 396,
1981 shmat = Linux + 397,
1982 shmdt = Linux + 398,
1983 msgget = Linux + 399,
1984 msgsnd = Linux + 400,
1985 msgrcv = Linux + 401,
1986 msgctl = Linux + 402,
1987 clock_gettime64 = Linux + 403,
1988 clock_settime64 = Linux + 404,
1989 clock_adjtime64 = Linux + 405,
1990 clock_getres_time64 = Linux + 406,
1991 clock_nanosleep_time64 = Linux + 407,
1992 timer_gettime64 = Linux + 408,
1993 timer_settime64 = Linux + 409,
1994 timerfd_gettime64 = Linux + 410,
1995 timerfd_settime64 = Linux + 411,
1996 utimensat_time64 = Linux + 412,
1997 pselect6_time64 = Linux + 413,
1998 ppoll_time64 = Linux + 414,
1999 io_pgetevents_time64 = Linux + 416,
2000 recvmmsg_time64 = Linux + 417,
2001 mq_timedsend_time64 = Linux + 418,
2002 mq_timedreceive_time64 = Linux + 419,
2003 semtimedop_time64 = Linux + 420,
2004 rt_sigtimedwait_time64 = Linux + 421,
2005 futex_time64 = Linux + 422,
2006 sched_rr_get_interval_time64 = Linux + 423,
2007 pidfd_send_signal = Linux + 424,
2008 io_uring_setup = Linux + 425,
2009 io_uring_enter = Linux + 426,
2010 io_uring_register = Linux + 427,
2011 open_tree = Linux + 428,
2012 move_mount = Linux + 429,
2013 fsopen = Linux + 430,
2014 fsconfig = Linux + 431,
2015 fsmount = Linux + 432,
2016 fspick = Linux + 433,
2017 pidfd_open = Linux + 434,
2018 clone3 = Linux + 435,
2019 close_range = Linux + 436,
2020 openat2 = Linux + 437,
2021 pidfd_getfd = Linux + 438,
2022 faccessat2 = Linux + 439,
2023 process_madvise = Linux + 440,
2024 epoll_pwait2 = Linux + 441,
2025 mount_setattr = Linux + 442,
2026 quotactl_fd = Linux + 443,
2027 landlock_create_ruleset = Linux + 444,
2028 landlock_add_rule = Linux + 445,
2029 landlock_restrict_self = Linux + 446,
2030 process_mrelease = Linux + 448,
2031 futex_waitv = Linux + 449,
2032 set_mempolicy_home_node = Linux + 450,
2033};
2034
2035pub const PowerPC = enum(usize) {
2036 restart_syscall = 0,
2037 exit = 1,
2038 fork = 2,
2039 read = 3,
2040 write = 4,
2041 open = 5,
2042 close = 6,
2043 waitpid = 7,
2044 creat = 8,
2045 link = 9,
2046 unlink = 10,
2047 execve = 11,
2048 chdir = 12,
2049 time = 13,
2050 mknod = 14,
2051 chmod = 15,
2052 lchown = 16,
2053 @"break" = 17,
2054 oldstat = 18,
2055 lseek = 19,
2056 getpid = 20,
2057 mount = 21,
2058 umount = 22,
2059 setuid = 23,
2060 getuid = 24,
2061 stime = 25,
2062 ptrace = 26,
2063 alarm = 27,
2064 oldfstat = 28,
2065 pause = 29,
2066 utime = 30,
2067 stty = 31,
2068 gtty = 32,
2069 access = 33,
2070 nice = 34,
2071 ftime = 35,
2072 sync = 36,
2073 kill = 37,
2074 rename = 38,
2075 mkdir = 39,
2076 rmdir = 40,
2077 dup = 41,
2078 pipe = 42,
2079 times = 43,
2080 prof = 44,
2081 brk = 45,
2082 setgid = 46,
2083 getgid = 47,
2084 signal = 48,
2085 geteuid = 49,
2086 getegid = 50,
2087 acct = 51,
2088 umount2 = 52,
2089 lock = 53,
2090 ioctl = 54,
2091 fcntl = 55,
2092 mpx = 56,
2093 setpgid = 57,
2094 ulimit = 58,
2095 oldolduname = 59,
2096 umask = 60,
2097 chroot = 61,
2098 ustat = 62,
2099 dup2 = 63,
2100 getppid = 64,
2101 getpgrp = 65,
2102 setsid = 66,
2103 sigaction = 67,
2104 sgetmask = 68,
2105 ssetmask = 69,
2106 setreuid = 70,
2107 setregid = 71,
2108 sigsuspend = 72,
2109 sigpending = 73,
2110 sethostname = 74,
2111 setrlimit = 75,
2112 getrlimit = 76,
2113 getrusage = 77,
2114 gettimeofday = 78,
2115 settimeofday = 79,
2116 getgroups = 80,
2117 setgroups = 81,
2118 select = 82,
2119 symlink = 83,
2120 oldlstat = 84,
2121 readlink = 85,
2122 uselib = 86,
2123 swapon = 87,
2124 reboot = 88,
2125 readdir = 89,
2126 mmap = 90,
2127 munmap = 91,
2128 truncate = 92,
2129 ftruncate = 93,
2130 fchmod = 94,
2131 fchown = 95,
2132 getpriority = 96,
2133 setpriority = 97,
2134 profil = 98,
2135 statfs = 99,
2136 fstatfs = 100,
2137 ioperm = 101,
2138 socketcall = 102,
2139 syslog = 103,
2140 setitimer = 104,
2141 getitimer = 105,
2142 stat = 106,
2143 lstat = 107,
2144 fstat = 108,
2145 olduname = 109,
2146 iopl = 110,
2147 vhangup = 111,
2148 idle = 112,
2149 vm86 = 113,
2150 wait4 = 114,
2151 swapoff = 115,
2152 sysinfo = 116,
2153 ipc = 117,
2154 fsync = 118,
2155 sigreturn = 119,
2156 clone = 120,
2157 setdomainname = 121,
2158 uname = 122,
2159 modify_ldt = 123,
2160 adjtimex = 124,
2161 mprotect = 125,
2162 sigprocmask = 126,
2163 create_module = 127,
2164 init_module = 128,
2165 delete_module = 129,
2166 get_kernel_syms = 130,
2167 quotactl = 131,
2168 getpgid = 132,
2169 fchdir = 133,
2170 bdflush = 134,
2171 sysfs = 135,
2172 personality = 136,
2173 afs_syscall = 137,
2174 setfsuid = 138,
2175 setfsgid = 139,
2176 _llseek = 140,
2177 getdents = 141,
2178 _newselect = 142,
2179 flock = 143,
2180 msync = 144,
2181 readv = 145,
2182 writev = 146,
2183 getsid = 147,
2184 fdatasync = 148,
2185 _sysctl = 149,
2186 mlock = 150,
2187 munlock = 151,
2188 mlockall = 152,
2189 munlockall = 153,
2190 sched_setparam = 154,
2191 sched_getparam = 155,
2192 sched_setscheduler = 156,
2193 sched_getscheduler = 157,
2194 sched_yield = 158,
2195 sched_get_priority_max = 159,
2196 sched_get_priority_min = 160,
2197 sched_rr_get_interval = 161,
2198 nanosleep = 162,
2199 mremap = 163,
2200 setresuid = 164,
2201 getresuid = 165,
2202 query_module = 166,
2203 poll = 167,
2204 nfsservctl = 168,
2205 setresgid = 169,
2206 getresgid = 170,
2207 prctl = 171,
2208 rt_sigreturn = 172,
2209 rt_sigaction = 173,
2210 rt_sigprocmask = 174,
2211 rt_sigpending = 175,
2212 rt_sigtimedwait = 176,
2213 rt_sigqueueinfo = 177,
2214 rt_sigsuspend = 178,
2215 pread64 = 179,
2216 pwrite64 = 180,
2217 chown = 181,
2218 getcwd = 182,
2219 capget = 183,
2220 capset = 184,
2221 sigaltstack = 185,
2222 sendfile = 186,
2223 getpmsg = 187,
2224 putpmsg = 188,
2225 vfork = 189,
2226 ugetrlimit = 190,
2227 readahead = 191,
2228 mmap2 = 192,
2229 truncate64 = 193,
2230 ftruncate64 = 194,
2231 stat64 = 195,
2232 lstat64 = 196,
2233 fstat64 = 197,
2234 pciconfig_read = 198,
2235 pciconfig_write = 199,
2236 pciconfig_iobase = 200,
2237 multiplexer = 201,
2238 getdents64 = 202,
2239 pivot_root = 203,
2240 fcntl64 = 204,
2241 madvise = 205,
2242 mincore = 206,
2243 gettid = 207,
2244 tkill = 208,
2245 setxattr = 209,
2246 lsetxattr = 210,
2247 fsetxattr = 211,
2248 getxattr = 212,
2249 lgetxattr = 213,
2250 fgetxattr = 214,
2251 listxattr = 215,
2252 llistxattr = 216,
2253 flistxattr = 217,
2254 removexattr = 218,
2255 lremovexattr = 219,
2256 fremovexattr = 220,
2257 futex = 221,
2258 sched_setaffinity = 222,
2259 sched_getaffinity = 223,
2260 tuxcall = 225,
2261 sendfile64 = 226,
2262 io_setup = 227,
2263 io_destroy = 228,
2264 io_getevents = 229,
2265 io_submit = 230,
2266 io_cancel = 231,
2267 set_tid_address = 232,
2268 fadvise64 = 233,
2269 exit_group = 234,
2270 lookup_dcookie = 235,
2271 epoll_create = 236,
2272 epoll_ctl = 237,
2273 epoll_wait = 238,
2274 remap_file_pages = 239,
2275 timer_create = 240,
2276 timer_settime = 241,
2277 timer_gettime = 242,
2278 timer_getoverrun = 243,
2279 timer_delete = 244,
2280 clock_settime = 245,
2281 clock_gettime = 246,
2282 clock_getres = 247,
2283 clock_nanosleep = 248,
2284 swapcontext = 249,
2285 tgkill = 250,
2286 utimes = 251,
2287 statfs64 = 252,
2288 fstatfs64 = 253,
2289 fadvise64_64 = 254,
2290 rtas = 255,
2291 sys_debug_setcontext = 256,
2292 migrate_pages = 258,
2293 mbind = 259,
2294 get_mempolicy = 260,
2295 set_mempolicy = 261,
2296 mq_open = 262,
2297 mq_unlink = 263,
2298 mq_timedsend = 264,
2299 mq_timedreceive = 265,
2300 mq_notify = 266,
2301 mq_getsetattr = 267,
2302 kexec_load = 268,
2303 add_key = 269,
2304 request_key = 270,
2305 keyctl = 271,
2306 waitid = 272,
2307 ioprio_set = 273,
2308 ioprio_get = 274,
2309 inotify_init = 275,
2310 inotify_add_watch = 276,
2311 inotify_rm_watch = 277,
2312 spu_run = 278,
2313 spu_create = 279,
2314 pselect6 = 280,
2315 ppoll = 281,
2316 unshare = 282,
2317 splice = 283,
2318 tee = 284,
2319 vmsplice = 285,
2320 openat = 286,
2321 mkdirat = 287,
2322 mknodat = 288,
2323 fchownat = 289,
2324 futimesat = 290,
2325 fstatat64 = 291,
2326 unlinkat = 292,
2327 renameat = 293,
2328 linkat = 294,
2329 symlinkat = 295,
2330 readlinkat = 296,
2331 fchmodat = 297,
2332 faccessat = 298,
2333 get_robust_list = 299,
2334 set_robust_list = 300,
2335 move_pages = 301,
2336 getcpu = 302,
2337 epoll_pwait = 303,
2338 utimensat = 304,
2339 signalfd = 305,
2340 timerfd_create = 306,
2341 eventfd = 307,
2342 sync_file_range = 308,
2343 fallocate = 309,
2344 subpage_prot = 310,
2345 timerfd_settime = 311,
2346 timerfd_gettime = 312,
2347 signalfd4 = 313,
2348 eventfd2 = 314,
2349 epoll_create1 = 315,
2350 dup3 = 316,
2351 pipe2 = 317,
2352 inotify_init1 = 318,
2353 perf_event_open = 319,
2354 preadv = 320,
2355 pwritev = 321,
2356 rt_tgsigqueueinfo = 322,
2357 fanotify_init = 323,
2358 fanotify_mark = 324,
2359 prlimit64 = 325,
2360 socket = 326,
2361 bind = 327,
2362 connect = 328,
2363 listen = 329,
2364 accept = 330,
2365 getsockname = 331,
2366 getpeername = 332,
2367 socketpair = 333,
2368 send = 334,
2369 sendto = 335,
2370 recv = 336,
2371 recvfrom = 337,
2372 shutdown = 338,
2373 setsockopt = 339,
2374 getsockopt = 340,
2375 sendmsg = 341,
2376 recvmsg = 342,
2377 recvmmsg = 343,
2378 accept4 = 344,
2379 name_to_handle_at = 345,
2380 open_by_handle_at = 346,
2381 clock_adjtime = 347,
2382 syncfs = 348,
2383 sendmmsg = 349,
2384 setns = 350,
2385 process_vm_readv = 351,
2386 process_vm_writev = 352,
2387 finit_module = 353,
2388 kcmp = 354,
2389 sched_setattr = 355,
2390 sched_getattr = 356,
2391 renameat2 = 357,
2392 seccomp = 358,
2393 getrandom = 359,
2394 memfd_create = 360,
2395 bpf = 361,
2396 execveat = 362,
2397 switch_endian = 363,
2398 userfaultfd = 364,
2399 membarrier = 365,
2400 mlock2 = 378,
2401 copy_file_range = 379,
2402 preadv2 = 380,
2403 pwritev2 = 381,
2404 kexec_file_load = 382,
2405 statx = 383,
2406 pkey_alloc = 384,
2407 pkey_free = 385,
2408 pkey_mprotect = 386,
2409 rseq = 387,
2410 io_pgetevents = 388,
2411 semget = 393,
2412 semctl = 394,
2413 shmget = 395,
2414 shmctl = 396,
2415 shmat = 397,
2416 shmdt = 398,
2417 msgget = 399,
2418 msgsnd = 400,
2419 msgrcv = 401,
2420 msgctl = 402,
2421 clock_gettime64 = 403,
2422 clock_settime64 = 404,
2423 clock_adjtime64 = 405,
2424 clock_getres_time64 = 406,
2425 clock_nanosleep_time64 = 407,
2426 timer_gettime64 = 408,
2427 timer_settime64 = 409,
2428 timerfd_gettime64 = 410,
2429 timerfd_settime64 = 411,
2430 utimensat_time64 = 412,
2431 pselect6_time64 = 413,
2432 ppoll_time64 = 414,
2433 io_pgetevents_time64 = 416,
2434 recvmmsg_time64 = 417,
2435 mq_timedsend_time64 = 418,
2436 mq_timedreceive_time64 = 419,
2437 semtimedop_time64 = 420,
2438 rt_sigtimedwait_time64 = 421,
2439 futex_time64 = 422,
2440 sched_rr_get_interval_time64 = 423,
2441 pidfd_send_signal = 424,
2442 io_uring_setup = 425,
2443 io_uring_enter = 426,
2444 io_uring_register = 427,
2445 open_tree = 428,
2446 move_mount = 429,
2447 fsopen = 430,
2448 fsconfig = 431,
2449 fsmount = 432,
2450 fspick = 433,
2451 pidfd_open = 434,
2452 clone3 = 435,
2453 close_range = 436,
2454 openat2 = 437,
2455 pidfd_getfd = 438,
2456 faccessat2 = 439,
2457 process_madvise = 440,
2458 epoll_pwait2 = 441,
2459 mount_setattr = 442,
2460 quotactl_fd = 443,
2461 landlock_create_ruleset = 444,
2462 landlock_add_rule = 445,
2463 landlock_restrict_self = 446,
2464 process_mrelease = 448,
2465 futex_waitv = 449,
2466 set_mempolicy_home_node = 450,
2467};
2468
2469pub const PowerPC64 = enum(usize) {
2470 restart_syscall = 0,
2471 exit = 1,
2472 fork = 2,
2473 read = 3,
2474 write = 4,
2475 open = 5,
2476 close = 6,
2477 waitpid = 7,
2478 creat = 8,
2479 link = 9,
2480 unlink = 10,
2481 execve = 11,
2482 chdir = 12,
2483 time = 13,
2484 mknod = 14,
2485 chmod = 15,
2486 lchown = 16,
2487 @"break" = 17,
2488 oldstat = 18,
2489 lseek = 19,
2490 getpid = 20,
2491 mount = 21,
2492 umount = 22,
2493 setuid = 23,
2494 getuid = 24,
2495 stime = 25,
2496 ptrace = 26,
2497 alarm = 27,
2498 oldfstat = 28,
2499 pause = 29,
2500 utime = 30,
2501 stty = 31,
2502 gtty = 32,
2503 access = 33,
2504 nice = 34,
2505 ftime = 35,
2506 sync = 36,
2507 kill = 37,
2508 rename = 38,
2509 mkdir = 39,
2510 rmdir = 40,
2511 dup = 41,
2512 pipe = 42,
2513 times = 43,
2514 prof = 44,
2515 brk = 45,
2516 setgid = 46,
2517 getgid = 47,
2518 signal = 48,
2519 geteuid = 49,
2520 getegid = 50,
2521 acct = 51,
2522 umount2 = 52,
2523 lock = 53,
2524 ioctl = 54,
2525 fcntl = 55,
2526 mpx = 56,
2527 setpgid = 57,
2528 ulimit = 58,
2529 oldolduname = 59,
2530 umask = 60,
2531 chroot = 61,
2532 ustat = 62,
2533 dup2 = 63,
2534 getppid = 64,
2535 getpgrp = 65,
2536 setsid = 66,
2537 sigaction = 67,
2538 sgetmask = 68,
2539 ssetmask = 69,
2540 setreuid = 70,
2541 setregid = 71,
2542 sigsuspend = 72,
2543 sigpending = 73,
2544 sethostname = 74,
2545 setrlimit = 75,
2546 getrlimit = 76,
2547 getrusage = 77,
2548 gettimeofday = 78,
2549 settimeofday = 79,
2550 getgroups = 80,
2551 setgroups = 81,
2552 select = 82,
2553 symlink = 83,
2554 oldlstat = 84,
2555 readlink = 85,
2556 uselib = 86,
2557 swapon = 87,
2558 reboot = 88,
2559 readdir = 89,
2560 mmap = 90,
2561 munmap = 91,
2562 truncate = 92,
2563 ftruncate = 93,
2564 fchmod = 94,
2565 fchown = 95,
2566 getpriority = 96,
2567 setpriority = 97,
2568 profil = 98,
2569 statfs = 99,
2570 fstatfs = 100,
2571 ioperm = 101,
2572 socketcall = 102,
2573 syslog = 103,
2574 setitimer = 104,
2575 getitimer = 105,
2576 stat = 106,
2577 lstat = 107,
2578 fstat = 108,
2579 olduname = 109,
2580 iopl = 110,
2581 vhangup = 111,
2582 idle = 112,
2583 vm86 = 113,
2584 wait4 = 114,
2585 swapoff = 115,
2586 sysinfo = 116,
2587 ipc = 117,
2588 fsync = 118,
2589 sigreturn = 119,
2590 clone = 120,
2591 setdomainname = 121,
2592 uname = 122,
2593 modify_ldt = 123,
2594 adjtimex = 124,
2595 mprotect = 125,
2596 sigprocmask = 126,
2597 create_module = 127,
2598 init_module = 128,
2599 delete_module = 129,
2600 get_kernel_syms = 130,
2601 quotactl = 131,
2602 getpgid = 132,
2603 fchdir = 133,
2604 bdflush = 134,
2605 sysfs = 135,
2606 personality = 136,
2607 afs_syscall = 137,
2608 setfsuid = 138,
2609 setfsgid = 139,
2610 _llseek = 140,
2611 getdents = 141,
2612 _newselect = 142,
2613 flock = 143,
2614 msync = 144,
2615 readv = 145,
2616 writev = 146,
2617 getsid = 147,
2618 fdatasync = 148,
2619 _sysctl = 149,
2620 mlock = 150,
2621 munlock = 151,
2622 mlockall = 152,
2623 munlockall = 153,
2624 sched_setparam = 154,
2625 sched_getparam = 155,
2626 sched_setscheduler = 156,
2627 sched_getscheduler = 157,
2628 sched_yield = 158,
2629 sched_get_priority_max = 159,
2630 sched_get_priority_min = 160,
2631 sched_rr_get_interval = 161,
2632 nanosleep = 162,
2633 mremap = 163,
2634 setresuid = 164,
2635 getresuid = 165,
2636 query_module = 166,
2637 poll = 167,
2638 nfsservctl = 168,
2639 setresgid = 169,
2640 getresgid = 170,
2641 prctl = 171,
2642 rt_sigreturn = 172,
2643 rt_sigaction = 173,
2644 rt_sigprocmask = 174,
2645 rt_sigpending = 175,
2646 rt_sigtimedwait = 176,
2647 rt_sigqueueinfo = 177,
2648 rt_sigsuspend = 178,
2649 pread64 = 179,
2650 pwrite64 = 180,
2651 chown = 181,
2652 getcwd = 182,
2653 capget = 183,
2654 capset = 184,
2655 sigaltstack = 185,
2656 sendfile = 186,
2657 getpmsg = 187,
2658 putpmsg = 188,
2659 vfork = 189,
2660 ugetrlimit = 190,
2661 readahead = 191,
2662 pciconfig_read = 198,
2663 pciconfig_write = 199,
2664 pciconfig_iobase = 200,
2665 multiplexer = 201,
2666 getdents64 = 202,
2667 pivot_root = 203,
2668 madvise = 205,
2669 mincore = 206,
2670 gettid = 207,
2671 tkill = 208,
2672 setxattr = 209,
2673 lsetxattr = 210,
2674 fsetxattr = 211,
2675 getxattr = 212,
2676 lgetxattr = 213,
2677 fgetxattr = 214,
2678 listxattr = 215,
2679 llistxattr = 216,
2680 flistxattr = 217,
2681 removexattr = 218,
2682 lremovexattr = 219,
2683 fremovexattr = 220,
2684 futex = 221,
2685 sched_setaffinity = 222,
2686 sched_getaffinity = 223,
2687 tuxcall = 225,
2688 io_setup = 227,
2689 io_destroy = 228,
2690 io_getevents = 229,
2691 io_submit = 230,
2692 io_cancel = 231,
2693 set_tid_address = 232,
2694 fadvise64 = 233,
2695 exit_group = 234,
2696 lookup_dcookie = 235,
2697 epoll_create = 236,
2698 epoll_ctl = 237,
2699 epoll_wait = 238,
2700 remap_file_pages = 239,
2701 timer_create = 240,
2702 timer_settime = 241,
2703 timer_gettime = 242,
2704 timer_getoverrun = 243,
2705 timer_delete = 244,
2706 clock_settime = 245,
2707 clock_gettime = 246,
2708 clock_getres = 247,
2709 clock_nanosleep = 248,
2710 swapcontext = 249,
2711 tgkill = 250,
2712 utimes = 251,
2713 statfs64 = 252,
2714 fstatfs64 = 253,
2715 rtas = 255,
2716 sys_debug_setcontext = 256,
2717 migrate_pages = 258,
2718 mbind = 259,
2719 get_mempolicy = 260,
2720 set_mempolicy = 261,
2721 mq_open = 262,
2722 mq_unlink = 263,
2723 mq_timedsend = 264,
2724 mq_timedreceive = 265,
2725 mq_notify = 266,
2726 mq_getsetattr = 267,
2727 kexec_load = 268,
2728 add_key = 269,
2729 request_key = 270,
2730 keyctl = 271,
2731 waitid = 272,
2732 ioprio_set = 273,
2733 ioprio_get = 274,
2734 inotify_init = 275,
2735 inotify_add_watch = 276,
2736 inotify_rm_watch = 277,
2737 spu_run = 278,
2738 spu_create = 279,
2739 pselect6 = 280,
2740 ppoll = 281,
2741 unshare = 282,
2742 splice = 283,
2743 tee = 284,
2744 vmsplice = 285,
2745 openat = 286,
2746 mkdirat = 287,
2747 mknodat = 288,
2748 fchownat = 289,
2749 futimesat = 290,
2750 fstatat64 = 291,
2751 unlinkat = 292,
2752 renameat = 293,
2753 linkat = 294,
2754 symlinkat = 295,
2755 readlinkat = 296,
2756 fchmodat = 297,
2757 faccessat = 298,
2758 get_robust_list = 299,
2759 set_robust_list = 300,
2760 move_pages = 301,
2761 getcpu = 302,
2762 epoll_pwait = 303,
2763 utimensat = 304,
2764 signalfd = 305,
2765 timerfd_create = 306,
2766 eventfd = 307,
2767 sync_file_range = 308,
2768 fallocate = 309,
2769 subpage_prot = 310,
2770 timerfd_settime = 311,
2771 timerfd_gettime = 312,
2772 signalfd4 = 313,
2773 eventfd2 = 314,
2774 epoll_create1 = 315,
2775 dup3 = 316,
2776 pipe2 = 317,
2777 inotify_init1 = 318,
2778 perf_event_open = 319,
2779 preadv = 320,
2780 pwritev = 321,
2781 rt_tgsigqueueinfo = 322,
2782 fanotify_init = 323,
2783 fanotify_mark = 324,
2784 prlimit64 = 325,
2785 socket = 326,
2786 bind = 327,
2787 connect = 328,
2788 listen = 329,
2789 accept = 330,
2790 getsockname = 331,
2791 getpeername = 332,
2792 socketpair = 333,
2793 send = 334,
2794 sendto = 335,
2795 recv = 336,
2796 recvfrom = 337,
2797 shutdown = 338,
2798 setsockopt = 339,
2799 getsockopt = 340,
2800 sendmsg = 341,
2801 recvmsg = 342,
2802 recvmmsg = 343,
2803 accept4 = 344,
2804 name_to_handle_at = 345,
2805 open_by_handle_at = 346,
2806 clock_adjtime = 347,
2807 syncfs = 348,
2808 sendmmsg = 349,
2809 setns = 350,
2810 process_vm_readv = 351,
2811 process_vm_writev = 352,
2812 finit_module = 353,
2813 kcmp = 354,
2814 sched_setattr = 355,
2815 sched_getattr = 356,
2816 renameat2 = 357,
2817 seccomp = 358,
2818 getrandom = 359,
2819 memfd_create = 360,
2820 bpf = 361,
2821 execveat = 362,
2822 switch_endian = 363,
2823 userfaultfd = 364,
2824 membarrier = 365,
2825 mlock2 = 378,
2826 copy_file_range = 379,
2827 preadv2 = 380,
2828 pwritev2 = 381,
2829 kexec_file_load = 382,
2830 statx = 383,
2831 pkey_alloc = 384,
2832 pkey_free = 385,
2833 pkey_mprotect = 386,
2834 rseq = 387,
2835 io_pgetevents = 388,
2836 semtimedop = 392,
2837 semget = 393,
2838 semctl = 394,
2839 shmget = 395,
2840 shmctl = 396,
2841 shmat = 397,
2842 shmdt = 398,
2843 msgget = 399,
2844 msgsnd = 400,
2845 msgrcv = 401,
2846 msgctl = 402,
2847 pidfd_send_signal = 424,
2848 io_uring_setup = 425,
2849 io_uring_enter = 426,
2850 io_uring_register = 427,
2851 open_tree = 428,
2852 move_mount = 429,
2853 fsopen = 430,
2854 fsconfig = 431,
2855 fsmount = 432,
2856 fspick = 433,
2857 pidfd_open = 434,
2858 clone3 = 435,
2859 close_range = 436,
2860 openat2 = 437,
2861 pidfd_getfd = 438,
2862 faccessat2 = 439,
2863 process_madvise = 440,
2864 epoll_pwait2 = 441,
2865 mount_setattr = 442,
2866 quotactl_fd = 443,
2867 landlock_create_ruleset = 444,
2868 landlock_add_rule = 445,
2869 landlock_restrict_self = 446,
2870 process_mrelease = 448,
2871 futex_waitv = 449,
2872 set_mempolicy_home_node = 450,
2873};
2874
2875pub const Arm64 = enum(usize) {
2876 io_setup = 0,
2877 io_destroy = 1,
2878 io_submit = 2,
2879 io_cancel = 3,
2880 io_getevents = 4,
2881 setxattr = 5,
2882 lsetxattr = 6,
2883 fsetxattr = 7,
2884 getxattr = 8,
2885 lgetxattr = 9,
2886 fgetxattr = 10,
2887 listxattr = 11,
2888 llistxattr = 12,
2889 flistxattr = 13,
2890 removexattr = 14,
2891 lremovexattr = 15,
2892 fremovexattr = 16,
2893 getcwd = 17,
2894 lookup_dcookie = 18,
2895 eventfd2 = 19,
2896 epoll_create1 = 20,
2897 epoll_ctl = 21,
2898 epoll_pwait = 22,
2899 dup = 23,
2900 dup3 = 24,
2901 fcntl = 25,
2902 inotify_init1 = 26,
2903 inotify_add_watch = 27,
2904 inotify_rm_watch = 28,
2905 ioctl = 29,
2906 ioprio_set = 30,
2907 ioprio_get = 31,
2908 flock = 32,
2909 mknodat = 33,
2910 mkdirat = 34,
2911 unlinkat = 35,
2912 symlinkat = 36,
2913 linkat = 37,
2914 renameat = 38,
2915 umount2 = 39,
2916 mount = 40,
2917 pivot_root = 41,
2918 nfsservctl = 42,
2919 statfs = 43,
2920 fstatfs = 44,
2921 truncate = 45,
2922 ftruncate = 46,
2923 fallocate = 47,
2924 faccessat = 48,
2925 chdir = 49,
2926 fchdir = 50,
2927 chroot = 51,
2928 fchmod = 52,
2929 fchmodat = 53,
2930 fchownat = 54,
2931 fchown = 55,
2932 openat = 56,
2933 close = 57,
2934 vhangup = 58,
2935 pipe2 = 59,
2936 quotactl = 60,
2937 getdents64 = 61,
2938 lseek = 62,
2939 read = 63,
2940 write = 64,
2941 readv = 65,
2942 writev = 66,
2943 pread64 = 67,
2944 pwrite64 = 68,
2945 preadv = 69,
2946 pwritev = 70,
2947 sendfile = 71,
2948 pselect6 = 72,
2949 ppoll = 73,
2950 signalfd4 = 74,
2951 vmsplice = 75,
2952 splice = 76,
2953 tee = 77,
2954 readlinkat = 78,
2955 fstatat = 79,
2956 fstat = 80,
2957 sync = 81,
2958 fsync = 82,
2959 fdatasync = 83,
2960 sync_file_range = 84,
2961 timerfd_create = 85,
2962 timerfd_settime = 86,
2963 timerfd_gettime = 87,
2964 utimensat = 88,
2965 acct = 89,
2966 capget = 90,
2967 capset = 91,
2968 personality = 92,
2969 exit = 93,
2970 exit_group = 94,
2971 waitid = 95,
2972 set_tid_address = 96,
2973 unshare = 97,
2974 futex = 98,
2975 set_robust_list = 99,
2976 get_robust_list = 100,
2977 nanosleep = 101,
2978 getitimer = 102,
2979 setitimer = 103,
2980 kexec_load = 104,
2981 init_module = 105,
2982 delete_module = 106,
2983 timer_create = 107,
2984 timer_gettime = 108,
2985 timer_getoverrun = 109,
2986 timer_settime = 110,
2987 timer_delete = 111,
2988 clock_settime = 112,
2989 clock_gettime = 113,
2990 clock_getres = 114,
2991 clock_nanosleep = 115,
2992 syslog = 116,
2993 ptrace = 117,
2994 sched_setparam = 118,
2995 sched_setscheduler = 119,
2996 sched_getscheduler = 120,
2997 sched_getparam = 121,
2998 sched_setaffinity = 122,
2999 sched_getaffinity = 123,
3000 sched_yield = 124,
3001 sched_get_priority_max = 125,
3002 sched_get_priority_min = 126,
3003 sched_rr_get_interval = 127,
3004 restart_syscall = 128,
3005 kill = 129,
3006 tkill = 130,
3007 tgkill = 131,
3008 sigaltstack = 132,
3009 rt_sigsuspend = 133,
3010 rt_sigaction = 134,
3011 rt_sigprocmask = 135,
3012 rt_sigpending = 136,
3013 rt_sigtimedwait = 137,
3014 rt_sigqueueinfo = 138,
3015 rt_sigreturn = 139,
3016 setpriority = 140,
3017 getpriority = 141,
3018 reboot = 142,
3019 setregid = 143,
3020 setgid = 144,
3021 setreuid = 145,
3022 setuid = 146,
3023 setresuid = 147,
3024 getresuid = 148,
3025 setresgid = 149,
3026 getresgid = 150,
3027 setfsuid = 151,
3028 setfsgid = 152,
3029 times = 153,
3030 setpgid = 154,
3031 getpgid = 155,
3032 getsid = 156,
3033 setsid = 157,
3034 getgroups = 158,
3035 setgroups = 159,
3036 uname = 160,
3037 sethostname = 161,
3038 setdomainname = 162,
3039 getrlimit = 163,
3040 setrlimit = 164,
3041 getrusage = 165,
3042 umask = 166,
3043 prctl = 167,
3044 getcpu = 168,
3045 gettimeofday = 169,
3046 settimeofday = 170,
3047 adjtimex = 171,
3048 getpid = 172,
3049 getppid = 173,
3050 getuid = 174,
3051 geteuid = 175,
3052 getgid = 176,
3053 getegid = 177,
3054 gettid = 178,
3055 sysinfo = 179,
3056 mq_open = 180,
3057 mq_unlink = 181,
3058 mq_timedsend = 182,
3059 mq_timedreceive = 183,
3060 mq_notify = 184,
3061 mq_getsetattr = 185,
3062 msgget = 186,
3063 msgctl = 187,
3064 msgrcv = 188,
3065 msgsnd = 189,
3066 semget = 190,
3067 semctl = 191,
3068 semtimedop = 192,
3069 semop = 193,
3070 shmget = 194,
3071 shmctl = 195,
3072 shmat = 196,
3073 shmdt = 197,
3074 socket = 198,
3075 socketpair = 199,
3076 bind = 200,
3077 listen = 201,
3078 accept = 202,
3079 connect = 203,
3080 getsockname = 204,
3081 getpeername = 205,
3082 sendto = 206,
3083 recvfrom = 207,
3084 setsockopt = 208,
3085 getsockopt = 209,
3086 shutdown = 210,
3087 sendmsg = 211,
3088 recvmsg = 212,
3089 readahead = 213,
3090 brk = 214,
3091 munmap = 215,
3092 mremap = 216,
3093 add_key = 217,
3094 request_key = 218,
3095 keyctl = 219,
3096 clone = 220,
3097 execve = 221,
3098 mmap = 222,
3099 fadvise64 = 223,
3100 swapon = 224,
3101 swapoff = 225,
3102 mprotect = 226,
3103 msync = 227,
3104 mlock = 228,
3105 munlock = 229,
3106 mlockall = 230,
3107 munlockall = 231,
3108 mincore = 232,
3109 madvise = 233,
3110 remap_file_pages = 234,
3111 mbind = 235,
3112 get_mempolicy = 236,
3113 set_mempolicy = 237,
3114 migrate_pages = 238,
3115 move_pages = 239,
3116 rt_tgsigqueueinfo = 240,
3117 perf_event_open = 241,
3118 accept4 = 242,
3119 recvmmsg = 243,
3120 wait4 = 260,
3121 prlimit64 = 261,
3122 fanotify_init = 262,
3123 fanotify_mark = 263,
3124 name_to_handle_at = 264,
3125 open_by_handle_at = 265,
3126 clock_adjtime = 266,
3127 syncfs = 267,
3128 setns = 268,
3129 sendmmsg = 269,
3130 process_vm_readv = 270,
3131 process_vm_writev = 271,
3132 kcmp = 272,
3133 finit_module = 273,
3134 sched_setattr = 274,
3135 sched_getattr = 275,
3136 renameat2 = 276,
3137 seccomp = 277,
3138 getrandom = 278,
3139 memfd_create = 279,
3140 bpf = 280,
3141 execveat = 281,
3142 userfaultfd = 282,
3143 membarrier = 283,
3144 mlock2 = 284,
3145 copy_file_range = 285,
3146 preadv2 = 286,
3147 pwritev2 = 287,
3148 pkey_mprotect = 288,
3149 pkey_alloc = 289,
3150 pkey_free = 290,
3151 statx = 291,
3152 io_pgetevents = 292,
3153 rseq = 293,
3154 kexec_file_load = 294,
3155 pidfd_send_signal = 424,
3156 io_uring_setup = 425,
3157 io_uring_enter = 426,
3158 io_uring_register = 427,
3159 open_tree = 428,
3160 move_mount = 429,
3161 fsopen = 430,
3162 fsconfig = 431,
3163 fsmount = 432,
3164 fspick = 433,
3165 pidfd_open = 434,
3166 clone3 = 435,
3167 close_range = 436,
3168 openat2 = 437,
3169 pidfd_getfd = 438,
3170 faccessat2 = 439,
3171 process_madvise = 440,
3172 epoll_pwait2 = 441,
3173 mount_setattr = 442,
3174 quotactl_fd = 443,
3175 landlock_create_ruleset = 444,
3176 landlock_add_rule = 445,
3177 landlock_restrict_self = 446,
3178 memfd_secret = 447,
3179 process_mrelease = 448,
3180 futex_waitv = 449,
3181 set_mempolicy_home_node = 450,
3182};
3183
3184pub const RiscV64 = enum(usize) {
3185 pub const arch_specific_syscall = 244;
3186
3187 io_setup = 0,
3188 io_destroy = 1,
3189 io_submit = 2,
3190 io_cancel = 3,
3191 io_getevents = 4,
3192 setxattr = 5,
3193 lsetxattr = 6,
3194 fsetxattr = 7,
3195 getxattr = 8,
3196 lgetxattr = 9,
3197 fgetxattr = 10,
3198 listxattr = 11,
3199 llistxattr = 12,
3200 flistxattr = 13,
3201 removexattr = 14,
3202 lremovexattr = 15,
3203 fremovexattr = 16,
3204 getcwd = 17,
3205 lookup_dcookie = 18,
3206 eventfd2 = 19,
3207 epoll_create1 = 20,
3208 epoll_ctl = 21,
3209 epoll_pwait = 22,
3210 dup = 23,
3211 dup3 = 24,
3212 fcntl = 25,
3213 inotify_init1 = 26,
3214 inotify_add_watch = 27,
3215 inotify_rm_watch = 28,
3216 ioctl = 29,
3217 ioprio_set = 30,
3218 ioprio_get = 31,
3219 flock = 32,
3220 mknodat = 33,
3221 mkdirat = 34,
3222 unlinkat = 35,
3223 symlinkat = 36,
3224 linkat = 37,
3225 umount2 = 39,
3226 mount = 40,
3227 pivot_root = 41,
3228 nfsservctl = 42,
3229 statfs = 43,
3230 fstatfs = 44,
3231 truncate = 45,
3232 ftruncate = 46,
3233 fallocate = 47,
3234 faccessat = 48,
3235 chdir = 49,
3236 fchdir = 50,
3237 chroot = 51,
3238 fchmod = 52,
3239 fchmodat = 53,
3240 fchownat = 54,
3241 fchown = 55,
3242 openat = 56,
3243 close = 57,
3244 vhangup = 58,
3245 pipe2 = 59,
3246 quotactl = 60,
3247 getdents64 = 61,
3248 lseek = 62,
3249 read = 63,
3250 write = 64,
3251 readv = 65,
3252 writev = 66,
3253 pread64 = 67,
3254 pwrite64 = 68,
3255 preadv = 69,
3256 pwritev = 70,
3257 sendfile = 71,
3258 pselect6 = 72,
3259 ppoll = 73,
3260 signalfd4 = 74,
3261 vmsplice = 75,
3262 splice = 76,
3263 tee = 77,
3264 readlinkat = 78,
3265 fstatat = 79,
3266 fstat = 80,
3267 sync = 81,
3268 fsync = 82,
3269 fdatasync = 83,
3270 sync_file_range = 84,
3271 timerfd_create = 85,
3272 timerfd_settime = 86,
3273 timerfd_gettime = 87,
3274 utimensat = 88,
3275 acct = 89,
3276 capget = 90,
3277 capset = 91,
3278 personality = 92,
3279 exit = 93,
3280 exit_group = 94,
3281 waitid = 95,
3282 set_tid_address = 96,
3283 unshare = 97,
3284 futex = 98,
3285 set_robust_list = 99,
3286 get_robust_list = 100,
3287 nanosleep = 101,
3288 getitimer = 102,
3289 setitimer = 103,
3290 kexec_load = 104,
3291 init_module = 105,
3292 delete_module = 106,
3293 timer_create = 107,
3294 timer_gettime = 108,
3295 timer_getoverrun = 109,
3296 timer_settime = 110,
3297 timer_delete = 111,
3298 clock_settime = 112,
3299 clock_gettime = 113,
3300 clock_getres = 114,
3301 clock_nanosleep = 115,
3302 syslog = 116,
3303 ptrace = 117,
3304 sched_setparam = 118,
3305 sched_setscheduler = 119,
3306 sched_getscheduler = 120,
3307 sched_getparam = 121,
3308 sched_setaffinity = 122,
3309 sched_getaffinity = 123,
3310 sched_yield = 124,
3311 sched_get_priority_max = 125,
3312 sched_get_priority_min = 126,
3313 sched_rr_get_interval = 127,
3314 restart_syscall = 128,
3315 kill = 129,
3316 tkill = 130,
3317 tgkill = 131,
3318 sigaltstack = 132,
3319 rt_sigsuspend = 133,
3320 rt_sigaction = 134,
3321 rt_sigprocmask = 135,
3322 rt_sigpending = 136,
3323 rt_sigtimedwait = 137,
3324 rt_sigqueueinfo = 138,
3325 rt_sigreturn = 139,
3326 setpriority = 140,
3327 getpriority = 141,
3328 reboot = 142,
3329 setregid = 143,
3330 setgid = 144,
3331 setreuid = 145,
3332 setuid = 146,
3333 setresuid = 147,
3334 getresuid = 148,
3335 setresgid = 149,
3336 getresgid = 150,
3337 setfsuid = 151,
3338 setfsgid = 152,
3339 times = 153,
3340 setpgid = 154,
3341 getpgid = 155,
3342 getsid = 156,
3343 setsid = 157,
3344 getgroups = 158,
3345 setgroups = 159,
3346 uname = 160,
3347 sethostname = 161,
3348 setdomainname = 162,
3349 getrlimit = 163,
3350 setrlimit = 164,
3351 getrusage = 165,
3352 umask = 166,
3353 prctl = 167,
3354 getcpu = 168,
3355 gettimeofday = 169,
3356 settimeofday = 170,
3357 adjtimex = 171,
3358 getpid = 172,
3359 getppid = 173,
3360 getuid = 174,
3361 geteuid = 175,
3362 getgid = 176,
3363 getegid = 177,
3364 gettid = 178,
3365 sysinfo = 179,
3366 mq_open = 180,
3367 mq_unlink = 181,
3368 mq_timedsend = 182,
3369 mq_timedreceive = 183,
3370 mq_notify = 184,
3371 mq_getsetattr = 185,
3372 msgget = 186,
3373 msgctl = 187,
3374 msgrcv = 188,
3375 msgsnd = 189,
3376 semget = 190,
3377 semctl = 191,
3378 semtimedop = 192,
3379 semop = 193,
3380 shmget = 194,
3381 shmctl = 195,
3382 shmat = 196,
3383 shmdt = 197,
3384 socket = 198,
3385 socketpair = 199,
3386 bind = 200,
3387 listen = 201,
3388 accept = 202,
3389 connect = 203,
3390 getsockname = 204,
3391 getpeername = 205,
3392 sendto = 206,
3393 recvfrom = 207,
3394 setsockopt = 208,
3395 getsockopt = 209,
3396 shutdown = 210,
3397 sendmsg = 211,
3398 recvmsg = 212,
3399 readahead = 213,
3400 brk = 214,
3401 munmap = 215,
3402 mremap = 216,
3403 add_key = 217,
3404 request_key = 218,
3405 keyctl = 219,
3406 clone = 220,
3407 execve = 221,
3408 mmap = 222,
3409 fadvise64 = 223,
3410 swapon = 224,
3411 swapoff = 225,
3412 mprotect = 226,
3413 msync = 227,
3414 mlock = 228,
3415 munlock = 229,
3416 mlockall = 230,
3417 munlockall = 231,
3418 mincore = 232,
3419 madvise = 233,
3420 remap_file_pages = 234,
3421 mbind = 235,
3422 get_mempolicy = 236,
3423 set_mempolicy = 237,
3424 migrate_pages = 238,
3425 move_pages = 239,
3426 rt_tgsigqueueinfo = 240,
3427 perf_event_open = 241,
3428 accept4 = 242,
3429 recvmmsg = 243,
3430 wait4 = 260,
3431 prlimit64 = 261,
3432 fanotify_init = 262,
3433 fanotify_mark = 263,
3434 name_to_handle_at = 264,
3435 open_by_handle_at = 265,
3436 clock_adjtime = 266,
3437 syncfs = 267,
3438 setns = 268,
3439 sendmmsg = 269,
3440 process_vm_readv = 270,
3441 process_vm_writev = 271,
3442 kcmp = 272,
3443 finit_module = 273,
3444 sched_setattr = 274,
3445 sched_getattr = 275,
3446 renameat2 = 276,
3447 seccomp = 277,
3448 getrandom = 278,
3449 memfd_create = 279,
3450 bpf = 280,
3451 execveat = 281,
3452 userfaultfd = 282,
3453 membarrier = 283,
3454 mlock2 = 284,
3455 copy_file_range = 285,
3456 preadv2 = 286,
3457 pwritev2 = 287,
3458 pkey_mprotect = 288,
3459 pkey_alloc = 289,
3460 pkey_free = 290,
3461 statx = 291,
3462 io_pgetevents = 292,
3463 rseq = 293,
3464 kexec_file_load = 294,
3465 pidfd_send_signal = 424,
3466 io_uring_setup = 425,
3467 io_uring_enter = 426,
3468 io_uring_register = 427,
3469 open_tree = 428,
3470 move_mount = 429,
3471 fsopen = 430,
3472 fsconfig = 431,
3473 fsmount = 432,
3474 fspick = 433,
3475 pidfd_open = 434,
3476 clone3 = 435,
3477 close_range = 436,
3478 openat2 = 437,
3479 pidfd_getfd = 438,
3480 faccessat2 = 439,
3481 process_madvise = 440,
3482 epoll_pwait2 = 441,
3483 mount_setattr = 442,
3484 quotactl_fd = 443,
3485 landlock_create_ruleset = 444,
3486 landlock_add_rule = 445,
3487 landlock_restrict_self = 446,
3488 process_mrelease = 448,
3489 futex_waitv = 449,
3490 set_mempolicy_home_node = 450,
3491
3492 riscv_flush_icache = arch_specific_syscall + 15,
3493};
lib/std/os/linux/x86_64.zig+1-363
......@@ -1,6 +1,7 @@
11const std = @import("../../std.zig");
22const maxInt = std.math.maxInt;
33const linux = std.os.linux;
4const SYS = linux.SYS;
45const iovec = std.os.iovec;
56const iovec_const = std.os.iovec_const;
67
......@@ -123,369 +124,6 @@ pub const nlink_t = usize;
123124pub const blksize_t = isize;
124125pub const blkcnt_t = isize;
125126
126pub const SYS = enum(usize) {
127 read = 0,
128 write = 1,
129 open = 2,
130 close = 3,
131 stat = 4,
132 fstat = 5,
133 lstat = 6,
134 poll = 7,
135 lseek = 8,
136 mmap = 9,
137 mprotect = 10,
138 munmap = 11,
139 brk = 12,
140 rt_sigaction = 13,
141 rt_sigprocmask = 14,
142 rt_sigreturn = 15,
143 ioctl = 16,
144 pread = 17,
145 pwrite = 18,
146 readv = 19,
147 writev = 20,
148 access = 21,
149 pipe = 22,
150 select = 23,
151 sched_yield = 24,
152 mremap = 25,
153 msync = 26,
154 mincore = 27,
155 madvise = 28,
156 shmget = 29,
157 shmat = 30,
158 shmctl = 31,
159 dup = 32,
160 dup2 = 33,
161 pause = 34,
162 nanosleep = 35,
163 getitimer = 36,
164 alarm = 37,
165 setitimer = 38,
166 getpid = 39,
167 sendfile = 40,
168 socket = 41,
169 connect = 42,
170 accept = 43,
171 sendto = 44,
172 recvfrom = 45,
173 sendmsg = 46,
174 recvmsg = 47,
175 shutdown = 48,
176 bind = 49,
177 listen = 50,
178 getsockname = 51,
179 getpeername = 52,
180 socketpair = 53,
181 setsockopt = 54,
182 getsockopt = 55,
183 clone = 56,
184 fork = 57,
185 vfork = 58,
186 execve = 59,
187 exit = 60,
188 wait4 = 61,
189 kill = 62,
190 uname = 63,
191 semget = 64,
192 semop = 65,
193 semctl = 66,
194 shmdt = 67,
195 msgget = 68,
196 msgsnd = 69,
197 msgrcv = 70,
198 msgctl = 71,
199 fcntl = 72,
200 flock = 73,
201 fsync = 74,
202 fdatasync = 75,
203 truncate = 76,
204 ftruncate = 77,
205 getdents = 78,
206 getcwd = 79,
207 chdir = 80,
208 fchdir = 81,
209 rename = 82,
210 mkdir = 83,
211 rmdir = 84,
212 creat = 85,
213 link = 86,
214 unlink = 87,
215 symlink = 88,
216 readlink = 89,
217 chmod = 90,
218 fchmod = 91,
219 chown = 92,
220 fchown = 93,
221 lchown = 94,
222 umask = 95,
223 gettimeofday = 96,
224 getrlimit = 97,
225 getrusage = 98,
226 sysinfo = 99,
227 times = 100,
228 ptrace = 101,
229 getuid = 102,
230 syslog = 103,
231 getgid = 104,
232 setuid = 105,
233 setgid = 106,
234 geteuid = 107,
235 getegid = 108,
236 setpgid = 109,
237 getppid = 110,
238 getpgrp = 111,
239 setsid = 112,
240 setreuid = 113,
241 setregid = 114,
242 getgroups = 115,
243 setgroups = 116,
244 setresuid = 117,
245 getresuid = 118,
246 setresgid = 119,
247 getresgid = 120,
248 getpgid = 121,
249 setfsuid = 122,
250 setfsgid = 123,
251 getsid = 124,
252 capget = 125,
253 capset = 126,
254 rt_sigpending = 127,
255 rt_sigtimedwait = 128,
256 rt_sigqueueinfo = 129,
257 rt_sigsuspend = 130,
258 sigaltstack = 131,
259 utime = 132,
260 mknod = 133,
261 uselib = 134,
262 personality = 135,
263 ustat = 136,
264 statfs = 137,
265 fstatfs = 138,
266 sysfs = 139,
267 getpriority = 140,
268 setpriority = 141,
269 sched_setparam = 142,
270 sched_getparam = 143,
271 sched_setscheduler = 144,
272 sched_getscheduler = 145,
273 sched_get_priority_max = 146,
274 sched_get_priority_min = 147,
275 sched_rr_get_interval = 148,
276 mlock = 149,
277 munlock = 150,
278 mlockall = 151,
279 munlockall = 152,
280 vhangup = 153,
281 modify_ldt = 154,
282 pivot_root = 155,
283 _sysctl = 156,
284 prctl = 157,
285 arch_prctl = 158,
286 adjtimex = 159,
287 setrlimit = 160,
288 chroot = 161,
289 sync = 162,
290 acct = 163,
291 settimeofday = 164,
292 mount = 165,
293 umount2 = 166,
294 swapon = 167,
295 swapoff = 168,
296 reboot = 169,
297 sethostname = 170,
298 setdomainname = 171,
299 iopl = 172,
300 ioperm = 173,
301 create_module = 174,
302 init_module = 175,
303 delete_module = 176,
304 get_kernel_syms = 177,
305 query_module = 178,
306 quotactl = 179,
307 nfsservctl = 180,
308 getpmsg = 181,
309 putpmsg = 182,
310 afs_syscall = 183,
311 tuxcall = 184,
312 security = 185,
313 gettid = 186,
314 readahead = 187,
315 setxattr = 188,
316 lsetxattr = 189,
317 fsetxattr = 190,
318 getxattr = 191,
319 lgetxattr = 192,
320 fgetxattr = 193,
321 listxattr = 194,
322 llistxattr = 195,
323 flistxattr = 196,
324 removexattr = 197,
325 lremovexattr = 198,
326 fremovexattr = 199,
327 tkill = 200,
328 time = 201,
329 futex = 202,
330 sched_setaffinity = 203,
331 sched_getaffinity = 204,
332 set_thread_area = 205,
333 io_setup = 206,
334 io_destroy = 207,
335 io_getevents = 208,
336 io_submit = 209,
337 io_cancel = 210,
338 get_thread_area = 211,
339 lookup_dcookie = 212,
340 epoll_create = 213,
341 epoll_ctl_old = 214,
342 epoll_wait_old = 215,
343 remap_file_pages = 216,
344 getdents64 = 217,
345 set_tid_address = 218,
346 restart_syscall = 219,
347 semtimedop = 220,
348 fadvise64 = 221,
349 timer_create = 222,
350 timer_settime = 223,
351 timer_gettime = 224,
352 timer_getoverrun = 225,
353 timer_delete = 226,
354 clock_settime = 227,
355 clock_gettime = 228,
356 clock_getres = 229,
357 clock_nanosleep = 230,
358 exit_group = 231,
359 epoll_wait = 232,
360 epoll_ctl = 233,
361 tgkill = 234,
362 utimes = 235,
363 vserver = 236,
364 mbind = 237,
365 set_mempolicy = 238,
366 get_mempolicy = 239,
367 mq_open = 240,
368 mq_unlink = 241,
369 mq_timedsend = 242,
370 mq_timedreceive = 243,
371 mq_notify = 244,
372 mq_getsetattr = 245,
373 kexec_load = 246,
374 waitid = 247,
375 add_key = 248,
376 request_key = 249,
377 keyctl = 250,
378 ioprio_set = 251,
379 ioprio_get = 252,
380 inotify_init = 253,
381 inotify_add_watch = 254,
382 inotify_rm_watch = 255,
383 migrate_pages = 256,
384 openat = 257,
385 mkdirat = 258,
386 mknodat = 259,
387 fchownat = 260,
388 futimesat = 261,
389 fstatat = 262,
390 unlinkat = 263,
391 renameat = 264,
392 linkat = 265,
393 symlinkat = 266,
394 readlinkat = 267,
395 fchmodat = 268,
396 faccessat = 269,
397 pselect6 = 270,
398 ppoll = 271,
399 unshare = 272,
400 set_robust_list = 273,
401 get_robust_list = 274,
402 splice = 275,
403 tee = 276,
404 sync_file_range = 277,
405 vmsplice = 278,
406 move_pages = 279,
407 utimensat = 280,
408 epoll_pwait = 281,
409 signalfd = 282,
410 timerfd_create = 283,
411 eventfd = 284,
412 fallocate = 285,
413 timerfd_settime = 286,
414 timerfd_gettime = 287,
415 accept4 = 288,
416 signalfd4 = 289,
417 eventfd2 = 290,
418 epoll_create1 = 291,
419 dup3 = 292,
420 pipe2 = 293,
421 inotify_init1 = 294,
422 preadv = 295,
423 pwritev = 296,
424 rt_tgsigqueueinfo = 297,
425 perf_event_open = 298,
426 recvmmsg = 299,
427 fanotify_init = 300,
428 fanotify_mark = 301,
429 prlimit64 = 302,
430 name_to_handle_at = 303,
431 open_by_handle_at = 304,
432 clock_adjtime = 305,
433 syncfs = 306,
434 sendmmsg = 307,
435 setns = 308,
436 getcpu = 309,
437 process_vm_readv = 310,
438 process_vm_writev = 311,
439 kcmp = 312,
440 finit_module = 313,
441 sched_setattr = 314,
442 sched_getattr = 315,
443 renameat2 = 316,
444 seccomp = 317,
445 getrandom = 318,
446 memfd_create = 319,
447 kexec_file_load = 320,
448 bpf = 321,
449 execveat = 322,
450 userfaultfd = 323,
451 membarrier = 324,
452 mlock2 = 325,
453 copy_file_range = 326,
454 preadv2 = 327,
455 pwritev2 = 328,
456 pkey_mprotect = 329,
457 pkey_alloc = 330,
458 pkey_free = 331,
459 statx = 332,
460 io_pgetevents = 333,
461 rseq = 334,
462 pidfd_send_signal = 424,
463 io_uring_setup = 425,
464 io_uring_enter = 426,
465 io_uring_register = 427,
466 open_tree = 428,
467 move_mount = 429,
468 fsopen = 430,
469 fsconfig = 431,
470 fsmount = 432,
471 fspick = 433,
472 pidfd_open = 434,
473 clone3 = 435,
474 close_range = 436,
475 openat2 = 437,
476 pidfd_getfd = 438,
477 faccessat2 = 439,
478 process_madvise = 440,
479 epoll_pwait2 = 441,
480 mount_setattr = 442,
481 landlock_create_ruleset = 444,
482 landlock_add_rule = 445,
483 landlock_restrict_self = 446,
484 memfd_secret = 447,
485
486 _,
487};
488
489127pub const O = struct {
490128 pub const CREAT = 0o100;
491129 pub const EXCL = 0o200;
tools/generate_linux_syscalls.zig created+356
......@@ -0,0 +1,356 @@
1//! To get started, run this tool with no args and read the help message.
2//!
3//! This tool extracts the Linux syscall numbers from the Linux source tree
4//! directly, and emits an enumerated list per supported Zig arch.
5
6const std = @import("std");
7const mem = std.mem;
8const fmt = std.fmt;
9const zig = std.zig;
10const fs = std.fs;
11
12const stdlib_renames = std.ComptimeStringMap([]const u8, .{
13 // Most 64-bit archs.
14 .{ "newfstatat", "fstatat64" },
15 // POWER.
16 .{ "sync_file_range2", "sync_file_range" },
17 // ARM EABI/Thumb.
18 .{ "arm_sync_file_range", "sync_file_range" },
19 .{ "arm_fadvise64_64", "fadvise64_64" },
20});
21
22pub fn main() !void {
23 var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
24 defer arena.deinit();
25 const allocator = arena.allocator();
26
27 const args = try std.process.argsAlloc(allocator);
28 if (args.len < 3 or mem.eql(u8, args[1], "--help"))
29 usageAndExit(std.io.getStdErr(), args[0], 1);
30 const zig_exe = args[1];
31 const linux_path = args[2];
32
33 var buf_out = std.io.bufferedWriter(std.io.getStdOut().writer());
34 const writer = buf_out.writer();
35
36 // As of 5.17.1, the largest table is 23467 bytes.
37 // 32k should be enough for now.
38 var buf = try allocator.alloc(u8, 1 << 15);
39 const linux_dir = try std.fs.openDirAbsolute(linux_path, .{});
40
41 try writer.writeAll(
42 \\// This file is automatically generated.
43 \\// See tools/generate_linux_syscalls.zig for more info.
44 \\
45 \\
46 );
47
48 // These architectures have their syscall definitions generated from a TSV
49 // file, processed via scripts/syscallhdr.sh.
50 {
51 try writer.writeAll("pub const X86 = enum(usize) {\n");
52
53 const table = try linux_dir.readFile("arch/x86/entry/syscalls/syscall_32.tbl", buf);
54 var lines = mem.tokenize(u8, table, "\n");
55 while (lines.next()) |line| {
56 if (line[0] == '#') continue;
57
58 var fields = mem.tokenize(u8, line, " \t");
59 const number = fields.next() orelse return error.Incomplete;
60 // abi is always i386
61 _ = fields.next() orelse return error.Incomplete;
62 const name = fields.next() orelse return error.Incomplete;
63
64 try writer.print(" {s} = {s},\n", .{ zig.fmtId(name), number });
65 }
66
67 try writer.writeAll("};\n\n");
68 }
69 {
70 try writer.writeAll("pub const X64 = enum(usize) {\n");
71
72 const table = try linux_dir.readFile("arch/x86/entry/syscalls/syscall_64.tbl", buf);
73 var lines = mem.tokenize(u8, table, "\n");
74 while (lines.next()) |line| {
75 if (line[0] == '#') continue;
76
77 var fields = mem.tokenize(u8, line, " \t");
78 const number = fields.next() orelse return error.Incomplete;
79 const abi = fields.next() orelse return error.Incomplete;
80 // The x32 abi syscalls are always at the end.
81 if (mem.eql(u8, abi, "x32")) break;
82 const name = fields.next() orelse return error.Incomplete;
83
84 const fixed_name = if (stdlib_renames.get(name)) |fixed| fixed else name;
85 try writer.print(" {s} = {s},\n", .{ zig.fmtId(fixed_name), number });
86 }
87
88 try writer.writeAll("};\n\n");
89 }
90 {
91 try writer.writeAll(
92 \\pub const Arm = enum(usize) {
93 \\ const arm_base = 0x0f0000;
94 \\
95 \\
96 );
97
98 const table = try linux_dir.readFile("arch/arm/tools/syscall.tbl", buf);
99 var lines = mem.tokenize(u8, table, "\n");
100 while (lines.next()) |line| {
101 if (line[0] == '#') continue;
102
103 var fields = mem.tokenize(u8, line, " \t");
104 const number = fields.next() orelse return error.Incomplete;
105 const abi = fields.next() orelse return error.Incomplete;
106 if (mem.eql(u8, abi, "oabi")) continue;
107 const name = fields.next() orelse return error.Incomplete;
108
109 const fixed_name = if (stdlib_renames.get(name)) |fixed| fixed else name;
110 try writer.print(" {s} = {s},\n", .{ zig.fmtId(fixed_name), number });
111 }
112
113 // TODO: maybe extract these from arch/arm/include/uapi/asm/unistd.h
114 try writer.writeAll(
115 \\
116 \\ breakpoint = arm_base + 1,
117 \\ cacheflush = arm_base + 2,
118 \\ usr26 = arm_base + 3,
119 \\ usr32 = arm_base + 4,
120 \\ set_tls = arm_base + 5,
121 \\ get_tls = arm_base + 6,
122 \\};
123 \\
124 \\
125 );
126 }
127 {
128 try writer.writeAll("pub const Sparc64 = enum(usize) {\n");
129 const table = try linux_dir.readFile("arch/sparc/kernel/syscalls/syscall.tbl", buf);
130 var lines = mem.tokenize(u8, table, "\n");
131 while (lines.next()) |line| {
132 if (line[0] == '#') continue;
133
134 var fields = mem.tokenize(u8, line, " \t");
135 const number = fields.next() orelse return error.Incomplete;
136 const abi = fields.next() orelse return error.Incomplete;
137 if (mem.eql(u8, abi, "32")) continue;
138 const name = fields.next() orelse return error.Incomplete;
139
140 try writer.print(" {s} = {s},\n", .{ zig.fmtId(name), number });
141 }
142
143 try writer.writeAll("};\n\n");
144 }
145 {
146 try writer.writeAll(
147 \\pub const Mips = enum(usize) {
148 \\ pub const Linux = 4000;
149 \\
150 \\
151 );
152
153 const table = try linux_dir.readFile("arch/mips/kernel/syscalls/syscall_o32.tbl", buf);
154 var lines = mem.tokenize(u8, table, "\n");
155 while (lines.next()) |line| {
156 if (line[0] == '#') continue;
157
158 var fields = mem.tokenize(u8, line, " \t");
159 const number = fields.next() orelse return error.Incomplete;
160 // abi is always o32
161 _ = fields.next() orelse return error.Incomplete;
162 const name = fields.next() orelse return error.Incomplete;
163 if (mem.startsWith(u8, name, "unused")) continue;
164
165 try writer.print(" {s} = Linux + {s},\n", .{ zig.fmtId(name), number });
166 }
167
168 try writer.writeAll("};\n\n");
169 }
170 {
171 try writer.writeAll("pub const PowerPC = enum(usize) {\n");
172
173 const table = try linux_dir.readFile("arch/powerpc/kernel/syscalls/syscall.tbl", buf);
174 var list_64 = std.ArrayList(u8).init(allocator);
175 var lines = mem.tokenize(u8, table, "\n");
176 while (lines.next()) |line| {
177 if (line[0] == '#') continue;
178
179 var fields = mem.tokenize(u8, line, " \t");
180 const number = fields.next() orelse return error.Incomplete;
181 const abi = fields.next() orelse return error.Incomplete;
182 const name = fields.next() orelse return error.Incomplete;
183 const fixed_name = if (stdlib_renames.get(name)) |fixed| fixed else name;
184
185 if (mem.eql(u8, abi, "spu")) {
186 continue;
187 } else if (mem.eql(u8, abi, "32")) {
188 try writer.print(" {s} = {s},\n", .{ zig.fmtId(fixed_name), number });
189 } else if (mem.eql(u8, abi, "64")) {
190 try list_64.writer().print(" {s} = {s},\n", .{ zig.fmtId(fixed_name), number });
191 } else { // common/nospu
192 try writer.print(" {s} = {s},\n", .{ zig.fmtId(fixed_name), number });
193 try list_64.writer().print(" {s} = {s},\n", .{ zig.fmtId(fixed_name), number });
194 }
195 }
196
197 try writer.writeAll(
198 \\};
199 \\
200 \\pub const PowerPC64 = enum(usize) {
201 \\
202 );
203 try writer.writeAll(list_64.items);
204 try writer.writeAll("};\n\n");
205 }
206
207 // Newer architectures (starting with aarch64 c. 2012) now use the same C
208 // header file for their syscall numbers. Arch-specific headers are used to
209 // define pre-proc. vars that add additional (usually obsolete) syscalls.
210 //
211 // TODO:
212 // - It would be better to use libclang/translate-c directly to extract the definitions.
213 // - The `-dD` option only does minimal pre-processing and doesn't resolve addition,
214 // so arch specific syscalls are dealt with manually.
215 {
216 try writer.writeAll("pub const Arm64 = enum(usize) {\n");
217
218 const child_args = [_][]const u8{
219 zig_exe,
220 "cc",
221 "-target",
222 "aarch64-linux-gnu",
223 "-E",
224 // -dM is cleaner, but -dD preserves iteration order.
225 "-dD",
226 // No need for line-markers.
227 "-P",
228 "-nostdinc",
229 // Using -I=[dir] includes the zig linux headers, which we don't want.
230 "-Iinclude",
231 "-Iinclude/uapi",
232 "arch/arm64/include/uapi/asm/unistd.h",
233 };
234
235 const child_result = try std.ChildProcess.exec(.{
236 .allocator = allocator,
237 .argv = &child_args,
238 .cwd = linux_path,
239 .cwd_dir = linux_dir,
240 .max_output_bytes = 20 * 1024,
241 });
242 if (child_result.stderr.len > 0) std.debug.print("{s}\n", .{child_result.stderr});
243
244 const defines = switch (child_result.term) {
245 .Exited => |code| if (code == 0) child_result.stdout else {
246 std.debug.print("zig cc exited with code {d}\n", .{code});
247 std.process.exit(1);
248 },
249 else => {
250 std.debug.print("zig cc crashed\n", .{});
251 std.process.exit(1);
252 },
253 };
254
255 var lines = mem.tokenize(u8, defines, "\n");
256 loop: while (lines.next()) |line| {
257 var fields = mem.tokenize(u8, line, " \t");
258 const cmd = fields.next() orelse return error.Incomplete;
259 if (!mem.eql(u8, cmd, "#define")) continue;
260 const define = fields.next() orelse return error.Incomplete;
261 const number = fields.next() orelse continue;
262
263 if (!std.ascii.isDigit(number[0])) continue;
264 if (!mem.startsWith(u8, define, "__NR")) continue;
265 const name = mem.trimLeft(u8, mem.trimLeft(u8, define, "__NR3264_"), "__NR_");
266 if (mem.eql(u8, name, "arch_specific_syscall")) continue;
267 if (mem.eql(u8, name, "syscalls")) break :loop;
268
269 const fixed_name = if (stdlib_renames.get(name)) |fixed| fixed else name;
270 try writer.print(" {s} = {s},\n", .{ zig.fmtId(fixed_name), number });
271 }
272
273 try writer.writeAll("};\n\n");
274 }
275 {
276 try writer.writeAll(
277 \\pub const RiscV64 = enum(usize) {
278 \\ pub const arch_specific_syscall = 244;
279 \\
280 \\
281 );
282
283 const child_args = [_][]const u8{
284 zig_exe,
285 "cc",
286 "-target",
287 "riscv64-linux-gnu",
288 "-E",
289 "-dD",
290 "-P",
291 "-nostdinc",
292 "-Iinclude",
293 "-Iinclude/uapi",
294 "arch/riscv/include/uapi/asm/unistd.h",
295 };
296
297 const child_result = try std.ChildProcess.exec(.{
298 .allocator = allocator,
299 .argv = &child_args,
300 .cwd = linux_path,
301 .cwd_dir = linux_dir,
302 .max_output_bytes = 20 * 1024,
303 });
304 if (child_result.stderr.len > 0) std.debug.print("{s}\n", .{child_result.stderr});
305
306 const defines = switch (child_result.term) {
307 .Exited => |code| if (code == 0) child_result.stdout else {
308 std.debug.print("zig cc exited with code {d}\n", .{code});
309 std.process.exit(1);
310 },
311 else => {
312 std.debug.print("zig cc crashed\n", .{});
313 std.process.exit(1);
314 },
315 };
316
317 var lines = mem.tokenize(u8, defines, "\n");
318 loop: while (lines.next()) |line| {
319 var fields = mem.tokenize(u8, line, " \t");
320 const cmd = fields.next() orelse return error.Incomplete;
321 if (!mem.eql(u8, cmd, "#define")) continue;
322 const define = fields.next() orelse return error.Incomplete;
323 const number = fields.next() orelse continue;
324
325 if (!std.ascii.isDigit(number[0])) continue;
326 if (!mem.startsWith(u8, define, "__NR")) continue;
327 const name = mem.trimLeft(u8, mem.trimLeft(u8, define, "__NR3264_"), "__NR_");
328 if (mem.eql(u8, name, "arch_specific_syscall")) continue;
329 if (mem.eql(u8, name, "syscalls")) break :loop;
330
331 const fixed_name = if (stdlib_renames.get(name)) |fixed| fixed else name;
332 try writer.print(" {s} = {s},\n", .{ zig.fmtId(fixed_name), number });
333 }
334
335 try writer.writeAll(
336 \\
337 \\ riscv_flush_icache = arch_specific_syscall + 15,
338 \\};
339 \\
340 );
341 }
342
343 try buf_out.flush();
344}
345
346fn usageAndExit(file: fs.File, arg0: []const u8, code: u8) noreturn {
347 file.writer().print(
348 \\Usage: {s} /path/to/zig /path/to/linux
349 \\Alternative Usage: zig run /path/to/git/zig/tools/generate_linux_syscalls.zig -- /path/to/zig /path/to/linux
350 \\
351 \\Generates the list of Linux syscalls for each supported cpu arch, using the Linux development tree.
352 \\Prints to stdout Zig code which you can use to replace the file lib/std/os/linux/syscalls.zig.
353 \\
354 , .{arg0}) catch std.process.exit(1);
355 std.process.exit(code);
356}