QUERY_MODULE

Section: Linux Programmer's Manual (2)
Updated: 2007-06-03
Index JM Home Page roff page
 

名前

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

書式

#include <linux/module.h>

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

説明

query_module() は、ローダブルモジュールに関する情報をカーネルに問い合わせる。 情報は buf が指し示すバッファに格納されて返される。 呼び出し元は buf のサイズを bufsize に指定しなければならない。 得られる情報の正確な意味とフォーマットは、 which でどの操作を指定するかによって異なる。 現在ロードされているモジュールを特定するために name を必要とする操作があれば、 カーネル固有であることを示す NULL を指定できる操作もある。

which には以下の値を指定できる:

0
カーネルが query_module() をサポートしている場合、成功を返す。 このシステムコールが利用可能かを調べるために使われる。
QM_MODULES
ロードされている全てのモジュールの名前を返す。 バッファには、NULL 終端された文字列が順に入る。 返されるバッファ ret にはモジュールの数が設定される。
QM_DEPS
指定されたモジュールが使用している全モジュールの名前を返す。 バッファには、NULL 終端された文字列が順に入る。 返されるバッファ ret にはモジュールの数が設定される。
QM_REFS
指定されたモジュールを使用している全モジュールの名前を返す。 これは QM_DEPS と逆の機能である。 バッファには、NULL 終端された文字列が順に入る。 返されるバッファ ret にはモジュールの数が設定される。
QM_SYMBOLS
カーネルまたは指定されたモジュールがエクスポートしているシンボルと 値を返す。 バッファのデータは、 以下の構造体の配列に NULL 終端された文字列が続く形となる。

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

name の値は、 buf の先頭からの文字列までのオフセット文字数である。 ret にはシンボルの数が設定される。

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

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

address はそのモジュールが配置されているカーネル空間上のアドレス、 size はそのモジュールのバイト単位のサイズ、 flagsMOD_RUNNING, MOD_AUTOCLEAN 等のマスクであり、そのモジュールの現在の状態を示す (カーネルのソースファイル include/linux/module.h を参照)。 ret には module_info 構造体のサイズが設定される。

 

返り値

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

エラー

EFAULT
name, buf, ret の少なくとも一つが、プログラムがアクセスできる アドレス空間の外部であった。
EINVAL
which が不正である。あるいは name が NULL だが (NULL は "カーネル" を示す)、 which で指定された値との組み合わせは許可されていない。
ENOENT
name という名前のモジュールが存在しない。
ENOSPC
与えられたバッファの大きさが小さすぎる。 ret には最小限必要なバッファのサイズが設定される。
ENOSYS
query_module() はこのバージョンのカーネルではサポートされていない。
 

準拠

query_module() は Linux 固有である。  

注意

このシステムコールが存在するのはカーネル 2.4 までの Linux だけである。 Linux 2.6 では削除された。 query_module() で得られた情報のいくつかは、 /proc/modules, /proc/kallsyms, /sys/modules から取得できる。  

関連項目

create_module(2), delete_module(2), get_kernel_syms(2), init_module(2)


 

Index

名前
書式
説明
返り値
エラー
準拠
注意
関連項目

This document was created by man2html, using the manual pages.
Time: 04:31:57 GMT, November 19, 2007