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