Repository URL to install this package:
|
Version:
1:5.16.11-60 ▾
|
linux-headers-5.16.11-kstr-sama5d27
/
usr
/
src
/
linux-headers-5.16.11-kstr-sama5d27
/
scripts
/
atomic
/
fallbacks
/
fetch_add_unless
|
|---|
cat << EOF
/**
* arch_${atomic}_fetch_add_unless - add unless the number is already a given value
* @v: pointer of type ${atomic}_t
* @a: the amount to add to v...
* @u: ...unless v is equal to u.
*
* Atomically adds @a to @v, so long as @v was not already @u.
* Returns original value of @v
*/
static __always_inline ${int}
arch_${atomic}_fetch_add_unless(${atomic}_t *v, ${int} a, ${int} u)
{
${int} c = arch_${atomic}_read(v);
do {
if (unlikely(c == u))
break;
} while (!arch_${atomic}_try_cmpxchg(v, &c, c + a));
return c;
}
EOF