syscalls.master revision 1.33.2.1 1 $NetBSD: syscalls.master,v 1.33.2.1 2008/06/04 02:05:04 yamt Exp $
2
3 ; NetBSD i386 COMPAT_LINUX32 system call name/number "master" file.
4 ; (See syscalls.conf to see what it is processed into.)
5 ;
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.
10 ;
11 ; types:
12 ; STD always included
13 ; OBSOL obsolete, not included in system
14 ; UNIMPL unimplemented, not included in system
15 ; NODEF included, but don't define the syscall number
16 ;
17 ; INDIR included, but don't define the syscall args structure
18 ; and allow it to be "really" varargs.
19 ;
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).
24 ;
25 ; The type-dependent arguments are as follows:
26 ; For STD, NODEF, NOARGS, and compat syscalls:
27 ; { pseudo-proto } [alias]
28 ; For other syscalls:
29 ; [comment]
30 ;
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.
33
34 #if defined(_KERNEL_OPT)
35 #include "opt_compat_43.h"
36 #endif
37
38 #include <sys/param.h>
39 #include <sys/poll.h>
40 #include <sys/systm.h>
41 #include <sys/signal.h>
42 #include <sys/mount.h>
43 #include <sys/syscallargs.h>
44
45 #include <machine/netbsd32_machdep.h>
46
47 #include <compat/netbsd32/netbsd32.h>
48 #include <compat/netbsd32/netbsd32_syscallargs.h>
49
50 #include <compat/linux32/common/linux32_types.h>
51 #include <compat/linux32/common/linux32_signal.h>
52 #include <compat/linux32/arch/amd64/linux32_missing.h>
53 #include <compat/linux32/linux32_syscallargs.h>
54
55 #include <compat/linux/common/linux_types.h>
56 #include <compat/linux/common/linux_mmap.h>
57 #include <compat/linux/common/linux_signal.h>
58 #include <compat/linux/common/linux_siginfo.h>
59 #include <compat/linux/common/linux_machdep.h>
60
61 #include <compat/linux/linux_syscallargs.h>
62
63 %%
64
65 0 NOARGS { int linux_sys_nosys(void); } syscall
66 1 NOARGS { int netbsd32_exit(int rval); }
67 2 NOARGS { int sys_fork(void); }
68 3 NOARGS { netbsd32_ssize_t netbsd32_read(int fd, \
69 netbsd32_voidp buf, netbsd32_size_t nbyte); }
70 4 NOARGS { netbsd32_ssize_t netbsd32_write(int fd, \
71 const netbsd32_voidp buf, netbsd32_size_t nbyte); }
72 5 STD { int linux32_sys_open(const netbsd32_charp path, int flags, \
73 int mode); }
74 6 NOARGS { int netbsd32_close(int fd); }
75 7 STD { int linux32_sys_waitpid(int pid, netbsd32_intp status, \
76 int options);}
77 8 STD { int linux32_sys_creat(const netbsd32_charp path, int mode); }
78 9 NOARGS { int netbsd32_link(const netbsd32_charp path, \
79 const netbsd32_charp link); }
80 10 STD { int linux32_sys_unlink(const netbsd32_charp path); }
81 11 NOARGS { int netbsd32_execve(const netbsd32_charp path, \
82 netbsd32_charpp argp, netbsd32_charpp envp); }
83 12 NOARGS { int netbsd32_chdir(const netbsd32_charp path); }
84 13 STD { int linux32_sys_time(linux32_timep_t t); }
85 14 STD { int linux32_sys_mknod(const netbsd32_charp path, \
86 int mode, int dev); }
87 15 NOARGS { int netbsd32_chmod(const netbsd32_charp path, int mode); }
88 16 STD { int linux32_sys_lchown16(const netbsd32_charp path, \
89 linux32_uid16_t uid, linux32_gid16_t gid); }
90 17 STD { int linux32_sys_break(netbsd32_charp nsize); }
91 18 OBSOL ostat
92 19 NOARGS { netbsd32_long compat_43_netbsd32_olseek(int fd, \
93 netbsd32_long offset, int chence); }
94 20 STD { pid_t linux_sys_getpid(void); }
95 21 UNIMPL mount
96 22 UNIMPL umount
97 23 NOARGS linux_setuid16 { int netbsd32_setuid(uid_t uid); }
98 24 NOARGS linux_getuid16 { uid_t sys_getuid(void); }
99 25 STD { int linux32_sys_stime(linux32_timep_t t); }
100 26 UNIMPL ptrace
101 27 STD { int linux32_sys_alarm(unsigned int secs); }
102 28 OBSOL ofstat
103 29 NOARGS { int linux_sys_pause(void); }
104 30 STD { int linux32_sys_utime(const netbsd32_charp path, \
105 linux32_utimbufp_t times); }
106 31 OBSOL stty
107 32 OBSOL gtty
108 33 NOARGS { int netbsd32_access(const netbsd32_charp path, \
109 int flags); }
110 34 STD { int linux32_sys_nice(int incr); }
111 35 OBSOL ftime
112 36 NOARGS { int sys_sync(void); }
113 37 STD { int linux32_sys_kill(int pid, int signum); }
114 38 STD { int linux32_sys_rename(const netbsd32_charp from, \
115 const netbsd32_charp to); }
116 39 NOARGS { int netbsd32_mkdir(const netbsd32_charp path, int mode); }
117 40 NOARGS { int netbsd32_rmdir(const netbsd32_charp path); }
118 41 NOARGS { int netbsd32_dup(u_int fd); }
119 42 STD { int linux32_sys_pipe(netbsd32_intp fd); }
120 43 STD { int linux32_sys_times(linux32_tmsp_t tms); }
121 44 OBSOL prof
122 45 STD { int linux32_sys_brk(netbsd32_charp nsize); }
123 46 NOARGS linux_setgid16 { int netbsd32_setgid(gid_t gid); }
124 47 NOARGS linux_getgid16 { gid_t sys_getgid(void); }
125 48 STD { int linux32_sys_signal(int signum, \
126 linux32_handler_t handler); }
127 49 NOARGS linux_geteuid16 { uid_t sys_geteuid(void); }
128 50 NOARGS linux_getegid16 { gid_t sys_getegid(void); }
129 51 NOARGS { int netbsd32_acct(netbsd32_charp path); }
130 52 OBSOL phys
131 53 OBSOL lock
132 54 STD { int linux32_sys_ioctl(int fd, netbsd32_u_long com, \
133 netbsd32_charp data); }
134 55 STD { int linux32_sys_fcntl(int fd, \
135 int cmd, netbsd32_voidp arg); }
136 56 OBSOL mpx
137 57 NOARGS { int netbsd32_setpgid(int pid, int pgid); }
138 58 OBSOL ulimit
139 59 STD { int linux32_sys_oldolduname( \
140 linux32_oldold_utsnamep_t up); }
141 60 NOARGS { int netbsd32_umask(int newmask); }
142 61 NOARGS { int netbsd32_chroot(netbsd32_charp path); }
143 62 UNIMPL ustat
144 63 NOARGS { int netbsd32_dup2(u_int from, u_int to); }
145 64 STD { pid_t linux_sys_getppid(void); }
146 65 NOARGS { int sys_getpgrp(void); }
147 66 NOARGS { int sys_setsid(void); }
148 67 UNIMPL sigaction
149 68 UNIMPL siggetmask
150 69 UNIMPL sigsetmask
151 70 STD { int linux32_sys_setreuid16(linux32_uid16_t ruid, \
152 linux32_uid16_t euid); }
153 71 STD { int linux32_sys_setregid16(linux32_gid16_t rgid, \
154 linux32_gid16_t egid); }
155 72 UNIMPL sigsuspend
156 73 UNIMPL sigpending
157 74 NOARGS { int compat_43_netbsd32_osethostname(netbsd32_charp hostname, \
158 u_int len); }
159 75 STD { int linux32_sys_setrlimit(u_int which, \
160 netbsd32_orlimitp_t rlp); }
161 76 STD { int linux32_sys_getrlimit(u_int which, \
162 netbsd32_orlimitp_t rlp); }
163 77 NOARGS { int netbsd32_getrusage(int who, \
164 netbsd32_rusagep_t rusage); }
165 78 STD { int linux32_sys_gettimeofday(netbsd32_timevalp_t tp, \
166 netbsd32_timezonep_t tzp); }
167 79 STD { int linux32_sys_settimeofday(netbsd32_timevalp_t tp, \
168 netbsd32_timezonep_t tzp); }
169 80 STD { int linux32_sys_getgroups16(int gidsetsize, \
170 linux32_gid16p_t gidset); }
171 81 STD { int linux32_sys_setgroups16(int gidsetsize, \
172 linux32_gid16p_t gidset); }
173 82 STD { int linux32_sys_oldselect(linux32_oldselectp_t lsp); }
174 83 NOARGS { int netbsd32_symlink(netbsd32_charp path, \
175 const netbsd32_charp link); }
176 84 NOARGS { int compat_43_netbsd32_lstat43(const netbsd32_charp \
177 path, netbsd32_stat43p_t ub); }
178 85 NOARGS { int netbsd32_readlink(const netbsd32_charp name, \
179 netbsd32_charp buf, int count); }
180 86 UNIMPL uselib
181 87 STD { int linux32_sys_swapon(netbsd32_charp name); }
182 88 STD { int linux32_sys_reboot(int magic1, int magic2, int cmd, \
183 netbsd32_voidp arg); }
184 89 STD { int linux32_sys_readdir(int fd, netbsd32_voidp dent, \
185 unsigned int count); }
186 90 STD { int linux32_sys_old_mmap(linux32_oldmmapp lmp); }
187 91 NOARGS { int netbsd32_munmap(netbsd32_caddr_t addr, int len); }
188 92 STD { int linux32_sys_truncate(const netbsd32_charp path, \
189 netbsd32_long length); }
190 93 NOARGS { int compat_43_netbsd32_oftruncate(int fd, \
191 netbsd32_long length); }
192 94 NOARGS { int netbsd32_fchmod(int fd, int mode); }
193 95 STD { int linux32_sys_fchown16(int fd, linux32_uid16_t uid, \
194 linux32_gid16_t gid); }
195 96 STD { int linux32_sys_getpriority(int which, int who); }
196 97 STD { int linux32_sys_setpriority(int which, int who, int prio); }
197 98 UNIMPL profil
198 99 STD { int linux32_sys_statfs(const netbsd32_charp path, \
199 linux32_statfsp sp); }
200 100 UNIMPL fstatfs
201 101 UNIMPL ioperm
202 102 STD { int linux32_sys_socketcall(int what, netbsd32_voidp args); }
203 103 UNIMPL syslog
204 104 NOARGS { int netbsd32_setitimer(u_int which, \
205 netbsd32_itimervalp_t itv, netbsd32_itimervalp_t oitv); }
206 105 NOARGS { int netbsd32_getitimer(u_int which, \
207 netbsd32_itimervalp_t itv); }
208 106 UNIMPL stat
209 107 UNIMPL lstat
210 108 UNIMPL fstat
211 109 STD { int linux32_sys_olduname(linux32_oldutsnamep_t up); }
212 110 UNIMPL iopl
213 111 UNIMPL vhangup
214 112 UNIMPL idle
215 113 UNIMPL vm86old
216 114 STD { int linux32_sys_wait4(int pid, netbsd32_intp status, \
217 int options, netbsd32_rusagep_t rusage); }
218 115 STD { int linux32_sys_swapoff(const netbsd32_charp path); }
219 116 STD { int linux32_sys_sysinfo(linux32_sysinfop_t arg); }
220 117 STD { int linux32_sys_ipc(int what, int a1, int a2, int a3, \
221 netbsd32_voidp ptr); }
222 118 NOARGS { int netbsd32_fsync(int fd); }
223 119 STD { int linux32_sys_sigreturn(linux32_sigcontextp_t scp); }
224 120 STD { int linux32_sys_clone(int flags, netbsd32_voidp stack); }
225 121 UNIMPL setdomainname
226 122 STD { int linux32_sys_uname(linux32_utsnamep up); }
227 123 UNIMPL modify_ldt
228 124 UNIMPL adjtimex
229 125 STD { int linux32_sys_mprotect(netbsd32_voidp start, \
230 netbsd32_size_t len, int prot); }
231 126 UNIMPL sigprocmask
232 127 UNIMPL create_module
233 128 UNIMPL init_module
234 129 UNIMPL delete_module
235 130 UNIMPL get_kernel_syms
236 131 UNIMPL quotactl
237 132 NOARGS { int netbsd32_getpgid(pid_t pid); }
238 133 NOARGS { int netbsd32_fchdir(int fd); }
239 134 UNIMPL bdflush
240 135 UNIMPL sysfs
241 136 UNIMPL personality
242 137 UNIMPL afs_syscall
243 138 NOARGS setfsuid16 { int linux32_sys_setfsuid(uid_t uid); }
244 139 NOARGS setfsgid16 { int linux32_sys_setfsgid(gid_t gid); }
245 140 STD { int linux32_sys_llseek(int fd, u_int32_t ohigh, \
246 u_int32_t olow, netbsd32_caddr_t res, int whence); }
247 141 STD { int linux32_sys_getdents(int fd, \
248 linux32_direntp_t dent, unsigned int count); }
249 142 STD { int linux32_sys_select(int nfds, \
250 netbsd32_fd_setp_t readfds, \
251 netbsd32_fd_setp_t writefds, \
252 netbsd32_fd_setp_t exceptfds, \
253 netbsd32_timevalp_t timeout); }
254 143 NOARGS { int netbsd32_flock(int fd, int how); }
255 144 NOARGS { int netbsd32___msync13(netbsd32_voidp addr, \
256 netbsd32_size_t len, int flags); }
257 145 NOARGS { int netbsd32_readv(int fd, \
258 const netbsd32_iovecp_t iovp, u_int iovcnt); }
259 146 NOARGS { netbsd32_ssize_t netbsd32_writev(int fd, \
260 const netbsd32_iovecp_t iovp, int iovcnt); }
261 147 NOARGS { pid_t netbsd32_getsid(pid_t pid); }
262 148 STD { int linux32_sys_fdatasync(int fd); }
263 149 STD { int linux32_sys___sysctl(linux32___sysctlp_t lsp); }
264 150 NOARGS { int netbsd32_mlock(netbsd32_voidp addr, \
265 netbsd32_size_t len); }
266 151 NOARGS { int netbsd32_munlock(netbsd32_voidp addr, \
267 netbsd32_size_t len); }
268 152 NOARGS { int netbsd32_mlockall(int flags); }
269 153 NOARGS { int sys_munlockall(void); }
270 154 UNIMPL sched_setparam
271 155 STD { int linux32_sys_sched_getparam(pid_t pid, \
272 linux32_sched_paramp_t sp); }
273 156 STD { int linux32_sys_sched_setscheduler(pid_t pid, \
274 int policy, const linux32_sched_paramp_t sp); }
275 157 STD { int linux32_sys_sched_getscheduler(pid_t pid); }
276 158 NOARGS { int linux_sys_sched_yield(void); }
277 159 UNIMPL sched_get_priority_max
278 160 UNIMPL sched_get_priority_min
279 161 UNIMPL sched_rr_get_interval
280 162 NOARGS { int netbsd32_nanosleep(const \
281 netbsd32_timespecp_t rqtp \
282 netbsd32_timespecp_t rmtp); }
283 163 STD { int linux32_sys_mremap(netbsd32_voidp old_address, \
284 netbsd32_size_t old_size , netbsd32_size_t new_size, \
285 netbsd32_u_long flags); }
286 164 STD { int linux32_sys_setresuid16(linux32_uid16_t ruid, \
287 linux32_uid16_t euid, linux32_uid16_t suid); }
288 165 STD { int linux32_sys_getresuid16(linux32_uid16p_t ruid, \
289 linux32_uid16p_t euid, linux32_uid16p_t suid); }
290 166 UNIMPL vm86
291 167 UNIMPL query_module
292 168 NOARGS { int netbsd32_poll(netbsd32_pollfdp_t fds, u_int nfds, \
293 int timeout); }
294 169 UNIMPL nfsservctl
295 170 STD { int linux32_sys_setresgid16(linux32_gid16_t rgid, \
296 linux32_gid16_t egid, linux32_gid16_t sgid); }
297 171 STD { int linux32_sys_getresgid16(linux32_gid16p_t rgid, \
298 linux32_gid16p_t egid, linux32_gid16p_t sgid); }
299 172 UNIMPL prctl
300 173 STD { int linux32_sys_rt_sigreturn(linux32_ucontextp_t ucp); }
301 174 STD { int linux32_sys_rt_sigaction(int signum, \
302 const linux32_sigactionp_t nsa, \
303 linux32_sigactionp_t osa, \
304 netbsd32_size_t sigsetsize); }
305 175 STD { int linux32_sys_rt_sigprocmask(int how, \
306 const linux32_sigsetp_t set, \
307 linux32_sigsetp_t oset, \
308 netbsd32_size_t sigsetsize); }
309 176 UNIMPL rt_sigpending
310 177 UNIMPL rt_sigtimedwait
311 178 UNIMPL rt_queueinfo
312 179 STD { int linux32_sys_rt_sigsuspend(linux32_sigsetp_t unewset, \
313 netbsd32_size_t sigsetsize); }
314 180 STD { netbsd32_ssize_t linux32_sys_pread(int fd, \
315 netbsd32_voidp buf, netbsd32_size_t nbyte, \
316 linux32_off_t offset); }
317 181 STD { netbsd32_ssize_t linux32_sys_pwrite(int fd, \
318 const netbsd32_voidp buf, netbsd32_size_t nbyte, \
319 linux32_off_t offset); }
320 182 STD { int linux32_sys_chown16(const netbsd32_charp path, \
321 linux32_uid16_t uid, linux32_gid16_t gid); }
322 183 NOARGS { int netbsd32___getcwd(netbsd32_charp bufp, \
323 netbsd32_size_t length); }
324 184 UNIMPL capget
325 185 UNIMPL capset
326 186 UNIMPL sigaltstack
327 187 UNIMPL sendfile
328 188 UNIMPL getpmsg
329 189 UNIMPL putpmsg
330 190 NOARGS { int sys___vfork14(void); }
331 191 STD { int linux32_sys_ugetrlimit(int which, \
332 netbsd32_orlimitp_t rlp); }
333 192 STD { linux32_off_t linux32_sys_mmap2(netbsd32_u_long addr, \
334 netbsd32_size_t len, int prot, int flags, int fd, \
335 linux32_off_t offset); }
336 193 UNIMPL truncate64
337 194 UNIMPL ftruncate64
338 195 STD { int linux32_sys_stat64(const netbsd32_charp path, \
339 linux32_stat64p sp); }
340 196 STD { int linux32_sys_lstat64(const netbsd32_charp path, \
341 linux32_stat64p sp); }
342 197 STD { int linux32_sys_fstat64(int fd, \
343 linux32_stat64p sp); }
344 198 NOARGS { int netbsd32___posix_lchown(const netbsd32_charp path, \
345 int uid, int gid); }
346 199 NOARGS { uid_t sys_getuid(void); }
347 200 NOARGS { gid_t sys_getgid(void); }
348 201 NOARGS { uid_t sys_geteuid(void); }
349 202 NOARGS { gid_t sys_getegid(void); }
350 203 NOARGS { int netbsd32_setreuid(uid_t ruid, uid_t euid); }
351 204 NOARGS { int netbsd32_setregid(gid_t rgid, gid_t egid); }
352 205 NOARGS { int netbsd32_getgroups(int gidsetsize, \
353 netbsd32_gid_tp gidset); }
354 206 NOARGS { int netbsd32_setgroups(int gidsetsize, \
355 netbsd32_gid_tp gidset); }
356 207 NOARGS { int netbsd32___posix_fchown(int fd, uid_t uid, gid_t gid); }
357 208 STD { int linux32_sys_setresuid(uid_t ruid, uid_t euid, \
358 uid_t suid); }
359 209 UNIMPL getresuid
360 210 STD { int linux32_sys_setresgid(gid_t rgid, gid_t egid, \
361 gid_t sgid); }
362 211 UNIMPL getresgid
363 212 NOARGS { int netbsd32___posix_chown(const netbsd32_charp path, \
364 int uid, int gid); }
365 213 NOARGS { int netbsd32_setuid(uid_t uid); }
366 214 NOARGS { int netbsd32_setgid(gid_t gid); }
367 215 STD { int linux32_sys_setfsuid(uid_t uid); }
368 216 STD { int linux32_sys_setfsgid(gid_t gid); }
369 217 UNIMPL pivot_root
370 218 UNIMPL mincore
371 219 NOARGS { int netbsd32_madvise(netbsd32_voidp addr, \
372 netbsd32_size_t len, int behav); }
373 220 STD { int linux32_sys_getdents64(int fd, \
374 linux32_dirent64p_t dent, unsigned int count); }
375 ; fcntl64() - Exactly the same as fcntl()
376 #define linux32_sys_fcntl64 linux32_sys_fcntl
377 #define linux32_sys_fcntl64_args linux32_sys_fcntl_args
378 221 NOARGS { int linux32_sys_fcntl64(int fd, \
379 int cmd, netbsd32_voidp arg); }
380 222 UNIMPL /* unused */
381 223 UNIMPL /* unused */
382 224 STD { pid_t linux_sys_gettid(void); }
383 225 UNIMPL readahead
384 226 UNIMPL setxattr
385 227 UNIMPL lsetxattr
386 228 UNIMPL fsetxattr
387 229 UNIMPL getxattr
388 230 UNIMPL lgetxattr
389 231 UNIMPL fgetxattr
390 232 UNIMPL listxattr
391 233 UNIMPL llistxattr
392 234 UNIMPL flistxattr
393 235 UNIMPL removexattr
394 236 UNIMPL lremovexattr
395 237 UNIMPL fremovexattr
396 238 UNIMPL tkill
397 239 UNIMPL sendfile64
398 240 UNIMPL futex
399 241 UNIMPL sched_setaffinity
400 242 UNIMPL sched_getaffinity
401 243 UNIMPL set_thread_area
402 244 UNIMPL get_thread_area
403 245 UNIMPL io_setup
404 246 UNIMPL io_destroy
405 247 UNIMPL io_getevents
406 248 UNIMPL io_submit
407 249 UNIMPL io_cancel
408 250 UNIMPL fadvise64
409 251 UNIMPL /* unused */
410 252 STD { int linux32_sys_exit_group(int error_code); }
411 253 UNIMPL lookup_dcookie
412 254 UNIMPL epoll_create
413 255 UNIMPL epoll_ctl
414 256 UNIMPL epoll_wait
415 257 UNIMPL remap_file_pages
416 258 UNIMPL set_tid_address
417 259 UNIMPL timer_create
418 260 UNIMPL timer_settime
419 261 UNIMPL timer_gettime
420 262 UNIMPL timer_getoverrun
421 263 UNIMPL timer_delete
422 264 STD { int linux32_sys_clock_settime(clockid_t which, \
423 linux32_timespecp_t tp); }
424 265 STD { int linux32_sys_clock_gettime(clockid_t which, \
425 linux32_timespecp_t tp); }
426 266 STD { int linux32_sys_clock_getres(clockid_t which, \
427 linux32_timespecp_t tp); }
428 267 UNIMPL clock_nanosleep
429 268 UNIMPL statfs64
430 269 UNIMPL fstatfs64
431 270 UNIMPL tgkill
432 271 UNIMPL utimes
433 272 UNIMPL fadvise64_64
434 273 UNIMPL vserver
435 274 UNIMPL mbind
436 275 UNIMPL get_mempolicy
437 276 UNIMPL set_mempolicy
438 277 UNIMPL mq_open
439 278 UNIMPL mq_unlink
440 279 UNIMPL mq_timedsend
441 280 UNIMPL mq_timedreceive
442 281 UNIMPL mq_notify
443 282 UNIMPL mq_getsetattr
444 283 UNIMPL kexec_load
445