1 /****************************************************************************/
2 #if( defined _POSIX_THREADS && _POSIX_THREADS >= 0 && !defined KERNEL_MODE )
6 _POSIX_THREADS indicates POSIX threads
7 - pthreads_rwlock_init requires POSIX
8 - pthreads_rwlock_destroy requires POSIX
9 - pthreads_rwlock_lock requires POSIX
10 - pthreads_rwlock_unlock requires POSIX
14 #define LIBBENCHMARK_PAL_LOCK_PTHREAD_RWLOCK 1
16 #define LIBBENCHMARK_PAL_LOCK_PTHREAD_RWLOCK_CREATE( pal_lock_pthread_rwlock_state ) pthread_rwlock_init( &pal_lock_pthread_rwlock_state, NULL )
17 #define LIBBENCHMARK_PAL_LOCK_PTHREAD_RWLOCK_DESTROY( pal_lock_pthread_rwlock_state ) pthread_rwlock_destroy( &pal_lock_pthread_rwlock_state )
18 #define LIBBENCHMARK_PAL_LOCK_PTHREAD_RWLOCK_GET_READ( pal_lock_pthread_rwlock_state ) pthread_rwlock_rdlock( &pal_lock_pthread_rwlock_state )
19 #define LIBBENCHMARK_PAL_LOCK_PTHREAD_RWLOCK_GET_WRITE( pal_lock_pthread_rwlock_state ) pthread_rwlock_wrlock( &pal_lock_pthread_rwlock_state )
20 #define LIBBENCHMARK_PAL_LOCK_PTHREAD_RWLOCK_RELEASE( pal_lock_pthread_rwlock_state ) pthread_rwlock_unlock( &pal_lock_pthread_rwlock_state )
22 /***** typedefs *****/
23 typedef pthread_rwlock_t pal_lock_pthread_rwlock_state;
31 /****************************************************************************/
32 #if( !defined LIBBENCHMARK_PAL_LOCK_PTHREAD_RWLOCK )
35 #define LIBBENCHMARK_PAL_LOCK_PTHREAD_RWLOCK 0
37 #define LIBBENCHMARK_PAL_LOCK_PTHREAD_RWLOCK_CREATE( pal_lock_pthread_rwlock_state )
38 #define LIBBENCHMARK_PAL_LOCK_PTHREAD_RWLOCK_DESTROY( pal_lock_pthread_rwlock_state )
39 #define LIBBENCHMARK_PAL_LOCK_PTHREAD_RWLOCK_GET_READ( pal_lock_pthread_rwlock_state )
40 #define LIBBENCHMARK_PAL_LOCK_PTHREAD_RWLOCK_GET_WRITE( pal_lock_pthread_rwlock_state )
41 #define LIBBENCHMARK_PAL_LOCK_PTHREAD_RWLOCK_RELEASE( pal_lock_pthread_rwlock_state )
43 /***** typedefs *****/
44 typedef void * pal_lock_pthread_rwlock_state;