Sign in
third-party-mirror
/
mingw-w64
/
4af5f10d9841f1c1bc781335eac4269a89788a09
/
.
/
mingw-w64-crt
/
intrincs
/
bittestsi.c
blob: 929310250cd011e6c3bf13e3efb56c2c9ba5de06 [
file
] [
log
] [
blame
]
#include
<intrin.h>
unsigned
char
_interlockedbittestandset
(
long
*
Base
,
long
Offset
)
{
int
old
=
0
;
__asm__ __volatile__
(
"lock ; btsl %2,%1\n\tsbbl %0,%0 "
:
"=r"
(
old
),
"=m"
((*(
volatile
long
*)
Base
))
:
"Ir"
(
Offset
)
:
"memory"
);
return
(
old
!=
0
);
}