From a052181ca2e243540342315cde990b9471331a8e Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 14 Nov 2012 09:59:10 +0100 Subject: score: Add RTEMS_FATAL_SOURCE_EXIT Include 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(). --- c/src/lib/libbsp/m68k/av5282/include/bsp.h | 1 + c/src/lib/libbsp/m68k/csb360/include/bsp.h | 1 + c/src/lib/libbsp/m68k/gen68302/include/bsp.h | 1 + c/src/lib/libbsp/m68k/gen68340/include/bsp.h | 1 + c/src/lib/libbsp/m68k/gen68360/include/bsp.h | 1 + c/src/lib/libbsp/m68k/genmcf548x/include/bsp.h | 1 + c/src/lib/libbsp/m68k/idp/include/bsp.h | 1 + c/src/lib/libbsp/m68k/mcf5206elite/include/bsp.h | 1 + c/src/lib/libbsp/m68k/mcf52235/include/bsp.h | 1 + c/src/lib/libbsp/m68k/mcf5225x/include/bsp.h | 1 + c/src/lib/libbsp/m68k/mcf5225x/startup/bspclean.c | 15 ++++++++++----- c/src/lib/libbsp/m68k/mcf5235/include/bsp.h | 1 + c/src/lib/libbsp/m68k/mcf5329/include/bsp.h | 1 + c/src/lib/libbsp/m68k/mrm332/include/bsp.h | 1 + c/src/lib/libbsp/m68k/mvme136/include/bsp.h | 1 + c/src/lib/libbsp/m68k/mvme136/startup/bspclean.c | 13 +++++++++++-- c/src/lib/libbsp/m68k/mvme147/include/bsp.h | 1 + c/src/lib/libbsp/m68k/mvme147/startup/bspclean.c | 13 +++++++++++-- c/src/lib/libbsp/m68k/mvme147s/include/bsp.h | 1 + c/src/lib/libbsp/m68k/mvme162/include/bsp.h | 1 + c/src/lib/libbsp/m68k/mvme162/startup/bspclean.c | 13 +++++++++++-- c/src/lib/libbsp/m68k/mvme167/include/bsp.h | 1 + c/src/lib/libbsp/m68k/mvme167/startup/bspclean.c | 13 +++++++++++-- c/src/lib/libbsp/m68k/ods68302/include/bsp.h | 1 + c/src/lib/libbsp/m68k/sim68000/include/bsp.h | 1 + c/src/lib/libbsp/m68k/uC5282/include/bsp.h | 1 + c/src/lib/libbsp/m68k/uC5282/startup/bspclean.c | 11 ++++++++++- 27 files changed, 85 insertions(+), 14 deletions(-) (limited to 'c/src/lib/libbsp/m68k') diff --git a/c/src/lib/libbsp/m68k/av5282/include/bsp.h b/c/src/lib/libbsp/m68k/av5282/include/bsp.h index 75c289dfe9..6af587a8b5 100644 --- a/c/src/lib/libbsp/m68k/av5282/include/bsp.h +++ b/c/src/lib/libbsp/m68k/av5282/include/bsp.h @@ -10,6 +10,7 @@ extern "C" { #endif #include +#include #include #include diff --git a/c/src/lib/libbsp/m68k/csb360/include/bsp.h b/c/src/lib/libbsp/m68k/csb360/include/bsp.h index 8f364dc4be..2e32a3dcd3 100644 --- a/c/src/lib/libbsp/m68k/csb360/include/bsp.h +++ b/c/src/lib/libbsp/m68k/csb360/include/bsp.h @@ -110,6 +110,7 @@ extern "C" { #include #include #include +#include struct rtems_bsdnet_ifconfig; extern int rtems_enet_driver_attach (struct rtems_bsdnet_ifconfig *config); diff --git a/c/src/lib/libbsp/m68k/gen68302/include/bsp.h b/c/src/lib/libbsp/m68k/gen68302/include/bsp.h index 6b3b397c29..4fdb60cae4 100644 --- a/c/src/lib/libbsp/m68k/gen68302/include/bsp.h +++ b/c/src/lib/libbsp/m68k/gen68302/include/bsp.h @@ -20,6 +20,7 @@ extern "C" { #endif #include +#include #include #include diff --git a/c/src/lib/libbsp/m68k/gen68340/include/bsp.h b/c/src/lib/libbsp/m68k/gen68340/include/bsp.h index e8b2c98f8c..bc5142cccd 100644 --- a/c/src/lib/libbsp/m68k/gen68340/include/bsp.h +++ b/c/src/lib/libbsp/m68k/gen68340/include/bsp.h @@ -23,6 +23,7 @@ extern "C" { #endif #include +#include #include #include diff --git a/c/src/lib/libbsp/m68k/gen68360/include/bsp.h b/c/src/lib/libbsp/m68k/gen68360/include/bsp.h index 4de5a4f362..383946f1ef 100644 --- a/c/src/lib/libbsp/m68k/gen68360/include/bsp.h +++ b/c/src/lib/libbsp/m68k/gen68360/include/bsp.h @@ -29,6 +29,7 @@ extern "C" { #endif #include +#include #include #include diff --git a/c/src/lib/libbsp/m68k/genmcf548x/include/bsp.h b/c/src/lib/libbsp/m68k/genmcf548x/include/bsp.h index dba6f5ae4c..0379d69ef1 100644 --- a/c/src/lib/libbsp/m68k/genmcf548x/include/bsp.h +++ b/c/src/lib/libbsp/m68k/genmcf548x/include/bsp.h @@ -50,6 +50,7 @@ extern "C" { #endif #include +#include #include #include diff --git a/c/src/lib/libbsp/m68k/idp/include/bsp.h b/c/src/lib/libbsp/m68k/idp/include/bsp.h index 72795f99e2..599bf1fba9 100644 --- a/c/src/lib/libbsp/m68k/idp/include/bsp.h +++ b/c/src/lib/libbsp/m68k/idp/include/bsp.h @@ -7,6 +7,7 @@ #define _BSP_H #include +#include #include #include diff --git a/c/src/lib/libbsp/m68k/mcf5206elite/include/bsp.h b/c/src/lib/libbsp/m68k/mcf5206elite/include/bsp.h index 074e05c589..f06444e33c 100644 --- a/c/src/lib/libbsp/m68k/mcf5206elite/include/bsp.h +++ b/c/src/lib/libbsp/m68k/mcf5206elite/include/bsp.h @@ -127,6 +127,7 @@ extern "C" { #include #include #include +#include #include "i2c.h" diff --git a/c/src/lib/libbsp/m68k/mcf52235/include/bsp.h b/c/src/lib/libbsp/m68k/mcf52235/include/bsp.h index 701e604327..6bd6aa8229 100644 --- a/c/src/lib/libbsp/m68k/mcf52235/include/bsp.h +++ b/c/src/lib/libbsp/m68k/mcf52235/include/bsp.h @@ -10,6 +10,7 @@ extern "C" { #endif #include +#include #include #include #include diff --git a/c/src/lib/libbsp/m68k/mcf5225x/include/bsp.h b/c/src/lib/libbsp/m68k/mcf5225x/include/bsp.h index 13a189f5d2..2a419d77a1 100644 --- a/c/src/lib/libbsp/m68k/mcf5225x/include/bsp.h +++ b/c/src/lib/libbsp/m68k/mcf5225x/include/bsp.h @@ -12,6 +12,7 @@ extern "C" { #endif #include +#include #include #include #include diff --git a/c/src/lib/libbsp/m68k/mcf5225x/startup/bspclean.c b/c/src/lib/libbsp/m68k/mcf5225x/startup/bspclean.c index fb538904df..e8c70c326f 100644 --- a/c/src/lib/libbsp/m68k/mcf5225x/startup/bspclean.c +++ b/c/src/lib/libbsp/m68k/mcf5225x/startup/bspclean.c @@ -19,13 +19,18 @@ #include #include +void bsp_fatal_extension( + rtems_fatal_source source, + bool is_internal, + rtems_fatal_code error +) +{ + printk("\nRTEMS exited!\n"); +} + void __attribute__((weak)) bsp_cleanup( uint32_t status ) { - printk("\nRTEMS exited!\n"); - for (;;) { - __asm__ volatile (" nop "); - __asm__ volatile (" nop "); - } + rtems_fatal( RTEMS_FATAL_SOURCE_EXIT, status ); } diff --git a/c/src/lib/libbsp/m68k/mcf5235/include/bsp.h b/c/src/lib/libbsp/m68k/mcf5235/include/bsp.h index b822b8d59a..66d0c709bf 100644 --- a/c/src/lib/libbsp/m68k/mcf5235/include/bsp.h +++ b/c/src/lib/libbsp/m68k/mcf5235/include/bsp.h @@ -10,6 +10,7 @@ extern "C" { #endif #include +#include #include #include #include diff --git a/c/src/lib/libbsp/m68k/mcf5329/include/bsp.h b/c/src/lib/libbsp/m68k/mcf5329/include/bsp.h index 7a7db3b575..719c5f91f7 100644 --- a/c/src/lib/libbsp/m68k/mcf5329/include/bsp.h +++ b/c/src/lib/libbsp/m68k/mcf5329/include/bsp.h @@ -10,6 +10,7 @@ extern "C" { #endif #include +#include #include #include #include diff --git a/c/src/lib/libbsp/m68k/mrm332/include/bsp.h b/c/src/lib/libbsp/m68k/mrm332/include/bsp.h index c792c3695e..ab5bf6865c 100644 --- a/c/src/lib/libbsp/m68k/mrm332/include/bsp.h +++ b/c/src/lib/libbsp/m68k/mrm332/include/bsp.h @@ -18,6 +18,7 @@ extern "C" { #endif #include +#include #include #include diff --git a/c/src/lib/libbsp/m68k/mvme136/include/bsp.h b/c/src/lib/libbsp/m68k/mvme136/include/bsp.h index 4b10ecefd7..56c3216197 100644 --- a/c/src/lib/libbsp/m68k/mvme136/include/bsp.h +++ b/c/src/lib/libbsp/m68k/mvme136/include/bsp.h @@ -18,6 +18,7 @@ extern "C" { #endif #include +#include #include #include diff --git a/c/src/lib/libbsp/m68k/mvme136/startup/bspclean.c b/c/src/lib/libbsp/m68k/mvme136/startup/bspclean.c index 45966ffebc..50feb5a52c 100644 --- a/c/src/lib/libbsp/m68k/mvme136/startup/bspclean.c +++ b/c/src/lib/libbsp/m68k/mvme136/startup/bspclean.c @@ -30,8 +30,10 @@ void bsp_return_to_monitor_trap(void) #define TIMER 0xfffb0000 -void bsp_cleanup( - uint32_t status +void bsp_fatal_extension( + rtems_fatal_source source, + bool is_internal, + rtems_fatal_code error ) { Z8x36_WRITE( TIMER, MASTER_INTR, 0x62 ); /* redo timer */ @@ -42,3 +44,10 @@ void bsp_cleanup( M68Kvec[ 45 ] = bsp_return_to_monitor_trap; /* install handler */ __asm__ volatile( "trap #13" ); /* insures SUPV mode */ } + +void bsp_cleanup( + uint32_t status +) +{ + rtems_fatal( RTEMS_FATAL_SOURCE_EXIT, status ); +} diff --git a/c/src/lib/libbsp/m68k/mvme147/include/bsp.h b/c/src/lib/libbsp/m68k/mvme147/include/bsp.h index 51c8d5907f..5a074eed76 100644 --- a/c/src/lib/libbsp/m68k/mvme147/include/bsp.h +++ b/c/src/lib/libbsp/m68k/mvme147/include/bsp.h @@ -22,6 +22,7 @@ extern "C" { #endif #include +#include #include #include diff --git a/c/src/lib/libbsp/m68k/mvme147/startup/bspclean.c b/c/src/lib/libbsp/m68k/mvme147/startup/bspclean.c index 7f29f4e87d..405d9262fd 100644 --- a/c/src/lib/libbsp/m68k/mvme147/startup/bspclean.c +++ b/c/src/lib/libbsp/m68k/mvme147/startup/bspclean.c @@ -31,8 +31,10 @@ void bsp_return_to_monitor_trap(void) __asm__ volatile ( "jmp %0@" : "=a" (start_addr) : "0" (start_addr) ); } -void bsp_cleanup( - uint32_t status +void bsp_fatal_extension( + rtems_fatal_source source, + bool is_internal, + rtems_fatal_code error ) { pcc->timer1_int_control = 0; /* Disable Timer 1 */ @@ -41,3 +43,10 @@ void bsp_cleanup( M68Kvec[ 45 ] = bsp_return_to_monitor_trap; /* install handler */ __asm__ volatile( "trap #13" ); /* ensures SUPV mode */ } + +void bsp_cleanup( + uint32_t status +) +{ + rtems_fatal( RTEMS_FATAL_SOURCE_EXIT, status ); +} diff --git a/c/src/lib/libbsp/m68k/mvme147s/include/bsp.h b/c/src/lib/libbsp/m68k/mvme147s/include/bsp.h index 1627457ddc..9cdaaad6f0 100644 --- a/c/src/lib/libbsp/m68k/mvme147s/include/bsp.h +++ b/c/src/lib/libbsp/m68k/mvme147s/include/bsp.h @@ -22,6 +22,7 @@ extern "C" { #endif #include +#include #include #include diff --git a/c/src/lib/libbsp/m68k/mvme162/include/bsp.h b/c/src/lib/libbsp/m68k/mvme162/include/bsp.h index ccbac9ecae..d74e60f9c9 100644 --- a/c/src/lib/libbsp/m68k/mvme162/include/bsp.h +++ b/c/src/lib/libbsp/m68k/mvme162/include/bsp.h @@ -25,6 +25,7 @@ extern "C" { #endif #include +#include #include #include diff --git a/c/src/lib/libbsp/m68k/mvme162/startup/bspclean.c b/c/src/lib/libbsp/m68k/mvme162/startup/bspclean.c index 7c2515075e..3b275d98cd 100644 --- a/c/src/lib/libbsp/m68k/mvme162/startup/bspclean.c +++ b/c/src/lib/libbsp/m68k/mvme162/startup/bspclean.c @@ -46,10 +46,19 @@ void bsp_return_to_monitor_trap(void) #endif } -void bsp_cleanup( - uint32_t status +void bsp_fatal_extension( + rtems_fatal_source source, + bool is_internal, + rtems_fatal_code error ) { M68Kvec[ 45 ] = bsp_return_to_monitor_trap; /* install handler */ __asm__ volatile( "trap #13" ); /* insures SUPV mode */ } + +void bsp_cleanup( + uint32_t status +) +{ + rtems_fatal( RTEMS_FATAL_SOURCE_EXIT, status ); +} diff --git a/c/src/lib/libbsp/m68k/mvme167/include/bsp.h b/c/src/lib/libbsp/m68k/mvme167/include/bsp.h index 9a3324a682..f2521e9118 100644 --- a/c/src/lib/libbsp/m68k/mvme167/include/bsp.h +++ b/c/src/lib/libbsp/m68k/mvme167/include/bsp.h @@ -24,6 +24,7 @@ extern "C" { #endif #include +#include #include #include diff --git a/c/src/lib/libbsp/m68k/mvme167/startup/bspclean.c b/c/src/lib/libbsp/m68k/mvme167/startup/bspclean.c index 487ad35442..68e127ff2c 100644 --- a/c/src/lib/libbsp/m68k/mvme167/startup/bspclean.c +++ b/c/src/lib/libbsp/m68k/mvme167/startup/bspclean.c @@ -49,6 +49,16 @@ static void bsp_return_to_monitor_trap( void ) __asm__ volatile( "jmp %0@" : "=a" (start_addr) : "0" (start_addr) ); } +void bsp_fatal_extension( + rtems_fatal_source source, + bool is_internal, + rtems_fatal_code error +) +{ + M68Kvec[ 45 ] = bsp_return_to_monitor_trap; + __asm__ volatile( "trap #13" ); +} + /* * bsp_cleanup * @@ -76,6 +86,5 @@ void bsp_cleanup( uint32_t status ) { - M68Kvec[ 45 ] = bsp_return_to_monitor_trap; - __asm__ volatile( "trap #13" ); + rtems_fatal( RTEMS_FATAL_SOURCE_EXIT, status ); } diff --git a/c/src/lib/libbsp/m68k/ods68302/include/bsp.h b/c/src/lib/libbsp/m68k/ods68302/include/bsp.h index 394c166d1c..f7c37e7444 100644 --- a/c/src/lib/libbsp/m68k/ods68302/include/bsp.h +++ b/c/src/lib/libbsp/m68k/ods68302/include/bsp.h @@ -18,6 +18,7 @@ extern "C" { #endif #include +#include #define BSP_SMALL_MEMORY 1 #include diff --git a/c/src/lib/libbsp/m68k/sim68000/include/bsp.h b/c/src/lib/libbsp/m68k/sim68000/include/bsp.h index aedbd4d52e..f4e45a6fcb 100644 --- a/c/src/lib/libbsp/m68k/sim68000/include/bsp.h +++ b/c/src/lib/libbsp/m68k/sim68000/include/bsp.h @@ -19,6 +19,7 @@ extern "C" { #endif #include +#include #include #include diff --git a/c/src/lib/libbsp/m68k/uC5282/include/bsp.h b/c/src/lib/libbsp/m68k/uC5282/include/bsp.h index f66022a4ea..a7cced4651 100644 --- a/c/src/lib/libbsp/m68k/uC5282/include/bsp.h +++ b/c/src/lib/libbsp/m68k/uC5282/include/bsp.h @@ -19,6 +19,7 @@ extern "C" { #endif #include +#include #include #include diff --git a/c/src/lib/libbsp/m68k/uC5282/startup/bspclean.c b/c/src/lib/libbsp/m68k/uC5282/startup/bspclean.c index f9de975880..dc17af738c 100644 --- a/c/src/lib/libbsp/m68k/uC5282/startup/bspclean.c +++ b/c/src/lib/libbsp/m68k/uC5282/startup/bspclean.c @@ -16,9 +16,18 @@ #include #include +void bsp_fatal_extension( + rtems_fatal_source source, + bool is_internal, + rtems_fatal_code error +) +{ + bsp_reset(); +} + void bsp_cleanup( uint32_t status ) { - bsp_reset(); + rtems_fatal( RTEMS_FATAL_SOURCE_EXIT, status ); } -- cgit v1.2.3