/*
******************************************************************************
*
*   Copyright (C) 1997-2010, International Business Machines
*   Corporation and others.  All Rights Reserved.
*
******************************************************************************
*
*  FILE NAME : ptypes.h
*
*   Date        Name        Description
*   05/13/98    nos         Creation (content moved here from ptypes.h).
*   03/02/99    stephen     Added AS400 support.
*   03/30/99    stephen     Added Linux support.
*   04/13/99    stephen     Reworked for autoconf.
*   09/18/08    srl         Moved basic types back to ptypes.h from platform.h
******************************************************************************
*/

#ifndef _PTYPES_H
#define _PTYPES_H

#if defined(STARBOARD)
#include "starboard/types.h"
#include "unicode/pstarboard.h"
#else  // defined(STARBOARD)
#include <sys/types.h>

#if defined(__APPLE__)
#   include "unicode/pmac.h"
#elif defined(ANDROID)
#   include "unicode/pandroid.h"
#elif defined(__linux__)
#   include "unicode/plinux.h"
#elif defined(__LB_SHELL__)
#   if defined(__LB_ANDROID__)
#       include "unicode/pandroid.h"
#   elif defined(__LB_LINUX__)
#       include "unicode/plinux.h"
#   elif defined(__LB_PS3__)
#       include "unicode/pps3.h"
#   elif defined(__LB_PS4__)
#       include "unicode/pps4.h"
#   elif defined(__LB_WIIU__)
#       include "unicode/pwiiu.h"
#   elif defined(__LB_XB1__)
#       include "unicode/pxb1.h"
#   elif defined(__LB_XB360__)
#       include "unicode/pxb360.h"
#   else
#       error "Undefined Platform"
#   endif
#elif defined(__FreeBSD__)
#   include "unicode/pfreebsd.h"
#elif defined(__OpenBSD__)
#   include "unicode/popenbsd.h"
#else
#   include "unicode/platform.h"
#endif

#endif  // defined(STARBOARD)

/*===========================================================================*/
/* Generic data types                                                        */
/*===========================================================================*/

/* If your platform does not have the <inttypes.h> header, you may
   need to edit the typedefs below. */
#if U_HAVE_INTTYPES_H

/* autoconf 2.13 sometimes can't properly find the data types in <inttypes.h> */
/* os/390 needs <inttypes.h>, but it doesn't have int8_t, and it sometimes */
/* doesn't have uint8_t depending on the OS version. */
/* So we have this work around. */
#ifdef OS390
/* The features header is needed to get (u)int64_t sometimes. */
#include <features.h>
#if ! U_HAVE_INT8_T
typedef signed char int8_t;
#endif
#if !defined(__uint8_t)
#define __uint8_t 1
typedef unsigned char uint8_t;
#endif
#endif /* OS390 */

#include <inttypes.h>

#else /* U_HAVE_INTTYPES_H */

#if ! U_HAVE_INT8_T
typedef signed char int8_t;
#endif

#if ! U_HAVE_UINT8_T
typedef unsigned char uint8_t;
#endif

#if ! U_HAVE_INT16_T
typedef signed short int16_t;
#endif

#if ! U_HAVE_UINT16_T
typedef unsigned short uint16_t;
#endif

#if ! U_HAVE_INT32_T
typedef signed int int32_t;
#endif

#if ! U_HAVE_UINT32_T
typedef unsigned int uint32_t;
#endif

#if ! U_HAVE_INT64_T
    typedef signed long long int64_t;
/* else we may not have a 64-bit type */
#endif

#if ! U_HAVE_UINT64_T
    typedef unsigned long long uint64_t;
/* else we may not have a 64-bit type */
#endif

#endif /* U_HAVE_INTTYPES_H */

#endif /* _PTYPES_H */
