KLDSYM(2) | FreeBSD System Calls Manual | KLDSYM(2) |
名称
kldsym — KLD のシンボル名でアドレスを検索するライブラリ
Standard C Library (libc, -lc)書式
#include < sys/param.h>#include < sys/linker.h>
int
kldsym( int fileid, int command, void *data);
解説
kldsym() システムコールは、 fileid によって指定されたモジュールの data で指定されたシンボルのアドレスを返します。 fileid が 0 であるなら、すべてのロードしたモジュールが検索されます。現在、 command の実装は、 KLDSYM_LOOKUP のみです。data 引数は、次の構造体です:
struct kld_sym_lookup { int version; /* sizeof(struct kld_sym_lookup) */ char *symname; /* 検索しているシンボル名 */ u_long symvalue; size_t symsize; };
version メンバは、 kldsym() を呼び出しているコードによって sizeof( struct kld_sym_lookup) に設定されます。次の 2 つのメンバ version と symname は、ユーザによって指定されます。最後の 2 つ symvalue と symsize は、 kldsym() によって書き込まれ、それぞれ、 symname に関連したアドレスとそれが指すデータのサイズを含んでいます。
戻り値
The kldsym() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.エラー
kldsym() システムコールは、次の場合に失敗します:- [ EINVAL]
- data->version または command の無効の値。
- [ ENOENT]
- fileid 引数が不正であるか、または指定されたシンボルが見つかりませんでした。
関連項目
kldfind(2), kldfirstmod(2), kldload(2), kldnext(2), kldunload(2), modfind(2), modnext(2), modstat(2), kld(4)歴史
kldsym() システムコールは、 FreeBSD 3.0 ではじめて登場しました。July 26, 2001 | FreeBSD |