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