summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Ish <ish@cvs.openbsd.org>2002-12-12 07:41:46 +0000
committerJason Ish <ish@cvs.openbsd.org>2002-12-12 07:41:46 +0000
commit583557ebde73781b7044ca4aa9b0bf6bed087797 (patch)
tree4ec1154fd94f0f5aa3630ec3d7a98ecfaa630960
parent8b1b00ec91fe19e38ca531072d50ef917876c2aa (diff)
linux passes the 6th syscall argument in ebp
- from NetBSD - ok deraadt, mickey
-rw-r--r--sys/arch/i386/i386/trap.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/arch/i386/i386/trap.c b/sys/arch/i386/i386/trap.c
index 6f2eae64929..5d755150af4 100644
--- a/sys/arch/i386/i386/trap.c
+++ b/sys/arch/i386/i386/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.50 2002/05/16 16:16:52 provos Exp $ */
+/* $OpenBSD: trap.c,v 1.51 2002/12/12 07:41:45 ish Exp $ */
/* $NetBSD: trap.c,v 1.95 1996/05/05 06:50:02 mycroft Exp $ */
/*-
@@ -673,10 +673,12 @@ syscall(frame)
/* XXX extra if() for every emul type.. */
if (p->p_emul == &emul_linux_aout || p->p_emul == &emul_linux_elf) {
/*
- * Linux passes the args in ebx, ecx, edx, esi, edi, in
+ * Linux passes the args in ebx, ecx, edx, esi, edi, ebp, in
* increasing order.
*/
switch (argsize) {
+ case 24:
+ args[5] = frame.tf_ebp;
case 20:
args[4] = frame.tf_edi;
case 16: