[PATCH 1/4] score: Add optional _CPU_Context_Destroy()

Gedare Bloom gedare at rtems.org
Wed Jul 19 14:13:35 UTC 2017


On Wed, Jul 19, 2017 at 4:21 AM, Sebastian Huber
<sebastian.huber at embedded-brains.de> wrote:
> Update #3077.
> ---
>  cpukit/score/cpu/no_cpu/rtems/score/cpu.h  | 19 +++++++++++++++++++
>  cpukit/score/include/rtems/score/context.h |  7 +++++++
>  cpukit/score/src/threadrestart.c           |  2 +-
>  3 files changed, 27 insertions(+), 1 deletion(-)
>
> diff --git a/cpukit/score/cpu/no_cpu/rtems/score/cpu.h b/cpukit/score/cpu/no_cpu/rtems/score/cpu.h
> index 62e1a91cb9..c16adc7327 100644
> --- a/cpukit/score/cpu/no_cpu/rtems/score/cpu.h
> +++ b/cpukit/score/cpu/no_cpu/rtems/score/cpu.h
> @@ -816,6 +816,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
>   *
>   * Initialize the context to a state suitable for starting a
> diff --git a/cpukit/score/include/rtems/score/context.h b/cpukit/score/include/rtems/score/context.h
> index 46cb4606b1..4795d2ea67 100644
> --- a/cpukit/score/include/rtems/score/context.h
> +++ b/cpukit/score/include/rtems/score/context.h
> @@ -146,6 +146,13 @@ extern "C" {
>  #define _Context_Save_fp( _fp ) \
>     _CPU_Context_save_fp( _fp )
>
> +#if defined(_CPU_Context_Destroy)
> +  #define _Context_Destory( _the_thread, _the_context ) \
typo: s/Destory/Destroy

What is the point of this function/macro?

> +    _CPU_Context_Destroy( _the_thread, _the_context )
> +#else
> +  #define _Context_Destory( _the_thread, _the_context )
> +#endif
> +
>  #ifdef __cplusplus
>  }
>  #endif
> diff --git a/cpukit/score/src/threadrestart.c b/cpukit/score/src/threadrestart.c
> index 5938dcfecf..adb6be71bf 100644
> --- a/cpukit/score/src/threadrestart.c
> +++ b/cpukit/score/src/threadrestart.c
> @@ -205,7 +205,7 @@ static void _Thread_Free( Thread_Control *the_thread )
>  #endif
>
>    _Thread_queue_Destroy( &the_thread->Join_queue );
> -
> +  _Context_Destory( the_thread, &the_thread->Registers );
>    _Objects_Free( &information->Objects, &the_thread->Object );
>  }
>
> --
> 2.12.3
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel


More information about the devel mailing list