1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
cat <<EOF static __always_inline ${ret} arch_${atomic}_read_acquire(const ${atomic}_t *v) { ${int} ret; if (__native_word(${atomic}_t)) { ret = smp_load_acquire(&(v)->counter); } else { ret = arch_${atomic}_read(v); __atomic_acquire_fence(); } return ret; } EOF