syscalls.master revision 1.84
1 $NetBSD: syscalls.master,v 1.84 2025/10/26 16:24: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 STD { int|linux_sys||semtimedop(int semid, \ 523 struct sembuf *sops, size_t nsops, \ 524 struct linux_timespec *timeout); } 525313 UNIMPL vserver 526314 UNIMPL ioptio_set 527315 UNIMPL ioptio_get 528316 STD { int|linux_sys||inotify_init(void); } 529317 STD { int|linux_sys||inotify_add_watch(int fd, \ 530 const char *pathname, uint32_t mask); } 531318 STD { int|linux_sys||inotify_rm_watch(int fd, int wd); } 532319 UNIMPL mbind 533320 UNIMPL get_mempolicy 534321 UNIMPL set_mempolicy 535322 STD { int|linux_sys||openat(int fd, const char *path, \ 536 int flags, ... linux_umode_t mode); } 537323 NOARGS { int|sys||mkdirat(int fd, const char *path, \ 538 linux_umode_t mode); } 539324 STD { int|linux_sys||mknodat(int fd, const char *path, \ 540 linux_umode_t mode, unsigned dev); } 541325 STD { int|linux_sys||fchownat(int fd, const char *path, \ 542 uid_t owner, gid_t group, int flag); } 543326 UNIMPL futimesat 544327 STD { int|linux_sys||fstatat64(int fd, const char *path, \ 545 struct linux_stat64 *sp, int flag); } 546328 STD { int|linux_sys||unlinkat(int fd, const char *path, \ 547 int flag); } 548329 NOARGS { int|sys||renameat(int fromfd, const char *from, \ 549 int tofd, const char *to); } 550330 STD { int|linux_sys||linkat(int fd1, const char *name1, \ 551 int fd2, const char *name2, int flags); } 552331 NOARGS { int|sys||symlinkat(const char *path1, int fd, \ 553 const char *path2); } 554332 NOARGS { ssize_t|sys||readlinkat(int fd, const char *path, \ 555 char *buf, size_t bufsize); } 556333 STD { int|linux_sys||fchmodat(int fd, const char *path, \ 557 linux_umode_t mode); } 558334 STD { int|linux_sys||faccessat(int fd, const char *path, \ 559 int amode); } 560335 STD { int|linux_sys||pselect6(int nfds, fd_set *readfds, \ 561 fd_set *writefds, fd_set *exceptfds, \ 562 struct linux_timespec *timeout, \ 563 linux_sized_sigset_t *ss); } 564336 STD { int|linux_sys||ppoll(struct pollfd *fds, u_int nfds, \ 565 struct linux_timespec *timeout, \ 566 linux_sigset_t *sigset); } 567337 UNIMPL unshare 568 ; 569 ; The NetBSD native robust list calls have different 570 ; argument names / types, but they are ABI-compatible 571 ; with Linux. 572 ; 573338 NOARGS { int|sys||__futex_set_robust_list(void *head, \ 574 size_t len); } 575339 NOARGS { int|sys||__futex_get_robust_list(lwpid_t lwpid, \ 576 void **headp, size_t *lenp); } 577340 UNIMPL splice 578341 STD { int|linux_sys||sync_file_range(int fd, \ 579 off_t offset, off_t nbytes, unsigned int flags); } 580342 UNIMPL tee 581343 UNIMPL vmsplice 582344 UNIMPL move_pages 583345 STD { int|linux_sys||getcpu(unsigned int *cpu, \ 584 unsigned int *node, \ 585 struct linux_getcpu_cache *tcache); } 586346 STD { int|linux_sys||epoll_pwait(int epfd, \ 587 struct linux_epoll_event *events, int maxevents, \ 588 int timeout, const linux_sigset_t *sigmask); } 589347 UNIMPL kexec_load 590348 STD { int|linux_sys||utimensat(int fd, const char *path, \ 591 struct linux_timespec *times, int flag); } 592349 UNIMPL signalfd 593350 STD { int|linux_sys||timerfd_create(clockid_t clock_id, \ 594 int flags); } 595351 STD { int|linux_sys||eventfd(unsigned int initval); } 596352 STD { int|linux_sys||fallocate(int fd, int mode, \ 597 off_t offset, off_t len); } 598353 STD { int|linux_sys||timerfd_settime(int fd, int flags, \ 599 const struct linux_itimerspec *tim, \ 600 struct linux_itimerspec *otim); } 601354 STD { int|linux_sys||timerfd_gettime(int fd, \ 602 struct linux_itimerspec *tim); } 603355 UNIMPL signalfd4 604356 STD { int|linux_sys||eventfd2(unsigned int initval, \ 605 int flags); } 606357 STD { int|linux_sys||epoll_create1(int flags); } 607358 STD { int|linux_sys||dup3(int from, int to, int flags); } 608359 STD { int|linux_sys||pipe2(int *pfds, int flags); } 609360 STD { int|linux_sys||inotify_init1(int flags); } 610361 STD { int|linux_sys||preadv(int fd, \ 611 const struct iovec *iovp, int iovcnt, \ 612 unsigned long off_lo, unsigned long off_hi); } 613362 STD { int|linux_sys||pwritev(int fd, \ 614 const struct iovcnt *iovp, int iovcnt, \ 615 unsigned long off_lo, unsigned long off_hi); } 616363 UNIMPL rt_tgsigqueueinfo 617364 UNIMPL perf_counter_open 618365 STD { int|linux_sys||recvmmsg(int s, \ 619 struct linux_mmsghdr *msgvec, unsigned int vlen, \ 620 unsigned int flags, struct timespec *timeout); } 621366 STD { int|linux_sys||accept4(int s, \ 622 struct osockaddr *name, \ 623 int *anamelen, int flags); } 624367 UNIMPL fanotify_init 625368 UNIMPL fanotify_mark 626369 STD { int|linux_sys||prlimit64(pid_t pid, int which, \ 627 struct rlimit *new_rlp, struct rlimit *old_rlp); } 628370 UNIMPL name_to_handle_at 629371 UNIMPL open_by_handle_at 630372 UNIMPL clock_adjtime 631373 STD { int|linux_sys||syncfs(int fd); } 632374 STD { int|linux_sys||sendmmsg(int s, \ 633 struct linux_mmsghdr *msgvec, unsigned int vlen, \ 634 unsigned int flags); } 635375 UNIMPL setns 636376 UNIMPL process_vm_readv 637377 UNIMPL process_vm_writev 638378 UNIMPL kcmp 639379 UNIMPL finit_module 640380 UNIMPL sched_setattr 641381 UNIMPL sched_getattr 642382 STD { int|linux_sys||renameat2(int fromfd, \ 643 const char *from, int tofd, const char *to, \ 644 unsigned int flags); } 645383 UNIMPL seccomp 646; XXX FIX-me? 647; 384 NOARGS { ssize_t|sys||getrandom(void *buf, size_t buflen, \ 648 unsigned int flags); } 649; 385 UNIMPL memfd_create 650 651; ARMLinux actually has two ranges of syscalls. Normal syscalls use 652; SWI numbers starting at 0x900000 (__NR_SYSCALL_BASE). Special 653; ARM-specific syscalls use SWI numbers starting at 0x9f0000 654; (__ARM_NR_BASE). linux_syscall() (in arch/arm/arm/linux_syscall.c) 655; remaps these down to 0x900180 so that we can use one linux_sysent 656; array for the whole lot. 657 658384 UNIMPL /* base */ 659385 STD { int|linux_sys||breakpoint(void); } 660386 STD { int|linux_sys||cacheflush(uintptr_t from, \ 661 intptr_t to, int flags); } 662387 UNIMPL usr26 663388 UNIMPL usr32 664389 STD { int|linux_sys||set_tls(void *tls); } 665390 UNIMPL 666391 STD { ssize_t|linux_sys||copy_file_range(int fd_in, \ 667 off_t * off_in, int fd_out, off_t * off_out, \ 668 size_t len, unsigned int flags); } 669392 UNIMPL 670393 UNIMPL 671394 UNIMPL 672395 UNIMPL 673396 UNIMPL 674397 STD { int|linux_sys||statx(int fd, const char *path, \ 675 int flag, unsigned int mask, \ 676 struct linux_statx *sp); } 677398 UNIMPL 678399 UNIMPL 679400 UNIMPL 680401 UNIMPL 681402 UNIMPL 682403 UNIMPL 683404 UNIMPL 684405 UNIMPL 685406 UNIMPL 686407 UNIMPL 687408 UNIMPL 688409 UNIMPL 689410 UNIMPL 690411 UNIMPL 691412 UNIMPL 692413 UNIMPL 693414 UNIMPL 694415 UNIMPL 695416 UNIMPL 696417 UNIMPL 697418 UNIMPL 698419 UNIMPL 699420 UNIMPL 700421 UNIMPL 701422 UNIMPL 702423 UNIMPL 703424 UNIMPL 704425 UNIMPL 705426 UNIMPL 706427 UNIMPL 707428 UNIMPL 708429 UNIMPL 709430 UNIMPL 710431 UNIMPL 711432 UNIMPL 712433 UNIMPL 713434 UNIMPL 714435 STD { int|linux_sys||clone3( \ 715 struct linux_user_clone3_args *cl_args, \ 716 size_t size); } 717436 STD { int|linux_sys||close_range(unsigned int first, \ 718 unsigned int last, unsigned int flags); } 719437 UNIMPL 720438 UNIMPL 721439 STD { int|linux_sys||faccessat2(int fd, const char *path, \ 722 int amode, int flags); } 723440 UNIMPL 724441 STD { int|linux_sys||epoll_pwait2(int epfd, \ 725 struct linux_epoll_event *events, int maxevents, \ 726 const struct linux_timespec *timeout, \ 727 const linux_sigset_t *sigmask); } 728