sparc: Add SPARC_IS_INTERRUPT_TRAP()

Update #4171.
This commit is contained in:
Sebastian Huber
2020-11-05 09:32:09 +01:00
parent 2c467ec767
commit b7271f8c1e
7 changed files with 29 additions and 27 deletions

View File

@@ -87,9 +87,7 @@ extern "C" {
#define ERC32_TRAP_SOURCE( _trap ) ((_trap) - 0x10)
#define ERC32_Is_MEC_Trap( _trap ) \
( (_trap) >= ERC32_TRAP_TYPE( ERC32_INTERRUPT_MASKED_ERRORS ) && \
(_trap) <= ERC32_TRAP_TYPE( ERC32_INTERRUPT_WATCHDOG_TIMEOUT ) )
#define ERC32_Is_MEC_Trap( _trap ) SPARC_IS_INTERRUPT_TRAP( _trap )
/*
* Structure for ERC32 memory mapped registers.

View File

@@ -37,8 +37,6 @@ 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 );
@@ -50,11 +48,10 @@ rtems_isr_entry set_vector( /* returns old vector */
);
}
real_trap = SPARC_REAL_TRAP_NUMBER( vector );
if ( SPARC_IS_INTERRUPT_TRAP( vector ) ) {
uint32_t source;
if ( ERC32_Is_MEC_Trap( real_trap ) ) {
source = ERC32_TRAP_SOURCE( real_trap );
source = ERC32_TRAP_SOURCE( SPARC_REAL_TRAP_NUMBER( vector ) );
ERC32_Clear_interrupt( source );
ERC32_Unmask_interrupt( source );