24 lines
273 B
C
24 lines
273 B
C
#include "u.h"
|
|
#include "libc.h"
|
|
|
|
int
|
|
tas(long *x)
|
|
{
|
|
int v;
|
|
|
|
__asm__( "movl $1, %%eax\n\t"
|
|
"xchgl %%eax,(%%rcx)"
|
|
: "=a" (v)
|
|
: "c" (x)
|
|
);
|
|
switch(v) {
|
|
case 0:
|
|
case 1:
|
|
return v;
|
|
default:
|
|
print("canlock: corrupted 0x%lux\n", v);
|
|
return 1;
|
|
}
|
|
}
|
|
|