[rtems commit] score: Remove _Internal_errors_What_happened

Sebastian Huber sebh at rtems.org
Wed Jul 28 06:41:20 UTC 2021


Module:    rtems
Branch:    master
Commit:    bf338f04c0e09be0c020868e28dde3fdd72d1ee2
Changeset: http://git.rtems.org/rtems/commit/?id=bf338f04c0e09be0c020868e28dde3fdd72d1ee2

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Tue Jul 27 10:09:05 2021 +0200

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 e5a0a62..65cac29 100644
--- a/cpukit/include/rtems/score/interr.h
+++ b/cpukit/include/rtems/score/interr.h
@@ -215,21 +215,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.
  *
  * This routine is invoked when the application or the executive itself
@@ -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 3f5ec2c..fd5a4c9 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 d26e34f..1b6881b 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)                  +



More information about the vc mailing list