summaryrefslogtreecommitdiffstats
path: root/bsps/sparc/erc32
diff options
context:
space:
mode:
Diffstat (limited to 'bsps/sparc/erc32')
-rw-r--r--bsps/sparc/erc32/clock/ckinit.c10
-rw-r--r--bsps/sparc/erc32/include/bsp.h2
-rw-r--r--bsps/sparc/erc32/include/tm27.h24
3 files changed, 29 insertions, 7 deletions
diff --git a/bsps/sparc/erc32/clock/ckinit.c b/bsps/sparc/erc32/clock/ckinit.c
index 6d6a335fed..83cafb73c3 100644
--- a/bsps/sparc/erc32/clock/ckinit.c
+++ b/bsps/sparc/erc32/clock/ckinit.c
@@ -23,7 +23,7 @@
*/
#include <bsp.h>
-#include <bspopts.h>
+#include <rtems/irq-extension.h>
#include <rtems/sysinit.h>
#include <rtems/timecounter.h>
#include <rtems/score/sparcimpl.h>
@@ -105,7 +105,13 @@ RTEMS_SYSINIT_ITEM(
#define CLOCK_VECTOR ERC32_TRAP_TYPE( ERC32_INTERRUPT_REAL_TIME_CLOCK )
#define Clock_driver_support_install_isr( _new ) \
- set_vector( _new, CLOCK_VECTOR, 1 )
+ (void) rtems_interrupt_handler_install( \
+ ERC32_INTERRUPT_REAL_TIME_CLOCK, \
+ "Clock", \
+ RTEMS_INTERRUPT_SHARED, \
+ _new, \
+ NULL \
+ )
#define Clock_driver_support_set_interrupt_affinity( _online_processors ) \
do { \
diff --git a/bsps/sparc/erc32/include/bsp.h b/bsps/sparc/erc32/include/bsp.h
index 300202bff5..7fb2fa9d72 100644
--- a/bsps/sparc/erc32/include/bsp.h
+++ b/bsps/sparc/erc32/include/bsp.h
@@ -46,6 +46,8 @@
extern "C" {
#endif
+#define BSP_FEATURE_IRQ_EXTENSION
+
/*
* BSP provides its own Idle thread body
*/
diff --git a/bsps/sparc/erc32/include/tm27.h b/bsps/sparc/erc32/include/tm27.h
index 958036fbf0..2ed4f2b78c 100644
--- a/bsps/sparc/erc32/include/tm27.h
+++ b/bsps/sparc/erc32/include/tm27.h
@@ -58,14 +58,28 @@
#define TEST_INTERRUPT_SOURCE ERC32_INTERRUPT_EXTERNAL_1
#define TEST_INTERRUPT_SOURCE2 (ERC32_INTERRUPT_EXTERNAL_1+1)
-#define TEST_VECTOR ERC32_TRAP_TYPE( TEST_INTERRUPT_SOURCE )
-#define TEST_VECTOR2 ERC32_TRAP_TYPE( TEST_INTERRUPT_SOURCE2 )
#define MUST_WAIT_FOR_INTERRUPT 1
-#define Install_tm27_vector( handler ) \
- set_vector( (handler), TEST_VECTOR, 1 ); \
- set_vector( (handler), TEST_VECTOR2, 1 );
+static inline void Install_tm27_vector(
+ void ( *handler )( rtems_vector_number )
+)
+{
+ (void) rtems_interrupt_handler_install(
+ TEST_INTERRUPT_SOURCE,
+ "tm27 low",
+ RTEMS_INTERRUPT_SHARED,
+ (rtems_interrupt_handler) handler,
+ NULL
+ );
+ (void) rtems_interrupt_handler_install(
+ TEST_INTERRUPT_SOURCE2,
+ "tm27 high",
+ RTEMS_INTERRUPT_SHARED,
+ (rtems_interrupt_handler) handler,
+ NULL
+ );
+}
#define Cause_tm27_intr() \
do { \