00001 00007 /* 00008 * COPYRIGHT (c) 1989-2006. 00009 * On-Line Applications Research Corporation (OAR). 00010 * 00011 * The license and distribution terms for this file may be 00012 * found in the file LICENSE in this distribution or at 00013 * http://www.rtems.com/license/LICENSE. 00014 * 00015 * $Id: apiext.h,v 1.18 2006/01/16 15:13:58 joel Exp $ 00016 */ 00017 00018 #ifndef _RTEMS_SCORE_APIEXT_H 00019 #define _RTEMS_SCORE_APIEXT_H 00020 00033 #include <rtems/score/chain.h> 00034 #include <rtems/score/thread.h> 00035 00039 typedef void (*API_extensions_Predriver_hook)(void); 00040 00044 typedef void (*API_extensions_Postdriver_hook)(void); 00045 00049 typedef void (*API_extensions_Postswitch_hook)( 00050 Thread_Control * 00051 ); 00052 00057 typedef struct { 00059 Chain_Node Node; 00067 API_extensions_Predriver_hook predriver_hook; 00075 API_extensions_Postdriver_hook postdriver_hook; 00082 API_extensions_Postswitch_hook postswitch_hook; 00083 } API_extensions_Control; 00084 00088 SCORE_EXTERN Chain_Control _API_extensions_List; 00089 00094 void _API_extensions_Initialization( void ); 00095 00102 void _API_extensions_Add( 00103 API_extensions_Control *the_extension 00104 ); 00105 00110 void _API_extensions_Run_predriver( void ); 00111 00116 void _API_extensions_Run_postdriver( void ); 00117 00122 void _API_extensions_Run_postswitch( void ); 00123 00126 #endif 00127 /* end of include file */
1.5.6