1 $NetBSD: syscalls.master,v 1.108 2024/07/01 01:35:52 christos Exp $ 2; 3; @(#)syscalls.master 8.1 (Berkeley) 7/19/93 4 5; NetBSD alpha COMPAT_LINUX system call name/number "master" file. 6; (See syscalls.conf to see what it is processed into.) 7; 8; Fields: number type [type-dependent ...] 9; number system call number, must be in order 10; type one of STD, OBSOL, UNIMPL, NODEF, NOARGS, or one of 11; the compatibility options defined in syscalls.conf. 12; 13; types: 14; STD always included 15; OBSOL obsolete, not included in system 16; UNIMPL unimplemented, not included in system 17; NODEF included, but don't define the syscall number 18; NOARGS included, but don't define the syscall args structure 19; INDIR included, but don't define the syscall args structure 20; and allow it to be "really" varargs. 21; 22; The compat options are defined in the syscalls.conf file, and the 23; compat option name is prefixed to the syscall name. Other than 24; that, they're like NODEF (for 'compat' options), or STD (for 25; 'libcompat' options). 26; 27; The type-dependent arguments are as follows: 28; For STD, NODEF, NOARGS, and compat syscalls: 29; { pseudo-proto } [alias] 30; For other syscalls: 31; [comment] 32; 33; #ifdef's, etc. may be included, and are copied to the output files. 34; #include's are copied to the syscall names and switch definition files only. 35; 36; (ERH: 3/18/00) 37; 38; XXX XAX things to do: 39; make sure non-linux_foo() matches real linux syscalls. 40; create new linux_foo functions otherwise 41; (i.e. reboot, msgrcv? ) 42; make sure linux_foo() matches expected prototypes in .c files. 43; kill not used functions. (ifdef the actual code) 44; make linux_sys_sigreturn in linux_machdep.c use frame.extramask 45; 46; NOT USED = This syscall is not really used in Linux, except in its 47; osf compat mode. Since Linux binaries shouldn't ever 48; call it and osf binaries run under a different emulation, 49; it shouldn't matter that the linux version of the 50; function might not DTRT. Define it anyway so we 51; don't have to split off or ifdef the associated function. 52; A bit better might be to have makesyscalls identify this 53; as "define but don't include in table" so it doesn't actually 54; ever get called. 55; UNIMPL <blank> = not implemented here nor in linux source 56; UNIMPL osf_* = osf functions implemented in linux, not here. 57; 58 59#if defined(_KERNEL_OPT) 60#include "opt_sysv.h" 61#endif 62 63#include <sys/param.h> 64#include <sys/poll.h> 65#include <sys/systm.h> 66#include <sys/signal.h> 67#include <sys/mount.h> 68#include <sys/syscallargs.h> 69 70#include <compat/linux/common/linux_types.h> 71#include <compat/linux/common/linux_signal.h> 72#include <compat/linux/common/linux_siginfo.h> 73#include <compat/linux/common/linux_ipc.h> 74#include <compat/linux/common/linux_msg.h> 75#include <compat/linux/common/linux_sched.h> 76#include <compat/linux/common/linux_sem.h> 77#include <compat/linux/common/linux_shm.h> 78#include <compat/linux/common/linux_mmap.h> 79#include <compat/linux/common/linux_machdep.h> 80#include <compat/linux/common/linux_mqueue.h> 81 82#include <compat/linux/linux_syscallargs.h> 83#include <compat/linux/arch/alpha/linux_osf1.h> 84 85%% 86 870 NOARGS { int|linux_sys||nosys(void); } syscall 881 STD { int|linux_sys||exit(int rval); } 892 NOARGS { int|sys||fork(void); } 903 NOARGS { ssize_t|sys||read(int fd, void *buf, size_t nbyte); } 914 NOARGS { ssize_t|sys||write(int fd, const void *buf, \ 92 size_t nbyte); } 935 UNIMPL 946 NOARGS { int|sys||close(int fd); } 957 STD { int|linux_sys||osf1_wait4(int pid, int *status, \ 96 int options, struct osf1_rusage *rusage); } 97;8 ALIAS osf1_sys_old_creat, NOT USED 988 STD { int|linux_sys||creat(const char *path, linux_umode_t mode); } 999 NOARGS { int|sys||link(const char *path, const char *link); } 10010 STD { int|linux_sys||unlink(const char *path); } 10111 UNIMPL 10212 NOARGS { int|sys||chdir(const char *path); } 10313 NOARGS { int|sys||fchdir(int fd); } 10414 STD { int|linux_sys||mknod(const char *path, linux_umode_t mode, \ 105 unsigned dev); } 10615 NOARGS { int|sys||chmod(const char *path, int mode); } 10716 NOARGS { int|sys||__posix_chown(const char *path, uid_t uid, \ 108 gid_t gid); } 109;17 ALIAS osf1_sys_brk 11017 STD { int|linux_sys||brk(char *nsize); } 11118 UNIMPL 11219 NOARGS { long|compat_43_sys||lseek(int fd, long offset, \ 113 int whence); } 11420 NOARGS { pid_t|sys||getpid_with_ppid(void); } 11521 STD { int|linux_sys||osf1_mount(int type, const char *path, \ 116 int flags, void *data); } 11722 UNIMPL umount 11823 NOARGS { int|sys||setuid(uid_t uid); } 11924 NOARGS { uid_t|sys||getuid_with_euid(void); } 12025 UNIMPL 12126 STD { int|linux_sys||ptrace(long request, long pid, \ 122 long addr, long data); } 12327 UNIMPL 12428 UNIMPL 12529 UNIMPL 12630 UNIMPL 12731 UNIMPL 12832 UNIMPL 12933 NOARGS { int|sys||access(const char *path, int flags); } 13034 UNIMPL 13135 UNIMPL 13236 NOARGS { int|sys||sync(void); } 13337 STD { int|linux_sys||kill(int pid, int signum); } 13438 UNIMPL 13539 NOARGS { int|sys||setpgid(int pid, int pgid); } 13640 UNIMPL 13741 NOARGS { int|sys||dup(int fd); } 13842 NOARGS { int|linux_sys||pipe(void); } 13943 STD { int|linux_sys||osf1_set_program_attributes( \ 140 void *taddr, unsigned long tsize, \ 141 void *daddr, unsigned long dsize); } 14244 UNIMPL 14345 STD { int|linux_sys||open(const char *path, int flags, \ 144 linux_umode_t mode); } 14546 UNIMPL 14647 NOARGS { gid_t|sys||getgid_with_egid(void); } 147; ALIAS osf1_sys_sigprocmask(int how, unsigned long mask); 148; XXX <- copied from osf1/syscalls.master 14948 NOARGS { int|compat_13_sys||sigprocmask(int how, \ 150 sigset13_t mask); } 15149 UNIMPL 15250 UNIMPL 15351 NOARGS { int|sys||acct(const char *path); } 15452 STD { int|linux_sys||sigpending(linux_old_sigset_t *set); } 15553 UNIMPL 15654 STD { int|linux_sys||ioctl(int fd, u_long com, \ 157 void *data); } 15855 UNIMPL 15956 UNIMPL 16057 NOARGS { int|sys||symlink(const char *path, const char *to); } 16158 NOARGS { ssize_t|sys||readlink(const char *path, char *buf, \ 162 int count); } 16359 NOARGS { int|sys||execve(const char *path, char **argp, \ 164 char **envp); } 16560 NOARGS { mode_t|sys||umask(mode_t newmask); } 16661 NOARGS { int|sys||chroot(const char *path); } 16762 UNIMPL 16863 NOARGS { int|sys||getpgrp(void); } 16964 NOARGS { int|compat_43_sys||getpagesize(void); } 17065 UNIMPL 17166 NOARGS { int|sys|14|vfork(void); } 17267 STD { int|linux_sys||stat(const char *path, \ 173 struct linux_stat *sp); } 17468 STD { int|linux_sys||lstat(const char *path, \ 175 struct linux_stat *sp); } 17669 UNIMPL 17770 UNIMPL 178;71 ALIAS osf1_sys_mmap 17971 NOARGS { int|linux_sys||mmap(unsigned long addr, size_t len, \ 180 int prot, int flags, int fd, linux_off_t offset); } 18172 UNIMPL 18273 NOARGS { int|sys||munmap(void *addr, size_t len); } 18374 STD { int|linux_sys||mprotect(const void *start, \ 184 unsigned long len, int prot); } 18575 NOARGS { int|sys||madvise(void *addr, size_t len, int behav); } 18676 UNIMPL vhangup 18777 UNIMPL 18878 UNIMPL 18979 NOARGS { int|sys||getgroups(int gidsetsize, gid_t *gidset); } 19080 NOARGS { int|sys||setgroups(int gidsetsize, const gid_t *gidset); } 19181 UNIMPL 19282 UNIMPL setpgrp 19383 STD { int|linux_sys||osf1_setitimer(int which, \ 194 struct osf1_itimerval *itv, \ 195 struct osf1_itimerval *oitv); } 19684 UNIMPL 19785 UNIMPL 19886 UNIMPL osf1_sys_getitimer 19987 NOARGS { int|compat_43_sys||gethostname(char *hostname, \ 200 u_int len); } 20188 NOARGS { int|compat_43_sys||sethostname(char *hostname, \ 202 u_int len); } 20389 UNIMPL getdtablesize 20490 NOARGS { int|sys||dup2(int from, int to); } 20591 STD { int|linux_sys||fstat(int fd, struct linux_stat *sp); } 20692 STD { int|linux_sys||fcntl(int fd, int cmd, void *arg); } 20793 STD { int|linux_sys||osf1_select(u_int nd, fd_set *in, \ 208 fd_set *ou, fd_set *ex, struct osf1_timeval *tv); } 20994 NOARGS { int|sys||poll(struct pollfd *fds, u_int nfds, \ 210 int timeout); } 21195 NOARGS { int|sys||fsync(int fd); } 21296 NOARGS { int|sys||setpriority(int which, int who, int prio); } 21397 STD { int|linux_sys||socket(int domain, int type, \ 214 int protocol); } 21598 STD { int|linux_sys||connect(int s, \ 216 const struct osockaddr *name, \ 217 unsigned int namelen); } 21899 STD { int|linux_sys||accept(int s, \ 219 struct osockaddr *name, int *anamelen); } 220;100 ALIAS osf1_sys_getpriority 221100 STD { int|linux_sys||getpriority(int which, int who); } 222101 STD { int|linux_sys||send(int s, void *buf, int len, \ 223 int flags); } 224102 STD { int|linux_sys||recv(int s, void *buf, int len, \ 225 int flags); } 226103 STD { int|linux_sys||sigreturn(struct linux_sigframe *sfp); } 227104 STD { int|linux_sys||bind(int s, \ 228 const struct osockaddr *name, \ 229 unsigned int namelen); } 230105 STD { int|linux_sys||setsockopt(int s, int level, \ 231 int optname, void *optval, int optlen); } 232106 NOARGS { int|sys||listen(int s, int backlog); } 233107 UNIMPL 234108 UNIMPL 235109 UNIMPL 236110 UNIMPL 237 238111 STD { int|linux_sys||sigsuspend(void *restart, \ 239 int oldmask, int mask); } 240;112 ALIAS osf1_sys_sigstack 241112 NOARGS { int|compat_43_sys||sigstack(struct sigstack *nss, \ 242 struct sigstack *oss); } 243113 STD { ssize_t|linux_sys||recvmsg(int s, \ 244 struct linux_msghdr *msg, int flags); } 245114 STD { ssize_t|linux_sys||sendmsg(int s, \ 246 const struct linux_msghdr *msg, int flags); } 247115 UNIMPL 248116 STD { int|linux_sys||osf1_gettimeofday(struct osf1_timeval *tv, \ 249 struct osf1_timezone *tzp); } 250117 STD { int|linux_sys||osf1_getrusage(int who, \ 251 struct osf1_rusage *rusage); } 252118 STD { int|linux_sys||getsockopt(int s, int level, \ 253 int optname, void *optval, int *optlen); } 254119 UNIMPL 255120 NOARGS { ssize_t|sys||readv(int fd, const struct iovec *iovp, \ 256 int iovcnt); } 257121 NOARGS { ssize_t|sys||writev(int fd, const struct iovec *iovp, \ 258 int iovcnt); } 259122 STD { int|linux_sys||osf1_settimeofday(struct osf1_timeval *tv, \ 260 struct osf1_timezone *tzp); } 261123 NOARGS { int|sys||__posix_fchown(int fd, uid_t uid, \ 262 gid_t gid); } 263124 NOARGS { int|sys||fchmod(int fd, linux_umode_t mode); } 264125 STD { int|linux_sys||recvfrom(int s, void *buf, int len, \ 265 int flags, struct osockaddr *from, \ 266 int *fromlenaddr); } 267126 NOARGS { int|sys||setreuid(uid_t ruid, uid_t euid); } 268127 NOARGS { int|sys||setregid(gid_t rgid, gid_t egid); } 269128 NOARGS { int|sys||__posix_rename(const char *from, const char *to); } 270129 NOARGS { int|compat_43_sys||truncate(const char *path, \ 271 long length); } 272130 NOARGS { int|compat_43_sys||ftruncate(int fd, long length); } 273131 NOARGS { int|sys||flock(int fd, int how); } 274132 NOARGS { int|sys||setgid(gid_t gid); } 275133 STD { int|linux_sys||sendto(int s, void *msg, int len, \ 276 int flags, struct osockaddr *to, int tolen); } 277134 NOARGS { int|sys||shutdown(int s, int how); } 278135 STD { int|linux_sys||socketpair(int domain, int type, \ 279 int protocol, int *rsv); } 280136 NOARGS { int|sys||mkdir(const char *path, linux_umode_t mode); } 281137 NOARGS { int|sys||rmdir(const char *path); } 282138 STD { int|linux_sys||osf1_utimes(const char *path, \ 283 const struct osf1_timeval *tptr); } 284139 UNIMPL 285140 UNIMPL 286141 STD { int|linux_sys||getpeername(int fdes, \ 287 void *asa, int *alen); } 288142 UNIMPL 289143 UNIMPL 290144 STD { int|linux_sys||getrlimit(int which, \ 291 struct orlimit *rlp); } 292145 STD { int|linux_sys||setrlimit(int which, \ 293 const struct orlimit *rlp); } 294146 UNIMPL 295147 NOARGS { int|sys||setsid(void); } 296148 UNIMPL quotactl 297149 UNIMPL 298150 STD { int|linux_sys||getsockname(int fdec, \ 299 void *asa, int *alen); } 300151 UNIMPL 301152 UNIMPL 302153 UNIMPL 303154 UNIMPL 304155 UNIMPL 305;156 ALIAS osf1_sys_sigaction 306156 STD { int|linux_sys||sigaction(int signum, \ 307 const struct linux_old_sigaction *nsa, \ 308 struct linux_old_sigaction *osa); } 309157 UNIMPL 310158 UNIMPL 311;159 ALIAS osf1_sys_getdirentries 312159 NOARGS { int|compat_43_sys||getdirentries(int fd, char *buf, \ 313 u_int count, long *basep); } 314160 STD { int|linux_sys||osf1_statfs(const char *path, \ 315 struct osf1_statfs *buf, int len); } 316161 STD { int|linux_sys||osf1_fstatfs(int fd, \ 317 struct osf1_statfs *buf, int len); } 318162 UNIMPL 319163 UNIMPL 320164 UNIMPL 321;165 ALIAS osf1_sys_getdomainname 322165 NOARGS { int|compat_09_sys||getdomainname(char *domainname, \ 323 int len); } 324166 STD { int|linux_sys||setdomainname(char *domainname, \ 325 int len); } 326167 UNIMPL 327168 UNIMPL 328169 UNIMPL 329170 UNIMPL 330171 UNIMPL 331172 UNIMPL 332173 UNIMPL 333174 UNIMPL 334175 UNIMPL 335176 UNIMPL 336177 UNIMPL 337178 UNIMPL 338179 UNIMPL 339180 UNIMPL 340181 UNIMPL 341182 UNIMPL 342183 UNIMPL 343184 UNIMPL 344185 UNIMPL 345186 UNIMPL 346187 UNIMPL 347188 UNIMPL 348189 UNIMPL 349190 UNIMPL 350; XXX: Dunno 351191 STD { int|linux_sys||ugetrlimit(int which, \ 352 struct rlimit *rlp); } 353192 UNIMPL mmap2 354193 UNIMPL 355194 UNIMPL 356195 UNIMPL 357196 UNIMPL 358197 UNIMPL 359198 UNIMPL 360199 UNIMPL osf1_sys_swapon 361#ifdef SYSVMSG 362200 NOARGS { int|linux_sys||msgctl(int msqid, int cmd, \ 363 struct linux_msqid_ds *buf); } 364201 NOARGS { int|sys||msgget(key_t key, int msgflg); } 365202 NOARGS { ssize_t|sys||msgrcv(int msqid, void *msgp, \ 366 size_t msgsz, long msgtyp, int msgflg); } 367203 NOARGS { int|sys||msgsnd(int msqid, void *msgp, size_t msgsz, \ 368 int msgflg); } 369#else 370200 UNIMPL msgctl 371201 UNIMPL msgget 372202 UNIMPL msgrcv 373203 UNIMPL msgsnd 374#endif 375#ifdef SYSVSEM 376204 NOARGS { int|linux_sys||semctl(int semid, int semnum, \ 377 int cmd, union linux_semun arg); } 378205 NOARGS { int|sys||semget(key_t key, int nsems, int semflg); } 379206 NOARGS { int|sys||semop(int semid, struct sembuf *sops, \ 380 size_t nsops); } 381#else 382204 UNIMPL semctl 383205 UNIMPL semget 384206 UNIMPL semop 385#endif 386;207 ALIAS osf1_sys_utsname 387207 STD { int|linux_sys||olduname(struct linux_old_utsname *up); } 388208 NOARGS { int|sys||__posix_lchown(const char *path, uid_t uid, \ 389 gid_t gid); } 390#ifdef SYSVSHM 391209 NOARGS { int|linux_sys||shmat(int shmid, void *shmaddr, \ 392 int shmflg, u_long *raddr); } 393210 NOARGS { int|linux_sys||shmctl(int shmid, int cmd, \ 394 struct linux_shmid_ds *buf); } 395211 NOARGS { int|sys||shmdt(const void *shmaddr); } 396212 NOARGS { int|linux_sys||shmget(key_t key, size_t size, int shmflg); } 397#else 398209 UNIMPL shmat 399210 UNIMPL shmctl 400211 UNIMPL shmdt 401212 UNIMPL shmget 402#endif 403213 UNIMPL 404214 UNIMPL 405215 UNIMPL 406216 UNIMPL 407217 NOARGS { int|sys|13|msync(void *addr, size_t len, int flags); } 408218 UNIMPL 409219 UNIMPL 410220 UNIMPL 411221 UNIMPL 412222 UNIMPL 413223 UNIMPL 414224 UNIMPL 415225 UNIMPL 416226 UNIMPL 417227 UNIMPL 418228 UNIMPL 419229 UNIMPL 420230 UNIMPL 421231 UNIMPL 422232 UNIMPL 423233 NOARGS { pid_t|sys||getpgid(pid_t pid); } 424234 NOARGS { pid_t|sys||getsid(pid_t pid); } 425235 UNIMPL sigaltstack 426236 UNIMPL 427237 UNIMPL 428238 UNIMPL 429239 UNIMPL 430240 UNIMPL 431241 STD { int|linux_sys||osf1_sysinfo(int cmd, char *buf, long len); } 432242 UNIMPL 433243 UNIMPL 434244 UNIMPL osf1_sys_proplist_syscall 435245 UNIMPL 436246 UNIMPL 437247 UNIMPL 438248 UNIMPL 439249 UNIMPL 440250 UNIMPL 441251 STD { int|linux_sys||osf1_usleep_thread( \ 442 struct osf1_timeval *sleep, \ 443 struct osf1_timeval *slept); } 444252 UNIMPL 445253 UNIMPL 446254 UNIMPL 447255 UNIMPL sysfs 448256 STD { int|linux_sys||osf1_getsysinfo(u_long op, void *buffer, \ 449 u_long nbytes, void *arg, u_long flag); } 450257 STD { int|linux_sys||osf1_setsysinfo(u_long op, void *buffer, \ 451 u_long nbytes, void *arg, u_long flag); } 452258 UNIMPL 453259 UNIMPL 454260 UNIMPL 455; This entry doesn't exist in the Alpha linux syscall table but the function is 456; implemented and used on other ports. 457261 STD { int|linux_sys||fdatasync(int fd); } 458262 UNIMPL 459263 UNIMPL 460264 UNIMPL 461265 UNIMPL 462266 UNIMPL 463267 UNIMPL 464268 UNIMPL 465269 UNIMPL 466270 UNIMPL 467271 UNIMPL 468272 UNIMPL 469273 UNIMPL 470274 UNIMPL 471275 UNIMPL 472276 UNIMPL 473277 UNIMPL 474278 UNIMPL 475279 UNIMPL 476280 UNIMPL 477281 UNIMPL 478282 UNIMPL 479283 UNIMPL 480284 UNIMPL 481285 UNIMPL 482286 UNIMPL 483287 UNIMPL 484288 UNIMPL 485289 UNIMPL 486290 UNIMPL 487291 UNIMPL 488292 UNIMPL 489293 UNIMPL 490294 UNIMPL 491295 UNIMPL 492296 UNIMPL 493297 UNIMPL 494298 UNIMPL 495299 UNIMPL 496300 UNIMPL bdflush 497301 UNIMPL sethae 498302 UNIMPL mount 499303 UNIMPL old_adjtimex 500304 STD { int|linux_sys||swapoff(const char *path); } 501305 STD { int|linux_sys||getdents(int fd, \ 502 struct linux_dirent *dent, unsigned int count); } 503306 UNIMPL alpha_create_module 504307 UNIMPL init_module 505308 UNIMPL delete_module 506309 UNIMPL get_kernel_syms 507310 UNIMPL syslog 508311 STD { int|linux_sys||reboot(int magic1, int magic2, \ 509 int cmd, void *arg); } 510312 STD { int|linux_sys||clone(int flags, void *stack, \ 511 void *parent_tidptr, void *child_tidptr, void *tls); } 512#ifdef EXEC_AOUT 513313 STD { int|linux_sys||uselib(const char *path); } 514#else 515313 UNIMPL sys_uselib 516#endif 517314 NOARGS { int|sys||mlock(const void *addr, size_t len); } 518315 NOARGS { int|sys||munlock(const void *addr, size_t len); } 519316 NOARGS { int|sys||mlockall(int flags); } 520317 NOARGS { int|sys||munlockall(void); } 521318 STD { int|linux_sys||sysinfo(struct linux_sysinfo *arg); } 522319 STD { int|linux_sys||__sysctl(struct linux___sysctl *lsp); } 523320 UNIMPL idle 524321 UNIMPL oldumount 525322 STD { int|linux_sys||swapon(const char *name); } 526323 STD { int|linux_sys||times(struct times *tms); } 527324 STD { int|linux_sys||personality(unsigned long per); } 528325 STD { int|linux_sys||setfsuid(uid_t uid); } 529326 STD { int|linux_sys||setfsgid(gid_t gid); } 530327 UNIMPL ustat 531328 STD { int|linux_sys||statfs(const char *path, \ 532 struct linux_statfs *sp); } 533329 STD { int|linux_sys||fstatfs(int fd, \ 534 struct linux_statfs *sp); } 535330 STD { int|linux_sys||sched_setparam(pid_t pid, \ 536 const struct linux_sched_param *sp); } 537331 STD { int|linux_sys||sched_getparam(pid_t pid, \ 538 struct linux_sched_param *sp); } 539332 STD { int|linux_sys||sched_setscheduler(pid_t pid, \ 540 int policy, const struct linux_sched_param *sp); } 541333 STD { int|linux_sys||sched_getscheduler(pid_t pid); } 542334 STD { int|linux_sys||sched_yield(void); } 543335 STD { int|linux_sys||sched_get_priority_max(int policy); } 544336 STD { int|linux_sys||sched_get_priority_min(int policy); } 545337 UNIMPL sched_rr_get_interval 546338 UNIMPL afs_syscall 547339 STD { int|linux_sys||uname(struct linux_utsname *up); } 548340 STD { int|linux_sys||nanosleep( \ 549 const struct linux_timespec *rqtp, \ 550 struct linux_timespec *rmtp); } 551341 STD { void *|linux_sys||mremap(void *old_address, \ 552 size_t old_size, size_t new_size, u_long flags); } 553342 UNIMPL nfsservctl 554343 STD { int|linux_sys||setresuid(uid_t ruid, uid_t euid, \ 555 uid_t suid); } 556344 STD { int|linux_sys||getresuid(uid_t *ruid, uid_t *euid, \ 557 uid_t *suid); } 558345 UNIMPL pciconfig_read 559346 UNIMPL pciconfig_write 560347 UNIMPL query_module 561348 UNIMPL prctl 562349 STD { int|linux_sys||pread(int fd, char *buf, \ 563 size_t nbyte, off_t offset); } 564350 STD { int|linux_sys||pwrite(int fd, char *buf, \ 565 size_t nbyte, off_t offset); } 566351 STD { int|linux_sys||rt_sigreturn( \ 567 struct linux_rt_sigframe *sfp); } 568352 STD { int|linux_sys||rt_sigaction(int signum, \ 569 const struct linux_sigaction *nsa, \ 570 struct linux_sigaction *osa, \ 571 size_t sigsetsize); } 572353 STD { int|linux_sys||rt_sigprocmask(int how, \ 573 const linux_sigset_t *set, \ 574 linux_sigset_t *oset, \ 575 size_t sigsetsize); } 576354 STD { int|linux_sys||rt_sigpending( \ 577 linux_sigset_t *set, \ 578 size_t sigsetsize); } 579355 STD { int|linux_sys||rt_sigtimedwait( \ 580 const linux_sigset_t *set, \ 581 linux_siginfo_t *info, \ 582 const struct linux_timespec *timeout); } 583356 STD { int|linux_sys||rt_queueinfo(int pid, int signum, \ 584 linux_siginfo_t *uinfo); } 585357 STD { int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \ 586 size_t sigsetsize); } 587358 STD { int|linux_sys||select(int nfds, fd_set *readfds, \ 588 fd_set *writefds, fd_set *exceptfds, \ 589 struct timeval50 *timeout); } 590359 STD { int|linux_sys||gettimeofday(struct timeval50 *tp, \ 591 struct timezone *tzp); } 592360 STD { int|linux_sys||settimeofday(struct timeval50 *tp, \ 593 struct timezone *tzp); } 594361 NOARGS { int|compat_50_sys||getitimer(int which, \ 595 struct itimerval50 *itv); } 596362 NOARGS { int|compat_50_sys||setitimer(int which, \ 597 const struct itimerval50 *itv, \ 598 struct itimerval50 *oitv); } 599363 NOARGS { int|compat_50_sys||utimes(const char *path, \ 600 const struct timeval50 *tptr); } 601364 NOARGS { int|compat_50_sys||getrusage(int who, \ 602 struct rusage50 *rusage); } 603365 STD { int|linux_sys||wait4(int pid, int *status, \ 604 int options, struct rusage50 *rusage); } 605366 UNIMPL adjtimex 606367 NOARGS { int|sys||__getcwd(char *bufp, size_t length); } 607368 UNIMPL capget 608369 UNIMPL capset 609370 UNIMPL sendfile 610371 UNIMPL setresgid 611372 UNIMPL getresgid 612373 UNIMPL sys_dipc 613374 UNIMPL pivot_root 614375 NOARGS { int|sys||mincore(void *addr, size_t len, char *vec); } 615376 UNIMPL pciconfig_iobase 616377 STD { int|linux_sys||getdents64(int fd, \ 617 struct linux_dirent64 *dent, unsigned int count); } 618378 NOARGS { pid_t|linux_sys||gettid(void); } 619379 STD { ssize_t|linux_sys||readahead(int fd, off_t offset, \ 620 size_t count); } 621380 UNIMPL /* unused */ 622381 STD { int|linux_sys||tkill(int tid, int sig); } 623382 STD { int|linux_sys||setxattr(char *path, char *name, \ 624 void *value, size_t size, int flags); } 625383 STD { int|linux_sys||lsetxattr(char *path, char *name, \ 626 void *value, size_t size, int flags); } 627384 STD { int|linux_sys||fsetxattr(int fd, char *name, \ 628 void *value, size_t size, int flags); } 629385 STD { ssize_t|linux_sys||getxattr(char *path, char *name, \ 630 void *value, size_t size); } 631386 STD { ssize_t|linux_sys||lgetxattr(char *path, char *name, \ 632 void *value, size_t size); } 633387 STD { ssize_t|linux_sys||fgetxattr(int fd, char *name, \ 634 void *value, size_t size); } 635388 STD { ssize_t|linux_sys||listxattr(char *path, char *list, \ 636 size_t size); } 637389 STD { ssize_t|linux_sys||llistxattr(char *path, char *list, \ 638 size_t size); } 639390 STD { ssize_t|linux_sys||flistxattr(int fd, char *list, \ 640 size_t size); } 641391 STD { int|linux_sys||removexattr(char *path, char *name); } 642392 STD { int|linux_sys||lremovexattr(char *path, char *name); } 643393 STD { int|linux_sys||fremovexattr(int fd, char *name); } 644394 STD { int|linux_sys||futex(int *uaddr, int op, int val, \ 645 const struct linux_timespec *timeout, int *uaddr2, \ 646 int val3); } 647395 STD { int|linux_sys||sched_setaffinity(pid_t pid, \ 648 unsigned int len, unsigned long *mask); } 649396 STD { int|linux_sys||sched_getaffinity(pid_t pid, \ 650 unsigned int len, unsigned long *mask); } 651397 UNIMPL tuxcall 652398 UNIMPL io_setup 653399 UNIMPL io_destroy 654400 UNIMPL io_getevents 655401 UNIMPL io_submit 656402 UNIMPL io_cancel 657403 UNIMPL /* unused */ 658404 UNIMPL /* unused */ 659405 STD { int|linux_sys||exit_group(int error_code); } 660406 UNIMPL lookup_dcookie 661407 STD { int|linux_sys||epoll_create(int size); } 662408 STD { int|linux_sys||epoll_ctl(int epfd, int op, int fd, \ 663 struct linux_epoll_event *event); } 664409 STD { int|linux_sys||epoll_wait(int epfd, \ 665 struct linux_epoll_event *events, int maxevents, \ 666 int timeout); } 667410 UNIMPL remap_file_pages 668411 STD { int|linux_sys||set_tid_address(int *tid); } 669412 UNIMPL restart_syscall 670413 STD { int|linux_sys||fadvise64(int fd, off_t offset, \ 671 size_t len, int advice); } 672414 STD { int|linux_sys||timer_create(clockid_t clockid, \ 673 struct linux_sigevent *evp, timer_t *timerid); } 674415 STD { int|linux_sys||timer_settime(timer_t timerid, \ 675 int flags, const struct linux_itimerspec *tim, \ 676 struct linux_itimerspec *otim); } 677416 STD { int|linux_sys||timer_gettime(timer_t timerid, \ 678 struct linux_itimerspec *tim); } 679417 NOARGS { int|sys||timer_getoverrun(timer_t timerid); } 680418 NOARGS { int|sys||timer_delete(timer_t timerid); } 681419 STD { int|linux_sys||clock_settime(clockid_t which, \ 682 struct linux_timespec *tp); } 683420 STD { int|linux_sys||clock_gettime(clockid_t which, \ 684 struct linux_timespec *tp); } 685421 STD { int|linux_sys||clock_getres(clockid_t which, \ 686 struct linux_timespec *tp); } 687422 STD { int|linux_sys||clock_nanosleep(clockid_t which, \ 688 int flags, struct linux_timespec *rqtp, \ 689 struct linux_timespec *rmtp); } 690423 UNIMPL semtimedop 691424 STD { int|linux_sys||tgkill(int tgid, int tid, int sig); } 692425 STD { int|linux_sys||stat64(const char *path, \ 693 struct linux_stat64 *sp); } 694426 STD { int|linux_sys||lstat64(const char *path, \ 695 struct linux_stat64 *sp); } 696427 STD { int|linux_sys||fstat64(int fd, \ 697 struct linux_stat64 *sp); } 698428 UNIMPL vserver 699429 UNIMPL mbind 700430 UNIMPL get_mempolicy 701431 UNIMPL set_mempolicy 702432 STD { linux_mqd_t|linux_sys||mq_open(const char *name, \ 703 int oflag, linux_umode_t mode, \ 704 struct linux_mq_attr *attr); } 705433 STD { int|linux_sys||mq_unlink(const char *name); } 706434 STD { int|linux_sys||mq_timedsend(linux_mqd_t mqdes, \ 707 const char *msg_ptr, size_t msg_len, \ 708 unsigned int msg_prio, \ 709 const struct linux_timespec *abs_timeout); } 710435 STD { ssize_t|linux_sys||mq_timedreceive(linux_mqd_t mqdes, \ 711 char *msg_ptr, size_t msg_len, \ 712 unsigned int *msg_prio, \ 713 const struct linux_timespec *abs_timeout); } 714436 STD { int|linux_sys||mq_notify(linux_mqd_t mqdes, \ 715 const struct linux_sigevent *sevp); } 716437 STD { int|linux_sys||mq_getsetattr(linux_mqd_t mqdes, \ 717 const struct linux_mq_attr *newattr, \ 718 struct linux_mq_attr *oldattr); } 719438 STD { int|linux_sys||waitid(int idtype, id_t id, \ 720 linux_siginfo_t *infop, int options, \ 721 struct rusage50 *rusage); } 722439 UNIMPL add_key 723440 UNIMPL request_key 724441 UNIMPL keyctl 725442 UNIMPL ioprio_set 726443 UNIMPL ioprio_get 727444 STD { int|linux_sys||inotify_init(void); } 728445 STD { int|linux_sys||inotify_add_watch(int fd, \ 729 const char *pathname, uint32_t mask); } 730446 STD { int|linux_sys||inotify_rm_watch(int fd, int wd); } 731447 UNIMPL fdatasync 732448 UNIMPL kexec_load 733449 UNIMPL migrate_pages 734450 STD { int|linux_sys||openat(int fd, const char *path, \ 735 int flags, ... linux_umode_t mode); } 736451 NOARGS { int|sys||mkdirat(int fd, const char *path, \ 737 linux_umode_t mode); } 738452 STD { int|linux_sys||mknodat(int fd, const char *path, \ 739 linux_umode_t mode, unsigned dev); } 740453 STD { int|linux_sys||fchownat(int fd, const char *path, \ 741 uid_t owner, gid_t group, int flag); } 742454 UNIMPL futimesat 743455 STD { int|linux_sys||fstatat64(int fd, const char *path, \ 744 struct linux_stat64 *sp, int flag); } 745456 STD { int|linux_sys||unlinkat(int fd, const char *path, \ 746 int flag); } 747457 NOARGS { int|sys||renameat(int fromfd, const char *from, \ 748 int tofd, const char *to); } 749458 STD { int|linux_sys||linkat(int fd1, const char *name1, \ 750 int fd2, const char *name2, int flags); } 751459 NOARGS { int|sys||symlinkat(const char *path1, int fd, \ 752 const char *path2); } 753460 NOARGS { ssize_t|sys||readlinkat(int fd, const char *path, \ 754 char *buf, size_t bufsize); } 755461 STD { int|linux_sys||fchmodat(int fd, const char *path, \ 756 linux_umode_t mode); } 757462 STD { int|linux_sys||faccessat(int fd, const char *path, \ 758 int amode); } 759463 STD { int|linux_sys||pselect6(int nfds, fd_set *readfds, \ 760 fd_set *writefds, fd_set *exceptfds, \ 761 struct linux_timespec *timeout, \ 762 linux_sized_sigset_t *ss); } 763464 STD { int|linux_sys||ppoll(struct pollfd *fds, u_int nfds, \ 764 struct linux_timespec *timeout, \ 765 linux_sigset_t *sigset); } 766465 UNIMPL unshare 767 ; 768 ; The NetBSD native robust list calls have different 769 ; argument names / types, but they are ABI-compatible 770 ; with Linux. 771 ; 772466 NOARGS { int|sys||__futex_set_robust_list(void *head, \ 773 size_t len); } 774467 NOARGS { int|sys||__futex_get_robust_list(lwpid_t lwpid, \ 775 void **headp, size_t *lenp); } 776468 UNIMPL splice 777469 UNIMPL sync_file_range 778470 UNIMPL tee 779471 UNIMPL vmsplice 780472 UNIMPL move_pages 781473 STD { int|linux_sys||getcpu(unsigned int *cpu, \ 782 unsigned int *node, \ 783 struct linux_getcpu_cache *tcache); } 784474 STD { int|linux_sys||epoll_pwait(int epfd, \ 785 struct linux_epoll_event *events, int maxevents, \ 786 int timeout, const linux_sigset_t *sigmask); } 787475 STD { int|linux_sys||utimensat(int fd, const char *path, \ 788 struct linux_timespec *times, int flag); } 789476 UNIMPL signalfd 790477 UNIMPL timerfd 791478 STD { int|linux_sys||eventfd(unsigned int initval); } 792479 STD { int|linux_sys||recvmmsg(int s, \ 793 struct linux_mmsghdr *msgvec, unsigned int vlen, \ 794 unsigned int flags, struct timespec *timeout); } 795480 STD { int|linux_sys||fallocate(int fd, int mode, \ 796 off_t offset, off_t len); } 797481 STD { int|linux_sys||timerfd_create(clockid_t clock_id, \ 798 int flags); } 799482 STD { int|linux_sys||timerfd_settime(int fd, int flags, \ 800 const struct linux_itimerspec *tim, \ 801 struct linux_itimerspec *otim); } 802483 STD { int|linux_sys||timerfd_gettime(int fd, \ 803 struct linux_itimerspec *tim); } 804484 UNIMPL signalfd4 805485 STD { int|linux_sys||eventfd2(unsigned int initval, \ 806 int flags); } 807486 STD { int|linux_sys||epoll_create1(int flags); } 808487 STD { int|linux_sys||dup3(int from, int to, int flags); } 809488 STD { int|linux_sys||pipe2(int *pfds, int flags); } 810489 STD { int|linux_sys||inotify_init1(int flags); } 811490 STD { int|linux_sys||preadv(int fd, \ 812 const struct iovec *iovp, int iovcnt, \ 813 unsigned long off_lo, unsigned long off_hi); } 814491 STD { int|linux_sys||pwritev(int fd, \ 815 const struct iovcnt *iovp, int iovcnt, \ 816 unsigned long off_lo, unsigned long off_hi); } 817492 UNIMPL rt_tgsigqueueinfo 818493 UNIMPL perf_counter_open 819494 UNIMPL fanotify_init 820495 UNIMPL fanotify_mark 821496 STD { int|linux_sys||prlimit64(pid_t pid, int which, \ 822 struct rlimit *new_rlp, struct rlimit *old_rlp); } 823497 UNIMPL name_to_handle_at 824498 UNIMPL open_by_handle_at 825499 UNIMPL clock_adjtime 826500 UNIMPL syncfs 827501 UNIMPL setns 828502 STD { int|linux_sys||accept4(int s, \ 829 struct osockaddr *name, \ 830 int *anamelen, int flags); } 831503 STD { int|linux_sys||sendmmsg(int s, \ 832 struct linux_mmsghdr *msgvec, unsigned int vlen, \ 833 unsigned int flags); } 834504 UNIMPL process_vm_readv 835505 UNIMPL process_vm_writev 836506 UNIMPL kcmp 837507 UNIMPL finit_module 838508 UNIMPL sched_setattr 839509 UNIMPL sched_getattr 840510 UNIMPL renameat2 841511 UNIMPL 842512 UNIMPL 843513 UNIMPL 844514 UNIMPL 845515 UNIMPL 846516 UNIMPL 847517 UNIMPL 848518 UNIMPL 849519 UNIMPL 850520 UNIMPL 851521 UNIMPL 852522 STD { int|linux_sys||statx(int fd, const char *path, \ 853 int flag, unsigned int mask, \ 854 struct linux_statx *sp); } 855523 UNIMPL 856524 UNIMPL 857525 UNIMPL 858526 UNIMPL 859527 UNIMPL 860528 UNIMPL 861529 UNIMPL 862530 UNIMPL 863531 UNIMPL 864532 UNIMPL 865533 UNIMPL 866534 UNIMPL 867535 UNIMPL 868536 UNIMPL 869537 UNIMPL 870538 UNIMPL 871539 UNIMPL 872540 UNIMPL 873541 UNIMPL 874542 UNIMPL 875543 UNIMPL 876544 UNIMPL 877545 UNIMPL 878546 STD { int|linux_sys||close_range(unsigned int first, \ 879 unsigned int last, unsigned int flags); } 880547 UNIMPL 881548 UNIMPL 882549 STD { int|linux_sys||faccessat2(int fd, const char *path, \ 883 int amode, int flags); } 884550 UNIMPL 885551 STD { int|linux_sys||epoll_pwait2(int epfd, \ 886 struct linux_epoll_event *events, int maxevents, \ 887 const struct linux_timespec *timeout, \ 888 const linux_sigset_t *sigmask); } 889