summaryrefslogtreecommitdiffstats
path: root/cpukit/sapi
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2011-07-13 18:34:22 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2011-07-13 18:34:22 +0000
commitf58ef8ae7a0ff7e31d89d1b792a70b7ba7dbac6b (patch)
tree789d3f4839434da42114800c812ccf258ea38fd5 /cpukit/sapi
parent2011-07-13 Joel Sherrill <joel.sherrill@oarcorp.com> (diff)
downloadrtems-f58ef8ae7a0ff7e31d89d1b792a70b7ba7dbac6b.tar.bz2
2011-07-13 Joel Sherrill <joel.sherrilL@OARcorp.com>
PR 1824/cpukit * sapi/include/rtems/init.h, sapi/src/exinit.c, sapi/src/exshutdown.c: Return exit/shutdown status back to boot_card().
Diffstat (limited to 'cpukit/sapi')
-rw-r--r--cpukit/sapi/include/rtems/init.h5
-rw-r--r--cpukit/sapi/src/exinit.c5
-rw-r--r--cpukit/sapi/src/exshutdown.c3
3 files changed, 10 insertions, 3 deletions
diff --git a/cpukit/sapi/include/rtems/init.h b/cpukit/sapi/include/rtems/init.h
index 8cc7aa5c31..952b075c14 100644
--- a/cpukit/sapi/include/rtems/init.h
+++ b/cpukit/sapi/include/rtems/init.h
@@ -76,8 +76,11 @@ void rtems_initialize_device_drivers(void);
* This routine implements the early portion of rtems_initialize_executive
* directive up to the pretasking hook. This directive is invoked at system
* startup to initialize the RTEMS multitasking environment.
+ *
+ * @return This method returns the status code passed into the
+ * @ref rtems_shutdown_executive directive.
*/
-void rtems_initialize_start_multitasking(void);
+uint32_t rtems_initialize_start_multitasking(void);
/**
* @brief rtems_shutdown_executive
diff --git a/cpukit/sapi/src/exinit.c b/cpukit/sapi/src/exinit.c
index 860d758774..34b83c7180 100644
--- a/cpukit/sapi/src/exinit.c
+++ b/cpukit/sapi/src/exinit.c
@@ -225,9 +225,8 @@ void rtems_initialize_device_drivers(void)
_API_extensions_Run_postdriver();
}
-void rtems_initialize_start_multitasking(void)
+uint32_t rtems_initialize_start_multitasking(void)
{
-
_System_state_Set( SYSTEM_STATE_BEGIN_MULTITASKING );
_Thread_Start_multitasking();
@@ -240,4 +239,6 @@ void rtems_initialize_start_multitasking(void)
*******************************************************************
*******************************************************************
*******************************************************************/
+
+ return _Per_CPU_Information[0].idle->Wait.return_code;
}
diff --git a/cpukit/sapi/src/exshutdown.c b/cpukit/sapi/src/exshutdown.c
index 1de3b843e2..f004dbd755 100644
--- a/cpukit/sapi/src/exshutdown.c
+++ b/cpukit/sapi/src/exshutdown.c
@@ -44,6 +44,9 @@ void rtems_shutdown_executive(
#if defined(RTEMS_SMP)
_SMP_Request_other_cores_to_shutdown();
#endif
+
+ _Per_CPU_Information[0].idle->Wait.return_code = result;
+
_System_state_Set( SYSTEM_STATE_SHUTDOWN );
_Thread_Stop_multitasking();
}