MTX_UNOWNED
sp->kdb_locked = sc->video_mtx.mtx_lock == MTX_UNOWNED ||
atomic_store_rel_ptr(&m->mtx_lock, MTX_UNOWNED);
m->mtx_lock = MTX_UNOWNED;
while (atomic_load_acq_ptr(&m->mtx_lock) != MTX_UNOWNED) {
if (v == MTX_UNOWNED) {
v = MTX_UNOWNED;
v = MTX_UNOWNED;
v = MTX_UNOWNED;
if (v == MTX_UNOWNED)
while (v == MTX_UNOWNED) {
if (__predict_false(v == MTX_UNOWNED))
if (v == MTX_UNOWNED) {
} while (v != MTX_UNOWNED && TD_IS_RUNNING(owner));
if (v == MTX_UNOWNED) {
while (v == MTX_UNOWNED) {
if (__predict_false(v == MTX_UNOWNED))
if (v == MTX_UNOWNED) {
} while (v != MTX_UNOWNED);
atomic_store_rel_ptr(&m->mtx_lock, MTX_UNOWNED);
#define mtx_unowned(m) ((m)->mtx_lock == MTX_UNOWNED)
if (v == MTX_UNOWNED) {
} while (v != MTX_UNOWNED);
atomic_store_rel_ptr(&m->mtx_lock, MTX_UNOWNED);
atomic_cmpset_acq_ptr(&(mp)->mtx_lock, MTX_UNOWNED, (tid))
atomic_cmpset_rel_ptr(&(mp)->mtx_lock, (tid), MTX_UNOWNED)
atomic_fcmpset_rel_ptr(&(mp)->mtx_lock, (vp), MTX_UNOWNED)
uintptr_t _v = MTX_UNOWNED; \
uintptr_t _v = MTX_UNOWNED; \
if (((mp)->mtx_lock != MTX_UNOWNED || !_mtx_obtain_lock((mp), _tid))) {\
KASSERT((mp)->mtx_lock == MTX_UNOWNED, ("corrupt spinlock")); \
if ((mp)->mtx_lock != MTX_UNOWNED) { \
atomic_store_rel_ptr(&(mp)->mtx_lock, MTX_UNOWNED); \
(mp)->mtx_lock = MTX_UNOWNED; \