diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2012-11-14 09:51:41 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2012-11-15 15:33:12 +0100 |
commit | e2e5b49215cabd82f99bdc0c6e1b6f69ff233d19 (patch) | |
tree | 9817613ec2f5d5c474c00ef363d3b42c3b94daa7 /cpukit/sapi | |
parent | score: Add INTERNAL_ERROR_CPU_ISR_INSTALL_VECTOR (diff) | |
download | rtems-e2e5b49215cabd82f99bdc0c6e1b6f69ff233d19.tar.bz2 |
score: Add rtems_fatal()
Diffstat (limited to 'cpukit/sapi')
-rw-r--r-- | cpukit/sapi/Makefile.am | 3 | ||||
-rw-r--r-- | cpukit/sapi/include/rtems/fatal.h | 50 | ||||
-rw-r--r-- | cpukit/sapi/src/fatal2.c | 27 |
3 files changed, 66 insertions, 14 deletions
diff --git a/cpukit/sapi/Makefile.am b/cpukit/sapi/Makefile.am index 4406708dae..232028e63c 100644 --- a/cpukit/sapi/Makefile.am +++ b/cpukit/sapi/Makefile.am @@ -37,7 +37,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/chainprependnotify.c src/rbheap.c src/interrdesc.c \ + src/fatal2.c libsapi_a_CPPFLAGS = $(AM_CPPFLAGS) include $(srcdir)/preinstall.am diff --git a/cpukit/sapi/include/rtems/fatal.h b/cpukit/sapi/include/rtems/fatal.h index 8f646a9417..66926054b9 100644 --- a/cpukit/sapi/include/rtems/fatal.h +++ b/cpukit/sapi/include/rtems/fatal.h @@ -1,13 +1,9 @@ /** - * @file rtems/fatal.h + * @file * - * This include file contains constants and prototypes related - * to the Fatal Error Manager. This manager processes all fatal or - * irrecoverable errors. - * - * This manager provides directives to: + * @ingroup ClassicFatal * - * - announce a fatal error has occurred + * @brief Fatal API. */ /* @@ -29,21 +25,47 @@ extern "C" { #endif -/* - * rtems_fatal_error_occurred +/** + * @defgroup ClassicFatal Fatal + * + * @ingroup ClassicRTEMS * - * DESCRIPTION: + * @brief The Fatal Manager provides functions for fatal system states and or + * irrecoverable errors. * - * This is the routine which implements the rtems_fatal_error_occurred - * directive. It is invoked when the application or RTEMS - * determines that a fatal error has occurred. + * @{ */ +/** + * @brief Invokes the internal error handler with a source of + * INTERNAL_ERROR_RTEMS_API and is internal set to false. + * + * @param[in] the_error A 32-bit fatal error code. + * + * @return This function will not return. + * + * @see _Internal_error_Occurred(). + */ void rtems_fatal_error_occurred( uint32_t the_error ) RTEMS_COMPILER_NO_RETURN_ATTRIBUTE; /** + * @brief Invokes the internal error handler with is internal set to false. + * + * @param[in] source The fatal source. + * @param[in] error The fatal code. + * + * @return This function will not return. + * + * @see _Internal_error_Occurred(). + */ +void rtems_fatal( + rtems_fatal_source source, + rtems_fatal_code error +) RTEMS_COMPILER_NO_RETURN_ATTRIBUTE; + +/** * @brief Returns a description for an internal error code. * * @param[in] error The error code. @@ -53,6 +75,8 @@ void rtems_fatal_error_occurred( */ const char *rtems_internal_error_description( rtems_fatal_code error ); +/** @} */ + #ifdef __cplusplus } #endif diff --git a/cpukit/sapi/src/fatal2.c b/cpukit/sapi/src/fatal2.c new file mode 100644 index 0000000000..efaf4265ed --- /dev/null +++ b/cpukit/sapi/src/fatal2.c @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2012 embedded brains GmbH. All rights reserved. + * + * embedded brains GmbH + * Obere Lagerstr. 30 + * 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/fatal.h> + +void rtems_fatal( + rtems_fatal_source source, + rtems_fatal_code error +) +{ + _Internal_error_Occurred( source, false, error ); +} |