]> git.saurik.com Git - apple/icu.git/blame - icuSources/common/unicode/ptypes.h
ICU-461.18.tar.gz
[apple/icu.git] / icuSources / common / unicode / ptypes.h
CommitLineData
729e4ab9
A
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