|
@@ -49,8 +49,6 @@ extern asmregparm struct rw_semaphore *
|
|
|
rwsem_downgrade_wake(struct rw_semaphore *sem);
|
|
|
|
|
|
/*
|
|
|
- * the semaphore definition
|
|
|
- *
|
|
|
* The bias values and the counter type limits the number of
|
|
|
* potential readers/writers to 32767 for 32 bits and 2147483647
|
|
|
* for 64 bits.
|
|
@@ -68,22 +66,12 @@ extern asmregparm struct rw_semaphore *
|
|
|
#define RWSEM_ACTIVE_READ_BIAS RWSEM_ACTIVE_BIAS
|
|
|
#define RWSEM_ACTIVE_WRITE_BIAS (RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS)
|
|
|
|
|
|
-struct rw_semaphore {
|
|
|
- long count;
|
|
|
- spinlock_t wait_lock;
|
|
|
- struct list_head wait_list;
|
|
|
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
|
|
|
- struct lockdep_map dep_map;
|
|
|
-#endif
|
|
|
-};
|
|
|
-
|
|
|
#ifdef CONFIG_DEBUG_LOCK_ALLOC
|
|
|
# define __RWSEM_DEP_MAP_INIT(lockname) , .dep_map = { .name = #lockname }
|
|
|
#else
|
|
|
# define __RWSEM_DEP_MAP_INIT(lockname)
|
|
|
#endif
|
|
|
|
|
|
-
|
|
|
#define __RWSEM_INITIALIZER(name) \
|
|
|
{ \
|
|
|
RWSEM_UNLOCKED_VALUE, __SPIN_LOCK_UNLOCKED((name).wait_lock), \
|