18c2ecf20Sopenharmony_cicat << EOF
28c2ecf20Sopenharmony_ci/**
38c2ecf20Sopenharmony_ci * ${arch}${atomic}_add_unless - add unless the number is already a given value
48c2ecf20Sopenharmony_ci * @v: pointer of type ${atomic}_t
58c2ecf20Sopenharmony_ci * @a: the amount to add to v...
68c2ecf20Sopenharmony_ci * @u: ...unless v is equal to u.
78c2ecf20Sopenharmony_ci *
88c2ecf20Sopenharmony_ci * Atomically adds @a to @v, if @v was not already @u.
98c2ecf20Sopenharmony_ci * Returns true if the addition was done.
108c2ecf20Sopenharmony_ci */
118c2ecf20Sopenharmony_cistatic __always_inline bool
128c2ecf20Sopenharmony_ci${arch}${atomic}_add_unless(${atomic}_t *v, ${int} a, ${int} u)
138c2ecf20Sopenharmony_ci{
148c2ecf20Sopenharmony_ci	return ${arch}${atomic}_fetch_add_unless(v, a, u) != u;
158c2ecf20Sopenharmony_ci}
168c2ecf20Sopenharmony_ciEOF
17