在某些 PCI 硬件的设备驱动程序中,我有一个ioctl
调用来等待 PCI 总线上的传入中断。使用wait_queue_head_t
,我通过调用 使任务进入睡眠状态schedule()
。
然后,该irq_handler
函数在 PCI 总线上产生中断时唤醒该任务。一切似乎都正常工作。
我的问题是如何区分schedule()
调用返回是因为我的irq_handler
函数唤醒它,还是因为已经发送了一些信号?
我是否必须使用函数中的标志自己处理它irq_handler
?
在某些 PCI 硬件的设备驱动程序中,我有一个ioctl
调用来等待 PCI 总线上的传入中断。使用wait_queue_head_t
,我通过调用 使任务进入睡眠状态schedule()
。
然后,该irq_handler
函数在 PCI 总线上产生中断时唤醒该任务。一切似乎都正常工作。
我的问题是如何区分schedule()
调用返回是因为我的irq_handler
函数唤醒它,还是因为已经发送了一些信号?
我是否必须使用函数中的标志自己处理它irq_handler
?