summaryrefslogtreecommitdiffstats
path: root/cpukit/sapi/src
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/sapi/src')
-rw-r--r--cpukit/sapi/src/exinit.c25
-rw-r--r--cpukit/sapi/src/exshutdown.c51
2 files changed, 53 insertions, 23 deletions
diff --git a/cpukit/sapi/src/exinit.c b/cpukit/sapi/src/exinit.c
index 04dc3c33de..109826a132 100644
--- a/cpukit/sapi/src/exinit.c
+++ b/cpukit/sapi/src/exinit.c
@@ -105,7 +105,9 @@ rtems_interrupt_level rtems_initialize_executive_early(
*/
_Configuration_Table = configuration_table;
+#if defined(RTEMS_MULTIPROCESSING)
_Configuration_MP_table = multiprocessing_table;
+#endif
/*
* Internally we view single processor systems as a very restricted
@@ -277,26 +279,3 @@ void rtems_initialize_executive_late(
_ISR_Enable( bsp_level );
}
-
-/*PAGE
- *
- * rtems_shutdown_executive
- *
- * This kernel routine shutdowns the executive. It halts multitasking
- * and returns control to the application execution "thread" which
- * initialially invoked the rtems_initialize_executive directive.
- *
- * Input parameters: NONE
- *
- * Output parameters: NONE
- */
-
-void rtems_shutdown_executive(
- uint32_t result
-)
-{
- if ( _System_state_Current != SYSTEM_STATE_SHUTDOWN ) {
- _System_state_Set( SYSTEM_STATE_SHUTDOWN );
- _Thread_Stop_multitasking();
- }
-}
diff --git a/cpukit/sapi/src/exshutdown.c b/cpukit/sapi/src/exshutdown.c
new file mode 100644
index 0000000000..5db40afa97
--- /dev/null
+++ b/cpukit/sapi/src/exshutdown.c
@@ -0,0 +1,51 @@
+/*
+ * Initialization Manager
+ *
+ * COPYRIGHT (c) 1989-1999.
+ * On-Line Applications Research Corporation (OAR).
+ *
+ * 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.
+ *
+ * $Id$
+ */
+
+#if HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <rtems/system.h>
+#include <rtems/score/sysstate.h>
+#include <rtems/score/thread.h>
+
+#if defined(__USE_INIT_FINI__)
+#include <stdlib.h> /* for atexit() */
+#endif
+
+/*
+ * rtems_shutdown_executive
+ *
+ * This kernel routine shutdowns the executive. It halts multitasking
+ * and returns control to the application execution "thread" which
+ * initialially invoked the rtems_initialize_executive directive.
+ *
+ * Input parameters: NONE
+ *
+ * Output parameters: NONE
+ */
+
+void rtems_shutdown_executive(
+ uint32_t result
+)
+{
+ if ( _System_state_Current != SYSTEM_STATE_SHUTDOWN ) {
+
+ #if defined(__USE_INIT_FINI__)
+ extern void _fini( void );
+ atexit( _fini );
+ #endif
+ _System_state_Set( SYSTEM_STATE_SHUTDOWN );
+ _Thread_Stop_multitasking();
+ }
+}