source: rtems/cpukit/score/src/userextthreadbegin.c @ c42d1a4

4.104.115
Last change on this file since c42d1a4 was c42d1a4, checked in by Joel Sherrill <joel.sherrill@…>, on Sep 25, 2009 at 5:51:46 PM

2009-09-25 Sebastian Huber <Sebastian.Huber@…>

  • sapi/include/rtems/extension.h, sapi/src/extensiondelete.c, sapi/src/extensionident.c, sapi/src/extensioncreate.c, sapi/inline/rtems/extension.inl, score/include/rtems/score/userext.h, score/src/userextthreaddelete.c, score/src/userext.c, score/src/userextthreadcreate.c, score/src/userextremoveset.c, score/src/userextthreadbegin.c, score/src/userextaddset.c, score/src/userextthreadstart.c, score/src/userextthreadswitch.c, score/src/userextthreadrestart.c: Documentation. The types User_extensions_routine and rtems_extension are now deprecated. Removed unused types User_extensions_thread_post_switch_extension and rtems_task_post_switch_extension. Renamed _User_extensions_Add_API_set() in _User_extensions_Add_set(). Renamed _User_extensions_Add_set() in _User_extensions_Add_set_with_table().
  • score/src/userextaddapiset.c: Removed file.
  • score/Makefile.am: Update.
  • Property mode set to 100644
File size: 2.0 KB
Line 
1/**
2 * @file
3 *
4 * @ingroup ScoreUserExt
5 *
6 * @brief User Extension Handler implementation.
7 */
8
9/*
10 *  COPYRIGHT (c) 1989-2007.
11 *  On-Line Applications Research Corporation (OAR).
12 *
13 *  The license and distribution terms for this file may be
14 *  found in the file LICENSE in this distribution or at
15 *  http://www.rtems.com/license/LICENSE.
16 *
17 *  $Id$
18 */
19
20#if HAVE_CONFIG_H
21#include "config.h"
22#endif
23
24#include <rtems/system.h>
25#include <rtems/score/userext.h>
26
27void _User_extensions_Thread_begin (
28  Thread_Control *executing
29)
30{
31  Chain_Node              *the_node;
32  User_extensions_Control *the_extension;
33
34  for ( the_node = _User_extensions_List.first ;
35        !_Chain_Is_tail( &_User_extensions_List, the_node ) ;
36        the_node = the_node->next ) {
37
38    the_extension = (User_extensions_Control *) the_node;
39
40    if ( the_extension->Callouts.thread_begin != NULL )
41      (*the_extension->Callouts.thread_begin)( executing );
42  }
43}
44
45void _User_extensions_Thread_exitted (
46  Thread_Control *executing
47)
48{
49  Chain_Node              *the_node;
50  User_extensions_Control *the_extension;
51
52  for ( the_node = _User_extensions_List.last ;
53        !_Chain_Is_head( &_User_extensions_List, the_node ) ;
54        the_node = the_node->previous ) {
55
56    the_extension = (User_extensions_Control *) the_node;
57
58    if ( the_extension->Callouts.thread_exitted != NULL )
59      (*the_extension->Callouts.thread_exitted)( executing );
60  }
61}
62
63void _User_extensions_Fatal (
64  Internal_errors_Source  the_source,
65  bool                    is_internal,
66  uint32_t                the_error
67)
68{
69  Chain_Node              *the_node;
70  User_extensions_Control *the_extension;
71
72  for ( the_node = _User_extensions_List.last ;
73        !_Chain_Is_head( &_User_extensions_List, the_node ) ;
74        the_node = the_node->previous ) {
75
76    the_extension = (User_extensions_Control *) the_node;
77
78    if ( the_extension->Callouts.fatal != NULL )
79      (*the_extension->Callouts.fatal)( the_source, is_internal, the_error );
80  }
81}
Note: See TracBrowser for help on using the repository browser.