]> pd.if.org Git - liblfds/blob - liblfds/liblfds7.1.0/test_and_benchmark/libbenchmark/inc/libbenchmark/libbenchmark_porting_abstraction_layer_lock_windows_mutex.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_mutex.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                             - CreateMutex requires XP
9                             - CloseHandle requires XP
10                             - WaitForSingleObject requires XP
11                             - ReleaseMutex requires XP
12   */
13
14   /***** defines *****/
15   #define LIBBENCHMARK_PAL_LOCK_WINDOWS_MUTEX 1
16
17   #define LIBBENCHMARK_PAL_LOCK_WINDOWS_MUTEX_CREATE( pal_lock_windows_mutex_state )   pal_lock_windows_mutex_state = CreateMutex( NULL, FALSE, NULL )
18   #define LIBBENCHMARK_PAL_LOCK_WINDOWS_MUTEX_DESTROY( pal_lock_windows_mutex_state )  CloseHandle( pal_lock_windows_mutex_state )
19   #define LIBBENCHMARK_PAL_LOCK_WINDOWS_MUTEX_GET( pal_lock_windows_mutex_state )      WaitForSingleObject( pal_lock_windows_mutex_state, INFINITE )
20   #define LIBBENCHMARK_PAL_LOCK_WINDOWS_MUTEX_RELEASE( pal_lock_windows_mutex_state )  ReleaseMutex( pal_lock_windows_mutex_state )
21
22   /***** typedefs *****/
23   typedef HANDLE pal_lock_windows_mutex_state;
24
25 #endif
26
27
28
29
30
31 /****************************************************************************/
32 #if( !defined LIBBENCHMARK_PAL_LOCK_WINDOWS_MUTEX )
33
34   /***** defines *****/
35   #define LIBBENCHMARK_PAL_LOCK_WINDOWS_MUTEX 0
36
37   #define LIBBENCHMARK_PAL_LOCK_WINDOWS_MUTEX_CREATE( pal_lock_windows_mutex_state )
38   #define LIBBENCHMARK_PAL_LOCK_WINDOWS_MUTEX_DESTROY( pal_lock_windows_mutex_state )
39   #define LIBBENCHMARK_PAL_LOCK_WINDOWS_MUTEX_GET( pal_lock_windows_mutex_state )
40   #define LIBBENCHMARK_PAL_LOCK_WINDOWS_MUTEX_RELEASE( pal_lock_windows_mutex_state )
41
42   /***** typedefs *****/
43   typedef void * pal_lock_windows_mutex_state;
44
45 #endif
46