Index: cpukit/include/rtems/score/priorityimpl.h
===================================================================
--- cpukit/include/rtems/score/priorityimpl.h	(revision 1d6e6b1feb2735c99d06a66fab5996a7cd38f168)
+++ cpukit/include/rtems/score/priorityimpl.h	(revision 35a07c468246a26d459b2be7d9b6b6d83026e1ac)
@@ -1,2 +1,10 @@
+/**
+ * @file
+ *
+ * @ingroup RTEMSScorePriority
+ *
+ * @brief Priority Handler API Implementation.
+ */
+
 /*
  * Copyright (c) 2016 embedded brains GmbH.  All rights reserved.
@@ -23,4 +31,15 @@
 #endif /* __cplusplus */
 
+/**
+ * @addtogroup RTEMSScorePriority
+ *
+ * @{
+ */
+
+/**
+ * @brief Initializes the priority actions empty.
+ *
+ * @param[out] actions The actions to be initialized empty.
+ */
 RTEMS_INLINE_ROUTINE void _Priority_Actions_initialize_empty(
   Priority_Actions *actions
@@ -30,4 +49,12 @@
 }
 
+/**
+ * @brief Initializes the priority actions with the given information.
+ *
+ * @param[out] actions The actions to be initialized.
+ * @param aggregation The aggregation for the @a actions to be initialized.
+ * @param node The action node for the @a actions to be initialized.
+ * @param type The action type for the @a actions to be initialized.
+ */
 RTEMS_INLINE_ROUTINE void _Priority_Actions_initialize_one(
   Priority_Actions     *actions,
@@ -46,4 +73,12 @@
 }
 
+/**
+ * @brief Checks if the priority actions is empty.
+ *
+ * @param actions The priority actions to check if it is empty.
+ *
+ * @retval true The priority actions @a actions is empty.
+ * @retval false The priority actions @a actions is empty.
+ */
 RTEMS_INLINE_ROUTINE bool _Priority_Actions_is_empty(
   const Priority_Actions *actions
@@ -53,4 +88,12 @@
 }
 
+/**
+ * @brief Checks if the priority actions is valid.
+ *
+ * @param aggregation The aggregation of the priority action.
+ *
+ * @retval true The @a aggregation is valid.
+ * @retval false The @a aggregation is not valid.
+ */
 RTEMS_INLINE_ROUTINE bool _Priority_Actions_is_valid(
   const Priority_Aggregation *aggregation
@@ -65,4 +108,11 @@
 }
 
+/**
+ * @brief Moves the priority actions' actions.
+ *
+ * @param[in, out] actions The priority actions to move the actions away from.
+ *
+ * @return The former actions of @a actions that were moved.
+ */
 RTEMS_INLINE_ROUTINE Priority_Aggregation *_Priority_Actions_move(
   Priority_Actions *actions
@@ -77,4 +127,10 @@
 }
 
+/**
+ * @brief Adds actions to the priority actions' actions.
+ *
+ * @param[in, out] actions The priority actions to add actions to.
+ * @param[out] aggregation The actions to add to @a actions.
+ */
 RTEMS_INLINE_ROUTINE void _Priority_Actions_add(
   Priority_Actions     *actions,
@@ -92,4 +148,10 @@
 }
 
+/**
+ * @brief Initializes the priority node to the given priority.
+ *
+ * @param[out] node The priority node to be initialized.
+ * @param priority The priority to initialize @a node to.
+ */
 RTEMS_INLINE_ROUTINE void _Priority_Node_initialize(
   Priority_Node    *node,
@@ -101,4 +163,10 @@
 }
 
+/**
+ * @brief Sets the priority of the priority node to the given priority.
+ *
+ * @param[out] node The priority node to set the priority of.
+ * @param priority The new priority for @a node.
+ */
 RTEMS_INLINE_ROUTINE void _Priority_Node_set_priority(
   Priority_Node    *node,
@@ -109,4 +177,9 @@
 }
 
+/**
+ * @brief Sets the priority node inactive.
+ *
+ * @param[in, out] node The priority node to set inactive.
+ */
 RTEMS_INLINE_ROUTINE void _Priority_Node_set_inactive(
   Priority_Node *node
@@ -116,4 +189,12 @@
 }
 
+/**
+ * @brief Checks if the priority node is active.
+ *
+ * @param node The priority node that shall be verified if it is active.
+ *
+ * @retval true The priority node is active.
+ * @retval false The priority node is inactive.
+ */
 RTEMS_INLINE_ROUTINE bool _Priority_Node_is_active(
   const Priority_Node *node
@@ -123,4 +204,9 @@
 }
 
+/**
+ * @brief Initializes the priority aggregation empty.
+ *
+ * @param[out] aggregation The priority aggregaton to initialize empty.
+ */
 RTEMS_INLINE_ROUTINE void _Priority_Initialize_empty(
   Priority_Aggregation *aggregation
@@ -138,4 +224,10 @@
 }
 
+/**
+ * @brief Initializes the priority aggregation with the given information.
+ *
+ * @param[out] aggregation The priority aggregaton to initialize.
+ * @param node The priority node to initialize @a aggregation with.
+ */
 RTEMS_INLINE_ROUTINE void _Priority_Initialize_one(
   Priority_Aggregation *aggregation,
@@ -154,4 +246,12 @@
 }
 
+/**
+ * @brief Checks if the priority aggregation is empty.
+ *
+ * @param aggregation The priority aggregation that shall be verified if it is empty.
+ *
+ * @retval true The priority aggregation is empty.
+ * @retval false The priority aggregation is not empty.
+ */
 RTEMS_INLINE_ROUTINE bool _Priority_Is_empty(
   const Priority_Aggregation *aggregation
@@ -161,4 +261,11 @@
 }
 
+/**
+ * @brief Gets the priority aggregation's priority.
+ *
+ * @param aggregation The priority aggregation to get the priority from.
+ *
+ * @return The priority of @a aggregation.
+ */
 RTEMS_INLINE_ROUTINE Priority_Control _Priority_Get_priority(
   const Priority_Aggregation *aggregation
@@ -168,4 +275,11 @@
 }
 
+/**
+ * @brief Gets the priority aggregation's scheduler.
+ *
+ * @param aggregation The priority aggregation to get the scheduler from.
+ *
+ * @return The scheduler of @a aggregation.
+ */
 RTEMS_INLINE_ROUTINE const Scheduler_Control *_Priority_Get_scheduler(
   const Priority_Aggregation *aggregation
@@ -179,4 +293,11 @@
 }
 
+/**
+ * @brief Gets the minimum node of the priority aggregation
+ *
+ * @param aggregation The priority aggregation to get the minimum node from.
+ *
+ * @return The minimum node of @a aggregation
+ */
 RTEMS_INLINE_ROUTINE Priority_Node *_Priority_Get_minimum_node(
   const Priority_Aggregation *aggregation
@@ -186,4 +307,10 @@
 }
 
+/**
+ * @brief Sets the action node of the priority aggregation.
+ *
+ * @param[out] aggregation The priority aggregation to set the action node of.
+ * @param node The new priority node for @a aggregation.
+ */
 RTEMS_INLINE_ROUTINE void _Priority_Set_action_node(
   Priority_Aggregation *aggregation,
@@ -194,4 +321,10 @@
 }
 
+/**
+ * @brief Sets the action type of the priority aggregation.
+ *
+ * @param[out] aggregation The priority aggregation to set the action type of.
+ * @param type The new action type for @a aggregation.
+ */
 RTEMS_INLINE_ROUTINE void _Priority_Set_action_type(
   Priority_Aggregation *aggregation,
@@ -202,4 +335,12 @@
 }
 
+/**
+ * @brief Sets the action type and action node of the priority aggregation.
+ *
+ * @param[out] aggregation The priority aggregation to set the action type
+ *      and action node of.
+ * @param node The new action node for @a aggregation.
+ * @param type The new action type for @a aggregation.
+ */
 RTEMS_INLINE_ROUTINE void _Priority_Set_action(
   Priority_Aggregation *aggregation,
@@ -212,4 +353,12 @@
 }
 
+/**
+ * @brief Gets the next action of the priority aggregation.
+ *
+ * @param aggregation The priority aggregation to get the next action of.
+ *
+ * @retval next_action The next action of @a aggregation if RTEMS_SMP is defined.
+ * @retval NULL RTEMS_SMP is not defined.
+ */
 RTEMS_INLINE_ROUTINE Priority_Aggregation *_Priority_Get_next_action(
   const Priority_Aggregation *aggregation
@@ -224,4 +373,13 @@
 }
 
+/**
+ * @brief Compares two priorities.
+ *
+ * @param left The priority control on the left hand side of the comparison.
+ * @param right THe RBTree_Node to get the priority for the comparison from.
+ *
+ * @retval true The priority on the left hand side of the comparison is smaller.
+ * @retval false The priority on the left hand side of the comparison is greater of equal.
+ */
 RTEMS_INLINE_ROUTINE bool _Priority_Less(
   const void        *left,
@@ -238,4 +396,17 @@
 }
 
+/**
+ * @brief Inserts the node with the given priority into the
+ *      priority aggregation's contributors.
+ *
+ * This method does not handle the case that @a node was the minimal node.
+ *
+ * @param[in, out] aggregation The aggregation to insert the node in its contributors.
+ * @param[in] node The node to insert in the contributors.
+ * @param priority The priority control for the inserted node.
+ *
+ * @retval true The inserted node with its priority is the minimum of the RBTree.
+ * @retval false The inserted node with its priority is not the minimum of the RBTree.
+ */
 RTEMS_INLINE_ROUTINE bool _Priority_Plain_insert(
   Priority_Aggregation *aggregation,
@@ -252,4 +423,12 @@
 }
 
+/**
+ * @brief Extracts the priority node from the aggregation.
+ *
+ * This method does not handle the case that @a node was the minimal node.
+ *
+ * @param[in,  out] aggregation The aggregation to extract the node from.
+ * @param node The node to be extracted.
+ */
 RTEMS_INLINE_ROUTINE void _Priority_Plain_extract(
   Priority_Aggregation *aggregation,
@@ -260,4 +439,13 @@
 }
 
+/**
+ * @brief Updates the priority of the node in the aggregation.
+ *
+ * It first extracts the node and inserts it again, with the new @a node priority as key.
+ *   This method does not handle the case that @a node was the minimal node.
+ *
+ * @param[in, out] aggregation The aggregation to change the node in.
+ * @param node The node that has a new priority and will be reinserted in the aggregation.
+ */
 RTEMS_INLINE_ROUTINE void _Priority_Plain_changed(
   Priority_Aggregation *aggregation,
@@ -288,4 +476,14 @@
 );
 
+/**
+ * @brief Does nothing.
+ *
+ * This method does nothing.
+ *
+ * @param aggregation Is ignored by the method.
+ * @param prepend_it Is ignored by the method.
+ * @param actions Is ignored by the method.
+ * @param arg Is ignored by the method.
+ */
 RTEMS_INLINE_ROUTINE void _Priority_Change_nothing(
   Priority_Aggregation *aggregation,
@@ -301,4 +499,13 @@
 }
 
+/**
+ * @brief Does nothing.
+ *
+ * This method does nothing.
+ *
+ * @param aggregation Is ignored by the method.
+ * @param actions Is ignored by the method.
+ * @param arg Is ignored by the method.
+ */
 RTEMS_INLINE_ROUTINE void _Priority_Remove_nothing(
   Priority_Aggregation *aggregation,
@@ -312,4 +519,17 @@
 }
 
+/**
+ * @brief Inserts the node in a nonempty aggregation and handles change if
+ *      the node is the new minimum.
+ *
+ * @param[in, out] aggregation The aggregation to insert the node into.
+ * @param node The node to be inserted.  The node's priority is used as a key.
+ * @param actions Parameter for @a change that is used if the node is the new
+ *      minimum.
+ * @param change The priority change handler that is called in the case that
+ *      the new node is the minimum of the aggregation.
+ * @param arg Arguments for @a change that is used if the node is the new
+ *      minimum.
+ */
 RTEMS_INLINE_ROUTINE void _Priority_Non_empty_insert(
   Priority_Aggregation    *aggregation,
@@ -331,4 +551,16 @@
 }
 
+/**
+ * @brief
+ *
+ * @param[in, out] aggregation The aggregation to insert the node in.
+ * @param node The node to be inserted.  The node's priority is used as key.
+ * @param actions Priority actions for the case that the aggregation was empty before
+ *      the insert or the node is the new minimum.
+ * @param add Is called in the case that @a aggregation was empty before the insert.
+ * @param change Is called in the case that @a aggregation was nonempty before the
+ *      insert and @a node is the new minimum of the aggregation.
+ * @param arg The arguments for @a change.
+ */
 RTEMS_INLINE_ROUTINE void _Priority_Insert(
   Priority_Aggregation    *aggregation,
@@ -348,4 +580,21 @@
 }
 
+/**
+ * @brief Extracts the node from the aggregation.
+ *
+ * This method extracts the node from the aggregation and handles the
+ * cases that @a aggregation is empty after the extraction, or that
+ * @a node was the minimal node in @a aggregation by calling remove (if
+ * empty) or change (if @a node was the minimal node).
+ *
+ * @param[in, out] aggregation The aggregation to extract the @a node from.
+ * @param node The node to extract from @a aggregation.
+ * @param actions The actions for the cases that the aggregation is empty
+ *      after the extraction, or the minimal node was extracted.
+ * @param remove Is called in the case that the aggregation is empty after
+ *      the extraction.
+ * @param change Is called in the case that the minimal node was extracted.
+ * @param arg The arguments for @a remove and @a change.
+ */
 RTEMS_INLINE_ROUTINE void _Priority_Extract(
   Priority_Aggregation    *aggregation,
@@ -373,4 +622,17 @@
 }
 
+/**
+ * @brief Extracts the node from the aggregation.
+ *
+ * This method extracts the node from the aggregation and handles the
+ * case that @a node was the minimal node in @a aggregation by calling
+ * change (if @a node was the minimal node).
+ *
+ * @param[in, out] aggregation The aggregation to extract the @a node from.
+ * @param node The node to extract from @a aggregation.
+ * @param actions The actions for the case that the minimal node was extracted.
+ * @param change Is called in the case that the minimal node was extracted.
+ * @param arg The arguments for @a change.
+ */
 RTEMS_INLINE_ROUTINE void _Priority_Extract_non_empty(
   Priority_Aggregation    *aggregation,
@@ -394,4 +656,19 @@
 }
 
+/**
+ * @brief Updates the priority of the node in the aggregation.
+ *
+ * This method handles the case that @a node was the minimal node in
+ * @a aggregation.
+ *
+ * @param[in, out] aggregation The aggregation to change the node in.
+ * @param node The node that has a new priority and will be reinserted in the aggregation.
+ * @param prepend_it Indicates whether @a change should prepend if the minimal priority is
+ *      incorrectly set after the change.
+ * @param actions The actions for the case that the minimal priority is incorrectly set
+ *      after the change.
+ * @param change Is called if the minimal priority is incorrectly set after the change.
+ * @param arg The arguments for @a change.
+ */
 RTEMS_INLINE_ROUTINE void _Priority_Changed(
   Priority_Aggregation    *aggregation,
@@ -415,4 +692,14 @@
 }
 
+/**
+ * @brief Replaces one node by another.
+ *
+ * The new node has the priority of the old node.
+ *
+ * @param[in, out] aggregation The aggregation to replace @a victim by @a replacement in.
+ * @param victim The node that will be replaced.
+ * @param[out] replacement The node that replaces @a victim.  It obtains its priority
+ *      from @a victim.
+ */
 RTEMS_INLINE_ROUTINE void _Priority_Replace(
   Priority_Aggregation *aggregation,
@@ -429,4 +716,6 @@
 }
 
+/** @} */
+
 #ifdef __cplusplus
 }
