Lines Matching defs:rwlp
173 rw_init(krwlock_t *rwlp, char *name, int type, void *arg)
175 rwlock_init(&rwlp->rw_lock, USYNC_THREAD, NULL);
176 rwlp->rw_owner = NULL;
177 rwlp->rw_reentrant = (type == RW_REENTRANT);
178 rwlp->initialized = B_TRUE;
182 rw_destroy(krwlock_t *rwlp)
184 rwlock_destroy(&rwlp->rw_lock);
185 rwlp->rw_owner = (void *)-1UL;
186 rwlp->initialized = B_FALSE;
190 rw_enter(krwlock_t *rwlp, krw_t rw)
192 ASSERT(rwlp->initialized == B_TRUE);
193 ASSERT(rwlp->rw_owner != (void *)-1UL);
194 ASSERT(rwlp->rw_reentrant || !RW_LOCK_HELD(rwlp));
195 ASSERT(rwlp->rw_reentrant || rwlp->rw_owner != curthread);
196 VERIFY(!rwlp->rw_reentrant || rw != RW_WRITER);
199 VERIFY(rw_rdlock(&rwlp->rw_lock) == 0);
201 VERIFY(rw_wrlock(&rwlp->rw_lock) == 0);
203 rwlp->rw_owner = curthread;
207 rw_exit(krwlock_t *rwlp)
209 ASSERT(rwlp->initialized == B_TRUE);
210 ASSERT(rwlp->rw_owner != (void *)-1UL);
212 rwlp->rw_owner = NULL;
213 VERIFY(rw_unlock(&rwlp->rw_lock) == 0);
217 rw_tryenter(krwlock_t *rwlp, krw_t rw)
221 ASSERT(rwlp->initialized == B_TRUE);
222 ASSERT(rwlp->rw_owner != (void *)-1UL);
225 rv = rw_tryrdlock(&rwlp->rw_lock);
227 rv = rw_trywrlock(&rwlp->rw_lock);
230 rwlp->rw_owner = curthread;
239 rw_tryupgrade(krwlock_t *rwlp)
241 ASSERT(rwlp->initialized == B_TRUE);
242 ASSERT(rwlp->rw_owner != (void *)-1UL);