From 7af35da5ff4331086e60d66c8bb8466cd6925a40 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Thu, 21 Sep 1995 20:55:07 +0000 Subject: More file movement required api extension to be added to score --- c/src/exec/score/headers/apiext.h | 86 +++++++++++++++++++++++++++ c/src/exec/score/include/rtems/score/apiext.h | 86 +++++++++++++++++++++++++++ c/src/exec/score/src/apiext.c | 84 ++++++++++++++++++++++++++ 3 files changed, 256 insertions(+) create mode 100644 c/src/exec/score/headers/apiext.h create mode 100644 c/src/exec/score/include/rtems/score/apiext.h create mode 100644 c/src/exec/score/src/apiext.c (limited to 'c/src/exec/score') diff --git a/c/src/exec/score/headers/apiext.h b/c/src/exec/score/headers/apiext.h new file mode 100644 index 0000000000..07ac4b4a93 --- /dev/null +++ b/c/src/exec/score/headers/apiext.h @@ -0,0 +1,86 @@ +/* apiext.h + * + * XXX + * + * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. + * On-Line Applications Research Corporation (OAR). + * All rights assigned to U.S. Government, 1994. + * + * This material may be reproduced by or for the U.S. Government pursuant + * to the copyright license under the clause at DFARS 252.227-7013. This + * notice must appear in all copies of this file and its derivatives. + * + * $Id$ + */ + + +#ifndef __API_EXTENSIONS_h +#define __API_EXTENSIONS_h + +#include + +/* + * The control structure which defines the points at which an API + * can add an extension to the system initialization thread. + */ + +typedef void (*API_extensions_Predriver_hook)(void); +typedef void (*API_extensions_Postdriver_hook)(void); + +typedef struct { + Chain_Node Node; + API_extensions_Predriver_hook predriver_hook; + API_extensions_Postdriver_hook postdriver_hook; +} API_extensions_Control; + +/* + * This is the list of API extensions to the system initialization. + */ + +EXTERN Chain_Control _API_extensions_List; + +/* + * _API_extensions_Initialization + * + * DESCRIPTION: + * + * This routine initializes the API extension handler. + * + */ + +void _API_extensions_Initialization( void ); + +/* + * _API_extensions_Add + * + * DESCRIPTION: + * + * XXX + */ + +void _API_extensions_Add( + API_extensions_Control *the_extension +); + +/* + * _API_extensions_Run_predriver + * + * DESCRIPTION: + * + * XXX + */ + +void _API_extensions_Run_predriver( void ); + +/* + * _API_extensions_Run_postdriver + * + * DESCRIPTION: + * + * XXX + */ + +void _API_extensions_Run_postdriver( void ); + +#endif +/* end of include file */ diff --git a/c/src/exec/score/include/rtems/score/apiext.h b/c/src/exec/score/include/rtems/score/apiext.h new file mode 100644 index 0000000000..07ac4b4a93 --- /dev/null +++ b/c/src/exec/score/include/rtems/score/apiext.h @@ -0,0 +1,86 @@ +/* apiext.h + * + * XXX + * + * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. + * On-Line Applications Research Corporation (OAR). + * All rights assigned to U.S. Government, 1994. + * + * This material may be reproduced by or for the U.S. Government pursuant + * to the copyright license under the clause at DFARS 252.227-7013. This + * notice must appear in all copies of this file and its derivatives. + * + * $Id$ + */ + + +#ifndef __API_EXTENSIONS_h +#define __API_EXTENSIONS_h + +#include + +/* + * The control structure which defines the points at which an API + * can add an extension to the system initialization thread. + */ + +typedef void (*API_extensions_Predriver_hook)(void); +typedef void (*API_extensions_Postdriver_hook)(void); + +typedef struct { + Chain_Node Node; + API_extensions_Predriver_hook predriver_hook; + API_extensions_Postdriver_hook postdriver_hook; +} API_extensions_Control; + +/* + * This is the list of API extensions to the system initialization. + */ + +EXTERN Chain_Control _API_extensions_List; + +/* + * _API_extensions_Initialization + * + * DESCRIPTION: + * + * This routine initializes the API extension handler. + * + */ + +void _API_extensions_Initialization( void ); + +/* + * _API_extensions_Add + * + * DESCRIPTION: + * + * XXX + */ + +void _API_extensions_Add( + API_extensions_Control *the_extension +); + +/* + * _API_extensions_Run_predriver + * + * DESCRIPTION: + * + * XXX + */ + +void _API_extensions_Run_predriver( void ); + +/* + * _API_extensions_Run_postdriver + * + * DESCRIPTION: + * + * XXX + */ + +void _API_extensions_Run_postdriver( void ); + +#endif +/* end of include file */ diff --git a/c/src/exec/score/src/apiext.c b/c/src/exec/score/src/apiext.c new file mode 100644 index 0000000000..60de0540f9 --- /dev/null +++ b/c/src/exec/score/src/apiext.c @@ -0,0 +1,84 @@ +/* apiext.c + * + * XXX + * + * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. + * On-Line Applications Research Corporation (OAR). + * All rights assigned to U.S. Government, 1994. + * + * This material may be reproduced by or for the U.S. Government pursuant + * to the copyright license under the clause at DFARS 252.227-7013. This + * notice must appear in all copies of this file and its derivatives. + * + * $Id$ + */ + + +#include +#include + +/*PAGE + * + * _API_extensions_Initialization + */ + +void _API_extensions_Initialization( void ) +{ + _Chain_Initialize_empty( &_API_extensions_List ); +} + +/*PAGE + * + * _API_extensions_Add + */ + +void _API_extensions_Add( + API_extensions_Control *the_extension +) +{ + _Chain_Append( &_API_extensions_List, &the_extension->Node ); +} + +/*PAGE + * + * _API_extensions_Run_predriver + */ + +void _API_extensions_Run_predriver( void ) +{ + Chain_Node *the_node; + API_extensions_Control *the_extension; + + for ( the_node = _API_extensions_List.first ; + !_Chain_Is_tail( &_API_extensions_List, the_node ) ; + the_node = the_node->next ) { + + the_extension = (API_extensions_Control *) the_node; + + if ( the_extension->predriver_hook ) + (*the_extension->predriver_hook)(); + } +} + +/*PAGE + * + * _API_extensions_Run_postdriver + */ + +void _API_extensions_Run_postdriver( void ) +{ + Chain_Node *the_node; + API_extensions_Control *the_extension; + + for ( the_node = _API_extensions_List.first ; + !_Chain_Is_tail( &_API_extensions_List, the_node ) ; + the_node = the_node->next ) { + + the_extension = (API_extensions_Control *) the_node; + + if ( the_extension->postdriver_hook ) + (*the_extension->postdriver_hook)(); + } +} + +/* end of file */ -- cgit v1.2.3