Source-Changes-HG archive

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

[src/trunk]: src/sys/arch Merge ast() and userret() between arm32 and arm26. ...



details:   https://anonhg.NetBSD.org/src/rev/5b4dc6303458
branches:  trunk
changeset: 519611:5b4dc6303458
user:      bjh21 <bjh21%NetBSD.org@localhost>
date:      Fri Dec 21 22:56:16 2001 +0000

description:
Merge ast() and userret() between arm32 and arm26.  The implementation used
is the arm32 one.

diffstat:

 sys/arch/arm/arm/ast.c           |  122 +++++++++++++++++++++++++++++++++++++++
 sys/arch/arm/arm32/ast.c         |  116 -------------------------------------
 sys/arch/arm/arm32/intr.c        |    4 +-
 sys/arch/arm/conf/files.arm      |    4 +-
 sys/arch/arm/include/cpu.h       |    4 +-
 sys/arch/arm26/arm26/except.c    |   94 ++---------------------------
 sys/arch/arm26/arm26/locore.S    |   18 +++--
 sys/arch/arm26/include/machdep.h |    3 +-
 8 files changed, 145 insertions(+), 220 deletions(-)

diffs (truncated from 589 to 300 lines):

diff -r af18c9f9a528 -r 5b4dc6303458 sys/arch/arm/arm/ast.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/arch/arm/arm/ast.c    Fri Dec 21 22:56:16 2001 +0000
@@ -0,0 +1,122 @@
+/*     $NetBSD: ast.c,v 1.1 2001/12/21 22:56:16 bjh21 Exp $    */
+
+/*
+ * Copyright (c) 1994,1995 Mark Brinicombe
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *     This product includes software developed by the RiscBSD team.
+ * 4. The name of the company nor the name of the author may be used to
+ *    endorse or promote products derived from this software without specific
+ *    prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTERS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * RiscBSD kernel project
+ *
+ * ast.c
+ *
+ * Code to handle ast's and returns to user mode
+ *
+ * Created      : 11/10/94
+ */
+
+#include "opt_ddb.h"
+
+#include <sys/param.h>
+#include <sys/proc.h>
+#include <sys/user.h>
+#include <sys/acct.h>
+#include <sys/systm.h>
+#include <sys/kernel.h>
+#include <sys/signal.h>
+#include <sys/vmmeter.h>
+#include <machine/cpu.h>
+#include <machine/frame.h>
+#include <machine/cpu.h>
+
+#include <arm/cpufunc.h>
+
+#include <uvm/uvm_extern.h>
+
+#ifdef arm26
+#include <machine/machdep.h>
+#endif
+
+int want_resched = 0;
+int astpending;
+
+void
+userret(struct proc *p)
+{
+       int sig;
+
+       /* Take pending signals. */
+       while ((sig = (CURSIG(p))) != 0)
+               postsig(sig);
+
+       curcpu()->ci_schedstate.spc_curpriority = p->p_priority = p->p_usrpri;
+}
+
+
+/*
+ * Handle asynchronous system traps.
+ * This is called from the irq handler to deliver signals
+ * and switch processes if required.
+ */
+
+void
+ast(struct trapframe *tf)
+{
+       struct proc *p = curproc;
+
+#ifdef arm26
+       /* Enable interrupts if they were enabled before the trap. */
+       if ((tf->tf_r15 & R15_IRQ_DISABLE) == 0)
+               int_on();
+#else
+       /* Interrupts were restored by exception_exit. */
+#endif
+
+       uvmexp.traps++;
+       uvmexp.softs++;
+
+#ifdef DEBUG
+       if (p == NULL)
+               panic("ast: no curproc!");
+       if (&p->p_addr->u_pcb == 0)
+               panic("ast: no pcb!");
+#endif 
+
+       if (p->p_flag & P_OWEUPC) {
+               p->p_flag &= ~P_OWEUPC;
+               ADDUPROF(p);
+       }
+
+       /* Allow a forced task switch. */
+       if (want_resched)
+               preempt(NULL);
+
+       userret(p);
+}
+
+/* End of ast.c */
diff -r af18c9f9a528 -r 5b4dc6303458 sys/arch/arm/arm32/ast.c
--- a/sys/arch/arm/arm32/ast.c  Fri Dec 21 22:41:18 2001 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,116 +0,0 @@
-/*     $NetBSD: ast.c,v 1.4 2001/11/29 17:10:31 thorpej Exp $  */
-
-/*
- * Copyright (c) 1994,1995 Mark Brinicombe
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the RiscBSD team.
- * 4. The name of the company nor the name of the author may be used to
- *    endorse or promote products derived from this software without specific
- *    prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTERS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * RiscBSD kernel project
- *
- * ast.c
- *
- * Code to handle ast's and returns to user mode
- *
- * Created      : 11/10/94
- */
-
-#include "opt_ddb.h"
-
-#include <sys/param.h>
-#include <sys/proc.h>
-#include <sys/user.h>
-#include <sys/acct.h>
-#include <sys/systm.h>
-#include <sys/kernel.h>
-#include <sys/signal.h>
-#include <sys/vmmeter.h>
-#include <machine/cpu.h>
-#include <machine/frame.h>
-#include <machine/cpu.h>
-
-#include <arm/cpufunc.h>
-
-#include <uvm/uvm_extern.h>
-
-int want_resched = 0;
-
-void
-userret(p)
-       struct proc *p;
-{
-       int sig;
-
-       /* Take pending signals. */
-       while ((sig = (CURSIG(p))) != 0)
-               postsig(sig);
-
-       curcpu()->ci_schedstate.spc_curpriority = p->p_priority = p->p_usrpri;
-}
-
-
-/*
- * void ast(trapframe_t *frame)
- *
- * Handle asynchronous system traps.
- * This is called from the irq handler to deliver signals
- * and switch processes if required.
- * userret() does all the signal delivery and process switching work
- */
-
-void
-ast(frame)
-       trapframe_t *frame;
-{
-       struct proc *p = curproc;
-
-       uvmexp.traps++;
-       uvmexp.softs++;
-
-#ifdef DEBUG
-       if (p == NULL)
-               panic("ast: no curproc!");
-       if (&p->p_addr->u_pcb == 0)
-               panic("ast: no pcb!");
-       if ((GetCPSR() & PSR_MODE) != PSR_SVC32_MODE)
-               panic("ast: not in SVC32 mode");
-#endif 
-
-       if (p->p_flag & P_OWEUPC) {
-               p->p_flag &= ~P_OWEUPC;
-               ADDUPROF(p);
-       }
-
-       /* Allow a forced task switch. */
-       if (want_resched)
-               preempt(NULL);
-
-       userret(p);
-}
-
-/* End of ast.c */
diff -r af18c9f9a528 -r 5b4dc6303458 sys/arch/arm/arm32/intr.c
--- a/sys/arch/arm/arm32/intr.c Fri Dec 21 22:41:18 2001 +0000
+++ b/sys/arch/arm/arm32/intr.c Fri Dec 21 22:56:16 2001 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: intr.c,v 1.4 2001/11/26 23:19:04 thorpej Exp $ */
+/*     $NetBSD: intr.c,v 1.5 2001/12/21 22:56:17 bjh21 Exp $   */
 
 /*
  * Copyright (c) 1994-1998 Mark Brinicombe.
@@ -116,8 +116,6 @@
        atomic_set_bit(&soft_interrupts, SOFTIRQ_BIT(SOFTIRQ_SERIAL));
 }
 
-int astpending;
-
 /* Handle software interrupts */
 
 void
diff -r af18c9f9a528 -r 5b4dc6303458 sys/arch/arm/conf/files.arm
--- a/sys/arch/arm/conf/files.arm       Fri Dec 21 22:41:18 2001 +0000
+++ b/sys/arch/arm/conf/files.arm       Fri Dec 21 22:56:16 2001 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: files.arm,v 1.47 2001/12/20 01:20:23 thorpej Exp $
+#      $NetBSD: files.arm,v 1.48 2001/12/21 22:56:17 bjh21 Exp $
 
 # temporary define to allow easy moving to ../arch/arm/arm32
 defflag                                ARM32
@@ -50,6 +50,7 @@
 file   arch/arm/arm/disassem.c
 
 file   arch/arm/arm/arm_machdep.c
+file   arch/arm/arm/ast.c
 file   arch/arm/arm/blockio.S
 file   arch/arm/arm/bootconfig.c
 file   arch/arm/arm/bus_space_notimpl.S        arm32
@@ -75,7 +76,6 @@
 
 # files common to arm32 implementations
 file   arch/arm/arm32/arm32_machdep.c          arm32
-file   arch/arm/arm32/ast.c                    arm32
 file   arch/arm/arm32/bus_dma.c                arm32
 file   arch/arm/arm32/cpu.c                    arm32 & cpu
 file   arch/arm/arm32/cpuswitch.S              arm32
diff -r af18c9f9a528 -r 5b4dc6303458 sys/arch/arm/include/cpu.h
--- a/sys/arch/arm/include/cpu.h        Fri Dec 21 22:41:18 2001 +0000
+++ b/sys/arch/arm/include/cpu.h        Fri Dec 21 22:56:16 2001 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: cpu.h,v 1.17 2001/11/22 18:00:00 thorpej Exp $ */
+/*     $NetBSD: cpu.h,v 1.18 2001/12/21 22:56:17 bjh21 Exp $   */
 
 /*
  * Copyright (c) 1994-1996 Mark Brinicombe.
@@ -235,10 +235,8 @@
 struct pcb;



Home | Main Index | Thread Index | Old Index