conterm/win32-386/tas.c
Russ Cox 934846f35c a
2005-08-08 12:50:13 +00:00

23 lines
283 B
C

// could also use windozy InterlockedCompareExchange(p, 1, 0), but why
int
tas(long *p)
{
int v;
_asm {
mov eax, p
mov ebx, 1
xchg ebx, [eax]
mov v, ebx
}
switch(v) {
case 0:
case 1:
return v;
default:
print("canlock: corrupted 0x%lux\n", v);
return 1;
}
}