1 $NetBSD: syscalls.master,v 1.80 2024/06/29 13:46:09 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_sched.h> 52 53 54#include <compat/linux/linux_syscallargs.h> 55 56%% 57; XXX We have to explicitly declare linux_sys_nosys. 580 NOARGS { int|linux_sys||nosys(void); } 591 STD { int|linux_sys||exit(int rval); } 602 NOARGS { int|sys||fork(void); } 613 NOARGS { ssize_t|sys||read(int fd, void *buf, size_t nbyte); } 624 NOARGS { ssize_t|sys||write(int fd, const void *buf, \ 63 size_t nbyte); } 645 STD { int|linux_sys||open(const char *path, int flags, \ 65 linux_umode_t mode); } 666 NOARGS { int|sys||close(int fd); } 677 STD { int|linux_sys||waitpid(int pid, int *status, \ 68 int options);} 698 STD { int|linux_sys||creat(const char *path, linux_umode_t mode); } 709 NOARGS { int|sys||link(const char *path, const char *link); } 7110 STD { int|linux_sys||unlink(const char *path); } 7211 NOARGS { int|sys||execve(const char *path, char **argp, \ 73 char **envp); } 7412 NOARGS { int|sys||chdir(const char *path); } 7513 STD { int|linux_sys||time(linux_time_t *t); } 7614 STD { int|linux_sys||mknod(const char *path, linux_umode_t mode, \ 77 unsigned dev); } 7815 NOARGS { int|sys||chmod(const char *path, int mode); } 7916 STD { int|linux_sys||lchown16(const char *path, \ 80 linux_uid16_t uid, linux_gid16_t gid); } 8117 OBSOL break 8218 OBSOL ostat 8319 NOARGS { long|compat_43_sys||lseek(int fd, long offset, \ 84 int whence); } 8520 NOARGS { pid_t|sys||getpid(void); } 8621 UNIMPL mount 8722 OBSOL umount 8823 NOARGS { int|sys||setuid(uid_t uid); } 8924 NOARGS { uid_t|sys||getuid(void); } 9025 STD { int|linux_sys||stime(linux_time_t *t); } 9126 STD { int|linux_sys||ptrace(int request, int pid, \ 92 int addr, int data); } 9327 STD { int|linux_sys||alarm(unsigned int secs); } 9428 OBSOL ofstat 9529 STD { int|linux_sys||pause(void); } 9630 STD { int|linux_sys||utime(const char *path, \ 97 struct linux_utimbuf *times); } 9831 OBSOL stty 9932 OBSOL gtty 10033 NOARGS { int|sys||access(const char *path, int flags); } 10134 STD { int|linux_sys||nice(int incr); } 10235 OBSOL ftime 10336 NOARGS { int|sys||sync(void); } 10437 STD { int|linux_sys||kill(int pid, int signum); } 10538 NOARGS { int|sys||__posix_rename(const char *from, \ 106 const char *to); } 10739 NOARGS { int|sys||mkdir(const char *path, linux_umode_t mode); } 10840 NOARGS { int|sys||rmdir(const char *path); } 10941 NOARGS { int|sys||dup(int fd); } 11042 STD { int|linux_sys||pipe(int *pfds); } 11143 STD { int|linux_sys||times(struct times *tms); } 11244 OBSOL prof 11345 STD { int|linux_sys||brk(char *nsize); } 11446 NOARGS { int|sys||setgid(gid_t gid); } 11547 NOARGS { gid_t|sys||getgid(void); } 11648 STD { int|linux_sys||signal(int signum, \ 117 linux_handler_t handler); } 11849 NOARGS { uid_t|sys||geteuid(void); } 11950 NOARGS { gid_t|sys||getegid(void); } 12051 NOARGS { int|sys||acct(char *path); } 12152 UNIMPL umount 12253 OBSOL lock 12354 STD { int|linux_sys||ioctl(int fd, u_long com, \ 124 void *data); } 12555 STD { int|linux_sys||fcntl(int fd, int cmd, void *arg); } 12656 OBSOL mpx 12757 NOARGS { int|sys||setpgid(int pid, int pgid); } 12858 OBSOL ulimit 12959 STD { int|linux_sys||oldolduname( \ 130 struct linux_oldold_utsname *up); } 13160 NOARGS { int|sys||umask(int newmask); } 13261 NOARGS { int|sys||chroot(char *path); } 13362 UNIMPL ustat 13463 NOARGS { int|sys||dup2(int from, int to); } 13564 NOARGS { pid_t|sys||getppid(void); } 13665 NOARGS { int|sys||getpgrp(void); } 13766 NOARGS { int|sys||setsid(void); } 13867 STD { int|linux_sys||sigaction(int signum, \ 139 const struct linux_old_sigaction *nsa, \ 140 struct linux_old_sigaction *osa); } 14168 STD { int|linux_sys||siggetmask(void); } 14269 STD { int|linux_sys||sigsetmask(linux_old_sigset_t mask); } 14370 STD { int|linux_sys||setreuid16(linux_uid16_t ruid, \ 144 linux_uid16_t euid); } 14571 STD { int|linux_sys||setregid16(linux_gid16_t rgid, \ 146 linux_gid16_t egid); } 14772 STD { int|linux_sys||sigsuspend(void *restart, \ 148 int oldmask, int mask); } 14973 STD { int|linux_sys||sigpending(linux_old_sigset_t *set); } 15074 NOARGS { int|compat_43_sys||sethostname(char *hostname, \ 151 u_int len);} 15275 STD { int|linux_sys||setrlimit(u_int which, \ 153 struct orlimit *rlp); } 15476 STD { int|linux_sys||getrlimit(u_int which, \ 155 struct orlimit *rlp); } 15677 NOARGS { int|compat_50_sys||getrusage(int who, struct rusage50 *rusage); } 15778 STD { int|linux_sys||gettimeofday(struct timeval50 *tp, \ 158 struct timezone *tzp); } 15979 STD { int|linux_sys||settimeofday(struct timeval50 *tp, \ 160 struct timezone *tzp); } 16180 STD { int|linux_sys||getgroups16(int gidsetsize, \ 162 linux_gid16_t *gidset); } 16381 STD { int|linux_sys||setgroups16(int gidsetsize, \ 164 linux_gid16_t *gidset); } 16582 STD { int|linux_sys||oldselect(struct linux_oldselect *lsp); } 16683 NOARGS { int|sys||symlink(const char *path, const char *link); } 16784 NOARGS { int|compat_43_sys||lstat(const char *path, \ 168 struct stat43 *ub); } oolstat 16985 NOARGS { ssize_t|sys||readlink(const char *path, char *buf, \ 170 int count); } 171#ifdef EXEC_AOUT 17286 STD { int|linux_sys||uselib(const char *path); } 173#else 17486 EXCL uselib 175#endif 17687 STD { int|linux_sys||swapon(char *name); } 17788 STD { int|linux_sys||reboot(int magic1, int magic2, \ 178 int cmd, void *arg); } 17989 STD { int|linux_sys||readdir(int fd, void *dent, \ 180 unsigned int count); } 18190 STD { int|linux_sys||old_mmap(struct linux_oldmmap *lmp); } 18291 NOARGS { int|sys||munmap(void *addr, size_t len); } 18392 NOARGS { int|compat_43_sys||truncate(const char *path, \ 184 long length); } 18593 NOARGS { int|compat_43_sys||ftruncate(int fd, long length); } 18694 NOARGS { int|sys||fchmod(int fd, linux_umode_t mode); } 18795 STD { int|linux_sys||fchown16(int fd, linux_uid16_t uid, \ 188 linux_gid16_t gid); } 18996 STD { int|linux_sys||getpriority(int which, int who); } 19097 NOARGS { int|sys||setpriority(int which, int who, int prio); } 19198 NOARGS { int|sys||profil(void *samples, u_int size, \ 192 u_int offset, u_int scale); } 19399 STD { int|linux_sys||statfs(const char *path, \ 194 struct linux_statfs *sp); } 195100 STD { int|linux_sys||fstatfs(int fd, \ 196 struct linux_statfs *sp); } 197101 UNIMPL 198102 STD { int|linux_sys||socketcall(int what, void *args); } 199103 UNIMPL syslog 200104 NOARGS { int|compat_50_sys||setitimer(int which, \ 201 struct itimerval50 *itv, \ 202 struct itimerval50 *oitv); } 203105 NOARGS { int|compat_50_sys||getitimer(int which, \ 204 struct itimerval50 *itv); } 205106 STD { int|linux_sys||stat(const char *path, \ 206 struct linux_stat *sp); } 207107 STD { int|linux_sys||lstat(const char *path, \ 208 struct linux_stat *sp); } 209108 STD { int|linux_sys||fstat(int fd, struct linux_stat *sp); } 210109 STD { int|linux_sys||olduname(struct linux_oldutsname *up); } 211110 UNIMPL 212111 UNIMPL vhangup 213112 UNIMPL idle 214113 UNIMPL syscall 215114 STD { int|linux_sys||wait4(int pid, int *status, \ 216 int options, struct rusage50 *rusage); } 217115 STD { int|linux_sys||swapoff(const char *path); } 218116 STD { int|linux_sys||sysinfo(struct linux_sysinfo *arg); } 219117 STD { int|linux_sys||ipc(int what, int a1, int a2, int a3, \ 220 void *ptr); } 221118 NOARGS { int|sys||fsync(int fd); } 222119 STD { int|linux_sys||sigreturn(struct linux_sigcontext *scp); } 223120 STD { int|linux_sys||clone(int flags, void *stack, \ 224 void *parent_tidptr, void *tls, void *child_tidptr); } 225121 STD { int|linux_sys||setdomainname(char *domainname, \ 226 int len); } 227122 STD { int|linux_sys||uname(struct linux_utsname *up); } 228123 UNIMPL modify_ldt 229124 UNIMPL adjtimex 230125 STD { int|linux_sys||mprotect(const void *start, \ 231 unsigned long len, int prot); } 232126 STD { int|linux_sys||sigprocmask(int how, \ 233 const linux_old_sigset_t *set, \ 234 linux_old_sigset_t *oset); } 235127 UNIMPL create_module 236128 UNIMPL init_module 237129 UNIMPL delete_module 238130 UNIMPL get_kernel_syms 239131 UNIMPL quotactl 240132 NOARGS { pid_t|sys||getpgid(pid_t pid); } 241133 NOARGS { int|sys||fchdir(int fd); } 242134 UNIMPL bdflush 243135 UNIMPL sysfs 244136 STD { int|linux_sys||personality(unsigned long per); } 245137 UNIMPL afs_syscall 246138 STD { int|linux_sys||setfsuid(uid_t uid); } 247139 STD { int|linux_sys||setfsgid(gid_t gid); } 248140 STD { int|linux_sys||llseek(int fd, u_int32_t ohigh, \ 249 u_int32_t olow, void *res, int whence); } 250141 STD { int|linux_sys||getdents(int fd, \ 251 struct linux_dirent *dent, unsigned int count); } 252142 STD { int|linux_sys||select(int nfds, fd_set *readfds, \ 253 fd_set *writefds, fd_set *exceptfds, \ 254 struct timeval50 *timeout); } 255143 NOARGS { int|sys||flock(int fd, int how); } 256144 NOARGS { int|sys|13|msync(void *addr, size_t len, int flags); } 257145 NOARGS { ssize_t|sys||readv(int fd, \ 258 const struct iovec *iovp, int iovcnt); } 259146 NOARGS { ssize_t|sys||writev(int fd, \ 260 const struct iovec *iovp, int iovcnt); } 261147 NOARGS { pid_t|sys||getsid(pid_t pid); } 262148 STD { int|linux_sys||fdatasync(int fd); } 263149 STD { int|linux_sys||__sysctl(struct linux___sysctl *lsp); } 264150 NOARGS { int|sys||mlock(void *addr, size_t len); } 265151 NOARGS { int|sys||munlock(void *addr, size_t len); } 266152 NOARGS { int|sys||mlockall(int flags); } 267153 NOARGS { int|sys||munlockall(void); } 268154 STD { int|linux_sys||sched_setparam(pid_t pid, \ 269 const struct linux_sched_param *sp); } 270155 STD { int|linux_sys||sched_getparam(pid_t pid, \ 271 struct linux_sched_param *sp); } 272156 STD { int|linux_sys||sched_setscheduler(pid_t pid, \ 273 int policy, const struct linux_sched_param *sp); } 274157 STD { int|linux_sys||sched_getscheduler(pid_t pid); } 275158 STD { int|linux_sys||sched_yield(void); } 276159 STD { int|linux_sys||sched_get_priority_max(int policy); } 277160 STD { int|linux_sys||sched_get_priority_min(int policy); } 278161 UNIMPL sched_rr_get_interval 279162 STD { int|linux_sys||nanosleep( \ 280 const struct linux_timespec *rqtp, \ 281 struct linux_timespec *rmtp); } 282163 STD { void *|linux_sys||mremap(void *old_address, \ 283 size_t old_size, size_t new_size, u_long flags); } 284164 STD { int|linux_sys||setresuid16(linux_uid16_t ruid, \ 285 linux_uid16_t euid, linux_uid16_t suid); } 286165 STD { int|linux_sys||getresuid16(linux_uid16_t *ruid, \ 287 linux_uid16_t *euid, linux_uid16_t *suid); } 288166 UNIMPL 289167 UNIMPL query_module 290168 NOARGS { int|sys||poll(struct pollfd *fds, u_int nfds, \ 291 int timeout); } 292169 UNIMPL nfsservctl 293170 STD { int|linux_sys||setresgid16(linux_gid16_t rgid, \ 294 linux_gid16_t egid, linux_gid16_t sgid); } 295171 STD { int|linux_sys||getresgid16(linux_gid16_t *rgid, \ 296 linux_gid16_t *egid, linux_gid16_t *sgid); } 297172 UNIMPL prctl 298173 UNIMPL rt_sigreturn 299;173 STD { int|linux_sys||rt_sigreturn( \ 300; struct linux_rt_sigframe *sfp); } 301174 STD { int|linux_sys||rt_sigaction(int signum, \ 302 const struct linux_sigaction *nsa, \ 303 struct linux_sigaction *osa, \ 304 size_t sigsetsize); } 305175 STD { int|linux_sys||rt_sigprocmask(int how, \ 306 const linux_sigset_t *set, \ 307 linux_sigset_t *oset, \ 308 size_t sigsetsize); } 309176 STD { int|linux_sys||rt_sigpending( \ 310 linux_sigset_t *set, \ 311 size_t sigsetsize); } 312177 STD { int|linux_sys||rt_sigtimedwait( \ 313 const linux_sigset_t *set, \ 314 linux_siginfo_t *info, \ 315 const struct linux_timespec *timeout); } 316178 STD { int|linux_sys||rt_queueinfo(int pid, int signum, \ 317 linux_siginfo_t *uinfo); } 318179 STD { int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \ 319 size_t sigsetsize); } 320180 STD { int|linux_sys||pread(int fd, char *buf, \ 321 size_t nbyte, off_t offset); } 322181 STD { int|linux_sys||pwrite(int fd, char *buf, \ 323 size_t nbyte, off_t offset); } 324182 STD { int|linux_sys||chown16(const char *path, \ 325 linux_uid16_t uid, linux_gid16_t gid); } 326183 NOARGS { int|sys||__getcwd(char *bufp, size_t length); } 327184 UNIMPL capget 328185 UNIMPL capset 329186 STD { int|linux_sys||sigaltstack( \ 330 const struct linux_sigaltstack *ss, \ 331 struct linux_sigaltstack *oss); } 332187 UNIMPL sendfile 333188 UNIMPL getpmsg 334189 UNIMPL putpmsg 335190 NOARGS vfork { int|sys|14|vfork(void); } 336191 STD { int|linux_sys||ugetrlimit(int which, \ 337 struct rlimit *rlp); } 338#define linux_sys_mmap2_args linux_sys_mmap_args 339192 NOARGS { linux_off_t|linux_sys||mmap2(unsigned long addr, \ 340 size_t len, int prot, int flags, int fd, \ 341 linux_off_t offset); } 342193 STD { int|linux_sys||truncate64(const char *path, \ 343 off_t length); } 344194 STD { int|linux_sys||ftruncate64(unsigned int fd, \ 345 off_t length); } 346195 STD { int|linux_sys||stat64(const char *path, \ 347 struct linux_stat64 *sp); } 348196 STD { int|linux_sys||lstat64(const char *path, \ 349 struct linux_stat64 *sp); } 350197 STD { int|linux_sys||fstat64(int fd, \ 351 struct linux_stat64 *sp); } 352198 NOARGS { int|sys||__posix_lchown(const char *path, uid_t uid, \ 353 gid_t gid); } 354199 NOARGS getuid32 { uid_t|sys||getuid(void); } 355200 NOARGS getgid32 { gid_t|sys||getgid(void); } 356201 NOARGS geteuid32 { uid_t|sys||geteuid(void); } 357202 NOARGS getegid32 { gid_t|sys||getegid(void); } 358203 NOARGS setreuid32 { int|sys||setreuid(uid_t ruid, \ 359 uid_t euid); } 360204 NOARGS setregid32 { int|sys||setregid(gid_t rgid, \ 361 gid_t egid); } 362205 NOARGS getgroups32 { int|sys||getgroups(int gidsetsize, \ 363 gid_t *gidset); } 364206 NOARGS setgroups32 { int|sys||setgroups(int gidsetsize, \ 365 gid_t *gidset); } 366207 NOARGS fchown32 { int|sys||__posix_fchown(int fd, uid_t uid, \ 367 gid_t gid); } 368208 STD setresuid32 { int|linux_sys||setresuid(uid_t ruid, \ 369 uid_t euid, uid_t suid); } 370209 STD getresuid32 { int|linux_sys||getresuid(uid_t *ruid, \ 371 uid_t *euid, uid_t *suid); } 372210 STD setresgid32 { int|linux_sys||setresgid(gid_t rgid, \ 373 gid_t egid, gid_t sgid); } 374211 STD getresgid32 { int|linux_sys||getresgid(gid_t *rgid, \ 375 gid_t *egid, gid_t *sgid); } 376212 NOARGS chown32 { int|sys||__posix_chown(const char *path, \ 377 uid_t uid, gid_t gid); } 378213 NOARGS setuid32 { int|sys||setuid(uid_t uid); } 379214 NOARGS setgid32 { int|sys||setgid(gid_t gid); } 380215 NOARGS setfsuid32 { int|linux_sys||setfsuid(uid_t uid); } 381216 NOARGS setfsgid32 { int|linux_sys||setfsgid(gid_t gid); } 382217 STD { int|linux_sys||getdents64(int fd, \ 383 struct linux_dirent64 *dent, unsigned int count); } 384218 UNIMPL pivot_root 385219 NOARGS { int|sys||mincore(void *addr, size_t len, char *vec); } 386220 NOARGS { int|sys||madvise(void *addr, size_t len, int behav); } 387221 STD { int|linux_sys||fcntl64(int fd, int cmd, void *arg); } 388222 UNIMPL /* for tux */ 389223 UNIMPL /* unused */ 390224 NOARGS { pid_t|linux_sys||gettid(void); } 391225 STD { ssize_t|linux_sys||readahead(int fd, off_t offset, \ 392 size_t count); } 393226 STD { int|linux_sys||setxattr(char *path, char *name, \ 394 void *value, size_t size, int flags); } 395227 STD { int|linux_sys||lsetxattr(char *path, char *name, \ 396 void *value, size_t size, int flags); } 397228 STD { int|linux_sys||fsetxattr(int fd, char *name, \ 398 void *value, size_t size, int flags); } 399229 STD { ssize_t|linux_sys||getxattr(char *path, char *name, \ 400 void *value, size_t size); } 401230 STD { ssize_t|linux_sys||lgetxattr(char *path, char *name, \ 402 void *value, size_t size); } 403231 STD { ssize_t|linux_sys||fgetxattr(int fd, char *name, \ 404 void *value, size_t size); } 405232 STD { ssize_t|linux_sys||listxattr(char *path, char *list, \ 406 size_t size); } 407233 STD { ssize_t|linux_sys||llistxattr(char *path, char *list, \ 408 size_t size); } 409234 STD { ssize_t|linux_sys||flistxattr(int fd, char *list, \ 410 size_t size); } 411235 STD { int|linux_sys||removexattr(char *path, char *name); } 412236 STD { int|linux_sys||lremovexattr(char *path, char *name); } 413237 STD { int|linux_sys||fremovexattr(int fd, char *name); } 414238 STD { int|linux_sys||tkill(int tid, int sig); } 415239 UNIMPL sendfile64 416240 STD { int|linux_sys||futex(int *uaddr, int op, int val, \ 417 const struct linux_timespec *timeout, int *uaddr2, \ 418 int val3); } 419241 STD { int|linux_sys||sched_setaffinity(pid_t pid, \ 420 unsigned int len, unsigned long *mask); } 421242 STD { int|linux_sys||sched_getaffinity(pid_t pid, \ 422 unsigned int len, unsigned long *mask); } 423243 UNIMPL io_setup 424244 UNIMPL io_destroy 425245 UNIMPL io_getevents 426246 UNIMPL io_submit 427247 UNIMPL io_cancel 428248 STD { int|linux_sys||exit_group(int error_code); } 429249 UNIMPL lookup_dcookie 430250 STD { int|linux_sys||epoll_create(int size); } 431251 STD { int|linux_sys||epoll_ctl(int epfd, int op, int fd, \ 432 struct linux_epoll_event *event); } 433252 STD { int|linux_sys||epoll_wait(int epfd, \ 434 struct linux_epoll_event *events, int maxevents, \ 435 int timeout); } 436253 UNIMPL remap_file_pages 437254 UNIMPL set_thread_area 438255 UNIMPL get_thread_area 439256 STD { int|linux_sys||set_tid_address(int *tid); } 440257 STD { int|linux_sys||timer_create(clockid_t clockid, \ 441 struct linux_sigevent *evp, timer_t *timerid); } 442258 STD { int|linux_sys||timer_settime(timer_t timerid, \ 443 int flags, const struct linux_itimerspec *tim, \ 444 struct linux_itimerspec *otim); } 445259 STD { int|linux_sys||timer_gettime(timer_t timerid, \ 446 struct linux_itimerspec *tim); } 447260 NOARGS { int|sys||timer_getoverrun(timer_t timerid); } 448261 NOARGS { int|sys||timer_delete(timer_t timerid); } 449262 STD { int|linux_sys||clock_settime(clockid_t which, \ 450 struct linux_timespec *tp); } 451263 STD { int|linux_sys||clock_gettime(clockid_t which, \ 452 struct linux_timespec *tp); } 453264 STD { int|linux_sys||clock_getres(clockid_t which, \ 454 struct linux_timespec *tp); } 455265 STD { int|linux_sys||clock_nanosleep(clockid_t which, \ 456 int flags, struct linux_timespec *rqtp, \ 457 struct linux_timespec *rmtp); } 458266 STD { int|linux_sys||statfs64(const char *path, \ 459 size_t sz, struct linux_statfs64 *sp); } 460267 STD { int|linux_sys||fstatfs64(int fd, \ 461 size_t sz, struct linux_statfs64 *sp); } 462268 STD { int|linux_sys||tgkill(int tgid, int tid, int sig); } 463269 NOARGS { int|compat_50_sys||utimes(const char *path, \ 464 const struct timeval50 *tptr); } 465270 STD { int|linux_sys||fadvise64_64(int fd, off_t offset, \ 466 off_t len, int advice); } 467271 UNIMPL pciconfig_iobase 468272 UNIMPL pciconfig_read 469273 UNIMPL pciconfig_write 470274 UNIMPL mq_open 471275 UNIMPL mq_unlink 472276 UNIMPL mq_timedsend 473277 UNIMPL mq_timedreceive 474278 UNIMPL mq_notify 475279 UNIMPL mq_getsetattr 476280 STD { int|linux_sys||waitid(int idtype, id_t id, \ 477 linux_siginfo_t *infop, int options, \ 478 struct rusage50 *rusage); } 479281 UNIMPL socket 480282 UNIMPL bind 481283 UNIMPL connect 482284 UNIMPL listen 483285 UNIMPL accept 484286 UNIMPL getsockname 485287 UNIMPL getpeername 486288 UNIMPL socketpair 487289 UNIMPL send 488290 UNIMPL sendto 489291 UNIMPL recv 490292 UNIMPL recvfrom 491293 UNIMPL shutdown 492294 UNIMPL setsockopt 493295 UNIMPL getsockopt 494296 UNIMPL sendmsg 495297 UNIMPL recvmsg 496298 UNIMPL semop 497299 UNIMPL semget 498300 UNIMPL semctl 499301 UNIMPL msgsnd 500302 UNIMPL msgrcv 501303 UNIMPL msgget 502304 UNIMPL msgctl 503305 UNIMPL shmat 504306 UNIMPL shmdt 505307 UNIMPL shmget 506308 UNIMPL shmctl 507309 UNIMPL add_key 508310 UNIMPL request_key 509311 UNIMPL keyctl 510312 UNIMPL semtimedop 511313 UNIMPL vserver 512314 UNIMPL ioptio_set 513315 UNIMPL ioptio_get 514316 STD { int|linux_sys||inotify_init(void); } 515317 STD { int|linux_sys||inotify_add_watch(int fd, \ 516 const char *pathname, uint32_t mask); } 517318 STD { int|linux_sys||inotify_rm_watch(int fd, int wd); } 518319 UNIMPL mbind 519320 UNIMPL get_mempolicy 520321 UNIMPL set_mempolicy 521322 STD { int|linux_sys||openat(int fd, const char *path, \ 522 int flags, ... linux_umode_t mode); } 523323 NOARGS { int|sys||mkdirat(int fd, const char *path, \ 524 linux_umode_t mode); } 525324 STD { int|linux_sys||mknodat(int fd, const char *path, \ 526 linux_umode_t mode, unsigned dev); } 527325 STD { int|linux_sys||fchownat(int fd, const char *path, \ 528 uid_t owner, gid_t group, int flag); } 529326 UNIMPL futimesat 530327 STD { int|linux_sys||fstatat64(int fd, const char *path, \ 531 struct linux_stat64 *sp, int flag); } 532328 STD { int|linux_sys||unlinkat(int fd, const char *path, \ 533 int flag); } 534329 NOARGS { int|sys||renameat(int fromfd, const char *from, \ 535 int tofd, const char *to); } 536330 STD { int|linux_sys||linkat(int fd1, const char *name1, \ 537 int fd2, const char *name2, int flags); } 538331 NOARGS { int|sys||symlinkat(const char *path1, int fd, \ 539 const char *path2); } 540332 NOARGS { ssize_t|sys||readlinkat(int fd, const char *path, \ 541 char *buf, size_t bufsize); } 542333 STD { int|linux_sys||fchmodat(int fd, const char *path, \ 543 linux_umode_t mode); } 544334 STD { int|linux_sys||faccessat(int fd, const char *path, \ 545 int amode); } 546335 STD { int|linux_sys||pselect6(int nfds, fd_set *readfds, \ 547 fd_set *writefds, fd_set *exceptfds, \ 548 struct linux_timespec *timeout, \ 549 linux_sized_sigset_t *ss); } 550336 STD { int|linux_sys||ppoll(struct pollfd *fds, u_int nfds, \ 551 struct linux_timespec *timeout, \ 552 linux_sigset_t *sigset); } 553337 UNIMPL unshare 554 ; 555 ; The NetBSD native robust list calls have different 556 ; argument names / types, but they are ABI-compatible 557 ; with Linux. 558 ; 559338 NOARGS { int|sys||__futex_set_robust_list(void *head, \ 560 size_t len); } 561339 NOARGS { int|sys||__futex_get_robust_list(lwpid_t lwpid, \ 562 void **headp, size_t *lenp); } 563340 UNIMPL splice 564341 UNIMPL sync_file_range2 565342 UNIMPL tee 566343 UNIMPL vmsplice 567344 UNIMPL move_pages 568345 STD { int|linux_sys||getcpu(unsigned int *cpu, \ 569 unsigned int *node, \ 570 struct linux_getcpu_cache *tcache); } 571346 STD { int|linux_sys||epoll_pwait(int epfd, \ 572 struct linux_epoll_event *events, int maxevents, \ 573 int timeout, const linux_sigset_t *sigmask); } 574347 UNIMPL kexec_load 575348 STD { int|linux_sys||utimensat(int fd, const char *path, \ 576 struct linux_timespec *times, int flag); } 577349 UNIMPL signalfd 578350 STD { int|linux_sys||timerfd_create(clockid_t clock_id, \ 579 int flags); } 580351 STD { int|linux_sys||eventfd(unsigned int initval); } 581352 STD { int|linux_sys||fallocate(int fd, int mode, \ 582 off_t offset, off_t len); } 583353 STD { int|linux_sys||timerfd_settime(int fd, int flags, \ 584 const struct linux_itimerspec *tim, \ 585 struct linux_itimerspec *otim); } 586354 STD { int|linux_sys||timerfd_gettime(int fd, \ 587 struct linux_itimerspec *tim); } 588355 UNIMPL signalfd4 589356 STD { int|linux_sys||eventfd2(unsigned int initval, \ 590 int flags); } 591357 STD { int|linux_sys||epoll_create1(int flags); } 592358 STD { int|linux_sys||dup3(int from, int to, int flags); } 593359 STD { int|linux_sys||pipe2(int *pfds, int flags); } 594360 STD { int|linux_sys||inotify_init1(int flags); } 595361 STD { int|linux_sys||preadv(int fd, \ 596 const struct iovec *iovp, int iovcnt, \ 597 unsigned long off_lo, unsigned long off_hi); } 598362 STD { int|linux_sys||pwritev(int fd, \ 599 const struct iovcnt *iovp, int iovcnt, \ 600 unsigned long off_lo, unsigned long off_hi); } 601363 UNIMPL rt_tgsigqueueinfo 602364 UNIMPL perf_counter_open 603365 STD { int|linux_sys||recvmmsg(int s, \ 604 struct linux_mmsghdr *msgvec, unsigned int vlen, \ 605 unsigned int flags, struct timespec *timeout); } 606366 STD { int|linux_sys||accept4(int s, \ 607 struct osockaddr *name, \ 608 int *anamelen, int flags); } 609367 UNIMPL fanotify_init 610368 UNIMPL fanotify_mark 611369 STD { int|linux_sys||prlimit64(pid_t pid, int which, \ 612 struct rlimit *new_rlp, struct rlimit *old_rlp); } 613370 UNIMPL name_to_handle_at 614371 UNIMPL open_by_handle_at 615372 UNIMPL clock_adjtime 616373 UNIMPL syncfs 617374 STD { int|linux_sys||sendmmsg(int s, \ 618 struct linux_mmsghdr *msgvec, unsigned int vlen, \ 619 unsigned int flags); } 620375 UNIMPL setns 621376 UNIMPL process_vm_readv 622377 UNIMPL process_vm_writev 623378 UNIMPL kcmp 624379 UNIMPL finit_module 625380 UNIMPL sched_setattr 626381 UNIMPL sched_getattr 627382 UNIMPL renameat2 628383 UNIMPL seccomp 629; XXX FIX-me? 630; 384 NOARGS { ssize_t|sys||getrandom(void *buf, size_t buflen, \ 631 unsigned int flags); } 632; 385 UNIMPL memfd_create 633 634; ARMLinux actually has two ranges of syscalls. Normal syscalls use 635; SWI numbers starting at 0x900000 (__NR_SYSCALL_BASE). Special 636; ARM-specific syscalls use SWI numbers starting at 0x9f0000 637; (__ARM_NR_BASE). linux_syscall() (in arch/arm/arm/linux_syscall.c) 638; remaps these down to 0x900180 so that we can use one linux_sysent 639; array for the whole lot. 640 641384 UNIMPL /* base */ 642385 STD { int|linux_sys||breakpoint(void); } 643386 STD { int|linux_sys||cacheflush(uintptr_t from, \ 644 intptr_t to, int flags); } 645387 UNIMPL usr26 646388 UNIMPL usr32 647389 STD { int|linux_sys||set_tls(void *tls); } 648390 UNIMPL 649391 UNIMPL 650392 UNIMPL 651393 UNIMPL 652394 UNIMPL 653395 UNIMPL 654396 UNIMPL 655397 STD { int|linux_sys||statx(int fd, const char *path, \ 656 int flag, unsigned int mask, \ 657 struct linux_statx *sp); } 658398 UNIMPL 659399 UNIMPL 660400 UNIMPL 661401 UNIMPL 662402 UNIMPL 663403 UNIMPL 664404 UNIMPL 665405 UNIMPL 666406 UNIMPL 667407 UNIMPL 668408 UNIMPL 669409 UNIMPL 670410 UNIMPL 671411 UNIMPL 672412 UNIMPL 673413 UNIMPL 674414 UNIMPL 675415 UNIMPL 676416 UNIMPL 677417 UNIMPL 678418 UNIMPL 679419 UNIMPL 680420 UNIMPL 681421 UNIMPL 682422 UNIMPL 683423 UNIMPL 684424 UNIMPL 685425 UNIMPL 686426 UNIMPL 687427 UNIMPL 688428 UNIMPL 689429 UNIMPL 690430 UNIMPL 691431 UNIMPL 692432 UNIMPL 693433 UNIMPL 694434 UNIMPL 695435 UNIMPL 696436 STD { int|linux_sys||close_range(unsigned int first, \ 697 unsigned int last, unsigned int flags); } 698437 UNIMPL 699438 UNIMPL 700439 STD { int|linux_sys||faccessat2(int fd, const char *path, \ 701 int amode, int flags); } 702440 UNIMPL 703441 STD { int|linux_sys||epoll_pwait2(int epfd, \ 704 struct linux_epoll_event *events, int maxevents, \ 705 const struct linux_timespec *timeout, \ 706 const linux_sigset_t *sigmask); } 707