[rtems commit] score: Add rtems_fatal()

Sebastian Huber sebh at rtems.org
Thu Nov 15 14:29:49 UTC 2012


Module:    rtems
Branch:    master
Commit:    e2e5b49215cabd82f99bdc0c6e1b6f69ff233d19
Changeset: http://git.rtems.org/rtems/commit/?id=e2e5b49215cabd82f99bdc0c6e1b6f69ff233d19

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Wed Nov 14 09:51:41 2012 +0100

score: Add rtems_fatal()

---

 cpukit/sapi/Makefile.am           |    3 +-
 cpukit/sapi/include/rtems/fatal.h |   50 +++++++++++++++++++++++++++---------
 cpukit/sapi/src/fatal2.c          |   27 ++++++++++++++++++++
 doc/user/fatal.t                  |   31 +++++++++++++++++++++++
 4 files changed, 97 insertions(+), 14 deletions(-)

diff --git a/cpukit/sapi/Makefile.am b/cpukit/sapi/Makefile.am
index 4406708..232028e 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 8f646a9..6692605 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 0000000..efaf426
--- /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 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>
+
+void rtems_fatal(
+  rtems_fatal_source source,
+  rtems_fatal_code error
+)
+{
+  _Internal_error_Occurred( source, false, error );
+}
diff --git a/doc/user/fatal.t b/doc/user/fatal.t
index fd5a7ea..aa9c2bf 100644
--- a/doc/user/fatal.t
+++ b/doc/user/fatal.t
@@ -15,6 +15,7 @@ manager is:
 
 @itemize @bullet
 @item @code{@value{DIRPREFIX}fatal_error_occurred} - Invoke the fatal error handler
+ at item @code{@value{DIRPREFIX}fatal} - Invoke the fatal error handler with error source
 @end itemize
 
 @section Background
@@ -172,6 +173,36 @@ wish to initiate a global shutdown.
 @c
 @c
 @page
+ at subsection FATAL - Invoke the fatal error handler with error source
+
+ at cindex announce fatal error
+ at cindex fatal error, announce
+
+ at subheading CALLING SEQUENCE:
+
+ at ifset is-C
+ at findex rtems_fatal
+ at example
+void rtems_fatal(
+  rtems_fatal_source source,
+  rtems_fatal_code error
+);
+ at end example
+ at end ifset
+
+ at subheading DIRECTIVE STATUS CODES
+
+NONE
+
+ at subheading DESCRIPTION:
+
+This directive invokes the internal error handler with is internal set to
+false.  See also @code{@value{DIRPREFIX}fatal_error_occurred}.
+
+ at c
+ at c
+ at c
+ at page
 @subsection INTERNAL_ERROR_DESCRIPTION - Returns a description for an internal error code
 
 @cindex fatal error




More information about the vc mailing list