Lines Matching refs:mtx
219 __mtx_init(struct mutex *mtx, int wantipl) in __mtx_init() argument
221 mtx->mtx_owner = NULL; in __mtx_init()
222 mtx->mtx_wantipl = wantipl; in __mtx_init()
223 mtx->mtx_oldipl = IPL_NONE; in __mtx_init()
228 mtx_enter(struct mutex *mtx) in mtx_enter() argument
235 WITNESS_CHECKORDER(MUTEX_LOCK_OBJECT(mtx), in mtx_enter()
239 while (mtx_enter_try(mtx) == 0) { in mtx_enter()
245 __func__, mtx); in mtx_enter()
250 } while (mtx->mtx_owner != NULL); in mtx_enter()
256 mtx_enter_try(struct mutex *mtx) in mtx_enter_try() argument
265 if (mtx->mtx_wantipl != IPL_NONE) in mtx_enter_try()
266 s = splraise(mtx->mtx_wantipl); in mtx_enter_try()
268 owner = atomic_cas_ptr(&mtx->mtx_owner, NULL, ci); in mtx_enter_try()
271 panic("mtx %p: locking against myself", mtx); in mtx_enter_try()
275 if (mtx->mtx_wantipl != IPL_NONE) in mtx_enter_try()
276 mtx->mtx_oldipl = s; in mtx_enter_try()
280 WITNESS_LOCK(MUTEX_LOCK_OBJECT(mtx), LOP_EXCLUSIVE); in mtx_enter_try()
284 if (mtx->mtx_wantipl != IPL_NONE) in mtx_enter_try()
291 mtx_enter(struct mutex *mtx) in mtx_enter() argument
299 WITNESS_CHECKORDER(MUTEX_LOCK_OBJECT(mtx), in mtx_enter()
303 if (__predict_false(mtx->mtx_owner == ci)) in mtx_enter()
304 panic("mtx %p: locking against myself", mtx); in mtx_enter()
307 if (mtx->mtx_wantipl != IPL_NONE) in mtx_enter()
308 mtx->mtx_oldipl = splraise(mtx->mtx_wantipl); in mtx_enter()
310 mtx->mtx_owner = ci; in mtx_enter()
315 WITNESS_LOCK(MUTEX_LOCK_OBJECT(mtx), LOP_EXCLUSIVE); in mtx_enter()
319 mtx_enter_try(struct mutex *mtx) in mtx_enter_try() argument
321 mtx_enter(mtx); in mtx_enter_try()
327 mtx_leave(struct mutex *mtx) in mtx_leave() argument
335 MUTEX_ASSERT_LOCKED(mtx); in mtx_leave()
336 WITNESS_UNLOCK(MUTEX_LOCK_OBJECT(mtx), LOP_EXCLUSIVE); in mtx_leave()
342 s = mtx->mtx_oldipl; in mtx_leave()
346 mtx->mtx_owner = NULL; in mtx_leave()
347 if (mtx->mtx_wantipl != IPL_NONE) in mtx_leave()
353 db_mtx_enter(struct db_mutex *mtx) in db_mtx_enter() argument
359 if (__predict_false(mtx->mtx_owner == ci)) in db_mtx_enter()
360 panic("%s: mtx %p: locking against myself", __func__, mtx); in db_mtx_enter()
366 owner = atomic_cas_ptr(&mtx->mtx_owner, NULL, ci); in db_mtx_enter()
373 mtx->mtx_intr_state = s; in db_mtx_enter()
381 db_mtx_leave(struct db_mutex *mtx) in db_mtx_leave() argument
389 if (__predict_false(mtx->mtx_owner != ci)) in db_mtx_leave()
390 panic("%s: mtx %p: not owned by this CPU", __func__, mtx); in db_mtx_leave()
394 s = mtx->mtx_intr_state; in db_mtx_leave()
398 mtx->mtx_owner = NULL; in db_mtx_leave()