1 $NetBSD: syscalls.master,v 1.54 2009/06/08 13:34:23 njoly Exp $
3 ; NetBSD i386 COMPAT_LINUX32 system call name/number "master" file.
4 ; (See syscalls.conf to see what it is processed into.)
6 ; Fields: number type [type-dependent ...]
7 ; number system call number, must be in order
8 ; type one of STD, OBSOL, UNIMPL, NODEF, NOARGS, or one of
9 ; the compatibility options defined in syscalls.conf.
13 ; OBSOL obsolete, not included in system
14 ; UNIMPL unimplemented, not included in system
15 ; NODEF included, but don't define the syscall number
17 ; INDIR included, but don't define the syscall args structure
18 ; and allow it to be "really" varargs.
20 ; The compat options are defined in the syscalls.conf file, and the
21 ; compat option name is prefixed to the syscall name. Other than
22 ; that, they're like NODEF (for 'compat' options), or STD (for
23 ; 'libcompat' options).
25 ; The type-dependent arguments are as follows:
26 ; For STD, NODEF, NOARGS, and compat syscalls:
27 ; { pseudo-proto } [alias]
31 ; #ifdef's, etc. may be included, and are copied to the output files.
32 ; #include's are copied to the syscall names and switch definition files only.
34 #include <sys/param.h>
36 #include <sys/systm.h>
37 #include <sys/signal.h>
38 #include <sys/mount.h>
39 #include <sys/syscallargs.h>
41 #include <machine/netbsd32_machdep.h>
43 #include <compat/netbsd32/netbsd32.h>
44 #include <compat/netbsd32/netbsd32_syscallargs.h>
46 #include <compat/linux32/common/linux32_types.h>
47 #include <compat/linux32/common/linux32_signal.h>
48 #include <compat/linux32/arch/amd64/linux32_missing.h>
49 #include <compat/linux32/linux32_syscallargs.h>
51 #include <compat/linux/common/linux_types.h>
52 #include <compat/linux/common/linux_mmap.h>
53 #include <compat/linux/common/linux_signal.h>
54 #include <compat/linux/common/linux_siginfo.h>
55 #include <compat/linux/common/linux_machdep.h>
56 #include <compat/linux/common/linux_ipc.h>
57 #include <compat/linux/common/linux_sem.h>
58 #include <compat/linux/linux_syscallargs.h>
62 0 NOARGS { int|linux_sys||nosys(void); } syscall
63 1 NOARGS { int|netbsd32||exit(int rval); }
64 2 NOARGS { int|sys||fork(void); }
65 3 NOARGS { netbsd32_ssize_t|netbsd32||read(int fd, \
66 netbsd32_voidp buf, netbsd32_size_t nbyte); }
67 4 NOARGS { netbsd32_ssize_t|netbsd32||write(int fd, \
68 netbsd32_voidp buf, netbsd32_size_t nbyte); }
69 5 STD { int|linux32_sys||open(netbsd32_charp path, int flags, \
71 6 NOARGS { int|netbsd32||close(int fd); }
72 7 STD { int|linux32_sys||waitpid(int pid, netbsd32_intp status, \
74 8 STD { int|linux32_sys||creat(netbsd32_charp path, int mode); }
75 9 NOARGS { int|netbsd32||link(netbsd32_charp path, \
76 netbsd32_charp link); }
77 10 STD { int|linux32_sys||unlink(netbsd32_charp path); }
78 11 NOARGS { int|netbsd32||execve(netbsd32_charp path, \
79 netbsd32_charpp argp, netbsd32_charpp envp); }
80 12 NOARGS { int|netbsd32||chdir(netbsd32_charp path); }
81 13 STD { int|linux32_sys||time(linux32_timep_t t); }
82 14 STD { int|linux32_sys||mknod(netbsd32_charp path, \
84 15 NOARGS { int|netbsd32||chmod(netbsd32_charp path, int mode); }
85 16 STD { int|linux32_sys||lchown16(netbsd32_charp path, \
86 linux32_uid16_t uid, linux32_gid16_t gid); }
87 17 STD { int|linux32_sys||break(netbsd32_charp nsize); }
89 19 NOARGS { netbsd32_long|compat_43_netbsd32||olseek(int fd, \
90 netbsd32_long offset, int chence); }
91 20 STD { pid_t|linux_sys||getpid(void); }
94 23 NOARGS linux_setuid16 { int|netbsd32||setuid(uid_t uid); }
95 24 NOARGS linux_getuid16 { uid_t|sys||getuid(void); }
96 25 STD { int|linux32_sys||stime(linux32_timep_t t); }
97 26 STD { int|linux32_sys||ptrace(int request, int pid, \
98 int addr, int data); }
99 27 STD { int|linux32_sys||alarm(unsigned int secs); }
101 29 NOARGS { int|linux_sys||pause(void); }
102 30 STD { int|linux32_sys||utime(netbsd32_charp path, \
103 linux32_utimbufp_t times); }
106 33 NOARGS { int|netbsd32||access(netbsd32_charp path, \
108 34 STD { int|linux32_sys||nice(int incr); }
110 36 NOARGS { int|sys||sync(void); }
111 37 STD { int|linux32_sys||kill(int pid, int signum); }
112 38 NOARGS { int|netbsd32||__posix_rename(netbsd32_charp from, \
113 netbsd32_charp to); }
114 39 NOARGS { int|netbsd32||mkdir(netbsd32_charp path, int mode); }
115 40 NOARGS { int|netbsd32||rmdir(netbsd32_charp path); }
116 41 NOARGS { int|netbsd32||dup(u_int fd); }
117 42 STD { int|linux32_sys||pipe(netbsd32_intp fd); }
118 43 STD { int|linux32_sys||times(linux32_tmsp_t tms); }
120 45 STD { int|linux32_sys||brk(netbsd32_charp nsize); }
121 46 NOARGS linux_setgid16 { int|netbsd32||setgid(gid_t gid); }
122 47 NOARGS linux_getgid16 { gid_t|sys||getgid(void); }
123 48 STD { int|linux32_sys||signal(int signum, \
124 linux32_handler_t handler); }
125 49 NOARGS linux_geteuid16 { uid_t|sys||geteuid(void); }
126 50 NOARGS linux_getegid16 { gid_t|sys||getegid(void); }
127 51 NOARGS { int|netbsd32||acct(netbsd32_charp path); }
130 54 STD { int|linux32_sys||ioctl(int fd, netbsd32_u_long com, \
131 netbsd32_charp data); }
132 55 STD { int|linux32_sys||fcntl(int fd, \
133 int cmd, netbsd32_voidp arg); }
135 57 NOARGS { int|netbsd32||setpgid(int pid, int pgid); }
137 59 STD { int|linux32_sys||oldolduname( \
138 linux32_oldold_utsnamep_t up); }
139 60 NOARGS { int|netbsd32||umask(int newmask); }
140 61 NOARGS { int|netbsd32||chroot(netbsd32_charp path); }
142 63 NOARGS { int|netbsd32||dup2(int from, int to); }
143 64 STD { pid_t|linux_sys||getppid(void); }
144 65 NOARGS { int|sys||getpgrp(void); }
145 66 NOARGS { int|sys||setsid(void); }
147 68 STD { int|linux32_sys||siggetmask(void); }
148 69 STD { int|linux32_sys||sigsetmask(linux32_old_sigset_t mask); }
149 70 STD { int|linux32_sys||setreuid16(linux32_uid16_t ruid, \
150 linux32_uid16_t euid); }
151 71 STD { int|linux32_sys||setregid16(linux32_gid16_t rgid, \
152 linux32_gid16_t egid); }
155 74 NOARGS { int|compat_43_netbsd32||osethostname(netbsd32_charp hostname, \
157 75 STD { int|linux32_sys||setrlimit(u_int which, \
158 netbsd32_orlimitp_t rlp); }
159 76 STD { int|linux32_sys||getrlimit(u_int which, \
160 netbsd32_orlimitp_t rlp); }
161 77 NOARGS { int|compat_50_netbsd32||getrusage(int who, \
162 netbsd32_rusage50p_t rusage); }
163 78 STD { int|linux32_sys||gettimeofday(netbsd32_timeval50p_t tp, \
164 netbsd32_timezonep_t tzp); }
165 79 STD { int|linux32_sys||settimeofday(netbsd32_timeval50p_t tp, \
166 netbsd32_timezonep_t tzp); }
167 80 STD { int|linux32_sys||getgroups16(int gidsetsize, \
168 linux32_gid16p_t gidset); }
169 81 STD { int|linux32_sys||setgroups16(int gidsetsize, \
170 linux32_gid16p_t gidset); }
171 82 STD { int|linux32_sys||oldselect(linux32_oldselectp_t lsp); }
172 83 NOARGS { int|netbsd32||symlink(netbsd32_charp path, \
173 netbsd32_charp link); }
174 84 NOARGS { int|compat_43_netbsd32||lstat43(netbsd32_charp \
175 path, netbsd32_stat43p_t ub); }
176 85 NOARGS { int|netbsd32||readlink(netbsd32_charp name, \
177 netbsd32_charp buf, netbsd32_size_t count); }
179 87 STD { int|linux32_sys||swapon(netbsd32_charp name); }
180 88 STD { int|linux32_sys||reboot(int magic1, int magic2, int cmd, \
181 netbsd32_voidp arg); }
182 89 STD { int|linux32_sys||readdir(int fd, netbsd32_voidp dent, \
183 unsigned int count); }
184 90 STD { int|linux32_sys||old_mmap(linux32_oldmmapp lmp); }
185 91 NOARGS { int|netbsd32||munmap(netbsd32_voidp addr, \
186 netbsd32_size_t len); }
187 92 NOARGS { int|compat_43_netbsd32||otruncate(netbsd32_charp path, \
188 netbsd32_long length); }
189 93 NOARGS { int|compat_43_netbsd32||oftruncate(int fd, \
190 netbsd32_long length); }
191 94 NOARGS { int|netbsd32||fchmod(int fd, int mode); }
192 95 STD { int|linux32_sys||fchown16(int fd, linux32_uid16_t uid, \
193 linux32_gid16_t gid); }
194 96 STD { int|linux32_sys||getpriority(int which, int who); }
195 97 NOARGS { int|netbsd32||setpriority(int which, int who, int prio); }
197 99 STD { int|linux32_sys||statfs(netbsd32_charp path, \
198 linux32_statfsp sp); }
199 100 STD { int|linux32_sys||fstatfs(int fd, linux32_statfsp sp); }
201 102 STD { int|linux32_sys||socketcall(int what, netbsd32_voidp args); }
203 104 NOARGS { int|compat_50_netbsd32||setitimer(int which, \
204 netbsd32_itimerval50p_t itv, netbsd32_itimerval50p_t oitv); }
205 105 NOARGS { int|compat_50_netbsd32||getitimer(int which, \
206 netbsd32_itimerval50p_t itv); }
207 106 STD { int|linux32_sys||stat(netbsd32_charp path, \
209 107 STD { int|linux32_sys||lstat(netbsd32_charp path, \
211 108 STD { int|linux32_sys||fstat(int fd, \
213 109 STD { int|linux32_sys||olduname(linux32_oldutsnamep_t up); }
218 114 STD { int|linux32_sys||wait4(int pid, netbsd32_intp status, \
219 int options, netbsd32_rusage50p_t rusage); }
220 115 STD { int|linux32_sys||swapoff(netbsd32_charp path); }
221 116 STD { int|linux32_sys||sysinfo(linux32_sysinfop_t arg); }
222 117 STD { int|linux32_sys||ipc(int what, int a1, int a2, int a3, \
223 netbsd32_voidp ptr); }
224 118 NOARGS { int|netbsd32||fsync(int fd); }
225 119 STD { int|linux32_sys||sigreturn(linux32_sigcontextp_t scp); }
226 120 STD { int|linux32_sys||clone(int flags, netbsd32_voidp stack); }
227 121 UNIMPL setdomainname
228 122 STD { int|linux32_sys||uname(linux32_utsnamep up); }
229 123 UNIMPL modify_ldt
231 125 STD { int|linux32_sys||mprotect(netbsd32_voidp start, \
232 netbsd32_size_t len, int prot); }
233 126 UNIMPL sigprocmask
234 127 UNIMPL create_module
235 128 UNIMPL init_module
236 129 UNIMPL delete_module
237 130 UNIMPL get_kernel_syms
239 132 NOARGS { int|netbsd32||getpgid(pid_t pid); }
240 133 NOARGS { int|netbsd32||fchdir(int fd); }
243 136 STD { int|linux32_sys||personality(netbsd32_u_long per); }
244 137 UNIMPL afs_syscall
245 138 NOARGS setfsuid16 { int|linux32_sys||setfsuid(uid_t uid); }
246 139 NOARGS setfsgid16 { int|linux32_sys||setfsgid(gid_t gid); }
247 140 STD { int|linux32_sys||llseek(int fd, u_int32_t ohigh, \
248 u_int32_t olow, netbsd32_voidp res, int whence); }
249 141 STD { int|linux32_sys||getdents(int fd, \
250 linux32_direntp_t dent, unsigned int count); }
251 142 STD { int|linux32_sys||select(int nfds, \
252 netbsd32_fd_setp_t readfds, \
253 netbsd32_fd_setp_t writefds, \
254 netbsd32_fd_setp_t exceptfds, \
255 netbsd32_timeval50p_t timeout); }
256 143 NOARGS { int|netbsd32||flock(int fd, int how); }
257 144 NOARGS { int|netbsd32|13|msync(netbsd32_voidp addr, \
258 netbsd32_size_t len, int flags); }
259 145 NOARGS { int|netbsd32||readv(int fd, \
260 netbsd32_iovecp_t iovp, int iovcnt); }
261 146 NOARGS { netbsd32_ssize_t|netbsd32||writev(int fd, \
262 netbsd32_iovecp_t iovp, int iovcnt); }
263 147 NOARGS { pid_t|netbsd32||getsid(pid_t pid); }
264 148 STD { int|linux32_sys||fdatasync(int fd); }
265 149 STD { int|linux32_sys||__sysctl(linux32___sysctlp_t lsp); }
266 150 NOARGS { int|netbsd32||mlock(netbsd32_voidp addr, \
267 netbsd32_size_t len); }
268 151 NOARGS { int|netbsd32||munlock(netbsd32_voidp addr, \
269 netbsd32_size_t len); }
270 152 NOARGS { int|netbsd32||mlockall(int flags); }
271 153 NOARGS { int|sys||munlockall(void); }
272 154 UNIMPL sched_setparam
273 155 STD { int|linux32_sys||sched_getparam(pid_t pid, \
274 linux32_sched_paramp_t sp); }
275 156 STD { int|linux32_sys||sched_setscheduler(pid_t pid, \
276 int policy, linux32_sched_paramp_t sp); }
277 157 STD { int|linux32_sys||sched_getscheduler(pid_t pid); }
278 158 NOARGS { int|linux_sys||sched_yield(void); }
279 159 STD { int|linux32_sys||sched_get_priority_max(int policy); }
280 160 STD { int|linux32_sys||sched_get_priority_min(int policy); }
281 161 UNIMPL sched_rr_get_interval
282 162 STD { int|linux32_sys||nanosleep(linux32_timespecp_t rqtp, \
283 linux32_timespecp_t rmtp); }
284 163 STD { int|linux32_sys||mremap(netbsd32_voidp old_address, \
285 netbsd32_size_t old_size, netbsd32_size_t new_size, \
286 netbsd32_u_long flags); }
287 164 STD { int|linux32_sys||setresuid16(linux32_uid16_t ruid, \
288 linux32_uid16_t euid, linux32_uid16_t suid); }
289 165 STD { int|linux32_sys||getresuid16(linux32_uid16p_t ruid, \
290 linux32_uid16p_t euid, linux32_uid16p_t suid); }
292 167 UNIMPL query_module
293 168 NOARGS { int|netbsd32||poll(netbsd32_pollfdp_t fds, u_int nfds, \
295 169 UNIMPL nfsservctl
296 170 STD { int|linux32_sys||setresgid16(linux32_gid16_t rgid, \
297 linux32_gid16_t egid, linux32_gid16_t sgid); }
298 171 STD { int|linux32_sys||getresgid16(linux32_gid16p_t rgid, \
299 linux32_gid16p_t egid, linux32_gid16p_t sgid); }
301 173 STD { int|linux32_sys||rt_sigreturn(linux32_ucontextp_t ucp); }
302 174 STD { int|linux32_sys||rt_sigaction(int signum, \
303 linux32_sigactionp_t nsa, \
304 linux32_sigactionp_t osa, \
305 netbsd32_size_t sigsetsize); }
306 175 STD { int|linux32_sys||rt_sigprocmask(int how, \
307 linux32_sigsetp_t set, \
308 linux32_sigsetp_t oset, \
309 netbsd32_size_t sigsetsize); }
310 176 STD { int|linux32_sys||rt_sigpending(linux32_sigsetp_t set, \
311 netbsd32_size_t sigsetsize); }
312 177 UNIMPL rt_sigtimedwait
313 178 STD { int|linux32_sys||rt_queueinfo(int pid, int sig, \
314 linux32_siginfop_t uinfo); }
315 179 STD { int|linux32_sys||rt_sigsuspend(linux32_sigsetp_t unewset, \
316 netbsd32_size_t sigsetsize); }
317 180 STD { netbsd32_ssize_t|linux32_sys||pread(int fd, \
318 netbsd32_voidp buf, netbsd32_size_t nbyte, \
319 linux32_off_t offset); }
320 181 STD { netbsd32_ssize_t|linux32_sys||pwrite(int fd, \
321 netbsd32_voidp buf, netbsd32_size_t nbyte, \
322 linux32_off_t offset); }
323 182 STD { int|linux32_sys||chown16(netbsd32_charp path, \
324 linux32_uid16_t uid, linux32_gid16_t gid); }
325 183 NOARGS { int|netbsd32||__getcwd(netbsd32_charp bufp, \
326 netbsd32_size_t length); }
329 186 UNIMPL sigaltstack
333 190 NOARGS { int|sys|14|vfork(void); }
334 191 STD { int|linux32_sys||ugetrlimit(int which, \
335 netbsd32_orlimitp_t rlp); }
336 192 STD { linux32_off_t|linux32_sys||mmap2(netbsd32_u_long addr, \
337 netbsd32_size_t len, int prot, int flags, int fd, \
338 linux32_off_t offset); }
339 193 UNIMPL truncate64
340 194 UNIMPL ftruncate64
341 195 STD { int|linux32_sys||stat64(netbsd32_charp path, \
342 linux32_stat64p sp); }
343 196 STD { int|linux32_sys||lstat64(netbsd32_charp path, \
344 linux32_stat64p sp); }
345 197 STD { int|linux32_sys||fstat64(int fd, \
346 linux32_stat64p sp); }
347 198 NOARGS { int|netbsd32||__posix_lchown(netbsd32_charp path, \
348 uid_t uid, gid_t gid); }
349 199 NOARGS { uid_t|sys||getuid(void); }
350 200 NOARGS { gid_t|sys||getgid(void); }
351 201 NOARGS { uid_t|sys||geteuid(void); }
352 202 NOARGS { gid_t|sys||getegid(void); }
353 203 NOARGS { int|netbsd32||setreuid(uid_t ruid, uid_t euid); }
354 204 NOARGS { int|netbsd32||setregid(gid_t rgid, gid_t egid); }
355 205 NOARGS { int|netbsd32||getgroups(int gidsetsize, \
356 netbsd32_gid_tp gidset); }
357 206 NOARGS { int|netbsd32||setgroups(int gidsetsize, \
358 netbsd32_gid_tp gidset); }
359 207 NOARGS { int|netbsd32||__posix_fchown(int fd, uid_t uid, gid_t gid); }
360 208 STD { int|linux32_sys||setresuid(uid_t ruid, uid_t euid, \
362 209 STD { int|linux32_sys||getresuid(linux32_uidp_t ruid, \
363 linux32_uidp_t euid, linux32_uidp_t suid); }
364 210 STD { int|linux32_sys||setresgid(gid_t rgid, gid_t egid, \
366 211 STD { int|linux32_sys||getresgid(linux32_gidp_t rgid, \
367 linux32_gidp_t egid, linux32_gidp_t sgid); }
368 212 NOARGS { int|netbsd32||__posix_chown(netbsd32_charp path, \
369 uid_t uid, gid_t gid); }
370 213 NOARGS { int|netbsd32||setuid(uid_t uid); }
371 214 NOARGS { int|netbsd32||setgid(gid_t gid); }
372 215 STD { int|linux32_sys||setfsuid(uid_t uid); }
373 216 STD { int|linux32_sys||setfsgid(gid_t gid); }
374 217 UNIMPL pivot_root
375 218 NOARGS { int|netbsd32||mincore(netbsd32_voidp addr, \
376 netbsd32_size_t len, netbsd32_charp vec); }
377 219 NOARGS { int|netbsd32||madvise(netbsd32_voidp addr, \
378 netbsd32_size_t len, int behav); }
379 220 STD { int|linux32_sys||getdents64(int fd, \
380 linux32_dirent64p_t dent, unsigned int count); }
381 ; fcntl64() - Exactly the same as fcntl()
382 #define linux32_sys_fcntl64 linux32_sys_fcntl
383 #define linux32_sys_fcntl64_args linux32_sys_fcntl_args
384 221 NOARGS { int|linux32_sys||fcntl64(int fd, \
385 int cmd, netbsd32_voidp arg); }
386 222 UNIMPL /* unused */
387 223 UNIMPL /* unused */
388 224 STD { pid_t|linux_sys||gettid(void); }
397 233 UNIMPL llistxattr
398 234 UNIMPL flistxattr
399 235 UNIMPL removexattr
400 236 UNIMPL lremovexattr
401 237 UNIMPL fremovexattr
403 239 UNIMPL sendfile64
405 241 UNIMPL sched_setaffinity
406 242 UNIMPL sched_getaffinity
407 243 UNIMPL set_thread_area
408 244 UNIMPL get_thread_area
410 246 UNIMPL io_destroy
411 247 UNIMPL io_getevents
415 251 UNIMPL /* unused */
416 252 STD { int|linux32_sys||exit_group(int error_code); }
417 253 UNIMPL lookup_dcookie
418 254 UNIMPL epoll_create
420 256 UNIMPL epoll_wait
421 257 UNIMPL remap_file_pages
422 258 UNIMPL set_tid_address
423 259 UNIMPL timer_create
424 260 UNIMPL timer_settime
425 261 UNIMPL timer_gettime
426 262 UNIMPL timer_getoverrun
427 263 UNIMPL timer_delete
428 264 STD { int|linux32_sys||clock_settime(clockid_t which, \
429 linux32_timespecp_t tp); }
430 265 STD { int|linux32_sys||clock_gettime(clockid_t which, \
431 linux32_timespecp_t tp); }
432 266 STD { int|linux32_sys||clock_getres(clockid_t which, \
433 linux32_timespecp_t tp); }
434 267 STD { int|linux32_sys||clock_nanosleep(clockid_t which, int flags, \
435 linux32_timespecp_t rqtp, linux32_timespecp_t rmtp); }
440 272 UNIMPL fadvise64_64
443 275 UNIMPL get_mempolicy
444 276 UNIMPL set_mempolicy
447 279 UNIMPL mq_timedsend
448 280 UNIMPL mq_timedreceive
450 282 UNIMPL mq_getsetattr
451 283 UNIMPL kexec_load