OLD | NEW |
1 /* | 1 /* |
2 ****************************************************************************** | 2 ****************************************************************************** |
3 * | 3 * |
4 * Copyright (C) 1997-2013, International Business Machines | 4 * Copyright (C) 1997-2014, International Business Machines |
5 * Corporation and others. All Rights Reserved. | 5 * Corporation and others. All Rights Reserved. |
6 * | 6 * |
7 ****************************************************************************** | 7 ****************************************************************************** |
8 * | 8 * |
9 * FILE NAME : platform.h | 9 * FILE NAME : platform.h |
10 * | 10 * |
11 * Date Name Description | 11 * Date Name Description |
12 * 05/13/98 nos Creation (content moved here from ptypes.h). | 12 * 05/13/98 nos Creation (content moved here from ptypes.h). |
13 * 03/02/99 stephen Added AS400 support. | 13 * 03/02/99 stephen Added AS400 support. |
14 * 03/30/99 stephen Added Linux support. | 14 * 03/30/99 stephen Added Linux support. |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
114 * (Original description modified from WikiPedia.) | 114 * (Original description modified from WikiPedia.) |
115 * @internal | 115 * @internal |
116 */ | 116 */ |
117 #define U_PF_DARWIN 3500 | 117 #define U_PF_DARWIN 3500 |
118 /** iPhone OS (iOS) is a derivative of Mac OS X. @internal */ | 118 /** iPhone OS (iOS) is a derivative of Mac OS X. @internal */ |
119 #define U_PF_IPHONE 3550 | 119 #define U_PF_IPHONE 3550 |
120 /** QNX is a commercial Unix-like real-time operating system related to BSD. @in
ternal */ | 120 /** QNX is a commercial Unix-like real-time operating system related to BSD. @in
ternal */ |
121 #define U_PF_QNX 3700 | 121 #define U_PF_QNX 3700 |
122 /** Linux is a Unix-like operating system. @internal */ | 122 /** Linux is a Unix-like operating system. @internal */ |
123 #define U_PF_LINUX 4000 | 123 #define U_PF_LINUX 4000 |
124 /** Native Client is pretty close to Linux. @internal */ | |
125 #define U_PF_NATIVE_CLIENT 4050 | |
126 /** Android is based on Linux. @internal */ | 124 /** Android is based on Linux. @internal */ |
127 #define U_PF_ANDROID 4100 | 125 #define U_PF_ANDROID 4050 |
128 /** "Classic" Mac OS (1984-2001) @internal */ | |
129 #define U_PF_CLASSIC_MACOS 8000 | |
130 /** z/OS is the successor to OS/390 which was the successor to MVS. @internal */ | 126 /** z/OS is the successor to OS/390 which was the successor to MVS. @internal */ |
131 #define U_PF_OS390 9000 | 127 #define U_PF_OS390 9000 |
132 /** "IBM i" is the current name of what used to be i5/OS and earlier OS/400. @in
ternal */ | 128 /** "IBM i" is the current name of what used to be i5/OS and earlier OS/400. @in
ternal */ |
133 #define U_PF_OS400 9400 | 129 #define U_PF_OS400 9400 |
134 | 130 |
135 #ifdef U_PLATFORM | 131 #ifdef U_PLATFORM |
136 /* Use the predefined value. */ | 132 /* Use the predefined value. */ |
137 #elif defined(__MINGW32__) | 133 #elif defined(__MINGW32__) |
138 # define U_PLATFORM U_PF_MINGW | 134 # define U_PLATFORM U_PF_MINGW |
139 #elif defined(__CYGWIN__) | 135 #elif defined(__CYGWIN__) |
140 # define U_PLATFORM U_PF_CYGWIN | 136 # define U_PLATFORM U_PF_CYGWIN |
141 #elif defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64) | 137 #elif defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64) |
142 # define U_PLATFORM U_PF_WINDOWS | 138 # define U_PLATFORM U_PF_WINDOWS |
143 #elif defined(__ANDROID__) | 139 #elif defined(__ANDROID__) |
144 # define U_PLATFORM U_PF_ANDROID | 140 # define U_PLATFORM U_PF_ANDROID |
145 /* Android wchar_t support depends on the API level. */ | 141 /* Android wchar_t support depends on the API level. */ |
146 # include <android/api-level.h> | 142 # include <android/api-level.h> |
147 #elif defined(__native_client__) | |
148 # define U_PLATFORM U_PF_NATIVE_CLIENT | |
149 #elif defined(linux) || defined(__linux__) || defined(__linux) | 143 #elif defined(linux) || defined(__linux__) || defined(__linux) |
150 # define U_PLATFORM U_PF_LINUX | 144 # define U_PLATFORM U_PF_LINUX |
151 #elif defined(__APPLE__) && defined(__MACH__) | 145 #elif defined(__APPLE__) && defined(__MACH__) |
152 # include <TargetConditionals.h> | 146 # include <TargetConditionals.h> |
153 # if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE /* variant of TARGET_OS_MA
C */ | 147 # if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE /* variant of TARGET_OS_MA
C */ |
154 # define U_PLATFORM U_PF_IPHONE | 148 # define U_PLATFORM U_PF_IPHONE |
155 # else | 149 # else |
156 # define U_PLATFORM U_PF_DARWIN | 150 # define U_PLATFORM U_PF_DARWIN |
157 # endif | 151 # endif |
158 #elif defined(BSD) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || def
ined(__NetBSD__) || defined(__OpenBSD__) || defined(__MirBSD__) | 152 #elif defined(BSD) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || def
ined(__NetBSD__) || defined(__OpenBSD__) || defined(__MirBSD__) |
159 # define U_PLATFORM U_PF_BSD | 153 # define U_PLATFORM U_PF_BSD |
160 #elif defined(sun) || defined(__sun) | 154 #elif defined(sun) || defined(__sun) |
161 /* Check defined(__SVR4) || defined(__svr4__) to distinguish Solaris from Su
nOS? */ | 155 /* Check defined(__SVR4) || defined(__svr4__) to distinguish Solaris from Su
nOS? */ |
162 # define U_PLATFORM U_PF_SOLARIS | 156 # define U_PLATFORM U_PF_SOLARIS |
163 # if defined(__GNUC__) | 157 # if defined(__GNUC__) |
164 /* Solaris/GCC needs this header file to get the proper endianness. Norm
ally, this | 158 /* Solaris/GCC needs this header file to get the proper endianness. Norm
ally, this |
165 * header file is included with stddef.h but on Solairs/GCC, the GCC ver
sion of stddef.h | 159 * header file is included with stddef.h but on Solairs/GCC, the GCC ver
sion of stddef.h |
166 * is included which does not include this header file. | 160 * is included which does not include this header file. |
167 */ | 161 */ |
168 # include <sys/isa_defs.h> | 162 # include <sys/isa_defs.h> |
169 # endif | 163 # endif |
170 #elif defined(_AIX) || defined(__TOS_AIX__) | 164 #elif defined(_AIX) || defined(__TOS_AIX__) |
171 # define U_PLATFORM U_PF_AIX | 165 # define U_PLATFORM U_PF_AIX |
172 #elif defined(_hpux) || defined(hpux) || defined(__hpux) | 166 #elif defined(_hpux) || defined(hpux) || defined(__hpux) |
173 # define U_PLATFORM U_PF_HPUX | 167 # define U_PLATFORM U_PF_HPUX |
174 #elif defined(sgi) || defined(__sgi) | 168 #elif defined(sgi) || defined(__sgi) |
175 # define U_PLATFORM U_PF_IRIX | 169 # define U_PLATFORM U_PF_IRIX |
176 #elif defined(macintosh) | |
177 # define U_PLATFORM U_PF_CLASSIC_MACOS | |
178 #elif defined(__QNX__) || defined(__QNXNTO__) | 170 #elif defined(__QNX__) || defined(__QNXNTO__) |
179 # define U_PLATFORM U_PF_QNX | 171 # define U_PLATFORM U_PF_QNX |
180 #elif defined(__TOS_MVS__) | 172 #elif defined(__TOS_MVS__) |
181 # define U_PLATFORM U_PF_OS390 | 173 # define U_PLATFORM U_PF_OS390 |
182 #elif defined(__OS400__) || defined(__TOS_OS400__) | 174 #elif defined(__OS400__) || defined(__TOS_OS400__) |
183 # define U_PLATFORM U_PF_OS400 | 175 # define U_PLATFORM U_PF_OS400 |
184 #else | 176 #else |
185 # define U_PLATFORM U_PF_UNKNOWN | 177 # define U_PLATFORM U_PF_UNKNOWN |
186 #endif | 178 #endif |
187 | 179 |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
227 #endif | 219 #endif |
228 | 220 |
229 /** | 221 /** |
230 * \def U_PLATFORM_IMPLEMENTS_POSIX | 222 * \def U_PLATFORM_IMPLEMENTS_POSIX |
231 * Defines whether the platform implements (most of) the POSIX API. | 223 * Defines whether the platform implements (most of) the POSIX API. |
232 * Set to 1 for Cygwin and most other platforms. | 224 * Set to 1 for Cygwin and most other platforms. |
233 * @internal | 225 * @internal |
234 */ | 226 */ |
235 #ifdef U_PLATFORM_IMPLEMENTS_POSIX | 227 #ifdef U_PLATFORM_IMPLEMENTS_POSIX |
236 /* Use the predefined value. */ | 228 /* Use the predefined value. */ |
237 #elif U_PLATFORM_USES_ONLY_WIN32_API || U_PLATFORM == U_PF_CLASSIC_MACOS | 229 #elif U_PLATFORM_USES_ONLY_WIN32_API |
238 # define U_PLATFORM_IMPLEMENTS_POSIX 0 | 230 # define U_PLATFORM_IMPLEMENTS_POSIX 0 |
239 #else | 231 #else |
240 # define U_PLATFORM_IMPLEMENTS_POSIX 1 | 232 # define U_PLATFORM_IMPLEMENTS_POSIX 1 |
241 #endif | 233 #endif |
242 | 234 |
243 /** | 235 /** |
244 * \def U_PLATFORM_IS_LINUX_BASED | 236 * \def U_PLATFORM_IS_LINUX_BASED |
245 * Defines whether the platform is Linux or one of its derivatives. | 237 * Defines whether the platform is Linux or one of its derivatives. |
246 * @internal | 238 * @internal |
247 */ | 239 */ |
(...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
576 #endif | 568 #endif |
577 | 569 |
578 /** | 570 /** |
579 * \def U_SIZEOF_WCHAR_T | 571 * \def U_SIZEOF_WCHAR_T |
580 * U_SIZEOF_WCHAR_T==sizeof(wchar_t) | 572 * U_SIZEOF_WCHAR_T==sizeof(wchar_t) |
581 * | 573 * |
582 * @stable ICU 2.0 | 574 * @stable ICU 2.0 |
583 */ | 575 */ |
584 #ifdef U_SIZEOF_WCHAR_T | 576 #ifdef U_SIZEOF_WCHAR_T |
585 /* Use the predefined value. */ | 577 /* Use the predefined value. */ |
586 #elif (U_PLATFORM == U_PF_ANDROID && __ANDROID_API__ < 9) || U_PLATFORM == U_PF_
CLASSIC_MACOS | 578 #elif (U_PLATFORM == U_PF_ANDROID && __ANDROID_API__ < 9) |
587 /* | 579 /* |
588 * Classic Mac OS and Mac OS X before 10.3 (Panther) did not support wchar_t
or wstring. | 580 * Classic Mac OS and Mac OS X before 10.3 (Panther) did not support wchar_t
or wstring. |
589 * Newer Mac OS X has size 4. | 581 * Newer Mac OS X has size 4. |
590 */ | 582 */ |
591 # define U_SIZEOF_WCHAR_T 1 | 583 # define U_SIZEOF_WCHAR_T 1 |
592 #elif U_PLATFORM_HAS_WIN32_API || U_PLATFORM == U_PF_CYGWIN | 584 #elif U_PLATFORM_HAS_WIN32_API || U_PLATFORM == U_PF_CYGWIN |
593 # define U_SIZEOF_WCHAR_T 2 | 585 # define U_SIZEOF_WCHAR_T 2 |
594 #elif U_PLATFORM == U_PF_AIX | 586 #elif U_PLATFORM == U_PF_AIX |
595 /* | 587 /* |
596 * AIX 6.1 information, section "Wide character data representation": | 588 * AIX 6.1 information, section "Wide character data representation": |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
750 */ | 742 */ |
751 #if U_PLATFORM == U_PF_OS390 && defined(__cplusplus) | 743 #if U_PLATFORM == U_PF_OS390 && defined(__cplusplus) |
752 # define U_CALLCONV __cdecl | 744 # define U_CALLCONV __cdecl |
753 #else | 745 #else |
754 # define U_CALLCONV U_EXPORT2 | 746 # define U_CALLCONV U_EXPORT2 |
755 #endif | 747 #endif |
756 | 748 |
757 /* @} */ | 749 /* @} */ |
758 | 750 |
759 #endif | 751 #endif |
OLD | NEW |