Lines Matching defs:rwlp
42 rw_init(krwlock_t *rwlp, char *name, krw_type_t type, void *arg)
44 (void) rwlock_init(&rwlp->rw_lock, USYNC_THREAD, NULL);
45 rwlp->rw_owner = _KTHREAD_INVALID;
49 rw_destroy(krwlock_t *rwlp)
51 (void) rwlock_destroy(&rwlp->rw_lock);
52 rwlp->rw_owner = _KTHREAD_INVALID;
56 rw_enter(krwlock_t *rwlp, krw_t rw)
61 rc = rw_rdlock(&rwlp->rw_lock);
63 rc = rw_wrlock(&rwlp->rw_lock);
64 rwlp->rw_owner = _curthread();
70 rw_exit(krwlock_t *rwlp)
72 if (_rw_write_held(&rwlp->rw_lock)) {
73 ASSERT(rwlp->rw_owner == _curthread());
74 rwlp->rw_owner = _KTHREAD_INVALID;
76 (void) rw_unlock(&rwlp->rw_lock);
80 rw_tryenter(krwlock_t *rwlp, krw_t rw)
85 rv = rw_trywrlock(&rwlp->rw_lock);
87 rwlp->rw_owner = _curthread();
89 rv = rw_tryrdlock(&rwlp->rw_lock);
96 rw_tryupgrade(krwlock_t *rwlp)
103 rw_downgrade(krwlock_t *rwlp)
105 ASSERT(rwlp->rw_owner == _curthread());
106 rwlp->rw_owner = _KTHREAD_INVALID;
107 VERIFY(rw_unlock(&rwlp->rw_lock) == 0);
108 VERIFY(rw_rdlock(&rwlp->rw_lock) == 0);
112 rw_read_held(krwlock_t *rwlp)
114 return (_rw_read_held(rwlp));
118 rw_write_held(krwlock_t *rwlp)
120 return (_rw_write_held(rwlp));
124 rw_lock_held(krwlock_t *rwlp)
126 return (rw_read_held(rwlp) || rw_write_held(rwlp));
133 rw_owner(krwlock_t *rwlp)
135 return (rwlp->rw_owner);