Lines Matching refs:rwlp

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