diff options
Diffstat (limited to 'c/src/lib/libcpu/mips/tx39/vectorisrs/vectorisrs.c')
-rw-r--r-- | c/src/lib/libcpu/mips/tx39/vectorisrs/vectorisrs.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/c/src/lib/libcpu/mips/tx39/vectorisrs/vectorisrs.c b/c/src/lib/libcpu/mips/tx39/vectorisrs/vectorisrs.c index 15a4753123..db31d751e5 100644 --- a/c/src/lib/libcpu/mips/tx39/vectorisrs/vectorisrs.c +++ b/c/src/lib/libcpu/mips/tx39/vectorisrs/vectorisrs.c @@ -12,7 +12,18 @@ } while (0) #define CALL_ISR(_vector) \ - (_ISR_Vector_table[_vector])(_vector); + do { \ + if ( _ISR_Vector_table[_vector] ) \ + (_ISR_Vector_table[_vector])(_vector); \ + else \ + mips_default_exception(_vector); \ + } while (0) + +void mips_default_exception( int vector ) +{ + printk( "Unhandled exception %d\n", vector ); + rtems_fatal_error_occurred(1); +} void mips_vector_isr_handlers( void ) { |