RW_LOCK_READ_WAITERS
KASSERT(rw->rw_lock & (RW_LOCK_READ_WAITERS | RW_LOCK_WRITE_WAITERS),
setv |= (v & RW_LOCK_READ_WAITERS);
rwait = v & RW_LOCK_READ_WAITERS;
v &= ~RW_LOCK_READ_WAITERS;
switch (rw->rw_lock & (RW_LOCK_READ_WAITERS | RW_LOCK_WRITE_WAITERS)) {
case RW_LOCK_READ_WAITERS:
case RW_LOCK_READ_WAITERS | RW_LOCK_WRITE_WAITERS:
if (!(v & RW_LOCK_READ_WAITERS)) {
v | RW_LOCK_READ_WAITERS))
setv |= (v & RW_LOCK_READ_WAITERS);
(RW_LOCK_READ | RW_LOCK_READ_WAITERS | RW_LOCK_WRITE_WAITERS | \
#define RW_LOCK_WAITERS (RW_LOCK_READ_WAITERS | RW_LOCK_WRITE_WAITERS)
#define RW_DESTROYED (RW_LOCK_READ_WAITERS | RW_LOCK_WRITE_WAITERS)