| 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 |