1 $NetBSD: syscalls.master,v 1.102 2021/12/02 04:29:47 ryo 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_sem.h> 76#include <compat/linux/common/linux_shm.h> 77#include <compat/linux/common/linux_mmap.h> 78;#include <compat/linux/common/linux_machdep.h> 79 80#include <compat/linux/linux_syscallargs.h> 81#include <compat/linux/arch/alpha/linux_osf1.h> 82 83%% 84 850 NOARGS { int|linux_sys||nosys(void); } syscall 861 STD { int|linux_sys||exit(int rval); } 872 NOARGS { int|sys||fork(void); } 883 NOARGS { ssize_t|sys||read(int fd, void *buf, size_t nbyte); } 894 NOARGS { ssize_t|sys||write(int fd, const void *buf, \ 90 size_t nbyte); } 915 UNIMPL 926 NOARGS { int|sys||close(int fd); } 937 STD { int|linux_sys||osf1_wait4(int pid, int *status, \ 94 int options, struct osf1_rusage *rusage); } 95;8 ALIAS osf1_sys_old_creat, NOT USED 968 STD { int|linux_sys||creat(const char *path, linux_umode_t mode); } 979 NOARGS { int|sys||link(const char *path, const char *link); } 9810 STD { int|linux_sys||unlink(const char *path); } 9911 UNIMPL 10012 NOARGS { int|sys||chdir(const char *path); } 10113 NOARGS { int|sys||fchdir(int fd); } 10214 STD { int|linux_sys||mknod(const char *path, linux_umode_t mode, \ 103 unsigned dev); } 10415 NOARGS { int|sys||chmod(const char *path, int mode); } 10516 NOARGS { int|sys||__posix_chown(const char *path, uid_t uid, \ 106 gid_t gid); } 107;17 ALIAS osf1_sys_brk 10817 STD { int|linux_sys||brk(char *nsize); } 10918 UNIMPL 11019 NOARGS { long|compat_43_sys||lseek(int fd, long offset, \ 111 int whence); } 11220 NOARGS { pid_t|sys||getpid_with_ppid(void); } 11321 STD { int|linux_sys||osf1_mount(int type, const char *path, \ 114 int flags, void *data); } 11522 UNIMPL umount 11623 NOARGS { int|sys||setuid(uid_t uid); } 11724 NOARGS { uid_t|sys||getuid_with_euid(void); } 11825 UNIMPL 11926 STD { int|linux_sys||ptrace(long request, long pid, \ 120 long addr, long data); } 12127 UNIMPL 12228 UNIMPL 12329 UNIMPL 12430 UNIMPL 12531 UNIMPL 12632 UNIMPL 12733 NOARGS { int|sys||access(const char *path, int flags); } 12834 UNIMPL 12935 UNIMPL 13036 NOARGS { int|sys||sync(void); } 13137 STD { int|linux_sys||kill(int pid, int signum); } 13238 UNIMPL 13339 NOARGS { int|sys||setpgid(int pid, int pgid); } 13440 UNIMPL 13541 NOARGS { int|sys||dup(int fd); } 13642 NOARGS { int|linux_sys||pipe(void); } 13743 STD { int|linux_sys||osf1_set_program_attributes( \ 138 void *taddr, unsigned long tsize, \ 139 void *daddr, unsigned long dsize); } 14044 UNIMPL 14145 STD { int|linux_sys||open(const char *path, int flags, \ 142 linux_umode_t mode); } 14346 UNIMPL 14447 NOARGS { gid_t|sys||getgid_with_egid(void); } 145; ALIAS osf1_sys_sigprocmask(int how, unsigned long mask); 146; XXX <- copied from osf1/syscalls.master 14748 NOARGS { int|compat_13_sys||sigprocmask(int how, \ 148 sigset13_t mask); } 14949 UNIMPL 15050 UNIMPL 15151 NOARGS { int|sys||acct(const char *path); } 15252 STD { int|linux_sys||sigpending(linux_old_sigset_t *set); } 15353 UNIMPL 15454 STD { int|linux_sys||ioctl(int fd, u_long com, \ 155 void *data); } 15655 UNIMPL 15756 UNIMPL 15857 NOARGS { int|sys||symlink(const char *path, const char *to); } 15958 NOARGS { ssize_t|sys||readlink(const char *path, char *buf, \ 160 int count); } 16159 NOARGS { int|sys||execve(const char *path, char **argp, \ 162 char **envp); } 16360 NOARGS { mode_t|sys||umask(mode_t newmask); } 16461 NOARGS { int|sys||chroot(const char *path); } 16562 UNIMPL 16663 NOARGS { int|sys||getpgrp(void); } 16764 NOARGS { int|compat_43_sys||getpagesize(void); } 16865 UNIMPL 16966 NOARGS { int|sys|14|vfork(void); } 17067 STD { int|linux_sys||stat(const char *path, \ 171 struct linux_stat *sp); } 17268 STD { int|linux_sys||lstat(const char *path, \ 173 struct linux_stat *sp); } 17469 UNIMPL 17570 UNIMPL 176;71 ALIAS osf1_sys_mmap 17771 NOARGS { int|linux_sys||mmap(unsigned long addr, size_t len, \ 178 int prot, int flags, int fd, linux_off_t offset); } 17972 UNIMPL 18073 NOARGS { int|sys||munmap(void *addr, size_t len); } 18174 STD { int|linux_sys||mprotect(const void *start, \ 182 unsigned long len, int prot); } 18375 NOARGS { int|sys||madvise(void *addr, size_t len, int behav); } 18476 UNIMPL vhangup 18577 UNIMPL 18678 UNIMPL 18779 NOARGS { int|sys||getgroups(int gidsetsize, gid_t *gidset); } 18880 NOARGS { int|sys||setgroups(int gidsetsize, const gid_t *gidset); } 18981 UNIMPL 19082 UNIMPL setpgrp 19183 STD { int|linux_sys||osf1_setitimer(int which, \ 192 struct osf1_itimerval *itv, \ 193 struct osf1_itimerval *oitv); } 19484 UNIMPL 19585 UNIMPL 19686 UNIMPL osf1_sys_getitimer 19787 NOARGS { int|compat_43_sys||gethostname(char *hostname, \ 198 u_int len); } 19988 NOARGS { int|compat_43_sys||sethostname(char *hostname, \ 200 u_int len); } 20189 UNIMPL getdtablesize 20290 NOARGS { int|sys||dup2(int from, int to); } 20391 STD { int|linux_sys||fstat(int fd, struct linux_stat *sp); } 20492 STD { int|linux_sys||fcntl(int fd, int cmd, void *arg); } 20593 STD { int|linux_sys||osf1_select(u_int nd, fd_set *in, \ 206 fd_set *ou, fd_set *ex, struct osf1_timeval *tv); } 20794 NOARGS { int|sys||poll(struct pollfd *fds, u_int nfds, \ 208 int timeout); } 20995 NOARGS { int|sys||fsync(int fd); } 21096 NOARGS { int|sys||setpriority(int which, int who, int prio); } 21197 STD { int|linux_sys||socket(int domain, int type, \ 212 int protocol); } 21398 STD { int|linux_sys||connect(int s, \ 214 const struct osockaddr *name, \ 215 unsigned int namelen); } 21699 STD { int|linux_sys||accept(int s, \ 217 struct osockaddr *name, int *anamelen); } 218;100 ALIAS osf1_sys_getpriority 219100 STD { int|linux_sys||getpriority(int which, int who); } 220101 STD { int|linux_sys||send(int s, void *buf, int len, \ 221 int flags); } 222102 STD { int|linux_sys||recv(int s, void *buf, int len, \ 223 int flags); } 224103 STD { int|linux_sys||sigreturn(struct linux_sigframe *sfp); } 225104 STD { int|linux_sys||bind(int s, \ 226 const struct osockaddr *name, \ 227 unsigned int namelen); } 228105 STD { int|linux_sys||setsockopt(int s, int level, \ 229 int optname, void *optval, int optlen); } 230106 NOARGS { int|sys||listen(int s, int backlog); } 231107 UNIMPL 232108 UNIMPL 233109 UNIMPL 234110 UNIMPL 235 236111 STD { int|linux_sys||sigsuspend(void *restart, \ 237 int oldmask, int mask); } 238;112 ALIAS osf1_sys_sigstack 239112 NOARGS { int|compat_43_sys||sigstack(struct sigstack *nss, \ 240 struct sigstack *oss); } 241113 STD { ssize_t|linux_sys||recvmsg(int s, \ 242 struct linux_msghdr *msg, int flags); } 243114 STD { ssize_t|linux_sys||sendmsg(int s, \ 244 const struct linux_msghdr *msg, int flags); } 245115 UNIMPL 246116 STD { int|linux_sys||osf1_gettimeofday(struct osf1_timeval *tv, \ 247 struct osf1_timezone *tzp); } 248117 STD { int|linux_sys||osf1_getrusage(int who, \ 249 struct osf1_rusage *rusage); } 250118 STD { int|linux_sys||getsockopt(int s, int level, \ 251 int optname, void *optval, int *optlen); } 252119 UNIMPL 253120 NOARGS { ssize_t|sys||readv(int fd, const struct iovec *iovp, \ 254 int iovcnt); } 255121 NOARGS { ssize_t|sys||writev(int fd, const struct iovec *iovp, \ 256 int iovcnt); } 257122 STD { int|linux_sys||osf1_settimeofday(struct osf1_timeval *tv, \ 258 struct osf1_timezone *tzp); } 259123 NOARGS { int|sys||__posix_fchown(int fd, uid_t uid, \ 260 gid_t gid); } 261124 NOARGS { int|sys||fchmod(int fd, linux_umode_t mode); } 262125 STD { int|linux_sys||recvfrom(int s, void *buf, int len, \ 263 int flags, struct osockaddr *from, \ 264 int *fromlenaddr); } 265126 NOARGS { int|sys||setreuid(uid_t ruid, uid_t euid); } 266127 NOARGS { int|sys||setregid(gid_t rgid, gid_t egid); } 267128 NOARGS { int|sys||__posix_rename(const char *from, const char *to); } 268129 NOARGS { int|compat_43_sys||truncate(const char *path, \ 269 long length); } 270130 NOARGS { int|compat_43_sys||ftruncate(int fd, long length); } 271131 NOARGS { int|sys||flock(int fd, int how); } 272132 NOARGS { int|sys||setgid(gid_t gid); } 273133 STD { int|linux_sys||sendto(int s, void *msg, int len, \ 274 int flags, struct osockaddr *to, int tolen); } 275134 NOARGS { int|sys||shutdown(int s, int how); } 276135 STD { int|linux_sys||socketpair(int domain, int type, \ 277 int protocol, int *rsv); } 278136 NOARGS { int|sys||mkdir(const char *path, linux_umode_t mode); } 279137 NOARGS { int|sys||rmdir(const char *path); } 280138 STD { int|linux_sys||osf1_utimes(const char *path, \ 281 const struct osf1_timeval *tptr); } 282139 UNIMPL 283140 UNIMPL 284141 STD { int|linux_sys||getpeername(int fdes, \ 285 void *asa, int *alen); } 286142 UNIMPL 287143 UNIMPL 288144 STD { int|linux_sys||getrlimit(int which, \ 289 struct orlimit *rlp); } 290145 STD { int|linux_sys||setrlimit(int which, \ 291 const struct orlimit *rlp); } 292146 UNIMPL 293147 NOARGS { int|sys||setsid(void); } 294148 UNIMPL quotactl 295149 UNIMPL 296150 STD { int|linux_sys||getsockname(int fdec, \ 297 void *asa, int *alen); } 298151 UNIMPL 299152 UNIMPL 300153 UNIMPL 301154 UNIMPL 302155 UNIMPL 303;156 ALIAS osf1_sys_sigaction 304156 STD { int|linux_sys||sigaction(int signum, \ 305 const struct linux_old_sigaction *nsa, \ 306 struct linux_old_sigaction *osa); } 307157 UNIMPL 308158 UNIMPL 309;159 ALIAS osf1_sys_getdirentries 310159 NOARGS { int|compat_43_sys||getdirentries(int fd, char *buf, \ 311 u_int count, long *basep); } 312160 STD { int|linux_sys||osf1_statfs(const char *path, \ 313 struct osf1_statfs *buf, int len); } 314161 STD { int|linux_sys||osf1_fstatfs(int fd, \ 315 struct osf1_statfs *buf, int len); } 316162 UNIMPL 317163 UNIMPL 318164 UNIMPL 319;165 ALIAS osf1_sys_getdomainname 320165 NOARGS { int|compat_09_sys||getdomainname(char *domainname, \ 321 int len); } 322166 STD { int|linux_sys||setdomainname(char *domainname, \ 323 int len); } 324167 UNIMPL 325168 UNIMPL 326169 UNIMPL 327170 UNIMPL 328171 UNIMPL 329172 UNIMPL 330173 UNIMPL 331174 UNIMPL 332175 UNIMPL 333176 UNIMPL 334177 UNIMPL 335178 UNIMPL 336179 UNIMPL 337180 UNIMPL 338181 UNIMPL 339182 UNIMPL 340183 UNIMPL 341184 UNIMPL 342185 UNIMPL 343186 UNIMPL 344187 UNIMPL 345188 UNIMPL 346189 UNIMPL 347190 UNIMPL 348; XXX: Dunno 349191 STD { int|linux_sys||ugetrlimit(int which, \ 350 struct rlimit *rlp); } 351192 UNIMPL mmap2 352193 UNIMPL 353194 UNIMPL 354195 UNIMPL 355196 UNIMPL 356197 UNIMPL 357198 UNIMPL 358199 UNIMPL osf1_sys_swapon 359#ifdef SYSVMSG 360200 NOARGS { int|linux_sys||msgctl(int msqid, int cmd, \ 361 struct linux_msqid_ds *buf); } 362201 NOARGS { int|sys||msgget(key_t key, int msgflg); } 363202 NOARGS { ssize_t|sys||msgrcv(int msqid, void *msgp, \ 364 size_t msgsz, long msgtyp, int msgflg); } 365203 NOARGS { int|sys||msgsnd(int msqid, void *msgp, size_t msgsz, \ 366 int msgflg); } 367#else 368200 UNIMPL msgctl 369201 UNIMPL msgget 370202 UNIMPL msgrcv 371203 UNIMPL msgsnd 372#endif 373#ifdef SYSVSEM 374204 NOARGS { int|linux_sys||semctl(int semid, int semnum, \ 375 int cmd, union linux_semun arg); } 376205 NOARGS { int|sys||semget(key_t key, int nsems, int semflg); } 377206 NOARGS { int|sys||semop(int semid, struct sembuf *sops, \ 378 size_t nsops); } 379#else 380204 UNIMPL semctl 381205 UNIMPL semget 382206 UNIMPL semop 383#endif 384;207 ALIAS osf1_sys_utsname 385207 STD { int|linux_sys||olduname(struct linux_old_utsname *up); } 386208 NOARGS { int|sys||__posix_lchown(const char *path, uid_t uid, \ 387 gid_t gid); } 388#ifdef SYSVSHM 389209 NOARGS { int|linux_sys||shmat(int shmid, void *shmaddr, \ 390 int shmflg, u_long *raddr); } 391210 NOARGS { int|linux_sys||shmctl(int shmid, int cmd, \ 392 struct linux_shmid_ds *buf); } 393211 NOARGS { int|sys||shmdt(const void *shmaddr); } 394212 NOARGS { int|linux_sys||shmget(key_t key, size_t size, int shmflg); } 395#else 396209 UNIMPL shmat 397210 UNIMPL shmctl 398211 UNIMPL shmdt 399212 UNIMPL shmget 400#endif 401213 UNIMPL 402214 UNIMPL 403215 UNIMPL 404216 UNIMPL 405217 NOARGS { int|sys|13|msync(void *addr, size_t len, int flags); } 406218 UNIMPL 407219 UNIMPL 408220 UNIMPL 409221 UNIMPL 410222 UNIMPL 411223 UNIMPL 412224 UNIMPL 413225 UNIMPL 414226 UNIMPL 415227 UNIMPL 416228 UNIMPL 417229 UNIMPL 418230 UNIMPL 419231 UNIMPL 420232 UNIMPL 421233 NOARGS { pid_t|sys||getpgid(pid_t pid); } 422234 NOARGS { pid_t|sys||getsid(pid_t pid); } 423235 UNIMPL sigaltstack 424236 UNIMPL 425237 UNIMPL 426238 UNIMPL 427239 UNIMPL 428240 UNIMPL 429241 STD { int|linux_sys||osf1_sysinfo(int cmd, char *buf, long len); } 430242 UNIMPL 431243 UNIMPL 432244 UNIMPL osf1_sys_proplist_syscall 433245 UNIMPL 434246 UNIMPL 435247 UNIMPL 436248 UNIMPL 437249 UNIMPL 438250 UNIMPL 439251 STD { int|linux_sys||osf1_usleep_thread( \ 440 struct osf1_timeval *sleep, \ 441 struct osf1_timeval *slept); } 442252 UNIMPL 443253 UNIMPL 444254 UNIMPL 445255 UNIMPL sysfs 446256 STD { int|linux_sys||osf1_getsysinfo(u_long op, void *buffer, \ 447 u_long nbytes, void *arg, u_long flag); } 448257 STD { int|linux_sys||osf1_setsysinfo(u_long op, void *buffer, \ 449 u_long nbytes, void *arg, u_long flag); } 450258 UNIMPL 451259 UNIMPL 452260 UNIMPL 453; This entry doesn't exist in the Alpha linux syscall table but the function is 454; implemented and used on other ports. 455261 STD { int|linux_sys||fdatasync(int fd); } 456262 UNIMPL 457263 UNIMPL 458264 UNIMPL 459265 UNIMPL 460266 UNIMPL 461267 UNIMPL 462268 UNIMPL 463269 UNIMPL 464270 UNIMPL 465271 UNIMPL 466272 UNIMPL 467273 UNIMPL 468274 UNIMPL 469275 UNIMPL 470276 UNIMPL 471277 UNIMPL 472278 UNIMPL 473279 UNIMPL 474280 UNIMPL 475281 UNIMPL 476282 UNIMPL 477283 UNIMPL 478284 UNIMPL 479285 UNIMPL 480286 UNIMPL 481287 UNIMPL 482288 UNIMPL 483289 UNIMPL 484290 UNIMPL 485291 UNIMPL 486292 UNIMPL 487293 UNIMPL 488294 UNIMPL 489295 UNIMPL 490296 UNIMPL 491297 UNIMPL 492298 UNIMPL 493299 UNIMPL 494300 UNIMPL bdflush 495301 UNIMPL sethae 496302 UNIMPL mount 497303 UNIMPL old_adjtimex 498304 STD { int|linux_sys||swapoff(const char *path); } 499305 STD { int|linux_sys||getdents(int fd, \ 500 struct linux_dirent *dent, unsigned int count); } 501306 UNIMPL alpha_create_module 502307 UNIMPL init_module 503308 UNIMPL delete_module 504309 UNIMPL get_kernel_syms 505310 UNIMPL syslog 506311 STD { int|linux_sys||reboot(int magic1, int magic2, \ 507 int cmd, void *arg); } 508312 STD { int|linux_sys||clone(int flags, void *stack, \ 509 void *parent_tidptr, void *child_tidptr, void *tls); } 510#ifdef EXEC_AOUT 511313 STD { int|linux_sys||uselib(const char *path); } 512#else 513313 UNIMPL sys_uselib 514#endif 515314 NOARGS { int|sys||mlock(const void *addr, size_t len); } 516315 NOARGS { int|sys||munlock(const void *addr, size_t len); } 517316 NOARGS { int|sys||mlockall(int flags); } 518317 NOARGS { int|sys||munlockall(void); } 519318 STD { int|linux_sys||sysinfo(struct linux_sysinfo *arg); } 520319 STD { int|linux_sys||__sysctl(struct linux___sysctl *lsp); } 521320 UNIMPL idle 522321 UNIMPL oldumount 523322 STD { int|linux_sys||swapon(const char *name); } 524323 STD { int|linux_sys||times(struct times *tms); } 525324 STD { int|linux_sys||personality(unsigned long per); } 526325 STD { int|linux_sys||setfsuid(uid_t uid); } 527326 STD { int|linux_sys||setfsgid(gid_t gid); } 528327 UNIMPL ustat 529328 STD { int|linux_sys||statfs(const char *path, \ 530 struct linux_statfs *sp); } 531329 STD { int|linux_sys||fstatfs(int fd, \ 532 struct linux_statfs *sp); } 533330 STD { int|linux_sys||sched_setparam(pid_t pid, \ 534 const struct linux_sched_param *sp); } 535331 STD { int|linux_sys||sched_getparam(pid_t pid, \ 536 struct linux_sched_param *sp); } 537332 STD { int|linux_sys||sched_setscheduler(pid_t pid, \ 538 int policy, const struct linux_sched_param *sp); } 539333 STD { int|linux_sys||sched_getscheduler(pid_t pid); } 540334 STD { int|linux_sys||sched_yield(void); } 541335 STD { int|linux_sys||sched_get_priority_max(int policy); } 542336 STD { int|linux_sys||sched_get_priority_min(int policy); } 543337 UNIMPL sched_rr_get_interval 544338 UNIMPL afs_syscall 545339 STD { int|linux_sys||uname(struct linux_utsname *up); } 546340 STD { int|linux_sys||nanosleep( \ 547 const struct linux_timespec *rqtp, \ 548 struct linux_timespec *rmtp); } 549341 STD { void *|linux_sys||mremap(void *old_address, \ 550 size_t old_size, size_t new_size, u_long flags); } 551342 UNIMPL nfsservctl 552343 STD { int|linux_sys||setresuid(uid_t ruid, uid_t euid, \ 553 uid_t suid); } 554344 STD { int|linux_sys||getresuid(uid_t *ruid, uid_t *euid, \ 555 uid_t *suid); } 556345 UNIMPL pciconfig_read 557346 UNIMPL pciconfig_write 558347 UNIMPL query_module 559348 UNIMPL prctl 560349 STD { int|linux_sys||pread(int fd, char *buf, \ 561 size_t nbyte, off_t offset); } 562350 STD { int|linux_sys||pwrite(int fd, char *buf, \ 563 size_t nbyte, off_t offset); } 564351 STD { int|linux_sys||rt_sigreturn( \ 565 struct linux_rt_sigframe *sfp); } 566352 STD { int|linux_sys||rt_sigaction(int signum, \ 567 const struct linux_sigaction *nsa, \ 568 struct linux_sigaction *osa, \ 569 size_t sigsetsize); } 570353 STD { int|linux_sys||rt_sigprocmask(int how, \ 571 const linux_sigset_t *set, \ 572 linux_sigset_t *oset, \ 573 size_t sigsetsize); } 574354 STD { int|linux_sys||rt_sigpending( \ 575 linux_sigset_t *set, \ 576 size_t sigsetsize); } 577355 STD { int|linux_sys||rt_sigtimedwait( \ 578 const linux_sigset_t *set, \ 579 linux_siginfo_t *info, \ 580 const struct linux_timespec *timeout); } 581356 STD { int|linux_sys||rt_queueinfo(int pid, int signum, \ 582 linux_siginfo_t *uinfo); } 583357 STD { int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \ 584 size_t sigsetsize); } 585358 STD { int|linux_sys||select(int nfds, fd_set *readfds, \ 586 fd_set *writefds, fd_set *exceptfds, \ 587 struct timeval50 *timeout); } 588359 STD { int|linux_sys||gettimeofday(struct timeval50 *tp, \ 589 struct timezone *tzp); } 590360 STD { int|linux_sys||settimeofday(struct timeval50 *tp, \ 591 struct timezone *tzp); } 592361 NOARGS { int|compat_50_sys||getitimer(int which, \ 593 struct itimerval50 *itv); } 594362 NOARGS { int|compat_50_sys||setitimer(int which, \ 595 const struct itimerval50 *itv, \ 596 struct itimerval50 *oitv); } 597363 NOARGS { int|compat_50_sys||utimes(const char *path, \ 598 const struct timeval50 *tptr); } 599364 NOARGS { int|compat_50_sys||getrusage(int who, \ 600 struct rusage50 *rusage); } 601365 STD { int|linux_sys||wait4(int pid, int *status, \ 602 int options, struct rusage50 *rusage); } 603366 UNIMPL adjtimex 604367 NOARGS { int|sys||__getcwd(char *bufp, size_t length); } 605368 UNIMPL capget 606369 UNIMPL capset 607370 UNIMPL sendfile 608371 UNIMPL setresgid 609372 UNIMPL getresgid 610373 UNIMPL sys_dipc 611374 UNIMPL pivot_root 612375 NOARGS { int|sys||mincore(void *addr, size_t len, char *vec); } 613376 UNIMPL pciconfig_iobase 614377 STD { int|linux_sys||getdents64(int fd, \ 615 struct linux_dirent64 *dent, unsigned int count); } 616378 NOARGS { pid_t|linux_sys||gettid(void); } 617379 UNIMPL readahead 618380 UNIMPL /* unused */ 619381 STD { int|linux_sys||tkill(int tid, int sig); } 620382 STD { int|linux_sys||setxattr(char *path, char *name, \ 621 void *value, size_t size, int flags); } 622383 STD { int|linux_sys||lsetxattr(char *path, char *name, \ 623 void *value, size_t size, int flags); } 624384 STD { int|linux_sys||fsetxattr(int fd, char *name, \ 625 void *value, size_t size, int flags); } 626385 STD { ssize_t|linux_sys||getxattr(char *path, char *name, \ 627 void *value, size_t size); } 628386 STD { ssize_t|linux_sys||lgetxattr(char *path, char *name, \ 629 void *value, size_t size); } 630387 STD { ssize_t|linux_sys||fgetxattr(int fd, char *name, \ 631 void *value, size_t size); } 632388 STD { ssize_t|linux_sys||listxattr(char *path, char *list, \ 633 size_t size); } 634389 STD { ssize_t|linux_sys||llistxattr(char *path, char *list, \ 635 size_t size); } 636390 STD { ssize_t|linux_sys||flistxattr(int fd, char *list, \ 637 size_t size); } 638391 STD { int|linux_sys||removexattr(char *path, char *name); } 639392 STD { int|linux_sys||lremovexattr(char *path, char *name); } 640393 STD { int|linux_sys||fremovexattr(int fd, char *name); } 641394 STD { int|linux_sys||futex(int *uaddr, int op, int val, \ 642 const struct linux_timespec *timeout, int *uaddr2, \ 643 int val3); } 644395 STD { int|linux_sys||sched_setaffinity(pid_t pid, \ 645 unsigned int len, unsigned long *mask); } 646396 STD { int|linux_sys||sched_getaffinity(pid_t pid, \ 647 unsigned int len, unsigned long *mask); } 648397 UNIMPL tuxcall 649398 UNIMPL io_setup 650399 UNIMPL io_destroy 651400 UNIMPL io_getevents 652401 UNIMPL io_submit 653402 UNIMPL io_cancel 654403 UNIMPL /* unused */ 655404 UNIMPL /* unused */ 656405 STD { int|linux_sys||exit_group(int error_code); } 657406 UNIMPL lookup_dcookie 658407 UNIMPL sys_epoll_create 659408 UNIMPL sys_epoll_ctl 660409 UNIMPL sys_epoll_wait 661410 UNIMPL remap_file_pages 662411 STD { int|linux_sys||set_tid_address(int *tid); } 663412 UNIMPL restart_syscall 664413 STD { int|linux_sys||fadvise64(int fd, off_t offset, \ 665 size_t len, int advice); } 666414 STD { int|linux_sys||timer_create(clockid_t clockid, \ 667 struct linux_sigevent *evp, timer_t *timerid); } 668415 STD { int|linux_sys||timer_settime(timer_t timerid, \ 669 int flags, const struct linux_itimerspec *tim, \ 670 struct linux_itimerspec *otim); } 671416 STD { int|linux_sys||timer_gettime(timer_t timerid, \ 672 struct linux_itimerspec *tim); } 673417 NOARGS { int|sys||timer_getoverrun(timer_t timerid); } 674418 NOARGS { int|sys||timer_delete(timer_t timerid); } 675419 STD { int|linux_sys||clock_settime(clockid_t which, \ 676 struct linux_timespec *tp); } 677420 STD { int|linux_sys||clock_gettime(clockid_t which, \ 678 struct linux_timespec *tp); } 679421 STD { int|linux_sys||clock_getres(clockid_t which, \ 680 struct linux_timespec *tp); } 681422 STD { int|linux_sys||clock_nanosleep(clockid_t which, \ 682 int flags, struct linux_timespec *rqtp, \ 683 struct linux_timespec *rmtp); } 684423 UNIMPL semtimedop 685424 STD { int|linux_sys||tgkill(int tgid, int tid, int sig); } 686425 STD { int|linux_sys||stat64(const char *path, \ 687 struct linux_stat64 *sp); } 688426 STD { int|linux_sys||lstat64(const char *path, \ 689 struct linux_stat64 *sp); } 690427 STD { int|linux_sys||fstat64(int fd, \ 691 struct linux_stat64 *sp); } 692428 UNIMPL vserver 693429 UNIMPL mbind 694430 UNIMPL get_mempolicy 695431 UNIMPL set_mempolicy 696432 UNIMPL mq_open 697433 UNIMPL mq_unlink 698434 UNIMPL mq_timedsend 699435 UNIMPL mq_timedreceive 700436 UNIMPL mq_notify 701437 UNIMPL mq_getsetattr 702438 UNIMPL waitid 703439 UNIMPL add_key 704440 UNIMPL request_key 705441 UNIMPL keyctl 706442 UNIMPL ioprio_set 707443 UNIMPL ioprio_get 708444 UNIMPL inotify_init 709445 UNIMPL inotify_add_watch 710446 UNIMPL inotify_rm_watch 711447 UNIMPL fdatasync 712448 UNIMPL kexec_load 713449 UNIMPL migrate_pages 714450 STD { int|linux_sys||openat(int fd, const char *path, \ 715 int flags, ... linux_umode_t mode); } 716451 NOARGS { int|sys||mkdirat(int fd, const char *path, \ 717 linux_umode_t mode); } 718452 STD { int|linux_sys||mknodat(int fd, const char *path, \ 719 linux_umode_t mode, unsigned dev); } 720453 STD { int|linux_sys||fchownat(int fd, const char *path, \ 721 uid_t owner, gid_t group, int flag); } 722454 UNIMPL futimesat 723455 STD { int|linux_sys||fstatat64(int fd, const char *path, \ 724 struct linux_stat64 *sp, int flag); } 725456 STD { int|linux_sys||unlinkat(int fd, const char *path, \ 726 int flag); } 727457 NOARGS { int|sys||renameat(int fromfd, const char *from, \ 728 int tofd, const char *to); } 729458 STD { int|linux_sys||linkat(int fd1, const char *name1, \ 730 int fd2, const char *name2, int flags); } 731459 NOARGS { int|sys||symlinkat(const char *path1, int fd, \ 732 const char *path2); } 733460 NOARGS { ssize_t|sys||readlinkat(int fd, const char *path, \ 734 char *buf, size_t bufsize); } 735461 STD { int|linux_sys||fchmodat(int fd, const char *path, \ 736 linux_umode_t mode); } 737462 STD { int|linux_sys||faccessat(int fd, const char *path, \ 738 int amode); } 739463 STD { int|linux_sys||pselect6(int nfds, fd_set *readfds, \ 740 fd_set *writefds, fd_set *exceptfds, \ 741 struct linux_timespec *timeout, \ 742 linux_sized_sigset_t *ss); } 743464 STD { int|linux_sys||ppoll(struct pollfd *fds, u_int nfds, \ 744 struct linux_timespec *timeout, \ 745 linux_sigset_t *sigset); } 746465 UNIMPL unshare 747 ; 748 ; The NetBSD native robust list calls have different 749 ; argument names / types, but they are ABI-compatible 750 ; with Linux. 751 ; 752466 NOARGS { int|sys||__futex_set_robust_list(void *head, \ 753 size_t len); } 754467 NOARGS { int|sys||__futex_get_robust_list(lwpid_t lwpid, \ 755 void **headp, size_t *lenp); } 756468 UNIMPL splice 757469 UNIMPL sync_file_range 758470 UNIMPL tee 759471 UNIMPL vmsplice 760472 UNIMPL move_pages 761473 UNIMPL getcpu 762474 UNIMPL epoll_wait 763475 STD { int|linux_sys||utimensat(int fd, const char *path, \ 764 struct linux_timespec *times, int flag); } 765476 UNIMPL signalfd 766477 UNIMPL timerfd 767478 STD { int|linux_sys||eventfd(unsigned int initval); } 768479 STD { int|linux_sys||recvmmsg(int s, \ 769 struct linux_mmsghdr *msgvec, unsigned int vlen, \ 770 unsigned int flags, struct timespec *timeout); } 771480 STD { int|linux_sys||fallocate(int fd, int mode, \ 772 off_t offset, off_t len); } 773481 STD { int|linux_sys||timerfd_create(clockid_t clock_id, \ 774 int flags); } 775482 STD { int|linux_sys||timerfd_settime(int fd, int flags, \ 776 const struct linux_itimerspec *tim, \ 777 struct linux_itimerspec *otim); } 778483 STD { int|linux_sys||timerfd_gettime(int fd, \ 779 struct linux_itimerspec *tim); } 780484 UNIMPL signalfd4 781485 STD { int|linux_sys||eventfd2(unsigned int initval, \ 782 int flags); } 783486 UNIMPL epoll_create1 784487 STD { int|linux_sys||dup3(int from, int to, int flags); } 785488 STD { int|linux_sys||pipe2(int *pfds, int flags); } 786489 UNIMPL inotify_init1 787490 STD { int|linux_sys||preadv(int fd, \ 788 const struct iovec *iovp, int iovcnt, \ 789 unsigned long off_lo, unsigned long off_hi); } 790491 STD { int|linux_sys||pwritev(int fd, \ 791 const struct iovcnt *iovp, int iovcnt, \ 792 unsigned long off_lo, unsigned long off_hi); } 793492 UNIMPL rt_tgsigqueueinfo 794493 UNIMPL perf_counter_open 795494 UNIMPL fanotify_init 796495 UNIMPL fanotify_mark 797496 STD { int|linux_sys||prlimit64(pid_t pid, int which, \ 798 struct rlimit *new_rlp, struct rlimit *old_rlp); } 799497 UNIMPL name_to_handle_at 800498 UNIMPL open_by_handle_at 801499 UNIMPL clock_adjtime 802500 UNIMPL syncfs 803501 UNIMPL setns 804502 STD { int|linux_sys||accept4(int s, \ 805 struct osockaddr *name, \ 806 int *anamelen, int flags); } 807503 STD { int|linux_sys||sendmmsg(int s, \ 808 struct linux_mmsghdr *msgvec, unsigned int vlen, \ 809 unsigned int flags); } 810504 UNIMPL process_vm_readv 811505 UNIMPL process_vm_writev 812506 UNIMPL kcmp 813507 UNIMPL finit_module 814508 UNIMPL sched_setattr 815509 UNIMPL sched_getattr 816510 UNIMPL renameat2 817