でのシステム コールの動作と同様にint 0x80
、カーネル内に独自の ISR を実装して、softirq で想定するint 0x120
か、他の softirq プログラム カウンターでユーザー空間からカーネル空間にジャンプできるようにすることは可能ですか?
特権モードでカーネルに入ることは のみに関連付けられていますint 0x80
か、または任意の softirq 実装に関連付けられていますか? 自動的に特権モードに入ることができますか、または関連するフラグを書き込むことによって手動で保護モードを無効にして特権モードに入る必要がありますか?
もう1つ、このタイプのISRを実装できる場合、データ交換の最良の方法はレジスタEBX、ECX、EDX、ESI、EDI、およびEBPを使用することですか、それとも他の方法がまだありますか?
Linuxカーネルで独自の新しいsoftirqを定義してトリガーする方法はすでに見ましたか? しかし、私が探していた解決策が得られませんでした。
なぜこれが必要なのかをもう少し明確にします。
ハードウェア周辺機器と直接通信するいくつかのカーネル関数を実装しました。ソフトウェア割り込みを使用してユーザー空間からそれらをトリガーしたいのです。実行時間を短縮する必要があるため、利用可能なドライバー アーキテクチャでシステム コールを使用できません。