SCCS-vsn: sys/hp300/hp300/trap.c 7.7
SCCS-vsn: sys/tahoe/tahoe/trap.c 7.10
SCCS-vsn: sys/vax/vax/trap.c 7.10
*
* from: Utah $Hdr: trap.c 1.28 89/09/25$
*
*
* from: Utah $Hdr: trap.c 1.28 89/09/25$
*
- * @(#)trap.c 7.6 (Berkeley) %G%
+ * @(#)trap.c 7.7 (Berkeley) %G%
register struct sysent *callp;
register struct proc *p = u.u_procp;
int error, opc, numsys;
register struct sysent *callp;
register struct proc *p = u.u_procp;
int error, opc, numsys;
+ struct args {
+ int i[8];
+ } args;
+ int rval[2];
struct timeval syst;
struct sysent *systab;
#ifdef HPUXCOMPAT
struct timeval syst;
struct sysent *systab;
#ifdef HPUXCOMPAT
else
callp = &systab[code];
if ((i = callp->sy_narg * sizeof (int)) &&
else
callp = &systab[code];
if ((i = callp->sy_narg * sizeof (int)) &&
- (error = copyin(params, (caddr_t)args, (u_int)i))) {
+ (error = copyin(params, (caddr_t)&args, (u_int)i))) {
#ifdef HPUXCOMPAT
if (p->p_flag & SHPUX)
error = bsdtohpuxerrno(error);
#ifdef HPUXCOMPAT
if (p->p_flag & SHPUX)
error = bsdtohpuxerrno(error);
frame.f_sr |= PSL_C; /* carry bit */
#ifdef KTRACE
if (KTRPOINT(p, KTR_SYSCALL))
frame.f_sr |= PSL_C; /* carry bit */
#ifdef KTRACE
if (KTRPOINT(p, KTR_SYSCALL))
- ktrsyscall(p->p_tracep, code, callp->sy_narg, args);
+ ktrsyscall(p->p_tracep, code, callp->sy_narg, args.i);
#endif
goto done;
}
#ifdef KTRACE
if (KTRPOINT(p, KTR_SYSCALL))
#endif
goto done;
}
#ifdef KTRACE
if (KTRPOINT(p, KTR_SYSCALL))
- ktrsyscall(p->p_tracep, code, callp->sy_narg, args);
+ ktrsyscall(p->p_tracep, code, callp->sy_narg, args.i);
#endif
rval[0] = 0;
rval[1] = frame.f_regs[D1];
#ifdef HPUXCOMPAT
/* debug kludge */
if (callp->sy_call == notimp)
#endif
rval[0] = 0;
rval[1] = frame.f_regs[D1];
#ifdef HPUXCOMPAT
/* debug kludge */
if (callp->sy_call == notimp)
- error = notimp(u.u_procp, args, rval, code, callp->sy_narg);
+ error = notimp(u.u_procp, args.i, rval, code, callp->sy_narg);
- error = (*callp->sy_call)(u.u_procp, args, rval);
+ error = (*callp->sy_call)(u.u_procp, &args, rval);
if (error == ERESTART)
frame.f_pc = opc;
else if (error != EJUSTRETURN) {
if (error == ERESTART)
frame.f_pc = opc;
else if (error != EJUSTRETURN) {
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*
- * @(#)trap.c 7.9 (Berkeley) %G%
+ * @(#)trap.c 7.10 (Berkeley) %G%
register struct proc *p = u.u_procp;
struct timeval syst;
int error, opc;
register struct proc *p = u.u_procp;
struct timeval syst;
int error, opc;
+ struct args {
+ int i[8];
+ } args;
+ int rval[2];
#ifdef lint
r0 = 0; r0 = r0; r1 = 0; r1 = r1;
#ifdef lint
r0 = 0; r0 = r0; r1 = 0; r1 = r1;
else
callp = &sysent[code];
if ((i = callp->sy_narg * sizeof (int)) &&
else
callp = &sysent[code];
if ((i = callp->sy_narg * sizeof (int)) &&
- (error = copyin(params, (caddr_t)args, (u_int)i)) != 0) {
+ (error = copyin(params, (caddr_t)&args, (u_int)i)) != 0) {
locr0[R0] = error;
locr0[PS] |= PSL_C; /* carry bit */
#ifdef KTRACE
if (KTRPOINT(p, KTR_SYSCALL))
locr0[R0] = error;
locr0[PS] |= PSL_C; /* carry bit */
#ifdef KTRACE
if (KTRPOINT(p, KTR_SYSCALL))
- ktrsyscall(p->p_tracep, code, callp->sy_narg, args);
+ ktrsyscall(p->p_tracep, code, callp->sy_narg, args.i);
#endif
goto done;
}
#ifdef KTRACE
if (KTRPOINT(p, KTR_SYSCALL))
#endif
goto done;
}
#ifdef KTRACE
if (KTRPOINT(p, KTR_SYSCALL))
- ktrsyscall(p->p_tracep, code, callp->sy_narg, args);
+ ktrsyscall(p->p_tracep, code, callp->sy_narg, args.i);
#endif
rval[0] = 0;
rval[1] = locr0[R1];
#endif
rval[0] = 0;
rval[1] = locr0[R1];
- error = (*callp->sy_call)(u.u_procp, args, rval);
+ error = (*callp->sy_call)(u.u_procp, &args, rval);
if (error == ERESTART)
pc = opc;
else if (error != EJUSTRETURN) {
if (error == ERESTART)
pc = opc;
else if (error != EJUSTRETURN) {
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*
- * @(#)trap.c 7.9 (Berkeley) %G%
+ * @(#)trap.c 7.10 (Berkeley) %G%
register struct sysent *callp;
register struct proc *p = u.u_procp;
int error, opc;
register struct sysent *callp;
register struct proc *p = u.u_procp;
int error, opc;
+ struct args {
+ int i[8];
+ } args;
+ int rval[2];
struct timeval syst;
syst = u.u_ru.ru_stime;
struct timeval syst;
syst = u.u_ru.ru_stime;
else
callp = &sysent[code];
if ((i = callp->sy_narg * sizeof (int)) &&
else
callp = &sysent[code];
if ((i = callp->sy_narg * sizeof (int)) &&
- (error = copyin(params, (caddr_t)args, (u_int)i)) != 0) {
+ (error = copyin(params, (caddr_t)&args, (u_int)i)) != 0) {
locr0[R0] = error;
locr0[PS] |= PSL_C; /* carry bit */
#ifdef KTRACE
if (KTRPOINT(p, KTR_SYSCALL))
locr0[R0] = error;
locr0[PS] |= PSL_C; /* carry bit */
#ifdef KTRACE
if (KTRPOINT(p, KTR_SYSCALL))
- ktrsyscall(p->p_tracep, code, callp->sy_narg, args);
+ ktrsyscall(p->p_tracep, code, callp->sy_narg, args.i);
#endif
goto done;
}
#ifdef KTRACE
if (KTRPOINT(p, KTR_SYSCALL))
#endif
goto done;
}
#ifdef KTRACE
if (KTRPOINT(p, KTR_SYSCALL))
- ktrsyscall(p->p_tracep, code, callp->sy_narg, args);
+ ktrsyscall(p->p_tracep, code, callp->sy_narg, args.i);
#endif
rval[0] = 0;
rval[1] = locr0[R1];
#endif
rval[0] = 0;
rval[1] = locr0[R1];
- error = (*callp->sy_call)(u.u_procp, args, rval);
+ error = (*callp->sy_call)(u.u_procp, &args, rval);
if (error == ERESTART)
pc = opc;
else if (error != EJUSTRETURN) {
if (error == ERESTART)
pc = opc;
else if (error != EJUSTRETURN) {