int
void
unsigned
const
void
void
参数说明:
参数irq表示所要申请的硬件中断号。handler为向系统登记的中断处理子程序,中
断产生时由系统来调用,调用时所带参数irq为中断号,dev_id为申请时告诉系统的设备
标识,regs为中断发生时寄存器内容。device为设备名,将会出现在/proc/interrupts
文件里。flag是申请时的选项,它决定中断处理程序的一些特性,其中最重要的是中断
处理程序是快速处理程序(flag里设置了SA_INTERRUPT)还是慢速处理程序(不设置SA
_INTERRUPT),快速处理程序运行时,所有中断都被屏蔽,而慢速处理程序运行时,除
了正在处理的中断外,其它中断都没有被屏蔽。在LINUX系统中,中断可以被不同的中断
处理程序共享,这要求每一个共享此中断的处理程序在申请中断时在flags里设置SA_SH
IRQ,这些处理程序之间以dev_id来区分。如果中断由某个处理程序独占,则dev_id可以
为NULL。request_irq返回0表示成功,返回-INVAL表示irq>15或handler==NULL,返回-
EBUSY表示中断已经被占用且不能共享。