GET_KERNEL_SYMS
Section: Linux Programmer's Manual (2)
Updated: 2007-06-03
Index
JM Home Page
roff page
名前
get_kernel_syms - 公開されているカーネルやモジュールのシンボルの取得
書式
#include <linux/module.h>
int get_kernel_syms(struct kernel_sym *table);
説明
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)
Index
- 名前
-
- 書式
-
- 説明
-
- 返り値
-
- エラー
-
- バージョン
-
- 準拠
-
- バグ
-
- 関連項目
-
This document was created by
man2html,
using the manual pages.
Time: 04:31:42 GMT, November 19, 2007