syscalls.master revision 1.14 1 1.14 christos $NetBSD: syscalls.master,v 1.14 2024/09/28 19:35:55 christos Exp $
2 1.1 ryo
3 1.1 ryo ; @(#)syscalls.master 8.1 (Berkeley) 7/19/93
4 1.1 ryo
5 1.1 ryo ; Derived from sys/compat/linux/arch/*/syscalls.master
6 1.1 ryo ; and from Linux include/uapi/asm-generic/unistd.h
7 1.1 ryo
8 1.1 ryo ; NetBSD aarch64 COMPAT_LINUX system call name/number "master" file.
9 1.1 ryo ; (See syscalls.conf to see what it is processed into.)
10 1.1 ryo ;
11 1.1 ryo ; Fields: number type [type-dependent ...]
12 1.1 ryo ; number system call number, must be in order
13 1.1 ryo ; type one of STD, OBSOL, UNIMPL, NODEF, NOARGS, or one of
14 1.1 ryo ; the compatibility options defined in syscalls.conf.
15 1.1 ryo ;
16 1.1 ryo ; types:
17 1.1 ryo ; STD always included
18 1.1 ryo ; OBSOL obsolete, not included in system
19 1.1 ryo ; UNIMPL unimplemented, not included in system
20 1.1 ryo ; NODEF included, but don't define the syscall number
21 1.1 ryo ; NOARGS included, but don't define the syscall args structure
22 1.1 ryo ; INDIR included, but don't define the syscall args structure
23 1.1 ryo ; and allow it to be "really" varargs.
24 1.1 ryo ;
25 1.1 ryo ; The compat options are defined in the syscalls.conf file, and the
26 1.1 ryo ; compat option name is prefixed to the syscall name. Other than
27 1.1 ryo ; that, they're like NODEF (for 'compat' options), or STD (for
28 1.1 ryo ; 'libcompat' options).
29 1.1 ryo ;
30 1.1 ryo ; The type-dependent arguments are as follows:
31 1.1 ryo ; For STD, NODEF, NOARGS, and compat syscalls:
32 1.1 ryo ; { pseudo-proto } [alias]
33 1.1 ryo ; For other syscalls:
34 1.1 ryo ; [comment]
35 1.1 ryo ;
36 1.1 ryo ; #ifdef's, etc. may be included, and are copied to the output files.
37 1.1 ryo ; #include's are copied to the syscall names and switch definition files only.
38 1.1 ryo
39 1.1 ryo #if defined(_KERNEL_OPT)
40 1.1 ryo #include "opt_sysv.h"
41 1.1 ryo #include "opt_compat_43.h"
42 1.1 ryo #include "opt_compat_netbsd.h"
43 1.1 ryo #endif
44 1.1 ryo
45 1.1 ryo #include <sys/param.h>
46 1.1 ryo #include <sys/poll.h>
47 1.1 ryo #include <sys/systm.h>
48 1.1 ryo #include <sys/signal.h>
49 1.1 ryo #include <sys/mount.h>
50 1.1 ryo #include <sys/syscallargs.h>
51 1.1 ryo #include <sys/time.h>
52 1.1 ryo
53 1.1 ryo #include <compat/sys/time.h>
54 1.1 ryo
55 1.1 ryo #include <compat/linux/common/linux_types.h>
56 1.8 rin #include <compat/linux/common/linux_ipc.h>
57 1.8 rin #include <compat/linux/common/linux_machdep.h>
58 1.7 rin #include <compat/linux/common/linux_misc.h>
59 1.1 ryo #include <compat/linux/common/linux_mmap.h>
60 1.1 ryo #include <compat/linux/common/linux_msg.h>
61 1.12 christos #include <compat/linux/common/linux_sched.h>
62 1.1 ryo #include <compat/linux/common/linux_sem.h>
63 1.1 ryo #include <compat/linux/common/linux_shm.h>
64 1.8 rin #include <compat/linux/common/linux_siginfo.h>
65 1.1 ryo #include <compat/linux/common/linux_signal.h>
66 1.13 christos #include <compat/linux/common/linux_mqueue.h>
67 1.1 ryo
68 1.1 ryo #include <compat/linux/linux_syscallargs.h>
69 1.1 ryo
70 1.1 ryo %%
71 1.1 ryo
72 1.1 ryo 0 UNIMPL io_setup
73 1.1 ryo 1 UNIMPL io_destroy
74 1.1 ryo 2 UNIMPL io_submit
75 1.1 ryo 3 UNIMPL io_cancel
76 1.1 ryo 4 UNIMPL io_getevents
77 1.1 ryo 5 STD { int|linux_sys||setxattr(char *path, char *name, \
78 1.1 ryo void *value, size_t size, int flags); }
79 1.1 ryo 6 STD { int|linux_sys||lsetxattr(char *path, char *name, \
80 1.1 ryo void *value, size_t size, int flags); }
81 1.1 ryo 7 STD { int|linux_sys||fsetxattr(int fd, char *name, \
82 1.1 ryo void *value, size_t size, int flags); }
83 1.1 ryo 8 STD { ssize_t|linux_sys||getxattr(char *path, char *name, \
84 1.1 ryo void *value, size_t size); }
85 1.1 ryo 9 STD { ssize_t|linux_sys||lgetxattr(char *path, char *name, \
86 1.1 ryo void *value, size_t size); }
87 1.1 ryo 10 STD { ssize_t|linux_sys||fgetxattr(int fd, char *name, \
88 1.1 ryo void *value, size_t size); }
89 1.1 ryo 11 STD { ssize_t|linux_sys||listxattr(char *path, char *list, \
90 1.1 ryo size_t size); }
91 1.1 ryo 12 STD { ssize_t|linux_sys||llistxattr(char *path, char *list, \
92 1.1 ryo size_t size); }
93 1.1 ryo 13 STD { ssize_t|linux_sys||flistxattr(int fd, char *list, \
94 1.1 ryo size_t size); }
95 1.1 ryo 14 STD { int|linux_sys||removexattr(char *path, char *name); }
96 1.1 ryo 15 STD { int|linux_sys||lremovexattr(char *path, char *name); }
97 1.1 ryo 16 STD { int|linux_sys||fremovexattr(int fd, char *name); }
98 1.1 ryo 17 NOARGS { int|sys||__getcwd(char *bufp, size_t length); }
99 1.1 ryo 18 UNIMPL lookup_dcookie
100 1.1 ryo 19 STD { int|linux_sys||eventfd2(unsigned int initval, \
101 1.1 ryo int flags); }
102 1.6 christos 20 STD { int|linux_sys||epoll_create1(int flags); }
103 1.6 christos 21 STD { int|linux_sys||epoll_ctl(int epfd, int op, int fd, \
104 1.6 christos struct linux_epoll_event *event); }
105 1.6 christos 22 STD { int|linux_sys||epoll_pwait(int epfd, \
106 1.6 christos struct linux_epoll_event *events, int maxevents, \
107 1.6 christos int timeout, const linux_sigset_t *sigmask); }
108 1.1 ryo 23 NOARGS { int|sys||dup(int fd); }
109 1.1 ryo 24 STD { int|linux_sys||dup3(int from, int to, int flags); }
110 1.1 ryo 25 STD { int|linux_sys||fcntl(int fd, int cmd, void *arg); }
111 1.11 christos 26 STD { int|linux_sys||inotify_init1(int flags); }
112 1.11 christos 27 STD { int|linux_sys||inotify_add_watch(int fd, \
113 1.11 christos const char *pathname, uint32_t mask); }
114 1.11 christos 28 STD { int|linux_sys||inotify_rm_watch(int fd, int wd); }
115 1.1 ryo 29 STD { int|linux_sys||ioctl(int fd, u_long com, \
116 1.1 ryo void *data); }
117 1.1 ryo 30 UNIMPL ioprio_set
118 1.1 ryo 31 UNIMPL ioprio_get
119 1.1 ryo 32 NOARGS { int|sys||flock(int fd, int how); }
120 1.1 ryo 33 STD { int|linux_sys||mknodat(int fd, const char *path, \
121 1.1 ryo linux_umode_t mode, unsigned dev); }
122 1.1 ryo 34 NOARGS { int|sys||mkdirat(int fd, const char *path, \
123 1.1 ryo linux_umode_t mode); }
124 1.1 ryo 35 STD { int|linux_sys||unlinkat(int fd, const char *path, \
125 1.1 ryo int flag); }
126 1.1 ryo 36 NOARGS { int|sys||symlinkat(const char *path1, int fd, \
127 1.1 ryo const char *path2); }
128 1.1 ryo 37 STD { int|linux_sys||linkat(int fd1, const char *name1, \
129 1.1 ryo int fd2, const char *name2, int flags); }
130 1.1 ryo 38 NOARGS { int|sys||renameat(int fromfd, const char *from, \
131 1.1 ryo int tofd, const char *to); }
132 1.1 ryo 39 UNIMPL umount2
133 1.1 ryo 40 UNIMPL mount
134 1.1 ryo 41 UNIMPL pivot_root
135 1.1 ryo 42 UNIMPL nfsservctl
136 1.1 ryo 43 STD { int|linux_sys||statfs(const char *path, \
137 1.1 ryo struct linux_statfs *sp); }
138 1.1 ryo 44 STD { int|linux_sys||fstatfs(int fd, \
139 1.1 ryo struct linux_statfs *sp); }
140 1.1 ryo 45 STD { int|linux_sys||truncate64(const char *path, \
141 1.1 ryo off_t length); }
142 1.1 ryo 46 STD { int|linux_sys||ftruncate64(unsigned int fd, \
143 1.1 ryo off_t length); }
144 1.1 ryo 47 STD { int|linux_sys||fallocate(int fd, int mode, \
145 1.1 ryo off_t offset, off_t len); }
146 1.1 ryo 48 STD { int|linux_sys||faccessat(int fd, const char *path, \
147 1.1 ryo int amode); }
148 1.1 ryo 49 NOARGS { int|sys||chdir(const char *path); }
149 1.1 ryo 50 NOARGS { int|sys||fchdir(int fd); }
150 1.1 ryo 51 NOARGS { int|sys||chroot(char *path); }
151 1.1 ryo 52 NOARGS { int|sys||fchmod(int fd, linux_umode_t mode); }
152 1.1 ryo 53 STD { int|linux_sys||fchmodat(int fd, const char *path, \
153 1.1 ryo linux_umode_t mode); }
154 1.1 ryo 54 STD { int|linux_sys||fchownat(int fd, const char *path, \
155 1.1 ryo uid_t owner, gid_t group, int flag); }
156 1.1 ryo 55 NOARGS { int|sys||__posix_fchown(int fd, uid_t uid, \
157 1.1 ryo gid_t gid); }
158 1.1 ryo 56 STD { int|linux_sys||openat(int fd, const char *path, \
159 1.1 ryo int flags, ... linux_umode_t mode); }
160 1.1 ryo 57 NOARGS { int|sys||close(int fd); }
161 1.1 ryo 58 UNIMPL vhangup
162 1.1 ryo 59 STD { int|linux_sys||pipe2(int *pfds, int flags); }
163 1.1 ryo 60 UNIMPL quotactl
164 1.1 ryo 61 STD { int|linux_sys||getdents64(int fd, \
165 1.1 ryo struct linux_dirent64 *dent, unsigned int count); }
166 1.1 ryo 62 NOARGS { long|compat_43_sys||lseek(int fd, long offset, \
167 1.1 ryo int whence); }
168 1.1 ryo 63 NOARGS { ssize_t|sys||read(int fd, void *buf, size_t nbyte); }
169 1.1 ryo 64 NOARGS { ssize_t|sys||write(int fd, const void *buf, \
170 1.1 ryo size_t nbyte); }
171 1.1 ryo 65 NOARGS { ssize_t|sys||readv(int fd, \
172 1.1 ryo const struct iovec *iovp, int iovcnt); }
173 1.1 ryo 66 NOARGS { ssize_t|sys||writev(int fd, \
174 1.1 ryo const struct iovec *iovp, int iovcnt); }
175 1.1 ryo 67 STD { int|linux_sys||pread(int fd, char *buf, \
176 1.1 ryo size_t nbyte, off_t offset); }
177 1.1 ryo 68 STD { int|linux_sys||pwrite(int fd, char *buf, \
178 1.1 ryo size_t nbyte, off_t offset); }
179 1.1 ryo 69 STD { int|linux_sys||preadv(int fd, \
180 1.1 ryo const struct iovec *iovp, int iovcnt, \
181 1.1 ryo unsigned long off_lo, unsigned long off_hi); }
182 1.1 ryo 70 STD { int|linux_sys||pwritev(int fd, \
183 1.1 ryo const struct iovcnt *iovp, int iovcnt, \
184 1.1 ryo unsigned long off_lo, unsigned long off_hi); }
185 1.1 ryo 71 UNIMPL sendfile
186 1.1 ryo 72 STD { int|linux_sys||pselect6(int nfds, fd_set *readfds, \
187 1.1 ryo fd_set *writefds, fd_set *exceptfds, \
188 1.1 ryo struct linux_timespec *timeout, \
189 1.1 ryo linux_sized_sigset_t *ss); }
190 1.1 ryo 73 STD { int|linux_sys||ppoll(struct pollfd *fds, u_int nfds, \
191 1.1 ryo struct linux_timespec *timeout, \
192 1.1 ryo linux_sigset_t *sigset); }
193 1.1 ryo 74 UNIMPL signalfd4
194 1.1 ryo 75 UNIMPL vmsplice
195 1.1 ryo 76 UNIMPL splice
196 1.1 ryo 77 UNIMPL tee
197 1.1 ryo 78 NOARGS { ssize_t|sys||readlinkat(int fd, const char *path, \
198 1.1 ryo char *buf, size_t bufsize); }
199 1.1 ryo 79 STD { int|linux_sys||fstatat64(int fd, const char *path, \
200 1.1 ryo struct linux_stat *sp, int flag); }
201 1.1 ryo 80 STD { int|linux_sys||fstat64(int fd, \
202 1.1 ryo struct linux_stat *sp); }
203 1.1 ryo 81 NOARGS { int|sys||sync(void); }
204 1.1 ryo 82 NOARGS { int|sys||fsync(int fd); }
205 1.1 ryo 83 STD { int|linux_sys||fdatasync(int fd); }
206 1.14 christos 84 STD { int|linux_sys||sync_file_range(int fd, \
207 1.14 christos off_t offset, off_t nbytes, unsigned int flags); }
208 1.1 ryo 85 STD { int|linux_sys||timerfd_create(clockid_t clock_id, \
209 1.1 ryo int flags); }
210 1.1 ryo 86 STD { int|linux_sys||timerfd_settime(int fd, int flags, \
211 1.1 ryo const struct linux_itimerspec *tim, \
212 1.1 ryo struct linux_itimerspec *otim); }
213 1.1 ryo 87 STD { int|linux_sys||timerfd_gettime(int fd, \
214 1.1 ryo struct linux_itimerspec *tim); }
215 1.1 ryo 88 STD { int|linux_sys||utimensat(int fd, const char *path, \
216 1.1 ryo struct linux_timespec *times, int flag); }
217 1.1 ryo 89 NOARGS { int|sys||acct(char *path); }
218 1.1 ryo 90 UNIMPL capget
219 1.1 ryo 91 UNIMPL capset
220 1.1 ryo 92 STD { int|linux_sys||personality(unsigned long per); }
221 1.1 ryo 93 STD { int|linux_sys||exit(int rval); }
222 1.1 ryo 94 STD { int|linux_sys||exit_group(int error_code); }
223 1.11 christos 95 STD { int|linux_sys||waitid(int idtype, id_t id, \
224 1.10 christos linux_siginfo_t *infop, int options, \
225 1.10 christos struct rusage50 *rusage); }
226 1.1 ryo 96 STD { int|linux_sys||set_tid_address(int *tid); }
227 1.1 ryo 97 UNIMPL unshare
228 1.1 ryo 98 STD { int|linux_sys||futex(int *uaddr, int op, int val, \
229 1.1 ryo const struct linux_timespec *timeout, int *uaddr2, \
230 1.1 ryo int val3); }
231 1.1 ryo ;
232 1.1 ryo ; The NetBSD native robust list calls have different
233 1.1 ryo ; argument names / types, but they are ABI-compatible
234 1.1 ryo ; with Linux.
235 1.1 ryo ;
236 1.1 ryo 99 NOARGS { int|sys||__futex_set_robust_list(void *head, \
237 1.1 ryo size_t len); }
238 1.1 ryo 100 NOARGS { int|sys||__futex_get_robust_list(lwpid_t lwpid, \
239 1.1 ryo void **headp, size_t *lenp); }
240 1.1 ryo 101 STD { int|linux_sys||nanosleep( \
241 1.1 ryo const struct linux_timespec *rqtp, \
242 1.1 ryo struct linux_timespec *rmtp); }
243 1.1 ryo 102 NOARGS { int|compat_50_sys||getitimer(int which, \
244 1.1 ryo struct itimerval50 *itv); }
245 1.1 ryo 103 NOARGS { int|compat_50_sys||setitimer(int which, \
246 1.1 ryo struct itimerval50 *itv, \
247 1.1 ryo struct itimerval50 *oitv); }
248 1.1 ryo 104 UNIMPL kexec_load
249 1.1 ryo 105 UNIMPL init_module
250 1.1 ryo 106 UNIMPL delete_module
251 1.1 ryo 107 STD { int|linux_sys||timer_create(clockid_t clockid, \
252 1.1 ryo struct linux_sigevent *evp, timer_t *timerid); }
253 1.1 ryo 108 STD { int|linux_sys||timer_gettime(timer_t timerid, \
254 1.1 ryo struct linux_itimerspec *tim); }
255 1.1 ryo 109 NOARGS { int|sys||timer_getoverrun(timer_t timerid); }
256 1.1 ryo 110 STD { int|linux_sys||timer_settime(timer_t timerid, \
257 1.1 ryo int flags, const struct linux_itimerspec *tim, \
258 1.1 ryo struct linux_itimerspec *otim); }
259 1.1 ryo 111 NOARGS { int|sys||timer_delete(timer_t timerid); }
260 1.1 ryo 112 STD { int|linux_sys||clock_settime(clockid_t which, \
261 1.1 ryo struct linux_timespec *tp); }
262 1.1 ryo 113 STD { int|linux_sys||clock_gettime(clockid_t which, \
263 1.1 ryo struct linux_timespec *tp); }
264 1.1 ryo 114 STD { int|linux_sys||clock_getres(clockid_t which, \
265 1.1 ryo struct linux_timespec *tp); }
266 1.1 ryo 115 STD { int|linux_sys||clock_nanosleep(clockid_t which, \
267 1.1 ryo int flags, struct linux_timespec *rqtp, \
268 1.1 ryo struct linux_timespec *rmtp); }
269 1.1 ryo 116 UNIMPL syslog
270 1.1 ryo 117 STD { int|linux_sys||ptrace(long request, long pid, \
271 1.1 ryo long addr, long data); }
272 1.1 ryo 118 STD { int|linux_sys||sched_setparam(pid_t pid, \
273 1.1 ryo const struct linux_sched_param *sp); }
274 1.1 ryo 119 STD { int|linux_sys||sched_setscheduler(pid_t pid, \
275 1.1 ryo int policy, const struct linux_sched_param *sp); }
276 1.1 ryo 120 STD { int|linux_sys||sched_getscheduler(pid_t pid); }
277 1.1 ryo 121 STD { int|linux_sys||sched_getparam(pid_t pid, \
278 1.1 ryo struct linux_sched_param *sp); }
279 1.1 ryo 122 STD { int|linux_sys||sched_setaffinity(pid_t pid, \
280 1.1 ryo unsigned int len, unsigned long *mask); }
281 1.1 ryo 123 STD { int|linux_sys||sched_getaffinity(pid_t pid, \
282 1.1 ryo unsigned int len, unsigned long *mask); }
283 1.1 ryo 124 STD { int|linux_sys||sched_yield(void); }
284 1.1 ryo 125 STD { int|linux_sys||sched_get_priority_max(int policy); }
285 1.1 ryo 126 STD { int|linux_sys||sched_get_priority_min(int policy); }
286 1.1 ryo 127 UNIMPL sys_sched_rr_get_interval
287 1.1 ryo 128 UNIMPL restart_syscall
288 1.1 ryo 129 STD { int|linux_sys||kill(int pid, int signum); }
289 1.1 ryo 130 STD { int|linux_sys||tkill(int tid, int sig); }
290 1.1 ryo 131 STD { int|linux_sys||tgkill(int tgid, int tid, int sig); }
291 1.1 ryo 132 STD { int|linux_sys||sigaltstack( \
292 1.1 ryo const struct linux_sigaltstack *ss, \
293 1.1 ryo struct linux_sigaltstack *oss); }
294 1.1 ryo 133 STD { int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \
295 1.1 ryo size_t sigsetsize); }
296 1.1 ryo 134 STD { int|linux_sys||rt_sigaction(int signum, \
297 1.1 ryo const struct linux_sigaction *nsa, \
298 1.1 ryo struct linux_sigaction *osa, \
299 1.1 ryo size_t sigsetsize); }
300 1.1 ryo 135 STD { int|linux_sys||rt_sigprocmask(int how, \
301 1.1 ryo const linux_sigset_t *set, \
302 1.1 ryo linux_sigset_t *oset, \
303 1.1 ryo size_t sigsetsize); }
304 1.1 ryo 136 STD { int|linux_sys||rt_sigpending( \
305 1.1 ryo linux_sigset_t *set, \
306 1.1 ryo size_t sigsetsize); }
307 1.1 ryo 137 STD { int|linux_sys||rt_sigtimedwait( \
308 1.1 ryo const linux_sigset_t *set, \
309 1.1 ryo linux_siginfo_t *info, \
310 1.1 ryo const struct linux_timespec *timeout); }
311 1.1 ryo 138 UNIMPL rt_sigqueueinfo
312 1.1 ryo 139 NOARGS { int|linux_sys||rt_sigreturn(void); }
313 1.1 ryo 140 NOARGS { int|sys||setpriority(int which, int who, int prio); }
314 1.1 ryo 141 STD { int|linux_sys||getpriority(int which, int who); }
315 1.1 ryo 142 STD { int|linux_sys||reboot(int magic1, int magic2, \
316 1.1 ryo int cmd, void *arg); }
317 1.1 ryo 143 NOARGS { int|sys||setregid(gid_t rgid, gid_t egid); }
318 1.1 ryo 144 NOARGS { int|sys||setgid(gid_t gid); }
319 1.1 ryo 145 NOARGS { int|sys||setreuid(uid_t ruid, uid_t euid); }
320 1.1 ryo 146 NOARGS { int|sys||setuid(uid_t uid); }
321 1.1 ryo 147 STD { int|linux_sys||setresuid(uid_t ruid, uid_t euid, \
322 1.1 ryo uid_t suid); }
323 1.1 ryo 148 STD { int|linux_sys||getresuid(uid_t *ruid, uid_t *euid, \
324 1.1 ryo uid_t *suid); }
325 1.1 ryo 149 STD { int|linux_sys||setresgid(gid_t rgid, gid_t egid, \
326 1.1 ryo gid_t sgid); }
327 1.1 ryo 150 STD { int|linux_sys||getresgid(gid_t *rgid, gid_t *egid, \
328 1.1 ryo gid_t *sgid); }
329 1.1 ryo 151 STD { int|linux_sys||setfsuid(uid_t uid); }
330 1.1 ryo 152 STD { int|linux_sys||setfsgid(gid_t gid); }
331 1.1 ryo 153 STD { int|linux_sys||times(struct times *tms); }
332 1.1 ryo 154 NOARGS { int|sys||setpgid(int pid, int pgid); }
333 1.1 ryo 155 NOARGS { pid_t|sys||getpgid(pid_t pid); }
334 1.1 ryo 156 NOARGS { pid_t|sys||getsid(pid_t pid); }
335 1.1 ryo 157 NOARGS { int|sys||setsid(void); }
336 1.1 ryo 158 NOARGS { int|sys||getgroups(int gidsetsize, gid_t *gidset); }
337 1.1 ryo 159 NOARGS { int|sys||setgroups(int gidsetsize, gid_t *gidset); }
338 1.1 ryo 160 STD { int|linux_sys||uname(struct linux_utsname *up); }
339 1.1 ryo 161 NOARGS { int|compat_43_sys||sethostname(char *hostname, \
340 1.1 ryo u_int len);}
341 1.1 ryo 162 STD { int|linux_sys||setdomainname(char *domainname, \
342 1.1 ryo int len); }
343 1.1 ryo 163 STD { int|linux_sys||getrlimit(int which, \
344 1.1 ryo struct rlimit *rlp); }
345 1.1 ryo 164 STD { int|linux_sys||setrlimit(u_int which, \
346 1.1 ryo struct rlimit *rlp); }
347 1.1 ryo 165 NOARGS { int|compat_50_sys||getrusage(int who, \
348 1.1 ryo struct rusage50 *rusage); }
349 1.1 ryo 166 NOARGS { int|sys||umask(int newmask); }
350 1.1 ryo 167 UNIMPL prctl
351 1.12 christos 168 STD { int|linux_sys||getcpu(unsigned int *cpu, \
352 1.12 christos unsigned int *node, \
353 1.12 christos struct linux_getcpu_cache *tcache); }
354 1.1 ryo 169 STD { int|linux_sys||gettimeofday(struct timeval50 *tp, \
355 1.1 ryo struct timezone *tzp); }
356 1.1 ryo 170 STD { int|linux_sys||settimeofday(struct timeval50 *tp, \
357 1.1 ryo struct timezone *tzp); }
358 1.1 ryo 171 UNIMPL adjtimex
359 1.1 ryo 172 STD { pid_t|sys||getpid(void); }
360 1.1 ryo 173 STD { pid_t|sys||getppid(void); }
361 1.1 ryo 174 NOARGS { uid_t|sys||getuid(void); }
362 1.1 ryo 175 NOARGS { uid_t|sys||geteuid(void); }
363 1.1 ryo 176 NOARGS { gid_t|sys||getgid(void); }
364 1.1 ryo 177 NOARGS { gid_t|sys||getegid(void); }
365 1.1 ryo 178 STD { pid_t|linux_sys||gettid(void); }
366 1.1 ryo 179 STD { int|linux_sys||sysinfo(struct linux_sysinfo *arg); }
367 1.13 christos 180 STD { linux_mqd_t|linux_sys||mq_open(const char *name, \
368 1.13 christos int oflag, linux_umode_t mode, \
369 1.13 christos struct linux_mq_attr *attr); }
370 1.13 christos 181 STD { int|linux_sys||mq_unlink(const char *name); }
371 1.13 christos 182 STD { int|linux_sys||mq_timedsend(linux_mqd_t mqdes, \
372 1.13 christos const char *msg_ptr, size_t msg_len, \
373 1.13 christos unsigned int msg_prio, \
374 1.13 christos const struct linux_timespec *abs_timeout); }
375 1.13 christos 183 STD { ssize_t|linux_sys||mq_timedreceive(linux_mqd_t mqdes, \
376 1.13 christos char *msg_ptr, size_t msg_len, \
377 1.13 christos unsigned int *msg_prio, \
378 1.13 christos const struct linux_timespec *abs_timeout); }
379 1.13 christos 184 STD { int|linux_sys||mq_notify(linux_mqd_t mqdes, \
380 1.13 christos const struct linux_sigevent *sevp); }
381 1.13 christos 185 STD { int|linux_sys||mq_getsetattr(linux_mqd_t mqdes, \
382 1.13 christos const struct linux_mq_attr *newattr, \
383 1.13 christos struct linux_mq_attr *oldattr); }
384 1.1 ryo #ifdef SYSVMSG
385 1.1 ryo 186 NOARGS { int|sys||msgget(key_t key, int msgflg); }
386 1.1 ryo 187 NOARGS { int|linux_sys||msgctl(int msqid, int cmd, \
387 1.1 ryo struct linux_msqid_ds *buf); }
388 1.1 ryo 188 NOARGS { ssize_t|sys||msgrcv(int msqid, void *msgp, \
389 1.1 ryo size_t msgsz, long msgtyp, int msgflg); }
390 1.1 ryo 189 NOARGS { int|sys||msgsnd(int msqid, void *msgp, size_t msgsz, \
391 1.1 ryo int msgflg); }
392 1.1 ryo #else
393 1.1 ryo 186 UNIMPL msgget
394 1.1 ryo 187 UNIMPL msgctl
395 1.1 ryo 188 UNIMPL msgrcv
396 1.1 ryo 189 UNIMPL msgsnd
397 1.1 ryo #endif
398 1.1 ryo #ifdef SYSVSEM
399 1.1 ryo 190 NOARGS { int|sys||semget(key_t key, int nsems, int semflg); }
400 1.1 ryo 191 STD { int|linux_sys||semctl(int semid, int semnum, \
401 1.1 ryo int cmd, union linux_semun arg); }
402 1.1 ryo 192 UNIMPL semtimedop
403 1.1 ryo 193 NOARGS { int|sys||semop(int semid, struct sembuf *sops, \
404 1.1 ryo size_t nsops); }
405 1.1 ryo #else
406 1.1 ryo 190 UNIMPL semget
407 1.1 ryo 191 UNIMPL semctl
408 1.1 ryo 192 UNIMPL semtimedop
409 1.1 ryo 193 UNIMPL semop
410 1.1 ryo #endif
411 1.1 ryo #ifdef SYSVSEM
412 1.1 ryo 194 NOARGS { int|linux_sys||shmget(key_t key, size_t size, \
413 1.1 ryo int shmflg); }
414 1.1 ryo 195 NOARGS { int|linux_sys||shmctl(int shmid, int cmd, \
415 1.1 ryo struct linux_shmid_ds *buf); }
416 1.1 ryo 196 NOARGS { int|sys||shmat(int shmid, void *shmaddr, int shmflg); }
417 1.1 ryo 197 NOARGS { int|sys||shmdt(const void *shmaddr); }
418 1.1 ryo #else
419 1.1 ryo 194 UNIMPL shmget
420 1.1 ryo 195 UNIMPL shmctl
421 1.1 ryo 196 UNIMPL shmat
422 1.1 ryo 197 UNIMPL shmdt
423 1.1 ryo #endif
424 1.1 ryo 198 STD { int|linux_sys||socket(int domain, \
425 1.1 ryo int type, int protocol); }
426 1.1 ryo 199 STD { int|linux_sys||socketpair(int domain, int type, \
427 1.1 ryo int protocol, int *rsv); }
428 1.1 ryo 200 STD { int|linux_sys||bind(int s, \
429 1.1 ryo const struct osockaddr *name, \
430 1.1 ryo unsigned int namelen); }
431 1.1 ryo 201 NOARGS { int|sys||listen(int s, int backlog); }
432 1.1 ryo 202 STD { int|linux_sys||accept(int s, struct osockaddr *name, \
433 1.1 ryo int *anamelen); } oaccept
434 1.1 ryo 203 STD { int|linux_sys||connect(int s, \
435 1.1 ryo const struct osockaddr *name, \
436 1.1 ryo unsigned int namelen); }
437 1.1 ryo 204 STD { int|linux_sys||getsockname(int fdec, void *asa, \
438 1.1 ryo int *alen); }
439 1.1 ryo 205 STD { int|linux_sys||getpeername(int fdes, \
440 1.1 ryo struct sockaddr *asa, unsigned int *alen); }
441 1.1 ryo 206 STD { ssize_t|linux_sys||sendto(int s, void *msg, int len, \
442 1.1 ryo int flags, struct osockaddr *to, int tolen); }
443 1.1 ryo 207 STD { ssize_t|linux_sys||recvfrom(int s, void *buf, \
444 1.1 ryo size_t len, int flags, struct osockaddr *from, \
445 1.1 ryo unsigned int *fromlenaddr); }
446 1.1 ryo 208 STD { int|linux_sys||setsockopt(int s, int level, \
447 1.1 ryo int optname, void *optval, int optlen); }
448 1.1 ryo 209 STD { int|linux_sys||getsockopt(int s, int level, \
449 1.1 ryo int optname, void *optval, int *optlen); }
450 1.1 ryo 210 NOARGS { int|sys||shutdown(int s, int how); }
451 1.1 ryo 211 STD { int|linux_sys||sendmsg(int s, \
452 1.1 ryo const struct linux_msghdr *msg, int flags); }
453 1.1 ryo 212 STD { ssize_t|linux_sys||recvmsg(int s, \
454 1.1 ryo struct linux_msghdr *msg, int flags); }
455 1.9 christos 213 STD { ssize_t|linux_sys||readahead(int fd, off_t offset, \
456 1.9 christos size_t count); }
457 1.1 ryo 214 STD { int|linux_sys||brk(char *nsize); }
458 1.1 ryo 215 NOARGS { int|sys||munmap(void *addr, size_t len); }
459 1.1 ryo 216 STD { void *|linux_sys||mremap(void *old_address, \
460 1.1 ryo size_t old_size, size_t new_size, u_long flags); }
461 1.1 ryo 217 UNIMPL add_key
462 1.1 ryo 218 UNIMPL request_key
463 1.1 ryo 219 UNIMPL keyctl
464 1.1 ryo 220 STD { int|linux_sys||clone(int flags, void *stack, \
465 1.1 ryo void *parent_tidptr, void *child_tidptr, void *tls); }
466 1.1 ryo 221 NOARGS { int|sys||execve(const char *path, char **argp, \
467 1.1 ryo char **envp); }
468 1.1 ryo 222 NOARGS { linux_off_t|linux_sys||mmap(unsigned long addr, \
469 1.1 ryo size_t len, int prot, int flags, int fd, \
470 1.1 ryo linux_off_t offset); }
471 1.1 ryo 223 STD { int|linux_sys||fadvise64(int fd, off_t offset, \
472 1.1 ryo size_t len, int advice); }
473 1.1 ryo 224 STD { int|linux_sys||swapon(char *name); }
474 1.1 ryo 225 STD { int|linux_sys||swapoff(const char *path); }
475 1.1 ryo 226 STD { int|linux_sys||mprotect(const void *start, \
476 1.1 ryo unsigned long len, int prot); }
477 1.1 ryo 227 NOARGS { int|sys|13|msync(void *addr, size_t len, int flags); }
478 1.1 ryo 228 NOARGS { int|sys||mlock(void *addr, size_t len); }
479 1.1 ryo 229 NOARGS { int|sys||munlock(void *addr, size_t len); }
480 1.1 ryo 230 NOARGS { int|sys||mlockall(int flags); }
481 1.1 ryo 231 NOARGS { int|sys||munlockall(void); }
482 1.1 ryo 232 NOARGS { int|sys||mincore(void *addr, size_t len, char *vec); }
483 1.1 ryo 233 NOARGS { int|sys||madvise(void *addr, size_t len, int behav); }
484 1.1 ryo 234 UNIMPL remap_file_pages
485 1.1 ryo 235 UNIMPL mbind
486 1.1 ryo 236 UNIMPL get_mempolicy
487 1.1 ryo 237 UNIMPL set_mempolicy
488 1.1 ryo 238 UNIMPL migrate_pages
489 1.1 ryo 239 UNIMPL move_pages
490 1.1 ryo 240 UNIMPL rt_tgsigqueueinfo
491 1.1 ryo 241 UNIMPL perf_event_open
492 1.1 ryo 242 STD { int|linux_sys||accept4(int s, \
493 1.1 ryo struct osockaddr *name, \
494 1.1 ryo int *anamelen, int flags); }
495 1.1 ryo 243 STD { int|linux_sys||recvmmsg(int s, \
496 1.1 ryo struct linux_mmsghdr *msgvec, unsigned int vlen, \
497 1.1 ryo unsigned int flags, struct timespec *timeout); }
498 1.1 ryo 244 UNIMPL arch_specific_syscall
499 1.1 ryo 245 UNIMPL
500 1.1 ryo 246 UNIMPL
501 1.1 ryo 247 UNIMPL
502 1.1 ryo 248 UNIMPL
503 1.1 ryo 249 UNIMPL
504 1.1 ryo 250 UNIMPL
505 1.1 ryo 251 UNIMPL
506 1.1 ryo 252 UNIMPL
507 1.1 ryo 253 UNIMPL
508 1.1 ryo 254 UNIMPL
509 1.1 ryo 255 UNIMPL
510 1.1 ryo 256 UNIMPL
511 1.1 ryo 257 UNIMPL
512 1.1 ryo 258 UNIMPL
513 1.1 ryo 259 UNIMPL
514 1.1 ryo 260 STD { int|linux_sys||wait4(int pid, int *status, \
515 1.1 ryo int options, struct rusage50 *rusage); }
516 1.4 ryo 261 STD { int|linux_sys||prlimit64(pid_t pid, int which, \
517 1.4 ryo struct rlimit *new_rlp, struct rlimit *old_rlp); }
518 1.1 ryo 262 UNIMPL fanotify_init
519 1.1 ryo 263 UNIMPL fanotify_mark
520 1.1 ryo 264 UNIMPL name_to_handle_at
521 1.1 ryo 265 UNIMPL open_by_handle_at
522 1.1 ryo 266 UNIMPL clock_adjtime
523 1.14 christos 267 STD { int|linux_sys||syncfs(int fd); }
524 1.1 ryo 268 UNIMPL setns
525 1.1 ryo 269 STD { int|linux_sys||sendmmsg(int s, \
526 1.1 ryo struct linux_mmsghdr *msgvec, unsigned int vlen, \
527 1.1 ryo unsigned int flags); }
528 1.1 ryo 270 UNIMPL process_vm_readv
529 1.1 ryo 271 UNIMPL process_vm_writev
530 1.1 ryo 272 UNIMPL kcmp
531 1.1 ryo 273 UNIMPL finit_module
532 1.1 ryo 274 UNIMPL sched_setattr
533 1.1 ryo 275 UNIMPL sched_getattr
534 1.14 christos 276 STD { int|linux_sys||renameat2(int fromfd, \
535 1.14 christos const char *from, int tofd, const char *to, \
536 1.14 christos unsigned int flags); }
537 1.1 ryo 277 UNIMPL seccomp
538 1.2 ryo 278 NOARGS { ssize_t|sys||getrandom(void *buf, size_t buflen, \
539 1.2 ryo unsigned int flags); }
540 1.5 christos 279 STD { int|linux_sys||memfd_create(const char *name, \
541 1.5 christos unsigned int flags); }
542 1.1 ryo 280 UNIMPL bpf
543 1.1 ryo 281 UNIMPL execveat
544 1.1 ryo 282 UNIMPL userfaultfd
545 1.1 ryo 283 UNIMPL membarrier
546 1.1 ryo 284 UNIMPL mlock2
547 1.14 christos 285 STD { ssize_t|linux_sys||copy_file_range(int fd_in, \
548 1.14 christos off_t * off_in, int fd_out, off_t * off_out, \
549 1.14 christos size_t len, unsigned int flags); }
550 1.1 ryo 286 UNIMPL preadv2
551 1.1 ryo 287 UNIMPL pwritev2
552 1.1 ryo 288 UNIMPL pkey_mprotect
553 1.1 ryo 289 UNIMPL pkey_alloc
554 1.1 ryo 290 UNIMPL pkey_free
555 1.3 ryo 291 STD { int|linux_sys||statx(int fd, const char *path, \
556 1.3 ryo int flag, unsigned int mask, \
557 1.3 ryo struct linux_statx *sp); }
558 1.1 ryo 292 UNIMPL io_pgetevents
559 1.1 ryo 293 UNIMPL rseq
560 1.1 ryo 294 UNIMPL kexec_file_load
561 1.1 ryo 295 UNIMPL
562 1.1 ryo 296 UNIMPL
563 1.1 ryo 297 UNIMPL
564 1.1 ryo 298 UNIMPL
565 1.1 ryo 299 UNIMPL
566 1.1 ryo 300 UNIMPL
567 1.1 ryo 301 UNIMPL
568 1.1 ryo 302 UNIMPL
569 1.1 ryo 303 UNIMPL
570 1.1 ryo 304 UNIMPL
571 1.1 ryo 305 UNIMPL
572 1.1 ryo 306 UNIMPL
573 1.1 ryo 307 UNIMPL
574 1.1 ryo 308 UNIMPL
575 1.1 ryo 309 UNIMPL
576 1.1 ryo 310 UNIMPL
577 1.1 ryo 311 UNIMPL
578 1.1 ryo 312 UNIMPL
579 1.1 ryo 313 UNIMPL
580 1.1 ryo 314 UNIMPL
581 1.1 ryo 315 UNIMPL
582 1.1 ryo 316 UNIMPL
583 1.1 ryo 317 UNIMPL
584 1.1 ryo 318 UNIMPL
585 1.1 ryo 319 UNIMPL
586 1.1 ryo 320 UNIMPL
587 1.1 ryo 321 UNIMPL
588 1.1 ryo 322 UNIMPL
589 1.1 ryo 323 UNIMPL
590 1.1 ryo 324 UNIMPL
591 1.1 ryo 325 UNIMPL
592 1.1 ryo 326 UNIMPL
593 1.1 ryo 327 UNIMPL
594 1.1 ryo 328 UNIMPL
595 1.1 ryo 329 UNIMPL
596 1.1 ryo 330 UNIMPL
597 1.1 ryo 331 UNIMPL
598 1.1 ryo 332 UNIMPL
599 1.1 ryo 333 UNIMPL
600 1.1 ryo 334 UNIMPL
601 1.1 ryo 335 UNIMPL
602 1.1 ryo 336 UNIMPL
603 1.1 ryo 337 UNIMPL
604 1.1 ryo 338 UNIMPL
605 1.1 ryo 339 UNIMPL
606 1.1 ryo 340 UNIMPL
607 1.1 ryo 341 UNIMPL
608 1.1 ryo 342 UNIMPL
609 1.1 ryo 343 UNIMPL
610 1.1 ryo 344 UNIMPL
611 1.1 ryo 345 UNIMPL
612 1.1 ryo 346 UNIMPL
613 1.1 ryo 347 UNIMPL
614 1.1 ryo 348 UNIMPL
615 1.1 ryo 349 UNIMPL
616 1.1 ryo 350 UNIMPL
617 1.1 ryo 351 UNIMPL
618 1.1 ryo 352 UNIMPL
619 1.1 ryo 353 UNIMPL
620 1.1 ryo 354 UNIMPL
621 1.1 ryo 355 UNIMPL
622 1.1 ryo 356 UNIMPL
623 1.1 ryo 357 UNIMPL
624 1.1 ryo 358 UNIMPL
625 1.1 ryo 359 UNIMPL
626 1.1 ryo 360 UNIMPL
627 1.1 ryo 361 UNIMPL
628 1.1 ryo 362 UNIMPL
629 1.1 ryo 363 UNIMPL
630 1.1 ryo 364 UNIMPL
631 1.1 ryo 365 UNIMPL
632 1.1 ryo 366 UNIMPL
633 1.1 ryo 367 UNIMPL
634 1.1 ryo 368 UNIMPL
635 1.1 ryo 369 UNIMPL
636 1.1 ryo 370 UNIMPL
637 1.1 ryo 371 UNIMPL
638 1.1 ryo 372 UNIMPL
639 1.1 ryo 373 UNIMPL
640 1.1 ryo 374 UNIMPL
641 1.1 ryo 375 UNIMPL
642 1.1 ryo 376 UNIMPL
643 1.1 ryo 377 UNIMPL
644 1.1 ryo 378 UNIMPL
645 1.1 ryo 379 UNIMPL
646 1.1 ryo 380 UNIMPL
647 1.1 ryo 381 UNIMPL
648 1.1 ryo 382 UNIMPL
649 1.1 ryo 383 UNIMPL
650 1.1 ryo 384 UNIMPL
651 1.1 ryo 385 UNIMPL
652 1.1 ryo 386 UNIMPL
653 1.1 ryo 387 UNIMPL
654 1.1 ryo 388 UNIMPL
655 1.1 ryo 389 UNIMPL
656 1.1 ryo 390 UNIMPL
657 1.1 ryo 391 UNIMPL
658 1.1 ryo 392 UNIMPL
659 1.1 ryo 393 UNIMPL
660 1.1 ryo 394 UNIMPL
661 1.1 ryo 395 UNIMPL
662 1.1 ryo 396 UNIMPL
663 1.1 ryo 397 UNIMPL
664 1.1 ryo 398 UNIMPL
665 1.1 ryo 399 UNIMPL
666 1.1 ryo 400 UNIMPL
667 1.1 ryo 401 UNIMPL
668 1.1 ryo 402 UNIMPL
669 1.1 ryo 403 UNIMPL
670 1.1 ryo 404 UNIMPL
671 1.1 ryo 405 UNIMPL
672 1.1 ryo 406 UNIMPL
673 1.1 ryo 407 UNIMPL
674 1.1 ryo 408 UNIMPL
675 1.1 ryo 409 UNIMPL
676 1.1 ryo 410 UNIMPL
677 1.1 ryo 411 UNIMPL
678 1.1 ryo 412 UNIMPL
679 1.1 ryo 413 UNIMPL
680 1.1 ryo 414 UNIMPL
681 1.1 ryo 415 UNIMPL
682 1.1 ryo 416 UNIMPL
683 1.1 ryo 417 UNIMPL
684 1.1 ryo 418 UNIMPL
685 1.1 ryo 419 UNIMPL
686 1.1 ryo 420 UNIMPL
687 1.1 ryo 421 UNIMPL
688 1.1 ryo 422 UNIMPL
689 1.1 ryo 423 UNIMPL
690 1.1 ryo 424 UNIMPL pidfd_send_signal
691 1.1 ryo 425 UNIMPL io_uring_setup
692 1.1 ryo 426 UNIMPL io_uring_enter
693 1.1 ryo 427 UNIMPL io_uring_register
694 1.1 ryo 428 UNIMPL open_tree
695 1.1 ryo 429 UNIMPL move_mount
696 1.1 ryo 430 UNIMPL fsopen
697 1.1 ryo 431 UNIMPL fsconfig
698 1.1 ryo 432 UNIMPL fsmount
699 1.1 ryo 433 UNIMPL fspick
700 1.1 ryo 434 UNIMPL pidfd_open
701 1.14 christos 435 STD { int|linux_sys||clone3( \
702 1.14 christos struct linux_user_clone3_args *cl_args, \
703 1.14 christos size_t size); }
704 1.9 christos 436 STD { int|linux_sys||close_range(unsigned int first, \
705 1.9 christos unsigned int last, unsigned int flags); }
706 1.1 ryo 437 UNIMPL openat2
707 1.1 ryo 438 UNIMPL pidfd_getfd
708 1.12 christos 439 STD { int|linux_sys||faccessat2(int fd, const char *path, \
709 1.12 christos int amode, int flags); }
710 1.1 ryo
711 1.1 ryo ; we want a "nosys" syscall, we'll just add an extra entry for it.
712 1.1 ryo 440 STD { int|linux_sys||nosys(void); }
713 1.6 christos 441 STD { int|linux_sys||epoll_pwait2(int epfd, \
714 1.6 christos struct linux_epoll_event *events, int maxevents, \
715 1.6 christos const struct linux_timespec *timeout, \
716 1.6 christos const linux_sigset_t *sigmask); }
717