diff options
Diffstat (limited to '')
-rw-r--r-- | bsps/sparc/erc32/clock/ckinit.c | 10 | ||||
-rw-r--r-- | bsps/sparc/erc32/include/bsp.h | 2 | ||||
-rw-r--r-- | bsps/sparc/erc32/include/tm27.h | 24 |
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 { \ |