软中断的类型:
关键数据结构和函数介绍:
in_interrupt()函数:
可见,宏in_interrupt()检查当前进程thread_info结构中的preempt_count字段中硬中断和软中断计数器,其全为0,才返回0.
preempt_count字段的含义:
0-7:抢占计数器,记录显示禁用本地CPU内核抢占的次数,值等于0表示允许内核抢占。
8-15:表示软中断被禁用的程度,同样值为0表示处于激活状态。
16-27:表示本地CPU中断处理程序的嵌套数。
表示软中断的主要数据结构为softirq_action类型的数组,数组名为softirq_vec。
另外一个实现软中断的数据结构是irq_cpustat_t。