注册一个中断处理函数
驱动程序可以通过 request_irq() 注册一个中断处理函数,并且激活给定的中断线,以处理中断。
int request_irq(unsigned int irq,
irq_handler_t handler,
unsigned long flags,
const char *name,
void *dev);
第三个参数 flags :
* Flags:
*
* SA_SHIRQ Interrupt is shared
*
* SA_INTERRUPT Disable local interrupts while processing
*
* SA_SAMPLE_RANDOM The interrupt can be used for entropy
当设置为 IRQF_SAMPLE_RANDOM(SA_SAMPLE_RANDOM) 时,表明这个设备产生的中断对内核熵池有贡献。内核熵池负责提供从各种随机事件导出的真正随机数。
熵
Linux内核采用熵来描述数据的随机性。熵(entropy)是描述系统混乱无序程度的物理量,一个系统的熵越大则说明该系统的有序性越差,即不确定性越大。
计算机本身是可预测的系统,因此,用计算机算法不可能产生真正的随机数。但是机器的环境中充满了各种各样的噪声,如硬件设备发生中断的时间,用户点击鼠标的时间间隔等是完全随机的,事先无法预测。Linux内核实现的随机数产生器正是利用系统中的这些随机噪声来产生高质量随机数序列