xref: /linux/scripts/atomic/fallbacks/add_unless (revision ace9bad4df2684f31cbfe8c4ce7a0f5d92b27925)
1*ace9bad4SMark Rutlandcat << EOF
2*ace9bad4SMark Rutland/**
3*ace9bad4SMark Rutland * ${atomic}_add_unless - add unless the number is already a given value
4*ace9bad4SMark Rutland * @v: pointer of type ${atomic}_t
5*ace9bad4SMark Rutland * @a: the amount to add to v...
6*ace9bad4SMark Rutland * @u: ...unless v is equal to u.
7*ace9bad4SMark Rutland *
8*ace9bad4SMark Rutland * Atomically adds @a to @v, if @v was not already @u.
9*ace9bad4SMark Rutland * Returns true if the addition was done.
10*ace9bad4SMark Rutland */
11*ace9bad4SMark Rutlandstatic inline bool
12*ace9bad4SMark Rutland${atomic}_add_unless(${atomic}_t *v, ${int} a, ${int} u)
13*ace9bad4SMark Rutland{
14*ace9bad4SMark Rutland	return ${atomic}_fetch_add_unless(v, a, u) != u;
15*ace9bad4SMark Rutland}
16*ace9bad4SMark RutlandEOF
17