Source-Changes-HG archive

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

[src/trunk]: src/sys/arch/arm/arm32 Add softint processing for irq_idle_entry



details:   https://anonhg.NetBSD.org/src/rev/506283800756
branches:  trunk
changeset: 782217:506283800756
user:      matt <matt%NetBSD.org@localhost>
date:      Sun Oct 21 10:29:53 2012 +0000

description:
Add softint processing for irq_idle_entry

diffstat:

 sys/arch/arm/arm32/irq_dispatch.S |  14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

diffs (26 lines):

diff -r 40814a4e2b3f -r 506283800756 sys/arch/arm/arm32/irq_dispatch.S
--- a/sys/arch/arm/arm32/irq_dispatch.S Sun Oct 21 10:29:23 2012 +0000
+++ b/sys/arch/arm/arm32/irq_dispatch.S Sun Oct 21 10:29:53 2012 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: irq_dispatch.S,v 1.13 2012/10/21 09:25:16 matt Exp $   */
+/*     $NetBSD: irq_dispatch.S,v 1.14 2012/10/21 10:29:53 matt Exp $   */
 
 /*
  * Copyright (c) 2002 Fujitsu Component Limited
@@ -159,5 +159,15 @@
         */
        str     r6, [r4, #CI_INTR_DEPTH]
 
-       PULLIDLEFRAME
+#if defined(__HAVE_FAST_SOFTINTS) && !defined(__HAVE_PIC_FAST_SOFTINTS)
+        ldr    r2, [r4, #CI_CPL]       /* Get current priority level */
+       ldr     r3, [r4, #CI_SOFTINTS]  /* Get pending softint mask */
+#endif
+
+       PULLIDLEFRAME                   /* restore r4, r6, sp, lr */
+
+#if defined(__HAVE_FAST_SOFTINTS) && !defined(__HAVE_PIC_FAST_SOFTINTS)
+        lsrs   r3, r3, r2              /* shift mask by cpl */
+       bne     _C_LABEL(dosoftints)    /* dosoftints(void) */
+#endif
        RET



Home | Main Index | Thread Index | Old Index