Author: ian
Date: Mon Mar 10 18:10:09 2014
New Revision: 262979
URL: http://svnweb.freebsd.org/changeset/base/262979

Log:
  Eliminate irq_dispatch.S.  Move the data items it contained into arm/intr.c
  and the functionality it provided into arm/exception.S.  Rename the main
  irq handling routine from arm_handler_execute() to arm_irq_handler() to
  make it more congruent with how other exception handlers are named, and
  also update its signature to reflect what has long been reality: it is
  passed just a trapframe pointer, no interrupt number argument.

Deleted:
  head/sys/arm/arm/irq_dispatch.S
Modified:
  head/sys/arm/allwinner/a20/files.a20
  head/sys/arm/allwinner/files.a10
  head/sys/arm/arm/exception.S
  head/sys/arm/arm/intr.c
  head/sys/arm/at91/files.at91
  head/sys/arm/broadcom/bcm2835/files.bcm2835
  head/sys/arm/econa/files.econa
  head/sys/arm/freescale/imx/files.imx51
  head/sys/arm/freescale/imx/files.imx53
  head/sys/arm/freescale/imx/files.imx6
  head/sys/arm/freescale/vybrid/files.vybrid
  head/sys/arm/lpc/files.lpc
  head/sys/arm/mv/files.mv
  head/sys/arm/rockchip/files.rk30xx
  head/sys/arm/s3c2xx0/files.s3c2xx0
  head/sys/arm/samsung/exynos/files.exynos5
  head/sys/arm/tegra/files.tegra2
  head/sys/arm/ti/files.ti
  head/sys/arm/versatile/files.versatile
  head/sys/arm/xilinx/files.zynq7
  head/sys/arm/xscale/i80321/files.i80219
  head/sys/arm/xscale/i80321/files.i80321
  head/sys/arm/xscale/i8134x/files.i81342
  head/sys/arm/xscale/ixp425/files.ixp425
  head/sys/arm/xscale/pxa/files.pxa

Modified: head/sys/arm/allwinner/a20/files.a20
==============================================================================
--- head/sys/arm/allwinner/a20/files.a20        Mon Mar 10 16:07:45 2014        
(r262978)
+++ head/sys/arm/allwinner/a20/files.a20        Mon Mar 10 18:10:09 2014        
(r262979)
@@ -7,7 +7,6 @@ arm/arm/cpufunc_asm_armv5.S             standard
 arm/arm/cpufunc_asm_arm10.S            standard
 arm/arm/cpufunc_asm_arm11.S            standard
 arm/arm/cpufunc_asm_armv7.S            standard
-arm/arm/irq_dispatch.S                 standard
 arm/arm/gic.c                          standard
 
 arm/allwinner/a20/a20_cpu_cfg.c        standard

Modified: head/sys/arm/allwinner/files.a10
==============================================================================
--- head/sys/arm/allwinner/files.a10    Mon Mar 10 16:07:45 2014        
(r262978)
+++ head/sys/arm/allwinner/files.a10    Mon Mar 10 18:10:09 2014        
(r262979)
@@ -7,7 +7,6 @@ arm/arm/cpufunc_asm_armv5.S             standard
 arm/arm/cpufunc_asm_arm10.S            standard
 arm/arm/cpufunc_asm_arm11.S            standard
 arm/arm/cpufunc_asm_armv7.S            standard
-arm/arm/irq_dispatch.S                 standard
 
 arm/allwinner/a10_clk.c                        standard
 arm/allwinner/a10_common.c             standard

Modified: head/sys/arm/arm/exception.S
==============================================================================
--- head/sys/arm/arm/exception.S        Mon Mar 10 16:07:45 2014        
(r262978)
+++ head/sys/arm/arm/exception.S        Mon Mar 10 18:10:09 2014        
(r262979)
@@ -192,6 +192,16 @@ ASENTRY_NP(exception_exit)
        PULLFRAMEFROMSVCANDEXIT
 END(exception_exit)
 
+ASENTRY_NP(irq_entry)
+       sub     lr, lr, #0x00000004     /* Adjust the lr */
+       PUSHFRAMEINSVC                  /* Push an interrupt frame */
+       mov     r0, sp                  /* arg for dispatcher */
+
+       adr     lr, exception_exit
+       mov     r1, #0
+       b       _C_LABEL(arm_irq_handler)
+END(irq_entry)
+
 /*
  * undefined_entry:
  *

Modified: head/sys/arm/arm/intr.c
==============================================================================
--- head/sys/arm/arm/intr.c     Mon Mar 10 16:07:45 2014        (r262978)
+++ head/sys/arm/arm/intr.c     Mon Mar 10 18:10:09 2014        (r262979)
@@ -56,12 +56,18 @@ typedef void (*mask_fn)(void *);
 
 static struct intr_event *intr_events[NIRQ];
 
-void   arm_handler_execute(struct trapframe *, int);
+void   arm_irq_handler(struct trapframe *);
 
 void (*arm_post_filter)(void *) = NULL;
 int (*arm_config_irq)(int irq, enum intr_trigger trig,
     enum intr_polarity pol) = NULL;
 
+/* Data for statistics reporting. */
+u_long intrcnt[NIRQ];
+char intrnames[NIRQ * INTRNAME_LEN];
+size_t sintrcnt = sizeof(intrcnt);
+size_t sintrnames = sizeof(intrnames);
+
 /*
  * Pre-format intrnames into an array of fixed-size strings containing spaces.
  * This allows us to avoid the need for an intermediate table of indices into
@@ -127,7 +133,7 @@ dosoftints(void)
 }
 
 void
-arm_handler_execute(struct trapframe *frame, int irqnb)
+arm_irq_handler(struct trapframe *frame)
 {
        struct intr_event *event;
        int i;

Modified: head/sys/arm/at91/files.at91
==============================================================================
--- head/sys/arm/at91/files.at91        Mon Mar 10 16:07:45 2014        
(r262978)
+++ head/sys/arm/at91/files.at91        Mon Mar 10 18:10:09 2014        
(r262979)
@@ -1,6 +1,5 @@
 # $FreeBSD$
 arm/arm/cpufunc_asm_arm9.S     standard
-arm/arm/irq_dispatch.S         standard
 arm/at91/at91_machdep.c                standard
 arm/at91/at91_aic.c            standard
 arm/at91/at91.c                        standard

Modified: head/sys/arm/broadcom/bcm2835/files.bcm2835
==============================================================================
--- head/sys/arm/broadcom/bcm2835/files.bcm2835 Mon Mar 10 16:07:45 2014        
(r262978)
+++ head/sys/arm/broadcom/bcm2835/files.bcm2835 Mon Mar 10 18:10:09 2014        
(r262979)
@@ -22,7 +22,6 @@ arm/arm/cpufunc_asm_arm11.S             
 arm/arm/cpufunc_asm_arm11x6.S                   standard
 arm/arm/cpufunc_asm_armv5.S                     standard
 arm/arm/cpufunc_asm_armv6.S                     standard
-arm/arm/irq_dispatch.S                          standard
 
 kern/kern_clocksource.c                         standard
 

Modified: head/sys/arm/econa/files.econa
==============================================================================
--- head/sys/arm/econa/files.econa      Mon Mar 10 16:07:45 2014        
(r262978)
+++ head/sys/arm/econa/files.econa      Mon Mar 10 18:10:09 2014        
(r262979)
@@ -6,7 +6,6 @@ arm/econa/timer.c                       standard
 arm/econa/uart_bus_ec.c                optional        uart
 arm/econa/uart_cpu_ec.c                optional        uart
 dev/uart/uart_dev_ns8250.c     optional        uart
-arm/arm/irq_dispatch.S         standard
 arm/arm/bus_space_generic.c            standard
 arm/econa/ehci_ebus.c  optional        ehci
 arm/econa/ohci_ec.c    optional        ohci

Modified: head/sys/arm/freescale/imx/files.imx51
==============================================================================
--- head/sys/arm/freescale/imx/files.imx51      Mon Mar 10 16:07:45 2014        
(r262978)
+++ head/sys/arm/freescale/imx/files.imx51      Mon Mar 10 18:10:09 2014        
(r262979)
@@ -4,7 +4,6 @@ arm/arm/bus_space_generic.c             standard
 arm/arm/cpufunc_asm_armv5.S            standard
 arm/arm/cpufunc_asm_arm11.S            standard
 arm/arm/cpufunc_asm_armv7.S            standard
-arm/arm/irq_dispatch.S                 standard
 kern/kern_clocksource.c                        standard
 
 # Init

Modified: head/sys/arm/freescale/imx/files.imx53
==============================================================================
--- head/sys/arm/freescale/imx/files.imx53      Mon Mar 10 16:07:45 2014        
(r262978)
+++ head/sys/arm/freescale/imx/files.imx53      Mon Mar 10 18:10:09 2014        
(r262979)
@@ -4,7 +4,6 @@ arm/arm/bus_space_generic.c             standard
 arm/arm/cpufunc_asm_armv5.S            standard
 arm/arm/cpufunc_asm_arm11.S            standard
 arm/arm/cpufunc_asm_armv7.S            standard
-arm/arm/irq_dispatch.S                 standard
 kern/kern_clocksource.c                        standard
 
 # Init

Modified: head/sys/arm/freescale/imx/files.imx6
==============================================================================
--- head/sys/arm/freescale/imx/files.imx6       Mon Mar 10 16:07:45 2014        
(r262978)
+++ head/sys/arm/freescale/imx/files.imx6       Mon Mar 10 18:10:09 2014        
(r262979)
@@ -8,7 +8,6 @@ arm/arm/bus_space_generic.c             standard
 arm/arm/cpufunc_asm_arm11.S            standard
 arm/arm/cpufunc_asm_armv5.S            standard
 arm/arm/cpufunc_asm_armv7.S            standard
-arm/arm/irq_dispatch.S                 standard
 kern/kern_clocksource.c                        standard
 
 #

Modified: head/sys/arm/freescale/vybrid/files.vybrid
==============================================================================
--- head/sys/arm/freescale/vybrid/files.vybrid  Mon Mar 10 16:07:45 2014        
(r262978)
+++ head/sys/arm/freescale/vybrid/files.vybrid  Mon Mar 10 18:10:09 2014        
(r262979)
@@ -8,7 +8,6 @@ arm/arm/cpufunc_asm_armv5.S                     standard
 arm/arm/cpufunc_asm_arm10.S                    standard
 arm/arm/cpufunc_asm_arm11.S                    standard
 arm/arm/cpufunc_asm_armv7.S                    standard
-arm/arm/irq_dispatch.S                         standard
 
 arm/arm/bus_space-v6.c                         standard
 arm/arm/gic.c                                  standard

Modified: head/sys/arm/lpc/files.lpc
==============================================================================
--- head/sys/arm/lpc/files.lpc  Mon Mar 10 16:07:45 2014        (r262978)
+++ head/sys/arm/lpc/files.lpc  Mon Mar 10 18:10:09 2014        (r262979)
@@ -1,6 +1,5 @@
 # $FreeBSD$
 arm/arm/bus_space_generic.c            standard
-arm/arm/irq_dispatch.S                 standard
 arm/arm/cpufunc_asm_arm9.S             standard
 arm/arm/cpufunc_asm_armv5.S            standard
 arm/lpc/lpc_machdep.c                  standard

Modified: head/sys/arm/mv/files.mv
==============================================================================
--- head/sys/arm/mv/files.mv    Mon Mar 10 16:07:45 2014        (r262978)
+++ head/sys/arm/mv/files.mv    Mon Mar 10 18:10:09 2014        (r262979)
@@ -20,7 +20,6 @@ arm/arm/cpufunc_asm_armv5_ec.S        standard
 arm/arm/cpufunc_asm_armv7.S    standard
 arm/arm/cpufunc_asm_sheeva.S   standard
 arm/arm/cpufunc_asm_pj4b.S     standard
-arm/arm/irq_dispatch.S         standard
 
 arm/mv/bus_space.c             standard
 arm/mv/gpio.c                  standard

Modified: head/sys/arm/rockchip/files.rk30xx
==============================================================================
--- head/sys/arm/rockchip/files.rk30xx  Mon Mar 10 16:07:45 2014        
(r262978)
+++ head/sys/arm/rockchip/files.rk30xx  Mon Mar 10 18:10:09 2014        
(r262979)
@@ -7,7 +7,6 @@ arm/arm/cpufunc_asm_armv5.S             standard
 arm/arm/cpufunc_asm_arm10.S            standard
 arm/arm/cpufunc_asm_arm11.S            standard
 arm/arm/cpufunc_asm_armv7.S            standard
-arm/arm/irq_dispatch.S                 standard
 
 arm/arm/gic.c                          standard
 arm/arm/mpcore_timer.c                 standard

Modified: head/sys/arm/s3c2xx0/files.s3c2xx0
==============================================================================
--- head/sys/arm/s3c2xx0/files.s3c2xx0  Mon Mar 10 16:07:45 2014        
(r262978)
+++ head/sys/arm/s3c2xx0/files.s3c2xx0  Mon Mar 10 18:10:09 2014        
(r262979)
@@ -2,7 +2,6 @@
 arm/arm/bus_space_asm_generic.S        standard
 arm/arm/bus_space_generic.c    standard
 arm/arm/cpufunc_asm_arm9.S     standard
-arm/arm/irq_dispatch.S         standard
 arm/s3c2xx0/board_ln2410sbc.c  optional        board_ln2410sbc
 arm/s3c2xx0/s3c24x0_rtc.c      standard
 arm/s3c2xx0/s3c24x0_machdep.c  standard

Modified: head/sys/arm/samsung/exynos/files.exynos5
==============================================================================
--- head/sys/arm/samsung/exynos/files.exynos5   Mon Mar 10 16:07:45 2014        
(r262978)
+++ head/sys/arm/samsung/exynos/files.exynos5   Mon Mar 10 18:10:09 2014        
(r262979)
@@ -8,7 +8,6 @@ arm/arm/cpufunc_asm_armv5.S                     standard
 arm/arm/cpufunc_asm_arm10.S                    standard
 arm/arm/cpufunc_asm_arm11.S                    standard
 arm/arm/cpufunc_asm_armv7.S                    standard
-arm/arm/irq_dispatch.S                         standard
 
 arm/arm/bus_space-v6.c                         standard
 arm/arm/gic.c                                  standard

Modified: head/sys/arm/tegra/files.tegra2
==============================================================================
--- head/sys/arm/tegra/files.tegra2     Mon Mar 10 16:07:45 2014        
(r262978)
+++ head/sys/arm/tegra/files.tegra2     Mon Mar 10 18:10:09 2014        
(r262979)
@@ -6,7 +6,6 @@ arm/arm/bus_space-v6.c                  standard
 arm/arm/cpufunc_asm_armv5.S            standard
 arm/arm/cpufunc_asm_arm11.S            standard
 arm/arm/cpufunc_asm_armv7.S            standard
-arm/arm/irq_dispatch.S                 standard
 
 arm/arm/gic.c                          standard
 arm/arm/mpcore_timer.c                 standard

Modified: head/sys/arm/ti/files.ti
==============================================================================
--- head/sys/arm/ti/files.ti    Mon Mar 10 16:07:45 2014        (r262978)
+++ head/sys/arm/ti/files.ti    Mon Mar 10 18:10:09 2014        (r262979)
@@ -9,7 +9,6 @@ arm/arm/cpufunc_asm_armv5.S                     standard
 arm/arm/cpufunc_asm_arm10.S                    standard
 arm/arm/cpufunc_asm_arm11.S                    standard
 arm/arm/cpufunc_asm_armv7.S                    standard
-arm/arm/irq_dispatch.S                         standard
 
 arm/ti/ti_common.c                             standard
 arm/ti/ti_cpuid.c                              standard

Modified: head/sys/arm/versatile/files.versatile
==============================================================================
--- head/sys/arm/versatile/files.versatile      Mon Mar 10 16:07:45 2014        
(r262978)
+++ head/sys/arm/versatile/files.versatile      Mon Mar 10 18:10:09 2014        
(r262979)
@@ -6,7 +6,6 @@ arm/arm/cpufunc_asm_arm11.S             
 arm/arm/cpufunc_asm_arm11x6.S                  standard
 arm/arm/cpufunc_asm_armv5.S                     standard
 arm/arm/cpufunc_asm_armv6.S                     standard
-arm/arm/irq_dispatch.S                          standard
 
 arm/versatile/bus_space.c                      standard
 arm/versatile/pl050.c                          optional sc

Modified: head/sys/arm/xilinx/files.zynq7
==============================================================================
--- head/sys/arm/xilinx/files.zynq7     Mon Mar 10 16:07:45 2014        
(r262978)
+++ head/sys/arm/xilinx/files.zynq7     Mon Mar 10 18:10:09 2014        
(r262979)
@@ -11,7 +11,6 @@ arm/arm/cpufunc_asm_armv5.S                   standard
 arm/arm/cpufunc_asm_arm10.S                    standard
 arm/arm/cpufunc_asm_arm11.S                    standard
 arm/arm/cpufunc_asm_armv7.S                    standard
-arm/arm/irq_dispatch.S                         standard
 
 arm/arm/gic.c                                  standard
 arm/arm/mpcore_timer.c                         standard

Modified: head/sys/arm/xscale/i80321/files.i80219
==============================================================================
--- head/sys/arm/xscale/i80321/files.i80219     Mon Mar 10 16:07:45 2014        
(r262978)
+++ head/sys/arm/xscale/i80321/files.i80219     Mon Mar 10 18:10:09 2014        
(r262979)
@@ -4,7 +4,6 @@
 # 
 arm/arm/bus_space_generic.c            standard
 arm/arm/cpufunc_asm_xscale.S           standard
-arm/arm/irq_dispatch.S                 standard
 arm/xscale/i80321/i80321.c             standard
 arm/xscale/i80321/i80321_dma.c         optional        dma
 arm/xscale/i80321/i80321_mcu.c         standard

Modified: head/sys/arm/xscale/i80321/files.i80321
==============================================================================
--- head/sys/arm/xscale/i80321/files.i80321     Mon Mar 10 16:07:45 2014        
(r262978)
+++ head/sys/arm/xscale/i80321/files.i80321     Mon Mar 10 18:10:09 2014        
(r262979)
@@ -1,7 +1,6 @@
 #$FreeBSD$
 arm/arm/bus_space_generic.c            standard
 arm/arm/cpufunc_asm_xscale.S           standard
-arm/arm/irq_dispatch.S                 standard
 arm/xscale/i80321/i80321.c             standard
 arm/xscale/i80321/i80321_aau.c         optional        aau
 arm/xscale/i80321/i80321_dma.c         optional        dma

Modified: head/sys/arm/xscale/i8134x/files.i81342
==============================================================================
--- head/sys/arm/xscale/i8134x/files.i81342     Mon Mar 10 16:07:45 2014        
(r262978)
+++ head/sys/arm/xscale/i8134x/files.i81342     Mon Mar 10 18:10:09 2014        
(r262979)
@@ -2,7 +2,6 @@
 arm/arm/bus_space_generic.c            standard
 arm/arm/cpufunc_asm_xscale.S           standard
 arm/arm/cpufunc_asm_xscale_c3.S                standard
-arm/arm/irq_dispatch.S                 standard
 arm/xscale/i80321/i80321_timer.c       standard
 arm/xscale/i80321/i80321_wdog.c                optional        iopwdog
 arm/xscale/i8134x/i81342.c             standard

Modified: head/sys/arm/xscale/ixp425/files.ixp425
==============================================================================
--- head/sys/arm/xscale/ixp425/files.ixp425     Mon Mar 10 16:07:45 2014        
(r262978)
+++ head/sys/arm/xscale/ixp425/files.ixp425     Mon Mar 10 18:10:09 2014        
(r262979)
@@ -1,7 +1,6 @@
 #$FreeBSD$
 arm/arm/bus_space_generic.c            standard
 arm/arm/cpufunc_asm_xscale.S           standard
-arm/arm/irq_dispatch.S                 standard
 arm/xscale/ixp425/ixp425.c             standard
 arm/xscale/ixp425/ixp425_mem.c         standard
 arm/xscale/ixp425/ixp425_space.c       standard

Modified: head/sys/arm/xscale/pxa/files.pxa
==============================================================================
--- head/sys/arm/xscale/pxa/files.pxa   Mon Mar 10 16:07:45 2014        
(r262978)
+++ head/sys/arm/xscale/pxa/files.pxa   Mon Mar 10 18:10:09 2014        
(r262979)
@@ -2,7 +2,6 @@
 
 arm/arm/bus_space_generic.c            standard
 arm/arm/cpufunc_asm_xscale.S           standard
-arm/arm/irq_dispatch.S                 standard
 
 arm/xscale/pxa/pxa_gpio.c              standard
 arm/xscale/pxa/pxa_icu.c               standard
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to