rwl 86 kern/kern_rwlock.c rw_enter_read(struct rwlock *rwl)
rwl 88 kern/kern_rwlock.c unsigned long owner = rwl->rwl_owner;
rwl 91 kern/kern_rwlock.c rw_cas(&rwl->rwl_owner, owner, owner + RWLOCK_READ_INCR)))
rwl 92 kern/kern_rwlock.c rw_enter(rwl, RW_READ);
rwl 96 kern/kern_rwlock.c rw_enter_write(struct rwlock *rwl)
rwl 100 kern/kern_rwlock.c if (__predict_false(rw_cas(&rwl->rwl_owner, 0,
rwl 102 kern/kern_rwlock.c rw_enter(rwl, RW_WRITE);
rwl 106 kern/kern_rwlock.c rw_exit_read(struct rwlock *rwl)
rwl 108 kern/kern_rwlock.c unsigned long owner = rwl->rwl_owner;
rwl 111 kern/kern_rwlock.c rw_cas(&rwl->rwl_owner, owner, owner - RWLOCK_READ_INCR)))
rwl 112 kern/kern_rwlock.c rw_exit(rwl);
rwl 116 kern/kern_rwlock.c rw_exit_write(struct rwlock *rwl)
rwl 118 kern/kern_rwlock.c unsigned long owner = rwl->rwl_owner;
rwl 121 kern/kern_rwlock.c rw_cas(&rwl->rwl_owner, owner, 0)))
rwl 122 kern/kern_rwlock.c rw_exit(rwl);
rwl 145 kern/kern_rwlock.c rw_enter_diag(struct rwlock *rwl, int flags)
rwl 150 kern/kern_rwlock.c if (RW_PROC(curproc) == RW_PROC(rwl->rwl_owner))
rwl 152 kern/kern_rwlock.c rwl->rwl_name);
rwl 158 kern/kern_rwlock.c if ((rwl->rwl_owner & RWLOCK_WRLOCK) == 0)
rwl 160 kern/kern_rwlock.c rwl->rwl_name);
rwl 161 kern/kern_rwlock.c if (RW_PROC(curproc) != RW_PROC(rwl->rwl_owner))
rwl 163 kern/kern_rwlock.c rwl->rwl_name);
rwl 176 kern/kern_rwlock.c rw_init(struct rwlock *rwl, const char *name)
rwl 178 kern/kern_rwlock.c rwl->rwl_owner = 0;
rwl 179 kern/kern_rwlock.c rwl->rwl_name = name;
rwl 183 kern/kern_rwlock.c rw_enter(struct rwlock *rwl, int flags)
rwl 194 kern/kern_rwlock.c while (__predict_false(((o = rwl->rwl_owner) & op->check) != 0)) {
rwl 198 kern/kern_rwlock.c rw_enter_diag(rwl, flags);
rwl 203 kern/kern_rwlock.c sleep_setup(&sls, rwl, op->wait_prio, rwl->rwl_name);
rwl 207 kern/kern_rwlock.c do_sleep = !rw_cas(&rwl->rwl_owner, o, set);
rwl 217 kern/kern_rwlock.c if (__predict_false(rw_cas(&rwl->rwl_owner, o, o + inc)))
rwl 227 kern/kern_rwlock.c wakeup(rwl);
rwl 233 kern/kern_rwlock.c rw_exit(struct rwlock *rwl)
rwl 235 kern/kern_rwlock.c unsigned long owner = rwl->rwl_owner;
rwl 240 kern/kern_rwlock.c owner = rwl->rwl_owner;
rwl 246 kern/kern_rwlock.c } while (rw_cas(&rwl->rwl_owner, owner, set));
rwl 249 kern/kern_rwlock.c wakeup(rwl);
rwl 86 sys/rwlock.h #define RWLOCK_OWNER(rwl) ((struct proc *)((rwl)->rwl_owner & ~RWLOCK_MASK))