[PATCH 07/17] score: Delete post-switch API extensions
Gedare Bloom
gedare at rtems.org
Tue Mar 25 15:45:25 UTC 2014
OK to these patches. I like this consolidation very nice.
On Tue, Mar 25, 2014 at 8:49 AM, Sebastian Huber
<sebastian.huber at embedded-brains.de> wrote:
> Use thread post-switch actions instead.
> ---
> cpukit/score/include/rtems/score/apiext.h | 64 -----------------------------
> cpukit/score/src/apiext.c | 11 -----
> cpukit/score/src/threaddispatch.c | 1 -
> 3 files changed, 0 insertions(+), 76 deletions(-)
>
> diff --git a/cpukit/score/include/rtems/score/apiext.h b/cpukit/score/include/rtems/score/apiext.h
> index f281ab8..8382673 100644
> --- a/cpukit/score/include/rtems/score/apiext.h
> +++ b/cpukit/score/include/rtems/score/apiext.h
> @@ -52,13 +52,6 @@ extern "C" {
> typedef void (*API_extensions_Postdriver_hook)(void);
>
> /**
> - * This type defines the prototype of the Post Switch Hook.
> - */
> -typedef void (*API_extensions_Post_switch_hook)(
> - Thread_Control *
> - );
> -
> -/**
> * The control structure which defines the points at which an API
> * can add an extension to the system initialization thread.
> */
> @@ -86,31 +79,10 @@ typedef struct {
> } API_extensions_Control;
>
> /**
> - * @brief Control structure for post switch hooks.
> - */
> -typedef struct {
> - Chain_Node Node;
> -
> - /**
> - * @brief The hook invoked during each context switch in the context of the
> - * heir thread.
> - *
> - * This hook must not be NULL.
> - */
> - API_extensions_Post_switch_hook hook;
> -} API_extensions_Post_switch_control;
> -
> -/**
> * This is the list of API extensions to the system initialization.
> */
> SCORE_EXTERN Chain_Control _API_extensions_List;
>
> -
> -/**
> - * @brief The API extensions post switch list.
> - */
> -SCORE_EXTERN Chain_Control _API_extensions_Post_switch_list;
> -
> /**
> * @brief Initialize the API extensions handler.
> *
> @@ -129,23 +101,6 @@ void _API_extensions_Add(
> API_extensions_Control *the_extension
> );
>
> -/**
> - * @brief Adds the API extension post switch control to the post switch list.
> - *
> - * The post switch control is only added to the list if it is in the off chain
> - * state. Thus this function can be called multiple times with the same
> - * post switch control and only the first invocation will actually add it to the
> - * list.
> - *
> - * There is no protection against concurrent access. This function must be
> - * called within a _Thread_Disable_dispatch() critical section.
> - *
> - * @param [in, out] post_switch The post switch control.
> - */
> -void _API_extensions_Add_post_switch(
> - API_extensions_Post_switch_control *post_switch
> -);
> -
> #if defined(FUNCTIONALITY_NOT_CURRENTLY_USED_BY_ANY_API)
> /**
> * @brief Execute all pre-driver extensions.
> @@ -162,25 +117,6 @@ void _API_extensions_Add_post_switch(
> */
> void _API_extensions_Run_postdriver( void );
>
> -/**
> - * @brief Runs all API extension post switch hooks.
> - */
> -static inline void _API_extensions_Run_post_switch( Thread_Control *executing )
> -{
> - const Chain_Control *chain = &_API_extensions_Post_switch_list;
> - const Chain_Node *tail = _Chain_Immutable_tail( chain );
> - const Chain_Node *node = _Chain_Immutable_first( chain );
> -
> - while ( node != tail ) {
> - const API_extensions_Post_switch_control *post_switch =
> - (const API_extensions_Post_switch_control *) node;
> -
> - (*post_switch->hook)( executing );
> -
> - node = _Chain_Immutable_next( node );
> - }
> -}
> -
> /**@}*/
>
> #ifdef __cplusplus
> diff --git a/cpukit/score/src/apiext.c b/cpukit/score/src/apiext.c
> index d4e67bf..3d9121d 100644
> --- a/cpukit/score/src/apiext.c
> +++ b/cpukit/score/src/apiext.c
> @@ -25,7 +25,6 @@
> void _API_extensions_Initialization( void )
> {
> _Chain_Initialize_empty( &_API_extensions_List );
> - _Chain_Initialize_empty( &_API_extensions_Post_switch_list );
> }
>
> void _API_extensions_Add(
> @@ -35,16 +34,6 @@ void _API_extensions_Add(
> _Chain_Append( &_API_extensions_List, &the_extension->Node );
> }
>
> -void _API_extensions_Add_post_switch(
> - API_extensions_Post_switch_control *post_switch
> -)
> -{
> - _Chain_Append_if_is_off_chain_unprotected(
> - &_API_extensions_Post_switch_list,
> - &post_switch->Node
> - );
> -}
> -
> #if defined(FUNCTIONALITY_NOT_CURRENTLY_USED_BY_ANY_API)
>
> void _API_extensions_Run_predriver( void )
> diff --git a/cpukit/score/src/threaddispatch.c b/cpukit/score/src/threaddispatch.c
> index ae30c0c..ae69a5c 100644
> --- a/cpukit/score/src/threaddispatch.c
> +++ b/cpukit/score/src/threaddispatch.c
> @@ -207,6 +207,5 @@ post_switch:
>
> _Per_CPU_Release_and_ISR_enable( per_cpu, level );
>
> - _API_extensions_Run_post_switch( executing );
> _Thread_Run_post_switch_actions( executing );
> }
> --
> 1.7.7
>
> _______________________________________________
> rtems-devel mailing list
> rtems-devel at rtems.org
> http://www.rtems.org/mailman/listinfo/rtems-devel
More information about the devel
mailing list