Main Page | Class Hierarchy | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

pwin32.h

00001 /*
00002 ******************************************************************************
00003 *
00004 *   Copyright (C) 1997-2003, International Business Machines
00005 *   Corporation and others.  All Rights Reserved.
00006 *
00007 ******************************************************************************
00008 *
00009 *  FILE NAME : platform.h
00010 *
00011 *   Date        Name        Description
00012 *   05/13/98    nos         Creation (content moved here from ptypes.h).
00013 *   03/02/99    stephen     Added AS400 support.
00014 *   03/30/99    stephen     Added Linux support.
00015 *   04/13/99    stephen     Reworked for autoconf.
00016 ******************************************************************************
00017 */
00018 
00019 /* Define the platform we're on. */
00020 #ifndef WIN32
00021 #define WIN32
00022 #endif
00023 
00024 /* Define whether inttypes.h is available */
00025 #define U_HAVE_INTTYPES_H 0
00026 
00027 /*
00028  * Define what support for C++ streams is available.
00029  *     If U_IOSTREAM_SOURCE is set to 199711, then <iostream> is available
00030  * (1997711 is the date the ISO/IEC C++ FDIS was published), and then
00031  * one should qualify streams using the std namespace in ICU header
00032  * files.
00033  *     If U_IOSTREAM_SOURCE is set to 198506, then <iostream.h> is
00034  * available instead (198506 is the date when Stroustrup published
00035  * "An Extensible I/O Facility for C++" at the summer USENIX conference).
00036  *     If U_IOSTREAM_SOURCE is 0, then C++ streams are not available and
00037  * support for them will be silently suppressed in ICU.
00038  *
00039  */
00040 
00041 #ifndef U_IOSTREAM_SOURCE
00042 #define U_IOSTREAM_SOURCE 199711
00043 #endif
00044 
00045 #ifndef U_DEBUG
00046 #ifdef _DEBUG
00047 #define U_DEBUG 1
00048 #else
00049 #define U_DEBUG 0
00050 #endif
00051 #endif
00052 
00053 #ifndef U_RELEASE
00054 #ifdef NDEBUG
00055 #define U_RELEASE 1
00056 #else
00057 #define U_RELEASE 0
00058 #endif
00059 #endif
00060 
00061 /* Determines whether specific types are available */
00062 #define U_HAVE_INT8_T 0
00063 #define U_HAVE_UINT8_T 0
00064 #define U_HAVE_INT16_T 0
00065 #define U_HAVE_UINT16_T 0
00066 #define U_HAVE_INT32_T 0
00067 #define U_HAVE_UINT32_T 0
00068 #define U_HAVE_INT64_T 0
00069 #define U_HAVE_UINT64_T 0
00070 
00071 /* Define 64 bit limits */
00072 #define INT64_C(x) x
00073 #define UINT64_C(x) x
00074 
00075 /* Define whether namespace is supported */
00076 #define U_HAVE_NAMESPACE 1
00077 
00078 /* Determines the endianness of the platform */
00079 #define U_IS_BIG_ENDIAN 0
00080 
00081 /* Determine whether to override new and delete. */
00082 #ifndef U_OVERRIDE_CXX_ALLOCATION
00083 #define U_OVERRIDE_CXX_ALLOCATION 1
00084 #endif
00085 /* Determine whether to override placement new and delete for STL. */
00086 #ifndef U_HAVE_PLACEMENT_NEW
00087 #define U_HAVE_PLACEMENT_NEW 1
00088 #endif
00089 
00090 /* Determine whether to enable tracing. */
00091 #ifndef U_ENABLE_TRACING
00092 #define U_ENABLE_TRACING 1
00093 #endif
00094 
00095 /*===========================================================================*/
00096 /* Generic data types                                                        */
00097 /*===========================================================================*/
00098 
00099 /* If your platform does not have the <inttypes.h> header, you may
00100    need to edit the typedefs below. */
00101 #if U_HAVE_INTTYPES_H
00102 #include <inttypes.h>
00103 #else
00104 
00105 #if ! U_HAVE_INT8_T
00106 typedef signed char int8_t;
00107 #endif
00108 
00109 #if ! U_HAVE_UINT8_T
00110 typedef unsigned char uint8_t;
00111 #endif
00112 
00113 #if ! U_HAVE_INT16_T
00114 typedef signed short int16_t;
00115 #endif
00116 
00117 #if ! U_HAVE_UINT16_T
00118 typedef unsigned short uint16_t;
00119 #endif
00120 
00121 #if ! U_HAVE_INT32_T
00122 #   if defined(_LP64)
00123       typedef signed int  int32_t;
00124 #   else
00125       typedef signed long int32_t;
00126 #   endif
00127 #endif
00128 
00129 #if ! U_HAVE_UINT32_T
00130 #   if defined(_LP64)
00131       typedef unsigned int  uint32_t;
00132 #   else
00133       typedef unsigned long uint32_t;
00134 #   endif
00135 #endif
00136 
00137 #if ! U_HAVE_INT64_T
00138     /* Could use _MSC_VER to detect Microsoft compiler. */
00139     typedef signed __int64   int64_t;
00140 #endif
00141 
00142 #if ! U_HAVE_UINT64_T
00143     /* Could use _MSC_VER to detect Microsoft compiler. */
00144     typedef unsigned __int64   uint64_t;
00145 #endif
00146 
00147 #endif
00148 
00149 /*===========================================================================*/
00150 /* Character data types                                                      */
00151 /*===========================================================================*/
00152 
00153 #define U_SIZEOF_WCHAR_T 2
00154 
00155 /*===========================================================================*/
00156 /* Do we have wcscpy and other similar functions                             */
00157 /*===========================================================================*/
00158 
00159 #define U_HAVE_WCSCPY    1
00160 
00161 /*===========================================================================*/
00162 /* Information about POSIX support                                           */
00163 /*===========================================================================*/
00164 
00165 #define U_TZSET         _tzset
00166 #define U_HAVE_TIMEZONE 1
00167 #if U_HAVE_TIMEZONE
00168 #   define U_TIMEZONE   _timezone
00169 #endif
00170 #define U_TZNAME        _tzname
00171 
00172 #define U_HAVE_MMAP     0
00173 
00174 /*===========================================================================*/
00175 /* Symbol import-export control                                              */
00176 /*===========================================================================*/
00177 
00178 #define U_EXPORT __declspec(dllexport)
00179 #define U_EXPORT2 __cdecl
00180 #define U_IMPORT __declspec(dllimport)
00181 
00182 /*===========================================================================*/
00183 /* Code alignment and C function inlining                                    */
00184 /*===========================================================================*/
00185 
00186 #define U_INLINE __inline
00187 
00188 #if defined(_MSC_VER) && defined(_M_IX86)
00189 #define U_ALIGN_CODE(val)    __asm      align val
00190 #else
00191 #define U_ALIGN_CODE(val)
00192 #endif
00193       
00194 
00195 /*===========================================================================*/
00196 /* Programs used by ICU code                                                 */
00197 /*===========================================================================*/
00198 
00199 #define U_MAKE  "nmake"
00200 

Generated on Wed May 18 17:29:14 2005 for ICU 2.8 by  doxygen 1.4.2