EN JA
QUERY_MODULE(2)
QUERY_MODULE(2) Linux Module Support QUERY_MODULE(2)

名前

query_module -モジュールに関連する各種の情報をカーネルに問い合わせる

書式

#include
<linux/module.h>
 

int query_module(const char * name , int which ,
void * buf , size_t bufsize , size_t * ret );

説明

query_module は、ローダブルモジュールに関連する情報をカーネルに問い合わせる。情報のフォーマットと正確な意味は、副関数 which によって異なる。現在ロードされているモジュールを指すために name を必要とする関数もあるし、カーネル固有であることを示すために nameNULL を指定できるものもある。
 

引き数 which の値

0
必ず成功を返す。システムコールを調べるために使われる。
QM_MODULES
ロードされている全てのモジュールの名前を返す。出力バッファのフォーマットは、NULL で終端する文字列を並べたものである。モジュールの数が ret にセットされる。
QM_DEPS
指定されたモジュールが使っている全てのモジュール名を返す。出力バッファのフォーマットは、NULL で終端する文字列を並べたものである。モジュールの数が ret にセットされる。
QM_REFS
指定されたモジュールを使っている全てのモジュール名を返す。これは QM_DEPS と逆の機能である。出力バッファのフォーマットは、NULL で終端する文字列を並べたものである。モジュールの数が ret にセットされる。
QM_SYMBOLS
カーネルまたは指定されているモジュールがエクスポートしているシンボルと値を返す。バッファのフォーマットは、以下の構造体


struct module_symbol
{
unsigned long value;
unsigned long name;
};

の配列に NULL で終端する文字列を続けたものである。 name の値は buf の先頭から文字列までのオフセット文字数である。 ret にはシンボルの数がセットされる。

QM_INFO
指定されたモジュールに関する様々な情報を返す。出力バッファのフォーマットを以下に示す:


struct module_info
{
unsigned long address;
unsigned long size;
unsigned long flags;
};

ここで address は、そのモジュールが常駐しているカーネル空間上のアドレスであり、 size はモジュールの大きさ(単位はバイト)である。また flagsMOD_RUNNING, MOD_AUTOCLEAN 等のマスクであり、モジュールの現在の状態を示している。 ret には module_info 構造体の大きさが返される。

返り値

成功した場合は 0 が返される。エラーの場合は-1 が返され、 errno に適切な値が設定される。

エラー

ENOENT
name という名前のモジュールが存在しない。
EINVAL
which が不正である。あるいは name が不適切なカーネルの副関数を指定している。
ENOSPC
用意されたバッファの大きさが小さすぎる。 ret には必要最小限のバッファのサイズが設定される。
EFAULT
name, buf, ret の少なくともいずれかが、プログラムがアクセスできるアドレス空間の外部であった。

関連項目

create_module(2), init_module(2), delete_module(2)
 
26 Dec 1996 Linux 2.1.17