QUERY_MODULE

Section: Linux Module Support (2)
Updated: 26 Dec 1996
Index JM Home 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 は、ローダブルモジュールに関連する情報をカーネルに問い合わせる。情報の フォーマットと正確な意味は、副関数 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)

関連キーワード

モジュール, module, ret, QUERY, カーネル, バッファ, フォーマット, QM, long, unsigned

Linux マニュアル 一覧

[man1] [man2] [man3] [man4] [man5] [man6] [man7] [man8]
[a] [b] [c] [d] [e] [f] [g] [h] [i] [j] [k] [l] [m] [n] [o] [p] [q] [r] [s] [t] [u] [v] [w] [x] [y] [z]

 

Index

名前
書式
説明
引き数 which の値
返り値
エラー
関連項目

This document was created by man2html, using the manual pages.
Time: 12:08:56 GMT, June 11, 2022