150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/*
250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho******************************************************************************
350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho*
450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho*   Copyright (C) 1997-2010, International Business Machines
550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho*   Corporation and others.  All Rights Reserved.
650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho*
750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho******************************************************************************
850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho*
950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho*  FILE NAME : ptypes.h
1050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho*
1150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho*   Date        Name        Description
1250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho*   05/13/98    nos         Creation (content moved here from ptypes.h).
1350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho*   03/02/99    stephen     Added AS400 support.
1450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho*   03/30/99    stephen     Added Linux support.
1550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho*   04/13/99    stephen     Reworked for autoconf.
1650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho*   09/18/08    srl         Moved basic types back to ptypes.h from platform.h
1750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho******************************************************************************
1850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho*/
1950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
2050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#ifndef _PTYPES_H
2150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#define _PTYPES_H
2250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
2350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#include <sys/types.h>
2450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
2550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#include "unicode/platform.h"
2650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
2750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/*===========================================================================*/
2850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/* Generic data types                                                        */
2950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/*===========================================================================*/
3050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
3150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/* If your platform does not have the <inttypes.h> header, you may
3250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho   need to edit the typedefs below. */
3350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#if U_HAVE_INTTYPES_H
3450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
3550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/* autoconf 2.13 sometimes can't properly find the data types in <inttypes.h> */
3650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/* os/390 needs <inttypes.h>, but it doesn't have int8_t, and it sometimes */
3750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/* doesn't have uint8_t depending on the OS version. */
3850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/* So we have this work around. */
3950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#ifdef OS390
4050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/* The features header is needed to get (u)int64_t sometimes. */
4150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#include <features.h>
4250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#if ! U_HAVE_INT8_T
4350294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehotypedef signed char int8_t;
4450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#endif
4550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#if !defined(__uint8_t)
4650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#define __uint8_t 1
4750294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehotypedef unsigned char uint8_t;
4850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#endif
4950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#endif /* OS390 */
5050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
5150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#include <inttypes.h>
5250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
5350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#else /* U_HAVE_INTTYPES_H */
5450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
5550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#if ! U_HAVE_INT8_T
5650294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehotypedef signed char int8_t;
5750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#endif
5850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
5950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#if ! U_HAVE_UINT8_T
6050294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehotypedef unsigned char uint8_t;
6150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#endif
6250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
6350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#if ! U_HAVE_INT16_T
6450294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehotypedef signed short int16_t;
6550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#endif
6650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
6750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#if ! U_HAVE_UINT16_T
6850294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehotypedef unsigned short uint16_t;
6950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#endif
7050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
7150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#if ! U_HAVE_INT32_T
7250294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehotypedef signed int int32_t;
7350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#endif
7450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
7550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#if ! U_HAVE_UINT32_T
7650294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehotypedef unsigned int uint32_t;
7750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#endif
7850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
7950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#if ! U_HAVE_INT64_T
8050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho    typedef signed long long int64_t;
8150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/* else we may not have a 64-bit type */
8250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#endif
8350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
8450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#if ! U_HAVE_UINT64_T
8550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho    typedef unsigned long long uint64_t;
8650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/* else we may not have a 64-bit type */
8750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#endif
8850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
8950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#endif /* U_HAVE_INTTYPES_H */
9050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
9150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#endif /* _PTYPES_H */
9250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
93