SpinLock read_lock_irqsave flags属性

时间:2010-09-15 17:43:07

标签: synchronization linux-kernel device-driver

这是关于void spin_lock_irqsave(spinlock_t *lock, unsigned long flags);函数调用。提到先前的中断状态存储在标志中,我们可以通过将其传递给spin_unlock_irqrestore函数来恢复它们。

但是我没有得到当值被传递的标志如何在调用spin_lock_irqsave时捕获先前的中断状态。

1 个答案:

答案 0 :(得分:4)

spin_lock_irqsave是一个宏,而不是一个函数。因此它可以分配给flags,即使它显然是按值传递的。

见:

http://lxr.linux.no/#linux+v2.6.35.4/include/linux/spinlock.h#L312
http://lxr.linux.no/#linux+v2.6.35.4/include/linux/spinlock.h#L187