From bf338f04c0e09be0c020868e28dde3fdd72d1ee2 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Tue, 27 Jul 2021 10:09:05 +0200 Subject: score: Remove _Internal_errors_What_happened Users have access to the fatal error source and code though the fatal error extension. The user-specific fatal error handling should be done in statically initialized fatal error handlers. The _Internal_errors_What_happened was updated after the fatal error extension. In addition, there was no API to get the information stored in _Internal_errors_What_happened. In SMP configurations, this object could contain a mix of different fatal errors. Remove this object to save some bytes of storage. --- cpukit/include/rtems/score/interr.h | 18 +----------------- cpukit/score/src/interr.c | 11 +---------- testsuites/sptests/spsize/size.c | 2 -- 3 files changed, 2 insertions(+), 29 deletions(-) diff --git a/cpukit/include/rtems/score/interr.h b/cpukit/include/rtems/score/interr.h index e5a0a62cf6..65cac29500 100644 --- a/cpukit/include/rtems/score/interr.h +++ b/cpukit/include/rtems/score/interr.h @@ -214,21 +214,6 @@ typedef enum { typedef CPU_Uint32ptr Internal_errors_t; -/** - * This type holds the fatal error information. - */ -typedef struct { - /** This is the source of the error. */ - Internal_errors_Source the_source; - /** This is the error code. */ - Internal_errors_t the_error; -} Internal_errors_Information; - -/** - * When a fatal error occurs, the error information is stored here. - */ -extern Internal_errors_Information _Internal_errors_What_happened; - /** * @brief Initiates system termination. * @@ -253,8 +238,7 @@ extern Internal_errors_Information _Internal_errors_What_happened; * may install an initial extension that performs a system reset. In this case * the non-initial extensions will be not called. * - * Once all fatal handler executed the error information will be stored to - * _Internal_errors_What_happened and the system state is set to + * Once all fatal handler executed the system state is set to * SYSTEM_STATE_TERMINATED. * * The final step is to call the CPU specific _CPU_Fatal_halt(). diff --git a/cpukit/score/src/interr.c b/cpukit/score/src/interr.c index 3f5ec2c473..fd5a4c92b8 100644 --- a/cpukit/score/src/interr.c +++ b/cpukit/score/src/interr.c @@ -4,8 +4,7 @@ * @ingroup RTEMSScoreIntErr * * @brief This source file contains the definition of ::_System_state_Current - * and ::_Internal_errors_What_happened and implementation of _Terminate() and - * _Internal_error(). + * and the implementation of _Terminate() and _Internal_error(). */ /* @@ -28,22 +27,14 @@ System_state_Codes _System_state_Current; -Internal_errors_Information _Internal_errors_What_happened; - void _Terminate( Internal_errors_Source the_source, Internal_errors_t the_error ) { _User_extensions_Fatal( the_source, the_error ); - - _Internal_errors_What_happened.the_source = the_source; - _Internal_errors_What_happened.the_error = the_error; - _System_state_Set( SYSTEM_STATE_TERMINATED ); - _SMP_Request_shutdown(); - _CPU_Fatal_halt( the_source, the_error ); /* will not return from this routine */ diff --git a/testsuites/sptests/spsize/size.c b/testsuites/sptests/spsize/size.c index d26e34f51d..1b6881bb24 100644 --- a/testsuites/sptests/spsize/size.c +++ b/testsuites/sptests/spsize/size.c @@ -272,8 +272,6 @@ uninitialized = /*init.h*/ 0 + -/*interr.h*/ (sizeof _Internal_errors_What_happened) + - /*intr.h*/ 0 + /*isr.h*/ (sizeof _ISR_Nest_level) + -- cgit v1.2.3