MODSTAT(2)

名称
modstat - カーネルモジュールの状態を取得

ライブラリ
libc

書式
<sys/param.h> <sys/module.h> int modstat(int modid, struct module_stat *stat)

解説
modstat() システムコールは modid で参照されているカーネルモジュールに関する情報を stat に格納します。

    struct module_stat {
    	int         version;        /* set to sizeof(module_stat) */
    	char        name[MAXPATHLEN];
    	int         refs;
    	int         id;
    	modspecific_t data;
    };
    typedef union modspecific {
    	int         intval;
    	u_int       u_intval;
    	long        longval;
    	u_long      u_longval;
    } modspecific_t;

version
    このフィールドには、 modstat() 自体ではなく modstat() を呼び出したコードによって、上記の構造体のサイズが設定されます。

name
    modid で参照されているモジュールの名前。

refs
    modid で参照されているモジュールの数。

id  modid で指定されているモジュールの id。

data
    モジュール特有のデータ。

戻り値

エラー
以下のようなエラーが発生しない限り、 modid によって参照されているモジュールに関する情報が stat が指している構造体に代入されます:

[ENOENT]
    モジュールが見つかりません (おそらくロードされていません)。

[EINVAL]
    version フィールドで指定されているバージョンが適切ではありません。 適切なバージョンを version フィールドで指定しているにも関わらずこのエラーが起こるときは、 OS 全体か、カーネルまたはプログラム自身を作り直す必要があるかもしれません。

[EFAULT]
    copyout(9) 関数の中で、ひとつまたは複数あるいはすべてのフィールドを stat にコピー中に問題が発生しました。

関連項目
kldfind(2), kldfirstmod(2), kldload(2), kldnext(2), kldstat(2), kldsym(2), kldunload(2), modfind(2), modfnext(2), modnext(2), kld(4), kldstat(8)

歴史
kld インタフェースは FreeBSD 3.0 ではじめて登場しました。