extern inline long testandset(int *spinlock)
testandset (int *spinlock)
extern inline long testandset(int *spinlock){  long ret, temp;  __asm__ __volatile__(	"# Inline spinlock test & set\n\t"	".set\tmips2\n"	"1:\tll\t%0,%3\n\t"	"bnez\t%0,2f\n\t"	".set\tnoreorder\n\t"	"li\t%1,1\n\t"	".set\treorder\n\t"	"sc\t%1,%2\n\t"	"beqz\t%1,1b\n"	"2:\t.set\tmips0\n\t"	"/* End spinlock test & set */"	: "=&r"(ret), "=&r" (temp), "=m"(*spinlock)	: "m"(*spinlock)	: "memory");  return ret;}