xref: /btstack/3rd-party/bluedroid/decoder/include/oi_cpu_dep.h (revision df25739fc3ea5a0a90f0f5925e6461d653697d2e)
1*df25739fSMilanka Ringwald /******************************************************************************
2*df25739fSMilanka Ringwald  *
3*df25739fSMilanka Ringwald  *  Copyright (C) 2014 The Android Open Source Project
4*df25739fSMilanka Ringwald  *  Copyright 2002 - 2004 Open Interface North America, Inc. All rights reserved.
5*df25739fSMilanka Ringwald  *
6*df25739fSMilanka Ringwald  *  Licensed under the Apache License, Version 2.0 (the "License");
7*df25739fSMilanka Ringwald  *  you may not use this file except in compliance with the License.
8*df25739fSMilanka Ringwald  *  You may obtain a copy of the License at:
9*df25739fSMilanka Ringwald  *
10*df25739fSMilanka Ringwald  *  http://www.apache.org/licenses/LICENSE-2.0
11*df25739fSMilanka Ringwald  *
12*df25739fSMilanka Ringwald  *  Unless required by applicable law or agreed to in writing, software
13*df25739fSMilanka Ringwald  *  distributed under the License is distributed on an "AS IS" BASIS,
14*df25739fSMilanka Ringwald  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15*df25739fSMilanka Ringwald  *  See the License for the specific language governing permissions and
16*df25739fSMilanka Ringwald  *  limitations under the License.
17*df25739fSMilanka Ringwald  *
18*df25739fSMilanka Ringwald  ******************************************************************************/
19*df25739fSMilanka Ringwald #ifndef _OI_CPU_DEP_H
20*df25739fSMilanka Ringwald #define _OI_CPU_DEP_H
21*df25739fSMilanka Ringwald /**
22*df25739fSMilanka Ringwald  * @file
23*df25739fSMilanka Ringwald  * This file contains definitions for characteristics of the target CPU and
24*df25739fSMilanka Ringwald  * compiler, including primitive data types and endianness.
25*df25739fSMilanka Ringwald  *
26*df25739fSMilanka Ringwald  * This file defines the byte order and primitive data types for various
27*df25739fSMilanka Ringwald  * CPU families. The preprocessor symbol 'CPU' must be defined to be an
28*df25739fSMilanka Ringwald  * appropriate value or this header will generate a compile-time error.
29*df25739fSMilanka Ringwald  *
30*df25739fSMilanka Ringwald  * @note The documentation for this header file uses the x86 family of processors
31*df25739fSMilanka Ringwald  * as an illustrative example for CPU/compiler-dependent data type definitions.
32*df25739fSMilanka Ringwald  * Go to the source code of this header file to see the details of primitive type
33*df25739fSMilanka Ringwald  * definitions for each platform.
34*df25739fSMilanka Ringwald  *
35*df25739fSMilanka Ringwald  * Additional information is available in the @ref data_types_docpage section.
36*df25739fSMilanka Ringwald  */
37*df25739fSMilanka Ringwald 
38*df25739fSMilanka Ringwald /**********************************************************************************
39*df25739fSMilanka Ringwald   $Revision: #1 $
40*df25739fSMilanka Ringwald ***********************************************************************************/
41*df25739fSMilanka Ringwald 
42*df25739fSMilanka Ringwald #ifdef __cplusplus
43*df25739fSMilanka Ringwald extern "C" {
44*df25739fSMilanka Ringwald #endif
45*df25739fSMilanka Ringwald 
46*df25739fSMilanka Ringwald #include <stdint.h>
47*df25739fSMilanka Ringwald 
48*df25739fSMilanka Ringwald /** \addtogroup Misc Miscellaneous APIs */
49*df25739fSMilanka Ringwald /**@{*/
50*df25739fSMilanka Ringwald 
51*df25739fSMilanka Ringwald /** @name Definitions indicating family of target OI_CPU_TYPE
52*df25739fSMilanka Ringwald  *  @{
53*df25739fSMilanka Ringwald  */
54*df25739fSMilanka Ringwald 
55*df25739fSMilanka Ringwald #define OI_CPU_X86         1 /**< x86 processor family */
56*df25739fSMilanka Ringwald #define OI_CPU_ARM         2 /**< ARM processor family.
57*df25739fSMilanka Ringwald                                   @deprecated Use #OI_CPU_ARM7_LEND or
58*df25739fSMilanka Ringwald                                   #OI_CPU_ARM7_BEND. */
59*df25739fSMilanka Ringwald #define OI_CPU_ARC         3 /**< ARC processor family.
60*df25739fSMilanka Ringwald                                   @deprecated Use #OI_CPU_ARC_LEND or
61*df25739fSMilanka Ringwald                                   #OI_CPU_ARC_BEND. */
62*df25739fSMilanka Ringwald #define OI_CPU_SH3         4 /**< Hitachi SH-3 processor family */
63*df25739fSMilanka Ringwald #define OI_CPU_H8          5 /**< Hitachi H8 processor family */
64*df25739fSMilanka Ringwald #define OI_CPU_MIPS        6 /**< MIPS processor family */
65*df25739fSMilanka Ringwald #define OI_CPU_SPARC       7 /**< SPARC processor family */
66*df25739fSMilanka Ringwald #define OI_CPU_M68000      8 /**< Motorola M68000 processor family */
67*df25739fSMilanka Ringwald #define OI_CPU_PPC         9 /**< PowerPC (PPC) processor family */
68*df25739fSMilanka Ringwald #define OI_CPU_SH4_7750   10 /**< Hitachi SH7750 series in SH-4 processor family */
69*df25739fSMilanka Ringwald #define OI_CPU_SH2        11 /**< Hitachi SH-2 processor family */
70*df25739fSMilanka Ringwald #define OI_CPU_ARM7_LEND  12 /**< ARM7, little-endian */
71*df25739fSMilanka Ringwald #define OI_CPU_ARM7_BEND  13 /**< ARM7, big-endian */
72*df25739fSMilanka Ringwald #define OI_CPU_GDM1202    14 /**< GCT GDM1202 */
73*df25739fSMilanka Ringwald #define OI_CPU_ARC_LEND   15 /**< ARC processor family, little-endian */
74*df25739fSMilanka Ringwald #define OI_CPU_ARC_BEND   16 /**< ARC processor family, big-endian */
75*df25739fSMilanka Ringwald #define OI_CPU_M30833F    17 /**< Mitsubishi M308 processor family */
76*df25739fSMilanka Ringwald #define OI_CPU_CR16C      18 /**< National Semiconductor 16 bit processor family */
77*df25739fSMilanka Ringwald #define OI_CPU_M64111     19 /**< Renesas M64111 processor (M32R family) */
78*df25739fSMilanka Ringwald #define OI_CPU_ARMV5_LEND 20 //*< ARM5, little-endian */
79*df25739fSMilanka Ringwald 
80*df25739fSMilanka Ringwald /* BK4BTSTACK_CHANGE START */
81*df25739fSMilanka Ringwald // #define OI_CPU_TYPE 12
82*df25739fSMilanka Ringwald 
83*df25739fSMilanka Ringwald /** @name Definitions indicating byte-wise endianness of target CPU
84*df25739fSMilanka Ringwald  *  @{
85*df25739fSMilanka Ringwald  */
86*df25739fSMilanka Ringwald 
87*df25739fSMilanka Ringwald #define OI_BIG_ENDIAN_BYTE_ORDER    0  /**< Multiple-byte values are stored in memory beginning with the most significant byte at the lowest address.  */
88*df25739fSMilanka Ringwald #define OI_LITTLE_ENDIAN_BYTE_ORDER 1  /**< Multiple-byte values are stored in memory beginning with the least significant byte at the lowest address. */
89*df25739fSMilanka Ringwald 
90*df25739fSMilanka Ringwald #ifndef OI_CPU_TYPE
91*df25739fSMilanka Ringwald 
92*df25739fSMilanka Ringwald 
93*df25739fSMilanka Ringwald #if 0
94*df25739fSMilanka Ringwald / #error "OI_CPU_TYPE type not defined"
95*df25739fSMilanka Ringwald #else
96*df25739fSMilanka Ringwald 
97*df25739fSMilanka Ringwald // BK
98*df25739fSMilanka Ringwald 
99*df25739fSMilanka Ringwald /** @name CPU/compiler-dependent primitive data type definitions for SH-3 processor family
100*df25739fSMilanka Ringwald  *  @{
101*df25739fSMilanka Ringwald  */
102*df25739fSMilanka Ringwald 
103*df25739fSMilanka Ringwald typedef int8_t     OI_INT8;   /**< 8-bit signed integer values use native signed character data type for SH-3 processor. */
104*df25739fSMilanka Ringwald typedef int16_t    OI_INT16;  /**< 16-bit signed integer values use native signed short integer data type for SH-3 processor. */
105*df25739fSMilanka Ringwald typedef int32_t     OI_INT32;  /**< 32-bit signed integer values use native signed long integer data type for SH-3 processor. */
106*df25739fSMilanka Ringwald typedef uint8_t   OI_UINT8;  /**< 8-bit unsigned integer values use native unsigned character data type for SH-3 processor. */
107*df25739fSMilanka Ringwald typedef uint16_t  OI_UINT16; /**< 16-bit unsigned integer values use native unsigned short integer data type for SH-3 processor. */
108*df25739fSMilanka Ringwald typedef uint32_t   OI_UINT32; /**< 32-bit unsigned integer values use native unsigned long integer data type for SH-3 processor. */
109*df25739fSMilanka Ringwald 
110*df25739fSMilanka Ringwald typedef OI_UINT32 OI_ELEMENT_UNION; /**< Type for first element of a union to support all data types up to pointer width. */
111*df25739fSMilanka Ringwald 
112*df25739fSMilanka Ringwald 
113*df25739fSMilanka Ringwald #ifdef __LITTLE_ENDIAN__
114*df25739fSMilanka Ringwald #define OI_CPU_BYTE_ORDER OI_LITTLE_ENDIAN_BYTE_ORDER
115*df25739fSMilanka Ringwald #endif
116*df25739fSMilanka Ringwald 
117*df25739fSMilanka Ringwald #ifdef __BIG_ENDIAN__
118*df25739fSMilanka Ringwald #define OI_CPU_BYTE_ORDER OI_BIG_ENDIAN_BYTE_ORDER
119*df25739fSMilanka Ringwald #endif
120*df25739fSMilanka Ringwald 
121*df25739fSMilanka Ringwald // emergency fallback
122*df25739fSMilanka Ringwald #ifndef OI_CPU_BYTE_ORDER
123*df25739fSMilanka Ringwald #define OI_CPU_BYTE_ORDER OI_LITTLE_ENDIAN_BYTE_ORDER
124*df25739fSMilanka Ringwald #endif
125*df25739fSMilanka Ringwald 
126*df25739fSMilanka Ringwald /**@}*/
127*df25739fSMilanka Ringwald #endif
128*df25739fSMilanka Ringwald 
129*df25739fSMilanka Ringwald /**@}*/
130*df25739fSMilanka Ringwald #endif
131*df25739fSMilanka Ringwald /* BK4BTSTACK_CHANGE STOP */
132*df25739fSMilanka Ringwald 
133*df25739fSMilanka Ringwald /** @name  CPU/compiler-independent primitive data type definitions
134*df25739fSMilanka Ringwald  *  @{
135*df25739fSMilanka Ringwald  */
136*df25739fSMilanka Ringwald 
137*df25739fSMilanka Ringwald typedef int             OI_BOOL;  /**< Boolean values use native integer data type for target CPU. */
138*df25739fSMilanka Ringwald typedef int             OI_INT;   /**< Integer values use native integer data type for target CPU. */
139*df25739fSMilanka Ringwald typedef unsigned int    OI_UINT;  /**< Unsigned integer values use native unsigned integer data type for target CPU. */
140*df25739fSMilanka Ringwald typedef unsigned char   OI_BYTE;  /**< Raw bytes type uses native character data type for target CPU. */
141*df25739fSMilanka Ringwald 
142*df25739fSMilanka Ringwald /**@}*/
143*df25739fSMilanka Ringwald 
144*df25739fSMilanka Ringwald 
145*df25739fSMilanka Ringwald /*********************************************************************************/
146*df25739fSMilanka Ringwald 
147*df25739fSMilanka Ringwald #if OI_CPU_TYPE==OI_CPU_X86
148*df25739fSMilanka Ringwald 
149*df25739fSMilanka Ringwald #define OI_CPU_BYTE_ORDER OI_LITTLE_ENDIAN_BYTE_ORDER  /**< x86 platform byte ordering is little-endian */
150*df25739fSMilanka Ringwald 
151*df25739fSMilanka Ringwald /** @name CPU/compiler-dependent primitive data type definitions for x86 processor family
152*df25739fSMilanka Ringwald  *  @{
153*df25739fSMilanka Ringwald  */
154*df25739fSMilanka Ringwald typedef signed char     OI_INT8;   /**< 8-bit signed integer values use native signed character data type for x86 processor. */
155*df25739fSMilanka Ringwald typedef signed short    OI_INT16;  /**< 16-bit signed integer values use native signed short integer data type for x86 processor. */
156*df25739fSMilanka Ringwald typedef signed long     OI_INT32;  /**< 32-bit signed integer values use native signed long integer data type for x86 processor. */
157*df25739fSMilanka Ringwald typedef unsigned char   OI_UINT8;  /**< 8-bit unsigned integer values use native unsigned character data type for x86 processor. */
158*df25739fSMilanka Ringwald typedef unsigned short  OI_UINT16; /**< 16-bit unsigned integer values use native unsigned short integer data type for x86 processor. */
159*df25739fSMilanka Ringwald typedef unsigned long   OI_UINT32; /**< 32-bit unsigned integer values use native unsigned long integer data type for x86 processor. */
160*df25739fSMilanka Ringwald 
161*df25739fSMilanka Ringwald typedef OI_UINT32 OI_ELEMENT_UNION; /**< Type for first element of a union to support all data types up to pointer width. */
162*df25739fSMilanka Ringwald 
163*df25739fSMilanka Ringwald /**@}*/
164*df25739fSMilanka Ringwald 
165*df25739fSMilanka Ringwald #endif
166*df25739fSMilanka Ringwald 
167*df25739fSMilanka Ringwald /*********************************************************************************/
168*df25739fSMilanka Ringwald 
169*df25739fSMilanka Ringwald #if OI_CPU_TYPE==OI_CPU_ARM
170*df25739fSMilanka Ringwald /* This CPU type is deprecated (removed from use). Instead, use OI_CPU_ARM7_LEND or OI_CPU_ARM7_BEND for
171*df25739fSMilanka Ringwald    little-endian or big-endian configurations of the ARM7, respectively. */
172*df25739fSMilanka Ringwald #error OI_CPU_ARM is deprecated
173*df25739fSMilanka Ringwald #endif
174*df25739fSMilanka Ringwald 
175*df25739fSMilanka Ringwald /*********************************************************************************/
176*df25739fSMilanka Ringwald 
177*df25739fSMilanka Ringwald #if OI_CPU_TYPE==OI_CPU_ARC
178*df25739fSMilanka Ringwald /* This CPU type is deprecated (removed from use). Instead, use OI_CPU_ARC_LEND or OI_CPU_ARC_BEND for
179*df25739fSMilanka Ringwald    little-endian or big-endian configurations of the ARC, respectively. */
180*df25739fSMilanka Ringwald #error OI_CPU_ARC is deprecated
181*df25739fSMilanka Ringwald #endif
182*df25739fSMilanka Ringwald 
183*df25739fSMilanka Ringwald /*********************************************************************************/
184*df25739fSMilanka Ringwald 
185*df25739fSMilanka Ringwald #if OI_CPU_TYPE==OI_CPU_SH3
186*df25739fSMilanka Ringwald /* The Hitachi SH C compiler defines _LIT or _BIG, depending on the endianness
187*df25739fSMilanka Ringwald     specified to the compiler on the command line. */
188*df25739fSMilanka Ringwald #if defined(_LIT)
189*df25739fSMilanka Ringwald     #define OI_CPU_BYTE_ORDER OI_LITTLE_ENDIAN_BYTE_ORDER  /**< If _LIT is defined, SH-3 platform byte ordering is little-endian. */
190*df25739fSMilanka Ringwald #elif defined(_BIG)
191*df25739fSMilanka Ringwald     #define OI_CPU_BYTE_ORDER OI_BIG_ENDIAN_BYTE_ORDER     /**< If _BIG is defined, SH-3 platform byte ordering is big-endian. */
192*df25739fSMilanka Ringwald #else
193*df25739fSMilanka Ringwald     #error SH compiler endianness undefined
194*df25739fSMilanka Ringwald #endif
195*df25739fSMilanka Ringwald 
196*df25739fSMilanka Ringwald /** @name CPU/compiler-dependent primitive data type definitions for SH-3 processor family
197*df25739fSMilanka Ringwald  *  @{
198*df25739fSMilanka Ringwald  */
199*df25739fSMilanka Ringwald 
200*df25739fSMilanka Ringwald typedef signed char     OI_INT8;   /**< 8-bit signed integer values use native signed character data type for SH-3 processor. */
201*df25739fSMilanka Ringwald typedef signed short    OI_INT16;  /**< 16-bit signed integer values use native signed short integer data type for SH-3 processor. */
202*df25739fSMilanka Ringwald typedef signed long     OI_INT32;  /**< 32-bit signed integer values use native signed long integer data type for SH-3 processor. */
203*df25739fSMilanka Ringwald typedef unsigned char   OI_UINT8;  /**< 8-bit unsigned integer values use native unsigned character data type for SH-3 processor. */
204*df25739fSMilanka Ringwald typedef unsigned short  OI_UINT16; /**< 16-bit unsigned integer values use native unsigned short integer data type for SH-3 processor. */
205*df25739fSMilanka Ringwald typedef unsigned long   OI_UINT32; /**< 32-bit unsigned integer values use native unsigned long integer data type for SH-3 processor. */
206*df25739fSMilanka Ringwald 
207*df25739fSMilanka Ringwald typedef OI_UINT32 OI_ELEMENT_UNION; /**< Type for first element of a union to support all data types up to pointer width. */
208*df25739fSMilanka Ringwald 
209*df25739fSMilanka Ringwald /**@}*/
210*df25739fSMilanka Ringwald 
211*df25739fSMilanka Ringwald #endif
212*df25739fSMilanka Ringwald /*********************************************************************************/
213*df25739fSMilanka Ringwald 
214*df25739fSMilanka Ringwald #if OI_CPU_TYPE==OI_CPU_SH2
215*df25739fSMilanka Ringwald 
216*df25739fSMilanka Ringwald #define OI_CPU_BYTE_ORDER OI_BIG_ENDIAN_BYTE_ORDER /**< SH-2 platform byte ordering is big-endian. */
217*df25739fSMilanka Ringwald 
218*df25739fSMilanka Ringwald /** @name  CPU/compiler-dependent primitive data type definitions for SH-2 processor family
219*df25739fSMilanka Ringwald  *  @{
220*df25739fSMilanka Ringwald  */
221*df25739fSMilanka Ringwald 
222*df25739fSMilanka Ringwald typedef signed char     OI_INT8;   /**< 8-bit signed integer values use native signed character data type for SH-2 processor. */
223*df25739fSMilanka Ringwald typedef signed short    OI_INT16;  /**< 16-bit signed integer values use native signed short integer data type for SH-2 processor. */
224*df25739fSMilanka Ringwald typedef signed long     OI_INT32;  /**< 32-bit signed integer values use native signed long integer data type for SH-2 processor. */
225*df25739fSMilanka Ringwald typedef unsigned char   OI_UINT8;  /**< 8-bit unsigned integer values use native unsigned character data type for SH-2 processor. */
226*df25739fSMilanka Ringwald typedef unsigned short  OI_UINT16; /**< 16-bit unsigned integer values use native unsigned short integer data type for SH-2 processor. */
227*df25739fSMilanka Ringwald typedef unsigned long   OI_UINT32; /**< 32-bit unsigned integer values use native unsigned long integer data type for SH-2 processor. */
228*df25739fSMilanka Ringwald 
229*df25739fSMilanka Ringwald typedef OI_UINT32 OI_ELEMENT_UNION; /**< Type for first element of a union to support all data types up to pointer width. */
230*df25739fSMilanka Ringwald 
231*df25739fSMilanka Ringwald /**@}*/
232*df25739fSMilanka Ringwald 
233*df25739fSMilanka Ringwald #endif
234*df25739fSMilanka Ringwald /*********************************************************************************/
235*df25739fSMilanka Ringwald 
236*df25739fSMilanka Ringwald #if OI_CPU_TYPE==OI_CPU_H8
237*df25739fSMilanka Ringwald #define OI_CPU_BYTE_ORDER OI_BIG_ENDIAN_BYTE_ORDER
238*df25739fSMilanka Ringwald #error basic types not defined
239*df25739fSMilanka Ringwald #endif
240*df25739fSMilanka Ringwald 
241*df25739fSMilanka Ringwald /*********************************************************************************/
242*df25739fSMilanka Ringwald 
243*df25739fSMilanka Ringwald #if OI_CPU_TYPE==OI_CPU_MIPS
244*df25739fSMilanka Ringwald #define OI_CPU_BYTE_ORDER OI_LITTLE_ENDIAN_BYTE_ORDER
245*df25739fSMilanka Ringwald /** @name  CPU/compiler-dependent primitive data type definitions for MIPS processor family
246*df25739fSMilanka Ringwald  *  @{
247*df25739fSMilanka Ringwald  */
248*df25739fSMilanka Ringwald typedef signed char     OI_INT8;   /**< 8-bit signed integer values use native signed character data type for ARM7 processor. */
249*df25739fSMilanka Ringwald typedef signed short    OI_INT16;  /**< 16-bit signed integer values use native signed short integer data type for ARM7 processor. */
250*df25739fSMilanka Ringwald typedef signed long     OI_INT32;  /**< 32-bit signed integer values use native signed long integer data type for ARM7 processor. */
251*df25739fSMilanka Ringwald typedef unsigned char   OI_UINT8;  /**< 8-bit unsigned integer values use native unsigned character data type for ARM7 processor. */
252*df25739fSMilanka Ringwald typedef unsigned short  OI_UINT16; /**< 16-bit unsigned integer values use native unsigned short integer data type for ARM7 processor. */
253*df25739fSMilanka Ringwald typedef unsigned long   OI_UINT32; /**< 32-bit unsigned integer values use native unsigned long integer data type for ARM7 processor. */
254*df25739fSMilanka Ringwald 
255*df25739fSMilanka Ringwald typedef OI_UINT32 OI_ELEMENT_UNION; /**< Type for first element of a union to support all data types up to pointer width. */
256*df25739fSMilanka Ringwald 
257*df25739fSMilanka Ringwald /**@}*/
258*df25739fSMilanka Ringwald 
259*df25739fSMilanka Ringwald #endif
260*df25739fSMilanka Ringwald 
261*df25739fSMilanka Ringwald /*********************************************************************************/
262*df25739fSMilanka Ringwald 
263*df25739fSMilanka Ringwald #if OI_CPU_TYPE==OI_CPU_SPARC
264*df25739fSMilanka Ringwald #define OI_CPU_BYTE_ORDER OI_LITTLE_ENDIAN_BYTE_ORDER
265*df25739fSMilanka Ringwald #error basic types not defined
266*df25739fSMilanka Ringwald #endif
267*df25739fSMilanka Ringwald 
268*df25739fSMilanka Ringwald /*********************************************************************************/
269*df25739fSMilanka Ringwald 
270*df25739fSMilanka Ringwald #if OI_CPU_TYPE==OI_CPU_M68000
271*df25739fSMilanka Ringwald #define OI_CPU_BYTE_ORDER OI_BIG_ENDIAN_BYTE_ORDER  /**< M68000 platform byte ordering is big-endian. */
272*df25739fSMilanka Ringwald 
273*df25739fSMilanka Ringwald /** @name  CPU/compiler-dependent primitive data type definitions for M68000 processor family
274*df25739fSMilanka Ringwald  *  @{
275*df25739fSMilanka Ringwald  */
276*df25739fSMilanka Ringwald 
277*df25739fSMilanka Ringwald typedef signed char     OI_INT8;   /**< 8-bit signed integer values use native signed character data type for M68000 processor. */
278*df25739fSMilanka Ringwald typedef signed short    OI_INT16;  /**< 16-bit signed integer values use native signed short integer data type for M68000 processor. */
279*df25739fSMilanka Ringwald typedef signed long     OI_INT32;  /**< 32-bit signed integer values use native signed long integer data type for M68000 processor. */
280*df25739fSMilanka Ringwald typedef unsigned char   OI_UINT8;  /**< 8-bit unsigned integer values use native unsigned character data type for M68000 processor. */
281*df25739fSMilanka Ringwald typedef unsigned short  OI_UINT16; /**< 16-bit unsigned integer values use native unsigned short integer data type for M68000 processor. */
282*df25739fSMilanka Ringwald typedef unsigned long   OI_UINT32; /**< 32-bit unsigned integer values use native unsigned long integer data type for M68000 processor. */
283*df25739fSMilanka Ringwald 
284*df25739fSMilanka Ringwald typedef OI_UINT32 OI_ELEMENT_UNION; /**< Type for first element of a union to support all data types up to pointer width. */
285*df25739fSMilanka Ringwald 
286*df25739fSMilanka Ringwald /**@}*/
287*df25739fSMilanka Ringwald 
288*df25739fSMilanka Ringwald #endif
289*df25739fSMilanka Ringwald 
290*df25739fSMilanka Ringwald /*********************************************************************************/
291*df25739fSMilanka Ringwald 
292*df25739fSMilanka Ringwald #if OI_CPU_TYPE==OI_CPU_PPC
293*df25739fSMilanka Ringwald #define OI_CPU_BYTE_ORDER OI_BIG_ENDIAN_BYTE_ORDER
294*df25739fSMilanka Ringwald 
295*df25739fSMilanka Ringwald 
296*df25739fSMilanka Ringwald /** @name  CPU/compiler-dependent primitive data type definitions for PPC 8XX processor family
297*df25739fSMilanka Ringwald  *  @{
298*df25739fSMilanka Ringwald  */
299*df25739fSMilanka Ringwald 
300*df25739fSMilanka Ringwald typedef signed char     OI_INT8;   /**< 8-bit signed integer values use native signed character data type for PPC8XX processor. */
301*df25739fSMilanka Ringwald typedef signed short    OI_INT16;  /**< 16-bit signed integer values use native signed short integer data type for PPC8XX processor. */
302*df25739fSMilanka Ringwald typedef signed long     OI_INT32;  /**< 32-bit signed integer values use native signed long integer data type for PPC8XX processor. */
303*df25739fSMilanka Ringwald typedef unsigned char   OI_UINT8;  /**< 8-bit unsigned integer values use native unsigned character data type for PPC8XX processor. */
304*df25739fSMilanka Ringwald typedef unsigned short  OI_UINT16; /**< 16-bit unsigned integer values use native unsigned short integer data type for PPC8XX processor. */
305*df25739fSMilanka Ringwald typedef unsigned long   OI_UINT32; /**< 32-bit unsigned integer values use native unsigned long integer data type for PPC8XX processor. */
306*df25739fSMilanka Ringwald 
307*df25739fSMilanka Ringwald typedef OI_UINT32 OI_ELEMENT_UNION; /**< Type for first element of a union to support all data types up to pointer width. */
308*df25739fSMilanka Ringwald 
309*df25739fSMilanka Ringwald /**@}*/
310*df25739fSMilanka Ringwald 
311*df25739fSMilanka Ringwald #endif
312*df25739fSMilanka Ringwald 
313*df25739fSMilanka Ringwald /*********************************************************************************/
314*df25739fSMilanka Ringwald 
315*df25739fSMilanka Ringwald #if OI_CPU_TYPE==OI_CPU_SH4_7750
316*df25739fSMilanka Ringwald #define OI_CPU_BYTE_ORDER OI_BIG_ENDIAN_BYTE_ORDER  /**< SH7750 platform byte ordering is big-endian. */
317*df25739fSMilanka Ringwald 
318*df25739fSMilanka Ringwald /** @name   CPU/compiler-dependent primitive data type definitions for SH7750 processor series of the SH-4 processor family
319*df25739fSMilanka Ringwald  *  @{
320*df25739fSMilanka Ringwald  */
321*df25739fSMilanka Ringwald 
322*df25739fSMilanka Ringwald typedef signed char     OI_INT8;   /**< 8-bit signed integer values use native signed character data type for SH7750 SH-4 processor. */
323*df25739fSMilanka Ringwald typedef signed short    OI_INT16;  /**< 16-bit signed integer values use native signed short integer data type for SH7750 SH-4 processor. */
324*df25739fSMilanka Ringwald typedef signed long     OI_INT32;  /**< 32-bit signed integer values use native signed long integer data type for SH7750 SH-4 processor. */
325*df25739fSMilanka Ringwald typedef unsigned char   OI_UINT8;  /**< 8-bit unsigned integer values use native unsigned character data type for SH7750 SH-4 processor. */
326*df25739fSMilanka Ringwald typedef unsigned short  OI_UINT16; /**< 16-bit unsigned integer values use native unsigned short integer data type for SH7750 SH-4 processor. */
327*df25739fSMilanka Ringwald typedef unsigned long   OI_UINT32; /**< 32-bit unsigned integer values use native unsigned long integer data type for SH7750 SH-4 processor. */
328*df25739fSMilanka Ringwald 
329*df25739fSMilanka Ringwald typedef OI_UINT32 OI_ELEMENT_UNION; /**< Type for first element of a union to support all data types up to pointer width. */
330*df25739fSMilanka Ringwald 
331*df25739fSMilanka Ringwald /**@}*/
332*df25739fSMilanka Ringwald 
333*df25739fSMilanka Ringwald #endif
334*df25739fSMilanka Ringwald 
335*df25739fSMilanka Ringwald /*********************************************************************************/
336*df25739fSMilanka Ringwald 
337*df25739fSMilanka Ringwald #if OI_CPU_TYPE==OI_CPU_ARM7_LEND
338*df25739fSMilanka Ringwald #define OI_CPU_BYTE_ORDER OI_LITTLE_ENDIAN_BYTE_ORDER
339*df25739fSMilanka Ringwald 
340*df25739fSMilanka Ringwald /** @name   little-endian CPU/compiler-dependent primitive data type definitions for the ARM7 processor family
341*df25739fSMilanka Ringwald  *  @{
342*df25739fSMilanka Ringwald  */
343*df25739fSMilanka Ringwald 
344*df25739fSMilanka Ringwald typedef signed char     OI_INT8;   /**< 8-bit signed integer values use native signed character data type for ARM7 processor. */
345*df25739fSMilanka Ringwald typedef signed short    OI_INT16;  /**< 16-bit signed integer values use native signed short integer data type for ARM7 processor. */
346*df25739fSMilanka Ringwald typedef signed long     OI_INT32;  /**< 32-bit signed integer values use native signed long integer data type for ARM7 processor. */
347*df25739fSMilanka Ringwald typedef unsigned char   OI_UINT8;  /**< 8-bit unsigned integer values use native unsigned character data type for ARM7 processor. */
348*df25739fSMilanka Ringwald typedef unsigned short  OI_UINT16; /**< 16-bit unsigned integer values use native unsigned short integer data type for ARM7 processor. */
349*df25739fSMilanka Ringwald typedef unsigned long   OI_UINT32; /**< 32-bit unsigned integer values use native unsigned long integer data type for ARM7 processor. */
350*df25739fSMilanka Ringwald 
351*df25739fSMilanka Ringwald typedef void * OI_ELEMENT_UNION; /**< Type for first element of a union to support all data types up to pointer width. */
352*df25739fSMilanka Ringwald 
353*df25739fSMilanka Ringwald /**@}*/
354*df25739fSMilanka Ringwald 
355*df25739fSMilanka Ringwald #endif
356*df25739fSMilanka Ringwald 
357*df25739fSMilanka Ringwald /*********************************************************************************/
358*df25739fSMilanka Ringwald 
359*df25739fSMilanka Ringwald #if OI_CPU_TYPE==OI_CPU_ARM7_BEND
360*df25739fSMilanka Ringwald #define OI_CPU_BYTE_ORDER OI_BIG_ENDIAN_BYTE_ORDER
361*df25739fSMilanka Ringwald /** @name   big-endian CPU/compiler-dependent primitive data type definitions for the ARM7 processor family
362*df25739fSMilanka Ringwald  *  @{
363*df25739fSMilanka Ringwald  */
364*df25739fSMilanka Ringwald typedef signed char     OI_INT8;   /**< 8-bit signed integer values use native signed character data type for ARM7 processor. */
365*df25739fSMilanka Ringwald typedef signed short    OI_INT16;  /**< 16-bit signed integer values use native signed short integer data type for ARM7 processor. */
366*df25739fSMilanka Ringwald typedef signed long     OI_INT32;  /**< 32-bit signed integer values use native signed long integer data type for ARM7 processor. */
367*df25739fSMilanka Ringwald typedef unsigned char   OI_UINT8;  /**< 8-bit unsigned integer values use native unsigned character data type for ARM7 processor. */
368*df25739fSMilanka Ringwald typedef unsigned short  OI_UINT16; /**< 16-bit unsigned integer values use native unsigned short integer data type for ARM7 processor. */
369*df25739fSMilanka Ringwald typedef unsigned long   OI_UINT32; /**< 32-bit unsigned integer values use native unsigned long integer data type for ARM7 processor. */
370*df25739fSMilanka Ringwald 
371*df25739fSMilanka Ringwald typedef void * OI_ELEMENT_UNION; /**< Type for first element of a union to support all data types up to pointer width. */
372*df25739fSMilanka Ringwald 
373*df25739fSMilanka Ringwald /**@}*/
374*df25739fSMilanka Ringwald 
375*df25739fSMilanka Ringwald #endif
376*df25739fSMilanka Ringwald 
377*df25739fSMilanka Ringwald /*********************************************************************************/
378*df25739fSMilanka Ringwald 
379*df25739fSMilanka Ringwald #if OI_CPU_TYPE==OI_CPU_GDM1202
380*df25739fSMilanka Ringwald #define OI_CPU_BYTE_ORDER OI_BIG_ENDIAN_BYTE_ORDER
381*df25739fSMilanka Ringwald 
382*df25739fSMilanka Ringwald typedef signed char     OI_INT8;   /**< 8-bit signed integer. */
383*df25739fSMilanka Ringwald typedef signed short    OI_INT16;  /**< 16-bit signed integer. */
384*df25739fSMilanka Ringwald typedef signed long     OI_INT32;  /**< 32-bit signed integer. */
385*df25739fSMilanka Ringwald typedef unsigned char   OI_UINT8;  /**< 8-bit unsigned integer. */
386*df25739fSMilanka Ringwald typedef unsigned short  OI_UINT16; /**< 16-bit unsigned integer. */
387*df25739fSMilanka Ringwald typedef unsigned long   OI_UINT32; /**< 32-bit unsigned integer. */
388*df25739fSMilanka Ringwald 
389*df25739fSMilanka Ringwald typedef OI_UINT32 OI_ELEMENT_UNION; /**< Type for first element of a union to support all data types up to pointer width. */
390*df25739fSMilanka Ringwald 
391*df25739fSMilanka Ringwald #endif
392*df25739fSMilanka Ringwald 
393*df25739fSMilanka Ringwald /*********************************************************************************/
394*df25739fSMilanka Ringwald 
395*df25739fSMilanka Ringwald #if OI_CPU_TYPE==OI_CPU_ARC_LEND
396*df25739fSMilanka Ringwald 
397*df25739fSMilanka Ringwald #define OI_CPU_BYTE_ORDER OI_LITTLE_ENDIAN_BYTE_ORDER
398*df25739fSMilanka Ringwald 
399*df25739fSMilanka Ringwald /** @name CPU/compiler-dependent primitive data type definitions for ARC processor family
400*df25739fSMilanka Ringwald  *  @{
401*df25739fSMilanka Ringwald  */
402*df25739fSMilanka Ringwald 
403*df25739fSMilanka Ringwald typedef signed char     OI_INT8;   /**< 8-bit signed integer values use native signed character data type for ARC processor. */
404*df25739fSMilanka Ringwald typedef signed short    OI_INT16;  /**< 16-bit signed integer values use native signed short integer data type for ARC processor. */
405*df25739fSMilanka Ringwald typedef signed long     OI_INT32;  /**< 32-bit signed integer values use native signed long integer data type for ARC processor. */
406*df25739fSMilanka Ringwald typedef unsigned char   OI_UINT8;  /**< 8-bit unsigned integer values use native unsigned character data type for ARC processor. */
407*df25739fSMilanka Ringwald typedef unsigned short  OI_UINT16; /**< 16-bit unsigned integer values use native unsigned short integer data type for ARC processor. */
408*df25739fSMilanka Ringwald typedef unsigned long   OI_UINT32; /**< 32-bit unsigned integer values use native unsigned long integer data type for ARC processor. */
409*df25739fSMilanka Ringwald 
410*df25739fSMilanka Ringwald typedef OI_UINT32 OI_ELEMENT_UNION; /**< Type for first element of a union to support all data types up to pointer width. */
411*df25739fSMilanka Ringwald 
412*df25739fSMilanka Ringwald /**@}*/
413*df25739fSMilanka Ringwald #endif
414*df25739fSMilanka Ringwald 
415*df25739fSMilanka Ringwald /*********************************************************************************/
416*df25739fSMilanka Ringwald 
417*df25739fSMilanka Ringwald #if OI_CPU_TYPE==OI_CPU_ARC_BEND
418*df25739fSMilanka Ringwald 
419*df25739fSMilanka Ringwald #define OI_CPU_BYTE_ORDER OI_BIG_ENDIAN_BYTE_ORDER
420*df25739fSMilanka Ringwald 
421*df25739fSMilanka Ringwald /** @name CPU/compiler-dependent primitive data type definitions for ARC processor family
422*df25739fSMilanka Ringwald  *  @{
423*df25739fSMilanka Ringwald  */
424*df25739fSMilanka Ringwald 
425*df25739fSMilanka Ringwald typedef signed char     OI_INT8;   /**< 8-bit signed integer values use native signed character data type for ARC processor. */
426*df25739fSMilanka Ringwald typedef signed short    OI_INT16;  /**< 16-bit signed integer values use native signed short integer data type for ARC processor. */
427*df25739fSMilanka Ringwald typedef signed long     OI_INT32;  /**< 32-bit signed integer values use native signed long integer data type for ARC processor. */
428*df25739fSMilanka Ringwald typedef unsigned char   OI_UINT8;  /**< 8-bit unsigned integer values use native unsigned character data type for ARC processor. */
429*df25739fSMilanka Ringwald typedef unsigned short  OI_UINT16; /**< 16-bit unsigned integer values use native unsigned short integer data type for ARC processor. */
430*df25739fSMilanka Ringwald typedef unsigned long   OI_UINT32; /**< 32-bit unsigned integer values use native unsigned long integer data type for ARC processor. */
431*df25739fSMilanka Ringwald 
432*df25739fSMilanka Ringwald typedef OI_UINT32 OI_ELEMENT_UNION; /**< Type for first element of a union to support all data types up to pointer width. */
433*df25739fSMilanka Ringwald 
434*df25739fSMilanka Ringwald /**@}*/
435*df25739fSMilanka Ringwald #endif
436*df25739fSMilanka Ringwald 
437*df25739fSMilanka Ringwald /*********************************************************************************/
438*df25739fSMilanka Ringwald 
439*df25739fSMilanka Ringwald #if OI_CPU_TYPE==OI_CPU_M30833F
440*df25739fSMilanka Ringwald 
441*df25739fSMilanka Ringwald #define OI_CPU_BYTE_ORDER OI_LITTLE_ENDIAN_BYTE_ORDER
442*df25739fSMilanka Ringwald 
443*df25739fSMilanka Ringwald /** @name CPU/compiler-dependent primitive data type definitions for Mitsubishi M308 processor family
444*df25739fSMilanka Ringwald  *  @{
445*df25739fSMilanka Ringwald  */
446*df25739fSMilanka Ringwald 
447*df25739fSMilanka Ringwald typedef signed char     OI_INT8;   /**< 8-bit signed integer values use native signed character data type for M308 processor. */
448*df25739fSMilanka Ringwald typedef signed short    OI_INT16;  /**< 16-bit signed integer values use native signed short integer data type for M308 processor. */
449*df25739fSMilanka Ringwald typedef signed long     OI_INT32;  /**< 32-bit signed integer values use native signed long integer data type for M308 processor. */
450*df25739fSMilanka Ringwald typedef unsigned char   OI_UINT8;  /**< 8-bit unsigned integer values use native unsigned character data type for M308 processor. */
451*df25739fSMilanka Ringwald typedef unsigned short  OI_UINT16; /**< 16-bit unsigned integer values use native unsigned short integer data type for M308 processor. */
452*df25739fSMilanka Ringwald typedef unsigned long   OI_UINT32; /**< 32-bit unsigned integer values use native unsigned long integer data type for M308 processor. */
453*df25739fSMilanka Ringwald 
454*df25739fSMilanka Ringwald typedef OI_UINT32 OI_ELEMENT_UNION; /**< Type for first element of a union to support all data types up to pointer width. */
455*df25739fSMilanka Ringwald 
456*df25739fSMilanka Ringwald /**@}*/
457*df25739fSMilanka Ringwald #endif
458*df25739fSMilanka Ringwald 
459*df25739fSMilanka Ringwald /*********************************************************************************/
460*df25739fSMilanka Ringwald 
461*df25739fSMilanka Ringwald #if OI_CPU_TYPE==OI_CPU_CR16C
462*df25739fSMilanka Ringwald 
463*df25739fSMilanka Ringwald #define OI_CPU_BYTE_ORDER OI_LITTLE_ENDIAN_BYTE_ORDER
464*df25739fSMilanka Ringwald 
465*df25739fSMilanka Ringwald /** @name CPU/compiler-dependent primitive data type definitions for National Semicnductor processor family
466*df25739fSMilanka Ringwald  *  @{
467*df25739fSMilanka Ringwald  */
468*df25739fSMilanka Ringwald 
469*df25739fSMilanka Ringwald typedef signed char     OI_INT8;   /**< 8-bit signed integer values use native signed character data type for CR16C processor. */
470*df25739fSMilanka Ringwald typedef signed short    OI_INT16;  /**< 16-bit signed integer values use native signed short integer data type for CR16C processor. */
471*df25739fSMilanka Ringwald typedef signed long     OI_INT32;  /**< 32-bit signed integer values use native signed long integer data type for CR16C processor. */
472*df25739fSMilanka Ringwald typedef unsigned char   OI_UINT8;  /**< 8-bit unsigned integer values use native unsigned character data type for CR16C processor. */
473*df25739fSMilanka Ringwald typedef unsigned short  OI_UINT16; /**< 16-bit unsigned integer values use native unsigned short integer data type for CR16C processor. */
474*df25739fSMilanka Ringwald typedef unsigned long   OI_UINT32; /**< 32-bit unsigned integer values use native unsigned long integer data type for CR16C processor. */
475*df25739fSMilanka Ringwald 
476*df25739fSMilanka Ringwald typedef OI_UINT32 OI_ELEMENT_UNION; /**< Type for first element of a union to support all data types up to pointer width. */
477*df25739fSMilanka Ringwald 
478*df25739fSMilanka Ringwald /**@}*/
479*df25739fSMilanka Ringwald #endif
480*df25739fSMilanka Ringwald 
481*df25739fSMilanka Ringwald /*********************************************************************************/
482*df25739fSMilanka Ringwald 
483*df25739fSMilanka Ringwald #if OI_CPU_TYPE==OI_CPU_M64111
484*df25739fSMilanka Ringwald 
485*df25739fSMilanka Ringwald #define OI_CPU_BYTE_ORDER OI_BIG_ENDIAN_BYTE_ORDER
486*df25739fSMilanka Ringwald 
487*df25739fSMilanka Ringwald /** @name CPU/compiler-dependent primitive data type definitions for Renesas M32R processor family
488*df25739fSMilanka Ringwald  *  @{
489*df25739fSMilanka Ringwald  */
490*df25739fSMilanka Ringwald 
491*df25739fSMilanka Ringwald typedef signed char     OI_INT8;   /**< 8-bit signed integer values use native signed character data type for M64111 processor. */
492*df25739fSMilanka Ringwald typedef signed short    OI_INT16;  /**< 16-bit signed integer values use native signed short integer data type for M64111 processor. */
493*df25739fSMilanka Ringwald typedef signed long     OI_INT32;  /**< 32-bit signed integer values use native signed long integer data type for M64111 processor. */
494*df25739fSMilanka Ringwald typedef unsigned char   OI_UINT8;  /**< 8-bit unsigned integer values use native unsigned character data type for M64111 processor. */
495*df25739fSMilanka Ringwald typedef unsigned short  OI_UINT16; /**< 16-bit unsigned integer values use native unsigned short integer data type for M64111 processor. */
496*df25739fSMilanka Ringwald typedef unsigned long   OI_UINT32; /**< 32-bit unsigned integer values use native unsigned long integer data type for M64111 processor. */
497*df25739fSMilanka Ringwald 
498*df25739fSMilanka Ringwald typedef OI_UINT32 OI_ELEMENT_UNION; /**< Type for first element of a union to support all data types up to pointer width. */
499*df25739fSMilanka Ringwald 
500*df25739fSMilanka Ringwald /**@}*/
501*df25739fSMilanka Ringwald #endif
502*df25739fSMilanka Ringwald 
503*df25739fSMilanka Ringwald /*********************************************************************************/
504*df25739fSMilanka Ringwald 
505*df25739fSMilanka Ringwald #if OI_CPU_TYPE==OI_CPU_ARMV5_LEND
506*df25739fSMilanka Ringwald #define OI_CPU_BYTE_ORDER OI_LITTLE_ENDIAN_BYTE_ORDER
507*df25739fSMilanka Ringwald 
508*df25739fSMilanka Ringwald /** @name   little-endian CPU/compiler-dependent primitive data type definitions for the ARM7 processor family
509*df25739fSMilanka Ringwald  *  @{
510*df25739fSMilanka Ringwald  */
511*df25739fSMilanka Ringwald 
512*df25739fSMilanka Ringwald typedef signed char     OI_INT8;   /**< 8-bit signed integer values use native signed character data type for ARM7 processor. */
513*df25739fSMilanka Ringwald typedef signed short    OI_INT16;  /**< 16-bit signed integer values use native signed short integer data type for ARM7 processor. */
514*df25739fSMilanka Ringwald typedef signed long     OI_INT32;  /**< 32-bit signed integer values use native signed long integer data type for ARM7 processor. */
515*df25739fSMilanka Ringwald typedef unsigned char   OI_UINT8;  /**< 8-bit unsigned integer values use native unsigned character data type for ARM7 processor. */
516*df25739fSMilanka Ringwald typedef unsigned short  OI_UINT16; /**< 16-bit unsigned integer values use native unsigned short integer data type for ARM7 processor. */
517*df25739fSMilanka Ringwald typedef unsigned long   OI_UINT32; /**< 32-bit unsigned integer values use native unsigned long integer data type for ARM7 processor. */
518*df25739fSMilanka Ringwald 
519*df25739fSMilanka Ringwald typedef OI_UINT32 OI_ELEMENT_UNION; /**< Type for first element of a union to support all data types up to pointer width. */
520*df25739fSMilanka Ringwald 
521*df25739fSMilanka Ringwald /**@}*/
522*df25739fSMilanka Ringwald 
523*df25739fSMilanka Ringwald #endif
524*df25739fSMilanka Ringwald 
525*df25739fSMilanka Ringwald /*********************************************************************************/
526*df25739fSMilanka Ringwald 
527*df25739fSMilanka Ringwald 
528*df25739fSMilanka Ringwald #ifndef OI_CPU_BYTE_ORDER
529*df25739fSMilanka Ringwald     #error "Byte order (endian-ness) not defined"
530*df25739fSMilanka Ringwald #endif
531*df25739fSMilanka Ringwald 
532*df25739fSMilanka Ringwald 
533*df25739fSMilanka Ringwald /**@}*/
534*df25739fSMilanka Ringwald 
535*df25739fSMilanka Ringwald #ifdef __cplusplus
536*df25739fSMilanka Ringwald }
537*df25739fSMilanka Ringwald #endif
538*df25739fSMilanka Ringwald 
539*df25739fSMilanka Ringwald /*********************************************************************************/
540*df25739fSMilanka Ringwald #endif /* _OI_CPU_DEP_H */
541