| 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 |