1 karl 1.53 //%2005////////////////////////////////////////////////////////////////////////
|
2 mike 1.18 //
|
3 karl 1.51 // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
4 // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
5 // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
|
6 karl 1.45 // IBM Corp.; EMC Corporation, The Open Group.
|
7 karl 1.51 // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
8 // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
|
9 karl 1.53 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
10 // EMC Corporation; VERITAS Software Corporation; The Open Group.
|
11 mike 1.18 //
12 // Permission is hereby granted, free of charge, to any person obtaining a copy
|
13 karl 1.26 // of this software and associated documentation files (the "Software"), to
14 // deal in the Software without restriction, including without limitation the
15 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
16 mike 1.18 // sell copies of the Software, and to permit persons to whom the Software is
17 // furnished to do so, subject to the following conditions:
|
18 kumpf 1.29 //
|
19 karl 1.26 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
|
20 mike 1.18 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
21 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
22 karl 1.26 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
23 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
24 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
25 mike 1.18 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 //
28 //==============================================================================
29 //
30 //%/////////////////////////////////////////////////////////////////////////////
31
32 #ifndef Pegasus_Config_h
33 #define Pegasus_Config_h
34
35 #if defined(PEGASUS_PLATFORM_WIN32_IX86_MSVC)
36 # include <Pegasus/Common/Platform_WIN32_IX86_MSVC.h>
37 #elif defined (PEGASUS_PLATFORM_LINUX_IX86_GNU)
38 # include <Pegasus/Common/Platform_LINUX_IX86_GNU.h>
39 #elif defined (PEGASUS_PLATFORM_AIX_RS_IBMCXX)
40 # include <Pegasus/Common/Platform_AIX_RS_IBMCXX.h>
41 #elif defined (PEGASUS_PLATFORM_HPUX_PARISC_ACC)
42 # include <Pegasus/Common/Platform_HPUX_PARISC_ACC.h>
|
43 kumpf 1.36 #elif defined (PEGASUS_PLATFORM_HPUX_IA64_ACC)
44 # include <Pegasus/Common/Platform_HPUX_IA64_ACC.h>
|
45 mike 1.19 #elif defined (PEGASUS_PLATFORM_TRU64_ALPHA_DECCXX)
46 # include <Pegasus/Common/Platform_TRU64_ALPHA_DECCXX.h>
|
47 mike 1.21 #elif defined (PEGASUS_PLATFORM_SOLARIS_SPARC_GNU)
48 # include <Pegasus/Common/Platform_SOLARIS_SPARC_GNU.h>
|
49 keith.petley 1.43 #elif defined (PEGASUS_PLATFORM_SOLARIS_SPARC_CC)
50 # include <Pegasus/Common/Platform_SOLARIS_SPARC_CC.h>
|
51 mike 1.22 #elif defined (PEGASUS_PLATFORM_ZOS_ZSERIES_IBM)
52 # include <Pegasus/Common/Platform_ZOS_ZSERIES_IBM.h>
53 #elif defined (PEGASUS_PLATFORM_NSK_NONSTOP_NMCPLUS)
54 # include <Pegasus/Common/Platform_NSK_NONSTOP_NMCPLUS.h>
|
55 kumpf 1.27 #elif defined (PEGASUS_PLATFORM_LINUX_IA64_GNU)
56 # include <Pegasus/Common/Platform_LINUX_IA64_GNU.h>
|
57 david.eger 1.41 #elif defined (PEGASUS_PLATFORM_LINUX_PPC_GNU)
58 # include <Pegasus/Common/Platform_LINUX_PPC_GNU.h>
|
59 jenny.yu 1.55 #elif defined (PEGASUS_PLATFORM_LINUX_PPC64_GNU)
60 # include <Pegasus/Common/Platform_LINUX_PPC64_GNU.h>
|
61 david.eger 1.42 #elif defined (PEGASUS_PLATFORM_LINUX_ZSERIES_GNU)
62 # include <Pegasus/Common/Platform_LINUX_ZSERIES_GNU.h>
|
63 jenny.yu 1.55 #elif defined (PEGASUS_PLATFORM_LINUX_ZSERIES64_GNU)
64 # include <Pegasus/Common/Platform_LINUX_ZSERIES64_GNU.h>
|
65 chuck 1.33 #elif defined (__OS400__)
66 # if !defined (PEGASUS_PLATFORM_OS400_ISERIES_IBM)
67 # define PEGASUS_PLATFORM_OS400_ISERIES_IBM
68 # endif
69 # include <Pegasus/Common/Platform_OS400_ISERIES_IBM.h>
|
70 dudhe.girish 1.47 #elif defined (PEGASUS_PLATFORM_DARWIN_PPC_GNU)
71 # include <Pegasus/Common/Platform_DARWIN_PPC_GNU.h>
|
72 gs.keenan 1.54 #elif defined (PEGASUS_PLATFORM_VMS_ALPHA_DECCXX)
73 # include <Pegasus/Common/Platform_VMS_ALPHA_DECCXX.h>
74 #elif defined (PEGASUS_PLATFORM_VMS_IA64_DECCXX)
75 # include <Pegasus/Common/Platform_VMS_IA64_DECCXX.h>
|
76 mike 1.18 #else
77 # error "<Pegasus/Common/Config.h>: Unsupported Platform"
78 #endif
79
|
80 mday 1.39
81
82
83 //<<< Sun Apr 6 19:28:00 2003 mdd >>>
84 //
85 // COMPILER Checks
86 //
87 // This is to allow a check for GCC > 3.2
88 // It needs to be the first thing we check because the next lines load
89 // further source files
90
91 #if defined(__GNUC__)
92 #define GCC_VERSION (__GNUC__ * 10000 \
93 + __GNUC_MINOR__ * 100 \
94 + __GNUC_PATCHLEVEL__)
95
96 // To test for GCC > 3.2.0:
97 // #if GCC_VERSION > 30200
98
99 #endif
100
101 mday 1.39
|
102 david.dillard 1.56 #ifdef __cplusplus
|
103 mike 1.22 #include <cstdlib>
|
104 david.dillard 1.56 #endif
|
105 mike 1.22
|
106 kumpf 1.35 // used for Windows only
|
107 kumpf 1.32 #ifndef PEGASUS_EXPORT
108 #define PEGASUS_EXPORT /* empty */
109 #endif
|
110 mike 1.22
|
111 mike 1.18 #ifdef PEGASUS_HAVE_NAMESPACES
112 # define PEGASUS_NAMESPACE_BEGIN namespace Pegasus {
113 # define PEGASUS_NAMESPACE_END }
|
114 mike 1.22
115 #ifndef PEGASUS_HAVE_NO_STD
|
116 mike 1.18 # define PEGASUS_STD(X) std::X
117 # define PEGASUS_USING_STD using namespace std
|
118 mike 1.22 #else
119 # define PEGASUS_STD(X) X
120 # define PEGASUS_USING_STD
121 #endif
|
122 mike 1.18 # define PEGASUS_USING_PEGASUS using namespace Pegasus
123 #else
124 # define PEGASUS_NAMESPACE_BEGIN /* empty */
125 # define PEGASUS_NAMESPACE_END /* empty */
126 # define PEGASUS_STD(X) X
127 # define PEGASUS_USING_STD
128 # define PEGASUS_USING_PEGASUS
129 #endif
130
131 #ifdef PEGASUS_HAVE_EXPLICIT
132 # define PEGASUS_EXPLICIT explicit
133 #else
134 # define PEGASUS_EXPLICIT /* empty */
135 #endif
136
137 #ifdef PEGASUS_HAVE_MUTABLE
138 # define PEGASUS_MUTABLE mutable
139 #else
140 # define PEGASUS_MUTABLE /* empty */
141 #endif
142
143 mike 1.18 #ifndef PEGASUS_HAVE_FOR_SCOPE
144 # define for if (0) ; else for
145 #endif
146
147 #ifdef PEGASUS_HAVE_TEMPLATE_SPECIALIZATION
148 # define PEGASUS_TEMPLATE_SPECIALIZATION template <>
149 #else
150 # define PEGASUS_TEMPLATE_SPECIALIZATION
|
151 karl 1.24 #endif
152
|
153 kumpf 1.32 #ifdef PEGASUS_HAVE_IOS_BINARY
|
154 david 1.44 #if defined(PEGASUS_PLATFORM_OS400_ISERIES_IBM)
155 #define PEGASUS_IOS_BINARY ,std::ios::binary,PEGASUS_STD(_CCSID_T(1208))
156 #else
|
157 kumpf 1.32 #define PEGASUS_IOS_BINARY ,std::ios::binary
|
158 david 1.44 #endif
|
159 kumpf 1.32 #define PEGASUS_OR_IOS_BINARY | std::ios::binary
160 #else
161 #define PEGASUS_IOS_BINARY /* empty */
162 #define PEGASUS_OR_IOS_BINARY /* empty */
163 #endif
164
|
165 kumpf 1.34 #ifndef PEGASUS_SINT64_LITERAL
|
166 kumpf 1.37 #define PEGASUS_SINT64_LITERAL(X) (Sint64 (X##LL))
|
167 kumpf 1.34 #endif
168 #ifndef PEGASUS_UINT64_LITERAL
|
169 kumpf 1.37 #define PEGASUS_UINT64_LITERAL(X) (Uint64 (X##ULL))
|
170 kumpf 1.34 #endif
|
171 mike 1.18
|
172 kumpf 1.40 // Used in printf and scanf conversion strings for Uint64 and Sint64 arguments
173 #ifndef PEGASUS_64BIT_CONVERSION_WIDTH
174 #define PEGASUS_64BIT_CONVERSION_WIDTH "ll"
175 #endif
|
176 kumpf 1.46
177 #ifndef PEGASUS_MAXHOSTNAMELEN
178 #define PEGASUS_MAXHOSTNAMELEN MAXHOSTNAMELEN
179 #endif
180
|
181 kumpf 1.40
|
182 david.dillard 1.56 #ifdef __cplusplus
|
183 mike 1.18 PEGASUS_NAMESPACE_BEGIN
184
|
185 kumpf 1.35 typedef bool Boolean; // If platform w/o bool, add flag and include Boolean.h
|
186 mike 1.18 typedef unsigned char Uint8;
|
187 david.dillard 1.52 typedef signed char Sint8;
|
188 mike 1.18 typedef unsigned short Uint16;
|
189 david.dillard 1.52 typedef signed short Sint16;
|
190 mike 1.18 typedef unsigned int Uint32;
|
191 david.dillard 1.52 typedef signed int Sint32;
|
192 mike 1.18 typedef float Real32;
193 typedef double Real64;
194 typedef PEGASUS_UINT64 Uint64;
195 typedef PEGASUS_SINT64 Sint64;
196
197 #define PEG_NOT_FOUND Uint32(-1)
198
199 PEGASUS_NAMESPACE_END
|
200 david.dillard 1.56 #endif
|
201 mike 1.18
|
202 mike 1.20 #ifdef PEGASUS_SUPPRESS_UNREACHABLE_STATEMENTS
203 # define PEGASUS_UNREACHABLE(CODE)
204 #else
205 # define PEGASUS_UNREACHABLE(CODE) CODE
206 #endif
207
|
208 kumpf 1.30 #ifdef PEGASUS_HAVE_EBCDIC
209 # define PEGASUS_MAX_PRINTABLE_CHAR 255
210 #else
211 # define PEGASUS_MAX_PRINTABLE_CHAR 127
212 #endif
213
|
214 sage 1.25 // used for zOS only
215 #ifndef PEGASUS_STATIC_CDECL
216 #define PEGASUS_STATIC_CDECL
217 #endif
|
218 mday 1.39
|
219 sage 1.25
|
220 mike 1.18 #endif /* Pegasus_Config_h */
|