summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc/virtex4
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2012-11-14 09:59:10 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2012-11-15 15:33:12 +0100
commita052181ca2e243540342315cde990b9471331a8e (patch)
tree2e8dfd9152bfc1d37fcb05f58de9d6b0e80eb8b3 /c/src/lib/libbsp/powerpc/virtex4
parentscore: Add RTEMS_FATAL_SOURCE_APPLICATION (diff)
downloadrtems-a052181ca2e243540342315cde990b9471331a8e.tar.bz2
score: Add RTEMS_FATAL_SOURCE_EXIT
Include <bsp/default-initial-extension.h> in all BSPs. Call rtems_fatal() with RTEMS_FATAL_SOURCE_EXIT as source and the exit() status code as fatal code in every bsp_cleanup(). Move previous bsp_cleanup() code into bsp_fatal_extension().
Diffstat (limited to 'c/src/lib/libbsp/powerpc/virtex4')
-rw-r--r--c/src/lib/libbsp/powerpc/virtex4/include/bsp.h2
-rw-r--r--c/src/lib/libbsp/powerpc/virtex4/startup/bspclean.c15
2 files changed, 15 insertions, 2 deletions
diff --git a/c/src/lib/libbsp/powerpc/virtex4/include/bsp.h b/c/src/lib/libbsp/powerpc/virtex4/include/bsp.h
index cb45b66e1b..7078ba8313 100644
--- a/c/src/lib/libbsp/powerpc/virtex4/include/bsp.h
+++ b/c/src/lib/libbsp/powerpc/virtex4/include/bsp.h
@@ -63,6 +63,8 @@ extern "C" {
#include <rtems/clockdrv.h>
#include <rtems/iosupp.h>
+#include <bsp/default-initial-extension.h>
+
/* miscellaneous stuff assumed to exist */
extern bool bsp_timer_internal_clock; /* TRUE, when timer runs with CPU clk */
diff --git a/c/src/lib/libbsp/powerpc/virtex4/startup/bspclean.c b/c/src/lib/libbsp/powerpc/virtex4/startup/bspclean.c
index 75f95e645b..3a2af5525b 100644
--- a/c/src/lib/libbsp/powerpc/virtex4/startup/bspclean.c
+++ b/c/src/lib/libbsp/powerpc/virtex4/startup/bspclean.c
@@ -40,10 +40,21 @@ static void _noopfun(void) {}
void app_bsp_cleanup(void)
__attribute__(( weak, alias("_noopfun") ));
-void bsp_cleanup( uint32_t status )
+void bsp_fatal_extension(
+ rtems_fatal_source source,
+ bool is_internal,
+ rtems_fatal_code error
+)
{
- app_bsp_cleanup();
+ if ( source == RTEMS_FATAL_SOURCE_EXIT ) {
+ app_bsp_cleanup();
+ }
/* All done. Hang out. */
BSP_ask_for_reset();
}
+
+void bsp_cleanup( uint32_t status )
+{
+ rtems_fatal( RTEMS_FATAL_SOURCE_EXIT, status );
+}