00001 /* 00002 ******************************************************************************* 00003 * 00004 * Copyright (C) 1997-2001, International Business Machines 00005 * Corporation and others. All Rights Reserved. 00006 * 00007 ******************************************************************************* 00008 * 00009 * FILE NAME : pos400.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 * 09/21/99 barry Created new for OS/400 platform. 00017 ******************************************************************************* 00018 */ 00019 00020 /* Define the platform we're on. */ 00021 #ifndef OS400 00022 #define OS400 00023 #endif 00024 00025 /* Define whether inttypes.h is available */ 00026 #define U_HAVE_INTTYPES_H 0 00027 00028 /* 00029 * Define what support for C++ streams is available. 00030 * If U_IOSTREAM_SOURCE is set to 199711, then <iostream> is available 00031 * (1997711 is the date the ISO/IEC C++ FDIS was published), and then 00032 * one should qualify streams using the std namespace in ICU header 00033 * files. 00034 * If U_IOSTREAM_SOURCE is set to 198506, then <iostream.h> is 00035 * available instead (198506 is the date when Stroustrup published 00036 * "An Extensible I/O Facility for C++" at the summer USENIX conference). 00037 * If U_IOSTREAM_SOURCE is 0, then C++ streams are not available and 00038 * support for them will be silently suppressed in ICU. 00039 * 00040 */ 00041 00042 #ifndef U_IOSTREAM_SOURCE 00043 #define U_IOSTREAM_SOURCE 198506 00044 #endif 00045 00046 /* Determines whether specific types are available */ 00047 #define HAVE_INT8_T 0 00048 #define HAVE_UINT8_T 0 00049 #define HAVE_INT16_T 0 00050 #define HAVE_UINT16_T 0 00051 #define HAVE_INT32_T 0 00052 #define HAVE_UINT32_T 0 00053 #define HAVE_BOOL_T 0 00054 00055 /* Determines the endianness of the platform */ 00056 #define U_IS_BIG_ENDIAN 1 00057 00058 #define HAVE_DLOPEN 0 00059 00060 /* 1 or 0 to enable or disable threads. If undefined, default is: enable threads. */ 00061 #define ICU_USE_THREADS 1 00062 00063 /*===========================================================================*/ 00064 /* Generic data types */ 00065 /*===========================================================================*/ 00066 00067 /* If your platform does not have the <inttypes.h> header, you may 00068 need to edit the typedefs below. */ 00069 #if U_HAVE_INTTYPES_H 00070 #include <inttypes.h> 00071 #else 00072 00073 #if ! HAVE_INT8_T 00074 typedef signed char int8_t; 00075 #endif 00076 00077 #if ! HAVE_UINT8_T 00078 typedef unsigned char uint8_t; 00079 #endif 00080 00081 #if ! HAVE_INT16_T 00082 typedef signed short int16_t; 00083 #endif 00084 00085 #if ! HAVE_UINT16_T 00086 typedef unsigned short uint16_t; 00087 #endif 00088 00089 #if ! HAVE_INT32_T 00090 typedef signed long int32_t; 00091 #endif 00092 00093 #if ! HAVE_UINT32_T 00094 typedef unsigned long uint32_t; 00095 #endif 00096 00097 #endif 00098 00099 /*===========================================================================*/ 00100 /* See utypes.h for the normal defintion */ 00101 /*===========================================================================*/ 00102 00103 /* 00104 With the provided macro we should never be out of range of a given segment 00105 (a traditional/typical segment that is). Our segments have 5 bytes for the id 00106 and 3 bytes for the offset. The key is that the casting takes care of only 00107 retrieving the offset portion minus x1000. Hence, the smallest offset seen in 00108 a program is x001000 and when casted to an int would be 0. That's why we can 00109 only add 0xffefff. Otherwise, we would exceed the segment. 00110 00111 Currently, 16MB is the current addressing limitation on as/400. This macro 00112 may eventually be changed to use 2GB addressability for the newer version of 00113 as/400 machines. 00114 */ 00115 #ifndef U_MAX_PTR 00116 #define U_MAX_PTR(ptr) ((void*)(((char*)ptr)-((int32_t)(ptr))+((int32_t)0xffefff))) 00117 #endif 00118 00119 /*===========================================================================*/ 00120 /* Character data types */ 00121 /*===========================================================================*/ 00122 00123 #define U_CHARSET_FAMILY 1 00124 00125 /*===========================================================================*/ 00126 /* Information about wchar support */ 00127 /*===========================================================================*/ 00128 00129 #define U_HAVE_WCHAR_H 1 00130 #define U_SIZEOF_WCHAR_T 2 00131 00132 #define U_HAVE_WCSCPY 1 00133 00134 /*===========================================================================*/ 00135 /* Information about POSIX support */ 00136 /*===========================================================================*/ 00137 00138 #define U_HAVE_NL_LANGINFO 0 00139 #define U_HAVE_NL_LANGINFO_CODESET 0 00140 #define U_NL_LANGINFO_CODESET 00141 00142 /* These cannot be defined for this platform 00143 #define U_TZSET 00144 #define U_TIMEZONE 00145 #define U_TZNAME 00146 */ 00147 00148 /*===========================================================================*/ 00149 /* Symbol import-export control */ 00150 /*===========================================================================*/ 00151 00152 #define U_EXPORT 00153 #define U_EXPORT2 00154 #define U_IMPORT 00155 00156 /*===========================================================================*/ 00157 /* Programs used by ICU code */ 00158 /*===========================================================================*/ 00159 00160 #define U_MAKE "gmake"