_Q_PENDING_VAL
"I", _Q_PENDING_OFFSET) * _Q_PENDING_VAL;
if (val == _Q_PENDING_VAL) {
(VAL != _Q_PENDING_VAL) || !cnt--);
if (val == _Q_PENDING_VAL) {
(VAL != _Q_PENDING_VAL) || !cnt--);
atomic_andnot(_Q_PENDING_VAL, &lock->val);
atomic_add(-_Q_PENDING_VAL + _Q_LOCKED_VAL, &lock->val);
return atomic_fetch_or_acquire(_Q_PENDING_VAL, &lock->val);
u16 old = _Q_PENDING_VAL;
atomic_or(_Q_PENDING_VAL, &lock->val);
new = old | _Q_PENDING_VAL;
if (val == _Q_PENDING_VAL) {
(VAL != _Q_PENDING_VAL) || !cnt--,