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