1 $NetBSD: syscalls.master,v 1.14 2024/09/28 19:35:55 christos Exp $ 2 3 ; @(#)syscalls.master 8.1 (Berkeley) 7/19/93 4 5 ; Derived from sys/compat/linux/arch/*/syscalls.master 6 ; and from Linux include/uapi/asm-generic/unistd.h 7 8 ; NetBSD aarch64 COMPAT_LINUX system call name/number "master" file. 9 ; (See syscalls.conf to see what it is processed into.) 10 ; 11 ; Fields: number type [type-dependent ...] 12 ; number system call number, must be in order 13 ; type one of STD, OBSOL, UNIMPL, NODEF, NOARGS, or one of 14 ; the compatibility options defined in syscalls.conf. 15 ; 16 ; types: 17 ; STD always included 18 ; OBSOL obsolete, not included in system 19 ; UNIMPL unimplemented, not included in system 20 ; NODEF included, but don't define the syscall number 21 ; NOARGS included, but don't define the syscall args structure 22 ; INDIR included, but don't define the syscall args structure 23 ; and allow it to be "really" varargs. 24 ; 25 ; The compat options are defined in the syscalls.conf file, and the 26 ; compat option name is prefixed to the syscall name. Other than 27 ; that, they're like NODEF (for 'compat' options), or STD (for 28 ; 'libcompat' options). 29 ; 30 ; The type-dependent arguments are as follows: 31 ; For STD, NODEF, NOARGS, and compat syscalls: 32 ; { pseudo-proto } [alias] 33 ; For other syscalls: 34 ; [comment] 35 ; 36 ; #ifdef's, etc. may be included, and are copied to the output files. 37 ; #include's are copied to the syscall names and switch definition files only. 38 39 #if defined(_KERNEL_OPT) 40 #include "opt_sysv.h" 41 #include "opt_compat_43.h" 42 #include "opt_compat_netbsd.h" 43 #endif 44 45 #include <sys/param.h> 46 #include <sys/poll.h> 47 #include <sys/systm.h> 48 #include <sys/signal.h> 49 #include <sys/mount.h> 50 #include <sys/syscallargs.h> 51 #include <sys/time.h> 52 53 #include <compat/sys/time.h> 54 55 #include <compat/linux/common/linux_types.h> 56 #include <compat/linux/common/linux_ipc.h> 57 #include <compat/linux/common/linux_machdep.h> 58 #include <compat/linux/common/linux_misc.h> 59 #include <compat/linux/common/linux_mmap.h> 60 #include <compat/linux/common/linux_msg.h> 61 #include <compat/linux/common/linux_sched.h> 62 #include <compat/linux/common/linux_sem.h> 63 #include <compat/linux/common/linux_shm.h> 64 #include <compat/linux/common/linux_siginfo.h> 65 #include <compat/linux/common/linux_signal.h> 66 #include <compat/linux/common/linux_mqueue.h> 67 68 #include <compat/linux/linux_syscallargs.h> 69 70 %% 71 72 0 UNIMPL io_setup 73 1 UNIMPL io_destroy 74 2 UNIMPL io_submit 75 3 UNIMPL io_cancel 76 4 UNIMPL io_getevents 77 5 STD { int|linux_sys||setxattr(char *path, char *name, \ 78 void *value, size_t size, int flags); } 79 6 STD { int|linux_sys||lsetxattr(char *path, char *name, \ 80 void *value, size_t size, int flags); } 81 7 STD { int|linux_sys||fsetxattr(int fd, char *name, \ 82 void *value, size_t size, int flags); } 83 8 STD { ssize_t|linux_sys||getxattr(char *path, char *name, \ 84 void *value, size_t size); } 85 9 STD { ssize_t|linux_sys||lgetxattr(char *path, char *name, \ 86 void *value, size_t size); } 87 10 STD { ssize_t|linux_sys||fgetxattr(int fd, char *name, \ 88 void *value, size_t size); } 89 11 STD { ssize_t|linux_sys||listxattr(char *path, char *list, \ 90 size_t size); } 91 12 STD { ssize_t|linux_sys||llistxattr(char *path, char *list, \ 92 size_t size); } 93 13 STD { ssize_t|linux_sys||flistxattr(int fd, char *list, \ 94 size_t size); } 95 14 STD { int|linux_sys||removexattr(char *path, char *name); } 96 15 STD { int|linux_sys||lremovexattr(char *path, char *name); } 97 16 STD { int|linux_sys||fremovexattr(int fd, char *name); } 98 17 NOARGS { int|sys||__getcwd(char *bufp, size_t length); } 99 18 UNIMPL lookup_dcookie 100 19 STD { int|linux_sys||eventfd2(unsigned int initval, \ 101 int flags); } 102 20 STD { int|linux_sys||epoll_create1(int flags); } 103 21 STD { int|linux_sys||epoll_ctl(int epfd, int op, int fd, \ 104 struct linux_epoll_event *event); } 105 22 STD { int|linux_sys||epoll_pwait(int epfd, \ 106 struct linux_epoll_event *events, int maxevents, \ 107 int timeout, const linux_sigset_t *sigmask); } 108 23 NOARGS { int|sys||dup(int fd); } 109 24 STD { int|linux_sys||dup3(int from, int to, int flags); } 110 25 STD { int|linux_sys||fcntl(int fd, int cmd, void *arg); } 111 26 STD { int|linux_sys||inotify_init1(int flags); } 112 27 STD { int|linux_sys||inotify_add_watch(int fd, \ 113 const char *pathname, uint32_t mask); } 114 28 STD { int|linux_sys||inotify_rm_watch(int fd, int wd); } 115 29 STD { int|linux_sys||ioctl(int fd, u_long com, \ 116 void *data); } 117 30 UNIMPL ioprio_set 118 31 UNIMPL ioprio_get 119 32 NOARGS { int|sys||flock(int fd, int how); } 120 33 STD { int|linux_sys||mknodat(int fd, const char *path, \ 121 linux_umode_t mode, unsigned dev); } 122 34 NOARGS { int|sys||mkdirat(int fd, const char *path, \ 123 linux_umode_t mode); } 124 35 STD { int|linux_sys||unlinkat(int fd, const char *path, \ 125 int flag); } 126 36 NOARGS { int|sys||symlinkat(const char *path1, int fd, \ 127 const char *path2); } 128 37 STD { int|linux_sys||linkat(int fd1, const char *name1, \ 129 int fd2, const char *name2, int flags); } 130 38 NOARGS { int|sys||renameat(int fromfd, const char *from, \ 131 int tofd, const char *to); } 132 39 UNIMPL umount2 133 40 UNIMPL mount 134 41 UNIMPL pivot_root 135 42 UNIMPL nfsservctl 136 43 STD { int|linux_sys||statfs(const char *path, \ 137 struct linux_statfs *sp); } 138 44 STD { int|linux_sys||fstatfs(int fd, \ 139 struct linux_statfs *sp); } 140 45 STD { int|linux_sys||truncate64(const char *path, \ 141 off_t length); } 142 46 STD { int|linux_sys||ftruncate64(unsigned int fd, \ 143 off_t length); } 144 47 STD { int|linux_sys||fallocate(int fd, int mode, \ 145 off_t offset, off_t len); } 146 48 STD { int|linux_sys||faccessat(int fd, const char *path, \ 147 int amode); } 148 49 NOARGS { int|sys||chdir(const char *path); } 149 50 NOARGS { int|sys||fchdir(int fd); } 150 51 NOARGS { int|sys||chroot(char *path); } 151 52 NOARGS { int|sys||fchmod(int fd, linux_umode_t mode); } 152 53 STD { int|linux_sys||fchmodat(int fd, const char *path, \ 153 linux_umode_t mode); } 154 54 STD { int|linux_sys||fchownat(int fd, const char *path, \ 155 uid_t owner, gid_t group, int flag); } 156 55 NOARGS { int|sys||__posix_fchown(int fd, uid_t uid, \ 157 gid_t gid); } 158 56 STD { int|linux_sys||openat(int fd, const char *path, \ 159 int flags, ... linux_umode_t mode); } 160 57 NOARGS { int|sys||close(int fd); } 161 58 UNIMPL vhangup 162 59 STD { int|linux_sys||pipe2(int *pfds, int flags); } 163 60 UNIMPL quotactl 164 61 STD { int|linux_sys||getdents64(int fd, \ 165 struct linux_dirent64 *dent, unsigned int count); } 166 62 NOARGS { long|compat_43_sys||lseek(int fd, long offset, \ 167 int whence); } 168 63 NOARGS { ssize_t|sys||read(int fd, void *buf, size_t nbyte); } 169 64 NOARGS { ssize_t|sys||write(int fd, const void *buf, \ 170 size_t nbyte); } 171 65 NOARGS { ssize_t|sys||readv(int fd, \ 172 const struct iovec *iovp, int iovcnt); } 173 66 NOARGS { ssize_t|sys||writev(int fd, \ 174 const struct iovec *iovp, int iovcnt); } 175 67 STD { int|linux_sys||pread(int fd, char *buf, \ 176 size_t nbyte, off_t offset); } 177 68 STD { int|linux_sys||pwrite(int fd, char *buf, \ 178 size_t nbyte, off_t offset); } 179 69 STD { int|linux_sys||preadv(int fd, \ 180 const struct iovec *iovp, int iovcnt, \ 181 unsigned long off_lo, unsigned long off_hi); } 182 70 STD { int|linux_sys||pwritev(int fd, \ 183 const struct iovcnt *iovp, int iovcnt, \ 184 unsigned long off_lo, unsigned long off_hi); } 185 71 UNIMPL sendfile 186 72 STD { int|linux_sys||pselect6(int nfds, fd_set *readfds, \ 187 fd_set *writefds, fd_set *exceptfds, \ 188 struct linux_timespec *timeout, \ 189 linux_sized_sigset_t *ss); } 190 73 STD { int|linux_sys||ppoll(struct pollfd *fds, u_int nfds, \ 191 struct linux_timespec *timeout, \ 192 linux_sigset_t *sigset); } 193 74 UNIMPL signalfd4 194 75 UNIMPL vmsplice 195 76 UNIMPL splice 196 77 UNIMPL tee 197 78 NOARGS { ssize_t|sys||readlinkat(int fd, const char *path, \ 198 char *buf, size_t bufsize); } 199 79 STD { int|linux_sys||fstatat64(int fd, const char *path, \ 200 struct linux_stat *sp, int flag); } 201 80 STD { int|linux_sys||fstat64(int fd, \ 202 struct linux_stat *sp); } 203 81 NOARGS { int|sys||sync(void); } 204 82 NOARGS { int|sys||fsync(int fd); } 205 83 STD { int|linux_sys||fdatasync(int fd); } 206 84 STD { int|linux_sys||sync_file_range(int fd, \ 207 off_t offset, off_t nbytes, unsigned int flags); } 208 85 STD { int|linux_sys||timerfd_create(clockid_t clock_id, \ 209 int flags); } 210 86 STD { int|linux_sys||timerfd_settime(int fd, int flags, \ 211 const struct linux_itimerspec *tim, \ 212 struct linux_itimerspec *otim); } 213 87 STD { int|linux_sys||timerfd_gettime(int fd, \ 214 struct linux_itimerspec *tim); } 215 88 STD { int|linux_sys||utimensat(int fd, const char *path, \ 216 struct linux_timespec *times, int flag); } 217 89 NOARGS { int|sys||acct(char *path); } 218 90 UNIMPL capget 219 91 UNIMPL capset 220 92 STD { int|linux_sys||personality(unsigned long per); } 221 93 STD { int|linux_sys||exit(int rval); } 222 94 STD { int|linux_sys||exit_group(int error_code); } 223 95 STD { int|linux_sys||waitid(int idtype, id_t id, \ 224 linux_siginfo_t *infop, int options, \ 225 struct rusage50 *rusage); } 226 96 STD { int|linux_sys||set_tid_address(int *tid); } 227 97 UNIMPL unshare 228 98 STD { int|linux_sys||futex(int *uaddr, int op, int val, \ 229 const struct linux_timespec *timeout, int *uaddr2, \ 230 int val3); } 231 ; 232 ; The NetBSD native robust list calls have different 233 ; argument names / types, but they are ABI-compatible 234 ; with Linux. 235 ; 236 99 NOARGS { int|sys||__futex_set_robust_list(void *head, \ 237 size_t len); } 238 100 NOARGS { int|sys||__futex_get_robust_list(lwpid_t lwpid, \ 239 void **headp, size_t *lenp); } 240 101 STD { int|linux_sys||nanosleep( \ 241 const struct linux_timespec *rqtp, \ 242 struct linux_timespec *rmtp); } 243 102 NOARGS { int|compat_50_sys||getitimer(int which, \ 244 struct itimerval50 *itv); } 245 103 NOARGS { int|compat_50_sys||setitimer(int which, \ 246 struct itimerval50 *itv, \ 247 struct itimerval50 *oitv); } 248 104 UNIMPL kexec_load 249 105 UNIMPL init_module 250 106 UNIMPL delete_module 251 107 STD { int|linux_sys||timer_create(clockid_t clockid, \ 252 struct linux_sigevent *evp, timer_t *timerid); } 253 108 STD { int|linux_sys||timer_gettime(timer_t timerid, \ 254 struct linux_itimerspec *tim); } 255 109 NOARGS { int|sys||timer_getoverrun(timer_t timerid); } 256 110 STD { int|linux_sys||timer_settime(timer_t timerid, \ 257 int flags, const struct linux_itimerspec *tim, \ 258 struct linux_itimerspec *otim); } 259 111 NOARGS { int|sys||timer_delete(timer_t timerid); } 260 112 STD { int|linux_sys||clock_settime(clockid_t which, \ 261 struct linux_timespec *tp); } 262 113 STD { int|linux_sys||clock_gettime(clockid_t which, \ 263 struct linux_timespec *tp); } 264 114 STD { int|linux_sys||clock_getres(clockid_t which, \ 265 struct linux_timespec *tp); } 266 115 STD { int|linux_sys||clock_nanosleep(clockid_t which, \ 267 int flags, struct linux_timespec *rqtp, \ 268 struct linux_timespec *rmtp); } 269 116 UNIMPL syslog 270 117 STD { int|linux_sys||ptrace(long request, long pid, \ 271 long addr, long data); } 272 118 STD { int|linux_sys||sched_setparam(pid_t pid, \ 273 const struct linux_sched_param *sp); } 274 119 STD { int|linux_sys||sched_setscheduler(pid_t pid, \ 275 int policy, const struct linux_sched_param *sp); } 276 120 STD { int|linux_sys||sched_getscheduler(pid_t pid); } 277 121 STD { int|linux_sys||sched_getparam(pid_t pid, \ 278 struct linux_sched_param *sp); } 279 122 STD { int|linux_sys||sched_setaffinity(pid_t pid, \ 280 unsigned int len, unsigned long *mask); } 281 123 STD { int|linux_sys||sched_getaffinity(pid_t pid, \ 282 unsigned int len, unsigned long *mask); } 283 124 STD { int|linux_sys||sched_yield(void); } 284 125 STD { int|linux_sys||sched_get_priority_max(int policy); } 285 126 STD { int|linux_sys||sched_get_priority_min(int policy); } 286 127 UNIMPL sys_sched_rr_get_interval 287 128 UNIMPL restart_syscall 288 129 STD { int|linux_sys||kill(int pid, int signum); } 289 130 STD { int|linux_sys||tkill(int tid, int sig); } 290 131 STD { int|linux_sys||tgkill(int tgid, int tid, int sig); } 291 132 STD { int|linux_sys||sigaltstack( \ 292 const struct linux_sigaltstack *ss, \ 293 struct linux_sigaltstack *oss); } 294 133 STD { int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \ 295 size_t sigsetsize); } 296 134 STD { int|linux_sys||rt_sigaction(int signum, \ 297 const struct linux_sigaction *nsa, \ 298 struct linux_sigaction *osa, \ 299 size_t sigsetsize); } 300 135 STD { int|linux_sys||rt_sigprocmask(int how, \ 301 const linux_sigset_t *set, \ 302 linux_sigset_t *oset, \ 303 size_t sigsetsize); } 304 136 STD { int|linux_sys||rt_sigpending( \ 305 linux_sigset_t *set, \ 306 size_t sigsetsize); } 307 137 STD { int|linux_sys||rt_sigtimedwait( \ 308 const linux_sigset_t *set, \ 309 linux_siginfo_t *info, \ 310 const struct linux_timespec *timeout); } 311 138 UNIMPL rt_sigqueueinfo 312 139 NOARGS { int|linux_sys||rt_sigreturn(void); } 313 140 NOARGS { int|sys||setpriority(int which, int who, int prio); } 314 141 STD { int|linux_sys||getpriority(int which, int who); } 315 142 STD { int|linux_sys||reboot(int magic1, int magic2, \ 316 int cmd, void *arg); } 317 143 NOARGS { int|sys||setregid(gid_t rgid, gid_t egid); } 318 144 NOARGS { int|sys||setgid(gid_t gid); } 319 145 NOARGS { int|sys||setreuid(uid_t ruid, uid_t euid); } 320 146 NOARGS { int|sys||setuid(uid_t uid); } 321 147 STD { int|linux_sys||setresuid(uid_t ruid, uid_t euid, \ 322 uid_t suid); } 323 148 STD { int|linux_sys||getresuid(uid_t *ruid, uid_t *euid, \ 324 uid_t *suid); } 325 149 STD { int|linux_sys||setresgid(gid_t rgid, gid_t egid, \ 326 gid_t sgid); } 327 150 STD { int|linux_sys||getresgid(gid_t *rgid, gid_t *egid, \ 328 gid_t *sgid); } 329 151 STD { int|linux_sys||setfsuid(uid_t uid); } 330 152 STD { int|linux_sys||setfsgid(gid_t gid); } 331 153 STD { int|linux_sys||times(struct times *tms); } 332 154 NOARGS { int|sys||setpgid(int pid, int pgid); } 333 155 NOARGS { pid_t|sys||getpgid(pid_t pid); } 334 156 NOARGS { pid_t|sys||getsid(pid_t pid); } 335 157 NOARGS { int|sys||setsid(void); } 336 158 NOARGS { int|sys||getgroups(int gidsetsize, gid_t *gidset); } 337 159 NOARGS { int|sys||setgroups(int gidsetsize, gid_t *gidset); } 338 160 STD { int|linux_sys||uname(struct linux_utsname *up); } 339 161 NOARGS { int|compat_43_sys||sethostname(char *hostname, \ 340 u_int len);} 341 162 STD { int|linux_sys||setdomainname(char *domainname, \ 342 int len); } 343 163 STD { int|linux_sys||getrlimit(int which, \ 344 struct rlimit *rlp); } 345 164 STD { int|linux_sys||setrlimit(u_int which, \ 346 struct rlimit *rlp); } 347 165 NOARGS { int|compat_50_sys||getrusage(int who, \ 348 struct rusage50 *rusage); } 349 166 NOARGS { int|sys||umask(int newmask); } 350 167 UNIMPL prctl 351 168 STD { int|linux_sys||getcpu(unsigned int *cpu, \ 352 unsigned int *node, \ 353 struct linux_getcpu_cache *tcache); } 354 169 STD { int|linux_sys||gettimeofday(struct timeval50 *tp, \ 355 struct timezone *tzp); } 356 170 STD { int|linux_sys||settimeofday(struct timeval50 *tp, \ 357 struct timezone *tzp); } 358 171 UNIMPL adjtimex 359 172 STD { pid_t|sys||getpid(void); } 360 173 STD { pid_t|sys||getppid(void); } 361 174 NOARGS { uid_t|sys||getuid(void); } 362 175 NOARGS { uid_t|sys||geteuid(void); } 363 176 NOARGS { gid_t|sys||getgid(void); } 364 177 NOARGS { gid_t|sys||getegid(void); } 365 178 STD { pid_t|linux_sys||gettid(void); } 366 179 STD { int|linux_sys||sysinfo(struct linux_sysinfo *arg); } 367 180 STD { linux_mqd_t|linux_sys||mq_open(const char *name, \ 368 int oflag, linux_umode_t mode, \ 369 struct linux_mq_attr *attr); } 370 181 STD { int|linux_sys||mq_unlink(const char *name); } 371 182 STD { int|linux_sys||mq_timedsend(linux_mqd_t mqdes, \ 372 const char *msg_ptr, size_t msg_len, \ 373 unsigned int msg_prio, \ 374 const struct linux_timespec *abs_timeout); } 375 183 STD { ssize_t|linux_sys||mq_timedreceive(linux_mqd_t mqdes, \ 376 char *msg_ptr, size_t msg_len, \ 377 unsigned int *msg_prio, \ 378 const struct linux_timespec *abs_timeout); } 379 184 STD { int|linux_sys||mq_notify(linux_mqd_t mqdes, \ 380 const struct linux_sigevent *sevp); } 381 185 STD { int|linux_sys||mq_getsetattr(linux_mqd_t mqdes, \ 382 const struct linux_mq_attr *newattr, \ 383 struct linux_mq_attr *oldattr); } 384 #ifdef SYSVMSG 385 186 NOARGS { int|sys||msgget(key_t key, int msgflg); } 386 187 NOARGS { int|linux_sys||msgctl(int msqid, int cmd, \ 387 struct linux_msqid_ds *buf); } 388 188 NOARGS { ssize_t|sys||msgrcv(int msqid, void *msgp, \ 389 size_t msgsz, long msgtyp, int msgflg); } 390 189 NOARGS { int|sys||msgsnd(int msqid, void *msgp, size_t msgsz, \ 391 int msgflg); } 392 #else 393 186 UNIMPL msgget 394 187 UNIMPL msgctl 395 188 UNIMPL msgrcv 396 189 UNIMPL msgsnd 397 #endif 398 #ifdef SYSVSEM 399 190 NOARGS { int|sys||semget(key_t key, int nsems, int semflg); } 400 191 STD { int|linux_sys||semctl(int semid, int semnum, \ 401 int cmd, union linux_semun arg); } 402 192 UNIMPL semtimedop 403 193 NOARGS { int|sys||semop(int semid, struct sembuf *sops, \ 404 size_t nsops); } 405 #else 406 190 UNIMPL semget 407 191 UNIMPL semctl 408 192 UNIMPL semtimedop 409 193 UNIMPL semop 410 #endif 411 #ifdef SYSVSEM 412 194 NOARGS { int|linux_sys||shmget(key_t key, size_t size, \ 413 int shmflg); } 414 195 NOARGS { int|linux_sys||shmctl(int shmid, int cmd, \ 415 struct linux_shmid_ds *buf); } 416 196 NOARGS { int|sys||shmat(int shmid, void *shmaddr, int shmflg); } 417 197 NOARGS { int|sys||shmdt(const void *shmaddr); } 418 #else 419 194 UNIMPL shmget 420 195 UNIMPL shmctl 421 196 UNIMPL shmat 422 197 UNIMPL shmdt 423 #endif 424 198 STD { int|linux_sys||socket(int domain, \ 425 int type, int protocol); } 426 199 STD { int|linux_sys||socketpair(int domain, int type, \ 427 int protocol, int *rsv); } 428 200 STD { int|linux_sys||bind(int s, \ 429 const struct osockaddr *name, \ 430 unsigned int namelen); } 431 201 NOARGS { int|sys||listen(int s, int backlog); } 432 202 STD { int|linux_sys||accept(int s, struct osockaddr *name, \ 433 int *anamelen); } oaccept 434 203 STD { int|linux_sys||connect(int s, \ 435 const struct osockaddr *name, \ 436 unsigned int namelen); } 437 204 STD { int|linux_sys||getsockname(int fdec, void *asa, \ 438 int *alen); } 439 205 STD { int|linux_sys||getpeername(int fdes, \ 440 struct sockaddr *asa, unsigned int *alen); } 441 206 STD { ssize_t|linux_sys||sendto(int s, void *msg, int len, \ 442 int flags, struct osockaddr *to, int tolen); } 443 207 STD { ssize_t|linux_sys||recvfrom(int s, void *buf, \ 444 size_t len, int flags, struct osockaddr *from, \ 445 unsigned int *fromlenaddr); } 446 208 STD { int|linux_sys||setsockopt(int s, int level, \ 447 int optname, void *optval, int optlen); } 448 209 STD { int|linux_sys||getsockopt(int s, int level, \ 449 int optname, void *optval, int *optlen); } 450 210 NOARGS { int|sys||shutdown(int s, int how); } 451 211 STD { int|linux_sys||sendmsg(int s, \ 452 const struct linux_msghdr *msg, int flags); } 453 212 STD { ssize_t|linux_sys||recvmsg(int s, \ 454 struct linux_msghdr *msg, int flags); } 455 213 STD { ssize_t|linux_sys||readahead(int fd, off_t offset, \ 456 size_t count); } 457 214 STD { int|linux_sys||brk(char *nsize); } 458 215 NOARGS { int|sys||munmap(void *addr, size_t len); } 459 216 STD { void *|linux_sys||mremap(void *old_address, \ 460 size_t old_size, size_t new_size, u_long flags); } 461 217 UNIMPL add_key 462 218 UNIMPL request_key 463 219 UNIMPL keyctl 464 220 STD { int|linux_sys||clone(int flags, void *stack, \ 465 void *parent_tidptr, void *child_tidptr, void *tls); } 466 221 NOARGS { int|sys||execve(const char *path, char **argp, \ 467 char **envp); } 468 222 NOARGS { linux_off_t|linux_sys||mmap(unsigned long addr, \ 469 size_t len, int prot, int flags, int fd, \ 470 linux_off_t offset); } 471 223 STD { int|linux_sys||fadvise64(int fd, off_t offset, \ 472 size_t len, int advice); } 473 224 STD { int|linux_sys||swapon(char *name); } 474 225 STD { int|linux_sys||swapoff(const char *path); } 475 226 STD { int|linux_sys||mprotect(const void *start, \ 476 unsigned long len, int prot); } 477 227 NOARGS { int|sys|13|msync(void *addr, size_t len, int flags); } 478 228 NOARGS { int|sys||mlock(void *addr, size_t len); } 479 229 NOARGS { int|sys||munlock(void *addr, size_t len); } 480 230 NOARGS { int|sys||mlockall(int flags); } 481 231 NOARGS { int|sys||munlockall(void); } 482 232 NOARGS { int|sys||mincore(void *addr, size_t len, char *vec); } 483 233 NOARGS { int|sys||madvise(void *addr, size_t len, int behav); } 484 234 UNIMPL remap_file_pages 485 235 UNIMPL mbind 486 236 UNIMPL get_mempolicy 487 237 UNIMPL set_mempolicy 488 238 UNIMPL migrate_pages 489 239 UNIMPL move_pages 490 240 UNIMPL rt_tgsigqueueinfo 491 241 UNIMPL perf_event_open 492 242 STD { int|linux_sys||accept4(int s, \ 493 struct osockaddr *name, \ 494 int *anamelen, int flags); } 495 243 STD { int|linux_sys||recvmmsg(int s, \ 496 struct linux_mmsghdr *msgvec, unsigned int vlen, \ 497 unsigned int flags, struct timespec *timeout); } 498 244 UNIMPL arch_specific_syscall 499 245 UNIMPL 500 246 UNIMPL 501 247 UNIMPL 502 248 UNIMPL 503 249 UNIMPL 504 250 UNIMPL 505 251 UNIMPL 506 252 UNIMPL 507 253 UNIMPL 508 254 UNIMPL 509 255 UNIMPL 510 256 UNIMPL 511 257 UNIMPL 512 258 UNIMPL 513 259 UNIMPL 514 260 STD { int|linux_sys||wait4(int pid, int *status, \ 515 int options, struct rusage50 *rusage); } 516 261 STD { int|linux_sys||prlimit64(pid_t pid, int which, \ 517 struct rlimit *new_rlp, struct rlimit *old_rlp); } 518 262 UNIMPL fanotify_init 519 263 UNIMPL fanotify_mark 520 264 UNIMPL name_to_handle_at 521 265 UNIMPL open_by_handle_at 522 266 UNIMPL clock_adjtime 523 267 STD { int|linux_sys||syncfs(int fd); } 524 268 UNIMPL setns 525 269 STD { int|linux_sys||sendmmsg(int s, \ 526 struct linux_mmsghdr *msgvec, unsigned int vlen, \ 527 unsigned int flags); } 528 270 UNIMPL process_vm_readv 529 271 UNIMPL process_vm_writev 530 272 UNIMPL kcmp 531 273 UNIMPL finit_module 532 274 UNIMPL sched_setattr 533 275 UNIMPL sched_getattr 534 276 STD { int|linux_sys||renameat2(int fromfd, \ 535 const char *from, int tofd, const char *to, \ 536 unsigned int flags); } 537 277 UNIMPL seccomp 538 278 NOARGS { ssize_t|sys||getrandom(void *buf, size_t buflen, \ 539 unsigned int flags); } 540 279 STD { int|linux_sys||memfd_create(const char *name, \ 541 unsigned int flags); } 542 280 UNIMPL bpf 543 281 UNIMPL execveat 544 282 UNIMPL userfaultfd 545 283 UNIMPL membarrier 546 284 UNIMPL mlock2 547 285 STD { ssize_t|linux_sys||copy_file_range(int fd_in, \ 548 off_t * off_in, int fd_out, off_t * off_out, \ 549 size_t len, unsigned int flags); } 550 286 UNIMPL preadv2 551 287 UNIMPL pwritev2 552 288 UNIMPL pkey_mprotect 553 289 UNIMPL pkey_alloc 554 290 UNIMPL pkey_free 555 291 STD { int|linux_sys||statx(int fd, const char *path, \ 556 int flag, unsigned int mask, \ 557 struct linux_statx *sp); } 558 292 UNIMPL io_pgetevents 559 293 UNIMPL rseq 560 294 UNIMPL kexec_file_load 561 295 UNIMPL 562 296 UNIMPL 563 297 UNIMPL 564 298 UNIMPL 565 299 UNIMPL 566 300 UNIMPL 567 301 UNIMPL 568 302 UNIMPL 569 303 UNIMPL 570 304 UNIMPL 571 305 UNIMPL 572 306 UNIMPL 573 307 UNIMPL 574 308 UNIMPL 575 309 UNIMPL 576 310 UNIMPL 577 311 UNIMPL 578 312 UNIMPL 579 313 UNIMPL 580 314 UNIMPL 581 315 UNIMPL 582 316 UNIMPL 583 317 UNIMPL 584 318 UNIMPL 585 319 UNIMPL 586 320 UNIMPL 587 321 UNIMPL 588 322 UNIMPL 589 323 UNIMPL 590 324 UNIMPL 591 325 UNIMPL 592 326 UNIMPL 593 327 UNIMPL 594 328 UNIMPL 595 329 UNIMPL 596 330 UNIMPL 597 331 UNIMPL 598 332 UNIMPL 599 333 UNIMPL 600 334 UNIMPL 601 335 UNIMPL 602 336 UNIMPL 603 337 UNIMPL 604 338 UNIMPL 605 339 UNIMPL 606 340 UNIMPL 607 341 UNIMPL 608 342 UNIMPL 609 343 UNIMPL 610 344 UNIMPL 611 345 UNIMPL 612 346 UNIMPL 613 347 UNIMPL 614 348 UNIMPL 615 349 UNIMPL 616 350 UNIMPL 617 351 UNIMPL 618 352 UNIMPL 619 353 UNIMPL 620 354 UNIMPL 621 355 UNIMPL 622 356 UNIMPL 623 357 UNIMPL 624 358 UNIMPL 625 359 UNIMPL 626 360 UNIMPL 627 361 UNIMPL 628 362 UNIMPL 629 363 UNIMPL 630 364 UNIMPL 631 365 UNIMPL 632 366 UNIMPL 633 367 UNIMPL 634 368 UNIMPL 635 369 UNIMPL 636 370 UNIMPL 637 371 UNIMPL 638 372 UNIMPL 639 373 UNIMPL 640 374 UNIMPL 641 375 UNIMPL 642 376 UNIMPL 643 377 UNIMPL 644 378 UNIMPL 645 379 UNIMPL 646 380 UNIMPL 647 381 UNIMPL 648 382 UNIMPL 649 383 UNIMPL 650 384 UNIMPL 651 385 UNIMPL 652 386 UNIMPL 653 387 UNIMPL 654 388 UNIMPL 655 389 UNIMPL 656 390 UNIMPL 657 391 UNIMPL 658 392 UNIMPL 659 393 UNIMPL 660 394 UNIMPL 661 395 UNIMPL 662 396 UNIMPL 663 397 UNIMPL 664 398 UNIMPL 665 399 UNIMPL 666 400 UNIMPL 667 401 UNIMPL 668 402 UNIMPL 669 403 UNIMPL 670 404 UNIMPL 671 405 UNIMPL 672 406 UNIMPL 673 407 UNIMPL 674 408 UNIMPL 675 409 UNIMPL 676 410 UNIMPL 677 411 UNIMPL 678 412 UNIMPL 679 413 UNIMPL 680 414 UNIMPL 681 415 UNIMPL 682 416 UNIMPL 683 417 UNIMPL 684 418 UNIMPL 685 419 UNIMPL 686 420 UNIMPL 687 421 UNIMPL 688 422 UNIMPL 689 423 UNIMPL 690 424 UNIMPL pidfd_send_signal 691 425 UNIMPL io_uring_setup 692 426 UNIMPL io_uring_enter 693 427 UNIMPL io_uring_register 694 428 UNIMPL open_tree 695 429 UNIMPL move_mount 696 430 UNIMPL fsopen 697 431 UNIMPL fsconfig 698 432 UNIMPL fsmount 699 433 UNIMPL fspick 700 434 UNIMPL pidfd_open 701 435 STD { int|linux_sys||clone3( \ 702 struct linux_user_clone3_args *cl_args, \ 703 size_t size); } 704 436 STD { int|linux_sys||close_range(unsigned int first, \ 705 unsigned int last, unsigned int flags); } 706 437 UNIMPL openat2 707 438 UNIMPL pidfd_getfd 708 439 STD { int|linux_sys||faccessat2(int fd, const char *path, \ 709 int amode, int flags); } 710 711 ; we want a "nosys" syscall, we'll just add an extra entry for it. 712 440 STD { int|linux_sys||nosys(void); } 713 441 STD { int|linux_sys||epoll_pwait2(int epfd, \ 714 struct linux_epoll_event *events, int maxevents, \ 715 const struct linux_timespec *timeout, \ 716 const linux_sigset_t *sigmask); } 717