xref: /openbmc/linux/tools/perf/util/rwsem.h (revision 664b0bae0b87f69bc9deb098f5e0158b9cf18e04)
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