Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/mips/mips Added twomissing SYSCALL_SHIFT for indire...



details:   https://anonhg.NetBSD.org/src/rev/8d5d876b8dcf
branches:  trunk
changeset: 518581:8d5d876b8dcf
user:      manu <manu%NetBSD.org@localhost>
date:      Sun Dec 02 08:28:18 2001 +0000

description:
Added twomissing SYSCALL_SHIFT for indirect syscall through SYS_syscall

diffstat:

 sys/arch/mips/mips/syscall.c |  14 ++++++++------
 1 files changed, 8 insertions(+), 6 deletions(-)

diffs (56 lines):

diff -r f80d0456656b -r 8d5d876b8dcf sys/arch/mips/mips/syscall.c
--- a/sys/arch/mips/mips/syscall.c      Sun Dec 02 06:38:51 2001 +0000
+++ b/sys/arch/mips/mips/syscall.c      Sun Dec 02 08:28:18 2001 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: syscall.c,v 1.5 2001/09/22 21:29:21 manu Exp $ */
+/*     $NetBSD: syscall.c,v 1.6 2001/12/02 08:28:18 manu Exp $ */
 
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -80,7 +80,7 @@
 
 #include <sys/cdefs.h>                 /* RCS ID & Copyright macro defns */
 
-__KERNEL_RCSID(0, "$NetBSD: syscall.c,v 1.5 2001/09/22 21:29:21 manu Exp $");
+__KERNEL_RCSID(0, "$NetBSD: syscall.c,v 1.6 2001/12/02 08:28:18 manu Exp $");
 
 #include "opt_ktrace.h"
 #include "opt_syscall_debug.h"
@@ -170,7 +170,7 @@
                        /*
                         * Code is first argument, followed by actual args.
                         */
-                       code = frame->f_regs[A0];
+                       code = frame->f_regs[A0] - SYSCALL_SHIFT;
                        args[0] = frame->f_regs[A1];
                        args[1] = frame->f_regs[A2];
                        args[2] = frame->f_regs[A3];
@@ -180,7 +180,8 @@
                         * Like syscall, but code is a quad, so as to maintain
                         * quad alignment for the rest of the arguments.
                         */
-                       code = frame->f_regs[A0 + _QUAD_LOWWORD];
+                       code = frame->f_regs[A0 + _QUAD_LOWWORD] 
+                           - SYSCALL_SHIFT;
                        args[0] = frame->f_regs[A2];
                        args[1] = frame->f_regs[A3];
                        nsaved = 2;
@@ -288,7 +289,7 @@
                        /*
                         * Code is first argument, followed by actual args.
                         */
-                       code = frame->f_regs[A0];
+                       code = frame->f_regs[A0] - SYSCALL_SHIFT;
                        args[0] = frame->f_regs[A1];
                        args[1] = frame->f_regs[A2];
                        args[2] = frame->f_regs[A3];
@@ -298,7 +299,8 @@
                         * Like syscall, but code is a quad, so as to maintain
                         * quad alignment for the rest of the arguments.
                         */
-                       code = frame->f_regs[A0 + _QUAD_LOWWORD];
+                       code = frame->f_regs[A0 + _QUAD_LOWWORD] 
+                           - SYSCALL_SHIFT;
                        args[0] = frame->f_regs[A2];
                        args[1] = frame->f_regs[A3];
                        nsaved = 2;



Home | Main Index | Thread Index | Old Index