forked from Imagelibrary/rtems
@@ -46,9 +46,7 @@ extern "C" {
|
||||
|
||||
#define LEON_TRAP_SOURCE( _trap ) ((_trap) - 0x10)
|
||||
|
||||
#define LEON_INT_TRAP( _trap ) \
|
||||
( (_trap) >= 0x11 && \
|
||||
(_trap) <= 0x1F )
|
||||
#define LEON_INT_TRAP( _trap ) SPARC_IS_INTERRUPT_TRAP( _trap )
|
||||
|
||||
/* /\* */
|
||||
/* * This is used to manipulate the on-chip registers. */
|
||||
|
||||
@@ -42,19 +42,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 );
|
||||
|
||||
Reference in New Issue
Block a user