1 /****************************************************************************/
2 #if( defined _MSC_VER )
5 an unfortunately necessary hack for MSVC
6 MSVC only defines __STDC__ if /Za is given, where /Za turns off MSVC C extensions -
7 which prevents Windows header files from compiling.
11 #define __STDC_HOSTED__ 1
18 /****************************************************************************/
19 #if( defined _WIN32 && NTDDI_VERSION < NTDDI_VISTA )
21 #ifdef BENCHMARK_PAL_OPERATING_SYSTEM
22 #error More than one porting abstraction layer matches current platform.
25 #define BENCHMARK_PAL_OPERATING_SYSTEM
27 #define BENCHMARK_PAL_OS_STRING "Windows"
28 #define BENCHMARK_PAL_MEMORY_TYPE BENCHMARK_MEMORY_TYPE_SMP
29 #define BENCHMARK_PAL_MEMORY_TYPE_STRING "SMP"
37 /****************************************************************************/
38 #if( defined _WIN32 && NTDDI_VERSION >= NTDDI_VISTA )
40 #ifdef BENCHMARK_PAL_OPERATING_SYSTEM
41 #error More than one porting abstraction layer matches current platform.
44 #define BENCHMARK_PAL_OPERATING_SYSTEM
46 #define BENCHMARK_PAL_OS_STRING "Windows"
47 #define BENCHMARK_PAL_MEMORY_TYPE BENCHMARK_MEMORY_TYPE_NUMA
48 #define BENCHMARK_PAL_MEMORY_TYPE_STRING "NUMA"
56 /****************************************************************************/
57 #if( defined __linux__ && !defined KERNEL_MODE && !defined LIBNUMA )
59 #ifdef BENCHMARK_PAL_OPERATING_SYSTEM
60 #error More than one porting abstraction layer matches current platform.
63 #define BENCHMARK_PAL_OPERATING_SYSTEM
65 #define BENCHMARK_PAL_OS_STRING "Linux"
66 #define BENCHMARK_PAL_MEMORY_TYPE BENCHMARK_MEMORY_TYPE_SMP
67 #define BENCHMARK_PAL_MEMORY_TYPE_STRING "SMP"
70 #if( _POSIX_MEMLOCK_RANGE > 0 )
80 /****************************************************************************/
81 #if( defined __linux__ && !defined KERNEL_MODE && defined LIBNUMA )
83 #ifdef BENCHMARK_PAL_OPERATING_SYSTEM
84 #error More than one porting abstraction layer matches current platform.
87 #define BENCHMARK_PAL_OPERATING_SYSTEM
89 #define BENCHMARK_PAL_OS_STRING "Linux"
90 #define BENCHMARK_PAL_MEMORY_TYPE BENCHMARK_MEMORY_TYPE_NUMA
91 #define BENCHMARK_PAL_MEMORY_TYPE_STRING "NUMA"
95 #if( _POSIX_MEMLOCK_RANGE > 0 )
105 /****************************************************************************/
106 #if( !defined BENCHMARK_PAL_OPERATING_SYSTEM )
108 #error No operating system porting abstraction layer.