参照元†
返り値†
/**
* uio_interrupt - hardware interrupt handler
* @irq: IRQ number, can be UIO_IRQ_CYCLIC for cyclic timer
* @dev_id: Pointer to the devices uio_device structure
*/
static irqreturn_t uio_interrupt(int irq, void *dev_id)
{
struct uio_device *idev = (struct uio_device *)dev_id;
irqreturn_t ret = idev->info->handler(irq, idev->info);
- ユーザ定義のハンドラを呼び出す。
- idev->info の型は struct uio_info 型である。
if (ret == IRQ_HANDLED)
uio_event_notify(idev->info);
- ユーザ定義ハンドラによって割り込みが処理されていれば、
read() で返す割り込み回数の値を更新する。
return ret;
}
コメント†