source: rtems/cpukit/rtems/include/rtems.h @ 6339cd2d

4.115
Last change on this file since 6339cd2d was 6339cd2d, checked in by Sebastian Huber <sebastian.huber@…>, on 05/09/14 at 08:08:29

rtems: Move extern "C" in <rtems.h>

Do not cover the includes with an extern "C".

  • Property mode set to 100644
File size: 5.5 KB
RevLine 
[d964f79]1/**
[c85ab23]2 * @file
[067a96a]3 *
[61b8e9f]4 * @defgroup ClassicRTEMS RTEMS Classic API
5 *
6 * @brief RTEMS Classic API
[c85ab23]7 *
[61b8e9f]8 * the Public Interface to the RTEMS Classic API
[067a96a]9 */
10
[61b8e9f]11/* COPYRIGHT (c) 1989-2008.
12 * On-Line Applications Research Corporation (OAR).
[ac7d5ef0]13 *
[61b8e9f]14 * The license and distribution terms for this file may be
15 * found in the file LICENSE in this distribution or at
[c499856]16 * http://www.rtems.org/license/LICENSE.
[ac7d5ef0]17 */
18
[092f142a]19#ifndef _RTEMS_H
20#define _RTEMS_H
[ac7d5ef0]21
[067a96a]22/**
[c85ab23]23 * @defgroup ClassicRTEMS RTEMS Classic API
24 *
25 * RTEMS Classic API definitions and modules.
[067a96a]26 */
[a15eaaf]27/**@{*/
[067a96a]28
[ac7d5ef0]29#include <rtems/system.h>
[3a4ae6c]30#include <rtems/rtems/status.h>
31#include <rtems/rtems/types.h>
[3235ad9]32
[3a4ae6c]33#include <rtems/config.h>
[ef36f7e2]34#include <rtems/debug.h>
[ac7d5ef0]35#include <rtems/init.h>
[07f0442]36#include <rtems/rtems/options.h>
[3a4ae6c]37#include <rtems/rtems/tasks.h>
38#include <rtems/rtems/intr.h>
[8042961d]39#include <rtems/rtems/barrier.h>
[cf1f72e]40#include <rtems/rtems/cache.h>
[3a4ae6c]41#include <rtems/rtems/clock.h>
[ac7d5ef0]42#include <rtems/extension.h>
[3a4ae6c]43#include <rtems/rtems/timer.h>
44#include <rtems/rtems/sem.h>
45#include <rtems/rtems/message.h>
46#include <rtems/rtems/event.h>
47#include <rtems/rtems/signal.h>
48#include <rtems/rtems/event.h>
[6c06288]49#include <rtems/rtems/object.h>
[3a4ae6c]50#include <rtems/rtems/part.h>
51#include <rtems/rtems/region.h>
52#include <rtems/rtems/dpmem.h>
[ac7d5ef0]53#include <rtems/io.h>
54#include <rtems/fatal.h>
[3a4ae6c]55#include <rtems/rtems/ratemon.h>
[97e2729d]56#if defined(RTEMS_MULTIPROCESSING)
[3a4ae6c]57#include <rtems/rtems/mp.h>
[97e2729d]58#endif
[2f96c1eb]59#include <rtems/rtems/smp.h>
60
[3a4ae6c]61#include <rtems/rtems/support.h>
[ac7d5ef0]62
[6339cd2d]63#ifdef __cplusplus
64extern "C" {
65#endif
66
[4d47256]67/**
[c85ab23]68 * @brief Returns the pointer to the RTEMS version string.
[4d47256]69 */
70const char *rtems_get_version_string(void);
71
[2ad3d02]72/**
[c85ab23]73 * @brief Indicates whether this processor variant has hardware floating point
74 * support.
[2ad3d02]75 */
[ac7d5ef0]76#define RTEMS_HAS_HARDWARE_FP CPU_HARDWARE_FP
77
[8c8fd64]78/**********************************************************************
79 *      CONSTANTS WHICH MAY BE USED IN OBJECT NAME TO ID SEARCHES
[33c3b54d]80 **********************************************************************/
[2ad3d02]81
82/**
[c85ab23]83 * @brief Indicates that a search is across all nodes.
[2ad3d02]84 */
[3a4ae6c]85#define RTEMS_SEARCH_ALL_NODES   OBJECTS_SEARCH_ALL_NODES
[2ad3d02]86
87/**
[c85ab23]88 * @brief Indicates that a search is across all nodes except the one the call
89 * is made from.
[2ad3d02]90 */
[3a4ae6c]91#define RTEMS_SEARCH_OTHER_NODES OBJECTS_SEARCH_OTHER_NODES
[2ad3d02]92
93/**
[c85ab23]94 * @brief Indicates that the search is to be restricted to the local node.
[2ad3d02]95 */
[3a4ae6c]96#define RTEMS_SEARCH_LOCAL_NODE  OBJECTS_SEARCH_LOCAL_NODE
[50f32b11]97
[067a96a]98/**
[c85ab23]99 * @brief Indicates that the caller wants to obtain the name of the currently
100 * executing thread.
[2ad3d02]101 *
[c85ab23]102 * This constant is only meaningful when obtaining the name of a task.
[2ad3d02]103 */
104#define RTEMS_WHO_AM_I           OBJECTS_WHO_AM_I
105
[8c8fd64]106/**********************************************************************
107 *        Parameters and return Id's for _Objects_Get_next
[33c3b54d]108 **********************************************************************/
[2ad3d02]109
110/**
[c85ab23]111 * @brief Lowest valid index value for the index portion of an object
112 * identifier.
[2ad3d02]113 */
[5d3e539]114#define RTEMS_OBJECT_ID_INITIAL_INDEX        OBJECTS_ID_INITIAL_INDEX
[2ad3d02]115
116/**
[c85ab23]117 * @brief Maximum valid index value for the index portion of an object
118 * identifier.
[2ad3d02]119 */
[5d3e539]120#define RTEMS_OBJECT_ID_FINAL_INDEX          OBJECTS_ID_FINAL_INDEX
[50f32b11]121
[2ad3d02]122/**
[c85ab23]123 * @brief Returns the identifier of the object with the lowest valid index
124 * value.
[2ad3d02]125 *
[c85ab23]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.
[2ad3d02]128 */
129#define RTEMS_OBJECT_ID_INITIAL(_api, _class, _node) \
130   OBJECTS_ID_INITIAL(_api, _class, _node)
131
132/**
[c85ab23]133 * @brief Maximum valid object identifier.
[2ad3d02]134 */
[5d3e539]135#define RTEMS_OBJECT_ID_FINAL                OBJECTS_ID_FINAL
[50f32b11]136
[067a96a]137/**
[c85ab23]138 * @brief Minimum stack size which every thread must exceed.
[e5a2eb4d]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
[f3255a6]145 * stack size is larger than the recommended minimum, then it will be used.
[3a4ae6c]146 */
147#define RTEMS_MINIMUM_STACK_SIZE  STACK_MINIMUM_SIZE
148
[ecf0f4c]149/**
[c85ab23]150 * @brief Specifies that the task should be created with the configured minimum
151 * stack size.
[e5a2eb4d]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
[f3255a6]161 * trying to conserve memory.
[ecf0f4c]162 */
163#define RTEMS_CONFIGURED_MINIMUM_STACK_SIZE  0
164
[067a96a]165/**
[c85ab23]166 * @brief Constant for indefinite wait.
167 *
168 * This is actually an illegal interval value.
[3a4ae6c]169 */
170#define RTEMS_NO_TIMEOUT  WATCHDOG_NO_TIMEOUT
171
[067a96a]172/**
[c85ab23]173 * @brief An MPCI must support packets of at least this size.
[3a4ae6c]174 */
175#define RTEMS_MINIMUM_PACKET_SIZE  MP_PACKET_MINIMUM_PACKET_SIZE
[50f32b11]176
[067a96a]177/**
[c85ab23]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.
[3a4ae6c]183 */
184#define RTEMS_MINIMUN_HETERO_CONVERSION  MP_PACKET_MINIMUN_HETERO_CONVERSION
185
[ac7d5ef0]186#ifdef __cplusplus
187}
188#endif
189
[067a96a]190/**@}*/
191
[ac7d5ef0]192#endif
193/* end of include file */
Note: See TracBrowser for help on using the repository browser.