162306a36Sopenharmony_cicat <<EOF
262306a36Sopenharmony_ci	${int} c = raw_${atomic}_read(v);
362306a36Sopenharmony_ci
462306a36Sopenharmony_ci	do {
562306a36Sopenharmony_ci		if (unlikely(c < 0))
662306a36Sopenharmony_ci			return false;
762306a36Sopenharmony_ci	} while (!raw_${atomic}_try_cmpxchg(v, &c, c + 1));
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci	return true;
1062306a36Sopenharmony_ciEOF
11