use SYS_syscall instead of SYS_indir

and turn off the 64 bit syscall interface
This commit is contained in:
deraadt 1994-01-16 00:49:47 +00:00
parent 376a5f4108
commit 405bf3d48d
3 changed files with 30 additions and 18 deletions

View File

@ -37,7 +37,7 @@
* *
* from: Utah Hdr: trap.c 1.32 91/04/06 * from: Utah Hdr: trap.c 1.32 91/04/06
* from: @(#)trap.c 7.14 (Berkeley) 3/8/93 * from: @(#)trap.c 7.14 (Berkeley) 3/8/93
* $Id: trap.c,v 1.1.1.1 1993/10/12 03:22:31 deraadt Exp $ * $Id: trap.c,v 1.2 1994/01/16 00:49:47 deraadt Exp $
*/ */
#include <sys/param.h> #include <sys/param.h>
@ -455,13 +455,13 @@ trap(statusReg, causeReg, vadr, pc, args)
#endif #endif
code = locr0[V0]; code = locr0[V0];
switch (code) { switch (code) {
case SYS_indir: case SYS_syscall:
/* /*
* Code is first argument, followed by actual args. * Code is first argument, followed by actual args.
*/ */
code = locr0[A0]; code = locr0[A0];
if (code >= numsys) if (code >= numsys)
callp = &systab[SYS_indir]; /* (illegal) */ callp = &systab[SYS_syscall]; /* (illegal) */
else else
callp = &systab[code]; callp = &systab[code];
i = callp->sy_narg; i = callp->sy_narg;
@ -486,14 +486,15 @@ trap(statusReg, causeReg, vadr, pc, args)
} }
break; break;
case SYS___indir: #if 0
case SYS___syscall:
/* /*
* Like indir, but code is a quad, so as to maintain * Like indir, but code is a quad, so as to maintain
* quad alignment for the rest of the arguments. * quad alignment for the rest of the arguments.
*/ */
code = locr0[A0 + _QUAD_LOWWORD]; code = locr0[A0 + _QUAD_LOWWORD];
if (code >= numsys) if (code >= numsys)
callp = &systab[SYS_indir]; /* (illegal) */ callp = &systab[SYS_syscall]; /* (illegal) */
else else
callp = &systab[code]; callp = &systab[code];
i = callp->sy_narg; i = callp->sy_narg;
@ -516,10 +517,11 @@ trap(statusReg, causeReg, vadr, pc, args)
} }
} }
break; break;
#endif
default: default:
if (code >= numsys) if (code >= numsys)
callp = &systab[SYS_indir]; /* (illegal) */ callp = &systab[SYS_syscall]; /* (illegal) */
else else
callp = &systab[code]; callp = &systab[code];
i = callp->sy_narg; i = callp->sy_narg;
@ -815,10 +817,12 @@ interrupt(statusReg, causeReg, pc)
clearsoftnet(); clearsoftnet();
cnt.v_soft++; cnt.v_soft++;
#ifdef INET #ifdef INET
#ifdef NETISR_ARP
if (netisr & (1 << NETISR_ARP)) { if (netisr & (1 << NETISR_ARP)) {
netisr &= ~(1 << NETISR_ARP); netisr &= ~(1 << NETISR_ARP);
arpintr(); arpintr();
} }
#endif
if (netisr & (1 << NETISR_IP)) { if (netisr & (1 << NETISR_IP)) {
netisr &= ~(1 << NETISR_IP); netisr &= ~(1 << NETISR_IP);
ipintr(); ipintr();

View File

@ -37,7 +37,7 @@
* *
* from: Utah Hdr: trap.c 1.32 91/04/06 * from: Utah Hdr: trap.c 1.32 91/04/06
* from: @(#)trap.c 7.14 (Berkeley) 3/8/93 * from: @(#)trap.c 7.14 (Berkeley) 3/8/93
* $Id: pmax_trap.c,v 1.1.1.1 1993/10/12 03:22:31 deraadt Exp $ * $Id: pmax_trap.c,v 1.2 1994/01/16 00:49:47 deraadt Exp $
*/ */
#include <sys/param.h> #include <sys/param.h>
@ -455,13 +455,13 @@ trap(statusReg, causeReg, vadr, pc, args)
#endif #endif
code = locr0[V0]; code = locr0[V0];
switch (code) { switch (code) {
case SYS_indir: case SYS_syscall:
/* /*
* Code is first argument, followed by actual args. * Code is first argument, followed by actual args.
*/ */
code = locr0[A0]; code = locr0[A0];
if (code >= numsys) if (code >= numsys)
callp = &systab[SYS_indir]; /* (illegal) */ callp = &systab[SYS_syscall]; /* (illegal) */
else else
callp = &systab[code]; callp = &systab[code];
i = callp->sy_narg; i = callp->sy_narg;
@ -486,14 +486,15 @@ trap(statusReg, causeReg, vadr, pc, args)
} }
break; break;
case SYS___indir: #if 0
case SYS___syscall:
/* /*
* Like indir, but code is a quad, so as to maintain * Like indir, but code is a quad, so as to maintain
* quad alignment for the rest of the arguments. * quad alignment for the rest of the arguments.
*/ */
code = locr0[A0 + _QUAD_LOWWORD]; code = locr0[A0 + _QUAD_LOWWORD];
if (code >= numsys) if (code >= numsys)
callp = &systab[SYS_indir]; /* (illegal) */ callp = &systab[SYS_syscall]; /* (illegal) */
else else
callp = &systab[code]; callp = &systab[code];
i = callp->sy_narg; i = callp->sy_narg;
@ -516,10 +517,11 @@ trap(statusReg, causeReg, vadr, pc, args)
} }
} }
break; break;
#endif
default: default:
if (code >= numsys) if (code >= numsys)
callp = &systab[SYS_indir]; /* (illegal) */ callp = &systab[SYS_syscall]; /* (illegal) */
else else
callp = &systab[code]; callp = &systab[code];
i = callp->sy_narg; i = callp->sy_narg;
@ -815,10 +817,12 @@ interrupt(statusReg, causeReg, pc)
clearsoftnet(); clearsoftnet();
cnt.v_soft++; cnt.v_soft++;
#ifdef INET #ifdef INET
#ifdef NETISR_ARP
if (netisr & (1 << NETISR_ARP)) { if (netisr & (1 << NETISR_ARP)) {
netisr &= ~(1 << NETISR_ARP); netisr &= ~(1 << NETISR_ARP);
arpintr(); arpintr();
} }
#endif
if (netisr & (1 << NETISR_IP)) { if (netisr & (1 << NETISR_IP)) {
netisr &= ~(1 << NETISR_IP); netisr &= ~(1 << NETISR_IP);
ipintr(); ipintr();

View File

@ -37,7 +37,7 @@
* *
* from: Utah Hdr: trap.c 1.32 91/04/06 * from: Utah Hdr: trap.c 1.32 91/04/06
* from: @(#)trap.c 7.14 (Berkeley) 3/8/93 * from: @(#)trap.c 7.14 (Berkeley) 3/8/93
* $Id: trap.c,v 1.1.1.1 1993/10/12 03:22:31 deraadt Exp $ * $Id: trap.c,v 1.2 1994/01/16 00:49:47 deraadt Exp $
*/ */
#include <sys/param.h> #include <sys/param.h>
@ -455,13 +455,13 @@ trap(statusReg, causeReg, vadr, pc, args)
#endif #endif
code = locr0[V0]; code = locr0[V0];
switch (code) { switch (code) {
case SYS_indir: case SYS_syscall:
/* /*
* Code is first argument, followed by actual args. * Code is first argument, followed by actual args.
*/ */
code = locr0[A0]; code = locr0[A0];
if (code >= numsys) if (code >= numsys)
callp = &systab[SYS_indir]; /* (illegal) */ callp = &systab[SYS_syscall]; /* (illegal) */
else else
callp = &systab[code]; callp = &systab[code];
i = callp->sy_narg; i = callp->sy_narg;
@ -486,14 +486,15 @@ trap(statusReg, causeReg, vadr, pc, args)
} }
break; break;
case SYS___indir: #if 0
case SYS___syscall:
/* /*
* Like indir, but code is a quad, so as to maintain * Like indir, but code is a quad, so as to maintain
* quad alignment for the rest of the arguments. * quad alignment for the rest of the arguments.
*/ */
code = locr0[A0 + _QUAD_LOWWORD]; code = locr0[A0 + _QUAD_LOWWORD];
if (code >= numsys) if (code >= numsys)
callp = &systab[SYS_indir]; /* (illegal) */ callp = &systab[SYS_syscall]; /* (illegal) */
else else
callp = &systab[code]; callp = &systab[code];
i = callp->sy_narg; i = callp->sy_narg;
@ -516,10 +517,11 @@ trap(statusReg, causeReg, vadr, pc, args)
} }
} }
break; break;
#endif
default: default:
if (code >= numsys) if (code >= numsys)
callp = &systab[SYS_indir]; /* (illegal) */ callp = &systab[SYS_syscall]; /* (illegal) */
else else
callp = &systab[code]; callp = &systab[code];
i = callp->sy_narg; i = callp->sy_narg;
@ -815,10 +817,12 @@ interrupt(statusReg, causeReg, pc)
clearsoftnet(); clearsoftnet();
cnt.v_soft++; cnt.v_soft++;
#ifdef INET #ifdef INET
#ifdef NETISR_ARP
if (netisr & (1 << NETISR_ARP)) { if (netisr & (1 << NETISR_ARP)) {
netisr &= ~(1 << NETISR_ARP); netisr &= ~(1 << NETISR_ARP);
arpintr(); arpintr();
} }
#endif
if (netisr & (1 << NETISR_IP)) { if (netisr & (1 << NETISR_IP)) {
netisr &= ~(1 << NETISR_IP); netisr &= ~(1 << NETISR_IP);
ipintr(); ipintr();