syscalls.master revision 1.83
1 $NetBSD: syscalls.master,v 1.83 2025/10/26 16:23:59 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 UNIMPL prctl 299173 UNIMPL rt_sigreturn 300;173 STD { int|linux_sys||rt_sigreturn( \ 301; struct linux_rt_sigframe *sfp); } 302174 STD { int|linux_sys||rt_sigaction(int signum, \ 303 const struct linux_sigaction *nsa, \ 304 struct linux_sigaction *osa, \ 305 size_t sigsetsize); } 306175 STD { int|linux_sys||rt_sigprocmask(int how, \ 307 const linux_sigset_t *set, \ 308 linux_sigset_t *oset, \ 309 size_t sigsetsize); } 310176 STD { int|linux_sys||rt_sigpending( \ 311 linux_sigset_t *set, \ 312 size_t sigsetsize); } 313177 STD { int|linux_sys||rt_sigtimedwait( \ 314 const linux_sigset_t *set, \ 315 linux_siginfo_t *info, \ 316 const struct linux_timespec *timeout); } 317178 STD { int|linux_sys||rt_queueinfo(int pid, int signum, \ 318 linux_siginfo_t *uinfo); } 319179 STD { int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \ 320 size_t sigsetsize); } 321180 STD { int|linux_sys||pread(int fd, char *buf, \ 322 size_t nbyte, off_t offset); } 323181 STD { int|linux_sys||pwrite(int fd, char *buf, \ 324 size_t nbyte, off_t offset); } 325182 STD { int|linux_sys||chown16(const char *path, \ 326 linux_uid16_t uid, linux_gid16_t gid); } 327183 NOARGS { int|sys||__getcwd(char *bufp, size_t length); } 328184 UNIMPL capget 329185 UNIMPL capset 330186 STD { int|linux_sys||sigaltstack( \ 331 const struct linux_sigaltstack *ss, \ 332 struct linux_sigaltstack *oss); } 333187 UNIMPL sendfile 334188 UNIMPL getpmsg 335189 UNIMPL putpmsg 336190 NOARGS vfork { int|sys|14|vfork(void); } 337191 STD { int|linux_sys||ugetrlimit(int which, \ 338 struct rlimit *rlp); } 339#define linux_sys_mmap2_args linux_sys_mmap_args 340192 NOARGS { linux_off_t|linux_sys||mmap2(unsigned long addr, \ 341 size_t len, int prot, int flags, int fd, \ 342 linux_off_t offset); } 343193 STD { int|linux_sys||truncate64(const char *path, \ 344 off_t length); } 345194 STD { int|linux_sys||ftruncate64(unsigned int fd, \ 346 off_t length); } 347195 STD { int|linux_sys||stat64(const char *path, \ 348 struct linux_stat64 *sp); } 349196 STD { int|linux_sys||lstat64(const char *path, \ 350 struct linux_stat64 *sp); } 351197 STD { int|linux_sys||fstat64(int fd, \ 352 struct linux_stat64 *sp); } 353198 NOARGS { int|sys||__posix_lchown(const char *path, uid_t uid, \ 354 gid_t gid); } 355199 NOARGS getuid32 { uid_t|sys||getuid(void); } 356200 NOARGS getgid32 { gid_t|sys||getgid(void); } 357201 NOARGS geteuid32 { uid_t|sys||geteuid(void); } 358202 NOARGS getegid32 { gid_t|sys||getegid(void); } 359203 NOARGS setreuid32 { int|sys||setreuid(uid_t ruid, \ 360 uid_t euid); } 361204 NOARGS setregid32 { int|sys||setregid(gid_t rgid, \ 362 gid_t egid); } 363205 NOARGS getgroups32 { int|sys||getgroups(int gidsetsize, \ 364 gid_t *gidset); } 365206 NOARGS setgroups32 { int|sys||setgroups(int gidsetsize, \ 366 gid_t *gidset); } 367207 NOARGS fchown32 { int|sys||__posix_fchown(int fd, uid_t uid, \ 368 gid_t gid); } 369208 STD setresuid32 { int|linux_sys||setresuid(uid_t ruid, \ 370 uid_t euid, uid_t suid); } 371209 STD getresuid32 { int|linux_sys||getresuid(uid_t *ruid, \ 372 uid_t *euid, uid_t *suid); } 373210 STD setresgid32 { int|linux_sys||setresgid(gid_t rgid, \ 374 gid_t egid, gid_t sgid); } 375211 STD getresgid32 { int|linux_sys||getresgid(gid_t *rgid, \ 376 gid_t *egid, gid_t *sgid); } 377212 NOARGS chown32 { int|sys||__posix_chown(const char *path, \ 378 uid_t uid, gid_t gid); } 379213 NOARGS setuid32 { int|sys||setuid(uid_t uid); } 380214 NOARGS setgid32 { int|sys||setgid(gid_t gid); } 381215 NOARGS setfsuid32 { int|linux_sys||setfsuid(uid_t uid); } 382216 NOARGS setfsgid32 { int|linux_sys||setfsgid(gid_t gid); } 383217 STD { int|linux_sys||getdents64(int fd, \ 384 struct linux_dirent64 *dent, unsigned int count); } 385218 UNIMPL pivot_root 386219 NOARGS { int|sys||mincore(void *addr, size_t len, char *vec); } 387220 NOARGS { int|sys||madvise(void *addr, size_t len, int behav); } 388221 STD { int|linux_sys||fcntl64(int fd, int cmd, void *arg); } 389222 UNIMPL /* for tux */ 390223 UNIMPL /* unused */ 391224 NOARGS { pid_t|linux_sys||gettid(void); } 392225 STD { ssize_t|linux_sys||readahead(int fd, off_t offset, \ 393 size_t count); } 394226 STD { int|linux_sys||setxattr(char *path, char *name, \ 395 void *value, size_t size, int flags); } 396227 STD { int|linux_sys||lsetxattr(char *path, char *name, \ 397 void *value, size_t size, int flags); } 398228 STD { int|linux_sys||fsetxattr(int fd, char *name, \ 399 void *value, size_t size, int flags); } 400229 STD { ssize_t|linux_sys||getxattr(char *path, char *name, \ 401 void *value, size_t size); } 402230 STD { ssize_t|linux_sys||lgetxattr(char *path, char *name, \ 403 void *value, size_t size); } 404231 STD { ssize_t|linux_sys||fgetxattr(int fd, char *name, \ 405 void *value, size_t size); } 406232 STD { ssize_t|linux_sys||listxattr(char *path, char *list, \ 407 size_t size); } 408233 STD { ssize_t|linux_sys||llistxattr(char *path, char *list, \ 409 size_t size); } 410234 STD { ssize_t|linux_sys||flistxattr(int fd, char *list, \ 411 size_t size); } 412235 STD { int|linux_sys||removexattr(char *path, char *name); } 413236 STD { int|linux_sys||lremovexattr(char *path, char *name); } 414237 STD { int|linux_sys||fremovexattr(int fd, char *name); } 415238 STD { int|linux_sys||tkill(int tid, int sig); } 416239 UNIMPL sendfile64 417240 STD { int|linux_sys||futex(int *uaddr, int op, int val, \ 418 const struct linux_timespec *timeout, int *uaddr2, \ 419 int val3); } 420241 STD { int|linux_sys||sched_setaffinity(pid_t pid, \ 421 unsigned int len, unsigned long *mask); } 422242 STD { int|linux_sys||sched_getaffinity(pid_t pid, \ 423 unsigned int len, unsigned long *mask); } 424243 UNIMPL io_setup 425244 UNIMPL io_destroy 426245 UNIMPL io_getevents 427246 UNIMPL io_submit 428247 UNIMPL io_cancel 429248 STD { int|linux_sys||exit_group(int error_code); } 430249 UNIMPL lookup_dcookie 431250 STD { int|linux_sys||epoll_create(int size); } 432251 STD { int|linux_sys||epoll_ctl(int epfd, int op, int fd, \ 433 struct linux_epoll_event *event); } 434252 STD { int|linux_sys||epoll_wait(int epfd, \ 435 struct linux_epoll_event *events, int maxevents, \ 436 int timeout); } 437253 UNIMPL remap_file_pages 438254 UNIMPL set_thread_area 439255 UNIMPL get_thread_area 440256 STD { int|linux_sys||set_tid_address(int *tid); } 441257 STD { int|linux_sys||timer_create(clockid_t clockid, \ 442 struct linux_sigevent *evp, timer_t *timerid); } 443258 STD { int|linux_sys||timer_settime(timer_t timerid, \ 444 int flags, const struct linux_itimerspec *tim, \ 445 struct linux_itimerspec *otim); } 446259 STD { int|linux_sys||timer_gettime(timer_t timerid, \ 447 struct linux_itimerspec *tim); } 448260 NOARGS { int|sys||timer_getoverrun(timer_t timerid); } 449261 NOARGS { int|sys||timer_delete(timer_t timerid); } 450262 STD { int|linux_sys||clock_settime(clockid_t which, \ 451 struct linux_timespec *tp); } 452263 STD { int|linux_sys||clock_gettime(clockid_t which, \ 453 struct linux_timespec *tp); } 454264 STD { int|linux_sys||clock_getres(clockid_t which, \ 455 struct linux_timespec *tp); } 456265 STD { int|linux_sys||clock_nanosleep(clockid_t which, \ 457 int flags, struct linux_timespec *rqtp, \ 458 struct linux_timespec *rmtp); } 459266 STD { int|linux_sys||statfs64(const char *path, \ 460 size_t sz, struct linux_statfs64 *sp); } 461267 STD { int|linux_sys||fstatfs64(int fd, \ 462 size_t sz, struct linux_statfs64 *sp); } 463268 STD { int|linux_sys||tgkill(int tgid, int tid, int sig); } 464269 NOARGS { int|compat_50_sys||utimes(const char *path, \ 465 const struct timeval50 *tptr); } 466270 STD { int|linux_sys||fadvise64_64(int fd, off_t offset, \ 467 off_t len, int advice); } 468271 UNIMPL pciconfig_iobase 469272 UNIMPL pciconfig_read 470273 UNIMPL pciconfig_write 471274 STD { linux_mqd_t|linux_sys||mq_open(const char *name, \ 472 int oflag, linux_umode_t mode, \ 473 struct linux_mq_attr *attr); } 474275 STD { int|linux_sys||mq_unlink(const char *name); } 475276 STD { int|linux_sys||mq_timedsend(linux_mqd_t mqdes, \ 476 const char *msg_ptr, size_t msg_len, \ 477 unsigned int msg_prio, \ 478 const struct linux_timespec *abs_timeout); } 479277 STD { ssize_t|linux_sys||mq_timedreceive(linux_mqd_t mqdes, \ 480 char *msg_ptr, size_t msg_len, \ 481 unsigned int *msg_prio, \ 482 const struct linux_timespec *abs_timeout); } 483278 STD { int|linux_sys||mq_notify(linux_mqd_t mqdes, \ 484 const struct linux_sigevent *sevp); } 485279 STD { int|linux_sys||mq_getsetattr(linux_mqd_t mqdes, \ 486 const struct linux_mq_attr *newattr, \ 487 struct linux_mq_attr *oldattr); } 488280 STD { int|linux_sys||waitid(int idtype, id_t id, \ 489 linux_siginfo_t *infop, int options, \ 490 struct rusage50 *rusage); } 491281 UNIMPL socket 492282 UNIMPL bind 493283 UNIMPL connect 494284 UNIMPL listen 495285 UNIMPL accept 496286 UNIMPL getsockname 497287 UNIMPL getpeername 498288 UNIMPL socketpair 499289 UNIMPL send 500290 UNIMPL sendto 501291 UNIMPL recv 502292 UNIMPL recvfrom 503293 UNIMPL shutdown 504294 UNIMPL setsockopt 505295 UNIMPL getsockopt 506296 UNIMPL sendmsg 507297 UNIMPL recvmsg 508298 UNIMPL semop 509299 UNIMPL semget 510300 UNIMPL semctl 511301 UNIMPL msgsnd 512302 UNIMPL msgrcv 513303 UNIMPL msgget 514304 UNIMPL msgctl 515305 UNIMPL shmat 516306 UNIMPL shmdt 517307 UNIMPL shmget 518308 UNIMPL shmctl 519309 UNIMPL add_key 520310 UNIMPL request_key 521311 UNIMPL keyctl 522312 UNIMPL semtimedop 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