summaryrefslogtreecommitdiffstats
path: root/cpukit/score/include/rtems/score/apiext.h
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2004-11-01 13:22:41 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2004-11-01 13:22:41 +0000
commitbaff4dafe1ff85d128a55e7b73780ca28f5c7faf (patch)
treee2acdf92de467f283ecd11fe621a67e79301e1cc /cpukit/score/include/rtems/score/apiext.h
parent2004-11-01 Ralf Corsepius <ralf_corsepius@rtems.org> (diff)
downloadrtems-baff4dafe1ff85d128a55e7b73780ca28f5c7faf.tar.bz2
2004-11-01 Joel Sherrill <joel@oarcorp.com>
* score/cpu/no_cpu/rtems/score/cpu.h, score/include/rtems/debug.h, score/include/rtems/seterr.h, score/include/rtems/system.h, score/include/rtems/score/address.h, score/include/rtems/score/apiext.h, score/include/rtems/score/apimutex.h, score/include/rtems/score/bitfield.h, score/include/rtems/score/chain.h, score/include/rtems/score/context.h, score/include/rtems/score/copyrt.h, score/include/rtems/score/coremsg.h, score/include/rtems/score/coremutex.h, score/include/rtems/score/coresem.h, score/include/rtems/score/heap.h, score/include/rtems/score/interr.h, score/include/rtems/score/isr.h, score/include/rtems/score/mpci.h, score/include/rtems/score/mppkt.h, score/include/rtems/score/objectmp.h, score/include/rtems/score/priority.h, score/include/rtems/score/stack.h, score/include/rtems/score/states.h, score/include/rtems/score/sysstate.h, score/include/rtems/score/thread.h, score/include/rtems/score/threadmp.h, score/include/rtems/score/threadq.h, score/include/rtems/score/tod.h, score/include/rtems/score/tqdata.h, score/include/rtems/score/userext.h, score/include/rtems/score/watchdog.h, score/include/rtems/score/wkspace.h, score/inline/rtems/score/address.inl, score/inline/rtems/score/chain.inl, score/inline/rtems/score/coremsg.inl, score/inline/rtems/score/coremutex.inl, score/inline/rtems/score/coresem.inl, score/inline/rtems/score/heap.inl, score/inline/rtems/score/isr.inl, score/inline/rtems/score/mppkt.inl, score/inline/rtems/score/objectmp.inl, score/inline/rtems/score/priority.inl, score/inline/rtems/score/stack.inl, score/inline/rtems/score/states.inl, score/inline/rtems/score/sysstate.inl, score/inline/rtems/score/thread.inl, score/inline/rtems/score/threadmp.inl, score/inline/rtems/score/tod.inl, score/inline/rtems/score/tqdata.inl, score/inline/rtems/score/userext.inl, score/inline/rtems/score/watchdog.inl, score/inline/rtems/score/wkspace.inl: Add Doxygen comments -- working modifications which are not complete and may have broken code. Committing so work and testing can proceed. * score/Doxyfile, score/mainpage.h: New files.
Diffstat (limited to 'cpukit/score/include/rtems/score/apiext.h')
-rw-r--r--cpukit/score/include/rtems/score/apiext.h112
1 files changed, 67 insertions, 45 deletions
diff --git a/cpukit/score/include/rtems/score/apiext.h b/cpukit/score/include/rtems/score/apiext.h
index d5e496c001..cdf09f8013 100644
--- a/cpukit/score/include/rtems/score/apiext.h
+++ b/cpukit/score/include/rtems/score/apiext.h
@@ -1,8 +1,11 @@
-/* apiext.h
+/**
+ * @file apiext.h
*
* This is the API Extensions Handler.
- *
- * COPYRIGHT (c) 1989-1999.
+ */
+
+/*
+ * COPYRIGHT (c) 1989-2004.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -12,90 +15,109 @@
* $Id$
*/
-
#ifndef __API_EXTENSIONS_h
#define __API_EXTENSIONS_h
+/**
+ * @defgroup ScoreAPIExtension API Extension Handler
+ *
+ * This group contains functionality which provides mechanisms for the
+ * SuperCore to perform API specific actions without there being
+ * "up-references" from the SuperCore to APIs. If these references
+ * were allowed in the implementation, the cohesion would be too high
+ * and adding an API would be more difficult. The SuperCore is supposed
+ * to be largely independent of any API.
+ */
+/**@{*/
+
#include <rtems/score/chain.h>
#include <rtems/score/thread.h>
-/*
- * The control structure which defines the points at which an API
- * can add an extension to the system initialization thread.
+/**
+ * This type defines the prototype of the Predriver Hook.
*/
-
typedef void (*API_extensions_Predriver_hook)(void);
+
+/**
+ * This type defines the prototype of the Postdriver Hook.
+ */
typedef void (*API_extensions_Postdriver_hook)(void);
+
+/**
+ * This type defines the prototype of the Postswitch Hook.
+ */
typedef void (*API_extensions_Postswitch_hook)(
Thread_Control *
);
-
+/**
+ * The control structure which defines the points at which an API
+ * can add an extension to the system initialization thread.
+ */
typedef struct {
+ /** This field allows this structure to be used with the Chain Handler. */
Chain_Node Node;
+ /**
+ * This field is the callout invoked during RTEMS initialization after
+ * RTEMS data structures are initialized before device driver initialization
+ * has occurred.
+ *
+ * @note If this field is NULL, no extension is invoked.
+ */
API_extensions_Predriver_hook predriver_hook;
+ /**
+ * This field is the callout invoked during RTEMS initialization after
+ * RTEMS data structures and device driver initialization has occurred
+ * but before multitasking is initiated.
+ *
+ * @note If this field is NULL, no extension is invoked.
+ */
API_extensions_Postdriver_hook postdriver_hook;
+ /**
+ * This field is the callout invoked during each context switch
+ * in the context of the heir thread.
+ *
+ * @note If this field is NULL, no extension is invoked.
+ */
API_extensions_Postswitch_hook postswitch_hook;
} API_extensions_Control;
-/*
+/**
* This is the list of API extensions to the system initialization.
*/
-
SCORE_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
+/**
+ * This routine adds an extension to the active set of API extensions.
*
- * DESCRIPTION:
- *
- * XXX
+ * @param the_extension (in) is the extension set to add.
*/
-
void _API_extensions_Add(
API_extensions_Control *the_extension
);
-/*
- * _API_extensions_Run_predriver
- *
- * DESCRIPTION:
- *
- * XXX
+/**
+ * This routine executes all of the predriver callouts.
*/
-
void _API_extensions_Run_predriver( void );
-/*
- * _API_extensions_Run_postdriver
- *
- * DESCRIPTION:
- *
- * XXX
+/**
+ * This routine executes all of the postdriver callouts.
*/
-
void _API_extensions_Run_postdriver( void );
-/*
- * _API_extensions_Run_postswitch
- *
- * DESCRIPTION:
- *
- * XXX
+/**
+ * This routine executes all of the post context switch callouts.
+ */
*/
-
void _API_extensions_Run_postswitch( void );
+/**@}*/
+
#endif
/* end of include file */