[PATCH] score: Remove _Internal_errors_What_happened

Sebastian Huber sebastian.huber at embedded-brains.de
Tue Jul 27 08:12:56 UTC 2021


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.  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)                  +
-- 
2.26.2



More information about the devel mailing list