Home | History | Annotate | Download | only in include

Lines Matching refs:mtx

105 MUTEX_SET_WAITERS(struct kmutex *mtx, uintptr_t owner)
108 mtx->mtx_waiters = 1;
110 return mtx->mtx_owner != MUTEX_ADAPTIVE_UNOWNED;
114 MUTEX_HAS_WAITERS(const volatile struct kmutex *mtx)
116 return mtx->mtx_waiters != 0;
120 MUTEX_INITIALIZE_SPIN(struct kmutex *mtx, bool dodebug, int ipl)
122 mtx->mtx_ipl = makeiplcookie(ipl);
123 mtx->mtx_dodebug = dodebug;
124 mtx->mtx_owner = MUTEX_SPIN_FLAG;
125 __cpu_simple_lock_init(&mtx->mtx_lock);
129 MUTEX_INITIALIZE_ADAPTIVE(struct kmutex *mtx, bool dodebug)
131 mtx->mtx_dodebug = dodebug;
132 mtx->mtx_owner = MUTEX_ADAPTIVE_UNOWNED;
133 __cpu_simple_lock_init(&mtx->mtx_lock);
137 MUTEX_DESTROY(struct kmutex *mtx)
139 mtx->mtx_owner = 0xffffffff;
143 MUTEX_DEBUG_P(const volatile struct kmutex *mtx)
145 return mtx->mtx_dodebug != 0;
162 MUTEX_ACQUIRE(struct kmutex *mtx, uintptr_t curthread)
164 if (!__cpu_simple_lock_try(&mtx->mtx_lock))
166 mtx->mtx_owner = curthread;
172 MUTEX_RELEASE(struct kmutex *mtx)
174 mtx->mtx_owner = MUTEX_ADAPTIVE_UNOWNED;
175 __cpu_simple_unlock(&mtx->mtx_lock);
176 mtx->mtx_waiters = 0;
180 MUTEX_CLEAR_WAITERS(struct kmutex *mtx)
182 mtx->mtx_waiters = 0;