diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2011-09-24 12:45:55 +0000 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2011-09-24 12:45:55 +0000 |
commit | 86c847c1da3f5d802a091711724a4dcbb64db2d2 (patch) | |
tree | cead47287da32ab9dbd660c4e7939100c75f3212 /cpukit/score | |
parent | 2011-09-22 Sebastian Huber <sebastian.huber@embedded-brains.de> (diff) | |
download | rtems-86c847c1da3f5d802a091711724a4dcbb64db2d2.tar.bz2 |
2011-09-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
PR 1921/cpukit
* score/inline/rtems/score/thread.inl,
score/src/threadstartmultitasking.c: Allow CPU port to provide
optional multitasking start and stop.
Diffstat (limited to 'cpukit/score')
-rw-r--r-- | cpukit/score/inline/rtems/score/thread.inl | 4 | ||||
-rw-r--r-- | cpukit/score/src/threadstartmultitasking.c | 4 |
2 files changed, 8 insertions, 0 deletions
diff --git a/cpukit/score/inline/rtems/score/thread.inl b/cpukit/score/inline/rtems/score/thread.inl index ba13bda908..af824177bb 100644 --- a/cpukit/score/inline/rtems/score/thread.inl +++ b/cpukit/score/inline/rtems/score/thread.inl @@ -111,6 +111,9 @@ RTEMS_INLINE_ROUTINE void _Thread_Stop_multitasking( void ) { +#if defined(_CPU_Stop_multitasking) + _CPU_Stop_multitasking( &_Thread_BSP_context ); +#else /* * This may look a bit of an odd but _Context_Restart_self is just * a very careful restore of a specific context which ensures that @@ -120,6 +123,7 @@ RTEMS_INLINE_ROUTINE void _Thread_Stop_multitasking( void ) * saving the context. */ _Context_Restart_self( &_Thread_BSP_context ); +#endif /*************************************************************** *************************************************************** diff --git a/cpukit/score/src/threadstartmultitasking.c b/cpukit/score/src/threadstartmultitasking.c index dd7275aab7..54b7d83e3b 100644 --- a/cpukit/score/src/threadstartmultitasking.c +++ b/cpukit/score/src/threadstartmultitasking.c @@ -86,5 +86,9 @@ void _Thread_Start_multitasking( void ) _Context_Restore_fp( &_Thread_Heir->fp_context ); #endif +#if defined(_CPU_Start_multitasking) + _CPU_Start_multitasking( &_Thread_BSP_context, &_Thread_Heir->Registers ); +#else _Context_Switch( &_Thread_BSP_context, &_Thread_Heir->Registers ); +#endif } |