syscalls.master revision 1.2
1 $NetBSD: syscalls.master,v 1.2 2021/11/27 21:15:07 ryo Exp $ 2 3; NetBSD aarch64 COMPAT_LINUX32 system call name/number "master" file. 4; 5; The system call numbers are defined by $LINUXSRC/arch/arm/tools/syscall.tbl, 6; but linux/arm has multiple syscall tables, these are laid out 7; consecutively in this table. 8; See the comments at the bottom of this file for details. 9; 10; (See syscalls.conf to see what it is processed into.) 11; 12; Fields: number type [type-dependent ...] 13; number system call number, must be in order 14; type one of STD, OBSOL, UNIMPL, IGNORED, NODEF, NOARGS, or one of 15; the compatibility options defined in syscalls.conf. 16; 17; Optional fields are specified after the type field 18; (NOTE! they *must* be specified in this order): 19; MODULAR modname :attempt to autoload system call module if not present 20; RUMP: generate rump syscall entry point 21; 22; types: 23; STD always included 24; OBSOL obsolete, not included in system 25; IGNORED syscall is a null op, but always succeeds 26; UNIMPL unimplemented, not included in system 27; EXCL implemented, but not included in system 28; NODEF included, but don't define the syscall number 29; NOARGS included, but don't define the syscall args structure 30; INDIR included, but don't define the syscall args structure, 31; and allow it to be "really" varargs. 32; NOERR included, syscall does not set errno 33; EXTERN implemented, but as 3rd party module 34; 35; arguments: 36; PAD argument not part of the C interface, used only for padding 37; 38; The compat options are defined in the syscalls.conf file, and the 39; compat option name is prefixed to the syscall name. Other than 40; that, they're like NODEF (for 'compat' options), or STD (for 41; 'libcompat' options). 42; 43; The type-dependent arguments are as follows: 44; For STD, NODEF, NOARGS, and compat syscalls: 45; { return_type|prefix|compat(optional)|basename(pseudo-proto); } [alias] 46; For other syscalls: 47; [comment] 48; 49; #ifdef's, etc. may be included, and are copied to the output files. 50; #include's are copied to the syscall names and switch definition files only. 51 52#include <sys/param.h> 53#include <sys/syscallargs.h> 54 55#include <machine/netbsd32_machdep.h> 56 57#include <compat/netbsd32/netbsd32.h> 58#include <compat/netbsd32/netbsd32_syscallargs.h> 59 60#include <compat/linux/common/linux_types.h> 61#include <compat/linux/common/linux_mmap.h> 62#include <compat/linux/common/linux_signal.h> 63#include <compat/linux/common/linux_siginfo.h> 64#include <compat/linux/common/linux_machdep.h> 65#include <compat/linux/common/linux_ipc.h> 66#include <compat/linux/common/linux_sem.h> 67#include <compat/linux/linux_syscallargs.h> 68 69#include <compat/linux32/common/linux32_types.h> 70#include <compat/linux32/common/linux32_signal.h> 71#include <compat/linux32/common/linux32_socketcall.h> 72#include <compat/linux32/arch/aarch64/linux32_missing.h> 73#include <compat/linux32/linux32_syscallargs.h> 74 75%% 76 770 NOARGS { int|linux_sys||nosys(void); } syscall 781 STD { int|linux32_sys||exit(int rval); } 792 NOARGS { int|sys||fork(void); } 803 NOARGS { netbsd32_ssize_t|netbsd32||read(int fd, \ 81 netbsd32_voidp buf, netbsd32_size_t nbyte); } 824 NOARGS { netbsd32_ssize_t|netbsd32||write(int fd, \ 83 netbsd32_voidp buf, netbsd32_size_t nbyte); } 845 STD { int|linux32_sys||open(netbsd32_charp path, int flags, \ 85 linux_umode_t mode); } 866 NOARGS { int|netbsd32||close(int fd); } 877 STD { int|linux32_sys||waitpid(int pid, netbsd32_intp status, \ 88 int options);} 898 STD { int|linux32_sys||creat(netbsd32_charp path, \ 90 linux_umode_t mode); } 919 NOARGS { int|netbsd32||link(netbsd32_charp path, \ 92 netbsd32_charp link); } 9310 STD { int|linux32_sys||unlink(netbsd32_charp path); } 9411 NOARGS { int|netbsd32||execve(netbsd32_charp path, \ 95 netbsd32_charpp argp, netbsd32_charpp envp); } 9612 NOARGS { int|netbsd32||chdir(netbsd32_charp path); } 9713 STD { int|linux32_sys||time(linux32_timep_t t); } 9814 STD { int|linux32_sys||mknod(netbsd32_charp path, \ 99 linux_umode_t mode, unsigned dev); } 10015 NOARGS { int|netbsd32||chmod(netbsd32_charp path, \ 101 linux_umode_t mode); } 10216 STD { int|linux32_sys||lchown16(netbsd32_charp path, \ 103 linux32_uid16_t uid, linux32_gid16_t gid); } 10417 OBSOL break 10518 OBSOL ostat 10619 NOARGS { netbsd32_long|compat_43_netbsd32||olseek(int fd, \ 107 netbsd32_long offset, int whence); } 10820 NOARGS { pid_t|sys||getpid(void); } 10921 UNIMPL mount 11022 UNIMPL umount 11123 NOARGS linux_setuid16 { int|netbsd32||setuid(uid_t uid); } 11224 NOARGS linux_getuid16 { uid_t|sys||getuid(void); } 11325 STD { int|linux32_sys||stime(linux32_timep_t t); } 11426 STD { int|linux32_sys||ptrace(int request, int pid, \ 115 int addr, int data); } 11627 STD { int|linux32_sys||alarm(unsigned int secs); } 11728 OBSOL ofstat 11829 NOARGS { int|linux_sys||pause(void); } 11930 STD { int|linux32_sys||utime(netbsd32_charp path, \ 120 linux32_utimbufp_t times); } 12131 OBSOL stty 12232 OBSOL gtty 12333 NOARGS { int|netbsd32||access(netbsd32_charp path, \ 124 int flags); } 12534 STD { int|linux32_sys||nice(int incr); } 12635 OBSOL ftime 12736 NOARGS { int|sys||sync(void); } 12837 STD { int|linux32_sys||kill(int pid, int signum); } 12938 NOARGS { int|netbsd32||__posix_rename(netbsd32_charp from, \ 130 netbsd32_charp to); } 13139 NOARGS { int|netbsd32||mkdir(netbsd32_charp path, \ 132 linux_umode_t mode); } 13340 NOARGS { int|netbsd32||rmdir(netbsd32_charp path); } 13441 NOARGS { int|netbsd32||dup(int fd); } 13542 STD { int|linux32_sys||pipe(netbsd32_intp fd); } 13643 STD { int|linux32_sys||times(linux32_tmsp_t tms); } 13744 OBSOL prof 13845 STD { int|linux32_sys||brk(netbsd32_charp nsize); } 13946 NOARGS linux_setgid16 { int|netbsd32||setgid(gid_t gid); } 14047 NOARGS linux_getgid16 { gid_t|sys||getgid(void); } 14148 STD { int|linux32_sys||signal(int signum, \ 142 linux32_handlerp_t handler); } 14349 NOARGS linux_geteuid16 { uid_t|sys||geteuid(void); } 14450 NOARGS linux_getegid16 { gid_t|sys||getegid(void); } 14551 NOARGS { int|netbsd32||acct(netbsd32_charp path); } 14652 OBSOL phys 14753 OBSOL lock 14854 STD { int|linux32_sys||ioctl(int fd, netbsd32_u_long com, \ 149 netbsd32_charp data); } 15055 STD { int|linux32_sys||fcntl(int fd, \ 151 int cmd, netbsd32_voidp arg); } 15256 OBSOL mpx 15357 NOARGS { int|netbsd32||setpgid(int pid, int pgid); } 15458 OBSOL ulimit 15559 STD { int|linux32_sys||oldolduname( \ 156 linux32_oldold_utsnamep_t up); } 15760 NOARGS { int|netbsd32||umask(int newmask); } 15861 NOARGS { int|netbsd32||chroot(netbsd32_charp path); } 15962 UNIMPL ustat 16063 NOARGS { int|netbsd32||dup2(int from, int to); } 16164 NOARGS { pid_t|sys||getppid(void); } 16265 NOARGS { int|sys||getpgrp(void); } 16366 NOARGS { int|sys||setsid(void); } 16467 UNIMPL sigaction 16568 STD { int|linux32_sys||siggetmask(void); } 16669 STD { int|linux32_sys||sigsetmask(linux32_old_sigset_t mask); } 16770 STD { int|linux32_sys||setreuid16(linux32_uid16_t ruid, \ 168 linux32_uid16_t euid); } 16971 STD { int|linux32_sys||setregid16(linux32_gid16_t rgid, \ 170 linux32_gid16_t egid); } 17172 UNIMPL sigsuspend 17273 UNIMPL sigpending 17374 NOARGS { int|compat_43_netbsd32||osethostname( \ 174 netbsd32_charp hostname, u_int len); } 17575 STD { int|linux32_sys||setrlimit(u_int which, \ 176 netbsd32_orlimitp_t rlp); } 17776 STD { int|linux32_sys||getrlimit(u_int which, \ 178 netbsd32_orlimitp_t rlp); } 17977 NOARGS { int|compat_50_netbsd32||getrusage(int who, \ 180 netbsd32_rusage50p_t rusage); } 18178 STD { int|linux32_sys||gettimeofday(netbsd32_timeval50p_t tp, \ 182 netbsd32_timezonep_t tzp); } 18379 STD { int|linux32_sys||settimeofday(netbsd32_timeval50p_t tp, \ 184 netbsd32_timezonep_t tzp); } 18580 STD { int|linux32_sys||getgroups16(int gidsetsize, \ 186 linux32_gid16p_t gidset); } 18781 STD { int|linux32_sys||setgroups16(int gidsetsize, \ 188 linux32_gid16p_t gidset); } 18982 STD { int|linux32_sys||oldselect(linux32_oldselectp_t lsp); } 19083 NOARGS { int|netbsd32||symlink(netbsd32_charp path, \ 191 netbsd32_charp link); } 19284 NOARGS { int|compat_43_netbsd32||lstat43(netbsd32_charp \ 193 path, netbsd32_stat43p_t ub); } 19485 NOARGS { int|netbsd32||readlink(netbsd32_charp path, \ 195 netbsd32_charp buf, netbsd32_size_t count); } 19686 UNIMPL uselib 19787 STD { int|linux32_sys||swapon(netbsd32_charp name); } 19888 STD { int|linux32_sys||reboot(int magic1, int magic2, int cmd, \ 199 netbsd32_voidp arg); } 20089 STD { int|linux32_sys||readdir(int fd, netbsd32_voidp dent, \ 201 unsigned int count); } 20290 STD { int|linux32_sys||old_mmap(linux32_oldmmapp lmp); } 20391 NOARGS { int|netbsd32||munmap(netbsd32_voidp addr, \ 204 netbsd32_size_t len); } 20592 NOARGS { int|compat_43_netbsd32||otruncate(netbsd32_charp path, \ 206 netbsd32_long length); } 20793 NOARGS { int|compat_43_netbsd32||oftruncate(int fd, \ 208 netbsd32_long length); } 20994 NOARGS { int|netbsd32||fchmod(int fd, linux_umode_t mode); } 21095 STD { int|linux32_sys||fchown16(int fd, linux32_uid16_t uid, \ 211 linux32_gid16_t gid); } 21296 STD { int|linux32_sys||getpriority(int which, int who); } 21397 NOARGS { int|netbsd32||setpriority(int which, int who, int prio); } 21498 NOARGS { int|netbsd32||profil(netbsd32_voidp samples, \ 215 netbsd32_size_t size, netbsd32_u_long offset, \ 216 u_int scale); } 21799 STD { int|linux32_sys||statfs(netbsd32_charp path, \ 218 linux32_statfsp sp); } 219100 STD { int|linux32_sys||fstatfs(int fd, linux32_statfsp sp); } 220101 UNIMPL ioperm 221102 STD { int|linux32_sys||socketcall(int what, netbsd32_voidp args); } 222103 UNIMPL syslog 223104 NOARGS { int|compat_50_netbsd32||setitimer(int which, \ 224 netbsd32_itimerval50p_t itv, \ 225 netbsd32_itimerval50p_t oitv); } 226105 NOARGS { int|compat_50_netbsd32||getitimer(int which, \ 227 netbsd32_itimerval50p_t itv); } 228106 STD { int|linux32_sys||stat(netbsd32_charp path, \ 229 linux32_statp sp); } 230107 STD { int|linux32_sys||lstat(netbsd32_charp path, \ 231 linux32_statp sp); } 232108 STD { int|linux32_sys||fstat(int fd, \ 233 linux32_statp sp); } 234109 STD { int|linux32_sys||olduname(linux32_oldutsnamep_t up); } 235110 UNIMPL iopl 236111 UNIMPL vhangup 237112 UNIMPL idle 238113 UNIMPL syscall 239114 STD { int|linux32_sys||wait4(int pid, netbsd32_intp status, \ 240 int options, netbsd32_rusage50p_t rusage); } 241115 STD { int|linux32_sys||swapoff(netbsd32_charp path); } 242116 STD { int|linux32_sys||sysinfo(linux32_sysinfop_t arg); } 243117 STD { int|linux32_sys||ipc(int what, int a1, int a2, int a3, \ 244 netbsd32_voidp ptr); } 245118 NOARGS { int|netbsd32||fsync(int fd); } 246119 STD { int|linux32_sys||sigreturn(linux32_sigcontextp_t scp); } 247120 STD { int|linux32_sys||clone(int flags, netbsd32_voidp stack, \ 248 netbsd32_voidp parent_tidptr, netbsd32_voidp tls, \ 249 netbsd32_voidp child_tidptr); } 250121 STD { int|linux32_sys||setdomainname(netbsd32_charp domainname, \ 251 int len); } 252122 STD { int|linux32_sys||uname(linux32_utsnamep up); } 253123 UNIMPL modify_ldt 254124 UNIMPL adjtimex 255125 STD { int|linux32_sys||mprotect(netbsd32_voidp start, \ 256 netbsd32_size_t len, int prot); } 257126 UNIMPL sigprocmask 258127 UNIMPL create_module 259128 UNIMPL init_module 260129 UNIMPL delete_module 261130 UNIMPL get_kernel_syms 262131 UNIMPL quotactl 263132 NOARGS { int|netbsd32||getpgid(pid_t pid); } 264133 NOARGS { int|netbsd32||fchdir(int fd); } 265134 UNIMPL bdflush 266135 UNIMPL sysfs 267136 STD { int|linux32_sys||personality(netbsd32_u_long per); } 268137 UNIMPL afs_syscall 269138 NOARGS setfsuid16 { int|linux32_sys||setfsuid(uid_t uid); } 270139 NOARGS setfsgid16 { int|linux32_sys||setfsgid(gid_t gid); } 271140 STD { int|linux32_sys||llseek(int fd, u_int32_t ohigh, \ 272 u_int32_t olow, netbsd32_voidp res, int whence); } 273141 STD { int|linux32_sys||getdents(int fd, \ 274 linux32_direntp_t dent, unsigned int count); } 275142 STD { int|linux32_sys||select(int nfds, \ 276 netbsd32_fd_setp_t readfds, \ 277 netbsd32_fd_setp_t writefds, \ 278 netbsd32_fd_setp_t exceptfds, \ 279 netbsd32_timeval50p_t timeout); } 280143 NOARGS { int|netbsd32||flock(int fd, int how); } 281144 NOARGS { int|netbsd32|13|msync(netbsd32_voidp addr, \ 282 netbsd32_size_t len, int flags); } 283145 NOARGS { int|netbsd32||readv(int fd, \ 284 netbsd32_iovecp_t iovp, int iovcnt); } 285146 NOARGS { netbsd32_ssize_t|netbsd32||writev(int fd, \ 286 netbsd32_iovecp_t iovp, int iovcnt); } 287147 NOARGS { pid_t|netbsd32||getsid(pid_t pid); } 288148 STD { int|linux32_sys||fdatasync(int fd); } 289149 STD { int|linux32_sys||__sysctl(linux32___sysctlp_t lsp); } 290150 NOARGS { int|netbsd32||mlock(netbsd32_voidp addr, \ 291 netbsd32_size_t len); } 292151 NOARGS { int|netbsd32||munlock(netbsd32_voidp addr, \ 293 netbsd32_size_t len); } 294152 NOARGS { int|netbsd32||mlockall(int flags); } 295153 NOARGS { int|sys||munlockall(void); } 296154 STD { int|linux32_sys||sched_setparam(pid_t pid, \ 297 const linux32_sched_paramp_t sp); } 298155 STD { int|linux32_sys||sched_getparam(pid_t pid, \ 299 linux32_sched_paramp_t sp); } 300156 STD { int|linux32_sys||sched_setscheduler(pid_t pid, \ 301 int policy, linux32_sched_paramp_t sp); } 302157 STD { int|linux32_sys||sched_getscheduler(pid_t pid); } 303158 NOARGS { int|linux_sys||sched_yield(void); } 304159 STD { int|linux32_sys||sched_get_priority_max(int policy); } 305160 STD { int|linux32_sys||sched_get_priority_min(int policy); } 306161 UNIMPL sched_rr_get_interval 307162 STD { int|linux32_sys||nanosleep(linux32_timespecp_t rqtp, \ 308 linux32_timespecp_t rmtp); } 309163 STD { int|linux32_sys||mremap(netbsd32_voidp old_address, \ 310 netbsd32_size_t old_size, netbsd32_size_t new_size, \ 311 netbsd32_u_long flags); } 312164 STD { int|linux32_sys||setresuid16(linux32_uid16_t ruid, \ 313 linux32_uid16_t euid, linux32_uid16_t suid); } 314165 STD { int|linux32_sys||getresuid16(linux32_uid16p_t ruid, \ 315 linux32_uid16p_t euid, linux32_uid16p_t suid); } 316166 UNIMPL vm86 317167 UNIMPL query_module 318168 NOARGS { int|netbsd32||poll(netbsd32_pollfdp_t fds, u_int nfds, \ 319 int timeout); } 320169 UNIMPL nfsservctl 321170 STD { int|linux32_sys||setresgid16(linux32_gid16_t rgid, \ 322 linux32_gid16_t egid, linux32_gid16_t sgid); } 323171 STD { int|linux32_sys||getresgid16(linux32_gid16p_t rgid, \ 324 linux32_gid16p_t egid, linux32_gid16p_t sgid); } 325172 UNIMPL prctl 326173 STD { int|linux32_sys||rt_sigreturn(linux32_ucontextp_t ucp); } 327174 STD { int|linux32_sys||rt_sigaction(int signum, \ 328 linux32_sigactionp_t nsa, \ 329 linux32_sigactionp_t osa, \ 330 netbsd32_size_t sigsetsize); } 331175 STD { int|linux32_sys||rt_sigprocmask(int how, \ 332 linux32_sigsetp_t set, \ 333 linux32_sigsetp_t oset, \ 334 netbsd32_size_t sigsetsize); } 335176 STD { int|linux32_sys||rt_sigpending(linux32_sigsetp_t set, \ 336 netbsd32_size_t sigsetsize); } 337177 STD { int|linux32_sys||rt_sigtimedwait( \ 338 const linux32_sigsetp_t set, \ 339 linux32_siginfop_t info, \ 340 const linux32_timespecp_t timeout); } 341178 STD { int|linux32_sys||rt_queueinfo(int pid, int sig, \ 342 linux32_siginfop_t uinfo); } 343179 STD { int|linux32_sys||rt_sigsuspend(linux32_sigsetp_t unewset, \ 344 netbsd32_size_t sigsetsize); } 345180 STD { netbsd32_ssize_t|linux32_sys||pread(int fd, \ 346 netbsd32_voidp buf, netbsd32_size_t nbyte, \ 347 netbsd32_off_t offset); } 348181 STD { netbsd32_ssize_t|linux32_sys||pwrite(int fd, \ 349 netbsd32_voidp buf, netbsd32_size_t nbyte, \ 350 netbsd32_off_t offset); } 351182 STD { int|linux32_sys||chown16(netbsd32_charp path, \ 352 linux32_uid16_t uid, linux32_gid16_t gid); } 353183 NOARGS { int|netbsd32||__getcwd(netbsd32_charp bufp, \ 354 netbsd32_size_t length); } 355184 UNIMPL capget 356185 UNIMPL capset 357186 UNIMPL sigaltstack 358187 UNIMPL sendfile 359188 UNIMPL getpmsg 360189 UNIMPL putpmsg 361190 NOARGS { int|sys|14|vfork(void); } 362191 STD { int|linux32_sys||ugetrlimit(int which, \ 363 netbsd32_orlimitp_t rlp); } 364192 STD { linux32_off_t|linux32_sys||mmap2(netbsd32_u_long addr, \ 365 netbsd32_size_t len, int prot, int flags, int fd, \ 366 linux32_off_t offset); } 367193 STD { int|linux32_sys||truncate64(netbsd32_charp path, \ 368 uint32_t lenlo, uint32_t lenhi); } 369194 STD { int|linux32_sys||ftruncate64(unsigned int fd, \ 370 uint32_t lenlo, uint32_t lenhi); } 371195 STD { int|linux32_sys||stat64(netbsd32_charp path, \ 372 linux32_stat64p sp); } 373196 STD { int|linux32_sys||lstat64(netbsd32_charp path, \ 374 linux32_stat64p sp); } 375197 STD { int|linux32_sys||fstat64(int fd, \ 376 linux32_stat64p sp); } 377198 NOARGS { int|netbsd32||__posix_lchown(netbsd32_charp path, \ 378 uid_t uid, gid_t gid); } 379199 NOARGS { uid_t|sys||getuid(void); } 380200 NOARGS { gid_t|sys||getgid(void); } 381201 NOARGS { uid_t|sys||geteuid(void); } 382202 NOARGS { gid_t|sys||getegid(void); } 383203 NOARGS { int|netbsd32||setreuid(uid_t ruid, uid_t euid); } 384204 NOARGS { int|netbsd32||setregid(gid_t rgid, gid_t egid); } 385205 NOARGS { int|netbsd32||getgroups(int gidsetsize, \ 386 netbsd32_gid_tp gidset); } 387206 NOARGS { int|netbsd32||setgroups(int gidsetsize, \ 388 netbsd32_gid_tp gidset); } 389207 NOARGS { int|netbsd32||__posix_fchown(int fd, uid_t uid, gid_t gid); } 390208 STD { int|linux32_sys||setresuid(uid_t ruid, uid_t euid, \ 391 uid_t suid); } 392209 STD { int|linux32_sys||getresuid(linux32_uidp_t ruid, \ 393 linux32_uidp_t euid, linux32_uidp_t suid); } 394210 STD { int|linux32_sys||setresgid(gid_t rgid, gid_t egid, \ 395 gid_t sgid); } 396211 STD { int|linux32_sys||getresgid(linux32_gidp_t rgid, \ 397 linux32_gidp_t egid, linux32_gidp_t sgid); } 398212 NOARGS { int|netbsd32||__posix_chown(netbsd32_charp path, \ 399 uid_t uid, gid_t gid); } 400213 NOARGS { int|netbsd32||setuid(uid_t uid); } 401214 NOARGS { int|netbsd32||setgid(gid_t gid); } 402215 STD { int|linux32_sys||setfsuid(uid_t uid); } 403216 STD { int|linux32_sys||setfsgid(gid_t gid); } 404217 STD { int|linux32_sys||getdents64(int fd, \ 405 linux32_dirent64p_t dent, unsigned int count); } 406218 UNIMPL pivot_root 407219 NOARGS { int|netbsd32||mincore(netbsd32_voidp addr, \ 408 netbsd32_size_t len, netbsd32_charp vec); } 409220 NOARGS { int|netbsd32||madvise(netbsd32_voidp addr, \ 410 netbsd32_size_t len, int behav); } 411; fcntl64() - Exactly the same as fcntl() 412#define linux32_sys_fcntl64 linux32_sys_fcntl 413#define linux32_sys_fcntl64_args linux32_sys_fcntl_args 414221 NOARGS { int|linux32_sys||fcntl64(int fd, \ 415 int cmd, netbsd32_voidp arg); } 416222 UNIMPL /* unused */ 417223 UNIMPL /* unused */ 418224 NOARGS { pid_t|linux_sys||gettid(void); } 419225 UNIMPL readahead 420226 NOARGS { int|netbsd32||setxattr(netbsd32_charp path, \ 421 netbsd32_charp name, netbsd32_voidp value, \ 422 netbsd32_size_t size, int flags); } 423227 NOARGS { int|netbsd32||lsetxattr(netbsd32_charp path, \ 424 netbsd32_charp name, netbsd32_voidp value, \ 425 netbsd32_size_t size, int flags); } 426228 NOARGS { int|netbsd32||fsetxattr(int fd, netbsd32_charp name, \ 427 netbsd32_voidp value, netbsd32_size_t size, int flags); } 428229 NOARGS { ssize_t|netbsd32||getxattr(netbsd32_charp path, \ 429 netbsd32_charp name, netbsd32_voidp value, \ 430 netbsd32_size_t size); } 431230 NOARGS { ssize_t|netbsd32||lgetxattr(netbsd32_charp path, \ 432 netbsd32_charp name, netbsd32_voidp value, \ 433 netbsd32_size_t size); } 434231 NOARGS { ssize_t|netbsd32||fgetxattr(int fd, netbsd32_charp name, \ 435 netbsd32_voidp value, netbsd32_size_t size); } 436232 NOARGS { ssize_t|netbsd32||listxattr(netbsd32_charp path, \ 437 netbsd32_charp list, netbsd32_size_t size); } 438233 NOARGS { ssize_t|netbsd32||llistxattr(netbsd32_charp path, \ 439 netbsd32_charp list, netbsd32_size_t size); } 440234 NOARGS { ssize_t|netbsd32||flistxattr(int fd, netbsd32_charp list, \ 441 netbsd32_size_t size); } 442235 NOARGS { int|netbsd32||removexattr(netbsd32_charp path, \ 443 netbsd32_charp name); } 444236 NOARGS { int|netbsd32||lremovexattr(netbsd32_charp path, \ 445 netbsd32_charp name); } 446237 NOARGS { int|netbsd32||fremovexattr(int fd, netbsd32_charp name); } 447238 STD { int|linux32_sys||tkill(int tid, int sig); } 448239 UNIMPL sendfile64 449240 STD { int|linux32_sys||futex(linux32_intp_t uaddr, int op, \ 450 int val, linux32_timespecp_t timeout, \ 451 linux32_intp_t uaddr2, int val3); } 452241 STD { int|linux32_sys||sched_setaffinity(pid_t pid, \ 453 unsigned int len, linux32_ulongp_t mask); } 454242 STD { int|linux32_sys||sched_getaffinity(pid_t pid, \ 455 unsigned int len, linux32_ulongp_t mask); } 456243 UNIMPL io_setup 457244 UNIMPL io_destroy 458245 UNIMPL io_getevents 459246 UNIMPL io_submit 460247 UNIMPL io_cancel 461248 STD { int|linux32_sys||exit_group(int error_code); } 462249 UNIMPL lookup_dcookie 463250 UNIMPL epoll_create 464251 UNIMPL epoll_ctl 465252 UNIMPL epoll_wait 466253 UNIMPL remap_file_pages 467254 UNIMPL set_thread_area 468255 UNIMPL get_thread_area 469256 STD { int|linux32_sys||set_tid_address(linux32_intp_t tid); } 470257 STD { int|linux32_sys||timer_create(clockid_t clockid, \ 471 struct linux32_sigevent *evp, timer_t *timerid); } 472258 STD { int|linux32_sys||timer_settime(timer_t timerid, \ 473 int flags, const struct linux32_itimerspec *tim, \ 474 struct linux32_itimerspec *otim); } 475259 STD { int|linux32_sys||timer_gettime(timer_t timerid, \ 476 struct linux32_itimerspec *tim); } 477260 NOARGS { int|sys||timer_getoverrun(timer_t timerid); } 478261 NOARGS { int|sys||timer_delete(timer_t timerid); } 479262 STD { int|linux32_sys||clock_settime(clockid_t which, \ 480 linux32_timespecp_t tp); } 481263 STD { int|linux32_sys||clock_gettime(clockid_t which, \ 482 linux32_timespecp_t tp); } 483264 STD { int|linux32_sys||clock_getres(clockid_t which, \ 484 linux32_timespecp_t tp); } 485265 STD { int|linux32_sys||clock_nanosleep(clockid_t which, int flags, \ 486 linux32_timespecp_t rqtp, linux32_timespecp_t rmtp); } 487266 STD { int|linux32_sys||statfs64(netbsd32_charp path, \ 488 netbsd32_size_t sz, linux32_statfs64p sp); } 489267 STD { int|linux32_sys||fstatfs64(int fd, \ 490 netbsd32_size_t sz, linux32_statfs64p sp); } 491268 STD { int|linux32_sys||tgkill(int tgid, int tid, int sig); } 492269 NOARGS { int|compat_50_netbsd32||utimes(netbsd32_charp path, \ 493 netbsd32_timeval50p_t tptr); } 494270 STD { int|linux32_sys||fadvise64_64(int fd, uint32_t offlo, \ 495 uint32_t offhi, uint32_t lenlo, uint32_t lenhi, \ 496 int advice); } 497271 UNIMPL pciconfig_iobase 498272 UNIMPL pciconfig_read 499273 UNIMPL pciconfig_write 500274 UNIMPL mq_open 501275 UNIMPL mq_unlink 502276 UNIMPL mq_timedsend 503277 UNIMPL mq_timedreceive 504278 UNIMPL mq_notify 505279 UNIMPL mq_getsetattr 506280 UNIMPL waitid 507281 NOARGS { int|linux32_sys||socket(int domain, int type, \ 508 int protocol); } 509282 NOARGS { int|linux32_sys||bind(int s, netbsd32_osockaddrp_t name, \ 510 int namelen); } 511283 NOARGS { int|linux32_sys||connect(int s, netbsd32_osockaddrp_t name, \ 512 int namelen); } 513284 UNIMPL listen 514285 NOARGS { int|linux32_sys||accept(int s, netbsd32_osockaddrp_t name, \ 515 netbsd32_intp anamelen); } 516286 NOARGS { int|linux32_sys||getsockname(int fdec, netbsd32_charp asa, \ 517 netbsd32_intp alen); } 518287 NOARGS { int|linux32_sys||getpeername(int fdes, \ 519 netbsd32_sockaddrp_t asa, netbsd32_intp alen); } 520288 NOARGS { int|linux32_sys||socketpair(int domain, int type, \ 521 int protocol, netbsd32_intp rsv); } 522289 NOARGS { int|linux32_sys||send(int s, netbsd32_voidp buf, int len, \ 523 int flags); } 524290 NOARGS { int|linux32_sys||sendto(int s, netbsd32_voidp msg, int len, \ 525 int flags, netbsd32_osockaddrp_t to, int tolen); } 526291 NOARGS { int|linux32_sys||recv(int s, netbsd32_voidp buf, int len, \ 527 int flags); } 528292 NOARGS { int|linux32_sys||recvfrom(int s, netbsd32_voidp buf, \ 529 netbsd32_size_t len, int flags, \ 530 netbsd32_osockaddrp_t from, netbsd32_intp fromlenaddr); } 531293 UNIMPL shutdown 532294 NOARGS { int|linux32_sys||setsockopt(int s, int level, int optname, \ 533 netbsd32_voidp optval, int optlen); } 534295 NOARGS { int|linux32_sys||getsockopt(int s, int level, int optname, \ 535 netbsd32_voidp optval, netbsd32_intp optlen); } 536296 UNIMPL sendmsg 537297 UNIMPL recvmsg 538298 UNIMPL semop 539299 UNIMPL semget 540300 UNIMPL semctl 541301 UNIMPL msgsnd 542302 UNIMPL msgrcv 543303 UNIMPL msgget 544304 UNIMPL msgctl 545305 UNIMPL shmat 546306 UNIMPL shmdt 547307 UNIMPL shmget 548308 UNIMPL shmctl 549309 UNIMPL add_key 550310 UNIMPL request_key 551311 UNIMPL keyctl 552312 UNIMPL semtimedop 553313 UNIMPL vserver 554314 UNIMPL ioptio_set 555315 UNIMPL ioptio_get 556316 UNIMPL inotify_init 557317 UNIMPL inotify_add_watch 558318 UNIMPL inotify_rm_watch 559319 UNIMPL mbind 560320 UNIMPL get_mempolicy 561321 UNIMPL set_mempolicy 562322 STD { int|linux32_sys||openat(int fd, netbsd32_charp path, \ 563 int flags, ... linux_umode_t mode); } 564323 NOARGS { int|netbsd32||mkdirat(int fd, netbsd32_charp path, \ 565 linux_umode_t mode); } 566324 STD { int|linux32_sys||mknodat(int fd, netbsd32_charp path, \ 567 linux_umode_t mode, unsigned dev); } 568325 STD { int|linux32_sys||fchownat(int fd, netbsd32_charp path, \ 569 uid_t owner, gid_t group, int flag); } 570326 UNIMPL futimesat 571327 STD { int|linux32_sys||fstatat64(int fd, netbsd32_charp path, \ 572 linux32_stat64p sp, int flag); } 573328 STD { int|linux32_sys||unlinkat(int fd, netbsd32_charp path, \ 574 int flag); } 575329 NOARGS { int|netbsd32||renameat(int fromfd, netbsd32_charp from, \ 576 int tofd, netbsd32_charp to); } 577330 STD { int|linux32_sys||linkat(int fd1, netbsd32_charp name1, \ 578 int fd2, netbsd32_charp name2, int flags); } 579331 NOARGS { int|netbsd32||symlinkat(netbsd32_charp path1, int fd, \ 580 netbsd32_charp path2); } 581332 NOARGS { int|netbsd32||readlinkat(int fd, netbsd32_charp path, \ 582 netbsd32_charp buf, linux32_size_t bufsize); } 583333 STD { int|linux32_sys||fchmodat(int fd, netbsd32_charp path, \ 584 linux_umode_t mode); } 585334 STD { int|linux32_sys||faccessat(int fd, netbsd32_charp path, \ 586 int amode); } 587335 STD { int|linux32_sys||pselect6(int nfds, \ 588 netbsd32_fd_setp_t readfds, \ 589 netbsd32_fd_setp_t writefds, \ 590 netbsd32_fd_setp_t exceptfds, \ 591 linux32_timespecp_t timeout, \ 592 linux32_sized_sigsetp_t ss); } 593336 STD { int|linux32_sys||ppoll(netbsd32_pollfdp_t fds, u_int nfds, \ 594 linux32_timespecp_t timeout, linux32_sigsetp_t sigset); } 595337 UNIMPL unshare 596 ; 597 ; The netbsd32 native robust list calls have different 598 ; argument names / types, but they are ABI-compatible 599 ; with linux32. 600 ; 601338 NOARGS { int|netbsd32||__futex_set_robust_list( \ 602 netbsd32_voidp head, netbsd32_size_t len); } 603339 NOARGS { int|netbsd32||__futex_get_robust_list(lwpid_t lwpid, \ 604 netbsd32_voidp headp, netbsd32_size_tp lenp); } 605340 UNIMPL splice 606341 UNIMPL sync_file_range 607342 UNIMPL tee 608343 UNIMPL vmsplice 609344 UNIMPL move_pages 610345 UNIMPL getcpu 611346 UNIMPL epoll_wait 612347 UNIMPL kexec_load 613348 STD { int|linux32_sys||utimensat(int fd, netbsd32_charp path, \ 614 linux32_timespecp_t times, int flag); } 615349 UNIMPL signalfd 616350 NOARGS { int|linux_sys||timerfd_create(clockid_t clock_id, \ 617 int flags); } 618351 STD { int|linux32_sys||eventfd(unsigned int initval); } 619352 STD { int|linux32_sys||fallocate(int fd, int mode, \ 620 off_t offset, off_t len); } 621353 STD { int|linux32_sys||timerfd_settime(int fd, int flags, \ 622 const struct linux32_itimerspec *tim, \ 623 struct linux32_itimerspec *otim); } 624354 STD { int|linux32_sys||timerfd_gettime(int fd, \ 625 struct linux32_itimerspec *tim); } 626355 UNIMPL signalfd4 627356 STD { int|linux32_sys||eventfd2(unsigned int initval, \ 628 int flags); } 629357 UNIMPL epoll_create1 630358 STD { int|linux32_sys||dup3(int from, int to, int flags); } 631359 STD { int|linux32_sys||pipe2(netbsd32_intp fd, int flags); } 632360 UNIMPL inotify_init1 633361 STD { int|linux32_sys||preadv(int fd, \ 634 const netbsd32_iovecp_t iovp, int iovcnt, \ 635 netbsd32_u_long off_lo, netbsd32_u_long off_hi); } 636362 STD { int|linux32_sys||pwritev(int fd, \ 637 const netbsd32_iovecp_t iovp, int iovcnt, \ 638 netbsd32_u_long off_lo, netbsd32_u_long off_hi); } 639363 UNIMPL rt_tgsigqueueinfo 640364 UNIMPL perf_counter_open 641365 UNIMPL recvmmsg 642366 UNIMPL accept4 643367 UNIMPL fanotify_init 644368 UNIMPL fanotify_mark 645369 UNIMPL prlimit64 646370 UNIMPL name_to_handle_at 647371 UNIMPL open_by_handle_at 648372 UNIMPL clock_adjtime 649373 UNIMPL syncfs 650374 UNIMPL sendmmsg 651375 UNIMPL setns 652376 UNIMPL process_vm_readv 653377 UNIMPL process_vm_writev 654378 UNIMPL kcmp 655379 UNIMPL finit_module 656380 UNIMPL sched_setattr 657381 UNIMPL sched_getattr 658382 UNIMPL renameat2 659383 UNIMPL seccomp 660384 NOARGS { netbsd32_ssize_t|netbsd32||getrandom( \ 661 netbsd32_voidp buf, netbsd32_size_t buflen, \ 662 unsigned int flags); } 663385 UNIMPL memfd_create 664386 UNIMPL bpf 665387 UNIMPL execveat 666388 UNIMPL userfaultfd 667389 UNIMPL membarrier 668390 UNIMPL mlock2 669391 UNIMPL copy_file_range 670392 UNIMPL preadv2 671393 UNIMPL pwritev2 672394 UNIMPL pkey_mprotect 673395 UNIMPL pkey_alloc 674396 UNIMPL pkey_free 675397 STD { int|linux32_sys||statx(int fd, netbsd32_charp path, \ 676 int flag, unsigned int mask, linux32_statxp sp); } 677398 UNIMPL rseq 678399 UNIMPL io_pgetevents 679400 UNIMPL migrate_pages 680401 UNIMPL kexec_file_load 681402 UNIMPL /* unused */ 682403 UNIMPL clock_gettime64 683404 UNIMPL clock_settime64 684405 UNIMPL clock_adjtime64 685406 UNIMPL clock_getres_time64 686407 UNIMPL clock_nanosleep_time64 687408 UNIMPL timer_gettime64 688409 UNIMPL timer_settime64 689410 UNIMPL timerfd_gettime64 690411 UNIMPL timerfd_settime64 691412 UNIMPL utimensat_time64 692413 UNIMPL pselect6_time64 693414 UNIMPL ppoll_time64 694415 UNIMPL /* unused? */ 695416 UNIMPL io_pgetevents_time64 696417 UNIMPL recvmmsg_time64 697418 UNIMPL mq_timedsend_time64 698419 UNIMPL mq_timedreceive_time64 699420 UNIMPL semtimedop_time64 700421 UNIMPL rt_sigtimedwait_time64 701422 UNIMPL futex_time64 702423 UNIMPL sched_rr_get_interval_time64 703424 UNIMPL pidfd_send_signal 704425 UNIMPL io_uring_setup 705426 UNIMPL io_uring_enter 706427 UNIMPL io_uring_register 707428 UNIMPL open_tree 708429 UNIMPL move_mount 709430 UNIMPL fsopen 710431 UNIMPL fsconfig 711432 UNIMPL fsmount 712433 UNIMPL fspick 713434 UNIMPL pidfd_open 714435 UNIMPL clone3 715436 UNIMPL close_range 716437 UNIMPL openat2 717438 UNIMPL pidfd_getfd 718439 UNIMPL faccessat2 719440 UNIMPL process_madvise 720441 UNIMPL epoll_pwait2 721442 UNIMPL mount_setattr 722443 UNIMPL quotactl_fd 723444 UNIMPL landlock_create_ruleset 724445 UNIMPL landlock_add_rule 725446 UNIMPL landlock_restrict_self 726447 UNIMPL 727448 UNIMPL 728449 UNIMPL 729450 UNIMPL 730451 UNIMPL 731452 UNIMPL 732453 UNIMPL 733454 UNIMPL 734455 UNIMPL 735456 UNIMPL 736457 UNIMPL 737458 UNIMPL 738459 UNIMPL 739460 UNIMPL 740461 UNIMPL 741462 UNIMPL 742463 UNIMPL 743464 UNIMPL 744465 UNIMPL 745466 UNIMPL 746467 UNIMPL 747468 UNIMPL 748469 UNIMPL 749470 UNIMPL 750471 UNIMPL 751472 UNIMPL 752473 UNIMPL 753474 UNIMPL 754475 UNIMPL 755476 UNIMPL 756477 UNIMPL 757478 UNIMPL 758479 UNIMPL 759 760; 761; EABI ARMLinux actually has two ranges of syscalls. Normal syscalls use 762; SVC numbers starting at 0 (__NR_SYSCALL_BASE), Special ARM-specific syscalls 763; use SVC numbers starting at 0x0f0000 (__ARM_NR_BASE). 764; $SRC/sys/arch/aarch64/aarch64/linux32_syscall.c remaps these down to 480-, 765; So that we can use one linux_sysent array for the whole lot. 766; 767; If the linux's normal syscall is increased to more than 480, this needs to be 768; changed. Also note the overall size as defined in syscalls.conf. (nsysent=512) 769; 770; see also: 771; $LINUXSRC/arch/arm/include/uapi/asm/unistd.h 772; $LINUXSRC/arch/arm/kernel/traps.c:arm_syscall() 773; 774480 UNIMPL /* base. actually 0x0f0000 */ 775481 UNIMPL breakpoint 776482 UNIMPL cacheflush 777483 UNIMPL usr26 778484 UNIMPL usr32 779485 STD { int|linux32_sys||set_tls(netbsd32_voidp tls); } 780486 STD { linux32_off_t|linux32_sys||get_tls(void); } 781