1 cat <<EOF 1 cat <<EOF 2 ${int} c = raw_${atomic}_read(v); !! 2 static __always_inline bool >> 3 ${arch}${atomic}_dec_unless_positive(${atomic}_t *v) >> 4 { >> 5 ${int} c = ${arch}${atomic}_read(v); 3 6 4 do { 7 do { 5 if (unlikely(c > 0)) 8 if (unlikely(c > 0)) 6 return false; 9 return false; 7 } while (!raw_${atomic}_try_cmpxchg(v, !! 10 } while (!${arch}${atomic}_try_cmpxchg(v, &c, c - 1)); 8 11 9 return true; 12 return true; >> 13 } 10 EOF 14 EOF
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.