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
|