Sign in
android-kvm
/
linux
/
e9f53353e166a67dfe4f8295100f8ac39d6cf10b
/
.
/
scripts
/
atomic
/
fallbacks
/
inc_unless_negative
blob: 87629e0d4a80d9fc001a813ce8f6772f3877faa3 [
file
] [
log
] [
blame
]
cat
<<
EOF
static
__always_inline
bool
$
{
arch
}
$
{
atomic
}
_inc_unless_negative
(
$
{
atomic
}
_t
*
v
)
{
$
{
int
}
c
=
$
{
arch
}
$
{
atomic
}
_read
(
v
);
do
{
if
(
unlikely
(
c
<
0
))
return
false
;
}
while
(!
$
{
arch
}
$
{
atomic
}
_try_cmpxchg
(
v
,
&
c
,
c
+
1
));
return
true
;
}
EOF