summaryrefslogtreecommitdiff
path: root/sys/arch
diff options
context:
space:
mode:
authorJason Downs <downsj@cvs.openbsd.org>1997-09-08 22:51:37 +0000
committerJason Downs <downsj@cvs.openbsd.org>1997-09-08 22:51:37 +0000
commit387b0909e893132ff2b83a418dbacdcad2e9c7c0 (patch)
treeedf4f8fcf386680e1209bdc81cbf93299c90d557 /sys/arch
parent8e02cee662322b53c6e802056ae164751afd4478 (diff)
Fix SYS__syscall handler for BSD/OS.
Diffstat (limited to 'sys/arch')
-rw-r--r--sys/arch/i386/i386/trap.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/sys/arch/i386/i386/trap.c b/sys/arch/i386/i386/trap.c
index 3a125b30574..721e3ba9406 100644
--- a/sys/arch/i386/i386/trap.c
+++ b/sys/arch/i386/i386/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.24 1997/07/25 01:46:11 mickey Exp $ */
+/* $OpenBSD: trap.c,v 1.25 1997/09/08 22:51:36 downsj Exp $ */
/* $NetBSD: trap.c,v 1.95 1996/05/05 06:50:02 mycroft Exp $ */
#undef DEBUG
@@ -84,6 +84,9 @@ extern struct emul emul_linux_aout, emul_linux_elf;
#ifdef COMPAT_FREEBSD
extern struct emul emul_freebsd;
#endif
+#ifdef COMPAT_BSDOS
+extern struct emul emul_bsdos;
+#endif
#include "npx.h"
@@ -585,12 +588,14 @@ syscall(frame)
* Like syscall, but code is a quad, so as to maintain
* quad alignment for the rest of the arguments.
*/
+ if (callp != sysent
#ifdef COMPAT_FREEBSD
- /* FreeBSD has a same function in SYS___syscall */
- if (callp != sysent && p->p_emul != &emul_freebsd)
-#else
- if (callp != sysent)
+ && p->p_emul != &emul_freebsd
+#endif
+#ifdef COMPAT_BSDOS
+ && p->p_emul != &emul_bsdos
#endif
+ )
break;
code = fuword(params + _QUAD_LOWWORD * sizeof(int));
params += sizeof(quad_t);