summaryrefslogtreecommitdiff
path: root/include/linux/percpu-rwsem.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/percpu-rwsem.h')
-rw-r--r--include/linux/percpu-rwsem.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/include/linux/percpu-rwsem.h b/include/linux/percpu-rwsem.h
index 153251c0..20fa19a0 100644
--- a/include/linux/percpu-rwsem.h
+++ b/include/linux/percpu-rwsem.h
@@ -4,6 +4,7 @@
#define _LINUX_PERCPU_RWSEM_H
#include <pthread.h>
+#include <linux/cleanup.h>
#include <linux/preempt.h>
struct percpu_rw_semaphore {
@@ -55,4 +56,11 @@ static inline int percpu_init_rwsem(struct percpu_rw_semaphore *sem)
#define percpu_rwsem_assert_held(sem) do {} while (0)
+DEFINE_GUARD(percpu_read, struct percpu_rw_semaphore *,
+ percpu_down_read(_T), percpu_up_read(_T))
+DEFINE_GUARD_COND(percpu_read, _try, percpu_down_read_trylock(_T))
+
+DEFINE_GUARD(percpu_write, struct percpu_rw_semaphore *,
+ percpu_down_write(_T), percpu_up_write(_T))
+
#endif