summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-07-27 10:09:05 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-07-28 08:39:54 +0200
commitbf338f04c0e09be0c020868e28dde3fdd72d1ee2 (patch)
tree10d664d9bf5efd2a3b92c978b0581f340fa812de
parentc7b4eca7fa3e311c67d5dd1e62e301b01ed45271 (diff)
downloadrtems-bf338f04c0e09be0c020868e28dde3fdd72d1ee2.tar.bz2
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.
-rw-r--r--cpukit/include/rtems/score/interr.h18
-rw-r--r--cpukit/score/src/interr.c11
-rw-r--r--testsuites/sptests/spsize/size.c2
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
@@ -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 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) +