summaryrefslogtreecommitdiffstats
path: root/bsps/sparc/leon2
diff options
context:
space:
mode:
Diffstat (limited to 'bsps/sparc/leon2')
-rw-r--r--bsps/sparc/leon2/include/leon.h4
-rw-r--r--bsps/sparc/leon2/start/setvec.c9
2 files changed, 4 insertions, 9 deletions
diff --git a/bsps/sparc/leon2/include/leon.h b/bsps/sparc/leon2/include/leon.h
index 2b3379f713..49af3086ed 100644
--- a/bsps/sparc/leon2/include/leon.h
+++ b/bsps/sparc/leon2/include/leon.h
@@ -84,9 +84,7 @@ extern "C" {
#define LEON_TRAP_SOURCE( _trap ) ((_trap) - 0x10)
-#define LEON_INT_TRAP( _trap ) \
- ( (_trap) >= LEON_TRAP_TYPE( LEON_INTERRUPT_CORRECTABLE_MEMORY_ERROR ) && \
- (_trap) <= LEON_TRAP_TYPE( LEON_INTERRUPT_EMPTY6 ) )
+#define LEON_INT_TRAP( _trap ) SPARC_IS_INTERRUPT_TRAP( _trap )
/*
* Structure for LEON memory mapped registers.
diff --git a/bsps/sparc/leon2/start/setvec.c b/bsps/sparc/leon2/start/setvec.c
index 3e4120611d..51647e3ee4 100644
--- a/bsps/sparc/leon2/start/setvec.c
+++ b/bsps/sparc/leon2/start/setvec.c
@@ -43,19 +43,16 @@ rtems_isr_entry set_vector( /* returns old vector */
)
{
rtems_isr_entry previous_isr;
- uint32_t real_trap;
- uint32_t source;
if ( type )
rtems_interrupt_catch( handler, vector, &previous_isr );
else
_CPU_ISR_install_raw_handler( vector, handler, (void *)&previous_isr );
- real_trap = SPARC_REAL_TRAP_NUMBER( vector );
+ if ( SPARC_IS_INTERRUPT_TRAP( vector ) ) {
+ uint32_t source;
- if ( LEON_INT_TRAP( real_trap ) ) {
-
- source = LEON_TRAP_SOURCE( real_trap );
+ source = LEON_TRAP_SOURCE( SPARC_REAL_TRAP_NUMBER( vector ) );
LEON_Clear_interrupt( source );
LEON_Unmask_interrupt( source );