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