mtx_owner
((kmutex_t *)frame->tf_arg0)->mtx_owner = (uintptr_t)curlwp;
return mtx->mtx_owner != MUTEX_ADAPTIVE_UNOWNED;
mtx->mtx_owner = MUTEX_SPIN_FLAG;
mtx->mtx_owner = MUTEX_ADAPTIVE_UNOWNED;
mtx->mtx_owner = 0xffffffff;
mtx->mtx_owner = curthread;
mtx->mtx_owner = MUTEX_ADAPTIVE_UNOWNED;
volatile uintptr_t mtx_owner;
volatile uintptr_t mtx_owner;
volatile uintptr_t mtx_owner;
return (ipl_cookie_t){._spl = __SHIFTOUT(__mtx->mtx_owner, MTX_IPL)};
__mtx->mtx_owner = (__mtx->mtx_owner & ~MTX_IPL)
__mtx->mtx_owner &= ~MTX_LOCK;
return (__mtx->mtx_owner & MTX_LOCK) != 0;
db_read_bytes((db_addr_t)&mtx->mtx_owner, sizeof(owner),
(((int)(mtx)->mtx_owner & MUTEX_BIT_WAITERS) != 0)
(mtx)->mtx_owner |= MUTEX_BIT_NODEBUG; \
(mtx)->mtx_owner = MUTEX_BIT_SPIN; \
(mtx)->mtx_owner |= MUTEX_BIT_NODEBUG; \
(mtx)->mtx_owner = MUTEX_THREAD; \
#define MUTEX_DEBUG_P(mtx) (((mtx)->mtx_owner & MUTEX_BIT_NODEBUG) == 0)
MUTEX_INHERITDEBUG(oldown, mtx->mtx_owner);
rv = MUTEX_CAS(&mtx->mtx_owner, oldown, newown);
rv = MUTEX_CAS(&mtx->mtx_owner, owner, owner | MUTEX_BIT_WAITERS);
MUTEX_INHERITDEBUG(newown, mtx->mtx_owner);
atomic_store_release(&mtx->mtx_owner, newown);
uintptr_t owner = mtx->mtx_owner;
LOCKDEBUG_ABORT(func, line, mtx, (MUTEX_SPIN_P(mtx->mtx_owner) ?
uintptr_t owner = mtx->mtx_owner;
owner = mtx->mtx_owner;
owner = mtx->mtx_owner;
owner = mtx->mtx_owner;
owner = mtx->mtx_owner;
owner = mtx->mtx_owner;
owner = mtx->mtx_owner;
owner = mtx->mtx_owner;
MUTEX_DASSERT(mtx, MUTEX_OWNER(mtx->mtx_owner) == curthread);
if (MUTEX_SPIN_P(mtx->mtx_owner)) {
MUTEX_ASSERT(mtx, MUTEX_OWNER(mtx->mtx_owner) == curthread);
if (MUTEX_ADAPTIVE_P(mtx->mtx_owner))
return MUTEX_OWNER(mtx->mtx_owner) == (uintptr_t)curlwp;
MUTEX_ASSERT(mtx, MUTEX_ADAPTIVE_P(mtx->mtx_owner));
return (struct lwp *)MUTEX_OWNER(mtx->mtx_owner);
if (MUTEX_SPIN_P(mtx->mtx_owner)) {
MUTEX_OWNER(mtx->mtx_owner) == curthread);