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