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))