OSDN Git Service

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