gate_desc *idt_tableカーネルモジュールで使用しようとしています。set_trap_gate() desc.h で定義されている関数は、このポインターを使用します。desc.h には次の定義もありますextern gate_desc idt_table[]。
私はさまざまなことを試しました:
idt_table定義や影響なしにモジュールで使用するidt_table私の(有効な)idt_tableアドレスに影響しますid_tableコンパイル中に未定義の警告が表示されるか、idt_table.たとえば、という名前の新しい var を作成し、、、、関数をsched.h からモジュール ファイルにコピーします (名前を変更し、代わりにそれを使用します
gate_desc *it = (gate_desc *)@;) 。これは問題なくコンパイルされますが、モジュールを挿入すると、unknown symbol in module (ret -1) エラーが発生します。(私のモジュールには idt_table への参照はなく、sched から使用する関数は私の変数を使用します)。set_trap_gateset_gatewrite_idt_entrypack_gateidt_table
sched.h に含まれるファイルのどこに定義されているかを確認しようとしましたが、idt_table見つかりませんでした。
sched.h の idt_table ポインター (正しいアドレスに影響を与える) を使用する方法、または新しいポインターを作成する方法を誰かが知っていますか?