1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
26
27
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
53
54
57
58
59
63
64
65
66
67
68
69
70
71
72
73
74
75
76
79
80
84
85
86
90
91
92
93
94
95
99
100
101
102
103
104
110
111
112
113
114
115
121
122
123
124
125
128
129
130
133
134
135
138
139
140
143
144
145
146
147
148
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
173
174
175
176
177
178
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
/* ... */
#ifndef OI_STDDEFS_H
#define OI_STDDEFS_H
/* ... */
/* ... */
#include "oi_cpu_dep.h"
#ifdef __cplusplus
extern "C" {
#endif
#ifndef FALSE
#define FALSE 0
#endif
#ifndef TRUE
#define TRUE (!FALSE)
#endif
#ifdef HEW_TOOLCHAIN
#ifdef NULL
#undef NULL
#endif
#define NULL 0 /* ... */
#else
#ifndef NULL
#define NULL ((void*)0)
#endif/* ... */
#endif
/* ... */
#define OI_INT8_MIN ((OI_INT8)0x80)
#define OI_INT8_MAX ((OI_INT8)0x7F)
#define OI_INT16_MIN ((OI_INT16)0x8000)
#define OI_INT16_MAX ((OI_INT16)0x7FFF)
#define OI_INT32_MIN ((OI_INT32)0x80000000)
#define OI_INT32_MAX ((OI_INT32)0x7FFFFFFF)
#define OI_UINT8_MIN ((OI_UINT8)0)
#define OI_UINT8_MAX ((OI_UINT8)0xFF)
#define OI_UINT16_MIN ((OI_UINT16)0)
#define OI_UINT16_MAX ((OI_UINT16)0xFFFF)
#define OI_UINT32_MIN ((OI_UINT32)0)
#define OI_UINT32_MAX ((OI_UINT32)0xFFFFFFFF) 12 defines
/* ... */
/* ... */
typedef struct {
OI_UINT32 I1;
OI_UINT32 I2;
}{ ... } OI_UINT64;
#define OI_UINT64_MIN { (OI_UINT32)0x00000000, (OI_UINT32)0x00000000 }
#define OI_UINT64_MAX { (OI_UINT32)0XFFFFFFFF, (OI_UINT32)0XFFFFFFFF }
typedef struct {
OI_INT32 I1;
OI_UINT32 I2;
}{ ... } OI_INT64;
#define OI_INT64_MIN { (OI_INT32)0x80000000, (OI_UINT32)0x00000000 }
#define OI_INT64_MAX { (OI_INT32)0X7FFFFFFF, (OI_UINT32)0XFFFFFFFF }
typedef struct {
OI_UINT32 I1;
OI_UINT32 I2;
OI_UINT32 I3;
OI_UINT32 I4;
}{ ... } OI_UINT128;
#define OI_UINT128_MIN { (OI_UINT32)0x00000000, (OI_UINT32)0x00000000, (OI_UINT32)0x00000000, (OI_UINT32)0x00000000 }
#define OI_UINT128_MAX { (OI_UINT32)0XFFFFFFFF, (OI_UINT32)0XFFFFFFFF, (OI_UINT32)0XFFFFFFFF, (OI_UINT32)0XFFFFFFFF }
typedef struct {
OI_INT32 I1;
OI_UINT32 I2;
OI_UINT32 I3;
OI_UINT32 I4;
}{ ... } OI_INT128;
#define OI_INT128_MIN { (OI_UINT32)0x80000000, (OI_UINT32)0x00000000, (OI_UINT32)0x00000000, (OI_UINT32)0x00000000 }
#define OI_INT128_MAX { (OI_UINT32)0X7FFFFFFF, (OI_UINT32)0XFFFFFFFF, (OI_UINT32)0XFFFFFFFF, (OI_UINT32)0XFFFFFFFF }
/* ... */
/* ... */
typedef char OI_CHAR;
/* ... */
typedef OI_UINT16 OI_CHAR16;
/* ... */
typedef OI_UINT8 OI_UTF8;
typedef OI_UINT16 OI_UTF16;
typedef OI_UINT32 OI_UTF32;
/* ... */
#define OI_BIT_TEST(x,y) ((x) & (y))
#define OI_BIT_CLEAR_TEST(x,y) (((x) & (y)) == 0)
#define OI_BIT_SET(x,y) ((x) |= (y))
#define OI_BIT_CLEAR(x,y) ((x) &= ~(y))
/* ... */
#ifndef OI_ARRAYSIZE
#define OI_ARRAYSIZE(a) (sizeof(a)/sizeof(a[0]))
#endif
/* ... */
#ifndef BIT0
#define BIT0 0x00000001
#define BIT1 0x00000002
#define BIT2 0x00000004
#define BIT3 0x00000008
#define BIT4 0x00000010
#define BIT5 0x00000020
#define BIT6 0x00000040
#define BIT7 0x00000080
#define BIT8 0x00000100
#define BIT9 0x00000200
#define BIT10 0x00000400
#define BIT11 0x00000800
#define BIT12 0x00001000
#define BIT13 0x00002000
#define BIT14 0x00004000
#define BIT15 0x00008000
#define BIT16 0x00010000
#define BIT17 0x00020000
#define BIT18 0x00040000
#define BIT19 0x00080000
#define BIT20 0x00100000
#define BIT21 0x00200000
#define BIT22 0x00400000
#define BIT23 0x00800000
#define BIT24 0x01000000
#define BIT25 0x02000000
#define BIT26 0x04000000
#define BIT27 0x08000000
#define BIT28 0x10000000
#define BIT29 0x20000000
#define BIT30 0x40000000
#define BIT31 0x80000000 32 defines
/* ... */
#endif
#ifdef __cplusplus
}{...}
#endif
/* ... */
#endif