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