Linuxドライバーの割り込みとIOポートを理解する手段として、単純なキーロガーを作成しています。私が読んだことから、割り込みハンドラを登録する必要があります...
int request_irq(unsigned int irq, irqreturn_t (*handler)(int, void *, struct pt_regs *), unsigned long flags, const char *dev_name, void *dev_id);
ただし、私も読んだことから、module_init() 中に request_irq を呼び出すと、割り込みを占有します。私の問題は、割り込みを他のリソースと共有したいのですが、この割り込みを呼び出す方法がわかりません。module_init() で関数を呼び出して、フラグを SA_SHIRQ に設定できたらいいのにと思います。ベスト プラクティスは、割り込みを設定できるようにファイルを開いているときに呼び出すことですが、割り込みハンドラーを実行できるようにするためだけに、open "my_dev" を呼び出すユーザー空間プログラムの作成に依存したくありません。
ありがとう