From b332d9a66efd1321052c4a2c0aa95613716d4ebf Mon Sep 17 00:00:00 2001 From: John Dyson Date: Mon, 5 May 1997 04:08:12 +0000 Subject: Make sure that *fork() always returns with %edx == 1 in the child. This was sometimes not happening correctly during my threads code work. --- sys/amd64/amd64/trap.c | 3 ++- sys/i386/i386/trap.c | 3 ++- sys/kern/subr_trap.c | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) (limited to 'sys') diff --git a/sys/amd64/amd64/trap.c b/sys/amd64/amd64/trap.c index aa4e3c5d39d5..5350c8976733 100644 --- a/sys/amd64/amd64/trap.c +++ b/sys/amd64/amd64/trap.c @@ -35,7 +35,7 @@ * SUCH DAMAGE. * * from: @(#)trap.c 7.4 (Berkeley) 5/13/91 - * $Id: trap.c,v 1.92 1997/04/14 13:52:52 bde Exp $ + * $Id: trap.c,v 1.93 1997/04/26 11:45:28 peter Exp $ */ /* @@ -967,6 +967,7 @@ fork_return(p, frame) { frame.tf_eax = 0; /* Child returns zero */ frame.tf_eflags &= ~PSL_C; /* success */ + frame.tf_edx = 1; userret(p, &frame, 0); #ifdef KTRACE diff --git a/sys/i386/i386/trap.c b/sys/i386/i386/trap.c index aa4e3c5d39d5..5350c8976733 100644 --- a/sys/i386/i386/trap.c +++ b/sys/i386/i386/trap.c @@ -35,7 +35,7 @@ * SUCH DAMAGE. * * from: @(#)trap.c 7.4 (Berkeley) 5/13/91 - * $Id: trap.c,v 1.92 1997/04/14 13:52:52 bde Exp $ + * $Id: trap.c,v 1.93 1997/04/26 11:45:28 peter Exp $ */ /* @@ -967,6 +967,7 @@ fork_return(p, frame) { frame.tf_eax = 0; /* Child returns zero */ frame.tf_eflags &= ~PSL_C; /* success */ + frame.tf_edx = 1; userret(p, &frame, 0); #ifdef KTRACE diff --git a/sys/kern/subr_trap.c b/sys/kern/subr_trap.c index aa4e3c5d39d5..5350c8976733 100644 --- a/sys/kern/subr_trap.c +++ b/sys/kern/subr_trap.c @@ -35,7 +35,7 @@ * SUCH DAMAGE. * * from: @(#)trap.c 7.4 (Berkeley) 5/13/91 - * $Id: trap.c,v 1.92 1997/04/14 13:52:52 bde Exp $ + * $Id: trap.c,v 1.93 1997/04/26 11:45:28 peter Exp $ */ /* @@ -967,6 +967,7 @@ fork_return(p, frame) { frame.tf_eax = 0; /* Child returns zero */ frame.tf_eflags &= ~PSL_C; /* success */ + frame.tf_edx = 1; userret(p, &frame, 0); #ifdef KTRACE -- cgit v1.3