diff options
Diffstat (limited to 'include/linux/rwsem-spinlock.h')
| -rw-r--r-- | include/linux/rwsem-spinlock.h | 31 |
1 files changed, 1 insertions, 30 deletions
diff --git a/include/linux/rwsem-spinlock.h b/include/linux/rwsem-spinlock.h index bdfcc2527970..34701241b673 100644 --- a/include/linux/rwsem-spinlock.h +++ b/include/linux/rwsem-spinlock.h | |||
| @@ -12,15 +12,7 @@ | |||
| 12 | #error "please don't include linux/rwsem-spinlock.h directly, use linux/rwsem.h instead" | 12 | #error "please don't include linux/rwsem-spinlock.h directly, use linux/rwsem.h instead" |
| 13 | #endif | 13 | #endif |
| 14 | 14 | ||
| 15 | #include <linux/spinlock.h> | ||
| 16 | #include <linux/list.h> | ||
| 17 | |||
| 18 | #ifdef __KERNEL__ | 15 | #ifdef __KERNEL__ |
| 19 | |||
| 20 | #include <linux/types.h> | ||
| 21 | |||
| 22 | struct rwsem_waiter; | ||
| 23 | |||
| 24 | /* | 16 | /* |
| 25 | * the rw-semaphore definition | 17 | * the rw-semaphore definition |
| 26 | * - if activity is 0 then there are no active readers or writers | 18 | * - if activity is 0 then there are no active readers or writers |
| @@ -37,28 +29,7 @@ struct rw_semaphore { | |||
| 37 | #endif | 29 | #endif |
| 38 | }; | 30 | }; |
| 39 | 31 | ||
| 40 | #ifdef CONFIG_DEBUG_LOCK_ALLOC | 32 | #define RWSEM_UNLOCKED_VALUE 0x00000000 |
| 41 | # define __RWSEM_DEP_MAP_INIT(lockname) , .dep_map = { .name = #lockname } | ||
| 42 | #else | ||
| 43 | # define __RWSEM_DEP_MAP_INIT(lockname) | ||
| 44 | #endif | ||
| 45 | |||
| 46 | #define __RWSEM_INITIALIZER(name) \ | ||
| 47 | { 0, __SPIN_LOCK_UNLOCKED(name.wait_lock), LIST_HEAD_INIT((name).wait_list) \ | ||
| 48 | __RWSEM_DEP_MAP_INIT(name) } | ||
| 49 | |||
| 50 | #define DECLARE_RWSEM(name) \ | ||
| 51 | struct rw_semaphore name = __RWSEM_INITIALIZER(name) | ||
| 52 | |||
| 53 | extern void __init_rwsem(struct rw_semaphore *sem, const char *name, | ||
| 54 | struct lock_class_key *key); | ||
| 55 | |||
| 56 | #define init_rwsem(sem) \ | ||
| 57 | do { \ | ||
| 58 | static struct lock_class_key __key; \ | ||
| 59 | \ | ||
| 60 | __init_rwsem((sem), #sem, &__key); \ | ||
| 61 | } while (0) | ||
| 62 | 33 | ||
| 63 | extern void __down_read(struct rw_semaphore *sem); | 34 | extern void __down_read(struct rw_semaphore *sem); |
| 64 | extern int __down_read_trylock(struct rw_semaphore *sem); | 35 | extern int __down_read_trylock(struct rw_semaphore *sem); |
