source: rtems/cpukit/rtems/include/rtems/rtems/types.h @ 2cc1b43

4.104.115
Last change on this file since 2cc1b43 was 2cc1b43, checked in by Joel Sherrill <joel.sherrill@…>, on 10/02/08 at 21:00:37

2008-10-02 Joel Sherrill <joel.sherrill@…>

  • libmisc/monitor/mon-monitor.c, rtems/include/rtems/rtems/types.h: Do not have fp context type when no hardware or software floating point is available.
  • Property mode set to 100644
File size: 5.1 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#if (CPU_HARDWARE_FP == TRUE) || (CPU_SOFTWARE_FP == TRUE)
79/**
80 * This type is the public name for task floating point context area.
81 */
82typedef Context_Control_fp         rtems_context_fp;
83#endif
84
85/**
86 * This type is the public name for the architecture specific
87 * stack frame built as part of vectoring an interrupt.
88 */
89typedef CPU_Interrupt_frame        rtems_interrupt_frame;
90
91/**
92 *  This type defines the public name for the information
93 *  structure returned by the Heap Handler via the Region
94 *  Manager.
95 */
96typedef Heap_Information_block region_information_block;
97
98/**
99 *  This type defines the public name for the type that is
100 *  used to manage intervals specified by clock ticks.
101 */
102typedef Watchdog_Interval rtems_interval;
103
104/**
105 *  The following record defines the time of control block.  This
106 *  control block is used to maintain the current time of day.
107 *
108 *  @note This is an RTEID (a.k.a. Classic API) style time/date.
109 */
110typedef struct {
111  /** This field is the year, A.D. */
112  uint32_t   year;
113  /** This field is the month, 1 -> 12 */
114  uint32_t   month;
115  /** This field is the day, 1 -> 31 */
116  uint32_t   day;
117  /** This field is the hour, 0 -> 23 */
118  uint32_t   hour;
119  /** This field is the minute, 0 -> 59 */
120  uint32_t   minute;
121  /** This field is the second, 0 -> 59 */
122  uint32_t   second;
123  /** This field is the elapsed ticks between secs */
124  uint32_t   ticks;
125}   rtems_time_of_day;
126
127/**
128 *  This defines the public name for an RTEMS API task mode type.
129 */
130typedef Modes_Control rtems_mode;
131
132/*
133 *  MPCI related entries
134 */
135#if defined(RTEMS_MULTIPROCESSING)
136/**
137 * This defines the public name for the set of MPCI packet
138 * classes which are internally dispatched to the managers.
139 */
140typedef MP_packet_Classes          rtems_mp_packet_classes;
141
142/**
143 * This defines the public name for the common prefix
144 * found at the beginning of each MPCI packet sent between
145 * nodes. This can be thought of as an envelope.
146 */
147typedef MP_packet_Prefix           rtems_packet_prefix;
148
149/**
150 * This defines the public name for the type for an indirect pointer
151 * to the initialization entry point for an MPCI handler.
152 */
153typedef MPCI_initialization_entry  rtems_mpci_initialization_entry;
154
155/**
156 * This defines the public name for the type for an indirect pointer
157 * to the get_packet entry point for an MPCI handler.
158 */
159typedef MPCI_get_packet_entry      rtems_mpci_get_packet_entry;
160
161/**
162 * This defines the public name for the type for an indirect pointer
163 * to the return_packet entry point for an MPCI handler.
164 */
165typedef MPCI_return_packet_entry   rtems_mpci_return_packet_entry;
166
167/**
168 * This defines the public name for the type for an indirect pointer
169 * to the send_packet entry point for an MPCI handler.
170 */
171typedef MPCI_send_entry            rtems_mpci_send_packet_entry;
172
173/**
174 * This defines the public name for the type for an indirect pointer
175 * to the receive entry point for an MPCI handler.
176 */
177typedef MPCI_receive_entry         rtems_mpci_receive_packet_entry;
178
179/**
180 * This defines the public name for the return type from every
181 * MPCI handler routine.
182 */
183typedef MPCI_Entry                 rtems_mpci_entry;
184
185/**
186 * This defines the public name for the structure which is used to
187 * configure an MPCI handler.
188 */
189typedef MPCI_Control               rtems_mpci_table;
190
191#endif
192
193#ifdef __cplusplus
194}
195#endif
196
197/**@}*/
198
199#endif
200/* end of include file */
Note: See TracBrowser for help on using the repository browser.