Merge tag 'cgroup-for-6.11-rc4-fixes' of git://git.kernel.org/pub/scm/linux/kernel...
[linux-block.git] / tools / perf / util / rwsem.h
1 #ifndef _PERF_RWSEM_H
2 #define _PERF_RWSEM_H
3
4 #include <pthread.h>
5 #include "mutex.h"
6
7 /*
8  * Mutexes have additional error checking. Enable to use a mutex rather than a
9  * rwlock for debugging.
10  */
11 #define RWS_ERRORCHECK 0
12
13 struct rw_semaphore {
14 #if RWS_ERRORCHECK
15         struct mutex mtx;
16 #else
17         pthread_rwlock_t lock;
18 #endif
19 };
20
21 int init_rwsem(struct rw_semaphore *sem);
22 int exit_rwsem(struct rw_semaphore *sem);
23
24 int down_read(struct rw_semaphore *sem);
25 int up_read(struct rw_semaphore *sem);
26
27 int down_write(struct rw_semaphore *sem);
28 int up_write(struct rw_semaphore *sem);
29
30 #endif /* _PERF_RWSEM_H */