summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/shared/bspclean.c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2008-09-22 21:50:54 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2008-09-22 21:50:54 +0000
commit54cf1198e320e1a67efe501efed98290d24b582d (patch)
tree566dc713aae7891cdb70ecf2ab812ad049a17efc /c/src/lib/libbsp/shared/bspclean.c
parent2008-09-22 Joel Sherrill <joel.sherrill@oarcorp.com> (diff)
downloadrtems-54cf1198e320e1a67efe501efed98290d24b582d.tar.bz2
2008-09-22 Joel Sherrill <joel.sherrill@oarcorp.com>
* bspclean.c, include/bootcard.h: Use standardized bsp_cleanup() which can optionally print a message, poll for user to press key, and call bsp_reset(). Using this eliminates the various bsp_cleanup() implementations which had their own implementation and variety of string constants. * bspreset.c, bspreset_fatal.c, bspreset_loop.c: New files.
Diffstat (limited to 'c/src/lib/libbsp/shared/bspclean.c')
-rw-r--r--c/src/lib/libbsp/shared/bspclean.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/shared/bspclean.c b/c/src/lib/libbsp/shared/bspclean.c
index c3651736db..142988cf31 100644
--- a/c/src/lib/libbsp/shared/bspclean.c
+++ b/c/src/lib/libbsp/shared/bspclean.c
@@ -11,6 +11,31 @@
* $Id$
*/
+#include <rtems.h>
+#include <rtems/bspIo.h>
+#include <bsp.h>
+#include <bspopts.h>
+#include <bsp/bootcard.h>
+
void bsp_cleanup( void )
{
+ #if (BSP_PRESS_KEY_FOR_RESET)
+ printk( "\nEXECUTIVE SHUTDOWN! Any key to reboot..." );
+
+ /*
+ * Wait for a key to be pressed
+ */
+ while ( getchark() == -1 )
+ ;
+
+ printk("\n");
+ #endif
+
+ /*
+ * Check both conditions -- if you want to ask for reboot, then
+ * you must have meant to reset the board.
+ */
+ #if (BSP_PRESS_KEY_FOR_RESET) || (BSP_RESET_BOARD_AT_EXIT)
+ bsp_reset();
+ #endif
}