18c2ecf20Sopenharmony_cicat <<EOF
28c2ecf20Sopenharmony_ci/**
38c2ecf20Sopenharmony_ci * ${arch}${atomic}_inc_not_zero - increment unless the number is zero
48c2ecf20Sopenharmony_ci * @v: pointer of type ${atomic}_t
58c2ecf20Sopenharmony_ci *
68c2ecf20Sopenharmony_ci * Atomically increments @v by 1, if @v is non-zero.
78c2ecf20Sopenharmony_ci * Returns true if the increment was done.
88c2ecf20Sopenharmony_ci */
98c2ecf20Sopenharmony_cistatic __always_inline bool
108c2ecf20Sopenharmony_ci${arch}${atomic}_inc_not_zero(${atomic}_t *v)
118c2ecf20Sopenharmony_ci{
128c2ecf20Sopenharmony_ci	return ${arch}${atomic}_add_unless(v, 1, 0);
138c2ecf20Sopenharmony_ci}
148c2ecf20Sopenharmony_ciEOF
15