posix-amd64 changes
This commit is contained in:
23
posix-amd64/tas.c
Normal file
23
posix-amd64/tas.c
Normal file
@ -0,0 +1,23 @@
|
||||
#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;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user