如果你要禁止所有的中断该怎么办?
在2.6内核中,可以通过下面两个函数中的其中任何一个关闭当前处理器上的所有中断处理,这两个函数定义在 < asm/system.h >中:
void local_irq_save(unsigned long flags);
void local_irq_disable(void);
对 local_irq_save
的调用将把当前中断状态保存到flags
中,然后禁用当前处理器上的中断发送。注意,flags
被直接传递, 而不是通过指针来传递。local_irq_disable
不保存状态而关闭本地处理器上的中断发送; 只有我们知道中断并未在其他地方被禁用的情况下,才能使用这个版本。
可通过如下函数打开中断:
void local_irq_restore(unsigned long flags);
void local_irq_enable(v