add_unless 452 B

12345678910111213141516
  1. cat << EOF
  2. /**
  3. * arch_${atomic}_add_unless - add unless the number is already a given value
  4. * @v: pointer of type ${atomic}_t
  5. * @a: the amount to add to v...
  6. * @u: ...unless v is equal to u.
  7. *
  8. * Atomically adds @a to @v, if @v was not already @u.
  9. * Returns true if the addition was done.
  10. */
  11. static __always_inline bool
  12. arch_${atomic}_add_unless(${atomic}_t *v, ${int} a, ${int} u)
  13. {
  14. return arch_${atomic}_fetch_add_unless(v, a, u) != u;
  15. }
  16. EOF