summaryrefslogtreecommitdiff
path: root/scripts/atomic/fallbacks/read_acquire
blob: 680cd43080cb534f47eec4955bddb1f4a11757dd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
if /bin/sh ${ATOMICDIR}/chkdup.sh arch_${atomic}_read_acquire read_acquire
then
cat <<EOF
/**
 * arch_${atomic}_read_acquire - Atomic load acquire
 * @v: pointer of type ${atomic}_t
 *
 * Atomically load from *@v with acquire ordering, returning the value
 * loaded.
 */
EOF
fi
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