1ace9bad4SMark Rutlandcat <<EOF
2ace9bad4SMark Rutland/**
3ace9bad4SMark Rutland * ${atomic}_add_negative - add and test if negative
4ace9bad4SMark Rutland * @i: integer value to add
5ace9bad4SMark Rutland * @v: pointer of type ${atomic}_t
6ace9bad4SMark Rutland *
7ace9bad4SMark Rutland * Atomically adds @i to @v and returns true
8ace9bad4SMark Rutland * if the result is negative, or false when
9ace9bad4SMark Rutland * result is greater than or equal to zero.
10ace9bad4SMark Rutland */
11*765dcd20SMarco Elverstatic __always_inline bool
12ace9bad4SMark Rutland${atomic}_add_negative(${int} i, ${atomic}_t *v)
13ace9bad4SMark Rutland{
14ace9bad4SMark Rutland	return ${atomic}_add_return(i, v) < 0;
15ace9bad4SMark Rutland}
16ace9bad4SMark RutlandEOF
17