$NetBSD: syscalls.master,v 1.16 2014/05/29 10:41:48 njoly Exp $
; @(#)syscalls.master 8.2 (Berkeley) 1/13/94
; NetBSD system call name/number "master" file.
; (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 NODEF, UNIMPL, or NOARGS
;
; types:
; NODEF always included
; UNIMPL unimplemented, not included in system
; NODEF included, but don't define the syscall number
; NOARGS included, but don't define the syscall args structure
;
; arguments:
; PAD argument not part of the C interface, used only for padding
;
;
; The purpose of this syscalls.master is to map to the Linux types which
; are marshalled into the arg structure by the clientside rump_syscalls.c
; code in librumpclient.
;
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/signal.h>
#include <sys/socket.h>
#include <sys/mount.h>
#include <sys/sched.h>
#include <sys/syscallargs.h>
#include <compat/linux/common/linux_types.h>
#include <compat/linux/common/linux_signal.h>
#include <compat/linux/linux_syscallargs.h>
#include <compat/linux/linux_syscall.h>
#ifdef LINUX_SYS_socketcall
#include <compat/linux/common/linux_socketcall.h>
#endif
#include "rump_linux_syscallargs.h"
%%
0 NOARGS { int|linux_sys||nosys(void); }
1 UNIMPL exit
2 UNIMPL fork
3 NOARGS { ssize_t|sys||read(int fd, void *buf, size_t nbyte); }
4 NOARGS { ssize_t|sys||write(int fd, const void *buf, \
size_t nbyte); }
5 NOARGS { int|linux_sys||open(const char *path, \
int flags, int mode); }
6 NOARGS { int|sys||close(int fd); }
7 UNIMPL wait4
8 UNIMPL creat
9 NOARGS { int|sys||link(const char *path, const char *link); }
10 NOARGS { int|linux_sys||unlink(const char *path); }
11 UNIMPL execv
12 NOARGS { int|sys||chdir(const char *path); }
13 NOARGS { int|sys||fchdir(int fd); }
14 UNIMPL mknod
15 NOARGS { int|sys||chmod(const char *path, mode_t mode); }
16 NOARGS { int|sys||__posix_chown(const char *path, uid_t uid, \
gid_t gid); }
17 UNIMPL obreak
18 UNIMPL getfsstat
19 UNIMPL lseek
20 NOARGS { pid_t|sys||getpid_with_ppid(void); } getpid
21 UNIMPL mount
22 UNIMPL unmount
23 NOARGS { int|sys||setuid(uid_t uid); }
24 NOARGS { uid_t|sys||getuid_with_euid(void); } getuid
25 NOARGS { uid_t|sys||geteuid(void); }
26 UNIMPL ptrace
27 NOARGS { ssize_t|linux_sys||recvmsg(int s, \
struct linux_msghdr *msg, int flags); }
28 NOARGS { ssize_t|linux_sys||sendmsg(int s, \
const struct linux_msghdr *msg, int flags); }
29 NOARGS { ssize_t|linux_sys||recvfrom(int s, void *buf, \
int len, int flags, struct osockaddr *from, \
int *fromlenaddr); }
30 NOARGS { int|linux_sys||accept(int s, struct osockaddr *name, \
int *anamelen); }
31 NOARGS { int|linux_sys||getpeername(int fdes, \
struct osockaddr *asa, int *alen); }
32 NOARGS { int|linux_sys||getsockname(int fdes, \
struct osockaddr *asa, int *alen); }
33 NOARGS { int|sys||access(const char *path, int flags); }
34 UNIMPL chflags
35 UNIMPL fchflags
36 NOARGS { void|sys||sync(void); }
37 UNIMPL kill
38 UNIMPL stat
39 UNIMPL getppid
40 UNIMPL lstat
41 NOARGS { int|sys||dup(int fd); }
; we mimic the librumpclient calling convention, therefore no linux_sys_pipe
42 NOARGS { int|sys||pipe(void); }
43 UNIMPL getegid
44 UNIMPL profil
45 UNIMPL ktrace
46 UNIMPL sigaction
47 NOARGS { gid_t|sys||getgid_with_egid(void); } getgid
48 UNIMPL sigprocmask
49 UNIMPL __getlogin
50 UNIMPL __setlogin
51 UNIMPL acct
52 UNIMPL sigpending
53 UNIMPL sigaltstack
54 NOARGS { int|linux_sys||ioctl(int fd, \
u_long com, void *data); }
55 UNIMPL reboot
56 UNIMPL revoke
57 NOARGS { int|sys||symlink(const char *path, \
const char *link); }
58 NOARGS { ssize_t|sys||readlink(const char *path, char *buf, \
int count); }
59 UNIMPL execve
60 NOARGS { mode_t|sys||umask(mode_t newmask); }
61 NOARGS { int|sys||chroot(const char *path); }
62 UNIMPL fstat43
63 UNIMPL getkerninfo
64 UNIMPL getpagesize
65 UNIMPL msync
66 UNIMPL vfork
67 UNIMPL vread
68 UNIMPL vwrite
69 UNIMPL sbrk
70 UNIMPL sstk
71 UNIMPL mmap
72 UNIMPL ovadvise
73 UNIMPL munmap
74 UNIMPL mprotect
75 UNIMPL madvise
76 UNIMPL vhangup
77 UNIMPL vlimit
78 UNIMPL mincore
79 NOARGS { int|sys||getgroups(int gidsetsize, \
int *gidset); }
80 NOARGS { int|sys||setgroups(int gidsetsize, \
const int *gidset); }
81 NOARGS { int|sys||getpgrp(void); }
82 NOARGS { int|sys||setpgid(int pid, int pgid); }
83 UNIMPL setitimer
84 UNIMPL wait
85 UNIMPL swapon
86 UNIMPL getitimer
87 UNIMPL gethostname
88 UNIMPL sethostname
89 UNIMPL getdtablesize
90 NOARGS { int|sys||dup2(int from, int to); }
91 UNIMPL getdopt
92 NOARGS { int|linux_sys||fcntl(int fd, int cmd, void *arg); }
93 UNIMPL select
94 UNIMPL setdopt
95 NOARGS { int|sys||fsync(int fd); }
96 UNIMPL setpriority
97 UNIMPL socket
98 NOARGS { int|linux_sys||connect(int s, \
const struct osockaddr *name, \
unsigned int namelen); }
99 UNIMPL accept
100 UNIMPL getpriority
101 UNIMPL send
102 UNIMPL recv
103 UNIMPL sigreturn
104 NOARGS { int|linux_sys||bind(int s, \
const struct osockaddr *name, unsigned namelen); }
105 NOARGS { int|linux_sys||setsockopt(int s, int level, \
int name, const void *val, int optlen); }
106 NOARGS { int|sys||listen(int s, int backlog); }
107 UNIMPL vtimes
108 UNIMPL sigvec
109 UNIMPL sigblock
110 UNIMPL sigsetmask
111 UNIMPL sigsuspend
112 UNIMPL sigstack
113 UNIMPL orecvmsg
114 UNIMPL osendmsg
115 UNIMPL vtrace
116 UNIMPL gettimeofday
117 UNIMPL getrusage
118 NOARGS { int|linux_sys||getsockopt(int s, int level, \
int name, void *val, int *avalsize); }
119 UNIMPL resuba
120 NOARGS { ssize_t|sys||readv(int fd, \
const struct iovec *iovp, int iovcnt); }
121 NOARGS { ssize_t|sys||writev(int fd, \
const struct iovec *iovp, int iovcnt); }
122 UNIMPL settimeofday
123 NOARGS { int|sys||__posix_fchown(int fd, int uid, int gid); }
124 NOARGS { int|sys||fchmod(int fd, mode_t mode); }
125 UNIMPL orecvfrom
126 NOARGS { int|sys||setreuid(uid_t ruid, uid_t euid); }
127 NOARGS { int|sys||setregid(gid_t rgid, gid_t egid); }
128 NOARGS { int|sys||__posix_rename(const char *from, \
const char *to); }
129 UNIMPL otruncate
130 UNIMPL oftruncate
131 NOARGS { int|sys||flock(int fd, int how); }
132 UNIMPL mkfifo
133 NOARGS { int|linux_sys||sendto(int s, void *buf, \
int len, int flags, const struct osockaddr *to, \
int tolen); }
134 NOARGS { int|sys||shutdown(int s, int how); }
135 NOARGS { int|linux_sys||socketpair(int domain, int type, \
int protocol, int *rsv); }
136 NOARGS { int|sys||mkdir(const char *path, mode_t mode); }
137 NOARGS { int|sys||rmdir(const char *path); }
138 UNIMPL utimes
139 UNIMPL 4.2 sigreturn
140 UNIMPL adjtime
141 UNIMPL ogetpeername
142 UNIMPL ogethostid
143 UNIMPL osethostid
144 UNIMPL ogetrlimit
145 UNIMPL osetrlimit
146 UNIMPL okillpg
147 NOARGS { int|sys||setsid(void); }
148 UNIMPL quotactl
149 UNIMPL oquota
150 UNIMPL ogetsockname
; Syscalls 151-180 inclusive are reserved for vendor-specific
; system calls. (This includes various calls added for compatibity
; with other Unix variants.)
; Some of these calls are now supported by BSD...
151 UNIMPL
152 UNIMPL
153 UNIMPL
154 UNIMPL
155 UNIMPL nfssvc
156 UNIMPL ogetdirentries
157 UNIMPL statfs12
158 UNIMPL fstatfs12
159 UNIMPL
160 UNIMPL
161 UNIMPL getfh30
162 UNIMPL ogetdomainname
163 UNIMPL osetdomainname
164 UNIMPL ouname
165 UNIMPL sysarch
166 UNIMPL
167 UNIMPL
168 UNIMPL
169 UNIMPL 1.0 semsys
170 UNIMPL 1.0 msgsys
171 UNIMPL 1.0 shmsys
172 UNIMPL
173 NOARGS { ssize_t|sys||pread(int fd, char *buf, \
size_t nbyte, int PAD, off_t offset); }
174 NOARGS { ssize_t|sys||pwrite(int fd, char *buf, \
size_t nbyte, int PAD, off_t offset); }
175 UNIMPL ntp_gettime
176 UNIMPL ntp_adjtime
177 UNIMPL
178 UNIMPL
179 UNIMPL
180 UNIMPL
; Syscalls 180-199 are used by/reserved for BSD
181 NOARGS { int|sys||setgid(gid_t gid); }
182 NOARGS { int|sys||setegid(gid_t egid); }
183 NOARGS { int|sys||seteuid(uid_t euid); }
184 UNIMPL lfs_bmapv
185 UNIMPL lfs_markv
186 UNIMPL lfs_segclean
187 UNIMPL lfs_segwait
188 UNIMPL stat12
189 UNIMPL fstat12
190 UNIMPL lstat12
191 UNIMPL pathconf
192 UNIMPL fpathconf
193 UNIMPL
194 NOARGS { int|linux_sys||getrlimit(int which, \
struct orlimit *rlp); }
195 NOARGS { int|linux_sys||setrlimit(int which, \
const struct orlimit *rlp); }
196 UNIMPL getdirentries
197 UNIMPL mmap
198 UNIMPL __syscall
199 NOARGS { off_t|sys||lseek(int fd, int PAD, off_t offset, \
int whence); }
200 NOARGS { int|sys||truncate(const char *path, int PAD, \
off_t length); }
201 NOARGS { int|sys||ftruncate(int fd, int PAD, off_t length); }
202 UNIMPL __sysctl
203 UNIMPL mlock
204 UNIMPL munlock
205 UNIMPL undelete
206 UNIMPL futimes
207 NOARGS { pid_t|sys||getpgid(pid_t pid); }
208 UNIMPL reboot
209 NOARGS { int|sys||poll(struct pollfd *fds, u_int nfds, \
int timeout); }
;
; Syscalls 210-219 are reserved for dynamically loaded syscalls
;
210 UNIMPL afssys
211 UNIMPL
212 UNIMPL
213 UNIMPL
214 UNIMPL
215 UNIMPL
216 UNIMPL
217 UNIMPL
218 UNIMPL
219 UNIMPL
220 UNIMPL compat_14_semctl
221 UNIMPL semget
222 UNIMPL semop
223 UNIMPL semconfig
224 UNIMPL compat_14_msgctl
225 UNIMPL msgget
226 UNIMPL msgsnd
227 UNIMPL msgrcv
228 UNIMPL shmat
229 UNIMPL compat_14_shmctl
230 UNIMPL shmdt
231 UNIMPL shmget
232 UNIMPL clock_gettime
233 UNIMPL clock_settime
234 UNIMPL clock_getres
235 UNIMPL timer_create
236 UNIMPL timer_delete
237 UNIMPL timer_settime
238 UNIMPL timer_gettime
239 UNIMPL timer_getoverrun
;
; Syscalls 240-269 are reserved for other IEEE Std1003.1b syscalls
;
240 UNIMPL nanosleep
241 NOARGS { int|linux_sys||fdatasync(int fd); }
242 UNIMPL mlockall
243 UNIMPL munlockall
244 UNIMPL __sigtimedwait
245 UNIMPL sigqueueinfo
246 UNIMPL modctl
247 UNIMPL _ksem_init
248 UNIMPL _ksem_open
249 UNIMPL _ksem_unlink
250 UNIMPL _ksem_close
251 UNIMPL _ksem_post
252 UNIMPL _ksem_wait
253 UNIMPL _ksem_trywait
254 UNIMPL _ksem_getvalue
255 UNIMPL _ksem_destroy
256 UNIMPL _ksem_timedwait
257 UNIMPL mq_open
258 UNIMPL mq_close
259 UNIMPL mq_unlink
260 UNIMPL mq_getattr
261 UNIMPL mq_setattr
262 UNIMPL mq_notify
263 UNIMPL mq_send
264 UNIMPL mq_receive
265 UNIMPL mq_timedsend
266 UNIMPL mq_timedreceive
267 UNIMPL
268 UNIMPL
269 UNIMPL
270 UNIMPL __posix_rename
271 UNIMPL swapctl
272 UNIMPL getdents
273 UNIMPL minherit
274 UNIMPL lchmod
275 NOARGS { int|sys||__posix_lchown(const char *path, uid_t uid, \
gid_t gid); }
276 UNIMPL lutimes
277 UNIMPL msync
278 UNIMPL stat
279 UNIMPL fstat
280 UNIMPL lstat
281 UNIMPL sigaltstack
282 UNIMPL vfork
283 UNIMPL __posix_chown
284 UNIMPL __posix_fchown
285 UNIMPL __posix_lchown
286 NOARGS { pid_t|sys||getsid(pid_t pid); }
287 UNIMPL __clone
288 UNIMPL fktrace
289 UNIMPL { ssize_t|sys||preadv(int fd, \
const struct iovec *iovp, int iovcnt, \
int PAD, off_t offset); }
290 UNIMPL { ssize_t|sys||pwritev(int fd, \
const struct iovec *iovp, int iovcnt, \
int PAD, off_t offset); }
291 UNIMPL sigaction
292 UNIMPL sigpending
293 UNIMPL sigprocmask
294 UNIMPL sigsuspend
295 UNIMPL sigreturn
296 NOARGS { int|sys||__getcwd(char *bufp, size_t length); }
297 NOARGS { int|sys||fchroot(int fd); }
298 UNIMPL fhopen
299 UNIMPL fhstat
300 UNIMPL fhstatfs
301 UNIMPL ____semctl13
302 UNIMPL __msgctl13
303 UNIMPL __shmctl13
304 UNIMPL lchflags
305 UNIMPL issetugid
306 UNIMPL utrace
307 UNIMPL getcontext
308 UNIMPL setcontext
309 UNIMPL _lwp_create
310 UNIMPL _lwp_exit
311 UNIMPL _lwp_self
312 UNIMPL _lwp_wait
313 UNIMPL _lwp_suspend
314 UNIMPL _lwp_continue
315 UNIMPL _lwp_wakeup
316 UNIMPL _lwp_getprivate
317 UNIMPL _lwp_setprivate
318 UNIMPL _lwp_kill
319 UNIMPL _lwp_detach
320 UNIMPL _lwp_park
321 UNIMPL _lwp_unpark
322 UNIMPL _lwp_unpark_all
323 UNIMPL _lwp_setname
324 UNIMPL _lwp_getname
325 UNIMPL _lwp_ctl
; Syscalls 326-339 reserved for LWP syscalls.
326 UNIMPL
327 UNIMPL
328 UNIMPL
329 UNIMPL
; SA system calls.
330 UNIMPL sa_register
331 UNIMPL sa_stacks
332 UNIMPL sa_enable
333 UNIMPL sa_setconcurrency
334 UNIMPL sa_yield
335 UNIMPL sa_preempt
336 UNIMPL sys_sa_unblockyield
;
; Syscalls 337-339 are reserved for other scheduler activation syscalls.
;
337 UNIMPL
338 UNIMPL
339 UNIMPL
340 UNIMPL __sigaction_sigtramp
341 UNIMPL pmc_get_info
342 UNIMPL pmc_control
343 UNIMPL rasctl
344 UNIMPL kqueue
345 UNIMPL kevent
; Scheduling system calls.
346 UNIMPL _sched_setparam
347 UNIMPL _sched_getparam
348 UNIMPL _sched_setaffinity
349 UNIMPL _sched_getaffinity
350 UNIMPL sched_yield
351 UNIMPL
352 UNIMPL
353 UNIMPL
354 UNIMPL fsync_range
355 UNIMPL uuidgen
356 UNIMPL getvfsstat
357 UNIMPL statvfs1
358 UNIMPL fstatvfs1
359 UNIMPL fhstatvfs1
360 UNIMPL extattrctl
361 UNIMPL extattr_set_file
362 UNIMPL extattr_get_file
363 UNIMPL extattr_delete_file
364 UNIMPL extattr_set_fd
365 UNIMPL extattr_get_fd
366 UNIMPL extattr_delete_fd
367 UNIMPL extattr_set_link
368 UNIMPL extattr_get_link
369 UNIMPL extattr_delete_link
370 UNIMPL extattr_list_fd
371 UNIMPL extattr_list_file
372 UNIMPL extattr_list_link
373 UNIMPL pselect
374 UNIMPL pollts
375 UNIMPL setxattr
376 UNIMPL lsetxattr
377 UNIMPL fsetxattr
378 UNIMPL getxattr
379 UNIMPL lgetxattr
380 UNIMPL fgetxattr
381 UNIMPL listxattr
382 UNIMPL llistxattr
383 UNIMPL flistxattr
384 UNIMPL removexattr
385 UNIMPL lremovexattr
386 UNIMPL fremovexattr
387 UNIMPL stat30
388 UNIMPL fstat30
389 UNIMPL lstat30
390 NOARGS { int|linux_sys||getdents64(int fd, \
struct linux_dirent64 *dent, unsigned int count); }
391 UNIMPL old posix_fadvise
392 UNIMPL fhstat
393 UNIMPL ntp_gettime
394 NOARGS { int|linux_sys||socket(int domain, \
int type, int protocol); }
395 UNIMPL getfh
396 UNIMPL fhopen
397 UNIMPL fhstatvfs1
398 UNIMPL fhstat
; Asynchronous I/O system calls
399 UNIMPL aio_cancel
400 UNIMPL aio_error
401 UNIMPL aio_fsync
402 UNIMPL aio_read
403 UNIMPL aio_return
404 UNIMPL aio_suspend
405 UNIMPL aio_write
406 UNIMPL lio_listio
407 UNIMPL
408 UNIMPL
409 UNIMPL
410 UNIMPL mount
411 UNIMPL mremap
; Processor-sets system calls
412 UNIMPL pset_create
413 UNIMPL pset_destroy
414 UNIMPL pset_assign
415 UNIMPL _pset_bind
416 UNIMPL fadvise
417 NOARGS { int|linux_sys||select(int nd, \
fd_set *in, fd_set *ou, fd_set *ex, \
struct timeval50 *tv); }
418 NOARGS { int|linux_sys||gettimeofday(struct timeval50 *tp, \
struct timezone *tzp); }
419 NOARGS { int|linux_sys||settimeofday(struct timeval50 *tp, \
struct timezone *tzp); }
420 NOARGS { int|compat_50_sys||utimes(const char *path, \
const struct timveval50 *tptr); }
421 UNIMPL adjtime
422 UNIMPL lfs_segwait
423 NOARGS { int|sys|50|futimes(int fd, \
const struct timeval *tptr); }
424 NOARGS { int|sys|50|lutimes(const char *path, \
const struct timeval *tptr); }
425 UNIMPL setitimer
426 UNIMPL getitimer
427 NOARGS { int|linux_sys||clock_gettime(clockid_t which, \
struct linux_timespec *tp); }
428 NOARGS { int|linux_sys||clock_settime(clockid_t which, \
struct linux_timespec *tp); }
429 NOARGS { int|linux_sys||clock_getres(clockid_t which, \
struct linux_timespec *tp); }
430 NOARGS { int|linux_sys||nanosleep( \
const struct linux_timespec *rqtp, \
struct linux_timespec *rmtp); }
431 UNIMPL __sigtimedwait
432 UNIMPL mq_timedsend
433 UNIMPL mq_timedreceive
434 UNIMPL _lwp_park
435 UNIMPL kevent
436 UNIMPL pselect
437 NOARGS { int|linux_sys||ppoll(struct pollfd *fds, \
u_int nfds, const struct linux_timespec *timeout, \
const linux_sigset_t *mask);}
438 UNIMPL aio_suspend
439 NOARGS { int|linux_sys||stat64(const char *path, \
struct linux_stat64 *sp); }
440 NOARGS { int|linux_sys||fstat64(int fd, \
struct linux_stat64 *sp); }
441 NOARGS { int|linux_sys||lstat64(const char *path, \
struct linux_stat64 *sp); }
442 UNIMPL __semctl
443 UNIMPL shmctl
444 UNIMPL msgctl
445 UNIMPL getrusage
446 UNIMPL timer_settime
447 UNIMPL timer_gettime
448 UNIMPL ntp_gettime
449 UNIMPL wait4
450 NOARGS { int|linux_sys||mknod(const char *path, mode_t mode, \
int dev); }
451 UNIMPL fhstat
; 452 only ever appeared in 5.99.x and can be reused after netbsd-7
452 UNIMPL 5.99 quotactl
453 NOARGS { int|linux_sys||pipe2(int *pfds, int flags); }
454 NOARGS { int|linux_sys||dup3(int from, int to, int flags); }
455 UNIMPL kqueue1
456 UNIMPL paccept
457 NOARGS { int|linux_sys||linkat(int fd1, const char *name1, \
int fd2, const char *name2, int flags); }
458 NOARGS { int|sys||renameat(int fromfd, const char *from, \
int tofd, const char *to); }
459 UNIMPL mkfifoat
460 STD { int|rump_linux_sys||mknodat(int fd, const char *path, \
mode_t mode, int PAD, unsigned dev); }
461 NOARGS { int|sys||mkdirat(int fd, const char *path, \
mode_t mode); }
462 NOARGS { int|linux_sys||faccessat(int fd, const char *path, \
int amode); }
463 NOARGS { int|linux_sys||fchmodat(int fd, const char *path, \
mode_t mode); }
464 NOARGS { int|linux_sys||fchownat(int fd, const char *path, \
uid_t owner, gid_t group, int flag); }
465 UNIMPL fexecve
466 NOARGS { int|linux_sys||fstatat64(int fd, const char *path, \
struct linux_stat *sp, int flag); }
467 NOARGS { int|linux_sys||utimensat(int fd, const char *path, \
struct linux_timespec *times, int flag); }
468 NOARGS { int|linux_sys||openat(int fd, const char *path, \
int flags, ... mode_t mode); }
469 NOARGS { int|sys||readlinkat(int fd, const char *path, \
char *buf, size_t bufsize); }
470 NOARGS { int|sys||symlinkat(const char *path1, int fd, \
const char *path2); }
471 NOARGS { int|linux_sys||unlinkat(int fd, const char *path, \
int flag); }
472 UNIMPL futimens
473 UNIMPL __quotactl
474 UNIMPL posix_spawn
475 UNIMPL recvmmsg
476 UNIMPL sendmmsg
477 NOARGS { int|linux_sys||clock_nanosleep(clockid_t which, \
int flags, struct linux_timespec *rqtp, \
struct linux_timespec *rmtp); }