1 $NetBSD: syscalls.master,v 1.109 2024/09/28 19:35:55 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 87 0 NOARGS { int|linux_sys||nosys(void); } syscall 88 1 STD { int|linux_sys||exit(int rval); } 89 2 NOARGS { int|sys||fork(void); } 90 3 NOARGS { ssize_t|sys||read(int fd, void *buf, size_t nbyte); } 91 4 NOARGS { ssize_t|sys||write(int fd, const void *buf, \ 92 size_t nbyte); } 93 5 UNIMPL 94 6 NOARGS { int|sys||close(int fd); } 95 7 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 98 8 STD { int|linux_sys||creat(const char *path, linux_umode_t mode); } 99 9 NOARGS { int|sys||link(const char *path, const char *link); } 100 10 STD { int|linux_sys||unlink(const char *path); } 101 11 UNIMPL 102 12 NOARGS { int|sys||chdir(const char *path); } 103 13 NOARGS { int|sys||fchdir(int fd); } 104 14 STD { int|linux_sys||mknod(const char *path, linux_umode_t mode, \ 105 unsigned dev); } 106 15 NOARGS { int|sys||chmod(const char *path, int mode); } 107 16 NOARGS { int|sys||__posix_chown(const char *path, uid_t uid, \ 108 gid_t gid); } 109 ;17 ALIAS osf1_sys_brk 110 17 STD { int|linux_sys||brk(char *nsize); } 111 18 UNIMPL 112 19 NOARGS { long|compat_43_sys||lseek(int fd, long offset, \ 113 int whence); } 114 20 NOARGS { pid_t|sys||getpid_with_ppid(void); } 115 21 STD { int|linux_sys||osf1_mount(int type, const char *path, \ 116 int flags, void *data); } 117 22 UNIMPL umount 118 23 NOARGS { int|sys||setuid(uid_t uid); } 119 24 NOARGS { uid_t|sys||getuid_with_euid(void); } 120 25 UNIMPL 121 26 STD { int|linux_sys||ptrace(long request, long pid, \ 122 long addr, long data); } 123 27 UNIMPL 124 28 UNIMPL 125 29 UNIMPL 126 30 UNIMPL 127 31 UNIMPL 128 32 UNIMPL 129 33 NOARGS { int|sys||access(const char *path, int flags); } 130 34 UNIMPL 131 35 UNIMPL 132 36 NOARGS { int|sys||sync(void); } 133 37 STD { int|linux_sys||kill(int pid, int signum); } 134 38 UNIMPL 135 39 NOARGS { int|sys||setpgid(int pid, int pgid); } 136 40 UNIMPL 137 41 NOARGS { int|sys||dup(int fd); } 138 42 NOARGS { int|linux_sys||pipe(void); } 139 43 STD { int|linux_sys||osf1_set_program_attributes( \ 140 void *taddr, unsigned long tsize, \ 141 void *daddr, unsigned long dsize); } 142 44 UNIMPL 143 45 STD { int|linux_sys||open(const char *path, int flags, \ 144 linux_umode_t mode); } 145 46 UNIMPL 146 47 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 149 48 NOARGS { int|compat_13_sys||sigprocmask(int how, \ 150 sigset13_t mask); } 151 49 UNIMPL 152 50 UNIMPL 153 51 NOARGS { int|sys||acct(const char *path); } 154 52 STD { int|linux_sys||sigpending(linux_old_sigset_t *set); } 155 53 UNIMPL 156 54 STD { int|linux_sys||ioctl(int fd, u_long com, \ 157 void *data); } 158 55 UNIMPL 159 56 UNIMPL 160 57 NOARGS { int|sys||symlink(const char *path, const char *to); } 161 58 NOARGS { ssize_t|sys||readlink(const char *path, char *buf, \ 162 int count); } 163 59 NOARGS { int|sys||execve(const char *path, char **argp, \ 164 char **envp); } 165 60 NOARGS { mode_t|sys||umask(mode_t newmask); } 166 61 NOARGS { int|sys||chroot(const char *path); } 167 62 UNIMPL 168 63 NOARGS { int|sys||getpgrp(void); } 169 64 NOARGS { int|compat_43_sys||getpagesize(void); } 170 65 UNIMPL 171 66 NOARGS { int|sys|14|vfork(void); } 172 67 STD { int|linux_sys||stat(const char *path, \ 173 struct linux_stat *sp); } 174 68 STD { int|linux_sys||lstat(const char *path, \ 175 struct linux_stat *sp); } 176 69 UNIMPL 177 70 UNIMPL 178 ;71 ALIAS osf1_sys_mmap 179 71 NOARGS { int|linux_sys||mmap(unsigned long addr, size_t len, \ 180 int prot, int flags, int fd, linux_off_t offset); } 181 72 UNIMPL 182 73 NOARGS { int|sys||munmap(void *addr, size_t len); } 183 74 STD { int|linux_sys||mprotect(const void *start, \ 184 unsigned long len, int prot); } 185 75 NOARGS { int|sys||madvise(void *addr, size_t len, int behav); } 186 76 UNIMPL vhangup 187 77 UNIMPL 188 78 UNIMPL 189 79 NOARGS { int|sys||getgroups(int gidsetsize, gid_t *gidset); } 190 80 NOARGS { int|sys||setgroups(int gidsetsize, const gid_t *gidset); } 191 81 UNIMPL 192 82 UNIMPL setpgrp 193 83 STD { int|linux_sys||osf1_setitimer(int which, \ 194 struct osf1_itimerval *itv, \ 195 struct osf1_itimerval *oitv); } 196 84 UNIMPL 197 85 UNIMPL 198 86 UNIMPL osf1_sys_getitimer 199 87 NOARGS { int|compat_43_sys||gethostname(char *hostname, \ 200 u_int len); } 201 88 NOARGS { int|compat_43_sys||sethostname(char *hostname, \ 202 u_int len); } 203 89 UNIMPL getdtablesize 204 90 NOARGS { int|sys||dup2(int from, int to); } 205 91 STD { int|linux_sys||fstat(int fd, struct linux_stat *sp); } 206 92 STD { int|linux_sys||fcntl(int fd, int cmd, void *arg); } 207 93 STD { int|linux_sys||osf1_select(u_int nd, fd_set *in, \ 208 fd_set *ou, fd_set *ex, struct osf1_timeval *tv); } 209 94 NOARGS { int|sys||poll(struct pollfd *fds, u_int nfds, \ 210 int timeout); } 211 95 NOARGS { int|sys||fsync(int fd); } 212 96 NOARGS { int|sys||setpriority(int which, int who, int prio); } 213 97 STD { int|linux_sys||socket(int domain, int type, \ 214 int protocol); } 215 98 STD { int|linux_sys||connect(int s, \ 216 const struct osockaddr *name, \ 217 unsigned int namelen); } 218 99 STD { int|linux_sys||accept(int s, \ 219 struct osockaddr *name, int *anamelen); } 220 ;100 ALIAS osf1_sys_getpriority 221 100 STD { int|linux_sys||getpriority(int which, int who); } 222 101 STD { int|linux_sys||send(int s, void *buf, int len, \ 223 int flags); } 224 102 STD { int|linux_sys||recv(int s, void *buf, int len, \ 225 int flags); } 226 103 STD { int|linux_sys||sigreturn(struct linux_sigframe *sfp); } 227 104 STD { int|linux_sys||bind(int s, \ 228 const struct osockaddr *name, \ 229 unsigned int namelen); } 230 105 STD { int|linux_sys||setsockopt(int s, int level, \ 231 int optname, void *optval, int optlen); } 232 106 NOARGS { int|sys||listen(int s, int backlog); } 233 107 UNIMPL 234 108 UNIMPL 235 109 UNIMPL 236 110 UNIMPL 237 238 111 STD { int|linux_sys||sigsuspend(void *restart, \ 239 int oldmask, int mask); } 240 ;112 ALIAS osf1_sys_sigstack 241 112 NOARGS { int|compat_43_sys||sigstack(struct sigstack *nss, \ 242 struct sigstack *oss); } 243 113 STD { ssize_t|linux_sys||recvmsg(int s, \ 244 struct linux_msghdr *msg, int flags); } 245 114 STD { ssize_t|linux_sys||sendmsg(int s, \ 246 const struct linux_msghdr *msg, int flags); } 247 115 UNIMPL 248 116 STD { int|linux_sys||osf1_gettimeofday(struct osf1_timeval *tv, \ 249 struct osf1_timezone *tzp); } 250 117 STD { int|linux_sys||osf1_getrusage(int who, \ 251 struct osf1_rusage *rusage); } 252 118 STD { int|linux_sys||getsockopt(int s, int level, \ 253 int optname, void *optval, int *optlen); } 254 119 UNIMPL 255 120 NOARGS { ssize_t|sys||readv(int fd, const struct iovec *iovp, \ 256 int iovcnt); } 257 121 NOARGS { ssize_t|sys||writev(int fd, const struct iovec *iovp, \ 258 int iovcnt); } 259 122 STD { int|linux_sys||osf1_settimeofday(struct osf1_timeval *tv, \ 260 struct osf1_timezone *tzp); } 261 123 NOARGS { int|sys||__posix_fchown(int fd, uid_t uid, \ 262 gid_t gid); } 263 124 NOARGS { int|sys||fchmod(int fd, linux_umode_t mode); } 264 125 STD { int|linux_sys||recvfrom(int s, void *buf, int len, \ 265 int flags, struct osockaddr *from, \ 266 int *fromlenaddr); } 267 126 NOARGS { int|sys||setreuid(uid_t ruid, uid_t euid); } 268 127 NOARGS { int|sys||setregid(gid_t rgid, gid_t egid); } 269 128 NOARGS { int|sys||__posix_rename(const char *from, const char *to); } 270 129 NOARGS { int|compat_43_sys||truncate(const char *path, \ 271 long length); } 272 130 NOARGS { int|compat_43_sys||ftruncate(int fd, long length); } 273 131 NOARGS { int|sys||flock(int fd, int how); } 274 132 NOARGS { int|sys||setgid(gid_t gid); } 275 133 STD { int|linux_sys||sendto(int s, void *msg, int len, \ 276 int flags, struct osockaddr *to, int tolen); } 277 134 NOARGS { int|sys||shutdown(int s, int how); } 278 135 STD { int|linux_sys||socketpair(int domain, int type, \ 279 int protocol, int *rsv); } 280 136 NOARGS { int|sys||mkdir(const char *path, linux_umode_t mode); } 281 137 NOARGS { int|sys||rmdir(const char *path); } 282 138 STD { int|linux_sys||osf1_utimes(const char *path, \ 283 const struct osf1_timeval *tptr); } 284 139 UNIMPL 285 140 UNIMPL 286 141 STD { int|linux_sys||getpeername(int fdes, \ 287 void *asa, int *alen); } 288 142 UNIMPL 289 143 UNIMPL 290 144 STD { int|linux_sys||getrlimit(int which, \ 291 struct orlimit *rlp); } 292 145 STD { int|linux_sys||setrlimit(int which, \ 293 const struct orlimit *rlp); } 294 146 UNIMPL 295 147 NOARGS { int|sys||setsid(void); } 296 148 UNIMPL quotactl 297 149 UNIMPL 298 150 STD { int|linux_sys||getsockname(int fdec, \ 299 void *asa, int *alen); } 300 151 UNIMPL 301 152 UNIMPL 302 153 UNIMPL 303 154 UNIMPL 304 155 UNIMPL 305 ;156 ALIAS osf1_sys_sigaction 306 156 STD { int|linux_sys||sigaction(int signum, \ 307 const struct linux_old_sigaction *nsa, \ 308 struct linux_old_sigaction *osa); } 309 157 UNIMPL 310 158 UNIMPL 311 ;159 ALIAS osf1_sys_getdirentries 312 159 NOARGS { int|compat_43_sys||getdirentries(int fd, char *buf, \ 313 u_int count, long *basep); } 314 160 STD { int|linux_sys||osf1_statfs(const char *path, \ 315 struct osf1_statfs *buf, int len); } 316 161 STD { int|linux_sys||osf1_fstatfs(int fd, \ 317 struct osf1_statfs *buf, int len); } 318 162 UNIMPL 319 163 UNIMPL 320 164 UNIMPL 321 ;165 ALIAS osf1_sys_getdomainname 322 165 NOARGS { int|compat_09_sys||getdomainname(char *domainname, \ 323 int len); } 324 166 STD { int|linux_sys||setdomainname(char *domainname, \ 325 int len); } 326 167 UNIMPL 327 168 UNIMPL 328 169 UNIMPL 329 170 UNIMPL 330 171 UNIMPL 331 172 UNIMPL 332 173 UNIMPL 333 174 UNIMPL 334 175 UNIMPL 335 176 UNIMPL 336 177 UNIMPL 337 178 UNIMPL 338 179 UNIMPL 339 180 UNIMPL 340 181 UNIMPL 341 182 UNIMPL 342 183 UNIMPL 343 184 UNIMPL 344 185 UNIMPL 345 186 UNIMPL 346 187 UNIMPL 347 188 UNIMPL 348 189 UNIMPL 349 190 UNIMPL 350 ; XXX: Dunno 351 191 STD { int|linux_sys||ugetrlimit(int which, \ 352 struct rlimit *rlp); } 353 192 UNIMPL mmap2 354 193 UNIMPL 355 194 UNIMPL 356 195 UNIMPL 357 196 UNIMPL 358 197 UNIMPL 359 198 UNIMPL 360 199 UNIMPL osf1_sys_swapon 361 #ifdef SYSVMSG 362 200 NOARGS { int|linux_sys||msgctl(int msqid, int cmd, \ 363 struct linux_msqid_ds *buf); } 364 201 NOARGS { int|sys||msgget(key_t key, int msgflg); } 365 202 NOARGS { ssize_t|sys||msgrcv(int msqid, void *msgp, \ 366 size_t msgsz, long msgtyp, int msgflg); } 367 203 NOARGS { int|sys||msgsnd(int msqid, void *msgp, size_t msgsz, \ 368 int msgflg); } 369 #else 370 200 UNIMPL msgctl 371 201 UNIMPL msgget 372 202 UNIMPL msgrcv 373 203 UNIMPL msgsnd 374 #endif 375 #ifdef SYSVSEM 376 204 NOARGS { int|linux_sys||semctl(int semid, int semnum, \ 377 int cmd, union linux_semun arg); } 378 205 NOARGS { int|sys||semget(key_t key, int nsems, int semflg); } 379 206 NOARGS { int|sys||semop(int semid, struct sembuf *sops, \ 380 size_t nsops); } 381 #else 382 204 UNIMPL semctl 383 205 UNIMPL semget 384 206 UNIMPL semop 385 #endif 386 ;207 ALIAS osf1_sys_utsname 387 207 STD { int|linux_sys||olduname(struct linux_old_utsname *up); } 388 208 NOARGS { int|sys||__posix_lchown(const char *path, uid_t uid, \ 389 gid_t gid); } 390 #ifdef SYSVSHM 391 209 NOARGS { int|linux_sys||shmat(int shmid, void *shmaddr, \ 392 int shmflg, u_long *raddr); } 393 210 NOARGS { int|linux_sys||shmctl(int shmid, int cmd, \ 394 struct linux_shmid_ds *buf); } 395 211 NOARGS { int|sys||shmdt(const void *shmaddr); } 396 212 NOARGS { int|linux_sys||shmget(key_t key, size_t size, int shmflg); } 397 #else 398 209 UNIMPL shmat 399 210 UNIMPL shmctl 400 211 UNIMPL shmdt 401 212 UNIMPL shmget 402 #endif 403 213 UNIMPL 404 214 UNIMPL 405 215 UNIMPL 406 216 UNIMPL 407 217 NOARGS { int|sys|13|msync(void *addr, size_t len, int flags); } 408 218 UNIMPL 409 219 UNIMPL 410 220 UNIMPL 411 221 UNIMPL 412 222 UNIMPL 413 223 UNIMPL 414 224 UNIMPL 415 225 UNIMPL 416 226 UNIMPL 417 227 UNIMPL 418 228 UNIMPL 419 229 UNIMPL 420 230 UNIMPL 421 231 UNIMPL 422 232 UNIMPL 423 233 NOARGS { pid_t|sys||getpgid(pid_t pid); } 424 234 NOARGS { pid_t|sys||getsid(pid_t pid); } 425 235 UNIMPL sigaltstack 426 236 UNIMPL 427 237 UNIMPL 428 238 UNIMPL 429 239 UNIMPL 430 240 UNIMPL 431 241 STD { int|linux_sys||osf1_sysinfo(int cmd, char *buf, long len); } 432 242 UNIMPL 433 243 UNIMPL 434 244 UNIMPL osf1_sys_proplist_syscall 435 245 UNIMPL 436 246 UNIMPL 437 247 UNIMPL 438 248 UNIMPL 439 249 UNIMPL 440 250 UNIMPL 441 251 STD { int|linux_sys||osf1_usleep_thread( \ 442 struct osf1_timeval *sleep, \ 443 struct osf1_timeval *slept); } 444 252 UNIMPL 445 253 UNIMPL 446 254 UNIMPL 447 255 UNIMPL sysfs 448 256 STD { int|linux_sys||osf1_getsysinfo(u_long op, void *buffer, \ 449 u_long nbytes, void *arg, u_long flag); } 450 257 STD { int|linux_sys||osf1_setsysinfo(u_long op, void *buffer, \ 451 u_long nbytes, void *arg, u_long flag); } 452 258 UNIMPL 453 259 UNIMPL 454 260 UNIMPL 455 ; This entry doesn't exist in the Alpha linux syscall table but the function is 456 ; implemented and used on other ports. 457 261 STD { int|linux_sys||fdatasync(int fd); } 458 262 UNIMPL 459 263 UNIMPL 460 264 UNIMPL 461 265 UNIMPL 462 266 UNIMPL 463 267 UNIMPL 464 268 UNIMPL 465 269 UNIMPL 466 270 UNIMPL 467 271 UNIMPL 468 272 UNIMPL 469 273 UNIMPL 470 274 UNIMPL 471 275 UNIMPL 472 276 UNIMPL 473 277 UNIMPL 474 278 UNIMPL 475 279 UNIMPL 476 280 UNIMPL 477 281 UNIMPL 478 282 UNIMPL 479 283 UNIMPL 480 284 UNIMPL 481 285 UNIMPL 482 286 UNIMPL 483 287 UNIMPL 484 288 UNIMPL 485 289 UNIMPL 486 290 UNIMPL 487 291 UNIMPL 488 292 UNIMPL 489 293 UNIMPL 490 294 UNIMPL 491 295 UNIMPL 492 296 UNIMPL 493 297 UNIMPL 494 298 UNIMPL 495 299 UNIMPL 496 300 UNIMPL bdflush 497 301 UNIMPL sethae 498 302 UNIMPL mount 499 303 UNIMPL old_adjtimex 500 304 STD { int|linux_sys||swapoff(const char *path); } 501 305 STD { int|linux_sys||getdents(int fd, \ 502 struct linux_dirent *dent, unsigned int count); } 503 306 UNIMPL alpha_create_module 504 307 UNIMPL init_module 505 308 UNIMPL delete_module 506 309 UNIMPL get_kernel_syms 507 310 UNIMPL syslog 508 311 STD { int|linux_sys||reboot(int magic1, int magic2, \ 509 int cmd, void *arg); } 510 312 STD { int|linux_sys||clone(int flags, void *stack, \ 511 void *parent_tidptr, void *child_tidptr, void *tls); } 512 #ifdef EXEC_AOUT 513 313 STD { int|linux_sys||uselib(const char *path); } 514 #else 515 313 UNIMPL sys_uselib 516 #endif 517 314 NOARGS { int|sys||mlock(const void *addr, size_t len); } 518 315 NOARGS { int|sys||munlock(const void *addr, size_t len); } 519 316 NOARGS { int|sys||mlockall(int flags); } 520 317 NOARGS { int|sys||munlockall(void); } 521 318 STD { int|linux_sys||sysinfo(struct linux_sysinfo *arg); } 522 319 STD { int|linux_sys||__sysctl(struct linux___sysctl *lsp); } 523 320 UNIMPL idle 524 321 UNIMPL oldumount 525 322 STD { int|linux_sys||swapon(const char *name); } 526 323 STD { int|linux_sys||times(struct times *tms); } 527 324 STD { int|linux_sys||personality(unsigned long per); } 528 325 STD { int|linux_sys||setfsuid(uid_t uid); } 529 326 STD { int|linux_sys||setfsgid(gid_t gid); } 530 327 UNIMPL ustat 531 328 STD { int|linux_sys||statfs(const char *path, \ 532 struct linux_statfs *sp); } 533 329 STD { int|linux_sys||fstatfs(int fd, \ 534 struct linux_statfs *sp); } 535 330 STD { int|linux_sys||sched_setparam(pid_t pid, \ 536 const struct linux_sched_param *sp); } 537 331 STD { int|linux_sys||sched_getparam(pid_t pid, \ 538 struct linux_sched_param *sp); } 539 332 STD { int|linux_sys||sched_setscheduler(pid_t pid, \ 540 int policy, const struct linux_sched_param *sp); } 541 333 STD { int|linux_sys||sched_getscheduler(pid_t pid); } 542 334 STD { int|linux_sys||sched_yield(void); } 543 335 STD { int|linux_sys||sched_get_priority_max(int policy); } 544 336 STD { int|linux_sys||sched_get_priority_min(int policy); } 545 337 UNIMPL sched_rr_get_interval 546 338 UNIMPL afs_syscall 547 339 STD { int|linux_sys||uname(struct linux_utsname *up); } 548 340 STD { int|linux_sys||nanosleep( \ 549 const struct linux_timespec *rqtp, \ 550 struct linux_timespec *rmtp); } 551 341 STD { void *|linux_sys||mremap(void *old_address, \ 552 size_t old_size, size_t new_size, u_long flags); } 553 342 UNIMPL nfsservctl 554 343 STD { int|linux_sys||setresuid(uid_t ruid, uid_t euid, \ 555 uid_t suid); } 556 344 STD { int|linux_sys||getresuid(uid_t *ruid, uid_t *euid, \ 557 uid_t *suid); } 558 345 UNIMPL pciconfig_read 559 346 UNIMPL pciconfig_write 560 347 UNIMPL query_module 561 348 UNIMPL prctl 562 349 STD { int|linux_sys||pread(int fd, char *buf, \ 563 size_t nbyte, off_t offset); } 564 350 STD { int|linux_sys||pwrite(int fd, char *buf, \ 565 size_t nbyte, off_t offset); } 566 351 STD { int|linux_sys||rt_sigreturn( \ 567 struct linux_rt_sigframe *sfp); } 568 352 STD { int|linux_sys||rt_sigaction(int signum, \ 569 const struct linux_sigaction *nsa, \ 570 struct linux_sigaction *osa, \ 571 size_t sigsetsize); } 572 353 STD { int|linux_sys||rt_sigprocmask(int how, \ 573 const linux_sigset_t *set, \ 574 linux_sigset_t *oset, \ 575 size_t sigsetsize); } 576 354 STD { int|linux_sys||rt_sigpending( \ 577 linux_sigset_t *set, \ 578 size_t sigsetsize); } 579 355 STD { int|linux_sys||rt_sigtimedwait( \ 580 const linux_sigset_t *set, \ 581 linux_siginfo_t *info, \ 582 const struct linux_timespec *timeout); } 583 356 STD { int|linux_sys||rt_queueinfo(int pid, int signum, \ 584 linux_siginfo_t *uinfo); } 585 357 STD { int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \ 586 size_t sigsetsize); } 587 358 STD { int|linux_sys||select(int nfds, fd_set *readfds, \ 588 fd_set *writefds, fd_set *exceptfds, \ 589 struct timeval50 *timeout); } 590 359 STD { int|linux_sys||gettimeofday(struct timeval50 *tp, \ 591 struct timezone *tzp); } 592 360 STD { int|linux_sys||settimeofday(struct timeval50 *tp, \ 593 struct timezone *tzp); } 594 361 NOARGS { int|compat_50_sys||getitimer(int which, \ 595 struct itimerval50 *itv); } 596 362 NOARGS { int|compat_50_sys||setitimer(int which, \ 597 const struct itimerval50 *itv, \ 598 struct itimerval50 *oitv); } 599 363 NOARGS { int|compat_50_sys||utimes(const char *path, \ 600 const struct timeval50 *tptr); } 601 364 NOARGS { int|compat_50_sys||getrusage(int who, \ 602 struct rusage50 *rusage); } 603 365 STD { int|linux_sys||wait4(int pid, int *status, \ 604 int options, struct rusage50 *rusage); } 605 366 UNIMPL adjtimex 606 367 NOARGS { int|sys||__getcwd(char *bufp, size_t length); } 607 368 UNIMPL capget 608 369 UNIMPL capset 609 370 UNIMPL sendfile 610 371 UNIMPL setresgid 611 372 UNIMPL getresgid 612 373 UNIMPL sys_dipc 613 374 UNIMPL pivot_root 614 375 NOARGS { int|sys||mincore(void *addr, size_t len, char *vec); } 615 376 UNIMPL pciconfig_iobase 616 377 STD { int|linux_sys||getdents64(int fd, \ 617 struct linux_dirent64 *dent, unsigned int count); } 618 378 NOARGS { pid_t|linux_sys||gettid(void); } 619 379 STD { ssize_t|linux_sys||readahead(int fd, off_t offset, \ 620 size_t count); } 621 380 UNIMPL /* unused */ 622 381 STD { int|linux_sys||tkill(int tid, int sig); } 623 382 STD { int|linux_sys||setxattr(char *path, char *name, \ 624 void *value, size_t size, int flags); } 625 383 STD { int|linux_sys||lsetxattr(char *path, char *name, \ 626 void *value, size_t size, int flags); } 627 384 STD { int|linux_sys||fsetxattr(int fd, char *name, \ 628 void *value, size_t size, int flags); } 629 385 STD { ssize_t|linux_sys||getxattr(char *path, char *name, \ 630 void *value, size_t size); } 631 386 STD { ssize_t|linux_sys||lgetxattr(char *path, char *name, \ 632 void *value, size_t size); } 633 387 STD { ssize_t|linux_sys||fgetxattr(int fd, char *name, \ 634 void *value, size_t size); } 635 388 STD { ssize_t|linux_sys||listxattr(char *path, char *list, \ 636 size_t size); } 637 389 STD { ssize_t|linux_sys||llistxattr(char *path, char *list, \ 638 size_t size); } 639 390 STD { ssize_t|linux_sys||flistxattr(int fd, char *list, \ 640 size_t size); } 641 391 STD { int|linux_sys||removexattr(char *path, char *name); } 642 392 STD { int|linux_sys||lremovexattr(char *path, char *name); } 643 393 STD { int|linux_sys||fremovexattr(int fd, char *name); } 644 394 STD { int|linux_sys||futex(int *uaddr, int op, int val, \ 645 const struct linux_timespec *timeout, int *uaddr2, \ 646 int val3); } 647 395 STD { int|linux_sys||sched_setaffinity(pid_t pid, \ 648 unsigned int len, unsigned long *mask); } 649 396 STD { int|linux_sys||sched_getaffinity(pid_t pid, \ 650 unsigned int len, unsigned long *mask); } 651 397 UNIMPL tuxcall 652 398 UNIMPL io_setup 653 399 UNIMPL io_destroy 654 400 UNIMPL io_getevents 655 401 UNIMPL io_submit 656 402 UNIMPL io_cancel 657 403 UNIMPL /* unused */ 658 404 UNIMPL /* unused */ 659 405 STD { int|linux_sys||exit_group(int error_code); } 660 406 UNIMPL lookup_dcookie 661 407 STD { int|linux_sys||epoll_create(int size); } 662 408 STD { int|linux_sys||epoll_ctl(int epfd, int op, int fd, \ 663 struct linux_epoll_event *event); } 664 409 STD { int|linux_sys||epoll_wait(int epfd, \ 665 struct linux_epoll_event *events, int maxevents, \ 666 int timeout); } 667 410 UNIMPL remap_file_pages 668 411 STD { int|linux_sys||set_tid_address(int *tid); } 669 412 UNIMPL restart_syscall 670 413 STD { int|linux_sys||fadvise64(int fd, off_t offset, \ 671 size_t len, int advice); } 672 414 STD { int|linux_sys||timer_create(clockid_t clockid, \ 673 struct linux_sigevent *evp, timer_t *timerid); } 674 415 STD { int|linux_sys||timer_settime(timer_t timerid, \ 675 int flags, const struct linux_itimerspec *tim, \ 676 struct linux_itimerspec *otim); } 677 416 STD { int|linux_sys||timer_gettime(timer_t timerid, \ 678 struct linux_itimerspec *tim); } 679 417 NOARGS { int|sys||timer_getoverrun(timer_t timerid); } 680 418 NOARGS { int|sys||timer_delete(timer_t timerid); } 681 419 STD { int|linux_sys||clock_settime(clockid_t which, \ 682 struct linux_timespec *tp); } 683 420 STD { int|linux_sys||clock_gettime(clockid_t which, \ 684 struct linux_timespec *tp); } 685 421 STD { int|linux_sys||clock_getres(clockid_t which, \ 686 struct linux_timespec *tp); } 687 422 STD { int|linux_sys||clock_nanosleep(clockid_t which, \ 688 int flags, struct linux_timespec *rqtp, \ 689 struct linux_timespec *rmtp); } 690 423 UNIMPL semtimedop 691 424 STD { int|linux_sys||tgkill(int tgid, int tid, int sig); } 692 425 STD { int|linux_sys||stat64(const char *path, \ 693 struct linux_stat64 *sp); } 694 426 STD { int|linux_sys||lstat64(const char *path, \ 695 struct linux_stat64 *sp); } 696 427 STD { int|linux_sys||fstat64(int fd, \ 697 struct linux_stat64 *sp); } 698 428 UNIMPL vserver 699 429 UNIMPL mbind 700 430 UNIMPL get_mempolicy 701 431 UNIMPL set_mempolicy 702 432 STD { linux_mqd_t|linux_sys||mq_open(const char *name, \ 703 int oflag, linux_umode_t mode, \ 704 struct linux_mq_attr *attr); } 705 433 STD { int|linux_sys||mq_unlink(const char *name); } 706 434 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); } 710 435 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); } 714 436 STD { int|linux_sys||mq_notify(linux_mqd_t mqdes, \ 715 const struct linux_sigevent *sevp); } 716 437 STD { int|linux_sys||mq_getsetattr(linux_mqd_t mqdes, \ 717 const struct linux_mq_attr *newattr, \ 718 struct linux_mq_attr *oldattr); } 719 438 STD { int|linux_sys||waitid(int idtype, id_t id, \ 720 linux_siginfo_t *infop, int options, \ 721 struct rusage50 *rusage); } 722 439 UNIMPL add_key 723 440 UNIMPL request_key 724 441 UNIMPL keyctl 725 442 UNIMPL ioprio_set 726 443 UNIMPL ioprio_get 727 444 STD { int|linux_sys||inotify_init(void); } 728 445 STD { int|linux_sys||inotify_add_watch(int fd, \ 729 const char *pathname, uint32_t mask); } 730 446 STD { int|linux_sys||inotify_rm_watch(int fd, int wd); } 731 447 UNIMPL fdatasync 732 448 UNIMPL kexec_load 733 449 UNIMPL migrate_pages 734 450 STD { int|linux_sys||openat(int fd, const char *path, \ 735 int flags, ... linux_umode_t mode); } 736 451 NOARGS { int|sys||mkdirat(int fd, const char *path, \ 737 linux_umode_t mode); } 738 452 STD { int|linux_sys||mknodat(int fd, const char *path, \ 739 linux_umode_t mode, unsigned dev); } 740 453 STD { int|linux_sys||fchownat(int fd, const char *path, \ 741 uid_t owner, gid_t group, int flag); } 742 454 UNIMPL futimesat 743 455 STD { int|linux_sys||fstatat64(int fd, const char *path, \ 744 struct linux_stat64 *sp, int flag); } 745 456 STD { int|linux_sys||unlinkat(int fd, const char *path, \ 746 int flag); } 747 457 NOARGS { int|sys||renameat(int fromfd, const char *from, \ 748 int tofd, const char *to); } 749 458 STD { int|linux_sys||linkat(int fd1, const char *name1, \ 750 int fd2, const char *name2, int flags); } 751 459 NOARGS { int|sys||symlinkat(const char *path1, int fd, \ 752 const char *path2); } 753 460 NOARGS { ssize_t|sys||readlinkat(int fd, const char *path, \ 754 char *buf, size_t bufsize); } 755 461 STD { int|linux_sys||fchmodat(int fd, const char *path, \ 756 linux_umode_t mode); } 757 462 STD { int|linux_sys||faccessat(int fd, const char *path, \ 758 int amode); } 759 463 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); } 763 464 STD { int|linux_sys||ppoll(struct pollfd *fds, u_int nfds, \ 764 struct linux_timespec *timeout, \ 765 linux_sigset_t *sigset); } 766 465 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 ; 772 466 NOARGS { int|sys||__futex_set_robust_list(void *head, \ 773 size_t len); } 774 467 NOARGS { int|sys||__futex_get_robust_list(lwpid_t lwpid, \ 775 void **headp, size_t *lenp); } 776 468 UNIMPL splice 777 469 STD { int|linux_sys||sync_file_range(int fd, \ 778 off_t offset, off_t nbytes, unsigned int flags); } 779 470 UNIMPL tee 780 471 UNIMPL vmsplice 781 472 UNIMPL move_pages 782 473 STD { int|linux_sys||getcpu(unsigned int *cpu, \ 783 unsigned int *node, \ 784 struct linux_getcpu_cache *tcache); } 785 474 STD { int|linux_sys||epoll_pwait(int epfd, \ 786 struct linux_epoll_event *events, int maxevents, \ 787 int timeout, const linux_sigset_t *sigmask); } 788 475 STD { int|linux_sys||utimensat(int fd, const char *path, \ 789 struct linux_timespec *times, int flag); } 790 476 UNIMPL signalfd 791 477 UNIMPL timerfd 792 478 STD { int|linux_sys||eventfd(unsigned int initval); } 793 479 STD { int|linux_sys||recvmmsg(int s, \ 794 struct linux_mmsghdr *msgvec, unsigned int vlen, \ 795 unsigned int flags, struct timespec *timeout); } 796 480 STD { int|linux_sys||fallocate(int fd, int mode, \ 797 off_t offset, off_t len); } 798 481 STD { int|linux_sys||timerfd_create(clockid_t clock_id, \ 799 int flags); } 800 482 STD { int|linux_sys||timerfd_settime(int fd, int flags, \ 801 const struct linux_itimerspec *tim, \ 802 struct linux_itimerspec *otim); } 803 483 STD { int|linux_sys||timerfd_gettime(int fd, \ 804 struct linux_itimerspec *tim); } 805 484 UNIMPL signalfd4 806 485 STD { int|linux_sys||eventfd2(unsigned int initval, \ 807 int flags); } 808 486 STD { int|linux_sys||epoll_create1(int flags); } 809 487 STD { int|linux_sys||dup3(int from, int to, int flags); } 810 488 STD { int|linux_sys||pipe2(int *pfds, int flags); } 811 489 STD { int|linux_sys||inotify_init1(int flags); } 812 490 STD { int|linux_sys||preadv(int fd, \ 813 const struct iovec *iovp, int iovcnt, \ 814 unsigned long off_lo, unsigned long off_hi); } 815 491 STD { int|linux_sys||pwritev(int fd, \ 816 const struct iovcnt *iovp, int iovcnt, \ 817 unsigned long off_lo, unsigned long off_hi); } 818 492 UNIMPL rt_tgsigqueueinfo 819 493 UNIMPL perf_counter_open 820 494 UNIMPL fanotify_init 821 495 UNIMPL fanotify_mark 822 496 STD { int|linux_sys||prlimit64(pid_t pid, int which, \ 823 struct rlimit *new_rlp, struct rlimit *old_rlp); } 824 497 UNIMPL name_to_handle_at 825 498 UNIMPL open_by_handle_at 826 499 UNIMPL clock_adjtime 827 500 STD { int|linux_sys||syncfs(int fd); } 828 501 UNIMPL setns 829 502 STD { int|linux_sys||accept4(int s, \ 830 struct osockaddr *name, \ 831 int *anamelen, int flags); } 832 503 STD { int|linux_sys||sendmmsg(int s, \ 833 struct linux_mmsghdr *msgvec, unsigned int vlen, \ 834 unsigned int flags); } 835 504 UNIMPL process_vm_readv 836 505 UNIMPL process_vm_writev 837 506 UNIMPL kcmp 838 507 UNIMPL finit_module 839 508 UNIMPL sched_setattr 840 509 UNIMPL sched_getattr 841 510 STD { int|linux_sys||renameat2(int fromfd, \ 842 const char *from, int tofd, const char *to, \ 843 unsigned int flags); } 844 511 UNIMPL 845 512 UNIMPL 846 513 UNIMPL 847 514 UNIMPL 848 515 UNIMPL 849 516 UNIMPL 850 517 UNIMPL 851 518 UNIMPL 852 519 STD { ssize_t|linux_sys||copy_file_range(int fd_in, \ 853 off_t * off_in, int fd_out, off_t * off_out, \ 854 size_t len, unsigned int flags); } 855 520 UNIMPL 856 521 UNIMPL 857 522 STD { int|linux_sys||statx(int fd, const char *path, \ 858 int flag, unsigned int mask, \ 859 struct linux_statx *sp); } 860 523 UNIMPL 861 524 UNIMPL 862 525 UNIMPL 863 526 UNIMPL 864 527 UNIMPL 865 528 UNIMPL 866 529 UNIMPL 867 530 UNIMPL 868 531 UNIMPL 869 532 UNIMPL 870 533 UNIMPL 871 534 UNIMPL 872 535 UNIMPL 873 536 UNIMPL 874 537 UNIMPL 875 538 UNIMPL 876 539 UNIMPL 877 540 UNIMPL 878 541 UNIMPL 879 542 UNIMPL 880 543 UNIMPL 881 544 UNIMPL 882 545 STD { int|linux_sys||clone3( \ 883 struct linux_user_clone3_args *cl_args, \ 884 size_t size); } 885 546 STD { int|linux_sys||close_range(unsigned int first, \ 886 unsigned int last, unsigned int flags); } 887 547 UNIMPL 888 548 UNIMPL 889 549 STD { int|linux_sys||faccessat2(int fd, const char *path, \ 890 int amode, int flags); } 891 550 UNIMPL 892 551 STD { int|linux_sys||epoll_pwait2(int epfd, \ 893 struct linux_epoll_event *events, int maxevents, \ 894 const struct linux_timespec *timeout, \ 895 const linux_sigset_t *sigmask); } 896