syscalls.master revision 1.85
1 $NetBSD: syscalls.master,v 1.85 2025/11/10 15:34:03 christos Exp $ 2 3; Derived from sys/compat/linux/arch/*/syscalls.master 4; and from Linux 2.4.12 arch/arm/kernel/calls.S 5 6; NetBSD/arm COMPAT_LINUX system call name/number "master" file. 7; (See syscalls.conf to see what it is processed into.) 8; 9; Fields: number type [type-dependent ...] 10; number system call number, must be in order 11; type one of STD, OBSOL, UNIMPL, NODEF, NOARGS, or one of 12; the compatibility options defined in syscalls.conf. 13; 14; types: 15; STD always included 16; OBSOL obsolete, not included in system 17; UNIMPL unimplemented, not included in system 18; NODEF included, but don't define the syscall number 19; NOARGS included, but don't define the syscall args structure 20; INDIR included, but don't define the syscall args structure 21; and allow it to be "really" varargs. 22; 23; The compat options are defined in the syscalls.conf file, and the 24; compat option name is prefixed to the syscall name. Other than 25; that, they're like NODEF (for 'compat' options), or STD (for 26; 'libcompat' options). 27; 28; The type-dependent arguments are as follows: 29; For STD, NODEF, NOARGS, and compat syscalls: 30; { pseudo-proto } [alias] 31; For other syscalls: 32; [comment] 33; 34; #ifdef's, etc. may be included, and are copied to the output files. 35; #include's are copied to the syscall names and switch definition files only. 36 37#include <sys/param.h> 38#include <sys/poll.h> 39#include <sys/systm.h> 40#include <sys/signal.h> 41#include <sys/mount.h> 42#include <sys/syscallargs.h> 43#include <sys/time.h> 44 45#include <compat/sys/time.h> 46#include <compat/linux/common/linux_types.h> 47#include <compat/linux/common/linux_mmap.h> 48#include <compat/linux/common/linux_signal.h> 49#include <compat/linux/common/linux_siginfo.h> 50#include <compat/linux/common/linux_machdep.h> 51#include <compat/linux/common/linux_mqueue.h> 52#include <compat/linux/common/linux_sched.h> 53 54 55#include <compat/linux/linux_syscallargs.h> 56 57%% 58; XXX We have to explicitly declare linux_sys_nosys. 590 NOARGS { int|linux_sys||nosys(void); } 601 STD { int|linux_sys||exit(int rval); } 612 NOARGS { int|sys||fork(void); } 623 NOARGS { ssize_t|sys||read(int fd, void *buf, size_t nbyte); } 634 NOARGS { ssize_t|sys||write(int fd, const void *buf, \ 64 size_t nbyte); } 655 STD { int|linux_sys||open(const char *path, int flags, \ 66 linux_umode_t mode); } 676 NOARGS { int|sys||close(int fd); } 687 STD { int|linux_sys||waitpid(int pid, int *status, \ 69 int options);} 708 STD { int|linux_sys||creat(const char *path, linux_umode_t mode); } 719 NOARGS { int|sys||link(const char *path, const char *link); } 7210 STD { int|linux_sys||unlink(const char *path); } 7311 NOARGS { int|sys||execve(const char *path, char **argp, \ 74 char **envp); } 7512 NOARGS { int|sys||chdir(const char *path); } 7613 STD { int|linux_sys||time(linux_time_t *t); } 7714 STD { int|linux_sys||mknod(const char *path, linux_umode_t mode, \ 78 unsigned dev); } 7915 NOARGS { int|sys||chmod(const char *path, int mode); } 8016 STD { int|linux_sys||lchown16(const char *path, \ 81 linux_uid16_t uid, linux_gid16_t gid); } 8217 OBSOL break 8318 OBSOL ostat 8419 NOARGS { long|compat_43_sys||lseek(int fd, long offset, \ 85 int whence); } 8620 NOARGS { pid_t|sys||getpid(void); } 8721 UNIMPL mount 8822 OBSOL umount 8923 NOARGS { int|sys||setuid(uid_t uid); } 9024 NOARGS { uid_t|sys||getuid(void); } 9125 STD { int|linux_sys||stime(linux_time_t *t); } 9226 STD { int|linux_sys||ptrace(int request, int pid, \ 93 int addr, int data); } 9427 STD { int|linux_sys||alarm(unsigned int secs); } 9528 OBSOL ofstat 9629 STD { int|linux_sys||pause(void); } 9730 STD { int|linux_sys||utime(const char *path, \ 98 struct linux_utimbuf *times); } 9931 OBSOL stty 10032 OBSOL gtty 10133 NOARGS { int|sys||access(const char *path, int flags); } 10234 STD { int|linux_sys||nice(int incr); } 10335 OBSOL ftime 10436 NOARGS { int|sys||sync(void); } 10537 STD { int|linux_sys||kill(int pid, int signum); } 10638 NOARGS { int|sys||__posix_rename(const char *from, \ 107 const char *to); } 10839 NOARGS { int|sys||mkdir(const char *path, linux_umode_t mode); } 10940 NOARGS { int|sys||rmdir(const char *path); } 11041 NOARGS { int|sys||dup(int fd); } 11142 STD { int|linux_sys||pipe(int *pfds); } 11243 STD { int|linux_sys||times(struct times *tms); } 11344 OBSOL prof 11445 STD { int|linux_sys||brk(char *nsize); } 11546 NOARGS { int|sys||setgid(gid_t gid); } 11647 NOARGS { gid_t|sys||getgid(void); } 11748 STD { int|linux_sys||signal(int signum, \ 118 linux_handler_t handler); } 11949 NOARGS { uid_t|sys||geteuid(void); } 12050 NOARGS { gid_t|sys||getegid(void); } 12151 NOARGS { int|sys||acct(char *path); } 12252 UNIMPL umount 12353 OBSOL lock 12454 STD { int|linux_sys||ioctl(int fd, u_long com, \ 125 void *data); } 12655 STD { int|linux_sys||fcntl(int fd, int cmd, void *arg); } 12756 OBSOL mpx 12857 NOARGS { int|sys||setpgid(int pid, int pgid); } 12958 OBSOL ulimit 13059 STD { int|linux_sys||oldolduname( \ 131 struct linux_oldold_utsname *up); } 13260 NOARGS { int|sys||umask(int newmask); } 13361 NOARGS { int|sys||chroot(char *path); } 13462 UNIMPL ustat 13563 NOARGS { int|sys||dup2(int from, int to); } 13664 NOARGS { pid_t|sys||getppid(void); } 13765 NOARGS { int|sys||getpgrp(void); } 13866 NOARGS { int|sys||setsid(void); } 13967 STD { int|linux_sys||sigaction(int signum, \ 140 const struct linux_old_sigaction *nsa, \ 141 struct linux_old_sigaction *osa); } 14268 STD { int|linux_sys||siggetmask(void); } 14369 STD { int|linux_sys||sigsetmask(linux_old_sigset_t mask); } 14470 STD { int|linux_sys||setreuid16(linux_uid16_t ruid, \ 145 linux_uid16_t euid); } 14671 STD { int|linux_sys||setregid16(linux_gid16_t rgid, \ 147 linux_gid16_t egid); } 14872 STD { int|linux_sys||sigsuspend(void *restart, \ 149 int oldmask, int mask); } 15073 STD { int|linux_sys||sigpending(linux_old_sigset_t *set); } 15174 NOARGS { int|compat_43_sys||sethostname(char *hostname, \ 152 u_int len);} 15375 STD { int|linux_sys||setrlimit(u_int which, \ 154 struct orlimit *rlp); } 15576 STD { int|linux_sys||getrlimit(u_int which, \ 156 struct orlimit *rlp); } 15777 NOARGS { int|compat_50_sys||getrusage(int who, struct rusage50 *rusage); } 15878 STD { int|linux_sys||gettimeofday(struct timeval50 *tp, \ 159 struct timezone *tzp); } 16079 STD { int|linux_sys||settimeofday(struct timeval50 *tp, \ 161 struct timezone *tzp); } 16280 STD { int|linux_sys||getgroups16(int gidsetsize, \ 163 linux_gid16_t *gidset); } 16481 STD { int|linux_sys||setgroups16(int gidsetsize, \ 165 linux_gid16_t *gidset); } 16682 STD { int|linux_sys||oldselect(struct linux_oldselect *lsp); } 16783 NOARGS { int|sys||symlink(const char *path, const char *link); } 16884 NOARGS { int|compat_43_sys||lstat(const char *path, \ 169 struct stat43 *ub); } oolstat 17085 NOARGS { ssize_t|sys||readlink(const char *path, char *buf, \ 171 int count); } 172#ifdef EXEC_AOUT 17386 STD { int|linux_sys||uselib(const char *path); } 174#else 17586 EXCL uselib 176#endif 17787 STD { int|linux_sys||swapon(char *name); } 17888 STD { int|linux_sys||reboot(int magic1, int magic2, \ 179 int cmd, void *arg); } 18089 STD { int|linux_sys||readdir(int fd, void *dent, \ 181 unsigned int count); } 18290 STD { int|linux_sys||old_mmap(struct linux_oldmmap *lmp); } 18391 NOARGS { int|sys||munmap(void *addr, size_t len); } 18492 NOARGS { int|compat_43_sys||truncate(const char *path, \ 185 long length); } 18693 NOARGS { int|compat_43_sys||ftruncate(int fd, long length); } 18794 NOARGS { int|sys||fchmod(int fd, linux_umode_t mode); } 18895 STD { int|linux_sys||fchown16(int fd, linux_uid16_t uid, \ 189 linux_gid16_t gid); } 19096 STD { int|linux_sys||getpriority(int which, int who); } 19197 NOARGS { int|sys||setpriority(int which, int who, int prio); } 19298 NOARGS { int|sys||profil(void *samples, u_int size, \ 193 u_int offset, u_int scale); } 19499 STD { int|linux_sys||statfs(const char *path, \ 195 struct linux_statfs *sp); } 196100 STD { int|linux_sys||fstatfs(int fd, \ 197 struct linux_statfs *sp); } 198101 UNIMPL 199102 STD { int|linux_sys||socketcall(int what, void *args); } 200103 UNIMPL syslog 201104 NOARGS { int|compat_50_sys||setitimer(int which, \ 202 struct itimerval50 *itv, \ 203 struct itimerval50 *oitv); } 204105 NOARGS { int|compat_50_sys||getitimer(int which, \ 205 struct itimerval50 *itv); } 206106 STD { int|linux_sys||stat(const char *path, \ 207 struct linux_stat *sp); } 208107 STD { int|linux_sys||lstat(const char *path, \ 209 struct linux_stat *sp); } 210108 STD { int|linux_sys||fstat(int fd, struct linux_stat *sp); } 211109 STD { int|linux_sys||olduname(struct linux_oldutsname *up); } 212110 UNIMPL 213111 UNIMPL vhangup 214112 UNIMPL idle 215113 UNIMPL syscall 216114 STD { int|linux_sys||wait4(int pid, int *status, \ 217 int options, struct rusage50 *rusage); } 218115 STD { int|linux_sys||swapoff(const char *path); } 219116 STD { int|linux_sys||sysinfo(struct linux_sysinfo *arg); } 220117 STD { int|linux_sys||ipc(int what, int a1, int a2, int a3, \ 221 void *ptr); } 222118 NOARGS { int|sys||fsync(int fd); } 223119 STD { int|linux_sys||sigreturn(struct linux_sigcontext *scp); } 224120 STD { int|linux_sys||clone(int flags, void *stack, \ 225 void *parent_tidptr, void *tls, void *child_tidptr); } 226121 STD { int|linux_sys||setdomainname(char *domainname, \ 227 int len); } 228122 STD { int|linux_sys||uname(struct linux_utsname *up); } 229123 UNIMPL modify_ldt 230124 UNIMPL adjtimex 231125 STD { int|linux_sys||mprotect(const void *start, \ 232 unsigned long len, int prot); } 233126 STD { int|linux_sys||sigprocmask(int how, \ 234 const linux_old_sigset_t *set, \ 235 linux_old_sigset_t *oset); } 236127 UNIMPL create_module 237128 UNIMPL init_module 238129 UNIMPL delete_module 239130 UNIMPL get_kernel_syms 240131 UNIMPL quotactl 241132 NOARGS { pid_t|sys||getpgid(pid_t pid); } 242133 NOARGS { int|sys||fchdir(int fd); } 243134 UNIMPL bdflush 244135 UNIMPL sysfs 245136 STD { int|linux_sys||personality(unsigned long per); } 246137 UNIMPL afs_syscall 247138 STD { int|linux_sys||setfsuid(uid_t uid); } 248139 STD { int|linux_sys||setfsgid(gid_t gid); } 249140 STD { int|linux_sys||llseek(int fd, u_int32_t ohigh, \ 250 u_int32_t olow, void *res, int whence); } 251141 STD { int|linux_sys||getdents(int fd, \ 252 struct linux_dirent *dent, unsigned int count); } 253142 STD { int|linux_sys||select(int nfds, fd_set *readfds, \ 254 fd_set *writefds, fd_set *exceptfds, \ 255 struct timeval50 *timeout); } 256143 NOARGS { int|sys||flock(int fd, int how); } 257144 NOARGS { int|sys|13|msync(void *addr, size_t len, int flags); } 258145 NOARGS { ssize_t|sys||readv(int fd, \ 259 const struct iovec *iovp, int iovcnt); } 260146 NOARGS { ssize_t|sys||writev(int fd, \ 261 const struct iovec *iovp, int iovcnt); } 262147 NOARGS { pid_t|sys||getsid(pid_t pid); } 263148 STD { int|linux_sys||fdatasync(int fd); } 264149 STD { int|linux_sys||__sysctl(struct linux___sysctl *lsp); } 265150 NOARGS { int|sys||mlock(void *addr, size_t len); } 266151 NOARGS { int|sys||munlock(void *addr, size_t len); } 267152 NOARGS { int|sys||mlockall(int flags); } 268153 NOARGS { int|sys||munlockall(void); } 269154 STD { int|linux_sys||sched_setparam(pid_t pid, \ 270 const struct linux_sched_param *sp); } 271155 STD { int|linux_sys||sched_getparam(pid_t pid, \ 272 struct linux_sched_param *sp); } 273156 STD { int|linux_sys||sched_setscheduler(pid_t pid, \ 274 int policy, const struct linux_sched_param *sp); } 275157 STD { int|linux_sys||sched_getscheduler(pid_t pid); } 276158 STD { int|linux_sys||sched_yield(void); } 277159 STD { int|linux_sys||sched_get_priority_max(int policy); } 278160 STD { int|linux_sys||sched_get_priority_min(int policy); } 279161 UNIMPL sched_rr_get_interval 280162 STD { int|linux_sys||nanosleep( \ 281 const struct linux_timespec *rqtp, \ 282 struct linux_timespec *rmtp); } 283163 STD { void *|linux_sys||mremap(void *old_address, \ 284 size_t old_size, size_t new_size, u_long flags); } 285164 STD { int|linux_sys||setresuid16(linux_uid16_t ruid, \ 286 linux_uid16_t euid, linux_uid16_t suid); } 287165 STD { int|linux_sys||getresuid16(linux_uid16_t *ruid, \ 288 linux_uid16_t *euid, linux_uid16_t *suid); } 289166 UNIMPL 290167 UNIMPL query_module 291168 NOARGS { int|sys||poll(struct pollfd *fds, u_int nfds, \ 292 int timeout); } 293169 UNIMPL nfsservctl 294170 STD { int|linux_sys||setresgid16(linux_gid16_t rgid, \ 295 linux_gid16_t egid, linux_gid16_t sgid); } 296171 STD { int|linux_sys||getresgid16(linux_gid16_t *rgid, \ 297 linux_gid16_t *egid, linux_gid16_t *sgid); } 298172 INDIR { int|linux_sys||__prctl(int code, \ 299 ... void * args[SYS_MAXSYSARGS]); } 300173 UNIMPL rt_sigreturn 301;173 STD { int|linux_sys||rt_sigreturn( \ 302; struct linux_rt_sigframe *sfp); } 303174 STD { int|linux_sys||rt_sigaction(int signum, \ 304 const struct linux_sigaction *nsa, \ 305 struct linux_sigaction *osa, \ 306 size_t sigsetsize); } 307175 STD { int|linux_sys||rt_sigprocmask(int how, \ 308 const linux_sigset_t *set, \ 309 linux_sigset_t *oset, \ 310 size_t sigsetsize); } 311176 STD { int|linux_sys||rt_sigpending( \ 312 linux_sigset_t *set, \ 313 size_t sigsetsize); } 314177 STD { int|linux_sys||rt_sigtimedwait( \ 315 const linux_sigset_t *set, \ 316 linux_siginfo_t *info, \ 317 const struct linux_timespec *timeout); } 318178 STD { int|linux_sys||rt_queueinfo(int pid, int signum, \ 319 linux_siginfo_t *uinfo); } 320179 STD { int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \ 321 size_t sigsetsize); } 322180 STD { int|linux_sys||pread(int fd, char *buf, \ 323 size_t nbyte, off_t offset); } 324181 STD { int|linux_sys||pwrite(int fd, char *buf, \ 325 size_t nbyte, off_t offset); } 326182 STD { int|linux_sys||chown16(const char *path, \ 327 linux_uid16_t uid, linux_gid16_t gid); } 328183 NOARGS { int|sys||__getcwd(char *bufp, size_t length); } 329184 UNIMPL capget 330185 UNIMPL capset 331186 STD { int|linux_sys||sigaltstack( \ 332 const struct linux_sigaltstack *ss, \ 333 struct linux_sigaltstack *oss); } 334187 UNIMPL sendfile 335188 UNIMPL getpmsg 336189 UNIMPL putpmsg 337190 NOARGS vfork { int|sys|14|vfork(void); } 338191 STD { int|linux_sys||ugetrlimit(int which, \ 339 struct rlimit *rlp); } 340#define linux_sys_mmap2_args linux_sys_mmap_args 341192 NOARGS { linux_off_t|linux_sys||mmap2(unsigned long addr, \ 342 size_t len, int prot, int flags, int fd, \ 343 linux_off_t offset); } 344193 STD { int|linux_sys||truncate64(const char *path, \ 345 off_t length); } 346194 STD { int|linux_sys||ftruncate64(unsigned int fd, \ 347 off_t length); } 348195 STD { int|linux_sys||stat64(const char *path, \ 349 struct linux_stat64 *sp); } 350196 STD { int|linux_sys||lstat64(const char *path, \ 351 struct linux_stat64 *sp); } 352197 STD { int|linux_sys||fstat64(int fd, \ 353 struct linux_stat64 *sp); } 354198 NOARGS { int|sys||__posix_lchown(const char *path, uid_t uid, \ 355 gid_t gid); } 356199 NOARGS getuid32 { uid_t|sys||getuid(void); } 357200 NOARGS getgid32 { gid_t|sys||getgid(void); } 358201 NOARGS geteuid32 { uid_t|sys||geteuid(void); } 359202 NOARGS getegid32 { gid_t|sys||getegid(void); } 360203 NOARGS setreuid32 { int|sys||setreuid(uid_t ruid, \ 361 uid_t euid); } 362204 NOARGS setregid32 { int|sys||setregid(gid_t rgid, \ 363 gid_t egid); } 364205 NOARGS getgroups32 { int|sys||getgroups(int gidsetsize, \ 365 gid_t *gidset); } 366206 NOARGS setgroups32 { int|sys||setgroups(int gidsetsize, \ 367 gid_t *gidset); } 368207 NOARGS fchown32 { int|sys||__posix_fchown(int fd, uid_t uid, \ 369 gid_t gid); } 370208 STD setresuid32 { int|linux_sys||setresuid(uid_t ruid, \ 371 uid_t euid, uid_t suid); } 372209 STD getresuid32 { int|linux_sys||getresuid(uid_t *ruid, \ 373 uid_t *euid, uid_t *suid); } 374210 STD setresgid32 { int|linux_sys||setresgid(gid_t rgid, \ 375 gid_t egid, gid_t sgid); } 376211 STD getresgid32 { int|linux_sys||getresgid(gid_t *rgid, \ 377 gid_t *egid, gid_t *sgid); } 378212 NOARGS chown32 { int|sys||__posix_chown(const char *path, \ 379 uid_t uid, gid_t gid); } 380213 NOARGS setuid32 { int|sys||setuid(uid_t uid); } 381214 NOARGS setgid32 { int|sys||setgid(gid_t gid); } 382215 NOARGS setfsuid32 { int|linux_sys||setfsuid(uid_t uid); } 383216 NOARGS setfsgid32 { int|linux_sys||setfsgid(gid_t gid); } 384217 STD { int|linux_sys||getdents64(int fd, \ 385 struct linux_dirent64 *dent, unsigned int count); } 386218 UNIMPL pivot_root 387219 NOARGS { int|sys||mincore(void *addr, size_t len, char *vec); } 388220 NOARGS { int|sys||madvise(void *addr, size_t len, int behav); } 389221 STD { int|linux_sys||fcntl64(int fd, int cmd, void *arg); } 390222 UNIMPL /* for tux */ 391223 UNIMPL /* unused */ 392224 NOARGS { pid_t|linux_sys||gettid(void); } 393225 STD { ssize_t|linux_sys||readahead(int fd, off_t offset, \ 394 size_t count); } 395226 STD { int|linux_sys||setxattr(char *path, char *name, \ 396 void *value, size_t size, int flags); } 397227 STD { int|linux_sys||lsetxattr(char *path, char *name, \ 398 void *value, size_t size, int flags); } 399228 STD { int|linux_sys||fsetxattr(int fd, char *name, \ 400 void *value, size_t size, int flags); } 401229 STD { ssize_t|linux_sys||getxattr(char *path, char *name, \ 402 void *value, size_t size); } 403230 STD { ssize_t|linux_sys||lgetxattr(char *path, char *name, \ 404 void *value, size_t size); } 405231 STD { ssize_t|linux_sys||fgetxattr(int fd, char *name, \ 406 void *value, size_t size); } 407232 STD { ssize_t|linux_sys||listxattr(char *path, char *list, \ 408 size_t size); } 409233 STD { ssize_t|linux_sys||llistxattr(char *path, char *list, \ 410 size_t size); } 411234 STD { ssize_t|linux_sys||flistxattr(int fd, char *list, \ 412 size_t size); } 413235 STD { int|linux_sys||removexattr(char *path, char *name); } 414236 STD { int|linux_sys||lremovexattr(char *path, char *name); } 415237 STD { int|linux_sys||fremovexattr(int fd, char *name); } 416238 STD { int|linux_sys||tkill(int tid, int sig); } 417239 UNIMPL sendfile64 418240 STD { int|linux_sys||futex(int *uaddr, int op, int val, \ 419 const struct linux_timespec *timeout, int *uaddr2, \ 420 int val3); } 421241 STD { int|linux_sys||sched_setaffinity(pid_t pid, \ 422 unsigned int len, unsigned long *mask); } 423242 STD { int|linux_sys||sched_getaffinity(pid_t pid, \ 424 unsigned int len, unsigned long *mask); } 425243 UNIMPL io_setup 426244 UNIMPL io_destroy 427245 UNIMPL io_getevents 428246 UNIMPL io_submit 429247 UNIMPL io_cancel 430248 STD { int|linux_sys||exit_group(int error_code); } 431249 UNIMPL lookup_dcookie 432250 STD { int|linux_sys||epoll_create(int size); } 433251 STD { int|linux_sys||epoll_ctl(int epfd, int op, int fd, \ 434 struct linux_epoll_event *event); } 435252 STD { int|linux_sys||epoll_wait(int epfd, \ 436 struct linux_epoll_event *events, int maxevents, \ 437 int timeout); } 438253 UNIMPL remap_file_pages 439254 UNIMPL set_thread_area 440255 UNIMPL get_thread_area 441256 STD { int|linux_sys||set_tid_address(int *tid); } 442257 STD { int|linux_sys||timer_create(clockid_t clockid, \ 443 struct linux_sigevent *evp, timer_t *timerid); } 444258 STD { int|linux_sys||timer_settime(timer_t timerid, \ 445 int flags, const struct linux_itimerspec *tim, \ 446 struct linux_itimerspec *otim); } 447259 STD { int|linux_sys||timer_gettime(timer_t timerid, \ 448 struct linux_itimerspec *tim); } 449260 NOARGS { int|sys||timer_getoverrun(timer_t timerid); } 450261 NOARGS { int|sys||timer_delete(timer_t timerid); } 451262 STD { int|linux_sys||clock_settime(clockid_t which, \ 452 struct linux_timespec *tp); } 453263 STD { int|linux_sys||clock_gettime(clockid_t which, \ 454 struct linux_timespec *tp); } 455264 STD { int|linux_sys||clock_getres(clockid_t which, \ 456 struct linux_timespec *tp); } 457265 STD { int|linux_sys||clock_nanosleep(clockid_t which, \ 458 int flags, struct linux_timespec *rqtp, \ 459 struct linux_timespec *rmtp); } 460266 STD { int|linux_sys||statfs64(const char *path, \ 461 size_t sz, struct linux_statfs64 *sp); } 462267 STD { int|linux_sys||fstatfs64(int fd, \ 463 size_t sz, struct linux_statfs64 *sp); } 464268 STD { int|linux_sys||tgkill(int tgid, int tid, int sig); } 465269 NOARGS { int|compat_50_sys||utimes(const char *path, \ 466 const struct timeval50 *tptr); } 467270 STD { int|linux_sys||fadvise64_64(int fd, off_t offset, \ 468 off_t len, int advice); } 469271 UNIMPL pciconfig_iobase 470272 UNIMPL pciconfig_read 471273 UNIMPL pciconfig_write 472274 STD { linux_mqd_t|linux_sys||mq_open(const char *name, \ 473 int oflag, linux_umode_t mode, \ 474 struct linux_mq_attr *attr); } 475275 STD { int|linux_sys||mq_unlink(const char *name); } 476276 STD { int|linux_sys||mq_timedsend(linux_mqd_t mqdes, \ 477 const char *msg_ptr, size_t msg_len, \ 478 unsigned int msg_prio, \ 479 const struct linux_timespec *abs_timeout); } 480277 STD { ssize_t|linux_sys||mq_timedreceive(linux_mqd_t mqdes, \ 481 char *msg_ptr, size_t msg_len, \ 482 unsigned int *msg_prio, \ 483 const struct linux_timespec *abs_timeout); } 484278 STD { int|linux_sys||mq_notify(linux_mqd_t mqdes, \ 485 const struct linux_sigevent *sevp); } 486279 STD { int|linux_sys||mq_getsetattr(linux_mqd_t mqdes, \ 487 const struct linux_mq_attr *newattr, \ 488 struct linux_mq_attr *oldattr); } 489280 STD { int|linux_sys||waitid(int idtype, id_t id, \ 490 linux_siginfo_t *infop, int options, \ 491 struct rusage50 *rusage); } 492281 UNIMPL socket 493282 UNIMPL bind 494283 UNIMPL connect 495284 UNIMPL listen 496285 UNIMPL accept 497286 UNIMPL getsockname 498287 UNIMPL getpeername 499288 UNIMPL socketpair 500289 UNIMPL send 501290 UNIMPL sendto 502291 UNIMPL recv 503292 UNIMPL recvfrom 504293 UNIMPL shutdown 505294 UNIMPL setsockopt 506295 UNIMPL getsockopt 507296 UNIMPL sendmsg 508297 UNIMPL recvmsg 509298 UNIMPL semop 510299 UNIMPL semget 511300 UNIMPL semctl 512301 UNIMPL msgsnd 513302 UNIMPL msgrcv 514303 UNIMPL msgget 515304 UNIMPL msgctl 516305 UNIMPL shmat 517306 UNIMPL shmdt 518307 UNIMPL shmget 519308 UNIMPL shmctl 520309 UNIMPL add_key 521310 UNIMPL request_key 522311 UNIMPL keyctl 523312 STD { int|linux_sys||semtimedop(int semid, \ 524 struct sembuf *sops, size_t nsops, \ 525 struct linux_timespec *timeout); } 526313 UNIMPL vserver 527314 UNIMPL ioptio_set 528315 UNIMPL ioptio_get 529316 STD { int|linux_sys||inotify_init(void); } 530317 STD { int|linux_sys||inotify_add_watch(int fd, \ 531 const char *pathname, uint32_t mask); } 532318 STD { int|linux_sys||inotify_rm_watch(int fd, int wd); } 533319 UNIMPL mbind 534320 UNIMPL get_mempolicy 535321 UNIMPL set_mempolicy 536322 STD { int|linux_sys||openat(int fd, const char *path, \ 537 int flags, ... linux_umode_t mode); } 538323 NOARGS { int|sys||mkdirat(int fd, const char *path, \ 539 linux_umode_t mode); } 540324 STD { int|linux_sys||mknodat(int fd, const char *path, \ 541 linux_umode_t mode, unsigned dev); } 542325 STD { int|linux_sys||fchownat(int fd, const char *path, \ 543 uid_t owner, gid_t group, int flag); } 544326 UNIMPL futimesat 545327 STD { int|linux_sys||fstatat64(int fd, const char *path, \ 546 struct linux_stat64 *sp, int flag); } 547328 STD { int|linux_sys||unlinkat(int fd, const char *path, \ 548 int flag); } 549329 NOARGS { int|sys||renameat(int fromfd, const char *from, \ 550 int tofd, const char *to); } 551330 STD { int|linux_sys||linkat(int fd1, const char *name1, \ 552 int fd2, const char *name2, int flags); } 553331 NOARGS { int|sys||symlinkat(const char *path1, int fd, \ 554 const char *path2); } 555332 NOARGS { ssize_t|sys||readlinkat(int fd, const char *path, \ 556 char *buf, size_t bufsize); } 557333 STD { int|linux_sys||fchmodat(int fd, const char *path, \ 558 linux_umode_t mode); } 559334 STD { int|linux_sys||faccessat(int fd, const char *path, \ 560 int amode); } 561335 STD { int|linux_sys||pselect6(int nfds, fd_set *readfds, \ 562 fd_set *writefds, fd_set *exceptfds, \ 563 struct linux_timespec *timeout, \ 564 linux_sized_sigset_t *ss); } 565336 STD { int|linux_sys||ppoll(struct pollfd *fds, u_int nfds, \ 566 struct linux_timespec *timeout, \ 567 linux_sigset_t *sigset); } 568337 UNIMPL unshare 569 ; 570 ; The NetBSD native robust list calls have different 571 ; argument names / types, but they are ABI-compatible 572 ; with Linux. 573 ; 574338 NOARGS { int|sys||__futex_set_robust_list(void *head, \ 575 size_t len); } 576339 NOARGS { int|sys||__futex_get_robust_list(lwpid_t lwpid, \ 577 void **headp, size_t *lenp); } 578340 UNIMPL splice 579341 STD { int|linux_sys||sync_file_range(int fd, \ 580 off_t offset, off_t nbytes, unsigned int flags); } 581342 UNIMPL tee 582343 UNIMPL vmsplice 583344 UNIMPL move_pages 584345 STD { int|linux_sys||getcpu(unsigned int *cpu, \ 585 unsigned int *node, \ 586 struct linux_getcpu_cache *tcache); } 587346 STD { int|linux_sys||epoll_pwait(int epfd, \ 588 struct linux_epoll_event *events, int maxevents, \ 589 int timeout, const linux_sigset_t *sigmask); } 590347 UNIMPL kexec_load 591348 STD { int|linux_sys||utimensat(int fd, const char *path, \ 592 struct linux_timespec *times, int flag); } 593349 UNIMPL signalfd 594350 STD { int|linux_sys||timerfd_create(clockid_t clock_id, \ 595 int flags); } 596351 STD { int|linux_sys||eventfd(unsigned int initval); } 597352 STD { int|linux_sys||fallocate(int fd, int mode, \ 598 off_t offset, off_t len); } 599353 STD { int|linux_sys||timerfd_settime(int fd, int flags, \ 600 const struct linux_itimerspec *tim, \ 601 struct linux_itimerspec *otim); } 602354 STD { int|linux_sys||timerfd_gettime(int fd, \ 603 struct linux_itimerspec *tim); } 604355 UNIMPL signalfd4 605356 STD { int|linux_sys||eventfd2(unsigned int initval, \ 606 int flags); } 607357 STD { int|linux_sys||epoll_create1(int flags); } 608358 STD { int|linux_sys||dup3(int from, int to, int flags); } 609359 STD { int|linux_sys||pipe2(int *pfds, int flags); } 610360 STD { int|linux_sys||inotify_init1(int flags); } 611361 STD { int|linux_sys||preadv(int fd, \ 612 const struct iovec *iovp, int iovcnt, \ 613 unsigned long off_lo, unsigned long off_hi); } 614362 STD { int|linux_sys||pwritev(int fd, \ 615 const struct iovcnt *iovp, int iovcnt, \ 616 unsigned long off_lo, unsigned long off_hi); } 617363 UNIMPL rt_tgsigqueueinfo 618364 UNIMPL perf_counter_open 619365 STD { int|linux_sys||recvmmsg(int s, \ 620 struct linux_mmsghdr *msgvec, unsigned int vlen, \ 621 unsigned int flags, struct timespec *timeout); } 622366 STD { int|linux_sys||accept4(int s, \ 623 struct osockaddr *name, \ 624 int *anamelen, int flags); } 625367 UNIMPL fanotify_init 626368 UNIMPL fanotify_mark 627369 STD { int|linux_sys||prlimit64(pid_t pid, int which, \ 628 struct rlimit *new_rlp, struct rlimit *old_rlp); } 629370 UNIMPL name_to_handle_at 630371 UNIMPL open_by_handle_at 631372 UNIMPL clock_adjtime 632373 STD { int|linux_sys||syncfs(int fd); } 633374 STD { int|linux_sys||sendmmsg(int s, \ 634 struct linux_mmsghdr *msgvec, unsigned int vlen, \ 635 unsigned int flags); } 636375 UNIMPL setns 637376 UNIMPL process_vm_readv 638377 UNIMPL process_vm_writev 639378 UNIMPL kcmp 640379 UNIMPL finit_module 641380 UNIMPL sched_setattr 642381 UNIMPL sched_getattr 643382 STD { int|linux_sys||renameat2(int fromfd, \ 644 const char *from, int tofd, const char *to, \ 645 unsigned int flags); } 646383 UNIMPL seccomp 647; XXX FIX-me? 648; 384 NOARGS { ssize_t|sys||getrandom(void *buf, size_t buflen, \ 649 unsigned int flags); } 650; 385 UNIMPL memfd_create 651 652; ARMLinux actually has two ranges of syscalls. Normal syscalls use 653; SWI numbers starting at 0x900000 (__NR_SYSCALL_BASE). Special 654; ARM-specific syscalls use SWI numbers starting at 0x9f0000 655; (__ARM_NR_BASE). linux_syscall() (in arch/arm/arm/linux_syscall.c) 656; remaps these down to 0x900180 so that we can use one linux_sysent 657; array for the whole lot. 658 659384 UNIMPL /* base */ 660385 STD { int|linux_sys||breakpoint(void); } 661386 STD { int|linux_sys||cacheflush(uintptr_t from, \ 662 intptr_t to, int flags); } 663387 UNIMPL usr26 664388 UNIMPL usr32 665389 STD { int|linux_sys||set_tls(void *tls); } 666390 UNIMPL 667391 STD { ssize_t|linux_sys||copy_file_range(int fd_in, \ 668 off_t * off_in, int fd_out, off_t * off_out, \ 669 size_t len, unsigned int flags); } 670392 UNIMPL 671393 UNIMPL 672394 UNIMPL 673395 UNIMPL 674396 UNIMPL 675397 STD { int|linux_sys||statx(int fd, const char *path, \ 676 int flag, unsigned int mask, \ 677 struct linux_statx *sp); } 678398 UNIMPL 679399 UNIMPL 680400 UNIMPL 681401 UNIMPL 682402 UNIMPL 683403 UNIMPL 684404 UNIMPL 685405 UNIMPL 686406 UNIMPL 687407 UNIMPL 688408 UNIMPL 689409 UNIMPL 690410 UNIMPL 691411 UNIMPL 692412 UNIMPL 693413 UNIMPL 694414 UNIMPL 695415 UNIMPL 696416 UNIMPL 697417 UNIMPL 698418 UNIMPL 699419 UNIMPL 700420 UNIMPL 701421 UNIMPL 702422 UNIMPL 703423 UNIMPL 704424 UNIMPL 705425 UNIMPL 706426 UNIMPL 707427 UNIMPL 708428 UNIMPL 709429 UNIMPL 710430 UNIMPL 711431 UNIMPL 712432 UNIMPL 713433 UNIMPL 714434 UNIMPL 715435 STD { int|linux_sys||clone3( \ 716 struct linux_user_clone3_args *cl_args, \ 717 size_t size); } 718436 STD { int|linux_sys||close_range(unsigned int first, \ 719 unsigned int last, unsigned int flags); } 720437 UNIMPL 721438 UNIMPL 722439 STD { int|linux_sys||faccessat2(int fd, const char *path, \ 723 int amode, int flags); } 724440 UNIMPL 725441 STD { int|linux_sys||epoll_pwait2(int epfd, \ 726 struct linux_epoll_event *events, int maxevents, \ 727 const struct linux_timespec *timeout, \ 728 const linux_sigset_t *sigmask); } 729