source: rtems/cpukit/include/rtems.h @ 1af8e45b

5
Last change on this file since 1af8e45b was 1af8e45b, checked in by Sebastian Huber <sebastian.huber@…>, on 05/05/20 at 14:11:39

rtems: Add rtems_get_copyright_notice()

Update #3973.

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