/* apiext.c
|
/* apiext.c
|
*
|
*
|
* XXX
|
* XXX
|
*
|
*
|
* COPYRIGHT (c) 1989-1999.
|
* COPYRIGHT (c) 1989-1999.
|
* On-Line Applications Research Corporation (OAR).
|
* On-Line Applications Research Corporation (OAR).
|
*
|
*
|
* The license and distribution terms for this file may be
|
* The license and distribution terms for this file may be
|
* found in the file LICENSE in this distribution or at
|
* found in the file LICENSE in this distribution or at
|
* http://www.OARcorp.com/rtems/license.html.
|
* http://www.OARcorp.com/rtems/license.html.
|
*
|
*
|
* apiext.c,v 1.8 1999/11/17 17:50:38 joel Exp
|
* apiext.c,v 1.8 1999/11/17 17:50:38 joel Exp
|
*/
|
*/
|
|
|
|
|
#include <rtems/system.h>
|
#include <rtems/system.h>
|
#include <rtems/score/apiext.h>
|
#include <rtems/score/apiext.h>
|
|
|
/*PAGE
|
/*PAGE
|
*
|
*
|
* _API_extensions_Initialization
|
* _API_extensions_Initialization
|
*/
|
*/
|
|
|
void _API_extensions_Initialization( void )
|
void _API_extensions_Initialization( void )
|
{
|
{
|
_Chain_Initialize_empty( &_API_extensions_List );
|
_Chain_Initialize_empty( &_API_extensions_List );
|
}
|
}
|
|
|
/*PAGE
|
/*PAGE
|
*
|
*
|
* _API_extensions_Add
|
* _API_extensions_Add
|
*/
|
*/
|
|
|
void _API_extensions_Add(
|
void _API_extensions_Add(
|
API_extensions_Control *the_extension
|
API_extensions_Control *the_extension
|
)
|
)
|
{
|
{
|
_Chain_Append( &_API_extensions_List, &the_extension->Node );
|
_Chain_Append( &_API_extensions_List, &the_extension->Node );
|
}
|
}
|
|
|
/*PAGE
|
/*PAGE
|
*
|
*
|
* _API_extensions_Run_predriver
|
* _API_extensions_Run_predriver
|
*/
|
*/
|
|
|
void _API_extensions_Run_predriver( void )
|
void _API_extensions_Run_predriver( void )
|
{
|
{
|
Chain_Node *the_node;
|
Chain_Node *the_node;
|
API_extensions_Control *the_extension;
|
API_extensions_Control *the_extension;
|
|
|
for ( the_node = _API_extensions_List.first ;
|
for ( the_node = _API_extensions_List.first ;
|
!_Chain_Is_tail( &_API_extensions_List, the_node ) ;
|
!_Chain_Is_tail( &_API_extensions_List, the_node ) ;
|
the_node = the_node->next ) {
|
the_node = the_node->next ) {
|
|
|
the_extension = (API_extensions_Control *) the_node;
|
the_extension = (API_extensions_Control *) the_node;
|
|
|
if ( the_extension->predriver_hook )
|
if ( the_extension->predriver_hook )
|
(*the_extension->predriver_hook)();
|
(*the_extension->predriver_hook)();
|
}
|
}
|
}
|
}
|
|
|
/*PAGE
|
/*PAGE
|
*
|
*
|
* _API_extensions_Run_postdriver
|
* _API_extensions_Run_postdriver
|
*/
|
*/
|
|
|
void _API_extensions_Run_postdriver( void )
|
void _API_extensions_Run_postdriver( void )
|
{
|
{
|
Chain_Node *the_node;
|
Chain_Node *the_node;
|
API_extensions_Control *the_extension;
|
API_extensions_Control *the_extension;
|
|
|
for ( the_node = _API_extensions_List.first ;
|
for ( the_node = _API_extensions_List.first ;
|
!_Chain_Is_tail( &_API_extensions_List, the_node ) ;
|
!_Chain_Is_tail( &_API_extensions_List, the_node ) ;
|
the_node = the_node->next ) {
|
the_node = the_node->next ) {
|
|
|
the_extension = (API_extensions_Control *) the_node;
|
the_extension = (API_extensions_Control *) the_node;
|
|
|
if ( the_extension->postdriver_hook )
|
if ( the_extension->postdriver_hook )
|
(*the_extension->postdriver_hook)();
|
(*the_extension->postdriver_hook)();
|
}
|
}
|
}
|
}
|
|
|
/*PAGE
|
/*PAGE
|
*
|
*
|
* _API_extensions_Run_postswitch
|
* _API_extensions_Run_postswitch
|
*/
|
*/
|
|
|
void _API_extensions_Run_postswitch( void )
|
void _API_extensions_Run_postswitch( void )
|
{
|
{
|
Chain_Node *the_node;
|
Chain_Node *the_node;
|
API_extensions_Control *the_extension;
|
API_extensions_Control *the_extension;
|
|
|
for ( the_node = _API_extensions_List.first ;
|
for ( the_node = _API_extensions_List.first ;
|
!_Chain_Is_tail( &_API_extensions_List, the_node ) ;
|
!_Chain_Is_tail( &_API_extensions_List, the_node ) ;
|
the_node = the_node->next ) {
|
the_node = the_node->next ) {
|
|
|
the_extension = (API_extensions_Control *) the_node;
|
the_extension = (API_extensions_Control *) the_node;
|
|
|
if ( the_extension->postswitch_hook )
|
if ( the_extension->postswitch_hook )
|
(*the_extension->postswitch_hook)( _Thread_Executing );
|
(*the_extension->postswitch_hook)( _Thread_Executing );
|
}
|
}
|
}
|
}
|
|
|
/* end of file */
|
/* end of file */
|
|
|