source: rtems/cpukit/include/rtems/rtems/types.h

Last change on this file was b07c721, checked in by Andreas Dachsberger <andreas.dachsberger@…>, on Mar 28, 2019 at 12:27:05 PM

doxygen: Restructured cpukit/include/rtems/rtems

Update #3706.

  • Property mode set to 100644
File size: 5.1 KB
Line 
1/**
2 * @file
3 *
4 * @defgroup ClassicTypes Types
5 *
6 * @ingroup RTEMSAPIClassic
7 *
8 * @brief Types used by Classic API.
9 */
10
11/* COPYRIGHT (c) 1989-2009.
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_RTEMS_TYPES_H
20#define _RTEMS_RTEMS_TYPES_H
21
22/*
23 *  RTEMS basic type definitions
24 */
25
26#include <sys/cpuset.h>
27#include <sys/_timespec.h>
28#include <sys/_timeval.h>
29#include <stdint.h>
30#include <rtems/score/heapinfo.h>
31#include <rtems/score/object.h>
32#include <rtems/score/watchdogticks.h>
33#include <rtems/rtems/modes.h>
34#if defined(RTEMS_MULTIPROCESSING)
35#include <rtems/score/mpci.h>
36#endif
37
38#ifdef __cplusplus
39extern "C" {
40#endif
41
42/**
43 * @addtogroup ClassicTasks
44 */
45/**@{**/
46
47#ifdef RTEMS_DEPRECATED_TYPES
48/**
49 * @brief Single precision float type.
50 *
51 * @deprecated Use @c float instead.
52 */
53typedef single_precision rtems_single RTEMS_DEPRECATED;
54
55/**
56 * @brief Double precision float type.
57 *
58 * @deprecated Use @c double instead.
59 */
60typedef double_precision rtems_double RTEMS_DEPRECATED;
61
62/**
63 * @brief RTEMS boolean type.
64 *
65 * @deprecated Use @c bool instead
66 */
67typedef boolean          rtems_boolean RTEMS_DEPRECATED;
68#endif
69
70/**
71 * @brief Classic API @ref ClassicRTEMSSubSecObjectNames "object name" type.
72 *
73 * Contains the name of a Classic API object. It is an unsigned 32-bit integer
74 * which can be treated as a numeric value or initialized using
75 * rtems_build_name() to contain four ASCII characters.
76 */
77typedef uint32_t         rtems_name;
78
79/**
80 * @brief Used to manage and manipulate
81 * @ref ClassicRTEMSSubSecObjectIdentifiers "RTEMS object identifiers".
82 */
83typedef Objects_Id       rtems_id;
84
85/**
86 * @brief Invalid object identifier value.
87 *
88 * No object can have this identifier value.
89 */
90#define RTEMS_ID_NONE OBJECTS_ID_NONE
91
92/**
93 * @brief Public name for task context area.
94 */
95typedef Context_Control            rtems_context RTEMS_DEPRECATED;
96
97#if (CPU_HARDWARE_FP == TRUE) || (CPU_SOFTWARE_FP == TRUE)
98/**
99 * @brief Public name for task floating point context area.
100 */
101typedef Context_Control_fp         rtems_context_fp RTEMS_DEPRECATED;
102#endif
103
104#if (CPU_ISR_PASSES_FRAME_POINTER == TRUE)
105/**
106 * @brief Defines the format of the interrupt stack frame as it appears to a
107 * user ISR.
108 *
109 * This data structure is only provided if the interrupt stack frame is passed
110 * to the ISR handler.
111 *
112 * @see rtems_interrupt_catch().
113 */
114typedef CPU_Interrupt_frame        rtems_interrupt_frame;
115#endif
116
117/**
118 * @brief Information structure returned by the Heap Handler via the Region
119 * Manager.
120 */
121typedef Heap_Information_block region_information_block RTEMS_DEPRECATED;
122
123/**
124 * @brief Used to manage and manipulate intervals specified by
125 * @ref ClassicRTEMSSecTime "clock ticks".
126 */
127typedef Watchdog_Interval rtems_interval;
128
129/**
130 * @brief Represents the CPU usage per thread.
131 *
132 * When using nanoseconds granularity timing, RTEMS may internally use a
133 * variety of representations.
134 */
135typedef struct timespec rtems_thread_cpu_usage_t RTEMS_DEPRECATED;
136
137/**
138 * @brief Data structure to manage and manipulate calendar
139 * @ref ClassicRTEMSSecTime "time".
140 */
141typedef struct {
142  /**
143   * @brief Year, A.D.
144   */
145  uint32_t   year;
146  /**
147   * @brief Month, 1 .. 12.
148   */
149  uint32_t   month;
150  /**
151   * @brief Day, 1 .. 31.
152   */
153  uint32_t   day;
154  /**
155   * @brief Hour, 0 .. 23.
156   */
157  uint32_t   hour;
158  /**
159   * @brief Minute, 0 .. 59.
160   */
161  uint32_t   minute;
162  /**
163   * @brief Second, 0 .. 59.
164   */
165  uint32_t   second;
166  /**
167   * @brief Elapsed ticks between seconds.
168   */
169  uint32_t   ticks;
170}   rtems_time_of_day;
171
172/*
173 *  MPCI related entries
174 */
175#if defined(RTEMS_MULTIPROCESSING)
176/**
177 * @brief Set of MPCI packet classes which are internally dispatched to the
178 * managers.
179 */
180typedef MP_packet_Classes          rtems_mp_packet_classes;
181
182/**
183 * @brief Prefix found at the beginning of each MPCI packet sent between nodes.
184 */
185typedef MP_packet_Prefix           rtems_packet_prefix;
186
187/**
188 * @brief Indirect pointer to the initialization entry point for an MPCI
189 * handler.
190 */
191typedef MPCI_initialization_entry  rtems_mpci_initialization_entry;
192
193/**
194 * @brief Indirect pointer to the get_packet entry point for an MPCI handler.
195 */
196typedef MPCI_get_packet_entry      rtems_mpci_get_packet_entry;
197
198/**
199 * @brief Indirect pointer to the return_packet entry point for an MPCI
200 * handler.
201 */
202typedef MPCI_return_packet_entry   rtems_mpci_return_packet_entry;
203
204/**
205 * @brief Indirect pointer to the send_packet entry point for an MPCI handler.
206 */
207typedef MPCI_send_entry            rtems_mpci_send_packet_entry;
208
209/**
210 * @brief Indirect pointer to the receive entry point for an MPCI handler.
211 */
212typedef MPCI_receive_entry         rtems_mpci_receive_packet_entry;
213
214/**
215 * @brief Return type from every MPCI handler routine.
216 */
217typedef MPCI_Entry                 rtems_mpci_entry;
218
219/**
220 * @brief Structure which is used to configure an MPCI handler.
221 */
222typedef MPCI_Control               rtems_mpci_table;
223
224#endif
225
226/** @} */
227
228#ifdef __cplusplus
229}
230#endif
231
232#endif
233/* end of include file */
Note: See TracBrowser for help on using the repository browser.