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

4.104.115
Last change on this file since a9cb0b0 was a9cb0b0, checked in by Ralf Corsepius <ralf.corsepius@…>, on 09/11/08 at 14:12:52

2008-09-11 Ralf Corsépius <ralf.corsepius@…>

  • rtems/include/rtems/rtems/types.h: Do not define rtems_boolean, rtems_single, rtems_double unless RTEMS_DEPRECATED_TYPES is given.
  • Property mode set to 100644
File size: 5.0 KB
Line 
1/**
2 * @file rtems/rtems/types.h
3 *
4 *  This include file defines the types used by the RTEMS API.
5 */
6
7/*  COPYRIGHT (c) 1989-2008.
8 *  On-Line Applications Research Corporation (OAR).
9 *
10 *  The license and distribution terms for this file may be
11 *  found in the file LICENSE in this distribution or at
12 *  http://www.rtems.com/license/LICENSE.
13 *
14 *  $Id$
15 */
16
17#ifndef _RTEMS_RTEMS_TYPES_H
18#define _RTEMS_RTEMS_TYPES_H
19
20/**
21 *  @defgroup ClassicTypes Classic API Types
22 *
23 *  This encapsulates functionality which XXX
24 */
25/**@{*/
26
27/*
28 *  RTEMS basic type definitions
29 */
30
31#include <rtems/stdint.h>
32#include <rtems/score/heap.h>
33#include <rtems/score/object.h>
34#include <rtems/score/priority.h>
35#include <rtems/score/tod.h>
36#include <rtems/score/watchdog.h>
37#include <rtems/rtems/modes.h>
38#if defined(RTEMS_MULTIPROCESSING)
39#include <rtems/score/mpci.h>
40#include <rtems/score/mppkt.h>
41#endif
42
43#ifdef __cplusplus
44extern "C" {
45#endif
46
47/** This type defines a single precision float. */
48#ifdef RTEMS_DEPRECATED_TYPES
49typedef single_precision rtems_single;
50
51/** This type defines a double precision float. */
52typedef double_precision rtems_double;
53
54/** This type defines the RTEMS boolean type . */
55typedef boolean          rtems_boolean;
56#endif
57
58/** This type defines is for Classic API object names. */
59typedef uint32_t         rtems_name;
60
61/**
62 *  This type defines is for RTEMS object Id.  Although this
63 *  type name is specific to the Classic API, the format of
64 *  an object Id is the same across all APIs.
65 */
66typedef Objects_Id       rtems_id;
67
68/**
69 *  This defines a value that is an invalid object Id.
70 */
71#define RTEMS_ID_NONE OBJECTS_ID_NONE
72
73/**
74 * This type is the public name for task context area.
75 */
76typedef Context_Control            rtems_context;
77
78/**
79 * This type is the public name for task floating point context area.
80 */
81typedef Context_Control_fp         rtems_context_fp;
82
83/**
84 * This type is the public name for the architecture specific
85 * stack frame built as part of vectoring an interrupt.
86 */
87typedef CPU_Interrupt_frame        rtems_interrupt_frame;
88
89/**
90 *  This type defines the public name for the information
91 *  structure returned by the Heap Handler via the Region
92 *  Manager.
93 */
94typedef Heap_Information_block region_information_block;
95
96/**
97 *  This type defines the public name for the type that is
98 *  used to manage intervals specified by clock ticks.
99 */
100typedef Watchdog_Interval rtems_interval;
101
102/**
103 *  The following record defines the time of control block.  This
104 *  control block is used to maintain the current time of day.
105 *
106 *  @note This is an RTEID (a.k.a. Classic API) style time/date.
107 */
108typedef struct {
109  /** This field is the year, A.D. */
110  uint32_t   year;
111  /** This field is the month, 1 -> 12 */
112  uint32_t   month;
113  /** This field is the day, 1 -> 31 */
114  uint32_t   day;
115  /** This field is the hour, 0 -> 23 */
116  uint32_t   hour;
117  /** This field is the minute, 0 -> 59 */
118  uint32_t   minute;
119  /** This field is the second, 0 -> 59 */
120  uint32_t   second;
121  /** This field is the elapsed ticks between secs */
122  uint32_t   ticks;
123}   rtems_time_of_day;
124
125/**
126 *  This defines the public name for an RTEMS API task mode type.
127 */
128typedef Modes_Control rtems_mode;
129
130/*
131 *  MPCI related entries
132 */
133#if defined(RTEMS_MULTIPROCESSING)
134/**
135 * This defines the public name for the set of MPCI packet
136 * classes which are internally dispatched to the managers.
137 */
138typedef MP_packet_Classes          rtems_mp_packet_classes;
139
140/**
141 * This defines the public name for the common prefix
142 * found at the beginning of each MPCI packet sent between
143 * nodes. This can be thought of as an envelope.
144 */
145typedef MP_packet_Prefix           rtems_packet_prefix;
146
147/**
148 * This defines the public name for the type for an indirect pointer
149 * to the initialization entry point for an MPCI handler.
150 */
151typedef MPCI_initialization_entry  rtems_mpci_initialization_entry;
152
153/**
154 * This defines the public name for the type for an indirect pointer
155 * to the get_packet entry point for an MPCI handler.
156 */
157typedef MPCI_get_packet_entry      rtems_mpci_get_packet_entry;
158
159/**
160 * This defines the public name for the type for an indirect pointer
161 * to the return_packet entry point for an MPCI handler.
162 */
163typedef MPCI_return_packet_entry   rtems_mpci_return_packet_entry;
164
165/**
166 * This defines the public name for the type for an indirect pointer
167 * to the send_packet entry point for an MPCI handler.
168 */
169typedef MPCI_send_entry            rtems_mpci_send_packet_entry;
170
171/**
172 * This defines the public name for the type for an indirect pointer
173 * to the receive entry point for an MPCI handler.
174 */
175typedef MPCI_receive_entry         rtems_mpci_receive_packet_entry;
176
177/**
178 * This defines the public name for the return type from every
179 * MPCI handler routine.
180 */
181typedef MPCI_Entry                 rtems_mpci_entry;
182
183/**
184 * This defines the public name for the structure which is used to
185 * configure an MPCI handler.
186 */
187typedef MPCI_Control               rtems_mpci_table;
188
189#endif
190
191#ifdef __cplusplus
192}
193#endif
194
195/**@}*/
196
197#endif
198/* end of include file */
Note: See TracBrowser for help on using the repository browser.