|
34 #ifndef Pegasus_Config_h 35 #define Pegasus_Config_h 37 #if defined(PEGASUS_PLATFORM_WIN32_IX86_MSVC) 38 # include <Pegasus/Common/Platform_WIN32_IX86_MSVC.h> 39 #elif defined(PEGASUS_PLATFORM_WIN64_IA64_MSVC) 40 # include <Pegasus/Common/Platform_WIN64_IA64_MSVC.h> 41 #elif defined(PEGASUS_PLATFORM_WIN64_X86_64_MSVC) 42 # include <Pegasus/Common/Platform_WIN64_X86_64_MSVC.h> 43 #elif defined (PEGASUS_PLATFORM_LINUX_IX86_GNU) 44 # include <Pegasus/Common/Platform_LINUX_IX86_GNU.h> 45 #elif defined (PEGASUS_PLATFORM_LINUX_XSCALE_GNU) 46 # include <Pegasus/Common/Platform_LINUX_XSCALE_GNU.h> 47 #elif defined (PEGASUS_PLATFORM_PASE_ISERIES_IBMCXX) 48 #include <Pegasus/Common/Platform_PASE_ISERIES_IBMCXX.h> 49 #elif defined (PEGASUS_PLATFORM_AIX_RS_IBMCXX) 50 # include <Pegasus/Common/Platform_AIX_RS_IBMCXX.h> 51 #elif defined (PEGASUS_PLATFORM_HPUX_PARISC_ACC) 52 # include <Pegasus/Common/Platform_HPUX_PARISC_ACC.h> 53 #elif defined (PEGASUS_PLATFORM_HPUX_PARISC_GNU) 54 # include <Pegasus/Common/Platform_HPUX_PARISC_GNU.h> 55 #elif defined (PEGASUS_PLATFORM_HPUX_IA64_ACC) 56 # include <Pegasus/Common/Platform_HPUX_IA64_ACC.h> 57 #elif defined (PEGASUS_PLATFORM_HPUX_IA64_GNU) 58 # include <Pegasus/Common/Platform_HPUX_IA64_GNU.h> 59 #elif defined (PEGASUS_PLATFORM_TRU64_ALPHA_DECCXX) 60 # include <Pegasus/Common/Platform_TRU64_ALPHA_DECCXX.h> 61 #elif defined (PEGASUS_PLATFORM_SOLARIS_SPARC_GNU) 62 # include <Pegasus/Common/Platform_SOLARIS_SPARC_GNU.h> 63 #elif defined (PEGASUS_PLATFORM_SOLARIS_SPARC_CC) 64 # include <Pegasus/Common/Platform_SOLARIS_SPARC_CC.h> 65 #elif defined (PEGASUS_PLATFORM_SOLARIS_SPARC_64_CC) 66 # include <Pegasus/Common/Platform_SOLARIS_SPARC_CC_64.h> 67 #elif defined (PEGASUS_PLATFORM_SOLARIS_IX86_CC) 68 # include <Pegasus/Common/Platform_SOLARIS_IX86_CC.h> 69 #elif defined (PEGASUS_PLATFORM_SOLARIS_X86_64_CC) 70 # include <Pegasus/Common/Platform_SOLARIS_X86_64_CC.h> 71 #elif defined (PEGASUS_PLATFORM_ZOS_ZSERIES_IBM) 72 # include <Pegasus/Common/Platform_ZOS_ZSERIES_IBM.h> 73 #elif defined (PEGASUS_PLATFORM_ZOS_ZSERIES64_IBM) 74 # include <Pegasus/Common/Platform_ZOS_ZSERIES64_IBM.h> 75 #elif defined (PEGASUS_PLATFORM_LINUX_IA64_GNU) 76 # include <Pegasus/Common/Platform_LINUX_IA64_GNU.h> 77 #elif defined (PEGASUS_PLATFORM_LINUX_X86_64_GNU) 78 # include <Pegasus/Common/Platform_LINUX_X86_64_GNU.h> 79 #elif defined (PEGASUS_PLATFORM_LINUX_LOONGARCH64_GNU) 80 # include <Pegasus/Common/Platform_LINUX_LOONGARCH64_GNU.h> 81 #elif defined (PEGASUS_PLATFORM_LINUX_PPC_GNU) 82 # include <Pegasus/Common/Platform_LINUX_PPC_GNU.h> 83 #elif defined (PEGASUS_PLATFORM_LINUX_PPC64_GNU) 84 # include <Pegasus/Common/Platform_LINUX_PPC64_GNU.h> 85 #elif defined (PEGASUS_PLATFORM_LINUX_PPC_E500_GNU) 86 # include <Pegasus/Common/Platform_LINUX_PPC_E500_GNU.h> 87 #elif defined (PEGASUS_PLATFORM_LINUX_SPARCV9_GNU) 88 # include <Pegasus/Common/Platform_LINUX_SPARCV9_GNU.h> 89 #elif defined (PEGASUS_PLATFORM_LINUX_SPARC64_GNU) 90 # include <Pegasus/Common/Platform_LINUX_SPARC64_GNU.h> 91 #elif defined (PEGASUS_PLATFORM_LINUX_ZSERIES_GNU) 92 # include <Pegasus/Common/Platform_LINUX_ZSERIES_GNU.h> 93 #elif defined (PEGASUS_PLATFORM_LINUX_ZSERIES64_GNU) 94 # include <Pegasus/Common/Platform_LINUX_ZSERIES64_GNU.h> 95 #elif defined (PEGASUS_PLATFORM_DARWIN_PPC_GNU) 96 # include <Pegasus/Common/Platform_DARWIN_PPC_GNU.h> 97 #elif defined (PEGASUS_PLATFORM_DARWIN_IX86_GNU) 98 # include <Pegasus/Common/Platform_DARWIN_IX86_GNU.h> 99 #elif defined (PEGASUS_PLATFORM_VMS_ALPHA_DECCXX) 100 # include <Pegasus/Common/Platform_VMS_ALPHA_DECCXX.h> 101 #elif defined (PEGASUS_PLATFORM_VMS_IA64_DECCXX) 102 # include <Pegasus/Common/Platform_VMS_IA64_DECCXX.h> 103 #elif defined (PEGASUS_PLATFORM_LINUX_XSCALE_GNU) 104 # include <Pegasus/Common/Platform_LINUX_XSCALE_GNU.h> 105 #elif defined (PEGASUS_PLATFORM_LINUX_AARCH64_GNU) 106 # include <Pegasus/Common/Platform_LINUX_AARCH64_GNU.h> 107 #elif defined (PEGASUS_PLATFORM_LINUX_X86_64_CLANG) 108 # include <Pegasus/Common/Platform_LINUX_X86_64_CLANG.h> 109 #elif defined (PEGASUS_PLATFORM_LINUX_IX86_CLANG) 110 # include <Pegasus/Common/Platform_LINUX_IX86_CLANG.h> 111 #elif defined (PEGASUS_PLATFORM_LINUX_SH4_GNU) 112 # include <Pegasus/Common/Platform_LINUX_SH4_GNU.h> 114 # error "<Pegasus/Common/Config.h>: Unsupported Platform" 126 #if defined(__GNUC__) 127 #define GCC_VERSION (__GNUC__ * 10000 \ 128 + __GNUC_MINOR__ * 100 \ 129 + __GNUC_PATCHLEVEL__) 143 #ifndef PEGASUS_IMPORT 144 # define PEGASUS_IMPORT 147 #ifndef PEGASUS_EXPORT 148 # define PEGASUS_EXPORT 176 #ifndef PEGASUS_HIDDEN_LINKAGE 177 # define PEGASUS_HIDDEN_LINKAGE 180 #ifdef PEGASUS_HAVE_NAMESPACES 182 # define PEGASUS_NAMESPACE_BEGIN namespace Pegasus { 183 # define PEGASUS_NAMESPACE_END } 184 # define PEGASUS_NAMESPACE(X) Pegasus::X 186 #ifndef PEGASUS_HAVE_NO_STD 187 # define PEGASUS_STD(X) std::X 188 # define PEGASUS_USING_STD using namespace std 190 # define PEGASUS_STD(X) X 191 # define PEGASUS_USING_STD 193 # define PEGASUS_USING_PEGASUS using namespace Pegasus 195 # define PEGASUS_NAMESPACE_BEGIN 196 # define PEGASUS_NAMESPACE_END 197 # define PEGASUS_NAMESPACE(X) X 198 # define PEGASUS_STD(X) X 199 # define PEGASUS_USING_STD 200 # define PEGASUS_USING_PEGASUS 203 # define PEGASUS_NAMESPACE_BEGIN 204 # define PEGASUS_NAMESPACE_END 205 # define PEGASUS_NAMESPACE(X) X 206 # define PEGASUS_STD(X) X 207 # define PEGASUS_USING_STD 208 # define PEGASUS_USING_PEGASUS 211 #ifdef PEGASUS_HAVE_EXPLICIT 213 # define PEGASUS_EXPLICIT explicit 215 # define PEGASUS_EXPLICIT 218 # define PEGASUS_EXPLICIT 221 #ifndef PEGASUS_HAVE_FOR_SCOPE 222 # define for if (0) ; else for 225 #ifdef PEGASUS_HAVE_TEMPLATE_SPECIALIZATION 227 # define PEGASUS_TEMPLATE_SPECIALIZATION template <> 229 # define PEGASUS_TEMPLATE_SPECIALIZATION 232 # define PEGASUS_TEMPLATE_SPECIALIZATION 235 #ifdef PEGASUS_HAVE_IOS_BINARY 237 #define PEGASUS_IOS_BINARY ,std::ios::binary 238 #define PEGASUS_OR_IOS_BINARY | std::ios::binary 240 #define PEGASUS_IOS_BINARY 241 #define PEGASUS_OR_IOS_BINARY 244 #define PEGASUS_IOS_BINARY 245 #define PEGASUS_OR_IOS_BINARY 248 #ifndef PEGASUS_SINT64_LITERAL 249 #define PEGASUS_SINT64_LITERAL(X) (Sint64 (X##LL)) 251 #ifndef PEGASUS_UINT64_LITERAL 252 #define PEGASUS_UINT64_LITERAL(X) (Uint64 (X##ULL)) 256 #ifndef PEGASUS_64BIT_CONVERSION_WIDTH 257 #define PEGASUS_64BIT_CONVERSION_WIDTH "ll" 260 #ifndef PEGASUS_MAXHOSTNAMELEN 261 # ifdef _POSIX_HOST_NAME_MAX 262 # define PEGASUS_MAXHOSTNAMELEN _POSIX_HOST_NAME_MAX 264 # define PEGASUS_MAXHOSTNAMELEN MAXHOSTNAMELEN 269 PEGASUS_NAMESPACE_BEGIN 271 typedef bool Boolean; 272 typedef unsigned char Uint8; 273 typedef signed char Sint8; 274 typedef unsigned short Uint16; 275 typedef signed short Sint16; 276 typedef unsigned int Uint32; 277 typedef signed int Sint32; 278 typedef float Real32; 279 typedef double Real64; 280 typedef PEGASUS_UINT64 Uint64; 281 typedef PEGASUS_SINT64 Sint64; 283 #define PEG_NOT_FOUND Uint32(-1) 285 PEGASUS_NAMESPACE_END 301 #ifdef PEGASUS_SUPPRESS_UNREACHABLE_STATEMENTS 302 # define PEGASUS_UNREACHABLE(CODE) 304 # if defined(__clang__ ) 305 # define PEGASUS_UNREACHABLE(CODE) __builtin_unreachable(); 306 # elif defined(GCC_VERSION) 307 # if GCC_VERSION >= 40500 //Unreachable supported only for gcc 4.5 and above 308 # define PEGASUS_UNREACHABLE(CODE) __builtin_unreachable(); 310 # define PEGASUS_UNREACHABLE(CODE) CODE 312 # elif defined(_MSC_VER) //PEGASUS_OS_TYPE_WINDOWS 313 # define PEGASUS_UNREACHABLE(CODE) __assume(0); 315 # define PEGASUS_UNREACHABLE(CODE) CODE 338 #if defined(__GNUC__) && (__GNUC__ >= 4) 339 # define PEGASUS_FORMAT(A1, A2) __attribute__((format (printf, A1, A2))) 341 # define PEGASUS_FORMAT(A1, A2) 354 #ifndef PEGASUS_INITIAL_THREADSTACK_SIZE 355 # define PEGASUS_INITIAL_THREADSTACK_SIZE 256*1024 367 #ifndef PEGASUS_PG_OBJECTMANAGER_ELEMENTNAME 368 # ifdef PEGASUS_FLAVOR 369 # define PEGASUS_PG_OBJECTMANAGER_ELEMENTNAME PEGASUS_FLAVOR"-pegasus" 371 # define PEGASUS_PG_OBJECTMANAGER_ELEMENTNAME "Pegasus" 383 #ifndef PEGASUS_INSTANCEID_GLOBAL_PREFIX 384 # ifdef PEGASUS_FLAVOR 385 # define PEGASUS_INSTANCEID_GLOBAL_PREFIX "PG-"PEGASUS_FLAVOR 387 # define PEGASUS_INSTANCEID_GLOBAL_PREFIX "PG"
|