syscalls.master revision 1.79
1 $NetBSD: syscalls.master,v 1.79 2023/08/19 17:49:49 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 52#include <compat/linux/linux_syscallargs.h> 53 54%% 55; XXX We have to explicitly declare linux_sys_nosys. 560 NOARGS { int|linux_sys||nosys(void); } 571 STD { int|linux_sys||exit(int rval); } 582 NOARGS { int|sys||fork(void); } 593 NOARGS { ssize_t|sys||read(int fd, void *buf, size_t nbyte); } 604 NOARGS { ssize_t|sys||write(int fd, const void *buf, \ 61 size_t nbyte); } 625 STD { int|linux_sys||open(const char *path, int flags, \ 63 linux_umode_t mode); } 646 NOARGS { int|sys||close(int fd); } 657 STD { int|linux_sys||waitpid(int pid, int *status, \ 66 int options);} 678 STD { int|linux_sys||creat(const char *path, linux_umode_t mode); } 689 NOARGS { int|sys||link(const char *path, const char *link); } 6910 STD { int|linux_sys||unlink(const char *path); } 7011 NOARGS { int|sys||execve(const char *path, char **argp, \ 71 char **envp); } 7212 NOARGS { int|sys||chdir(const char *path); } 7313 STD { int|linux_sys||time(linux_time_t *t); } 7414 STD { int|linux_sys||mknod(const char *path, linux_umode_t mode, \ 75 unsigned dev); } 7615 NOARGS { int|sys||chmod(const char *path, int mode); } 7716 STD { int|linux_sys||lchown16(const char *path, \ 78 linux_uid16_t uid, linux_gid16_t gid); } 7917 OBSOL break 8018 OBSOL ostat 8119 NOARGS { long|compat_43_sys||lseek(int fd, long offset, \ 82 int whence); } 8320 NOARGS { pid_t|sys||getpid(void); } 8421 UNIMPL mount 8522 OBSOL umount 8623 NOARGS { int|sys||setuid(uid_t uid); } 8724 NOARGS { uid_t|sys||getuid(void); } 8825 STD { int|linux_sys||stime(linux_time_t *t); } 8926 STD { int|linux_sys||ptrace(int request, int pid, \ 90 int addr, int data); } 9127 STD { int|linux_sys||alarm(unsigned int secs); } 9228 OBSOL ofstat 9329 STD { int|linux_sys||pause(void); } 9430 STD { int|linux_sys||utime(const char *path, \ 95 struct linux_utimbuf *times); } 9631 OBSOL stty 9732 OBSOL gtty 9833 NOARGS { int|sys||access(const char *path, int flags); } 9934 STD { int|linux_sys||nice(int incr); } 10035 OBSOL ftime 10136 NOARGS { int|sys||sync(void); } 10237 STD { int|linux_sys||kill(int pid, int signum); } 10338 NOARGS { int|sys||__posix_rename(const char *from, \ 104 const char *to); } 10539 NOARGS { int|sys||mkdir(const char *path, linux_umode_t mode); } 10640 NOARGS { int|sys||rmdir(const char *path); } 10741 NOARGS { int|sys||dup(int fd); } 10842 STD { int|linux_sys||pipe(int *pfds); } 10943 STD { int|linux_sys||times(struct times *tms); } 11044 OBSOL prof 11145 STD { int|linux_sys||brk(char *nsize); } 11246 NOARGS { int|sys||setgid(gid_t gid); } 11347 NOARGS { gid_t|sys||getgid(void); } 11448 STD { int|linux_sys||signal(int signum, \ 115 linux_handler_t handler); } 11649 NOARGS { uid_t|sys||geteuid(void); } 11750 NOARGS { gid_t|sys||getegid(void); } 11851 NOARGS { int|sys||acct(char *path); } 11952 UNIMPL umount 12053 OBSOL lock 12154 STD { int|linux_sys||ioctl(int fd, u_long com, \ 122 void *data); } 12355 STD { int|linux_sys||fcntl(int fd, int cmd, void *arg); } 12456 OBSOL mpx 12557 NOARGS { int|sys||setpgid(int pid, int pgid); } 12658 OBSOL ulimit 12759 STD { int|linux_sys||oldolduname( \ 128 struct linux_oldold_utsname *up); } 12960 NOARGS { int|sys||umask(int newmask); } 13061 NOARGS { int|sys||chroot(char *path); } 13162 UNIMPL ustat 13263 NOARGS { int|sys||dup2(int from, int to); } 13364 NOARGS { pid_t|sys||getppid(void); } 13465 NOARGS { int|sys||getpgrp(void); } 13566 NOARGS { int|sys||setsid(void); } 13667 STD { int|linux_sys||sigaction(int signum, \ 137 const struct linux_old_sigaction *nsa, \ 138 struct linux_old_sigaction *osa); } 13968 STD { int|linux_sys||siggetmask(void); } 14069 STD { int|linux_sys||sigsetmask(linux_old_sigset_t mask); } 14170 STD { int|linux_sys||setreuid16(linux_uid16_t ruid, \ 142 linux_uid16_t euid); } 14371 STD { int|linux_sys||setregid16(linux_gid16_t rgid, \ 144 linux_gid16_t egid); } 14572 STD { int|linux_sys||sigsuspend(void *restart, \ 146 int oldmask, int mask); } 14773 STD { int|linux_sys||sigpending(linux_old_sigset_t *set); } 14874 NOARGS { int|compat_43_sys||sethostname(char *hostname, \ 149 u_int len);} 15075 STD { int|linux_sys||setrlimit(u_int which, \ 151 struct orlimit *rlp); } 15276 STD { int|linux_sys||getrlimit(u_int which, \ 153 struct orlimit *rlp); } 15477 NOARGS { int|compat_50_sys||getrusage(int who, struct rusage50 *rusage); } 15578 STD { int|linux_sys||gettimeofday(struct timeval50 *tp, \ 156 struct timezone *tzp); } 15779 STD { int|linux_sys||settimeofday(struct timeval50 *tp, \ 158 struct timezone *tzp); } 15980 STD { int|linux_sys||getgroups16(int gidsetsize, \ 160 linux_gid16_t *gidset); } 16181 STD { int|linux_sys||setgroups16(int gidsetsize, \ 162 linux_gid16_t *gidset); } 16382 STD { int|linux_sys||oldselect(struct linux_oldselect *lsp); } 16483 NOARGS { int|sys||symlink(const char *path, const char *link); } 16584 NOARGS { int|compat_43_sys||lstat(const char *path, \ 166 struct stat43 *ub); } oolstat 16785 NOARGS { ssize_t|sys||readlink(const char *path, char *buf, \ 168 int count); } 169#ifdef EXEC_AOUT 17086 STD { int|linux_sys||uselib(const char *path); } 171#else 17286 EXCL uselib 173#endif 17487 STD { int|linux_sys||swapon(char *name); } 17588 STD { int|linux_sys||reboot(int magic1, int magic2, \ 176 int cmd, void *arg); } 17789 STD { int|linux_sys||readdir(int fd, void *dent, \ 178 unsigned int count); } 17990 STD { int|linux_sys||old_mmap(struct linux_oldmmap *lmp); } 18091 NOARGS { int|sys||munmap(void *addr, size_t len); } 18192 NOARGS { int|compat_43_sys||truncate(const char *path, \ 182 long length); } 18393 NOARGS { int|compat_43_sys||ftruncate(int fd, long length); } 18494 NOARGS { int|sys||fchmod(int fd, linux_umode_t mode); } 18595 STD { int|linux_sys||fchown16(int fd, linux_uid16_t uid, \ 186 linux_gid16_t gid); } 18796 STD { int|linux_sys||getpriority(int which, int who); } 18897 NOARGS { int|sys||setpriority(int which, int who, int prio); } 18998 NOARGS { int|sys||profil(void *samples, u_int size, \ 190 u_int offset, u_int scale); } 19199 STD { int|linux_sys||statfs(const char *path, \ 192 struct linux_statfs *sp); } 193100 STD { int|linux_sys||fstatfs(int fd, \ 194 struct linux_statfs *sp); } 195101 UNIMPL 196102 STD { int|linux_sys||socketcall(int what, void *args); } 197103 UNIMPL syslog 198104 NOARGS { int|compat_50_sys||setitimer(int which, \ 199 struct itimerval50 *itv, \ 200 struct itimerval50 *oitv); } 201105 NOARGS { int|compat_50_sys||getitimer(int which, \ 202 struct itimerval50 *itv); } 203106 STD { int|linux_sys||stat(const char *path, \ 204 struct linux_stat *sp); } 205107 STD { int|linux_sys||lstat(const char *path, \ 206 struct linux_stat *sp); } 207108 STD { int|linux_sys||fstat(int fd, struct linux_stat *sp); } 208109 STD { int|linux_sys||olduname(struct linux_oldutsname *up); } 209110 UNIMPL 210111 UNIMPL vhangup 211112 UNIMPL idle 212113 UNIMPL syscall 213114 STD { int|linux_sys||wait4(int pid, int *status, \ 214 int options, struct rusage50 *rusage); } 215115 STD { int|linux_sys||swapoff(const char *path); } 216116 STD { int|linux_sys||sysinfo(struct linux_sysinfo *arg); } 217117 STD { int|linux_sys||ipc(int what, int a1, int a2, int a3, \ 218 void *ptr); } 219118 NOARGS { int|sys||fsync(int fd); } 220119 STD { int|linux_sys||sigreturn(struct linux_sigcontext *scp); } 221120 STD { int|linux_sys||clone(int flags, void *stack, \ 222 void *parent_tidptr, void *tls, void *child_tidptr); } 223121 STD { int|linux_sys||setdomainname(char *domainname, \ 224 int len); } 225122 STD { int|linux_sys||uname(struct linux_utsname *up); } 226123 UNIMPL modify_ldt 227124 UNIMPL adjtimex 228125 STD { int|linux_sys||mprotect(const void *start, \ 229 unsigned long len, int prot); } 230126 STD { int|linux_sys||sigprocmask(int how, \ 231 const linux_old_sigset_t *set, \ 232 linux_old_sigset_t *oset); } 233127 UNIMPL create_module 234128 UNIMPL init_module 235129 UNIMPL delete_module 236130 UNIMPL get_kernel_syms 237131 UNIMPL quotactl 238132 NOARGS { pid_t|sys||getpgid(pid_t pid); } 239133 NOARGS { int|sys||fchdir(int fd); } 240134 UNIMPL bdflush 241135 UNIMPL sysfs 242136 STD { int|linux_sys||personality(unsigned long per); } 243137 UNIMPL afs_syscall 244138 STD { int|linux_sys||setfsuid(uid_t uid); } 245139 STD { int|linux_sys||setfsgid(gid_t gid); } 246140 STD { int|linux_sys||llseek(int fd, u_int32_t ohigh, \ 247 u_int32_t olow, void *res, int whence); } 248141 STD { int|linux_sys||getdents(int fd, \ 249 struct linux_dirent *dent, unsigned int count); } 250142 STD { int|linux_sys||select(int nfds, fd_set *readfds, \ 251 fd_set *writefds, fd_set *exceptfds, \ 252 struct timeval50 *timeout); } 253143 NOARGS { int|sys||flock(int fd, int how); } 254144 NOARGS { int|sys|13|msync(void *addr, size_t len, int flags); } 255145 NOARGS { ssize_t|sys||readv(int fd, \ 256 const struct iovec *iovp, int iovcnt); } 257146 NOARGS { ssize_t|sys||writev(int fd, \ 258 const struct iovec *iovp, int iovcnt); } 259147 NOARGS { pid_t|sys||getsid(pid_t pid); } 260148 STD { int|linux_sys||fdatasync(int fd); } 261149 STD { int|linux_sys||__sysctl(struct linux___sysctl *lsp); } 262150 NOARGS { int|sys||mlock(void *addr, size_t len); } 263151 NOARGS { int|sys||munlock(void *addr, size_t len); } 264152 NOARGS { int|sys||mlockall(int flags); } 265153 NOARGS { int|sys||munlockall(void); } 266154 STD { int|linux_sys||sched_setparam(pid_t pid, \ 267 const struct linux_sched_param *sp); } 268155 STD { int|linux_sys||sched_getparam(pid_t pid, \ 269 struct linux_sched_param *sp); } 270156 STD { int|linux_sys||sched_setscheduler(pid_t pid, \ 271 int policy, const struct linux_sched_param *sp); } 272157 STD { int|linux_sys||sched_getscheduler(pid_t pid); } 273158 STD { int|linux_sys||sched_yield(void); } 274159 STD { int|linux_sys||sched_get_priority_max(int policy); } 275160 STD { int|linux_sys||sched_get_priority_min(int policy); } 276161 UNIMPL sched_rr_get_interval 277162 STD { int|linux_sys||nanosleep( \ 278 const struct linux_timespec *rqtp, \ 279 struct linux_timespec *rmtp); } 280163 STD { void *|linux_sys||mremap(void *old_address, \ 281 size_t old_size, size_t new_size, u_long flags); } 282164 STD { int|linux_sys||setresuid16(linux_uid16_t ruid, \ 283 linux_uid16_t euid, linux_uid16_t suid); } 284165 STD { int|linux_sys||getresuid16(linux_uid16_t *ruid, \ 285 linux_uid16_t *euid, linux_uid16_t *suid); } 286166 UNIMPL 287167 UNIMPL query_module 288168 NOARGS { int|sys||poll(struct pollfd *fds, u_int nfds, \ 289 int timeout); } 290169 UNIMPL nfsservctl 291170 STD { int|linux_sys||setresgid16(linux_gid16_t rgid, \ 292 linux_gid16_t egid, linux_gid16_t sgid); } 293171 STD { int|linux_sys||getresgid16(linux_gid16_t *rgid, \ 294 linux_gid16_t *egid, linux_gid16_t *sgid); } 295172 UNIMPL prctl 296173 UNIMPL rt_sigreturn 297;173 STD { int|linux_sys||rt_sigreturn( \ 298; struct linux_rt_sigframe *sfp); } 299174 STD { int|linux_sys||rt_sigaction(int signum, \ 300 const struct linux_sigaction *nsa, \ 301 struct linux_sigaction *osa, \ 302 size_t sigsetsize); } 303175 STD { int|linux_sys||rt_sigprocmask(int how, \ 304 const linux_sigset_t *set, \ 305 linux_sigset_t *oset, \ 306 size_t sigsetsize); } 307176 STD { int|linux_sys||rt_sigpending( \ 308 linux_sigset_t *set, \ 309 size_t sigsetsize); } 310177 STD { int|linux_sys||rt_sigtimedwait( \ 311 const linux_sigset_t *set, \ 312 linux_siginfo_t *info, \ 313 const struct linux_timespec *timeout); } 314178 STD { int|linux_sys||rt_queueinfo(int pid, int signum, \ 315 linux_siginfo_t *uinfo); } 316179 STD { int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \ 317 size_t sigsetsize); } 318180 STD { int|linux_sys||pread(int fd, char *buf, \ 319 size_t nbyte, off_t offset); } 320181 STD { int|linux_sys||pwrite(int fd, char *buf, \ 321 size_t nbyte, off_t offset); } 322182 STD { int|linux_sys||chown16(const char *path, \ 323 linux_uid16_t uid, linux_gid16_t gid); } 324183 NOARGS { int|sys||__getcwd(char *bufp, size_t length); } 325184 UNIMPL capget 326185 UNIMPL capset 327186 STD { int|linux_sys||sigaltstack( \ 328 const struct linux_sigaltstack *ss, \ 329 struct linux_sigaltstack *oss); } 330187 UNIMPL sendfile 331188 UNIMPL getpmsg 332189 UNIMPL putpmsg 333190 NOARGS vfork { int|sys|14|vfork(void); } 334191 STD { int|linux_sys||ugetrlimit(int which, \ 335 struct rlimit *rlp); } 336#define linux_sys_mmap2_args linux_sys_mmap_args 337192 NOARGS { linux_off_t|linux_sys||mmap2(unsigned long addr, \ 338 size_t len, int prot, int flags, int fd, \ 339 linux_off_t offset); } 340193 STD { int|linux_sys||truncate64(const char *path, \ 341 off_t length); } 342194 STD { int|linux_sys||ftruncate64(unsigned int fd, \ 343 off_t length); } 344195 STD { int|linux_sys||stat64(const char *path, \ 345 struct linux_stat64 *sp); } 346196 STD { int|linux_sys||lstat64(const char *path, \ 347 struct linux_stat64 *sp); } 348197 STD { int|linux_sys||fstat64(int fd, \ 349 struct linux_stat64 *sp); } 350198 NOARGS { int|sys||__posix_lchown(const char *path, uid_t uid, \ 351 gid_t gid); } 352199 NOARGS getuid32 { uid_t|sys||getuid(void); } 353200 NOARGS getgid32 { gid_t|sys||getgid(void); } 354201 NOARGS geteuid32 { uid_t|sys||geteuid(void); } 355202 NOARGS getegid32 { gid_t|sys||getegid(void); } 356203 NOARGS setreuid32 { int|sys||setreuid(uid_t ruid, \ 357 uid_t euid); } 358204 NOARGS setregid32 { int|sys||setregid(gid_t rgid, \ 359 gid_t egid); } 360205 NOARGS getgroups32 { int|sys||getgroups(int gidsetsize, \ 361 gid_t *gidset); } 362206 NOARGS setgroups32 { int|sys||setgroups(int gidsetsize, \ 363 gid_t *gidset); } 364207 NOARGS fchown32 { int|sys||__posix_fchown(int fd, uid_t uid, \ 365 gid_t gid); } 366208 STD setresuid32 { int|linux_sys||setresuid(uid_t ruid, \ 367 uid_t euid, uid_t suid); } 368209 STD getresuid32 { int|linux_sys||getresuid(uid_t *ruid, \ 369 uid_t *euid, uid_t *suid); } 370210 STD setresgid32 { int|linux_sys||setresgid(gid_t rgid, \ 371 gid_t egid, gid_t sgid); } 372211 STD getresgid32 { int|linux_sys||getresgid(gid_t *rgid, \ 373 gid_t *egid, gid_t *sgid); } 374212 NOARGS chown32 { int|sys||__posix_chown(const char *path, \ 375 uid_t uid, gid_t gid); } 376213 NOARGS setuid32 { int|sys||setuid(uid_t uid); } 377214 NOARGS setgid32 { int|sys||setgid(gid_t gid); } 378215 NOARGS setfsuid32 { int|linux_sys||setfsuid(uid_t uid); } 379216 NOARGS setfsgid32 { int|linux_sys||setfsgid(gid_t gid); } 380217 STD { int|linux_sys||getdents64(int fd, \ 381 struct linux_dirent64 *dent, unsigned int count); } 382218 UNIMPL pivot_root 383219 NOARGS { int|sys||mincore(void *addr, size_t len, char *vec); } 384220 NOARGS { int|sys||madvise(void *addr, size_t len, int behav); } 385221 STD { int|linux_sys||fcntl64(int fd, int cmd, void *arg); } 386222 UNIMPL /* for tux */ 387223 UNIMPL /* unused */ 388224 NOARGS { pid_t|linux_sys||gettid(void); } 389225 STD { ssize_t|linux_sys||readahead(int fd, off_t offset, \ 390 size_t count); } 391226 STD { int|linux_sys||setxattr(char *path, char *name, \ 392 void *value, size_t size, int flags); } 393227 STD { int|linux_sys||lsetxattr(char *path, char *name, \ 394 void *value, size_t size, int flags); } 395228 STD { int|linux_sys||fsetxattr(int fd, char *name, \ 396 void *value, size_t size, int flags); } 397229 STD { ssize_t|linux_sys||getxattr(char *path, char *name, \ 398 void *value, size_t size); } 399230 STD { ssize_t|linux_sys||lgetxattr(char *path, char *name, \ 400 void *value, size_t size); } 401231 STD { ssize_t|linux_sys||fgetxattr(int fd, char *name, \ 402 void *value, size_t size); } 403232 STD { ssize_t|linux_sys||listxattr(char *path, char *list, \ 404 size_t size); } 405233 STD { ssize_t|linux_sys||llistxattr(char *path, char *list, \ 406 size_t size); } 407234 STD { ssize_t|linux_sys||flistxattr(int fd, char *list, \ 408 size_t size); } 409235 STD { int|linux_sys||removexattr(char *path, char *name); } 410236 STD { int|linux_sys||lremovexattr(char *path, char *name); } 411237 STD { int|linux_sys||fremovexattr(int fd, char *name); } 412238 STD { int|linux_sys||tkill(int tid, int sig); } 413239 UNIMPL sendfile64 414240 STD { int|linux_sys||futex(int *uaddr, int op, int val, \ 415 const struct linux_timespec *timeout, int *uaddr2, \ 416 int val3); } 417241 STD { int|linux_sys||sched_setaffinity(pid_t pid, \ 418 unsigned int len, unsigned long *mask); } 419242 STD { int|linux_sys||sched_getaffinity(pid_t pid, \ 420 unsigned int len, unsigned long *mask); } 421243 UNIMPL io_setup 422244 UNIMPL io_destroy 423245 UNIMPL io_getevents 424246 UNIMPL io_submit 425247 UNIMPL io_cancel 426248 STD { int|linux_sys||exit_group(int error_code); } 427249 UNIMPL lookup_dcookie 428250 STD { int|linux_sys||epoll_create(int size); } 429251 STD { int|linux_sys||epoll_ctl(int epfd, int op, int fd, \ 430 struct linux_epoll_event *event); } 431252 STD { int|linux_sys||epoll_wait(int epfd, \ 432 struct linux_epoll_event *events, int maxevents, \ 433 int timeout); } 434253 UNIMPL remap_file_pages 435254 UNIMPL set_thread_area 436255 UNIMPL get_thread_area 437256 STD { int|linux_sys||set_tid_address(int *tid); } 438257 STD { int|linux_sys||timer_create(clockid_t clockid, \ 439 struct linux_sigevent *evp, timer_t *timerid); } 440258 STD { int|linux_sys||timer_settime(timer_t timerid, \ 441 int flags, const struct linux_itimerspec *tim, \ 442 struct linux_itimerspec *otim); } 443259 STD { int|linux_sys||timer_gettime(timer_t timerid, \ 444 struct linux_itimerspec *tim); } 445260 NOARGS { int|sys||timer_getoverrun(timer_t timerid); } 446261 NOARGS { int|sys||timer_delete(timer_t timerid); } 447262 STD { int|linux_sys||clock_settime(clockid_t which, \ 448 struct linux_timespec *tp); } 449263 STD { int|linux_sys||clock_gettime(clockid_t which, \ 450 struct linux_timespec *tp); } 451264 STD { int|linux_sys||clock_getres(clockid_t which, \ 452 struct linux_timespec *tp); } 453265 STD { int|linux_sys||clock_nanosleep(clockid_t which, \ 454 int flags, struct linux_timespec *rqtp, \ 455 struct linux_timespec *rmtp); } 456266 STD { int|linux_sys||statfs64(const char *path, \ 457 size_t sz, struct linux_statfs64 *sp); } 458267 STD { int|linux_sys||fstatfs64(int fd, \ 459 size_t sz, struct linux_statfs64 *sp); } 460268 STD { int|linux_sys||tgkill(int tgid, int tid, int sig); } 461269 NOARGS { int|compat_50_sys||utimes(const char *path, \ 462 const struct timeval50 *tptr); } 463270 STD { int|linux_sys||fadvise64_64(int fd, off_t offset, \ 464 off_t len, int advice); } 465271 UNIMPL pciconfig_iobase 466272 UNIMPL pciconfig_read 467273 UNIMPL pciconfig_write 468274 UNIMPL mq_open 469275 UNIMPL mq_unlink 470276 UNIMPL mq_timedsend 471277 UNIMPL mq_timedreceive 472278 UNIMPL mq_notify 473279 UNIMPL mq_getsetattr 474280 STD { int|linux_sys||waitid(int idtype, id_t id, \ 475 linux_siginfo_t *infop, int options, \ 476 struct rusage50 *rusage); } 477281 UNIMPL socket 478282 UNIMPL bind 479283 UNIMPL connect 480284 UNIMPL listen 481285 UNIMPL accept 482286 UNIMPL getsockname 483287 UNIMPL getpeername 484288 UNIMPL socketpair 485289 UNIMPL send 486290 UNIMPL sendto 487291 UNIMPL recv 488292 UNIMPL recvfrom 489293 UNIMPL shutdown 490294 UNIMPL setsockopt 491295 UNIMPL getsockopt 492296 UNIMPL sendmsg 493297 UNIMPL recvmsg 494298 UNIMPL semop 495299 UNIMPL semget 496300 UNIMPL semctl 497301 UNIMPL msgsnd 498302 UNIMPL msgrcv 499303 UNIMPL msgget 500304 UNIMPL msgctl 501305 UNIMPL shmat 502306 UNIMPL shmdt 503307 UNIMPL shmget 504308 UNIMPL shmctl 505309 UNIMPL add_key 506310 UNIMPL request_key 507311 UNIMPL keyctl 508312 UNIMPL semtimedop 509313 UNIMPL vserver 510314 UNIMPL ioptio_set 511315 UNIMPL ioptio_get 512316 STD { int|linux_sys||inotify_init(void); } 513317 STD { int|linux_sys||inotify_add_watch(int fd, \ 514 const char *pathname, uint32_t mask); } 515318 STD { int|linux_sys||inotify_rm_watch(int fd, int wd); } 516319 UNIMPL mbind 517320 UNIMPL get_mempolicy 518321 UNIMPL set_mempolicy 519322 STD { int|linux_sys||openat(int fd, const char *path, \ 520 int flags, ... linux_umode_t mode); } 521323 NOARGS { int|sys||mkdirat(int fd, const char *path, \ 522 linux_umode_t mode); } 523324 STD { int|linux_sys||mknodat(int fd, const char *path, \ 524 linux_umode_t mode, unsigned dev); } 525325 STD { int|linux_sys||fchownat(int fd, const char *path, \ 526 uid_t owner, gid_t group, int flag); } 527326 UNIMPL futimesat 528327 STD { int|linux_sys||fstatat64(int fd, const char *path, \ 529 struct linux_stat64 *sp, int flag); } 530328 STD { int|linux_sys||unlinkat(int fd, const char *path, \ 531 int flag); } 532329 NOARGS { int|sys||renameat(int fromfd, const char *from, \ 533 int tofd, const char *to); } 534330 STD { int|linux_sys||linkat(int fd1, const char *name1, \ 535 int fd2, const char *name2, int flags); } 536331 NOARGS { int|sys||symlinkat(const char *path1, int fd, \ 537 const char *path2); } 538332 NOARGS { ssize_t|sys||readlinkat(int fd, const char *path, \ 539 char *buf, size_t bufsize); } 540333 STD { int|linux_sys||fchmodat(int fd, const char *path, \ 541 linux_umode_t mode); } 542334 STD { int|linux_sys||faccessat(int fd, const char *path, \ 543 int amode); } 544335 STD { int|linux_sys||pselect6(int nfds, fd_set *readfds, \ 545 fd_set *writefds, fd_set *exceptfds, \ 546 struct linux_timespec *timeout, \ 547 linux_sized_sigset_t *ss); } 548336 STD { int|linux_sys||ppoll(struct pollfd *fds, u_int nfds, \ 549 struct linux_timespec *timeout, \ 550 linux_sigset_t *sigset); } 551337 UNIMPL unshare 552 ; 553 ; The NetBSD native robust list calls have different 554 ; argument names / types, but they are ABI-compatible 555 ; with Linux. 556 ; 557338 NOARGS { int|sys||__futex_set_robust_list(void *head, \ 558 size_t len); } 559339 NOARGS { int|sys||__futex_get_robust_list(lwpid_t lwpid, \ 560 void **headp, size_t *lenp); } 561340 UNIMPL splice 562341 UNIMPL sync_file_range2 563342 UNIMPL tee 564343 UNIMPL vmsplice 565344 UNIMPL move_pages 566345 UNIMPL getcpu 567346 STD { int|linux_sys||epoll_pwait(int epfd, \ 568 struct linux_epoll_event *events, int maxevents, \ 569 int timeout, const linux_sigset_t *sigmask); } 570347 UNIMPL kexec_load 571348 STD { int|linux_sys||utimensat(int fd, const char *path, \ 572 struct linux_timespec *times, int flag); } 573349 UNIMPL signalfd 574350 STD { int|linux_sys||timerfd_create(clockid_t clock_id, \ 575 int flags); } 576351 STD { int|linux_sys||eventfd(unsigned int initval); } 577352 STD { int|linux_sys||fallocate(int fd, int mode, \ 578 off_t offset, off_t len); } 579353 STD { int|linux_sys||timerfd_settime(int fd, int flags, \ 580 const struct linux_itimerspec *tim, \ 581 struct linux_itimerspec *otim); } 582354 STD { int|linux_sys||timerfd_gettime(int fd, \ 583 struct linux_itimerspec *tim); } 584355 UNIMPL signalfd4 585356 STD { int|linux_sys||eventfd2(unsigned int initval, \ 586 int flags); } 587357 STD { int|linux_sys||epoll_create1(int flags); } 588358 STD { int|linux_sys||dup3(int from, int to, int flags); } 589359 STD { int|linux_sys||pipe2(int *pfds, int flags); } 590360 STD { int|linux_sys||inotify_init1(int flags); } 591361 STD { int|linux_sys||preadv(int fd, \ 592 const struct iovec *iovp, int iovcnt, \ 593 unsigned long off_lo, unsigned long off_hi); } 594362 STD { int|linux_sys||pwritev(int fd, \ 595 const struct iovcnt *iovp, int iovcnt, \ 596 unsigned long off_lo, unsigned long off_hi); } 597363 UNIMPL rt_tgsigqueueinfo 598364 UNIMPL perf_counter_open 599365 STD { int|linux_sys||recvmmsg(int s, \ 600 struct linux_mmsghdr *msgvec, unsigned int vlen, \ 601 unsigned int flags, struct timespec *timeout); } 602366 STD { int|linux_sys||accept4(int s, \ 603 struct osockaddr *name, \ 604 int *anamelen, int flags); } 605367 UNIMPL fanotify_init 606368 UNIMPL fanotify_mark 607369 STD { int|linux_sys||prlimit64(pid_t pid, int which, \ 608 struct rlimit *new_rlp, struct rlimit *old_rlp); } 609370 UNIMPL name_to_handle_at 610371 UNIMPL open_by_handle_at 611372 UNIMPL clock_adjtime 612373 UNIMPL syncfs 613374 STD { int|linux_sys||sendmmsg(int s, \ 614 struct linux_mmsghdr *msgvec, unsigned int vlen, \ 615 unsigned int flags); } 616375 UNIMPL setns 617376 UNIMPL process_vm_readv 618377 UNIMPL process_vm_writev 619378 UNIMPL kcmp 620379 UNIMPL finit_module 621380 UNIMPL sched_setattr 622381 UNIMPL sched_getattr 623382 UNIMPL renameat2 624383 UNIMPL seccomp 625; XXX FIX-me? 626; 384 NOARGS { ssize_t|sys||getrandom(void *buf, size_t buflen, \ 627 unsigned int flags); } 628; 385 UNIMPL memfd_create 629 630; ARMLinux actually has two ranges of syscalls. Normal syscalls use 631; SWI numbers starting at 0x900000 (__NR_SYSCALL_BASE). Special 632; ARM-specific syscalls use SWI numbers starting at 0x9f0000 633; (__ARM_NR_BASE). linux_syscall() (in arch/arm/arm/linux_syscall.c) 634; remaps these down to 0x900180 so that we can use one linux_sysent 635; array for the whole lot. 636 637384 UNIMPL /* base */ 638385 STD { int|linux_sys||breakpoint(void); } 639386 STD { int|linux_sys||cacheflush(uintptr_t from, \ 640 intptr_t to, int flags); } 641387 UNIMPL usr26 642388 UNIMPL usr32 643389 STD { int|linux_sys||set_tls(void *tls); } 644390 UNIMPL 645391 UNIMPL 646392 UNIMPL 647393 UNIMPL 648394 UNIMPL 649395 UNIMPL 650396 UNIMPL 651397 STD { int|linux_sys||statx(int fd, const char *path, \ 652 int flag, unsigned int mask, \ 653 struct linux_statx *sp); } 654398 UNIMPL 655399 UNIMPL 656400 UNIMPL 657401 UNIMPL 658402 UNIMPL 659403 UNIMPL 660404 UNIMPL 661405 UNIMPL 662406 UNIMPL 663407 UNIMPL 664408 UNIMPL 665409 UNIMPL 666410 UNIMPL 667411 UNIMPL 668412 UNIMPL 669413 UNIMPL 670414 UNIMPL 671415 UNIMPL 672416 UNIMPL 673417 UNIMPL 674418 UNIMPL 675419 UNIMPL 676420 UNIMPL 677421 UNIMPL 678422 UNIMPL 679423 UNIMPL 680424 UNIMPL 681425 UNIMPL 682426 UNIMPL 683427 UNIMPL 684428 UNIMPL 685429 UNIMPL 686430 UNIMPL 687431 UNIMPL 688432 UNIMPL 689433 UNIMPL 690434 UNIMPL 691435 UNIMPL 692436 STD { int|linux_sys||close_range(unsigned int first, \ 693 unsigned int last, unsigned int flags); } 694437 UNIMPL 695438 UNIMPL 696439 UNIMPL 697440 UNIMPL 698441 STD { int|linux_sys||epoll_pwait2(int epfd, \ 699 struct linux_epoll_event *events, int maxevents, \ 700 const struct linux_timespec *timeout, \ 701 const linux_sigset_t *sigmask); } 702