1 /****************************************************************************/
2 #if( defined _WIN32 && NTDDI_VERSION >= NTDDI_WINXP && !defined KERNEL_MODE )
4 /* TRD : Windows XP or better
6 _WIN32 indicates 64-bit or 32-bit Windows
7 NTDDI_VERSION indicates Windows version
8 - InitializeCriticalSection requires XP
9 - DeleteCriticalSection requires XP
10 - EnterCriticalSection requires XP
11 - LeaveCriticalSection requires XP
15 #define LIBBENCHMARK_PAL_LOCK_WINDOWS_CRITICAL_SECTION 1
17 #define LIBBENCHMARK_PAL_LOCK_WINDOWS_CRITICAL_SECTION_CREATE( pal_lock_windows_critical_section_state ) InitializeCriticalSection( &pal_lock_windows_critical_section_state )
18 #define LIBBENCHMARK_PAL_LOCK_WINDOWS_CRITICAL_SECTION_DESTROY( pal_lock_windows_critical_section_state ) DeleteCriticalSection( &pal_lock_windows_critical_section_state )
19 #define LIBBENCHMARK_PAL_LOCK_WINDOWS_CRITICAL_SECTION_GET( pal_lock_windows_critical_section_state ) EnterCriticalSection( &pal_lock_windows_critical_section_state )
20 #define LIBBENCHMARK_PAL_LOCK_WINDOWS_CRITICAL_SECTION_RELEASE( pal_lock_windows_critical_section_state ) LeaveCriticalSection( &pal_lock_windows_critical_section_state )
22 /***** typedefs *****/
23 typedef CRITICAL_SECTION pal_lock_windows_critical_section_state;
31 /****************************************************************************/
32 #if( !defined LIBBENCHMARK_PAL_LOCK_WINDOWS_CRITICAL_SECTION )
35 #define LIBBENCHMARK_PAL_LOCK_WINDOWS_CRITICAL_SECTION 0
37 #define LIBBENCHMARK_PAL_LOCK_WINDOWS_CRITICAL_SECTION_CREATE( pal_lock_windows_critical_section_state )
38 #define LIBBENCHMARK_PAL_LOCK_WINDOWS_CRITICAL_SECTION_DESTROY( pal_lock_windows_critical_section_state )
39 #define LIBBENCHMARK_PAL_LOCK_WINDOWS_CRITICAL_SECTION_GET( pal_lock_windows_critical_section_state )
40 #define LIBBENCHMARK_PAL_LOCK_WINDOWS_CRITICAL_SECTION_RELEASE( pal_lock_windows_critical_section_state )
42 /***** typedefs *****/
43 typedef void * pal_lock_windows_critical_section_state;