authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-08-15 05:38:02+02:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2025-08-15 05:38:02+02:00
log47e65287629f5d9138d8d494812f9ed724d7887e
tree051cea36101ac99e426c965fe99d05f717c3e761
parent08f0780cb2e33ae4d1f7059b6f173459b46adc25
parent6080f2d5eaf4eee89fe86b5dc014d50f609df466
signaturebadge-check Signed by PGP key B5690EEEBB952194

Merge pull request #24702 from The-King-of-Toasters/syscall-tables

Rewrite Linux syscalls generation

3 files changed, 2503 insertions(+), 2472 deletions(-)

lib/std/os/linux.zig+77-25
...@@ -144,6 +144,7 @@ pub const SYS = switch (@import("builtin").cpu.arch) {...@@ -144,6 +144,7 @@ pub const SYS = switch (@import("builtin").cpu.arch) {
144 else => syscalls.X64,144 else => syscalls.X64,
145 },145 },
146 .xtensa => syscalls.Xtensa,146 .xtensa => syscalls.Xtensa,
147 .or1k => syscalls.OpenRisc,
147 else => @compileError("The Zig Standard Library is missing syscall definitions for the target CPU architecture"),148 else => @compileError("The Zig Standard Library is missing syscall definitions for the target CPU architecture"),
148};149};
149150
...@@ -643,7 +644,13 @@ pub fn futimens(fd: i32, times: ?*const [2]timespec) usize {...@@ -643,7 +644,13 @@ pub fn futimens(fd: i32, times: ?*const [2]timespec) usize {
643}644}
644645
645pub fn utimensat(dirfd: i32, path: ?[*:0]const u8, times: ?*const [2]timespec, flags: u32) usize {646pub fn utimensat(dirfd: i32, path: ?[*:0]const u8, times: ?*const [2]timespec, flags: u32) usize {
646 return syscall4(.utimensat, @as(usize, @bitCast(@as(isize, dirfd))), @intFromPtr(path), @intFromPtr(times), flags);647 return syscall4(
648 if (@hasField(SYS, "utimensat")) .utimensat else .utimensat_time64,
649 @as(usize, @bitCast(@as(isize, dirfd))),
650 @intFromPtr(path),
651 @intFromPtr(times),
652 flags,
653 );
647}654}
648655
649pub fn fallocate(fd: i32, mode: i32, offset: i64, length: i64) usize {656pub fn fallocate(fd: i32, mode: i32, offset: i64, length: i64) usize {
...@@ -685,19 +692,38 @@ pub const futex_param4 = extern union {...@@ -685,19 +692,38 @@ pub const futex_param4 = extern union {
685/// The futex_op parameter is a sub-command and flags. The sub-command692/// The futex_op parameter is a sub-command and flags. The sub-command
686/// defines which of the subsequent paramters are relevant.693/// defines which of the subsequent paramters are relevant.
687pub fn futex(uaddr: *const anyopaque, futex_op: FUTEX_OP, val: u32, val2timeout: futex_param4, uaddr2: ?*const anyopaque, val3: u32) usize {694pub fn futex(uaddr: *const anyopaque, futex_op: FUTEX_OP, val: u32, val2timeout: futex_param4, uaddr2: ?*const anyopaque, val3: u32) usize {
688 return syscall6(.futex, @intFromPtr(uaddr), @as(u32, @bitCast(futex_op)), val, @intFromPtr(val2timeout.timeout), @intFromPtr(uaddr2), val3);695 return syscall6(
696 if (@hasField(SYS, "futex")) .futex else .futex_time64,
697 @intFromPtr(uaddr),
698 @as(u32, @bitCast(futex_op)),
699 val,
700 @intFromPtr(val2timeout.timeout),
701 @intFromPtr(uaddr2),
702 val3,
703 );
689}704}
690705
691/// Three-argument variation of the v1 futex call. Only suitable for a706/// Three-argument variation of the v1 futex call. Only suitable for a
692/// futex_op that ignores the remaining arguments (e.g., FUTUX_OP.WAKE).707/// futex_op that ignores the remaining arguments (e.g., FUTUX_OP.WAKE).
693pub fn futex_3arg(uaddr: *const anyopaque, futex_op: FUTEX_OP, val: u32) usize {708pub fn futex_3arg(uaddr: *const anyopaque, futex_op: FUTEX_OP, val: u32) usize {
694 return syscall3(.futex, @intFromPtr(uaddr), @as(u32, @bitCast(futex_op)), val);709 return syscall3(
710 if (@hasField(SYS, "futex")) .futex else .futex_time64,
711 @intFromPtr(uaddr),
712 @as(u32, @bitCast(futex_op)),
713 val,
714 );
695}715}
696716
697/// Four-argument variation on the v1 futex call. Only suitable for717/// Four-argument variation on the v1 futex call. Only suitable for
698/// futex_op that ignores the remaining arguments (e.g., FUTEX_OP.WAIT).718/// futex_op that ignores the remaining arguments (e.g., FUTEX_OP.WAIT).
699pub fn futex_4arg(uaddr: *const anyopaque, futex_op: FUTEX_OP, val: u32, timeout: ?*const timespec) usize {719pub fn futex_4arg(uaddr: *const anyopaque, futex_op: FUTEX_OP, val: u32, timeout: ?*const timespec) usize {
700 return syscall4(.futex, @intFromPtr(uaddr), @as(u32, @bitCast(futex_op)), val, @intFromPtr(timeout));720 return syscall4(
721 if (@hasField(SYS, "futex")) .futex else .futex_time64,
722 @intFromPtr(uaddr),
723 @as(u32, @bitCast(futex_op)),
724 val,
725 @intFromPtr(timeout),
726 );
701}727}
702728
703/// Given an array of `futex2_waitone`, wait on each uaddr.729/// Given an array of `futex2_waitone`, wait on each uaddr.
...@@ -1053,28 +1079,32 @@ pub fn munlockall() usize {...@@ -1053,28 +1079,32 @@ pub fn munlockall() usize {
1053}1079}
10541080
1055pub fn poll(fds: [*]pollfd, n: nfds_t, timeout: i32) usize {1081pub fn poll(fds: [*]pollfd, n: nfds_t, timeout: i32) usize {
1056 if (@hasField(SYS, "poll")) {1082 return if (@hasField(SYS, "poll"))
1057 return syscall3(.poll, @intFromPtr(fds), n, @as(u32, @bitCast(timeout)));1083 return syscall3(.poll, @intFromPtr(fds), n, @as(u32, @bitCast(timeout)))
1058 } else {1084 else
1059 return syscall5(1085 ppoll(
1060 .ppoll,1086 fds,
1061 @intFromPtr(fds),
1062 n,1087 n,
1063 @intFromPtr(if (timeout >= 0)1088 if (timeout >= 0)
1064 &timespec{1089 @constCast(&timespec{
1065 .sec = @divTrunc(timeout, 1000),1090 .sec = @divTrunc(timeout, 1000),
1066 .nsec = @rem(timeout, 1000) * 1000000,1091 .nsec = @rem(timeout, 1000) * 1000000,
1067 }1092 })
1068 else1093 else
1069 null),1094 null,
1070 0,1095 null,
1071 NSIG / 8,
1072 );1096 );
1073 }
1074}1097}
10751098
1076pub fn ppoll(fds: [*]pollfd, n: nfds_t, timeout: ?*timespec, sigmask: ?*const sigset_t) usize {1099pub fn ppoll(fds: [*]pollfd, n: nfds_t, timeout: ?*timespec, sigmask: ?*const sigset_t) usize {
1077 return syscall5(.ppoll, @intFromPtr(fds), n, @intFromPtr(timeout), @intFromPtr(sigmask), NSIG / 8);1100 return syscall5(
1101 if (@hasField(SYS, "ppoll")) .ppoll else .ppoll_time64,
1102 @intFromPtr(fds),
1103 n,
1104 @intFromPtr(timeout),
1105 @intFromPtr(sigmask),
1106 NSIG / 8,
1107 );
1078}1108}
10791109
1080pub fn read(fd: i32, buf: [*]u8, count: usize) usize {1110pub fn read(fd: i32, buf: [*]u8, count: usize) usize {
...@@ -1598,7 +1628,11 @@ pub fn clock_gettime(clk_id: clockid_t, tp: *timespec) usize {...@@ -1598,7 +1628,11 @@ pub fn clock_gettime(clk_id: clockid_t, tp: *timespec) usize {
1598 }1628 }
1599 }1629 }
1600 }1630 }
1601 return syscall2(.clock_gettime, @intFromEnum(clk_id), @intFromPtr(tp));1631 return syscall2(
1632 if (@hasField(SYS, "clock_gettime")) .clock_gettime else .clock_gettime64,
1633 @intFromEnum(clk_id),
1634 @intFromPtr(tp),
1635 );
1602}1636}
16031637
1604fn init_vdso_clock_gettime(clk: clockid_t, ts: *timespec) callconv(.c) usize {1638fn init_vdso_clock_gettime(clk: clockid_t, ts: *timespec) callconv(.c) usize {
...@@ -1612,16 +1646,24 @@ fn init_vdso_clock_gettime(clk: clockid_t, ts: *timespec) callconv(.c) usize {...@@ -1612,16 +1646,24 @@ fn init_vdso_clock_gettime(clk: clockid_t, ts: *timespec) callconv(.c) usize {
1612}1646}
16131647
1614pub fn clock_getres(clk_id: i32, tp: *timespec) usize {1648pub fn clock_getres(clk_id: i32, tp: *timespec) usize {
1615 return syscall2(.clock_getres, @as(usize, @bitCast(@as(isize, clk_id))), @intFromPtr(tp));1649 return syscall2(
1650 if (@hasField(SYS, "clock_getres")) .clock_getres else .clock_getres_time64,
1651 @as(usize, @bitCast(@as(isize, clk_id))),
1652 @intFromPtr(tp),
1653 );
1616}1654}
16171655
1618pub fn clock_settime(clk_id: i32, tp: *const timespec) usize {1656pub fn clock_settime(clk_id: i32, tp: *const timespec) usize {
1619 return syscall2(.clock_settime, @as(usize, @bitCast(@as(isize, clk_id))), @intFromPtr(tp));1657 return syscall2(
1658 if (@hasField(SYS, "clock_settime")) .clock_settime else .clock_settime64,
1659 @as(usize, @bitCast(@as(isize, clk_id))),
1660 @intFromPtr(tp),
1661 );
1620}1662}
16211663
1622pub fn clock_nanosleep(clockid: clockid_t, flags: TIMER, request: *const timespec, remain: ?*timespec) usize {1664pub fn clock_nanosleep(clockid: clockid_t, flags: TIMER, request: *const timespec, remain: ?*timespec) usize {
1623 return syscall4(1665 return syscall4(
1624 .clock_nanosleep,1666 if (@hasField(SYS, "clock_nanosleep")) .clock_nanosleep else .clock_nanosleep_time64,
1625 @intFromEnum(clockid),1667 @intFromEnum(clockid),
1626 @as(u32, @bitCast(flags)),1668 @as(u32, @bitCast(flags)),
1627 @intFromPtr(request),1669 @intFromPtr(request),
...@@ -2020,7 +2062,7 @@ pub fn recvmsg(fd: i32, msg: *msghdr, flags: u32) usize {...@@ -2020,7 +2062,7 @@ pub fn recvmsg(fd: i32, msg: *msghdr, flags: u32) usize {
20202062
2021pub fn recvmmsg(fd: i32, msgvec: ?[*]mmsghdr, vlen: u32, flags: u32, timeout: ?*timespec) usize {2063pub fn recvmmsg(fd: i32, msgvec: ?[*]mmsghdr, vlen: u32, flags: u32, timeout: ?*timespec) usize {
2022 return syscall5(2064 return syscall5(
2023 .recvmmsg,2065 if (@hasField(SYS, "recvmmsg")) .recvmmsg else .recvmmsg_time64,
2024 @as(usize, @bitCast(@as(isize, fd))),2066 @as(usize, @bitCast(@as(isize, fd))),
2025 @intFromPtr(msgvec),2067 @intFromPtr(msgvec),
2026 vlen,2068 vlen,
...@@ -2369,11 +2411,21 @@ pub const itimerspec = extern struct {...@@ -2369,11 +2411,21 @@ pub const itimerspec = extern struct {
2369};2411};
23702412
2371pub fn timerfd_gettime(fd: i32, curr_value: *itimerspec) usize {2413pub fn timerfd_gettime(fd: i32, curr_value: *itimerspec) usize {
2372 return syscall2(.timerfd_gettime, @bitCast(@as(isize, fd)), @intFromPtr(curr_value));2414 return syscall2(
2415 if (@hasField(SYS, "timerfd_gettime")) .timerfd_gettime else .timerfd_gettime64,
2416 @bitCast(@as(isize, fd)),
2417 @intFromPtr(curr_value),
2418 );
2373}2419}
23742420
2375pub fn timerfd_settime(fd: i32, flags: TFD.TIMER, new_value: *const itimerspec, old_value: ?*itimerspec) usize {2421pub fn timerfd_settime(fd: i32, flags: TFD.TIMER, new_value: *const itimerspec, old_value: ?*itimerspec) usize {
2376 return syscall4(.timerfd_settime, @bitCast(@as(isize, fd)), @as(u32, @bitCast(flags)), @intFromPtr(new_value), @intFromPtr(old_value));2422 return syscall4(
2423 if (@hasField(SYS, "timerfd_settime")) .timerfd_settime else .timerfd_settime64,
2424 @bitCast(@as(isize, fd)),
2425 @as(u32, @bitCast(flags)),
2426 @intFromPtr(new_value),
2427 @intFromPtr(old_value),
2428 );
2377}2429}
23782430
2379// Flags for the 'setitimer' system call2431// Flags for the 'setitimer' system call
lib/std/os/linux/syscalls.zig+2230-1779
...@@ -1,5 +1,6 @@...@@ -1,5 +1,6 @@
1// This file is automatically generated.1// This file is automatically generated, DO NOT edit it manually.
2// See tools/generate_linux_syscalls.zig for more info.2// See tools/generate_linux_syscalls.zig for more info.
3// This list current as of kernel: 6.16.0
34
4pub const X86 = enum(usize) {5pub const X86 = enum(usize) {
5 restart_syscall = 0,6 restart_syscall = 0,
...@@ -454,6 +455,11 @@ pub const X86 = enum(usize) {...@@ -454,6 +455,11 @@ pub const X86 = enum(usize) {
454 lsm_set_self_attr = 460,455 lsm_set_self_attr = 460,
455 lsm_list_modules = 461,456 lsm_list_modules = 461,
456 mseal = 462,457 mseal = 462,
458 setxattrat = 463,
459 getxattrat = 464,
460 listxattrat = 465,
461 removexattrat = 466,
462 open_tree_attr = 467,
457};463};
458464
459pub const X64 = enum(usize) {465pub const X64 = enum(usize) {
...@@ -792,6 +798,7 @@ pub const X64 = enum(usize) {...@@ -792,6 +798,7 @@ pub const X64 = enum(usize) {
792 statx = 332,798 statx = 332,
793 io_pgetevents = 333,799 io_pgetevents = 333,
794 rseq = 334,800 rseq = 334,
801 uretprobe = 335,
795 pidfd_send_signal = 424,802 pidfd_send_signal = 424,
796 io_uring_setup = 425,803 io_uring_setup = 425,
797 io_uring_enter = 426,804 io_uring_enter = 426,
...@@ -831,372 +838,383 @@ pub const X64 = enum(usize) {...@@ -831,372 +838,383 @@ pub const X64 = enum(usize) {
831 lsm_set_self_attr = 460,838 lsm_set_self_attr = 460,
832 lsm_list_modules = 461,839 lsm_list_modules = 461,
833 mseal = 462,840 mseal = 462,
841 setxattrat = 463,
842 getxattrat = 464,
843 listxattrat = 465,
844 removexattrat = 466,
845 open_tree_attr = 467,
834};846};
835847
836pub const X32 = enum(usize) {848pub const X32 = enum(usize) {
837 read = 0,849 read = 1073741824,
838 write = 1,850 write = 1073741825,
839 open = 2,851 open = 1073741826,
840 close = 3,852 close = 1073741827,
841 stat = 4,853 stat = 1073741828,
842 fstat = 5,854 fstat = 1073741829,
843 lstat = 6,855 lstat = 1073741830,
844 poll = 7,856 poll = 1073741831,
845 lseek = 8,857 lseek = 1073741832,
846 mmap = 9,858 mmap = 1073741833,
847 mprotect = 10,859 mprotect = 1073741834,
848 munmap = 11,860 munmap = 1073741835,
849 brk = 12,861 brk = 1073741836,
850 rt_sigprocmask = 14,862 rt_sigprocmask = 1073741838,
851 pread64 = 17,863 pread64 = 1073741841,
852 pwrite64 = 18,864 pwrite64 = 1073741842,
853 access = 21,865 access = 1073741845,
854 pipe = 22,866 pipe = 1073741846,
855 select = 23,867 select = 1073741847,
856 sched_yield = 24,868 sched_yield = 1073741848,
857 mremap = 25,869 mremap = 1073741849,
858 msync = 26,870 msync = 1073741850,
859 mincore = 27,871 mincore = 1073741851,
860 madvise = 28,872 madvise = 1073741852,
861 shmget = 29,873 shmget = 1073741853,
862 shmat = 30,874 shmat = 1073741854,
863 shmctl = 31,875 shmctl = 1073741855,
864 dup = 32,876 dup = 1073741856,
865 dup2 = 33,877 dup2 = 1073741857,
866 pause = 34,878 pause = 1073741858,
867 nanosleep = 35,879 nanosleep = 1073741859,
868 getitimer = 36,880 getitimer = 1073741860,
869 alarm = 37,881 alarm = 1073741861,
870 setitimer = 38,882 setitimer = 1073741862,
871 getpid = 39,883 getpid = 1073741863,
872 sendfile = 40,884 sendfile = 1073741864,
873 socket = 41,885 socket = 1073741865,
874 connect = 42,886 connect = 1073741866,
875 accept = 43,887 accept = 1073741867,
876 sendto = 44,888 sendto = 1073741868,
877 shutdown = 48,889 shutdown = 1073741872,
878 bind = 49,890 bind = 1073741873,
879 listen = 50,891 listen = 1073741874,
880 getsockname = 51,892 getsockname = 1073741875,
881 getpeername = 52,893 getpeername = 1073741876,
882 socketpair = 53,894 socketpair = 1073741877,
883 clone = 56,895 clone = 1073741880,
884 fork = 57,896 fork = 1073741881,
885 vfork = 58,897 vfork = 1073741882,
886 exit = 60,898 exit = 1073741884,
887 wait4 = 61,899 wait4 = 1073741885,
888 kill = 62,900 kill = 1073741886,
889 uname = 63,901 uname = 1073741887,
890 semget = 64,902 semget = 1073741888,
891 semop = 65,903 semop = 1073741889,
892 semctl = 66,904 semctl = 1073741890,
893 shmdt = 67,905 shmdt = 1073741891,
894 msgget = 68,906 msgget = 1073741892,
895 msgsnd = 69,907 msgsnd = 1073741893,
896 msgrcv = 70,908 msgrcv = 1073741894,
897 msgctl = 71,909 msgctl = 1073741895,
898 fcntl = 72,910 fcntl = 1073741896,
899 flock = 73,911 flock = 1073741897,
900 fsync = 74,912 fsync = 1073741898,
901 fdatasync = 75,913 fdatasync = 1073741899,
902 truncate = 76,914 truncate = 1073741900,
903 ftruncate = 77,915 ftruncate = 1073741901,
904 getdents = 78,916 getdents = 1073741902,
905 getcwd = 79,917 getcwd = 1073741903,
906 chdir = 80,918 chdir = 1073741904,
907 fchdir = 81,919 fchdir = 1073741905,
908 rename = 82,920 rename = 1073741906,
909 mkdir = 83,921 mkdir = 1073741907,
910 rmdir = 84,922 rmdir = 1073741908,
911 creat = 85,923 creat = 1073741909,
912 link = 86,924 link = 1073741910,
913 unlink = 87,925 unlink = 1073741911,
914 symlink = 88,926 symlink = 1073741912,
915 readlink = 89,927 readlink = 1073741913,
916 chmod = 90,928 chmod = 1073741914,
917 fchmod = 91,929 fchmod = 1073741915,
918 chown = 92,930 chown = 1073741916,
919 fchown = 93,931 fchown = 1073741917,
920 lchown = 94,932 lchown = 1073741918,
921 umask = 95,933 umask = 1073741919,
922 gettimeofday = 96,934 gettimeofday = 1073741920,
923 getrlimit = 97,935 getrlimit = 1073741921,
924 getrusage = 98,936 getrusage = 1073741922,
925 sysinfo = 99,937 sysinfo = 1073741923,
926 times = 100,938 times = 1073741924,
927 getuid = 102,939 getuid = 1073741926,
928 syslog = 103,940 syslog = 1073741927,
929 getgid = 104,941 getgid = 1073741928,
930 setuid = 105,942 setuid = 1073741929,
931 setgid = 106,943 setgid = 1073741930,
932 geteuid = 107,944 geteuid = 1073741931,
933 getegid = 108,945 getegid = 1073741932,
934 setpgid = 109,946 setpgid = 1073741933,
935 getppid = 110,947 getppid = 1073741934,
936 getpgrp = 111,948 getpgrp = 1073741935,
937 setsid = 112,949 setsid = 1073741936,
938 setreuid = 113,950 setreuid = 1073741937,
939 setregid = 114,951 setregid = 1073741938,
940 getgroups = 115,952 getgroups = 1073741939,
941 setgroups = 116,953 setgroups = 1073741940,
942 setresuid = 117,954 setresuid = 1073741941,
943 getresuid = 118,955 getresuid = 1073741942,
944 setresgid = 119,956 setresgid = 1073741943,
945 getresgid = 120,957 getresgid = 1073741944,
946 getpgid = 121,958 getpgid = 1073741945,
947 setfsuid = 122,959 setfsuid = 1073741946,
948 setfsgid = 123,960 setfsgid = 1073741947,
949 getsid = 124,961 getsid = 1073741948,
950 capget = 125,962 capget = 1073741949,
951 capset = 126,963 capset = 1073741950,
952 rt_sigsuspend = 130,964 rt_sigsuspend = 1073741954,
953 utime = 132,965 utime = 1073741956,
954 mknod = 133,966 mknod = 1073741957,
955 personality = 135,967 personality = 1073741959,
956 ustat = 136,968 ustat = 1073741960,
957 statfs = 137,969 statfs = 1073741961,
958 fstatfs = 138,970 fstatfs = 1073741962,
959 sysfs = 139,971 sysfs = 1073741963,
960 getpriority = 140,972 getpriority = 1073741964,
961 setpriority = 141,973 setpriority = 1073741965,
962 sched_setparam = 142,974 sched_setparam = 1073741966,
963 sched_getparam = 143,975 sched_getparam = 1073741967,
964 sched_setscheduler = 144,976 sched_setscheduler = 1073741968,
965 sched_getscheduler = 145,977 sched_getscheduler = 1073741969,
966 sched_get_priority_max = 146,978 sched_get_priority_max = 1073741970,
967 sched_get_priority_min = 147,979 sched_get_priority_min = 1073741971,
968 sched_rr_get_interval = 148,980 sched_rr_get_interval = 1073741972,
969 mlock = 149,981 mlock = 1073741973,
970 munlock = 150,982 munlock = 1073741974,
971 mlockall = 151,983 mlockall = 1073741975,
972 munlockall = 152,984 munlockall = 1073741976,
973 vhangup = 153,985 vhangup = 1073741977,
974 modify_ldt = 154,986 modify_ldt = 1073741978,
975 pivot_root = 155,987 pivot_root = 1073741979,
976 prctl = 157,988 prctl = 1073741981,
977 arch_prctl = 158,989 arch_prctl = 1073741982,
978 adjtimex = 159,990 adjtimex = 1073741983,
979 setrlimit = 160,991 setrlimit = 1073741984,
980 chroot = 161,992 chroot = 1073741985,
981 sync = 162,993 sync = 1073741986,
982 acct = 163,994 acct = 1073741987,
983 settimeofday = 164,995 settimeofday = 1073741988,
984 mount = 165,996 mount = 1073741989,
985 umount2 = 166,997 umount2 = 1073741990,
986 swapon = 167,998 swapon = 1073741991,
987 swapoff = 168,999 swapoff = 1073741992,
988 reboot = 169,1000 reboot = 1073741993,
989 sethostname = 170,1001 sethostname = 1073741994,
990 setdomainname = 171,1002 setdomainname = 1073741995,
991 iopl = 172,1003 iopl = 1073741996,
992 ioperm = 173,1004 ioperm = 1073741997,
993 init_module = 175,1005 init_module = 1073741999,
994 delete_module = 176,1006 delete_module = 1073742000,
995 quotactl = 179,1007 quotactl = 1073742003,
996 getpmsg = 181,1008 getpmsg = 1073742005,
997 putpmsg = 182,1009 putpmsg = 1073742006,
998 afs_syscall = 183,1010 afs_syscall = 1073742007,
999 tuxcall = 184,1011 tuxcall = 1073742008,
1000 security = 185,1012 security = 1073742009,
1001 gettid = 186,1013 gettid = 1073742010,
1002 readahead = 187,1014 readahead = 1073742011,
1003 setxattr = 188,1015 setxattr = 1073742012,
1004 lsetxattr = 189,1016 lsetxattr = 1073742013,
1005 fsetxattr = 190,1017 fsetxattr = 1073742014,
1006 getxattr = 191,1018 getxattr = 1073742015,
1007 lgetxattr = 192,1019 lgetxattr = 1073742016,
1008 fgetxattr = 193,1020 fgetxattr = 1073742017,
1009 listxattr = 194,1021 listxattr = 1073742018,
1010 llistxattr = 195,1022 llistxattr = 1073742019,
1011 flistxattr = 196,1023 flistxattr = 1073742020,
1012 removexattr = 197,1024 removexattr = 1073742021,
1013 lremovexattr = 198,1025 lremovexattr = 1073742022,
1014 fremovexattr = 199,1026 fremovexattr = 1073742023,
1015 tkill = 200,1027 tkill = 1073742024,
1016 time = 201,1028 time = 1073742025,
1017 futex = 202,1029 futex = 1073742026,
1018 sched_setaffinity = 203,1030 sched_setaffinity = 1073742027,
1019 sched_getaffinity = 204,1031 sched_getaffinity = 1073742028,
1020 io_destroy = 207,1032 io_destroy = 1073742031,
1021 io_getevents = 208,1033 io_getevents = 1073742032,
1022 io_cancel = 210,1034 io_cancel = 1073742034,
1023 lookup_dcookie = 212,1035 lookup_dcookie = 1073742036,
1024 epoll_create = 213,1036 epoll_create = 1073742037,
1025 remap_file_pages = 216,1037 remap_file_pages = 1073742040,
1026 getdents64 = 217,1038 getdents64 = 1073742041,
1027 set_tid_address = 218,1039 set_tid_address = 1073742042,
1028 restart_syscall = 219,1040 restart_syscall = 1073742043,
1029 semtimedop = 220,1041 semtimedop = 1073742044,
1030 fadvise64 = 221,1042 fadvise64 = 1073742045,
1031 timer_settime = 223,1043 timer_settime = 1073742047,
1032 timer_gettime = 224,1044 timer_gettime = 1073742048,
1033 timer_getoverrun = 225,1045 timer_getoverrun = 1073742049,
1034 timer_delete = 226,1046 timer_delete = 1073742050,
1035 clock_settime = 227,1047 clock_settime = 1073742051,
1036 clock_gettime = 228,1048 clock_gettime = 1073742052,
1037 clock_getres = 229,1049 clock_getres = 1073742053,
1038 clock_nanosleep = 230,1050 clock_nanosleep = 1073742054,
1039 exit_group = 231,1051 exit_group = 1073742055,
1040 epoll_wait = 232,1052 epoll_wait = 1073742056,
1041 epoll_ctl = 233,1053 epoll_ctl = 1073742057,
1042 tgkill = 234,1054 tgkill = 1073742058,
1043 utimes = 235,1055 utimes = 1073742059,
1044 mbind = 237,1056 mbind = 1073742061,
1045 set_mempolicy = 238,1057 set_mempolicy = 1073742062,
1046 get_mempolicy = 239,1058 get_mempolicy = 1073742063,
1047 mq_open = 240,1059 mq_open = 1073742064,
1048 mq_unlink = 241,1060 mq_unlink = 1073742065,
1049 mq_timedsend = 242,1061 mq_timedsend = 1073742066,
1050 mq_timedreceive = 243,1062 mq_timedreceive = 1073742067,
1051 mq_getsetattr = 245,1063 mq_getsetattr = 1073742069,
1052 add_key = 248,1064 add_key = 1073742072,
1053 request_key = 249,1065 request_key = 1073742073,
1054 keyctl = 250,1066 keyctl = 1073742074,
1055 ioprio_set = 251,1067 ioprio_set = 1073742075,
1056 ioprio_get = 252,1068 ioprio_get = 1073742076,
1057 inotify_init = 253,1069 inotify_init = 1073742077,
1058 inotify_add_watch = 254,1070 inotify_add_watch = 1073742078,
1059 inotify_rm_watch = 255,1071 inotify_rm_watch = 1073742079,
1060 migrate_pages = 256,1072 migrate_pages = 1073742080,
1061 openat = 257,1073 openat = 1073742081,
1062 mkdirat = 258,1074 mkdirat = 1073742082,
1063 mknodat = 259,1075 mknodat = 1073742083,
1064 fchownat = 260,1076 fchownat = 1073742084,
1065 futimesat = 261,1077 futimesat = 1073742085,
1066 fstatat64 = 262,1078 fstatat64 = 1073742086,
1067 unlinkat = 263,1079 unlinkat = 1073742087,
1068 renameat = 264,1080 renameat = 1073742088,
1069 linkat = 265,1081 linkat = 1073742089,
1070 symlinkat = 266,1082 symlinkat = 1073742090,
1071 readlinkat = 267,1083 readlinkat = 1073742091,
1072 fchmodat = 268,1084 fchmodat = 1073742092,
1073 faccessat = 269,1085 faccessat = 1073742093,
1074 pselect6 = 270,1086 pselect6 = 1073742094,
1075 ppoll = 271,1087 ppoll = 1073742095,
1076 unshare = 272,1088 unshare = 1073742096,
1077 splice = 275,1089 splice = 1073742099,
1078 tee = 276,1090 tee = 1073742100,
1079 sync_file_range = 277,1091 sync_file_range = 1073742101,
1080 utimensat = 280,1092 utimensat = 1073742104,
1081 epoll_pwait = 281,1093 epoll_pwait = 1073742105,
1082 signalfd = 282,1094 signalfd = 1073742106,
1083 timerfd_create = 283,1095 timerfd_create = 1073742107,
1084 eventfd = 284,1096 eventfd = 1073742108,
1085 fallocate = 285,1097 fallocate = 1073742109,
1086 timerfd_settime = 286,1098 timerfd_settime = 1073742110,
1087 timerfd_gettime = 287,1099 timerfd_gettime = 1073742111,
1088 accept4 = 288,1100 accept4 = 1073742112,
1089 signalfd4 = 289,1101 signalfd4 = 1073742113,
1090 eventfd2 = 290,1102 eventfd2 = 1073742114,
1091 epoll_create1 = 291,1103 epoll_create1 = 1073742115,
1092 dup3 = 292,1104 dup3 = 1073742116,
1093 pipe2 = 293,1105 pipe2 = 1073742117,
1094 inotify_init1 = 294,1106 inotify_init1 = 1073742118,
1095 perf_event_open = 298,1107 perf_event_open = 1073742122,
1096 fanotify_init = 300,1108 fanotify_init = 1073742124,
1097 fanotify_mark = 301,1109 fanotify_mark = 1073742125,
1098 prlimit64 = 302,1110 prlimit64 = 1073742126,
1099 name_to_handle_at = 303,1111 name_to_handle_at = 1073742127,
1100 open_by_handle_at = 304,1112 open_by_handle_at = 1073742128,
1101 clock_adjtime = 305,1113 clock_adjtime = 1073742129,
1102 syncfs = 306,1114 syncfs = 1073742130,
1103 setns = 308,1115 setns = 1073742132,
1104 getcpu = 309,1116 getcpu = 1073742133,
1105 kcmp = 312,1117 kcmp = 1073742136,
1106 finit_module = 313,1118 finit_module = 1073742137,
1107 sched_setattr = 314,1119 sched_setattr = 1073742138,
1108 sched_getattr = 315,1120 sched_getattr = 1073742139,
1109 renameat2 = 316,1121 renameat2 = 1073742140,
1110 seccomp = 317,1122 seccomp = 1073742141,
1111 getrandom = 318,1123 getrandom = 1073742142,
1112 memfd_create = 319,1124 memfd_create = 1073742143,
1113 kexec_file_load = 320,1125 kexec_file_load = 1073742144,
1114 bpf = 321,1126 bpf = 1073742145,
1115 userfaultfd = 323,1127 userfaultfd = 1073742147,
1116 membarrier = 324,1128 membarrier = 1073742148,
1117 mlock2 = 325,1129 mlock2 = 1073742149,
1118 copy_file_range = 326,1130 copy_file_range = 1073742150,
1119 pkey_mprotect = 329,1131 pkey_mprotect = 1073742153,
1120 pkey_alloc = 330,1132 pkey_alloc = 1073742154,
1121 pkey_free = 331,1133 pkey_free = 1073742155,
1122 statx = 332,1134 statx = 1073742156,
1123 io_pgetevents = 333,1135 io_pgetevents = 1073742157,
1124 rseq = 334,1136 rseq = 1073742158,
1125 pidfd_send_signal = 424,1137 uretprobe = 1073742159,
1126 io_uring_setup = 425,1138 pidfd_send_signal = 1073742248,
1127 io_uring_enter = 426,1139 io_uring_setup = 1073742249,
1128 io_uring_register = 427,1140 io_uring_enter = 1073742250,
1129 open_tree = 428,1141 io_uring_register = 1073742251,
1130 move_mount = 429,1142 open_tree = 1073742252,
1131 fsopen = 430,1143 move_mount = 1073742253,
1132 fsconfig = 431,1144 fsopen = 1073742254,
1133 fsmount = 432,1145 fsconfig = 1073742255,
1134 fspick = 433,1146 fsmount = 1073742256,
1135 pidfd_open = 434,1147 fspick = 1073742257,
1136 clone3 = 435,1148 pidfd_open = 1073742258,
1137 close_range = 436,1149 clone3 = 1073742259,
1138 openat2 = 437,1150 close_range = 1073742260,
1139 pidfd_getfd = 438,1151 openat2 = 1073742261,
1140 faccessat2 = 439,1152 pidfd_getfd = 1073742262,
1141 process_madvise = 440,1153 faccessat2 = 1073742263,
1142 epoll_pwait2 = 441,1154 process_madvise = 1073742264,
1143 mount_setattr = 442,1155 epoll_pwait2 = 1073742265,
1144 quotactl_fd = 443,1156 mount_setattr = 1073742266,
1145 landlock_create_ruleset = 444,1157 quotactl_fd = 1073742267,
1146 landlock_add_rule = 445,1158 landlock_create_ruleset = 1073742268,
1147 landlock_restrict_self = 446,1159 landlock_add_rule = 1073742269,
1148 memfd_secret = 447,1160 landlock_restrict_self = 1073742270,
1149 process_mrelease = 448,1161 memfd_secret = 1073742271,
1150 futex_waitv = 449,1162 process_mrelease = 1073742272,
1151 set_mempolicy_home_node = 450,1163 futex_waitv = 1073742273,
1152 cachestat = 451,1164 set_mempolicy_home_node = 1073742274,
1153 fchmodat2 = 452,1165 cachestat = 1073742275,
1154 map_shadow_stack = 453,1166 fchmodat2 = 1073742276,
1155 futex_wake = 454,1167 map_shadow_stack = 1073742277,
1156 futex_wait = 455,1168 futex_wake = 1073742278,
1157 futex_requeue = 456,1169 futex_wait = 1073742279,
1158 statmount = 457,1170 futex_requeue = 1073742280,
1159 listmount = 458,1171 statmount = 1073742281,
1160 lsm_get_self_attr = 459,1172 listmount = 1073742282,
1161 lsm_set_self_attr = 460,1173 lsm_get_self_attr = 1073742283,
1162 lsm_list_modules = 461,1174 lsm_set_self_attr = 1073742284,
1163 mseal = 462,1175 lsm_list_modules = 1073742285,
1164 rt_sigaction = 512,1176 mseal = 1073742286,
1165 rt_sigreturn = 513,1177 setxattrat = 1073742287,
1166 ioctl = 514,1178 getxattrat = 1073742288,
1167 readv = 515,1179 listxattrat = 1073742289,
1168 writev = 516,1180 removexattrat = 1073742290,
1169 recvfrom = 517,1181 open_tree_attr = 1073742291,
1170 sendmsg = 518,1182 rt_sigaction = 1073742336,
1171 recvmsg = 519,1183 rt_sigreturn = 1073742337,
1172 execve = 520,1184 ioctl = 1073742338,
1173 ptrace = 521,1185 readv = 1073742339,
1174 rt_sigpending = 522,1186 writev = 1073742340,
1175 rt_sigtimedwait = 523,1187 recvfrom = 1073742341,
1176 rt_sigqueueinfo = 524,1188 sendmsg = 1073742342,
1177 sigaltstack = 525,1189 recvmsg = 1073742343,
1178 timer_create = 526,1190 execve = 1073742344,
1179 mq_notify = 527,1191 ptrace = 1073742345,
1180 kexec_load = 528,1192 rt_sigpending = 1073742346,
1181 waitid = 529,1193 rt_sigtimedwait = 1073742347,
1182 set_robust_list = 530,1194 rt_sigqueueinfo = 1073742348,
1183 get_robust_list = 531,1195 sigaltstack = 1073742349,
1184 vmsplice = 532,1196 timer_create = 1073742350,
1185 move_pages = 533,1197 mq_notify = 1073742351,
1186 preadv = 534,1198 kexec_load = 1073742352,
1187 pwritev = 535,1199 waitid = 1073742353,
1188 rt_tgsigqueueinfo = 536,1200 set_robust_list = 1073742354,
1189 recvmmsg = 537,1201 get_robust_list = 1073742355,
1190 sendmmsg = 538,1202 vmsplice = 1073742356,
1191 process_vm_readv = 539,1203 move_pages = 1073742357,
1192 process_vm_writev = 540,1204 preadv = 1073742358,
1193 setsockopt = 541,1205 pwritev = 1073742359,
1194 getsockopt = 542,1206 rt_tgsigqueueinfo = 1073742360,
1195 io_setup = 543,1207 recvmmsg = 1073742361,
1196 io_submit = 544,1208 sendmmsg = 1073742362,
1197 execveat = 545,1209 process_vm_readv = 1073742363,
1198 preadv2 = 546,1210 process_vm_writev = 1073742364,
1199 pwritev2 = 547,1211 setsockopt = 1073742365,
1212 getsockopt = 1073742366,
1213 io_setup = 1073742367,
1214 io_submit = 1073742368,
1215 execveat = 1073742369,
1216 preadv2 = 1073742370,
1217 pwritev2 = 1073742371,
1200};1218};
12011219
1202pub const Arm = enum(usize) {1220pub const Arm = enum(usize) {
...@@ -1617,6 +1635,11 @@ pub const Arm = enum(usize) {...@@ -1617,6 +1635,11 @@ pub const Arm = enum(usize) {
1617 lsm_set_self_attr = 460,1635 lsm_set_self_attr = 460,
1618 lsm_list_modules = 461,1636 lsm_list_modules = 461,
1619 mseal = 462,1637 mseal = 462,
1638 setxattrat = 463,
1639 getxattrat = 464,
1640 listxattrat = 465,
1641 removexattrat = 466,
1642 open_tree_attr = 467,
16201643
1621 breakpoint = arm_base + 1,1644 breakpoint = arm_base + 1,
1622 cacheflush = arm_base + 2,1645 cacheflush = arm_base + 2,
...@@ -2058,6 +2081,11 @@ pub const Sparc = enum(usize) {...@@ -2058,6 +2081,11 @@ pub const Sparc = enum(usize) {
2058 lsm_set_self_attr = 460,2081 lsm_set_self_attr = 460,
2059 lsm_list_modules = 461,2082 lsm_list_modules = 461,
2060 mseal = 462,2083 mseal = 462,
2084 setxattrat = 463,
2085 getxattrat = 464,
2086 listxattrat = 465,
2087 removexattrat = 466,
2088 open_tree_attr = 467,
2061};2089};
20622090
2063pub const Sparc64 = enum(usize) {2091pub const Sparc64 = enum(usize) {
...@@ -2455,6 +2483,11 @@ pub const Sparc64 = enum(usize) {...@@ -2455,6 +2483,11 @@ pub const Sparc64 = enum(usize) {
2455 lsm_set_self_attr = 460,2483 lsm_set_self_attr = 460,
2456 lsm_list_modules = 461,2484 lsm_list_modules = 461,
2457 mseal = 462,2485 mseal = 462,
2486 setxattrat = 463,
2487 getxattrat = 464,
2488 listxattrat = 465,
2489 removexattrat = 466,
2490 open_tree_attr = 467,
2458};2491};
24592492
2460pub const M68k = enum(usize) {2493pub const M68k = enum(usize) {
...@@ -2892,1201 +2925,1215 @@ pub const M68k = enum(usize) {...@@ -2892,1201 +2925,1215 @@ pub const M68k = enum(usize) {
2892 lsm_set_self_attr = 460,2925 lsm_set_self_attr = 460,
2893 lsm_list_modules = 461,2926 lsm_list_modules = 461,
2894 mseal = 462,2927 mseal = 462,
2928 setxattrat = 463,
2929 getxattrat = 464,
2930 listxattrat = 465,
2931 removexattrat = 466,
2932 open_tree_attr = 467,
2895};2933};
28962934
2897pub const MipsO32 = enum(usize) {2935pub const MipsO32 = enum(usize) {
2898 const linux_base = 4000;2936 syscall = 4000,
28992937 exit = 4001,
2900 syscall = linux_base + 0,2938 fork = 4002,
2901 exit = linux_base + 1,2939 read = 4003,
2902 fork = linux_base + 2,2940 write = 4004,
2903 read = linux_base + 3,2941 open = 4005,
2904 write = linux_base + 4,2942 close = 4006,
2905 open = linux_base + 5,2943 waitpid = 4007,
2906 close = linux_base + 6,2944 creat = 4008,
2907 waitpid = linux_base + 7,2945 link = 4009,
2908 creat = linux_base + 8,2946 unlink = 4010,
2909 link = linux_base + 9,2947 execve = 4011,
2910 unlink = linux_base + 10,2948 chdir = 4012,
2911 execve = linux_base + 11,2949 time = 4013,
2912 chdir = linux_base + 12,2950 mknod = 4014,
2913 time = linux_base + 13,2951 chmod = 4015,
2914 mknod = linux_base + 14,2952 lchown = 4016,
2915 chmod = linux_base + 15,2953 @"break" = 4017,
2916 lchown = linux_base + 16,2954 lseek = 4019,
2917 @"break" = linux_base + 17,2955 getpid = 4020,
2918 lseek = linux_base + 19,2956 mount = 4021,
2919 getpid = linux_base + 20,2957 umount = 4022,
2920 mount = linux_base + 21,2958 setuid = 4023,
2921 umount = linux_base + 22,2959 getuid = 4024,
2922 setuid = linux_base + 23,2960 stime = 4025,
2923 getuid = linux_base + 24,2961 ptrace = 4026,
2924 stime = linux_base + 25,2962 alarm = 4027,
2925 ptrace = linux_base + 26,2963 pause = 4029,
2926 alarm = linux_base + 27,2964 utime = 4030,
2927 pause = linux_base + 29,2965 stty = 4031,
2928 utime = linux_base + 30,2966 gtty = 4032,
2929 stty = linux_base + 31,2967 access = 4033,
2930 gtty = linux_base + 32,2968 nice = 4034,
2931 access = linux_base + 33,2969 ftime = 4035,
2932 nice = linux_base + 34,2970 sync = 4036,
2933 ftime = linux_base + 35,2971 kill = 4037,
2934 sync = linux_base + 36,2972 rename = 4038,
2935 kill = linux_base + 37,2973 mkdir = 4039,
2936 rename = linux_base + 38,2974 rmdir = 4040,
2937 mkdir = linux_base + 39,2975 dup = 4041,
2938 rmdir = linux_base + 40,2976 pipe = 4042,
2939 dup = linux_base + 41,2977 times = 4043,
2940 pipe = linux_base + 42,2978 prof = 4044,
2941 times = linux_base + 43,2979 brk = 4045,
2942 prof = linux_base + 44,2980 setgid = 4046,
2943 brk = linux_base + 45,2981 getgid = 4047,
2944 setgid = linux_base + 46,2982 signal = 4048,
2945 getgid = linux_base + 47,2983 geteuid = 4049,
2946 signal = linux_base + 48,2984 getegid = 4050,
2947 geteuid = linux_base + 49,2985 acct = 4051,
2948 getegid = linux_base + 50,2986 umount2 = 4052,
2949 acct = linux_base + 51,2987 lock = 4053,
2950 umount2 = linux_base + 52,2988 ioctl = 4054,
2951 lock = linux_base + 53,2989 fcntl = 4055,
2952 ioctl = linux_base + 54,2990 mpx = 4056,
2953 fcntl = linux_base + 55,2991 setpgid = 4057,
2954 mpx = linux_base + 56,2992 ulimit = 4058,
2955 setpgid = linux_base + 57,2993 umask = 4060,
2956 ulimit = linux_base + 58,2994 chroot = 4061,
2957 umask = linux_base + 60,2995 ustat = 4062,
2958 chroot = linux_base + 61,2996 dup2 = 4063,
2959 ustat = linux_base + 62,2997 getppid = 4064,
2960 dup2 = linux_base + 63,2998 getpgrp = 4065,
2961 getppid = linux_base + 64,2999 setsid = 4066,
2962 getpgrp = linux_base + 65,3000 sigaction = 4067,
2963 setsid = linux_base + 66,3001 sgetmask = 4068,
2964 sigaction = linux_base + 67,3002 ssetmask = 4069,
2965 sgetmask = linux_base + 68,3003 setreuid = 4070,
2966 ssetmask = linux_base + 69,3004 setregid = 4071,
2967 setreuid = linux_base + 70,3005 sigsuspend = 4072,
2968 setregid = linux_base + 71,3006 sigpending = 4073,
2969 sigsuspend = linux_base + 72,3007 sethostname = 4074,
2970 sigpending = linux_base + 73,3008 setrlimit = 4075,
2971 sethostname = linux_base + 74,3009 getrlimit = 4076,
2972 setrlimit = linux_base + 75,3010 getrusage = 4077,
2973 getrlimit = linux_base + 76,3011 gettimeofday = 4078,
2974 getrusage = linux_base + 77,3012 settimeofday = 4079,
2975 gettimeofday = linux_base + 78,3013 getgroups = 4080,
2976 settimeofday = linux_base + 79,3014 setgroups = 4081,
2977 getgroups = linux_base + 80,3015 symlink = 4083,
2978 setgroups = linux_base + 81,3016 readlink = 4085,
2979 symlink = linux_base + 83,3017 uselib = 4086,
2980 readlink = linux_base + 85,3018 swapon = 4087,
2981 uselib = linux_base + 86,3019 reboot = 4088,
2982 swapon = linux_base + 87,3020 readdir = 4089,
2983 reboot = linux_base + 88,3021 mmap = 4090,
2984 readdir = linux_base + 89,3022 munmap = 4091,
2985 mmap = linux_base + 90,3023 truncate = 4092,
2986 munmap = linux_base + 91,3024 ftruncate = 4093,
2987 truncate = linux_base + 92,3025 fchmod = 4094,
2988 ftruncate = linux_base + 93,3026 fchown = 4095,
2989 fchmod = linux_base + 94,3027 getpriority = 4096,
2990 fchown = linux_base + 95,3028 setpriority = 4097,
2991 getpriority = linux_base + 96,3029 profil = 4098,
2992 setpriority = linux_base + 97,3030 statfs = 4099,
2993 profil = linux_base + 98,3031 fstatfs = 4100,
2994 statfs = linux_base + 99,3032 ioperm = 4101,
2995 fstatfs = linux_base + 100,3033 socketcall = 4102,
2996 ioperm = linux_base + 101,3034 syslog = 4103,
2997 socketcall = linux_base + 102,3035 setitimer = 4104,
2998 syslog = linux_base + 103,3036 getitimer = 4105,
2999 setitimer = linux_base + 104,3037 stat = 4106,
3000 getitimer = linux_base + 105,3038 lstat = 4107,
3001 stat = linux_base + 106,3039 fstat = 4108,
3002 lstat = linux_base + 107,3040 iopl = 4110,
3003 fstat = linux_base + 108,3041 vhangup = 4111,
3004 iopl = linux_base + 110,3042 idle = 4112,
3005 vhangup = linux_base + 111,3043 vm86 = 4113,
3006 idle = linux_base + 112,3044 wait4 = 4114,
3007 vm86 = linux_base + 113,3045 swapoff = 4115,
3008 wait4 = linux_base + 114,3046 sysinfo = 4116,
3009 swapoff = linux_base + 115,3047 ipc = 4117,
3010 sysinfo = linux_base + 116,3048 fsync = 4118,
3011 ipc = linux_base + 117,3049 sigreturn = 4119,
3012 fsync = linux_base + 118,3050 clone = 4120,
3013 sigreturn = linux_base + 119,3051 setdomainname = 4121,
3014 clone = linux_base + 120,3052 uname = 4122,
3015 setdomainname = linux_base + 121,3053 modify_ldt = 4123,
3016 uname = linux_base + 122,3054 adjtimex = 4124,
3017 modify_ldt = linux_base + 123,3055 mprotect = 4125,
3018 adjtimex = linux_base + 124,3056 sigprocmask = 4126,
3019 mprotect = linux_base + 125,3057 create_module = 4127,
3020 sigprocmask = linux_base + 126,3058 init_module = 4128,
3021 create_module = linux_base + 127,3059 delete_module = 4129,
3022 init_module = linux_base + 128,3060 get_kernel_syms = 4130,
3023 delete_module = linux_base + 129,3061 quotactl = 4131,
3024 get_kernel_syms = linux_base + 130,3062 getpgid = 4132,
3025 quotactl = linux_base + 131,3063 fchdir = 4133,
3026 getpgid = linux_base + 132,3064 bdflush = 4134,
3027 fchdir = linux_base + 133,3065 sysfs = 4135,
3028 bdflush = linux_base + 134,3066 personality = 4136,
3029 sysfs = linux_base + 135,3067 afs_syscall = 4137,
3030 personality = linux_base + 136,3068 setfsuid = 4138,
3031 afs_syscall = linux_base + 137,3069 setfsgid = 4139,
3032 setfsuid = linux_base + 138,3070 llseek = 4140,
3033 setfsgid = linux_base + 139,3071 getdents = 4141,
3034 llseek = linux_base + 140,3072 newselect = 4142,
3035 getdents = linux_base + 141,3073 flock = 4143,
3036 newselect = linux_base + 142,3074 msync = 4144,
3037 flock = linux_base + 143,3075 readv = 4145,
3038 msync = linux_base + 144,3076 writev = 4146,
3039 readv = linux_base + 145,3077 cacheflush = 4147,
3040 writev = linux_base + 146,3078 cachectl = 4148,
3041 cacheflush = linux_base + 147,3079 sysmips = 4149,
3042 cachectl = linux_base + 148,3080 getsid = 4151,
3043 sysmips = linux_base + 149,3081 fdatasync = 4152,
3044 getsid = linux_base + 151,3082 sysctl = 4153,
3045 fdatasync = linux_base + 152,3083 mlock = 4154,
3046 sysctl = linux_base + 153,3084 munlock = 4155,
3047 mlock = linux_base + 154,3085 mlockall = 4156,
3048 munlock = linux_base + 155,3086 munlockall = 4157,
3049 mlockall = linux_base + 156,3087 sched_setparam = 4158,
3050 munlockall = linux_base + 157,3088 sched_getparam = 4159,
3051 sched_setparam = linux_base + 158,3089 sched_setscheduler = 4160,
3052 sched_getparam = linux_base + 159,3090 sched_getscheduler = 4161,
3053 sched_setscheduler = linux_base + 160,3091 sched_yield = 4162,
3054 sched_getscheduler = linux_base + 161,3092 sched_get_priority_max = 4163,
3055 sched_yield = linux_base + 162,3093 sched_get_priority_min = 4164,
3056 sched_get_priority_max = linux_base + 163,3094 sched_rr_get_interval = 4165,
3057 sched_get_priority_min = linux_base + 164,3095 nanosleep = 4166,
3058 sched_rr_get_interval = linux_base + 165,3096 mremap = 4167,
3059 nanosleep = linux_base + 166,3097 accept = 4168,
3060 mremap = linux_base + 167,3098 bind = 4169,
3061 accept = linux_base + 168,3099 connect = 4170,
3062 bind = linux_base + 169,3100 getpeername = 4171,
3063 connect = linux_base + 170,3101 getsockname = 4172,
3064 getpeername = linux_base + 171,3102 getsockopt = 4173,
3065 getsockname = linux_base + 172,3103 listen = 4174,
3066 getsockopt = linux_base + 173,3104 recv = 4175,
3067 listen = linux_base + 174,3105 recvfrom = 4176,
3068 recv = linux_base + 175,3106 recvmsg = 4177,
3069 recvfrom = linux_base + 176,3107 send = 4178,
3070 recvmsg = linux_base + 177,3108 sendmsg = 4179,
3071 send = linux_base + 178,3109 sendto = 4180,
3072 sendmsg = linux_base + 179,3110 setsockopt = 4181,
3073 sendto = linux_base + 180,3111 shutdown = 4182,
3074 setsockopt = linux_base + 181,3112 socket = 4183,
3075 shutdown = linux_base + 182,3113 socketpair = 4184,
3076 socket = linux_base + 183,3114 setresuid = 4185,
3077 socketpair = linux_base + 184,3115 getresuid = 4186,
3078 setresuid = linux_base + 185,3116 query_module = 4187,
3079 getresuid = linux_base + 186,3117 poll = 4188,
3080 query_module = linux_base + 187,3118 nfsservctl = 4189,
3081 poll = linux_base + 188,3119 setresgid = 4190,
3082 nfsservctl = linux_base + 189,3120 getresgid = 4191,
3083 setresgid = linux_base + 190,3121 prctl = 4192,
3084 getresgid = linux_base + 191,3122 rt_sigreturn = 4193,
3085 prctl = linux_base + 192,3123 rt_sigaction = 4194,
3086 rt_sigreturn = linux_base + 193,3124 rt_sigprocmask = 4195,
3087 rt_sigaction = linux_base + 194,3125 rt_sigpending = 4196,
3088 rt_sigprocmask = linux_base + 195,3126 rt_sigtimedwait = 4197,
3089 rt_sigpending = linux_base + 196,3127 rt_sigqueueinfo = 4198,
3090 rt_sigtimedwait = linux_base + 197,3128 rt_sigsuspend = 4199,
3091 rt_sigqueueinfo = linux_base + 198,3129 pread64 = 4200,
3092 rt_sigsuspend = linux_base + 199,3130 pwrite64 = 4201,
3093 pread64 = linux_base + 200,3131 chown = 4202,
3094 pwrite64 = linux_base + 201,3132 getcwd = 4203,
3095 chown = linux_base + 202,3133 capget = 4204,
3096 getcwd = linux_base + 203,3134 capset = 4205,
3097 capget = linux_base + 204,3135 sigaltstack = 4206,
3098 capset = linux_base + 205,3136 sendfile = 4207,
3099 sigaltstack = linux_base + 206,3137 getpmsg = 4208,
3100 sendfile = linux_base + 207,3138 putpmsg = 4209,
3101 getpmsg = linux_base + 208,3139 mmap2 = 4210,
3102 putpmsg = linux_base + 209,3140 truncate64 = 4211,
3103 mmap2 = linux_base + 210,3141 ftruncate64 = 4212,
3104 truncate64 = linux_base + 211,3142 stat64 = 4213,
3105 ftruncate64 = linux_base + 212,3143 lstat64 = 4214,
3106 stat64 = linux_base + 213,3144 fstat64 = 4215,
3107 lstat64 = linux_base + 214,3145 pivot_root = 4216,
3108 fstat64 = linux_base + 215,3146 mincore = 4217,
3109 pivot_root = linux_base + 216,3147 madvise = 4218,
3110 mincore = linux_base + 217,3148 getdents64 = 4219,
3111 madvise = linux_base + 218,3149 fcntl64 = 4220,
3112 getdents64 = linux_base + 219,3150 gettid = 4222,
3113 fcntl64 = linux_base + 220,3151 readahead = 4223,
3114 gettid = linux_base + 222,3152 setxattr = 4224,
3115 readahead = linux_base + 223,3153 lsetxattr = 4225,
3116 setxattr = linux_base + 224,3154 fsetxattr = 4226,
3117 lsetxattr = linux_base + 225,3155 getxattr = 4227,
3118 fsetxattr = linux_base + 226,3156 lgetxattr = 4228,
3119 getxattr = linux_base + 227,3157 fgetxattr = 4229,
3120 lgetxattr = linux_base + 228,3158 listxattr = 4230,
3121 fgetxattr = linux_base + 229,3159 llistxattr = 4231,
3122 listxattr = linux_base + 230,3160 flistxattr = 4232,
3123 llistxattr = linux_base + 231,3161 removexattr = 4233,
3124 flistxattr = linux_base + 232,3162 lremovexattr = 4234,
3125 removexattr = linux_base + 233,3163 fremovexattr = 4235,
3126 lremovexattr = linux_base + 234,3164 tkill = 4236,
3127 fremovexattr = linux_base + 235,3165 sendfile64 = 4237,
3128 tkill = linux_base + 236,3166 futex = 4238,
3129 sendfile64 = linux_base + 237,3167 sched_setaffinity = 4239,
3130 futex = linux_base + 238,3168 sched_getaffinity = 4240,
3131 sched_setaffinity = linux_base + 239,3169 io_setup = 4241,
3132 sched_getaffinity = linux_base + 240,3170 io_destroy = 4242,
3133 io_setup = linux_base + 241,3171 io_getevents = 4243,
3134 io_destroy = linux_base + 242,3172 io_submit = 4244,
3135 io_getevents = linux_base + 243,3173 io_cancel = 4245,
3136 io_submit = linux_base + 244,3174 exit_group = 4246,
3137 io_cancel = linux_base + 245,3175 lookup_dcookie = 4247,
3138 exit_group = linux_base + 246,3176 epoll_create = 4248,
3139 lookup_dcookie = linux_base + 247,3177 epoll_ctl = 4249,
3140 epoll_create = linux_base + 248,3178 epoll_wait = 4250,
3141 epoll_ctl = linux_base + 249,3179 remap_file_pages = 4251,
3142 epoll_wait = linux_base + 250,3180 set_tid_address = 4252,
3143 remap_file_pages = linux_base + 251,3181 restart_syscall = 4253,
3144 set_tid_address = linux_base + 252,3182 fadvise64 = 4254,
3145 restart_syscall = linux_base + 253,3183 statfs64 = 4255,
3146 fadvise64 = linux_base + 254,3184 fstatfs64 = 4256,
3147 statfs64 = linux_base + 255,3185 timer_create = 4257,
3148 fstatfs64 = linux_base + 256,3186 timer_settime = 4258,
3149 timer_create = linux_base + 257,3187 timer_gettime = 4259,
3150 timer_settime = linux_base + 258,3188 timer_getoverrun = 4260,
3151 timer_gettime = linux_base + 259,3189 timer_delete = 4261,
3152 timer_getoverrun = linux_base + 260,3190 clock_settime = 4262,
3153 timer_delete = linux_base + 261,3191 clock_gettime = 4263,
3154 clock_settime = linux_base + 262,3192 clock_getres = 4264,
3155 clock_gettime = linux_base + 263,3193 clock_nanosleep = 4265,
3156 clock_getres = linux_base + 264,3194 tgkill = 4266,
3157 clock_nanosleep = linux_base + 265,3195 utimes = 4267,
3158 tgkill = linux_base + 266,3196 mbind = 4268,
3159 utimes = linux_base + 267,3197 get_mempolicy = 4269,
3160 mbind = linux_base + 268,3198 set_mempolicy = 4270,
3161 get_mempolicy = linux_base + 269,3199 mq_open = 4271,
3162 set_mempolicy = linux_base + 270,3200 mq_unlink = 4272,
3163 mq_open = linux_base + 271,3201 mq_timedsend = 4273,
3164 mq_unlink = linux_base + 272,3202 mq_timedreceive = 4274,
3165 mq_timedsend = linux_base + 273,3203 mq_notify = 4275,
3166 mq_timedreceive = linux_base + 274,3204 mq_getsetattr = 4276,
3167 mq_notify = linux_base + 275,3205 vserver = 4277,
3168 mq_getsetattr = linux_base + 276,3206 waitid = 4278,
3169 vserver = linux_base + 277,3207 add_key = 4280,
3170 waitid = linux_base + 278,3208 request_key = 4281,
3171 add_key = linux_base + 280,3209 keyctl = 4282,
3172 request_key = linux_base + 281,3210 set_thread_area = 4283,
3173 keyctl = linux_base + 282,3211 inotify_init = 4284,
3174 set_thread_area = linux_base + 283,3212 inotify_add_watch = 4285,
3175 inotify_init = linux_base + 284,3213 inotify_rm_watch = 4286,
3176 inotify_add_watch = linux_base + 285,3214 migrate_pages = 4287,
3177 inotify_rm_watch = linux_base + 286,3215 openat = 4288,
3178 migrate_pages = linux_base + 287,3216 mkdirat = 4289,
3179 openat = linux_base + 288,3217 mknodat = 4290,
3180 mkdirat = linux_base + 289,3218 fchownat = 4291,
3181 mknodat = linux_base + 290,3219 futimesat = 4292,
3182 fchownat = linux_base + 291,3220 fstatat64 = 4293,
3183 futimesat = linux_base + 292,3221 unlinkat = 4294,
3184 fstatat64 = linux_base + 293,3222 renameat = 4295,
3185 unlinkat = linux_base + 294,3223 linkat = 4296,
3186 renameat = linux_base + 295,3224 symlinkat = 4297,
3187 linkat = linux_base + 296,3225 readlinkat = 4298,
3188 symlinkat = linux_base + 297,3226 fchmodat = 4299,
3189 readlinkat = linux_base + 298,3227 faccessat = 4300,
3190 fchmodat = linux_base + 299,3228 pselect6 = 4301,
3191 faccessat = linux_base + 300,3229 ppoll = 4302,
3192 pselect6 = linux_base + 301,3230 unshare = 4303,
3193 ppoll = linux_base + 302,3231 splice = 4304,
3194 unshare = linux_base + 303,3232 sync_file_range = 4305,
3195 splice = linux_base + 304,3233 tee = 4306,
3196 sync_file_range = linux_base + 305,3234 vmsplice = 4307,
3197 tee = linux_base + 306,3235 move_pages = 4308,
3198 vmsplice = linux_base + 307,3236 set_robust_list = 4309,
3199 move_pages = linux_base + 308,3237 get_robust_list = 4310,
3200 set_robust_list = linux_base + 309,3238 kexec_load = 4311,
3201 get_robust_list = linux_base + 310,3239 getcpu = 4312,
3202 kexec_load = linux_base + 311,3240 epoll_pwait = 4313,
3203 getcpu = linux_base + 312,3241 ioprio_set = 4314,
3204 epoll_pwait = linux_base + 313,3242 ioprio_get = 4315,
3205 ioprio_set = linux_base + 314,3243 utimensat = 4316,
3206 ioprio_get = linux_base + 315,3244 signalfd = 4317,
3207 utimensat = linux_base + 316,3245 timerfd = 4318,
3208 signalfd = linux_base + 317,3246 eventfd = 4319,
3209 timerfd = linux_base + 318,3247 fallocate = 4320,
3210 eventfd = linux_base + 319,3248 timerfd_create = 4321,
3211 fallocate = linux_base + 320,3249 timerfd_gettime = 4322,
3212 timerfd_create = linux_base + 321,3250 timerfd_settime = 4323,
3213 timerfd_gettime = linux_base + 322,3251 signalfd4 = 4324,
3214 timerfd_settime = linux_base + 323,3252 eventfd2 = 4325,
3215 signalfd4 = linux_base + 324,3253 epoll_create1 = 4326,
3216 eventfd2 = linux_base + 325,3254 dup3 = 4327,
3217 epoll_create1 = linux_base + 326,3255 pipe2 = 4328,
3218 dup3 = linux_base + 327,3256 inotify_init1 = 4329,
3219 pipe2 = linux_base + 328,3257 preadv = 4330,
3220 inotify_init1 = linux_base + 329,3258 pwritev = 4331,
3221 preadv = linux_base + 330,3259 rt_tgsigqueueinfo = 4332,
3222 pwritev = linux_base + 331,3260 perf_event_open = 4333,
3223 rt_tgsigqueueinfo = linux_base + 332,3261 accept4 = 4334,
3224 perf_event_open = linux_base + 333,3262 recvmmsg = 4335,
3225 accept4 = linux_base + 334,3263 fanotify_init = 4336,
3226 recvmmsg = linux_base + 335,3264 fanotify_mark = 4337,
3227 fanotify_init = linux_base + 336,3265 prlimit64 = 4338,
3228 fanotify_mark = linux_base + 337,3266 name_to_handle_at = 4339,
3229 prlimit64 = linux_base + 338,3267 open_by_handle_at = 4340,
3230 name_to_handle_at = linux_base + 339,3268 clock_adjtime = 4341,
3231 open_by_handle_at = linux_base + 340,3269 syncfs = 4342,
3232 clock_adjtime = linux_base + 341,3270 sendmmsg = 4343,
3233 syncfs = linux_base + 342,3271 setns = 4344,
3234 sendmmsg = linux_base + 343,3272 process_vm_readv = 4345,
3235 setns = linux_base + 344,3273 process_vm_writev = 4346,
3236 process_vm_readv = linux_base + 345,3274 kcmp = 4347,
3237 process_vm_writev = linux_base + 346,3275 finit_module = 4348,
3238 kcmp = linux_base + 347,3276 sched_setattr = 4349,
3239 finit_module = linux_base + 348,3277 sched_getattr = 4350,
3240 sched_setattr = linux_base + 349,3278 renameat2 = 4351,
3241 sched_getattr = linux_base + 350,3279 seccomp = 4352,
3242 renameat2 = linux_base + 351,3280 getrandom = 4353,
3243 seccomp = linux_base + 352,3281 memfd_create = 4354,
3244 getrandom = linux_base + 353,3282 bpf = 4355,
3245 memfd_create = linux_base + 354,3283 execveat = 4356,
3246 bpf = linux_base + 355,3284 userfaultfd = 4357,
3247 execveat = linux_base + 356,3285 membarrier = 4358,
3248 userfaultfd = linux_base + 357,3286 mlock2 = 4359,
3249 membarrier = linux_base + 358,3287 copy_file_range = 4360,
3250 mlock2 = linux_base + 359,3288 preadv2 = 4361,
3251 copy_file_range = linux_base + 360,3289 pwritev2 = 4362,
3252 preadv2 = linux_base + 361,3290 pkey_mprotect = 4363,
3253 pwritev2 = linux_base + 362,3291 pkey_alloc = 4364,
3254 pkey_mprotect = linux_base + 363,3292 pkey_free = 4365,
3255 pkey_alloc = linux_base + 364,3293 statx = 4366,
3256 pkey_free = linux_base + 365,3294 rseq = 4367,
3257 statx = linux_base + 366,3295 io_pgetevents = 4368,
3258 rseq = linux_base + 367,3296 semget = 4393,
3259 io_pgetevents = linux_base + 368,3297 semctl = 4394,
3260 semget = linux_base + 393,3298 shmget = 4395,
3261 semctl = linux_base + 394,3299 shmctl = 4396,
3262 shmget = linux_base + 395,3300 shmat = 4397,
3263 shmctl = linux_base + 396,3301 shmdt = 4398,
3264 shmat = linux_base + 397,3302 msgget = 4399,
3265 shmdt = linux_base + 398,3303 msgsnd = 4400,
3266 msgget = linux_base + 399,3304 msgrcv = 4401,
3267 msgsnd = linux_base + 400,3305 msgctl = 4402,
3268 msgrcv = linux_base + 401,3306 clock_gettime64 = 4403,
3269 msgctl = linux_base + 402,3307 clock_settime64 = 4404,
3270 clock_gettime64 = linux_base + 403,3308 clock_adjtime64 = 4405,
3271 clock_settime64 = linux_base + 404,3309 clock_getres_time64 = 4406,
3272 clock_adjtime64 = linux_base + 405,3310 clock_nanosleep_time64 = 4407,
3273 clock_getres_time64 = linux_base + 406,3311 timer_gettime64 = 4408,
3274 clock_nanosleep_time64 = linux_base + 407,3312 timer_settime64 = 4409,
3275 timer_gettime64 = linux_base + 408,3313 timerfd_gettime64 = 4410,
3276 timer_settime64 = linux_base + 409,3314 timerfd_settime64 = 4411,
3277 timerfd_gettime64 = linux_base + 410,3315 utimensat_time64 = 4412,
3278 timerfd_settime64 = linux_base + 411,3316 pselect6_time64 = 4413,
3279 utimensat_time64 = linux_base + 412,3317 ppoll_time64 = 4414,
3280 pselect6_time64 = linux_base + 413,3318 io_pgetevents_time64 = 4416,
3281 ppoll_time64 = linux_base + 414,3319 recvmmsg_time64 = 4417,
3282 io_pgetevents_time64 = linux_base + 416,3320 mq_timedsend_time64 = 4418,
3283 recvmmsg_time64 = linux_base + 417,3321 mq_timedreceive_time64 = 4419,
3284 mq_timedsend_time64 = linux_base + 418,3322 semtimedop_time64 = 4420,
3285 mq_timedreceive_time64 = linux_base + 419,3323 rt_sigtimedwait_time64 = 4421,
3286 semtimedop_time64 = linux_base + 420,3324 futex_time64 = 4422,
3287 rt_sigtimedwait_time64 = linux_base + 421,3325 sched_rr_get_interval_time64 = 4423,
3288 futex_time64 = linux_base + 422,3326 pidfd_send_signal = 4424,
3289 sched_rr_get_interval_time64 = linux_base + 423,3327 io_uring_setup = 4425,
3290 pidfd_send_signal = linux_base + 424,3328 io_uring_enter = 4426,
3291 io_uring_setup = linux_base + 425,3329 io_uring_register = 4427,
3292 io_uring_enter = linux_base + 426,3330 open_tree = 4428,
3293 io_uring_register = linux_base + 427,3331 move_mount = 4429,
3294 open_tree = linux_base + 428,3332 fsopen = 4430,
3295 move_mount = linux_base + 429,3333 fsconfig = 4431,
3296 fsopen = linux_base + 430,3334 fsmount = 4432,
3297 fsconfig = linux_base + 431,3335 fspick = 4433,
3298 fsmount = linux_base + 432,3336 pidfd_open = 4434,
3299 fspick = linux_base + 433,3337 clone3 = 4435,
3300 pidfd_open = linux_base + 434,3338 close_range = 4436,
3301 clone3 = linux_base + 435,3339 openat2 = 4437,
3302 close_range = linux_base + 436,3340 pidfd_getfd = 4438,
3303 openat2 = linux_base + 437,3341 faccessat2 = 4439,
3304 pidfd_getfd = linux_base + 438,3342 process_madvise = 4440,
3305 faccessat2 = linux_base + 439,3343 epoll_pwait2 = 4441,
3306 process_madvise = linux_base + 440,3344 mount_setattr = 4442,
3307 epoll_pwait2 = linux_base + 441,3345 quotactl_fd = 4443,
3308 mount_setattr = linux_base + 442,3346 landlock_create_ruleset = 4444,
3309 quotactl_fd = linux_base + 443,3347 landlock_add_rule = 4445,
3310 landlock_create_ruleset = linux_base + 444,3348 landlock_restrict_self = 4446,
3311 landlock_add_rule = linux_base + 445,3349 process_mrelease = 4448,
3312 landlock_restrict_self = linux_base + 446,3350 futex_waitv = 4449,
3313 process_mrelease = linux_base + 448,3351 set_mempolicy_home_node = 4450,
3314 futex_waitv = linux_base + 449,3352 cachestat = 4451,
3315 set_mempolicy_home_node = linux_base + 450,3353 fchmodat2 = 4452,
3316 cachestat = linux_base + 451,3354 map_shadow_stack = 4453,
3317 fchmodat2 = linux_base + 452,3355 futex_wake = 4454,
3318 map_shadow_stack = linux_base + 453,3356 futex_wait = 4455,
3319 futex_wake = linux_base + 454,3357 futex_requeue = 4456,
3320 futex_wait = linux_base + 455,3358 statmount = 4457,
3321 futex_requeue = linux_base + 456,3359 listmount = 4458,
3322 statmount = linux_base + 457,3360 lsm_get_self_attr = 4459,
3323 listmount = linux_base + 458,3361 lsm_set_self_attr = 4460,
3324 lsm_get_self_attr = linux_base + 459,3362 lsm_list_modules = 4461,
3325 lsm_set_self_attr = linux_base + 460,3363 mseal = 4462,
3326 lsm_list_modules = linux_base + 461,3364 setxattrat = 4463,
3327 mseal = linux_base + 462,3365 getxattrat = 4464,
3366 listxattrat = 4465,
3367 removexattrat = 4466,
3368 open_tree_attr = 4467,
3328};3369};
33293370
3330pub const MipsN64 = enum(usize) {3371pub const MipsN64 = enum(usize) {
3331 const linux_base = 5000;3372 read = 5000,
33323373 write = 5001,
3333 read = linux_base + 0,3374 open = 5002,
3334 write = linux_base + 1,3375 close = 5003,
3335 open = linux_base + 2,3376 stat = 5004,
3336 close = linux_base + 3,3377 fstat = 5005,
3337 stat = linux_base + 4,3378 lstat = 5006,
3338 fstat = linux_base + 5,3379 poll = 5007,
3339 lstat = linux_base + 6,3380 lseek = 5008,
3340 poll = linux_base + 7,3381 mmap = 5009,
3341 lseek = linux_base + 8,3382 mprotect = 5010,
3342 mmap = linux_base + 9,3383 munmap = 5011,
3343 mprotect = linux_base + 10,3384 brk = 5012,
3344 munmap = linux_base + 11,3385 rt_sigaction = 5013,
3345 brk = linux_base + 12,3386 rt_sigprocmask = 5014,
3346 rt_sigaction = linux_base + 13,3387 ioctl = 5015,
3347 rt_sigprocmask = linux_base + 14,3388 pread64 = 5016,
3348 ioctl = linux_base + 15,3389 pwrite64 = 5017,
3349 pread64 = linux_base + 16,3390 readv = 5018,
3350 pwrite64 = linux_base + 17,3391 writev = 5019,
3351 readv = linux_base + 18,3392 access = 5020,
3352 writev = linux_base + 19,3393 pipe = 5021,
3353 access = linux_base + 20,3394 newselect = 5022,
3354 pipe = linux_base + 21,3395 sched_yield = 5023,
3355 newselect = linux_base + 22,3396 mremap = 5024,
3356 sched_yield = linux_base + 23,3397 msync = 5025,
3357 mremap = linux_base + 24,3398 mincore = 5026,
3358 msync = linux_base + 25,3399 madvise = 5027,
3359 mincore = linux_base + 26,3400 shmget = 5028,
3360 madvise = linux_base + 27,3401 shmat = 5029,
3361 shmget = linux_base + 28,3402 shmctl = 5030,
3362 shmat = linux_base + 29,3403 dup = 5031,
3363 shmctl = linux_base + 30,3404 dup2 = 5032,
3364 dup = linux_base + 31,3405 pause = 5033,
3365 dup2 = linux_base + 32,3406 nanosleep = 5034,
3366 pause = linux_base + 33,3407 getitimer = 5035,
3367 nanosleep = linux_base + 34,3408 setitimer = 5036,
3368 getitimer = linux_base + 35,3409 alarm = 5037,
3369 setitimer = linux_base + 36,3410 getpid = 5038,
3370 alarm = linux_base + 37,3411 sendfile = 5039,
3371 getpid = linux_base + 38,3412 socket = 5040,
3372 sendfile = linux_base + 39,3413 connect = 5041,
3373 socket = linux_base + 40,3414 accept = 5042,
3374 connect = linux_base + 41,3415 sendto = 5043,
3375 accept = linux_base + 42,3416 recvfrom = 5044,
3376 sendto = linux_base + 43,3417 sendmsg = 5045,
3377 recvfrom = linux_base + 44,3418 recvmsg = 5046,
3378 sendmsg = linux_base + 45,3419 shutdown = 5047,
3379 recvmsg = linux_base + 46,3420 bind = 5048,
3380 shutdown = linux_base + 47,3421 listen = 5049,
3381 bind = linux_base + 48,3422 getsockname = 5050,
3382 listen = linux_base + 49,3423 getpeername = 5051,
3383 getsockname = linux_base + 50,3424 socketpair = 5052,
3384 getpeername = linux_base + 51,3425 setsockopt = 5053,
3385 socketpair = linux_base + 52,3426 getsockopt = 5054,
3386 setsockopt = linux_base + 53,3427 clone = 5055,
3387 getsockopt = linux_base + 54,3428 fork = 5056,
3388 clone = linux_base + 55,3429 execve = 5057,
3389 fork = linux_base + 56,3430 exit = 5058,
3390 execve = linux_base + 57,3431 wait4 = 5059,
3391 exit = linux_base + 58,3432 kill = 5060,
3392 wait4 = linux_base + 59,3433 uname = 5061,
3393 kill = linux_base + 60,3434 semget = 5062,
3394 uname = linux_base + 61,3435 semop = 5063,
3395 semget = linux_base + 62,3436 semctl = 5064,
3396 semop = linux_base + 63,3437 shmdt = 5065,
3397 semctl = linux_base + 64,3438 msgget = 5066,
3398 shmdt = linux_base + 65,3439 msgsnd = 5067,
3399 msgget = linux_base + 66,3440 msgrcv = 5068,
3400 msgsnd = linux_base + 67,3441 msgctl = 5069,
3401 msgrcv = linux_base + 68,3442 fcntl = 5070,
3402 msgctl = linux_base + 69,3443 flock = 5071,
3403 fcntl = linux_base + 70,3444 fsync = 5072,
3404 flock = linux_base + 71,3445 fdatasync = 5073,
3405 fsync = linux_base + 72,3446 truncate = 5074,
3406 fdatasync = linux_base + 73,3447 ftruncate = 5075,
3407 truncate = linux_base + 74,3448 getdents = 5076,
3408 ftruncate = linux_base + 75,3449 getcwd = 5077,
3409 getdents = linux_base + 76,3450 chdir = 5078,
3410 getcwd = linux_base + 77,3451 fchdir = 5079,
3411 chdir = linux_base + 78,3452 rename = 5080,
3412 fchdir = linux_base + 79,3453 mkdir = 5081,
3413 rename = linux_base + 80,3454 rmdir = 5082,
3414 mkdir = linux_base + 81,3455 creat = 5083,
3415 rmdir = linux_base + 82,3456 link = 5084,
3416 creat = linux_base + 83,3457 unlink = 5085,
3417 link = linux_base + 84,3458 symlink = 5086,
3418 unlink = linux_base + 85,3459 readlink = 5087,
3419 symlink = linux_base + 86,3460 chmod = 5088,
3420 readlink = linux_base + 87,3461 fchmod = 5089,
3421 chmod = linux_base + 88,3462 chown = 5090,
3422 fchmod = linux_base + 89,3463 fchown = 5091,
3423 chown = linux_base + 90,3464 lchown = 5092,
3424 fchown = linux_base + 91,3465 umask = 5093,
3425 lchown = linux_base + 92,3466 gettimeofday = 5094,
3426 umask = linux_base + 93,3467 getrlimit = 5095,
3427 gettimeofday = linux_base + 94,3468 getrusage = 5096,
3428 getrlimit = linux_base + 95,3469 sysinfo = 5097,
3429 getrusage = linux_base + 96,3470 times = 5098,
3430 sysinfo = linux_base + 97,3471 ptrace = 5099,
3431 times = linux_base + 98,3472 getuid = 5100,
3432 ptrace = linux_base + 99,3473 syslog = 5101,
3433 getuid = linux_base + 100,3474 getgid = 5102,
3434 syslog = linux_base + 101,3475 setuid = 5103,
3435 getgid = linux_base + 102,3476 setgid = 5104,
3436 setuid = linux_base + 103,3477 geteuid = 5105,
3437 setgid = linux_base + 104,3478 getegid = 5106,
3438 geteuid = linux_base + 105,3479 setpgid = 5107,
3439 getegid = linux_base + 106,3480 getppid = 5108,
3440 setpgid = linux_base + 107,3481 getpgrp = 5109,
3441 getppid = linux_base + 108,3482 setsid = 5110,
3442 getpgrp = linux_base + 109,3483 setreuid = 5111,
3443 setsid = linux_base + 110,3484 setregid = 5112,
3444 setreuid = linux_base + 111,3485 getgroups = 5113,
3445 setregid = linux_base + 112,3486 setgroups = 5114,
3446 getgroups = linux_base + 113,3487 setresuid = 5115,
3447 setgroups = linux_base + 114,3488 getresuid = 5116,
3448 setresuid = linux_base + 115,3489 setresgid = 5117,
3449 getresuid = linux_base + 116,3490 getresgid = 5118,
3450 setresgid = linux_base + 117,3491 getpgid = 5119,
3451 getresgid = linux_base + 118,3492 setfsuid = 5120,
3452 getpgid = linux_base + 119,3493 setfsgid = 5121,
3453 setfsuid = linux_base + 120,3494 getsid = 5122,
3454 setfsgid = linux_base + 121,3495 capget = 5123,
3455 getsid = linux_base + 122,3496 capset = 5124,
3456 capget = linux_base + 123,3497 rt_sigpending = 5125,
3457 capset = linux_base + 124,3498 rt_sigtimedwait = 5126,
3458 rt_sigpending = linux_base + 125,3499 rt_sigqueueinfo = 5127,
3459 rt_sigtimedwait = linux_base + 126,3500 rt_sigsuspend = 5128,
3460 rt_sigqueueinfo = linux_base + 127,3501 sigaltstack = 5129,
3461 rt_sigsuspend = linux_base + 128,3502 utime = 5130,
3462 sigaltstack = linux_base + 129,3503 mknod = 5131,
3463 utime = linux_base + 130,3504 personality = 5132,
3464 mknod = linux_base + 131,3505 ustat = 5133,
3465 personality = linux_base + 132,3506 statfs = 5134,
3466 ustat = linux_base + 133,3507 fstatfs = 5135,
3467 statfs = linux_base + 134,3508 sysfs = 5136,
3468 fstatfs = linux_base + 135,3509 getpriority = 5137,
3469 sysfs = linux_base + 136,3510 setpriority = 5138,
3470 getpriority = linux_base + 137,3511 sched_setparam = 5139,
3471 setpriority = linux_base + 138,3512 sched_getparam = 5140,
3472 sched_setparam = linux_base + 139,3513 sched_setscheduler = 5141,
3473 sched_getparam = linux_base + 140,3514 sched_getscheduler = 5142,
3474 sched_setscheduler = linux_base + 141,3515 sched_get_priority_max = 5143,
3475 sched_getscheduler = linux_base + 142,3516 sched_get_priority_min = 5144,
3476 sched_get_priority_max = linux_base + 143,3517 sched_rr_get_interval = 5145,
3477 sched_get_priority_min = linux_base + 144,3518 mlock = 5146,
3478 sched_rr_get_interval = linux_base + 145,3519 munlock = 5147,
3479 mlock = linux_base + 146,3520 mlockall = 5148,
3480 munlock = linux_base + 147,3521 munlockall = 5149,
3481 mlockall = linux_base + 148,3522 vhangup = 5150,
3482 munlockall = linux_base + 149,3523 pivot_root = 5151,
3483 vhangup = linux_base + 150,3524 sysctl = 5152,
3484 pivot_root = linux_base + 151,3525 prctl = 5153,
3485 sysctl = linux_base + 152,3526 adjtimex = 5154,
3486 prctl = linux_base + 153,3527 setrlimit = 5155,
3487 adjtimex = linux_base + 154,3528 chroot = 5156,
3488 setrlimit = linux_base + 155,3529 sync = 5157,
3489 chroot = linux_base + 156,3530 acct = 5158,
3490 sync = linux_base + 157,3531 settimeofday = 5159,
3491 acct = linux_base + 158,3532 mount = 5160,
3492 settimeofday = linux_base + 159,3533 umount2 = 5161,
3493 mount = linux_base + 160,3534 swapon = 5162,
3494 umount2 = linux_base + 161,3535 swapoff = 5163,
3495 swapon = linux_base + 162,3536 reboot = 5164,
3496 swapoff = linux_base + 163,3537 sethostname = 5165,
3497 reboot = linux_base + 164,3538 setdomainname = 5166,
3498 sethostname = linux_base + 165,3539 create_module = 5167,
3499 setdomainname = linux_base + 166,3540 init_module = 5168,
3500 create_module = linux_base + 167,3541 delete_module = 5169,
3501 init_module = linux_base + 168,3542 get_kernel_syms = 5170,
3502 delete_module = linux_base + 169,3543 query_module = 5171,
3503 get_kernel_syms = linux_base + 170,3544 quotactl = 5172,
3504 query_module = linux_base + 171,3545 nfsservctl = 5173,
3505 quotactl = linux_base + 172,3546 getpmsg = 5174,
3506 nfsservctl = linux_base + 173,3547 putpmsg = 5175,
3507 getpmsg = linux_base + 174,3548 afs_syscall = 5176,
3508 putpmsg = linux_base + 175,3549 gettid = 5178,
3509 afs_syscall = linux_base + 176,3550 readahead = 5179,
3510 gettid = linux_base + 178,3551 setxattr = 5180,
3511 readahead = linux_base + 179,3552 lsetxattr = 5181,
3512 setxattr = linux_base + 180,3553 fsetxattr = 5182,
3513 lsetxattr = linux_base + 181,3554 getxattr = 5183,
3514 fsetxattr = linux_base + 182,3555 lgetxattr = 5184,
3515 getxattr = linux_base + 183,3556 fgetxattr = 5185,
3516 lgetxattr = linux_base + 184,3557 listxattr = 5186,
3517 fgetxattr = linux_base + 185,3558 llistxattr = 5187,
3518 listxattr = linux_base + 186,3559 flistxattr = 5188,
3519 llistxattr = linux_base + 187,3560 removexattr = 5189,
3520 flistxattr = linux_base + 188,3561 lremovexattr = 5190,
3521 removexattr = linux_base + 189,3562 fremovexattr = 5191,
3522 lremovexattr = linux_base + 190,3563 tkill = 5192,
3523 fremovexattr = linux_base + 191,3564 futex = 5194,
3524 tkill = linux_base + 192,3565 sched_setaffinity = 5195,
3525 futex = linux_base + 194,3566 sched_getaffinity = 5196,
3526 sched_setaffinity = linux_base + 195,3567 cacheflush = 5197,
3527 sched_getaffinity = linux_base + 196,3568 cachectl = 5198,
3528 cacheflush = linux_base + 197,3569 sysmips = 5199,
3529 cachectl = linux_base + 198,3570 io_setup = 5200,
3530 sysmips = linux_base + 199,3571 io_destroy = 5201,
3531 io_setup = linux_base + 200,3572 io_getevents = 5202,
3532 io_destroy = linux_base + 201,3573 io_submit = 5203,
3533 io_getevents = linux_base + 202,3574 io_cancel = 5204,
3534 io_submit = linux_base + 203,3575 exit_group = 5205,
3535 io_cancel = linux_base + 204,3576 lookup_dcookie = 5206,
3536 exit_group = linux_base + 205,3577 epoll_create = 5207,
3537 lookup_dcookie = linux_base + 206,3578 epoll_ctl = 5208,
3538 epoll_create = linux_base + 207,3579 epoll_wait = 5209,
3539 epoll_ctl = linux_base + 208,3580 remap_file_pages = 5210,
3540 epoll_wait = linux_base + 209,3581 rt_sigreturn = 5211,
3541 remap_file_pages = linux_base + 210,3582 set_tid_address = 5212,
3542 rt_sigreturn = linux_base + 211,3583 restart_syscall = 5213,
3543 set_tid_address = linux_base + 212,3584 semtimedop = 5214,
3544 restart_syscall = linux_base + 213,3585 fadvise64 = 5215,
3545 semtimedop = linux_base + 214,3586 timer_create = 5216,
3546 fadvise64 = linux_base + 215,3587 timer_settime = 5217,
3547 timer_create = linux_base + 216,3588 timer_gettime = 5218,
3548 timer_settime = linux_base + 217,3589 timer_getoverrun = 5219,
3549 timer_gettime = linux_base + 218,3590 timer_delete = 5220,
3550 timer_getoverrun = linux_base + 219,3591 clock_settime = 5221,
3551 timer_delete = linux_base + 220,3592 clock_gettime = 5222,
3552 clock_settime = linux_base + 221,3593 clock_getres = 5223,
3553 clock_gettime = linux_base + 222,3594 clock_nanosleep = 5224,
3554 clock_getres = linux_base + 223,3595 tgkill = 5225,
3555 clock_nanosleep = linux_base + 224,3596 utimes = 5226,
3556 tgkill = linux_base + 225,3597 mbind = 5227,
3557 utimes = linux_base + 226,3598 get_mempolicy = 5228,
3558 mbind = linux_base + 227,3599 set_mempolicy = 5229,
3559 get_mempolicy = linux_base + 228,3600 mq_open = 5230,
3560 set_mempolicy = linux_base + 229,3601 mq_unlink = 5231,
3561 mq_open = linux_base + 230,3602 mq_timedsend = 5232,
3562 mq_unlink = linux_base + 231,3603 mq_timedreceive = 5233,
3563 mq_timedsend = linux_base + 232,3604 mq_notify = 5234,
3564 mq_timedreceive = linux_base + 233,3605 mq_getsetattr = 5235,
3565 mq_notify = linux_base + 234,3606 vserver = 5236,
3566 mq_getsetattr = linux_base + 235,3607 waitid = 5237,
3567 vserver = linux_base + 236,3608 add_key = 5239,
3568 waitid = linux_base + 237,3609 request_key = 5240,
3569 add_key = linux_base + 239,3610 keyctl = 5241,
3570 request_key = linux_base + 240,3611 set_thread_area = 5242,
3571 keyctl = linux_base + 241,3612 inotify_init = 5243,
3572 set_thread_area = linux_base + 242,3613 inotify_add_watch = 5244,
3573 inotify_init = linux_base + 243,3614 inotify_rm_watch = 5245,
3574 inotify_add_watch = linux_base + 244,3615 migrate_pages = 5246,
3575 inotify_rm_watch = linux_base + 245,3616 openat = 5247,
3576 migrate_pages = linux_base + 246,3617 mkdirat = 5248,
3577 openat = linux_base + 247,3618 mknodat = 5249,
3578 mkdirat = linux_base + 248,3619 fchownat = 5250,
3579 mknodat = linux_base + 249,3620 futimesat = 5251,
3580 fchownat = linux_base + 250,3621 fstatat64 = 5252,
3581 futimesat = linux_base + 251,3622 unlinkat = 5253,
3582 fstatat64 = linux_base + 252,3623 renameat = 5254,
3583 unlinkat = linux_base + 253,3624 linkat = 5255,
3584 renameat = linux_base + 254,3625 symlinkat = 5256,
3585 linkat = linux_base + 255,3626 readlinkat = 5257,
3586 symlinkat = linux_base + 256,3627 fchmodat = 5258,
3587 readlinkat = linux_base + 257,3628 faccessat = 5259,
3588 fchmodat = linux_base + 258,3629 pselect6 = 5260,
3589 faccessat = linux_base + 259,3630 ppoll = 5261,
3590 pselect6 = linux_base + 260,3631 unshare = 5262,
3591 ppoll = linux_base + 261,3632 splice = 5263,
3592 unshare = linux_base + 262,3633 sync_file_range = 5264,
3593 splice = linux_base + 263,3634 tee = 5265,
3594 sync_file_range = linux_base + 264,3635 vmsplice = 5266,
3595 tee = linux_base + 265,3636 move_pages = 5267,
3596 vmsplice = linux_base + 266,3637 set_robust_list = 5268,
3597 move_pages = linux_base + 267,3638 get_robust_list = 5269,
3598 set_robust_list = linux_base + 268,3639 kexec_load = 5270,
3599 get_robust_list = linux_base + 269,3640 getcpu = 5271,
3600 kexec_load = linux_base + 270,3641 epoll_pwait = 5272,
3601 getcpu = linux_base + 271,3642 ioprio_set = 5273,
3602 epoll_pwait = linux_base + 272,3643 ioprio_get = 5274,
3603 ioprio_set = linux_base + 273,3644 utimensat = 5275,
3604 ioprio_get = linux_base + 274,3645 signalfd = 5276,
3605 utimensat = linux_base + 275,3646 timerfd = 5277,
3606 signalfd = linux_base + 276,3647 eventfd = 5278,
3607 timerfd = linux_base + 277,3648 fallocate = 5279,
3608 eventfd = linux_base + 278,3649 timerfd_create = 5280,
3609 fallocate = linux_base + 279,3650 timerfd_gettime = 5281,
3610 timerfd_create = linux_base + 280,3651 timerfd_settime = 5282,
3611 timerfd_gettime = linux_base + 281,3652 signalfd4 = 5283,
3612 timerfd_settime = linux_base + 282,3653 eventfd2 = 5284,
3613 signalfd4 = linux_base + 283,3654 epoll_create1 = 5285,
3614 eventfd2 = linux_base + 284,3655 dup3 = 5286,
3615 epoll_create1 = linux_base + 285,3656 pipe2 = 5287,
3616 dup3 = linux_base + 286,3657 inotify_init1 = 5288,
3617 pipe2 = linux_base + 287,3658 preadv = 5289,
3618 inotify_init1 = linux_base + 288,3659 pwritev = 5290,
3619 preadv = linux_base + 289,3660 rt_tgsigqueueinfo = 5291,
3620 pwritev = linux_base + 290,3661 perf_event_open = 5292,
3621 rt_tgsigqueueinfo = linux_base + 291,3662 accept4 = 5293,
3622 perf_event_open = linux_base + 292,3663 recvmmsg = 5294,
3623 accept4 = linux_base + 293,3664 fanotify_init = 5295,
3624 recvmmsg = linux_base + 294,3665 fanotify_mark = 5296,
3625 fanotify_init = linux_base + 295,3666 prlimit64 = 5297,
3626 fanotify_mark = linux_base + 296,3667 name_to_handle_at = 5298,
3627 prlimit64 = linux_base + 297,3668 open_by_handle_at = 5299,
3628 name_to_handle_at = linux_base + 298,3669 clock_adjtime = 5300,
3629 open_by_handle_at = linux_base + 299,3670 syncfs = 5301,
3630 clock_adjtime = linux_base + 300,3671 sendmmsg = 5302,
3631 syncfs = linux_base + 301,3672 setns = 5303,
3632 sendmmsg = linux_base + 302,3673 process_vm_readv = 5304,
3633 setns = linux_base + 303,3674 process_vm_writev = 5305,
3634 process_vm_readv = linux_base + 304,3675 kcmp = 5306,
3635 process_vm_writev = linux_base + 305,3676 finit_module = 5307,
3636 kcmp = linux_base + 306,3677 getdents64 = 5308,
3637 finit_module = linux_base + 307,3678 sched_setattr = 5309,
3638 getdents64 = linux_base + 308,3679 sched_getattr = 5310,
3639 sched_setattr = linux_base + 309,3680 renameat2 = 5311,
3640 sched_getattr = linux_base + 310,3681 seccomp = 5312,
3641 renameat2 = linux_base + 311,3682 getrandom = 5313,
3642 seccomp = linux_base + 312,3683 memfd_create = 5314,
3643 getrandom = linux_base + 313,3684 bpf = 5315,
3644 memfd_create = linux_base + 314,3685 execveat = 5316,
3645 bpf = linux_base + 315,3686 userfaultfd = 5317,
3646 execveat = linux_base + 316,3687 membarrier = 5318,
3647 userfaultfd = linux_base + 317,3688 mlock2 = 5319,
3648 membarrier = linux_base + 318,3689 copy_file_range = 5320,
3649 mlock2 = linux_base + 319,3690 preadv2 = 5321,
3650 copy_file_range = linux_base + 320,3691 pwritev2 = 5322,
3651 preadv2 = linux_base + 321,3692 pkey_mprotect = 5323,
3652 pwritev2 = linux_base + 322,3693 pkey_alloc = 5324,
3653 pkey_mprotect = linux_base + 323,3694 pkey_free = 5325,
3654 pkey_alloc = linux_base + 324,3695 statx = 5326,
3655 pkey_free = linux_base + 325,3696 rseq = 5327,
3656 statx = linux_base + 326,3697 io_pgetevents = 5328,
3657 rseq = linux_base + 327,3698 pidfd_send_signal = 5424,
3658 io_pgetevents = linux_base + 328,3699 io_uring_setup = 5425,
3659 pidfd_send_signal = linux_base + 424,3700 io_uring_enter = 5426,
3660 io_uring_setup = linux_base + 425,3701 io_uring_register = 5427,
3661 io_uring_enter = linux_base + 426,3702 open_tree = 5428,
3662 io_uring_register = linux_base + 427,3703 move_mount = 5429,
3663 open_tree = linux_base + 428,3704 fsopen = 5430,
3664 move_mount = linux_base + 429,3705 fsconfig = 5431,
3665 fsopen = linux_base + 430,3706 fsmount = 5432,
3666 fsconfig = linux_base + 431,3707 fspick = 5433,
3667 fsmount = linux_base + 432,3708 pidfd_open = 5434,
3668 fspick = linux_base + 433,3709 clone3 = 5435,
3669 pidfd_open = linux_base + 434,3710 close_range = 5436,
3670 clone3 = linux_base + 435,3711 openat2 = 5437,
3671 close_range = linux_base + 436,3712 pidfd_getfd = 5438,
3672 openat2 = linux_base + 437,3713 faccessat2 = 5439,
3673 pidfd_getfd = linux_base + 438,3714 process_madvise = 5440,
3674 faccessat2 = linux_base + 439,3715 epoll_pwait2 = 5441,
3675 process_madvise = linux_base + 440,3716 mount_setattr = 5442,
3676 epoll_pwait2 = linux_base + 441,3717 quotactl_fd = 5443,
3677 mount_setattr = linux_base + 442,3718 landlock_create_ruleset = 5444,
3678 quotactl_fd = linux_base + 443,3719 landlock_add_rule = 5445,
3679 landlock_create_ruleset = linux_base + 444,3720 landlock_restrict_self = 5446,
3680 landlock_add_rule = linux_base + 445,3721 process_mrelease = 5448,
3681 landlock_restrict_self = linux_base + 446,3722 futex_waitv = 5449,
3682 process_mrelease = linux_base + 448,3723 set_mempolicy_home_node = 5450,
3683 futex_waitv = linux_base + 449,3724 cachestat = 5451,
3684 set_mempolicy_home_node = linux_base + 450,3725 fchmodat2 = 5452,
3685 cachestat = linux_base + 451,3726 map_shadow_stack = 5453,
3686 fchmodat2 = linux_base + 452,3727 futex_wake = 5454,
3687 map_shadow_stack = linux_base + 453,3728 futex_wait = 5455,
3688 futex_wake = linux_base + 454,3729 futex_requeue = 5456,
3689 futex_wait = linux_base + 455,3730 statmount = 5457,
3690 futex_requeue = linux_base + 456,3731 listmount = 5458,
3691 statmount = linux_base + 457,3732 lsm_get_self_attr = 5459,
3692 listmount = linux_base + 458,3733 lsm_set_self_attr = 5460,
3693 lsm_get_self_attr = linux_base + 459,3734 lsm_list_modules = 5461,
3694 lsm_set_self_attr = linux_base + 460,3735 mseal = 5462,
3695 lsm_list_modules = linux_base + 461,3736 setxattrat = 5463,
3696 mseal = linux_base + 462,3737 getxattrat = 5464,
3738 listxattrat = 5465,
3739 removexattrat = 5466,
3740 open_tree_attr = 5467,
3697};3741};
36983742
3699pub const MipsN32 = enum(usize) {3743pub const MipsN32 = enum(usize) {
3700 const linux_base = 6000;3744 read = 6000,
37013745 write = 6001,
3702 read = linux_base + 0,3746 open = 6002,
3703 write = linux_base + 1,3747 close = 6003,
3704 open = linux_base + 2,3748 stat = 6004,
3705 close = linux_base + 3,3749 fstat = 6005,
3706 stat = linux_base + 4,3750 lstat = 6006,
3707 fstat = linux_base + 5,3751 poll = 6007,
3708 lstat = linux_base + 6,3752 lseek = 6008,
3709 poll = linux_base + 7,3753 mmap = 6009,
3710 lseek = linux_base + 8,3754 mprotect = 6010,
3711 mmap = linux_base + 9,3755 munmap = 6011,
3712 mprotect = linux_base + 10,3756 brk = 6012,
3713 munmap = linux_base + 11,3757 rt_sigaction = 6013,
3714 brk = linux_base + 12,3758 rt_sigprocmask = 6014,
3715 rt_sigaction = linux_base + 13,3759 ioctl = 6015,
3716 rt_sigprocmask = linux_base + 14,3760 pread64 = 6016,
3717 ioctl = linux_base + 15,3761 pwrite64 = 6017,
3718 pread64 = linux_base + 16,3762 readv = 6018,
3719 pwrite64 = linux_base + 17,3763 writev = 6019,
3720 readv = linux_base + 18,3764 access = 6020,
3721 writev = linux_base + 19,3765 pipe = 6021,
3722 access = linux_base + 20,3766 newselect = 6022,
3723 pipe = linux_base + 21,3767 sched_yield = 6023,
3724 newselect = linux_base + 22,3768 mremap = 6024,
3725 sched_yield = linux_base + 23,3769 msync = 6025,
3726 mremap = linux_base + 24,3770 mincore = 6026,
3727 msync = linux_base + 25,3771 madvise = 6027,
3728 mincore = linux_base + 26,3772 shmget = 6028,
3729 madvise = linux_base + 27,3773 shmat = 6029,
3730 shmget = linux_base + 28,3774 shmctl = 6030,
3731 shmat = linux_base + 29,3775 dup = 6031,
3732 shmctl = linux_base + 30,3776 dup2 = 6032,
3733 dup = linux_base + 31,3777 pause = 6033,
3734 dup2 = linux_base + 32,3778 nanosleep = 6034,
3735 pause = linux_base + 33,3779 getitimer = 6035,
3736 nanosleep = linux_base + 34,3780 setitimer = 6036,
3737 getitimer = linux_base + 35,3781 alarm = 6037,
3738 setitimer = linux_base + 36,3782 getpid = 6038,
3739 alarm = linux_base + 37,3783 sendfile = 6039,
3740 getpid = linux_base + 38,3784 socket = 6040,
3741 sendfile = linux_base + 39,3785 connect = 6041,
3742 socket = linux_base + 40,3786 accept = 6042,
3743 connect = linux_base + 41,3787 sendto = 6043,
3744 accept = linux_base + 42,3788 recvfrom = 6044,
3745 sendto = linux_base + 43,3789 sendmsg = 6045,
3746 recvfrom = linux_base + 44,3790 recvmsg = 6046,
3747 sendmsg = linux_base + 45,3791 shutdown = 6047,
3748 recvmsg = linux_base + 46,3792 bind = 6048,
3749 shutdown = linux_base + 47,3793 listen = 6049,
3750 bind = linux_base + 48,3794 getsockname = 6050,
3751 listen = linux_base + 49,3795 getpeername = 6051,
3752 getsockname = linux_base + 50,3796 socketpair = 6052,
3753 getpeername = linux_base + 51,3797 setsockopt = 6053,
3754 socketpair = linux_base + 52,3798 getsockopt = 6054,
3755 setsockopt = linux_base + 53,3799 clone = 6055,
3756 getsockopt = linux_base + 54,3800 fork = 6056,
3757 clone = linux_base + 55,3801 execve = 6057,
3758 fork = linux_base + 56,3802 exit = 6058,
3759 execve = linux_base + 57,3803 wait4 = 6059,
3760 exit = linux_base + 58,3804 kill = 6060,
3761 wait4 = linux_base + 59,3805 uname = 6061,
3762 kill = linux_base + 60,3806 semget = 6062,
3763 uname = linux_base + 61,3807 semop = 6063,
3764 semget = linux_base + 62,3808 semctl = 6064,
3765 semop = linux_base + 63,3809 shmdt = 6065,
3766 semctl = linux_base + 64,3810 msgget = 6066,
3767 shmdt = linux_base + 65,3811 msgsnd = 6067,
3768 msgget = linux_base + 66,3812 msgrcv = 6068,
3769 msgsnd = linux_base + 67,3813 msgctl = 6069,
3770 msgrcv = linux_base + 68,3814 fcntl = 6070,
3771 msgctl = linux_base + 69,3815 flock = 6071,
3772 fcntl = linux_base + 70,3816 fsync = 6072,
3773 flock = linux_base + 71,3817 fdatasync = 6073,
3774 fsync = linux_base + 72,3818 truncate = 6074,
3775 fdatasync = linux_base + 73,3819 ftruncate = 6075,
3776 truncate = linux_base + 74,3820 getdents = 6076,
3777 ftruncate = linux_base + 75,3821 getcwd = 6077,
3778 getdents = linux_base + 76,3822 chdir = 6078,
3779 getcwd = linux_base + 77,3823 fchdir = 6079,
3780 chdir = linux_base + 78,3824 rename = 6080,
3781 fchdir = linux_base + 79,3825 mkdir = 6081,
3782 rename = linux_base + 80,3826 rmdir = 6082,
3783 mkdir = linux_base + 81,3827 creat = 6083,
3784 rmdir = linux_base + 82,3828 link = 6084,
3785 creat = linux_base + 83,3829 unlink = 6085,
3786 link = linux_base + 84,3830 symlink = 6086,
3787 unlink = linux_base + 85,3831 readlink = 6087,
3788 symlink = linux_base + 86,3832 chmod = 6088,
3789 readlink = linux_base + 87,3833 fchmod = 6089,
3790 chmod = linux_base + 88,3834 chown = 6090,
3791 fchmod = linux_base + 89,3835 fchown = 6091,
3792 chown = linux_base + 90,3836 lchown = 6092,
3793 fchown = linux_base + 91,3837 umask = 6093,
3794 lchown = linux_base + 92,3838 gettimeofday = 6094,
3795 umask = linux_base + 93,3839 getrlimit = 6095,
3796 gettimeofday = linux_base + 94,3840 getrusage = 6096,
3797 getrlimit = linux_base + 95,3841 sysinfo = 6097,
3798 getrusage = linux_base + 96,3842 times = 6098,
3799 sysinfo = linux_base + 97,3843 ptrace = 6099,
3800 times = linux_base + 98,3844 getuid = 6100,
3801 ptrace = linux_base + 99,3845 syslog = 6101,
3802 getuid = linux_base + 100,3846 getgid = 6102,
3803 syslog = linux_base + 101,3847 setuid = 6103,
3804 getgid = linux_base + 102,3848 setgid = 6104,
3805 setuid = linux_base + 103,3849 geteuid = 6105,
3806 setgid = linux_base + 104,3850 getegid = 6106,
3807 geteuid = linux_base + 105,3851 setpgid = 6107,
3808 getegid = linux_base + 106,3852 getppid = 6108,
3809 setpgid = linux_base + 107,3853 getpgrp = 6109,
3810 getppid = linux_base + 108,3854 setsid = 6110,
3811 getpgrp = linux_base + 109,3855 setreuid = 6111,
3812 setsid = linux_base + 110,3856 setregid = 6112,
3813 setreuid = linux_base + 111,3857 getgroups = 6113,
3814 setregid = linux_base + 112,3858 setgroups = 6114,
3815 getgroups = linux_base + 113,3859 setresuid = 6115,
3816 setgroups = linux_base + 114,3860 getresuid = 6116,
3817 setresuid = linux_base + 115,3861 setresgid = 6117,
3818 getresuid = linux_base + 116,3862 getresgid = 6118,
3819 setresgid = linux_base + 117,3863 getpgid = 6119,
3820 getresgid = linux_base + 118,3864 setfsuid = 6120,
3821 getpgid = linux_base + 119,3865 setfsgid = 6121,
3822 setfsuid = linux_base + 120,3866 getsid = 6122,
3823 setfsgid = linux_base + 121,3867 capget = 6123,
3824 getsid = linux_base + 122,3868 capset = 6124,
3825 capget = linux_base + 123,3869 rt_sigpending = 6125,
3826 capset = linux_base + 124,3870 rt_sigtimedwait = 6126,
3827 rt_sigpending = linux_base + 125,3871 rt_sigqueueinfo = 6127,
3828 rt_sigtimedwait = linux_base + 126,3872 rt_sigsuspend = 6128,
3829 rt_sigqueueinfo = linux_base + 127,3873 sigaltstack = 6129,
3830 rt_sigsuspend = linux_base + 128,3874 utime = 6130,
3831 sigaltstack = linux_base + 129,3875 mknod = 6131,
3832 utime = linux_base + 130,3876 personality = 6132,
3833 mknod = linux_base + 131,3877 ustat = 6133,
3834 personality = linux_base + 132,3878 statfs = 6134,
3835 ustat = linux_base + 133,3879 fstatfs = 6135,
3836 statfs = linux_base + 134,3880 sysfs = 6136,
3837 fstatfs = linux_base + 135,3881 getpriority = 6137,
3838 sysfs = linux_base + 136,3882 setpriority = 6138,
3839 getpriority = linux_base + 137,3883 sched_setparam = 6139,
3840 setpriority = linux_base + 138,3884 sched_getparam = 6140,
3841 sched_setparam = linux_base + 139,3885 sched_setscheduler = 6141,
3842 sched_getparam = linux_base + 140,3886 sched_getscheduler = 6142,
3843 sched_setscheduler = linux_base + 141,3887 sched_get_priority_max = 6143,
3844 sched_getscheduler = linux_base + 142,3888 sched_get_priority_min = 6144,
3845 sched_get_priority_max = linux_base + 143,3889 sched_rr_get_interval = 6145,
3846 sched_get_priority_min = linux_base + 144,3890 mlock = 6146,
3847 sched_rr_get_interval = linux_base + 145,3891 munlock = 6147,
3848 mlock = linux_base + 146,3892 mlockall = 6148,
3849 munlock = linux_base + 147,3893 munlockall = 6149,
3850 mlockall = linux_base + 148,3894 vhangup = 6150,
3851 munlockall = linux_base + 149,3895 pivot_root = 6151,
3852 vhangup = linux_base + 150,3896 sysctl = 6152,
3853 pivot_root = linux_base + 151,3897 prctl = 6153,
3854 sysctl = linux_base + 152,3898 adjtimex = 6154,
3855 prctl = linux_base + 153,3899 setrlimit = 6155,
3856 adjtimex = linux_base + 154,3900 chroot = 6156,
3857 setrlimit = linux_base + 155,3901 sync = 6157,
3858 chroot = linux_base + 156,3902 acct = 6158,
3859 sync = linux_base + 157,3903 settimeofday = 6159,
3860 acct = linux_base + 158,3904 mount = 6160,
3861 settimeofday = linux_base + 159,3905 umount2 = 6161,
3862 mount = linux_base + 160,3906 swapon = 6162,
3863 umount2 = linux_base + 161,3907 swapoff = 6163,
3864 swapon = linux_base + 162,3908 reboot = 6164,
3865 swapoff = linux_base + 163,3909 sethostname = 6165,
3866 reboot = linux_base + 164,3910 setdomainname = 6166,
3867 sethostname = linux_base + 165,3911 create_module = 6167,
3868 setdomainname = linux_base + 166,3912 init_module = 6168,
3869 create_module = linux_base + 167,3913 delete_module = 6169,
3870 init_module = linux_base + 168,3914 get_kernel_syms = 6170,
3871 delete_module = linux_base + 169,3915 query_module = 6171,
3872 get_kernel_syms = linux_base + 170,3916 quotactl = 6172,
3873 query_module = linux_base + 171,3917 nfsservctl = 6173,
3874 quotactl = linux_base + 172,3918 getpmsg = 6174,
3875 nfsservctl = linux_base + 173,3919 putpmsg = 6175,
3876 getpmsg = linux_base + 174,3920 afs_syscall = 6176,
3877 putpmsg = linux_base + 175,3921 gettid = 6178,
3878 afs_syscall = linux_base + 176,3922 readahead = 6179,
3879 gettid = linux_base + 178,3923 setxattr = 6180,
3880 readahead = linux_base + 179,3924 lsetxattr = 6181,
3881 setxattr = linux_base + 180,3925 fsetxattr = 6182,
3882 lsetxattr = linux_base + 181,3926 getxattr = 6183,
3883 fsetxattr = linux_base + 182,3927 lgetxattr = 6184,
3884 getxattr = linux_base + 183,3928 fgetxattr = 6185,
3885 lgetxattr = linux_base + 184,3929 listxattr = 6186,
3886 fgetxattr = linux_base + 185,3930 llistxattr = 6187,
3887 listxattr = linux_base + 186,3931 flistxattr = 6188,
3888 llistxattr = linux_base + 187,3932 removexattr = 6189,
3889 flistxattr = linux_base + 188,3933 lremovexattr = 6190,
3890 removexattr = linux_base + 189,3934 fremovexattr = 6191,
3891 lremovexattr = linux_base + 190,3935 tkill = 6192,
3892 fremovexattr = linux_base + 191,3936 futex = 6194,
3893 tkill = linux_base + 192,3937 sched_setaffinity = 6195,
3894 futex = linux_base + 194,3938 sched_getaffinity = 6196,
3895 sched_setaffinity = linux_base + 195,3939 cacheflush = 6197,
3896 sched_getaffinity = linux_base + 196,3940 cachectl = 6198,
3897 cacheflush = linux_base + 197,3941 sysmips = 6199,
3898 cachectl = linux_base + 198,3942 io_setup = 6200,
3899 sysmips = linux_base + 199,3943 io_destroy = 6201,
3900 io_setup = linux_base + 200,3944 io_getevents = 6202,
3901 io_destroy = linux_base + 201,3945 io_submit = 6203,
3902 io_getevents = linux_base + 202,3946 io_cancel = 6204,
3903 io_submit = linux_base + 203,3947 exit_group = 6205,
3904 io_cancel = linux_base + 204,3948 lookup_dcookie = 6206,
3905 exit_group = linux_base + 205,3949 epoll_create = 6207,
3906 lookup_dcookie = linux_base + 206,3950 epoll_ctl = 6208,
3907 epoll_create = linux_base + 207,3951 epoll_wait = 6209,
3908 epoll_ctl = linux_base + 208,3952 remap_file_pages = 6210,
3909 epoll_wait = linux_base + 209,3953 rt_sigreturn = 6211,
3910 remap_file_pages = linux_base + 210,3954 fcntl64 = 6212,
3911 rt_sigreturn = linux_base + 211,3955 set_tid_address = 6213,
3912 fcntl64 = linux_base + 212,3956 restart_syscall = 6214,
3913 set_tid_address = linux_base + 213,3957 semtimedop = 6215,
3914 restart_syscall = linux_base + 214,3958 fadvise64 = 6216,
3915 semtimedop = linux_base + 215,3959 statfs64 = 6217,
3916 fadvise64 = linux_base + 216,3960 fstatfs64 = 6218,
3917 statfs64 = linux_base + 217,3961 sendfile64 = 6219,
3918 fstatfs64 = linux_base + 218,3962 timer_create = 6220,
3919 sendfile64 = linux_base + 219,3963 timer_settime = 6221,
3920 timer_create = linux_base + 220,3964 timer_gettime = 6222,
3921 timer_settime = linux_base + 221,3965 timer_getoverrun = 6223,
3922 timer_gettime = linux_base + 222,3966 timer_delete = 6224,
3923 timer_getoverrun = linux_base + 223,3967 clock_settime = 6225,
3924 timer_delete = linux_base + 224,3968 clock_gettime = 6226,
3925 clock_settime = linux_base + 225,3969 clock_getres = 6227,
3926 clock_gettime = linux_base + 226,3970 clock_nanosleep = 6228,
3927 clock_getres = linux_base + 227,3971 tgkill = 6229,
3928 clock_nanosleep = linux_base + 228,3972 utimes = 6230,
3929 tgkill = linux_base + 229,3973 mbind = 6231,
3930 utimes = linux_base + 230,3974 get_mempolicy = 6232,
3931 mbind = linux_base + 231,3975 set_mempolicy = 6233,
3932 get_mempolicy = linux_base + 232,3976 mq_open = 6234,
3933 set_mempolicy = linux_base + 233,3977 mq_unlink = 6235,
3934 mq_open = linux_base + 234,3978 mq_timedsend = 6236,
3935 mq_unlink = linux_base + 235,3979 mq_timedreceive = 6237,
3936 mq_timedsend = linux_base + 236,3980 mq_notify = 6238,
3937 mq_timedreceive = linux_base + 237,3981 mq_getsetattr = 6239,
3938 mq_notify = linux_base + 238,3982 vserver = 6240,
3939 mq_getsetattr = linux_base + 239,3983 waitid = 6241,
3940 vserver = linux_base + 240,3984 add_key = 6243,
3941 waitid = linux_base + 241,3985 request_key = 6244,
3942 add_key = linux_base + 243,3986 keyctl = 6245,
3943 request_key = linux_base + 244,3987 set_thread_area = 6246,
3944 keyctl = linux_base + 245,3988 inotify_init = 6247,
3945 set_thread_area = linux_base + 246,3989 inotify_add_watch = 6248,
3946 inotify_init = linux_base + 247,3990 inotify_rm_watch = 6249,
3947 inotify_add_watch = linux_base + 248,3991 migrate_pages = 6250,
3948 inotify_rm_watch = linux_base + 249,3992 openat = 6251,
3949 migrate_pages = linux_base + 250,3993 mkdirat = 6252,
3950 openat = linux_base + 251,3994 mknodat = 6253,
3951 mkdirat = linux_base + 252,3995 fchownat = 6254,
3952 mknodat = linux_base + 253,3996 futimesat = 6255,
3953 fchownat = linux_base + 254,3997 fstatat64 = 6256,
3954 futimesat = linux_base + 255,3998 unlinkat = 6257,
3955 fstatat64 = linux_base + 256,3999 renameat = 6258,
3956 unlinkat = linux_base + 257,4000 linkat = 6259,
3957 renameat = linux_base + 258,4001 symlinkat = 6260,
3958 linkat = linux_base + 259,4002 readlinkat = 6261,
3959 symlinkat = linux_base + 260,4003 fchmodat = 6262,
3960 readlinkat = linux_base + 261,4004 faccessat = 6263,
3961 fchmodat = linux_base + 262,4005 pselect6 = 6264,
3962 faccessat = linux_base + 263,4006 ppoll = 6265,
3963 pselect6 = linux_base + 264,4007 unshare = 6266,
3964 ppoll = linux_base + 265,4008 splice = 6267,
3965 unshare = linux_base + 266,4009 sync_file_range = 6268,
3966 splice = linux_base + 267,4010 tee = 6269,
3967 sync_file_range = linux_base + 268,4011 vmsplice = 6270,
3968 tee = linux_base + 269,4012 move_pages = 6271,
3969 vmsplice = linux_base + 270,4013 set_robust_list = 6272,
3970 move_pages = linux_base + 271,4014 get_robust_list = 6273,
3971 set_robust_list = linux_base + 272,4015 kexec_load = 6274,
3972 get_robust_list = linux_base + 273,4016 getcpu = 6275,
3973 kexec_load = linux_base + 274,4017 epoll_pwait = 6276,
3974 getcpu = linux_base + 275,4018 ioprio_set = 6277,
3975 epoll_pwait = linux_base + 276,4019 ioprio_get = 6278,
3976 ioprio_set = linux_base + 277,4020 utimensat = 6279,
3977 ioprio_get = linux_base + 278,4021 signalfd = 6280,
3978 utimensat = linux_base + 279,4022 timerfd = 6281,
3979 signalfd = linux_base + 280,4023 eventfd = 6282,
3980 timerfd = linux_base + 281,4024 fallocate = 6283,
3981 eventfd = linux_base + 282,4025 timerfd_create = 6284,
3982 fallocate = linux_base + 283,4026 timerfd_gettime = 6285,
3983 timerfd_create = linux_base + 284,4027 timerfd_settime = 6286,
3984 timerfd_gettime = linux_base + 285,4028 signalfd4 = 6287,
3985 timerfd_settime = linux_base + 286,4029 eventfd2 = 6288,
3986 signalfd4 = linux_base + 287,4030 epoll_create1 = 6289,
3987 eventfd2 = linux_base + 288,4031 dup3 = 6290,
3988 epoll_create1 = linux_base + 289,4032 pipe2 = 6291,
3989 dup3 = linux_base + 290,4033 inotify_init1 = 6292,
3990 pipe2 = linux_base + 291,4034 preadv = 6293,
3991 inotify_init1 = linux_base + 292,4035 pwritev = 6294,
3992 preadv = linux_base + 293,4036 rt_tgsigqueueinfo = 6295,
3993 pwritev = linux_base + 294,4037 perf_event_open = 6296,
3994 rt_tgsigqueueinfo = linux_base + 295,4038 accept4 = 6297,
3995 perf_event_open = linux_base + 296,4039 recvmmsg = 6298,
3996 accept4 = linux_base + 297,4040 getdents64 = 6299,
3997 recvmmsg = linux_base + 298,4041 fanotify_init = 6300,
3998 getdents64 = linux_base + 299,4042 fanotify_mark = 6301,
3999 fanotify_init = linux_base + 300,4043 prlimit64 = 6302,
4000 fanotify_mark = linux_base + 301,4044 name_to_handle_at = 6303,
4001 prlimit64 = linux_base + 302,4045 open_by_handle_at = 6304,
4002 name_to_handle_at = linux_base + 303,4046 clock_adjtime = 6305,
4003 open_by_handle_at = linux_base + 304,4047 syncfs = 6306,
4004 clock_adjtime = linux_base + 305,4048 sendmmsg = 6307,
4005 syncfs = linux_base + 306,4049 setns = 6308,
4006 sendmmsg = linux_base + 307,4050 process_vm_readv = 6309,
4007 setns = linux_base + 308,4051 process_vm_writev = 6310,
4008 process_vm_readv = linux_base + 309,4052 kcmp = 6311,
4009 process_vm_writev = linux_base + 310,4053 finit_module = 6312,
4010 kcmp = linux_base + 311,4054 sched_setattr = 6313,
4011 finit_module = linux_base + 312,4055 sched_getattr = 6314,
4012 sched_setattr = linux_base + 313,4056 renameat2 = 6315,
4013 sched_getattr = linux_base + 314,4057 seccomp = 6316,
4014 renameat2 = linux_base + 315,4058 getrandom = 6317,
4015 seccomp = linux_base + 316,4059 memfd_create = 6318,
4016 getrandom = linux_base + 317,4060 bpf = 6319,
4017 memfd_create = linux_base + 318,4061 execveat = 6320,
4018 bpf = linux_base + 319,4062 userfaultfd = 6321,
4019 execveat = linux_base + 320,4063 membarrier = 6322,
4020 userfaultfd = linux_base + 321,4064 mlock2 = 6323,
4021 membarrier = linux_base + 322,4065 copy_file_range = 6324,
4022 mlock2 = linux_base + 323,4066 preadv2 = 6325,
4023 copy_file_range = linux_base + 324,4067 pwritev2 = 6326,
4024 preadv2 = linux_base + 325,4068 pkey_mprotect = 6327,
4025 pwritev2 = linux_base + 326,4069 pkey_alloc = 6328,
4026 pkey_mprotect = linux_base + 327,4070 pkey_free = 6329,
4027 pkey_alloc = linux_base + 328,4071 statx = 6330,
4028 pkey_free = linux_base + 329,4072 rseq = 6331,
4029 statx = linux_base + 330,4073 io_pgetevents = 6332,
4030 rseq = linux_base + 331,4074 clock_gettime64 = 6403,
4031 io_pgetevents = linux_base + 332,4075 clock_settime64 = 6404,
4032 clock_gettime64 = linux_base + 403,4076 clock_adjtime64 = 6405,
4033 clock_settime64 = linux_base + 404,4077 clock_getres_time64 = 6406,
4034 clock_adjtime64 = linux_base + 405,4078 clock_nanosleep_time64 = 6407,
4035 clock_getres_time64 = linux_base + 406,4079 timer_gettime64 = 6408,
4036 clock_nanosleep_time64 = linux_base + 407,4080 timer_settime64 = 6409,
4037 timer_gettime64 = linux_base + 408,4081 timerfd_gettime64 = 6410,
4038 timer_settime64 = linux_base + 409,4082 timerfd_settime64 = 6411,
4039 timerfd_gettime64 = linux_base + 410,4083 utimensat_time64 = 6412,
4040 timerfd_settime64 = linux_base + 411,4084 pselect6_time64 = 6413,
4041 utimensat_time64 = linux_base + 412,4085 ppoll_time64 = 6414,
4042 pselect6_time64 = linux_base + 413,4086 io_pgetevents_time64 = 6416,
4043 ppoll_time64 = linux_base + 414,4087 recvmmsg_time64 = 6417,
4044 io_pgetevents_time64 = linux_base + 416,4088 mq_timedsend_time64 = 6418,
4045 recvmmsg_time64 = linux_base + 417,4089 mq_timedreceive_time64 = 6419,
4046 mq_timedsend_time64 = linux_base + 418,4090 semtimedop_time64 = 6420,
4047 mq_timedreceive_time64 = linux_base + 419,4091 rt_sigtimedwait_time64 = 6421,
4048 semtimedop_time64 = linux_base + 420,4092 futex_time64 = 6422,
4049 rt_sigtimedwait_time64 = linux_base + 421,4093 sched_rr_get_interval_time64 = 6423,
4050 futex_time64 = linux_base + 422,4094 pidfd_send_signal = 6424,
4051 sched_rr_get_interval_time64 = linux_base + 423,4095 io_uring_setup = 6425,
4052 pidfd_send_signal = linux_base + 424,4096 io_uring_enter = 6426,
4053 io_uring_setup = linux_base + 425,4097 io_uring_register = 6427,
4054 io_uring_enter = linux_base + 426,4098 open_tree = 6428,
4055 io_uring_register = linux_base + 427,4099 move_mount = 6429,
4056 open_tree = linux_base + 428,4100 fsopen = 6430,
4057 move_mount = linux_base + 429,4101 fsconfig = 6431,
4058 fsopen = linux_base + 430,4102 fsmount = 6432,
4059 fsconfig = linux_base + 431,4103 fspick = 6433,
4060 fsmount = linux_base + 432,4104 pidfd_open = 6434,
4061 fspick = linux_base + 433,4105 clone3 = 6435,
4062 pidfd_open = linux_base + 434,4106 close_range = 6436,
4063 clone3 = linux_base + 435,4107 openat2 = 6437,
4064 close_range = linux_base + 436,4108 pidfd_getfd = 6438,
4065 openat2 = linux_base + 437,4109 faccessat2 = 6439,
4066 pidfd_getfd = linux_base + 438,4110 process_madvise = 6440,
4067 faccessat2 = linux_base + 439,4111 epoll_pwait2 = 6441,
4068 process_madvise = linux_base + 440,4112 mount_setattr = 6442,
4069 epoll_pwait2 = linux_base + 441,4113 quotactl_fd = 6443,
4070 mount_setattr = linux_base + 442,4114 landlock_create_ruleset = 6444,
4071 quotactl_fd = linux_base + 443,4115 landlock_add_rule = 6445,
4072 landlock_create_ruleset = linux_base + 444,4116 landlock_restrict_self = 6446,
4073 landlock_add_rule = linux_base + 445,4117 process_mrelease = 6448,
4074 landlock_restrict_self = linux_base + 446,4118 futex_waitv = 6449,
4075 process_mrelease = linux_base + 448,4119 set_mempolicy_home_node = 6450,
4076 futex_waitv = linux_base + 449,4120 cachestat = 6451,
4077 set_mempolicy_home_node = linux_base + 450,4121 fchmodat2 = 6452,
4078 cachestat = linux_base + 451,4122 map_shadow_stack = 6453,
4079 fchmodat2 = linux_base + 452,4123 futex_wake = 6454,
4080 map_shadow_stack = linux_base + 453,4124 futex_wait = 6455,
4081 futex_wake = linux_base + 454,4125 futex_requeue = 6456,
4082 futex_wait = linux_base + 455,4126 statmount = 6457,
4083 futex_requeue = linux_base + 456,4127 listmount = 6458,
4084 statmount = linux_base + 457,4128 lsm_get_self_attr = 6459,
4085 listmount = linux_base + 458,4129 lsm_set_self_attr = 6460,
4086 lsm_get_self_attr = linux_base + 459,4130 lsm_list_modules = 6461,
4087 lsm_set_self_attr = linux_base + 460,4131 mseal = 6462,
4088 lsm_list_modules = linux_base + 461,4132 setxattrat = 6463,
4089 mseal = linux_base + 462,4133 getxattrat = 6464,
4134 listxattrat = 6465,
4135 removexattrat = 6466,
4136 open_tree_attr = 6467,
4090};4137};
40914138
4092pub const PowerPC = enum(usize) {4139pub const PowerPC = enum(usize) {
...@@ -4533,6 +4580,11 @@ pub const PowerPC = enum(usize) {...@@ -4533,6 +4580,11 @@ pub const PowerPC = enum(usize) {
4533 lsm_set_self_attr = 460,4580 lsm_set_self_attr = 460,
4534 lsm_list_modules = 461,4581 lsm_list_modules = 461,
4535 mseal = 462,4582 mseal = 462,
4583 setxattrat = 463,
4584 getxattrat = 464,
4585 listxattrat = 465,
4586 removexattrat = 466,
4587 open_tree_attr = 467,
4536};4588};
45374589
4538pub const PowerPC64 = enum(usize) {4590pub const PowerPC64 = enum(usize) {
...@@ -4951,6 +5003,11 @@ pub const PowerPC64 = enum(usize) {...@@ -4951,6 +5003,11 @@ pub const PowerPC64 = enum(usize) {
4951 lsm_set_self_attr = 460,5003 lsm_set_self_attr = 460,
4952 lsm_list_modules = 461,5004 lsm_list_modules = 461,
4953 mseal = 462,5005 mseal = 462,
5006 setxattrat = 463,
5007 getxattrat = 464,
5008 listxattrat = 465,
5009 removexattrat = 466,
5010 open_tree_attr = 467,
4954};5011};
49555012
4956pub const S390x = enum(usize) {5013pub const S390x = enum(usize) {
...@@ -5335,6 +5392,11 @@ pub const S390x = enum(usize) {...@@ -5335,6 +5392,11 @@ pub const S390x = enum(usize) {
5335 lsm_set_self_attr = 460,5392 lsm_set_self_attr = 460,
5336 lsm_list_modules = 461,5393 lsm_list_modules = 461,
5337 mseal = 462,5394 mseal = 462,
5395 setxattrat = 463,
5396 getxattrat = 464,
5397 listxattrat = 465,
5398 removexattrat = 466,
5399 open_tree_attr = 467,
5338};5400};
53395401
5340pub const Xtensa = enum(usize) {5402pub const Xtensa = enum(usize) {
...@@ -5723,14 +5785,344 @@ pub const Xtensa = enum(usize) {...@@ -5723,14 +5785,344 @@ pub const Xtensa = enum(usize) {
5723 lsm_set_self_attr = 460,5785 lsm_set_self_attr = 460,
5724 lsm_list_modules = 461,5786 lsm_list_modules = 461,
5725 mseal = 462,5787 mseal = 462,
5788 setxattrat = 463,
5789 getxattrat = 464,
5790 listxattrat = 465,
5791 removexattrat = 466,
5792 open_tree_attr = 467,
5793};
5794
5795pub const Arm64 = enum(usize) {
5796 io_setup = 0,
5797 io_destroy = 1,
5798 io_submit = 2,
5799 io_cancel = 3,
5800 io_getevents = 4,
5801 setxattr = 5,
5802 lsetxattr = 6,
5803 fsetxattr = 7,
5804 getxattr = 8,
5805 lgetxattr = 9,
5806 fgetxattr = 10,
5807 listxattr = 11,
5808 llistxattr = 12,
5809 flistxattr = 13,
5810 removexattr = 14,
5811 lremovexattr = 15,
5812 fremovexattr = 16,
5813 getcwd = 17,
5814 lookup_dcookie = 18,
5815 eventfd2 = 19,
5816 epoll_create1 = 20,
5817 epoll_ctl = 21,
5818 epoll_pwait = 22,
5819 dup = 23,
5820 dup3 = 24,
5821 fcntl = 25,
5822 inotify_init1 = 26,
5823 inotify_add_watch = 27,
5824 inotify_rm_watch = 28,
5825 ioctl = 29,
5826 ioprio_set = 30,
5827 ioprio_get = 31,
5828 flock = 32,
5829 mknodat = 33,
5830 mkdirat = 34,
5831 unlinkat = 35,
5832 symlinkat = 36,
5833 linkat = 37,
5834 renameat = 38,
5835 umount2 = 39,
5836 mount = 40,
5837 pivot_root = 41,
5838 nfsservctl = 42,
5839 statfs = 43,
5840 fstatfs = 44,
5841 truncate = 45,
5842 ftruncate = 46,
5843 fallocate = 47,
5844 faccessat = 48,
5845 chdir = 49,
5846 fchdir = 50,
5847 chroot = 51,
5848 fchmod = 52,
5849 fchmodat = 53,
5850 fchownat = 54,
5851 fchown = 55,
5852 openat = 56,
5853 close = 57,
5854 vhangup = 58,
5855 pipe2 = 59,
5856 quotactl = 60,
5857 getdents64 = 61,
5858 lseek = 62,
5859 read = 63,
5860 write = 64,
5861 readv = 65,
5862 writev = 66,
5863 pread64 = 67,
5864 pwrite64 = 68,
5865 preadv = 69,
5866 pwritev = 70,
5867 sendfile = 71,
5868 pselect6 = 72,
5869 ppoll = 73,
5870 signalfd4 = 74,
5871 vmsplice = 75,
5872 splice = 76,
5873 tee = 77,
5874 readlinkat = 78,
5875 fstatat64 = 79,
5876 fstat = 80,
5877 sync = 81,
5878 fsync = 82,
5879 fdatasync = 83,
5880 sync_file_range = 84,
5881 timerfd_create = 85,
5882 timerfd_settime = 86,
5883 timerfd_gettime = 87,
5884 utimensat = 88,
5885 acct = 89,
5886 capget = 90,
5887 capset = 91,
5888 personality = 92,
5889 exit = 93,
5890 exit_group = 94,
5891 waitid = 95,
5892 set_tid_address = 96,
5893 unshare = 97,
5894 futex = 98,
5895 set_robust_list = 99,
5896 get_robust_list = 100,
5897 nanosleep = 101,
5898 getitimer = 102,
5899 setitimer = 103,
5900 kexec_load = 104,
5901 init_module = 105,
5902 delete_module = 106,
5903 timer_create = 107,
5904 timer_gettime = 108,
5905 timer_getoverrun = 109,
5906 timer_settime = 110,
5907 timer_delete = 111,
5908 clock_settime = 112,
5909 clock_gettime = 113,
5910 clock_getres = 114,
5911 clock_nanosleep = 115,
5912 syslog = 116,
5913 ptrace = 117,
5914 sched_setparam = 118,
5915 sched_setscheduler = 119,
5916 sched_getscheduler = 120,
5917 sched_getparam = 121,
5918 sched_setaffinity = 122,
5919 sched_getaffinity = 123,
5920 sched_yield = 124,
5921 sched_get_priority_max = 125,
5922 sched_get_priority_min = 126,
5923 sched_rr_get_interval = 127,
5924 restart_syscall = 128,
5925 kill = 129,
5926 tkill = 130,
5927 tgkill = 131,
5928 sigaltstack = 132,
5929 rt_sigsuspend = 133,
5930 rt_sigaction = 134,
5931 rt_sigprocmask = 135,
5932 rt_sigpending = 136,
5933 rt_sigtimedwait = 137,
5934 rt_sigqueueinfo = 138,
5935 rt_sigreturn = 139,
5936 setpriority = 140,
5937 getpriority = 141,
5938 reboot = 142,
5939 setregid = 143,
5940 setgid = 144,
5941 setreuid = 145,
5942 setuid = 146,
5943 setresuid = 147,
5944 getresuid = 148,
5945 setresgid = 149,
5946 getresgid = 150,
5947 setfsuid = 151,
5948 setfsgid = 152,
5949 times = 153,
5950 setpgid = 154,
5951 getpgid = 155,
5952 getsid = 156,
5953 setsid = 157,
5954 getgroups = 158,
5955 setgroups = 159,
5956 uname = 160,
5957 sethostname = 161,
5958 setdomainname = 162,
5959 getrlimit = 163,
5960 setrlimit = 164,
5961 getrusage = 165,
5962 umask = 166,
5963 prctl = 167,
5964 getcpu = 168,
5965 gettimeofday = 169,
5966 settimeofday = 170,
5967 adjtimex = 171,
5968 getpid = 172,
5969 getppid = 173,
5970 getuid = 174,
5971 geteuid = 175,
5972 getgid = 176,
5973 getegid = 177,
5974 gettid = 178,
5975 sysinfo = 179,
5976 mq_open = 180,
5977 mq_unlink = 181,
5978 mq_timedsend = 182,
5979 mq_timedreceive = 183,
5980 mq_notify = 184,
5981 mq_getsetattr = 185,
5982 msgget = 186,
5983 msgctl = 187,
5984 msgrcv = 188,
5985 msgsnd = 189,
5986 semget = 190,
5987 semctl = 191,
5988 semtimedop = 192,
5989 semop = 193,
5990 shmget = 194,
5991 shmctl = 195,
5992 shmat = 196,
5993 shmdt = 197,
5994 socket = 198,
5995 socketpair = 199,
5996 bind = 200,
5997 listen = 201,
5998 accept = 202,
5999 connect = 203,
6000 getsockname = 204,
6001 getpeername = 205,
6002 sendto = 206,
6003 recvfrom = 207,
6004 setsockopt = 208,
6005 getsockopt = 209,
6006 shutdown = 210,
6007 sendmsg = 211,
6008 recvmsg = 212,
6009 readahead = 213,
6010 brk = 214,
6011 munmap = 215,
6012 mremap = 216,
6013 add_key = 217,
6014 request_key = 218,
6015 keyctl = 219,
6016 clone = 220,
6017 execve = 221,
6018 mmap = 222,
6019 fadvise64 = 223,
6020 swapon = 224,
6021 swapoff = 225,
6022 mprotect = 226,
6023 msync = 227,
6024 mlock = 228,
6025 munlock = 229,
6026 mlockall = 230,
6027 munlockall = 231,
6028 mincore = 232,
6029 madvise = 233,
6030 remap_file_pages = 234,
6031 mbind = 235,
6032 get_mempolicy = 236,
6033 set_mempolicy = 237,
6034 migrate_pages = 238,
6035 move_pages = 239,
6036 rt_tgsigqueueinfo = 240,
6037 perf_event_open = 241,
6038 accept4 = 242,
6039 recvmmsg = 243,
6040 wait4 = 260,
6041 prlimit64 = 261,
6042 fanotify_init = 262,
6043 fanotify_mark = 263,
6044 name_to_handle_at = 264,
6045 open_by_handle_at = 265,
6046 clock_adjtime = 266,
6047 syncfs = 267,
6048 setns = 268,
6049 sendmmsg = 269,
6050 process_vm_readv = 270,
6051 process_vm_writev = 271,
6052 kcmp = 272,
6053 finit_module = 273,
6054 sched_setattr = 274,
6055 sched_getattr = 275,
6056 renameat2 = 276,
6057 seccomp = 277,
6058 getrandom = 278,
6059 memfd_create = 279,
6060 bpf = 280,
6061 execveat = 281,
6062 userfaultfd = 282,
6063 membarrier = 283,
6064 mlock2 = 284,
6065 copy_file_range = 285,
6066 preadv2 = 286,
6067 pwritev2 = 287,
6068 pkey_mprotect = 288,
6069 pkey_alloc = 289,
6070 pkey_free = 290,
6071 statx = 291,
6072 io_pgetevents = 292,
6073 rseq = 293,
6074 kexec_file_load = 294,
6075 pidfd_send_signal = 424,
6076 io_uring_setup = 425,
6077 io_uring_enter = 426,
6078 io_uring_register = 427,
6079 open_tree = 428,
6080 move_mount = 429,
6081 fsopen = 430,
6082 fsconfig = 431,
6083 fsmount = 432,
6084 fspick = 433,
6085 pidfd_open = 434,
6086 clone3 = 435,
6087 close_range = 436,
6088 openat2 = 437,
6089 pidfd_getfd = 438,
6090 faccessat2 = 439,
6091 process_madvise = 440,
6092 epoll_pwait2 = 441,
6093 mount_setattr = 442,
6094 quotactl_fd = 443,
6095 landlock_create_ruleset = 444,
6096 landlock_add_rule = 445,
6097 landlock_restrict_self = 446,
6098 memfd_secret = 447,
6099 process_mrelease = 448,
6100 futex_waitv = 449,
6101 set_mempolicy_home_node = 450,
6102 cachestat = 451,
6103 fchmodat2 = 452,
6104 map_shadow_stack = 453,
6105 futex_wake = 454,
6106 futex_wait = 455,
6107 futex_requeue = 456,
6108 statmount = 457,
6109 listmount = 458,
6110 lsm_get_self_attr = 459,
6111 lsm_set_self_attr = 460,
6112 lsm_list_modules = 461,
6113 mseal = 462,
6114 setxattrat = 463,
6115 getxattrat = 464,
6116 listxattrat = 465,
6117 removexattrat = 466,
6118 open_tree_attr = 467,
5726};6119};
57276120
5728pub const Arm64 = enum(usize) {6121pub const RiscV32 = enum(usize) {
5729 io_setup = 0,6122 io_setup = 0,
5730 io_destroy = 1,6123 io_destroy = 1,
5731 io_submit = 2,6124 io_submit = 2,
5732 io_cancel = 3,6125 io_cancel = 3,
5733 io_getevents = 4,
5734 setxattr = 5,6126 setxattr = 5,
5735 lsetxattr = 6,6127 lsetxattr = 6,
5736 fsetxattr = 7,6128 fsetxattr = 7,
...@@ -5751,7 +6143,7 @@ pub const Arm64 = enum(usize) {...@@ -5751,7 +6143,7 @@ pub const Arm64 = enum(usize) {
5751 epoll_pwait = 22,6143 epoll_pwait = 22,
5752 dup = 23,6144 dup = 23,
5753 dup3 = 24,6145 dup3 = 24,
5754 fcntl = 25,6146 fcntl64 = 25,
5755 inotify_init1 = 26,6147 inotify_init1 = 26,
5756 inotify_add_watch = 27,6148 inotify_add_watch = 27,
5757 inotify_rm_watch = 28,6149 inotify_rm_watch = 28,
...@@ -5764,15 +6156,14 @@ pub const Arm64 = enum(usize) {...@@ -5764,15 +6156,14 @@ pub const Arm64 = enum(usize) {
5764 unlinkat = 35,6156 unlinkat = 35,
5765 symlinkat = 36,6157 symlinkat = 36,
5766 linkat = 37,6158 linkat = 37,
5767 renameat = 38,
5768 umount2 = 39,6159 umount2 = 39,
5769 mount = 40,6160 mount = 40,
5770 pivot_root = 41,6161 pivot_root = 41,
5771 nfsservctl = 42,6162 nfsservctl = 42,
5772 statfs = 43,6163 statfs64 = 43,
5773 fstatfs = 44,6164 fstatfs64 = 44,
5774 truncate = 45,6165 truncate64 = 45,
5775 ftruncate = 46,6166 ftruncate64 = 46,
5776 fallocate = 47,6167 fallocate = 47,
5777 faccessat = 48,6168 faccessat = 48,
5778 chdir = 49,6169 chdir = 49,
...@@ -5788,7 +6179,7 @@ pub const Arm64 = enum(usize) {...@@ -5788,7 +6179,7 @@ pub const Arm64 = enum(usize) {
5788 pipe2 = 59,6179 pipe2 = 59,
5789 quotactl = 60,6180 quotactl = 60,
5790 getdents64 = 61,6181 getdents64 = 61,
5791 lseek = 62,6182 llseek = 62,
5792 read = 63,6183 read = 63,
5793 write = 64,6184 write = 64,
5794 readv = 65,6185 readv = 65,
...@@ -5798,23 +6189,16 @@ pub const Arm64 = enum(usize) {...@@ -5798,23 +6189,16 @@ pub const Arm64 = enum(usize) {
5798 preadv = 69,6189 preadv = 69,
5799 pwritev = 70,6190 pwritev = 70,
5800 sendfile64 = 71,6191 sendfile64 = 71,
5801 pselect6 = 72,
5802 ppoll = 73,
5803 signalfd4 = 74,6192 signalfd4 = 74,
5804 vmsplice = 75,6193 vmsplice = 75,
5805 splice = 76,6194 splice = 76,
5806 tee = 77,6195 tee = 77,
5807 readlinkat = 78,6196 readlinkat = 78,
5808 fstatat64 = 79,
5809 fstat64 = 80,
5810 sync = 81,6197 sync = 81,
5811 fsync = 82,6198 fsync = 82,
5812 fdatasync = 83,6199 fdatasync = 83,
5813 sync_file_range = 84,6200 sync_file_range = 84,
5814 timerfd_create = 85,6201 timerfd_create = 85,
5815 timerfd_settime = 86,
5816 timerfd_gettime = 87,
5817 utimensat = 88,
5818 acct = 89,6202 acct = 89,
5819 capget = 90,6203 capget = 90,
5820 capset = 91,6204 capset = 91,
...@@ -5824,24 +6208,16 @@ pub const Arm64 = enum(usize) {...@@ -5824,24 +6208,16 @@ pub const Arm64 = enum(usize) {
5824 waitid = 95,6208 waitid = 95,
5825 set_tid_address = 96,6209 set_tid_address = 96,
5826 unshare = 97,6210 unshare = 97,
5827 futex = 98,
5828 set_robust_list = 99,6211 set_robust_list = 99,
5829 get_robust_list = 100,6212 get_robust_list = 100,
5830 nanosleep = 101,
5831 getitimer = 102,6213 getitimer = 102,
5832 setitimer = 103,6214 setitimer = 103,
5833 kexec_load = 104,6215 kexec_load = 104,
5834 init_module = 105,6216 init_module = 105,
5835 delete_module = 106,6217 delete_module = 106,
5836 timer_create = 107,6218 timer_create = 107,
5837 timer_gettime = 108,
5838 timer_getoverrun = 109,6219 timer_getoverrun = 109,
5839 timer_settime = 110,
5840 timer_delete = 111,6220 timer_delete = 111,
5841 clock_settime = 112,
5842 clock_gettime = 113,
5843 clock_getres = 114,
5844 clock_nanosleep = 115,
5845 syslog = 116,6221 syslog = 116,
5846 ptrace = 117,6222 ptrace = 117,
5847 sched_setparam = 118,6223 sched_setparam = 118,
...@@ -5853,7 +6229,6 @@ pub const Arm64 = enum(usize) {...@@ -5853,7 +6229,6 @@ pub const Arm64 = enum(usize) {
5853 sched_yield = 124,6229 sched_yield = 124,
5854 sched_get_priority_max = 125,6230 sched_get_priority_max = 125,
5855 sched_get_priority_min = 126,6231 sched_get_priority_min = 126,
5856 sched_rr_get_interval = 127,
5857 restart_syscall = 128,6232 restart_syscall = 128,
5858 kill = 129,6233 kill = 129,
5859 tkill = 130,6234 tkill = 130,
...@@ -5863,7 +6238,6 @@ pub const Arm64 = enum(usize) {...@@ -5863,7 +6238,6 @@ pub const Arm64 = enum(usize) {
5863 rt_sigaction = 134,6238 rt_sigaction = 134,
5864 rt_sigprocmask = 135,6239 rt_sigprocmask = 135,
5865 rt_sigpending = 136,6240 rt_sigpending = 136,
5866 rt_sigtimedwait = 137,
5867 rt_sigqueueinfo = 138,6241 rt_sigqueueinfo = 138,
5868 rt_sigreturn = 139,6242 rt_sigreturn = 139,
5869 setpriority = 140,6243 setpriority = 140,
...@@ -5889,15 +6263,10 @@ pub const Arm64 = enum(usize) {...@@ -5889,15 +6263,10 @@ pub const Arm64 = enum(usize) {
5889 uname = 160,6263 uname = 160,
5890 sethostname = 161,6264 sethostname = 161,
5891 setdomainname = 162,6265 setdomainname = 162,
5892 getrlimit = 163,
5893 setrlimit = 164,
5894 getrusage = 165,6266 getrusage = 165,
5895 umask = 166,6267 umask = 166,
5896 prctl = 167,6268 prctl = 167,
5897 getcpu = 168,6269 getcpu = 168,
5898 gettimeofday = 169,
5899 settimeofday = 170,
5900 adjtimex = 171,
5901 getpid = 172,6270 getpid = 172,
5902 getppid = 173,6271 getppid = 173,
5903 getuid = 174,6272 getuid = 174,
...@@ -5908,8 +6277,6 @@ pub const Arm64 = enum(usize) {...@@ -5908,8 +6277,6 @@ pub const Arm64 = enum(usize) {
5908 sysinfo = 179,6277 sysinfo = 179,
5909 mq_open = 180,6278 mq_open = 180,
5910 mq_unlink = 181,6279 mq_unlink = 181,
5911 mq_timedsend = 182,
5912 mq_timedreceive = 183,
5913 mq_notify = 184,6280 mq_notify = 184,
5914 mq_getsetattr = 185,6281 mq_getsetattr = 185,
5915 msgget = 186,6282 msgget = 186,
...@@ -5918,7 +6285,6 @@ pub const Arm64 = enum(usize) {...@@ -5918,7 +6285,6 @@ pub const Arm64 = enum(usize) {
5918 msgsnd = 189,6285 msgsnd = 189,
5919 semget = 190,6286 semget = 190,
5920 semctl = 191,6287 semctl = 191,
5921 semtimedop = 192,
5922 semop = 193,6288 semop = 193,
5923 shmget = 194,6289 shmget = 194,
5924 shmctl = 195,6290 shmctl = 195,
...@@ -5948,7 +6314,7 @@ pub const Arm64 = enum(usize) {...@@ -5948,7 +6314,7 @@ pub const Arm64 = enum(usize) {
5948 keyctl = 219,6314 keyctl = 219,
5949 clone = 220,6315 clone = 220,
5950 execve = 221,6316 execve = 221,
5951 mmap = 222,6317 mmap2 = 222,
5952 fadvise64_64 = 223,6318 fadvise64_64 = 223,
5953 swapon = 224,6319 swapon = 224,
5954 swapoff = 225,6320 swapoff = 225,
...@@ -5968,15 +6334,14 @@ pub const Arm64 = enum(usize) {...@@ -5968,15 +6334,14 @@ pub const Arm64 = enum(usize) {
5968 move_pages = 239,6334 move_pages = 239,
5969 rt_tgsigqueueinfo = 240,6335 rt_tgsigqueueinfo = 240,
5970 perf_event_open = 241,6336 perf_event_open = 241,
5971 accept4 = 242,6337 accept4 = 242,
5972 recvmmsg = 243,6338 riscv_hwprobe = 258,
5973 wait4 = 260,6339 riscv_flush_icache = 259,
5974 prlimit64 = 261,6340 prlimit64 = 261,
5975 fanotify_init = 262,6341 fanotify_init = 262,
5976 fanotify_mark = 263,6342 fanotify_mark = 263,
5977 name_to_handle_at = 264,6343 name_to_handle_at = 264,
5978 open_by_handle_at = 265,6344 open_by_handle_at = 265,
5979 clock_adjtime = 266,
5980 syncfs = 267,6345 syncfs = 267,
5981 setns = 268,6346 setns = 268,
5982 sendmmsg = 269,6347 sendmmsg = 269,
...@@ -6002,9 +6367,28 @@ pub const Arm64 = enum(usize) {...@@ -6002,9 +6367,28 @@ pub const Arm64 = enum(usize) {
6002 pkey_alloc = 289,6367 pkey_alloc = 289,
6003 pkey_free = 290,6368 pkey_free = 290,
6004 statx = 291,6369 statx = 291,
6005 io_pgetevents = 292,
6006 rseq = 293,6370 rseq = 293,
6007 kexec_file_load = 294,6371 kexec_file_load = 294,
6372 clock_gettime64 = 403,
6373 clock_settime64 = 404,
6374 clock_adjtime64 = 405,
6375 clock_getres_time64 = 406,
6376 clock_nanosleep_time64 = 407,
6377 timer_gettime64 = 408,
6378 timer_settime64 = 409,
6379 timerfd_gettime64 = 410,
6380 timerfd_settime64 = 411,
6381 utimensat_time64 = 412,
6382 pselect6_time64 = 413,
6383 ppoll_time64 = 414,
6384 io_pgetevents_time64 = 416,
6385 recvmmsg_time64 = 417,
6386 mq_timedsend_time64 = 418,
6387 mq_timedreceive_time64 = 419,
6388 semtimedop_time64 = 420,
6389 rt_sigtimedwait_time64 = 421,
6390 futex_time64 = 422,
6391 sched_rr_get_interval_time64 = 423,
6008 pidfd_send_signal = 424,6392 pidfd_send_signal = 424,
6009 io_uring_setup = 425,6393 io_uring_setup = 425,
6010 io_uring_enter = 426,6394 io_uring_enter = 426,
...@@ -6044,13 +6428,19 @@ pub const Arm64 = enum(usize) {...@@ -6044,13 +6428,19 @@ pub const Arm64 = enum(usize) {
6044 lsm_set_self_attr = 460,6428 lsm_set_self_attr = 460,
6045 lsm_list_modules = 461,6429 lsm_list_modules = 461,
6046 mseal = 462,6430 mseal = 462,
6431 setxattrat = 463,
6432 getxattrat = 464,
6433 listxattrat = 465,
6434 removexattrat = 466,
6435 open_tree_attr = 467,
6047};6436};
60486437
6049pub const RiscV32 = enum(usize) {6438pub const RiscV64 = enum(usize) {
6050 io_setup = 0,6439 io_setup = 0,
6051 io_destroy = 1,6440 io_destroy = 1,
6052 io_submit = 2,6441 io_submit = 2,
6053 io_cancel = 3,6442 io_cancel = 3,
6443 io_getevents = 4,
6054 setxattr = 5,6444 setxattr = 5,
6055 lsetxattr = 6,6445 lsetxattr = 6,
6056 fsetxattr = 7,6446 fsetxattr = 7,
...@@ -6071,7 +6461,7 @@ pub const RiscV32 = enum(usize) {...@@ -6071,7 +6461,7 @@ pub const RiscV32 = enum(usize) {
6071 epoll_pwait = 22,6461 epoll_pwait = 22,
6072 dup = 23,6462 dup = 23,
6073 dup3 = 24,6463 dup3 = 24,
6074 fcntl64 = 25,6464 fcntl = 25,
6075 inotify_init1 = 26,6465 inotify_init1 = 26,
6076 inotify_add_watch = 27,6466 inotify_add_watch = 27,
6077 inotify_rm_watch = 28,6467 inotify_rm_watch = 28,
...@@ -6088,10 +6478,10 @@ pub const RiscV32 = enum(usize) {...@@ -6088,10 +6478,10 @@ pub const RiscV32 = enum(usize) {
6088 mount = 40,6478 mount = 40,
6089 pivot_root = 41,6479 pivot_root = 41,
6090 nfsservctl = 42,6480 nfsservctl = 42,
6091 statfs64 = 43,6481 statfs = 43,
6092 fstatfs64 = 44,6482 fstatfs = 44,
6093 truncate64 = 45,6483 truncate = 45,
6094 ftruncate64 = 46,6484 ftruncate = 46,
6095 fallocate = 47,6485 fallocate = 47,
6096 faccessat = 48,6486 faccessat = 48,
6097 chdir = 49,6487 chdir = 49,
...@@ -6107,7 +6497,7 @@ pub const RiscV32 = enum(usize) {...@@ -6107,7 +6497,7 @@ pub const RiscV32 = enum(usize) {
6107 pipe2 = 59,6497 pipe2 = 59,
6108 quotactl = 60,6498 quotactl = 60,
6109 getdents64 = 61,6499 getdents64 = 61,
6110 llseek = 62,6500 lseek = 62,
6111 read = 63,6501 read = 63,
6112 write = 64,6502 write = 64,
6113 readv = 65,6503 readv = 65,
...@@ -6116,17 +6506,24 @@ pub const RiscV32 = enum(usize) {...@@ -6116,17 +6506,24 @@ pub const RiscV32 = enum(usize) {
6116 pwrite64 = 68,6506 pwrite64 = 68,
6117 preadv = 69,6507 preadv = 69,
6118 pwritev = 70,6508 pwritev = 70,
6119 sendfile64 = 71,6509 sendfile = 71,
6510 pselect6 = 72,
6511 ppoll = 73,
6120 signalfd4 = 74,6512 signalfd4 = 74,
6121 vmsplice = 75,6513 vmsplice = 75,
6122 splice = 76,6514 splice = 76,
6123 tee = 77,6515 tee = 77,
6124 readlinkat = 78,6516 readlinkat = 78,
6517 fstatat64 = 79,
6518 fstat = 80,
6125 sync = 81,6519 sync = 81,
6126 fsync = 82,6520 fsync = 82,
6127 fdatasync = 83,6521 fdatasync = 83,
6128 sync_file_range = 84,6522 sync_file_range = 84,
6129 timerfd_create = 85,6523 timerfd_create = 85,
6524 timerfd_settime = 86,
6525 timerfd_gettime = 87,
6526 utimensat = 88,
6130 acct = 89,6527 acct = 89,
6131 capget = 90,6528 capget = 90,
6132 capset = 91,6529 capset = 91,
...@@ -6136,16 +6533,24 @@ pub const RiscV32 = enum(usize) {...@@ -6136,16 +6533,24 @@ pub const RiscV32 = enum(usize) {
6136 waitid = 95,6533 waitid = 95,
6137 set_tid_address = 96,6534 set_tid_address = 96,
6138 unshare = 97,6535 unshare = 97,
6536 futex = 98,
6139 set_robust_list = 99,6537 set_robust_list = 99,
6140 get_robust_list = 100,6538 get_robust_list = 100,
6539 nanosleep = 101,
6141 getitimer = 102,6540 getitimer = 102,
6142 setitimer = 103,6541 setitimer = 103,
6143 kexec_load = 104,6542 kexec_load = 104,
6144 init_module = 105,6543 init_module = 105,
6145 delete_module = 106,6544 delete_module = 106,
6146 timer_create = 107,6545 timer_create = 107,
6546 timer_gettime = 108,
6147 timer_getoverrun = 109,6547 timer_getoverrun = 109,
6548 timer_settime = 110,
6148 timer_delete = 111,6549 timer_delete = 111,
6550 clock_settime = 112,
6551 clock_gettime = 113,
6552 clock_getres = 114,
6553 clock_nanosleep = 115,
6149 syslog = 116,6554 syslog = 116,
6150 ptrace = 117,6555 ptrace = 117,
6151 sched_setparam = 118,6556 sched_setparam = 118,
...@@ -6157,6 +6562,7 @@ pub const RiscV32 = enum(usize) {...@@ -6157,6 +6562,7 @@ pub const RiscV32 = enum(usize) {
6157 sched_yield = 124,6562 sched_yield = 124,
6158 sched_get_priority_max = 125,6563 sched_get_priority_max = 125,
6159 sched_get_priority_min = 126,6564 sched_get_priority_min = 126,
6565 sched_rr_get_interval = 127,
6160 restart_syscall = 128,6566 restart_syscall = 128,
6161 kill = 129,6567 kill = 129,
6162 tkill = 130,6568 tkill = 130,
...@@ -6166,6 +6572,7 @@ pub const RiscV32 = enum(usize) {...@@ -6166,6 +6572,7 @@ pub const RiscV32 = enum(usize) {
6166 rt_sigaction = 134,6572 rt_sigaction = 134,
6167 rt_sigprocmask = 135,6573 rt_sigprocmask = 135,
6168 rt_sigpending = 136,6574 rt_sigpending = 136,
6575 rt_sigtimedwait = 137,
6169 rt_sigqueueinfo = 138,6576 rt_sigqueueinfo = 138,
6170 rt_sigreturn = 139,6577 rt_sigreturn = 139,
6171 setpriority = 140,6578 setpriority = 140,
...@@ -6191,10 +6598,15 @@ pub const RiscV32 = enum(usize) {...@@ -6191,10 +6598,15 @@ pub const RiscV32 = enum(usize) {
6191 uname = 160,6598 uname = 160,
6192 sethostname = 161,6599 sethostname = 161,
6193 setdomainname = 162,6600 setdomainname = 162,
6601 getrlimit = 163,
6602 setrlimit = 164,
6194 getrusage = 165,6603 getrusage = 165,
6195 umask = 166,6604 umask = 166,
6196 prctl = 167,6605 prctl = 167,
6197 getcpu = 168,6606 getcpu = 168,
6607 gettimeofday = 169,
6608 settimeofday = 170,
6609 adjtimex = 171,
6198 getpid = 172,6610 getpid = 172,
6199 getppid = 173,6611 getppid = 173,
6200 getuid = 174,6612 getuid = 174,
...@@ -6205,6 +6617,8 @@ pub const RiscV32 = enum(usize) {...@@ -6205,6 +6617,8 @@ pub const RiscV32 = enum(usize) {
6205 sysinfo = 179,6617 sysinfo = 179,
6206 mq_open = 180,6618 mq_open = 180,
6207 mq_unlink = 181,6619 mq_unlink = 181,
6620 mq_timedsend = 182,
6621 mq_timedreceive = 183,
6208 mq_notify = 184,6622 mq_notify = 184,
6209 mq_getsetattr = 185,6623 mq_getsetattr = 185,
6210 msgget = 186,6624 msgget = 186,
...@@ -6213,6 +6627,7 @@ pub const RiscV32 = enum(usize) {...@@ -6213,6 +6627,7 @@ pub const RiscV32 = enum(usize) {
6213 msgsnd = 189,6627 msgsnd = 189,
6214 semget = 190,6628 semget = 190,
6215 semctl = 191,6629 semctl = 191,
6630 semtimedop = 192,
6216 semop = 193,6631 semop = 193,
6217 shmget = 194,6632 shmget = 194,
6218 shmctl = 195,6633 shmctl = 195,
...@@ -6242,8 +6657,8 @@ pub const RiscV32 = enum(usize) {...@@ -6242,8 +6657,8 @@ pub const RiscV32 = enum(usize) {
6242 keyctl = 219,6657 keyctl = 219,
6243 clone = 220,6658 clone = 220,
6244 execve = 221,6659 execve = 221,
6245 mmap2 = 222,6660 mmap = 222,
6246 fadvise64_64 = 223,6661 fadvise64 = 223,
6247 swapon = 224,6662 swapon = 224,
6248 swapoff = 225,6663 swapoff = 225,
6249 mprotect = 226,6664 mprotect = 226,
...@@ -6263,11 +6678,16 @@ pub const RiscV32 = enum(usize) {...@@ -6263,11 +6678,16 @@ pub const RiscV32 = enum(usize) {
6263 rt_tgsigqueueinfo = 240,6678 rt_tgsigqueueinfo = 240,
6264 perf_event_open = 241,6679 perf_event_open = 241,
6265 accept4 = 242,6680 accept4 = 242,
6681 recvmmsg = 243,
6682 riscv_hwprobe = 258,
6683 riscv_flush_icache = 259,
6684 wait4 = 260,
6266 prlimit64 = 261,6685 prlimit64 = 261,
6267 fanotify_init = 262,6686 fanotify_init = 262,
6268 fanotify_mark = 263,6687 fanotify_mark = 263,
6269 name_to_handle_at = 264,6688 name_to_handle_at = 264,
6270 open_by_handle_at = 265,6689 open_by_handle_at = 265,
6690 clock_adjtime = 266,
6271 syncfs = 267,6691 syncfs = 267,
6272 setns = 268,6692 setns = 268,
6273 sendmmsg = 269,6693 sendmmsg = 269,
...@@ -6293,28 +6713,9 @@ pub const RiscV32 = enum(usize) {...@@ -6293,28 +6713,9 @@ pub const RiscV32 = enum(usize) {
6293 pkey_alloc = 289,6713 pkey_alloc = 289,
6294 pkey_free = 290,6714 pkey_free = 290,
6295 statx = 291,6715 statx = 291,
6716 io_pgetevents = 292,
6296 rseq = 293,6717 rseq = 293,
6297 kexec_file_load = 294,6718 kexec_file_load = 294,
6298 clock_gettime = 403,
6299 clock_settime = 404,
6300 clock_adjtime = 405,
6301 clock_getres = 406,
6302 clock_nanosleep = 407,
6303 timer_gettime = 408,
6304 timer_settime = 409,
6305 timerfd_gettime = 410,
6306 timerfd_settime = 411,
6307 utimensat = 412,
6308 pselect6 = 413,
6309 ppoll = 414,
6310 io_pgetevents = 416,
6311 recvmmsg = 417,
6312 mq_timedsend = 418,
6313 mq_timedreceive = 419,
6314 semtimedop = 420,
6315 rt_sigtimedwait = 421,
6316 futex = 422,
6317 sched_rr_get_interval = 423,
6318 pidfd_send_signal = 424,6719 pidfd_send_signal = 424,
6319 io_uring_setup = 425,6720 io_uring_setup = 425,
6320 io_uring_enter = 426,6721 io_uring_enter = 426,
...@@ -6354,11 +6755,14 @@ pub const RiscV32 = enum(usize) {...@@ -6354,11 +6755,14 @@ pub const RiscV32 = enum(usize) {
6354 lsm_set_self_attr = 460,6755 lsm_set_self_attr = 460,
6355 lsm_list_modules = 461,6756 lsm_list_modules = 461,
6356 mseal = 462,6757 mseal = 462,
6357 riscv_flush_icache = (244 + 15),6758 setxattrat = 463,
6358 riscv_hwprobe = (244 + 14),6759 getxattrat = 464,
6760 listxattrat = 465,
6761 removexattrat = 466,
6762 open_tree_attr = 467,
6359};6763};
63606764
6361pub const RiscV64 = enum(usize) {6765pub const LoongArch64 = enum(usize) {
6362 io_setup = 0,6766 io_setup = 0,
6363 io_destroy = 1,6767 io_destroy = 1,
6364 io_submit = 2,6768 io_submit = 2,
...@@ -6429,7 +6833,7 @@ pub const RiscV64 = enum(usize) {...@@ -6429,7 +6833,7 @@ pub const RiscV64 = enum(usize) {
6429 pwrite64 = 68,6833 pwrite64 = 68,
6430 preadv = 69,6834 preadv = 69,
6431 pwritev = 70,6835 pwritev = 70,
6432 sendfile64 = 71,6836 sendfile = 71,
6433 pselect6 = 72,6837 pselect6 = 72,
6434 ppoll = 73,6838 ppoll = 73,
6435 signalfd4 = 74,6839 signalfd4 = 74,
...@@ -6438,7 +6842,7 @@ pub const RiscV64 = enum(usize) {...@@ -6438,7 +6842,7 @@ pub const RiscV64 = enum(usize) {
6438 tee = 77,6842 tee = 77,
6439 readlinkat = 78,6843 readlinkat = 78,
6440 fstatat64 = 79,6844 fstatat64 = 79,
6441 fstat64 = 80,6845 fstat = 80,
6442 sync = 81,6846 sync = 81,
6443 fsync = 82,6847 fsync = 82,
6444 fdatasync = 83,6848 fdatasync = 83,
...@@ -6521,8 +6925,6 @@ pub const RiscV64 = enum(usize) {...@@ -6521,8 +6925,6 @@ pub const RiscV64 = enum(usize) {
6521 uname = 160,6925 uname = 160,
6522 sethostname = 161,6926 sethostname = 161,
6523 setdomainname = 162,6927 setdomainname = 162,
6524 getrlimit = 163,
6525 setrlimit = 164,
6526 getrusage = 165,6928 getrusage = 165,
6527 umask = 166,6929 umask = 166,
6528 prctl = 167,6930 prctl = 167,
...@@ -6581,7 +6983,7 @@ pub const RiscV64 = enum(usize) {...@@ -6581,7 +6983,7 @@ pub const RiscV64 = enum(usize) {
6581 clone = 220,6983 clone = 220,
6582 execve = 221,6984 execve = 221,
6583 mmap = 222,6985 mmap = 222,
6584 fadvise64_64 = 223,6986 fadvise64 = 223,
6585 swapon = 224,6987 swapon = 224,
6586 swapoff = 225,6988 swapoff = 225,
6587 mprotect = 226,6989 mprotect = 226,
...@@ -6660,7 +7062,6 @@ pub const RiscV64 = enum(usize) {...@@ -6660,7 +7062,6 @@ pub const RiscV64 = enum(usize) {
6660 landlock_create_ruleset = 444,7062 landlock_create_ruleset = 444,
6661 landlock_add_rule = 445,7063 landlock_add_rule = 445,
6662 landlock_restrict_self = 446,7064 landlock_restrict_self = 446,
6663 memfd_secret = 447,
6664 process_mrelease = 448,7065 process_mrelease = 448,
6665 futex_waitv = 449,7066 futex_waitv = 449,
6666 set_mempolicy_home_node = 450,7067 set_mempolicy_home_node = 450,
...@@ -6676,11 +7077,14 @@ pub const RiscV64 = enum(usize) {...@@ -6676,11 +7077,14 @@ pub const RiscV64 = enum(usize) {
6676 lsm_set_self_attr = 460,7077 lsm_set_self_attr = 460,
6677 lsm_list_modules = 461,7078 lsm_list_modules = 461,
6678 mseal = 462,7079 mseal = 462,
6679 riscv_flush_icache = (244 + 15),7080 setxattrat = 463,
6680 riscv_hwprobe = (244 + 14),7081 getxattrat = 464,
7082 listxattrat = 465,
7083 removexattrat = 466,
7084 open_tree_attr = 467,
6681};7085};
66827086
6683pub const LoongArch64 = enum(usize) {7087pub const Arc = enum(usize) {
6684 io_setup = 0,7088 io_setup = 0,
6685 io_destroy = 1,7089 io_destroy = 1,
6686 io_submit = 2,7090 io_submit = 2,
...@@ -6706,7 +7110,7 @@ pub const LoongArch64 = enum(usize) {...@@ -6706,7 +7110,7 @@ pub const LoongArch64 = enum(usize) {
6706 epoll_pwait = 22,7110 epoll_pwait = 22,
6707 dup = 23,7111 dup = 23,
6708 dup3 = 24,7112 dup3 = 24,
6709 fcntl = 25,7113 fcntl64 = 25,
6710 inotify_init1 = 26,7114 inotify_init1 = 26,
6711 inotify_add_watch = 27,7115 inotify_add_watch = 27,
6712 inotify_rm_watch = 28,7116 inotify_rm_watch = 28,
...@@ -6719,14 +7123,15 @@ pub const LoongArch64 = enum(usize) {...@@ -6719,14 +7123,15 @@ pub const LoongArch64 = enum(usize) {
6719 unlinkat = 35,7123 unlinkat = 35,
6720 symlinkat = 36,7124 symlinkat = 36,
6721 linkat = 37,7125 linkat = 37,
7126 renameat = 38,
6722 umount2 = 39,7127 umount2 = 39,
6723 mount = 40,7128 mount = 40,
6724 pivot_root = 41,7129 pivot_root = 41,
6725 nfsservctl = 42,7130 nfsservctl = 42,
6726 statfs = 43,7131 statfs64 = 43,
6727 fstatfs = 44,7132 fstatfs64 = 44,
6728 truncate = 45,7133 truncate64 = 45,
6729 ftruncate = 46,7134 ftruncate64 = 46,
6730 fallocate = 47,7135 fallocate = 47,
6731 faccessat = 48,7136 faccessat = 48,
6732 chdir = 49,7137 chdir = 49,
...@@ -6742,7 +7147,7 @@ pub const LoongArch64 = enum(usize) {...@@ -6742,7 +7147,7 @@ pub const LoongArch64 = enum(usize) {
6742 pipe2 = 59,7147 pipe2 = 59,
6743 quotactl = 60,7148 quotactl = 60,
6744 getdents64 = 61,7149 getdents64 = 61,
6745 lseek = 62,7150 llseek = 62,
6746 read = 63,7151 read = 63,
6747 write = 64,7152 write = 64,
6748 readv = 65,7153 readv = 65,
...@@ -6759,6 +7164,8 @@ pub const LoongArch64 = enum(usize) {...@@ -6759,6 +7164,8 @@ pub const LoongArch64 = enum(usize) {
6759 splice = 76,7164 splice = 76,
6760 tee = 77,7165 tee = 77,
6761 readlinkat = 78,7166 readlinkat = 78,
7167 fstatat64 = 79,
7168 fstat64 = 80,
6762 sync = 81,7169 sync = 81,
6763 fsync = 82,7170 fsync = 82,
6764 fdatasync = 83,7171 fdatasync = 83,
...@@ -6841,6 +7248,8 @@ pub const LoongArch64 = enum(usize) {...@@ -6841,6 +7248,8 @@ pub const LoongArch64 = enum(usize) {
6841 uname = 160,7248 uname = 160,
6842 sethostname = 161,7249 sethostname = 161,
6843 setdomainname = 162,7250 setdomainname = 162,
7251 getrlimit = 163,
7252 setrlimit = 164,
6844 getrusage = 165,7253 getrusage = 165,
6845 umask = 166,7254 umask = 166,
6846 prctl = 167,7255 prctl = 167,
...@@ -6898,7 +7307,7 @@ pub const LoongArch64 = enum(usize) {...@@ -6898,7 +7307,7 @@ pub const LoongArch64 = enum(usize) {
6898 keyctl = 219,7307 keyctl = 219,
6899 clone = 220,7308 clone = 220,
6900 execve = 221,7309 execve = 221,
6901 mmap = 222,7310 mmap2 = 222,
6902 fadvise64_64 = 223,7311 fadvise64_64 = 223,
6903 swapon = 224,7312 swapon = 224,
6904 swapoff = 225,7313 swapoff = 225,
...@@ -6920,6 +7329,11 @@ pub const LoongArch64 = enum(usize) {...@@ -6920,6 +7329,11 @@ pub const LoongArch64 = enum(usize) {
6920 perf_event_open = 241,7329 perf_event_open = 241,
6921 accept4 = 242,7330 accept4 = 242,
6922 recvmmsg = 243,7331 recvmmsg = 243,
7332 cacheflush = 244,
7333 arc_settls = 245,
7334 arc_gettls = 246,
7335 sysfs = 247,
7336 arc_usr_cmpxchg = 248,
6923 wait4 = 260,7337 wait4 = 260,
6924 prlimit64 = 261,7338 prlimit64 = 261,
6925 fanotify_init = 262,7339 fanotify_init = 262,
...@@ -6955,6 +7369,26 @@ pub const LoongArch64 = enum(usize) {...@@ -6955,6 +7369,26 @@ pub const LoongArch64 = enum(usize) {
6955 io_pgetevents = 292,7369 io_pgetevents = 292,
6956 rseq = 293,7370 rseq = 293,
6957 kexec_file_load = 294,7371 kexec_file_load = 294,
7372 clock_gettime64 = 403,
7373 clock_settime64 = 404,
7374 clock_adjtime64 = 405,
7375 clock_getres_time64 = 406,
7376 clock_nanosleep_time64 = 407,
7377 timer_gettime64 = 408,
7378 timer_settime64 = 409,
7379 timerfd_gettime64 = 410,
7380 timerfd_settime64 = 411,
7381 utimensat_time64 = 412,
7382 pselect6_time64 = 413,
7383 ppoll_time64 = 414,
7384 io_pgetevents_time64 = 416,
7385 recvmmsg_time64 = 417,
7386 mq_timedsend_time64 = 418,
7387 mq_timedreceive_time64 = 419,
7388 semtimedop_time64 = 420,
7389 rt_sigtimedwait_time64 = 421,
7390 futex_time64 = 422,
7391 sched_rr_get_interval_time64 = 423,
6958 pidfd_send_signal = 424,7392 pidfd_send_signal = 424,
6959 io_uring_setup = 425,7393 io_uring_setup = 425,
6960 io_uring_enter = 426,7394 io_uring_enter = 426,
...@@ -6993,14 +7427,19 @@ pub const LoongArch64 = enum(usize) {...@@ -6993,14 +7427,19 @@ pub const LoongArch64 = enum(usize) {
6993 lsm_set_self_attr = 460,7427 lsm_set_self_attr = 460,
6994 lsm_list_modules = 461,7428 lsm_list_modules = 461,
6995 mseal = 462,7429 mseal = 462,
7430 setxattrat = 463,
7431 getxattrat = 464,
7432 listxattrat = 465,
7433 removexattrat = 466,
7434 open_tree_attr = 467,
6996};7435};
69977436
6998pub const Arc = enum(usize) {7437pub const CSky = enum(usize) {
6999 io_setup = 0,7438 io_setup = 0,
7000 io_destroy = 1,7439 io_destroy = 1,
7001 io_submit = 2,7440 io_submit = 2,
7002 io_cancel = 3,7441 io_cancel = 3,
7003 io_getevents_time32 = 4,7442 io_getevents = 4,
7004 setxattr = 5,7443 setxattr = 5,
7005 lsetxattr = 6,7444 lsetxattr = 6,
7006 fsetxattr = 7,7445 fsetxattr = 7,
...@@ -7034,7 +7473,6 @@ pub const Arc = enum(usize) {...@@ -7034,7 +7473,6 @@ pub const Arc = enum(usize) {
7034 unlinkat = 35,7473 unlinkat = 35,
7035 symlinkat = 36,7474 symlinkat = 36,
7036 linkat = 37,7475 linkat = 37,
7037 renameat = 38,
7038 umount2 = 39,7476 umount2 = 39,
7039 mount = 40,7477 mount = 40,
7040 pivot_root = 41,7478 pivot_root = 41,
...@@ -7068,8 +7506,8 @@ pub const Arc = enum(usize) {...@@ -7068,8 +7506,8 @@ pub const Arc = enum(usize) {
7068 preadv = 69,7506 preadv = 69,
7069 pwritev = 70,7507 pwritev = 70,
7070 sendfile64 = 71,7508 sendfile64 = 71,
7071 pselect6_time32 = 72,7509 pselect6 = 72,
7072 ppoll_time32 = 73,7510 ppoll = 73,
7073 signalfd4 = 74,7511 signalfd4 = 74,
7074 vmsplice = 75,7512 vmsplice = 75,
7075 splice = 76,7513 splice = 76,
...@@ -7082,9 +7520,9 @@ pub const Arc = enum(usize) {...@@ -7082,9 +7520,9 @@ pub const Arc = enum(usize) {
7082 fdatasync = 83,7520 fdatasync = 83,
7083 sync_file_range = 84,7521 sync_file_range = 84,
7084 timerfd_create = 85,7522 timerfd_create = 85,
7085 timerfd_settime32 = 86,7523 timerfd_settime = 86,
7086 timerfd_gettime32 = 87,7524 timerfd_gettime = 87,
7087 utimensat_time32 = 88,7525 utimensat = 88,
7088 acct = 89,7526 acct = 89,
7089 capget = 90,7527 capget = 90,
7090 capset = 91,7528 capset = 91,
...@@ -7094,24 +7532,24 @@ pub const Arc = enum(usize) {...@@ -7094,24 +7532,24 @@ pub const Arc = enum(usize) {
7094 waitid = 95,7532 waitid = 95,
7095 set_tid_address = 96,7533 set_tid_address = 96,
7096 unshare = 97,7534 unshare = 97,
7097 futex_time32 = 98,7535 futex = 98,
7098 set_robust_list = 99,7536 set_robust_list = 99,
7099 get_robust_list = 100,7537 get_robust_list = 100,
7100 nanosleep_time32 = 101,7538 nanosleep = 101,
7101 getitimer = 102,7539 getitimer = 102,
7102 setitimer = 103,7540 setitimer = 103,
7103 kexec_load = 104,7541 kexec_load = 104,
7104 init_module = 105,7542 init_module = 105,
7105 delete_module = 106,7543 delete_module = 106,
7106 timer_create = 107,7544 timer_create = 107,
7107 timer_gettime32 = 108,7545 timer_gettime = 108,
7108 timer_getoverrun = 109,7546 timer_getoverrun = 109,
7109 timer_settime32 = 110,7547 timer_settime = 110,
7110 timer_delete = 111,7548 timer_delete = 111,
7111 clock_settime32 = 112,7549 clock_settime = 112,
7112 clock_gettime32 = 113,7550 clock_gettime = 113,
7113 clock_getres_time32 = 114,7551 clock_getres = 114,
7114 clock_nanosleep_time32 = 115,7552 clock_nanosleep = 115,
7115 syslog = 116,7553 syslog = 116,
7116 ptrace = 117,7554 ptrace = 117,
7117 sched_setparam = 118,7555 sched_setparam = 118,
...@@ -7123,7 +7561,7 @@ pub const Arc = enum(usize) {...@@ -7123,7 +7561,7 @@ pub const Arc = enum(usize) {
7123 sched_yield = 124,7561 sched_yield = 124,
7124 sched_get_priority_max = 125,7562 sched_get_priority_max = 125,
7125 sched_get_priority_min = 126,7563 sched_get_priority_min = 126,
7126 sched_rr_get_interval_time32 = 127,7564 sched_rr_get_interval = 127,
7127 restart_syscall = 128,7565 restart_syscall = 128,
7128 kill = 129,7566 kill = 129,
7129 tkill = 130,7567 tkill = 130,
...@@ -7133,7 +7571,7 @@ pub const Arc = enum(usize) {...@@ -7133,7 +7571,7 @@ pub const Arc = enum(usize) {
7133 rt_sigaction = 134,7571 rt_sigaction = 134,
7134 rt_sigprocmask = 135,7572 rt_sigprocmask = 135,
7135 rt_sigpending = 136,7573 rt_sigpending = 136,
7136 rt_sigtimedwait_time32 = 137,7574 rt_sigtimedwait = 137,
7137 rt_sigqueueinfo = 138,7575 rt_sigqueueinfo = 138,
7138 rt_sigreturn = 139,7576 rt_sigreturn = 139,
7139 setpriority = 140,7577 setpriority = 140,
...@@ -7167,7 +7605,7 @@ pub const Arc = enum(usize) {...@@ -7167,7 +7605,7 @@ pub const Arc = enum(usize) {
7167 getcpu = 168,7605 getcpu = 168,
7168 gettimeofday = 169,7606 gettimeofday = 169,
7169 settimeofday = 170,7607 settimeofday = 170,
7170 adjtimex_time32 = 171,7608 adjtimex = 171,
7171 getpid = 172,7609 getpid = 172,
7172 getppid = 173,7610 getppid = 173,
7173 getuid = 174,7611 getuid = 174,
...@@ -7178,8 +7616,8 @@ pub const Arc = enum(usize) {...@@ -7178,8 +7616,8 @@ pub const Arc = enum(usize) {
7178 sysinfo = 179,7616 sysinfo = 179,
7179 mq_open = 180,7617 mq_open = 180,
7180 mq_unlink = 181,7618 mq_unlink = 181,
7181 mq_timedsend_time32 = 182,7619 mq_timedsend = 182,
7182 mq_timedreceive_time32 = 183,7620 mq_timedreceive = 183,
7183 mq_notify = 184,7621 mq_notify = 184,
7184 mq_getsetattr = 185,7622 mq_getsetattr = 185,
7185 msgget = 186,7623 msgget = 186,
...@@ -7188,7 +7626,7 @@ pub const Arc = enum(usize) {...@@ -7188,7 +7626,7 @@ pub const Arc = enum(usize) {
7188 msgsnd = 189,7626 msgsnd = 189,
7189 semget = 190,7627 semget = 190,
7190 semctl = 191,7628 semctl = 191,
7191 semtimedop_time32 = 192,7629 semtimedop = 192,
7192 semop = 193,7630 semop = 193,
7193 shmget = 194,7631 shmget = 194,
7194 shmctl = 195,7632 shmctl = 195,
...@@ -7239,14 +7677,16 @@ pub const Arc = enum(usize) {...@@ -7239,14 +7677,16 @@ pub const Arc = enum(usize) {
7239 rt_tgsigqueueinfo = 240,7677 rt_tgsigqueueinfo = 240,
7240 perf_event_open = 241,7678 perf_event_open = 241,
7241 accept4 = 242,7679 accept4 = 242,
7242 recvmmsg_time32 = 243,7680 recvmmsg = 243,
7681 set_thread_area = 244,
7682 cacheflush = 245,
7243 wait4 = 260,7683 wait4 = 260,
7244 prlimit64 = 261,7684 prlimit64 = 261,
7245 fanotify_init = 262,7685 fanotify_init = 262,
7246 fanotify_mark = 263,7686 fanotify_mark = 263,
7247 name_to_handle_at = 264,7687 name_to_handle_at = 264,
7248 open_by_handle_at = 265,7688 open_by_handle_at = 265,
7249 clock_adjtime32 = 266,7689 clock_adjtime = 266,
7250 syncfs = 267,7690 syncfs = 267,
7251 setns = 268,7691 setns = 268,
7252 sendmmsg = 269,7692 sendmmsg = 269,
...@@ -7272,29 +7712,29 @@ pub const Arc = enum(usize) {...@@ -7272,29 +7712,29 @@ pub const Arc = enum(usize) {
7272 pkey_alloc = 289,7712 pkey_alloc = 289,
7273 pkey_free = 290,7713 pkey_free = 290,
7274 statx = 291,7714 statx = 291,
7275 io_pgetevents_time32 = 292,7715 io_pgetevents = 292,
7276 rseq = 293,7716 rseq = 293,
7277 kexec_file_load = 294,7717 kexec_file_load = 294,
7278 clock_gettime = 403,7718 clock_gettime64 = 403,
7279 clock_settime = 404,7719 clock_settime64 = 404,
7280 clock_adjtime = 405,7720 clock_adjtime64 = 405,
7281 clock_getres = 406,7721 clock_getres_time64 = 406,
7282 clock_nanosleep = 407,7722 clock_nanosleep_time64 = 407,
7283 timer_gettime = 408,7723 timer_gettime64 = 408,
7284 timer_settime = 409,7724 timer_settime64 = 409,
7285 timerfd_gettime = 410,7725 timerfd_gettime64 = 410,
7286 timerfd_settime = 411,7726 timerfd_settime64 = 411,
7287 utimensat = 412,7727 utimensat_time64 = 412,
7288 pselect6 = 413,7728 pselect6_time64 = 413,
7289 ppoll = 414,7729 ppoll_time64 = 414,
7290 io_pgetevents = 416,7730 io_pgetevents_time64 = 416,
7291 recvmmsg = 417,7731 recvmmsg_time64 = 417,
7292 mq_timedsend = 418,7732 mq_timedsend_time64 = 418,
7293 mq_timedreceive = 419,7733 mq_timedreceive_time64 = 419,
7294 semtimedop = 420,7734 semtimedop_time64 = 420,
7295 rt_sigtimedwait = 421,7735 rt_sigtimedwait_time64 = 421,
7296 futex = 422,7736 futex_time64 = 422,
7297 sched_rr_get_interval = 423,7737 sched_rr_get_interval_time64 = 423,
7298 pidfd_send_signal = 424,7738 pidfd_send_signal = 424,
7299 io_uring_setup = 425,7739 io_uring_setup = 425,
7300 io_uring_enter = 426,7740 io_uring_enter = 426,
...@@ -7333,19 +7773,19 @@ pub const Arc = enum(usize) {...@@ -7333,19 +7773,19 @@ pub const Arc = enum(usize) {
7333 lsm_set_self_attr = 460,7773 lsm_set_self_attr = 460,
7334 lsm_list_modules = 461,7774 lsm_list_modules = 461,
7335 mseal = 462,7775 mseal = 462,
7336 cacheflush = (244 + 0),7776 setxattrat = 463,
7337 arc_settls = (244 + 1),7777 getxattrat = 464,
7338 arc_gettls = (244 + 2),7778 listxattrat = 465,
7339 arc_usr_cmpxchg = (244 + 4),7779 removexattrat = 466,
7340 sysfs = (244 + 3),7780 open_tree_attr = 467,
7341};7781};
73427782
7343pub const CSky = enum(usize) {7783pub const Hexagon = enum(usize) {
7344 io_setup = 0,7784 io_setup = 0,
7345 io_destroy = 1,7785 io_destroy = 1,
7346 io_submit = 2,7786 io_submit = 2,
7347 io_cancel = 3,7787 io_cancel = 3,
7348 io_getevents_time32 = 4,7788 io_getevents = 4,
7349 setxattr = 5,7789 setxattr = 5,
7350 lsetxattr = 6,7790 lsetxattr = 6,
7351 fsetxattr = 7,7791 fsetxattr = 7,
...@@ -7379,6 +7819,7 @@ pub const CSky = enum(usize) {...@@ -7379,6 +7819,7 @@ pub const CSky = enum(usize) {
7379 unlinkat = 35,7819 unlinkat = 35,
7380 symlinkat = 36,7820 symlinkat = 36,
7381 linkat = 37,7821 linkat = 37,
7822 renameat = 38,
7382 umount2 = 39,7823 umount2 = 39,
7383 mount = 40,7824 mount = 40,
7384 pivot_root = 41,7825 pivot_root = 41,
...@@ -7412,8 +7853,8 @@ pub const CSky = enum(usize) {...@@ -7412,8 +7853,8 @@ pub const CSky = enum(usize) {
7412 preadv = 69,7853 preadv = 69,
7413 pwritev = 70,7854 pwritev = 70,
7414 sendfile64 = 71,7855 sendfile64 = 71,
7415 pselect6_time32 = 72,7856 pselect6 = 72,
7416 ppoll_time32 = 73,7857 ppoll = 73,
7417 signalfd4 = 74,7858 signalfd4 = 74,
7418 vmsplice = 75,7859 vmsplice = 75,
7419 splice = 76,7860 splice = 76,
...@@ -7426,9 +7867,9 @@ pub const CSky = enum(usize) {...@@ -7426,9 +7867,9 @@ pub const CSky = enum(usize) {
7426 fdatasync = 83,7867 fdatasync = 83,
7427 sync_file_range = 84,7868 sync_file_range = 84,
7428 timerfd_create = 85,7869 timerfd_create = 85,
7429 timerfd_settime32 = 86,7870 timerfd_settime = 86,
7430 timerfd_gettime32 = 87,7871 timerfd_gettime = 87,
7431 utimensat_time32 = 88,7872 utimensat = 88,
7432 acct = 89,7873 acct = 89,
7433 capget = 90,7874 capget = 90,
7434 capset = 91,7875 capset = 91,
...@@ -7438,24 +7879,24 @@ pub const CSky = enum(usize) {...@@ -7438,24 +7879,24 @@ pub const CSky = enum(usize) {
7438 waitid = 95,7879 waitid = 95,
7439 set_tid_address = 96,7880 set_tid_address = 96,
7440 unshare = 97,7881 unshare = 97,
7441 futex_time32 = 98,7882 futex = 98,
7442 set_robust_list = 99,7883 set_robust_list = 99,
7443 get_robust_list = 100,7884 get_robust_list = 100,
7444 nanosleep_time32 = 101,7885 nanosleep = 101,
7445 getitimer = 102,7886 getitimer = 102,
7446 setitimer = 103,7887 setitimer = 103,
7447 kexec_load = 104,7888 kexec_load = 104,
7448 init_module = 105,7889 init_module = 105,
7449 delete_module = 106,7890 delete_module = 106,
7450 timer_create = 107,7891 timer_create = 107,
7451 timer_gettime32 = 108,7892 timer_gettime = 108,
7452 timer_getoverrun = 109,7893 timer_getoverrun = 109,
7453 timer_settime32 = 110,7894 timer_settime = 110,
7454 timer_delete = 111,7895 timer_delete = 111,
7455 clock_settime32 = 112,7896 clock_settime = 112,
7456 clock_gettime32 = 113,7897 clock_gettime = 113,
7457 clock_getres_time32 = 114,7898 clock_getres = 114,
7458 clock_nanosleep_time32 = 115,7899 clock_nanosleep = 115,
7459 syslog = 116,7900 syslog = 116,
7460 ptrace = 117,7901 ptrace = 117,
7461 sched_setparam = 118,7902 sched_setparam = 118,
...@@ -7467,7 +7908,7 @@ pub const CSky = enum(usize) {...@@ -7467,7 +7908,7 @@ pub const CSky = enum(usize) {
7467 sched_yield = 124,7908 sched_yield = 124,
7468 sched_get_priority_max = 125,7909 sched_get_priority_max = 125,
7469 sched_get_priority_min = 126,7910 sched_get_priority_min = 126,
7470 sched_rr_get_interval_time32 = 127,7911 sched_rr_get_interval = 127,
7471 restart_syscall = 128,7912 restart_syscall = 128,
7472 kill = 129,7913 kill = 129,
7473 tkill = 130,7914 tkill = 130,
...@@ -7477,7 +7918,7 @@ pub const CSky = enum(usize) {...@@ -7477,7 +7918,7 @@ pub const CSky = enum(usize) {
7477 rt_sigaction = 134,7918 rt_sigaction = 134,
7478 rt_sigprocmask = 135,7919 rt_sigprocmask = 135,
7479 rt_sigpending = 136,7920 rt_sigpending = 136,
7480 rt_sigtimedwait_time32 = 137,7921 rt_sigtimedwait = 137,
7481 rt_sigqueueinfo = 138,7922 rt_sigqueueinfo = 138,
7482 rt_sigreturn = 139,7923 rt_sigreturn = 139,
7483 setpriority = 140,7924 setpriority = 140,
...@@ -7511,7 +7952,7 @@ pub const CSky = enum(usize) {...@@ -7511,7 +7952,7 @@ pub const CSky = enum(usize) {
7511 getcpu = 168,7952 getcpu = 168,
7512 gettimeofday = 169,7953 gettimeofday = 169,
7513 settimeofday = 170,7954 settimeofday = 170,
7514 adjtimex_time32 = 171,7955 adjtimex = 171,
7515 getpid = 172,7956 getpid = 172,
7516 getppid = 173,7957 getppid = 173,
7517 getuid = 174,7958 getuid = 174,
...@@ -7522,8 +7963,8 @@ pub const CSky = enum(usize) {...@@ -7522,8 +7963,8 @@ pub const CSky = enum(usize) {
7522 sysinfo = 179,7963 sysinfo = 179,
7523 mq_open = 180,7964 mq_open = 180,
7524 mq_unlink = 181,7965 mq_unlink = 181,
7525 mq_timedsend_time32 = 182,7966 mq_timedsend = 182,
7526 mq_timedreceive_time32 = 183,7967 mq_timedreceive = 183,
7527 mq_notify = 184,7968 mq_notify = 184,
7528 mq_getsetattr = 185,7969 mq_getsetattr = 185,
7529 msgget = 186,7970 msgget = 186,
...@@ -7532,7 +7973,7 @@ pub const CSky = enum(usize) {...@@ -7532,7 +7973,7 @@ pub const CSky = enum(usize) {
7532 msgsnd = 189,7973 msgsnd = 189,
7533 semget = 190,7974 semget = 190,
7534 semctl = 191,7975 semctl = 191,
7535 semtimedop_time32 = 192,7976 semtimedop = 192,
7536 semop = 193,7977 semop = 193,
7537 shmget = 194,7978 shmget = 194,
7538 shmctl = 195,7979 shmctl = 195,
...@@ -7583,14 +8024,14 @@ pub const CSky = enum(usize) {...@@ -7583,14 +8024,14 @@ pub const CSky = enum(usize) {
7583 rt_tgsigqueueinfo = 240,8024 rt_tgsigqueueinfo = 240,
7584 perf_event_open = 241,8025 perf_event_open = 241,
7585 accept4 = 242,8026 accept4 = 242,
7586 recvmmsg_time32 = 243,8027 recvmmsg = 243,
7587 wait4 = 260,8028 wait4 = 260,
7588 prlimit64 = 261,8029 prlimit64 = 261,
7589 fanotify_init = 262,8030 fanotify_init = 262,
7590 fanotify_mark = 263,8031 fanotify_mark = 263,
7591 name_to_handle_at = 264,8032 name_to_handle_at = 264,
7592 open_by_handle_at = 265,8033 open_by_handle_at = 265,
7593 clock_adjtime32 = 266,8034 clock_adjtime = 266,
7594 syncfs = 267,8035 syncfs = 267,
7595 setns = 268,8036 setns = 268,
7596 sendmmsg = 269,8037 sendmmsg = 269,
...@@ -7616,29 +8057,29 @@ pub const CSky = enum(usize) {...@@ -7616,29 +8057,29 @@ pub const CSky = enum(usize) {
7616 pkey_alloc = 289,8057 pkey_alloc = 289,
7617 pkey_free = 290,8058 pkey_free = 290,
7618 statx = 291,8059 statx = 291,
7619 io_pgetevents_time32 = 292,8060 io_pgetevents = 292,
7620 rseq = 293,8061 rseq = 293,
7621 kexec_file_load = 294,8062 kexec_file_load = 294,
7622 clock_gettime = 403,8063 clock_gettime64 = 403,
7623 clock_settime = 404,8064 clock_settime64 = 404,
7624 clock_adjtime = 405,8065 clock_adjtime64 = 405,
7625 clock_getres = 406,8066 clock_getres_time64 = 406,
7626 clock_nanosleep = 407,8067 clock_nanosleep_time64 = 407,
7627 timer_gettime = 408,8068 timer_gettime64 = 408,
7628 timer_settime = 409,8069 timer_settime64 = 409,
7629 timerfd_gettime = 410,8070 timerfd_gettime64 = 410,
7630 timerfd_settime = 411,8071 timerfd_settime64 = 411,
7631 utimensat = 412,8072 utimensat_time64 = 412,
7632 pselect6 = 413,8073 pselect6_time64 = 413,
7633 ppoll = 414,8074 ppoll_time64 = 414,
7634 io_pgetevents = 416,8075 io_pgetevents_time64 = 416,
7635 recvmmsg = 417,8076 recvmmsg_time64 = 417,
7636 mq_timedsend = 418,8077 mq_timedsend_time64 = 418,
7637 mq_timedreceive = 419,8078 mq_timedreceive_time64 = 419,
7638 semtimedop = 420,8079 semtimedop_time64 = 420,
7639 rt_sigtimedwait = 421,8080 rt_sigtimedwait_time64 = 421,
7640 futex = 422,8081 futex_time64 = 422,
7641 sched_rr_get_interval = 423,8082 sched_rr_get_interval_time64 = 423,
7642 pidfd_send_signal = 424,8083 pidfd_send_signal = 424,
7643 io_uring_setup = 425,8084 io_uring_setup = 425,
7644 io_uring_enter = 426,8085 io_uring_enter = 426,
...@@ -7677,16 +8118,19 @@ pub const CSky = enum(usize) {...@@ -7677,16 +8118,19 @@ pub const CSky = enum(usize) {
7677 lsm_set_self_attr = 460,8118 lsm_set_self_attr = 460,
7678 lsm_list_modules = 461,8119 lsm_list_modules = 461,
7679 mseal = 462,8120 mseal = 462,
7680 set_thread_area = (244 + 0),8121 setxattrat = 463,
7681 cacheflush = (244 + 1),8122 getxattrat = 464,
8123 listxattrat = 465,
8124 removexattrat = 466,
8125 open_tree_attr = 467,
7682};8126};
76838127
7684pub const Hexagon = enum(usize) {8128pub const OpenRisc = enum(usize) {
7685 io_setup = 0,8129 io_setup = 0,
7686 io_destroy = 1,8130 io_destroy = 1,
7687 io_submit = 2,8131 io_submit = 2,
7688 io_cancel = 3,8132 io_cancel = 3,
7689 io_getevents_time32 = 4,8133 io_getevents = 4,
7690 setxattr = 5,8134 setxattr = 5,
7691 lsetxattr = 6,8135 lsetxattr = 6,
7692 fsetxattr = 7,8136 fsetxattr = 7,
...@@ -7754,8 +8198,8 @@ pub const Hexagon = enum(usize) {...@@ -7754,8 +8198,8 @@ pub const Hexagon = enum(usize) {
7754 preadv = 69,8198 preadv = 69,
7755 pwritev = 70,8199 pwritev = 70,
7756 sendfile64 = 71,8200 sendfile64 = 71,
7757 pselect6_time32 = 72,8201 pselect6 = 72,
7758 ppoll_time32 = 73,8202 ppoll = 73,
7759 signalfd4 = 74,8203 signalfd4 = 74,
7760 vmsplice = 75,8204 vmsplice = 75,
7761 splice = 76,8205 splice = 76,
...@@ -7768,9 +8212,9 @@ pub const Hexagon = enum(usize) {...@@ -7768,9 +8212,9 @@ pub const Hexagon = enum(usize) {
7768 fdatasync = 83,8212 fdatasync = 83,
7769 sync_file_range = 84,8213 sync_file_range = 84,
7770 timerfd_create = 85,8214 timerfd_create = 85,
7771 timerfd_settime32 = 86,8215 timerfd_settime = 86,
7772 timerfd_gettime32 = 87,8216 timerfd_gettime = 87,
7773 utimensat_time32 = 88,8217 utimensat = 88,
7774 acct = 89,8218 acct = 89,
7775 capget = 90,8219 capget = 90,
7776 capset = 91,8220 capset = 91,
...@@ -7780,24 +8224,24 @@ pub const Hexagon = enum(usize) {...@@ -7780,24 +8224,24 @@ pub const Hexagon = enum(usize) {
7780 waitid = 95,8224 waitid = 95,
7781 set_tid_address = 96,8225 set_tid_address = 96,
7782 unshare = 97,8226 unshare = 97,
7783 futex_time32 = 98,8227 futex = 98,
7784 set_robust_list = 99,8228 set_robust_list = 99,
7785 get_robust_list = 100,8229 get_robust_list = 100,
7786 nanosleep_time32 = 101,8230 nanosleep = 101,
7787 getitimer = 102,8231 getitimer = 102,
7788 setitimer = 103,8232 setitimer = 103,
7789 kexec_load = 104,8233 kexec_load = 104,
7790 init_module = 105,8234 init_module = 105,
7791 delete_module = 106,8235 delete_module = 106,
7792 timer_create = 107,8236 timer_create = 107,
7793 timer_gettime32 = 108,8237 timer_gettime = 108,
7794 timer_getoverrun = 109,8238 timer_getoverrun = 109,
7795 timer_settime32 = 110,8239 timer_settime = 110,
7796 timer_delete = 111,8240 timer_delete = 111,
7797 clock_settime32 = 112,8241 clock_settime = 112,
7798 clock_gettime32 = 113,8242 clock_gettime = 113,
7799 clock_getres_time32 = 114,8243 clock_getres = 114,
7800 clock_nanosleep_time32 = 115,8244 clock_nanosleep = 115,
7801 syslog = 116,8245 syslog = 116,
7802 ptrace = 117,8246 ptrace = 117,
7803 sched_setparam = 118,8247 sched_setparam = 118,
...@@ -7809,7 +8253,7 @@ pub const Hexagon = enum(usize) {...@@ -7809,7 +8253,7 @@ pub const Hexagon = enum(usize) {
7809 sched_yield = 124,8253 sched_yield = 124,
7810 sched_get_priority_max = 125,8254 sched_get_priority_max = 125,
7811 sched_get_priority_min = 126,8255 sched_get_priority_min = 126,
7812 sched_rr_get_interval_time32 = 127,8256 sched_rr_get_interval = 127,
7813 restart_syscall = 128,8257 restart_syscall = 128,
7814 kill = 129,8258 kill = 129,
7815 tkill = 130,8259 tkill = 130,
...@@ -7819,7 +8263,7 @@ pub const Hexagon = enum(usize) {...@@ -7819,7 +8263,7 @@ pub const Hexagon = enum(usize) {
7819 rt_sigaction = 134,8263 rt_sigaction = 134,
7820 rt_sigprocmask = 135,8264 rt_sigprocmask = 135,
7821 rt_sigpending = 136,8265 rt_sigpending = 136,
7822 rt_sigtimedwait_time32 = 137,8266 rt_sigtimedwait = 137,
7823 rt_sigqueueinfo = 138,8267 rt_sigqueueinfo = 138,
7824 rt_sigreturn = 139,8268 rt_sigreturn = 139,
7825 setpriority = 140,8269 setpriority = 140,
...@@ -7853,7 +8297,7 @@ pub const Hexagon = enum(usize) {...@@ -7853,7 +8297,7 @@ pub const Hexagon = enum(usize) {
7853 getcpu = 168,8297 getcpu = 168,
7854 gettimeofday = 169,8298 gettimeofday = 169,
7855 settimeofday = 170,8299 settimeofday = 170,
7856 adjtimex_time32 = 171,8300 adjtimex = 171,
7857 getpid = 172,8301 getpid = 172,
7858 getppid = 173,8302 getppid = 173,
7859 getuid = 174,8303 getuid = 174,
...@@ -7864,8 +8308,8 @@ pub const Hexagon = enum(usize) {...@@ -7864,8 +8308,8 @@ pub const Hexagon = enum(usize) {
7864 sysinfo = 179,8308 sysinfo = 179,
7865 mq_open = 180,8309 mq_open = 180,
7866 mq_unlink = 181,8310 mq_unlink = 181,
7867 mq_timedsend_time32 = 182,8311 mq_timedsend = 182,
7868 mq_timedreceive_time32 = 183,8312 mq_timedreceive = 183,
7869 mq_notify = 184,8313 mq_notify = 184,
7870 mq_getsetattr = 185,8314 mq_getsetattr = 185,
7871 msgget = 186,8315 msgget = 186,
...@@ -7874,7 +8318,7 @@ pub const Hexagon = enum(usize) {...@@ -7874,7 +8318,7 @@ pub const Hexagon = enum(usize) {
7874 msgsnd = 189,8318 msgsnd = 189,
7875 semget = 190,8319 semget = 190,
7876 semctl = 191,8320 semctl = 191,
7877 semtimedop_time32 = 192,8321 semtimedop = 192,
7878 semop = 193,8322 semop = 193,
7879 shmget = 194,8323 shmget = 194,
7880 shmctl = 195,8324 shmctl = 195,
...@@ -7925,14 +8369,15 @@ pub const Hexagon = enum(usize) {...@@ -7925,14 +8369,15 @@ pub const Hexagon = enum(usize) {
7925 rt_tgsigqueueinfo = 240,8369 rt_tgsigqueueinfo = 240,
7926 perf_event_open = 241,8370 perf_event_open = 241,
7927 accept4 = 242,8371 accept4 = 242,
7928 recvmmsg_time32 = 243,8372 recvmmsg = 243,
8373 or1k_atomic = 244,
7929 wait4 = 260,8374 wait4 = 260,
7930 prlimit64 = 261,8375 prlimit64 = 261,
7931 fanotify_init = 262,8376 fanotify_init = 262,
7932 fanotify_mark = 263,8377 fanotify_mark = 263,
7933 name_to_handle_at = 264,8378 name_to_handle_at = 264,
7934 open_by_handle_at = 265,8379 open_by_handle_at = 265,
7935 clock_adjtime32 = 266,8380 clock_adjtime = 266,
7936 syncfs = 267,8381 syncfs = 267,
7937 setns = 268,8382 setns = 268,
7938 sendmmsg = 269,8383 sendmmsg = 269,
...@@ -7958,29 +8403,29 @@ pub const Hexagon = enum(usize) {...@@ -7958,29 +8403,29 @@ pub const Hexagon = enum(usize) {
7958 pkey_alloc = 289,8403 pkey_alloc = 289,
7959 pkey_free = 290,8404 pkey_free = 290,
7960 statx = 291,8405 statx = 291,
7961 io_pgetevents_time32 = 292,8406 io_pgetevents = 292,
7962 rseq = 293,8407 rseq = 293,
7963 kexec_file_load = 294,8408 kexec_file_load = 294,
7964 clock_gettime = 403,8409 clock_gettime64 = 403,
7965 clock_settime = 404,8410 clock_settime64 = 404,
7966 clock_adjtime = 405,8411 clock_adjtime64 = 405,
7967 clock_getres = 406,8412 clock_getres_time64 = 406,
7968 clock_nanosleep = 407,8413 clock_nanosleep_time64 = 407,
7969 timer_gettime = 408,8414 timer_gettime64 = 408,
7970 timer_settime = 409,8415 timer_settime64 = 409,
7971 timerfd_gettime = 410,8416 timerfd_gettime64 = 410,
7972 timerfd_settime = 411,8417 timerfd_settime64 = 411,
7973 utimensat = 412,8418 utimensat_time64 = 412,
7974 pselect6 = 413,8419 pselect6_time64 = 413,
7975 ppoll = 414,8420 ppoll_time64 = 414,
7976 io_pgetevents = 416,8421 io_pgetevents_time64 = 416,
7977 recvmmsg = 417,8422 recvmmsg_time64 = 417,
7978 mq_timedsend = 418,8423 mq_timedsend_time64 = 418,
7979 mq_timedreceive = 419,8424 mq_timedreceive_time64 = 419,
7980 semtimedop = 420,8425 semtimedop_time64 = 420,
7981 rt_sigtimedwait = 421,8426 rt_sigtimedwait_time64 = 421,
7982 futex = 422,8427 futex_time64 = 422,
7983 sched_rr_get_interval = 423,8428 sched_rr_get_interval_time64 = 423,
7984 pidfd_send_signal = 424,8429 pidfd_send_signal = 424,
7985 io_uring_setup = 425,8430 io_uring_setup = 425,
7986 io_uring_enter = 426,8431 io_uring_enter = 426,
...@@ -7992,6 +8437,7 @@ pub const Hexagon = enum(usize) {...@@ -7992,6 +8437,7 @@ pub const Hexagon = enum(usize) {
7992 fsmount = 432,8437 fsmount = 432,
7993 fspick = 433,8438 fspick = 433,
7994 pidfd_open = 434,8439 pidfd_open = 434,
8440 clone3 = 435,
7995 close_range = 436,8441 close_range = 436,
7996 openat2 = 437,8442 openat2 = 437,
7997 pidfd_getfd = 438,8443 pidfd_getfd = 438,
...@@ -8018,4 +8464,9 @@ pub const Hexagon = enum(usize) {...@@ -8018,4 +8464,9 @@ pub const Hexagon = enum(usize) {
8018 lsm_set_self_attr = 460,8464 lsm_set_self_attr = 460,
8019 lsm_list_modules = 461,8465 lsm_list_modules = 461,
8020 mseal = 462,8466 mseal = 462,
8467 setxattrat = 463,
8468 getxattrat = 464,
8469 listxattrat = 465,
8470 removexattrat = 466,
8471 open_tree_attr = 467,
8021};8472};
tools/generate_linux_syscalls.zig+196-668
...@@ -2,12 +2,18 @@...@@ -2,12 +2,18 @@
2//!2//!
3//! This tool extracts the Linux syscall numbers from the Linux source tree3//! This tool extracts the Linux syscall numbers from the Linux source tree
4//! directly, and emits an enumerated list per supported Zig arch.4//! directly, and emits an enumerated list per supported Zig arch.
5//!
6//! As of kernel version 6.11, all supported architectures have their syscalls
7//! defined in files with the following tabular format:
8//!
9//! # Comment
10//! <number> <abi> <name> ...
11//!
12//! Everything after `name` is ignored for the purposes of this tool.
513
6const std = @import("std");14const std = @import("std");
15const Io = std.Io;
7const mem = std.mem;16const mem = std.mem;
8const fmt = std.fmt;
9const zig = std.zig;
10const fs = std.fs;
1117
12const stdlib_renames = std.StaticStringMap([]const u8).initComptime(.{18const stdlib_renames = std.StaticStringMap([]const u8).initComptime(.{
13 // Remove underscore prefix.19 // Remove underscore prefix.
...@@ -22,702 +28,224 @@ const stdlib_renames = std.StaticStringMap([]const u8).initComptime(.{...@@ -22,702 +28,224 @@ const stdlib_renames = std.StaticStringMap([]const u8).initComptime(.{
22 // ARM EABI/Thumb.28 // ARM EABI/Thumb.
23 .{ "arm_sync_file_range", "sync_file_range" },29 .{ "arm_sync_file_range", "sync_file_range" },
24 .{ "arm_fadvise64_64", "fadvise64_64" },30 .{ "arm_fadvise64_64", "fadvise64_64" },
25 // ARC and Hexagon.
26 .{ "mmap_pgoff", "mmap2" },
27});
28
29// Only for newer architectures where we use the C preprocessor.
30const stdlib_renames_new = std.StaticStringMap([]const u8).initComptime(.{
31 .{ "newuname", "uname" },
32 .{ "umount", "umount2" },
33});31});
3432
35// We use this to deal with the fact that multiple syscalls can be mapped to sys_ni_syscall.33/// Filter syscalls that aren't actually syscalls.
36// Thankfully it's only 2 well-known syscalls in newer kernel ports at the moment.34fn isReserved(name: []const u8) bool {
37fn getOverridenNameNew(value: []const u8) ?[]const u8 {35 return mem.startsWith(u8, name, "available") or
38 if (mem.eql(u8, value, "18")) {36 mem.startsWith(u8, name, "reserved") or
39 return "sys_lookup_dcookie";37 mem.startsWith(u8, name, "unused");
40 } else if (mem.eql(u8, value, "42")) {
41 return "sys_nfsservctl";
42 } else {
43 return null;
44 }
45}
46
47fn isReservedNameOld(name: []const u8) bool {
48 return std.mem.startsWith(u8, name, "available") or
49 std.mem.startsWith(u8, name, "reserved") or
50 std.mem.startsWith(u8, name, "unused");
51}38}
5239
53const default_args: []const []const u8 = &.{40/// Values of the `abi` field in use by the syscall tables.
54 "-E",41///
55 // -dM is cleaner, but -dD preserves iteration order.42/// Since c. 2012, all new Linux architectures use the same numbers for their syscalls.
56 "-dD",43/// Before kernel 6.11, the source of truth for this list was the arch-specific `uapi` headers.
57 // No need for line-markers.44/// The 6.11 release converted this into a unified table with the same format as the older archs.
58 "-P",45/// For these targets, syscalls are enabled/disabled based on the `abi` field.
59 "-nostdinc",46/// These fields are sourced from the respective `arch/{arch}/kernel/Makefile.syscalls`
60 // Using -I=[dir] includes the zig linux headers, which we don't want.47/// files in the kernel source tree.
61 "-Itools/include",48/// Architecture-specific syscalls between [244...259] are also enabled by adding the arch name as an abi.
62 "-Itools/include/uapi",49const Abi = enum {
63 // Output the syscall in a format we can easily recognize.50 /// Syscalls common to two or more sub-targets.
64 "-D __SYSCALL(nr, nm)=zigsyscall nm nr",51 /// Often used for single targets in lieu of a nil value.
52 common,
53 /// Syscalls using 64-bit types on 32-bit targets.
54 @"32",
55 /// 64-bit native syscalls.
56 @"64",
57 /// 32-bit time syscalls.
58 time32,
59 /// Supports the older renameat syscall along with renameat2.
60 renameat,
61 /// Supports the fstatat64 syscall.
62 stat64,
63 /// Supports the {get,set}rlimit syscalls.
64 rlimit,
65 /// Implements `memfd_secret` and friends.
66 memfd_secret,
67 // Architecture-specific syscalls.
68 x32,
69 eabi,
70 nospu,
71 arc,
72 csky,
73 nios2,
74 or1k,
75 riscv,
65};76};
6677
67const ProcessPreprocessedFileFn = *const fn (bytes: []const u8, writer: anytype) anyerror!void;78const __X32_SYSCALL_BIT: u32 = 0x40000000;
68const ProcessTableBasedArchFileFn = *const fn (79const __NR_Linux_O32: u32 = 4000;
69 bytes: []const u8,80const __NR_Linux_N64: u32 = 5000;
70 filters: Filters,81const __NR_Linux_N32: u32 = 6000;
71 writer: anytype,82
72 optional_writer: anytype,83const Arch = struct {
73) anyerror!void;84 /// Name for the generated enum variable.
7485 @"var": []const u8,
75const FlowControl = enum {86 /// Location of the table if this arch doesn't use the generic one.
76 @"break",87 table: union(enum) { generic: void, specific: []const u8 },
77 @"continue",88 /// List of abi features to filter on.
78 none,89 /// An empty list implies the abi field is a constant value, thus skipping validation.
79};90 abi: []const Abi = &.{},
8091 /// Some architectures need special handling:
81const AbiCheckParams = struct { abi: []const u8, flow: FlowControl };92 /// - x32 system calls must have their number OR'ed with
8293 /// `__X32_SYSCALL_BIT` to distinguish them against the regular x86_64 calls.
83const Filters = struct {94 /// - Mips systems calls are offset by a set number based on the ABI.
84 abiCheckParams: ?AbiCheckParams,95 ///
85 fixedName: ?*const fn (name: []const u8) []const u8,96 /// Because the `__X32_SYSCALL_BIT` mask is so large, we can turn the OR into a
86 isReservedNameOld: ?*const fn (name: []const u8) bool,97 /// normal addition and apply a base offset for all targets, defaulting to 0.
87};98 offset: u32 = 0,
8899 header: ?[]const u8 = null,
89fn abiCheck(abi: []const u8, params: *const AbiCheckParams) FlowControl {100 footer: ?[]const u8 = null,
90 if (mem.eql(u8, abi, params.abi)) return params.flow;101
91 return .none;102 fn get(self: Arch, line: []const u8) ?struct { []const u8, u32 } {
92}103 var iter = mem.tokenizeAny(u8, line, " \t");
93104 const num_str = iter.next() orelse @panic("Bad field");
94fn fixedName(name: []const u8) []const u8 {105 const abi = iter.next() orelse @panic("Bad field");
95 return if (stdlib_renames.get(name)) |fixed| fixed else name;106 const name = iter.next() orelse @panic("Bad field");
96}107
97108 // Filter out syscalls that aren't actually syscalls.
98const ArchInfo = union(enum) {109 if (isReserved(name)) return null;
99 table: struct {110 // Check abi field matches
100 name: []const u8,111 const abi_match: bool = if (self.abi.len == 0) true else blk: {
101 enum_name: []const u8,112 for (self.abi) |a|
102 file_path: []const u8,113 if (mem.eql(u8, @tagName(a), abi)) break :blk true;
103 header: ?[]const u8,114 break :blk false;
104 extra_values: ?[]const u8,115 };
105 process_file: ProcessTableBasedArchFileFn,116 if (!abi_match) return null;
106 filters: Filters,117
107 additional_enum: ?[]const u8,118 var num = std.fmt.parseInt(u32, num_str, 10) catch @panic("Bad syscall number");
108 },119 num += self.offset;
109 preprocessor: struct {120
110 name: []const u8,121 return .{ name, num };
111 enum_name: []const u8,122 }
112 file_path: []const u8,
113 child_options: struct {
114 comptime additional_args: ?[]const []const u8 = null,
115 target: []const u8,
116
117 pub inline fn getArgs(self: *const @This(), zig_exe: []const u8, file_path: []const u8) []const []const u8 {
118 const additional_args: []const []const u8 = self.additional_args orelse &.{};
119 return .{ zig_exe, "cc" } ++ additional_args ++ .{ "-target", self.target } ++ default_args ++ .{file_path};
120 }
121 },
122 header: ?[]const u8,
123 extra_values: ?[]const u8,
124 process_file: ProcessPreprocessedFileFn,
125 additional_enum: ?[]const u8,
126 },
127};123};
128124
129const arch_infos = [_]ArchInfo{125const architectures: []const Arch = &.{
130 .{126 .{ .@"var" = "X86", .table = .{ .specific = "arch/x86/entry/syscalls/syscall_32.tbl" } },
131 // These architectures have their syscall definitions generated from a TSV127 .{ .@"var" = "X64", .table = .{ .specific = "arch/x86/entry/syscalls/syscall_64.tbl" }, .abi = &.{ .common, .@"64" } },
132 // file, processed via scripts/syscallhdr.sh.128 .{ .@"var" = "X32", .table = .{ .specific = "arch/x86/entry/syscalls/syscall_64.tbl" }, .abi = &.{ .common, .x32 }, .offset = __X32_SYSCALL_BIT },
133 .table = .{
134 .name = "x86",
135 .enum_name = "X86",
136 .file_path = "arch/x86/entry/syscalls/syscall_32.tbl",
137 .process_file = &processTableBasedArch,
138 .filters = .{
139 .abiCheckParams = null,
140 .fixedName = &fixedName,
141 .isReservedNameOld = null,
142 },
143 .header = null,
144 .extra_values = null,
145 .additional_enum = null,
146 },
147 },
148 .{
149 .table = .{
150 .name = "x64",
151 .enum_name = "X64",
152 .file_path = "arch/x86/entry/syscalls/syscall_64.tbl",
153 .process_file = &processTableBasedArch,
154 .filters = .{
155 // The x32 abi syscalls are always at the end.
156 .abiCheckParams = .{ .abi = "x32", .flow = .@"break" },
157 .fixedName = &fixedName,
158 .isReservedNameOld = null,
159 },
160 .header = null,
161 .extra_values = null,
162 .additional_enum = null,
163 },
164 },
165 .{
166 .table = .{
167 .name = "x32",
168 .enum_name = "X32",
169 .file_path = "arch/x86/entry/syscalls/syscall_64.tbl",
170 .process_file = &processTableBasedArch,
171 .filters = .{
172 .abiCheckParams = .{ .abi = "64", .flow = .@"continue" },
173 .fixedName = &fixedName,
174 .isReservedNameOld = null,
175 },
176 .header = null,
177 .extra_values = null,
178 .additional_enum = null,
179 },
180 },
181 .{
182 .table = .{
183 .name = "arm",
184 .enum_name = "Arm",
185 .file_path = "arch/arm/tools/syscall.tbl",
186 .process_file = &processTableBasedArch,
187 .filters = .{
188 .abiCheckParams = .{ .abi = "oabi", .flow = .@"continue" },
189 .fixedName = &fixedName,
190 .isReservedNameOld = null,
191 },
192 .header = " const arm_base = 0x0f0000;\n\n",
193 // TODO: maybe extract these from arch/arm/include/uapi/asm/unistd.h
194 .extra_values =
195 \\
196 \\ breakpoint = arm_base + 1,
197 \\ cacheflush = arm_base + 2,
198 \\ usr26 = arm_base + 3,
199 \\ usr32 = arm_base + 4,
200 \\ set_tls = arm_base + 5,
201 \\ get_tls = arm_base + 6,
202 \\
203 ,
204 .additional_enum = null,
205 },
206 },
207 .{
208 .table = .{
209 .name = "sparc",
210 .enum_name = "Sparc",
211 .file_path = "arch/sparc/kernel/syscalls/syscall.tbl",
212 .process_file = &processTableBasedArch,
213 .filters = .{
214 .abiCheckParams = .{ .abi = "64", .flow = .@"continue" },
215 .fixedName = &fixedName,
216 .isReservedNameOld = null,
217 },
218 .header = null,
219 .extra_values = null,
220 .additional_enum = null,
221 },
222 },
223 .{129 .{
224 .table = .{130 .@"var" = "Arm",
225 .name = "sparc64",131 .table = .{ .specific = "arch/arm/tools/syscall.tbl" },
226 .enum_name = "Sparc64",132 .abi = &.{ .common, .eabi },
227 .file_path = "arch/sparc/kernel/syscalls/syscall.tbl",133 // These values haven't been brought over from `arch/arm/include/uapi/asm/unistd.h`,
228 .process_file = &processTableBasedArch,134 // so we are forced to add them ourselves.
229 .filters = .{135 .header = " const arm_base = 0x0f0000;\n\n",
230 .abiCheckParams = .{ .abi = "32", .flow = .@"continue" },136 .footer =
231 .fixedName = &fixedName,137 \\
232 .isReservedNameOld = null,138 \\ breakpoint = arm_base + 1,
233 },139 \\ cacheflush = arm_base + 2,
234 .header = null,140 \\ usr26 = arm_base + 3,
235 .extra_values = null,141 \\ usr32 = arm_base + 4,
236 .additional_enum = null,142 \\ set_tls = arm_base + 5,
237 },143 \\ get_tls = arm_base + 6,
238 },144 \\
239 .{145 ,
240 .table = .{
241 .name = "m68k",
242 .enum_name = "M68k",
243 .file_path = "arch/m68k/kernel/syscalls/syscall.tbl",
244 .process_file = &processTableBasedArch,
245 .filters = .{
246 // abi is always common
247 .abiCheckParams = null,
248 .fixedName = &fixedName,
249 .isReservedNameOld = null,
250 },
251 .header = null,
252 .extra_values = null,
253 .additional_enum = null,
254 },
255 },
256 .{
257 .table = .{
258 .name = "mips_o32",
259 .enum_name = "MipsO32",
260 .file_path = "arch/mips/kernel/syscalls/syscall_o32.tbl",
261 .process_file = &processMipsBasedArch,
262 .filters = .{
263 // abi is always o32
264 .abiCheckParams = null,
265 .fixedName = &fixedName,
266 .isReservedNameOld = &isReservedNameOld,
267 },
268 .header = " const linux_base = 4000;\n\n",
269 .extra_values = null,
270 .additional_enum = null,
271 },
272 },
273 .{
274 .table = .{
275 .name = "mips_n64",
276 .enum_name = "MipsN64",
277 .file_path = "arch/mips/kernel/syscalls/syscall_n64.tbl",
278 .process_file = &processMipsBasedArch,
279 .filters = .{
280 // abi is always n64
281 .abiCheckParams = null,
282 .fixedName = &fixedName,
283 .isReservedNameOld = &isReservedNameOld,
284 },
285 .header = " const linux_base = 5000;\n\n",
286 .extra_values = null,
287 .additional_enum = null,
288 },
289 },
290 .{
291 .table = .{
292 .name = "mips_n32",
293 .enum_name = "MipsN32",
294 .file_path = "arch/mips/kernel/syscalls/syscall_n32.tbl",
295 .process_file = &processMipsBasedArch,
296 .filters = .{
297 // abi is always n32
298 .abiCheckParams = null,
299 .fixedName = &fixedName,
300 .isReservedNameOld = &isReservedNameOld,
301 },
302 .header = " const linux_base = 6000;\n\n",
303 .extra_values = null,
304 .additional_enum = null,
305 },
306 },
307 .{
308 .table = .{
309 .name = "powerpc",
310 .enum_name = "PowerPC",
311 .file_path = "arch/powerpc/kernel/syscalls/syscall.tbl",
312 .process_file = &processPowerPcBasedArch,
313 .filters = .{
314 .abiCheckParams = null,
315 .fixedName = null,
316 .isReservedNameOld = null,
317 },
318 .header = null,
319 .extra_values = null,
320 .additional_enum = "PowerPC64",
321 },
322 },
323 .{
324 .table = .{
325 .name = "s390x",
326 .enum_name = "S390x",
327 .file_path = "arch/s390/kernel/syscalls/syscall.tbl",
328 .process_file = &processTableBasedArch,
329 .filters = .{
330 // 32-bit s390 support in linux is deprecated
331 .abiCheckParams = .{ .abi = "32", .flow = .@"continue" },
332 .fixedName = &fixedName,
333 .isReservedNameOld = null,
334 },
335 .header = null,
336 .extra_values = null,
337 .additional_enum = null,
338 },
339 },
340 .{
341 .table = .{
342 .name = "xtensa",
343 .enum_name = "Xtensa",
344 .file_path = "arch/xtensa/kernel/syscalls/syscall.tbl",
345 .process_file = &processTableBasedArch,
346 .filters = .{
347 // abi is always common
348 .abiCheckParams = null,
349 .fixedName = fixedName,
350 .isReservedNameOld = &isReservedNameOld,
351 },
352 .header = null,
353 .extra_values = null,
354 .additional_enum = null,
355 },
356 },
357 .{
358 .preprocessor = .{
359 .name = "arm64",
360 .enum_name = "Arm64",
361 .file_path = "arch/arm64/include/uapi/asm/unistd.h",
362 .child_options = .{
363 .additional_args = null,
364 .target = "aarch64-freestanding-none",
365 },
366 .process_file = &processPreprocessedFile,
367 .header = null,
368 .extra_values = null,
369 .additional_enum = null,
370 },
371 },
372 .{
373 .preprocessor = .{
374 .name = "riscv32",
375 .enum_name = "RiscV32",
376 .file_path = "arch/riscv/include/uapi/asm/unistd.h",
377 .child_options = .{
378 .additional_args = null,
379 .target = "riscv32-freestanding-none",
380 },
381 .process_file = &processPreprocessedFile,
382 .header = null,
383 .extra_values = null,
384 .additional_enum = null,
385 },
386 },
387 .{
388 .preprocessor = .{
389 .name = "riscv64",
390 .enum_name = "RiscV64",
391 .file_path = "arch/riscv/include/uapi/asm/unistd.h",
392 .child_options = .{
393 .additional_args = null,
394 .target = "riscv64-freestanding-none",
395 },
396 .process_file = &processPreprocessedFile,
397 .header = null,
398 .extra_values = null,
399 .additional_enum = null,
400 },
401 },
402 .{
403 .preprocessor = .{
404 .name = "loongarch",
405 .enum_name = "LoongArch64",
406 .file_path = "arch/loongarch/include/uapi/asm/unistd.h",
407 .child_options = .{
408 .additional_args = null,
409 .target = "loongarch64-freestanding-none",
410 },
411 .process_file = &processPreprocessedFile,
412 .header = null,
413 .extra_values = null,
414 .additional_enum = null,
415 },
416 },
417 .{
418 .preprocessor = .{
419 .name = "arc",
420 .enum_name = "Arc",
421 .file_path = "arch/arc/include/uapi/asm/unistd.h",
422 .child_options = .{
423 .additional_args = null,
424 .target = "arc-freestanding-none",
425 },
426 .process_file = &processPreprocessedFile,
427 .header = null,
428 .extra_values = null,
429 .additional_enum = null,
430 },
431 },
432 .{
433 .preprocessor = .{
434 .name = "csky",
435 .enum_name = "CSky",
436 .file_path = "arch/csky/include/uapi/asm/unistd.h",
437 .child_options = .{
438 .additional_args = null,
439 .target = "csky-freestanding-none",
440 },
441 .process_file = &processPreprocessedFile,
442 .header = null,
443 .extra_values = null,
444 .additional_enum = null,
445 },
446 },
447 .{
448 .preprocessor = .{
449 .name = "hexagon",
450 .enum_name = "Hexagon",
451 .file_path = "arch/hexagon/include/uapi/asm/unistd.h",
452 .child_options = .{
453 .additional_args = null,
454 .target = "hexagon-freestanding-none",
455 },
456 .process_file = &processPreprocessedFile,
457 .header = null,
458 .extra_values = null,
459 .additional_enum = null,
460 },
461 },146 },
147 .{ .@"var" = "Sparc", .table = .{ .specific = "arch/sparc/kernel/syscalls/syscall.tbl" }, .abi = &.{ .common, .@"32" } },
148 .{ .@"var" = "Sparc64", .table = .{ .specific = "arch/sparc/kernel/syscalls/syscall.tbl" }, .abi = &.{ .common, .@"64" } },
149 .{ .@"var" = "M68k", .table = .{ .specific = "arch/m68k/kernel/syscalls/syscall.tbl" } },
150 // For Mips, the abi for these tables is always o32/n64/n32.
151 .{ .@"var" = "MipsO32", .table = .{ .specific = "arch/mips/kernel/syscalls/syscall_o32.tbl" }, .offset = __NR_Linux_O32 },
152 .{ .@"var" = "MipsN64", .table = .{ .specific = "arch/mips/kernel/syscalls/syscall_n64.tbl" }, .offset = __NR_Linux_N64 },
153 .{ .@"var" = "MipsN32", .table = .{ .specific = "arch/mips/kernel/syscalls/syscall_n32.tbl" }, .offset = __NR_Linux_N32 },
154 .{ .@"var" = "PowerPC", .table = .{ .specific = "arch/powerpc/kernel/syscalls/syscall.tbl" }, .abi = &.{ .common, .@"32", .nospu } },
155 .{ .@"var" = "PowerPC64", .table = .{ .specific = "arch/powerpc/kernel/syscalls/syscall.tbl" }, .abi = &.{ .common, .@"64", .nospu } },
156 .{ .@"var" = "S390x", .table = .{ .specific = "arch/s390/kernel/syscalls/syscall.tbl" }, .abi = &.{ .common, .@"64" } },
157 .{ .@"var" = "Xtensa", .table = .{ .specific = "arch/xtensa/kernel/syscalls/syscall.tbl" } },
158 .{ .@"var" = "Arm64", .table = .generic, .abi = &.{ .common, .@"64", .renameat, .rlimit, .memfd_secret } },
159 .{ .@"var" = "RiscV32", .table = .generic, .abi = &.{ .common, .@"32", .riscv, .memfd_secret } },
160 .{ .@"var" = "RiscV64", .table = .generic, .abi = &.{ .common, .@"64", .riscv, .rlimit, .memfd_secret } },
161 .{ .@"var" = "LoongArch64", .table = .generic, .abi = &.{ .common, .@"64" } },
162 .{ .@"var" = "Arc", .table = .generic, .abi = &.{ .common, .@"32", .arc, .time32, .renameat, .stat64, .rlimit } },
163 .{ .@"var" = "CSky", .table = .generic, .abi = &.{ .common, .@"32", .csky, .time32, .stat64, .rlimit } },
164 .{ .@"var" = "Hexagon", .table = .generic, .abi = &.{ .common, .@"32", .time32, .stat64, .rlimit, .renameat } },
165 .{ .@"var" = "OpenRisc", .table = .generic, .abi = &.{ .common, .@"32", .or1k, .time32, .stat64, .rlimit, .renameat } },
166 // .{ .@"var" = "Nios2", .table = .generic, .abi = &.{ .common, .@"32", .nios2, .time32, .stat64, .rlimit, .renameat } },
167 // .{ .@"var" = "Parisc", .table = .{ .specific = "arch/parisc/kernel/syscalls/syscall.tbl" }, .abi = &.{ .common, .@"32" } },
168 // .{ .@"var" = "Parisc64", .table = .{ .specific = "arch/parisc/kernel/syscalls/syscall.tbl" }, .abi = &.{ .common, .@"64" } },
169 // .{ .@"var" = "Sh", .table = .{ .specific = "arch/sh/kernel/syscalls/syscall.tbl" } },
170 // .{ .@"var" = "Microblaze", .table = .{ .specific = "arch/microblaze/kernel/syscalls/syscall.tbl" } },
462};171};
463172
464fn processPreprocessedFile(
465 bytes: []const u8,
466 writer: anytype,
467) !void {
468 var lines = mem.tokenizeScalar(u8, bytes, '\n');
469 while (lines.next()) |line| {
470 var fields = mem.tokenizeAny(u8, line, " ");
471 const prefix = fields.next() orelse return error.Incomplete;
472
473 if (!mem.eql(u8, prefix, "zigsyscall")) continue;
474
475 const sys_name = fields.next() orelse return error.Incomplete;
476 const value = fields.rest();
477 const name = (getOverridenNameNew(value) orelse sys_name)["sys_".len..];
478 const fixed_name = if (stdlib_renames_new.get(name)) |f| f else if (stdlib_renames.get(name)) |f| f else name;
479
480 try writer.print(" {f} = {s},\n", .{ zig.fmtId(fixed_name), value });
481 }
482}
483
484fn processTableBasedArch(
485 bytes: []const u8,
486 filters: Filters,
487 writer: anytype,
488 optional_writer: anytype,
489) !void {
490 _ = optional_writer;
491
492 var lines = mem.tokenizeScalar(u8, bytes, '\n');
493 while (lines.next()) |line| {
494 if (line[0] == '#') continue;
495
496 var fields = mem.tokenizeAny(u8, line, " \t");
497 const number = fields.next() orelse return error.Incomplete;
498
499 const abi = fields.next() orelse return error.Incomplete;
500 if (filters.abiCheckParams) |*params| {
501 switch (abiCheck(abi, params)) {
502 .none => {},
503 .@"break" => break,
504 .@"continue" => continue,
505 }
506 }
507 const name = fields.next() orelse return error.Incomplete;
508 if (filters.isReservedNameOld) |isReservedNameOldFn| {
509 if (isReservedNameOldFn(name)) continue;
510 }
511 const fixed_name = if (filters.fixedName) |fixedNameFn| fixedNameFn(name) else name;
512
513 try writer.print(" {f} = {s},\n", .{ zig.fmtId(fixed_name), number });
514 }
515}
516
517fn processMipsBasedArch(
518 bytes: []const u8,
519 filters: Filters,
520 writer: anytype,
521 optional_writer: anytype,
522) !void {
523 _ = optional_writer;
524
525 var lines = mem.tokenizeScalar(u8, bytes, '\n');
526 while (lines.next()) |line| {
527 if (line[0] == '#') continue;
528
529 var fields = mem.tokenizeAny(u8, line, " \t");
530 const number = fields.next() orelse return error.Incomplete;
531
532 const abi = fields.next() orelse return error.Incomplete;
533 if (filters.abiCheckParams) |*params| {
534 switch (abiCheck(abi, params)) {
535 .none => {},
536 .@"break" => break,
537 .@"continue" => continue,
538 }
539 }
540 const name = fields.next() orelse return error.Incomplete;
541 if (filters.isReservedNameOld) |isReservedNameOldFn| {
542 if (isReservedNameOldFn(name)) continue;
543 }
544 const fixed_name = if (filters.fixedName) |fixedNameFn| fixedNameFn(name) else name;
545
546 try writer.print(" {f} = linux_base + {s},\n", .{ zig.fmtId(fixed_name), number });
547 }
548}
549
550fn processPowerPcBasedArch(
551 bytes: []const u8,
552 filters: Filters,
553 writer: anytype,
554 optional_writer: anytype,
555) !void {
556 _ = filters;
557 var lines = mem.tokenizeScalar(u8, bytes, '\n');
558
559 while (lines.next()) |line| {
560 if (line[0] == '#') continue;
561
562 var fields = mem.tokenizeAny(u8, line, " \t");
563 const number = fields.next() orelse return error.Incomplete;
564 const abi = fields.next() orelse return error.Incomplete;
565 const name = fields.next() orelse return error.Incomplete;
566 const fixed_name = if (stdlib_renames.get(name)) |fixed| fixed else name;
567
568 if (mem.eql(u8, abi, "spu")) {
569 continue;
570 } else if (mem.eql(u8, abi, "32")) {
571 try writer.print(" {f} = {s},\n", .{ zig.fmtId(fixed_name), number });
572 } else if (mem.eql(u8, abi, "64")) {
573 try optional_writer.?.print(" {f} = {s},\n", .{ zig.fmtId(fixed_name), number });
574 } else { // common/nospu
575 try writer.print(" {f} = {s},\n", .{ zig.fmtId(fixed_name), number });
576 try optional_writer.?.print(" {f} = {s},\n", .{ zig.fmtId(fixed_name), number });
577 }
578 }
579}
580
581fn generateSyscallsFromTable(
582 allocator: std.mem.Allocator,
583 buf: []u8,
584 linux_dir: std.fs.Dir,
585 writer: anytype,
586 _arch_info: *const ArchInfo,
587) !void {
588 std.debug.assert(_arch_info.* == .table);
589
590 const arch_info = _arch_info.table;
591
592 const table = try linux_dir.readFile(arch_info.file_path, buf);
593
594 var optional_array_list: ?std.array_list.Managed(u8) = if (arch_info.additional_enum) |_| std.array_list.Managed(u8).init(allocator) else null;
595 const optional_writer = if (optional_array_list) |_| optional_array_list.?.writer() else null;
596
597 try writer.print("pub const {s} = enum(usize) {{\n", .{arch_info.enum_name});
598
599 if (arch_info.header) |header| {
600 try writer.writeAll(header);
601 }
602
603 try arch_info.process_file(table, arch_info.filters, writer, optional_writer);
604
605 if (arch_info.extra_values) |extra_values| {
606 try writer.writeAll(extra_values);
607 }
608 try writer.writeAll("};");
609
610 if (arch_info.additional_enum) |additional_enum| {
611 try writer.writeAll("\n\n");
612 try writer.print("pub const {s} = enum(usize) {{\n", .{additional_enum});
613 try writer.writeAll(optional_array_list.?.items);
614 try writer.writeAll("};");
615 }
616}
617
618fn generateSyscallsFromPreprocessor(
619 allocator: std.mem.Allocator,
620 linux_dir: std.fs.Dir,
621 linux_path: []const u8,
622 zig_exe: []const u8,
623 writer: anytype,
624 _arch_info: *const ArchInfo,
625) !void {
626 std.debug.assert(_arch_info.* == .preprocessor);
627
628 const arch_info = _arch_info.preprocessor;
629
630 const child_result = try std.process.Child.run(.{
631 .allocator = allocator,
632 .argv = arch_info.child_options.getArgs(zig_exe, arch_info.file_path),
633 .cwd = linux_path,
634 .cwd_dir = linux_dir,
635 });
636 if (child_result.stderr.len > 0) std.debug.print("{s}\n", .{child_result.stderr});
637
638 const defines = switch (child_result.term) {
639 .Exited => |code| if (code == 0) child_result.stdout else {
640 std.debug.print("zig cc exited with code {d}\n", .{code});
641 std.process.exit(1);
642 },
643 else => {
644 std.debug.print("zig cc crashed\n", .{});
645 std.process.exit(1);
646 },
647 };
648
649 try writer.print("pub const {s} = enum(usize) {{\n", .{arch_info.enum_name});
650 if (arch_info.header) |header| {
651 try writer.writeAll(header);
652 }
653
654 try arch_info.process_file(defines, writer);
655
656 if (arch_info.extra_values) |extra_values| {
657 try writer.writeAll(extra_values);
658 }
659
660 try writer.writeAll("};");
661}
662
663pub fn main() !void {173pub fn main() !void {
664 var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);174 var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
665 defer arena.deinit();175 defer arena.deinit();
666 const allocator = arena.allocator();176 const gpa = arena.allocator();
667177
668 const args = try std.process.argsAlloc(allocator);178 const args = try std.process.argsAlloc(gpa);
669 if (args.len < 3 or mem.eql(u8, args[1], "--help")) {179 if (args.len < 2 or mem.eql(u8, args[1], "--help")) {
670 usage(std.debug.lockStderrWriter(&.{}), args[0]) catch std.process.exit(2);180 usage(std.debug.lockStderrWriter(&.{}), args[0]) catch std.process.exit(2);
671 std.process.exit(1);181 std.process.exit(1);
672 }182 }
673 const zig_exe = args[1];183 const linux_path = args[1];
674 const linux_path = args[2];
675184
676 var stdout_buffer: [2000]u8 = undefined;185 var stdout_buffer: [2048]u8 = undefined;
677 var stdout_writer = std.fs.File.stdout().writerStreaming(&stdout_buffer);186 var stdout_writer = std.fs.File.stdout().writerStreaming(&stdout_buffer);
678 const writer = &stdout_writer.interface;187 const stdout = &stdout_writer.interface;
679188
680 var linux_dir = try std.fs.cwd().openDir(linux_path, .{});189 var linux_dir = try std.fs.cwd().openDir(linux_path, .{});
681 defer linux_dir.close();190 defer linux_dir.close();
682191
683 try writer.writeAll(192 // As of 6.11, the largest table is 24195 bytes.
684 \\// This file is automatically generated.193 // 32k should be enough for now.
194 const buf = try gpa.alloc(u8, 1 << 15);
195 defer gpa.free(buf);
196
197 // Fetch the kernel version from the Makefile variables.
198 const version = blk: {
199 const head = try linux_dir.readFile("Makefile", buf[0..128]);
200 var lines = mem.tokenizeScalar(u8, head, '\n');
201 _ = lines.next(); // Skip SPDX identifier
202
203 var ver = mem.zeroes(std.SemanticVersion);
204 inline for (.{ "major", "minor", "patch" }, .{ "VERSION", "PATCHLEVEL", "SUBLEVEL" }) |field, make_var| {
205 const line = lines.next() orelse @panic("Bad line");
206 const offset = (make_var ++ " = ").len;
207 @field(ver, field) = try std.fmt.parseInt(usize, line[offset..], 10);
208 }
209
210 break :blk ver;
211 };
212
213 try Io.Writer.print(stdout,
214 \\// This file is automatically generated, DO NOT edit it manually.
685 \\// See tools/generate_linux_syscalls.zig for more info.215 \\// See tools/generate_linux_syscalls.zig for more info.
216 \\// This list current as of kernel: {f}
686 \\217 \\
687 \\218 \\
688 );219 , .{version});
689220
690 // As of 5.17.1, the largest table is 23467 bytes.221 for (architectures, 0..) |arch, i| {
691 // 32k should be enough for now.222 const table = try linux_dir.readFile(switch (arch.table) {
692 const buf = try allocator.alloc(u8, 1 << 15);223 .generic => "scripts/syscall.tbl",
693 defer allocator.free(buf);224 .specific => |f| f,
694225 }, buf);
695 inline for (arch_infos, 0..) |arch_info, i| {226
696 switch (arch_info) {227 try Io.Writer.print(stdout, "pub const {s} = enum(usize) {{\n", .{arch.@"var"});
697 .table => try generateSyscallsFromTable(228 if (arch.header) |h|
698 allocator,229 try Io.Writer.writeAll(stdout, h);
699 buf,230
700 linux_dir,231 var lines = mem.tokenizeScalar(u8, table, '\n');
701 writer,232 while (lines.next()) |line| {
702 &arch_info,233 if (line[0] == '#') continue;
703 ),234 if (arch.get(line)) |res| {
704 .preprocessor => try generateSyscallsFromPreprocessor(235 const name, const num = res;
705 allocator,236 const final_name = stdlib_renames.get(name) orelse name;
706 linux_dir,237 try Io.Writer.print(stdout, " {f} = {d},\n", .{ std.zig.fmtId(final_name), num });
707 linux_path,238 }
708 zig_exe,
709 writer,
710 &arch_info,
711 ),
712 }
713 if (i < arch_infos.len - 1) {
714 try writer.writeAll("\n\n");
715 } else {
716 try writer.writeAll("\n");
717 }239 }
240
241 if (arch.footer) |f|
242 try Io.Writer.writeAll(stdout, f);
243 try Io.Writer.writeAll(stdout, "};\n");
244 if (i != architectures.len - 1)
245 try Io.Writer.writeByte(stdout, '\n');
718 }246 }
719247
720 try writer.flush();248 try Io.Writer.flush(stdout);
721}249}
722250
723fn usage(w: *std.io.Writer, arg0: []const u8) std.io.Writer.Error!void {251fn usage(w: *std.io.Writer, arg0: []const u8) std.io.Writer.Error!void {