1 #include "u.h"
2 #include "libc.h"
3 
4 int
tas(long * x)5 tas(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