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

4.115
Last change on this file since e6b31b27 was e6b31b27, checked in by Joel Sherrill <joel.sherrill@…>, on 05/27/15 at 15:13:58

Remove use ticks for statistics configure option.

This was obsolete and broken based upon recent time keeping changes.

Thie build option was previously enabled by adding
USE_TICKS_FOR_STATISTICS=1 to the configure command line.

This propagated into the code as preprocessor conditionals
using the RTEMS_USE_TICKS_FOR_STATISTICS conditional.

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