syscalls.master revision 1.8 1 $NetBSD: syscalls.master,v 1.8 1999/03/27 01:10:56 tron Exp $
2
3 ; @(#)syscalls.master 8.1 (Berkeley) 7/19/93
4
5 ; NetBSD alpha COMPAT_LINUX system call name/number "master" file.
6 ; (See syscalls.conf to see what it is processed into.)
7 ;
8 ; Fields: number type [type-dependent ...]
9 ; number system call number, must be in order
10 ; type one of STD, OBSOL, UNIMPL, NODEF, NOARGS, or one of
11 ; the compatibility options defined in syscalls.conf.
12 ;
13 ; types:
14 ; STD always included
15 ; OBSOL obsolete, not included in system
16 ; UNIMPL unimplemented, not included in system
17 ; NODEF included, but don't define the syscall number
18 ; NOARGS included, but don't define the syscall args structure
19 ; INDIR included, but don't define the syscall args structure
20 ; and allow it to be "really" varargs.
21 ;
22 ; The compat options are defined in the syscalls.conf file, and the
23 ; compat option name is prefixed to the syscall name. Other than
24 ; that, they're like NODEF (for 'compat' options), or STD (for
25 ; 'libcompat' options).
26 ;
27 ; The type-dependent arguments are as follows:
28 ; For STD, NODEF, NOARGS, and compat syscalls:
29 ; { pseudo-proto } [alias]
30 ; For other syscalls:
31 ; [comment]
32 ;
33 ; #ifdef's, etc. may be included, and are copied to the output files.
34 ; #include's are copied to the syscall names and switch definition files only.
35 ;
36 ; (ERH: 5/26/98)
37 ;
38 ; XXX XAX todo:
39 ; check arguments.
40 ; kill not used functions. (ifdef the actual code)
41 ;
42 ; NOT USED = This syscall is not really used in Linux, except in its
43 ; osf compat mode. Since Linux binaries shouldn't ever
44 ; call it and osf binaries run under a different emulation,
45 ; it shouldn't matter that the linux version of the
46 ; function might not DTRT. Define it anyway so we
47 ; don't have to split off or ifdef the associated function.
48 ; A bit better might be to have makesyscalls identify this
49 ; as "define but don't include in table" so it doesn't actually
50 ; ever get called.
51 ; UNIMPL <blank> = not implemented here nor in linux source
52 ; UNIMPL osf_* = osf functions implemented in linux, not here.
53 ;
54
55 #include "opt_sysv.h"
56 #include "opt_compat_43.h"
57
58 #include <sys/param.h>
59 #include <sys/systm.h>
60 #include <sys/signal.h>
61 #include <sys/mount.h>
62 #include <sys/syscallargs.h>
63
64 #include <compat/linux/common/linux_types.h>
65 #include <compat/linux/common/linux_signal.h>
66 #include <compat/linux/common/linux_siginfo.h>
67 #include <compat/linux/common/linux_ipc.h>
68 #include <compat/linux/common/linux_msg.h>
69 #include <compat/linux/common/linux_sem.h>
70 #include <compat/linux/common/linux_shm.h>
71 #include <compat/linux/common/linux_mmap.h>
72 ;#include <compat/linux/common/linux_machdep.h>
73
74 #include <compat/linux/linux_syscallargs.h>
75
76
77 0 NOARGS { int sys_nosys(void); } syscall
78 1 NOARGS { int sys_exit(int rval); }
79 2 NOARGS { int sys_fork(void); }
80 3 NOARGS { int sys_read(int fd, char *buf, u_int nbyte); }
81 4 NOARGS { int sys_write(int fd, char *buf, u_int nbyte); }
82 5 UNIMPL
83 6 NOARGS { int sys_close(int fd); }
84 7 UNIMPL osf_wait4
85 ;8 OBSOL osf_old_creat, NOT USED. XXX XAX
86 8 STD { int linux_sys_creat(char *path, int mode); }
87 9 NOARGS { int sys_link(char *path, char *link); }
88 10 STD { int linux_sys_unlink(char *path); }
89 11 UNIMPL
90 12 STD { int linux_sys_chdir(char *path); }
91 13 NOARGS { int sys_fchdir(int fd); }
92 14 STD { int linux_sys_mknod(char *path, int mode, int dev); }
93 15 STD { int linux_sys_chmod(char *path, int mode); }
94 16 STD { int linux_sys_chown(char *path, int uid, int gid); }
95 ;17 ALIAS osf_brk
96 17 STD { int linux_sys_brk(char *nsize); }
97 18 UNIMPL
98 19 NOARGS { long compat_43_sys_lseek(int fd, long offset, \
99 int whence); }
100 20 NOARGS { pid_t sys_getpid(void); }
101 21 UNIMPL osf_mount
102 22 UNIMPL osf_umount
103 23 NOARGS { int sys_setuid(uid_t uid); }
104 24 NOARGS { uid_t sys_getuid(void); }
105 25 UNIMPL
106 26 UNIMPL ptrace
107 27 UNIMPL
108 28 UNIMPL
109 29 UNIMPL
110 30 UNIMPL
111 31 UNIMPL
112 32 UNIMPL
113 33 STD { int linux_sys_access(char *path, int flags); }
114 34 UNIMPL
115 35 UNIMPL
116 36 NOARGS { int sys_sync(void); }
117 37 STD { int linux_sys_kill(int pid, int signum); }
118 38 UNIMPL
119 39 NOARGS { int sys_setpgid(int pid, int pgid); }
120 40 UNIMPL
121 41 NOARGS { int sys_dup(u_int fd); }
122 42 NOARGS { int linux_sys_pipe(void); }
123 43 UNIMPL osf_set_program_attributes
124 44 UNIMPL
125 45 STD { int linux_sys_open(char *path, int flags, int mode); }
126 46 UNIMPL
127 47 NOARGS { gid_t sys_getgid(void); }
128 48 UNIMPL osf_sigprocmask
129 49 UNIMPL
130 50 UNIMPL
131 51 NOARGS { int sys_acct(char *path); }
132 52 STD { int linux_sys_sigpending(linux_old_sigset_t *set); }
133 53 UNIMPL
134 54 STD { int linux_sys_ioctl(int fd, u_long com, \
135 caddr_t data); }
136 55 UNIMPL
137 56 UNIMPL
138 57 STD { int linux_sys_symlink(char *path, char *to); }
139 58 STD { int linux_sys_readlink(char *name, char *buf, \
140 int count); }
141 59 STD { int linux_sys_execve(char *path, char **argp, \
142 char **envp); }
143 60 NOARGS { int sys_umask(int newmask); }
144 61 NOARGS { int sys_chroot(char *path); }
145 62 UNIMPL
146 63 NOARGS { int sys_getpgrp(void); }
147 64 NOARGS { int compat_43_sys_getpagesize(void); }
148 65 UNIMPL
149 66 UNIMPL osf_vfork
150 67 STD { int linux_sys_stat(char *path, \
151 struct linux_stat *sp); }
152 68 STD { int linux_sys_lstat(char *path, \
153 struct linux_stat *sp); }
154 69 UNIMPL
155 70 UNIMPL
156 71 NOARGS { int linux_sys_mmap(unsigned long addr, size_t len, \
157 int prot, int flags, int fd, off_t offset); }
158 72 UNIMPL
159 73 NOARGS { int sys_munmap(caddr_t addr, int len); }
160 74 NOARGS { int sys_mprotect(caddr_t addr, int len, int prot); }
161 75 UNIMPL madvise
162 76 UNIMPL vhangup
163 77 UNIMPL
164 78 UNIMPL
165 79 NOARGS { int sys_getgroups(u_int gidsetsize, gid_t *gidset); }
166 80 NOARGS { int sys_setgroups(u_int gidsetsize, gid_t *gidset); }
167 81 UNIMPL
168 82 UNIMPL setpgrp
169 ;83: Uses int for seconds, and time_t. so need different itimerval struct.
170 83 UNIMPL osf_setitimer
171 84 UNIMPL
172 85 UNIMPL
173 ;86: Uses int for seconds, and time_t. so need different itimerval struct.
174 86 UNIMPL osf_getitimer
175 ; XXX XAX here, check args match.
176 87 NOARGS { int compat_43_sys_gethostname(char *hostname, \
177 u_int len); }
178 88 NOARGS { int compat_43_sys_sethostname(char *hostname, \
179 u_int len); }
180 89 UNIMPL getdtablesize
181 90 NOARGS { int sys_dup2(u_int from, u_int to); }
182 91 STD { int linux_sys_fstat(int fd, struct linux_stat *sp); }
183 92 STD { int linux_sys_fcntl(int fd, int cmd, void *arg); }
184 93 UNIMPL osf_select
185 94 UNIMPL poll
186 95 NOARGS { int sys_fsync(int fd); }
187 96 NOARGS { int sys_setpriority(int which, int who, int prio); }
188 97 STD { int linux_sys_socket(int domain, int type, \
189 int protocol); }
190 98 NOARGS { int sys_connect(int s, const struct sockaddr *name, \
191 int namelen); }
192 99 NOARGS { int compat_43_sys_accept(int s, \
193 caddr_t name, int *anamelen); }
194 ;100 ALIAS osf_getpriority
195 100 NOARGS { int sys_getpriority(int which, int who); }
196 101 NOARGS { int compat_43_sys_send(int s, caddr_t buf, int len, \
197 int flags); }
198 102 NOARGS { int compat_43_sys_recv(int s, caddr_t buf, int len, \
199 int flags); }
200 103 STD { int linux_sys_sigreturn(struct linux_sigframe *sfp); }
201 104 NOARGS { int sys_bind(int s, const struct sockaddr *name, \
202 int namelen); }
203 105 STD { int linux_sys_setsockopt(int s, int level, \
204 int optname, void *optval, int optlen); }
205 106 NOARGS { int sys_listen(int s, int backlog); }
206 107 UNIMPL
207 108 UNIMPL
208 109 UNIMPL
209 110 UNIMPL
210
211 111 STD { int linux_sys_sigsuspend(caddr_t restart, \
212 int oldmask, int mask); }
213 112 UNIMPL
214 113 NOARGS { int sys_recvmsg(int fd, struct msghdr *msg, \
215 u_int flags); }
216 114 NOARGS { int sys_sendmsg(int fd, struct msghdr *msg, \
217 u_int flags); }
218 115 UNIMPL
219 116 UNIMPL osf_gettimeofday
220 117 UNIMPL osf_getrusage
221 118 STD { int linux_sys_getsockopt(int s, int level, \
222 int optname, void *optval, int *optlen); }
223 119 UNIMPL
224 120 NOARGS { int sys_readv(int fd, struct iovec *iovp, \
225 u_int iovcnt); }
226 121 NOARGS { int sys_writev(int fd, struct iovec *iovp, \
227 u_int iovcnt); }
228 122 UNIMPL osf_settimeofday
229 123 STD { int linux_sys_fchown(int fd, int uid, int gid); }
230 124 NOARGS { int sys_fchmod(int fd, int mode); }
231 125 STD { int linux_sys_recvfrom(int s, void *buf, int len, \
232 int flags, struct sockaddr *from, \
233 int *fromlen); }
234 126 STD { int linux_sys_setreuid(int ruid, int euid); }
235 127 STD { int linux_sys_setregid(int rgid, int egid); }
236 128 STD { int linux_sys_rename(char *from, char *to); }
237 129 STD { int linux_sys_truncate(char *path, long length); }
238 130 NOARGS { int compat_43_sys_ftruncate(int fd, long length); }
239 131 NOARGS { int sys_flock(int fd, int how); }
240 132 NOARGS { int sys_setgid(gid_t gid); }
241 133 STD { int linux_sys_sendto(int s, void *msg, int len, \
242 int flags, struct sockaddr *to, int tolen); }
243 134 NOARGS { int sys_shutdown(int s, int how); }
244 135 STD { int linux_sys_socketpair(int domain, int type, \
245 int protocol, int *rsv); }
246 136 STD { int linux_sys_mkdir(char *path, int mode); }
247 137 STD { int linux_sys_rmdir(char *path); }
248 138 UNIMPL osf_utimes
249 139 UNIMPL
250 140 UNIMPL
251 141 NOARGS { int compat_43_sys_getpeername(int fdes, \
252 caddr_t asa, int *alen); }
253 142 UNIMPL
254 143 UNIMPL
255 144 NOARGS { int compat_43_sys_getrlimit(u_int which, \
256 struct orlimit *rlp); }
257 145 NOARGS { int compat_43_sys_setrlimit(u_int which, \
258 struct orlimit *rlp); }
259 146 UNIMPL
260 147 NOARGS { int sys_setsid(void); }
261 148 UNIMPL quotactl
262 149 UNIMPL
263 150 NOARGS { int compat_43_sys_getsockname(int fdec, \
264 caddr_t asa, int *alen); }
265 151 UNIMPL
266 152 UNIMPL
267 153 UNIMPL
268 154 UNIMPL
269 155 UNIMPL
270 ;156 ALIAS osf_sigaction
271 156 STD { int linux_sys_sigaction(int signum, \
272 const struct linux_old_sigaction *nsa, \
273 struct linux_old_sigaction *osa); }
274 157 UNIMPL
275 158 UNIMPL
276 159 UNIMPL osf_getdirentries
277 160 UNIMPL osf_statfs
278 161 UNIMPL osf_fstatfs
279 162 UNIMPL
280 163 UNIMPL
281 164 UNIMPL
282 165 UNIMPL osf_getdomainname
283 ;166 ALIAS osf_setdomainname
284 166 UNIMPL setdomainname
285 167 UNIMPL
286 168 UNIMPL
287 169 UNIMPL
288 170 UNIMPL
289 171 UNIMPL
290 172 UNIMPL
291 173 UNIMPL
292 174 UNIMPL
293 175 UNIMPL
294 176 UNIMPL
295 177 UNIMPL
296 178 UNIMPL
297 179 UNIMPL
298 180 UNIMPL
299 181 UNIMPL
300 182 UNIMPL
301 183 UNIMPL
302 184 UNIMPL
303 185 UNIMPL
304 186 UNIMPL
305 187 UNIMPL
306 188 UNIMPL
307 189 UNIMPL
308 190 UNIMPL
309 191 UNIMPL
310 192 UNIMPL
311 193 UNIMPL
312 194 UNIMPL
313 195 UNIMPL
314 196 UNIMPL
315 197 UNIMPL
316 198 UNIMPL
317 199 UNIMPL osf_swapon
318 #ifdef SYSVMSG
319 200 NOARGS { int linux_sys_msgctl(int msqid, int cmd, \
320 struct linux_msqid_ds *buf); }
321 201 NOARGS { int sys_msgget(key_t key, int msgflg); }
322 202 NOARGS { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, \
323 int msgflg); }
324 203 NOARGS { int sys_msgsnd(int msqid, void *msgp, size_t msgsz, \
325 int msgflg); }
326 #else
327 200 UNIMPL msgctl
328 201 UNIMPL msgget
329 202 UNIMPL msgrcv
330 203 UNIMPL msgsnd
331 #endif
332 #ifdef SYSVSEM
333 204 NOARGS { int linux_sys_semctl(int semid, int semnum, \
334 int cmd, union linux_semun arg); }
335 205 NOARGS { int sys_semget(key_t key, int nsems, int semflg); }
336 206 NOARGS { int sys_semop(int semid, struct sembuf *sops, \
337 unsigned u_int nsops); }
338 #else
339 204 UNIMPL semctl
340 205 UNIMPL semget
341 206 UNIMPL semop
342 #endif
343 ;207 OBSOL osf_utsname, NOT USED XXX XAX
344 207 STD { int linux_sys_olduname(struct linux_old_utsname *up); }
345 208 STD { int linux_sys_lchown(char *path, int uid, int gid); }
346 #ifdef SYSVSHM
347 209 NOARGS { int linux_sys_shmat(int shmid, void *shmaddr, \
348 int shmflg, u_long *raddr); }
349 210 NOARGS { int linux_sys_shmctl(int shmid, int cmd, \
350 struct linux_shmid_ds *buf); }
351 211 NOARGS { int sys_shmdt(void *shmaddr); }
352 212 NOARGS { int sys_shmget(key_t key, int size, int shmflg); }
353 #else
354 209 UNIMPL shmat
355 210 UNIMPL shmctl
356 211 UNIMPL shmdt
357 212 UNIMPL shmget
358 #endif
359 213 UNIMPL
360 214 UNIMPL
361 215 UNIMPL
362 216 UNIMPL
363 217 STD { int linux_sys_msync(caddr_t addr, int len, int fl); }
364 218 UNIMPL osf_signal
365 219 UNIMPL
366 220 UNIMPL
367 221 UNIMPL
368 222 UNIMPL
369 223 UNIMPL
370 224 UNIMPL
371 225 UNIMPL
372 226 UNIMPL
373 227 UNIMPL
374 228 UNIMPL
375 229 UNIMPL
376 230 UNIMPL
377 231 UNIMPL
378 232 UNIMPL
379 233 STD { int linux_sys_getpgid(int pid); }
380 234 NOARGS { pid_t sys_getsid(pid_t pid); }
381 235 UNIMPL
382 236 UNIMPL
383 237 UNIMPL
384 238 UNIMPL
385 239 UNIMPL
386 240 UNIMPL
387 241 UNIMPL osf_sysinfo
388 242 UNIMPL
389 243 UNIMPL
390 244 UNIMPL osf_proplist_syscall
391 245 UNIMPL
392 246 UNIMPL
393 247 UNIMPL
394 248 UNIMPL
395 249 UNIMPL
396 250 UNIMPL
397 251 UNIMPL osf_usleep_thread
398 252 UNIMPL
399 253 UNIMPL
400 254 UNIMPL sysfs
401 255 UNIMPL
402 256 UNIMPL osf_getsysinfo
403 257 UNIMPL osf_setsysinfo
404 258 UNIMPL
405 259 UNIMPL
406 260 UNIMPL
407 ; ???: fdatasync isn't implemented in Linux.
408 261 STD { int linux_sys_fdatasync(int fd); }
409 262 UNIMPL
410 263 UNIMPL
411 264 UNIMPL
412 265 UNIMPL
413 266 UNIMPL
414 267 UNIMPL
415 268 UNIMPL
416 269 UNIMPL
417 270 UNIMPL
418 271 UNIMPL
419 272 UNIMPL
420 273 UNIMPL
421 274 UNIMPL
422 275 UNIMPL
423 276 UNIMPL
424 277 UNIMPL
425 278 UNIMPL
426 279 UNIMPL
427 280 UNIMPL
428 281 UNIMPL
429 282 UNIMPL
430 283 UNIMPL
431 284 UNIMPL
432 285 UNIMPL
433 286 UNIMPL
434 287 UNIMPL
435 288 UNIMPL
436 289 UNIMPL
437 290 UNIMPL
438 291 UNIMPL
439 292 UNIMPL
440 293 UNIMPL
441 294 UNIMPL
442 295 UNIMPL
443 296 UNIMPL
444 297 UNIMPL
445 298 UNIMPL
446 299 UNIMPL
447 300 UNIMPL bdflush
448 301 UNIMPL sethae
449 302 UNIMPL mount
450 303 UNIMPL old_adjtimex
451 304 UNIMPL swapoff
452 305 STD { int linux_sys_getdents(int fd, \
453 struct linux_dirent *dent, unsigned int count); }
454 306 UNIMPL create_module
455 307 UNIMPL init_module
456 308 UNIMPL delete_module
457 309 UNIMPL get_kernel_syms
458 310 UNIMPL syslog
459 311 NOARGS { int sys_reboot(int opt); }
460 312 UNIMPL clone
461 ; XXX XAX does alpha linux really have a.out exec?
462 #ifdef EXEC_AOUT
463 313 STD { int linux_sys_uselib(char *path); }
464 #else
465 313 UNIMPL sys_uselib
466 #endif
467 314 NOARGS { int sys_mlock(const void *addr, size_t len); }
468 315 NOARGS { int sys_munlock(const void *addr, size_t len); }
469 316 UNIMPL mlockall
470 317 UNIMPL munlockall
471 318 UNIMPL sysinfo
472 319 STD { int linux_sys___sysctl(struct linux___sysctl *lsp); }
473 320 UNIMPL idle
474 321 UNIMPL umount
475 322 NOARGS { int compat_12_sys_swapon(char *name); }
476 323 STD { int linux_sys_times(struct times *tms); }
477 324 STD { int linux_sys_personality(int per); }
478 325 UNIMPL setfsuid
479 326 UNIMPL setfsgid
480 327 UNIMPL ustat
481 328 STD { int linux_sys_statfs(char *path, \
482 struct linux_statfs *sp); }
483 329 STD { int linux_sys_fstatfs(int fd, \
484 struct linux_statfs *sp); }
485 330 UNIMPL sched_setparam
486 331 UNIMPL sched_getparam
487 332 UNIMPL sched_setscheduler
488 333 UNIMPL sched_getscheduler
489 334 UNIMPL sched_yield
490 335 UNIMPL sched_get_priority_max
491 336 UNIMPL sched_get_priority_min
492 337 UNIMPL sched_rr_get_interval
493 338 UNIMPL afs_syscall
494 339 STD { int linux_sys_uname(struct linux_utsname *up); }
495 340 NOARGS { int sys_nanosleep(const struct timespec *rqtp, \
496 struct timespec *rmtp); }
497 341 STD { void *linux_sys_mremap(void *old_address, \
498 size_t old_size, size_t new_size, u_long flags); }
499 342 UNIMPL nfsservctl
500 343 UNIMPL setresgid
501 344 UNIMPL getresgid
502 345 UNIMPL pciconfig_read
503 346 UNIMPL pciconfig_write
504 347 UNIMPL query_module
505 348 UNIMPL prctl
506 349 NOARGS { int sys_pread(int fd, char *buf, size_t nbytes, \
507 off_t offset); }
508 350 NOARGS { int sys_pwrite(int fd, char *buf, size_t nbytes, \
509 off_t offset); }
510 351 STD { int linux_sys_rt_sigreturn( \
511 struct linux_rt_sigframe *sfp); }
512 352 STD { int linux_sys_rt_sigaction(int signum, \
513 const struct linux_sigaction *nsa, \
514 struct linux_sigaction *osa, \
515 size_t sigsetsize); }
516 353 STD { int linux_sys_rt_sigprocmask(int how, \
517 const linux_sigset_t *set, \
518 linux_sigset_t *oset, \
519 size_t sigsetsize); }
520 354 STD { int linux_sys_rt_sigpending( \
521 linux_sigset_t *set, \
522 size_t sigsetsize); }
523 355 UNIMPL rt_sigtimedwait
524 ; XXX XAX int here? sigset_t here?
525 356 STD { int linux_sys_rt_queueinfo(int pid, int signum, \
526 linux_siginfo_t *uinfo); }
527 357 STD { int linux_sys_rt_sigsuspend(linux_sigset_t *unewset, \
528 size_t sigsetsize); }
529 358 STD { int linux_sys_select(int nfds, fd_set *readfds, \
530 fd_set *writefds, fd_set *exceptfds, \
531 struct timeval *timeout); }
532 359 NOARGS { int sys_gettimeofday(struct timeval *tp, \
533 struct timezone *tzp); }
534 360 NOARGS { int sys_settimeofday(struct timeval *tp, \
535 struct timezone *tzp); }
536 361 NOARGS { int sys_getitimer(u_int which, \
537 struct itimerval *itv); }
538 362 NOARGS { int sys_setitimer(u_int which, \
539 struct itimerval *itv, struct itimerval *oitv); }
540 ; XXX XAX Is this correct? no. utime is a lib call. utimes is the syscall
541 ; do we need translation here? I don't think so.
542 ; what?
543 363 NOARGS { int sys_utimes(char *path, \
544 struct timecal *times); }
545 364 NOARGS { int sys_getrusage(int who, struct rusage *rusage); }
546 365 STD { int linux_sys_wait4(int pid, int *status, \
547 int options, struct rusage *rusage); }
548 366 UNIMPL adjtimex
549 367 NOARGS { int sys___getcwd(char *bufp, size_t length); }
550 368 UNIMPL capget
551 369 UNIMPL capset
552 370 UNIMPL sendfile
553