summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-03-24 20:13:34 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-04-07 06:31:46 +0200
commitd1c038c78e4b54532ce64beae91cda9d2a8ed928 (patch)
tree1663b2fa83577aa6847ccab5ec52f0e460f91528
parentcpukit/aarch64: Add ESR register decoding (diff)
downloadrtems-d1c038c78e4b54532ce64beae91cda9d2a8ed928.tar.bz2
score: Fix internal error status number
The value of STATUS_CLASSIC_INTERNAL_ERROR must be equal to RTEMS_INTERNAL_ERROR. Add static assertions to ensure that the status codes match.
-rw-r--r--cpukit/include/rtems/score/status.h4
-rw-r--r--cpukit/rtems/src/taskconstruct.c22
2 files changed, 24 insertions, 2 deletions
diff --git a/cpukit/include/rtems/score/status.h b/cpukit/include/rtems/score/status.h
index 352f76e34d..a1c3c84b4d 100644
--- a/cpukit/include/rtems/score/status.h
+++ b/cpukit/include/rtems/score/status.h
@@ -50,7 +50,7 @@ extern "C" {
*/
typedef enum {
STATUS_CLASSIC_INCORRECT_STATE = 14,
- STATUS_CLASSIC_INTERNAL_ERROR = 13,
+ STATUS_CLASSIC_INTERNAL_ERROR = 25,
STATUS_CLASSIC_INVALID_NUMBER = 10,
STATUS_CLASSIC_INVALID_PRIORITY = 19,
STATUS_CLASSIC_INVALID_SIZE = 8,
@@ -107,7 +107,7 @@ typedef enum {
STATUS_INVALID_PRIORITY =
STATUS_BUILD( STATUS_CLASSIC_INVALID_PRIORITY, EINVAL ),
STATUS_MAXIMUM_COUNT_EXCEEDED =
- STATUS_BUILD( STATUS_CLASSIC_INTERNAL_ERROR, EOVERFLOW ),
+ STATUS_BUILD( STATUS_CLASSIC_UNSATISFIED, EOVERFLOW ),
STATUS_MESSAGE_INVALID_SIZE =
STATUS_BUILD( STATUS_CLASSIC_INVALID_SIZE, EMSGSIZE ),
STATUS_MESSAGE_QUEUE_INVALID_NUMBER =
diff --git a/cpukit/rtems/src/taskconstruct.c b/cpukit/rtems/src/taskconstruct.c
index 397f6c2c89..2cddb448f6 100644
--- a/cpukit/rtems/src/taskconstruct.c
+++ b/cpukit/rtems/src/taskconstruct.c
@@ -35,6 +35,28 @@
#include <string.h>
+#define STATUS_ASSERT( status ) \
+ RTEMS_STATIC_ASSERT( \
+ (int) STATUS_CLASSIC_##status == (int) RTEMS_##status, \
+ status \
+ )
+
+STATUS_ASSERT( INCORRECT_STATE );
+STATUS_ASSERT( INTERNAL_ERROR );
+STATUS_ASSERT( INVALID_NUMBER );
+STATUS_ASSERT( INVALID_PRIORITY );
+STATUS_ASSERT( INVALID_SIZE );
+STATUS_ASSERT( NO_MEMORY );
+STATUS_ASSERT( NOT_DEFINED );
+STATUS_ASSERT( NOT_OWNER_OF_RESOURCE );
+STATUS_ASSERT( OBJECT_WAS_DELETED );
+STATUS_ASSERT( PROXY_BLOCKING );
+STATUS_ASSERT( RESOURCE_IN_USE );
+STATUS_ASSERT( SUCCESSFUL );
+STATUS_ASSERT( TIMEOUT );
+STATUS_ASSERT( TOO_MANY );
+STATUS_ASSERT( UNSATISFIED );
+
static rtems_status_code _RTEMS_tasks_Prepare_user_stack(
Thread_Configuration *thread_config,
const rtems_task_config *config