/****************************************************************************** * * Copyright (C) 2014 The Android Open Source Project * Copyright 2002 - 2004 Open Interface North America, Inc. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ******************************************************************************//* ... */#ifndef_OI_CPU_DEP_H#define_OI_CPU_DEP_H/** * @file * This file contains definitions for characteristics of the target CPU and * compiler, including primitive data types and endianness. * * This file defines the byte order and primitive data types for various * CPU families. The preprocessor symbol 'CPU' must be defined to be an * appropriate value or this header will generate a compile-time error. * * @note The documentation for this header file uses the x86 family of processors * as an illustrative example for CPU/compiler-dependent data type definitions. * Go to the source code of this header file to see the details of primitive type * definitions for each platform. * * Additional information is available in the @ref data_types_docpage section. *//* ... *//********************************************************************************** $Revision: #1 $***********************************************************************************//* ... */#ifdef__cplusplusextern"C"{#endif/** \addtogroup Misc Miscellaneous APIs *//**@{*//** @name Definitions indicating family of target OI_CPU_TYPE * @{ *//* ... */#defineOI_CPU_X861/**< x86 processor family */#defineOI_CPU_ARM2/**< ARM processor family. @deprecated Use #OI_CPU_ARM7_LEND or #OI_CPU_ARM7_BEND. *//* ... */#defineOI_CPU_ARC3/**< ARC processor family. @deprecated Use #OI_CPU_ARC_LEND or #OI_CPU_ARC_BEND. *//* ... */#defineOI_CPU_SH34/**< Hitachi SH-3 processor family */#defineOI_CPU_H85/**< Hitachi H8 processor family */#defineOI_CPU_MIPS6/**< MIPS processor family */#defineOI_CPU_SPARC7/**< SPARC processor family */#defineOI_CPU_M680008/**< Motorola M68000 processor family */#defineOI_CPU_PPC9/**< PowerPC (PPC) processor family */#defineOI_CPU_SH4_775010/**< Hitachi SH7750 series in SH-4 processor family */#defineOI_CPU_SH211/**< Hitachi SH-2 processor family */#defineOI_CPU_ARM7_LEND12/**< ARM7, little-endian */#defineOI_CPU_ARM7_BEND13/**< ARM7, big-endian */#defineOI_CPU_GDM120214/**< GCT GDM1202 */#defineOI_CPU_ARC_LEND15/**< ARC processor family, little-endian */#defineOI_CPU_ARC_BEND16/**< ARC processor family, big-endian */#defineOI_CPU_M30833F17/**< Mitsubishi M308 processor family */#defineOI_CPU_CR16C18/**< National Semiconductor 16 bit processor family */#defineOI_CPU_M6411119/**< Renesas M64111 processor (M32R family) */#defineOI_CPU_ARMV5_LEND20//*< ARM5, little-endian */#defineOI_CPU_TYPE1221 defines#ifndefOI_CPU_TYPE#error"OI_CPU_TYPE type not defined"#endif/**@}*//** @name Definitions indicating byte-wise endianness of target CPU * @{ *//* ... */#defineOI_BIG_ENDIAN_BYTE_ORDER0/**< Multiple-byte values are stored in memory beginning with the most significant byte at the lowest address. */#defineOI_LITTLE_ENDIAN_BYTE_ORDER1/**< Multiple-byte values are stored in memory beginning with the least significant byte at the lowest address. *//**@}*//** @name CPU/compiler-independent primitive data type definitions * @{ *//* ... */typedefintOI_BOOL;/**< Boolean values use native integer data type for target CPU. */typedefintOI_INT;/**< Integer values use native integer data type for target CPU. */typedefunsignedintOI_UINT;/**< Unsigned integer values use native unsigned integer data type for target CPU. */typedefunsignedcharOI_BYTE;/**< Raw bytes type uses native character data type for target CPU. *//**@}*//*********************************************************************************/#ifOI_CPU_TYPE==OI_CPU_X86#defineOI_CPU_BYTE_ORDEROI_LITTLE_ENDIAN_BYTE_ORDER/**< x86 platform byte ordering is little-endian *//** @name CPU/compiler-dependent primitive data type definitions for x86 processor family * @{ *//* ... */typedefsignedcharOI_INT8;/**< 8-bit signed integer values use native signed character data type for x86 processor. */typedefsignedshortOI_INT16;/**< 16-bit signed integer values use native signed short integer data type for x86 processor. */typedefsignedlongOI_INT32;/**< 32-bit signed integer values use native signed long integer data type for x86 processor. */typedefunsignedcharOI_UINT8;/**< 8-bit unsigned integer values use native unsigned character data type for x86 processor. */typedefunsignedshortOI_UINT16;/**< 16-bit unsigned integer values use native unsigned short integer data type for x86 processor. */typedefunsignedlongOI_UINT32;/**< 32-bit unsigned integer values use native unsigned long integer data type for x86 processor. */typedefOI_UINT32OI_ELEMENT_UNION;/**< Type for first element of a union to support all data types up to pointer width. *//**@}*//* ... */#endif.../*********************************************************************************/#ifOI_CPU_TYPE==OI_CPU_ARM/* This CPU type is deprecated (removed from use). Instead, use OI_CPU_ARM7_LEND or OI_CPU_ARM7_BEND for little-endian or big-endian configurations of the ARM7, respectively. *//* ... */#errorOI_CPU_ARMisdeprecated/* ... */#endif.../*********************************************************************************/#ifOI_CPU_TYPE==OI_CPU_ARC/* This CPU type is deprecated (removed from use). Instead, use OI_CPU_ARC_LEND or OI_CPU_ARC_BEND for little-endian or big-endian configurations of the ARC, respectively. *//* ... */#errorOI_CPU_ARCisdeprecated/* ... */#endif.../*********************************************************************************/#ifOI_CPU_TYPE==OI_CPU_SH3/* The Hitachi SH C compiler defines _LIT or _BIG, depending on the endianness specified to the compiler on the command line. *//* ... */#ifdefined(_LIT)#defineOI_CPU_BYTE_ORDEROI_LITTLE_ENDIAN_BYTE_ORDER/**< If _LIT is defined, SH-3 platform byte ordering is little-endian. */#elifdefined(_BIG)#defineOI_CPU_BYTE_ORDEROI_BIG_ENDIAN_BYTE_ORDER/**< If _BIG is defined, SH-3 platform byte ordering is big-endian. */#else#errorSHcompilerendiannessundefined#endif/** @name CPU/compiler-dependent primitive data type definitions for SH-3 processor family * @{ *//* ... */typedefsignedcharOI_INT8;/**< 8-bit signed integer values use native signed character data type for SH-3 processor. */typedefsignedshortOI_INT16;/**< 16-bit signed integer values use native signed short integer data type for SH-3 processor. */typedefsignedlongOI_INT32;/**< 32-bit signed integer values use native signed long integer data type for SH-3 processor. */typedefunsignedcharOI_UINT8;/**< 8-bit unsigned integer values use native unsigned character data type for SH-3 processor. */typedefunsignedshortOI_UINT16;/**< 16-bit unsigned integer values use native unsigned short integer data type for SH-3 processor. */typedefunsignedlongOI_UINT32;/**< 32-bit unsigned integer values use native unsigned long integer data type for SH-3 processor. */typedefOI_UINT32OI_ELEMENT_UNION;/**< Type for first element of a union to support all data types up to pointer width. *//**@}*//* ... */#endif.../*********************************************************************************/#ifOI_CPU_TYPE==OI_CPU_SH2#defineOI_CPU_BYTE_ORDEROI_BIG_ENDIAN_BYTE_ORDER/**< SH-2 platform byte ordering is big-endian. *//** @name CPU/compiler-dependent primitive data type definitions for SH-2 processor family * @{ *//* ... */typedefsignedcharOI_INT8;/**< 8-bit signed integer values use native signed character data type for SH-2 processor. */typedefsignedshortOI_INT16;/**< 16-bit signed integer values use native signed short integer data type for SH-2 processor. */typedefsignedlongOI_INT32;/**< 32-bit signed integer values use native signed long integer data type for SH-2 processor. */typedefunsignedcharOI_UINT8;/**< 8-bit unsigned integer values use native unsigned character data type for SH-2 processor. */typedefunsignedshortOI_UINT16;/**< 16-bit unsigned integer values use native unsigned short integer data type for SH-2 processor. */typedefunsignedlongOI_UINT32;/**< 32-bit unsigned integer values use native unsigned long integer data type for SH-2 processor. */typedefOI_UINT32OI_ELEMENT_UNION;/**< Type for first element of a union to support all data types up to pointer width. *//**@}*//* ... */#endif.../*********************************************************************************/#ifOI_CPU_TYPE==OI_CPU_H8#defineOI_CPU_BYTE_ORDEROI_BIG_ENDIAN_BYTE_ORDER#errorbasictypesnotdefined/* ... */#endif.../*********************************************************************************/#ifOI_CPU_TYPE==OI_CPU_MIPS#defineOI_CPU_BYTE_ORDEROI_LITTLE_ENDIAN_BYTE_ORDER/** @name CPU/compiler-dependent primitive data type definitions for MIPS processor family * @{ *//* ... */typedefsignedcharOI_INT8;/**< 8-bit signed integer values use native signed character data type for ARM7 processor. */typedefsignedshortOI_INT16;/**< 16-bit signed integer values use native signed short integer data type for ARM7 processor. */typedefsignedlongOI_INT32;/**< 32-bit signed integer values use native signed long integer data type for ARM7 processor. */typedefunsignedcharOI_UINT8;/**< 8-bit unsigned integer values use native unsigned character data type for ARM7 processor. */typedefunsignedshortOI_UINT16;/**< 16-bit unsigned integer values use native unsigned short integer data type for ARM7 processor. */typedefunsignedlongOI_UINT32;/**< 32-bit unsigned integer values use native unsigned long integer data type for ARM7 processor. */typedefOI_UINT32OI_ELEMENT_UNION;/**< Type for first element of a union to support all data types up to pointer width. *//**@}*//* ... */#endif.../*********************************************************************************/#ifOI_CPU_TYPE==OI_CPU_SPARC#defineOI_CPU_BYTE_ORDEROI_LITTLE_ENDIAN_BYTE_ORDER#errorbasictypesnotdefined/* ... */#endif.../*********************************************************************************/#ifOI_CPU_TYPE==OI_CPU_M68000#defineOI_CPU_BYTE_ORDEROI_BIG_ENDIAN_BYTE_ORDER/**< M68000 platform byte ordering is big-endian. *//** @name CPU/compiler-dependent primitive data type definitions for M68000 processor family * @{ *//* ... */typedefsignedcharOI_INT8;/**< 8-bit signed integer values use native signed character data type for M68000 processor. */typedefsignedshortOI_INT16;/**< 16-bit signed integer values use native signed short integer data type for M68000 processor. */typedefsignedlongOI_INT32;/**< 32-bit signed integer values use native signed long integer data type for M68000 processor. */typedefunsignedcharOI_UINT8;/**< 8-bit unsigned integer values use native unsigned character data type for M68000 processor. */typedefunsignedshortOI_UINT16;/**< 16-bit unsigned integer values use native unsigned short integer data type for M68000 processor. */typedefunsignedlongOI_UINT32;/**< 32-bit unsigned integer values use native unsigned long integer data type for M68000 processor. */typedefOI_UINT32OI_ELEMENT_UNION;/**< Type for first element of a union to support all data types up to pointer width. *//**@}*//* ... */#endif.../*********************************************************************************/#ifOI_CPU_TYPE==OI_CPU_PPC#defineOI_CPU_BYTE_ORDEROI_BIG_ENDIAN_BYTE_ORDER/** @name CPU/compiler-dependent primitive data type definitions for PPC 8XX processor family * @{ *//* ... */typedefsignedcharOI_INT8;/**< 8-bit signed integer values use native signed character data type for PPC8XX processor. */typedefsignedshortOI_INT16;/**< 16-bit signed integer values use native signed short integer data type for PPC8XX processor. */typedefsignedlongOI_INT32;/**< 32-bit signed integer values use native signed long integer data type for PPC8XX processor. */typedefunsignedcharOI_UINT8;/**< 8-bit unsigned integer values use native unsigned character data type for PPC8XX processor. */typedefunsignedshortOI_UINT16;/**< 16-bit unsigned integer values use native unsigned short integer data type for PPC8XX processor. */typedefunsignedlongOI_UINT32;/**< 32-bit unsigned integer values use native unsigned long integer data type for PPC8XX processor. */typedefOI_UINT32OI_ELEMENT_UNION;/**< Type for first element of a union to support all data types up to pointer width. *//**@}*//* ... */#endif.../*********************************************************************************/#ifOI_CPU_TYPE==OI_CPU_SH4_7750#defineOI_CPU_BYTE_ORDEROI_BIG_ENDIAN_BYTE_ORDER/**< SH7750 platform byte ordering is big-endian. *//** @name CPU/compiler-dependent primitive data type definitions for SH7750 processor series of the SH-4 processor family * @{ *//* ... */typedefsignedcharOI_INT8;/**< 8-bit signed integer values use native signed character data type for SH7750 SH-4 processor. */typedefsignedshortOI_INT16;/**< 16-bit signed integer values use native signed short integer data type for SH7750 SH-4 processor. */typedefsignedlongOI_INT32;/**< 32-bit signed integer values use native signed long integer data type for SH7750 SH-4 processor. */typedefunsignedcharOI_UINT8;/**< 8-bit unsigned integer values use native unsigned character data type for SH7750 SH-4 processor. */typedefunsignedshortOI_UINT16;/**< 16-bit unsigned integer values use native unsigned short integer data type for SH7750 SH-4 processor. */typedefunsignedlongOI_UINT32;/**< 32-bit unsigned integer values use native unsigned long integer data type for SH7750 SH-4 processor. */typedefOI_UINT32OI_ELEMENT_UNION;/**< Type for first element of a union to support all data types up to pointer width. *//**@}*//* ... */#endif.../*********************************************************************************/#ifOI_CPU_TYPE==OI_CPU_ARM7_LEND#defineOI_CPU_BYTE_ORDEROI_LITTLE_ENDIAN_BYTE_ORDER/** @name little-endian CPU/compiler-dependent primitive data type definitions for the ARM7 processor family * @{ *//* ... */typedefsignedcharOI_INT8;/**< 8-bit signed integer values use native signed character data type for ARM7 processor. */typedefsignedshortOI_INT16;/**< 16-bit signed integer values use native signed short integer data type for ARM7 processor. */typedefsignedlongOI_INT32;/**< 32-bit signed integer values use native signed long integer data type for ARM7 processor. */typedefunsignedcharOI_UINT8;/**< 8-bit unsigned integer values use native unsigned character data type for ARM7 processor. */typedefunsignedshortOI_UINT16;/**< 16-bit unsigned integer values use native unsigned short integer data type for ARM7 processor. */typedefunsignedlongOI_UINT32;/**< 32-bit unsigned integer values use native unsigned long integer data type for ARM7 processor. */typedefvoid*OI_ELEMENT_UNION;/**< Type for first element of a union to support all data types up to pointer width. *//**@}*//* ... */#endif.../*********************************************************************************/#ifOI_CPU_TYPE==OI_CPU_ARM7_BEND#defineOI_CPU_BYTE_ORDEROI_BIG_ENDIAN_BYTE_ORDER/** @name big-endian CPU/compiler-dependent primitive data type definitions for the ARM7 processor family * @{ *//* ... */typedefsignedcharOI_INT8;/**< 8-bit signed integer values use native signed character data type for ARM7 processor. */typedefsignedshortOI_INT16;/**< 16-bit signed integer values use native signed short integer data type for ARM7 processor. */typedefsignedlongOI_INT32;/**< 32-bit signed integer values use native signed long integer data type for ARM7 processor. */typedefunsignedcharOI_UINT8;/**< 8-bit unsigned integer values use native unsigned character data type for ARM7 processor. */typedefunsignedshortOI_UINT16;/**< 16-bit unsigned integer values use native unsigned short integer data type for ARM7 processor. */typedefunsignedlongOI_UINT32;/**< 32-bit unsigned integer values use native unsigned long integer data type for ARM7 processor. */typedefvoid*OI_ELEMENT_UNION;/**< Type for first element of a union to support all data types up to pointer width. *//**@}*//* ... */#endif.../*********************************************************************************/#ifOI_CPU_TYPE==OI_CPU_GDM1202#defineOI_CPU_BYTE_ORDEROI_BIG_ENDIAN_BYTE_ORDERtypedefsignedcharOI_INT8;/**< 8-bit signed integer. */typedefsignedshortOI_INT16;/**< 16-bit signed integer. */typedefsignedlongOI_INT32;/**< 32-bit signed integer. */typedefunsignedcharOI_UINT8;/**< 8-bit unsigned integer. */typedefunsignedshortOI_UINT16;/**< 16-bit unsigned integer. */typedefunsignedlongOI_UINT32;/**< 32-bit unsigned integer. */typedefOI_UINT32OI_ELEMENT_UNION;/**< Type for first element of a union to support all data types up to pointer width. *//* ... */#endif.../*********************************************************************************/#ifOI_CPU_TYPE==OI_CPU_ARC_LEND#defineOI_CPU_BYTE_ORDEROI_LITTLE_ENDIAN_BYTE_ORDER/** @name CPU/compiler-dependent primitive data type definitions for ARC processor family * @{ *//* ... */typedefsignedcharOI_INT8;/**< 8-bit signed integer values use native signed character data type for ARC processor. */typedefsignedshortOI_INT16;/**< 16-bit signed integer values use native signed short integer data type for ARC processor. */typedefsignedlongOI_INT32;/**< 32-bit signed integer values use native signed long integer data type for ARC processor. */typedefunsignedcharOI_UINT8;/**< 8-bit unsigned integer values use native unsigned character data type for ARC processor. */typedefunsignedshortOI_UINT16;/**< 16-bit unsigned integer values use native unsigned short integer data type for ARC processor. */typedefunsignedlongOI_UINT32;/**< 32-bit unsigned integer values use native unsigned long integer data type for ARC processor. */typedefOI_UINT32OI_ELEMENT_UNION;/**< Type for first element of a union to support all data types up to pointer width. *//**@}*//* ... */#endif.../*********************************************************************************/#ifOI_CPU_TYPE==OI_CPU_ARC_BEND#defineOI_CPU_BYTE_ORDEROI_BIG_ENDIAN_BYTE_ORDER/** @name CPU/compiler-dependent primitive data type definitions for ARC processor family * @{ *//* ... */typedefsignedcharOI_INT8;/**< 8-bit signed integer values use native signed character data type for ARC processor. */typedefsignedshortOI_INT16;/**< 16-bit signed integer values use native signed short integer data type for ARC processor. */typedefsignedlongOI_INT32;/**< 32-bit signed integer values use native signed long integer data type for ARC processor. */typedefunsignedcharOI_UINT8;/**< 8-bit unsigned integer values use native unsigned character data type for ARC processor. */typedefunsignedshortOI_UINT16;/**< 16-bit unsigned integer values use native unsigned short integer data type for ARC processor. */typedefunsignedlongOI_UINT32;/**< 32-bit unsigned integer values use native unsigned long integer data type for ARC processor. */typedefOI_UINT32OI_ELEMENT_UNION;/**< Type for first element of a union to support all data types up to pointer width. *//**@}*//* ... */#endif.../*********************************************************************************/#ifOI_CPU_TYPE==OI_CPU_M30833F#defineOI_CPU_BYTE_ORDEROI_LITTLE_ENDIAN_BYTE_ORDER/** @name CPU/compiler-dependent primitive data type definitions for Mitsubishi M308 processor family * @{ *//* ... */typedefsignedcharOI_INT8;/**< 8-bit signed integer values use native signed character data type for M308 processor. */typedefsignedshortOI_INT16;/**< 16-bit signed integer values use native signed short integer data type for M308 processor. */typedefsignedlongOI_INT32;/**< 32-bit signed integer values use native signed long integer data type for M308 processor. */typedefunsignedcharOI_UINT8;/**< 8-bit unsigned integer values use native unsigned character data type for M308 processor. */typedefunsignedshortOI_UINT16;/**< 16-bit unsigned integer values use native unsigned short integer data type for M308 processor. */typedefunsignedlongOI_UINT32;/**< 32-bit unsigned integer values use native unsigned long integer data type for M308 processor. */typedefOI_UINT32OI_ELEMENT_UNION;/**< Type for first element of a union to support all data types up to pointer width. *//**@}*//* ... */#endif.../*********************************************************************************/#ifOI_CPU_TYPE==OI_CPU_CR16C#defineOI_CPU_BYTE_ORDEROI_LITTLE_ENDIAN_BYTE_ORDER/** @name CPU/compiler-dependent primitive data type definitions for National Semicnductor processor family * @{ *//* ... */typedefsignedcharOI_INT8;/**< 8-bit signed integer values use native signed character data type for CR16C processor. */typedefsignedshortOI_INT16;/**< 16-bit signed integer values use native signed short integer data type for CR16C processor. */typedefsignedlongOI_INT32;/**< 32-bit signed integer values use native signed long integer data type for CR16C processor. */typedefunsignedcharOI_UINT8;/**< 8-bit unsigned integer values use native unsigned character data type for CR16C processor. */typedefunsignedshortOI_UINT16;/**< 16-bit unsigned integer values use native unsigned short integer data type for CR16C processor. */typedefunsignedlongOI_UINT32;/**< 32-bit unsigned integer values use native unsigned long integer data type for CR16C processor. */typedefOI_UINT32OI_ELEMENT_UNION;/**< Type for first element of a union to support all data types up to pointer width. *//**@}*//* ... */#endif.../*********************************************************************************/#ifOI_CPU_TYPE==OI_CPU_M64111#defineOI_CPU_BYTE_ORDEROI_BIG_ENDIAN_BYTE_ORDER/** @name CPU/compiler-dependent primitive data type definitions for Renesas M32R processor family * @{ *//* ... */typedefsignedcharOI_INT8;/**< 8-bit signed integer values use native signed character data type for M64111 processor. */typedefsignedshortOI_INT16;/**< 16-bit signed integer values use native signed short integer data type for M64111 processor. */typedefsignedlongOI_INT32;/**< 32-bit signed integer values use native signed long integer data type for M64111 processor. */typedefunsignedcharOI_UINT8;/**< 8-bit unsigned integer values use native unsigned character data type for M64111 processor. */typedefunsignedshortOI_UINT16;/**< 16-bit unsigned integer values use native unsigned short integer data type for M64111 processor. */typedefunsignedlongOI_UINT32;/**< 32-bit unsigned integer values use native unsigned long integer data type for M64111 processor. */typedefOI_UINT32OI_ELEMENT_UNION;/**< Type for first element of a union to support all data types up to pointer width. *//**@}*//* ... */#endif.../*********************************************************************************/#ifOI_CPU_TYPE==OI_CPU_ARMV5_LEND#defineOI_CPU_BYTE_ORDEROI_LITTLE_ENDIAN_BYTE_ORDER/** @name little-endian CPU/compiler-dependent primitive data type definitions for the ARM7 processor family * @{ *//* ... */typedefsignedcharOI_INT8;/**< 8-bit signed integer values use native signed character data type for ARM7 processor. */typedefsignedshortOI_INT16;/**< 16-bit signed integer values use native signed short integer data type for ARM7 processor. */typedefsignedlongOI_INT32;/**< 32-bit signed integer values use native signed long integer data type for ARM7 processor. */typedefunsignedcharOI_UINT8;/**< 8-bit unsigned integer values use native unsigned character data type for ARM7 processor. */typedefunsignedshortOI_UINT16;/**< 16-bit unsigned integer values use native unsigned short integer data type for ARM7 processor. */typedefunsignedlongOI_UINT32;/**< 32-bit unsigned integer values use native unsigned long integer data type for ARM7 processor. */typedefOI_UINT32OI_ELEMENT_UNION;/**< Type for first element of a union to support all data types up to pointer width. *//**@}*//* ... */#endif.../*********************************************************************************/#ifndefOI_CPU_BYTE_ORDER#error"Byte order (endian-ness) not defined"#endif/**@}*/#ifdef__cplusplus}{...}#endif/*********************************************************************************//* ... */#endif/* _OI_CPU_DEP_H */
Details
Show: from
Types: Columns:
All items filtered out
All items filtered out
This file uses the notable symbols shown below. Click anywhere in the file to view more details.