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