OSDN Git Service

0dadcae4e5582204a236e3277a656334636f0f07
[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 .\" Japanese Version Copyright (c) 2006 Akihiro MOTOKI all rights reserved.
9 .\" Translated 2006-07-29, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
10 .\"
11 .TH QUERY_MODULE 2 2007-06-03 "Linux" "Linux Programmer's Manual"
12 .SH 名前
13 query_module \- モジュールに関連する各種の情報をカーネルに問い合わせる
14 .SH 書式
15 .nf
16 .B #include <linux/module.h>
17 .sp
18 .BI "int query_module(const char *" name ", int " which ", void *" buf ,
19 .BI "                 size_t " bufsize ", size_t *" ret );
20 .fi
21 .SH 説明
22 .BR query_module ()
23 は、ローダブルモジュールに関する情報をカーネルに問い合わせる。
24 情報は
25 .I buf
26 が指し示すバッファに格納されて返される。
27 呼び出し元は
28 .I buf
29 のサイズを
30 .I bufsize
31 に指定しなければならない。
32 得られる情報の正確な意味とフォーマットは、
33 .I which
34 でどの操作を指定するかによって異なる。
35 現在ロードされているモジュールを特定するために
36 .I name
37 を必要とする操作があれば、
38 カーネル固有であることを示す NULL を指定できる操作もある。
39
40 .I which
41 には以下の値を指定できる:
42 .TP
43 .B 0
44 カーネルが
45 .BR query_module ()
46 をサポートしている場合、成功を返す。
47 このシステムコールが利用可能かを調べるために使われる。
48 .TP
49 .B QM_MODULES
50 ロードされている全てのモジュールの名前を返す。
51 バッファには、NULL 終端された文字列が順に入る。
52 返されるバッファ
53 .I ret
54 にはモジュールの数が設定される。
55 .\" ret is set on ENOSPC
56 .TP
57 .B QM_DEPS
58 指定されたモジュールが使用している全モジュールの名前を返す。
59 バッファには、NULL 終端された文字列が順に入る。
60 返されるバッファ
61 .I ret
62 にはモジュールの数が設定される。
63 .\" ret is set on ENOSPC
64 .TP
65 .B QM_REFS
66 指定されたモジュールを使用している全モジュールの名前を返す。
67 これは
68 .B QM_DEPS
69 と逆の機能である。
70 バッファには、NULL 終端された文字列が順に入る。
71 返されるバッファ
72 .I ret
73 にはモジュールの数が設定される。
74 .\" ret is set on ENOSPC
75 .TP
76 .B QM_SYMBOLS
77 カーネルまたは指定されたモジュールがエクスポートしているシンボルと
78 値を返す。
79 バッファのデータは、
80 以下の構造体の配列に NULL 終端された文字列が続く形となる。
81 .\" ret is set on ENOSPC
82 .in +4n
83 .nf
84
85 struct module_symbol {
86     unsigned long value;
87     unsigned long name;
88 };
89 .fi
90 .in
91 .IP
92 .I name
93 の値は、
94 .I buf
95 の先頭からの文字列までのオフセット文字数である。
96 .I ret
97 にはシンボルの数が設定される。
98 .TP
99 .B QM_INFO
100 指定されたモジュールに関する様々な情報を返す。
101 出力バッファのフォーマットは以下の形式となる:
102 .in +4n
103 .nf
104
105 struct module_info {
106     unsigned long address;
107     unsigned long size;
108     unsigned long flags;
109 };
110 .fi
111 .in
112 .IP
113 .I address
114 はそのモジュールが配置されているカーネル空間上のアドレス、
115 .I size
116 はそのモジュールのバイト単位のサイズ、
117 .I flags
118
119 .BR MOD_RUNNING ,
120 .B MOD_AUTOCLEAN
121 等のマスクであり、そのモジュールの現在の状態を示す
122 (カーネルのソースファイル
123 .I include/linux/module.h
124 を参照)。
125 .I ret
126 には
127 .I module_info
128 構造体のサイズが設定される。
129 .SH 返り値
130 成功の場合 0 が返される。エラーの場合 \-1 が返され、
131 .I errno
132 に適切な値が設定される。
133 .SH エラー
134 .TP
135 .B EFAULT
136 .IR name ,
137 .IR buf ,
138 .I ret
139 の少なくとも一つが、プログラムがアクセスできる
140 アドレス空間の外部であった。
141 .TP
142 .B EINVAL
143 .I which
144 が不正である。あるいは
145 .I name
146 が NULL だが (NULL は "カーネル" を示す)、
147 .I which
148 で指定された値との組み合わせは許可されていない。
149 .\" Not permitted with QM_DEPS, QM_REFS, or QM_INFO.
150 .TP
151 .B ENOENT
152 .I name
153 という名前のモジュールが存在しない。
154 .TP
155 .B ENOSPC
156 与えられたバッファの大きさが小さすぎる。
157 .I ret
158 には最小限必要なバッファのサイズが設定される。
159 .TP
160 .B ENOSYS
161 .BR query_module ()
162 はこのバージョンのカーネルではサポートされていない。
163 .SH 準拠
164 .BR query_module ()
165 は Linux 固有である。
166 .SH 注意
167 このシステムコールが存在するのはカーネル 2.4 までの Linux だけである。
168 Linux 2.6 では削除された。
169 .\" Removed in Linux 2.5.48
170 .BR query_module ()
171 で得られた情報のいくつかは、
172 .IR /proc/modules ,
173 .IR /proc/kallsyms ,
174 .I /sys/modules
175 から取得できる。
176 .SH 関連項目
177 .BR create_module (2),
178 .BR delete_module (2),
179 .BR get_kernel_syms (2),
180 .BR init_module (2)