dec_if_positive (259B)
1cat <<EOF 2static __always_inline ${ret} 3arch_${atomic}_dec_if_positive(${atomic}_t *v) 4{ 5 ${int} dec, c = arch_${atomic}_read(v); 6 7 do { 8 dec = c - 1; 9 if (unlikely(dec < 0)) 10 break; 11 } while (!arch_${atomic}_try_cmpxchg(v, &c, dec)); 12 13 return dec; 14} 15EOF