1cat <<EOF
2	${int} ret;
3
4	if (__native_word(${atomic}_t)) {
5		ret = smp_load_acquire(&(v)->counter);
6	} else {
7		ret = raw_${atomic}_read(v);
8		__atomic_acquire_fence();
9	}
10
11	return ret;
12EOF
13