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_gate
set_gate
write_idt_entry
pack_gate
idt_table
sched.h に含まれるファイルのどこに定義されているかを確認しようとしましたが、idt_table
見つかりませんでした。
sched.h の idt_table ポインター (正しいアドレスに影響を与える) を使用する方法、または新しいポインターを作成する方法を誰かが知っていますか?