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