summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1995-09-21 20:55:07 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1995-09-21 20:55:07 +0000
commit7af35da5ff4331086e60d66c8bb8466cd6925a40 (patch)
treef63e74f2e6231eda0b1c3861a2bbe7d4af205787
parentMore file movement (diff)
downloadrtems-7af35da5ff4331086e60d66c8bb8466cd6925a40.tar.bz2
More file movement required api extension to be added to score
-rw-r--r--c/src/exec/rtems/src/tasks.c10
-rw-r--r--c/src/exec/sapi/src/exinit.c3
-rw-r--r--c/src/exec/score/headers/apiext.h86
-rw-r--r--c/src/exec/score/include/rtems/score/apiext.h86
-rw-r--r--c/src/exec/score/src/apiext.c84
-rw-r--r--cpukit/rtems/src/tasks.c10
-rw-r--r--cpukit/sapi/src/exinit.c3
-rw-r--r--cpukit/score/include/rtems/score/apiext.h86
-rw-r--r--cpukit/score/src/apiext.c84
9 files changed, 442 insertions, 10 deletions
diff --git a/c/src/exec/rtems/src/tasks.c b/c/src/exec/rtems/src/tasks.c
index 1a221331cb..bed9e8112d 100644
--- a/c/src/exec/rtems/src/tasks.c
+++ b/c/src/exec/rtems/src/tasks.c
@@ -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.
diff --git a/c/src/exec/sapi/src/exinit.c b/c/src/exec/sapi/src/exinit.c
index 4c9cb2e785..bde925b7a3 100644
--- a/c/src/exec/sapi/src/exinit.c
+++ b/c/src/exec/sapi/src/exinit.c
@@ -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(
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 <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 */
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 <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 */
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 <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 */
diff --git a/cpukit/rtems/src/tasks.c b/cpukit/rtems/src/tasks.c
index 1a221331cb..bed9e8112d 100644
--- a/cpukit/rtems/src/tasks.c
+++ b/cpukit/rtems/src/tasks.c
@@ -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.
diff --git a/cpukit/sapi/src/exinit.c b/cpukit/sapi/src/exinit.c
index 4c9cb2e785..bde925b7a3 100644
--- a/cpukit/sapi/src/exinit.c
+++ b/cpukit/sapi/src/exinit.c
@@ -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(
diff --git a/cpukit/score/include/rtems/score/apiext.h b/cpukit/score/include/rtems/score/apiext.h
new file mode 100644
index 0000000000..07ac4b4a93
--- /dev/null
+++ b/cpukit/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 <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 */
diff --git a/cpukit/score/src/apiext.c b/cpukit/score/src/apiext.c
new file mode 100644
index 0000000000..60de0540f9
--- /dev/null
+++ b/cpukit/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 <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 */