Index: cpukit/ChangeLog
===================================================================
--- cpukit/ChangeLog	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/ChangeLog	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -1,2 +1,36 @@
+2009-08-05	Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+	* libcsupport/include/rtems/libio_.h,
+	libcsupport/src/fs_null_handlers.c: Null handlers are now const.
+	* libi2c/libi2c.c, libi2c/libi2c.h: Documentation. Do not create
+	semaphores on the fly.
+	* cpukit/libblock/src/bdpart.c: Fixed format specifier.
+	* cpukit/libblock/include/rtems/bdbuf.h, rtems/include/rtems.h,
+	rtems/include/rtems/rtems/asr.h, rtems/include/rtems/rtems/attr.h,
+	rtems/include/rtems/rtems/barrier.h,
+	rtems/include/rtems/rtems/barriermp.h,
+	rtems/include/rtems/rtems/cache.h, rtems/include/rtems/rtems/clock.h,
+	rtems/include/rtems/rtems/config.h, rtems/include/rtems/rtems/dpmem.h,
+	rtems/include/rtems/rtems/event.h,
+	rtems/include/rtems/rtems/eventmp.h,
+	rtems/include/rtems/rtems/eventset.h,
+	rtems/include/rtems/rtems/intr.h, rtems/include/rtems/rtems/message.h,
+	rtems/include/rtems/rtems/modes.h, rtems/include/rtems/rtems/mp.h,
+	rtems/include/rtems/rtems/msgmp.h, rtems/include/rtems/rtems/object.h,
+	rtems/include/rtems/rtems/part.h, rtems/include/rtems/rtems/partmp.h,
+	rtems/include/rtems/rtems/ratemon.h,
+	rtems/include/rtems/rtems/region.h,
+	rtems/include/rtems/rtems/regionmp.h,
+	rtems/include/rtems/rtems/rtemsapi.h, rtems/include/rtems/rtems/sem.h,
+	rtems/include/rtems/rtems/semmp.h, rtems/include/rtems/rtems/signal.h,
+	rtems/include/rtems/rtems/signalmp.h,
+	rtems/include/rtems/rtems/status.h,
+	rtems/include/rtems/rtems/support.h,
+	rtems/include/rtems/rtems/taskmp.h, rtems/include/rtems/rtems/tasks.h,
+	rtems/include/rtems/rtems/timer.h, rtems/include/rtems/rtems/types.h,
+	rtems/inline/rtems/rtems/support.inl: Documentation.
+	* include/rtems/irq-extension.h: Documentation. Added API for
+	interrupt servers.
+
 2009-08-05	Joel Sherrill <joel.sherrill@oarcorp.com>
 
Index: cpukit/include/rtems/irq-extension.h
===================================================================
--- cpukit/include/rtems/irq-extension.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/include/rtems/irq-extension.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -43,7 +43,31 @@
 
 /**
+ * @brief Makes the interrupt handler unique.  Prevents other handler from
+ * using the same interrupt vector.
+ */
+#define RTEMS_INTERRUPT_UNIQUE ((rtems_option) 0x00000001)
+
+/**
+ * @brief Allows that this interrupt handler may share a common interrupt
+ * vector with other handler.
+ */
+#define RTEMS_INTERRUPT_SHARED ((rtems_option) 0x00000000)
+
+/**
+ * @brief Returns true if the interrupt handler unique option is set.
+ */
+#define RTEMS_INTERRUPT_IS_UNIQUE( options) \
+  ((options) & RTEMS_INTERRUPT_UNIQUE)
+
+/**
+ * @brief Returns true if the interrupt handler shared option is set.
+ */
+#define RTEMS_INTERRUPT_IS_SHARED( options) \
+  (!RTEMS_INTERRUPT_IS_UNIQUE( options))
+
+/**
  * @brief Interrupt handler routine type.
  */
-typedef void (*rtems_interrupt_handler)( rtems_vector_number, void *);
+typedef void (*rtems_interrupt_handler)(rtems_vector_number, void *);
 
 /**
@@ -51,6 +75,10 @@
  * vector with number @a vector.
  *
- * You can set some @ref rtems_interrupt_extension_options "options" with @a
- * options for the interrupt handler.
+ * You can set one of the mutually exclusive options
+ *
+ * - @ref RTEMS_INTERRUPT_UNIQUE
+ * - @ref RTEMS_INTERRUPT_SHARED
+ *
+ * with the @a options parameter for the interrupt handler.
  *
  * The handler routine shall be called with argument @a arg when dispatched.
@@ -65,20 +93,21 @@
  * the handler life time.
  *
- * @note This function may block.
- *
- * @return
- * - On success RTEMS_SUCCESSFUL shall be returned.
- * - If the vector is already occupied with a unique handler the
- * RTEMS_RESOURCE_IN_USE status code shall be returned.
- * - If you want to install a unique handler and there is already a handler
- * installed RTEMS_RESOURCE_IN_USE shall be returned.
- * - If this function is called within interrupt context RTEMS_CALLED_FROM_ISR
- * shall be returned.
- * - If the vector number is out of range RTEMS_INVALID_NUMBER shall be
- * returned.
- * - If the handler address is NULL a RTEMS_INVALID_ADDRESS shall be returned.
- * - If a handler with this argument is already installed for this vector
- * RTEMS_TOO_MANY shall be returned.
- * - Other error states are BSP specific.
+ * This function may block.
+ *
+ * @retval RTEMS_SUCCESSFUL Shall be returned in case of success.
+ * @retval RTEMS_CALLED_FROM_ISR If this function is called from interrupt
+ * context this shall be returned.
+ * @retval RTEMS_INVALID_ADDRESS If the handler address is NULL this shall be
+ * returned.
+ * @retval RTEMS_INVALID_ID If the vector number is out of range this shall be
+ * returned.
+ * @retval RTEMS_INVALID_NUMBER If an option is not applicable this shall be
+ * returned.
+ * @retval RTEMS_RESOURCE_IN_USE If the vector is already occupied with a
+ * unique handler this shall be returned.  If a unique handler should be
+ * installed and there is already a handler installed this shall be returned.
+ * @retval RTEMS_TOO_MANY If a handler with this argument is already installed
+ * for the vector this shall be returned.
+ * @retval * Other error states are BSP specific.
  */
 rtems_status_code rtems_interrupt_handler_install(
@@ -94,16 +123,16 @@
  * for the interrupt vector with number @a vector.
  *
- * @note This function may block.
- *
- * @return
- * - On success RTEMS_SUCCESSFUL shall be returned.
- * - If this function is called within interrupt context RTEMS_CALLED_FROM_ISR
- * shall be returned.
- * - If the vector number is out of range RTEMS_INVALID_NUMBER shall be
- * returned.
- * - If the handler address is NULL a RTEMS_INVALID_ADDRESS shall be returned.
- * - If the handler with this argument is not installed for this vector
- * RTEMS_UNSATISFIED shall be returned.
- * - Other error states are BSP specific.
+ * This function may block.
+ *
+ * @retval RTEMS_SUCCESSFUL Shall be returned in case of success.
+ * @retval RTEMS_CALLED_FROM_ISR If this function is called from interrupt
+ * context this shall be returned.
+ * @retval RTEMS_INVALID_ADDRESS If the handler address is NULL this shall be
+ * returned.
+ * @retval RTEMS_INVALID_ID If the vector number is out of range this shall be
+ * returned.
+ * @retval RTEMS_UNSATISFIED If the handler with its argument is not installed
+ * for the vector this shall be returned.
+ * @retval * Other error states are BSP specific.
  */
 rtems_status_code rtems_interrupt_handler_remove(
@@ -132,14 +161,13 @@
  * This function is intended for system information and diagnostics.
  *
- * @note This function may block.  Never install or remove an interrupt handler
+ * This function may block.  Never install or remove an interrupt handler
  * within the iteration routine.  This may result in a deadlock.
  *
- * @return
- * - On success RTEMS_SUCCESSFUL shall be returned.
- * - If this function is called within interrupt context RTEMS_CALLED_FROM_ISR
- * shall be returned.
- * - If the vector number is out of range RTEMS_INVALID_NUMBER shall be
- * returned.
- * - Other error states are BSP specific.
+ * @retval RTEMS_SUCCESSFUL Shall be returned in case of success.
+ * @retval RTEMS_CALLED_FROM_ISR If this function is called from interrupt
+ * context this shall be returned.
+ * @retval RTEMS_INVALID_ID If the vector number is out of range this shall be
+ * returned.
+ * @retval * Other error states are BSP specific.
  */
 rtems_status_code rtems_interrupt_handler_iterate(
@@ -149,53 +177,84 @@
 );
 
-/** @} */
-
-/**
- * @defgroup rtems_interrupt_extension_options Interrupt Handler Options
- *
- * @ingroup rtems_interrupt_extension
- *
- * @{
- */
-
-/**
- * @name Options
- *
- * @{
- */
-
-/**
- * @brief Makes the interrupt handler unique.  Prevents other handler from
- * using the same interrupt vector.
- */
-#define RTEMS_INTERRUPT_UNIQUE ((rtems_option) 0x00000001)
-
-/**
- * @brief Allows that this interrupt handler may share a common interrupt
- * vector with other handler.
- */
-#define RTEMS_INTERRUPT_SHARED ((rtems_option) 0x00000000)
-
-/** @} */
-
-/**
- * @name Option Set Checks
- *
- * @{
- */
-
-/**
- * @brief Returns true if the interrupt handler unique option is set.
- */
-#define RTEMS_INTERRUPT_IS_UNIQUE( options) \
-  ((options) & RTEMS_INTERRUPT_UNIQUE)
-
-/**
- * @brief Returns true if the interrupt handler shared option is set.
- */
-#define RTEMS_INTERRUPT_IS_SHARED( options) \
-  (!RTEMS_INTERRUPT_IS_UNIQUE( options))
-
-/** @} */
+/**
+ * @brief Initializes an interrupt server task.
+ *
+ * The task will have the priority @a priority, the stack size @a stack_size,
+ * the modes @a modes and the attributes @a attributes.  The identifier of the
+ * server task will be returned in @a server.  Interrupt handlers can be
+ * installed on the server with rtems_interrupt_server_handler_install() and
+ * removed with rtems_interrupt_server_handler_remove() using this identifier.
+ * In case of an interrupt the request will be forwarded to the server.  The
+ * handlers are executed within the server context.  If one handler blocks on
+ * something this may delay the processing of other handlers.
+ *
+ * The server identifier pointer @a server may be @a NULL to initialize the
+ * default server.
+ *
+ * This function may block.
+ *
+ * @see rtems_task_create().
+ *
+ * @retval RTEMS_SUCCESSFUL Shall be returned in case of success.
+ * @retval RTEMS_INCORRECT_STATE If the default server is already initialized
+ * this shall be returned.
+ * @retval * Other error states are BSP specific.
+ */
+rtems_status_code rtems_interrupt_server_initialize(
+  rtems_task_priority priority,
+  size_t stack_size,
+  rtems_mode modes,
+  rtems_attribute attributes,
+  rtems_id *server
+);
+
+/**
+ * @brief Installs the interrupt handler routine @a handler for the interrupt
+ * vector with number @a vector on the server @a server.
+ *
+ * The handler routine will be executed on the corresponding interrupt server
+ * task.  A server identifier @a server of @c RTEMS_ID_NONE may be used to
+ * install the handler on the default server.
+ *
+ * This function may block.
+ *
+ * @see rtems_interrupt_handler_install().
+ *
+ * @retval RTEMS_SUCCESSFUL Shall be returned in case of success.
+ * @retval RTEMS_INCORRECT_STATE If the interrupt handler server is not
+ * initialized this shall be returned.
+ * @retval * For other errors see rtems_interrupt_handler_install().
+ */
+rtems_status_code rtems_interrupt_server_handler_install(
+  rtems_id server,
+  rtems_vector_number vector,
+  const char *info,
+  rtems_option options,
+  rtems_interrupt_handler handler,
+  void *arg
+);
+
+/**
+ * @brief Removes the interrupt handler routine @a handler with argument @a arg
+ * for the interrupt vector with number @a vector from the server @a server.
+ *
+ * A server identifier @a server of @c RTEMS_ID_NONE may be used to remove the
+ * handler from the default server.
+ *
+ * This function may block.
+ *
+ * @see rtems_interrupt_handler_remove().
+ *
+ * @retval RTEMS_SUCCESSFUL Shall be returned in case of success.
+ * @retval RTEMS_INCORRECT_STATE If the interrupt handler server is not
+ * initialized this shall be returned.
+ * @retval * For other errors see rtems_interrupt_handler_remove().
+ */
+rtems_status_code rtems_interrupt_server_handler_remove(
+  rtems_id server,
+  rtems_vector_number vector,
+  rtems_interrupt_handler handler,
+  void *arg
+);
 
 /** @} */
Index: cpukit/libblock/include/rtems/bdbuf.h
===================================================================
--- cpukit/libblock/include/rtems/bdbuf.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/libblock/include/rtems/bdbuf.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -35,4 +35,6 @@
 /**
  * @defgroup rtems_libblock Block Device Library
+ *
+ * Block device modules.
  */
 
Index: cpukit/libblock/src/bdpart.c
===================================================================
--- cpukit/libblock/src/bdpart.c	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/libblock/src/bdpart.c	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -859,5 +859,5 @@
 
     /* Set partition number for logical disk name */
-    rv = snprintf( logical_disk_marker, RTEMS_BDPART_NUMBER_SIZE, "%lu", i + 1);
+    rv = snprintf( logical_disk_marker, RTEMS_BDPART_NUMBER_SIZE, "%zu", i + 1);
     if (rv >= RTEMS_BDPART_NUMBER_SIZE) {
       esc = RTEMS_INVALID_NAME;
@@ -995,5 +995,5 @@
   for (i = 0; i < count; ++i) {
     /* Create logical disk name */
-    int rv = snprintf( logical_disk_marker, RTEMS_BDPART_NUMBER_SIZE, "%lu", i + 1);
+    int rv = snprintf( logical_disk_marker, RTEMS_BDPART_NUMBER_SIZE, "%zu", i + 1);
     if (rv >= RTEMS_BDPART_NUMBER_SIZE) {
       esc = RTEMS_INVALID_NAME;
@@ -1071,5 +1071,5 @@
   for (i = 0; i < count; ++i) {
     /* Create mount point */
-    int rv = snprintf( mount_marker, RTEMS_BDPART_NUMBER_SIZE, "%lu", i + 1);
+    int rv = snprintf( mount_marker, RTEMS_BDPART_NUMBER_SIZE, "%zu", i + 1);
     if (rv >= RTEMS_BDPART_NUMBER_SIZE) {
       esc = RTEMS_INVALID_NAME;
Index: cpukit/libcsupport/include/rtems/libio_.h
===================================================================
--- cpukit/libcsupport/include/rtems/libio_.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/libcsupport/include/rtems/libio_.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -38,5 +38,5 @@
 
 extern rtems_id                          rtems_libio_semaphore;
-extern rtems_filesystem_file_handlers_r  rtems_filesystem_null_handlers;
+extern const rtems_filesystem_file_handlers_r rtems_filesystem_null_handlers;
 
 /*
Index: cpukit/libcsupport/src/fs_null_handlers.c
===================================================================
--- cpukit/libcsupport/src/fs_null_handlers.c	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/libcsupport/src/fs_null_handlers.c	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -24,5 +24,5 @@
  */
 
-rtems_filesystem_file_handlers_r rtems_filesystem_null_handlers = {
+const rtems_filesystem_file_handlers_r rtems_filesystem_null_handlers = {
   NULL,       /* open */
   NULL,       /* close */
Index: cpukit/libi2c/libi2c.c
===================================================================
--- cpukit/libi2c/libi2c.c	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/libi2c/libi2c.c	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -111,6 +111,5 @@
   rtems_libi2c_bus_t *bush;
   volatile rtems_id mutex;      /* lock this across start -> stop */
-  volatile short waiting;
-  volatile char started;
+  volatile bool started;
   char *name;
 } busses[MAX_NO_BUSSES] = { { 0, 0, 0, 0, 0 } };
@@ -121,5 +120,5 @@
 } drvs[MAX_NO_DRIVERS] = { { 0 } };
 
-static rtems_id libmutex = 0;
+static rtems_id libmutex = RTEMS_ID_NONE;
 
 #define LOCK(m)		assert(!rtems_semaphore_obtain((m), RTEMS_WAIT, RTEMS_NO_TIMEOUT))
@@ -176,22 +175,27 @@
 lock_bus (int busno)
 {
-rtems_status_code sc;
-struct i2cbus *bus = &busses[busno];
-
-  LIBLOCK ();
-  if (!bus->waiting) {
-  	rtems_id m;
-    /* nobody is holding the bus mutex - it's not there. Create it on the fly */
-    sc = mutexCreate (rtems_build_name ('i', '2', 'c', '0' + busno), &m);
-    if ( RTEMS_SUCCESSFUL != sc ) {
-      LIBUNLOCK ();
-      rtems_panic (DRVNM "Unable to create bus lock");
-    } else {
-	  bus->mutex = m;
-	}
-  }
-  /* count number of people waiting on this bus; only the last one deletes the mutex */
-  bus->waiting++;
-  LIBUNLOCK ();
+  struct i2cbus *bus = &busses[busno];
+
+  if (bus->mutex == RTEMS_ID_NONE) {
+    /*
+     * Nobody is holding the bus mutex - it's not there.  Create it on the fly.
+     */
+    LIBLOCK ();
+    if (bus->mutex == RTEMS_ID_NONE) {
+      rtems_id m = RTEMS_ID_NONE;
+      rtems_status_code sc = mutexCreate (
+        rtems_build_name ('i', '2', 'c', '0' + busno),
+        &m
+      );
+      if (sc != RTEMS_SUCCESSFUL) {
+        LIBUNLOCK ();
+        rtems_panic (DRVNM "Unable to create bus lock");
+        return;
+      }
+      bus->mutex = m;
+    }
+    LIBUNLOCK ();
+  }
+
   /* Now lock this bus */
   LOCK (bus->mutex);
@@ -202,10 +206,5 @@
 {
   struct i2cbus *bus = &busses[busno];
-  LIBLOCK ();
   UNLOCK (bus->mutex);
-  if (!--bus->waiting) {
-    rtems_semaphore_delete (bus->mutex);
-  }
-  LIBUNLOCK ();
 }
 
@@ -227,5 +226,5 @@
 	rtems_libi2c_major = major;
   } else {
-  	libmutex = 0;
+  	libmutex = RTEMS_ID_NONE;
   }
   return rval;
@@ -371,8 +370,9 @@
              DRVNM "Claiming driver slot failed (rtems status code %i)\n",
              sc);
-	if ( libmutex )
-    	rtems_semaphore_delete (libmutex);
-    libmutex = 0;
-	is_initialized = false;
+    if (libmutex != RTEMS_ID_NONE) {
+      rtems_semaphore_delete (libmutex);
+    }
+    libmutex = RTEMS_ID_NONE;
+    is_initialized = false;
     return -1;
   }
@@ -418,5 +418,5 @@
 
 
-  if (!libmutex) {
+  if (libmutex == RTEMS_ID_NONE) {
     safe_printf ( DRVNM "Library not initialized\n");
     return -RTEMS_NOT_DEFINED;
@@ -433,7 +433,6 @@
       /* found a free slot */
       busses[i].bush = bus;
-      busses[i].mutex = 0;
-      busses[i].waiting = 0;
-      busses[i].started = 0;
+      busses[i].mutex = RTEMS_ID_NONE;
+      busses[i].started = false;
 
       if (!name)
@@ -498,5 +497,5 @@
   } else {
     /* successful 1st start; keep bus locked until stop is sent */
-    busses[busno].started = 1;
+    busses[busno].started = true;
   }
   return rval;
@@ -514,5 +513,5 @@
   rval = bush->ops->send_stop (bush);
 
-  busses[busno].started = 0;
+  busses[busno].started = false;
 
   unlock_bus (busno);
@@ -694,5 +693,5 @@
   rtems_device_minor_number minor;
 
-  if (!libmutex) {
+  if (libmutex == RTEMS_ID_NONE) {
     safe_printf ( DRVNM "Library not initialized\n");
     return -RTEMS_NOT_DEFINED;
Index: cpukit/libi2c/libi2c.h
===================================================================
--- cpukit/libi2c/libi2c.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/libi2c/libi2c.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -1,2 +1,10 @@
+/**
+ * @file
+ *
+ * @ingroup libi2c
+ *
+ * @brief I2C library.
+ */
+
 #ifndef _RTEMS_LIBI2C_H
 #define _RTEMS_LIBI2C_H
@@ -55,4 +63,12 @@
 extern "C" {
 #endif
+
+/**
+ * @defgroup libi2c I2C Library
+ *
+ * @brief I2C library.
+ *
+ * @{
+ */
 
 /* Simple I2C driver API */
@@ -486,4 +502,6 @@
 } rtems_libi2c_read_write_async_t;
 
+/** @} */
+
 #ifdef __cplusplus
 }
Index: cpukit/rtems/include/rtems.h
===================================================================
--- cpukit/rtems/include/rtems.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/include/rtems.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -1,7 +1,8 @@
 /**
- * @file  rtems.h
+ * @file
  *
- *  This include file provides the public interface to the RTEMS Classic
- *  API.
+ * @ingroup ClassicRTEMS
+ *
+ * @brief Provides the public interface to the RTEMS Classic API.
  */
 
@@ -20,10 +21,10 @@
 
 /**
- *  @defgroup ClassicRTEMS Classic API RTEMS Header
+ * @defgroup ClassicRTEMS RTEMS Classic API
  *
- *  This encapsulates functionality which is specific to the Classic API
- *  and generally shared across the various object classes.
+ * RTEMS Classic API definitions and modules.
+ *
+ * @{
  */
-/**@{*/
 
 #ifdef __cplusplus
@@ -34,11 +35,11 @@
     (!defined(__RTEMS_INSIDE__))
 /**
- *  @brief Compiling RTEMS Application Macro
+ * @brief Compiling RTEMS application macro.
  *
- *  Unless told otherwise, the RTEMS include files will hide some stuff
- *  from normal application code.  Defining this crosses a boundary which
- *  is undesirable since it means your application is using RTEMS features
- *  which are not included in the formally defined and supported API.
- *  Define this at your own risk.
+ * Unless told otherwise, the RTEMS include files will hide some stuff from
+ * normal application code.  Defining this crosses a boundary which is
+ * undesirable since it means your application is using RTEMS features which
+ * are not included in the formally defined and supported API.  Define this at
+ * your own risk.
  */
 #define __RTEMS_APPLICATION__
@@ -79,15 +80,11 @@
 
 /**
- *  @brief Obtain the RTEMS Version String
- *
- *  This method may be used to obtain the RTEMS version string.
- *
- *  @return This method returns a pointer to the version string.
+ * @brief Returns the pointer to the RTEMS version string.
  */
 const char *rtems_get_version_string(void);
 
 /**
- *  This constant indicates whether this processor variant has
- *  hardware floating point support.
+ * @brief Indicates whether this processor variant has hardware floating point
+ * support.
  */
 #define RTEMS_HAS_HARDWARE_FP CPU_HARDWARE_FP
@@ -98,26 +95,24 @@
 
 /**
- * This constant indicates that the search is across all nodes.
+ * @brief Indicates that a search is across all nodes.
  */
 #define RTEMS_SEARCH_ALL_NODES   OBJECTS_SEARCH_ALL_NODES
 
 /**
- *  This constant indicates that the search is across all nodes
- *  except the one the call is made from.
+ * @brief Indicates that a search is across all nodes except the one the call
+ * is made from.
  */
 #define RTEMS_SEARCH_OTHER_NODES OBJECTS_SEARCH_OTHER_NODES
 
 /**
- *  This constant indicates that the search is to be restricted
- *  to the local node.
+ * @brief Indicates that the search is to be restricted to the local node.
  */
 #define RTEMS_SEARCH_LOCAL_NODE  OBJECTS_SEARCH_LOCAL_NODE
 
 /**
- *  This constant indicates that the caller wants to obtain the
- *  name of the currently executing thread.
+ * @brief Indicates that the caller wants to obtain the name of the currently
+ * executing thread.
  *
- *  @note This constant is only meaningful when obtaining the name
- *        of a task.
+ * This constant is only meaningful when obtaining the name of a task.
  */
 #define RTEMS_WHO_AM_I           OBJECTS_WHO_AM_I
@@ -128,22 +123,21 @@
 
 /**
- *  This constant is the lowest valid valid for the index portion
- *  of an object Id.
+ * @brief Lowest valid index value for the index portion of an object
+ * identifier.
  */
 #define RTEMS_OBJECT_ID_INITIAL_INDEX        OBJECTS_ID_INITIAL_INDEX
 
 /**
- *  This constant is the maximum valid valid for the index portion
- *  of an object Id.
+ * @brief Maximum valid index value for the index portion of an object
+ * identifier.
  */
 #define RTEMS_OBJECT_ID_FINAL_INDEX          OBJECTS_ID_FINAL_INDEX
 
 /**
- *  This method returns the Id of the object with the lowest
- *  valid index valud.
+ * @brief Returns the identifier of the object with the lowest valid index
+ * value.
  *
- *  @param[in] _api is the API of the object
- *  @param[in] _class is the Object Class of the object
- *  @param[in] _node is the node where the object resides
+ * The object is specified by the API @a _api, the object class @a _class and
+ * the node @a _node where the object resides.
  */
 #define RTEMS_OBJECT_ID_INITIAL(_api, _class, _node) \
@@ -151,36 +145,37 @@
 
 /**
- *  This constant is the maximum valid object Id.
+ * @brief Maximum valid object identifier.
  */
 #define RTEMS_OBJECT_ID_FINAL                OBJECTS_ID_FINAL
 
 /**
- *  The following constant defines the minimum stack size which every
- *  thread must exceed.
+ * @brief Minimum stack size which every thread must exceed.
  */
 #define RTEMS_MINIMUM_STACK_SIZE  STACK_MINIMUM_SIZE
 
 /**
- *  The following constant is used to specify that the task should
- *  be created with the configured minimum stack size.
+ * @brief Specifies that the task should be created with the configured minimum
+ * stack size.
  */
 #define RTEMS_CONFIGURED_MINIMUM_STACK_SIZE  0
 
 /**
- *  Constant for indefinite wait.  (actually an illegal interval)
+ * @brief Constant for indefinite wait.
+ *
+ * This is actually an illegal interval value.
  */
 #define RTEMS_NO_TIMEOUT  WATCHDOG_NO_TIMEOUT
 
 /**
- *  An MPCI must support packets of at least this size.
+ * @brief An MPCI must support packets of at least this size.
  */
 #define RTEMS_MINIMUM_PACKET_SIZE  MP_PACKET_MINIMUM_PACKET_SIZE
 
 /**
- *  The following constant defines the number of uint32_t's
- *  in a packet which must be converted to native format in a
- *  heterogeneous system.  In packets longer than
- *  MP_PACKET_MINIMUN_HETERO_CONVERSION uint32_t's, some of the "extra" data
- *  may a user message buffer which is not automatically endian swapped.
+ * @brief Defines the count of @c uint32_t numbers in a packet which must be
+ * converted to native format in a heterogeneous system.
+ *
+ * In packets longer than this value, some of the extra data may be a user
+ * message buffer which is not automatically endian swapped.
  */
 #define RTEMS_MINIMUN_HETERO_CONVERSION  MP_PACKET_MINIMUN_HETERO_CONVERSION
Index: cpukit/rtems/include/rtems/rtems/asr.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/asr.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/include/rtems/rtems/asr.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -27,5 +27,7 @@
 
 /**
- *  @defgroup ClassicASR Classic API ASR Support
+ *  @defgroup ClassicASR ASR Support
+ *
+ *  @ingroup ClassicRTEMS
  *
  *  This encapsulates functionality which XXX
Index: cpukit/rtems/include/rtems/rtems/attr.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/attr.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/include/rtems/rtems/attr.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -24,5 +24,7 @@
 
 /**
- *  @defgroup ClassicAttributes Classic API Attributes
+ *  @defgroup ClassicAttributes Attributes
+ *
+ *  @ingroup ClassicRTEMS
  *
  *  This encapsulates functionality which defines and manages the
Index: cpukit/rtems/include/rtems/rtems/barrier.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/barrier.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/include/rtems/rtems/barrier.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -28,5 +28,7 @@
 
 /**
- *  @defgroup ClassicBarrier Classic API Barrier
+ *  @defgroup ClassicBarrier Barriers
+ *
+ *  @ingroup ClassicRTEMS
  *
  *  This encapsulates functionality which XXX
Index: cpukit/rtems/include/rtems/rtems/barriermp.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/barriermp.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/include/rtems/rtems/barriermp.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -20,5 +20,7 @@
 
 /**
- *  @defgroup ClassicBarrierMP Classic API Barrier MP Support
+ *  @defgroup ClassicBarrierMP Barrier MP Support
+ *
+ *  @ingroup ClassicMP
  *
  *  This encapsulates functionality which XXX
Index: cpukit/rtems/include/rtems/rtems/cache.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/cache.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/include/rtems/rtems/cache.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -39,5 +39,7 @@
 
 /**
- *  @defgroup ClassicCache Classic API Cache
+ *  @defgroup ClassicCache Cache
+ *
+ *  @ingroup ClassicRTEMS
  *
  *  This encapsulates functionality which XXX
Index: cpukit/rtems/include/rtems/rtems/clock.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/clock.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/include/rtems/rtems/clock.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -36,5 +36,7 @@
 
 /**
- *  @defgroup ClassicClock Classic API Clock
+ *  @defgroup ClassicClock Clocks
+ *
+ *  @ingroup ClassicRTEMS
  *
  *  This encapsulates functionality which XXX
Index: cpukit/rtems/include/rtems/rtems/config.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/config.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/include/rtems/rtems/config.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -27,5 +27,7 @@
 
 /**
- *  @defgroup ClassicConfig Classic API Configuration
+ *  @defgroup ClassicConfig Configuration
+ *
+ *  @ingroup ClassicRTEMS
  *
  *  This encapsulates functionality which XXX
Index: cpukit/rtems/include/rtems/rtems/dpmem.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/dpmem.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/include/rtems/rtems/dpmem.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -49,5 +49,7 @@
 
 /**
- *  @defgroup ClassicDPMEM Classic API Dual Ported Memory
+ *  @defgroup ClassicDPMEM Dual Ported Memory
+ *
+ *  @ingroup ClassicRTEMS
  *
  *  This encapsulates functionality related to the
Index: cpukit/rtems/include/rtems/rtems/event.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/event.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/include/rtems/rtems/event.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -50,5 +50,7 @@
 
 /**
- *  @defgroup ClassicEvent Classic API Event
+ *  @defgroup ClassicEvent Events
+ *
+ *  @ingroup ClassicRTEMS
  *
  *  This encapsulates functionality which XXX
Index: cpukit/rtems/include/rtems/rtems/eventmp.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/eventmp.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/include/rtems/rtems/eventmp.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -30,5 +30,7 @@
 
 /**
- *  @defgroup ClassicEventMP Classic API Event MP Support
+ *  @defgroup ClassicEventMP Event MP Support
+ *
+ *  @ingroup ClassicMP
  *
  *  This encapsulates functionality which XXX
Index: cpukit/rtems/include/rtems/rtems/eventset.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/eventset.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/include/rtems/rtems/eventset.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -21,5 +21,7 @@
 
 /**
- *  @defgroup ClassicEventSet Classic API Event Set
+ *  @defgroup ClassicEventSet Event Sets
+ *
+ *  @ingroup ClassicRTEMS
  *
  *  This encapsulates functionality related to Classic API
Index: cpukit/rtems/include/rtems/rtems/intr.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/intr.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/include/rtems/rtems/intr.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -28,5 +28,7 @@
 
 /**
- *  @defgroup ClassicINTR Classic API Interrupt
+ *  @defgroup ClassicINTR Interrupts
+ *
+ *  @ingroup ClassicRTEMS
  *
  *  This encapsulates functionality which XXX
Index: cpukit/rtems/include/rtems/rtems/message.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/message.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/include/rtems/rtems/message.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -54,5 +54,7 @@
 
 /**
- *  @defgroup ClassicMessageQueue Classic API Message Queue
+ *  @defgroup ClassicMessageQueue Message Queues
+ *
+ *  @ingroup ClassicRTEMS
  *
  *  This encapsulates functionality which XXX
Index: cpukit/rtems/include/rtems/rtems/modes.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/modes.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/include/rtems/rtems/modes.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -20,5 +20,7 @@
 
 /**
- *  @defgroup ClassicModes Classic API Modes
+ *  @defgroup ClassicModes Modes
+ *
+ *  @ingroup ClassicRTEMS
  *
  *  This encapsulates functionality which XXX
Index: cpukit/rtems/include/rtems/rtems/mp.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/mp.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/include/rtems/rtems/mp.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -20,5 +20,7 @@
 
 /**
- *  @defgroup ClassicMP Classic API Multiprocessing
+ *  @defgroup ClassicMP Multiprocessing
+ *
+ *  @ingroup ClassicRTEMS
  *
  *  This encapsulates functionality which XXX
Index: cpukit/rtems/include/rtems/rtems/msgmp.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/msgmp.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/include/rtems/rtems/msgmp.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -31,5 +31,7 @@
 
 /**
- *  @defgroup ClassicMsgMP Classic API Message Queue MP Support
+ *  @defgroup ClassicMsgMP Message Queue MP Support
+ *
+ *  @ingroup ClassicMP
  *
  *  This encapsulates functionality which XXX
Index: cpukit/rtems/include/rtems/rtems/object.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/object.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/include/rtems/rtems/object.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -26,5 +26,7 @@
 
 /**
- *  @defgroup ClassicClassInfo Classic API Class Information
+ *  @defgroup ClassicClassInfo Object Class Information
+ *
+ *  @ingroup ClassicRTEMS
  *
  *  This encapsulates functionality which XXX
Index: cpukit/rtems/include/rtems/rtems/part.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/part.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/include/rtems/rtems/part.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -51,5 +51,7 @@
 
 /**
- *  @defgroup ClassicPart Classic API Partition
+ *  @defgroup ClassicPart Partitions
+ *
+ *  @ingroup ClassicRTEMS
  *
  *  This encapsulates functionality related to the
Index: cpukit/rtems/include/rtems/rtems/partmp.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/partmp.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/include/rtems/rtems/partmp.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -31,5 +31,7 @@
 
 /**
- *  @defgroup ClassicPartMP Classic API Partition MP Support
+ *  @defgroup ClassicPartMP Partition MP Support
+ *
+ *  @ingroup ClassicMP
  *
  *  This encapsulates functionality which XXX
Index: cpukit/rtems/include/rtems/rtems/ratemon.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/ratemon.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/include/rtems/rtems/ratemon.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -41,5 +41,7 @@
 
 /**
- *  @defgroup ClassicRateMon Classic API Rate Monotonic
+ *  @defgroup ClassicRateMon Rate Monotonic Scheduler
+ *
+ *  @ingroup ClassicRTEMS
  *
  *  This encapsulates functionality related to the
Index: cpukit/rtems/include/rtems/rtems/region.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/region.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/include/rtems/rtems/region.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -39,5 +39,7 @@
 
 /**
- *  @defgroup ClassicRegion Classic API Region
+ *  @defgroup ClassicRegion Regions
+ *
+ *  @ingroup ClassicRTEMS
  *
  *  This encapsulates functionality which XXX
Index: cpukit/rtems/include/rtems/rtems/regionmp.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/regionmp.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/include/rtems/rtems/regionmp.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -31,5 +31,7 @@
 
 /**
- *  @defgroup ClassicRegionMP Classic API Region MP Support
+ *  @defgroup ClassicRegionMP Region MP Support
+ *
+ *  @ingroup ClassicMP
  *
  *  This encapsulates functionality which XXX
Index: cpukit/rtems/include/rtems/rtems/rtemsapi.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/rtemsapi.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/include/rtems/rtems/rtemsapi.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -21,9 +21,4 @@
 
 /**
- *  @addtogroup ClassicRTEMS
- *  @{
- */
-
-/**
  *  _RTEMS_API_Initialize
  *
Index: cpukit/rtems/include/rtems/rtems/sem.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/sem.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/include/rtems/rtems/sem.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -53,5 +53,7 @@
 
 /**
- *  @defgroup ClassicSem Classic API Semaphore
+ *  @defgroup ClassicSem Semaphores
+ *
+ *  @ingroup ClassicRTEMS
  *
  *  This encapsulates functionality related to the Classic API
Index: cpukit/rtems/include/rtems/rtems/semmp.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/semmp.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/include/rtems/rtems/semmp.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -31,5 +31,7 @@
 
 /**
- *  @defgroup ClassicSEM Classic API Semaphore MP Support
+ *  @defgroup ClassicSEM Semaphore MP Support
+ *
+ *  @ingroup ClassicMP
  *
  *  This encapsulates functionality which XXX
Index: cpukit/rtems/include/rtems/rtems/signal.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/signal.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/include/rtems/rtems/signal.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -26,5 +26,7 @@
 
 /**
- *  @defgroup ClassicSignal Classic API Signal
+ *  @defgroup ClassicSignal Signals
+ *
+ *  @ingroup ClassicRTEMS
  *
  *  This encapsulates functionality which XXX
Index: cpukit/rtems/include/rtems/rtems/signalmp.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/signalmp.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/include/rtems/rtems/signalmp.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -30,5 +30,7 @@
 
 /**
- *  @defgroup ClassicSignalMP Classic API Signal MP Support
+ *  @defgroup ClassicSignalMP Signal MP Support
+ *
+ *  @ingroup ClassicMP
  *
  *  This encapsulates functionality which XXX
Index: cpukit/rtems/include/rtems/rtems/status.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/status.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/include/rtems/rtems/status.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -20,5 +20,7 @@
 
 /**
- *  @defgroup ClassicStatus Classic API Status
+ *  @defgroup ClassicStatus Status Codes
+ *
+ *  @ingroup ClassicRTEMS
  *
  *  This encapsulates functionality which XXX
Index: cpukit/rtems/include/rtems/rtems/support.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/support.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/include/rtems/rtems/support.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -1,7 +1,10 @@
 /**
- * @file rtems/rtems/support.h
+ * @file
  *
- *  This include file contains information about support functions for
- *  the RTEMS API.
+ * @ingroup ClassicRTEMS
+ *
+ * @ingroup ClassicRTEMSWorkspace
+ *
+ * @brief Classic API support.
  */
 
@@ -26,12 +29,11 @@
 
 /**
- *  @addtogroup ClassicRTEMS
- *  @{
+ * @addtogroup ClassicRTEMS
+ *
+ * @{
  */
 
 /**
- *  @brief milliseconds to microseconds
- *
- *  This is the public milliseconds to microseconds conversion.
+ * @brief Returns the number of micro seconds for the milli seconds value @a _ms.
  */
 #define RTEMS_MILLISECONDS_TO_MICROSECONDS(_ms) \
@@ -39,7 +41,5 @@
 
 /**
- *  @brief milliseconds to ticks
- *
- *  This is the public milliseconds to ticks conversion.
+ * @brief Returns the number of ticks for the milli seconds value @a _ms.
  */
 #define RTEMS_MILLISECONDS_TO_TICKS(_ms) \
@@ -48,20 +48,28 @@
 
 /**
- *  @brief microseconds to ticks
- *
- *  This is the public microseconds to tick conversion.
+ * @brief Returns the number of ticks for the micro seconds value @a _us.
  */
-#define RTEMS_MICROSECONDS_TO_TICKS(_ms) \
-       ((_ms) / rtems_configuration_get_microseconds_per_tick())
+#define RTEMS_MICROSECONDS_TO_TICKS(_us) \
+       ((_us) / rtems_configuration_get_microseconds_per_tick())
+
+/** @} */
 
 /**
- *  @brief get workspace information
+ * @defgroup ClassicRTEMSWorkspace Workspace
  *
- *  This returns information about the heap that is used as
- *  the RTEMS Executive Workspace.
+ * @ingroup ClassicRTEMS
  *
- *  @param[in] the_info
+ * Workspace definitions.
  *
- *  @return true if successful
+ * @{
+ */
+
+/**
+ * @brief Gets workspace information.
+ *
+ * Returns information about the heap that is used as the RTEMS Executive
+ * Workspace in @a the_info.
+ *
+ * Returns @c true if successful, and @a false otherwise.
  */
 bool rtems_workspace_get_information(
@@ -70,12 +78,10 @@
 
 /**
- *  @brief allocate memory from workspace
+ * @brief Allocates memory from the workspace.
  *
- *  This allocates memory from the the RTEMS Executive Workspace.
+ * A number of @a bytes bytes will be allocated from the RTEMS Executive
+ * Workspace and returned in @a pointer.
  *
- *  @param[in] bytes is the number of bytes to allocate 
- *  @param[in] pointer is the returned pointer to allocated memory
- *
- *  @return true if successful
+ * Returns @c true if successful, and @a false otherwise.
  */
 bool rtems_workspace_allocate(
@@ -85,16 +91,16 @@
 
 /**
- * @brief free memory back to the workspace
+ * @brief Frees memory allocated from the workspace.
  *
- *  This frees memory that was allocated from   
- *  the RTEMS Executive Workspace.
+ * This frees the memory indicated by @a pointer that was allocated from the
+ * RTEMS Executive Workspace.
  *
- *  @param[in] pointer is the allocated workspace
- *
- *  @return true if successful
+ * Returns @c true if successful, and @a false otherwise.
  */
 bool rtems_workspace_free(
   void *pointer
 );
+
+/** @} */
 
 #ifndef __RTEMS_APPLICATION__
Index: cpukit/rtems/include/rtems/rtems/taskmp.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/taskmp.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/include/rtems/rtems/taskmp.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -27,5 +27,7 @@
 
 /**
- *  @defgroup ClassicTaskMP Classic API Task MP Support
+ *  @defgroup ClassicTaskMP Task MP Support
+ *
+ *  @ingroup ClassicMP
  *
  *  This encapsulates functionality which XXX
Index: cpukit/rtems/include/rtems/rtems/tasks.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/tasks.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/include/rtems/rtems/tasks.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -56,5 +56,7 @@
 
 /**
- *  @defgroup ClassicTasks Classic API Tasks
+ *  @defgroup ClassicTasks Tasks
+ *
+ *  @ingroup ClassicRTEMS
  *
  *  This encapsulates functionality which X XX
Index: cpukit/rtems/include/rtems/rtems/timer.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/timer.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/include/rtems/rtems/timer.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -57,5 +57,7 @@
 
 /**
- *  @defgroup ClassicTimer Classic API Timer
+ *  @defgroup ClassicTimer Timers
+ *
+ *  @ingroup ClassicRTEMS
  *
  *  This encapsulates functionality related to the Classic API Timer
Index: cpukit/rtems/include/rtems/rtems/types.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/types.h	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/include/rtems/rtems/types.h	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -19,5 +19,7 @@
 
 /**
- *  @defgroup ClassicTypes Classic API Types
+ *  @defgroup ClassicTypes Types
+ *
+ *  @ingroup ClassicRTEMS
  *
  *  This encapsulates functionality which XXX
Index: cpukit/rtems/inline/rtems/rtems/support.inl
===================================================================
--- cpukit/rtems/inline/rtems/rtems/support.inl	(revision b053cab093896ec765294a3ed109670f94063036)
+++ cpukit/rtems/inline/rtems/rtems/support.inl	(revision c85ab23ab7169b2c7a30f3d747b5f6339bc4a6e9)
@@ -1,7 +1,8 @@
 /**
- * @file rtems/rtems/support.inl
+ * @file
  *
- *  This include file contains the static inline implementation of all
- *  of the inlined routines specific to the RTEMS API.
+ * @ingroup ClassicRTEMS
+ *
+ * @brief Classic API support.
  */
 
@@ -24,12 +25,11 @@
 
 /**
- *  @addtogroup ClassicSupport
- *  @{
+ * @addtogroup ClassicRTEMS
+ *
+ * @{
  */
 
 /**
- *  rtems_is_name_valid
- *
- *  This function returns TRUE if the name is valid, and FALSE otherwise.
+ * @brief Returns @c true if the name is valid, and @c false otherwise.
  */
 RTEMS_INLINE_ROUTINE bool rtems_is_name_valid (
@@ -41,8 +41,6 @@
 
 /**
- *  rtems_name_to_characters
- *
- *  This function breaks the object name into the four component
- *  characters C1, C2, C3, and C4.
+ * @brief Breaks the object name into the four component characters @a c1,
+ * @a c2, @a c3, and @a c4.
  */
 RTEMS_INLINE_ROUTINE void rtems_name_to_characters(
@@ -60,5 +58,5 @@
 }
 
-/**@}*/
+/** @} */
 
 #endif
