スポンサーリンク

KLDSYM(2) FreeBSD システムコールマニュアル KLDSYM(2)

名称

kldsym − KLD 内のシンボル名による検索

ライブラリ

標準 C ライブラリ (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 個の引数 versionsymname は、ユーザが指定します。最後の 2 個 symvaluesymsize は、 kldsym() によって埋められます。これらは、 symname に関連付けられたアドレ スと、それの指しているデータの大きさを、それぞれ保持します。

戻り値

関数 kldsym() は、処理が成功すると値 0 を返します。そうでない場合、値 -1 が返され、グローバル変数 errno が設定されてエラーを示します。

エラー

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 ではじめて登場しました。

FreeBSD 10.0 July 26, 2001 FreeBSD 10.0

スポンサーリンク