More file movement required api extension to be added to score

This commit is contained in:
Joel Sherrill
1995-09-21 20:55:07 +00:00
parent 24b1cb9221
commit 7af35da5ff
9 changed files with 442 additions and 10 deletions

View File

@@ -26,7 +26,7 @@
#include <rtems/core/tod.h>
#include <rtems/core/userext.h>
#include <rtems/core/wkspace.h>
#include <rtems/core/intthrd.h>
#include <rtems/core/apiext.h>
#include <rtems/core/sysstate.h>
/*PAGE
@@ -132,13 +132,13 @@ User_extensions_routine _RTEMS_tasks_Switch_extension(
}
Internal_threads_Extensions_control _RTEMS_tasks_Internal_thread_extensions = {
API_extensions_Control _RTEMS_tasks_API_extensions = {
{ NULL, NULL },
NULL, /* predriver */
_RTEMS_tasks_Initialize_user_tasks /* postdriver */
};
User_extensions_Control _RTEMS_tasks_API_extensions = {
User_extensions_Control _RTEMS_tasks_User_extensions = {
{ NULL, NULL },
{ _RTEMS_tasks_Create_extension, /* create */
_RTEMS_tasks_Start_extension, /* start */
@@ -192,9 +192,9 @@ void _RTEMS_tasks_Manager_initialization(
* Add all the extensions for this API
*/
_User_extensions_Add_API_set( &_RTEMS_tasks_API_extensions );
_User_extensions_Add_API_set( &_RTEMS_tasks_User_extensions );
_Internal_threads_Add_extension( &_RTEMS_tasks_Internal_thread_extensions );
_API_extensions_Add( &_RTEMS_tasks_API_extensions );
/*
* Register the MP Process Packet routine.

View File

@@ -28,6 +28,7 @@
#include <rtems/io.h>
#include <rtems/sysstate.h>
#include <rtems/core/apiext.h>
#include <rtems/core/copyrt.h>
#include <rtems/core/heap.h>
#include <rtems/core/interr.h>
@@ -144,6 +145,8 @@ rtems_interrupt_level rtems_initialize_executive_early(
_Debug_Manager_initialization();
_API_extensions_Initialization();
_Thread_Dispatch_initialization();
_User_extensions_Handler_initialization(

View File

@@ -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 <rtems/core/chain.h>
/*
* 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 */

View File

@@ -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 <rtems/core/chain.h>
/*
* 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 */

View File

@@ -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 <rtems/system.h>
#include <rtems/core/apiext.h>
/*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 */

View File

@@ -26,7 +26,7 @@
#include <rtems/core/tod.h>
#include <rtems/core/userext.h>
#include <rtems/core/wkspace.h>
#include <rtems/core/intthrd.h>
#include <rtems/core/apiext.h>
#include <rtems/core/sysstate.h>
/*PAGE
@@ -132,13 +132,13 @@ User_extensions_routine _RTEMS_tasks_Switch_extension(
}
Internal_threads_Extensions_control _RTEMS_tasks_Internal_thread_extensions = {
API_extensions_Control _RTEMS_tasks_API_extensions = {
{ NULL, NULL },
NULL, /* predriver */
_RTEMS_tasks_Initialize_user_tasks /* postdriver */
};
User_extensions_Control _RTEMS_tasks_API_extensions = {
User_extensions_Control _RTEMS_tasks_User_extensions = {
{ NULL, NULL },
{ _RTEMS_tasks_Create_extension, /* create */
_RTEMS_tasks_Start_extension, /* start */
@@ -192,9 +192,9 @@ void _RTEMS_tasks_Manager_initialization(
* Add all the extensions for this API
*/
_User_extensions_Add_API_set( &_RTEMS_tasks_API_extensions );
_User_extensions_Add_API_set( &_RTEMS_tasks_User_extensions );
_Internal_threads_Add_extension( &_RTEMS_tasks_Internal_thread_extensions );
_API_extensions_Add( &_RTEMS_tasks_API_extensions );
/*
* Register the MP Process Packet routine.

View File

@@ -28,6 +28,7 @@
#include <rtems/io.h>
#include <rtems/sysstate.h>
#include <rtems/core/apiext.h>
#include <rtems/core/copyrt.h>
#include <rtems/core/heap.h>
#include <rtems/core/interr.h>
@@ -144,6 +145,8 @@ rtems_interrupt_level rtems_initialize_executive_early(
_Debug_Manager_initialization();
_API_extensions_Initialization();
_Thread_Dispatch_initialization();
_User_extensions_Handler_initialization(

View File

@@ -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 <rtems/core/chain.h>
/*
* 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 */

84
cpukit/score/src/apiext.c Normal file
View File

@@ -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 <rtems/system.h>
#include <rtems/core/apiext.h>
/*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 */