Provided by: manpages-ja-dev_0.5.0.0.20210215+dfsg-1_all
名前
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/ に書かれている。