pread/pwrite fixes: use SCARG_P32 to access pointers, and update
[netbsd-mini2440.git] / sys / compat / linux32 / arch / amd64 / syscalls.master
blobbf106f2cd0bf190283c52c77c2c90fc587a47654
1         $NetBSD: syscalls.master,v 1.29 2008/02/04 22:23:43 dsl 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.
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
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]
28 ; For other syscalls:
29 ;       [comment]
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 #if defined(_KERNEL_OPT)
35 #include "opt_compat_43.h"
36 #endif
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>
45 #include <machine/netbsd32_machdep.h>
47 #include <compat/netbsd32/netbsd32.h>
48 #include <compat/netbsd32/netbsd32_syscallargs.h>
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>
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>
61 #include <compat/linux/linux_syscallargs.h>
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     UNIMPL  ipc
221 118     NOARGS  { int netbsd32_fsync(int fd); }
222 119     STD     { int linux32_sys_sigreturn(linux32_sigcontextp_t scp); }
223 120     STD     { int linux32_sys_clone(int flags, netbsd32_voidp stack); }
224 121     UNIMPL  setdomainname
225 122     STD     { int linux32_sys_uname(linux32_utsnamep up); }
226 123     UNIMPL  modify_ldt
227 124     UNIMPL  adjtimex
228 125     STD     { int linux32_sys_mprotect(netbsd32_voidp start, \
229                     netbsd32_size_t len, int prot); } 
230 126     UNIMPL  sigprocmask
231 127     UNIMPL  create_module
232 128     UNIMPL  init_module
233 129     UNIMPL  delete_module
234 130     UNIMPL  get_kernel_syms
235 131     UNIMPL  quotactl
236 132     NOARGS  { int netbsd32_getpgid(pid_t pid); }
237 133     NOARGS  { int netbsd32_fchdir(int fd); }
238 134     UNIMPL  bdflush
239 135     UNIMPL  sysfs
240 136     UNIMPL  personality
241 137     UNIMPL  afs_syscall
242 138     NOARGS  setfsuid16 { int linux32_sys_setfsuid(uid_t uid); }
243 139     NOARGS  setfsgid16 { int linux32_sys_setfsgid(gid_t gid); }
244 140     STD     { int linux32_sys_llseek(int fd, u_int32_t ohigh, \
245                     u_int32_t olow, netbsd32_caddr_t res, int whence); }
246 141     STD     { int linux32_sys_getdents(int fd, \
247                     linux32_direntp_t dent, unsigned int count); }
248 142     STD     { int linux32_sys_select(int nfds, \
249                     netbsd32_fd_setp_t readfds, \
250                     netbsd32_fd_setp_t writefds, \
251                     netbsd32_fd_setp_t exceptfds, \
252                     netbsd32_timevalp_t timeout); }
253 143     NOARGS  { int netbsd32_flock(int fd, int how); } 
254 144     UNIMPL  msync
255 145     NOARGS  { int netbsd32_readv(int fd, \
256                     const netbsd32_iovecp_t iovp, u_int iovcnt); }
257 146     NOARGS  { netbsd32_ssize_t netbsd32_writev(int fd, \
258                     const netbsd32_iovecp_t iovp, int iovcnt); }
259 147     NOARGS  { pid_t netbsd32_getsid(pid_t pid); }
260 148     STD     { int linux32_sys_fdatasync(int fd); }
261 149     STD     { int linux32_sys___sysctl(linux32___sysctlp_t lsp); }
262 150     UNIMPL  mlock
263 151     UNIMPL  munlock
264 152     NOARGS  { int netbsd32_mlockall(int flags); }
265 153     NOARGS  { int sys_munlockall(void); }
266 154     UNIMPL  sched_setparam
267 155     STD     { int linux32_sys_sched_getparam(pid_t pid, \
268                     linux32_sched_paramp_t sp); }
269 156     STD     { int linux32_sys_sched_setscheduler(pid_t pid, \
270                     int policy, const linux32_sched_paramp_t sp); }
271 157     STD     { int linux32_sys_sched_getscheduler(pid_t pid); }
272 158     NOARGS  { int linux_sys_sched_yield(void); }
273 159     UNIMPL  sched_get_priority_max
274 160     UNIMPL  sched_get_priority_min
275 161     UNIMPL  sched_rr_get_interval
276 162     NOARGS  { int netbsd32_nanosleep(const \
277                     netbsd32_timespecp_t rqtp \
278                     netbsd32_timespecp_t rmtp); }
279 163     STD     { int linux32_sys_mremap(netbsd32_voidp old_address, \
280                     netbsd32_size_t old_size , netbsd32_size_t new_size, \
281                     netbsd32_u_long flags); }
282 164     STD     { int linux32_sys_setresuid16(linux32_uid16_t ruid, \
283                     linux32_uid16_t euid, linux32_uid16_t suid); }
284 165     STD     { int linux32_sys_getresuid16(linux32_uid16p_t ruid, \
285                     linux32_uid16p_t euid, linux32_uid16p_t suid); }
286 166     UNIMPL  vm86
287 167     UNIMPL  query_module
288 168     NOARGS  { int netbsd32_poll(netbsd32_pollfdp_t fds, u_int nfds, \
289                     int timeout); }
290 169     UNIMPL  nfsservctl
291 170     STD     { int linux32_sys_setresgid16(linux32_gid16_t rgid, \
292                     linux32_gid16_t egid, linux32_gid16_t sgid); }
293 171     STD     { int linux32_sys_getresgid16(linux32_gid16p_t rgid, \
294                     linux32_gid16p_t egid, linux32_gid16p_t sgid); }
295 172     UNIMPL  prctl
296 173     STD     { int linux32_sys_rt_sigreturn(linux32_ucontextp_t ucp); }
297 174     STD     { int linux32_sys_rt_sigaction(int signum, \
298                     const linux32_sigactionp_t nsa, \
299                     linux32_sigactionp_t osa, \
300                     netbsd32_size_t sigsetsize); }
301 175     STD     { int linux32_sys_rt_sigprocmask(int how, \
302                      const linux32_sigsetp_t set, \
303                      linux32_sigsetp_t oset, \
304                      netbsd32_size_t sigsetsize); }
305 176     UNIMPL  rt_sigpending
306 177     UNIMPL  rt_sigtimedwait
307 178     UNIMPL  rt_queueinfo
308 179     STD     { int linux32_sys_rt_sigsuspend(linux32_sigsetp_t unewset, \
309                     netbsd32_size_t sigsetsize); }
310 180     STD     { netbsd32_ssize_t linux32_sys_pread(int fd, \
311                     netbsd32_voidp buf, netbsd32_size_t nbyte, \
312                     linux32_off_t offset); }
313 181     STD     { netbsd32_ssize_t linux32_sys_pwrite(int fd, \
314                     const netbsd32_voidp buf, netbsd32_size_t nbyte, \
315                     linux32_off_t offset); }
316 182     STD     { int linux32_sys_chown16(const netbsd32_charp path, \
317                     linux32_uid16_t uid, linux32_gid16_t gid); }
318 183     NOARGS  { int netbsd32___getcwd(netbsd32_charp bufp, \
319                     netbsd32_size_t length); } 
320 184     UNIMPL  capget
321 185     UNIMPL  capset
322 186     UNIMPL  sigaltstack
323 187     UNIMPL  sendfile
324 188     UNIMPL  getpmsg
325 189     UNIMPL  putpmsg
326 190     NOARGS  { int sys___vfork14(void); }
327 191     STD     { int linux32_sys_ugetrlimit(int which, \
328                     netbsd32_orlimitp_t rlp); }
329 192     STD     { linux32_off_t linux32_sys_mmap2(netbsd32_u_long addr, \
330                     netbsd32_size_t len, int prot, int flags, int fd, \
331                     linux32_off_t offset); }
332 193     UNIMPL  truncate64
333 194     UNIMPL  ftruncate64
334 195     STD     { int linux32_sys_stat64(const netbsd32_charp path, \
335                     linux32_stat64p sp); }
336 196     STD     { int linux32_sys_lstat64(const netbsd32_charp path, \
337                     linux32_stat64p sp); }
338 197     STD     { int linux32_sys_fstat64(int fd, \
339                     linux32_stat64p sp); }
340 198     NOARGS  { int netbsd32___posix_lchown(const netbsd32_charp path, \
341                     int uid, int gid); }
342 199     NOARGS  { uid_t sys_getuid(void); }
343 200     NOARGS  { gid_t sys_getgid(void); }
344 201     NOARGS  { uid_t sys_geteuid(void); }
345 202     NOARGS  { gid_t sys_getegid(void); }
346 203     NOARGS  { int netbsd32_setreuid(uid_t ruid, uid_t euid); }
347 204     NOARGS  { int netbsd32_setregid(gid_t rgid, gid_t egid); }
348 205     NOARGS  { int netbsd32_getgroups(int gidsetsize, \
349                     netbsd32_gid_tp gidset); }
350 206     NOARGS  { int netbsd32_setgroups(int gidsetsize, \
351                     netbsd32_gid_tp gidset); }
352 207     NOARGS  { int netbsd32___posix_fchown(int fd, uid_t uid, gid_t gid); }
353 208     STD     { int linux32_sys_setresuid(uid_t ruid, uid_t euid, \
354                     uid_t suid); }
355 209     UNIMPL  getresuid
356 210     STD     { int linux32_sys_setresgid(gid_t rgid, gid_t egid, \
357                     gid_t sgid); }
358 211     UNIMPL  getresgid
359 212     NOARGS  { int netbsd32___posix_chown(const netbsd32_charp path, \
360                     int uid, int gid); }
361 213     NOARGS  { int netbsd32_setuid(uid_t uid); }
362 214     NOARGS  { int netbsd32_setgid(gid_t gid); }
363 215     STD     { int linux32_sys_setfsuid(uid_t uid); }
364 216     STD     { int linux32_sys_setfsgid(gid_t gid); }
365 217     UNIMPL  pivot_root
366 218     UNIMPL  mincore
367 219     NOARGS  { int netbsd32_madvise(netbsd32_voidp addr, \
368                     netbsd32_size_t len, int behav); }
369 220     STD     { int linux32_sys_getdents64(int fd, \
370                     linux32_dirent64p_t dent, unsigned int count); }
371 ; fcntl64() - Exactly the same as fcntl()
372 #define linux32_sys_fcntl64 linux32_sys_fcntl
373 #define linux32_sys_fcntl64_args linux32_sys_fcntl_args
374 221     NOARGS  { int linux32_sys_fcntl64(int fd, \
375                     int cmd, netbsd32_voidp arg); }
376 222     UNIMPL  /*      unused  */
377 223     UNIMPL  /*      unused  */
378 224     STD     { pid_t linux_sys_gettid(void); }
379 225     UNIMPL  readahead
380 226     UNIMPL  setxattr
381 227     UNIMPL  lsetxattr
382 228     UNIMPL  fsetxattr
383 229     UNIMPL  getxattr
384 230     UNIMPL  lgetxattr
385 231     UNIMPL  fgetxattr
386 232     UNIMPL  listxattr
387 233     UNIMPL  llistxattr
388 234     UNIMPL  flistxattr
389 235     UNIMPL  removexattr
390 236     UNIMPL  lremovexattr
391 237     UNIMPL  fremovexattr
392 238     UNIMPL  tkill
393 239     UNIMPL  sendfile64
394 240     UNIMPL  futex
395 241     UNIMPL  sched_setaffinity
396 242     UNIMPL  sched_getaffinity
397 243     UNIMPL  set_thread_area
398 244     UNIMPL  get_thread_area
399 245     UNIMPL  io_setup
400 246     UNIMPL  io_destroy
401 247     UNIMPL  io_getevents
402 248     UNIMPL  io_submit
403 249     UNIMPL  io_cancel
404 250     UNIMPL  fadvise64
405 251     UNIMPL  /*      unused  */
406 252     STD     { int linux32_sys_exit_group(int error_code); }
407 253     UNIMPL  lookup_dcookie
408 254     UNIMPL  epoll_create
409 255     UNIMPL  epoll_ctl
410 256     UNIMPL  epoll_wait
411 257     UNIMPL  remap_file_pages
412 258     UNIMPL  set_tid_address
413 259     UNIMPL  timer_create
414 260     UNIMPL  timer_settime
415 261     UNIMPL  timer_gettime
416 262     UNIMPL  timer_getoverrun
417 263     UNIMPL  timer_delete
418 264     UNIMPL  clock_settime
419 265     UNIMPL  clock_gettime
420 266     UNIMPL  clock_getres
421 267     UNIMPL  clock_nanosleep
422 268     UNIMPL  statfs64
423 269     UNIMPL  fstatfs64
424 270     UNIMPL  tgkill
425 271     UNIMPL  utimes
426 272     UNIMPL  fadvise64_64
427 273     UNIMPL  vserver
428 274     UNIMPL  mbind
429 275     UNIMPL  get_mempolicy
430 276     UNIMPL  set_mempolicy
431 277     UNIMPL  mq_open
432 278     UNIMPL  mq_unlink
433 279     UNIMPL  mq_timedsend
434 280     UNIMPL  mq_timedreceive
435 281     UNIMPL  mq_notify
436 282     UNIMPL  mq_getsetattr
437 283     UNIMPL  kexec_load