summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/sparc/erc32
diff options
context:
space:
mode:
authorDaniel Cederman <cederman@gaisler.com>2015-01-09 09:03:59 +0100
committerDaniel Hellstrom <daniel@gaisler.com>2015-02-11 15:35:23 +0100
commit0c94a46fa3938922481f06e8c64d8caba6d753b3 (patch)
treebface1d6d879d04003f0b75d4dbca788c6ad8609 /c/src/lib/libbsp/sparc/erc32
parentor1k/cpu.c: Eliminate dependency on BSP provided header (diff)
downloadrtems-0c94a46fa3938922481f06e8c64d8caba6d753b3.tar.bz2
bsp/sparc: Move BSP_ISR_handler to a separate file and rename it
This allows it to be wrapped by another function at link-time and can be used to trace interrupts. If not placed in a separate file, the function pointer address used in BSP_shared_interrupt_init will be resolved at compile-time, and the function will not be wrappable.
Diffstat (limited to 'c/src/lib/libbsp/sparc/erc32')
-rw-r--r--c/src/lib/libbsp/sparc/erc32/Makefile.am1
-rw-r--r--c/src/lib/libbsp/sparc/erc32/include/bsp.h3
2 files changed, 4 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/sparc/erc32/Makefile.am b/c/src/lib/libbsp/sparc/erc32/Makefile.am
index c99d2fb429..8dcdd32940 100644
--- a/c/src/lib/libbsp/sparc/erc32/Makefile.am
+++ b/c/src/lib/libbsp/sparc/erc32/Makefile.am
@@ -71,6 +71,7 @@ include_bsp_HEADERS += \
include/bsp/irq.h
libbsp_a_SOURCES += \
../../sparc/shared/irq/irq-shared.c \
+ ../../sparc/shared/irq/bsp_isr_handler.c \
../../shared/src/irq-default-handler.c \
../../shared/src/irq-generic.c \
../../shared/src/irq-info.c \
diff --git a/c/src/lib/libbsp/sparc/erc32/include/bsp.h b/c/src/lib/libbsp/sparc/erc32/include/bsp.h
index 33939106d8..6984c9e895 100644
--- a/c/src/lib/libbsp/sparc/erc32/include/bsp.h
+++ b/c/src/lib/libbsp/sparc/erc32/include/bsp.h
@@ -106,6 +106,9 @@ typedef void (*bsp_shared_isr)(void *arg);
/* Initializes the Shared System Interrupt service */
extern void BSP_shared_interrupt_init(void);
+/* Called directly from IRQ trap handler TRAP[0x10..0x1F] = IRQ[0..15] */
+void bsp_isr_handler(rtems_vector_number vector);
+
/* Registers a shared IRQ handler, and enable it at IRQ controller. Multiple
* interrupt handlers may use the same IRQ number, all ISRs will be called
* when an interrupt on that line is fired.