source: rtems/cpukit/include/rtems/rtems/attr.h @ a6689fb1

Last change on this file since a6689fb1 was a6689fb1, checked in by Sebastian Huber <sebastian.huber@…>, on 01/22/21 at 15:01:46

Improve file header comment in generated files

  • Property mode set to 100644
File size: 9.6 KB
Line 
1/* SPDX-License-Identifier: BSD-2-Clause */
2
3/**
4 * @file
5 *
6 * @brief This header file provides Classic API directive attributes.
7 */
8
9/*
10 * Copyright (C) 2014, 2020 embedded brains GmbH (http://www.embedded-brains.de)
11 * Copyright (C) 2008 On-Line Applications Research Corporation (OAR)
12 *
13 * Redistribution and use in source and binary forms, with or without
14 * modification, are permitted provided that the following conditions
15 * are met:
16 * 1. Redistributions of source code must retain the above copyright
17 *    notice, this list of conditions and the following disclaimer.
18 * 2. Redistributions in binary form must reproduce the above copyright
19 *    notice, this list of conditions and the following disclaimer in the
20 *    documentation and/or other materials provided with the distribution.
21 *
22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
26 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
27 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
28 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
29 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
30 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
31 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32 * POSSIBILITY OF SUCH DAMAGE.
33 */
34
35/*
36 * This file is part of the RTEMS quality process and was automatically
37 * generated.  If you find something that needs to be fixed or
38 * worded better please post a report or patch to an RTEMS mailing list
39 * or raise a bug report:
40 *
41 * https://www.rtems.org/bugs.html
42 *
43 * For information on updating and regenerating please refer to the How-To
44 * section in the Software Requirements Engineering chapter of the
45 * RTEMS Software Engineering manual.  The manual is provided as a part of
46 * a release.  For development sources please refer to the online
47 * documentation at:
48 *
49 * https://docs.rtems.org
50 */
51
52/* Generated from spec:/rtems/attr/if/header */
53
54#ifndef _RTEMS_RTEMS_ATTR_H
55#define _RTEMS_RTEMS_ATTR_H
56
57#include <stdint.h>
58
59#ifdef __cplusplus
60extern "C" {
61#endif
62
63/* Generated from spec:/rtems/attr/if/group */
64
65/**
66 * @defgroup RTEMSAPIClassicAttr Directive Attributes
67 *
68 * @ingroup RTEMSAPIClassic
69 *
70 * @brief This group contains the Classic API directive attributes.
71 */
72
73/* Generated from spec:/rtems/attr/if/application-task */
74
75/**
76 * @ingroup RTEMSAPIClassicAttr
77 *
78 * @brief This attribute constant indicates that the Classic API task created
79 *   by rtems_task_create() or rtems_task_construct() shall be an application
80 *   task.
81 */
82#define RTEMS_APPLICATION_TASK 0x00000000
83
84/* Generated from spec:/rtems/attr/if/attribute */
85
86/**
87 * @ingroup RTEMSAPIClassicAttr
88 *
89 * @brief This type represents Classic API attributes.
90 *
91 * Attributes are primarily used when creating objects.
92 */
93typedef uint32_t rtems_attribute;
94
95/* Generated from spec:/rtems/attr/if/barrier-automatic-release */
96
97/**
98 * @ingroup RTEMSAPIClassicAttr
99 *
100 * @brief This attribute constant indicates that the Classic API barrier
101 *   created by rtems_barrier_create() shall use the automatic release
102 *   protocol.
103 */
104#define RTEMS_BARRIER_AUTOMATIC_RELEASE 0x00000200
105
106/* Generated from spec:/rtems/attr/if/barrier-manual-release */
107
108/**
109 * @ingroup RTEMSAPIClassicAttr
110 *
111 * @brief This attribute constant indicates that the Classic API barrier
112 *   created by rtems_barrier_create() shall use the manual release protocol.
113 */
114#define RTEMS_BARRIER_MANUAL_RELEASE 0x00000000
115
116/* Generated from spec:/rtems/attr/if/binary-semaphore */
117
118/**
119 * @ingroup RTEMSAPIClassicAttr
120 *
121 * @brief This attribute constant indicates that the Classic API semaphore
122 *   created by rtems_semaphore_create() shall be a proper binary semaphore or
123 *   mutex.
124 */
125#define RTEMS_BINARY_SEMAPHORE 0x00000010
126
127/* Generated from spec:/rtems/attr/if/counting-semaphore */
128
129/**
130 * @ingroup RTEMSAPIClassicAttr
131 *
132 * @brief This attribute constant indicates that the Classic API semaphore
133 *   created by rtems_semaphore_create() shall be a counting semaphore.
134 */
135#define RTEMS_COUNTING_SEMAPHORE 0x00000000
136
137/* Generated from spec:/rtems/attr/if/default */
138
139/**
140 * @ingroup RTEMSAPIClassicAttr
141 *
142 * @brief This attribute constant represents the default attribute set.
143 */
144#define RTEMS_DEFAULT_ATTRIBUTES 0x00000000
145
146/* Generated from spec:/rtems/attr/if/fifo */
147
148/**
149 * @ingroup RTEMSAPIClassicAttr
150 *
151 * @brief This attribute constant indicates that the Classic API object shall
152 *   manage blocking tasks using the FIFO discipline.
153 */
154#define RTEMS_FIFO 0x00000000
155
156/* Generated from spec:/rtems/attr/if/floating-point */
157
158/**
159 * @ingroup RTEMSAPIClassicAttr
160 *
161 * @brief This attribute constant indicates that the Classic API task created
162 *   by rtems_task_create() or rtems_task_construct() shall be able to use the
163 *   floating point hardware.
164 *
165 * On some architectures, there will be a floating point context associated
166 * with this task.
167 */
168#define RTEMS_FLOATING_POINT 0x00000001
169
170/* Generated from spec:/rtems/attr/if/global */
171
172/**
173 * @ingroup RTEMSAPIClassicAttr
174 *
175 * @brief This attribute constant indicates that the Classic API object shall
176 *   be a global resource in a multiprocessing network.
177 *
178 * This attribute does not refer to SMP systems.
179 */
180#define RTEMS_GLOBAL 0x00000002
181
182/* Generated from spec:/rtems/attr/if/inherit-priority */
183
184/**
185 * @ingroup RTEMSAPIClassicAttr
186 *
187 * @brief This attribute constant indicates that the Classic API semaphore
188 *   created by rtems_semaphore_create() shall use the Priority Inheritance
189 *   Protocol.
190 *
191 * The semaphore shall be a binary semaphore (#RTEMS_BINARY_SEMAPHORE).
192 */
193#define RTEMS_INHERIT_PRIORITY 0x00000040
194
195/* Generated from spec:/rtems/attr/if/local */
196
197/**
198 * @ingroup RTEMSAPIClassicAttr
199 *
200 * @brief This attribute constant indicates that the Classic API object shall
201 *   be a local resource in a multiprocessing network.
202 *
203 * This attribute does not refer to SMP systems.
204 */
205#define RTEMS_LOCAL 0x00000000
206
207/* Generated from spec:/rtems/attr/if/multiprocessor-resource-sharing */
208
209/**
210 * @ingroup RTEMSAPIClassicAttr
211 *
212 * @brief This attribute constant indicates that the Classic API semaphore
213 *   created by rtems_semaphore_create() shall use the Multiprocessor Resource
214 *   Sharing Protocol.
215 *
216 * The semaphore shall be a binary semaphore (#RTEMS_BINARY_SEMAPHORE).
217 */
218#define RTEMS_MULTIPROCESSOR_RESOURCE_SHARING 0x00000100
219
220/* Generated from spec:/rtems/attr/if/no-floating-point */
221
222/**
223 * @ingroup RTEMSAPIClassicAttr
224 *
225 * @brief This attribute constant indicates that the Classic API task created
226 *   by rtems_task_create() or rtems_task_construct() will not use the floating
227 *   point hardware.
228 *
229 * If the architecture permits it, then the FPU will be disabled when the task
230 * is executing.
231 */
232#define RTEMS_NO_FLOATING_POINT 0x00000000
233
234/* Generated from spec:/rtems/attr/if/no-inherit-priority */
235
236/**
237 * @ingroup RTEMSAPIClassicAttr
238 *
239 * @brief This attribute constant indicates that the Classic API semaphore
240 *   created by rtems_semaphore_create() will not use the Priority Inheritance
241 *   Protocol.
242 */
243#define RTEMS_NO_INHERIT_PRIORITY 0x00000000
244
245/* Generated from spec:/rtems/attr/if/no-multiprocessor-resource-sharing */
246
247/**
248 * @ingroup RTEMSAPIClassicAttr
249 *
250 * @brief This attribute constant indicates that the Classic API semaphore
251 *   created by rtems_semaphore_create() will not use the Multiprocessor
252 *   Resource Sharing Protocol.
253 */
254#define RTEMS_NO_MULTIPROCESSOR_RESOURCE_SHARING 0x00000000
255
256/* Generated from spec:/rtems/attr/if/no-priority-ceiling */
257
258/**
259 * @ingroup RTEMSAPIClassicAttr
260 *
261 * @brief This attribute constant indicates that the Classic API semaphore
262 *   created by rtems_semaphore_create() will not use the Priority Ceiling
263 *   Protocol.
264 */
265#define RTEMS_NO_PRIORITY_CEILING 0x00000000
266
267/* Generated from spec:/rtems/attr/if/priority */
268
269/**
270 * @ingroup RTEMSAPIClassicAttr
271 *
272 * @brief This attribute constant indicates that the Classic API object shall
273 *   manage blocking tasks using the task priority discipline.
274 */
275#define RTEMS_PRIORITY 0x00000004
276
277/* Generated from spec:/rtems/attr/if/priority-ceiling */
278
279/**
280 * @ingroup RTEMSAPIClassicAttr
281 *
282 * @brief This attribute constant indicates that the Classic API semaphore
283 *   created by rtems_semaphore_create() shall use the Priority Ceiling
284 *   Protocol.
285 *
286 * The semaphore shall be a binary semaphore (#RTEMS_BINARY_SEMAPHORE).
287 */
288#define RTEMS_PRIORITY_CEILING 0x00000080
289
290/* Generated from spec:/rtems/attr/if/semaphore-class */
291
292/**
293 * @ingroup RTEMSAPIClassicAttr
294 *
295 * @brief This attribute constant represents the mask of bits associated with
296 *   the Classic API semaphore classes #RTEMS_BINARY_SEMAPHORE,
297 *   #RTEMS_COUNTING_SEMAPHORE, and #RTEMS_SIMPLE_BINARY_SEMAPHORE.
298 */
299#define RTEMS_SEMAPHORE_CLASS 0x00000030
300
301/* Generated from spec:/rtems/attr/if/simple-binary-semaphore */
302
303/**
304 * @ingroup RTEMSAPIClassicAttr
305 *
306 * @brief This attribute constant indicates that the Classic API semaphore
307 *   created by rtems_semaphore_create() shall be a simple binary semaphore.
308 */
309#define RTEMS_SIMPLE_BINARY_SEMAPHORE 0x00000020
310
311/* Generated from spec:/rtems/attr/if/system-task */
312
313/**
314 * @ingroup RTEMSAPIClassicAttr
315 *
316 * @brief This attribute constant indicates that the Classic API task created
317 *   by rtems_task_create() or rtems_task_construct() shall be a system task.
318 */
319#define RTEMS_SYSTEM_TASK 0x00008000
320
321#ifdef __cplusplus
322}
323#endif
324
325#endif /* _RTEMS_RTEMS_ATTR_H */
Note: See TracBrowser for help on using the repository browser.