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