ref: 9f65f57c73f7c9d80a89ad43195ae4c2fcf9ffbe
dir: /posix-amd64/tas.c/
#include "u.h" #include "libc.h" int tas(int *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; } }