diff options
author | sos <sos@FreeBSD.org> | 1994-10-10 07:33:01 +0000 |
---|---|---|
committer | sos <sos@FreeBSD.org> | 1994-10-10 07:33:01 +0000 |
commit | 03a02ed1752db367223cc17d6465dcb08f262939 (patch) | |
tree | f9137fbb0821df63c3f8fd09eb770b994afe813b | |
parent | 6134378e436571766f976124e72f838995a13eb9 (diff) | |
download | FreeBSD-src-03a02ed1752db367223cc17d6465dcb08f262939.zip FreeBSD-src-03a02ed1752db367223cc17d6465dcb08f262939.tar.gz |
Hmm, only translate errno when doing an actual return.
Reviewed by: sef@freefall.cdrom.com
-rw-r--r-- | sys/amd64/amd64/trap.c | 14 | ||||
-rw-r--r-- | sys/i386/i386/trap.c | 14 | ||||
-rw-r--r-- | sys/kern/subr_trap.c | 14 |
3 files changed, 21 insertions, 21 deletions
diff --git a/sys/amd64/amd64/trap.c b/sys/amd64/amd64/trap.c index e2d91a9..b9c334b 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.36 1994/10/08 22:19:50 phk Exp $ + * $Id: trap.c,v 1.37 1994/10/09 22:02:06 sos Exp $ */ /* @@ -664,12 +664,6 @@ syscall(frame) error = (*callp->sy_call)(p, args, rval); - if (p->p_sysent->sv_errsize) - if (error >= p->p_sysent->sv_errsize) - error = -1; /* XXX */ - else - error = p->p_sysent->sv_errtbl[error]; - switch (error) { case 0: @@ -692,6 +686,12 @@ syscall(frame) default: bad: + if (p->p_sysent->sv_errsize) + if (error >= p->p_sysent->sv_errsize) + error = -1; /* XXX */ + else + error = p->p_sysent->sv_errtbl[error]; + else frame.tf_eax = error; frame.tf_eflags |= PSL_C; /* carry bit */ break; diff --git a/sys/i386/i386/trap.c b/sys/i386/i386/trap.c index e2d91a9..b9c334b 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.36 1994/10/08 22:19:50 phk Exp $ + * $Id: trap.c,v 1.37 1994/10/09 22:02:06 sos Exp $ */ /* @@ -664,12 +664,6 @@ syscall(frame) error = (*callp->sy_call)(p, args, rval); - if (p->p_sysent->sv_errsize) - if (error >= p->p_sysent->sv_errsize) - error = -1; /* XXX */ - else - error = p->p_sysent->sv_errtbl[error]; - switch (error) { case 0: @@ -692,6 +686,12 @@ syscall(frame) default: bad: + if (p->p_sysent->sv_errsize) + if (error >= p->p_sysent->sv_errsize) + error = -1; /* XXX */ + else + error = p->p_sysent->sv_errtbl[error]; + else frame.tf_eax = error; frame.tf_eflags |= PSL_C; /* carry bit */ break; diff --git a/sys/kern/subr_trap.c b/sys/kern/subr_trap.c index e2d91a9..b9c334b 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.36 1994/10/08 22:19:50 phk Exp $ + * $Id: trap.c,v 1.37 1994/10/09 22:02:06 sos Exp $ */ /* @@ -664,12 +664,6 @@ syscall(frame) error = (*callp->sy_call)(p, args, rval); - if (p->p_sysent->sv_errsize) - if (error >= p->p_sysent->sv_errsize) - error = -1; /* XXX */ - else - error = p->p_sysent->sv_errtbl[error]; - switch (error) { case 0: @@ -692,6 +686,12 @@ syscall(frame) default: bad: + if (p->p_sysent->sv_errsize) + if (error >= p->p_sysent->sv_errsize) + error = -1; /* XXX */ + else + error = p->p_sysent->sv_errtbl[error]; + else frame.tf_eax = error; frame.tf_eflags |= PSL_C; /* carry bit */ break; |