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