在Linux内核中,request_irq() 函数是注册中断服务函数:函数的原型如下:
int request_irq (unsigned int irq, void (*handler)(int, void *, struct pt_regs *), unsigned long frags, const char *device, void *dev_id);
5个参数的含义如下: 第一个参数irq:申请的硬件中断号; 第二个参数handler:是一个函数指针,向系统登记的中断处理函数,是一个回调函数,当中断发生时,系统调用这个函数,传入的参数包括中断设备 id,寄存器值。 第三个参数flags:指定了快速中断或中断共享等中断处理属性。 第四个参数devices:指定设备驱动程序的名称。 第五个参数dev_id:传入中断处理程序的参数,可以为NULL,在注册共享中断时,此参数不能为NULL,作为共享中断时的中断区别参数。
返回值: 函数运行正常时返回 0 ,否则返回对应错误的负值。
|