diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2012-11-14 15:10:46 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2012-11-15 15:33:13 +0100 |
commit | a12f7e98f17cd4b710459b3763780c3f1cbcd8a7 (patch) | |
tree | e1f434ef61565dadf8048e496cb8983d45b9a2ef | |
parent | score: Add RTEMS_FATAL_SOURCE_ASSERT (diff) | |
download | rtems-a12f7e98f17cd4b710459b3763780c3f1cbcd8a7.tar.bz2 |
score: Add RTEMS_FATAL_SOURCE_STACK_CHECKER
-rw-r--r-- | cpukit/libmisc/stackchk/check.c | 5 | ||||
-rw-r--r-- | cpukit/score/include/rtems/score/interr.h | 7 | ||||
-rw-r--r-- | 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 @@ -91,6 +91,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. * * This enum value ensures that the enum type needs at least 32-bits for 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(); } |