1 #include "u.h" 2 #include "libc.h" 3 4 int tas(long * x)5tas(long *x) 6 { 7 int v; 8 9 __asm__( "movl $1, %%eax\n\t" 10 "xchgl %%eax,(%%ecx)" 11 : "=a" (v) 12 : "c" (x) 13 ); 14 switch(v) { 15 case 0: 16 case 1: 17 return v; 18 default: 19 print("canlock: corrupted 0x%lux\n", v); 20 return 1; 21 } 22 } 23 24