00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef LIBSMBIOS_CONFIG_SUFFIX_HPP
00025 #define LIBSMBIOS_CONFIG_SUFFIX_HPP
00026
00027
00028
00029
00030
00031
00032
00033 #include <limits.h>
00034 # if !defined(LIBSMBIOS_HAS_LONG_LONG) \
00035 && !(defined(LIBSMBIOS_MSVC) && LIBSMBIOS_MSVC <=1300) && !defined(__BORLANDC__) \
00036 && (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX))
00037 # define LIBSMBIOS_HAS_LONG_LONG
00038 #endif
00039 #if !defined(LIBSMBIOS_HAS_LONG_LONG) && !defined(LIBSMBIOS_NO_INTEGRAL_INT64_T)
00040 # define LIBSMBIOS_NO_INTEGRAL_INT64_T
00041 #endif
00042
00043
00044
00045
00046 #if defined(__GNUC__) && (__GNUC__ >= 3) && defined(LIBSMBIOS_NO_CTYPE_FUNCTIONS)
00047 # undef LIBSMBIOS_NO_CTYPE_FUNCTIONS
00048 #endif
00049
00050
00051
00052
00053
00054 # ifndef LIBSMBIOS_STD_EXTENSION_NAMESPACE
00055 # define LIBSMBIOS_STD_EXTENSION_NAMESPACE std
00056 # endif
00057
00058
00059
00060
00061 # if defined(LIBSMBIOS_NO_CV_SPECIALIZATIONS) \
00062 && !defined(LIBSMBIOS_NO_CV_VOID_SPECIALIZATIONS)
00063 # define LIBSMBIOS_NO_CV_VOID_SPECIALIZATIONS
00064 # endif
00065
00066
00067
00068
00069
00070 # if defined(LIBSMBIOS_NO_LIMITS) \
00071 && !defined(LIBSMBIOS_NO_LIMITS_COMPILE_TIME_CONSTANTS)
00072 # define LIBSMBIOS_NO_LIMITS_COMPILE_TIME_CONSTANTS
00073 # define LIBSMBIOS_NO_MS_INT64_NUMERIC_LIMITS
00074 # define LIBSMBIOS_NO_LONG_LONG_NUMERIC_LIMITS
00075 # endif
00076
00077
00078
00079
00080
00081 #if !defined(LIBSMBIOS_HAS_LONG_LONG) && !defined(LIBSMBIOS_NO_LONG_LONG_NUMERIC_LIMITS)
00082 # define LIBSMBIOS_NO_LONG_LONG_NUMERIC_LIMITS
00083 #endif
00084
00085
00086
00087
00088
00089 #if !defined(LIBSMBIOS_HAS_MS_INT64) && !defined(LIBSMBIOS_NO_MS_INT64_NUMERIC_LIMITS)
00090 # define LIBSMBIOS_NO_MS_INT64_NUMERIC_LIMITS
00091 #endif
00092
00093
00094
00095
00096
00097 # if !defined(LIBSMBIOS_NO_MEMBER_TEMPLATES) \
00098 && !defined(LIBSMBIOS_MSVC6_MEMBER_TEMPLATES)
00099 # define LIBSMBIOS_MSVC6_MEMBER_TEMPLATES
00100 # endif
00101
00102
00103
00104
00105 # if defined(LIBSMBIOS_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
00106 && !defined(LIBSMBIOS_BCB_PARTIAL_SPECIALIZATION_BUG)
00107 # define LIBSMBIOS_BCB_PARTIAL_SPECIALIZATION_BUG
00108 # endif
00109
00110
00111
00112
00113 # if defined(LIBSMBIOS_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
00114 && !defined(LIBSMBIOS_NO_ARRAY_TYPE_SPECIALIZATIONS)
00115 # define LIBSMBIOS_NO_ARRAY_TYPE_SPECIALIZATIONS
00116 # endif
00117
00118
00119
00120
00121 # if defined(LIBSMBIOS_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
00122 && !defined(LIBSMBIOS_NO_STD_ITERATOR_TRAITS)
00123 # define LIBSMBIOS_NO_STD_ITERATOR_TRAITS
00124 # endif
00125
00126
00127
00128
00129
00130 # if defined(LIBSMBIOS_NO_MEMBER_TEMPLATES) \
00131 && !defined(LIBSMBIOS_MSVC6_MEMBER_TEMPLATES) \
00132 && !defined(LIBSMBIOS_NO_TEMPLATED_ITERATOR_CONSTRUCTORS)
00133 # define LIBSMBIOS_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
00134 # endif
00135
00136
00137
00138
00139
00140 # if defined(LIBSMBIOS_NO_MEMBER_TEMPLATES) \
00141 && !defined(LIBSMBIOS_MSVC6_MEMBER_TEMPLATES) \
00142 && !defined(LIBSMBIOS_NO_STD_ALLOCATOR)
00143 # define LIBSMBIOS_NO_STD_ALLOCATOR
00144 # endif
00145
00146
00147
00148
00149 #if defined(LIBSMBIOS_NO_ARGUMENT_DEPENDENT_LOOKUP) && !defined(LIBSMBIOS_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
00150 # define LIBSMBIOS_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
00151 #endif
00152
00153
00154
00155
00156 #if !defined(LIBSMBIOS_NO_STD_ALLOCATOR)
00157 # define LIBSMBIOS_HAS_PARTIAL_STD_ALLOCATOR
00158 #endif
00159
00160
00161
00162
00163 # if defined(LIBSMBIOS_NO_STD_LOCALE) && !defined(LIBSMBIOS_NO_STD_USE_FACET)
00164 # define LIBSMBIOS_NO_STD_USE_FACET
00165 # endif
00166
00167
00168
00169
00170 # if defined(LIBSMBIOS_NO_STD_LOCALE) && !defined(LIBSMBIOS_NO_STD_MESSAGES)
00171 # define LIBSMBIOS_NO_STD_MESSAGES
00172 # endif
00173
00174
00175
00176
00177 # if defined(LIBSMBIOS_NO_STD_LOCALE) && !defined(LIBSMBIOS_NO_STD_WSTREAMBUF)
00178 # define LIBSMBIOS_NO_STD_WSTREAMBUF
00179 # endif
00180
00181
00182
00183
00184 # if defined(LIBSMBIOS_NO_CWCHAR) && !defined(LIBSMBIOS_NO_CWCTYPE)
00185 # define LIBSMBIOS_NO_CWCTYPE
00186 # endif
00187
00188
00189
00190
00191 # if defined(LIBSMBIOS_NO_CWCHAR) && !defined(LIBSMBIOS_NO_SWPRINTF)
00192 # define LIBSMBIOS_NO_SWPRINTF
00193 # endif
00194
00195
00196
00197
00198
00199
00200 #if defined(LIBSMBIOS_DISABLE_WIN32) && defined(_WIN32) \
00201 && !defined(LIBSMBIOS_DISABLE_THREADS) && !defined(LIBSMBIOS_HAS_PTHREADS)
00202 # define LIBSMBIOS_DISABLE_THREADS
00203 #endif
00204
00205
00206
00207
00208
00209
00210
00211 #if (defined(__MT__) || defined(_MT) || defined(_REENTRANT) \
00212 || defined(_PTHREADS)) && !defined(LIBSMBIOS_HAS_THREADS)
00213 # define LIBSMBIOS_HAS_THREADS
00214 #endif
00215
00216
00217
00218
00219 #if defined(LIBSMBIOS_DISABLE_THREADS) && defined(LIBSMBIOS_HAS_THREADS)
00220 # undef LIBSMBIOS_HAS_THREADS
00221 #endif
00222
00223
00224
00225
00226 #if defined(LIBSMBIOS_HAS_THREADS) && !defined(LIBSMBIOS_HAS_PTHREADS)\
00227 && !defined(LIBSMBIOS_HAS_WINTHREADS) && !defined(LIBSMBIOS_HAS_BETHREADS)\
00228 && !defined(LIBSMBIOS_HAS_MPTASKS)
00229 # undef LIBSMBIOS_HAS_THREADS
00230 #endif
00231
00232
00233
00234
00235 #ifndef LIBSMBIOS_HAS_THREADS
00236 # undef LIBSMBIOS_HAS_PTHREADS
00237 # undef LIBSMBIOS_HAS_PTHREAD_MUTEXATTR_SETTYPE
00238 # undef LIBSMBIOS_HAS_WINTHREADS
00239 # undef LIBSMBIOS_HAS_BETHREADS
00240 # undef LIBSMBIOS_HAS_MPTASKS
00241 #endif
00242
00243
00244
00245
00246
00247 # if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901)
00248 # define LIBSMBIOS_HAS_STDINT_H
00249 # endif
00250
00251
00252
00253
00254
00255 # ifndef LIBSMBIOS_HAS_SLIST
00256 # define LIBSMBIOS_NO_SLIST
00257 # endif
00258
00259 # ifndef LIBSMBIOS_HAS_HASH
00260 # define LIBSMBIOS_NO_HASH
00261 # endif
00262
00263
00264
00265
00266 #if defined(LIBSMBIOS_ABI_PREFIX) && defined(LIBSMBIOS_ABI_SUFFIX) && !defined(LIBSMBIOS_HAS_ABI_HEADERS)
00267 # define LIBSMBIOS_HAS_ABI_HEADERS
00268 #endif
00269
00270 #if defined(LIBSMBIOS_HAS_ABI_HEADERS) && defined(LIBSMBIOS_DISABLE_ABI_HEADERS)
00271 # undef LIBSMBIOS_HAS_ABI_HEADERS
00272 #endif
00273
00274
00275
00276
00277
00278
00279
00280
00281
00282
00283 # ifdef LIBSMBIOS_NO_STDC_NAMESPACE
00284 # include <cstddef>
00285 namespace std { using ::ptrdiff_t; using ::size_t; }
00286 # endif
00287
00288
00289
00290 # ifdef LIBSMBIOS_NO_STD_MIN_MAX
00291
00292 namespace std {
00293 template <class _Tp>
00294 inline const _Tp& min(const _Tp& __a, const _Tp& __b) {
00295 return __b < __a ? __b : __a;
00296 }
00297 template <class _Tp>
00298 inline const _Tp& max(const _Tp& __a, const _Tp& __b) {
00299 return __a < __b ? __b : __a;
00300 }
00301 }
00302
00303 # endif
00304
00305
00306
00307
00308
00309
00310
00311 # ifdef LIBSMBIOS_NO_INCLASS_MEMBER_INITIALIZATION
00312 # define LIBSMBIOS_STATIC_CONSTANT(type, assignment) enum { assignment }
00313 # else
00314 # define LIBSMBIOS_STATIC_CONSTANT(type, assignment) static const type assignment
00315 # endif
00316
00317
00318
00319
00320
00321
00322
00323
00324
00325
00326
00327
00328 #if defined(LIBSMBIOS_NO_STD_USE_FACET)
00329 # ifdef LIBSMBIOS_HAS_TWO_ARG_USE_FACET
00330 # define LIBSMBIOS_USE_FACET(Type, loc) std::use_facet(loc, static_cast<Type*>(0))
00331 # elif defined(LIBSMBIOS_HAS_MACRO_USE_FACET)
00332 # define LIBSMBIOS_USE_FACET(Type, loc) std::_USE(loc, Type)
00333 # elif defined(LIBSMBIOS_HAS_STLP_USE_FACET)
00334 # define LIBSMBIOS_USE_FACET(Type, loc) (*std::_Use_facet<Type >(loc))
00335 # endif
00336 #else
00337 # define LIBSMBIOS_USE_FACET(Type, loc) std::use_facet< Type >(loc)
00338 #endif
00339
00340
00341
00342
00343
00344
00345
00346
00347
00348
00349
00350 #ifndef LIBSMBIOS_NO_MEMBER_TEMPLATE_KEYWORD
00351 # define LIBSMBIOS_NESTED_TEMPLATE template
00352 #else
00353 # define LIBSMBIOS_NESTED_TEMPLATE
00354 #endif
00355
00356
00357
00358
00359
00360
00361 #ifdef LIBSMBIOS_NO_UNREACHABLE_RETURN_DETECTION
00362 # define LIBSMBIOS_UNREACHABLE_RETURN(x) return x;
00363 #else
00364 # define LIBSMBIOS_UNREACHABLE_RETURN(x)
00365 #endif
00366
00367
00368
00369
00370
00371
00372
00373
00374
00375
00376
00377
00378 #ifndef LIBSMBIOS_NO_DEDUCED_TYPENAME
00379 # define LIBSMBIOS_DEDUCED_TYPENAME typename
00380 #else
00381 # define LIBSMBIOS_DEDUCED_TYPENAME
00382 #endif
00383
00384
00385
00386
00387
00388
00389
00390
00391
00392
00393
00394
00395
00396
00397
00398
00399
00400
00401
00402
00403
00404
00405
00406
00407
00408
00409
00410
00411
00412
00413
00414
00415
00416
00417
00418
00419
00420
00421
00422
00423
00424
00425
00426
00427
00428
00429
00430
00431
00432
00433
00434
00435
00436
00437
00438
00439
00440
00441
00442
00443
00444
00446
00447
00448
00449
00450
00451
00452
00453
00454
00455
00456
00457
00458
00459
00460
00461
00462
00463
00464
00465
00466
00467
00468 #define LIBSMBIOS_STRINGIZE(X) LIBSMBIOS_DO_STRINGIZE(X)
00469 #define LIBSMBIOS_DO_STRINGIZE(X) #X
00470
00471
00472
00473
00474
00475
00476
00477
00478
00479 #define LIBSMBIOS_JOIN( X, Y ) LIBSMBIOS_DO_JOIN( X, Y )
00480 #define LIBSMBIOS_DO_JOIN( X, Y ) LIBSMBIOS_DO_JOIN2(X,Y)
00481 #define LIBSMBIOS_DO_JOIN2( X, Y ) X##Y
00482
00483
00484
00485
00486
00487 # ifndef LIBSMBIOS_COMPILER
00488 # define LIBSMBIOS_COMPILER "Unknown ISO C++ Compiler"
00489 # endif
00490 # ifndef LIBSMBIOS_STDLIB
00491 # define LIBSMBIOS_STDLIB "Unknown ISO standard library"
00492 # endif
00493 # ifndef LIBSMBIOS_PLATFORM
00494 # if defined(unix) || defined(__unix) || defined(_XOPEN_SOURCE) \
00495 || defined(_POSIX_SOURCE)
00496 # define LIBSMBIOS_PLATFORM "Generic Unix"
00497 # else
00498 # define LIBSMBIOS_PLATFORM "Unknown"
00499 # endif
00500 # endif
00501
00502 #endif
00503
00504
00505