Opened on 06/17/20 at 08:08:44
Closed on 09/02/21 at 06:00:40
#4007 closed enhancement (fixed)
Add rtems_message_queue_construct()
Reported by: | Sebastian Huber | Owned by: | Sebastian Huber |
---|---|---|---|
Priority: | normal | Milestone: | 6.1 |
Component: | rtems | Version: | 6 |
Severity: | normal | Keywords: | qualification |
Cc: | Blocked By: | ||
Blocking: |
Description (last modified by Sebastian Huber)
In RTEMS 5 a lot of development was done to allow a static allocation of resources provided by RTEMS and avoid the use of a heap. Similar to #3959 a new directive to build Classic API message queues without using the workspace is proposed:
/** * @brief The message queue configuration to construct a message queue. */ typedef struct { /** * @brief The name of the message queue. */ rtems_name name; /** * @brief The count of the provided buffers. * * This value defines the maximum number of pending messages. */ size_t buffer_count; /** * @brief The size of the provided buffers in bytes. */ size_t buffer_size; /** * @brief The array of count message buffers. * * Each buffer shall have the size of the buffer_size member. The maximum * message size is buffer_size minus sizeof( rtems_message_queue_buffer ). */ rtems_message_queue_buffer *buffers; /** * @brief The attribute set of the message queue. */ rtems_attribute attributes; } rtems_message_queue_config; /** * @brief Constructs a message queue according to the specified configuration. * * @param config The message queue configuration. * @param[out] id The message queue identifier of the new message queue. * * @retval RTEMS_SUCCESSFUL Successful operation. * @retval RTEMS_INVALID_ADDRESS The id parameter is @c NULL. * @retval RTEMS_INVALID_NAME The message queue name is invalid. * @retval RTEMS_TOO_MANY No message queue is available. */ rtems_status_code rtems_message_queue_construct( const rtems_message_queue_config *config, rtems_id *id );
Change History (16)
comment:1 Changed on 09/17/20 at 16:18:59 by Sebastian Huber
Description: | modified (diff) |
---|---|
Status: | assigned → accepted |
Summary: | Add rtems_message_queue_build() → Add rtems_message_queue_construct() |
comment:2 Changed on 09/17/20 at 16:19:28 by Sebastian Huber
Description: | modified (diff) |
---|
comment:3 Changed on 09/28/20 at 05:17:56 by Sebastian Huber <sebastian.huber@…>
comment:11 Changed on 09/28/20 at 05:18:23 by Sebastian Huber <sebastian.huber@…>
In febc6604/rtems:
comment:12 Changed on 04/23/21 at 06:25:29 by Sebastian Huber <sebastian.huber@…>
In 03747b50/rtems:
comment:15 Changed on 06/18/21 at 09:24:45 by Sebastian Huber
Keywords: | qualification added |
---|
comment:16 Changed on 09/02/21 at 06:00:40 by Sebastian Huber
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
The new directive was documented, implemented, and tested:
https://docs.rtems.org/branches/master/c-user/message/directives.html#rtems-message-queue-construct
Note: See
TracTickets for help on using
tickets.
In 3c025576/rtems: