]> pd.if.org Git - liblfds/blob - liblfds/liblfds7.1.0/test_and_benchmark/libbenchmark/inc/libbenchmark/libbenchmark_porting_abstraction_layer_lock_windows_critical_section.h
Initial import (all versions, including the new 7.1.0)
[liblfds] / liblfds / liblfds7.1.0 / test_and_benchmark / libbenchmark / inc / libbenchmark / libbenchmark_porting_abstraction_layer_lock_windows_critical_section.h
1 /****************************************************************************/
2 #if( defined _WIN32 && NTDDI_VERSION >= NTDDI_WINXP && !defined KERNEL_MODE )
3
4   /* TRD : Windows XP or better
5
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
12   */
13
14   /***** defines *****/
15   #define LIBBENCHMARK_PAL_LOCK_WINDOWS_CRITICAL_SECTION 1
16
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 )
21
22   /***** typedefs *****/
23   typedef CRITICAL_SECTION pal_lock_windows_critical_section_state;
24
25 #endif
26
27
28
29
30
31 /****************************************************************************/
32 #if( !defined LIBBENCHMARK_PAL_LOCK_WINDOWS_CRITICAL_SECTION )
33
34   /***** defines *****/
35   #define LIBBENCHMARK_PAL_LOCK_WINDOWS_CRITICAL_SECTION 0
36
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 )
41
42   /***** typedefs *****/
43   typedef void * pal_lock_windows_critical_section_state;
44
45 #endif
46