私は、割り込み処理を実装するLinuxカーネルのコードを見つけようと研究しています。特に、システムタイマーの処理を担当するコードを見つけようとしています。
http://www.linux-tutorial.info/modules.php?name=MContent&pageid=86によると
カーネルは、例外を処理する方法と非常によく似た方法で割り込みを処理します。すべての汎用レジスタがシステムスタックにプッシュされ、共通の割り込みハンドラが呼び出されます。>現在の割り込み優先度が保存され、新しい優先度がロードされます。これにより、優先度の低いレベルでの割り込みが、この割り込みを処理している間、カーネルに割り込みが発生するのを防ぎます。次に、実際の割り込みハンドラが呼び出されます。
スタック上のすべての汎用レジスタをプッシュするコードと、一般的な割り込み処理コードを探しています。
少なくとも汎用レジスタをスタックにプッシュすることはアーキテクチャに依存しないため、x86アーキテクチャに関連付けられているコードを探しています。現時点では、カーネルソースのバージョン3.0.4を見ていますが、どのバージョンでもおそらく問題ありません。kernel / irq / handle.cを調べ始めましたが、レジスタを保存しているように見えるものは何もありません。登録された割り込みハンドラを呼び出しているように見えます。