Sign in
android-kvm
/
linux
/
63f4e4b6f54cdde98ca9c484724d4012989e3454
/
.
/
scripts
/
atomic
/
fallbacks
/
try_cmpxchg
blob: 890f850ede378512c89a50a7c79e4358051abd15 [
file
] [
log
] [
blame
]
cat
<<
EOF
static
__always_inline
bool
arch_$
{
atomic
}
_try_cmpxchg$
{
order
}(
$
{
atomic
}
_t
*
v
,
$
{
int
}
*
old
,
$
{
int
}
new
)
{
$
{
int
}
r
,
o
=
*
old
;
r
=
arch_$
{
atomic
}
_cmpxchg$
{
order
}(
v
,
o
,
new
);
if
(
unlikely
(
r
!=
o
))
*
old
=
r
;
return
likely
(
r
==
o
);
}
EOF