score: Add optional _CPU_Context_Destroy()

Update #3077.
This commit is contained in:
Sebastian Huber
2017-07-18 14:53:16 +02:00
parent 671efc50a3
commit b2e1bded07
3 changed files with 27 additions and 1 deletions

View File

@@ -815,6 +815,25 @@ uint32_t _CPU_ISR_Get_level( void );
/* Context handler macros */
/**
* @ingroup CPUContext
*
* @brief Destroys the context of the thread.
*
* It must be implemented as a macro and an implementation is optional. The
* default implementation does nothing.
*
* @param[in] _the_thread The corresponding thread.
* @param[in] _the_context The context to destroy.
*
* Port Specific Information:
*
* XXX document implementation including references if appropriate
*/
#define _CPU_Context_Destroy( _the_thread, _the_context ) \
{ \
}
/**
* @ingroup CPUContext
*

View File

@@ -146,6 +146,13 @@ extern "C" {
#define _Context_Save_fp( _fp ) \
_CPU_Context_save_fp( _fp )
#if defined(_CPU_Context_Destroy)
#define _Context_Destroy( _the_thread, _the_context ) \
_CPU_Context_Destroy( _the_thread, _the_context )
#else
#define _Context_Destroy( _the_thread, _the_context )
#endif
#ifdef __cplusplus
}
#endif

View File

@@ -205,7 +205,7 @@ static void _Thread_Free( Thread_Control *the_thread )
#endif
_Thread_queue_Destroy( &the_thread->Join_queue );
_Context_Destroy( the_thread, &the_thread->Registers );
_Objects_Free( &information->Objects, &the_thread->Object );
}