diff options
Diffstat (limited to '')
-rw-r--r-- | cpukit/score/inline/rtems/score/userext.inl | 189 |
1 files changed, 24 insertions, 165 deletions
diff --git a/cpukit/score/inline/rtems/score/userext.inl b/cpukit/score/inline/rtems/score/userext.inl index fa5a31c37b..697a7eddd0 100644 --- a/cpukit/score/inline/rtems/score/userext.inl +++ b/cpukit/score/inline/rtems/score/userext.inl @@ -24,7 +24,7 @@ */ STATIC INLINE void _User_extensions_Handler_initialization ( - rtems_extensions_table *initial_extensions + User_extensions_Table *initial_extensions ) { _Chain_Initialize_empty( &_User_extensions_List ); @@ -42,7 +42,7 @@ STATIC INLINE void _User_extensions_Handler_initialization ( STATIC INLINE void _User_extensions_Add_set ( User_extensions_Control *the_extension, - rtems_extensions_table *extension_table + User_extensions_Table *extension_table ) { the_extension->Callouts = *extension_table; @@ -52,130 +52,35 @@ STATIC INLINE void _User_extensions_Add_set ( /*PAGE * - * _User_extensions_Remove_set - */ - -STATIC INLINE void _User_extensions_Remove_set ( - User_extensions_Control *the_extension -) -{ - _Chain_Extract( &the_extension->Node ); -} - -/*PAGE - * - * _User_extensions_Task_create - * + * _User_extensions_Add_API_set */ - -STATIC INLINE void _User_extensions_Task_create ( - Thread_Control *the_thread + +STATIC INLINE void _User_extensions_Add_API_set ( + User_extensions_Control *the_extension ) { - Chain_Node *the_node; - User_extensions_Control *the_extension; - - for ( the_node = _User_extensions_List.first ; - !_Chain_Is_tail( &_User_extensions_List, the_node ) ; - the_node = the_node->next ) { - - the_extension = (User_extensions_Control *) the_node; - - if ( the_extension->Callouts.rtems_task_create != NULL ) - (*the_extension->Callouts.rtems_task_create)( - _Thread_Executing, - the_thread - ); - } + _Chain_Prepend( &_User_extensions_List, &the_extension->Node ); } - + /*PAGE * - * _User_extensions_Task_delete - */ - -STATIC INLINE void _User_extensions_Task_delete ( - Thread_Control *the_thread -) -{ - Chain_Node *the_node; - User_extensions_Control *the_extension; - - for ( the_node = _User_extensions_List.last ; - !_Chain_Is_head( &_User_extensions_List, the_node ) ; - the_node = the_node->previous ) { - - the_extension = (User_extensions_Control *) the_node; - - if ( the_extension->Callouts.rtems_task_delete != NULL ) - (*the_extension->Callouts.rtems_task_delete)( - _Thread_Executing, - the_thread - ); - } -} - -/*PAGE - * - * _User_extensions_Task_start - * - */ - -STATIC INLINE void _User_extensions_Task_start ( - Thread_Control *the_thread -) -{ - Chain_Node *the_node; - User_extensions_Control *the_extension; - - for ( the_node = _User_extensions_List.first ; - !_Chain_Is_tail( &_User_extensions_List, the_node ) ; - the_node = the_node->next ) { - - the_extension = (User_extensions_Control *) the_node; - - if ( the_extension->Callouts.rtems_task_start != NULL ) - (*the_extension->Callouts.rtems_task_start)( - _Thread_Executing, - the_thread - ); - } -} - -/*PAGE - * - * _User_extensions_Task_restart - * + * _User_extensions_Remove_set */ -STATIC INLINE void _User_extensions_Task_restart ( - Thread_Control *the_thread +STATIC INLINE void _User_extensions_Remove_set ( + User_extensions_Control *the_extension ) { - Chain_Node *the_node; - User_extensions_Control *the_extension; - - for ( the_node = _User_extensions_List.first ; - !_Chain_Is_tail( &_User_extensions_List, the_node ) ; - the_node = the_node->next ) { - - the_extension = (User_extensions_Control *) the_node; - - if ( the_extension->Callouts.rtems_task_restart != NULL ) - (*the_extension->Callouts.rtems_task_restart)( - _Thread_Executing, - the_thread - ); - } + _Chain_Extract( &the_extension->Node ); } /*PAGE * - * _User_extensions_Task_switch + * _User_extensions_Thread_switch * */ -STATIC INLINE void _User_extensions_Task_switch ( +STATIC INLINE void _User_extensions_Thread_switch ( Thread_Control *executing, Thread_Control *heir ) @@ -189,78 +94,32 @@ STATIC INLINE void _User_extensions_Task_switch ( the_extension = (User_extensions_Control *) the_node; - if ( the_extension->Callouts.task_switch != NULL ) - (*the_extension->Callouts.task_switch)( executing, heir ); + if ( the_extension->Callouts.thread_switch != NULL ) + (*the_extension->Callouts.thread_switch)( executing, heir ); } } /*PAGE * - * _User_extensions_Task_begin + * _User_extensions_Thread_post_switch * */ - -STATIC INLINE void _User_extensions_Task_begin ( + +STATIC INLINE void _User_extensions_Thread_post_switch ( Thread_Control *executing ) { Chain_Node *the_node; User_extensions_Control *the_extension; - + for ( the_node = _User_extensions_List.first ; !_Chain_Is_tail( &_User_extensions_List, the_node ) ; the_node = the_node->next ) { - - the_extension = (User_extensions_Control *) the_node; - - if ( the_extension->Callouts.task_begin != NULL ) - (*the_extension->Callouts.task_begin)( executing ); - } -} - -/*PAGE - * - * _User_extensions_Task_exitted - */ - -STATIC INLINE void _User_extensions_Task_exitted ( - Thread_Control *executing -) -{ - Chain_Node *the_node; - User_extensions_Control *the_extension; - - for ( the_node = _User_extensions_List.last ; - !_Chain_Is_head( &_User_extensions_List, the_node ) ; - the_node = the_node->previous ) { - + the_extension = (User_extensions_Control *) the_node; - - if ( the_extension->Callouts.task_exitted != NULL ) - (*the_extension->Callouts.task_exitted)( executing ); - } -} - -/*PAGE - * - * _User_extensions_Fatal - */ - -STATIC INLINE void _User_extensions_Fatal ( - unsigned32 the_error -) -{ - Chain_Node *the_node; - User_extensions_Control *the_extension; - - for ( the_node = _User_extensions_List.last ; - !_Chain_Is_head( &_User_extensions_List, the_node ) ; - the_node = the_node->previous ) { - - the_extension = (User_extensions_Control *) the_node; - - if ( the_extension->Callouts.fatal != NULL ) - (*the_extension->Callouts.fatal)( the_error ); + + if ( the_extension->Callouts.thread_post_switch != NULL ) + (*the_extension->Callouts.thread_post_switch)( executing ); } } |