2016-06-28 2 views
1

私の仕事の一つで助けが必要です。私はLinuxカーネルモジュールを書いています。これは、ロードされたすべてのモジュールを印刷する必要があります(print_modulesと同じですが、それぞれ異なる行にあります)。私は/ proc/modulesのようなファイルを読むことは許されていません。ロードされているすべてのカーネルモジュールを含むリストはどこにありますか

私の問題は、私は私が私のCコードでアクセスできるように、カーネルに対応するリストを見つけることができませんよということです。

私はすでにModules.c/.hのを検索し、二重リンクリストが格納されているMODUL構造体を見つけたが、私はその1で、他のmodulsにアクセス傾けます。

は私の問題がクリアされていると誰かが私を助けることができると思います。私のコメントから事前に感謝

+0

のモジュールを得ることができますprint文に '\ n'を追加しますか?申し訳ありませんが、これを考慮しているが、なぜそれを使用できないのかを明確にしていない。がんばろう。 (しばらくするとこのコメントは削除されます)。 – shellter

+0

は、我々がやりたいことthatsのが、このMethodeの(http://lxr.free-electrons.com/source/kernel/module.c#L4052ちょうどヒットCtrl + Fキー+「print_module」)は、多くの引数を必要とする、これは我々リストを繰り返すだけでかなり簡単な解決策があるはずだと言われました – MajorasKid

+1

答えを見つけました:リストは自分のカーネルモジュール(関数get_moduleを使って)内にあります。 Module-> Listというオブジェクトがあり、これは二重リンクされたリストです。 はlist.hで、私たちは、してください答えを書いて、正しいとしてマーク@majoraskid list.next/.prev – MajorasKid

答えて

0

コピー:

リストは、(機能get_moduleで)独自のカーネルモジュールの中に見つけることができます。 Module-> Listというオブジェクトがあり、これは二重リンクされたリストです。 list.hで、私たちは、私はすべてのカーネル専門家(;-)ないんだけど、どこ `print_modules`その情報を取得しない、とあなたがいることをクローンを作成できませんでしlist.next/.prev

関連する問題