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