Manpages

名 前

get_kernel_syms − 公 開 さ れ て い る カ ー ネ ル や モ ジ ュ ー ル の シ ン ボ ル の 取 得

書 式

#include <linux/module.h>

int get_kernel_syms(struct kernel_sym *table);

説 明

注 意 : こ の シ ス テ ム コ ー ル が 存 在 す る の は 、 カ ー ネ ル 2.6 よ り 前 の Linux だ け で あ る 。

get_kernel_syms() は 、 table が NULL の 場 合 、 問 い 合 わ せ で き る シ ン ボ ル の 数 を 返 す 。 NULL 以 外 の 場 合 、 以 下 の 構 造 体 の 列 (table) に 値 を 入 れ て 返 す 。

struct kernel_sym {
unsigned long value;
char name[60]; }; シ ン ボ ル の 中 に は 、 #module−name と い う 形 式 の 、 カ ー ネ ル が 空 の 名 前 を 持 っ て い る マ ジ ッ ク シ ン ボ ル (magic symbol) が 散 在 し て い る 。 こ の 形 式 の シ ン ボ ル に 対 応 す る 値 は モ ジ ュ ー ル が ロ ー ド さ れ た ア ド レ ス と な る 。 個 々 の モ ジ ュ ー ル か ら 公 開 (export) さ れ た シ ン ボ ル は 、 マ ジ ッ ク モ ジ ュ ー ル タ グ の 後 ろ に 置 か れ る 。 ま た 、 モ ジ ュ ー ル は ロ ー ド さ れ た 順 番 と は 逆 順 で 返 さ れ る 。

返 り 値

成 功 す る と 、 table に コ ピ ー さ れ た シ ン ボ ル 数 を 返 す 。 エ ラ ー の 場 合 、 −1 を 返 し 、 errno を 適 切 に 設 定 す る 。

エ ラ ー

返 る 可 能 性 が あ る エ ラ ー は 一 つ だ け で あ る 。

ENOSYS

get_kernel_syms() が こ の バ ー ジ ョ ン の カ ー ネ ル で は サ ポ ー ト さ れ て い な い 。

バ ー ジ ョ ン

こ の シ ス テ ム コ ー ル が 存 在 す る の は カ ー ネ ル 2.4 ま で の Linux だ け で あ る 。 Linux 2.6 で は 削 除 さ れ た 。

準 拠

get_kernel_syms() は Linux 固 有 で あ る 。

バ グ

table 用 に 確 保 し た バ ッ フ ァ ー の 大 き さ を 伝 え る 方 法 が な い 。 プ ロ グ ラ ム が シ ン ボ ル テ ー ブ ル の 大 き さ を 問 い 合 わ せ た 後 に 、 カ ー ネ ル に シ ン ボ ル が 追 加 さ れ る と 、 メ モ リ ー の 内 容 が 破 壊 さ れ る こ と に な る 。 公 開 さ れ る シ ン ボ ル 名 の 長 さ が 59 文 字 に 制 限 さ れ て い る 。 こ れ ら の 制 限 が あ る の で 、 こ の シ ス テ ム コ ー ル を 使 う よ り は query_module(2) を 使 う の が 望 ま し い (現 在 で は query_module(2) 自 身 も そ の マ ニ ュ ア ル ペ ー ジ に 書 か れ て い る よ う に 他 の イ ン タ ー フ ェ ー ス を 使 う の が 望 ま し い と さ れ て い る )。

関 連 項 目

create_module(2), delete_module(2), init_module(2), query_module(2)

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。