Go to the documentation of this file. 1 #ifndef _ALPHA_SPINLOCK_H
2 #define _ALPHA_SPINLOCK_H
4 #include <linux/kernel.h>
5 #include <asm/current.h>
14 #define arch_spin_lock_flags(lock, flags) arch_spin_lock(lock)
15 #define arch_spin_is_locked(x) ((x)->lock != 0)
16 #define arch_spin_unlock_wait(x) \
17 do { cpu_relax(); } while ((x)->lock)
41 :
"=&r" (tmp),
"=m" (lock->
lock)
42 :
"m"(lock->
lock) :
"memory");
54 return (lock->
lock & 1) == 0;
59 return lock->
lock == 0;
78 :
"=m" (*lock),
"=&r" (regx)
79 :
"m" (*lock) :
"memory");
98 :
"=m" (*lock),
"=&r" (regx)
99 :
"m" (*lock) :
"memory");
118 :
"=m" (*lock),
"=&r" (regx),
"=&r" (success)
119 :
"m" (*lock) :
"memory");
140 :
"=m" (*lock),
"=&r" (regx),
"=&r" (success)
141 :
"m" (*lock) :
"memory");
158 :
"=m" (*lock),
"=&r" (regx)
159 :
"m" (*lock) :
"memory");
168 #define arch_read_lock_flags(lock, flags) arch_read_lock(lock)
169 #define arch_write_lock_flags(lock, flags) arch_write_lock(lock)
171 #define arch_spin_relax(lock) cpu_relax()
172 #define arch_read_relax(lock) cpu_relax()
173 #define arch_write_relax(lock) cpu_relax()