Something
public text v1 · immutablestatic inline void nt_spin_lock(volatile NT_SPIN_LOCK *lock)
{
__asm__ __volatile__(
"\n"
"1:\t"
" lock; addl $1, %0; mfence\n\t"
" cmpl %1, %0\n\t"
" je 3f\n"
"2:\t"
" rep; nop\n\t"
" cmpl %2, %0\n\t"
" jne 2b\n\t"
" jmp 1b\n"
"3:\n\t"
: "=m" (*lock)
: "i" (NT_SPIN_LOCK_UNLOCKED + 1), "i" (NT_SPIN_LOCK_UNLOCKED)
: "memory");
}