$NetBSD: syscalls.master,v 1.3 2021/12/02 04:29:48 ryo Exp $ ; NetBSD aarch64 COMPAT_LINUX32 system call name/number "master" file. ; ; The system call numbers are defined by $LINUXSRC/arch/arm/tools/syscall.tbl, ; but linux/arm has multiple syscall tables, these are laid out ; consecutively in this table. ; See the comments at the bottom of this file for details. ; ; (See syscalls.conf to see what it is processed into.) ; ; Fields: number type [type-dependent ...] ; number system call number, must be in order ; type one of STD, OBSOL, UNIMPL, IGNORED, NODEF, NOARGS, or one of ; the compatibility options defined in syscalls.conf. ; ; Optional fields are specified after the type field ; (NOTE! they *must* be specified in this order): ; MODULAR modname :attempt to autoload system call module if not present ; RUMP: generate rump syscall entry point ; ; types: ; STD always included ; OBSOL obsolete, not included in system ; IGNORED syscall is a null op, but always succeeds ; UNIMPL unimplemented, not included in system ; EXCL implemented, but not included in system ; NODEF included, but don't define the syscall number ; NOARGS included, but don't define the syscall args structure ; INDIR included, but don't define the syscall args structure, ; and allow it to be "really" varargs. ; NOERR included, syscall does not set errno ; EXTERN implemented, but as 3rd party module ; ; arguments: ; PAD argument not part of the C interface, used only for padding ; ; The compat options are defined in the syscalls.conf file, and the ; compat option name is prefixed to the syscall name. Other than ; that, they're like NODEF (for 'compat' options), or STD (for ; 'libcompat' options). ; ; The type-dependent arguments are as follows: ; For STD, NODEF, NOARGS, and compat syscalls: ; { return_type|prefix|compat(optional)|basename(pseudo-proto); } [alias] ; For other syscalls: ; [comment] ; ; #ifdef's, etc. may be included, and are copied to the output files. ; #include's are copied to the syscall names and switch definition files only. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include %% 0 NOARGS { int|linux_sys||nosys(void); } syscall 1 STD { int|linux32_sys||exit(int rval); } 2 NOARGS { int|sys||fork(void); } 3 NOARGS { netbsd32_ssize_t|netbsd32||read(int fd, \ netbsd32_voidp buf, netbsd32_size_t nbyte); } 4 NOARGS { netbsd32_ssize_t|netbsd32||write(int fd, \ netbsd32_voidp buf, netbsd32_size_t nbyte); } 5 STD { int|linux32_sys||open(netbsd32_charp path, int flags, \ linux_umode_t mode); } 6 NOARGS { int|netbsd32||close(int fd); } 7 STD { int|linux32_sys||waitpid(int pid, netbsd32_intp status, \ int options);} 8 STD { int|linux32_sys||creat(netbsd32_charp path, \ linux_umode_t mode); } 9 NOARGS { int|netbsd32||link(netbsd32_charp path, \ netbsd32_charp link); } 10 STD { int|linux32_sys||unlink(netbsd32_charp path); } 11 NOARGS { int|netbsd32||execve(netbsd32_charp path, \ netbsd32_charpp argp, netbsd32_charpp envp); } 12 NOARGS { int|netbsd32||chdir(netbsd32_charp path); } 13 STD { int|linux32_sys||time(linux32_timep_t t); } 14 STD { int|linux32_sys||mknod(netbsd32_charp path, \ linux_umode_t mode, unsigned dev); } 15 NOARGS { int|netbsd32||chmod(netbsd32_charp path, \ linux_umode_t mode); } 16 STD { int|linux32_sys||lchown16(netbsd32_charp path, \ linux32_uid16_t uid, linux32_gid16_t gid); } 17 OBSOL break 18 OBSOL ostat 19 NOARGS { netbsd32_long|compat_43_netbsd32||olseek(int fd, \ netbsd32_long offset, int whence); } 20 NOARGS { pid_t|sys||getpid(void); } 21 UNIMPL mount 22 UNIMPL umount 23 NOARGS linux_setuid16 { int|netbsd32||setuid(uid_t uid); } 24 NOARGS linux_getuid16 { uid_t|sys||getuid(void); } 25 STD { int|linux32_sys||stime(linux32_timep_t t); } 26 STD { int|linux32_sys||ptrace(int request, int pid, \ int addr, int data); } 27 STD { int|linux32_sys||alarm(unsigned int secs); } 28 OBSOL ofstat 29 NOARGS { int|linux_sys||pause(void); } 30 STD { int|linux32_sys||utime(netbsd32_charp path, \ linux32_utimbufp_t times); } 31 OBSOL stty 32 OBSOL gtty 33 NOARGS { int|netbsd32||access(netbsd32_charp path, \ int flags); } 34 STD { int|linux32_sys||nice(int incr); } 35 OBSOL ftime 36 NOARGS { int|sys||sync(void); } 37 STD { int|linux32_sys||kill(int pid, int signum); } 38 NOARGS { int|netbsd32||__posix_rename(netbsd32_charp from, \ netbsd32_charp to); } 39 NOARGS { int|netbsd32||mkdir(netbsd32_charp path, \ linux_umode_t mode); } 40 NOARGS { int|netbsd32||rmdir(netbsd32_charp path); } 41 NOARGS { int|netbsd32||dup(int fd); } 42 STD { int|linux32_sys||pipe(netbsd32_intp fd); } 43 STD { int|linux32_sys||times(linux32_tmsp_t tms); } 44 OBSOL prof 45 STD { int|linux32_sys||brk(netbsd32_charp nsize); } 46 NOARGS linux_setgid16 { int|netbsd32||setgid(gid_t gid); } 47 NOARGS linux_getgid16 { gid_t|sys||getgid(void); } 48 STD { int|linux32_sys||signal(int signum, \ linux32_handlerp_t handler); } 49 NOARGS linux_geteuid16 { uid_t|sys||geteuid(void); } 50 NOARGS linux_getegid16 { gid_t|sys||getegid(void); } 51 NOARGS { int|netbsd32||acct(netbsd32_charp path); } 52 OBSOL phys 53 OBSOL lock 54 STD { int|linux32_sys||ioctl(int fd, netbsd32_u_long com, \ netbsd32_charp data); } 55 STD { int|linux32_sys||fcntl(int fd, \ int cmd, netbsd32_voidp arg); } 56 OBSOL mpx 57 NOARGS { int|netbsd32||setpgid(int pid, int pgid); } 58 OBSOL ulimit 59 STD { int|linux32_sys||oldolduname( \ linux32_oldold_utsnamep_t up); } 60 NOARGS { int|netbsd32||umask(int newmask); } 61 NOARGS { int|netbsd32||chroot(netbsd32_charp path); } 62 UNIMPL ustat 63 NOARGS { int|netbsd32||dup2(int from, int to); } 64 NOARGS { pid_t|sys||getppid(void); } 65 NOARGS { int|sys||getpgrp(void); } 66 NOARGS { int|sys||setsid(void); } 67 UNIMPL sigaction 68 STD { int|linux32_sys||siggetmask(void); } 69 STD { int|linux32_sys||sigsetmask(linux32_old_sigset_t mask); } 70 STD { int|linux32_sys||setreuid16(linux32_uid16_t ruid, \ linux32_uid16_t euid); } 71 STD { int|linux32_sys||setregid16(linux32_gid16_t rgid, \ linux32_gid16_t egid); } 72 UNIMPL sigsuspend 73 UNIMPL sigpending 74 NOARGS { int|compat_43_netbsd32||osethostname( \ netbsd32_charp hostname, u_int len); } 75 STD { int|linux32_sys||setrlimit(u_int which, \ netbsd32_orlimitp_t rlp); } 76 STD { int|linux32_sys||getrlimit(u_int which, \ netbsd32_orlimitp_t rlp); } 77 NOARGS { int|compat_50_netbsd32||getrusage(int who, \ netbsd32_rusage50p_t rusage); } 78 STD { int|linux32_sys||gettimeofday(netbsd32_timeval50p_t tp, \ netbsd32_timezonep_t tzp); } 79 STD { int|linux32_sys||settimeofday(netbsd32_timeval50p_t tp, \ netbsd32_timezonep_t tzp); } 80 STD { int|linux32_sys||getgroups16(int gidsetsize, \ linux32_gid16p_t gidset); } 81 STD { int|linux32_sys||setgroups16(int gidsetsize, \ linux32_gid16p_t gidset); } 82 STD { int|linux32_sys||oldselect(linux32_oldselectp_t lsp); } 83 NOARGS { int|netbsd32||symlink(netbsd32_charp path, \ netbsd32_charp link); } 84 NOARGS { int|compat_43_netbsd32||lstat43(netbsd32_charp \ path, netbsd32_stat43p_t ub); } 85 NOARGS { int|netbsd32||readlink(netbsd32_charp path, \ netbsd32_charp buf, netbsd32_size_t count); } 86 UNIMPL uselib 87 STD { int|linux32_sys||swapon(netbsd32_charp name); } 88 STD { int|linux32_sys||reboot(int magic1, int magic2, int cmd, \ netbsd32_voidp arg); } 89 STD { int|linux32_sys||readdir(int fd, netbsd32_voidp dent, \ unsigned int count); } 90 STD { int|linux32_sys||old_mmap(linux32_oldmmapp lmp); } 91 NOARGS { int|netbsd32||munmap(netbsd32_voidp addr, \ netbsd32_size_t len); } 92 NOARGS { int|compat_43_netbsd32||otruncate(netbsd32_charp path, \ netbsd32_long length); } 93 NOARGS { int|compat_43_netbsd32||oftruncate(int fd, \ netbsd32_long length); } 94 NOARGS { int|netbsd32||fchmod(int fd, linux_umode_t mode); } 95 STD { int|linux32_sys||fchown16(int fd, linux32_uid16_t uid, \ linux32_gid16_t gid); } 96 STD { int|linux32_sys||getpriority(int which, int who); } 97 NOARGS { int|netbsd32||setpriority(int which, int who, int prio); } 98 NOARGS { int|netbsd32||profil(netbsd32_voidp samples, \ netbsd32_size_t size, netbsd32_u_long offset, \ u_int scale); } 99 STD { int|linux32_sys||statfs(netbsd32_charp path, \ linux32_statfsp sp); } 100 STD { int|linux32_sys||fstatfs(int fd, linux32_statfsp sp); } 101 UNIMPL ioperm 102 STD { int|linux32_sys||socketcall(int what, netbsd32_voidp args); } 103 UNIMPL syslog 104 NOARGS { int|compat_50_netbsd32||setitimer(int which, \ netbsd32_itimerval50p_t itv, \ netbsd32_itimerval50p_t oitv); } 105 NOARGS { int|compat_50_netbsd32||getitimer(int which, \ netbsd32_itimerval50p_t itv); } 106 STD { int|linux32_sys||stat(netbsd32_charp path, \ linux32_statp sp); } 107 STD { int|linux32_sys||lstat(netbsd32_charp path, \ linux32_statp sp); } 108 STD { int|linux32_sys||fstat(int fd, \ linux32_statp sp); } 109 STD { int|linux32_sys||olduname(linux32_oldutsnamep_t up); } 110 UNIMPL iopl 111 UNIMPL vhangup 112 UNIMPL idle 113 UNIMPL syscall 114 STD { int|linux32_sys||wait4(int pid, netbsd32_intp status, \ int options, netbsd32_rusage50p_t rusage); } 115 STD { int|linux32_sys||swapoff(netbsd32_charp path); } 116 STD { int|linux32_sys||sysinfo(linux32_sysinfop_t arg); } 117 STD { int|linux32_sys||ipc(int what, int a1, int a2, int a3, \ netbsd32_voidp ptr); } 118 NOARGS { int|netbsd32||fsync(int fd); } 119 STD { int|linux32_sys||sigreturn(linux32_sigcontextp_t scp); } 120 STD { int|linux32_sys||clone(int flags, netbsd32_voidp stack, \ netbsd32_voidp parent_tidptr, netbsd32_voidp tls, \ netbsd32_voidp child_tidptr); } 121 STD { int|linux32_sys||setdomainname(netbsd32_charp domainname, \ int len); } 122 STD { int|linux32_sys||uname(linux32_utsnamep up); } 123 UNIMPL modify_ldt 124 UNIMPL adjtimex 125 STD { int|linux32_sys||mprotect(netbsd32_voidp start, \ netbsd32_size_t len, int prot); } 126 UNIMPL sigprocmask 127 UNIMPL create_module 128 UNIMPL init_module 129 UNIMPL delete_module 130 UNIMPL get_kernel_syms 131 UNIMPL quotactl 132 NOARGS { int|netbsd32||getpgid(pid_t pid); } 133 NOARGS { int|netbsd32||fchdir(int fd); } 134 UNIMPL bdflush 135 UNIMPL sysfs 136 STD { int|linux32_sys||personality(netbsd32_u_long per); } 137 UNIMPL afs_syscall 138 NOARGS setfsuid16 { int|linux32_sys||setfsuid(uid_t uid); } 139 NOARGS setfsgid16 { int|linux32_sys||setfsgid(gid_t gid); } 140 STD { int|linux32_sys||llseek(int fd, u_int32_t ohigh, \ u_int32_t olow, netbsd32_voidp res, int whence); } 141 STD { int|linux32_sys||getdents(int fd, \ linux32_direntp_t dent, unsigned int count); } 142 STD { int|linux32_sys||select(int nfds, \ netbsd32_fd_setp_t readfds, \ netbsd32_fd_setp_t writefds, \ netbsd32_fd_setp_t exceptfds, \ netbsd32_timeval50p_t timeout); } 143 NOARGS { int|netbsd32||flock(int fd, int how); } 144 NOARGS { int|netbsd32|13|msync(netbsd32_voidp addr, \ netbsd32_size_t len, int flags); } 145 NOARGS { int|netbsd32||readv(int fd, \ netbsd32_iovecp_t iovp, int iovcnt); } 146 NOARGS { netbsd32_ssize_t|netbsd32||writev(int fd, \ netbsd32_iovecp_t iovp, int iovcnt); } 147 NOARGS { pid_t|netbsd32||getsid(pid_t pid); } 148 STD { int|linux32_sys||fdatasync(int fd); } 149 STD { int|linux32_sys||__sysctl(linux32___sysctlp_t lsp); } 150 NOARGS { int|netbsd32||mlock(netbsd32_voidp addr, \ netbsd32_size_t len); } 151 NOARGS { int|netbsd32||munlock(netbsd32_voidp addr, \ netbsd32_size_t len); } 152 NOARGS { int|netbsd32||mlockall(int flags); } 153 NOARGS { int|sys||munlockall(void); } 154 STD { int|linux32_sys||sched_setparam(pid_t pid, \ const linux32_sched_paramp_t sp); } 155 STD { int|linux32_sys||sched_getparam(pid_t pid, \ linux32_sched_paramp_t sp); } 156 STD { int|linux32_sys||sched_setscheduler(pid_t pid, \ int policy, linux32_sched_paramp_t sp); } 157 STD { int|linux32_sys||sched_getscheduler(pid_t pid); } 158 NOARGS { int|linux_sys||sched_yield(void); } 159 STD { int|linux32_sys||sched_get_priority_max(int policy); } 160 STD { int|linux32_sys||sched_get_priority_min(int policy); } 161 UNIMPL sched_rr_get_interval 162 STD { int|linux32_sys||nanosleep(linux32_timespecp_t rqtp, \ linux32_timespecp_t rmtp); } 163 STD { int|linux32_sys||mremap(netbsd32_voidp old_address, \ netbsd32_size_t old_size, netbsd32_size_t new_size, \ netbsd32_u_long flags); } 164 STD { int|linux32_sys||setresuid16(linux32_uid16_t ruid, \ linux32_uid16_t euid, linux32_uid16_t suid); } 165 STD { int|linux32_sys||getresuid16(linux32_uid16p_t ruid, \ linux32_uid16p_t euid, linux32_uid16p_t suid); } 166 UNIMPL vm86 167 UNIMPL query_module 168 NOARGS { int|netbsd32||poll(netbsd32_pollfdp_t fds, u_int nfds, \ int timeout); } 169 UNIMPL nfsservctl 170 STD { int|linux32_sys||setresgid16(linux32_gid16_t rgid, \ linux32_gid16_t egid, linux32_gid16_t sgid); } 171 STD { int|linux32_sys||getresgid16(linux32_gid16p_t rgid, \ linux32_gid16p_t egid, linux32_gid16p_t sgid); } 172 UNIMPL prctl 173 STD { int|linux32_sys||rt_sigreturn(linux32_ucontextp_t ucp); } 174 STD { int|linux32_sys||rt_sigaction(int signum, \ linux32_sigactionp_t nsa, \ linux32_sigactionp_t osa, \ netbsd32_size_t sigsetsize); } 175 STD { int|linux32_sys||rt_sigprocmask(int how, \ linux32_sigsetp_t set, \ linux32_sigsetp_t oset, \ netbsd32_size_t sigsetsize); } 176 STD { int|linux32_sys||rt_sigpending(linux32_sigsetp_t set, \ netbsd32_size_t sigsetsize); } 177 STD { int|linux32_sys||rt_sigtimedwait( \ const linux32_sigsetp_t set, \ linux32_siginfop_t info, \ const linux32_timespecp_t timeout); } 178 STD { int|linux32_sys||rt_queueinfo(int pid, int sig, \ linux32_siginfop_t uinfo); } 179 STD { int|linux32_sys||rt_sigsuspend(linux32_sigsetp_t unewset, \ netbsd32_size_t sigsetsize); } 180 STD { netbsd32_ssize_t|linux32_sys||pread(int fd, \ netbsd32_voidp buf, netbsd32_size_t nbyte, \ netbsd32_off_t offset); } 181 STD { netbsd32_ssize_t|linux32_sys||pwrite(int fd, \ netbsd32_voidp buf, netbsd32_size_t nbyte, \ netbsd32_off_t offset); } 182 STD { int|linux32_sys||chown16(netbsd32_charp path, \ linux32_uid16_t uid, linux32_gid16_t gid); } 183 NOARGS { int|netbsd32||__getcwd(netbsd32_charp bufp, \ netbsd32_size_t length); } 184 UNIMPL capget 185 UNIMPL capset 186 UNIMPL sigaltstack 187 UNIMPL sendfile 188 UNIMPL getpmsg 189 UNIMPL putpmsg 190 NOARGS { int|sys|14|vfork(void); } 191 STD { int|linux32_sys||ugetrlimit(int which, \ netbsd32_orlimitp_t rlp); } 192 STD { linux32_off_t|linux32_sys||mmap2(netbsd32_u_long addr, \ netbsd32_size_t len, int prot, int flags, int fd, \ linux32_off_t offset); } 193 STD { int|linux32_sys||truncate64(netbsd32_charp path, \ uint32_t lenlo, uint32_t lenhi); } 194 STD { int|linux32_sys||ftruncate64(unsigned int fd, \ uint32_t lenlo, uint32_t lenhi); } 195 STD { int|linux32_sys||stat64(netbsd32_charp path, \ linux32_stat64p sp); } 196 STD { int|linux32_sys||lstat64(netbsd32_charp path, \ linux32_stat64p sp); } 197 STD { int|linux32_sys||fstat64(int fd, \ linux32_stat64p sp); } 198 NOARGS { int|netbsd32||__posix_lchown(netbsd32_charp path, \ uid_t uid, gid_t gid); } 199 NOARGS { uid_t|sys||getuid(void); } 200 NOARGS { gid_t|sys||getgid(void); } 201 NOARGS { uid_t|sys||geteuid(void); } 202 NOARGS { gid_t|sys||getegid(void); } 203 NOARGS { int|netbsd32||setreuid(uid_t ruid, uid_t euid); } 204 NOARGS { int|netbsd32||setregid(gid_t rgid, gid_t egid); } 205 NOARGS { int|netbsd32||getgroups(int gidsetsize, \ netbsd32_gid_tp gidset); } 206 NOARGS { int|netbsd32||setgroups(int gidsetsize, \ netbsd32_gid_tp gidset); } 207 NOARGS { int|netbsd32||__posix_fchown(int fd, uid_t uid, gid_t gid); } 208 STD { int|linux32_sys||setresuid(uid_t ruid, uid_t euid, \ uid_t suid); } 209 STD { int|linux32_sys||getresuid(linux32_uidp_t ruid, \ linux32_uidp_t euid, linux32_uidp_t suid); } 210 STD { int|linux32_sys||setresgid(gid_t rgid, gid_t egid, \ gid_t sgid); } 211 STD { int|linux32_sys||getresgid(linux32_gidp_t rgid, \ linux32_gidp_t egid, linux32_gidp_t sgid); } 212 NOARGS { int|netbsd32||__posix_chown(netbsd32_charp path, \ uid_t uid, gid_t gid); } 213 NOARGS { int|netbsd32||setuid(uid_t uid); } 214 NOARGS { int|netbsd32||setgid(gid_t gid); } 215 STD { int|linux32_sys||setfsuid(uid_t uid); } 216 STD { int|linux32_sys||setfsgid(gid_t gid); } 217 STD { int|linux32_sys||getdents64(int fd, \ linux32_dirent64p_t dent, unsigned int count); } 218 UNIMPL pivot_root 219 NOARGS { int|netbsd32||mincore(netbsd32_voidp addr, \ netbsd32_size_t len, netbsd32_charp vec); } 220 NOARGS { int|netbsd32||madvise(netbsd32_voidp addr, \ netbsd32_size_t len, int behav); } ; fcntl64() - Exactly the same as fcntl() #define linux32_sys_fcntl64 linux32_sys_fcntl #define linux32_sys_fcntl64_args linux32_sys_fcntl_args 221 NOARGS { int|linux32_sys||fcntl64(int fd, \ int cmd, netbsd32_voidp arg); } 222 UNIMPL /* unused */ 223 UNIMPL /* unused */ 224 NOARGS { pid_t|linux_sys||gettid(void); } 225 UNIMPL readahead 226 NOARGS { int|netbsd32||setxattr(netbsd32_charp path, \ netbsd32_charp name, netbsd32_voidp value, \ netbsd32_size_t size, int flags); } 227 NOARGS { int|netbsd32||lsetxattr(netbsd32_charp path, \ netbsd32_charp name, netbsd32_voidp value, \ netbsd32_size_t size, int flags); } 228 NOARGS { int|netbsd32||fsetxattr(int fd, netbsd32_charp name, \ netbsd32_voidp value, netbsd32_size_t size, int flags); } 229 NOARGS { ssize_t|netbsd32||getxattr(netbsd32_charp path, \ netbsd32_charp name, netbsd32_voidp value, \ netbsd32_size_t size); } 230 NOARGS { ssize_t|netbsd32||lgetxattr(netbsd32_charp path, \ netbsd32_charp name, netbsd32_voidp value, \ netbsd32_size_t size); } 231 NOARGS { ssize_t|netbsd32||fgetxattr(int fd, netbsd32_charp name, \ netbsd32_voidp value, netbsd32_size_t size); } 232 NOARGS { ssize_t|netbsd32||listxattr(netbsd32_charp path, \ netbsd32_charp list, netbsd32_size_t size); } 233 NOARGS { ssize_t|netbsd32||llistxattr(netbsd32_charp path, \ netbsd32_charp list, netbsd32_size_t size); } 234 NOARGS { ssize_t|netbsd32||flistxattr(int fd, netbsd32_charp list, \ netbsd32_size_t size); } 235 NOARGS { int|netbsd32||removexattr(netbsd32_charp path, \ netbsd32_charp name); } 236 NOARGS { int|netbsd32||lremovexattr(netbsd32_charp path, \ netbsd32_charp name); } 237 NOARGS { int|netbsd32||fremovexattr(int fd, netbsd32_charp name); } 238 STD { int|linux32_sys||tkill(int tid, int sig); } 239 UNIMPL sendfile64 240 STD { int|linux32_sys||futex(linux32_intp_t uaddr, int op, \ int val, linux32_timespecp_t timeout, \ linux32_intp_t uaddr2, int val3); } 241 STD { int|linux32_sys||sched_setaffinity(pid_t pid, \ unsigned int len, linux32_ulongp_t mask); } 242 STD { int|linux32_sys||sched_getaffinity(pid_t pid, \ unsigned int len, linux32_ulongp_t mask); } 243 UNIMPL io_setup 244 UNIMPL io_destroy 245 UNIMPL io_getevents 246 UNIMPL io_submit 247 UNIMPL io_cancel 248 STD { int|linux32_sys||exit_group(int error_code); } 249 UNIMPL lookup_dcookie 250 UNIMPL epoll_create 251 UNIMPL epoll_ctl 252 UNIMPL epoll_wait 253 UNIMPL remap_file_pages 254 UNIMPL set_thread_area 255 UNIMPL get_thread_area 256 STD { int|linux32_sys||set_tid_address(linux32_intp_t tid); } 257 STD { int|linux32_sys||timer_create(clockid_t clockid, \ struct linux32_sigevent *evp, timer_t *timerid); } 258 STD { int|linux32_sys||timer_settime(timer_t timerid, \ int flags, const struct linux32_itimerspec *tim, \ struct linux32_itimerspec *otim); } 259 STD { int|linux32_sys||timer_gettime(timer_t timerid, \ struct linux32_itimerspec *tim); } 260 NOARGS { int|sys||timer_getoverrun(timer_t timerid); } 261 NOARGS { int|sys||timer_delete(timer_t timerid); } 262 STD { int|linux32_sys||clock_settime(clockid_t which, \ linux32_timespecp_t tp); } 263 STD { int|linux32_sys||clock_gettime(clockid_t which, \ linux32_timespecp_t tp); } 264 STD { int|linux32_sys||clock_getres(clockid_t which, \ linux32_timespecp_t tp); } 265 STD { int|linux32_sys||clock_nanosleep(clockid_t which, int flags, \ linux32_timespecp_t rqtp, linux32_timespecp_t rmtp); } 266 STD { int|linux32_sys||statfs64(netbsd32_charp path, \ netbsd32_size_t sz, linux32_statfs64p sp); } 267 STD { int|linux32_sys||fstatfs64(int fd, \ netbsd32_size_t sz, linux32_statfs64p sp); } 268 STD { int|linux32_sys||tgkill(int tgid, int tid, int sig); } 269 NOARGS { int|compat_50_netbsd32||utimes(netbsd32_charp path, \ netbsd32_timeval50p_t tptr); } 270 STD { int|linux32_sys||fadvise64_64(int fd, uint32_t offlo, \ uint32_t offhi, uint32_t lenlo, uint32_t lenhi, \ int advice); } 271 UNIMPL pciconfig_iobase 272 UNIMPL pciconfig_read 273 UNIMPL pciconfig_write 274 UNIMPL mq_open 275 UNIMPL mq_unlink 276 UNIMPL mq_timedsend 277 UNIMPL mq_timedreceive 278 UNIMPL mq_notify 279 UNIMPL mq_getsetattr 280 UNIMPL waitid 281 NOARGS { int|linux32_sys||socket(int domain, int type, \ int protocol); } 282 NOARGS { int|linux32_sys||bind(int s, netbsd32_osockaddrp_t name, \ int namelen); } 283 NOARGS { int|linux32_sys||connect(int s, netbsd32_osockaddrp_t name, \ int namelen); } 284 UNIMPL listen 285 NOARGS { int|linux32_sys||accept(int s, netbsd32_osockaddrp_t name, \ netbsd32_intp anamelen); } 286 NOARGS { int|linux32_sys||getsockname(int fdec, netbsd32_charp asa, \ netbsd32_intp alen); } 287 NOARGS { int|linux32_sys||getpeername(int fdes, \ netbsd32_sockaddrp_t asa, netbsd32_intp alen); } 288 NOARGS { int|linux32_sys||socketpair(int domain, int type, \ int protocol, netbsd32_intp rsv); } 289 NOARGS { int|linux32_sys||send(int s, netbsd32_voidp buf, int len, \ int flags); } 290 NOARGS { int|linux32_sys||sendto(int s, netbsd32_voidp msg, int len, \ int flags, netbsd32_osockaddrp_t to, int tolen); } 291 NOARGS { int|linux32_sys||recv(int s, netbsd32_voidp buf, int len, \ int flags); } 292 NOARGS { int|linux32_sys||recvfrom(int s, netbsd32_voidp buf, \ netbsd32_size_t len, int flags, \ netbsd32_osockaddrp_t from, netbsd32_intp fromlenaddr); } 293 UNIMPL shutdown 294 NOARGS { int|linux32_sys||setsockopt(int s, int level, int optname, \ netbsd32_voidp optval, int optlen); } 295 NOARGS { int|linux32_sys||getsockopt(int s, int level, int optname, \ netbsd32_voidp optval, netbsd32_intp optlen); } 296 UNIMPL sendmsg 297 UNIMPL recvmsg 298 UNIMPL semop 299 UNIMPL semget 300 UNIMPL semctl 301 UNIMPL msgsnd 302 UNIMPL msgrcv 303 UNIMPL msgget 304 UNIMPL msgctl 305 UNIMPL shmat 306 UNIMPL shmdt 307 UNIMPL shmget 308 UNIMPL shmctl 309 UNIMPL add_key 310 UNIMPL request_key 311 UNIMPL keyctl 312 UNIMPL semtimedop 313 UNIMPL vserver 314 UNIMPL ioptio_set 315 UNIMPL ioptio_get 316 UNIMPL inotify_init 317 UNIMPL inotify_add_watch 318 UNIMPL inotify_rm_watch 319 UNIMPL mbind 320 UNIMPL get_mempolicy 321 UNIMPL set_mempolicy 322 STD { int|linux32_sys||openat(int fd, netbsd32_charp path, \ int flags, ... linux_umode_t mode); } 323 NOARGS { int|netbsd32||mkdirat(int fd, netbsd32_charp path, \ linux_umode_t mode); } 324 STD { int|linux32_sys||mknodat(int fd, netbsd32_charp path, \ linux_umode_t mode, unsigned dev); } 325 STD { int|linux32_sys||fchownat(int fd, netbsd32_charp path, \ uid_t owner, gid_t group, int flag); } 326 UNIMPL futimesat 327 STD { int|linux32_sys||fstatat64(int fd, netbsd32_charp path, \ linux32_stat64p sp, int flag); } 328 STD { int|linux32_sys||unlinkat(int fd, netbsd32_charp path, \ int flag); } 329 NOARGS { int|netbsd32||renameat(int fromfd, netbsd32_charp from, \ int tofd, netbsd32_charp to); } 330 STD { int|linux32_sys||linkat(int fd1, netbsd32_charp name1, \ int fd2, netbsd32_charp name2, int flags); } 331 NOARGS { int|netbsd32||symlinkat(netbsd32_charp path1, int fd, \ netbsd32_charp path2); } 332 NOARGS { int|netbsd32||readlinkat(int fd, netbsd32_charp path, \ netbsd32_charp buf, linux32_size_t bufsize); } 333 STD { int|linux32_sys||fchmodat(int fd, netbsd32_charp path, \ linux_umode_t mode); } 334 STD { int|linux32_sys||faccessat(int fd, netbsd32_charp path, \ int amode); } 335 STD { int|linux32_sys||pselect6(int nfds, \ netbsd32_fd_setp_t readfds, \ netbsd32_fd_setp_t writefds, \ netbsd32_fd_setp_t exceptfds, \ linux32_timespecp_t timeout, \ linux32_sized_sigsetp_t ss); } 336 STD { int|linux32_sys||ppoll(netbsd32_pollfdp_t fds, u_int nfds, \ linux32_timespecp_t timeout, linux32_sigsetp_t sigset); } 337 UNIMPL unshare ; ; The netbsd32 native robust list calls have different ; argument names / types, but they are ABI-compatible ; with linux32. ; 338 NOARGS { int|netbsd32||__futex_set_robust_list( \ netbsd32_voidp head, netbsd32_size_t len); } 339 NOARGS { int|netbsd32||__futex_get_robust_list(lwpid_t lwpid, \ netbsd32_voidp headp, netbsd32_size_tp lenp); } 340 UNIMPL splice 341 UNIMPL sync_file_range 342 UNIMPL tee 343 UNIMPL vmsplice 344 UNIMPL move_pages 345 UNIMPL getcpu 346 UNIMPL epoll_wait 347 UNIMPL kexec_load 348 STD { int|linux32_sys||utimensat(int fd, netbsd32_charp path, \ linux32_timespecp_t times, int flag); } 349 UNIMPL signalfd 350 NOARGS { int|linux_sys||timerfd_create(clockid_t clock_id, \ int flags); } 351 STD { int|linux32_sys||eventfd(unsigned int initval); } 352 STD { int|linux32_sys||fallocate(int fd, int mode, \ off_t offset, off_t len); } 353 STD { int|linux32_sys||timerfd_settime(int fd, int flags, \ const struct linux32_itimerspec *tim, \ struct linux32_itimerspec *otim); } 354 STD { int|linux32_sys||timerfd_gettime(int fd, \ struct linux32_itimerspec *tim); } 355 UNIMPL signalfd4 356 STD { int|linux32_sys||eventfd2(unsigned int initval, \ int flags); } 357 UNIMPL epoll_create1 358 STD { int|linux32_sys||dup3(int from, int to, int flags); } 359 STD { int|linux32_sys||pipe2(netbsd32_intp fd, int flags); } 360 UNIMPL inotify_init1 361 STD { int|linux32_sys||preadv(int fd, \ const netbsd32_iovecp_t iovp, int iovcnt, \ netbsd32_u_long off_lo, netbsd32_u_long off_hi); } 362 STD { int|linux32_sys||pwritev(int fd, \ const netbsd32_iovecp_t iovp, int iovcnt, \ netbsd32_u_long off_lo, netbsd32_u_long off_hi); } 363 UNIMPL rt_tgsigqueueinfo 364 UNIMPL perf_counter_open 365 UNIMPL recvmmsg 366 UNIMPL accept4 367 UNIMPL fanotify_init 368 UNIMPL fanotify_mark 369 STD { int|linux32_sys||prlimit64(pid_t pid, int which, \ netbsd32_rlimitp_t new_rlp, netbsd32_rlimitp_t old_rlp); } 370 UNIMPL name_to_handle_at 371 UNIMPL open_by_handle_at 372 UNIMPL clock_adjtime 373 UNIMPL syncfs 374 UNIMPL sendmmsg 375 UNIMPL setns 376 UNIMPL process_vm_readv 377 UNIMPL process_vm_writev 378 UNIMPL kcmp 379 UNIMPL finit_module 380 UNIMPL sched_setattr 381 UNIMPL sched_getattr 382 UNIMPL renameat2 383 UNIMPL seccomp 384 NOARGS { netbsd32_ssize_t|netbsd32||getrandom( \ netbsd32_voidp buf, netbsd32_size_t buflen, \ unsigned int flags); } 385 UNIMPL memfd_create 386 UNIMPL bpf 387 UNIMPL execveat 388 UNIMPL userfaultfd 389 UNIMPL membarrier 390 UNIMPL mlock2 391 UNIMPL copy_file_range 392 UNIMPL preadv2 393 UNIMPL pwritev2 394 UNIMPL pkey_mprotect 395 UNIMPL pkey_alloc 396 UNIMPL pkey_free 397 STD { int|linux32_sys||statx(int fd, netbsd32_charp path, \ int flag, unsigned int mask, linux32_statxp sp); } 398 UNIMPL rseq 399 UNIMPL io_pgetevents 400 UNIMPL migrate_pages 401 UNIMPL kexec_file_load 402 UNIMPL /* unused */ 403 UNIMPL clock_gettime64 404 UNIMPL clock_settime64 405 UNIMPL clock_adjtime64 406 UNIMPL clock_getres_time64 407 UNIMPL clock_nanosleep_time64 408 UNIMPL timer_gettime64 409 UNIMPL timer_settime64 410 UNIMPL timerfd_gettime64 411 UNIMPL timerfd_settime64 412 UNIMPL utimensat_time64 413 UNIMPL pselect6_time64 414 UNIMPL ppoll_time64 415 UNIMPL /* unused? */ 416 UNIMPL io_pgetevents_time64 417 UNIMPL recvmmsg_time64 418 UNIMPL mq_timedsend_time64 419 UNIMPL mq_timedreceive_time64 420 UNIMPL semtimedop_time64 421 UNIMPL rt_sigtimedwait_time64 422 UNIMPL futex_time64 423 UNIMPL sched_rr_get_interval_time64 424 UNIMPL pidfd_send_signal 425 UNIMPL io_uring_setup 426 UNIMPL io_uring_enter 427 UNIMPL io_uring_register 428 UNIMPL open_tree 429 UNIMPL move_mount 430 UNIMPL fsopen 431 UNIMPL fsconfig 432 UNIMPL fsmount 433 UNIMPL fspick 434 UNIMPL pidfd_open 435 UNIMPL clone3 436 UNIMPL close_range 437 UNIMPL openat2 438 UNIMPL pidfd_getfd 439 UNIMPL faccessat2 440 UNIMPL process_madvise 441 UNIMPL epoll_pwait2 442 UNIMPL mount_setattr 443 UNIMPL quotactl_fd 444 UNIMPL landlock_create_ruleset 445 UNIMPL landlock_add_rule 446 UNIMPL landlock_restrict_self 447 UNIMPL 448 UNIMPL 449 UNIMPL 450 UNIMPL 451 UNIMPL 452 UNIMPL 453 UNIMPL 454 UNIMPL 455 UNIMPL 456 UNIMPL 457 UNIMPL 458 UNIMPL 459 UNIMPL 460 UNIMPL 461 UNIMPL 462 UNIMPL 463 UNIMPL 464 UNIMPL 465 UNIMPL 466 UNIMPL 467 UNIMPL 468 UNIMPL 469 UNIMPL 470 UNIMPL 471 UNIMPL 472 UNIMPL 473 UNIMPL 474 UNIMPL 475 UNIMPL 476 UNIMPL 477 UNIMPL 478 UNIMPL 479 UNIMPL ; ; EABI ARMLinux actually has two ranges of syscalls. Normal syscalls use ; SVC numbers starting at 0 (__NR_SYSCALL_BASE), Special ARM-specific syscalls ; use SVC numbers starting at 0x0f0000 (__ARM_NR_BASE). ; $SRC/sys/arch/aarch64/aarch64/linux32_syscall.c remaps these down to 480-, ; So that we can use one linux_sysent array for the whole lot. ; ; If the linux's normal syscall is increased to more than 480, this needs to be ; changed. Also note the overall size as defined in syscalls.conf. (nsysent=512) ; ; see also: ; $LINUXSRC/arch/arm/include/uapi/asm/unistd.h ; $LINUXSRC/arch/arm/kernel/traps.c:arm_syscall() ; 480 UNIMPL /* base. actually 0x0f0000 */ 481 UNIMPL breakpoint 482 UNIMPL cacheflush 483 UNIMPL usr26 484 UNIMPL usr32 485 STD { int|linux32_sys||set_tls(netbsd32_voidp tls); } 486 STD { linux32_off_t|linux32_sys||get_tls(void); }