1*4882a593Smuzhiyun #ifndef _PERF_RWSEM_H 2*4882a593Smuzhiyun #define _PERF_RWSEM_H 3*4882a593Smuzhiyun 4*4882a593Smuzhiyun #include <pthread.h> 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun struct rw_semaphore { 7*4882a593Smuzhiyun pthread_rwlock_t lock; 8*4882a593Smuzhiyun }; 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun int init_rwsem(struct rw_semaphore *sem); 11*4882a593Smuzhiyun int exit_rwsem(struct rw_semaphore *sem); 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun int down_read(struct rw_semaphore *sem); 14*4882a593Smuzhiyun int up_read(struct rw_semaphore *sem); 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun int down_write(struct rw_semaphore *sem); 17*4882a593Smuzhiyun int up_write(struct rw_semaphore *sem); 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun #endif /* _PERF_RWSEM_H */ 20