/proc/ にエントリを作成し、その他のタスクを実行するカーネル モジュールを作成しました。既存のカーネル モジュールを変更して、モジュールが実行されているかどうかを確認し、それに応じていくつかの文を実行したい (または、実行されていない場合は他の文を実行したい)
これを行う方法に関するアドバイスはありますか?
/proc/ にエントリを作成し、その他のタスクを実行するカーネル モジュールを作成しました。既存のカーネル モジュールを変更して、モジュールが実行されているかどうかを確認し、それに応じていくつかの文を実行したい (または、実行されていない場合は他の文を実行したい)
これを行う方法に関するアドバイスはありますか?
kernel/module.c
おそらく必要なことを行う機能を提供します。最初にロックしてから、モジュールの名前でmodule_mutex
呼び出す必要があります。結果は、指定されたモジュールを説明するfind_module()
へのポインターになります。または、モジュールがロードされていない場合は、次のようになります。struct module
NULL
/* Search for module by name: must hold module_mutex. */
struct module *find_module(const char *name)
{
struct module *mod;
list_for_each_entry(mod, &modules, list) {
if (strcmp(mod->name, name) == 0)
return mod;
}
return NULL;
}
EXPORT_SYMBOL_GPL(find_module);