freebsd-skq/sys/alpha/osf1/syscalls.master
Andrew Gallatin 32a8490d32 Finally add the Alpha OSF/1 compat code. I will add it to the
sys/modules Makefile after completing a buildworld.

History:

The bulk of this code was obtained from NetBSD approximately one year
ago (I have taken care to preserve the original NetBSD copyrights and
I thank the authors for their work.) At that time, the OSF/1 code was
what was left over from their initial bootstrapping off of OSF/1 and
did not provide support for executing shared binaries.

I have independently added support for shared libraries, and support
for some of the more obscure system calls.  This code has been
available for testing and comment since January of 1999 and running on
production machines here at Duke since April.

Known working applications include:

- Netscape (all versions I've tried)
- Mathematica 3.0.2
- Splus 3.4
- ArcInfo 7.1
- Matlab (version unknown)
- SimOS
- Atom instrumented binaries (built on a real OSF/1 system)

Applications which are known not to work:

- All applications linking to libmach
- Adobe Acrobat  (uses libmach)

This has been tested with applications running against shared
libraries from OSF/1 (aka Tru64) 4.0D and 4.0F.

Reviewed by: marcel, obrien
BDE-lint by: obrien
Agreed in principal to by: msmith
1999-12-14 22:35:36 +00:00

393 lines
14 KiB
Plaintext

; $FreeBSD$
; @(#)syscalls.master 8.1 (Berkeley) 7/19/93
; System call name/number master file (or rather, slave, from OSF1).
; Processed to created osf1_sysent.c, osf1_syscalls.c and osf1_syscall.h.
; Columns: number type nargs namespc name alt{name,tag,rtyp}/comments
; number system call number, must be in order
; type one of STD, OBSOL, UNIMPL, COMPAT
; namespc one of POSIX, BSD, STD, NOHIDE (I dont care :-) -Peter
; name psuedo-prototype of syscall routine
; If one of the following alts is different, then all appear:
; altname name of system call if different
; alttag name of args struct tag if different from [o]`name'"_args"
; altrtyp return type if not int (bogus - syscalls always return int)
; for UNIMPL/OBSOL, name continues with comments
; types:
; STD always included
; COMPAT included on COMPAT #ifdef
; LIBCOMPAT included on COMPAT #ifdef, and placed in syscall.h
; OBSOL obsolete, not included in system, only specifies name
; UNIMPL not implemented, placeholder only
#include "opt_compat.h"
#include <sys/param.h>
#include <sys/sysent.h>
#include <sys/sysproto.h>
#include <alpha/osf1/osf1.h>
#include <alpha/osf1/osf1_signal.h>
#include <alpha/osf1/osf1_proto.h>
0 NOPROTO OSF1 { int nosys(void); }
1 NOPROTO OSF1 { int exit(int rval); }
2 NOPROTO OSF1 { int fork(void); }
3 NOPROTO OSF1 { ssize_t read(int fd, char *buf, ssize_t nbyte); }
4 NOPROTO OSF1 { ssize_t write(int fd, char *buf, ssize_t nbyte); }
5 UNIMPL OSF1 old open
6 NOPROTO OSF1 { int close(int fd); }
7 STD OSF1 { int osf1_wait4(int pid, int *status, int options, \
struct osf1_rusage *rusage); }
8 UNIMPL OSF1 old creat
9 NOPROTO OSF1 { int link(char *path, char *link); }
10 NOPROTO OSF1 { int unlink(char *path); }
11 UNIMPL OSF1 execv
12 NOPROTO OSF1 { int chdir(char *path); }
13 NOPROTO OSF1 { int fchdir(int fd); }
14 STD OSF1 { int osf1_mknod(char *path, int mode, int dev); }
15 NOPROTO OSF1 { int chmod(char *path, int mode); }
16 NOPROTO OSF1 { int chown(char *path, int uid, int gid); }
17 NOPROTO OSF1 { int obreak(char *nsize); }
18 STD OSF1 { int osf1_getfsstat(struct osf1_statfs *buf, \
long bufsize, int flags); }
19 STD OSF1 { off_t osf1_lseek(int fd, off_t offset, \
int whence); }
20 NOPROTO OSF1 { pid_t getpid(void); }
21 STD OSF1 { int osf1_mount(int type, char *path, int flags, \
caddr_t data); }
22 STD OSF1 { int osf1_unmount(char *path, int flags); }
23 STD OSF1 { int osf1_setuid(uid_t uid); }
24 NOPROTO OSF1 { uid_t getuid(void); }
25 UNIMPL OSF1 exec_with_loader
26 UNIMPL OSF1 ptrace
27 UNIMPL OSF1 recvmsg
28 UNIMPL OSF1 sendmsg
29 NOPROTO OSF1 { int recvfrom(int s, caddr_t buf, size_t len, \
int flags, caddr_t from, int *fromlenaddr); }
30 NOPROTO OSF1 { int accept(int s, caddr_t name, int *anamelen); }
31 NOPROTO OSF1 { int getpeername(int fdes, caddr_t asa, int *alen); }
32 NOPROTO OSF1 { int getsockname(int fdes, caddr_t asa, int *alen); }
33 STD OSF1 { int osf1_access(char *path, int flags); }
34 UNIMPL OSF1 chflags
35 UNIMPL OSF1 fchflags
36 NOPROTO OSF1 { int sync(void); }
37 STD OSF1 { int osf1_kill(int pid, int signum); }
38 UNIMPL OSF1 old stat
39 NOPROTO OSF1 { int setpgid(int pid, int pgid); }
40 UNIMPL OSF1 old lstat
41 NOPROTO OSF1 { int dup(u_int fd); }
42 NOPROTO OSF1 { int pipe(void); }
43 STD OSF1 { int osf1_set_program_attributes( \
vm_offset_t text_start, vm_offset_t text_len,\
vm_offset_t bss_start, vm_offset_t bss_len); }
44 UNIMPL OSF1 profil
45 STD OSF1 { int osf1_open(char *path, int flags, int mode); }
46 OBSOL OSF1 sigaction
47 NOPROTO OSF1 { gid_t getgid(void); }
48 STD OSF1 { int osf1_sigprocmask(int how, osf1_sigset_t mask); }
49 NOPROTO OSF1 { int getlogin(char *namebuf, u_int namelen); }
50 NOPROTO OSF1 { int setlogin(char *namebuf); }
51 NOPROTO OSF1 { int acct(char *path); }
52 STD OSF1 { int osf1_sigpending(struct proc *p, \
osf1_sigset_t *mask ); }
53 STD OSF1 { int osf1_classcntl(int opcode, int arg1, \
int arg2, int arg3); }
54 STD OSF1 { int osf1_ioctl(int fd, int com, caddr_t data); }
55 STD OSF1 { int osf1_reboot(int opt); }
56 NOPROTO OSF1 { int revoke(char *path); }
57 NOPROTO OSF1 { int symlink(char *path, char *link); }
58 NOPROTO OSF1 { int readlink(char *path, char *buf, int count); }
59 STD OSF1 { int osf1_execve(char *path, char **argp, \
char **envp); }
60 NOPROTO OSF1 { int umask(int newmask); }
61 NOPROTO OSF1 { int chroot(char *path); }
62 UNIMPL OSF1 old fstat
63 NOPROTO OSF1 { int getpgrp(void); }
64 NOPROTO OSF1 { int ogetpagesize(void); }
65 UNIMPL OSF1 mremap
66 NOPROTO OSF1 { int vfork(void); }
67 STD OSF1 { int osf1_stat(char *path, struct osf1_stat *ub); }
68 STD OSF1 { int osf1_lstat(char *path, \
struct osf1_stat *ub); }
69 UNIMPL OSF1 sbrk
70 UNIMPL OSF1 sstk
71 STD OSF1 { caddr_t osf1_mmap(caddr_t addr, size_t len, \
int prot, int flags, int fd, off_t pos); }
72 UNIMPL OSF1 ovadvise
73 NOPROTO OSF1 { int munmap(caddr_t addr, size_t len); }
74 NOPROTO OSF1 { int mprotect(void *addr, size_t len, int prot); }
; XXX
75 STD OSF1 { int osf1_madvise(void); }
76 UNIMPL OSF1 old vhangup
77 UNIMPL OSF1 kmodcall
78 UNIMPL OSF1 mincore
79 NOPROTO OSF1 { int getgroups(u_int gidsetsize, gid_t *gidset); }
80 NOPROTO OSF1 { int setgroups(u_int gidsetsize, gid_t *gidset); }
81 UNIMPL OSF1 old getpgrp
; OSF/1 setpgrp(); identical in function to setpgid(). XXX
82 STD OSF1 { int osf1_setpgrp(int pid, int pgid); }
83 STD OSF1 { int osf1_setitimer(u_int which, struct itimerval *itv, \
struct itimerval *oitv); }
84 UNIMPL OSF1 old wait
85 STD OSF1 { int osf1_table(long id, long index, void *addr, \
long nel, u_long lel); }
86 STD OSF1 { int osf1_getitimer(u_int which, struct itimerval *itv); }
87 NOPROTO OSF1 { int ogethostname(char *hostname, \
u_int len); }
88 NOPROTO OSF1 { int osethostname(char *hostname, \
u_int len); }
89 NOPROTO OSF1 { int getdtablesize(void); }
90 NOPROTO OSF1 { int dup2(u_int from, u_int to); }
91 STD OSF1 { int osf1_fstat(int fd, void *sb); }
92 STD OSF1 { int osf1_fcntl(int fd, int cmd, void *arg); }
93 STD OSF1 { int osf1_select(u_int nd, fd_set *in, fd_set *ou, \
fd_set *ex, struct timeval *tv); }
94 NOPROTO OSF1 { int poll(struct pollfd *fds, u_int nfds, \
int timeout); }
95 NOPROTO OSF1 { int fsync(int fd); }
96 NOPROTO OSF1 { int setpriority(int which, int who, int prio); }
97 STD OSF1 { int osf1_socket(int domain, int type, \
int protocol); }
98 NOPROTO OSF1 { int connect(int s, caddr_t name, int namelen); }
99 NOPROTO OSF1 { int oaccept(int s, caddr_t name, int *anamelen); }
100 NOPROTO OSF1 { int getpriority(int which, int who); }
101 NOPROTO OSF1 { int osend(int s, caddr_t buf, int len, \
int flags); }
102 NOPROTO OSF1 { int orecv(int s, caddr_t buf, int len, \
int flags); }
103 STD OSF1 { int osf1_sigreturn(struct osigcontext *sigcntxp); }
104 NOPROTO OSF1 { int bind(int s, caddr_t name, int namelen); }
105 NOPROTO OSF1 { int setsockopt(int s, int level, int name, \
caddr_t val, int valsize); }
106 NOPROTO OSF1 { int listen(int s, int backlog); }
107 UNIMPL OSF1 plock
108 UNIMPL OSF1 old sigvec
109 UNIMPL OSF1 old sigblock
110 UNIMPL OSF1 old sigsetmask
111 STD OSF1 { int osf1_sigsuspend(osf1_sigset_t ss); }
112 STD OSF1 { int osf1_osigstack(struct sigstack *nss, \
struct sigstack *oss); }
113 UNIMPL OSF1 old recvmsg
114 UNIMPL OSF1 old sendmsg
115 UNIMPL OSF1 vtrace
116 STD OSF1 { int osf1_gettimeofday(struct timeval *tp, \
struct timezone *tzp); }
; XXX
117 STD OSF1 { int osf1_getrusage(long who, void *rusage); }
118 NOPROTO OSF1 { int getsockopt(int s, int level, int name, \
caddr_t val, int *avalsize); }
119 UNIMPL OSF1
120 STD OSF1 { int osf1_readv(int fd, struct osf1_iovec *iovp, \
u_int iovcnt); }
121 STD OSF1 { int osf1_writev(int fd, struct osf1_iovec *iovp, \
u_int iovcnt); }
122 NOPROTO OSF1 { int settimeofday(struct timeval *tv, \
struct timezone *tzp); }
123 NOPROTO OSF1 { int fchown(int fd, int uid, int gid); }
124 NOPROTO OSF1 { int fchmod(int fd, int mode); }
125 NOPROTO OSF1 { int orecvfrom(int s, caddr_t buf, \
size_t len, int flags, caddr_t from, \
int *fromlenaddr); }
126 NOPROTO OSF1 { int setreuid(int ruid, int euid); }
127 NOPROTO OSF1 { int setregid(int rgid, int egid); }
128 NOPROTO OSF1 { int rename(const char *from, \
const char *to); }
129 STD OSF1 { int osf1_truncate(char *path, off_t length); }
130 STD OSF1 { int osf1_ftruncate(int fd, off_t length); }
131 NOPROTO OSF1 { int flock(int fd, int how); }
132 STD OSF1 { int osf1_setgid(gid_t gid); }
133 STD OSF1 { int osf1_sendto(int s, caddr_t buf, size_t len, \
int flags, struct sockaddr *to, int tolen); }
134 NOPROTO OSF1 { int shutdown(int s, int how); }
135 UNIMPL OSF1 socketpair
136 NOPROTO OSF1 { int mkdir(char *path, int mode); }
137 NOPROTO OSF1 { int rmdir(char *path); }
138 NOPROTO OSF1 { int utimes(char *path, struct timeval *tptr); }
139 OBSOL OSF1 4.2 sigreturn
140 UNIMPL OSF1 adjtime
141 NOPROTO OSF1 { int ogetpeername(int fdes, caddr_t asa, int *alen); }
142 NOPROTO OSF1 { int32_t ogethostid(void); }
143 NOPROTO OSF1 { int osethostid(int32_t hostid); }
144 STD OSF1 { int osf1_getrlimit(u_int which, \
struct rlimit *rlp); }
145 STD OSF1 { int osf1_setrlimit(u_int which, \
struct rlimit *rlp); }
146 UNIMPL OSF1 old killpg
147 NOPROTO OSF1 { int setsid(void); }
148 UNIMPL OSF1 quotactl
149 NOPROTO OSF1 { int oquota(void); }
150 NOPROTO OSF1 { int ogetsockname(int fdec, caddr_t asa, int *alen);}
151 UNIMPL OSF1
152 UNIMPL OSF1
153 UNIMPL OSF1
154 UNIMPL OSF1
155 UNIMPL OSF1
156 STD OSF1 { int osf1_sigaction(long signum, \
struct osf1_sigaction *nsa, \
struct osf1_sigaction *osa, \
void *sigtramp); }
157 UNIMPL OSF1
158 UNIMPL OSF1 nfssvc
159 NOPROTO OSF1 { int ogetdirentries(int fd, char *buf, \
u_int count, long *basep); }
160 STD OSF1 { int osf1_statfs(char *path, \
struct osf1_statfs *buf, int len); }
161 STD OSF1 { int osf1_fstatfs(int fd, \
struct osf1_statfs *buf, int len); }
162 UNIMPL OSF1
163 UNIMPL OSF1 async_daemon
164 UNIMPL OSF1 getfh
165 NOPROTO OSF1 { int getdomainname(char *domainname, int len); }
166 NOPROTO OSF1 { int setdomainname(char *domainname, int len); }
167 UNIMPL OSF1
168 UNIMPL OSF1
169 UNIMPL OSF1 exportfs
170 UNIMPL OSF1
171 UNIMPL OSF1
172 UNIMPL OSF1 alt msgctl
173 UNIMPL OSF1 alt msgget
174 UNIMPL OSF1 alt msgrcv
175 UNIMPL OSF1 alt msgsnd
176 UNIMPL OSF1 alt semctl
177 UNIMPL OSF1 alt semget
178 UNIMPL OSF1 alt semop
179 UNIMPL OSF1 alt uname
180 UNIMPL OSF1
181 UNIMPL OSF1 alt plock
182 UNIMPL OSF1 lockf
183 UNIMPL OSF1
184 UNIMPL OSF1 getmnt
185 UNIMPL OSF1
186 UNIMPL OSF1 unmount
187 UNIMPL OSF1 alt sigpending
188 UNIMPL OSF1 alt setsid
189 UNIMPL OSF1
190 UNIMPL OSF1
191 UNIMPL OSF1
192 UNIMPL OSF1
193 UNIMPL OSF1
194 UNIMPL OSF1
195 UNIMPL OSF1
196 UNIMPL OSF1
197 UNIMPL OSF1
198 UNIMPL OSF1
199 UNIMPL OSF1 swapon
200 NOPROTO OSF1 { int msgctl(int msqid, int cmd, \
struct msqid_ds *buf); }
201 NOPROTO OSF1 { int msgget(key_t key, int msgflg); }
202 NOPROTO OSF1 { int msgrcv(int msqid, void *msgp, size_t msgsz, \
long msgtyp, int msgflg); }
203 NOPROTO OSF1 { int msgsnd(int msqid, void *msgp, size_t msgsz, \
int msgflg); }
204 NOPROTO OSF1 { int __semctl(int semid, int semnum, int cmd, \
union semun *arg); }
205 NOPROTO OSF1 { int semget(key_t key, int nsems, int semflg); }
206 NOPROTO OSF1 { int semop(int semid, struct sembuf *sops, \
u_int nsops); }
207 NOPROTO OSF1 { int uname(struct utsname *name); }
208 NOPROTO OSF1 { int lchown(char *path, int uid, \
int gid); }
209 NOPROTO OSF1 { int shmat(int shmid, void *shmaddr, int shmflg); }
210 NOPROTO OSF1 { int shmctl(int shmid, int cmd, \
struct shmid_ds *buf); }
211 NOPROTO OSF1 { int shmdt(void *shmaddr); }
212 NOPROTO OSF1 { int shmget(key_t key, int size, int shmflg); }
213 UNIMPL OSF1 mvalid
214 UNIMPL OSF1 getaddressconf
215 UNIMPL OSF1 msleep
216 UNIMPL OSF1 mwakeup
217 STD OSF1 { int osf1_msync(caddr_t addr, size_t len, \
int flags); }
218 STD OSF1 {int osf1_signal(int signum, void *handler); }
219 UNIMPL OSF1 utc gettime
220 UNIMPL OSF1 utc adjtime
221 UNIMPL OSF1
222 UNIMPL OSF1 security
223 UNIMPL OSF1 kloadcall
224 UNIMPL OSF1
225 UNIMPL OSF1
226 UNIMPL OSF1
227 UNIMPL OSF1
228 UNIMPL OSF1
229 UNIMPL OSF1
230 UNIMPL OSF1
231 UNIMPL OSF1
232 UNIMPL OSF1
233 NOPROTO OSF1 { pid_t getpgid(pid_t pid); }
234 NOPROTO OSF1 { pid_t getsid(pid_t pid); }
235 STD OSF1 { int osf1_sigaltstack(struct osf1_sigaltstack *nss, \
struct osf1_sigaltstack *oss); }
236 UNIMPL OSF1 waitid
237 UNIMPL OSF1 priocntlset
238 UNIMPL OSF1 sigsendset
239 UNIMPL OSF1
240 UNIMPL OSF1 msfs_syscall
241 STD OSF1 { int osf1_sysinfo(int cmd, char *buf, long count); }
242 UNIMPL OSF1 uadmin
243 UNIMPL OSF1 fuser
244 STD OSF1 { int osf1_proplist_syscall(void); }
245 STD OSF1 { int osf1_ntpadjtime(void *tp); }
246 STD OSF1 { int osf1_ntpgettime(void *tp); }
247 STD OSF1 { int osf1_pathconf(char *path, int name); }
248 STD OSF1 { int osf1_fpathconf(int fd, int name); }
249 UNIMPL OSF1
250 STD OSF1 { int osf1_uswitch(long cmd, long mask); }
251 STD OSF1 { int osf1_usleep_thread(struct timeval *sleep, \
struct timeval *slept); }
252 UNIMPL OSF1 audcntl
253 UNIMPL OSF1 audgen
254 UNIMPL OSF1 sysfs
255 UNIMPL OSF1
256 STD OSF1 { int osf1_getsysinfo(u_long op, caddr_t buffer, \
u_long nbytes, caddr_t arg, u_long flag); }
257 STD OSF1 { int osf1_setsysinfo(u_long op, caddr_t buffer, \
u_long nbytes, caddr_t arg, u_long flag); }
258 UNIMPL OSF1 afs_syscall
259 UNIMPL OSF1 swapctl
260 UNIMPL OSF1 memcntl
261 UNIMPL OSF1
262 UNIMPL OSF1
263 UNIMPL OSF1
264 UNIMPL OSF1
265 UNIMPL OSF1
266 UNIMPL OSF1
267 UNIMPL OSF1
268 UNIMPL OSF1
269 UNIMPL OSF1
270 UNIMPL OSF1
271 UNIMPL OSF1
272 UNIMPL OSF1
273 UNIMPL OSF1
274 UNIMPL OSF1
275 UNIMPL OSF1
276 UNIMPL OSF1
277 UNIMPL OSF1
278 UNIMPL OSF1
279 UNIMPL OSF1
280 UNIMPL OSF1
281 UNIMPL OSF1
282 UNIMPL OSF1
283 UNIMPL OSF1
284 UNIMPL OSF1
285 UNIMPL OSF1
286 UNIMPL OSF1
287 UNIMPL OSF1
288 UNIMPL OSF1
289 UNIMPL OSF1
290 UNIMPL OSF1
291 UNIMPL OSF1
292 UNIMPL OSF1
293 UNIMPL OSF1
294 UNIMPL OSF1
295 UNIMPL OSF1
296 UNIMPL OSF1
297 UNIMPL OSF1
298 UNIMPL OSF1
299 UNIMPL OSF1
300 UNIMPL OSF1