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

5
Last change on this file since ccc6695 was ccc6695, checked in by Sebastian Huber <sebastian.huber@…>, on 11/08/18 at 10:50:24

score: Introduce <rtems/score/watchdogticks.h>

Separate the definitions related to watchdog ticks from the watchdog
structures.

Update #3598.

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