Define syscall function for linux

This commit is contained in:
Wildan M
2026-04-20 09:09:42 +07:00
parent aa8d1386a9
commit 63f1790b41
7 changed files with 690 additions and 0 deletions
+2
View File
@@ -102,6 +102,8 @@ pub mod sys_select;
pub mod sys_socket;
pub mod sys_stat;
pub mod sys_statvfs;
#[allow(non_upper_case_globals)]
pub mod sys_syscall;
pub mod sys_time;
#[deprecated]
pub mod sys_timeb;
+303
View File
@@ -0,0 +1,303 @@
// Adapted from sc crate: https://github.com/japaric/syscall.rs/blob/master/src/platform/linux-aarch64/nr.rs
// const ([A-Z_\d]+): -> const __NR_\L$1:
pub const __NR_accept: usize = 202;
pub const __NR_accept4: usize = 242;
pub const __NR_acct: usize = 89;
pub const __NR_add_key: usize = 217;
pub const __NR_adjtimex: usize = 171;
pub const __NR_arch_specific_syscall: usize = 244;
pub const __NR_bind: usize = 200;
pub const __NR_bpf: usize = 280;
pub const __NR_brk: usize = 214;
pub const __NR_capget: usize = 90;
pub const __NR_capset: usize = 91;
pub const __NR_chdir: usize = 49;
pub const __NR_chroot: usize = 51;
pub const __NR_clock_adjtime: usize = 266;
pub const __NR_clock_getres: usize = 114;
pub const __NR_clock_gettime: usize = 113;
pub const __NR_clock_nanosleep: usize = 115;
pub const __NR_clock_settime: usize = 112;
pub const __NR_clone: usize = 220;
pub const __NR_clone3: usize = 435;
pub const __NR_close: usize = 57;
pub const __NR_close_range: usize = 436;
pub const __NR_connect: usize = 203;
pub const __NR_copy_file_range: usize = 285;
pub const __NR_delete_module: usize = 106;
pub const __NR_dup: usize = 23;
pub const __NR_dup3: usize = 24;
pub const __NR_epoll_create1: usize = 20;
pub const __NR_epoll_ctl: usize = 21;
pub const __NR_epoll_pwait: usize = 22;
pub const __NR_epoll_pwait2: usize = 441;
pub const __NR_eventfd2: usize = 19;
pub const __NR_execve: usize = 221;
pub const __NR_execveat: usize = 281;
pub const __NR_exit: usize = 93;
pub const __NR_exit_group: usize = 94;
pub const __NR_faccessat: usize = 48;
pub const __NR_faccessat2: usize = 439;
pub const __NR_fadvise64: usize = 223;
pub const __NR_fallocate: usize = 47;
pub const __NR_fanotify_init: usize = 262;
pub const __NR_fanotify_mark: usize = 263;
pub const __NR_fchdir: usize = 50;
pub const __NR_fchmod: usize = 52;
pub const __NR_fchmodat: usize = 53;
pub const __NR_fchown: usize = 55;
pub const __NR_fchownat: usize = 54;
pub const __NR_fcntl: usize = 25;
pub const __NR_fdatasync: usize = 83;
pub const __NR_fgetxattr: usize = 10;
pub const __NR_finit_module: usize = 273;
pub const __NR_flistxattr: usize = 13;
pub const __NR_flock: usize = 32;
pub const __NR_fremovexattr: usize = 16;
pub const __NR_fsconfig: usize = 431;
pub const __NR_fsetxattr: usize = 7;
pub const __NR_fsmount: usize = 432;
pub const __NR_fsopen: usize = 430;
pub const __NR_fspick: usize = 433;
pub const __NR_fstat: usize = 80;
pub const __NR_fstatfs: usize = 44;
pub const __NR_fsync: usize = 82;
pub const __NR_ftruncate: usize = 46;
pub const __NR_futex: usize = 98;
pub const __NR_get_mempolicy: usize = 236;
pub const __NR_get_robust_list: usize = 100;
pub const __NR_getcpu: usize = 168;
pub const __NR_getcwd: usize = 17;
pub const __NR_getdents64: usize = 61;
pub const __NR_getegid: usize = 177;
pub const __NR_geteuid: usize = 175;
pub const __NR_getgid: usize = 176;
pub const __NR_getgroups: usize = 158;
pub const __NR_getitimer: usize = 102;
pub const __NR_getpeername: usize = 205;
pub const __NR_getpgid: usize = 155;
pub const __NR_getpid: usize = 172;
pub const __NR_getppid: usize = 173;
pub const __NR_getpriority: usize = 141;
pub const __NR_getrandom: usize = 278;
pub const __NR_getresgid: usize = 150;
pub const __NR_getresuid: usize = 148;
pub const __NR_getrlimit: usize = 163;
pub const __NR_getrusage: usize = 165;
pub const __NR_getsid: usize = 156;
pub const __NR_getsockname: usize = 204;
pub const __NR_getsockopt: usize = 209;
pub const __NR_gettid: usize = 178;
pub const __NR_gettimeofday: usize = 169;
pub const __NR_getuid: usize = 174;
pub const __NR_getxattr: usize = 8;
pub const __NR_init_module: usize = 105;
pub const __NR_inotify_add_watch: usize = 27;
pub const __NR_inotify_init1: usize = 26;
pub const __NR_inotify_rm_watch: usize = 28;
pub const __NR_io_cancel: usize = 3;
pub const __NR_io_destroy: usize = 1;
pub const __NR_io_getevents: usize = 4;
pub const __NR_io_pgetevents: usize = 292;
pub const __NR_io_setup: usize = 0;
pub const __NR_io_submit: usize = 2;
pub const __NR_io_uring_enter: usize = 426;
pub const __NR_io_uring_register: usize = 427;
pub const __NR_io_uring_setup: usize = 425;
pub const __NR_ioctl: usize = 29;
pub const __NR_ioprio_get: usize = 31;
pub const __NR_ioprio_set: usize = 30;
pub const __NR_kcmp: usize = 272;
pub const __NR_kexec_file_load: usize = 294;
pub const __NR_kexec_load: usize = 104;
pub const __NR_keyctl: usize = 219;
pub const __NR_kill: usize = 129;
pub const __NR_lgetxattr: usize = 9;
pub const __NR_linkat: usize = 37;
pub const __NR_listen: usize = 201;
pub const __NR_listxattr: usize = 11;
pub const __NR_llistxattr: usize = 12;
pub const __NR_lookup_dcookie: usize = 18;
pub const __NR_lremovexattr: usize = 15;
pub const __NR_lseek: usize = 62;
pub const __NR_lsetxattr: usize = 6;
pub const __NR_madvise: usize = 233;
pub const __NR_mbind: usize = 235;
pub const __NR_membarrier: usize = 283;
pub const __NR_memfd_create: usize = 279;
pub const __NR_migrate_pages: usize = 238;
pub const __NR_mincore: usize = 232;
pub const __NR_mkdirat: usize = 34;
pub const __NR_mknodat: usize = 33;
pub const __NR_mlock: usize = 228;
pub const __NR_mlock2: usize = 284;
pub const __NR_mlockall: usize = 230;
pub const __NR_mmap: usize = 222;
pub const __NR_mount: usize = 40;
pub const __NR_mount_setattr: usize = 442;
pub const __NR_move_mount: usize = 429;
pub const __NR_move_pages: usize = 239;
pub const __NR_mprotect: usize = 226;
pub const __NR_mq_getsetattr: usize = 185;
pub const __NR_mq_notify: usize = 184;
pub const __NR_mq_open: usize = 180;
pub const __NR_mq_timedreceive: usize = 183;
pub const __NR_mq_timedsend: usize = 182;
pub const __NR_mq_unlink: usize = 181;
pub const __NR_mremap: usize = 216;
pub const __NR_msgctl: usize = 187;
pub const __NR_msgget: usize = 186;
pub const __NR_msgrcv: usize = 188;
pub const __NR_msgsnd: usize = 189;
pub const __NR_msync: usize = 227;
pub const __NR_munlock: usize = 229;
pub const __NR_munlockall: usize = 231;
pub const __NR_munmap: usize = 215;
pub const __NR_name_to_handle_at: usize = 264;
pub const __NR_nanosleep: usize = 101;
pub const __NR_newfstatat: usize = 79;
pub const __NR_nfsservctl: usize = 42;
pub const __NR_open_by_handle_at: usize = 265;
pub const __NR_open_tree: usize = 428;
pub const __NR_openat: usize = 56;
pub const __NR_openat2: usize = 437;
pub const __NR_perf_event_open: usize = 241;
pub const __NR_personality: usize = 92;
pub const __NR_pidfd_getfd: usize = 438;
pub const __NR_pidfd_open: usize = 434;
pub const __NR_pidfd_send_signal: usize = 424;
pub const __NR_pipe2: usize = 59;
pub const __NR_pivot_root: usize = 41;
pub const __NR_pkey_alloc: usize = 289;
pub const __NR_pkey_free: usize = 290;
pub const __NR_pkey_mprotect: usize = 288;
pub const __NR_ppoll: usize = 73;
pub const __NR_prctl: usize = 167;
pub const __NR_pread64: usize = 67;
pub const __NR_preadv: usize = 69;
pub const __NR_preadv2: usize = 286;
pub const __NR_prlimit64: usize = 261;
pub const __NR_process_madvise: usize = 440;
pub const __NR_process_vm_readv: usize = 270;
pub const __NR_process_vm_writev: usize = 271;
pub const __NR_pselect6: usize = 72;
pub const __NR_ptrace: usize = 117;
pub const __NR_pwrite64: usize = 68;
pub const __NR_pwritev: usize = 70;
pub const __NR_pwritev2: usize = 287;
pub const __NR_quotactl: usize = 60;
pub const __NR_read: usize = 63;
pub const __NR_readahead: usize = 213;
pub const __NR_readlinkat: usize = 78;
pub const __NR_readv: usize = 65;
pub const __NR_reboot: usize = 142;
pub const __NR_recvfrom: usize = 207;
pub const __NR_recvmmsg: usize = 243;
pub const __NR_recvmsg: usize = 212;
pub const __NR_remap_file_pages: usize = 234;
pub const __NR_removexattr: usize = 14;
pub const __NR_renameat: usize = 38;
pub const __NR_renameat2: usize = 276;
pub const __NR_request_key: usize = 218;
pub const __NR_restart_syscall: usize = 128;
pub const __NR_rseq: usize = 293;
pub const __NR_rt_sigaction: usize = 134;
pub const __NR_rt_sigpending: usize = 136;
pub const __NR_rt_sigprocmask: usize = 135;
pub const __NR_rt_sigqueueinfo: usize = 138;
pub const __NR_rt_sigreturn: usize = 139;
pub const __NR_rt_sigsuspend: usize = 133;
pub const __NR_rt_sigtimedwait: usize = 137;
pub const __NR_rt_tgsigqueueinfo: usize = 240;
pub const __NR_sched_get_priority_max: usize = 125;
pub const __NR_sched_get_priority_min: usize = 126;
pub const __NR_sched_getaffinity: usize = 123;
pub const __NR_sched_getattr: usize = 275;
pub const __NR_sched_getparam: usize = 121;
pub const __NR_sched_getscheduler: usize = 120;
pub const __NR_sched_rr_get_interval: usize = 127;
pub const __NR_sched_setaffinity: usize = 122;
pub const __NR_sched_setattr: usize = 274;
pub const __NR_sched_setparam: usize = 118;
pub const __NR_sched_setscheduler: usize = 119;
pub const __NR_sched_yield: usize = 124;
pub const __NR_seccomp: usize = 277;
pub const __NR_semctl: usize = 191;
pub const __NR_semget: usize = 190;
pub const __NR_semop: usize = 193;
pub const __NR_semtimedop: usize = 192;
pub const __NR_sendfile: usize = 71;
pub const __NR_sendmmsg: usize = 269;
pub const __NR_sendmsg: usize = 211;
pub const __NR_sendto: usize = 206;
pub const __NR_set_mempolicy: usize = 237;
pub const __NR_set_robust_list: usize = 99;
pub const __NR_set_tid_address: usize = 96;
pub const __NR_setdomainname: usize = 162;
pub const __NR_setfsgid: usize = 152;
pub const __NR_setfsuid: usize = 151;
pub const __NR_setgid: usize = 144;
pub const __NR_setgroups: usize = 159;
pub const __NR_sethostname: usize = 161;
pub const __NR_setitimer: usize = 103;
pub const __NR_setns: usize = 268;
pub const __NR_setpgid: usize = 154;
pub const __NR_setpriority: usize = 140;
pub const __NR_setregid: usize = 143;
pub const __NR_setresgid: usize = 149;
pub const __NR_setresuid: usize = 147;
pub const __NR_setreuid: usize = 145;
pub const __NR_setrlimit: usize = 164;
pub const __NR_setsid: usize = 157;
pub const __NR_setsockopt: usize = 208;
pub const __NR_settimeofday: usize = 170;
pub const __NR_setuid: usize = 146;
pub const __NR_setxattr: usize = 5;
pub const __NR_shmat: usize = 196;
pub const __NR_shmctl: usize = 195;
pub const __NR_shmdt: usize = 197;
pub const __NR_shmget: usize = 194;
pub const __NR_shutdown: usize = 210;
pub const __NR_sigaltstack: usize = 132;
pub const __NR_signalfd4: usize = 74;
pub const __NR_socket: usize = 198;
pub const __NR_socketpair: usize = 199;
pub const __NR_splice: usize = 76;
pub const __NR_statfs: usize = 43;
pub const __NR_statx: usize = 291;
pub const __NR_swapoff: usize = 225;
pub const __NR_swapon: usize = 224;
pub const __NR_symlinkat: usize = 36;
pub const __NR_sync: usize = 81;
pub const __NR_sync_file_range: usize = 84;
pub const __NR_syncfs: usize = 267;
pub const __NR_syscalls: usize = 443;
pub const __NR_sysinfo: usize = 179;
pub const __NR_syslog: usize = 116;
pub const __NR_tee: usize = 77;
pub const __NR_tgkill: usize = 131;
pub const __NR_timer_create: usize = 107;
pub const __NR_timer_delete: usize = 111;
pub const __NR_timer_getoverrun: usize = 109;
pub const __NR_timer_gettime: usize = 108;
pub const __NR_timer_settime: usize = 110;
pub const __NR_timerfd_create: usize = 85;
pub const __NR_timerfd_gettime: usize = 87;
pub const __NR_timerfd_settime: usize = 86;
pub const __NR_times: usize = 153;
pub const __NR_tkill: usize = 130;
pub const __NR_truncate: usize = 45;
pub const __NR_umask: usize = 166;
pub const __NR_umount2: usize = 39;
pub const __NR_uname: usize = 160;
pub const __NR_unlinkat: usize = 35;
pub const __NR_unshare: usize = 97;
pub const __NR_userfaultfd: usize = 282;
pub const __NR_utimensat: usize = 88;
pub const __NR_vhangup: usize = 58;
pub const __NR_vmsplice: usize = 75;
pub const __NR_wait4: usize = 260;
pub const __NR_waitid: usize = 95;
pub const __NR_write: usize = 64;
pub const __NR_writev: usize = 66;
+8
View File
@@ -0,0 +1,8 @@
# POSIX header spec: https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/sys_statvfs.h.html
#
# Spec quotations relating to includes:
# - "The <sys/statvfs.h> header shall define the fsblkcnt_t and fsfilcnt_t types as described in <sys/types.h>."
sys_includes = ["sys/types.h"]
include_guard = "_SYS_SYSCALL_H"
language = "C"
no_includes = true
+5
View File
@@ -0,0 +1,5 @@
// copied from sc crate
#[cfg(all(target_os = "linux", target_arch = "aarch64"))]
pub mod aarch64;
#[cfg(all(target_os = "linux", target_arch = "x86_64"))]
pub mod x86_64;
+356
View File
@@ -0,0 +1,356 @@
// Adapted from sc crate: https://github.com/japaric/syscall.rs/blob/master/src/platform/linux-x86_64/nr.rs
// const ([A-Z_\d]+): -> const __NR_\L$1:
pub const __NR_accept: usize = 43;
pub const __NR_accept4: usize = 288;
pub const __NR_access: usize = 21;
pub const __NR_acct: usize = 163;
pub const __NR_add_key: usize = 248;
pub const __NR_adjtimex: usize = 159;
pub const __NR_afs_syscall: usize = 183;
pub const __NR_alarm: usize = 37;
pub const __NR_arch_prctl: usize = 158;
pub const __NR_bind: usize = 49;
pub const __NR_bpf: usize = 321;
pub const __NR_brk: usize = 12;
pub const __NR_capget: usize = 125;
pub const __NR_capset: usize = 126;
pub const __NR_chdir: usize = 80;
pub const __NR_chmod: usize = 90;
pub const __NR_chown: usize = 92;
pub const __NR_chroot: usize = 161;
pub const __NR_clock_adjtime: usize = 305;
pub const __NR_clock_getres: usize = 229;
pub const __NR_clock_gettime: usize = 228;
pub const __NR_clock_nanosleep: usize = 230;
pub const __NR_clock_settime: usize = 227;
pub const __NR_clone: usize = 56;
pub const __NR_clone3: usize = 435;
pub const __NR_close: usize = 3;
pub const __NR_close_range: usize = 436;
pub const __NR_connect: usize = 42;
pub const __NR_copy_file_range: usize = 326;
pub const __NR_creat: usize = 85;
pub const __NR_create_module: usize = 174;
pub const __NR_delete_module: usize = 176;
pub const __NR_dup: usize = 32;
pub const __NR_dup2: usize = 33;
pub const __NR_dup3: usize = 292;
pub const __NR_epoll_create: usize = 213;
pub const __NR_epoll_create1: usize = 291;
pub const __NR_epoll_ctl: usize = 233;
pub const __NR_epoll_ctl_old: usize = 214;
pub const __NR_epoll_pwait: usize = 281;
pub const __NR_epoll_pwait2: usize = 441;
pub const __NR_epoll_wait: usize = 232;
pub const __NR_epoll_wait_old: usize = 215;
pub const __NR_eventfd: usize = 284;
pub const __NR_eventfd2: usize = 290;
pub const __NR_execve: usize = 59;
pub const __NR_execveat: usize = 322;
pub const __NR_exit: usize = 60;
pub const __NR_exit_group: usize = 231;
pub const __NR_faccessat: usize = 269;
pub const __NR_faccessat2: usize = 439;
pub const __NR_fadvise64: usize = 221;
pub const __NR_fallocate: usize = 285;
pub const __NR_fanotify_init: usize = 300;
pub const __NR_fanotify_mark: usize = 301;
pub const __NR_fchdir: usize = 81;
pub const __NR_fchmod: usize = 91;
pub const __NR_fchmodat: usize = 268;
pub const __NR_fchown: usize = 93;
pub const __NR_fchownat: usize = 260;
pub const __NR_fcntl: usize = 72;
pub const __NR_fdatasync: usize = 75;
pub const __NR_fgetxattr: usize = 193;
pub const __NR_finit_module: usize = 313;
pub const __NR_flistxattr: usize = 196;
pub const __NR_flock: usize = 73;
pub const __NR_fork: usize = 57;
pub const __NR_fremovexattr: usize = 199;
pub const __NR_fsconfig: usize = 431;
pub const __NR_fsetxattr: usize = 190;
pub const __NR_fsmount: usize = 432;
pub const __NR_fsopen: usize = 430;
pub const __NR_fspick: usize = 433;
pub const __NR_fstat: usize = 5;
pub const __NR_fstatfs: usize = 138;
pub const __NR_fsync: usize = 74;
pub const __NR_ftruncate: usize = 77;
pub const __NR_futex: usize = 202;
pub const __NR_futimesat: usize = 261;
pub const __NR_get_kernel_syms: usize = 177;
pub const __NR_get_mempolicy: usize = 239;
pub const __NR_get_robust_list: usize = 274;
pub const __NR_get_thread_area: usize = 211;
pub const __NR_getcpu: usize = 309;
pub const __NR_getcwd: usize = 79;
pub const __NR_getdents: usize = 78;
pub const __NR_getdents64: usize = 217;
pub const __NR_getegid: usize = 108;
pub const __NR_geteuid: usize = 107;
pub const __NR_getgid: usize = 104;
pub const __NR_getgroups: usize = 115;
pub const __NR_getitimer: usize = 36;
pub const __NR_getpeername: usize = 52;
pub const __NR_getpgid: usize = 121;
pub const __NR_getpgrp: usize = 111;
pub const __NR_getpid: usize = 39;
pub const __NR_getpmsg: usize = 181;
pub const __NR_getppid: usize = 110;
pub const __NR_getpriority: usize = 140;
pub const __NR_getrandom: usize = 318;
pub const __NR_getresgid: usize = 120;
pub const __NR_getresuid: usize = 118;
pub const __NR_getrlimit: usize = 97;
pub const __NR_getrusage: usize = 98;
pub const __NR_getsid: usize = 124;
pub const __NR_getsockname: usize = 51;
pub const __NR_getsockopt: usize = 55;
pub const __NR_gettid: usize = 186;
pub const __NR_gettimeofday: usize = 96;
pub const __NR_getuid: usize = 102;
pub const __NR_getxattr: usize = 191;
pub const __NR_init_module: usize = 175;
pub const __NR_inotify_add_watch: usize = 254;
pub const __NR_inotify_init: usize = 253;
pub const __NR_inotify_init1: usize = 294;
pub const __NR_inotify_rm_watch: usize = 255;
pub const __NR_io_cancel: usize = 210;
pub const __NR_io_destroy: usize = 207;
pub const __NR_io_getevents: usize = 208;
pub const __NR_io_pgetevents: usize = 333;
pub const __NR_io_setup: usize = 206;
pub const __NR_io_submit: usize = 209;
pub const __NR_io_uring_enter: usize = 426;
pub const __NR_io_uring_register: usize = 427;
pub const __NR_io_uring_setup: usize = 425;
pub const __NR_ioctl: usize = 16;
pub const __NR_ioperm: usize = 173;
pub const __NR_iopl: usize = 172;
pub const __NR_ioprio_get: usize = 252;
pub const __NR_ioprio_set: usize = 251;
pub const __NR_kcmp: usize = 312;
pub const __NR_kexec_file_load: usize = 320;
pub const __NR_kexec_load: usize = 246;
pub const __NR_keyctl: usize = 250;
pub const __NR_kill: usize = 62;
pub const __NR_lchown: usize = 94;
pub const __NR_lgetxattr: usize = 192;
pub const __NR_link: usize = 86;
pub const __NR_linkat: usize = 265;
pub const __NR_listen: usize = 50;
pub const __NR_listxattr: usize = 194;
pub const __NR_llistxattr: usize = 195;
pub const __NR_lookup_dcookie: usize = 212;
pub const __NR_lremovexattr: usize = 198;
pub const __NR_lseek: usize = 8;
pub const __NR_lsetxattr: usize = 189;
pub const __NR_lstat: usize = 6;
pub const __NR_madvise: usize = 28;
pub const __NR_mbind: usize = 237;
pub const __NR_membarrier: usize = 324;
pub const __NR_memfd_create: usize = 319;
pub const __NR_migrate_pages: usize = 256;
pub const __NR_mincore: usize = 27;
pub const __NR_mkdir: usize = 83;
pub const __NR_mkdirat: usize = 258;
pub const __NR_mknod: usize = 133;
pub const __NR_mknodat: usize = 259;
pub const __NR_mlock: usize = 149;
pub const __NR_mlock2: usize = 325;
pub const __NR_mlockall: usize = 151;
pub const __NR_mmap: usize = 9;
pub const __NR_modify_ldt: usize = 154;
pub const __NR_mount: usize = 165;
pub const __NR_mount_setattr: usize = 442;
pub const __NR_move_mount: usize = 429;
pub const __NR_move_pages: usize = 279;
pub const __NR_mprotect: usize = 10;
pub const __NR_mq_getsetattr: usize = 245;
pub const __NR_mq_notify: usize = 244;
pub const __NR_mq_open: usize = 240;
pub const __NR_mq_timedreceive: usize = 243;
pub const __NR_mq_timedsend: usize = 242;
pub const __NR_mq_unlink: usize = 241;
pub const __NR_mremap: usize = 25;
pub const __NR_msgctl: usize = 71;
pub const __NR_msgget: usize = 68;
pub const __NR_msgrcv: usize = 70;
pub const __NR_msgsnd: usize = 69;
pub const __NR_msync: usize = 26;
pub const __NR_munlock: usize = 150;
pub const __NR_munlockall: usize = 152;
pub const __NR_munmap: usize = 11;
pub const __NR_name_to_handle_at: usize = 303;
pub const __NR_nanosleep: usize = 35;
pub const __NR_newfstatat: usize = 262;
pub const __NR_nfsservctl: usize = 180;
pub const __NR_open: usize = 2;
pub const __NR_open_by_handle_at: usize = 304;
pub const __NR_open_tree: usize = 428;
pub const __NR_openat: usize = 257;
pub const __NR_openat2: usize = 437;
pub const __NR_pause: usize = 34;
pub const __NR_perf_event_open: usize = 298;
pub const __NR_personality: usize = 135;
pub const __NR_pidfd_getfd: usize = 438;
pub const __NR_pidfd_open: usize = 434;
pub const __NR_pidfd_send_signal: usize = 424;
pub const __NR_pipe: usize = 22;
pub const __NR_pipe2: usize = 293;
pub const __NR_pivot_root: usize = 155;
pub const __NR_pkey_alloc: usize = 330;
pub const __NR_pkey_free: usize = 331;
pub const __NR_pkey_mprotect: usize = 329;
pub const __NR_poll: usize = 7;
pub const __NR_ppoll: usize = 271;
pub const __NR_prctl: usize = 157;
pub const __NR_pread64: usize = 17;
pub const __NR_preadv: usize = 295;
pub const __NR_preadv2: usize = 327;
pub const __NR_prlimit64: usize = 302;
pub const __NR_process_madvise: usize = 440;
pub const __NR_process_vm_readv: usize = 310;
pub const __NR_process_vm_writev: usize = 311;
pub const __NR_pselect6: usize = 270;
pub const __NR_ptrace: usize = 101;
pub const __NR_putpmsg: usize = 182;
pub const __NR_pwrite64: usize = 18;
pub const __NR_pwritev: usize = 296;
pub const __NR_pwritev2: usize = 328;
pub const __NR_query_module: usize = 178;
pub const __NR_quotactl: usize = 179;
pub const __NR_read: usize = 0;
pub const __NR_readahead: usize = 187;
pub const __NR_readlink: usize = 89;
pub const __NR_readlinkat: usize = 267;
pub const __NR_readv: usize = 19;
pub const __NR_reboot: usize = 169;
pub const __NR_recvfrom: usize = 45;
pub const __NR_recvmmsg: usize = 299;
pub const __NR_recvmsg: usize = 47;
pub const __NR_remap_file_pages: usize = 216;
pub const __NR_removexattr: usize = 197;
pub const __NR_rename: usize = 82;
pub const __NR_renameat: usize = 264;
pub const __NR_renameat2: usize = 316;
pub const __NR_request_key: usize = 249;
pub const __NR_restart_syscall: usize = 219;
pub const __NR_rmdir: usize = 84;
pub const __NR_rseq: usize = 334;
pub const __NR_rt_sigaction: usize = 13;
pub const __NR_rt_sigpending: usize = 127;
pub const __NR_rt_sigprocmask: usize = 14;
pub const __NR_rt_sigqueueinfo: usize = 129;
pub const __NR_rt_sigreturn: usize = 15;
pub const __NR_rt_sigsuspend: usize = 130;
pub const __NR_rt_sigtimedwait: usize = 128;
pub const __NR_rt_tgsigqueueinfo: usize = 297;
pub const __NR_sched_get_priority_max: usize = 146;
pub const __NR_sched_get_priority_min: usize = 147;
pub const __NR_sched_getaffinity: usize = 204;
pub const __NR_sched_getattr: usize = 315;
pub const __NR_sched_getparam: usize = 143;
pub const __NR_sched_getscheduler: usize = 145;
pub const __NR_sched_rr_get_interval: usize = 148;
pub const __NR_sched_setaffinity: usize = 203;
pub const __NR_sched_setattr: usize = 314;
pub const __NR_sched_setparam: usize = 142;
pub const __NR_sched_setscheduler: usize = 144;
pub const __NR_sched_yield: usize = 24;
pub const __NR_seccomp: usize = 317;
pub const __NR_security: usize = 185;
pub const __NR_select: usize = 23;
pub const __NR_semctl: usize = 66;
pub const __NR_semget: usize = 64;
pub const __NR_semop: usize = 65;
pub const __NR_semtimedop: usize = 220;
pub const __NR_sendfile: usize = 40;
pub const __NR_sendmmsg: usize = 307;
pub const __NR_sendmsg: usize = 46;
pub const __NR_sendto: usize = 44;
pub const __NR_set_mempolicy: usize = 238;
pub const __NR_set_robust_list: usize = 273;
pub const __NR_set_thread_area: usize = 205;
pub const __NR_set_tid_address: usize = 218;
pub const __NR_setdomainname: usize = 171;
pub const __NR_setfsgid: usize = 123;
pub const __NR_setfsuid: usize = 122;
pub const __NR_setgid: usize = 106;
pub const __NR_setgroups: usize = 116;
pub const __NR_sethostname: usize = 170;
pub const __NR_setitimer: usize = 38;
pub const __NR_setns: usize = 308;
pub const __NR_setpgid: usize = 109;
pub const __NR_setpriority: usize = 141;
pub const __NR_setregid: usize = 114;
pub const __NR_setresgid: usize = 119;
pub const __NR_setresuid: usize = 117;
pub const __NR_setreuid: usize = 113;
pub const __NR_setrlimit: usize = 160;
pub const __NR_setsid: usize = 112;
pub const __NR_setsockopt: usize = 54;
pub const __NR_settimeofday: usize = 164;
pub const __NR_setuid: usize = 105;
pub const __NR_setxattr: usize = 188;
pub const __NR_shmat: usize = 30;
pub const __NR_shmctl: usize = 31;
pub const __NR_shmdt: usize = 67;
pub const __NR_shmget: usize = 29;
pub const __NR_shutdown: usize = 48;
pub const __NR_sigaltstack: usize = 131;
pub const __NR_signalfd: usize = 282;
pub const __NR_signalfd4: usize = 289;
pub const __NR_socket: usize = 41;
pub const __NR_socketpair: usize = 53;
pub const __NR_splice: usize = 275;
pub const __NR_stat: usize = 4;
pub const __NR_statfs: usize = 137;
pub const __NR_statx: usize = 332;
pub const __NR_swapoff: usize = 168;
pub const __NR_swapon: usize = 167;
pub const __NR_symlink: usize = 88;
pub const __NR_symlinkat: usize = 266;
pub const __NR_sync: usize = 162;
pub const __NR_sync_file_range: usize = 277;
pub const __NR_syncfs: usize = 306;
pub const __NR_sysfs: usize = 139;
pub const __NR_sysinfo: usize = 99;
pub const __NR_syslog: usize = 103;
pub const __NR_tee: usize = 276;
pub const __NR_tgkill: usize = 234;
pub const __NR_time: usize = 201;
pub const __NR_timer_create: usize = 222;
pub const __NR_timer_delete: usize = 226;
pub const __NR_timer_getoverrun: usize = 225;
pub const __NR_timer_gettime: usize = 224;
pub const __NR_timer_settime: usize = 223;
pub const __NR_timerfd_create: usize = 283;
pub const __NR_timerfd_gettime: usize = 287;
pub const __NR_timerfd_settime: usize = 286;
pub const __NR_times: usize = 100;
pub const __NR_tkill: usize = 200;
pub const __NR_truncate: usize = 76;
pub const __NR_tuxcall: usize = 184;
pub const __NR_umask: usize = 95;
pub const __NR_umount2: usize = 166;
pub const __NR_uname: usize = 63;
pub const __NR_unlink: usize = 87;
pub const __NR_unlinkat: usize = 263;
pub const __NR_unshare: usize = 272;
pub const __NR_uselib: usize = 134;
pub const __NR_userfaultfd: usize = 323;
pub const __NR_ustat: usize = 136;
pub const __NR_utime: usize = 132;
pub const __NR_utimensat: usize = 280;
pub const __NR_utimes: usize = 235;
pub const __NR_vfork: usize = 58;
pub const __NR_vhangup: usize = 153;
pub const __NR_vmsplice: usize = 278;
pub const __NR_vserver: usize = 236;
pub const __NR_wait4: usize = 61;
pub const __NR_waitid: usize = 247;
pub const __NR_write: usize = 1;
pub const __NR_writev: usize = 20;
+2
View File
@@ -54,6 +54,8 @@ mod brk;
mod getopt;
mod getpass;
mod pathconf;
#[cfg(target_os = "linux")]
pub mod syscall;
mod sysconf;
pub const F_OK: c_int = 0;
+14
View File
@@ -0,0 +1,14 @@
use crate::platform::types::c_long;
/// Non-POSIX, see <https://www.man7.org/linux/man-pages/man3/getopt.3.html>.
#[unsafe(no_mangle)]
pub unsafe extern "C" fn syscall(sysno: c_long, mut args: ...) -> c_long {
let a1 = unsafe { args.arg::<usize>() };
let a2 = unsafe { args.arg::<usize>() };
let a3 = unsafe { args.arg::<usize>() };
let a4 = unsafe { args.arg::<usize>() };
let a5 = unsafe { args.arg::<usize>() };
let a6 = unsafe { args.arg::<usize>() };
(unsafe { sc::syscall6(sysno as usize, a1, a2, a3, a4, a5, a6) }) as c_long
}