From b1fa65b9c9f60a320709e0f3a6d66dc96ade7031 Mon Sep 17 00:00:00 2001 From: Harry Chen Date: Sun, 7 Apr 2019 18:04:28 +0800 Subject: [PATCH] Use syscall from MIPS o32 ABI, read boot command line in dts from Signed-off-by: Harry Chen --- kernel/Makefile | 4 +- kernel/src/arch/mipsel/board/malta/device.dts | 1 + kernel/src/arch/mipsel/syscall.rs | 707 +++++++++--------- user | 2 +- 4 files changed, 378 insertions(+), 336 deletions(-) diff --git a/kernel/Makefile b/kernel/Makefile index 8d7fc9e..9466a82 100644 --- a/kernel/Makefile +++ b/kernel/Makefile @@ -262,7 +262,9 @@ sym: ### device tree process ### %.dtb: %.dts - $(dtc) -I dts -O dtb -o $@ $< + @echo Generating device tree file $@ + @$(dtc) -I dts -O dtb -o $@ $< + @rm -rf src/arch/${arch}/boot/dtb.gen.s ### bootloader and kernel image ### diff --git a/kernel/src/arch/mipsel/board/malta/device.dts b/kernel/src/arch/mipsel/board/malta/device.dts index ddaaa72..bbe1e66 100644 --- a/kernel/src/arch/mipsel/board/malta/device.dts +++ b/kernel/src/arch/mipsel/board/malta/device.dts @@ -9,6 +9,7 @@ chosen { stdio = &uart2; + bootargs = "rust/sh"; }; aliases { }; diff --git a/kernel/src/arch/mipsel/syscall.rs b/kernel/src/arch/mipsel/syscall.rs index 5a32fb4..7e1144f 100644 --- a/kernel/src/arch/mipsel/syscall.rs +++ b/kernel/src/arch/mipsel/syscall.rs @@ -3,7 +3,7 @@ extern crate paste; -pub const MIPS_SYSCALL_OFFSET: usize = 6000; +pub const MIPS_SYSCALL_OFFSET: usize = 4000; macro_rules! define_syscall { ($name: ident, $id: expr) => { @@ -13,339 +13,378 @@ macro_rules! define_syscall { }; } -define_syscall!(READ, 0); -define_syscall!(WRITE, 1); -define_syscall!(OPEN, 2); -define_syscall!(CLOSE, 3); -define_syscall!(STAT, 4); -define_syscall!(FSTAT, 5); -define_syscall!(LSTAT, 6); -define_syscall!(POLL, 7); -define_syscall!(LSEEK, 8); -define_syscall!(MMAP, 9); -define_syscall!(MPROTECT, 10); -define_syscall!(MUNMAP, 11); -define_syscall!(BRK, 12); -define_syscall!(RT_SIGACTION, 13); -define_syscall!(RT_SIGPROCMASK, 14); -define_syscall!(IOCTL, 15); -define_syscall!(PREAD64, 16); -define_syscall!(PWRITE64, 17); -define_syscall!(READV, 18); -define_syscall!(WRITEV, 19); -define_syscall!(ACCESS, 20); -define_syscall!(PIPE, 21); -define_syscall!(_NEWSELECT, 22); -define_syscall!(SCHED_YIELD, 23); -define_syscall!(MREMAP, 24); -define_syscall!(MSYNC, 25); -define_syscall!(MINCORE, 26); -define_syscall!(MADVISE, 27); -define_syscall!(SHMGET, 28); -define_syscall!(SHMAT, 29); -define_syscall!(SHMCTL, 30); -define_syscall!(DUP, 31); -define_syscall!(DUP2, 32); -define_syscall!(PAUSE, 33); -define_syscall!(NANOSLEEP, 34); -define_syscall!(GETITIMER, 35); -define_syscall!(SETITIMER, 36); -define_syscall!(ALARM, 37); -define_syscall!(GETPID, 38); -define_syscall!(SENDFILE, 39); -define_syscall!(SOCKET, 40); -define_syscall!(CONNECT, 41); -define_syscall!(ACCEPT, 42); -define_syscall!(SENDTO, 43); -define_syscall!(RECVFROM, 44); -define_syscall!(SENDMSG, 45); -define_syscall!(RECVMSG, 46); -define_syscall!(SHUTDOWN, 47); -define_syscall!(BIND, 48); -define_syscall!(LISTEN, 49); -define_syscall!(GETSOCKNAME, 50); -define_syscall!(GETPEERNAME, 51); -define_syscall!(SOCKETPAIR, 52); -define_syscall!(SETSOCKOPT, 53); -define_syscall!(GETSOCKOPT, 54); -define_syscall!(CLONE, 55); -define_syscall!(FORK, 56); -define_syscall!(EXECVE, 57); -define_syscall!(EXIT, 58); -define_syscall!(WAIT4, 59); -define_syscall!(KILL, 60); -define_syscall!(UNAME, 61); -define_syscall!(SEMGET, 62); -define_syscall!(SEMOP, 63); -define_syscall!(SEMCTL, 64); -define_syscall!(SHMDT, 65); -define_syscall!(MSGGET, 66); -define_syscall!(MSGSND, 67); -define_syscall!(MSGRCV, 68); -define_syscall!(MSGCTL, 69); -define_syscall!(FCNTL, 70); -define_syscall!(FLOCK, 71); -define_syscall!(FSYNC, 72); -define_syscall!(FDATASYNC, 73); -define_syscall!(TRUNCATE, 74); -define_syscall!(FTRUNCATE, 75); -define_syscall!(GETDENTS, 76); -define_syscall!(GETCWD, 77); -define_syscall!(CHDIR, 78); -define_syscall!(FCHDIR, 79); -define_syscall!(RENAME, 80); -define_syscall!(MKDIR, 81); -define_syscall!(RMDIR, 82); -define_syscall!(CREAT, 83); -define_syscall!(LINK, 84); -define_syscall!(UNLINK, 85); -define_syscall!(SYMLINK, 86); -define_syscall!(READLINK, 87); -define_syscall!(CHMOD, 88); -define_syscall!(FCHMOD, 89); -define_syscall!(CHOWN, 90); -define_syscall!(FCHOWN, 91); -define_syscall!(LCHOWN, 92); -define_syscall!(UMASK, 93); -define_syscall!(GETTIMEOFDAY, 94); -define_syscall!(GETRLIMIT, 95); -define_syscall!(GETRUSAGE, 96); -define_syscall!(SYSINFO, 97); -define_syscall!(TIMES, 98); -define_syscall!(PTRACE, 99); -define_syscall!(GETUID, 100); -define_syscall!(SYSLOG, 101); -define_syscall!(GETGID, 102); -define_syscall!(SETUID, 103); -define_syscall!(SETGID, 104); -define_syscall!(GETEUID, 105); -define_syscall!(GETEGID, 106); -define_syscall!(SETPGID, 107); -define_syscall!(GETPPID, 108); -define_syscall!(GETPGRP, 109); -define_syscall!(SETSID, 110); -define_syscall!(SETREUID, 111); -define_syscall!(SETREGID, 112); -define_syscall!(GETGROUPS, 113); -define_syscall!(SETGROUPS, 114); -define_syscall!(SETRESUID, 115); -define_syscall!(GETRESUID, 116); -define_syscall!(SETRESGID, 117); -define_syscall!(GETRESGID, 118); -define_syscall!(GETPGID, 119); -define_syscall!(SETFSUID, 120); -define_syscall!(SETFSGID, 121); -define_syscall!(GETSID, 122); -define_syscall!(CAPGET, 123); -define_syscall!(CAPSET, 124); -define_syscall!(RT_SIGPENDING, 125); -define_syscall!(RT_SIGTIMEDWAIT, 126); -define_syscall!(RT_SIGQUEUEINFO, 127); -define_syscall!(RT_SIGSUSPEND, 128); -define_syscall!(SIGALTSTACK, 129); -define_syscall!(UTIME, 130); -define_syscall!(MKNOD, 131); -define_syscall!(PERSONALITY, 132); -define_syscall!(USTAT, 133); -define_syscall!(STATFS, 134); -define_syscall!(FSTATFS, 135); -define_syscall!(SYSFS, 136); -define_syscall!(GETPRIORITY, 137); -define_syscall!(SETPRIORITY, 138); -define_syscall!(SCHED_SETPARAM, 139); -define_syscall!(SCHED_GETPARAM, 140); -define_syscall!(SCHED_SETSCHEDULER, 141); -define_syscall!(SCHED_GETSCHEDULER, 142); -define_syscall!(SCHED_GET_PRIORITY_MAX, 143); -define_syscall!(SCHED_GET_PRIORITY_MIN, 144); -define_syscall!(SCHED_RR_GET_INTERVAL, 145); -define_syscall!(MLOCK, 146); -define_syscall!(MUNLOCK, 147); -define_syscall!(MLOCKALL, 148); -define_syscall!(MUNLOCKALL, 149); -define_syscall!(VHANGUP, 150); -define_syscall!(PIVOT_ROOT, 151); -define_syscall!(_SYSCTL, 152); -define_syscall!(PRCTL, 153); -define_syscall!(ADJTIMEX, 154); -define_syscall!(SETRLIMIT, 155); -define_syscall!(CHROOT, 156); -define_syscall!(SYNC, 157); -define_syscall!(ACCT, 158); -define_syscall!(SETTIMEOFDAY, 159); -define_syscall!(MOUNT, 160); -define_syscall!(UMOUNT2, 161); -define_syscall!(SWAPON, 162); -define_syscall!(SWAPOFF, 163); -define_syscall!(REBOOT, 164); -define_syscall!(SETHOSTNAME, 165); -define_syscall!(SETDOMAINNAME, 166); -define_syscall!(CREATE_MODULE, 167); -define_syscall!(INIT_MODULE, 168); -define_syscall!(DELETE_MODULE, 169); -define_syscall!(GET_KERNEL_SYMS, 170); -define_syscall!(QUERY_MODULE, 171); -define_syscall!(QUOTACTL, 172); -define_syscall!(NFSSERVCTL, 173); -define_syscall!(GETPMSG, 174); -define_syscall!(PUTPMSG, 175); -define_syscall!(AFS_SYSCALL, 176); -define_syscall!(RESERVED177, 177); -define_syscall!(GETTID, 178); -define_syscall!(READAHEAD, 179); -define_syscall!(SETXATTR, 180); -define_syscall!(LSETXATTR, 181); -define_syscall!(FSETXATTR, 182); -define_syscall!(GETXATTR, 183); -define_syscall!(LGETXATTR, 184); -define_syscall!(FGETXATTR, 185); -define_syscall!(LISTXATTR, 186); -define_syscall!(LLISTXATTR, 187); -define_syscall!(FLISTXATTR, 188); -define_syscall!(REMOVEXATTR, 189); -define_syscall!(LREMOVEXATTR, 190); -define_syscall!(FREMOVEXATTR, 191); -define_syscall!(TKILL, 192); -define_syscall!(RESERVED193, 193); -define_syscall!(FUTEX, 194); -define_syscall!(SCHED_SETAFFINITY, 195); -define_syscall!(SCHED_GETAFFINITY, 196); -define_syscall!(CACHEFLUSH, 197); -define_syscall!(CACHECTL, 198); -define_syscall!(SYSMIPS, 199); -define_syscall!(IO_SETUP, 200); -define_syscall!(IO_DESTROY, 201); -define_syscall!(IO_GETEVENTS, 202); -define_syscall!(IO_SUBMIT, 203); -define_syscall!(IO_CANCEL, 204); -define_syscall!(EXIT_GROUP, 205); -define_syscall!(LOOKUP_DCOOKIE, 206); -define_syscall!(EPOLL_CREATE, 207); -define_syscall!(EPOLL_CTL, 208); -define_syscall!(EPOLL_WAIT, 209); -define_syscall!(REMAP_FILE_PAGES, 210); -define_syscall!(RT_SIGRETURN, 211); -define_syscall!(FCNTL64, 212); -define_syscall!(SET_TID_ADDRESS, 213); -define_syscall!(RESTART_SYSCALL, 214); -define_syscall!(SEMTIMEDOP, 215); -define_syscall!(FADVISE64, 216); -define_syscall!(STATFS64, 217); -define_syscall!(FSTATFS64, 218); -define_syscall!(SENDFILE64, 219); -define_syscall!(TIMER_CREATE, 220); -define_syscall!(TIMER_SETTIME, 221); -define_syscall!(TIMER_GETTIME, 222); -define_syscall!(TIMER_GETOVERRUN, 223); -define_syscall!(TIMER_DELETE, 224); -define_syscall!(CLOCK_SETTIME, 225); -define_syscall!(CLOCK_GETTIME, 226); -define_syscall!(CLOCK_GETRES, 227); -define_syscall!(CLOCK_NANOSLEEP, 228); -define_syscall!(TGKILL, 229); -define_syscall!(UTIMES, 230); -define_syscall!(MBIND, 231); -define_syscall!(GET_MEMPOLICY, 232); -define_syscall!(SET_MEMPOLICY, 233); -define_syscall!(MQ_OPEN, 234); -define_syscall!(MQ_UNLINK, 235); -define_syscall!(MQ_TIMEDSEND, 236); -define_syscall!(MQ_TIMEDRECEIVE, 237); -define_syscall!(MQ_NOTIFY, 238); -define_syscall!(MQ_GETSETATTR, 239); -define_syscall!(VSERVER, 240); -define_syscall!(WAITID, 241); -define_syscall!(SYS_SETALTROOT, 242); -define_syscall!(ADD_KEY, 243); -define_syscall!(REQUEST_KEY, 244); -define_syscall!(KEYCTL, 245); -define_syscall!(SET_THREAD_AREA, 246); -define_syscall!(INOTIFY_INIT, 247); -define_syscall!(INOTIFY_ADD_WATCH, 248); -define_syscall!(INOTIFY_RM_WATCH, 249); -define_syscall!(MIGRATE_PAGES, 250); -define_syscall!(OPENAT, 251); -define_syscall!(MKDIRAT, 252); -define_syscall!(MKNODAT, 253); -define_syscall!(FCHOWNAT, 254); -define_syscall!(FUTIMESAT, 255); -define_syscall!(NEWFSTATAT, 256); -define_syscall!(UNLINKAT, 257); -define_syscall!(RENAMEAT, 258); -define_syscall!(LINKAT, 259); -define_syscall!(SYMLINKAT, 260); -define_syscall!(READLINKAT, 261); -define_syscall!(FCHMODAT, 262); -define_syscall!(FACCESSAT, 263); -define_syscall!(PSELECT6, 264); -define_syscall!(PPOLL, 265); -define_syscall!(UNSHARE, 266); -define_syscall!(SPLICE, 267); -define_syscall!(SYNC_FILE_RANGE, 268); -define_syscall!(TEE, 269); -define_syscall!(VMSPLICE, 270); -define_syscall!(MOVE_PAGES, 271); -define_syscall!(SET_ROBUST_LIST, 272); -define_syscall!(GET_ROBUST_LIST, 273); -define_syscall!(KEXEC_LOAD, 274); -define_syscall!(GETCPU, 275); -define_syscall!(EPOLL_PWAIT, 276); -define_syscall!(IOPRIO_SET, 277); -define_syscall!(IOPRIO_GET, 278); -define_syscall!(UTIMENSAT, 279); -define_syscall!(SIGNALFD, 280); -define_syscall!(TIMERFD, 281); -define_syscall!(EVENTFD, 282); -define_syscall!(FALLOCATE, 283); -define_syscall!(TIMERFD_CREATE, 284); -define_syscall!(TIMERFD_GETTIME, 285); -define_syscall!(TIMERFD_SETTIME, 286); -define_syscall!(SIGNALFD4, 287); -define_syscall!(EVENTFD2, 288); -define_syscall!(EPOLL_CREATE1, 289); -define_syscall!(DUP3, 290); -define_syscall!(PIPE2, 291); -define_syscall!(INOTIFY_INIT1, 292); -define_syscall!(PREADV, 293); -define_syscall!(PWRITEV, 294); -define_syscall!(RT_TGSIGQUEUEINFO, 295); -define_syscall!(PERF_EVENT_OPEN, 296); -define_syscall!(ACCEPT4, 297); -define_syscall!(RECVMMSG, 298); -define_syscall!(GETDENTS64, 299); -define_syscall!(FANOTIFY_INIT, 300); -define_syscall!(FANOTIFY_MARK, 301); -define_syscall!(PRLIMIT64, 302); -define_syscall!(NAME_TO_HANDLE_AT, 303); -define_syscall!(OPEN_BY_HANDLE_AT, 304); -define_syscall!(CLOCK_ADJTIME, 305); -define_syscall!(SYNCFS, 306); -define_syscall!(SENDMMSG, 307); -define_syscall!(SETNS, 308); -define_syscall!(PROCESS_VM_READV, 309); -define_syscall!(PROCESS_VM_WRITEV, 310); -define_syscall!(KCMP, 311); -define_syscall!(FINIT_MODULE, 312); -define_syscall!(SCHED_SETATTR, 313); -define_syscall!(SCHED_GETATTR, 314); -define_syscall!(RENAMEAT2, 315); -define_syscall!(SECCOMP, 316); -define_syscall!(GETRANDOM, 317); -define_syscall!(MEMFD_CREATE, 318); -define_syscall!(BPF, 319); -define_syscall!(EXECVEAT, 320); -define_syscall!(USERFAULTFD, 321); -define_syscall!(MEMBARRIER, 322); -define_syscall!(MLOCK2, 323); -define_syscall!(COPY_FILE_RANGE, 324); -define_syscall!(PREADV2, 325); -define_syscall!(PWRITEV2, 326); -define_syscall!(PKEY_MPROTECT, 327); -define_syscall!(PKEY_ALLOC, 328); -define_syscall!(PKEY_FREE, 329); -define_syscall!(STATX, 330); -define_syscall!(RSEQ, 331); -define_syscall!(IO_PGETEVENTS, 332); +define_syscall!(SYSCALL, 0); +define_syscall!(EXIT, 1); +define_syscall!(FORK, 2); +define_syscall!(READ, 3); +define_syscall!(WRITE, 4); +define_syscall!(OPEN, 5); +define_syscall!(CLOSE, 6); +define_syscall!(WAITPID, 7); +define_syscall!(CREAT, 8); +define_syscall!(LINK, 9); +define_syscall!(UNLINK, 10); +define_syscall!(EXECVE, 11); +define_syscall!(CHDIR, 12); +define_syscall!(TIME, 13); +define_syscall!(MKNOD, 14); +define_syscall!(CHMOD, 15); +define_syscall!(LCHOWN, 16); +define_syscall!(BREAK, 17); +define_syscall!(UNUSED18, 18); +define_syscall!(LSEEK, 19); +define_syscall!(GETPID, 20); +define_syscall!(MOUNT, 21); +define_syscall!(UMOUNT, 22); +define_syscall!(SETUID, 23); +define_syscall!(GETUID, 24); +define_syscall!(STIME, 25); +define_syscall!(PTRACE, 26); +define_syscall!(ALARM, 27); +define_syscall!(UNUSED28, 28); +define_syscall!(PAUSE, 29); +define_syscall!(UTIME, 30); +define_syscall!(STTY, 31); +define_syscall!(GTTY, 32); +define_syscall!(ACCESS, 33); +define_syscall!(NICE, 34); +define_syscall!(FTIME, 35); +define_syscall!(SYNC, 36); +define_syscall!(KILL, 37); +define_syscall!(RENAME, 38); +define_syscall!(MKDIR, 39); +define_syscall!(RMDIR, 40); +define_syscall!(DUP, 41); +define_syscall!(PIPE, 42); +define_syscall!(TIMES, 43); +define_syscall!(PROF, 44); +define_syscall!(BRK, 45); +define_syscall!(SETGID, 46); +define_syscall!(GETGID, 47); +define_syscall!(SIGNAL, 48); +define_syscall!(GETEUID, 49); +define_syscall!(GETEGID, 50); +define_syscall!(ACCT, 51); +define_syscall!(UMOUNT2, 52); +define_syscall!(LOCK, 53); +define_syscall!(IOCTL, 54); +define_syscall!(FCNTL, 55); +define_syscall!(MPX, 56); +define_syscall!(SETPGID, 57); +define_syscall!(ULIMIT, 58); +define_syscall!(UNUSED59, 59); +define_syscall!(UMASK, 60); +define_syscall!(CHROOT, 61); +define_syscall!(USTAT, 62); +define_syscall!(DUP2, 63); +define_syscall!(GETPPID, 64); +define_syscall!(GETPGRP, 65); +define_syscall!(SETSID, 66); +define_syscall!(SIGACTION, 67); +define_syscall!(SGETMASK, 68); +define_syscall!(SSETMASK, 69); +define_syscall!(SETREUID, 70); +define_syscall!(SETREGID, 71); +define_syscall!(SIGSUSPEND, 72); +define_syscall!(SIGPENDING, 73); +define_syscall!(SETHOSTNAME, 74); +define_syscall!(SETRLIMIT, 75); +define_syscall!(GETRLIMIT, 76); +define_syscall!(GETRUSAGE, 77); +define_syscall!(GETTIMEOFDAY, 78); +define_syscall!(SETTIMEOFDAY, 79); +define_syscall!(GETGROUPS, 80); +define_syscall!(SETGROUPS, 81); +define_syscall!(RESERVED82, 82); +define_syscall!(SYMLINK, 83); +define_syscall!(UNUSED84, 84); +define_syscall!(READLINK, 85); +define_syscall!(USELIB, 86); +define_syscall!(SWAPON, 87); +define_syscall!(REBOOT, 88); +define_syscall!(READDIR, 89); +define_syscall!(MMAP, 90); +define_syscall!(MUNMAP, 91); +define_syscall!(TRUNCATE, 92); +define_syscall!(FTRUNCATE, 93); +define_syscall!(FCHMOD, 94); +define_syscall!(FCHOWN, 95); +define_syscall!(GETPRIORITY, 96); +define_syscall!(SETPRIORITY, 97); +define_syscall!(PROFIL, 98); +define_syscall!(STATFS, 99); +define_syscall!(FSTATFS, 100); +define_syscall!(IOPERM, 101); +define_syscall!(SOCKETCALL, 102); +define_syscall!(SYSLOG, 103); +define_syscall!(SETITIMER, 104); +define_syscall!(GETITIMER, 105); +define_syscall!(STAT, 106); +define_syscall!(LSTAT, 107); +define_syscall!(FSTAT, 108); +define_syscall!(UNUSED109, 109); +define_syscall!(IOPL, 110); +define_syscall!(VHANGUP, 111); +define_syscall!(IDLE, 112); +define_syscall!(VM86, 113); +define_syscall!(WAIT4, 114); +define_syscall!(SWAPOFF, 115); +define_syscall!(SYSINFO, 116); +define_syscall!(IPC, 117); +define_syscall!(FSYNC, 118); +define_syscall!(SIGRETURN, 119); +define_syscall!(CLONE, 120); +define_syscall!(SETDOMAINNAME, 121); +define_syscall!(UNAME, 122); +define_syscall!(MODIFY_LDT, 123); +define_syscall!(ADJTIMEX, 124); +define_syscall!(MPROTECT, 125); +define_syscall!(SIGPROCMASK, 126); +define_syscall!(CREATE_MODULE, 127); +define_syscall!(INIT_MODULE, 128); +define_syscall!(DELETE_MODULE, 129); +define_syscall!(GET_KERNEL_SYMS, 130); +define_syscall!(QUOTACTL, 131); +define_syscall!(GETPGID, 132); +define_syscall!(FCHDIR, 133); +define_syscall!(BDFLUSH, 134); +define_syscall!(SYSFS, 135); +define_syscall!(PERSONALITY, 136); +define_syscall!(AFS_SYSCALL, 137); +define_syscall!(SETFSUID, 138); +define_syscall!(SETFSGID, 139); +define_syscall!(_LLSEEK, 140); +define_syscall!(GETDENTS, 141); +define_syscall!(_NEWSELECT, 142); +define_syscall!(FLOCK, 143); +define_syscall!(MSYNC, 144); +define_syscall!(READV, 145); +define_syscall!(WRITEV, 146); +define_syscall!(CACHEFLUSH, 147); +define_syscall!(CACHECTL, 148); +define_syscall!(SYSMIPS, 149); +define_syscall!(UNUSED150, 150); +define_syscall!(GETSID, 151); +define_syscall!(FDATASYNC, 152); +define_syscall!(_SYSCTL, 153); +define_syscall!(MLOCK, 154); +define_syscall!(MUNLOCK, 155); +define_syscall!(MLOCKALL, 156); +define_syscall!(MUNLOCKALL, 157); +define_syscall!(SCHED_SETPARAM, 158); +define_syscall!(SCHED_GETPARAM, 159); +define_syscall!(SCHED_SETSCHEDULER, 160); +define_syscall!(SCHED_GETSCHEDULER, 161); +define_syscall!(SCHED_YIELD, 162); +define_syscall!(SCHED_GET_PRIORITY_MAX, 163); +define_syscall!(SCHED_GET_PRIORITY_MIN, 164); +define_syscall!(SCHED_RR_GET_INTERVAL, 165); +define_syscall!(NANOSLEEP, 166); +define_syscall!(MREMAP, 167); +define_syscall!(ACCEPT, 168); +define_syscall!(BIND, 169); +define_syscall!(CONNECT, 170); +define_syscall!(GETPEERNAME, 171); +define_syscall!(GETSOCKNAME, 172); +define_syscall!(GETSOCKOPT, 173); +define_syscall!(LISTEN, 174); +define_syscall!(RECV, 175); +define_syscall!(RECVFROM, 176); +define_syscall!(RECVMSG, 177); +define_syscall!(SEND, 178); +define_syscall!(SENDMSG, 179); +define_syscall!(SENDTO, 180); +define_syscall!(SETSOCKOPT, 181); +define_syscall!(SHUTDOWN, 182); +define_syscall!(SOCKET, 183); +define_syscall!(SOCKETPAIR, 184); +define_syscall!(SETRESUID, 185); +define_syscall!(GETRESUID, 186); +define_syscall!(QUERY_MODULE, 187); +define_syscall!(POLL, 188); +define_syscall!(NFSSERVCTL, 189); +define_syscall!(SETRESGID, 190); +define_syscall!(GETRESGID, 191); +define_syscall!(PRCTL, 192); +define_syscall!(RT_SIGRETURN, 193); +define_syscall!(RT_SIGACTION, 194); +define_syscall!(RT_SIGPROCMASK, 195); +define_syscall!(RT_SIGPENDING, 196); +define_syscall!(RT_SIGTIMEDWAIT, 197); +define_syscall!(RT_SIGQUEUEINFO, 198); +define_syscall!(RT_SIGSUSPEND, 199); +define_syscall!(PREAD64, 200); +define_syscall!(PWRITE64, 201); +define_syscall!(CHOWN, 202); +define_syscall!(GETCWD, 203); +define_syscall!(CAPGET, 204); +define_syscall!(CAPSET, 205); +define_syscall!(SIGALTSTACK, 206); +define_syscall!(SENDFILE, 207); +define_syscall!(GETPMSG, 208); +define_syscall!(PUTPMSG, 209); +define_syscall!(MMAP2, 210); +define_syscall!(TRUNCATE64, 211); +define_syscall!(FTRUNCATE64, 212); +define_syscall!(STAT64, 213); +define_syscall!(LSTAT64, 214); +define_syscall!(FSTAT64, 215); +define_syscall!(PIVOT_ROOT, 216); +define_syscall!(MINCORE, 217); +define_syscall!(MADVISE, 218); +define_syscall!(GETDENTS64, 219); +define_syscall!(FCNTL64, 220); +define_syscall!(RESERVED221, 221); +define_syscall!(GETTID, 222); +define_syscall!(READAHEAD, 223); +define_syscall!(SETXATTR, 224); +define_syscall!(LSETXATTR, 225); +define_syscall!(FSETXATTR, 226); +define_syscall!(GETXATTR, 227); +define_syscall!(LGETXATTR, 228); +define_syscall!(FGETXATTR, 229); +define_syscall!(LISTXATTR, 230); +define_syscall!(LLISTXATTR, 231); +define_syscall!(FLISTXATTR, 232); +define_syscall!(REMOVEXATTR, 233); +define_syscall!(LREMOVEXATTR, 234); +define_syscall!(FREMOVEXATTR, 235); +define_syscall!(TKILL, 236); +define_syscall!(SENDFILE64, 237); +define_syscall!(FUTEX, 238); +define_syscall!(SCHED_SETAFFINITY, 239); +define_syscall!(SCHED_GETAFFINITY, 240); +define_syscall!(IO_SETUP, 241); +define_syscall!(IO_DESTROY, 242); +define_syscall!(IO_GETEVENTS, 243); +define_syscall!(IO_SUBMIT, 244); +define_syscall!(IO_CANCEL, 245); +define_syscall!(EXIT_GROUP, 246); +define_syscall!(LOOKUP_DCOOKIE, 247); +define_syscall!(EPOLL_CREATE, 248); +define_syscall!(EPOLL_CTL, 249); +define_syscall!(EPOLL_WAIT, 250); +define_syscall!(REMAP_FILE_PAGES, 251); +define_syscall!(SET_TID_ADDRESS, 252); +define_syscall!(RESTART_SYSCALL, 253); +define_syscall!(FADVISE64, 254); +define_syscall!(STATFS64, 255); +define_syscall!(FSTATFS64, 256); +define_syscall!(TIMER_CREATE, 257); +define_syscall!(TIMER_SETTIME, 258); +define_syscall!(TIMER_GETTIME, 259); +define_syscall!(TIMER_GETOVERRUN, 260); +define_syscall!(TIMER_DELETE, 261); +define_syscall!(CLOCK_SETTIME, 262); +define_syscall!(CLOCK_GETTIME, 263); +define_syscall!(CLOCK_GETRES, 264); +define_syscall!(CLOCK_NANOSLEEP, 265); +define_syscall!(TGKILL, 266); +define_syscall!(UTIMES, 267); +define_syscall!(MBIND, 268); +define_syscall!(GET_MEMPOLICY, 269); +define_syscall!(SET_MEMPOLICY, 270); +define_syscall!(MQ_OPEN, 271); +define_syscall!(MQ_UNLINK, 272); +define_syscall!(MQ_TIMEDSEND, 273); +define_syscall!(MQ_TIMEDRECEIVE, 274); +define_syscall!(MQ_NOTIFY, 275); +define_syscall!(MQ_GETSETATTR, 276); +define_syscall!(VSERVER, 277); +define_syscall!(WAITID, 278); +define_syscall!(SYS_SETALTROOT, 279); +define_syscall!(ADD_KEY, 280); +define_syscall!(REQUEST_KEY, 281); +define_syscall!(KEYCTL, 282); +define_syscall!(SET_THREAD_AREA, 283); +define_syscall!(INOTIFY_INIT, 284); +define_syscall!(INOTIFY_ADD_WATCH, 285); +define_syscall!(INOTIFY_RM_WATCH, 286); +define_syscall!(MIGRATE_PAGES, 287); +define_syscall!(OPENAT, 288); +define_syscall!(MKDIRAT, 289); +define_syscall!(MKNODAT, 290); +define_syscall!(FCHOWNAT, 291); +define_syscall!(FUTIMESAT, 292); +define_syscall!(FSTATAT64, 293); +define_syscall!(UNLINKAT, 294); +define_syscall!(RENAMEAT, 295); +define_syscall!(LINKAT, 296); +define_syscall!(SYMLINKAT, 297); +define_syscall!(READLINKAT, 298); +define_syscall!(FCHMODAT, 299); +define_syscall!(FACCESSAT, 300); +define_syscall!(PSELECT6, 301); +define_syscall!(PPOLL, 302); +define_syscall!(UNSHARE, 303); +define_syscall!(SPLICE, 304); +define_syscall!(SYNC_FILE_RANGE, 305); +define_syscall!(TEE, 306); +define_syscall!(VMSPLICE, 307); +define_syscall!(MOVE_PAGES, 308); +define_syscall!(SET_ROBUST_LIST, 309); +define_syscall!(GET_ROBUST_LIST, 310); +define_syscall!(KEXEC_LOAD, 311); +define_syscall!(GETCPU, 312); +define_syscall!(EPOLL_PWAIT, 313); +define_syscall!(IOPRIO_SET, 314); +define_syscall!(IOPRIO_GET, 315); +define_syscall!(UTIMENSAT, 316); +define_syscall!(SIGNALFD, 317); +define_syscall!(TIMERFD, 318); +define_syscall!(EVENTFD, 319); +define_syscall!(FALLOCATE, 320); +define_syscall!(TIMERFD_CREATE, 321); +define_syscall!(TIMERFD_GETTIME, 322); +define_syscall!(TIMERFD_SETTIME, 323); +define_syscall!(SIGNALFD4, 324); +define_syscall!(EVENTFD2, 325); +define_syscall!(EPOLL_CREATE1, 326); +define_syscall!(DUP3, 327); +define_syscall!(PIPE2, 328); +define_syscall!(INOTIFY_INIT1, 329); +define_syscall!(PREADV, 330); +define_syscall!(PWRITEV, 331); +define_syscall!(RT_TGSIGQUEUEINFO, 332); +define_syscall!(PERF_EVENT_OPEN, 333); +define_syscall!(ACCEPT4, 334); +define_syscall!(RECVMMSG, 335); +define_syscall!(FANOTIFY_INIT, 336); +define_syscall!(FANOTIFY_MARK, 337); +define_syscall!(PRLIMIT64, 338); +define_syscall!(NAME_TO_HANDLE_AT, 339); +define_syscall!(OPEN_BY_HANDLE_AT, 340); +define_syscall!(CLOCK_ADJTIME, 341); +define_syscall!(SYNCFS, 342); +define_syscall!(SENDMMSG, 343); +define_syscall!(SETNS, 344); +define_syscall!(PROCESS_VM_READV, 345); +define_syscall!(PROCESS_VM_WRITEV, 346); +define_syscall!(KCMP, 347); +define_syscall!(FINIT_MODULE, 348); +define_syscall!(SCHED_SETATTR, 349); +define_syscall!(SCHED_GETATTR, 350); +define_syscall!(RENAMEAT2, 351); +define_syscall!(SECCOMP, 352); +define_syscall!(GETRANDOM, 353); +define_syscall!(MEMFD_CREATE, 354); +define_syscall!(BPF, 355); +define_syscall!(EXECVEAT, 356); +define_syscall!(USERFAULTFD, 357); +define_syscall!(MEMBARRIER, 358); +define_syscall!(MLOCK2, 359); +define_syscall!(COPY_FILE_RANGE, 360); +define_syscall!(PREADV2, 361); +define_syscall!(PWRITEV2, 362); +define_syscall!(PKEY_MPROTECT, 363); +define_syscall!(PKEY_ALLOC, 364); +define_syscall!(PKEY_FREE, 365); +define_syscall!(STATX, 366); +define_syscall!(RSEQ, 367); +define_syscall!(IO_PGETEVENTS, 368); + +// non-existent syscalls, will not be called or matched +pub const SYS_NEWFSTATAT: usize = 0; // custom temporary syscall pub const SYS_MAP_PCI_DEVICE: usize = 999; diff --git a/user b/user index 23cfbb6..a2985b6 160000 --- a/user +++ b/user @@ -1 +1 @@ -Subproject commit 23cfbb6565377ee88ad0cec3c1fcd3a090ee88c6 +Subproject commit a2985b6e80b14996bb7c767d2c202d237e82aa0d