Man page - get_kernel_syms(2)

Packages contains this manual

Available languages:

en fr es pl ja ru ro

Manual

GET_KERNEL_SYMS

名 前
書 式
説 明
返 り 値
エ ラ ー
バ ー ジ ョ ン
準 拠
注 意
バ グ
関 連 項 目
こ の 文 書 に つ い て

名 前

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

書 式

#include <linux/module.h>

int get_kernel_syms(struct kernel_sym * table );

注 意 : こ の シ ス テ ム コ ー ル の 宣 言 は glibc の ヘ ッ ダ ー で は 提 供 さ れ て い な い 。 「 注 意 」 を 参 照 。

説 明

注 意 : こ の シ ス テ ム コ ー ル が 存 在 す る の は 、 カ ー ネ ル 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 固 有 で あ る 。

注 意

こ の 廃 止 さ れ た シ ス テ ム コ ー ル は glibc で は サ ポ ー ト さ れ て い な い 。 glibc ヘ ッ ダ ー で は 宣 言 は 提 供 さ れ て い な い が 、 紆 余 曲 折 が あ り 、 バ ー ジ ョ ン 2.23 よ り 前 の glibc で は こ の シ ス テ ム コ ー ル に 対 す る ABI が 公 開 さ れ て い た 。 そ の た め 、 こ の シ ス テ ム コ ー ル を 利 用 す る に は 、 自 分 の コ ー ド の 中 で 手 動 で イ ン タ ー フ ェ ー ス を 宣 言 す れ ば よ か っ た 。 syscall (2) を 使 っ て シ ス テ ム コ ー ル を 起 動 で き た 。

バ グ

table 用 に 確 保 し た バ ッ フ ァ ー の 大 き さ を 伝 え る 方 法 が な い 。 プ ロ グ ラ ム が シ ン ボ ル テ ー ブ ル の 大 き さ を 問 い 合 わ せ た 後 に 、 カ ー ネ ル に シ ン ボ ル が 追 加 さ れ る と 、 メ モ リ ー の 内 容 が 破 壊 さ れ る こ と に な る 。

公 開 さ れ る シ ン ボ ル 名 の 長 さ が 59 文 字 に 制 限 さ れ て い る 。

こ れ ら の 制 限 が あ る の で 、 こ の シ ス テ ム コ ー ル を 使 う よ り は query_module (2) を 使 う の が 望 ま し い (現 在 で は query_module (2) 自 身 も そ の マ ニ ュ ア ル ペ ー ジ に 書 か れ て い る よ う に 他 の イ ン タ ー フ ェ ー ス を 使 う の が 望 ま し い と さ れ て い る )。

関 連 項 目

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

こ の 文 書 に つ い て

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