From a12f7e98f17cd4b710459b3763780c3f1cbcd8a7 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 14 Nov 2012 15:10:46 +0100 Subject: score: Add RTEMS_FATAL_SOURCE_STACK_CHECKER --- cpukit/libmisc/stackchk/check.c | 5 ++++- cpukit/score/include/rtems/score/interr.h | 7 +++++++ testsuites/libtests/stackchk/init.c | 7 ++----- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/cpukit/libmisc/stackchk/check.c b/cpukit/libmisc/stackchk/check.c index 69120a490e..c14b52c780 100644 --- a/cpukit/libmisc/stackchk/check.c +++ b/cpukit/libmisc/stackchk/check.c @@ -260,7 +260,10 @@ void Stack_check_report_blown_task(Thread_Control *running, bool pattern_ok) } #endif - rtems_fatal_error_occurred(0x81); + rtems_fatal( + RTEMS_FATAL_SOURCE_STACK_CHECKER, + running->Object.name.name_u32 + ); } /* diff --git a/cpukit/score/include/rtems/score/interr.h b/cpukit/score/include/rtems/score/interr.h index 20efcb3e0b..94306b59a5 100644 --- a/cpukit/score/include/rtems/score/interr.h +++ b/cpukit/score/include/rtems/score/interr.h @@ -90,6 +90,13 @@ typedef enum { */ RTEMS_FATAL_SOURCE_ASSERT, + /** + * @brief Fatal source of the stack checker. + * + * The fatal code is the object name of the executing task. + */ + RTEMS_FATAL_SOURCE_STACK_CHECKER, + /** * @brief The last available fatal source. * diff --git a/testsuites/libtests/stackchk/init.c b/testsuites/libtests/stackchk/init.c index a545812209..1551eecb37 100644 --- a/testsuites/libtests/stackchk/init.c +++ b/testsuites/libtests/stackchk/init.c @@ -88,16 +88,13 @@ rtems_task Init( void Fatal_extension( uint32_t source, bool is_internal, uint32_t error ) { - if ( source != INTERNAL_ERROR_RTEMS_API ) { + if ( source != RTEMS_FATAL_SOURCE_STACK_CHECKER ) { printk( "unexpected fatal source\n" ); } else if ( is_internal ) { printk( "unexpected fatal is internal\n" ); - } else if ( error != 0x81 ) { + } else if ( error != rtems_build_name( 'T', 'A', '1', ' ' ) ) { printk( "unexpected fatal error\n" ); } else { printk( "*** END OF TEST STACK CHECKER ***\n" ); } - - if ( _System_state_Is_up( _System_state_Get() ) ) - _Thread_Stop_multitasking(); } -- cgit v1.2.3