source: rtems/cpukit/include/rtems.h @ 5353ea89

Last change on this file since 5353ea89 was 5353ea89, checked in by Sebastian Huber <sebastian.huber@…>, on 06/24/20 at 08:36:16

rtems: Move from <rtems.h> to <rtems/config.h>

Move configuration related declarations and definitions to
<rtems/config.h>. The goal is to make <rtems.h> an include only header
file.

  • Property mode set to 100644
File size: 5.2 KB
Line 
1/**
2 * @file
3 *
4 * @ingroup RTEMSAPIClassic
5 *
6 * the Public Interface to the RTEMS Classic API
7 */
8
9/* COPYRIGHT (c) 1989-2008.
10 * On-Line Applications Research Corporation (OAR).
11 *
12 * The license and distribution terms for this file may be
13 * found in the file LICENSE in this distribution or at
14 * http://www.rtems.org/license/LICENSE.
15 */
16
17#ifndef _RTEMS_H
18#define _RTEMS_H
19
20/**
21 * @defgroup RTEMSAPIClassic Classic
22 *
23 * @ingroup RTEMSAPI
24 *
25 * @brief RTEMS Classic API definitions and modules.
26 */
27/** @{ */
28
29#include <rtems/rtems/status.h>
30#include <rtems/rtems/types.h>
31
32#include <rtems/config.h>
33#include <rtems/init.h>
34#include <rtems/rtems/options.h>
35#include <rtems/rtems/tasks.h>
36#include <rtems/rtems/intr.h>
37#include <rtems/rtems/barrier.h>
38#include <rtems/rtems/cache.h>
39#include <rtems/rtems/clock.h>
40#include <rtems/extension.h>
41#include <rtems/rtems/timer.h>
42#include <rtems/rtems/sem.h>
43#include <rtems/rtems/message.h>
44#include <rtems/rtems/event.h>
45#include <rtems/rtems/signal.h>
46#include <rtems/rtems/event.h>
47#include <rtems/rtems/object.h>
48#include <rtems/rtems/part.h>
49#include <rtems/rtems/region.h>
50#include <rtems/rtems/dpmem.h>
51#include <rtems/io.h>
52#include <rtems/fatal.h>
53#include <rtems/rtems/ratemon.h>
54#if defined(RTEMS_MULTIPROCESSING)
55#include <rtems/rtems/mp.h>
56#endif
57
58#include <rtems/rtems/support.h>
59#include <rtems/score/stack.h>
60
61#ifdef __cplusplus
62extern "C" {
63#endif
64
65/**********************************************************************
66 *      CONSTANTS WHICH MAY BE USED IN OBJECT NAME TO ID SEARCHES
67 **********************************************************************/
68
69/**
70 * @brief Indicates that a search is across all nodes.
71 */
72#define RTEMS_SEARCH_ALL_NODES   OBJECTS_SEARCH_ALL_NODES
73
74/**
75 * @brief Indicates that a search is across all nodes except the one the call
76 * is made from.
77 */
78#define RTEMS_SEARCH_OTHER_NODES OBJECTS_SEARCH_OTHER_NODES
79
80/**
81 * @brief Indicates that the search is to be restricted to the local node.
82 */
83#define RTEMS_SEARCH_LOCAL_NODE  OBJECTS_SEARCH_LOCAL_NODE
84
85/**
86 * @brief Indicates that the caller wants to obtain the name of the currently
87 * executing thread.
88 *
89 * This constant is only meaningful when obtaining the name of a task.
90 */
91#define RTEMS_WHO_AM_I           OBJECTS_WHO_AM_I
92
93/**********************************************************************
94 *        Parameters and return Id's for _Objects_Get_next
95 **********************************************************************/
96
97/**
98 * @brief Lowest valid index value for the index portion of an object
99 * identifier.
100 */
101#define RTEMS_OBJECT_ID_INITIAL_INDEX        OBJECTS_ID_INITIAL_INDEX
102
103/**
104 * @brief Maximum valid index value for the index portion of an object
105 * identifier.
106 */
107#define RTEMS_OBJECT_ID_FINAL_INDEX          OBJECTS_ID_FINAL_INDEX
108
109/**
110 * @brief Returns the identifier of the object with the lowest valid index
111 * value.
112 *
113 * The object is specified by the API @a _api, the object class @a _class and
114 * the node @a _node where the object resides.
115 */
116#define RTEMS_OBJECT_ID_INITIAL(_api, _class, _node) \
117   OBJECTS_ID_INITIAL(_api, _class, _node)
118
119/**
120 * @brief Maximum valid object identifier.
121 */
122#define RTEMS_OBJECT_ID_FINAL                OBJECTS_ID_FINAL
123
124/**
125 * @brief Minimum stack size which every thread must exceed.
126 *
127 * It is the minimum stack size recommended for use on this processor. This
128 * value is selected by the RTEMS developers conservatively to minimize the
129 * risk of blown stacks for most user applications. Using this constant when
130 * specifying the task stack size, indicates that the stack size will be at
131 * least RTEMS_MINIMUM_STACK_SIZE bytes in size. If the user configured minimum
132 * stack size is larger than the recommended minimum, then it will be used.
133 */
134#define RTEMS_MINIMUM_STACK_SIZE  STACK_MINIMUM_SIZE
135
136/**
137 * @brief Specifies that the task should be created with the configured minimum
138 * stack size.
139 *
140 * Using this constant when specifying the task stack size indicates that this
141 * task is to be created with a stack size of the minimum stack size that was
142 * configured by the application. If not explicitly configured by the
143 * application, the default configured minimum stack size is the processor
144 * dependent value RTEMS_MINIMUM_STACK_SIZE. Since this uses the configured
145 * minimum stack size value, you may get a stack size that is smaller or larger
146 * than the recommended minimum. This can be used to provide large stacks for
147 * all tasks on complex applications or small stacks on applications that are
148 * trying to conserve memory.
149 */
150#define RTEMS_CONFIGURED_MINIMUM_STACK_SIZE  0
151
152/**
153 * @brief Constant for indefinite wait.
154 *
155 * This is actually an illegal interval value.
156 */
157#define RTEMS_NO_TIMEOUT  ((rtems_interval) WATCHDOG_NO_TIMEOUT)
158
159/**
160 * @brief An MPCI must support packets of at least this size.
161 */
162#define RTEMS_MINIMUM_PACKET_SIZE  MP_PACKET_MINIMUM_PACKET_SIZE
163
164/**
165 * @brief Defines the count of @c uint32_t numbers in a packet which must be
166 * converted to native format in a heterogeneous system.
167 *
168 * In packets longer than this value, some of the extra data may be a user
169 * message buffer which is not automatically endian swapped.
170 */
171#define RTEMS_MINIMUN_HETERO_CONVERSION  MP_PACKET_MINIMUN_HETERO_CONVERSION
172
173#ifdef __cplusplus
174}
175#endif
176
177/** @} */
178
179#endif
180/* end of include file */
Note: See TracBrowser for help on using the repository browser.