From 815994fd17c2f732aacaf273a1e476a62de5f4a6 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Sun, 25 Nov 2012 17:48:11 +0100 Subject: score: Add CPU_Exception_frame Add CPU port type CPU_Exception_frame and function _CPU_Exception_frame_print(). The CPU ports of avr, bfin, h8300, lm32, m32c, m32r, m68k, nios2, sh, sparc64, and v850 use an empty default implementation of _CPU_Exception_frame_print(). Add rtems_exception_frame and rtems_exception_frame_print(). Add RTEMS_FATAL_SOURCE_EXCEPTION for CPU exceptions. Use rtems_fatal() with source RTEMS_FATAL_SOURCE_EXCEPTION in CPU ports of i386, powerpc, and sparc for unexpected exceptions. Add third parameter to RTEMS_BSP_CLEANUP_OPTIONS() which controls the BSP_PRINT_EXCEPTION_CONTEXT define used in the default bsp_fatal_extension(). Add test sptests/spfatal26. --- cpukit/score/cpu/mips/rtems/score/cpu.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'cpukit/score/cpu/mips/rtems/score/cpu.h') diff --git a/cpukit/score/cpu/mips/rtems/score/cpu.h b/cpukit/score/cpu/mips/rtems/score/cpu.h index 9aa72d41d4..1da23db423 100644 --- a/cpukit/score/cpu/mips/rtems/score/cpu.h +++ b/cpukit/score/cpu/mips/rtems/score/cpu.h @@ -609,6 +609,8 @@ typedef struct } CPU_Interrupt_frame; +typedef CPU_Interrupt_frame CPU_Exception_frame; + /* * This variable is optional. It is used on CPUs on which it is difficult * to generate an "uninitialized" FP context. It is filled in by @@ -703,6 +705,8 @@ extern unsigned int mips_interrupt_number_of_vectors; #define CPU_STACK_ALIGNMENT CPU_ALIGNMENT +void mips_vector_exceptions( CPU_Interrupt_frame *frame ); + /* * ISR handler macros */ @@ -1112,6 +1116,15 @@ void _CPU_Context_restore_fp( Context_Control_fp **fp_context_ptr ); +void _BSP_Exception_frame_print( const CPU_Exception_frame *frame ); + +static inline void _CPU_Exception_frame_print( + const CPU_Exception_frame *frame +) +{ + _BSP_Exception_frame_print( frame ); +} + /* The following routine swaps the endian format of an unsigned int. * It must be static because it is referenced indirectly. * -- cgit v1.2.3