diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-06-22 15:40:39 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-06-24 11:36:28 +0200 |
commit | 5c30e3d376fea2ec18b28a72c349d153973a983d (patch) | |
tree | 986ae16e9800c702bbd3779cafdda9549c3559da /bsps/sparc/leon3/include/tm27.h | |
parent | sparc: More reliable bad trap handling (diff) | |
download | rtems-5c30e3d376fea2ec18b28a72c349d153973a983d.tar.bz2 |
bsps/sparc: Use rtems_interrupt_handler_install()
Avoid using set_vector() which depends on _ISR_Vector_table(). Prepare for a
statically initialized trap table.
Update #4458.
Diffstat (limited to 'bsps/sparc/leon3/include/tm27.h')
-rw-r--r-- | bsps/sparc/leon3/include/tm27.h | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/bsps/sparc/leon3/include/tm27.h b/bsps/sparc/leon3/include/tm27.h index 00921d4880..7b73bc4dbd 100644 --- a/bsps/sparc/leon3/include/tm27.h +++ b/bsps/sparc/leon3/include/tm27.h @@ -57,14 +57,28 @@ #else /* use a regular asynchronous trap */ #define TEST_INTERRUPT_SOURCE LEON_INTERRUPT_EXTERNAL_1 -#define TEST_VECTOR LEON_TRAP_TYPE( TEST_INTERRUPT_SOURCE ) #define TEST_INTERRUPT_SOURCE2 LEON_INTERRUPT_EXTERNAL_1+1 -#define TEST_VECTOR2 LEON_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 { \ |