1/* 2****************************************************************************** 3* 4* Copyright (C) 1997-2010, International Business Machines 5* Corporation and others. All Rights Reserved. 6* 7****************************************************************************** 8* 9* FILE NAME : ptypes.h 10* 11* Date Name Description 12* 05/13/98 nos Creation (content moved here from ptypes.h). 13* 03/02/99 stephen Added AS400 support. 14* 03/30/99 stephen Added Linux support. 15* 04/13/99 stephen Reworked for autoconf. 16* 09/18/08 srl Moved basic types back to ptypes.h from platform.h 17****************************************************************************** 18*/ 19 20#ifndef _PTYPES_H 21#define _PTYPES_H 22 23#include <sys/types.h> 24 25#include "unicode/platform.h" 26 27/*===========================================================================*/ 28/* Generic data types */ 29/*===========================================================================*/ 30 31/* If your platform does not have the <inttypes.h> header, you may 32 need to edit the typedefs below. */ 33#if U_HAVE_INTTYPES_H 34 35/* autoconf 2.13 sometimes can't properly find the data types in <inttypes.h> */ 36/* os/390 needs <inttypes.h>, but it doesn't have int8_t, and it sometimes */ 37/* doesn't have uint8_t depending on the OS version. */ 38/* So we have this work around. */ 39#ifdef OS390 40/* The features header is needed to get (u)int64_t sometimes. */ 41#include <features.h> 42#if ! U_HAVE_INT8_T 43typedef signed char int8_t; 44#endif 45#if !defined(__uint8_t) 46#define __uint8_t 1 47typedef unsigned char uint8_t; 48#endif 49#endif /* OS390 */ 50 51#include <inttypes.h> 52 53#else /* U_HAVE_INTTYPES_H */ 54 55#if ! U_HAVE_INT8_T 56typedef signed char int8_t; 57#endif 58 59#if ! U_HAVE_UINT8_T 60typedef unsigned char uint8_t; 61#endif 62 63#if ! U_HAVE_INT16_T 64typedef signed short int16_t; 65#endif 66 67#if ! U_HAVE_UINT16_T 68typedef unsigned short uint16_t; 69#endif 70 71#if ! U_HAVE_INT32_T 72typedef signed int int32_t; 73#endif 74 75#if ! U_HAVE_UINT32_T 76typedef unsigned int uint32_t; 77#endif 78 79#if ! U_HAVE_INT64_T 80 typedef signed long long int64_t; 81/* else we may not have a 64-bit type */ 82#endif 83 84#if ! U_HAVE_UINT64_T 85 typedef unsigned long long uint64_t; 86/* else we may not have a 64-bit type */ 87#endif 88 89#endif /* U_HAVE_INTTYPES_H */ 90 91#endif /* _PTYPES_H */ 92 93