summaryrefslogtreecommitdiffstats
path: root/cpukit/score/include/rtems/score/userext.h
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2007-05-09 18:27:26 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2007-05-09 18:27:26 +0000
commitc3db01d0f37921ba809825e9c6b7fbe86b8fae5d (patch)
tree0f7adb0ea85567c63adf99d5cf0e67b7598aa61b /cpukit/score/include/rtems/score/userext.h
parent2007-05-09 Joel Sherrill <joel.sherrill@OARcorp.com> (diff)
downloadrtems-c3db01d0f37921ba809825e9c6b7fbe86b8fae5d.tar.bz2
2007-05-09 Joel Sherrill <joel.sherrill@OARcorp.com>
* libcsupport/include/rtems/libcsupport.h, libcsupport/src/newlibc.c, sapi/Makefile.am, sapi/include/confdefs.h, sapi/src/exinit.c, score/Makefile.am, score/preinstall.am, score/include/rtems/score/userext.h, score/src/chain.c, score/src/userext.c: Switch to newlib reentrancy extension being installed in the initial set instead of using rtems_extension_create. While implementing this, noticed that user extensions and chain code had multiple functions in a single file which is not desirable in the SuperCore and API portions of RTEMS, so split these into multiple files with one function per file. Also noticed that some of user extension code was inlined for no particular reason so moved that to C bodies. Split executive shutdown from initialization since not every application shuts down. Moved __fini call to executive shutdown to be more symmetrical with where it is called at startup. * sapi/src/exshutdown.c, score/src/chainappend.c, score/src/chainextract.c, score/src/chainget.c, score/src/chaininsert.c, score/src/userextaddapiset.c, score/src/userextaddset.c, score/src/userextremoveset.c, score/src/userextthreadbegin.c, score/src/userextthreadcreate.c, score/src/userextthreaddelete.c, score/src/userextthreadrestart.c, score/src/userextthreadstart.c, score/src/userextthreadswitch.c: New files. * score/inline/rtems/score/userext.inl: Removed.
Diffstat (limited to '')
-rw-r--r--cpukit/score/include/rtems/score/userext.h59
1 files changed, 55 insertions, 4 deletions
diff --git a/cpukit/score/include/rtems/score/userext.h b/cpukit/score/include/rtems/score/userext.h
index dcc8c80031..b8bcc0c2ff 100644
--- a/cpukit/score/include/rtems/score/userext.h
+++ b/cpukit/score/include/rtems/score/userext.h
@@ -202,6 +202,47 @@ SCORE_EXTERN Chain_Control _User_extensions_Switches_list;
/*@{*/
+/** @brief User extensions Handler Initialization
+ *
+ * This routine performs the initialization necessary for this handler.
+ *
+ * @param[in] number_of_extensions is the number of extensions
+ * @param[in] initial_extensions is the initial extension set
+ */
+void _User_extensions_Handler_initialization (
+ uint32_t number_of_extensions,
+ User_extensions_Table *initial_extensions
+);
+
+/** @brief User extensions Add to API extension set
+ *
+ * This routine is used to add an API extension set to the active list.
+ *
+ * @param[in] the_extension is the extension set to add
+ */
+void _User_extensions_Add_API_set (
+ User_extensions_Control *the_extension
+);
+
+/** @brief User extensions Add extension set
+ *
+ * This routine is used to add a user extension set to the active list.
+ *
+ * @param[in] the_extension is the extension set to add
+ * @param[in] extension_table is the user's extension set
+ */
+void _User_extensions_Add_set (
+ User_extensions_Control *the_extension,
+ User_extensions_Table *extension_table
+);
+
+/**
+ * This routine is used to remove a user extension set from the active list.
+ */
+void _User_extensions_Remove_set (
+ User_extensions_Control *the_extension
+);
+
/** @brief User extensions Thread create
*
* This routine is used to invoke the user extension for
@@ -260,6 +301,20 @@ void _User_extensions_Thread_begin (
Thread_Control *executing
);
+
+/** @brief User extensions Thread switch
+ *
+ * This routine is used to invoke the user extension which
+ * is invoked when a context switch occurs.
+ *
+ * @param[in] executing is the thread currently executing.
+ * @param[in] heir is the thread which will execute.
+ */
+void _User_extensions_Thread_switch (
+ Thread_Control *executing,
+ Thread_Control *heir
+);
+
/** @brief User extensions Thread exitted
*
* This routine is used to invoke the user extension which
@@ -286,10 +341,6 @@ void _User_extensions_Fatal (
uint32_t the_error
);
-#ifndef __RTEMS_APPLICATION__
-#include <rtems/score/userext.inl>
-#endif
-
#ifdef __cplusplus
}
#endif