OSDN Git Service

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