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