source: rtems/cpukit/rtems/include/rtems.h @ c499856

4.11
Last change on this file since c499856 was c499856, checked in by Chris Johns <chrisj@…>, on Mar 20, 2014 at 9:10:47 PM

Change all references of rtems.com to rtems.org.

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