OSDN Git Service

ad2f507c3325269c755cb3814a21e1a4cefe8d31
[linuxjm/LDP_man-pages.git] / release / man2 / query_module.2
1 .\" Copyright (C) 1996 Free Software Foundation, Inc.
2 .\" This file is distributed according to the GNU General Public License.
3 .\" See the file COPYING in the top level source directory for details.
4 .\"
5 .\" 2006-02-09, some reformatting by Luc Van Oostenryck; some
6 .\" reformatting and rewordings by mtk
7 .\"
8 .\"*******************************************************************
9 .\"
10 .\" This file was generated with po4a. Translate the source file.
11 .\"
12 .\"*******************************************************************
13 .TH QUERY_MODULE 2 2007\-06\-03 Linux "Linux Programmer's Manual"
14 .SH 名前
15 query_module \- モジュールに関連する各種の情報をカーネルに問い合わせる
16 .SH 書式
17 .nf
18 \fB#include <linux/module.h>\fP
19 .sp
20 \fBint query_module(const char *\fP\fIname\fP\fB, int \fP\fIwhich\fP\fB, void *\fP\fIbuf\fP\fB,\fP
21 \fB                 size_t \fP\fIbufsize\fP\fB, size_t *\fP\fIret\fP\fB);\fP
22 .fi
23 .SH 説明
24 \fBquery_module\fP()  は、ローダブルモジュールに関する情報をカーネルに問い合わせる。 情報は \fIbuf\fP
25 が指し示すバッファに格納されて返される。 呼び出し元は \fIbuf\fP のサイズを \fIbufsize\fP に指定しなければならない。
26 得られる情報の正確な意味とフォーマットは、 \fIwhich\fP でどの操作を指定するかによって異なる。 現在ロードされているモジュールを特定するために
27 \fIname\fP を必要とする操作があれば、 カーネル固有であることを示す NULL を指定できる操作もある。
28
29 \fIwhich\fP には以下の値を指定できる:
30 .TP 
31 \fB0\fP
32 カーネルが \fBquery_module\fP()  をサポートしている場合、成功を返す。 このシステムコールが利用可能かを調べるために使われる。
33 .TP 
34 \fBQM_MODULES\fP
35 .\" ret is set on ENOSPC
36 ロードされている全てのモジュールの名前を返す。 バッファには、NULL 終端された文字列が順に入る。 返されるバッファ \fIret\fP
37 にはモジュールの数が設定される。
38 .TP 
39 \fBQM_DEPS\fP
40 .\" ret is set on ENOSPC
41 指定されたモジュールが使用している全モジュールの名前を返す。 バッファには、NULL 終端された文字列が順に入る。 返されるバッファ \fIret\fP
42 にはモジュールの数が設定される。
43 .TP 
44 \fBQM_REFS\fP
45 .\" ret is set on ENOSPC
46 指定されたモジュールを使用している全モジュールの名前を返す。 これは \fBQM_DEPS\fP と逆の機能である。 バッファには、NULL
47 終端された文字列が順に入る。 返されるバッファ \fIret\fP にはモジュールの数が設定される。
48 .TP 
49 \fBQM_SYMBOLS\fP
50 .\" ret is set on ENOSPC
51 カーネルまたは指定されたモジュールがエクスポートしているシンボルと 値を返す。 バッファのデータは、 以下の構造体の配列に NULL
52 終端された文字列が続く形となる。
53 .in +4n
54 .nf
55
56 struct module_symbol {
57     unsigned long value;
58     unsigned long name;
59 };
60 .fi
61 .in
62 .IP
63 \fIname\fP の値は、 \fIbuf\fP の先頭からの文字列までのオフセット文字数である。 \fIret\fP にはシンボルの数が設定される。
64 .TP 
65 \fBQM_INFO\fP
66 指定されたモジュールに関する様々な情報を返す。 出力バッファのフォーマットは以下の形式となる:
67 .in +4n
68 .nf
69
70 struct module_info {
71     unsigned long address;
72     unsigned long size;
73     unsigned long flags;
74 };
75 .fi
76 .in
77 .IP
78 \fIaddress\fP はそのモジュールが配置されているカーネル空間上のアドレス、 \fIsize\fP はそのモジュールのバイト単位のサイズ、
79 \fIflags\fP は \fBMOD_RUNNING\fP, \fBMOD_AUTOCLEAN\fP 等のマスクであり、そのモジュールの現在の状態を示す
80 (カーネルのソースファイル \fIinclude/linux/module.h\fP を参照)。 \fIret\fP には \fImodule_info\fP
81 構造体のサイズが設定される。
82 .SH 返り値
83 成功の場合 0 が返される。エラーの場合 \-1 が返され、 \fIerrno\fP に適切な値が設定される。
84 .SH エラー
85 .TP 
86 \fBEFAULT\fP
87 \fIname\fP, \fIbuf\fP, \fIret\fP の少なくとも一つが、プログラムがアクセスできる アドレス空間の外部であった。
88 .TP 
89 \fBEINVAL\fP
90 .\" Not permitted with QM_DEPS, QM_REFS, or QM_INFO.
91 \fIwhich\fP が不正である。あるいは \fIname\fP が NULL だが (NULL は "カーネル" を示す)、 \fIwhich\fP
92 で指定された値との組み合わせは許可されていない。
93 .TP 
94 \fBENOENT\fP
95 \fIname\fP という名前のモジュールが存在しない。
96 .TP 
97 \fBENOSPC\fP
98 与えられたバッファの大きさが小さすぎる。 \fIret\fP には最小限必要なバッファのサイズが設定される。
99 .TP 
100 \fBENOSYS\fP
101 \fBquery_module\fP()  はこのバージョンのカーネルではサポートされていない。
102 .SH 準拠
103 \fBquery_module\fP()  は Linux 固有である。
104 .SH 注意
105 .\" Removed in Linux 2.5.48
106 このシステムコールが存在するのはカーネル 2.4 までの Linux だけである。 Linux 2.6 では削除された。
107 \fBquery_module\fP()  で得られた情報のいくつかは、 \fI/proc/modules\fP, \fI/proc/kallsyms\fP,
108 \fI/sys/modules\fP から取得できる。
109 .SH 関連項目
110 \fBcreate_module\fP(2), \fBdelete_module\fP(2), \fBget_kernel_syms\fP(2),
111 \fBinit_module\fP(2)
112 .SH この文書について
113 この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.40 の一部
114 である。プロジェクトの説明とバグ報告に関する情報は
115 http://www.kernel.org/doc/man\-pages/ に書かれている。