PV_HOLD_LOCKED
if ((count & PV_HOLD_LOCKED) == 0) {
(count + 1) | PV_HOLD_LOCKED)) {
KKASSERT((count & (PV_HOLD_LOCKED | PV_HOLD_MASK)) !=
(PV_HOLD_LOCKED | 1));
pnew->pv_hold = PV_HOLD_LOCKED | 2;
if ((count & PV_HOLD_LOCKED) == 0) {
count | PV_HOLD_LOCKED)) {
KKASSERT((count & (PV_HOLD_LOCKED | PV_HOLD_MASK)) >=
(PV_HOLD_LOCKED | 1));
~(PV_HOLD_LOCKED | PV_HOLD_WAITING))) {
if (atomic_cmpset_int(&pv->pv_hold, PV_HOLD_LOCKED | 2, 1))
KKASSERT((pv->pv_hold & (PV_HOLD_LOCKED|PV_HOLD_MASK)) >=
(PV_HOLD_LOCKED|1));
if (atomic_cmpset_int(&pv->pv_hold, PV_HOLD_LOCKED | 2, 0)) {