[ca758d1] | 1 | SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause |
---|
| 2 | brief: | |
---|
| 3 | Constructs a message queue from the specified the message queue |
---|
| 4 | configuration. |
---|
| 5 | copyrights: |
---|
| 6 | - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) |
---|
| 7 | definition: |
---|
| 8 | default: |
---|
[d3edaca] | 9 | attributes: null |
---|
[ca758d1] | 10 | body: null |
---|
| 11 | params: |
---|
| 12 | - const ${config:/name} *${.:/params[0]/name} |
---|
| 13 | - ${../../type/if/id:/name} *${.:/params[1]/name} |
---|
| 14 | return: ${../../status/if/code:/name} |
---|
| 15 | variants: [] |
---|
| 16 | description: null |
---|
| 17 | enabled-by: true |
---|
[5f97799] | 18 | index-entries: [] |
---|
[ca758d1] | 19 | interface-type: function |
---|
| 20 | links: |
---|
| 21 | - role: interface-placement |
---|
| 22 | uid: header |
---|
| 23 | - role: interface-ingroup |
---|
| 24 | uid: group |
---|
| 25 | name: rtems_message_queue_construct |
---|
| 26 | notes: | |
---|
| 27 | In contrast to message queues created by ${create:/name}, the message queues |
---|
| 28 | constructed by this directive use a user-provided message buffer storage |
---|
| 29 | area. |
---|
[fd7f165] | 30 | |
---|
[ca758d1] | 31 | This directive is intended for applications which do not want to use the |
---|
| 32 | RTEMS Workspace and instead statically allocate all operating system |
---|
| 33 | resources. An application based solely on static allocation can avoid any |
---|
| 34 | runtime memory allocators. This can simplify the application architecture |
---|
| 35 | as well as any analysis that may be required. |
---|
[fd7f165] | 36 | |
---|
[ca758d1] | 37 | The value for ${/acfg/if/message-buffer-memory:/name} should not include |
---|
| 38 | memory for message queues constructed by ${.:/name}. |
---|
| 39 | params: |
---|
| 40 | - description: is the message queue configuration. |
---|
| 41 | dir: null |
---|
| 42 | name: config |
---|
| 43 | - description: | |
---|
| 44 | is the pointer to an object identifier variable. The identifier of the |
---|
[45b6997] | 45 | constructed message queue will be stored in this variable, in case of a |
---|
| 46 | successful operation. |
---|
[ca758d1] | 47 | dir: out |
---|
| 48 | name: id |
---|
| 49 | return: |
---|
| 50 | return: null |
---|
| 51 | return-values: |
---|
| 52 | - description: | |
---|
| 53 | The requested operation was successful. |
---|
| 54 | value: ${../../status/if/successful:/name} |
---|
| 55 | - description: | |
---|
| 56 | The ${.:/params[1]/name} parameter was ${/c/if/null:/name}. |
---|
| 57 | value: ${../../status/if/invalid-address:/name} |
---|
| 58 | - description: | |
---|
| 59 | The message queue name in the configuration was invalid. |
---|
| 60 | value: ${../../status/if/invalid-name:/name} |
---|
| 61 | - description: | |
---|
| 62 | The maximum number of pending messages in the configuration was zero. |
---|
| 63 | value: ${../../status/if/invalid-number:/name} |
---|
| 64 | - description: | |
---|
| 65 | The maximum message size in the configuration was zero. |
---|
| 66 | value: ${../../status/if/invalid-size:/name} |
---|
| 67 | - description: | |
---|
| 68 | There was no inactive message queue object available to construct a |
---|
| 69 | message queue. |
---|
| 70 | value: ${../../status/if/too-many:/name} |
---|
| 71 | - description: | |
---|
| 72 | In multiprocessing configurations, there was no inactive global object |
---|
| 73 | available to construct a global message queue. |
---|
| 74 | value: ${../../status/if/too-many:/name} |
---|
| 75 | - description: | |
---|
| 76 | The maximum message size in the configuration was too big and resulted in |
---|
| 77 | integer overflows in calculations carried out to determine the size of |
---|
| 78 | the message buffer area. |
---|
| 79 | value: ${../../status/if/invalid-size:/name} |
---|
| 80 | - description: | |
---|
| 81 | The maximum number of pending messages in the configuration was too big |
---|
| 82 | and resulted in integer overflows in calculations carried out to |
---|
| 83 | determine the size of the message buffer area. |
---|
| 84 | value: ${../../status/if/invalid-number:/name} |
---|
| 85 | - description: | |
---|
| 86 | The message queue storage area begin pointer in the configuration was |
---|
| 87 | ${/c/if/null:/name}. |
---|
| 88 | value: ${../../status/if/unsatisfied:/name} |
---|
| 89 | - description: | |
---|
| 90 | The message queue storage area size in the configuration was not equal to |
---|
| 91 | the size calculated from the maximum number of pending messages and the |
---|
| 92 | maximum message size. |
---|
| 93 | value: ${../../status/if/unsatisfied:/name} |
---|
| 94 | type: interface |
---|