这两个函数在Linux中有什么区别? 我知道irqs_disabled()会返回irq是否被禁用,而in_interrupt()会返回当前是否处于中断上下文。 如果您默认在中断上下文中,这是否意味着irq已被禁用?
在哪些情况下我们特别使用这些函数?
这两个函数在Linux中有什么区别? 我知道irqs_disabled()会返回irq是否被禁用,而in_interrupt()会返回当前是否处于中断上下文。 如果您默认在中断上下文中,这是否意味着irq已被禁用?
在哪些情况下我们特别使用这些函数?
我得到了答案。
#define in_irq() (hardirq_count())
#define in_softirq() (softirq_count())
#define in_interrupt() (irq_count())
函数in_interrupt()检查(硬)中断和软中断计数器。无论您执行中断处理程序还是软中断处理程序,此函数都返回true。
但是,irqs_disabled()仅检查(硬)中断是否已禁用。