Home | History | Annotate | Download | only in unicode
      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
     43 typedef signed char int8_t;
     44 #endif
     45 #if !defined(__uint8_t)
     46 #define __uint8_t 1
     47 typedef 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
     56 typedef signed char int8_t;
     57 #endif
     58 
     59 #if ! U_HAVE_UINT8_T
     60 typedef unsigned char uint8_t;
     61 #endif
     62 
     63 #if ! U_HAVE_INT16_T
     64 typedef signed short int16_t;
     65 #endif
     66 
     67 #if ! U_HAVE_UINT16_T
     68 typedef unsigned short uint16_t;
     69 #endif
     70 
     71 #if ! U_HAVE_INT32_T
     72 typedef signed int int32_t;
     73 #endif
     74 
     75 #if ! U_HAVE_UINT32_T
     76 typedef 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