RTI Connext Micro
Version 2.4.1.0
Main Page
RTI Connext Micro Documentation
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
osapi_types_impl.h
Go to the documentation of this file.
1
/*
2
* FILE: osapi_types_impl.h - Implementation of primitive data-types
3
*
4
* Copyright 2012-2014 Real-Time Innovations, Inc.
5
*
6
* No duplications, whole or partial, manual or electronic, may be made
7
* without express written permission. Any such copies, or
8
* revisions thereof, must display this notice unaltered.
9
* This code contains trade secrets of Real-Time Innovations, Inc.
10
*
11
* Modification History
12
* --------------------
13
* 05Jun2012,kaj Add RTI_INT64, RTI_UINT64, RTI_DOUBLE128
14
* 29feb2012,tk Written
15
*/
16
/*ce
17
* \file
18
* \brief Primitive data type implementation
19
*/
20
/*e \ingroup OSAPITypeClass
21
*/
22
23
#ifndef osapi_types_impl_h
24
#define osapi_types_impl_h
25
26
#if defined(_M_IX86)
27
/*i
28
*/
29
typedef
signed
int
RTI_INT32;
30
31
/*i
32
*/
33
typedef
unsigned
int
RTI_UINT32;
34
35
/*i
36
*/
37
typedef
signed
short
RTI_INT16;
38
39
/*i
40
*/
41
typedef
unsigned
short
RTI_UINT16;
42
43
/*i
44
*/
45
typedef
signed
char
RTI_INT8;
46
47
/*i
48
*/
49
typedef
unsigned
char
RTI_UINT8;
50
51
/*i
52
*/
53
typedef
__int64 RTI_INT64;
54
55
/*i
56
*/
57
typedef
unsigned
__int64 RTI_UINT64;
58
59
#ifdef RTI_HAVE_FLOAT
60
/*i
61
*/
62
typedef
float
RTI_FLOAT32;
63
64
/*i
65
*/
66
typedef
double
RTI_DOUBLE64;
67
#ifdef RTI_HAVE_LONG_DOUBLE
68
/*i Warning: Microsoft Visual Studio long double is only 8 bytes
69
Verify your implementation before enabling */
70
typedef
long
double
RTI_DOUBLE128;
71
#else
72
/*i
73
*/
74
typedef
struct
RTI_DOUBLE128
75
{
76
char
bytes[16];
77
} RTI_DOUBLE128;
78
#endif
79
#else
80
/*i
81
*/
82
typedef
unsigned
int
RTI_FLOAT32;
83
84
/*i
85
*/
86
typedef
unsigned
__int64 RTI_DOUBLE64;
87
88
/*i
89
*/
90
typedef
struct
RTI_DOUBLE128 {
91
char
bytes[16];
92
} RTI_DOUBLE128;
93
#endif
94
95
#elif __STDC__
96
#include <limits.h>
97
#include <stddef.h>
98
99
#ifndef INT_MAX
100
#error "INT_MAX not defined"
101
#endif
102
103
#if INT_MAX == 2147483647
104
/*i
105
*/
106
typedef
signed
int
RTI_INT32;
107
108
/*i
109
*/
110
typedef
unsigned
int
RTI_UINT32;
111
#else
112
#error "INT_MAX is unknown. Please define RTI_INT32/UINT32"
113
#endif
/* INT_MAX */
114
115
#if SHRT_MAX == 32767
116
/*i
117
*/
118
typedef
signed
short
RTI_INT16;
119
120
/*i
121
*/
122
typedef
unsigned
short
RTI_UINT16;
123
#else
124
#error "SHRT_MAX is unknown. Please define RTI_INT16/UINT16"
125
#endif
/* SHRT_MAX */
126
127
#if SCHAR_MAX == 127
128
/*i
129
*/
130
typedef
signed
char
RTI_INT8;
131
132
/*i
133
*/
134
typedef
unsigned
char
RTI_UINT8;
135
#else
136
#error "SHRT_MAX is unknown. Please define RTI_INT8/UINT8"
137
#endif
/* SCHAR_MAX */
138
139
#ifdef __LONG_LONG_MAX__
140
#if __LONG_LONG_MAX__ == 9223372036854775807LL
141
/*i
142
*/
143
typedef
signed
long
long
int
RTI_INT64;
144
145
/*i
146
*/
147
typedef
unsigned
long
long
int
RTI_UINT64;
148
#else
149
#error "__LONG_LONG_MAX__ does not support long long. Please define RTI_INT64/UINT64"
150
#endif
151
#else
152
#ifdef LLONG_MAX
153
/*i
154
*/
155
typedef
signed
long
long
int
RTI_INT64;
156
157
/*i
158
*/
159
typedef
unsigned
long
long
int
RTI_UINT64;
160
#else
161
#error "__LONG_LONG_MAX__ and LLONG_MAX are unknown. Please define RTI_INT64/UINT64"
162
#endif
163
#endif
164
165
#ifdef RTI_HAVE_FLOAT
166
/*i
167
*/
168
typedef
float
RTI_FLOAT32;
169
170
/*i
171
*/
172
typedef
double
RTI_DOUBLE64;
173
#ifdef RTI_HAVE_LONG_DOUBLE
174
#if __GNUC__ > 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ > 2))
175
176
/*i
177
*/
178
typedef
__float128 RTI_DOUBLE128;
179
#else
180
/*i Warning: GNU long double is only 12 bytes
181
* Verify your implementation before enabling
182
*/
183
typedef
long
double
RTI_DOUBLE128;
184
#endif
185
#else
186
/*i
187
*/
188
typedef
struct
RTI_DOUBLE128
189
{
190
char
bytes[16];
191
} RTI_DOUBLE128;
192
#endif
193
#else
194
/*i
195
*/
196
typedef
unsigned
int
RTI_FLOAT32;
197
198
/*i
199
*/
200
typedef
unsigned
long
long
int
RTI_DOUBLE64;
201
202
/*i
203
*/
204
typedef
struct
RTI_DOUBLE128
205
{
206
char
bytes[16];
207
} RTI_DOUBLE128;
208
#endif
209
210
#elif defined(_M_IX86)
211
/*i
212
*/
213
typedef
signed
int
RTI_INT32;
214
215
/*i
216
*/
217
typedef
unsigned
int
RTI_UINT32;
218
219
/*i
220
*/
221
typedef
signed
short
RTI_INT16;
222
223
/*i
224
*/
225
typedef
unsigned
short
RTI_UINT16;
226
227
/*i
228
*/
229
typedef
signed
char
RTI_INT8;
230
231
/*i
232
*/
233
typedef
unsigned
char
RTI_UINT8;
234
235
/*i
236
*/
237
typedef
__int64 RTI_INT64;
238
239
/*i
240
*/
241
typedef
unsigned
__int64 RTI_UINT64;
242
243
#ifdef RTI_HAVE_FLOAT
244
/*i
245
*/
246
typedef
float
RTI_FLOAT32;
247
248
/*i
249
*/
250
typedef
double
RTI_DOUBLE64;
251
#ifdef RTI_HAVE_LONG_DOUBLE
252
/*i Warning: Microsoft Visual Studio long double is only 8 bytes
253
* Verify your implementation before enabling
254
*/
255
typedef
long
double
RTI_DOUBLE128;
256
#else
257
/*i
258
*/
259
typedef
struct
RTI_DOUBLE128
260
{
261
char
bytes[16];
262
} RTI_DOUBLE128;
263
#endif
264
#else
265
/*i
266
*/
267
typedef
unsigned
int
RTI_FLOAT32;
268
269
/*i
270
*/
271
typedef
unsigned
__int64 RTI_DOUBLE64;
272
273
/*i
274
*/
275
typedef
struct
RTI_DOUBLE128
276
{
277
char
bytes[16];
278
} RTI_DOUBLE128;
279
#endif
280
281
#else
282
#error "Non-standard compiler detected. Please define data-types"
283
#endif
/* __STDC__ */
284
285
286
#endif
/* osapi_types_impl_h */
RTI Connext Micro Version 2.4.1.0
Copyright © Thu Nov 20 2014
Real-Time Innovations, Inc