[PATCH] score: Change debug helper functions

Gedare Bloom gedare at rtems.org
Fri Feb 7 14:56:22 UTC 2014


I'd like to bring up something that someone mentioned in the other
thread, which is why do we even provide these code->string
conversions?

On Fri, Feb 7, 2014 at 4:10 AM, Sebastian Huber
<sebastian.huber at embedded-brains.de> wrote:
> Rename rtems_internal_error_description() to
> rtems_internal_error_text().  Rename rtems_fatal_source_description() to
> rtems_fatal_source_text().  Rename rtems_status_code_description() to
> rtems_status_text().  Remove previous implementation of
> rtems_status_text().
> ---
>  c/src/lib/libbsp/powerpc/shared/startup/panic.c |    2 +-
>  cpukit/libcsupport/include/rtems/error.h        |    2 -
>  cpukit/libcsupport/src/error.c                  |   42 --------------
>  cpukit/rtems/Makefile.am                        |    2 +-
>  cpukit/rtems/include/rtems/rtems/status.h       |   10 ++-
>  cpukit/rtems/src/statusdesc.c                   |   69 -----------------------
>  cpukit/rtems/src/statustext.c                   |   69 +++++++++++++++++++++++
>  cpukit/sapi/Makefile.am                         |    4 +-
>  cpukit/sapi/include/rtems/fatal.h               |   20 ++++---
>  cpukit/sapi/src/fatalsrcdesc.c                  |   53 -----------------
>  cpukit/sapi/src/fatalsrctext.c                  |   53 +++++++++++++++++
>  cpukit/sapi/src/interrdesc.c                    |   67 ----------------------
>  cpukit/sapi/src/interrtext.c                    |   67 ++++++++++++++++++++++
>  doc/user/Makefile.am                            |    2 +-
>  doc/user/dirstat.t                              |   13 ++--
>  doc/user/fatal.t                                |   22 ++++---
>  testsuites/psxtests/psxfatal_support/init.c     |    4 +-
>  testsuites/sptests/spfatal_support/init.c       |    4 +-
>  testsuites/sptests/spinternalerror02/init.c     |   48 ++++++++--------
>  19 files changed, 258 insertions(+), 295 deletions(-)
>  delete mode 100644 cpukit/rtems/src/statusdesc.c
>  create mode 100644 cpukit/rtems/src/statustext.c
>  delete mode 100644 cpukit/sapi/src/fatalsrcdesc.c
>  create mode 100644 cpukit/sapi/src/fatalsrctext.c
>  delete mode 100644 cpukit/sapi/src/interrdesc.c
>  create mode 100644 cpukit/sapi/src/interrtext.c
>
> diff --git a/c/src/lib/libbsp/powerpc/shared/startup/panic.c b/c/src/lib/libbsp/powerpc/shared/startup/panic.c
> index 4553f77..f832054 100644
> --- a/c/src/lib/libbsp/powerpc/shared/startup/panic.c
> +++ b/c/src/lib/libbsp/powerpc/shared/startup/panic.c
> @@ -39,7 +39,7 @@ void _BSP_Fatal_error(unsigned int v)
>    switch (THESRC) {
>      case INTERNAL_ERROR_CORE:
>        printk(" RTEMS Core\n");
> -      err = rtems_internal_error_description(THEERR);
> +      err = rtems_internal_error_text(THEERR);
>      break;
>
>        case INTERNAL_ERROR_RTEMS_API:
> diff --git a/cpukit/libcsupport/include/rtems/error.h b/cpukit/libcsupport/include/rtems/error.h
> index 9556763..cbcfa98 100644
> --- a/cpukit/libcsupport/include/rtems/error.h
> +++ b/cpukit/libcsupport/include/rtems/error.h
> @@ -84,8 +84,6 @@ typedef Internal_errors_t rtems_error_code_t;
>  #define RTEMS_ERROR_MASK \
>    (RTEMS_ERROR_ERRNO | RTEMS_ERROR_ABORT | RTEMS_ERROR_PANIC) /* all */
>
> -const char *rtems_status_text(rtems_status_code sc);
> -
>  /**
>   *  @brief Report an Error
>   *
> diff --git a/cpukit/libcsupport/src/error.c b/cpukit/libcsupport/src/error.c
> index 0e63fa4..81ddae2 100644
> --- a/cpukit/libcsupport/src/error.c
> +++ b/cpukit/libcsupport/src/error.c
> @@ -24,48 +24,6 @@
>
>  int          rtems_panic_in_progress;
>
> -const rtems_assoc_t rtems_status_assoc[] = {
> -  { "successful completion",              RTEMS_SUCCESSFUL, 0 },
> -  { "returned from a thread",             RTEMS_TASK_EXITTED, 0 },
> -  { "multiprocessing not configured",     RTEMS_MP_NOT_CONFIGURED, 0 },
> -  { "invalid object name",                RTEMS_INVALID_NAME, 0 },
> -  { "invalid object id",                  RTEMS_INVALID_ID, 0 },
> -  { "too many",                           RTEMS_TOO_MANY, 0 },
> -  { "timed out waiting",                  RTEMS_TIMEOUT, 0 },
> -  { "object deleted while waiting",       RTEMS_OBJECT_WAS_DELETED, 0 },
> -  { "specified size was invalid",         RTEMS_INVALID_SIZE, 0 },
> -  { "address specified is invalid",       RTEMS_INVALID_ADDRESS, 0 },
> -  { "number was invalid",                 RTEMS_INVALID_NUMBER, 0 },
> -  { "item has not been initialized",      RTEMS_NOT_DEFINED, 0 },
> -  { "resources still outstanding",        RTEMS_RESOURCE_IN_USE, 0 },
> -  { "request not satisfied",              RTEMS_UNSATISFIED, 0 },
> -  { "thread is in wrong state",           RTEMS_INCORRECT_STATE, 0 },
> -  { "thread already in state",            RTEMS_ALREADY_SUSPENDED, 0 },
> -  { "illegal on calling thread",          RTEMS_ILLEGAL_ON_SELF, 0 },
> -  { "illegal for remote object",          RTEMS_ILLEGAL_ON_REMOTE_OBJECT, 0 },
> -  { "called from wrong environment",      RTEMS_CALLED_FROM_ISR, 0 },
> -  { "invalid thread priority",            RTEMS_INVALID_PRIORITY, 0 },
> -  { "invalid date/time",                  RTEMS_INVALID_CLOCK, 0 },
> -  { "invalid node id",                    RTEMS_INVALID_NODE, 0 },
> -  { "directive not configured",           RTEMS_NOT_CONFIGURED, 0 },
> -  { "not owner of resource",              RTEMS_NOT_OWNER_OF_RESOURCE , 0 },
> -  { "directive not implemented",          RTEMS_NOT_IMPLEMENTED, 0 },
> -  { "RTEMS inconsistency detected",       RTEMS_INTERNAL_ERROR, 0 },
> -  { "could not get enough memory",        RTEMS_NO_MEMORY, 0 },
> -  { "driver IO error",                    RTEMS_IO_ERROR, 0 },
> -  { "internal multiprocessing only",      THREAD_STATUS_PROXY_BLOCKING, 0 },
> -  { 0, 0, 0 },
> -};
> -
> -
> -const char *rtems_status_text(
> -  rtems_status_code status
> -)
> -{
> -  return rtems_assoc_name_by_local(rtems_status_assoc, status);
> -}
> -
> -
>  int rtems_verror(
>    rtems_error_code_t  error_flag,
>    const char         *printf_format,
> diff --git a/cpukit/rtems/Makefile.am b/cpukit/rtems/Makefile.am
> index f219db8..6688317 100644
> --- a/cpukit/rtems/Makefile.am
> +++ b/cpukit/rtems/Makefile.am
> @@ -255,7 +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
> +librtems_a_SOURCES += src/statustext.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 19df500..f82b1f4 100644
> --- a/cpukit/rtems/include/rtems/rtems/status.h
> +++ b/cpukit/rtems/include/rtems/rtems/status.h
> @@ -242,14 +242,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.
> + * @brief Returns a text for a status code.
> + *
> + * The text for each status code is the enumerator constant.
>   *
>   * @param[in] code The status code.
>   *
> - * @retval description The status code description.
> - * @retval ? The passed status code is invalid.
> + * @retval text The status code text.
> + * @retval "?" The passed status code is invalid.
>   */
> -const char *rtems_status_code_description( rtems_status_code code );
> +const char *rtems_status_text( rtems_status_code code );
>
>  /**@}*/
>
> diff --git a/cpukit/rtems/src/statusdesc.c b/cpukit/rtems/src/statusdesc.c
> deleted file mode 100644
> index 4cc426d..0000000
> --- a/cpukit/rtems/src/statusdesc.c
> +++ /dev/null
> @@ -1,69 +0,0 @@
> -/**
> - * @file
> - *
> - * @ingroup ClassicStatus
> - */
> -
> -/*
> - * Copyright (c) 2014 embedded brains GmbH.  All rights reserved.
> - *
> - *  embedded brains GmbH
> - *  Dornierstr. 4
> - *  82178 Puchheim
> - *  Germany
> - *  <rtems at 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;
> -}
> diff --git a/cpukit/rtems/src/statustext.c b/cpukit/rtems/src/statustext.c
> new file mode 100644
> index 0000000..bdb91bb
> --- /dev/null
> +++ b/cpukit/rtems/src/statustext.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 at 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_text[] = {
> +  "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_text( rtems_status_code code )
> +{
> +  size_t i = code;
> +  const char *text = "?";
> +
> +  if ( i < RTEMS_ARRAY_SIZE( status_code_text ) ) {
> +    text = status_code_text [i];
> +  }
> +
> +  return text;
> +}
> diff --git a/cpukit/sapi/Makefile.am b/cpukit/sapi/Makefile.am
> index d7df541..7159208 100644
> --- a/cpukit/sapi/Makefile.am
> +++ b/cpukit/sapi/Makefile.am
> @@ -30,8 +30,8 @@ libsapi_a_SOURCES = src/debug.c src/extension.c src/extensioncreate.c \
>      src/iounregisterdriver.c src/iowrite.c src/posixapi.c  \
>      src/rtemsapi.c src/extensiondata.c src/getversionstring.c \
>      src/chainappendnotify.c src/chaingetnotify.c src/chaingetwait.c \
> -    src/chainprependnotify.c src/rbheap.c src/interrdesc.c \
> -    src/fatal2.c src/fatalsrcdesc.c
> +    src/chainprependnotify.c src/rbheap.c src/interrtext.c \
> +    src/fatal2.c src/fatalsrctext.c
>  libsapi_a_SOURCES += src/chainsmp.c
>  libsapi_a_SOURCES += src/delaycpu.c
>  libsapi_a_SOURCES += src/delaymicro.c
> diff --git a/cpukit/sapi/include/rtems/fatal.h b/cpukit/sapi/include/rtems/fatal.h
> index 47bf74f..1230182 100644
> --- a/cpukit/sapi/include/rtems/fatal.h
> +++ b/cpukit/sapi/include/rtems/fatal.h
> @@ -86,24 +86,28 @@ void rtems_fatal(
>  ) RTEMS_COMPILER_NO_RETURN_ATTRIBUTE;
>
>  /**
> - * @brief Returns a description for a fatal source.
> + * @brief Returns a text for a fatal source.
> + *
> + * The text for each fatal source is the enumerator constant.
>   *
>   * @param[in] source is the fatal source.
>   *
> - * @retval description The fatal source description.
> - * @retval ? The passed fatal source is invalid.
> + * @retval text The fatal source text.
> + * @retval "?" The passed fatal source is invalid.
>   */
> -const char *rtems_fatal_source_description( rtems_fatal_source source );
> +const char *rtems_fatal_source_text( rtems_fatal_source source );
>
>  /**
> - * @brief Returns a description for an internal error code.
> + * @brief Returns a text for an internal error code.
> + *
> + * The text for each internal error code is the enumerator constant.
>   *
>   * @param[in] error is the error code.
>   *
> - * @retval description The error code description.
> - * @retval ? The passed error code is invalid.
> + * @retval text The error code text.
> + * @retval "?" The passed error code is invalid.
>   */
> -const char *rtems_internal_error_description( rtems_fatal_code error );
> +const char *rtems_internal_error_text( rtems_fatal_code error );
>
>  /** @} */
>
> diff --git a/cpukit/sapi/src/fatalsrcdesc.c b/cpukit/sapi/src/fatalsrcdesc.c
> deleted file mode 100644
> index fbe8485..0000000
> --- a/cpukit/sapi/src/fatalsrcdesc.c
> +++ /dev/null
> @@ -1,53 +0,0 @@
> -/**
> - * @file
> - *
> - * @brief Implementation of rtems_fatal_source_description()
> - *
> - * @ingroup ClassicFatal
> - */
> -
> -/*
> - * Copyright (c) 2013 embedded brains GmbH.  All rights reserved.
> - *
> - *  embedded brains GmbH
> - *  Obere Lagerstr. 30
> - *  82178 Puchheim
> - *  Germany
> - *  <rtems at 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/fatal.h>
> -
> -static const char *const fatal_source_desc [] = {
> -  "INTERNAL_ERROR_CORE",
> -  "INTERNAL_ERROR_RTEMS_API",
> -  "INTERNAL_ERROR_POSIX_API",
> -  "RTEMS_FATAL_SOURCE_BDBUF",
> -  "RTEMS_FATAL_SOURCE_APPLICATION",
> -  "RTEMS_FATAL_SOURCE_EXIT",
> -  "RTEMS_FATAL_SOURCE_BSP_GENERIC",
> -  "RTEMS_FATAL_SOURCE_BSP_SPECIFIC",
> -  "RTEMS_FATAL_SOURCE_ASSERT",
> -  "RTEMS_FATAL_SOURCE_STACK_CHECKER",
> -  "RTEMS_FATAL_SOURCE_EXCEPTION"
> -};
> -
> -const char *rtems_fatal_source_description( rtems_fatal_source source )
> -{
> -  size_t i = source;
> -  const char *desc = "?";
> -
> -  if ( i < RTEMS_ARRAY_SIZE( fatal_source_desc ) ) {
> -    desc = fatal_source_desc [i];
> -  }
> -
> -  return desc;
> -}
> diff --git a/cpukit/sapi/src/fatalsrctext.c b/cpukit/sapi/src/fatalsrctext.c
> new file mode 100644
> index 0000000..902a269
> --- /dev/null
> +++ b/cpukit/sapi/src/fatalsrctext.c
> @@ -0,0 +1,53 @@
> +/**
> + * @file
> + *
> + * @brief Implementation of rtems_fatal_source_text()
> + *
> + * @ingroup ClassicFatal
> + */
> +
> +/*
> + * Copyright (c) 2013-2014 embedded brains GmbH.  All rights reserved.
> + *
> + *  embedded brains GmbH
> + *  Dornierstr. 4
> + *  82178 Puchheim
> + *  Germany
> + *  <rtems at 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/fatal.h>
> +
> +static const char *const fatal_source_text[] = {
> +  "INTERNAL_ERROR_CORE",
> +  "INTERNAL_ERROR_RTEMS_API",
> +  "INTERNAL_ERROR_POSIX_API",
> +  "RTEMS_FATAL_SOURCE_BDBUF",
> +  "RTEMS_FATAL_SOURCE_APPLICATION",
> +  "RTEMS_FATAL_SOURCE_EXIT",
> +  "RTEMS_FATAL_SOURCE_BSP_GENERIC",
> +  "RTEMS_FATAL_SOURCE_BSP_SPECIFIC",
> +  "RTEMS_FATAL_SOURCE_ASSERT",
> +  "RTEMS_FATAL_SOURCE_STACK_CHECKER",
> +  "RTEMS_FATAL_SOURCE_EXCEPTION"
> +};
> +
> +const char *rtems_fatal_source_text( rtems_fatal_source source )
> +{
> +  size_t i = source;
> +  const char *text = "?";
> +
> +  if ( i < RTEMS_ARRAY_SIZE( fatal_source_text ) ) {
> +    text = fatal_source_text[ i ];
> +  }
> +
> +  return text;
> +}
> diff --git a/cpukit/sapi/src/interrdesc.c b/cpukit/sapi/src/interrdesc.c
> deleted file mode 100644
> index 5301475..0000000
> --- a/cpukit/sapi/src/interrdesc.c
> +++ /dev/null
> @@ -1,67 +0,0 @@
> -/**
> - * @file
> - *
> - * @brief Returns a description for an internal error code.
> - *
> - * @ingroup ClassicFatal
> - */
> -
> -/*
> - * Copyright (c) 2012 embedded brains GmbH.  All rights reserved.
> - *
> - *  embedded brains GmbH
> - *  Obere Lagerstr. 30
> - *  82178 Puchheim
> - *  Germany
> - *  <rtems at 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/fatal.h>
> -
> -static const char *const internal_error_desc [] = {
> -  "INTERNAL_ERROR_NO_CONFIGURATION_TABLE",
> -  "INTERNAL_ERROR_NO_CPU_TABLE",
> -  "INTERNAL_ERROR_TOO_LITTLE_WORKSPACE",
> -  "INTERNAL_ERROR_WORKSPACE_ALLOCATION",
> -  "INTERNAL_ERROR_INTERRUPT_STACK_TOO_SMALL",
> -  "INTERNAL_ERROR_THREAD_EXITTED",
> -  "INTERNAL_ERROR_INCONSISTENT_MP_INFORMATION",
> -  "INTERNAL_ERROR_INVALID_NODE",
> -  "INTERNAL_ERROR_NO_MPCI",
> -  "INTERNAL_ERROR_BAD_PACKET",
> -  "INTERNAL_ERROR_OUT_OF_PACKETS",
> -  "INTERNAL_ERROR_OUT_OF_GLOBAL_OBJECTS",
> -  "INTERNAL_ERROR_OUT_OF_PROXIES",
> -  "INTERNAL_ERROR_INVALID_GLOBAL_ID",
> -  "INTERNAL_ERROR_BAD_STACK_HOOK",
> -  "INTERNAL_ERROR_BAD_ATTRIBUTES",
> -  "INTERNAL_ERROR_IMPLEMENTATION_KEY_CREATE_INCONSISTENCY",
> -  "INTERNAL_ERROR_IMPLEMENTATION_BLOCKING_OPERATION_CANCEL",
> -  "INTERNAL_ERROR_MUTEX_OBTAIN_FROM_BAD_STATE",
> -  "INTERNAL_ERROR_UNLIMITED_AND_MAXIMUM_IS_0",
> -  "INTERNAL_ERROR_SHUTDOWN_WHEN_NOT_UP",
> -  "INTERNAL_ERROR_GXX_KEY_ADD_FAILED",
> -  "INTERNAL_ERROR_GXX_MUTEX_INIT_FAILED",
> -  "INTERNAL_ERROR_NO_MEMORY_FOR_HEAP",
> -  "INTERNAL_ERROR_CPU_ISR_INSTALL_VECTOR"
> -};
> -
> -const char *rtems_internal_error_description( rtems_fatal_code error )
> -{
> -  size_t i = error;
> -  const char *desc = "?";
> -
> -  if ( i < RTEMS_ARRAY_SIZE( internal_error_desc ) ) {
> -    desc = internal_error_desc [i];
> -  }
> -
> -  return desc;
> -}
> diff --git a/cpukit/sapi/src/interrtext.c b/cpukit/sapi/src/interrtext.c
> new file mode 100644
> index 0000000..a66add5
> --- /dev/null
> +++ b/cpukit/sapi/src/interrtext.c
> @@ -0,0 +1,67 @@
> +/**
> + * @file
> + *
> + * @brief Returns a text for an internal error code.
> + *
> + * @ingroup ClassicFatal
> + */
> +
> +/*
> + * Copyright (c) 2012-2014 embedded brains GmbH.  All rights reserved.
> + *
> + *  embedded brains GmbH
> + *  Dornierstr. 4
> + *  82178 Puchheim
> + *  Germany
> + *  <rtems at 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/fatal.h>
> +
> +static const char *const internal_error_text[] = {
> +  "INTERNAL_ERROR_NO_CONFIGURATION_TABLE",
> +  "INTERNAL_ERROR_NO_CPU_TABLE",
> +  "INTERNAL_ERROR_TOO_LITTLE_WORKSPACE",
> +  "INTERNAL_ERROR_WORKSPACE_ALLOCATION",
> +  "INTERNAL_ERROR_INTERRUPT_STACK_TOO_SMALL",
> +  "INTERNAL_ERROR_THREAD_EXITTED",
> +  "INTERNAL_ERROR_INCONSISTENT_MP_INFORMATION",
> +  "INTERNAL_ERROR_INVALID_NODE",
> +  "INTERNAL_ERROR_NO_MPCI",
> +  "INTERNAL_ERROR_BAD_PACKET",
> +  "INTERNAL_ERROR_OUT_OF_PACKETS",
> +  "INTERNAL_ERROR_OUT_OF_GLOBAL_OBJECTS",
> +  "INTERNAL_ERROR_OUT_OF_PROXIES",
> +  "INTERNAL_ERROR_INVALID_GLOBAL_ID",
> +  "INTERNAL_ERROR_BAD_STACK_HOOK",
> +  "INTERNAL_ERROR_BAD_ATTRIBUTES",
> +  "INTERNAL_ERROR_IMPLEMENTATION_KEY_CREATE_INCONSISTENCY",
> +  "INTERNAL_ERROR_IMPLEMENTATION_BLOCKING_OPERATION_CANCEL",
> +  "INTERNAL_ERROR_MUTEX_OBTAIN_FROM_BAD_STATE",
> +  "INTERNAL_ERROR_UNLIMITED_AND_MAXIMUM_IS_0",
> +  "INTERNAL_ERROR_SHUTDOWN_WHEN_NOT_UP",
> +  "INTERNAL_ERROR_GXX_KEY_ADD_FAILED",
> +  "INTERNAL_ERROR_GXX_MUTEX_INIT_FAILED",
> +  "INTERNAL_ERROR_NO_MEMORY_FOR_HEAP",
> +  "INTERNAL_ERROR_CPU_ISR_INSTALL_VECTOR"
> +};
> +
> +const char *rtems_internal_error_text( rtems_fatal_code error )
> +{
> +  size_t i = error;
> +  const char *text = "?";
> +
> +  if ( i < RTEMS_ARRAY_SIZE( internal_error_text ) ) {
> +    text = internal_error_text[ i ];
> +  }
> +
> +  return text;
> +}
> diff --git a/doc/user/Makefile.am b/doc/user/Makefile.am
> index 1b6ddcb..eec627a 100644
> --- a/doc/user/Makefile.am
> +++ b/doc/user/Makefile.am
> @@ -144,7 +144,7 @@ fatal.texi: fatal.t
>             -n "Board Support Packages" < $< > $@
>
>  bsp.texi: bsp.t
> -       $(BMENU2) -p "Fatal Error Manager INTERNAL_ERROR_DESCRIPTION - Returns a description for an internal error code" \
> +       $(BMENU2) -p "Fatal Error Manager INTERNAL_ERROR_TEXT - Returns a text for an internal error code" \
>             -u "Top" \
>             -n "User Extensions Manager" < $< > $@
>
> diff --git a/doc/user/dirstat.t b/doc/user/dirstat.t
> index adb675d..ea33883 100644
> --- a/doc/user/dirstat.t
> +++ b/doc/user/dirstat.t
> @@ -40,16 +40,14 @@
>  @section Directives
>
>  @page
> - at subsection STATUS_CODE_DESCRIPTION - Returns a description for a status code
> -
> - at cindex fatal error
> + at subsection STATUS_CODE_TEXT - Returns a text for a status code
>
>  @subheading CALLING SEQUENCE:
>
>  @ifset is-C
> - at findex rtems_status_code_description
> + at findex rtems_status_code_text
>  @example
> -const char *rtems_status_code_description(
> +const char *rtems_status_code_text(
>    rtems_status_code code
>  );
>  @end example
> @@ -57,8 +55,9 @@ const char *rtems_status_code_description(
>
>  @subheading DIRECTIVE STATUS CODES
>
> -The status code description or "?" in case the passed status code is invalid.
> +The status code text or "?" in case the passed status code is invalid.
>
>  @subheading DESCRIPTION:
>
> -Returns a description for a status code.
> +Returns a text for a status code.  The text for each status code is the
> +enumerator constant.
> diff --git a/doc/user/fatal.t b/doc/user/fatal.t
> index 20faa64..61e5261 100644
> --- a/doc/user/fatal.t
> +++ b/doc/user/fatal.t
> @@ -230,16 +230,16 @@ Prints the exception frame via printk().
>  @c
>  @c
>  @page
> - at subsection FATAL_SOURCE_DESCRIPTION - Returns a description for a fatal source
> + at subsection FATAL_SOURCE_TEXT - Returns a text for a fatal source
>
>  @cindex fatal error
>
>  @subheading CALLING SEQUENCE:
>
>  @ifset is-C
> - at findex rtems_fatal_source_description
> + at findex rtems_fatal_source_text
>  @example
> -const char *rtems_fatal_source_description(
> +const char *rtems_fatal_source_text(
>    rtems_fatal_source source
>  );
>  @end example
> @@ -247,26 +247,27 @@ const char *rtems_fatal_source_description(
>
>  @subheading DIRECTIVE STATUS CODES
>
> -The fatal source description or "?" in case the passed fatal source is invalid.
> +The fatal source text or "?" in case the passed fatal source is invalid.
>
>  @subheading DESCRIPTION:
>
> -Returns a description for a fatal source.
> +Returns a text for a fatal source.  The text for fatal source is the enumerator
> +constant.
>
>  @c
>  @c
>  @c
>  @page
> - at subsection INTERNAL_ERROR_DESCRIPTION - Returns a description for an internal error code
> + at subsection INTERNAL_ERROR_TEXT - Returns a text for an internal error code
>
>  @cindex fatal error
>
>  @subheading CALLING SEQUENCE:
>
>  @ifset is-C
> - at findex rtems_internal_error_description
> + at findex rtems_internal_error_text
>  @example
> -const char *rtems_internal_error_description(
> +const char *rtems_internal_error_text(
>    rtems_fatal_code error
>  );
>  @end example
> @@ -274,8 +275,9 @@ const char *rtems_internal_error_description(
>
>  @subheading DIRECTIVE STATUS CODES
>
> -The error code description or "?" in case the passed error code is invalid.
> +The error code text or "?" in case the passed error code is invalid.
>
>  @subheading DESCRIPTION:
>
> -Returns a description for an internal error code.
> +Returns a text for an internal error code.  The text for each internal error
> +code is the enumerator constant.
> diff --git a/testsuites/psxtests/psxfatal_support/init.c b/testsuites/psxtests/psxfatal_support/init.c
> index 93645e6..ce83027 100644
> --- a/testsuites/psxtests/psxfatal_support/init.c
> +++ b/testsuites/psxtests/psxfatal_support/init.c
> @@ -65,7 +65,7 @@ char *Errors_Rtems[] = {
>  void Put_Error( uint32_t source, uint32_t error )
>  {
>    if ( source == INTERNAL_ERROR_CORE ) {
> -    printk( rtems_internal_error_description( error ) );
> +    printk( rtems_internal_error_text( error ) );
>    }
>    else if (source == INTERNAL_ERROR_RTEMS_API ){
>      if (error >  RTEMS_NOT_IMPLEMENTED )
> @@ -80,7 +80,7 @@ void Put_Error( uint32_t source, uint32_t error )
>
>  void Put_Source( rtems_fatal_source source )
>  {
> -  printk( "%s", rtems_fatal_source_description( source ) );
> +  printk( "%s", rtems_fatal_source_text( source ) );
>  }
>
>  void Fatal_extension(
> diff --git a/testsuites/sptests/spfatal_support/init.c b/testsuites/sptests/spfatal_support/init.c
> index 216c766..dfea488 100644
> --- a/testsuites/sptests/spfatal_support/init.c
> +++ b/testsuites/sptests/spfatal_support/init.c
> @@ -65,7 +65,7 @@ char *Errors_Rtems[] = {
>  void Put_Error( uint32_t source, uint32_t error )
>  {
>    if ( source == INTERNAL_ERROR_CORE ) {
> -    printk( rtems_internal_error_description( error ) );
> +    printk( rtems_internal_error_text( error ) );
>    }
>    else if (source == INTERNAL_ERROR_RTEMS_API ){
>      if (error >  RTEMS_NOT_IMPLEMENTED )
> @@ -77,7 +77,7 @@ void Put_Error( uint32_t source, uint32_t error )
>
>  void Put_Source( rtems_fatal_source source )
>  {
> -  printk( "%s", rtems_fatal_source_description( source ) );
> +  printk( "%s", rtems_fatal_source_text( source ) );
>  }
>
>  static bool is_expected_error( rtems_fatal_code error )
> diff --git a/testsuites/sptests/spinternalerror02/init.c b/testsuites/sptests/spinternalerror02/init.c
> index b08a7d4..0d07fab 100644
> --- a/testsuites/sptests/spinternalerror02/init.c
> +++ b/testsuites/sptests/spinternalerror02/init.c
> @@ -20,50 +20,50 @@
>
>  #include <rtems.h>
>
> -static void test_internal_error_description(void)
> +static void test_internal_error_text(void)
>  {
>    rtems_fatal_code error = 0;
> -  const char *desc = NULL;
> -  const char *desc_last;
> +  const char *text = NULL;
> +  const char *text_last;
>
>    do {
> -    desc_last = desc;
> -    desc = rtems_internal_error_description( error );
> +    text_last = text;
> +    text = rtems_internal_error_text( error );
>      ++error;
> -    puts( desc );
> -  } while ( desc != desc_last );
> +    puts( text );
> +  } while ( text != text_last );
>
>    rtems_test_assert( error - 3 == INTERNAL_ERROR_CPU_ISR_INSTALL_VECTOR );
>  }
>
> -static void test_fatal_source_description(void)
> +static void test_fatal_source_text(void)
>  {
>    rtems_fatal_source source = 0;
> -  const char *desc = NULL;
> -  const char *desc_last;
> +  const char *text = NULL;
> +  const char *text_last;
>
>    do {
> -    desc_last = desc;
> -    desc = rtems_fatal_source_description( source );
> +    text_last = text;
> +    text = rtems_fatal_source_text( source );
>      ++source;
> -    puts( desc );
> -  } while ( desc != desc_last );
> +    puts( text );
> +  } while ( text != text_last );
>
>    rtems_test_assert( source - 3 == RTEMS_FATAL_SOURCE_EXCEPTION );
>  }
>
> -static void test_status_code_description(void)
> +static void test_status_text(void)
>  {
>    rtems_status_code code = 0;
> -  const char *desc = NULL;
> -  const char *desc_last;
> +  const char *text = NULL;
> +  const char *text_last;
>
>    do {
> -    desc_last = desc;
> -    desc = rtems_status_code_description( code );
> +    text_last = text;
> +    text = rtems_status_text( code );
>      ++code;
> -    puts( desc );
> -  } while ( desc != desc_last );
> +    puts( text );
> +  } while ( text != text_last );
>
>    rtems_test_assert( code - 3 == RTEMS_PROXY_BLOCKING );
>  }
> @@ -72,9 +72,9 @@ static void Init(rtems_task_argument arg)
>  {
>    puts("\n\n*** TEST SPINTERNALERROR 2 ***");
>
> -  test_internal_error_description();
> -  test_fatal_source_description();
> -  test_status_code_description();
> +  test_internal_error_text();
> +  test_fatal_source_text();
> +  test_status_text();
>
>    puts("*** END OF TEST SPINTERNALERROR 2 ***");
>
> --
> 1.7.7
>
> _______________________________________________
> rtems-devel mailing list
> rtems-devel at rtems.org
> http://www.rtems.org/mailman/listinfo/rtems-devel



More information about the devel mailing list