source: rtems/cpukit/score/src/userextthreadbegin.c @ 749d64a

4.104.115
Last change on this file since 749d64a was 749d64a, checked in by Ralf Corsepius <ralf.corsepius@…>, on Oct 12, 2009 at 12:16:23 PM

Reflect having introduced Internal_errors_t.

  • Property mode set to 100644
File size: 2.0 KB
RevLine 
[c42d1a4]1/**
2 * @file
3 *
4 * @ingroup ScoreUserExt
5 *
6 * @brief User Extension Handler implementation.
7 */
8
[c3db01d0]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,
[484a769]65  bool                    is_internal,
[749d64a]66  Internal_errors_t       the_error
[c3db01d0]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.