1cat << EOF 2 ${int} c = raw_${atomic}_read(v); 3 4 do { 5 if (unlikely(c == u)) 6 break; 7 } while (!raw_${atomic}_try_cmpxchg(v, &c, c + a)); 8 9 return c; 10EOF 11