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