source: rtems/cpukit/rtems/include/rtems.h @ 61b8e9f

4.115
Last change on this file since 61b8e9f was 61b8e9f, checked in by Ayush Awasthi <kolaveridi87@…>, on 01/04/13 at 15:29:06

rtems: Doxygen Clean Up Task #1

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