summaryrefslogtreecommitdiffstats
path: root/sys/compat/freebsd32/syscalls.master
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2011-04-01 11:16:29 +0000
committerkib <kib@FreeBSD.org>2011-04-01 11:16:29 +0000
commit7c2eaa21fe792c26e223a2f36a4f5c00fdaf52d8 (patch)
tree601aa0131bd58a0facc71b1b7c7b138597686fbe /sys/compat/freebsd32/syscalls.master
parent6d6007bc145d7665435f03f2ff2043e14240d09e (diff)
downloadFreeBSD-src-7c2eaa21fe792c26e223a2f36a4f5c00fdaf52d8.zip
FreeBSD-src-7c2eaa21fe792c26e223a2f36a4f5c00fdaf52d8.tar.gz
Add support for executing the FreeBSD 1/i386 a.out binaries on amd64.
In particular: - implement compat shims for old stat(2) variants and ogetdirentries(2); - implement delivery of signals with ancient stack frame layout and corresponding sigreturn(2); - implement old getpagesize(2); - provide a user-mode trampoline and LDT call gate for lcall $7,$0; - port a.out image activator and connect it to the build as a module on amd64. The changes are hidden under COMPAT_43. MFC after: 1 month
Diffstat (limited to 'sys/compat/freebsd32/syscalls.master')
-rw-r--r--sys/compat/freebsd32/syscalls.master18
1 files changed, 12 insertions, 6 deletions
diff --git a/sys/compat/freebsd32/syscalls.master b/sys/compat/freebsd32/syscalls.master
index 8a4cadf..da42133 100644
--- a/sys/compat/freebsd32/syscalls.master
+++ b/sys/compat/freebsd32/syscalls.master
@@ -117,9 +117,11 @@
35 AUE_FCHFLAGS NOPROTO { int fchflags(int fd, int flags); }
36 AUE_SYNC NOPROTO { int sync(void); }
37 AUE_KILL NOPROTO { int kill(int pid, int signum); }
-38 AUE_STAT UNIMPL ostat
+38 AUE_STAT COMPAT { int freebsd32_stat(char *path, \
+ struct ostat32 *ub); }
39 AUE_GETPPID NOPROTO { pid_t getppid(void); }
-40 AUE_LSTAT UNIMPL olstat
+40 AUE_LSTAT COMPAT { int freebsd32_lstat(char *path, \
+ struct ostat *ub); }
41 AUE_DUP NOPROTO { int dup(u_int fd); }
42 AUE_PIPE NOPROTO { int pipe(void); }
43 AUE_GETEGID NOPROTO { gid_t getegid(void); }
@@ -153,9 +155,11 @@
60 AUE_UMASK NOPROTO { int umask(int newmask); } umask \
umask_args int
61 AUE_CHROOT NOPROTO { int chroot(char *path); }
-62 AUE_FSTAT OBSOL ofstat
+62 AUE_FSTAT COMPAT { int freebsd32_fstat(int fd, \
+ struct ostat32 *ub); }
63 AUE_NULL OBSOL ogetkerninfo
-64 AUE_NULL OBSOL ogetpagesize
+64 AUE_NULL COMPAT { int freebsd32_getpagesize( \
+ int32_t dummy); }
65 AUE_MSYNC NOPROTO { int msync(void *addr, size_t len, \
int flags); }
66 AUE_VFORK NOPROTO { int vfork(void); }
@@ -210,7 +214,8 @@
100 AUE_GETPRIORITY NOPROTO { int getpriority(int which, int who); }
101 AUE_NULL OBSOL osend
102 AUE_NULL OBSOL orecv
-103 AUE_NULL OBSOL osigreturn
+103 AUE_NULL COMPAT { int freebsd32_sigreturn( \
+ struct ia32_sigcontext3 *sigcntxp); }
104 AUE_BIND NOPROTO { int bind(int s, caddr_t name, \
int namelen); }
105 AUE_SETSOCKOPT NOPROTO { int setsockopt(int s, int level, \
@@ -292,7 +297,8 @@
; 155 is initialized by the NFS code, if present.
; XXX this is a problem!!!
155 AUE_NFS_SVC UNIMPL nfssvc
-156 AUE_GETDIRENTRIES OBSOL ogetdirentries
+156 AUE_GETDIRENTRIES COMPAT { int freebsd32_getdirentries(int fd, \
+ char *buf, u_int count, uint32_t *basep); }
157 AUE_STATFS COMPAT4 { int freebsd32_statfs(char *path, \
struct statfs32 *buf); }
158 AUE_FSTATFS COMPAT4 { int freebsd32_fstatfs(int fd, \
OpenPOWER on IntegriCloud