]>
git.saurik.com Git - apple/icu.git/blob - icuSources/common/unicode/pwin32.h
2 ******************************************************************************
4 * Copyright (C) 1997-2003, International Business Machines
5 * Corporation and others. All Rights Reserved.
7 ******************************************************************************
9 * FILE NAME : platform.h
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 ******************************************************************************
19 /* Define the platform we're on. */
24 /* Define whether inttypes.h is available */
25 #define U_HAVE_INTTYPES_H 0
28 * Define what support for C++ streams is available.
29 * If U_IOSTREAM_SOURCE is set to 199711, then <iostream> is available
30 * (1997711 is the date the ISO/IEC C++ FDIS was published), and then
31 * one should qualify streams using the std namespace in ICU header
33 * If U_IOSTREAM_SOURCE is set to 198506, then <iostream.h> is
34 * available instead (198506 is the date when Stroustrup published
35 * "An Extensible I/O Facility for C++" at the summer USENIX conference).
36 * If U_IOSTREAM_SOURCE is 0, then C++ streams are not available and
37 * support for them will be silently suppressed in ICU.
41 #ifndef U_IOSTREAM_SOURCE
42 #define U_IOSTREAM_SOURCE 199711
45 /* Determines whether specific types are available */
46 #define U_HAVE_INT8_T 0
47 #define U_HAVE_UINT8_T 0
48 #define U_HAVE_INT16_T 0
49 #define U_HAVE_UINT16_T 0
50 #define U_HAVE_INT32_T 0
51 #define U_HAVE_UINT32_T 0
52 #define U_HAVE_INT64_T 0
53 #define U_HAVE_UINT64_T 0
55 /* Define whether namespace is supported */
56 #define U_HAVE_NAMESPACE 1
58 /* Determines the endianness of the platform */
59 #define U_IS_BIG_ENDIAN 0
61 /* Determine whether to override new and delete. */
62 #ifndef U_OVERRIDE_CXX_ALLOCATION
63 #define U_OVERRIDE_CXX_ALLOCATION 1
65 /* Determine whether to override placement new and delete for STL. */
66 #ifndef U_HAVE_PLACEMENT_NEW
67 #define U_HAVE_PLACEMENT_NEW 1
70 /*===========================================================================*/
71 /* Generic data types */
72 /*===========================================================================*/
74 /* If your platform does not have the <inttypes.h> header, you may
75 need to edit the typedefs below. */
81 typedef signed char int8_t;
85 typedef unsigned char uint8_t;
89 typedef signed short int16_t;
93 typedef unsigned short uint16_t;
98 typedef signed int int32_t;
100 typedef signed long int32_t;
104 #if ! U_HAVE_UINT32_T
106 typedef unsigned int uint32_t;
108 typedef unsigned long uint32_t;
113 /* Could use _MSC_VER to detect Microsoft compiler. */
114 typedef signed __int64
int64_t;
117 #if ! U_HAVE_UINT64_T
118 /* Could use _MSC_VER to detect Microsoft compiler. */
119 typedef unsigned __int64
uint64_t;
124 /*===========================================================================*/
125 /* Character data types */
126 /*===========================================================================*/
128 #define U_SIZEOF_WCHAR_T 2
130 /*===========================================================================*/
131 /* Do we have wcscpy and other similar functions */
132 /*===========================================================================*/
134 #define U_HAVE_WCSCPY 1
136 /*===========================================================================*/
137 /* Information about POSIX support */
138 /*===========================================================================*/
140 #define U_TZSET _tzset
141 #define U_HAVE_TIMEZONE 1
143 # define U_TIMEZONE _timezone
145 #define U_TZNAME _tzname
147 #define U_HAVE_MMAP 0
149 /*===========================================================================*/
150 /* Symbol import-export control */
151 /*===========================================================================*/
153 #define U_EXPORT __declspec(dllexport)
154 #define U_EXPORT2 __cdecl
155 #define U_IMPORT __declspec(dllimport)
157 /*===========================================================================*/
158 /* Code alignment and C function inlining */
159 /*===========================================================================*/
161 #define U_INLINE __inline
163 #if defined(_MSC_VER) && defined(_M_IX86)
164 #define U_ALIGN_CODE(val) __asm align val
166 #define U_ALIGN_CODE(val)
170 /*===========================================================================*/
171 /* Programs used by ICU code */
172 /*===========================================================================*/
174 #define U_MAKE "nmake"