SPINLOCK_EXCLWAIT
ovalue = atomic_fetchadd_int(&spin->lock, SPINLOCK_EXCLWAIT - 1);
ovalue += SPINLOCK_EXCLWAIT - 1;
if ((ovalue & (SPINLOCK_EXCLWAIT - 1)) == 0) {
nvalue= ((ovalue - SPINLOCK_EXCLWAIT) | 1) &
(ovalue & (SPINLOCK_EXCLWAIT - 1)) == 0 &&