unified: Relocate mailbox doxygen style function headers

Change-Id: I06e9ce40da650df67f05db8779a5f6199e6091d5
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
diff --git a/include/kernel.h b/include/kernel.h
index 1fbec78..689c0fa 100644
--- a/include/kernel.h
+++ b/include/kernel.h
@@ -885,20 +885,129 @@
 	_DEBUG_TRACING_KERNEL_OBJECTS_INIT \
 	}
 
+/**
+ * @brief Define a mailbox
+ *
+ * This declares and initializes a mailbox. The new mailbox can be passed to
+ * the kernel's mailbxo functions.
+ *
+ * @param name Name of the mailbox
+ */
 #define K_MBOX_DEFINE(name) \
 	struct k_mbox name = \
 		K_MBOX_INITIALIZER(name) \
 
+/**
+ * @brief Initialize a mailbox.
+ *
+ * @param mbox Pointer to the mailbox object
+ *
+ * @return N/A
+ */
 extern void k_mbox_init(struct k_mbox *mbox);
 
+/**
+ * @brief Send a mailbox message in a synchronous manner.
+ *
+ * Sends a message to a mailbox and waits for a receiver to process it.
+ * The message data may be in a buffer, in a memory pool block, or non-existent
+ * (i.e. empty message).
+ *
+ * @param mbox Pointer to the mailbox object.
+ * @param tx_msg Pointer to transmit message descriptor.
+ * @param timeout Maximum time (milliseconds) to wait for the message to be
+ *        received (although not necessarily completely processed).
+ *        Use K_NO_WAIT to return immediately, or K_FOREVER to wait as long
+ *        as necessary.
+ *
+ * @return 0 if successful, -ENOMSG if failed immediately, -EAGAIN if timed out
+ */
 extern int k_mbox_put(struct k_mbox *mbox, struct k_mbox_msg *tx_msg,
 		      int32_t timeout);
+
+#if (CONFIG_NUM_MBOX_ASYNC_MSGS > 0)
+/**
+ * @brief Send a mailbox message in an asynchronous manner.
+ *
+ * Sends a message to a mailbox without waiting for a receiver to process it.
+ * The message data may be in a buffer, in a memory pool block, or non-existent
+ * (i.e. an empty message). Optionally, the specified semaphore will be given
+ * by the mailbox when the message has been both received and disposed of
+ * by the receiver.
+ *
+ * @param mbox Pointer to the mailbox object.
+ * @param tx_msg Pointer to transmit message descriptor.
+ * @param sem Semaphore identifier, or NULL if none specified.
+ *
+ * @return N/A
+ */
 extern void k_mbox_async_put(struct k_mbox *mbox, struct k_mbox_msg *tx_msg,
 			     struct k_sem *sem);
+#endif
 
+/**
+ * @brief Receive a mailbox message.
+ *
+ * Receives a message from a mailbox, then optionally retrieves its data
+ * and disposes of the message.
+ *
+ * @param mbox Pointer to the mailbox object.
+ * @param rx_msg Pointer to receive message descriptor.
+ * @param buffer Pointer to buffer to receive data.
+ *        (Use NULL to defer data retrieval and message disposal until later.)
+ * @param timeout Maximum time (milliseconds) to wait for a message.
+ *        Use K_NO_WAIT to return immediately, or K_FOREVER to wait as long as
+ *        necessary.
+ *
+ * @return 0 if successful, -ENOMSG if failed immediately, -EAGAIN if timed out
+ */
 extern int k_mbox_get(struct k_mbox *mbox, struct k_mbox_msg *rx_msg,
 		      void *buffer, int32_t timeout);
+
+/**
+ * @brief Retrieve mailbox message data into a buffer.
+ *
+ * Completes the processing of a received message by retrieving its data
+ * into a buffer, then disposing of the message.
+ *
+ * Alternatively, this routine can be used to dispose of a received message
+ * without retrieving its data.
+ *
+ * @param rx_msg Pointer to receive message descriptor.
+ * @param buffer Pointer to buffer to receive data. (Use NULL to discard data.)
+ *
+ * @return N/A
+ */
 extern void k_mbox_data_get(struct k_mbox_msg *rx_msg, void *buffer);
+
+/**
+ * @brief Retrieve mailbox message data into a memory pool block.
+ *
+ * Completes the processing of a received message by retrieving its data
+ * into a memory pool block, then disposing of the message. The memory pool
+ * block that results from successful retrieval must be returned to the pool
+ * once the data has been processed, even in cases where zero bytes of data
+ * are retrieved.
+ *
+ * Alternatively, this routine can be used to dispose of a received message
+ * without retrieving its data. In this case there is no need to return a
+ * memory pool block to the pool.
+ *
+ * This routine allocates a new memory pool block for the data only if the
+ * data is not already in one. If a new block cannot be allocated, the routine
+ * returns a failure code and the received message is left unchanged. This
+ * permits the caller to reattempt data retrieval at a later time or to dispose
+ * of the received message without retrieving its data.
+ *
+ * @param rx_msg Pointer to receive message descriptor.
+ * @param pool Memory pool identifier. (Use NULL to discard data.)
+ * @param block Pointer to area to hold memory pool block info.
+ * @param timeout Maximum time (milliseconds) to wait for a memory pool block.
+ *        Use K_NO_WAIT to return immediately, or K_FOREVER to wait as long as
+ *        necessary.
+ *
+ * @return 0 if successful, -ENOMEM if failed immediately, -EAGAIN if timed out
+ */
 extern int k_mbox_data_block_get(struct k_mbox_msg *rx_msg,
 				 struct k_mem_pool *pool,
 				 struct k_mem_block *block, int32_t timeout);