diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2014-02-05 17:00:09 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2014-02-06 08:47:02 +0100 |
commit | 920a43e6392dfe60ad8bf4bcce73fd1c97d6aa5a (patch) | |
tree | 1b4757300bc435e408078ff0588a8d2e73fe76ae /cpukit/rtems | |
parent | score: _CPU_Context_switch_to_first_task_smp() (diff) | |
download | rtems-920a43e6392dfe60ad8bf4bcce73fd1c97d6aa5a.tar.bz2 |
rtems: Add rtems_status_code_description()
Diffstat (limited to 'cpukit/rtems')
-rw-r--r-- | cpukit/rtems/Makefile.am | 1 | ||||
-rw-r--r-- | cpukit/rtems/include/rtems/rtems/status.h | 10 | ||||
-rw-r--r-- | cpukit/rtems/src/statusdesc.c | 69 |
3 files changed, 80 insertions, 0 deletions
diff --git a/cpukit/rtems/Makefile.am b/cpukit/rtems/Makefile.am index fd5af5aaa1..f219db8d7b 100644 --- a/cpukit/rtems/Makefile.am +++ b/cpukit/rtems/Makefile.am @@ -255,6 +255,7 @@ librtems_a_SOURCES += src/workspacegreedy.c librtems_a_SOURCES += src/modes.c librtems_a_SOURCES += src/status.c +librtems_a_SOURCES += src/statusdesc.c if HAS_MP # We only build multiprocessing related files if HAS_MP was defined diff --git a/cpukit/rtems/include/rtems/rtems/status.h b/cpukit/rtems/include/rtems/rtems/status.h index 89042883fb..19df500497 100644 --- a/cpukit/rtems/include/rtems/rtems/status.h +++ b/cpukit/rtems/include/rtems/rtems/status.h @@ -241,6 +241,16 @@ RTEMS_INLINE_ROUTINE bool rtems_are_statuses_equal( */ int rtems_status_code_to_errno(rtems_status_code sc); +/** + * @brief Returns a description for a status code. + * + * @param[in] code The status code. + * + * @retval description The status code description. + * @retval ? The passed status code is invalid. + */ +const char *rtems_status_code_description( rtems_status_code code ); + /**@}*/ #ifdef __cplusplus diff --git a/cpukit/rtems/src/statusdesc.c b/cpukit/rtems/src/statusdesc.c new file mode 100644 index 0000000000..4cc426d0a9 --- /dev/null +++ b/cpukit/rtems/src/statusdesc.c @@ -0,0 +1,69 @@ +/** + * @file + * + * @ingroup ClassicStatus + */ + +/* + * Copyright (c) 2014 embedded brains GmbH. All rights reserved. + * + * embedded brains GmbH + * Dornierstr. 4 + * 82178 Puchheim + * Germany + * <rtems@embedded-brains.de> + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + */ + +#if HAVE_CONFIG_H + #include "config.h" +#endif + +#include <rtems.h> + +static const char *const status_code_desc[] = { + "RTEMS_SUCCESSFUL", + "RTEMS_TASK_EXITTED", + "RTEMS_MP_NOT_CONFIGURED", + "RTEMS_INVALID_NAME", + "RTEMS_INVALID_ID", + "RTEMS_TOO_MANY", + "RTEMS_TIMEOUT", + "RTEMS_OBJECT_WAS_DELETED", + "RTEMS_INVALID_SIZE", + "RTEMS_INVALID_ADDRESS", + "RTEMS_INVALID_NUMBER", + "RTEMS_NOT_DEFINED", + "RTEMS_RESOURCE_IN_USE", + "RTEMS_UNSATISFIED", + "RTEMS_INCORRECT_STATE", + "RTEMS_ALREADY_SUSPENDED", + "RTEMS_ILLEGAL_ON_SELF", + "RTEMS_ILLEGAL_ON_REMOTE_OBJECT", + "RTEMS_CALLED_FROM_ISR", + "RTEMS_INVALID_PRIORITY", + "RTEMS_INVALID_CLOCK", + "RTEMS_INVALID_NODE", + "RTEMS_NOT_CONFIGURED", + "RTEMS_NOT_OWNER_OF_RESOURCE", + "RTEMS_NOT_IMPLEMENTED", + "RTEMS_INTERNAL_ERROR", + "RTEMS_NO_MEMORY", + "RTEMS_IO_ERROR", + "RTEMS_PROXY_BLOCKING" +}; + +const char *rtems_status_code_description( rtems_status_code code ) +{ + size_t i = code; + const char *desc = "?"; + + if ( i < RTEMS_ARRAY_SIZE( status_code_desc ) ) { + desc = status_code_desc [i]; + } + + return desc; +} |