summaryrefslogtreecommitdiffstats
path: root/cpukit/include/rtems/score/coremsgimpl.h
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2020-09-23 10:09:37 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2020-09-28 06:19:52 +0200
commit5bc7c3724fbb06d934401400ac5922bcae2c6e95 (patch)
tree7857429e00f8e495ed5ae3317c62e1a15458f374 /cpukit/include/rtems/score/coremsgimpl.h
parentscore: Gather message queue control initialization (diff)
downloadrtems-5bc7c3724fbb06d934401400ac5922bcae2c6e95.tar.bz2
score: Improve _CORE_message_queue_Initialize()
Return a status code and differentiate between error conditions. Update #4007.
Diffstat (limited to 'cpukit/include/rtems/score/coremsgimpl.h')
-rw-r--r--cpukit/include/rtems/score/coremsgimpl.h29
1 files changed, 15 insertions, 14 deletions
diff --git a/cpukit/include/rtems/score/coremsgimpl.h b/cpukit/include/rtems/score/coremsgimpl.h
index e598dce96a..9403fb95fc 100644
--- a/cpukit/include/rtems/score/coremsgimpl.h
+++ b/cpukit/include/rtems/score/coremsgimpl.h
@@ -71,24 +71,25 @@ typedef int CORE_message_queue_Submit_types;
/**
* @brief Initializes a message queue.
*
- * This package is the implementation of the CORE Message Queue Handler.
- * This core object provides task synchronization and communication functions
- * via messages passed to queue objects.
+ * @param[out] the_message_queue is the message queue to initialize.
+ *
+ * @param discipline is the blocking discipline for the message queue.
+ *
+ * @param maximum_pending_messages is the maximum number of messages that will
+ * be allowed to be pending at any given time.
+ *
+ * @param maximum_message_size is the size of the largest message that may be
+ * sent to this message queue instance.
*
- * This routine initializes @a the_message_queue
- * based on the parameters passed.
+ * @retval STATUS_SUCCESSFUL The message queue was initialized.
*
- * @param[out] the_message_queue The message queue to initialize.
- * @param discipline The blocking discipline for the message queue.
- * @param maximum_pending_messages The maximum number of messages
- * that will be allowed to pend at any given time.
- * @param maximum_message_size The size of the largest message that
- * may be sent to this message queue instance.
+ * @retval STATUS_MESSAGE_QUEUE_INVALID_SIZE Calculations with the maximum
+ * pending messages or maximum message size produced an integer overflow.
*
- * @retval true The message queue can be initialized.
- * @retval false Memory for the pending messages cannot be allocated.
+ * @retval STATUS_MESSAGE_QUEUE_NO_MEMORY There was not enough memory to
+ * allocate the message buffers.
*/
-bool _CORE_message_queue_Initialize(
+Status_Control _CORE_message_queue_Initialize(
CORE_message_queue_Control *the_message_queue,
CORE_message_queue_Disciplines discipline,
uint32_t maximum_pending_messages,