cat <<EOF
	${int} ret;

	if (__native_word(${atomic}_t)) {
		ret = smp_load_acquire(&(v)->counter);
	} else {
		ret = raw_${atomic}_read(v);
		__atomic_acquire_fence();
	}

	return ret;
EOF