source: rtems-central/spec/rtems/message/if/construct.yml @ 45b6997

Last change on this file since 45b6997 was 45b6997, checked in by Sebastian Huber <sebastian.huber@…>, on Jan 13, 2021 at 1:05:42 PM

spec: Document all create directives

  • Property mode set to 100644
File size: 3.6 KB
Line 
1SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
2brief: |
3  Constructs a message queue from the specified the message queue
4  configuration.
5copyrights:
6- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
7definition:
8  default:
9    attributes: null
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: []
16description: null
17enabled-by: true
18index-entries: []
19interface-type: function
20links:
21- role: interface-placement
22  uid: header
23- role: interface-ingroup
24  uid: group
25name: rtems_message_queue_construct
26notes: |
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.
30
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.
36
37  The value for ${/acfg/if/message-buffer-memory:/name} should not include
38  memory for message queues constructed by ${.:/name}.
39params:
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
45    constructed message queue will be stored in this variable, in case of a
46    successful operation.
47  dir: out
48  name: id
49return:
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}
94type: interface
Note: See TracBrowser for help on using the repository browser.